Intel
Industry insights, tax strategies, and business intelligence from Insight Accounting CPA
All
Load More
KGZ1bmN0aW9uKCkgewogICAgJ3VzZSBzdHJpY3QnOwogICAgY29uc3QgQVBJID0gJ2h0dHBzOi8vaW5zaWdodHNjcGEuY2Evd3AtanNvbi93cC92Mi8nOwogICAgY29uc3QgUEVSX1BBR0UgPSA2OwogICAgbGV0IHBhZ2UgPSAxLCB0b3RhbFBhZ2VzID0gMSwgY2F0RmlsdGVyID0gJycsIHNlYXJjaCA9ICcnLCBsb2FkaW5nID0gZmFsc2U7CiAgICBsZXQgY2F0cyA9IFtdLCB0aW1lciA9IG51bGw7CiAgICBjb25zdCBncmlkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludGVsLXBvc3RzLWdyaWQnKTsKICAgIGNvbnN0IGNhdEJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnRlbC1jYXRlZ29yaWVzJyk7CiAgICBjb25zdCBzZWFyY2hJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnRlbC1zZWFyY2gtaW5wdXQnKTsKICAgIGNvbnN0IGxvYWRNb3JlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludGVsLWxvYWQtbW9yZScpOwogICAgY29uc3QgbG9hZEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnRlbC1sb2FkLW1vcmUtYnRuJyk7CgogICAgZnVuY3Rpb24gZ3JhZGllbnRGb3IoaWQpIHsKICAgICAgICBjb25zdCBjID0gW1snIzU5MmQ3MCcsJyNiMzQxNjUnXSxbJyNiMzQxNjUnLCcjNTkyZDcwJ10sWycjM2IwYTQ1JywnIzViMmQ3MCddLFsnIzdjMmQ5MCcsJyNkMzQxNzUnXV07CiAgICAgICAgcmV0dXJuICdsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCcgKyBjWyhpZHx8MCklYy5sZW5ndGhdWzBdICsgJywnICsgY1soaWR8fDApJWMubGVuZ3RoXVsxXSArICcpJzsKICAgIH0KICAgIGZ1bmN0aW9uIGZtdERhdGUocykgewogICAgICAgIHJldHVybiBuZXcgRGF0ZShzKS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLVVTJywge3llYXI6J251bWVyaWMnLG1vbnRoOidzaG9ydCcsZGF5OidudW1lcmljJ30pOwogICAgfQogICAgZnVuY3Rpb24gc3RyaXAoaCkgeyB2YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgZC5pbm5lckhUTUw9aDsgcmV0dXJuIGQudGV4dENvbnRlbnR8fCcnOyB9CiAgICBmdW5jdGlvbiBza2VsZXRvbigpIHsKICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9ImludGVsLXNrZWxldG9uIj48ZGl2IGNsYXNzPSJpbnRlbC1za2VsZXRvbi1pbWFnZSI+PC9kaXY+PGRpdiBjbGFzcz0iaW50ZWwtc2tlbGV0b24tY29udGVudCI+PGRpdiBjbGFzcz0iaW50ZWwtc2tlbGV0b24tbGluZSI+PC9kaXY+PGRpdiBjbGFzcz0iaW50ZWwtc2tlbGV0b24tbGluZSI+PC9kaXY+PGRpdiBjbGFzcz0iaW50ZWwtc2tlbGV0b24tbGluZSI+PC9kaXY+PGRpdiBjbGFzcz0iaW50ZWwtc2tlbGV0b24tbGluZSI+PC9kaXY+PC9kaXY+PC9kaXY+JzsKICAgIH0KCiAgICBmdW5jdGlvbiBjYXJkKHApIHsKICAgICAgICB2YXIgaW1nID0gJyc7CiAgICAgICAgaWYgKHAuX2VtYmVkZGVkICYmIHAuX2VtYmVkZGVkWyd3cDpmZWF0dXJlZG1lZGlhJ10gJiYgcC5fZW1iZWRkZWRbJ3dwOmZlYXR1cmVkbWVkaWEnXVswXSkgewogICAgICAgICAgICB2YXIgbSA9IHAuX2VtYmVkZGVkWyd3cDpmZWF0dXJlZG1lZGlhJ11bMF07CiAgICAgICAgICAgIHZhciB1cmwgPSBtLnNvdXJjZV91cmwgfHwgJyc7CiAgICAgICAgICAgIGlmICh1cmwpIGltZyA9ICc8aW1nIHNyYz0iJyt1cmwrJyIgYWx0PSIiIGxvYWRpbmc9ImxhenkiPic7CiAgICAgICAgfQogICAgICAgIHZhciBjYXROYW1lID0gJ0luc2lnaHQnOwogICAgICAgIHZhciBjYXRJZCA9IDA7CiAgICAgICAgaWYgKHAuY2F0ZWdvcmllcyAmJiBwLmNhdGVnb3JpZXMubGVuZ3RoKSB7CiAgICAgICAgICAgIGNhdElkID0gcC5jYXRlZ29yaWVzWzBdOwogICAgICAgICAgICB2YXIgYyA9IGNhdHMuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5pZD09PWNhdElkO30pOwogICAgICAgICAgICBpZiAoYykgY2F0TmFtZSA9IGMubmFtZTsKICAgICAgICB9CiAgICAgICAgdmFyIGF1dGhvciA9ICdCYWRlciBBLiBDaG93ZHJ5LCBDUEEsIENBLCBMUEEnOwogICAgICAgIGlmIChwLl9lbWJlZGRlZCAmJiBwLl9lbWJlZGRlZC5hdXRob3IgJiYgcC5fZW1iZWRkZWQuYXV0aG9yWzBdICYmIHAuX2VtYmVkZGVkLmF1dGhvclswXS5uYW1lKSBhdXRob3IgPSBwLl9lbWJlZGRlZC5hdXRob3JbMF0ubmFtZTsKICAgICAgICB2YXIgZXggPSBzdHJpcChwLmV4Y2VycHQucmVuZGVyZWQpLnN1YnN0cmluZygwLDE4MCk7CiAgICAgICAgaWYgKGV4Lmxlbmd0aCA+PSAxODApIGV4ICs9ICcuLi4nOwogICAgICAgIHZhciBwaCA9ICFpbWcgPyAnIHN0eWxlPSJiYWNrZ3JvdW5kOicrZ3JhZGllbnRGb3IoY2F0SWQpKyciJyA6ICcnOwogICAgICAgIHJldHVybiAnPGEgaHJlZj0iJytwLmxpbmsrJyIgY2xhc3M9ImludGVsLWNhcmQiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjppbmhlcml0OyI+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJpbnRlbC1jYXJkLWltYWdlIicrcGgrJz4nICsgaW1nICsgJzwvZGl2PicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0iaW50ZWwtY2FyZC1jb250ZW50Ij4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImludGVsLWNhcmQtbWV0YSI+PHNwYW4gY2xhc3M9ImludGVsLWNhcmQtY2F0ZWdvcnkiPicrY2F0TmFtZSsnPC9zcGFuPicgKwogICAgICAgICAgICAnPHNwYW4gY2xhc3M9ImludGVsLWNhcmQtZGF0ZSI+PHN2ZyBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiPjxyZWN0IHg9IjMiIHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiIHJ5PSIyIiBzdHJva2Utd2lkdGg9IjIiLz48bGluZSB4MT0iMTYiIHkxPSIyIiB4Mj0iMTYiIHkyPSI2IiBzdHJva2Utd2lkdGg9IjIiLz48bGluZSB4MT0iOCIgeTE9IjIiIHgyPSI4IiB5Mj0iNiIgc3Ryb2tlLXdpZHRoPSIyIi8+PGxpbmUgeDE9IjMiIHkxPSIxMCIgeDI9IjIxIiB5Mj0iMTAiIHN0cm9rZS13aWR0aD0iMiIvPjwvc3ZnPiAnK2ZtdERhdGUocC5kYXRlKSsnPC9zcGFuPjwvZGl2PicgKwogICAgICAgICAgICAnPGgzIGNsYXNzPSJpbnRlbC1jYXJkLXRpdGxlIj4nK3AudGl0bGUucmVuZGVyZWQrJzwvaDM+JyArCiAgICAgICAgICAgICc8cCBjbGFzcz0iaW50ZWwtY2FyZC1leGNlcnB0Ij4nK2V4Kyc8L3A+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJpbnRlbC1jYXJkLWF1dGhvciI+PHN2ZyBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Ik0yMCAyMXYtMmE0IDQgMCAwMC00LTRIOGE0IDQgMCAwMC00IDR2MiIgc3Ryb2tlLXdpZHRoPSIyIi8+PGNpcmNsZSBjeD0iMTIiIGN5PSI3IiByPSI0IiBzdHJva2Utd2lkdGg9IjIiLz48L3N2Zz4gJythdXRob3IrJzwvZGl2PicgKwogICAgICAgICAgICAnPC9kaXY+PC9hPic7CiAgICB9CgogICAgZnVuY3Rpb24gbG9hZFBvc3RzKGFwcGVuZCkgewogICAgICAgIGlmIChsb2FkaW5nKSByZXR1cm47CiAgICAgICAgbG9hZGluZyA9IHRydWU7CiAgICAgICAgaWYgKCFhcHBlbmQpIHsgZ3JpZC5pbm5lckhUTUwgPSBza2VsZXRvbigpK3NrZWxldG9uKCkrc2tlbGV0b24oKStza2VsZXRvbigpOyBwYWdlID0gMTsgfQogICAgICAgIGxvYWRCdG4gJiYgKGxvYWRCdG4uZGlzYWJsZWQgPSB0cnVlLCBsb2FkQnRuLnRleHRDb250ZW50ID0gJ0xvYWRpbmcuLi4nKTsKICAgICAgICB2YXIgdXJsID0gQVBJICsgJ3Bvc3RzP19lbWJlZCZwZXJfcGFnZT0nK1BFUl9QQUdFKycmcGFnZT0nK3BhZ2U7CiAgICAgICAgaWYgKGNhdEZpbHRlcikgdXJsICs9ICcmY2F0ZWdvcmllcz0nK2NhdEZpbHRlcjsKICAgICAgICBpZiAoc2VhcmNoKSB1cmwgKz0gJyZzZWFyY2g9JytlbmNvZGVVUklDb21wb25lbnQoc2VhcmNoKTsKICAgICAgICBmZXRjaCh1cmwpLnRoZW4oZnVuY3Rpb24ocikgewogICAgICAgICAgICB0b3RhbFBhZ2VzID0gcGFyc2VJbnQoci5oZWFkZXJzLmdldCgnWC1XUC1Ub3RhbFBhZ2VzJykpfHwxOwogICAgICAgICAgICBpZiAoIXIub2spIHRocm93IG5ldyBFcnJvcihyLnN0YXR1cyk7CiAgICAgICAgICAgIHJldHVybiByLmpzb24oKTsKICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKHBvc3RzKSB7CiAgICAgICAgICAgIGlmICghYXBwZW5kKSBncmlkLmlubmVySFRNTCA9ICcnOwogICAgICAgICAgICBpZiAoIXBvc3RzLmxlbmd0aCAmJiAhYXBwZW5kKSB7CiAgICAgICAgICAgICAgICBncmlkLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJpbnRlbC1lbXB0eSIgc3R5bGU9ImdyaWQtY29sdW1uOjEvLTEiPjxzdmcgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjEuNSIgZD0iTTIxIDIxbC02LTZtMi01YTcgNyAwIDExLTE0IDAgNyA3IDAgMDExNCAweiIvPjwvc3ZnPjxoMz5ObyBhcnRpY2xlcyBmb3VuZDwvaDM+PHA+VHJ5IGEgZGlmZmVyZW50IHNlYXJjaCBvciBjYXRlZ29yeTwvcD48L2Rpdj4nOwogICAgICAgICAgICAgICAgbG9hZE1vcmUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHBvc3RzLmZvckVhY2goZnVuY3Rpb24ocCkgeyBncmlkLmlubmVySFRNTCArPSBjYXJkKHApOyB9KTsKICAgICAgICAgICAgICAgIGxvYWRNb3JlLnN0eWxlLmRpc3BsYXkgPSBwYWdlIDwgdG90YWxQYWdlcyA/ICcnIDogJ25vbmUnOwogICAgICAgICAgICAgICAgbG9hZEJ0biAmJiAobG9hZEJ0bi5kaXNhYmxlZCA9IGZhbHNlLCBsb2FkQnRuLnRleHRDb250ZW50ID0gJ0xvYWQgTW9yZScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxvYWRpbmcgPSBmYWxzZTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGlmICghYXBwZW5kKSBncmlkLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJpbnRlbC1lcnJvciIgc3R5bGU9ImdyaWQtY29sdW1uOjEvLTEiPjxzdmcgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGQ9Ik0xMiA5djJtMCA0aC4wMU0yMSAxMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHoiLz48L3N2Zz48aDM+VW5hYmxlIHRvIGxvYWQgYXJ0aWNsZXM8L2gzPjxwPlBsZWFzZSB0cnkgcmVmcmVzaGluZyB0aGUgcGFnZTwvcD48L2Rpdj4nOwogICAgICAgICAgICBsb2FkaW5nID0gZmFsc2U7CiAgICAgICAgfSk7CiAgICB9CgogICAgZnVuY3Rpb24gbG9hZENhdHMoKSB7CiAgICAgICAgZmV0Y2goQVBJKydjYXRlZ29yaWVzP3Blcl9wYWdlPTUwJykudGhlbihmdW5jdGlvbihyKXtyZXR1cm4gci5qc29uKCk7fSkudGhlbihmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgIGNhdHMgPSBkYXRhLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gYy5jb3VudD4wICYmIGMubmFtZSE9PSdVbmNhdGVnb3JpemVkJzt9KTsKICAgICAgICAgICAgY2F0cy5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsKICAgICAgICAgICAgICAgIHZhciBidG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKICAgICAgICAgICAgICAgIGJ0bi5jbGFzc05hbWUgPSAnaW50ZWwtY2F0ZWdvcnktcGlsbCc7CiAgICAgICAgICAgICAgICBidG4uZGF0YXNldC5jYXRlZ29yeSA9IGMuaWQ7CiAgICAgICAgICAgICAgICBidG4udGV4dENvbnRlbnQgPSBjLm5hbWU7CiAgICAgICAgICAgICAgICBidG4ub25jbGljayA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5pbnRlbC1jYXRlZ29yeS1waWxsJykuZm9yRWFjaChmdW5jdGlvbihwKXtwLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpO30pOwogICAgICAgICAgICAgICAgICAgIGlmIChjYXRGaWx0ZXIgPT0gYy5pZCkgeyBjYXRGaWx0ZXI9Jyc7IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWNhdGVnb3J5PSIiXScpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOyB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7IGNhdEZpbHRlcj1jLmlkOyBidG4uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7IH0KICAgICAgICAgICAgICAgICAgICBsb2FkUG9zdHMoZmFsc2UpOwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIGNhdEJhci5hcHBlbmRDaGlsZChidG4pOwogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIH0KCiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1jYXRlZ29yeT0iIl0nKS5vbmNsaWNrID0gZnVuY3Rpb24oKSB7CiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmludGVsLWNhdGVnb3J5LXBpbGwnKS5mb3JFYWNoKGZ1bmN0aW9uKHApe3AuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7fSk7CiAgICAgICAgdGhpcy5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgICBjYXRGaWx0ZXIgPSAnJzsKICAgICAgICBsb2FkUG9zdHMoZmFsc2UpOwogICAgfTsKCiAgICBzZWFyY2hJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKCkgewogICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7CiAgICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBzZWFyY2ggPSBzZWFyY2hJbnB1dC52YWx1ZS50cmltKCk7IGxvYWRQb3N0cyhmYWxzZSk7IH0sIDMwMCk7CiAgICB9KTsKCiAgICBsb2FkQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7IHBhZ2UrKzsgbG9hZFBvc3RzKHRydWUpOyB9KTsKCiAgICBsb2FkQ2F0cygpOwogICAgbG9hZFBvc3RzKGZhbHNlKTsKfSkoKTsK