IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIiIiCmZtdF90YWJsZV9yZXBvcnQucHkg4oCUIO2RnCDspJHsi6wg67O06rOg7ISc7ZiVIO2VuOuTpOufrAotIOyhsOqxtDog7ZGc6rCAIO2OmOydtOyngCDrqbTsoIHsnZggNjAlIOydtOyDgQotIO2KueynlTog7ZGcIOugjOuNlOungSDspJHsi6wsIO2RnCDsoJzrqqko7KCc66qp7KSEKeydgCBzZWN0aW9u7Jy866GcIOyymOumrAoiIiIKCmltcG9ydCByZQpmcm9tIGZtdF9iYXNlIGltcG9ydCAoCiAgICBsb2csIFpXX1BBVFRFUk4sIE5PVEVfUEFUVEVSTiwgTEFCRUxfUEFUVEVSTiwKICAgIE5VTV9TRUNUSU9OX1BBVCwgQUxQSEFfQlVMTEVUX1BBVCwgREFTSF9TVUJfUEFULAogICAgZXh0cmFjdF90YWJsZXNfZnJvbV9wYWdlLCBjbGFzc2lmeV9wYXJhX3dpdGhfYWksCiAgICByZW5kZXJfcGFnZV9odG1sCikKCgpkZWYgY2x1c3Rlcl94cyh4cywgdG9sPTgpOgogICAgY2x1c3RlcnMgPSBbXQogICAgZm9yIHggaW4gc29ydGVkKHNldCh4cykpOgogICAgICAgIGlmIG5vdCBjbHVzdGVycyBvciB4LWNsdXN0ZXJzWy0xXT50b2w6IGNsdXN0ZXJzLmFwcGVuZCh4KQogICAgZGVmIGdldF9sZXZlbCh4KToKICAgICAgICBmb3IgaSxjIGluIGVudW1lcmF0ZShjbHVzdGVycyk6CiAgICAgICAgICAgIGlmIGFicyh4LWMpPD10b2w6IHJldHVybiBpCiAgICAgICAgcmV0dXJuIGxlbihjbHVzdGVycyktMQogICAgcmV0dXJuIGdldF9sZXZlbAoKCmRlZi [encoded data, 4294 characters]