1 line
30 KiB
JSON
1 line
30 KiB
JSON
{"remainingRequest":"D:\\办公文件\\前端\\node_modules\\thread-loader\\dist\\cjs.js!D:\\办公文件\\前端\\node_modules\\babel-loader\\lib\\index.js!D:\\办公文件\\前端\\node_modules\\cache-loader\\dist\\cjs.js??ref--1-0!D:\\办公文件\\前端\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\办公文件\\前端\\src\\views\\DPHome\\DPindexc.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\办公文件\\前端\\src\\views\\DPHome\\DPindexc.vue","mtime":1731490075525},{"path":"D:\\办公文件\\前端\\babel.config.js","mtime":1611135168000},{"path":"D:\\办公文件\\前端\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1711099308000},{"path":"D:\\办公文件\\前端\\node_modules\\thread-loader\\dist\\cjs.js","mtime":1711099308000},{"path":"D:\\办公文件\\前端\\node_modules\\babel-loader\\lib\\index.js","mtime":1711099310000},{"path":"D:\\办公文件\\前端\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1711099308000},{"path":"D:\\办公文件\\前端\\node_modules\\vue-loader\\lib\\index.js","mtime":1711099310000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnJlZHVjZS5qcyI7CmltcG9ydCB7IGdldFBheW1lbnREZXRhaWxzLCBxdWVyeVVzZXIsIHRyYW5zYWN0aW9ucywgcXVlcnlVc2VySWQsIGdldFpYUGF5bWVudERldGFpbHMsIGdldFJlYXNvbnMgfSBmcm9tICdAL2h0dHAnOwppbXBvcnQgd3ggZnJvbSAnd2VpeGluLWpzYXBpJzsKaW1wb3J0IGluc3RhbmNlIGZyb20gJy4uLy4uL2h0dHAvYXhpb3MnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ0hvbWUnLAogIG1ldGhvZHM6IHsKICAgIC8vIOiwg+i1t+W+ruS/oeaUr+S7mAoKICAgIHd4UHJlcGF5KCkgewogICAgICBpZiAodGhpcy5hbW91bnQgPT0gNjAwKSB7CiAgICAgICAgaWYgKHRoaXMuYW1vdW50ID09IDApIHsKICAgICAgICAgIC8vIOagueaNruadoeS7tuiuvue9riBiYXNlVVJMCiAgICAgICAgICBpZiAodGhpcy5hcHBpZCA9PT0gJ3d3YzI3NmY3YTAzNDdjMzEwYicpIHsKICAgICAgICAgICAgaWYgKHRoaXMuYWdlbnRpZCA9PT0gJzEwMDAwNzMnKSB7CiAgICAgICAgICAgICAgaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaS8nOwogICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYWdlbnRpZCA9PT0gJzY3OCcpIHsKICAgICAgICAgICAgICBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpMS8nOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXBwaWQgPT09ICd3d2ViOGI4NTI4NDYzMzRjMmYnKSB7CiAgICAgICAgICAgIGlmICh0aGlzLmFnZW50aWQgPT09ICcxMDAwMDA1JykgewogICAgICAgICAgICAgIC8vIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkyLyc7CiAgICAgICAgICAgICAgaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vMTkyLjE2OC4wLjExMDozMDA1Lyc7CiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5hZ2VudGlkID09PSAnMTAwMDAwNicpIHsKICAgICAgICAgICAgICBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpMy8nOwogICAgICAgICAgICAgIC8vIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovLzE3Mi4xNi42LjI4OjMwMDUvJzsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaS8nOwogICAgICAgICAgfQogICAgICAgICAgdHJhbnNhY3Rpb25zKCc/dXNlcj0nICsgdGhpcy51c2VyICsgJyZwcmljZT0nICsgdGhpcy5hbW91bnQgKyAnJm9wdGlvbj0nICsgdGhpcy52YWx1ZTEgKyAnJnBheW1lbnRkZXRhaWxzPScgKyB0aGlzLnBheW1lbnRkZXRhaWxzKS50aGVuKHJlcyA9PiB7CiAgICAgICAgICAgIGFsZXJ0KCfkvZnpop3lt7LmirXmiaMnKTsKICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAvLyDmoLnmja7mnaHku7borr7nva4gYmFzZVVSTAogICAgICAgICAgaWYgKHRoaXMuYXBwaWQgPT09ICd3d2MyNzZmN2EwMzQ3YzMxMGInKSB7CiAgICAgICAgICAgIGlmICh0aGlzLmFnZW50aWQgPT09ICcxMDAwMDczJykgewogICAgICAgICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkvJzsKICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFnZW50aWQgPT09ICc2NzgnKSB7CiAgICAgICAgICAgICAgaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaTEvJzsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFwcGlkID09PSAnd3dlYjhiODUyODQ2MzM0YzJmJykgewogICAgICAgICAgICBpZiAodGhpcy5hZ2VudGlkID09PSAnMTAwMDAwNScpIHsKICAgICAgICAgICAgICAvLyBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpMi8nOwogICAgICAgICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovLzE5Mi4xNjguMC4xMTA6MzAwNS8nOwogICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYWdlbnRpZCA9PT0gJzEwMDAwMDYnKSB7CiAgICAgICAgICAgICAgaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaTMvJzsKICAgICAgICAgICAgICAvLyBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly8xNzIuMTYuNi4yODozMDA1Lyc7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkvJzsKICAgICAgICAgIH0KICAgICAgICAgIHRyYW5zYWN0aW9ucygnP3VzZXI9JyArIHRoaXMudXNlciArICcmcHJpY2U9JyArIHRoaXMuYW1vdW50ICsgJyZvcHRpb249JyArIHRoaXMudmFsdWUxICsgJyZwYXltZW50ZGV0YWlscz0nICsgdGhpcy5wYXltZW50ZGV0YWlscykudGhlbihyZXMgPT4gewogICAgICAgICAgICBjb25zb2xlLmxvZygnc3VjY2VzcycpOwogICAgICAgICAgICAvKiBjb25zdCBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOwogICAgICAgICAgICBmb3JtLm5hbWUgPSAnZm9ybSc7CiAgICAgICAgICAgIGZvcm0ubWV0aG9kID0gJ3Bvc3QnOwogICAgICAgICAgICBmb3JtLmFjdGlvbiA9CiAgICAgICAgICAgIAknaHR0cHM6Ly9hZ2dwY3BheS5mdWlvdXBheS5jb20vYWdnaDVHYXRlLmZ1aW91JzsKICAgICAgICAgICAgCWNvbnN0IGlucHV0MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CiAgICAgICAgICAgIGlucHV0MS50eXBlID0gJ2hpZGRlbic7CiAgICAgICAgICAgIGlucHV0MS5uYW1lID0gJ21jaG50X2NkJzsKICAgICAgICAgICAgaW5wdXQxLnZhbHVlID0gJzAwMDEwMDBGNzE1MjI3OSc7CiAgICAgICAgICAgIGZvcm0uYXBwZW5kQ2hpbGQoaW5wdXQxKTsKICAgICAgICAgICAgCWNvbnN0IGlucHV0MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CiAgICAgICAgICAgIGlucHV0Mi50eXBlID0gJ2hpZGRlbic7CiAgICAgICAgICAgIGlucHV0Mi5uYW1lID0gJ21lc3NhZ2UnOwogICAgICAgICAgICBpbnB1dDIudmFsdWUgPSByZXMuZGF0YS5tZXNzYWdlOyAvLyDorr7nva7liqDlr4bmtojmga8KICAgICAgICAgICAgZm9ybS5hcHBlbmRDaGlsZChpbnB1dDIpOwogICAgICAgICAgICAJZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTsKICAgICAgICAgICAgCWZvcm0uc3VibWl0KCk7ICovCiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAodGhpcy5zdW0pIHsKICAgICAgICBpZiAodGhpcy5hbW91bnQgPT0gJycgfHwgdGhpcy5hbW91bnQgPCAwIHx8IHRoaXMuYW1vdW50ID4gdGhpcy5zdW0pIHsKICAgICAgICAgIGFsZXJ0KCfor7fovpPlhaXmraPnoa7nmoTph5Hpop0nKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKHRoaXMuYW1vdW50ID09IDApIHsKICAgICAgICAgICAgLy8g5qC55o2u5p2h5Lu26K6+572uIGJhc2VVUkwKICAgICAgICAgICAgaWYgKHRoaXMuYXBwaWQgPT09ICd3d2MyNzZmN2EwMzQ3YzMxMGInKSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMuYWdlbnRpZCA9PT0gJzEwMDAwNzMnKSB7CiAgICAgICAgICAgICAgICBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpLyc7CiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFnZW50aWQgPT09ICc2NzgnKSB7CiAgICAgICAgICAgICAgICBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpMS8nOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFwcGlkID09PSAnd3dlYjhiODUyODQ2MzM0YzJmJykgewogICAgICAgICAgICAgIGlmICh0aGlzLmFnZW50aWQgPT09ICcxMDAwMDA1JykgewogICAgICAgICAgICAgICAgLy8gaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaTIvJzsKICAgICAgICAgICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovLzE5Mi4xNjguMC4xMTA6MzAwNS8nOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5hZ2VudGlkID09PSAnMTAwMDAwNicpIHsKICAgICAgICAgICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkzLyc7CiAgICAgICAgICAgICAgICAvLyBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly8xNzIuMTYuNi4yODozMDA1Lyc7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkvJzsKICAgICAgICAgICAgfQogICAgICAgICAgICB0cmFuc2FjdGlvbnMoJz91c2VyPScgKyB0aGlzLnVzZXIgKyAnJnByaWNlPScgKyB0aGlzLmFtb3VudCArICcmb3B0aW9uPScgKyB0aGlzLnZhbHVlMSArICcmcGF5bWVudGRldGFpbHM9JyArIHRoaXMucGF5bWVudGRldGFpbHMpLnRoZW4ocmVzID0+IHsKICAgICAgICAgICAgICBhbGVydCgn5L2Z6aKd5bey5oq15omjJyk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8g5qC55o2u5p2h5Lu26K6+572uIGJhc2VVUkwKICAgICAgICAgICAgaWYgKHRoaXMuYXBwaWQgPT09ICd3d2MyNzZmN2EwMzQ3YzMxMGInKSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMuYWdlbnRpZCA9PT0gJzEwMDAwNzMnKSB7CiAgICAgICAgICAgICAgICBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpLyc7CiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFnZW50aWQgPT09ICc2NzgnKSB7CiAgICAgICAgICAgICAgICBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpMS8nOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFwcGlkID09PSAnd3dlYjhiODUyODQ2MzM0YzJmJykgewogICAgICAgICAgICAgIGlmICh0aGlzLmFnZW50aWQgPT09ICcxMDAwMDA1JykgewogICAgICAgICAgICAgICAgLy8gaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaTIvJzsKICAgICAgICAgICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovLzE5Mi4xNjguMC4xMTA6MzAwNS8nOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5hZ2VudGlkID09PSAnMTAwMDAwNicpIHsKICAgICAgICAgICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkzLyc7CiAgICAgICAgICAgICAgICAvLyBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly8xNzIuMTYuNi4yODozMDA1Lyc7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkvJzsKICAgICAgICAgICAgfQogICAgICAgICAgICB0cmFuc2FjdGlvbnMoJz91c2VyPScgKyB0aGlzLnVzZXIgKyAnJnByaWNlPScgKyB0aGlzLmFtb3VudCArICcmb3B0aW9uPScgKyB0aGlzLnZhbHVlMSArICcmcGF5bWVudGRldGFpbHM9JyArIHRoaXMucGF5bWVudGRldGFpbHMpLnRoZW4ocmVzID0+IHsKICAgICAgICAgICAgICBjb25zb2xlLmxvZygnc3VjY2VzcycpOwogICAgICAgICAgICAgIC8qIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7CiAgICAgICAgICAgICAgZm9ybS5uYW1lID0gJ2Zvcm0nOwogICAgICAgICAgICAgIGZvcm0ubWV0aG9kID0gJ3Bvc3QnOwogICAgICAgICAgICAgIGZvcm0uYWN0aW9uID0KICAgICAgICAgICAgICAJJ2h0dHBzOi8vYWdncGNwYXkuZnVpb3VwYXkuY29tL2FnZ2g1R2F0ZS5mdWlvdSc7CiAgICAgICAgICAgICAgCWNvbnN0IGlucHV0MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CiAgICAgICAgICAgICAgaW5wdXQxLnR5cGUgPSAnaGlkZGVuJzsKICAgICAgICAgICAgICBpbnB1dDEubmFtZSA9ICdtY2hudF9jZCc7CiAgICAgICAgICAgICAgaW5wdXQxLnZhbHVlID0gJzAwMDEwMDBGNzE1MjI3OSc7CiAgICAgICAgICAgICAgZm9ybS5hcHBlbmRDaGlsZChpbnB1dDEpOwogICAgICAgICAgICAgIAljb25zdCBpbnB1dDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICAgICAgICAgIGlucHV0Mi50eXBlID0gJ2hpZGRlbic7CiAgICAgICAgICAgICAgaW5wdXQyLm5hbWUgPSAnbWVzc2FnZSc7CiAgICAgICAgICAgICAgaW5wdXQyLnZhbHVlID0gcmVzLmRhdGEubWVzc2FnZTsgLy8g6K6+572u5Yqg5a+G5raI5oGvCiAgICAgICAgICAgICAgZm9ybS5hcHBlbmRDaGlsZChpbnB1dDIpOwogICAgICAgICAgICAgIAlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pOwogICAgICAgICAgICAgIAlmb3JtLnN1Ym1pdCgpOyAqLwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKHRoaXMuYW1vdW50ID09ICcnIHx8IHRoaXMuYW1vdW50IDwgMCkgewogICAgICAgICAgYWxlcnQoJ+ivt+i+k+WFpeato+ehrueahOmHkeminScpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAodGhpcy5hbW91bnQgPT0gMCkgewogICAgICAgICAgICAvLyDmoLnmja7mnaHku7borr7nva4gYmFzZVVSTAogICAgICAgICAgICBpZiAodGhpcy5hcHBpZCA9PT0gJ3d3YzI3NmY3YTAzNDdjMzEwYicpIHsKICAgICAgICAgICAgICBpZiAodGhpcy5hZ2VudGlkID09PSAnMTAwMDA3MycpIHsKICAgICAgICAgICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkvJzsKICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYWdlbnRpZCA9PT0gJzY3OCcpIHsKICAgICAgICAgICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkxLyc7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXBwaWQgPT09ICd3d2ViOGI4NTI4NDYzMzRjMmYnKSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMuYWdlbnRpZCA9PT0gJzEwMDAwMDUnKSB7CiAgICAgICAgICAgICAgICAvLyBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpMi8nOwogICAgICAgICAgICAgICAgaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vMTkyLjE2OC4wLjExMDozMDA1Lyc7CiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFnZW50aWQgPT09ICcxMDAwMDA2JykgewogICAgICAgICAgICAgICAgaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaTMvJzsKICAgICAgICAgICAgICAgIC8vIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovLzE3Mi4xNi42LjI4OjMwMDUvJzsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaS8nOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRyYW5zYWN0aW9ucygnP3VzZXI9JyArIHRoaXMudXNlciArICcmcHJpY2U9JyArIHRoaXMuYW1vdW50ICsgJyZvcHRpb249JyArIHRoaXMudmFsdWUxICsgJyZwYXltZW50ZGV0YWlscz0nICsgdGhpcy5wYXltZW50ZGV0YWlscykudGhlbihyZXMgPT4gewogICAgICAgICAgICAgIGFsZXJ0KCfkvZnpop3lt7LmirXmiaMnKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvLyDmoLnmja7mnaHku7borr7nva4gYmFzZVVSTAogICAgICAgICAgICBpZiAodGhpcy5hcHBpZCA9PT0gJ3d3YzI3NmY3YTAzNDdjMzEwYicpIHsKICAgICAgICAgICAgICBpZiAodGhpcy5hZ2VudGlkID09PSAnMTAwMDA3MycpIHsKICAgICAgICAgICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkvJzsKICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYWdlbnRpZCA9PT0gJzY3OCcpIHsKICAgICAgICAgICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkxLyc7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXBwaWQgPT09ICd3d2ViOGI4NTI4NDYzMzRjMmYnKSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMuYWdlbnRpZCA9PT0gJzEwMDAwMDUnKSB7CiAgICAgICAgICAgICAgICAvLyBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpMi8nOwogICAgICAgICAgICAgICAgaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vMTkyLjE2OC4wLjExMDozMDA1Lyc7CiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFnZW50aWQgPT09ICcxMDAwMDA2JykgewogICAgICAgICAgICAgICAgaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaTMvJzsKICAgICAgICAgICAgICAgIC8vIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovLzE3Mi4xNi42LjI4OjMwMDUvJzsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaS8nOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRyYW5zYWN0aW9ucygnP3VzZXI9JyArIHRoaXMudXNlciArICcmcHJpY2U9JyArIHRoaXMuYW1vdW50ICsgJyZvcHRpb249JyArIHRoaXMudmFsdWUxICsgJyZwYXltZW50ZGV0YWlscz0nICsgdGhpcy5wYXltZW50ZGV0YWlscykudGhlbihyZXMgPT4gewogICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzdWNjZXNzJyk7CiAgICAgICAgICAgICAgLyogY29uc3QgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTsKICAgICAgICAgICAgICBmb3JtLm5hbWUgPSAnZm9ybSc7CiAgICAgICAgICAgICAgZm9ybS5tZXRob2QgPSAncG9zdCc7CiAgICAgICAgICAgICAgZm9ybS5hY3Rpb24gPQogICAgICAgICAgICAgIAknaHR0cHM6Ly9hZ2dwY3BheS5mdWlvdXBheS5jb20vYWdnaDVHYXRlLmZ1aW91JzsKICAgICAgICAgICAgICAJY29uc3QgaW5wdXQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKICAgICAgICAgICAgICBpbnB1dDEudHlwZSA9ICdoaWRkZW4nOwogICAgICAgICAgICAgIGlucHV0MS5uYW1lID0gJ21jaG50X2NkJzsKICAgICAgICAgICAgICBpbnB1dDEudmFsdWUgPSAnMDAwMTAwMEY3MTUyMjc5JzsKICAgICAgICAgICAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0MSk7CiAgICAgICAgICAgICAgCWNvbnN0IGlucHV0MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CiAgICAgICAgICAgICAgaW5wdXQyLnR5cGUgPSAnaGlkZGVuJzsKICAgICAgICAgICAgICBpbnB1dDIubmFtZSA9ICdtZXNzYWdlJzsKICAgICAgICAgICAgICBpbnB1dDIudmFsdWUgPSByZXMuZGF0YS5tZXNzYWdlOyAvLyDorr7nva7liqDlr4bmtojmga8KICAgICAgICAgICAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0Mik7CiAgICAgICAgICAgICAgCWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZm9ybSk7CiAgICAgICAgICAgICAgCWZvcm0uc3VibWl0KCk7ICovCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICAvKiBpZiAodGhpcy52YWx1ZTEgPT0gMikgewogICAgICAJaWYgKHRoaXMuYW1vdW50ICE9IDYwMCkgewogICAgICAJCWFsZXJ0KCfor7fovpPlhaXmraPnoa7nmoTlsaXnuqbmnI3liqHotLnph5Hpop0nKTsKICAgICAgCQlyZXR1cm47CiAgICAgIAl9IGVsc2UgewogICAgICAJCS8vIOagueaNruadoeS7tuiuvue9riBiYXNlVVJMCiAgICAgIAkJaWYgKHRoaXMuYXBwaWQgPT09ICd3d2MyNzZmN2EwMzQ3YzMxMGInKSB7CiAgICAgIAkJCWlmICh0aGlzLmFnZW50aWQgPT09ICcxMDAwMDczJykgewogICAgICAJCQkJaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9CiAgICAgIAkJCQkJJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpLyc7CiAgICAgIAkJCX0gZWxzZSBpZiAodGhpcy5hZ2VudGlkID09PSAnNjc4JykgewogICAgICAJCQkJaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9CiAgICAgIAkJCQkJJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpMS8nOwogICAgICAJCQl9CiAgICAgIAkJfSBlbHNlIGlmICh0aGlzLmFwcGlkID09PSAnd3dlYjhiODUyODQ2MzM0YzJmJykgewogICAgICAJCQlpZiAodGhpcy5hZ2VudGlkID09PSAnMTAwMDAwNScpIHsKICAgICAgCQkJCWluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPQogICAgICAJCQkJCSdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaTIvJzsKICAgICAgCQkJCS8vIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovLzE3Mi4xNi42LjI4OjMwMDUvJzsKICAgICAgCQkJfSBlbHNlIGlmICh0aGlzLmFnZW50aWQgPT09ICcxMDAwMDA2JykgewogICAgICAJCQkJLy8gaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaTMvJzsKICAgICAgCQkJCWluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPQogICAgICAJCQkJCSdodHRwOi8vMTkyLjE2OC4wLjExMDozMDA1Lyc7CiAgICAgIAkJCX0KICAgICAgCQl9IGVsc2UgewogICAgICAJCQlpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0KICAgICAgCQkJCSdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaS8nOwogICAgICAJCX0KICAgICAgCQl0cmFuc2FjdGlvbnMoCiAgICAgIAkJCSc/dXNlcj0nICsKICAgICAgCQkJCXRoaXMudXNlciArCiAgICAgIAkJCQknJnByaWNlPScgKwogICAgICAJCQkJdGhpcy5hbW91bnQgKwogICAgICAJCQkJJyZvcHRpb249JyArCiAgICAgIAkJCQl0aGlzLnZhbHVlMSwKICAgICAgCQkpLnRoZW4ocmVzID0+IHsKICAgICAgCQkJY29uc3QgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTsKICAgICAgCQkJZm9ybS5uYW1lID0gJ2Zvcm0nOwogICAgICAJCQlmb3JtLm1ldGhvZCA9ICdwb3N0JzsKICAgICAgCQkJZm9ybS5hY3Rpb24gPQogICAgICAJCQkJJ2h0dHBzOi8vYWdncGNwYXkuZnVpb3VwYXkuY29tL2FnZ2g1R2F0ZS5mdWlvdSc7CiAgICAgIAkJCQljb25zdCBpbnB1dDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICAJCQlpbnB1dDEudHlwZSA9ICdoaWRkZW4nOwogICAgICAJCQlpbnB1dDEubmFtZSA9ICdtY2hudF9jZCc7CiAgICAgIAkJCWlucHV0MS52YWx1ZSA9ICcwMDAxMDAwRjcxNTIzNjQnOwogICAgICAJCQlmb3JtLmFwcGVuZENoaWxkKGlucHV0MSk7CiAgICAgIAkJCQljb25zdCBpbnB1dDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICAJCQlpbnB1dDIudHlwZSA9ICdoaWRkZW4nOwogICAgICAJCQlpbnB1dDIubmFtZSA9ICdtZXNzYWdlJzsKICAgICAgCQkJaW5wdXQyLnZhbHVlID0gcmVzLmRhdGEubWVzc2FnZTsgLy8g6K6+572u5Yqg5a+G5raI5oGvCiAgICAgIAkJCWZvcm0uYXBwZW5kQ2hpbGQoaW5wdXQyKTsKICAgICAgCQkJCWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZm9ybSk7CiAgICAgIAkJCQlmb3JtLnN1Ym1pdCgpOwogICAgICAJCX0pOwogICAgICAJfQogICAgICB9IGVsc2UgewogICAgICAJaWYgKHRoaXMuYW1vdW50ID09ICcnIHx8IHRoaXMuYW1vdW50IDwgMCkgewogICAgICAJCWFsZXJ0KCfor7fovpPlhaXmraPnoa7nmoTph5Hpop0nKTsKICAgICAgCQlyZXR1cm47CiAgICAgIAl9IGVsc2UgaWYgKHRoaXMuYW1vdW50ID09IDApIHsKICAgICAgCQkvLyDmoLnmja7mnaHku7borr7nva4gYmFzZVVSTAogICAgICAJCWlmICh0aGlzLmFwcGlkID09PSAnd3djMjc2ZjdhMDM0N2MzMTBiJykgewogICAgICAJCQlpZiAodGhpcy5hZ2VudGlkID09PSAnMTAwMDA3MycpIHsKICAgICAgCQkJCWluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPQogICAgICAJCQkJCSdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaS8nOwogICAgICAJCQl9IGVsc2UgaWYgKHRoaXMuYWdlbnRpZCA9PT0gJzY3OCcpIHsKICAgICAgCQkJCWluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPQogICAgICAJCQkJCSdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaTEvJzsKICAgICAgCQkJfQogICAgICAJCX0gZWxzZSBpZiAodGhpcy5hcHBpZCA9PT0gJ3d3ZWI4Yjg1Mjg0NjMzNGMyZicpIHsKICAgICAgCQkJaWYgKHRoaXMuYWdlbnRpZCA9PT0gJzEwMDAwMDUnKSB7CiAgICAgIAkJCQkvLyBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpMi8nOwogICAgICAJCQkJaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9CiAgICAgIAkJCQkJJ2h0dHA6Ly8xOTIuMTY4LjAuMTEwOjMwMDUvJzsKICAgICAgCQkJfSBlbHNlIGlmICh0aGlzLmFnZW50aWQgPT09ICcxMDAwMDA2JykgewogICAgICAJCQkJaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9CiAgICAgIAkJCQkJJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpMy8nOwogICAgICAJCQkJLy8gaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vMTcyLjE2LjYuMjg6MzAwNS8nOwogICAgICAJCQl9CiAgICAgIAkJfSBlbHNlIHsKICAgICAgCQkJaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9CiAgICAgIAkJCQknaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkvJzsKICAgICAgCQl9CiAgICAgIAkJdHJhbnNhY3Rpb25zKAogICAgICAJCQknP3VzZXI9JyArCiAgICAgIAkJCQl0aGlzLnVzZXIgKwogICAgICAJCQkJJyZwcmljZT0nICsKICAgICAgCQkJCXRoaXMuYW1vdW50ICsKICAgICAgCQkJCScmb3B0aW9uPScgKwogICAgICAJCQkJdGhpcy52YWx1ZTEsCiAgICAgIAkJKS50aGVuKHJlcyA9PiB7CiAgICAgIAkJCWFsZXJ0KCfkvZnpop3lt7LmirXmiaMnKTsKICAgICAgCQl9KTsKICAgICAgCX0gZWxzZSB7CiAgICAgIAkJLy8g5qC55o2u5p2h5Lu26K6+572uIGJhc2VVUkwKICAgICAgCQlpZiAodGhpcy5hcHBpZCA9PT0gJ3d3YzI3NmY3YTAzNDdjMzEwYicpIHsKICAgICAgCQkJaWYgKHRoaXMuYWdlbnRpZCA9PT0gJzEwMDAwNzMnKSB7CiAgICAgIAkJCQlpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0KICAgICAgCQkJCQknaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkvJzsKICAgICAgCQkJfSBlbHNlIGlmICh0aGlzLmFnZW50aWQgPT09ICc2NzgnKSB7CiAgICAgIAkJCQlpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0KICAgICAgCQkJCQknaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkxLyc7CiAgICAgIAkJCX0KICAgICAgCQl9IGVsc2UgaWYgKHRoaXMuYXBwaWQgPT09ICd3d2ViOGI4NTI4NDYzMzRjMmYnKSB7CiAgICAgIAkJCWlmICh0aGlzLmFnZW50aWQgPT09ICcxMDAwMDA1JykgewogICAgICAJCQkJLy8gaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaTIvJzsKICAgICAgCQkJCWluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPQogICAgICAJCQkJCSdodHRwOi8vMTkyLjE2OC4wLjExMDozMDA1Lyc7CiAgICAgIAkJCX0gZWxzZSBpZiAodGhpcy5hZ2VudGlkID09PSAnMTAwMDAwNicpIHsKICAgICAgCQkJCWluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPQogICAgICAJCQkJCSdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaTMvJzsKICAgICAgCQkJCS8vIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovLzE3Mi4xNi42LjI4OjMwMDUvJzsKICAgICAgCQkJfQogICAgICAJCX0gZWxzZSB7CiAgICAgIAkJCWluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPQogICAgICAJCQkJJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpLyc7CiAgICAgIAkJfQogICAgICAJCXRyYW5zYWN0aW9ucygKICAgICAgCQkJJz91c2VyPScgKwogICAgICAJCQkJdGhpcy51c2VyICsKICAgICAgCQkJCScmcHJpY2U9JyArCiAgICAgIAkJCQl0aGlzLmFtb3VudCArCiAgICAgIAkJCQknJm9wdGlvbj0nICsKICAgICAgCQkJCXRoaXMudmFsdWUxLAogICAgICAJCSkudGhlbihyZXMgPT4gewogICAgICAJCQljb25zdCBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOwogICAgICAJCQlmb3JtLm5hbWUgPSAnZm9ybSc7CiAgICAgIAkJCWZvcm0ubWV0aG9kID0gJ3Bvc3QnOwogICAgICAJCQlmb3JtLmFjdGlvbiA9CiAgICAgIAkJCQknaHR0cHM6Ly9hZ2dwY3BheS5mdWlvdXBheS5jb20vYWdnaDVHYXRlLmZ1aW91JzsKICAgICAgCQkJCWNvbnN0IGlucHV0MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CiAgICAgIAkJCWlucHV0MS50eXBlID0gJ2hpZGRlbic7CiAgICAgIAkJCWlucHV0MS5uYW1lID0gJ21jaG50X2NkJzsKICAgICAgCQkJaW5wdXQxLnZhbHVlID0gJzAwMDEwMDBGNzE1MjI3OSc7CiAgICAgIAkJCWZvcm0uYXBwZW5kQ2hpbGQoaW5wdXQxKTsKICAgICAgCQkJCWNvbnN0IGlucHV0MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CiAgICAgIAkJCWlucHV0Mi50eXBlID0gJ2hpZGRlbic7CiAgICAgIAkJCWlucHV0Mi5uYW1lID0gJ21lc3NhZ2UnOwogICAgICAJCQlpbnB1dDIudmFsdWUgPSByZXMuZGF0YS5tZXNzYWdlOyAvLyDorr7nva7liqDlr4bmtojmga8KICAgICAgCQkJZm9ybS5hcHBlbmRDaGlsZChpbnB1dDIpOwogICAgICAJCQkJZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTsKICAgICAgCQkJCWZvcm0uc3VibWl0KCk7CiAgICAgIAkJfSk7CiAgICAgIAl9CiAgICAgIH0gKi8KICAgIH0sCiAgICBnZXRSZWFzb25zKCkgewogICAgICBnZXRSZWFzb25zKCkudGhlbihyZXMgPT4gewogICAgICAgIHRoaXMucmVhc29uTGlzdCA9IHJlcy5kYXRhOwogICAgICAgIC8qIGZvciAobGV0IGtleSBpbiB0aGlzLnRhYmxlRGF0YSkgewogICAgICAgIAljb25zb2xlLmxvZyhrZXkpOwogICAgICAgIAl0aGlzLm90aGVyU2hvdyA9IHRoaXMucmVhc29uTGlzdC5pbmNsdWRlcyhrZXkpOwogICAgICAgIAljb25zb2xlLmxvZyh0aGlzLm90aGVyU2hvdyk7CiAgICAgICAgfSAqLwogICAgICB9KTsKICAgIH0sCiAgICBjaGFuZ2VPdGhlcigpIHsKICAgICAgaWYgKHRoaXMuY2hlY2tib3hMaXN0Lmxlbmd0aCkgewogICAgICAgIHRoaXMuZGlzYWJsZV9zZXJ2aWNlID0gdHJ1ZTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnBheW1lbnRkZXRhaWxzID0gW107CiAgICAgICAgdGhpcy5kaXNhYmxlX3NlcnZpY2UgPSBmYWxzZTsKICAgICAgfQogICAgfSwKICAgIGNoaWNrU2VydmljZSgpIHsKICAgICAgaWYgKHRoaXMuY2hlY2tlZCA9PSB0cnVlKSB7CiAgICAgICAgdGhpcy5hbW91bnQgPSA2MDA7CiAgICAgICAgdGhpcy5wYXltZW50ZGV0YWlscy5wdXNoKCflsaXnuqbmnI3liqHotLknKTsKICAgICAgICB0aGlzLmRpc2FibGVfb3RoZXIgPSB0cnVlOwogICAgICAgIHRoaXMuZGlzYWJsZV9hbW91bnQgPSB0cnVlOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuYW1vdW50ID0gMDsKICAgICAgICB0aGlzLnBheW1lbnRkZXRhaWxzID0gW107CiAgICAgICAgdGhpcy5kaXNhYmxlX290aGVyID0gZmFsc2U7CiAgICAgICAgdGhpcy5kaXNhYmxlX2Ftb3VudCA9IGZhbHNlOwogICAgICB9CiAgICB9LAogICAgZ2V0WlhQYXltZW50RGV0YWlscygpIHsKICAgICAgZ2V0WlhQYXltZW50RGV0YWlscygpLnRoZW4ocmVzID0+IHsKICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHJlcy5kYXRhOwogICAgICB9KTsKICAgIH0sCiAgICBxdWVyeVVzZXJEZXRhaWxzKCkgewogICAgICAvLyDmoLnmja7mnaHku7borr7nva4gYmFzZVVSTAogICAgICBpZiAodGhpcy5hcHBpZCA9PT0gJ3d3YzI3NmY3YTAzNDdjMzEwYicpIHsKICAgICAgICBpZiAodGhpcy5hZ2VudGlkID09PSAnMTAwMDA3MycpIHsKICAgICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkvJzsKICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYWdlbnRpZCA9PT0gJzY3OCcpIHsKICAgICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkxLyc7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKHRoaXMuYXBwaWQgPT09ICd3d2ViOGI4NTI4NDYzMzRjMmYnKSB7CiAgICAgICAgaWYgKHRoaXMuYWdlbnRpZCA9PT0gJzEwMDAwMDUnKSB7CiAgICAgICAgICAvLyBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpMi8nCiAgICAgICAgICBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly8xNzIuMTYuNi45MDozMDAzLyc7CiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFnZW50aWQgPT09ICcxMDAwMDA2JykgewogICAgICAgICAgaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaTMvJzsKICAgICAgICAgIC8vIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovLzE3Mi4xNi42LjE1OjMwMDYvJzsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaS8nOwogICAgICB9CiAgICAgIGdldFBheW1lbnREZXRhaWxzKCc/dXNlcj0nICsgdGhpcy51c2VyKS50aGVuKHJlcyA9PiB7CiAgICAgICAgaWYgKHJlcy5kYXRhLmNvZGUgPT0gNTAwKSB7CiAgICAgICAgICB0aGlzLmlzU2hvdyA9IGZhbHNlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLnRhYmxlID0gcmVzLmRhdGE7CiAgICAgICAgICAvL3RoaXMuYW1vdW50ID0gdGhpcy50YWJsZS5hbW91bnQKICAgICAgICAgIHRoaXMuaXNTaG93ID0gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIGNoZWNrQ2xpY2soKSB7CiAgICAgIHRoaXMucHJpY2VMaXN0ID0gW107CiAgICAgIHRoaXMucGF5bWVudGRldGFpbHMgPSBbXTsKICAgICAgZm9yIChsZXQga2V5IGluIHRoaXMudGFibGVEYXRhKSB7CiAgICAgICAgaWYgKHRoaXMudGFibGVEYXRhW2tleV0uZGF0YSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgIHRoaXMuY2hlY2tlZExpc3QgPSB0aGlzLnRhYmxlRGF0YVtrZXldLmRhdGE7CiAgICAgICAgICB0aGlzLmNoZWNrZWRMaXN0LmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7CiAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrYm94TGlzdC5pbmNsdWRlcyhlbGVtZW50Ll9pZCkpIHsKICAgICAgICAgICAgICB0aGlzLnByaWNlTGlzdC5wdXNoKGVsZW1lbnQudW5wYXkpOwogICAgICAgICAgICAgIGxldCBhcnJheSA9IFtdOwogICAgICAgICAgICAgIGFycmF5LnB1c2goZWxlbWVudC5mdWt1YW5zaGl5b3UpOwogICAgICAgICAgICAgIHRoaXMucGF5bWVudGRldGFpbHMgPSBbLi4ubmV3IFNldChhcnJheSldOwogICAgICAgICAgICAgIC8vdGhpcy5wYXltZW50ZGV0YWlscy5wdXNoKGVsZW1lbnQuZnVrdWFuc2hpeW91KTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHRoaXMuYW1vdW50ID0gdGhpcy5zdW07CiAgICB9LAogICAgcXVlcnlVc2VySW5mbygpIHsKICAgICAgLy8g5qC55o2u5p2h5Lu26K6+572uIGJhc2VVUkwKICAgICAgaWYgKHRoaXMuYXBwaWQgPT09ICd3d2MyNzZmN2EwMzQ3YzMxMGInKSB7CiAgICAgICAgaWYgKHRoaXMuYWdlbnRpZCA9PT0gJzEwMDAwNzMnKSB7CiAgICAgICAgICBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpLyc7CiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFnZW50aWQgPT09ICc2NzgnKSB7CiAgICAgICAgICBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly93ZWIuaml5dWFua2VzaGFuZy5jb20vYXBpMS8nOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmICh0aGlzLmFwcGlkID09PSAnd3dlYjhiODUyODQ2MzM0YzJmJykgewogICAgICAgIGlmICh0aGlzLmFnZW50aWQgPT09ICcxMDAwMDA1JykgewogICAgICAgICAgLy8gaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vd2ViLmppeXVhbmtlc2hhbmcuY29tL2FwaTIvJwogICAgICAgICAgaW5zdGFuY2UuZGVmYXVsdHMuYmFzZVVSTCA9ICdodHRwOi8vMTcyLjE2LjYuOTA6MzAwMy8nOwogICAgICAgIH0gZWxzZSBpZiAodGhpcy5hZ2VudGlkID09PSAnMTAwMDAwNicpIHsKICAgICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkzLyc7CiAgICAgICAgICAvLyBpbnN0YW5jZS5kZWZhdWx0cy5iYXNlVVJMID0gJ2h0dHA6Ly8xNzIuMTYuNi4xNTozMDA2Lyc7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGluc3RhbmNlLmRlZmF1bHRzLmJhc2VVUkwgPSAnaHR0cDovL3dlYi5qaXl1YW5rZXNoYW5nLmNvbS9hcGkvJzsKICAgICAgfQogICAgICBxdWVyeVVzZXIoJz91c2VyPScgKyB0aGlzLnVzZXIpLnRoZW4ocmVzID0+IHsKICAgICAgICB0aGlzLnBheUxpc3QgPSByZXMuZGF0YTsKICAgICAgfSk7CiAgICB9LAogICAgYXN5bmMgcXVlcnlVc2VySWRJbmZvKGNvZGUpIHsKICAgICAgYXdhaXQgcXVlcnlVc2VySWQoJz9jb2RlPScgKyBjb2RlKS50aGVuKHJlcyA9PiB7CiAgICAgICAgdGhpcy51c2VyID0gcmVzLmRhdGE7CiAgICAgICAgcmV0dXJuIHJlczsKICAgICAgfSk7CiAgICB9CiAgfSwKICBhc3luYyBjcmVhdGVkKCkgewogICAgLy8gdmFyIGlkID0gd2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoJz8nKVsxXQogICAgLy8gaWQgPSBpZC5zcGxpdCgnPScpWzFdLnJlcGxhY2UoJyMvJywgJycpCiAgICAvLwogICAgLy8gdGhpcy51c2VyID0gaWQKICAgIHZhciBxdWVyeVN0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCc/JylbMV07CiAgICAvLyDlsIbmn6Xor6Llj4LmlbDpg6jliIblho3mrKHkvb/nlKggLnNwbGl0KCkg5pa55rOV5YiG5YmyCiAgICB2YXIgcGFyYW1zID0gcXVlcnlTdHJpbmcuc3BsaXQoJyYnKTsKICAgIC8vIOWumuS5ieWPmOmHj+adpeWtmOWCqOWPguaVsOWAvAogICAgdmFyIHVzZXIsIGFwcGlkLCBhZ2VudGlkOwogICAgLy8g5b6q546v6YGN5Y6G5Y+C5pWw5pWw57uECiAgICBwYXJhbXMuZm9yRWFjaChwYXJhbSA9PiB7CiAgICAgIHZhciBrZXlWYWx1ZSA9IHBhcmFtLnNwbGl0KCc9Jyk7CiAgICAgIHZhciBrZXkgPSBrZXlWYWx1ZVswXTsKICAgICAgdmFyIHZhbHVlID0ga2V5VmFsdWVbMV07CiAgICAgIC8vIOagueaNruWPguaVsOWQjeiuvue9ruebuOW6lOeahOWPmOmHj+WAvAogICAgICBpZiAoa2V5ID09PSAndXNlcicpIHsKICAgICAgICB1c2VyID0gdmFsdWU7CiAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYXBwaWQnKSB7CiAgICAgICAgYXBwaWQgPSB2YWx1ZTsKICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdhZ2VudGlkJykgewogICAgICAgIGFnZW50aWQgPSB2YWx1ZTsKICAgICAgfQogICAgfSk7CiAgICAvLyDlsIbojrflj5bliLDnmoTlgLzotYvnu5kgVnVlIOe7hOS7tueahOWxnuaApwogICAgdGhpcy51c2VyID0gdXNlcjsKICAgIHRoaXMuYXBwaWQgPSBhcHBpZDsKICAgIHRoaXMuYWdlbnRpZCA9IGFnZW50aWQ7CiAgICAvKiAJY29uc29sZS5sb2coJ3VzZXI6JywgdGhpcy51c2VyKTsKICAgIGNvbnNvbGUubG9nKCdhcHBpZDonLCB0aGlzLmFwcGlkKTsKICAgIGNvbnNvbGUubG9nKCdhZ2VudGlkOicsIHRoaXMuYWdlbnRpZCk7ICovCgogICAgdGhpcy5xdWVyeVVzZXJJbmZvKCk7CiAgICB0aGlzLnF1ZXJ5VXNlckRldGFpbHMoKTsKICAgIHRoaXMuZ2V0WlhQYXltZW50RGV0YWlscygpOwogICAgdGhpcy5nZXRSZWFzb25zKCk7CiAgfSwKICBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgaXNTaG93OiBmYWxzZSwKICAgICAgaXNTaG93MTogZmFsc2UsCiAgICAgIGRpc2FibGVfb3RoZXI6IGZhbHNlLAogICAgICBkaXNhYmxlX2Ftb3VudDogZmFsc2UsCiAgICAgIGRpc2FibGVfc2VydmljZTogZmFsc2UsCiAgICAgIHVzZXI6ICcnLAogICAgICBhcHBpZDogJycsCiAgICAgIGFnZW50aWQ6ICcnLAogICAgICBjaGVja2VkOiAnJywKICAgICAgY2hlY2tlZDE6ICcnLAogICAgICBhY3RpdmVOYW1lOiAxLAogICAgICBjaGVja2VkTGlzdDogW10sCiAgICAgIC8v6L+H5ruk5pWw57uECiAgICAgIGNoZWNrYm94TGlzdDogW10sCiAgICAgIC8vIOWtmOWCqOmAieS4remhueeahOWAvAogICAgICBwcmljZUxpc3Q6IFtdLAogICAgICByZWFzb25MaXN0OiBbXSwKICAgICAgYWN0aXZlT3RoZXI6IFswXSwKICAgICAgYWN0aXZlT3RoZXJfMTogW10sCiAgICAgIGFjdGl2ZU90aGVyXzI6IFtdLAogICAgICBhY3RpdmVDb21taXNzaW9uOiBbMF0sCiAgICAgIGFjdGl2ZUNvbW1pc3Npb25fMTogW10sCiAgICAgIGFjdGl2ZUNvbW1pc3Npb25fMjogW10sCiAgICAgIGFjdGl2ZVNlcnZpY2U6IFtdLAogICAgICBwYXlMaXN0OiB7fSwKICAgICAgcGF5bWVudGRldGFpbHM6IFtdLAogICAgICBhbW91bnQ6ICcnLAogICAgICBhY3RpdmVOYW1lczogWzBdLAogICAgICBhY3RpdmVpdGVtMTogWycnXSwKICAgICAgYWN0aXZlaXRlbTI6IFsnJ10sCiAgICAgIHRhYmxlOiB7fSwKICAgICAgdGFibGVEYXRhOiBbXSwKICAgICAgaWQ6ICcnLAogICAgICB2YWx1ZTogMCwKICAgICAgZm9ybTogewogICAgICAgIGZfbnVtOiAnJywKICAgICAgICBjX251bTogJycsCiAgICAgICAgY19jb250ZW50OiAnJywKICAgICAgICBmX2NvbnRlbnQ6ICcnLAogICAgICAgIGNvbnRlbnQ6ICcnCiAgICAgIH0sCiAgICAgIGZvcm0xOiB7CiAgICAgICAgZl9udW06ICcnLAogICAgICAgIGNfbnVtOiAnJywKICAgICAgICBjX2NvbnRlbnQ6ICcnLAogICAgICAgIGZfY29udGVudDogJycsCiAgICAgICAgY29udGVudDogJycKICAgICAgfSwKICAgICAgLy8gcGF5bWVudFR5cGU6IiIsIC8vIOmAieaLqeeahOaUr+S7mOexu+WeiwogICAgICAvLyBwYXltZW50T3B0aW9uczogWyAvLyDmlK/ku5jnsbvlnovpgInpobkKICAgICAgLy8gICB7IHZhbHVlOiAn5om/5YyF6YeRJywgbGFiZWw6ICfmib/ljIXph5EnIH0sCiAgICAgIC8vICAgeyB2YWx1ZTogJ+Wxpee6puacjeWKoei0uScsIGxhYmVsOiAn5bGl57qm5pyN5Yqh6LS5JyB9CiAgICAgIC8vIF0KICAgICAgdmFsdWUxOiAxLAogICAgICBvcHRpb24xOiBbewogICAgICAgIHRleHQ6ICfotLnnqI7ph5Hpop0nLAogICAgICAgIHZhbHVlOiAxCiAgICAgIH0sIHsKICAgICAgICB0ZXh0OiAn5bGl57qm5pyN5Yqh6LS5JywKICAgICAgICB2YWx1ZTogMgogICAgICB9XQogICAgfTsKICB9LAogIGNvbXB1dGVkOiB7CiAgICBzdW0oKSB7CiAgICAgIC8vIOS9v+eUqHJlZHVjZeaWueazleiuoeeul+aVsOe7hG51bWJlcnPkuK3miYDmnInlhYPntKDnmoTmgLvlkowKICAgICAgcmV0dXJuIHRoaXMucHJpY2VMaXN0LnJlZHVjZSgoYWNjLCBjdXIpID0+IGFjYyArIGN1ciwgMCk7CiAgICB9CiAgfQp9Ow=="},null]} |