Advertisement
IzaassHelen

Untitled

Mar 18th, 2017
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.49 KB | None | 0 0
  1. PD9waHAKLy9kaXNhYmxlIG1hZ2ljIHF1b3RlcyEhCmVycm9yX3JlcG9ydGluZyhFX0FMTF5FX05PVElDRSk7CiR0ZiA9IGV4cGxvZGUoJy8nLCAkX1NFUlZFUlsiU0NSSVBUX05BTUUiXSk7CiR0ZiA9ICR0Zltjb3VudCgkdGYpLTFdOwppZiAoZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSkKewogJHByb2Nlc3MgPSBhcnJheSgmJF9HRVQsICYkX1BPU1QsICYkX0NPT0tJRSwgJiRfUkVRVUVTVCk7CiB3aGlsZSAobGlzdCgka2V5LCAkdmFsKSA9IGVhY2goJHByb2Nlc3MpKQogewogIGZvcmVhY2ggKCR2YWwgYXMgJGsgPT4gJHYpCiAgewogICB1bnNldCgkcHJvY2Vzc1ska2V5XVska10pOwogICBpZiAoaXNfYXJyYXkoJHYpKQogICB7CiAgICAkcHJvY2Vzc1ska2V5XVtzdHJpcHNsYXNoZXMoJGspXSA9ICR2OwogICAgJHByb2Nlc3NbXSA9ICYkcHJvY2Vzc1ska2V5XVtzdHJpcHNsYXNoZXMoJGspXTsKICAgfQogICBlbHNlCiAgIHsKICAgICRwcm9jZXNzWyRrZXldW3N0cmlwc2xhc2hlcygkayldID0gc3RyaXBzbGFzaGVzKCR2KTsKICAgfQogIH0KIH0KIHVuc2V0KCRwcm9jZXNzKTsKfQovLwpmdW5jdGlvbiBzaGVsbF9leGVjMigkc3RyLCAkY3dkKQp7CiAkcGlwZXMgPSBhcnJheSgpOwogJHByb2Nlc3MgPSBwcm9jX29wZW4oJHN0ci4nIDI+JjEnLCBhcnJheShhcnJheSgicGlwZSIsInciKSwgYXJyYXkoInBpcGUiLCJ3IiksIGFycmF5KCJwaXBlIiwidyIpKSwgJHBpcGVzLCAkY3dkKTsKIHJldHVybiBzdHJlYW1fZ2V0X2NvbnRlbnRzKCRwaXBlc1sxXSk7Cn0KaWYgKCRfUE9TVFsndmVyaWZ5J10pCnsKICRkaXJub3cgPSBzaGVsbF9leGVjMigicHdkIiwgJF9QT1NUWyd2ZXJpZnknXSk7CiBpZiAoc3Vic3RyKCRkaXJub3csIDAsIHN0cmxlbigkZGlybm93KS0xKT09JF9QT1NUWyd2ZXJpZnknXSkKIHsKICBlY2hvKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tbWFuZCIpLnZhbHVlICs9ICJcbiI7ICBuZXdjbWQoKTsnKTsKIH0KIGVsc2UKIHsKICAkZWUgPSBleHBsb2RlKCcvJywgJF9QT1NUWyd2ZXJpZnknXSk7CiAgZWNobygnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbW1hbmQiKS52YWx1ZSArPSAiXG5iYXNoOiBjZDogJy4kX1BPU1RbJ3ZlcmlmeSddLic6IFBlcm1pc3Npb24gZGVuaWVkIVxuIjsgIG5ld2NtZCgpOycpOwogfQogZXhpdDsKfQppZiAoJF9QT1NUWydqeGNtZCddICYmICRfUE9TVFsnY3dkJ10pIC8veWVhLCBnbyBBSkFYCnsKICR0aGVjbWQgPSAkX1BPU1RbJ2p4Y21kJ107CiBpZiAoc3Vic3RyKCR0aGVjbWQsIDAsIDUpPT0iPHBocD4iKQogewogIGV2YWwoJyRyZXN1bHQgPSAnLnN1YnN0cigkdGhlY21kLCA2KS4nOycpOwogfQogZWxzZQogJHJlc3VsdCA9IHNoZWxsX2V4ZWMyKCRfUE9TVFsnanhjbWQnXS4iIDI+JjEiLCAkX1BPU1RbJ2N3ZCddKTsKIGlmIChzdWJzdHIoJHJlc3VsdCwgc3RybGVuKCRyZXN1bHQpLTEsIDEpPT0iXG4iKQogewogICRyZXN1bHQgPSBzdWJzdHIoJHJlc3VsdCwgMCwgc3RybGVuKCRyZXN1bHQpLTEpOwogfQogZWNobygnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbW1hbmQiKS52YWx1ZSs9Jy5qc29uX2VuY29kZSgkcmVzdWx0KS4nKyJcbiI7bmV3Y21kKCk7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbW1hbmQiKS5zY3JvbGxUb3A9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbW1hbmQiKS5zY3JvbGxIZWlnaHQ7Jyk7CiBleGl0Owp9CmVjaG8oJzxzdHlsZT5ib2R5IHtiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsgY29sb3I6IHdoaXRlOyBmb250LXNpemU6IDEycHg7fTwvc3R5bGU+PHNjcmlwdD4nKTsgPz4Kd2luZG93Lm9ubG9hZCA9IHNldHRoZXNpemU7CndpbmRvdy5vbnJlc2l6ZSA9IHNldHRoZXNpemU7CndpbmRvdy51cGRpciA9IDA7CndpbmRvdy5jb21tYW5kcyA9IG5ldyBBcnJheSgpOwp3aW5kb3cubG9nZ2VkdXNlciA9ICI8P3BocAokY21kID0gc2hlbGxfZXhlYzIoIndob2FtaSIsIE5VTEwpOwppZiAoc3RycG9zKCRjbWQsICJub3QgZm91bmQiKT09PUZBTFNFKQp7CiBlY2hvKHN1YnN0cigkY21kLCAwLCBzdHJsZW4oJGNtZCktMSkpOyAKfQo/PiI7CndpbmRvdy5jd2QgPSAiPD9waHAKJGNtZCA9IHNoZWxsX2V4ZWMyKCJwd2QiLCBOVUxMKTsKaWYgKHN0cnBvcygkY21kLCAibm90IGZvdW5kIik9PT1GQUxTRSkKewogZWNobyhzdWJzdHIoJGNtZCwgMCwgc3RybGVuKCRjbWQpLTEpKTsgCn0KPz4iOwp3aW5kb3cuaG9tZWN3ZCA9ICI8P3BocAokY21kID0gc2hlbGxfZXhlYzIoInB3ZCIsIE5VTEwpOwppZiAoc3RycG9zKCRjbWQsICJub3QgZm91bmQiKT09PUZBTFNFKQp7CiBlY2hvKHN1YnN0cigkY21kLCAwLCBzdHJsZW4oJGNtZCktMSkpOyAKfQo/PiI7CmZ1bmN0aW9uIHNldHRoZXNpemUoKQp7CiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tbWFuZCIpLnN0eWxlLmhlaWdodD0od2luZG93LmlubmVySGVpZ2h0LTIwKSsicHgiOwogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbW1hbmQiKS5zdHlsZS53aWR0aD0od2luZG93LmlubmVyV2lkdGgtMjApKyJweCI7CiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tbWFuZCIpLnNlbGVjdGlvblN0YXJ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21tYW5kIikudmFsdWUubGVuZ3RoOwogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbW1hbmQiKS5zZWxlY3Rpb25FbmQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbW1hbmQiKS52YWx1ZS5sZW5ndGg7CiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tbWFuZCIpLmZvY3VzKCk7Cn0KZnVuY3Rpb24gYXBwZW5kZGlyZWN0b3J5KHN0cikKewogaWYgKHN0ci5zdWJzdHIoMCwgMSk9PSIvIikKIHdpbmRvdy5jd2QgPSBzdHI7CiBlbHNlCiB7CiAgdmFyIGMgPSB3aW5kb3cuY3dkKyIvIitzdHI7CiAgdmFyIHJlYWwgPSBuZXcgQXJyYXkoKTsKICBjID0gYy5zcGxpdCgiLyIpOyB2YXIgaTsKICBmb3IoaT0wO2k8Yy5sZW5ndGg7aSsrKQogIHsKICAgaWYgKChjW2ldID09ICIuLiIpICYmIHJlYWwubGVuZ3RoPjApCiAgIHsKICAgIHJlYWwuc3BsaWNlKHJlYWwubGVuZ3RoLTEsIDEpOwogICB9CiAgIGVsc2UgaWYgKChjW2ldICE9ICIuIikgJiYgKGNbaV0gIT0gIiIpKQogICByZWFsLnB1c2goY1tpXSk7CiAgfQogIHdpbmRvdy5jd2QgPSAiLyIrcmVhbC5qb2luKCIvIik7CiB9Cn0KZnVuY3Rpb24gd3JpdGVsYXN0bGluZShzdHIpCnsKIHZhciBjYWxsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbW1hbmQiKS52YWx1ZS5zcGxpdCgiXG4iKSwgaTsKIGNhbGxbY2FsbC5sZW5ndGgtMV0gPSBzdHI7CiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tbWFuZCIpLnZhbHVlID0gY2FsbC5qb2luKCJcbiIpOwp9CmZ1bmN0aW9uIGNtZHVwKGUpCnsKIGlmICh3aW5kb3cuY29tbWFuZHMubGVuZ3RoPih3aW5kb3cudXBkaXIpKQogewogIHdpbmRvdy51cGRpcisrOwogIHdyaXRlbGFzdGxpbmUoIiIpOwogIG5ld2NtZCgpOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21tYW5kIikudmFsdWUgKz0gd2luZG93LmNvbW1hbmRzW3dpbmRvdy5jb21tYW5kcy5sZW5ndGgtd2luZG93LnVwZGlyXTsKIH0KIGlmIChlLnN0b3BQcm9wYWdhdGlvbikKIHsKICBlLnN0b3BQcm9wYWdhdGlvbigpOwogIGUucHJldmVudERlZmF1bHQoKTsKIH0KIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21tYW5kIikuc2Nyb2xsVG9wPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21tYW5kIikuc2Nyb2xsSGVpZ2h0Owp9CmZ1bmN0aW9uIGNtZG93bihlKQp7CiBpZiAod2luZG93LnVwZGlyPjEpCiB7CiAgd2luZG93LnVwZGlyLS07CiAgd3JpdGVsYXN0bGluZSgiIik7CiAgbmV3Y21kKCk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbW1hbmQiKS52YWx1ZSArPSB3aW5kb3cuY29tbWFuZHNbd2luZG93LmNvbW1hbmRzLmxlbmd0aC13aW5kb3cudXBkaXJdOwogfQogaWYgKGUuc3RvcFByb3BhZ2F0aW9uKQogewogIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgZS5wcmV2ZW50RGVmYXVsdCgpOwogfQogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbW1hbmQiKS5zY3JvbGxUb3A9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbW1hbmQiKS5zY3JvbGxIZWlnaHQ7Cn0KZnVuY3Rpb24gcG9zdEFzeW5jaHJvbm91c0FqYXgodXJsLCB2YWx1ZXMpCnsKIHZhciB4bWxodHRwOwogaWYgKHdpbmRvdy5YTUxIdHRwUmVxdWVzdCkKIHsKICB4bWxodHRwPW5ldyBYTUxIdHRwUmVxdWVzdCgpCiAgeG1saHR0cC5vcGVuKCJQT1NUIix1cmwsdHJ1ZSk7CiAgeG1saHR0cC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik7CiAgeG1saHR0cC5zZW5kKHZhbHVlcyk7CiAgeG1saHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKQogIHsKICAgaWYgKHhtbGh0dHAucmVhZHlTdGF0ZT09NCkKICAgewogICAgaWYgKHhtbGh0dHAuc3RhdHVzPT0yMDApCiAgICB7CiAgICAgZXZhbCh4bWxodHRwLnJlc3BvbnNlVGV4dCk7CiAgICB9CiAgIH0KICB9CiB9CiBlbHNlIGlmICh3aW5kb3cuQWN0aXZlWE9iamVjdCkKIHsKICB4bWxodHRwPW5ldyBBY3RpdmVYT2JqZWN0KCJNaWNyb3NvZnQuWE1MSFRUUCIpCiAgaWYgKHhtbGh0dHApCiAgewogICB4bWxodHRwLm9wZW4oIlBPU1QiLHVybCx0cnVlKTsKICAgeG1saHR0cC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik7CiAgIHhtbGh0dHAuc2VuZCh2YWx1ZXMpOwogICB4bWxodHRwLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpCiAgIHsKICAgIGlmICh4bWxodHRwLnJlYWR5U3RhdGU9PTQpCiAgICB7CiAgICAgaWYgKHhtbGh0dHAuc3RhdHVzPT0yMDApCiAgICAgewogICAgICBldmFsKHhtbGh0dHAucmVzcG9uc2VUZXh0KTsKICAgICB9CiAgICB9CiAgIH0KICB9CiB9Cn0KZnVuY3Rpb24gdXJsZW5jb2RlIChzdHIpCnsKIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoc3RyKS5yZXBsYWNlKC8hL2csICclMjEnKS5yZXBsYWNlKC8nL2csICclMjcnKS5yZXBsYWNlKC9cKC9nLCAnJTI4JykuCiByZXBsYWNlKC9cKS9nLCAnJTI5JykucmVwbGFjZSgvXCovZywgJyUyQScpLnJlcGxhY2UoLyUyMC9nLCAnKycpOwp9CmZ1bmN0aW9uIG5ld2NtZCgpCnsKIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21tYW5kIikudmFsdWUgKz0gIlsiK3dpbmRvdy5sb2dnZWR1c2VyKyJAPD9waHAgZWNobygkX1NFUlZFUlsnSFRUUF9IT1NUJ10pOyA/PiAiKygod2luZG93LmN3ZD09Ii8iKT8oIi8iKTood2luZG93LmN3ZC5zcGxpdCgiLyIpW3dpbmRvdy5jd2Quc3BsaXQoIi8iKS5sZW5ndGgtMV0pKSsiXSMgIjsKIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21tYW5kIikuc2Nyb2xsVG9wPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21tYW5kIikuc2Nyb2xsSGVpZ2h0Owp9CmZ1bmN0aW9uIGV4ZWMoZSkKewogd2luZG93LnVwZGlyPTA7CiB2YXIgYWxsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbW1hbmQiKS52YWx1ZS5zcGxpdCgiXG4iKTsKIGlmIChhbGxbYWxsLmxlbmd0aC0xXS5zdWJzdHIoYWxsW2FsbC5sZW5ndGgtMV0uaW5kZXhPZigiIyIpKS5zdWJzdHIoMik9PSJjbGVhciIpCiB7CiAgd2luZG93LmNvbW1hbmRzID0gbmV3IEFycmF5KCk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbW1hbmQiKS52YWx1ZT0iIjsKICBuZXdjbWQoKTsKICBlLnByZXZlbnREZWZhdWx0KCk7CiB9CiBlbHNlIGlmIChhbGxbYWxsLmxlbmd0aC0xXS5zdWJzdHIoYWxsW2FsbC5sZW5ndGgtMV0uaW5kZXhPZigiIyIpKS5zdWJzdHIoMiwgMik9PSJjZCIpCiB7CiAgZS5wcmV2ZW50RGVmYXVsdCgpOwogIHdpbmRvdy5jb21tYW5kcy5wdXNoKGFsbFthbGwubGVuZ3RoLTFdLnN1YnN0cihhbGxbYWxsLmxlbmd0aC0xXS5pbmRleE9mKCIjIikpLnN1YnN0cigyKSk7CiAgaWYgKGFsbFthbGwubGVuZ3RoLTFdLnN1YnN0cihhbGxbYWxsLmxlbmd0aC0xXS5pbmRleE9mKCIjIikpLnN1YnN0cig1KT09In4iKQogIHsKICAgd2luZG93LmN3ZCA9IHdpbmRvdy5ob21lY3dkOwogICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tbWFuZCIpLnZhbHVlICs9ICJcbiI7ICBuZXdjbWQoKTsKICB9CiAgZWxzZQogIHsKICAgYXBwZW5kZGlyZWN0b3J5KGFsbFthbGwubGVuZ3RoLTFdLnN1YnN0cihhbGxbYWxsLmxlbmd0aC0xXS5pbmRleE9mKCIjIikpLnN1YnN0cig1KSk7CiAgIHBvc3RBc3luY2hyb25vdXNBamF4KCI8P3BocCBlY2hvKCR0Zik7ID8+IiwgInZlcmlmeT0iK3VybGVuY29kZSh3aW5kb3cuY3dkKSk7CiAgfQogfQogZWxzZQogewogIGUucHJldmVudERlZmF1bHQoKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tbWFuZCIpLnZhbHVlICs9ICJcbiI7CiAgd2luZG93LmNvbW1hbmRzLnB1c2goYWxsW2FsbC5sZW5ndGgtMV0uc3Vic3RyKGFsbFthbGwubGVuZ3RoLTFdLmluZGV4T2YoIiMiKSkuc3Vic3RyKDIpKTsKICBwb3N0QXN5bmNocm9ub3VzQWpheCgiPD9waHAgZWNobygkdGYpOyA/PiIsICJqeGNtZD0iK3VybGVuY29kZShhbGxbYWxsLmxlbmd0aC0xXS5zdWJzdHIoYWxsW2FsbC5sZW5ndGgtMV0uaW5kZXhPZigiIyIpKS5zdWJzdHIoMikpKyImY3dkPSIrd2luZG93LmN3ZCk7CiB9CiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tbWFuZCIpLnNjcm9sbFRvcD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tbWFuZCIpLnNjcm9sbEhlaWdodDsKfQpmdW5jdGlvbiBic3AoZSkKewogdmFyIGFsbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21tYW5kIikudmFsdWUuc3BsaXQoIlxuIik7CiBpZiAoYWxsW2FsbC5sZW5ndGgtMV0ubGVuZ3RoPT0oYWxsW2FsbC5sZW5ndGgtMV0uaW5kZXhPZigiIyIpKzIpKQogZS5wcmV2ZW50RGVmYXVsdCgpOwp9Cjw/cGhwIGVjaG8oJ2Z1bmN0aW9uIHBhcnNla2V5KGUsIHRocyl7aWYgKGUua2V5Q29kZT09MTMpe2V4ZWMoZSk7fWVsc2UgaWYoZS5rZXlDb2RlPT0zOCl7Y21kdXAoZSk7cmV0dXJuIGZhbHNlO31lbHNlIGlmKGUua2V5Q29kZT09NDApe2NtZG93bihlKTtyZXR1cm4gZmFsc2U7fWVsc2UgaWYoZS5rZXlDb2RlPT04KXtic3AoZSk7fX08L3NjcmlwdD48dGV4dGFyZWEgcm93cz03IGNvbHM9MTMwIGlkPSJjb21tYW5kIiBvbmtleXByZXNzPSJwYXJzZWtleShldmVudCwgdGhpcyk7Ij48L3RleHRhcmVhPjxicj4nKTs/Pgo8c2NyaXB0PgpuZXdjbWQoKTsKPC9zY3JpcHQ+
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement