Skip to contentLy8gPGJsb2NrOmRhdGE6MT4KY29uc3QgcG9pbnRzID0gWwogIHt4OiAnQScsIHk6ICdYJywgdjogMTF9LAogIHt4OiAnQScsIHk6ICdZJywgdjogMTJ9LAogIHt4OiAnQScsIHk6ICdaJywgdjogMTN9LAogIHt4OiAnQicsIHk6ICdYJywgdjogMjF9LAogIHt4OiAnQicsIHk6ICdZJywgdjogMjJ9LAogIHt4OiAnQicsIHk6ICdaJywgdjogMjN9LAogIHt4OiAnQycsIHk6ICdYJywgdjogMzF9LAogIHt4OiAnQycsIHk6ICdZJywgdjogMzJ9LAogIHt4OiAnQycsIHk6ICdaJywgdjogMzN9Cl07Ci8vIDwvYmxvY2s6ZGF0YT4KCi8vIDxibG9jazpjb25maWc6MD4KY29uc3QgY29uZmlnID0gewogIHR5cGU6ICdtYXRyaXgnLAogIGRhdGE6IHsKICAgIGRhdGFzZXRzOiBbewogICAgICBsYWJlbDogJ015IE1hdHJpeCcsCiAgICAgIGRhdGE6IHBvaW50cwogICAgfV0KICB9LAogIG9wdGlvbnM6IHsKICAgIGJhY2tncm91bmRDb2xvcihjb250ZXh0KSB7CiAgICAgIGNvbnN0IHZhbHVlID0gY29udGV4dC5kYXRhc2V0LmRhdGFbY29udGV4dC5kYXRhSW5kZXhdLnY7CiAgICAgIGNvbnN0IGFscGhhID0gKHZhbHVlIC0gNSkgLyA0MDsKICAgICAgcmV0dXJuIGhlbHBlcnMuY29sb3IoJ2dyZWVuJykuYWxwaGEoYWxwaGEpLnJnYlN0cmluZygpOwogICAgfSwKICAgIGJvcmRlckNvbG9yKGNvbnRleHQpIHsKICAgICAgY29uc3QgdmFsdWUgPSBjb250ZXh0LmRhdGFzZXQuZGF0YVtjb250ZXh0LmRhdGFJbmRleF0udjsKICAgICAgY29uc3QgYWxwaGEgPSAodmFsdWUgLSA1KSAvIDQwOwogICAgICByZXR1cm4gaGVscGVycy5jb2xvcignZGFya2dyZWVuJykuYWxwaGEoYWxwaGEpLnJnYlN0cmluZygpOwogICAgfSwKICAgIGJvcmRlcldpZHRoOiAxLAogICAgd2lkdGg6ICh7Y2hhcnR9KSA9PiAoY2hhcnQuY2hhcnRBcmVhIHx8IHt9KS53aWR0aCAvIDMgLSAxLAogICAgaGVpZ2h0OiAoe2NoYXJ0fSkgPT4oY2hhcnQuY2hhcnRBcmVhIHx8IHt9KS5oZWlnaHQgLyAzIC0gMSwKICAgIHBsdWdpbnM6IHsKICAgICAgbGVnZW5kOiBmYWxzZSwKICAgICAgdG9vbHRpcDogewogICAgICAgIGNhbGxiYWNrczogewogICAgICAgICAgdGl0bGUoKSB7CiAgICAgICAgICAgIHJldHVybiAnJzsKICAgICAgICAgIH0sCiAgICAgICAgICBsYWJlbChjb250ZXh0KSB7CiAgICAgICAgICAgIGNvbnN0IHYgPSBjb250ZXh0LmRhdGFzZXQuZGF0YVtjb250ZXh0LmRhdGFJbmRleF07CiAgICAgICAgICAgIHJldHVybiBbJ3g6ICcgKyB2LngsICd5OiAnICsgdi55LCAndjogJyArIHYudl07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgc2NhbGVzOiB7CiAgICAgIHg6IHsKICAgICAgICB0eXBlOiAnY2F0ZWdvcnknLAogICAgICAgIGxhYmVsczogWydBJywgJ0InLCAnQyddLAogICAgICAgIHRpY2tzOiB7CiAgICAgICAgICBkaXNwbGF5OiB0cnVlCiAgICAgICAgfSwKICAgICAgICBncmlkOiB7CiAgICAgICAgICBkaXNwbGF5OiBmYWxzZQogICAgICAgIH0KICAgICAgfSwKICAgICAgeTogewogICAgICAgIHR5cGU6ICdjYXRlZ29yeScsCiAgICAgICAgbGFiZWxzOiBbJ1gnLCAnWScsICdaJ10sCiAgICAgICAgb2Zmc2V0OiB0cnVlLAogICAgICAgIHRpY2tzOiB7CiAgICAgICAgICBkaXNwbGF5OiB0cnVlCiAgICAgICAgfSwKICAgICAgICBncmlkOiB7CiAgICAgICAgICBkaXNwbGF5OiBmYWxzZQogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfTsKLy8gPC9ibG9jazpjb25maWc+Cgpjb25zdCBhY3Rpb25zID0gWwogIHsKICAgIG5hbWU6ICdSYW5kb21pemUnLAogICAgaGFuZGxlcihjaGFydCkgewogICAgICBjaGFydC5kYXRhLmRhdGFzZXRzLmZvckVhY2goZGF0YXNldCA9PiB7CiAgICAgICAgZGF0YXNldC5kYXRhLmZvckVhY2gocG9pbnQgPT4gewogICAgICAgICAgcG9pbnQudiA9IE1hdGgucmFuZG9tKCkgKiA1MDsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICAgIGNoYXJ0LnVwZGF0ZSgpOwogICAgfQogIH0sCl07Cgptb2R1bGUuZXhwb3J0cyA9IHsKICBhY3Rpb25zLAogIGNvbmZpZywKfTs=