Skip to contentLy8gPGJsb2NrOnNldHVwOjE+CmNvbnN0IEdST1VQUyA9IFsncmVnaW9uJywgJ2RpdmlzaW9uJywgJ3N0YXRlJ107CgpmdW5jdGlvbiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoc3RyaW5nKSB7CiAgcmV0dXJuIHN0cmluZy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0cmluZy5zbGljZSgxKTsKfQovLyA8L2Jsb2NrOnNldHVwPgoKLy8gPGJsb2NrOmNvbmZpZzowPgpjb25zdCBjb25maWcgPSB7CiAgdHlwZTogJ3RyZWVtYXAnLAogIGRhdGE6IHsKICAgIGRhdGFzZXRzOiBbewogICAgICB0cmVlOiBEYXRhLnN0YXRzQnlTdGF0ZSwKICAgICAga2V5OiAnYXJlYScsCiAgICAgIGdyb3VwczogR1JPVVBTLAogICAgICBzcGFjaW5nOiAxLAogICAgICBib3JkZXJXaWR0aDogMC41LAogICAgICBib3JkZXJDb2xvcjogJ3JnYmEoMjAwLDIwMCwyMDAsMSknLAogICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDIyMCwyMzAsMjIwLDAuMyknLAogICAgICBob3ZlckJhY2tncm91bmRDb2xvcjogJ3JnYmEoMjIwLDIzMCwyMjAsMC41KScsCiAgICAgIGNhcHRpb25zOiB7CiAgICAgICAgYWxpZ246ICdjZW50ZXInLAogICAgICAgIGRpc3BsYXk6IHRydWUsCiAgICAgICAgY29sb3I6ICdyZWQnLAogICAgICAgIGZvbnQ6IHsKICAgICAgICAgIHNpemU6IDE0LAogICAgICAgIH0sCiAgICAgICAgaG92ZXJGb250OiB7CiAgICAgICAgICBzaXplOiAxNiwKICAgICAgICAgIHdlaWdodDogJ2JvbGQnCiAgICAgICAgfSwKICAgICAgICBwYWRkaW5nOiA1CiAgICAgIH0sCiAgICAgIGxhYmVsczogewogICAgICAgIGRpc3BsYXk6IGZhbHNlLAogICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJwogICAgICB9CiAgICB9XQogIH0sCiAgb3B0aW9uczogewogICAgcGx1Z2luczogewogICAgICB0aXRsZTogewogICAgICAgIGRpc3BsYXk6IHRydWUsCiAgICAgICAgdGV4dDogKGN0eCkgPT4gJ1VTIGFyZWEgYnkgJyArIEdST1VQUy5qb2luKCcgLyAnKQogICAgICB9LAogICAgICBsZWdlbmQ6IHsKICAgICAgICBkaXNwbGF5OiBmYWxzZQogICAgICB9LAogICAgICB0b29sdGlwOiB7CiAgICAgICAgY2FsbGJhY2tzOiB7CiAgICAgICAgICB0aXRsZShpdGVtcykgewogICAgICAgICAgICByZXR1cm4gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGl0ZW1zWzBdLmRhdGFzZXQua2V5KTsKICAgICAgICAgIH0sCiAgICAgICAgICBsYWJlbChpdGVtKSB7CiAgICAgICAgICAgIGNvbnN0IGRhdGFJdGVtID0gaXRlbS5yYXc7CiAgICAgICAgICAgIGNvbnN0IG9iaiA9IGRhdGFJdGVtLl9kYXRhOwogICAgICAgICAgICBjb25zdCBsYWJlbCA9IG9iai5zdGF0ZSB8fCBvYmouZGl2aXNpb24gfHwgb2JqLnJlZ2lvbjsKICAgICAgICAgICAgcmV0dXJuIGxhYmVsICsgJzogJyArIGRhdGFJdGVtLnY7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQp9OwovLyA8L2Jsb2NrOmNvbmZpZz4KCm1vZHVsZS5leHBvcnRzID0gewogIGNvbmZpZywKICBjaG9pY2VzOiBbCiAgICB7CiAgICAgIHBhdGg6ICdkYXRhLmRhdGFzZXRzLjAubGFiZWxzLmRpc3BsYXknLAogICAgICB2YWx1ZXM6IFtmYWxzZSwgdHJ1ZV0sCiAgICAgIGNvbnRyb2w6ICdjaGVja2JveCcsCiAgICAgIGxhYmVsOiAnRGF0YSBsYWJlbHMnCiAgICB9CiAgXQp9Ow==