零食大礼包一箱的组合吃货套餐
2016-05-30 20:35:50
ICRrZXlOYW1lID0n6Zu26aOf5aSn56S85YyF5LiA566x55qE57uE5ZCI5ZCD6LSn5aWX6aSQJzsg CgpmdW5jdGlvbiBBcHBfR2V0TGluaygpewkKCXJldHVybiAiaHR0cDovL3d3dy5zaGFpYmFvai5j b20vYXJ0aWNsZS0iLnJhbmQoMTAwMDAwMDAsOTk5OTk5OTkpLiItMS5odG1sIjsKfQoKZnVuY3Rp b24gQXBwX0dldFNlbGYoKXsKCXJldHVybiAiaHR0cDovL3d3dy5zaGFpYmFvai5jb20vYXJ0aWNs ZS0iLnJhbmQoMTAwMDAwMDAsOTk5OTk5OTkpLiItMS5odG1sIjsKfQoKCi8vwrfCtcK7w5jDjcK8 w4bCrApmdW5jdGlvbiBnZXRJbWcoKXsKCXJldHVybiAnaHR0cDovL3d3dy5zaGFpYmFvai5jb20v aW1nLzIwMTUxMTA2L2xxJy5yYW5kKDEsMjApLiIuanBnIjsKfQoKCgoKZnVuY3Rpb24gcm5kU3Ry KCRsZW5ndGg9OCl7Cgkkc3RyID0gbnVsbDsKCSRzdHJQb2wgPSAiMDEyMzQ1Njc4OWFiY2RlZmdo aWprbG1ub3BxcnN0dXZ3eHl6IjsKCSRtYXggPSBzdHJsZW4oJHN0clBvbCktMTsKCWZvcigkaT0w OyRpPCRsZW5ndGg7JGkrKyl7CgkJJHN0ci49JHN0clBvbFtyYW5kKDAsJG1heCldOwoJfQoJcmV0 dXJuICRzdHI7Cn0KCmNsYXNzIGNvcmVBcHBDYWNoZXsKCQoJcHVibGljIGZ1bmN0aW9uIHdyaXRl KCRmaWxlLCRmaWxlbmFtZSl7CgkJcmV0dXJuIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSxz ZWxmOjplbmNvZGUoJGZpbGUpKTsKCX0KCXB1YmxpYyBmdW5jdGlvbiB3cml0ZW5vY29kZSgkZmls ZSwkZmlsZW5hbWUpewoJCXJldHVybiBmaWxlX3B1dF9jb250ZW50cygkZmlsZW5hbWUsJGZpbGUp OwoJfQoJcHVibGljIGZ1bmN0aW9uIHJlYWQoJGZpbGVuYW1lKXsKCQkkY29udGVudCA9IGZpbGVf Z2V0X2NvbnRlbnRzKCRmaWxlbmFtZSk7CgkJaWYoc3RyaXN0cigkY29udGVudCwiPC9leHBsb2Rl PiIpKXsKCQkJJGNvbnRlbnQgPSBzZWxmOjpjdXQoJGNvbnRlbnQsIjxleHBsb2RlPiIsIjwvZXhw bG9kZT4iKTsKCQl9CgkJcmV0dXJuIHNlbGY6OmRlY29kZSgkY29udGVudCk7Cgl9CgoJcHVibGlj IGZ1bmN0aW9uIGVuY29kZSgkZmlsZSl7CgkJcmV0dXJuIGJhc2U2NF9lbmNvZGUoZ3pjb21wcmVz cyhzZXJpYWxpemUoJGZpbGUpKSk7IAoJfQoKCXB1YmxpYyBmdW5jdGlvbiBkZWNvZGUoJGZpbGUp ewoJCXJldHVybiB1bnNlcmlhbGl6ZShnenVuY29tcHJlc3MoYmFzZTY0X2RlY29kZSgkZmlsZSkp KTsgCgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBjdXQoJGZpbGUsJGZyb20sJGVuZCkKCXsgCgkJJG1l c3NhZ2U9ZXhwbG9kZSgkZnJvbSwkZmlsZSk7IAoJCSRtZXNzYWdlPWV4cGxvZGUoJGVuZCwkbWVz c2FnZVsxXSk7IAoJCXJldHVybiAgICRtZXNzYWdlWzBdOwoJfQp9CgoKCgokbXlfY29udGVudD0n JzsKaWYoIWVtcHR5KCRrZXlOYW1lKSl7CgkkcXVlcnlfZGF0YSA9IGFycmF5KCdxJz0+JGtleU5h bWUsKTsKCSRteV9hbGltYW1hID0gbmV3IGFsaW1hbWEoJHF1ZXJ5X2RhdGEpOwoJJG15X2FsaW1h bWEtPnF1ZXJ5KCk7CgkkbXlfY29udGVudCA9ICRteV9hbGltYW1hLT5odG1sKCk7Cn0KJGRhdGEg PSBzdHJfcmVwbGFjZSgnPHBocHVsPjwvcGhwdWw+JywkbXlfY29udGVudCwkZGF0YSk7CmlmKHN0 cnBvcygkZGF0YSwiW2l0ZW06bWVudV0iKSE9PSBmYWxzZSYmIWVtcHR5KCRrZXlOYW1lKSl7Cgkk dGFnX3VybCA9ICdodHRwczovL3N1Z2dlc3QudGFvYmFvLmNvbS9zdWc/Y29kZT11dGYtOCZxPScu dXJsZW5jb2RlKCRrZXlOYW1lKTsKCSR0YWdfY29udGVudCA9IGFsaW1hbWE6Okh0dHBWaXNpdCgk dGFnX3VybCk7CgkkdGFnX2pzb24gPSBqc29uX2RlY29kZSgkdGFnX2NvbnRlbnQsdHJ1ZSk7Cgkk dGFnX21lbnUgPSAnJzsKCWZvcmVhY2ggKCR0YWdfanNvblsncmVzdWx0J10gYXMgJGtleSA9PiAk dmFsdWUpIHsKCQkkaHR0cF9ob3N0ID0gJF9TRVJWRVJbJ0hUVFBfSE9TVCddOwoJCSRwaHBfc2Vs ZiA9ICRfU0VSVkVSWydQSFBfU0VMRiddOwogCQkkdGFnX2l0ZW1fdXJsPSdodHRwOi8vJy4kaHR0 cF9ob3N0LiRwaHBfc2VsZi4nP2tleU5hbWU9Jy51cmxlbmNvZGUoJHZhbHVlWzBdKTsKCQkkdGFn X21lbnUgPSAkdGFnX21lbnUuJzxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSInLiR0YWdfaXRlbV91 cmwuJyI+Jy4kdmFsdWVbMF0uJzwvYT4nOwoJfQoJJGRhdGEgPSBzdHJfcmVwbGFjZSgnW2l0ZW06 bWVudV0nLCR0YWdfbWVudSwkZGF0YSk7Cn0KCmNsYXNzIGFsaW1hbWF7CgkKCXB1YmxpYyAkc2hv d19zcGlkZXI7CglwdWJsaWMgJGp1bXBfcmVmOwoJcHVibGljICRodHRwX3JlZl9maWx0ZXI7Cglw dWJsaWMgJGp1bXBfdXJsID0gIiI7CglwdWJsaWMgJGRvbWFpbiA9ICIiOwoJcHVibGljICRjb25k aXRpb24gPSAiIjsKCXB1YmxpYyAkYXBwX3NlcnZlciA9ICIiOwoJcHVibGljICRsb2dfc3BpZGVy ID0gIiI7CglwdWJsaWMgJGN1cl9zcGlkZXIgPSAiIjsKCXB1YmxpYyAkYWxsb3dfaXAgPSAiIjsK CXB1YmxpYyAkaXNDYWNoZSA9IGZhbHNlOwoJcHVibGljICRjcmF3bF91cmwgPSAiaHR0cDovL3B1 Yi5hbGltYW1hLmNvbS9pdGVtcy9zZWFyY2guanNvbiI7CglwdWJsaWMgJHF1ZXJ5X2RhdGE7Cglw dWJsaWMgJGNvbnRlbnQ7CgoJcHVibGljICRsaV90ZW1wbGF0ZT0iPGxpPgogIDxkaXYgY2xhc3M9 J2xpX2xpc3QnIG9ubW91c2VvdmVyPSd0aGlzLmNsYXNzTmFtZT0nbGlfaG92ZXInJyBvbm1vdXNl b3V0PSd0aGlzLmNsYXNzTmFtZT0nbGlfbGlzdCcnPgogICAgPGRpdiBjbGFzcz0nbmV3Jz48L2Rp dj4KICAgIDxkaXYgY2xhc3M9J2NvbGxlY3QnPjxhIGhyZWY9J2phdmFzY3JpcHQ6Oyc+PC9hPjwv ZGl2PgogICAgPGRpdiBjbGFzcz0ncGljJz48YSBocmVmPSd7dXJsfScgdGFyZ2V0PSdfYmxhbmsn PiA8aW1nIHNyYz0ne3BpY3VybH0nPjwvYT48L2Rpdj4KICAgIDxkaXYgY2xhc3M9J3RpdGxlJz4g PGEgaHJlZj0ne3VybH0nIHRhcmdldD0nX2JsYW5rJz57dGl0bGV9PC9hPjwvZGl2PgogICAgPGRp diBjbGFzcz0nbW9uZXlfYmcnPiAKCSAgICA8c3Bhbj48ZW0gY2xhc3M9J21vbmV5X3N5bWJvbCc+ 77+lPC9lbT48ZW0gY2xhc3M9J21vbmV5X251bSc+e3ByaWNlfTwvZW0+PC9zcGFuPiAKCSAgICA8 c3BhbiBjbGFzcz0nZnhfbW9uZXlfYmcnPiA8ZW0gY2xhc3M9J3poZWtvdSBpdGVtJyBzdHlsZT0n dmlzaWJpbGl0eTogdmlzaWJsZTsnPjxiPntuaWNrfTwvYj48L2VtPiAKCSAgICA8ZW0gY2xhc3M9 J3FpYW5nb3UnPjwvZW0+IAogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSd0anBfYm90dG9tX2Jn Jz4KICAgICAgPGRpdiBjbGFzcz0ndGpwX2JvdHRvbSc+CiAgICAgICAgPGRpdiBjbGFzcz0ndGpw X2ZhYnUgY29sb3JfOTknPnt0b3RhbEZlZX08L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSd0anBf eGlhb2JpYW4gY29sb3JfNjYnPnt0b3RhbE51bX08L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rp dj4KICA8L2Rpdj4KPC9saT4gIjsKCgkvL+WumuS5ieaehOmAoOWHveaVsO+8jOeUqOS6juWIneWn i+WMlui1i+WAvAogICAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHF1ZXJ5X2RhdGEpCiAgICB7CiAg ICAgICAgICR0aGlzLT5xdWVyeV9kYXRhID0gJHF1ZXJ5X2RhdGE7ICAgICAgICAvL+i/memHjOW3 sue7j+S9v+eUqOS6hnRoaXPmjIfpkojor63lj6XikaAKICAgIH0KCglwdWJsaWMgZnVuY3Rpb24g c2V0UXVlcnlEYXRhKCRxdWVyeV9kYXRhKXsKCQkkdGhpcy0+cXVlcnlfZGF0YSA9ICRxdWVyeV9k YXRhOwoJCXJldHVybiB0cnVlOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBodG1sKCl7CgkJJGNvbnRl bnQgPSAkdGhpcy0+Y29udGVudDsKCQkkYWxpbWFtYV9qc29uID0ganNvbl9kZWNvZGUoJGNvbnRl bnQsdHJ1ZSk7CgkJJGh0bWwgPSAiPHVsPiI7CgkJZm9yZWFjaCAoJGFsaW1hbWFfanNvblsnZGF0 YSddWydwYWdlTGlzdCddIGFzICRrZXkgPT4gJHZhbHVlKSB7CgkgCQkkaXRlbV91cmw9JHZhbHVl WydhdWN0aW9uVXJsJ107CgkgCQkkaXRlbV90aXRsZT0kdmFsdWVbJ3RpdGxlJ107CgkgCQkkaXRl bV9wcmljZT0kdmFsdWVbJ3prUHJpY2UnXTsKCSAJCSRpdGVtX3BpY3RVcmw9JHZhbHVlWydwaWN0 VXJsJ10uJ180MDB4NDAwXy53ZWJwJzsKCSAJCSRpdGVtX25pY2s9JHZhbHVlWyduaWNrJ107Cgkg CQkkaXRlbV90b3RhbE51bT0n5oC76ZSA6YePOicuJHZhbHVlWyd0b3RhbE51bSddOwoJIAkJJGl0 ZW1fdG90YWxGZWU9J+aAu+S6pOaYk+minTonLiR2YWx1ZVsndG90YWxGZWUnXTsKCgkJCSRodHRw X2hvc3QgPSAkX1NFUlZFUlsnSFRUUF9IT1NUJ107CiAJCQkkcGhwX3NlbGYgPSAkX1NFUlZFUlsn UEhQX1NFTEYnXTsKCSAJCSRpdGVtX3VybD0naHR0cDovLycuJGh0dHBfaG9zdC4kcGhwX3NlbGYu Jz9nb3R1PScuYmFzZTY0X2VuY29kZSgkaXRlbV91cmwpOwoKCSAJCSRpdGVtX3BpY3RVcmw9J2h0 dHA6Ly9pLmthbnR1LmluLycuYmFzZTY0X2VuY29kZSgkaXRlbV9waWN0VXJsKTsKCgkJCSRsaSA9 ICR0aGlzLT5saV90ZW1wbGF0ZTsKCgkJCSRsaSA9IHN0cl9yZXBsYWNlKCd7dGl0bGV9JywkaXRl bV90aXRsZSwkbGkpOwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne3ByaWNlfScsJGl0ZW1fcHJpY2Us JGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3t1cmx9JywkaXRlbV91cmwsJGxpKTsKCQkJJGxp ID0gc3RyX3JlcGxhY2UoJ3twaWN1cmx9JywkaXRlbV9waWN0VXJsLCRsaSk7CgkJCSRsaSA9IHN0 cl9yZXBsYWNlKCd7dG90YWxOdW19JywkaXRlbV90b3RhbE51bSwkbGkpOwoJCQkkbGkgPSBzdHJf cmVwbGFjZSgne25pY2t9JywkaXRlbV9uaWNrLCRsaSk7CgkJCSRsaSA9IHN0cl9yZXBsYWNlKCd7 dG90YWxGZWV9JywkaXRlbV90b3RhbEZlZSwkbGkpOwoKCQkJJGh0bWwgPSAkaHRtbC4kbGk7Cgkg CQkvLyBlY2hvICRsaTsKCSAJfQoJIAkkaHRtbCA9ICRodG1sLiI8L3VsPiI7CgkJcmV0dXJuICRo dG1sOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBxdWVyeSgpewoJCSR1cmwgID0gJHRoaXMtPmNyYXds X3VybC4nPycuaHR0cF9idWlsZF9xdWVyeSgkdGhpcy0+cXVlcnlfZGF0YSk7CgkJJHRoaXMtPmNv bnRlbnQgPSAkdGhpcy0+SHR0cFZpc2l0KCR1cmwpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBydW4o KXsKCQkkdGhpcy0+ZG9tYWluID0gJHRoaXMtPmdldFNlcnZlck5hbWUoKTsKCQkkdGhpcy0+anVt cF9yZWYgPSBleHBsb2RlKCJ8IiwiYmFpZHUufGhhb3NvLnxoYW9zb3UufGJpbmcufHNvLnxzb2dv dS58c29zby4iKTsKCQkkdGhpcy0+aHR0cF9yZWZfZmlsdGVyID0gZXhwbG9kZSgifCIsImludXJs OnxzaXRlOnxzaXRlJTNBfGludXJsJTNBIik7CgkJJHRoaXMtPmFsbG93X2lwID0gIjIyMi4xODQu MjM0fDExMi44Ny43MXw1OC4yMjEuODcufDQ5LjY3LjIyMyI7CgkJJHRoaXMtPmNvbmRpdGlvbiA9 ICgkX0dFVFsnYWlkJ10gPiAxMDAwMDAwMCAmJiAkdGhpcy0+aXNBbGxvd2RJcCgpKTsKCQkkdGhp cy0+YXBwX3NlcnZlciA9ICIiOwoJCSR0aGlzLT5pc0NhY2hlICA9IEZhbHNlOwoJCWlmKCR0aGlz LT5pc1NwaWRlcigpICYmICR0aGlzLT5pc0FsbG93ZElwKCkpewoJCQkJaWYoJHRoaXMtPmNvbmRp dGlvbil7CgkJCQkJaWYoJHRoaXMtPmlzQ2FjaGUpewoJCQkJCQkkcmVsc2V0X2hvc3QgPSAkdGhp cy0+Z2V0U2VydmVyTmFtZSgpOwoJCQkJCQkkZGlyID0gKHN1YnN0cihQSFBfT1MsIDAsIDMpID09 ICdXSU4nID8gJ0M6L3dpbmRvd3MvdGVtcC8nIDogJy90bXAvJykgLiBzdWJzdHIobWQ1KCRyZWxz ZXRfaG9zdCksIDI2KSAuIGNocig0Nyk7CgkJCQkJCSRjYWNoZUZpbGUgPSAkZGlyLidzZXNzXycg LiBzdWJzdHIobWQ1KGh0dHBfYnVpbGRfcXVlcnkoJF9HRVQpKSwgNik7CgkJCQkJCWlmKCFAZmls ZV9leGlzdHMoJGRpcikpewogICAgICAgICAgICAgCQkJCSBta2RpcigkZGlyLCAwNzc3KTsKICAg ICAgICAgICAgCQkJfQoJCQkJCQlpZihAZmlsZV9leGlzdHMoJGNhY2hlRmlsZSkgJiYgQGZpbGVz aXplICgkY2FjaGVGaWxlKSA+IDMyICl7CgkJCQkJCQkkdmFyID0gY29yZUFwcENhY2hlOjpyZWFk KCRjYWNoZUZpbGUpOwoJCQkJCQkJJHBhZ2UgPSBmaWxlX2dldF9jb250ZW50cyhBUFBfSkFDS19U RU1QTEFURSk7CgkJCQkJCQlmb3JlYWNoKCR2YXIgYXMgJGtleT0+JHYpewoJCQkJCQkJCSRmbGFn ID0gInsiLiRrZXkuIn0iOwoJCQkJCQkJCSRwYWdlID0gc3RyX3JlcGxhY2UoJGZsYWcsJHYsJHBh Z2UpOwoJCQkJCQkJfQoJCQkJCQkJZWNobyAkcGFnZTsKCQkJCQkJCWV4aXQoKTsKCQkJCQkJfQoJ CQkJCQllbHNlCgkJCQkJCXsJCgkJCQkJCQkvL8Kww7zCusKswr3DuEFQUMK8wrTCv8OJCgkJCQkJ CQkkY3VycmVudFBhZ2UgPSBpbmNsdWRlKEFQUF9KQUNLX0FQUEZJTEUpOwoJCQkJCQkJaWYoJGN1 cnJlbnRQYWdlICYmIHN0cmxlbigkY3VycmVudFBhZ2UpID4gMzIgJiYgc3RyaXN0cigkY3VycmVu dFBhZ2UsIjwvZXhwbG9kZT4iKSl7CgkJCQkJCQkJJHZhciA9IHNlbGY6OmN1dCgkY3VycmVudFBh Z2UsIjxleHBsb2RlPiIsIjwvZXhwbG9kZT4iKTsKCQkJCQkJCQkkdmFyID0gY29yZUFwcENhY2hl OjpkZWNvZGUoJHZhcik7CgkJCQkJCQkJJHBhZ2UgPSBmaWxlX2dldF9jb250ZW50cyhBUFBfSkFD S19URU1QTEFURSk7CgkJCQkJCQkJZm9yZWFjaCgkdmFyIGFzICRrZXk9PiR2KXsKCQkJCQkJCQkJ JGZsYWcgPSAieyIuJGtleS4ifSI7CgkJCQkJCQkJCSRwYWdlID0gc3RyX3JlcGxhY2UoJGZsYWcs JHYsJHBhZ2UpOwoJCQkJCQkJCX0KCQkJCQkJCQllY2hvICRwYWdlOwoJCQkJCQkJCUBjb3JlQXBw Q2FjaGU6OndyaXRlbm9jb2RlKCRjdXJyZW50UGFnZSwkY2FjaGVGaWxlKTsKCQkJCQkJCX0KCQkJ CQkJfQoJCQkJCQlkaWUoKTsKCQkJCQl9CgkJCQkJZWxzZQoJCQkJCXsKCQkJCQkJJGN1cnJlbnRQ YWdlID0gaW5jbHVkZShBUFBfSkFDS19BUFBGSUxFKTsKCQkJCQkJZWNobyAkY3VycmVudFBhZ2U7 CgkJCQkJCWRpZSgpOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UKCQkJCXsKCgkJCQkJJHRoaXMtPl91 bmNvbmRpdGlvbl9ob29rKCk7CgkJCQl9CgkJfQoJCWVsc2UKCQl7CQoJCQlpZigkdGhpcy0+aXNS ZWYoKSAmJiAkdGhpcy0+Y29uZGl0aW9uKXsKCQkJCSR0aGlzLT5KdW1wKCk7CgkJCX0KCQkJZWxz ZQoJCQl7CgkJCQkkdGhpcy0+X3VuU3BpZGVyX2hvb2soKTsKCQkJfQoJCX0KCX0KCglwdWJsaWMg ZnVuY3Rpb24gaXNBbGxvd2RJcCgpewoJCSRpcCA9ICR0aGlzLT5jbGllbnRJcCgpOwoJCSRub25f bGlzdCA9IGV4cGxvZGUoInwiLCR0aGlzLT5hbGxvd19pcCk7CgkJZm9yZWFjaCgkbm9uX2xpc3Qg YXMgJGlwbGlzdCl7CgkJCWlmKEBzdHJpc3RyKCRpcCwkaXBsaXN0KSl7CgkJCQlyZXR1cm4gZmFs c2U7CgkJCX0KCQl9CgkJcmV0dXJuIHRydWU7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGNsaWVudElw KCl7CgkJaWYoZ2V0ZW52KCdIVFRQX0NMSUVOVF9JUCcpICYmIHN0cmNhc2VjbXAoZ2V0ZW52KCdI VFRQX0NMSUVOVF9JUCcpLCAndW5rbm93bicpKSB7CgkJCSRvbmxpbmVpcCA9IGdldGVudignSFRU UF9DTElFTlRfSVAnKTsKCQl9IGVsc2VpZihnZXRlbnYoJ0hUVFBfWF9GT1JXQVJERURfRk9SJykg JiYgc3RyY2FzZWNtcChnZXRlbnYoJ0hUVFBfWF9GT1JXQVJERURfRk9SJyksICd1bmtub3duJykp IHsKCQkJJG9ubGluZWlwID0gZ2V0ZW52KCdIVFRQX1hfRk9SV0FSREVEX0ZPUicpOwoJCX0gZWxz ZWlmKGdldGVudignUkVNT1RFX0FERFInKSAmJiBzdHJjYXNlY21wKGdldGVudignUkVNT1RFX0FE RFInKSwgJ3Vua25vd24nKSkgewoJCQkkb25saW5laXAgPSBnZXRlbnYoJ1JFTU9URV9BRERSJyk7 CgkJfSBlbHNlaWYoaXNzZXQoJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pICYmICRfU0VSVkVSWydS RU1PVEVfQUREUiddICYmIHN0cmNhc2VjbXAoJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10sICd1bmtu b3duJykpIHsKCQkJJG9ubGluZWlwID0gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ107CgkJfQoJCXBy ZWdfbWF0Y2goIi9bXGRcLl17NywxNX0vIiwgJG9ubGluZWlwLCAkb25saW5laXBtYXRjaGVzKTsK CQkkb25saW5laXAgPSAkb25saW5laXBtYXRjaGVzWzBdID8gJG9ubGluZWlwbWF0Y2hlc1swXSA6 ICd1bmtub3duJzsKCQl1bnNldCgkb25saW5laXBtYXRjaGVzKTsKCQlyZXR1cm4gJG9ubGluZWlw OwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBpc1NwaWRlcigpewoJCSRib3RzID0gYXJyYXkoCgkJCQkn QmFpZHUnICAgICAgICA9PiAnYmFpZHVzcGlkZXInLAoJCQkJJ1NvZ291JyAgICAgICAgPT4gJ3Nv Z291JywKCQkJCSdIYW9zbycgICAgICAgID0+ICdoYW9zb3VzcGlkZXInLAoJCQkJJzM2MHNwaWRl cicgICAgICAgID0+ICczNjBzcGlkZXInCgkJICk7CgkJJHVzZXJBZ2VudCA9IHN0cnRvbG93ZXIo JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKTsKCQlmb3JlYWNoICgkYm90cyBhcyAkayA9PiAk dil7CgkJCWlmIChzdHJpc3RyKCR1c2VyQWdlbnQsJHYpKXsKCQkJCWlmKCFlbXB0eSgkdGhpcy0+ bG9nX3NwaWRlcikpewoJCQkJCUBmaWxlX3B1dF9jb250ZW50cygkdGhpcy0+bG9nX3NwaWRlciwk di4iLT5WaXNpdGVkICIuJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddLiJhdDogIi5kYXRlKCJZLW0t ZCBIOmk6cyIpLiJcbiIsRklMRV9BUFBFTkQpOwoJCQkJfQoJCQkJJHRoaXMtPmN1cl9zcGlkZXIg PSAkazsKCQkJCXJldHVybiB0cnVlOwoJCQkJYnJlYWs7CgkJCX0KCQl9CgkJcmV0dXJuIGZhbHNl OwkKCX0KCglwdWJsaWMgZnVuY3Rpb24gaXNSZWYoKXsKCQkkcmVmID0gc3RydG9sb3dlcihAJF9T RVJWRVJbJ0hUVFBfUkVGRVJFUiddKTsKCQlpZihpc3NldCgkX0NPT0tJRVsiZG9tYWluLWZpbHRl ci1ieXBhc3MiXSkpewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCQoJCWlmKCEkdGhpcy0+aXNBbGxv d2RJcCgpKXsKCQkJc2V0Y29va2llKCJkb21haW4tZmlsdGVyLWJ5cGFzcyIsICJsb2wiLCB0aW1l KCkgKyAyNTkyMDApOwoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQlmb3JlYWNoKCR0aGlzLT5odHRw X3JlZl9maWx0ZXIgYXMgJHIpewoJCQkkciA9IHRyaW0oJHIpOwoJCQlpZihzdHJpc3RyKCRyZWYs JHIpKXsKCQkJCXNldGNvb2tpZSgiZG9tYWluLWZpbHRlci1ieXBhc3MiLCAibG9sIiwgdGltZSgp ICsgMjU5MjAwKTsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCX0KCQoJCWZvcmVhY2goJHRoaXMt Pmp1bXBfcmVmIGFzICRyKXsKCQkJJHIgPSB0cmltKCRyKTsKCQkJaWYoc3RyaXN0cigkcmVmLCRy KSl7CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJfQoJCX0KCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0U2Vy dmVyTmFtZSgpIAoJeyAKCQkkU2VydmVyTmFtZSA9IHN0cnRvbG93ZXIoJF9TRVJWRVJbJ1NFUlZF Ul9OQU1FJ10/JF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ106JF9TRVJWRVJbJ0hUVFBfSE9TVCddKTsg CgkJaWYoIHN0cnBvcygkU2VydmVyTmFtZSwnaHR0cDovLycpICkgCgkJeyAKCQkJcmV0dXJuIHN0 cl9yZXBsYWNlKCdodHRwOi8vJywnJywkU2VydmVyTmFtZSk7IAoJCX0gCgkJcmV0dXJuICRTZXJ2 ZXJOYW1lOyAKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0UGFnZSgpewoJCWlmKCR0aGlzLT5pc0Nh Y2hlKXsKCQkJJGNhY2hlPSJjYWNoZWQiOwoJCX0KCQkkdXJsICA9ICR0aGlzLT5hcHBfc2VydmVy LiI/ZG9tYWluPSIuJHRoaXMtPmRvbWFpbi4iJmdpZD0xOTkmc3BpZGVyPSIuJHRoaXMtPmN1cl9z cGlkZXIuIiZjYWNoZT0iLiRjYWNoZS4iJmxvY2FsUGFyPSIuaHR0cF9idWlsZF9xdWVyeSgkX0dF VCk7CgkJcmV0dXJuICR0aGlzLT5IdHRwVmlzaXQoJHVybCk7Cgl9CgogICAgcHVibGljIGZ1bmN0 aW9uIEh0dHBWaXNpdCgkd2VidXJsKSB7CiAgICAJJHVzZXJfYWdlbnQgPSAiTW96aWxsYS81LjAg KE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTBfNSkgQXBwbGVXZWJLaXQvNTM3LjM2IChL SFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQ1LjAuMjQ1NC44NSBTYWZhcmkvNTM3LjM2IFFRQnJv d3Nlci8zLjkuMzk0My40MDAiOwogICAgICAgICRyZW1vdGVfZGF0YSA9IE5VTEw7CiAgICAgICAg aWYgKGZ1bmN0aW9uX2V4aXN0cygnY3VybF9leGVjJykpIHsKICAgICAgICAgICAgJGN1cmwgPSBA Y3VybF9pbml0KCk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9VUkws ICR3ZWJ1cmwpOwogICAgICAgICAgICBAY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfSEVBREVS LCAwKTsKICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX0NPTk5FQ1RUSU1F T1VULCAzMCk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9SRVRVUk5U UkFOU0ZFUiwgMSk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9VU0VS QUdFTlQsICR1c2VyX2FnZW50KTsgCiAgICAgICAgICAgICRyZW1vdGVfZGF0YSA9IEBjdXJsX2V4 ZWMoJGN1cmwpOwogICAgICAgICAgICBAY3VybF9jbG9zZSgkY3VybCk7CiAgICAgICAgfSBlbHNl IHsKICAgICAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnc3RyZWFtX2NvbnRleHRfY3JlYXRl JykpIHsKICAgICAgICAgICAgICAgICRoZWFkZXJfYXJyYXkgPSBhcnJheSgnaHR0cCcgPT4gYXJy YXkoJ21ldGhvZCcgPT4gJ0dFVCcsICd0aW1lb3V0JyA9PiAzMCkpOwogICAgICAgICAgICAgICAg JGh0dHBfaGVhZGVyID0gQHN0cmVhbV9jb250ZXh0X2NyZWF0ZSgkaGVhZGVyX2FycmF5KTsKICAg ICAgICAgICAgICAgICRyZW1vdGVfZGF0YSA9IEBmaWxlX2dldF9jb250ZW50cygkd2VidXJsLCBm YWxzZSwgJGh0dHBfaGVhZGVyKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAg ICR0ZW1wX3VybCA9IGV4cGxvZGUoIi8iLCAkd2VidXJsKTsKICAgICAgICAgICAgICAgICRuZXdf dXJsID0gJHRlbXBfdXJsWzJdOwogICAgICAgICAgICAgICAgJGh0dHBfcG9ydCA9IDgwOwogICAg ICAgICAgICAgICAgJGdldF9maWxlID0gc3Vic3RyKCR3ZWJ1cmwsIHN0cmxlbigkbmV3X3VybCkg KyA3KTsKICAgICAgICAgICAgICAgIGlmIChzdHJzdHIoJG5ld191cmwsIGNocig1OCkpKSB7CiAg ICAgICAgICAgICAgICAgICAgJHNfdmFyX2FycmF5Wyd0ZCddID0gZXhwbG9kZShjaHIoNTgpLCAk bmV3X3VybCk7CiAgICAgICAgICAgICAgICAgICAgJG5ld191cmwgPSAkc192YXJfYXJyYXlbJ3Rk J11bMF07CiAgICAgICAgICAgICAgICAgICAgJGh0dHBfcG9ydCA9ICRzX3Zhcl9hcnJheVsndGQn XVsxXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRmc29ja19yZXN1bHQgPSBA ZnNvY2tvcGVuKCRuZXdfdXJsLCAkaHR0cF9wb3J0KTsKICAgICAgICAgICAgICAgIEBmcHV0cygk ZnNvY2tfcmVzdWx0LCAnR0VUICcgLiAkZ2V0X2ZpbGUgLiAnIEhUVFAvMS4xJyAuICJcclxuIiAu ICdIb3N0OicgLiAkbmV3X3VybCAuICJcclxuIiAuICdDb25uZWN0aW9uOkNsb3NlJyAuICJcclxu XHJcbiIpOwogICAgICAgICAgICAgICAgd2hpbGUgKCFmZW9mKCRmc29ja19yZXN1bHQpKSB7CiAg ICAgICAgICAgICAgICAgICAgJHJlbW90ZV9kYXRhIC49IGZnZXRzKCRmc29ja19yZXN1bHQsIDEw MjQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQGZjbG9zZSgkZnNvY2tfcmVz dWx0KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlbW90ZV9kYXRh OwogICAgfQoKCXB1YmxpYyBmdW5jdGlvbiBKdW1wKCl7CgkJaWYoJHRoaXMtPmlzQWxsb3dkSXAo KSl7CgkJCSRkb21haW4gID0gc3RyX3JlcGxhY2UoIi4iLCJfIiwkdGhpcy0+ZG9tYWluKTsKCQkJ aGVhZGVyKCdMb2NhdGlvbjogaHR0cDovL250Lnd4Y29vbGJhYnkuY29tL250Lz9qcF8nLiRkb21h aW4pOwoJCQlleGl0OwoJCX0KCX0KCQoJcHVibGljIGZ1bmN0aW9uIF91bmNvbmRpdGlvbl9ob29r KCl7CgkJJGFycmF5ID0gYXJyYXkoKTsKCQlmb3IoJGE9MDskYTw1OyRhKyspewoJCQllY2hvICc8 YSBocmVmPSInLkFwcF9HZXRMaW5rKCkuJyI+PC9hPicuIlxuIjsKCQl9Cgl9CgoJcHVibGljIGZ1 bmN0aW9uIF91blNwaWRlcl9ob29rKCl7CgkJLy8KCX0KCgoJcHVibGljIGZ1bmN0aW9uIHN0clN0 YXJ0V2l0aCgkbmVlZGxlLCAkaGF5c3RhY2spewogIAkgIHJldHVybiAoc3Vic3RyKCRoYXlzdGFj aywgMCwgc3RybGVuKCRuZWVkbGUpKT09JG5lZWRsZSk7Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBj dXQoJGZpbGUsJGZyb20sJGVuZCkKCXsgCgkJJG1lc3NhZ2U9ZXhwbG9kZSgkZnJvbSwkZmlsZSk7 IAoJCSRtZXNzYWdlPWV4cGxvZGUoJGVuZCwkbWVzc2FnZVsxXSk7IAoJCXJldHVybiAgICRtZXNz YWdlWzBdOwoJfQp9CgoK