pwa-register-sw.js ยท UTF-8
Save encrypted
Delete
Paste the console unlock script to edit this file.
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN3c291cmNlID0gImh0dHBzOi8vcHJlbW1lZGljYWwuaW4vcHdhLXN3LmpzIjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgZnVuY3Rpb24gUFdBZm9yd3ByZWFkQ29va2llKG5hbWUpIHsKICAgICAgICAgICAgICAgICAgdmFyIG5hbWVFUSA9IG5hbWUgKyAiPSI7CiAgICAgICAgICAgICAgICAgIHZhciBjYSA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgiOyIpOwogICAgICAgICAgICAgICAgICBmb3IodmFyIGk9MDtpIDwgY2EubGVuZ3RoO2krKykgewogICAgICAgICAgICAgICAgICAgICAgdmFyIGMgPSBjYVtpXTsKICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChjLmNoYXJBdCgwKT09IiAiKSBjID0gYy5zdWJzdHJpbmcoMSxjLmxlbmd0aCk7CiAgICAgICAgICAgICAgICAgICAgICBpZiAoYy5pbmRleE9mKG5hbWVFUSkgPT0gMCkgcmV0dXJuIGMuc3Vic3RyaW5nKG5hbWVFUS5sZW5ndGgsYy5sZW5ndGgpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgIH0KCQkJICAgICAgICAgaWYoInNlcnZpY2VXb3JrZXIiIGluIG5hdmlnYXRvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsJCQkgICAgICAgICAJCQoJCQkgICAgICAgICAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc3dzb3VyY2UsIHtzY29wZTogJ2h0dHBzOi8vcHJlbW1lZGljYWwuaW4vJ30pLnRoZW4oZnVuY3Rpb24ocmVnKXsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgkJCSAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0NvbmdyYXR1bGF0aW9ucyEhU2VydmljZSBXb3JrZXIgUmVnaXN0ZXJlZCBTZXJ2aWNlV29ya2VyIHNjb3BlOiAnLCByZWcuc2NvcGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoJCQkgICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyKSB7CgkJCSAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1NlcnZpY2VXb3JrZXIgcmVnaXN0cmF0aW9uIGZhaWxlZDogJywgZXJyKTsKCQkJICAgICAgICAgICAgICAgIH0pOwkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgkJCSAgICAgICAgICAgICAgICB2YXIgZGVmZXJyZWRQcm9tcHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JlaW5zdGFsbHByb21wdCcsIChlKSA9PiB7CgkJCQkJCQkgIAoJCQkJCQkJICBkZWZlcnJlZFByb21wdCA9IGU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBpZihkZWZlcnJlZFByb21wdCAhPSBudWxsIHx8IGRlZmVycmVkUHJvbXB0ICE9IHVuZGVmaW5lZCl7CgogICAgICAgICAgICAgICAgICAgICAgICB2YXIgYTJoc3ZpYXNob3J0Y29kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInB3YWZvcndwLWFkZC12aWEtY2xhc3MiKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoYTJoc3ZpYXNob3J0Y29kZSAhPT0gbnVsbCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGEyaHN2aWFzaG9ydGNvZGUubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYTJoc3ZpYXNob3J0Y29kZVtpXS5zdHlsZS5kaXNwbGF5PSJpbmxpbmUtYmxvY2siOyAKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhMmhzdmlhc2hvcnRjb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgicHdhZm9yd3Atc3RpY2t5LWJhbm5lciIpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXNNb2JpbGUgPSAvaVBob25lfGlQYWR8aVBvZHxBbmRyb2lkL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTsgCiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGEyaHN2aWFzaG9ydGNvZGUgIT09IG51bGwgJiYgY2hlY2tiYXJDbG9zZWRPck5vdCgpICYmICh0eXBlb2YgcHdhX2N0YV9hc3NldHMgIT09ICd1bmRlZmluZWQnKSAmJiAocHdhX2N0YV9hc3NldHMuYTJoX3N0aWNreV9vbl9kZXNrdG9wX2N0YT09MSB8fCBpc01vYmlsZSkpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhMmhzdmlhc2hvcnRjb2RlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEyaHN2aWFzaG9ydGNvZGVbaV0uc3R5bGUuZGlzcGxheT0iZmxleCI7IAogICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgkJCQkJCQl9KTsJCQkgICAgCiAgICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2tiYXJDbG9zZWRPck5vdCgpewogICAgICAgICAgICAgICAgdmFyIGNsb3NlZFRpbWUgPSBQV0Fmb3J3cHJlYWRDb29raWUoInB3YWZvcndwX3Byb21wdF9jbG9zZSIpOwogICAgICAgICAgICAgICAgICBpZihjbG9zZWRUaW1lKXsKICAgICAgICAgICAgICAgICAgICB2YXIgdG9kYXkgPSBuZXcgRGF0ZSgpOwogICAgICAgICAgICAgICAgICAgIHZhciBjbG9zZWRUaW1lID0gbmV3IERhdGUoY2xvc2VkVGltZSk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRpZmZNcyA9ICh0b2RheS1jbG9zZWRUaW1lKTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGlmZk1pbnMgPSBNYXRoLnJvdW5kKCgoZGlmZk1zICUgODY0MDAwMDApICUgMzYwMDAwMCkgLyA2MDAwMCk7IC8qIG1pbnV0ZXMqLwogICAgICAgICAgICAgICAgICAgIGlmKGRpZmZNcyl7LypkaWZmTWluczw0Ki8KICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIAogICAgICAgICAgICAgIC8qIFNhZmFyaSAzLjArICJbb2JqZWN0IEhUTUxFbGVtZW50Q29uc3RydWN0b3JdIiAqLwogICAgICAgICAgICAgIHZhciBpc1NhZmFyaSA9IC9jb25zdHJ1Y3Rvci9pLnRlc3Qod2luZG93LkhUTUxFbGVtZW50KSB8fCAoZnVuY3Rpb24gKHApIHsgcmV0dXJuIHAudG9TdHJpbmcoKSA9PT0gIltvYmplY3QgU2FmYXJpUmVtb3RlTm90aWZpY2F0aW9uXSI7IH0pKCF3aW5kb3dbJ3NhZmFyaSddIHx8ICh0eXBlb2Ygc2FmYXJpICE9PSAndW5kZWZpbmVkJyAmJiBzYWZhcmkucHVzaE5vdGlmaWNhdGlvbikpOwogICAgICAgICAgICAgIGlmKCBpc1NhZmFyaSApewogICAgICAgICAgICAgICAgdmFyIGEyaHN2aWFzaG9ydGNvZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwd2Fmb3J3cC1hZGQtdmlhLWNsYXNzIik7CiAgICAgICAgICAgICAgICAgIGlmKGEyaHN2aWFzaG9ydGNvZGUgIT09IG51bGwpewogICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhMmhzdmlhc2hvcnRjb2RlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGEyaHN2aWFzaG9ydGNvZGVbaV0uc3R5bGUuZGlzcGxheT0iaW5saW5lLWJsb2NrIjsgCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICB2YXIgYTJoc3ZpYXNob3J0Y29kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInB3YWZvcndwLXN0aWNreS1iYW5uZXIiKTsKICAgICAgICAgICAgICAgICAgdmFyIGlzTW9iaWxlID0gL2lQaG9uZXxpUGFkfGlQb2R8QW5kcm9pZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7IAogICAgICAgICAgICAgICAgICBpZihhMmhzdmlhc2hvcnRjb2RlICE9PSBudWxsICYmIGNoZWNrYmFyQ2xvc2VkT3JOb3QoKSAmJiAodHlwZW9mIHB3YV9jdGFfYXNzZXRzICE9PSAndW5kZWZpbmVkJykgJiYgKHB3YV9jdGFfYXNzZXRzLmEyaF9zdGlja3lfb25fZGVza3RvcF9jdGE9PTEgfHwgaXNNb2JpbGUpICl7CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGEyaHN2aWFzaG9ydGNvZGUubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgYTJoc3ZpYXNob3J0Y29kZVtpXS5zdHlsZS5kaXNwbGF5PSJmbGV4IjsgCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYTJoc3ZpYXNob3J0Y29kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInB3YWZvcndwLWFkZC12aWEtY2xhc3MiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhMmhzdmlhc2hvcnRjb2RlICE9PSBudWxsKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhMmhzdmlhc2hvcnRjb2RlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYTJoc3ZpYXNob3J0Y29kZVtpXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGFkZFRvSG9tZSk7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYXBwaW5zdGFsbGVkJywgKGV2dCkgPT4gewoJCQkJCQkJICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhMmhzdmlhc2hvcnRjb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgicHdhZm9yd3AtYWRkLXZpYS1jbGFzcyIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGEyaHN2aWFzaG9ydGNvZGUgIT09IG51bGwpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGEyaHN2aWFzaG9ydGNvZGUubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhMmhzdmlhc2hvcnRjb2RlW2ldLnN0eWxlLmRpc3BsYXk9Im5vbmUiOyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGEyaHN2aWFzaG9ydGNvZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwd2Fmb3J3cC1zdGlja3ktYmFubmVyIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYTJoc3ZpYXNob3J0Y29kZSAhPT0gbnVsbCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYTJoc3ZpYXNob3J0Y29kZS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEyaHN2aWFzaG9ydGNvZGVbaV0uc3R5bGUuZGlzcGxheT0ibm9uZSI7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhZGR0b2hvbWVCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHdhZm9yd3AtYWRkLXRvLWhvbWUtY2xpY2siKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFkZHRvaG9tZUJ0biAhPT1udWxsKXsgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHRvaG9tZUJ0bi5zdHlsZS5kaXNwbGF5PSJub25lIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGFkZFRvSG9tZSgpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZighZGVmZXJyZWRQcm9tcHQpe3JldHVybiA7fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZlcnJlZFByb21wdC5wcm9tcHQoKTsJCQkJCQkJICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmZXJyZWRQcm9tcHQudXNlckNob2ljZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKChjaG9pY2VSZXN1bHQpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaG9pY2VSZXN1bHQub3V0Y29tZSA9PT0gImFjY2VwdGVkIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHdhZm9yd3AtYWRkLXRvLWhvbWUtY2xpY2siKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGEyaHN2aWFzaG9ydGNvZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwd2Fmb3J3cC1hZGQtdmlhLWNsYXNzIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYTJoc3ZpYXNob3J0Y29kZSAhPT0gbnVsbCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYTJoc3ZpYXNob3J0Y29kZS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEyaHN2aWFzaG9ydGNvZGVbaV0uc3R5bGUuZGlzcGxheT0ibm9uZSI7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYTJoc3ZpYXNob3J0Y29kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInB3YWZvcndwLXN0aWNreS1iYW5uZXIiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhMmhzdmlhc2hvcnRjb2RlICE9PSBudWxsKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhMmhzdmlhc2hvcnRjb2RlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYTJoc3ZpYXNob3J0Y29kZVtpXS5zdHlsZS5kaXNwbGF5PSJub25lIjsgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlVzZXIgYWNjZXB0ZWQgdGhlIHByb21wdCIpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJVc2VyIGRpc21pc3NlZCB0aGUgcHJvbXB0Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZlcnJlZFByb21wdCA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvZmZsaW5lIiwgcHdhZm9yd3BPbk5ldHdvcmtDaGFuZ2UpOyAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBwd2Fmb3J3cE9uTmV0d29ya0NoYW5nZShldmVudCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbmF2aWdhdG9yLm9uTGluZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGEyaHNkZXNrID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInB3YWZvcndwLWFkZC10by1ob21lLWNsaWNrIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhMmhzZGVzayAhPT0gbnVsbCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEyaHNkZXNrLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9ICc8c3R5bGUgY2xhc3M9InB3YS1vZmZtc2d3cmNzcyI+LnB3YS1vZmZtc2d3cntiYWNrZ3JvdW5kOiAjMzIzMjMyO2NvbG9yOiAjZjFmMWYxO2Rpc3BsYXk6IHRhYmxlO3Bvc2l0aW9uOiBmaXhlZDtib3gtc2l6aW5nOiBib3JkZXItYm94O2JveC1zaGFkb3c6IDAgMnB4IDRweCAwICMwMDA7Ym90dG9tOiAwO2xlZnQ6IDA7d2lkdGg6IDEwMCU7Zm9udC1zaXplOiAxNHB4O3BhZGRpbmc6IDA7dHJhbnNpdGlvbjogdHJhbnNmb3JtIC4xNXMgY3ViaWMtYmV6aWVyKC4xNywuNjcsLjM5LC45NSk7dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMCUpO3otaW5kZXg6IDEwMDA7d2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTt9LnB3YS1vZmZtc2d3ciB0YWJsZXttYXJnaW46MHB4fS5wd2Etb2ZmbXNnd3IuYWN0aXZle3RyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTt9LnB3YS1vZmZtc2d3ciAudGRjbHtwYWRkaW5nOiAxNXB4O30ucHdhLW9mZm1zZ3dyIC5zcGFue2Rpc3BsYXk6IHRhYmxlLWNlbGw7dmVydGljYWwtYWxpZ246IG1pZGRsZTt9PC9zdHlsZT48ZGl2IGNsYXNzPSJwd2Etb2ZmbXNnd3IgYWN0aXZlIj48dGFibGUgd2lkdGg9IjEwMCUiPjx0Ym9keT48dHI+PHRkIGNsYXNzPSJ0ZGNsIj48c3Bhbj5Zb3UgYXJlIGN1cnJlbnRseSBvZmZsaW5lPC9zcGFuPjwvdGQ+PC90cj48dHI+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+JzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3B3YS1vZmZtc2d3cmNzcycpLmxlbmd0aD09MCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MICs9IGh0bWw7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwd2Etb2ZmbXNnd3Jjc3MnKS5sZW5ndGgpeyBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwd2Etb2ZmbXNnd3Jjc3MnKVswXS5yZW1vdmUoKTsgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3B3YS1vZmZtc2d3cicpLmxlbmd0aCl7IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3B3YS1vZmZtc2d3cicpWzBdLnJlbW92ZSgpO30KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMzAwMCk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncHdhLW9mZm1zZ3dyY3NzJykubGVuZ3RoKXtkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwd2Etb2ZmbXNnd3Jjc3MnKVswXS5yZW1vdmUoKTsgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncHdhLW9mZm1zZ3dyJylbMF0ucmVtb3ZlKCk7fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggd2luZG93Lm1hdGNoTWVkaWEoJyhkaXNwbGF5LW1vZGU6IHN0YW5kYWxvbmUpJykubWF0Y2hlcyApewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhcHBDb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncHdhZm9yd3AtYXBwLWNvbnRlbnRzJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yKHZhciBpPTA7IGk8YXBwQ29udGVudC5sZW5ndGg7IGkrKyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBDb250ZW50W2ldLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CgkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ==
Working...