IiBWaW0gZnRwbHVnaW4gZmlsZQoiIExhbmd1YWdlOiAgICAgRXJsYW5nCiIgQXV0aG9yOiAgICAgICBPc2NhciBIZWxsc3Ry9m0gPG9zY2FyQG9zY2FyaC5uZXQ+CiIgQ29udHJpYnV0b3JzOiBSaWNhcmRvIENhdGFsaW5hcyBKaW3pbmV6IDxqaW1lbmV6cmlja0BnbWFpbC5jb20+CiIgICAgICAgICAgICAgICBFZHVhcmRvIExvcGV6IChodHRwOi8vZ2l0aHViLmNvbS90YXBpY2h1KQoiIExpY2Vuc2U6ICAgICAgVmltIGxpY2Vuc2UKIiBWZXJzaW9uOiAgICAgIDIwMTIvMDEvMjUKCmlmIGV4aXN0cygnYjpkaWRfZnRwbHVnaW4nKQoJZmluaXNoCmVsc2UKCWxldCBiOmRpZF9mdHBsdWdpbiA9IDEKZW5kaWYKCmlmIGV4aXN0cygnczpkaWRfZnVuY3Rpb25fZGVmaW5pdGlvbnMnKQoJY2FsbCBzOlNldEVybGFuZ09wdGlvbnMoKQoJZmluaXNoCmVsc2UKCWxldCBzOmRpZF9mdW5jdGlvbl9kZWZpbml0aW9ucyA9IDEKZW5kaWYKCmxldCBzOmNwb19zYXZlID0gJmNwbwpzZXQgY3BvJnZpbQoKaWYgIWV4aXN0cygnZzplcmxhbmdfa2V5d29yZHByZycpCglsZXQgZzplcmxhbmdfa2V5d29yZHByZyA9ICdlcmwgLW1hbicKZW5kaWYKCmlmICFleGlzdHMoJ2c6ZXJsYW5nX2ZvbGRpbmcnKQoJbGV0IGc6ZXJsYW5nX2ZvbGRpbmcgPSAwCmVuZGlmCgpsZXQgczplcmxhbmdfZnVuX2JlZ2luID0gJ15cYVx3KiguKiQnCmxldCBzOmVybGFuZ19mdW5fZW5kICAgPSAnXlteJV0qXC5ccypcKCUuKlwpXD8kJwoKZnVuY3Rpb24gczpTZXRFcmxhbmdPcHRpb25zKCkKCWlmIGc6ZXJsYW5nX2ZvbGRpbmcKCQlzZXRsb2NhbCBmb2xkbWV0aG9kPWV4cHIKCQlzZXRsb2NhbCBmb2xkZXhwcj1HZXRFcmxhbmdGb2xkKHY6bG51bSkKCQlzZXRsb2NhbCBmb2xkdGV4dD1FcmxhbmdGb2xkVGV4dCgpCgllbmRpZgoKCXNldGxvY2FsIGNvbW1lbnRzPTolJSUsOiUlLDolCglzZXRsb2NhbCBjb21tZW50c3RyaW5nPSUlcwoKCXNldGxvY2FsIGZvcm1hdG9wdGlvbnMrPXJvCglsZXQgJmw6a2V5d29yZHByZyA9IGc6ZXJsYW5nX2tleXdvcmRwcmcKZW5kZnVuY3Rpb24KCmZ1bmN0aW9uIEdldEVybGFuZ0ZvbGQobG51bSkKCWxldCBsbnVtID0gYTpsbnVtCglsZXQgbGluZSA9IGdldGxpbmUobG51bSkKCglpZiBsaW5lID1+IHM6ZXJsYW5nX2Z1bl9lbmQKCQlyZXR1cm4gJzwxJwoJZW5kaWYKCglpZiBsaW5lID1+IHM6ZXJsYW5nX2Z1bl9iZWdpbiAmJiBmb2xkbGV2ZWwobG51bSAtIDEpID09IDEKCQlyZXR1cm4gJzEnCgllbmRpZgoKCWlmIGxpbmUgPX4gczplcmxhbmdfZnVuX2JlZ2luCgkJcmV0dXJuICc+MScKCWVuZGlmCgoJcmV0dXJuICc9JwplbmRmdW5jdGlvbgoKZnVuY3Rpb24gRXJsYW5nRm9sZFRleHQoKQoJbGV0IGxpbmUgICAgPSBnZXRsaW5lKHY6Zm9sZHN0YXJ0KQoJbGV0IGZvbGRsZW4gPSB2OmZvbGRlbmQgLSB2OmZvbGRzdGFydCArIDEKCWxldCBsaW5lcyAgID0gJyAnIC4gZm9sZGxlbiAuICcgbGluZXM6ICcgLiBzdWJzdGl0dXRlKGxpbmUsICJbXCBcdF0qIiwgJycsICcnKQoJaWYgZm9sZGxlbiA8IDEwCgkJbGV0IGxpbmVzID0gJyAnIC4gbGluZXMKCWVuZGlmCglsZXQgcmV0dmFsID0gJysnIC4gdjpmb2xkZGFzaGVzIC4gbGluZXMKCglyZXR1cm4gcmV0dmFsCmVuZGZ1bmN0aW9uCgpjYWxsIHM6U2V0RXJsYW5nT3B0aW9ucygpCgpsZXQgYjp1bmRvX2Z0cGx1Z2luID0gInNldGxvY2FsIGZvbGRtZXRob2Q8IGZvbGRleHByPCBmb2xkdGV4dDwiCglcIC4gIiBjb21tZW50czwgY29tbWVudHN0cmluZzwgZm9ybWF0b3B0aW9uczwiCgpsZXQgJmNwbyA9IHM6Y3BvX3NhdmUKdW5sZXQgczpjcG9fc2F2ZQo=