IiBWaW0gaW5kZW50IGZpbGUKIiBMYW5ndWFnZToJUlBMLzIKIiBWZXJzaW9uOgkwLjIKIiBMYXN0IENoYW5nZToJMjAwNSBNYXIgMjgKIiBNYWludGFpbmVyOglCRVJUUkFORCBKb+tsIDxycGwyQGZyZWUuZnI+CgoiIE9ubHkgbG9hZCB0aGlzIGluZGVudCBmaWxlIHdoZW4gbm8gb3RoZXIgd2FzIGxvYWRlZC4KaWYgZXhpc3RzKCJiOmRpZF9pbmRlbnQiKQogIGZpbmlzaAplbmRpZgpsZXQgYjpkaWRfaW5kZW50ID0gMQoKc2V0bG9jYWwgYXV0b2luZGVudApzZXRsb2NhbCBpbmRlbnRrZXlzKz09fmVuZCw9fmNhc2UsPX5pZiw9fnRoZW4sPX5lbHNlLD1+ZG8sPX51bnRpbCw9fndoaWxlLD1+cmVwZWF0LD1+c2VsZWN0LD1+ZGVmYXVsdCw9fmZvciw9fnN0YXJ0LD1+bmV4dCw9fnN0ZXAsPDw+LDw+PgoKIiBEZWZpbmUgdGhlIGFwcHJvcHJpYXRlIGluZGVudCBmdW5jdGlvbiBidXQgb25seSBvbmNlCnNldGxvY2FsIGluZGVudGV4cHI9UnBsR2V0RnJlZUluZGVudCgpCmlmIGV4aXN0cygiKlJwbEdldEZyZWVJbmRlbnQiKQogIGZpbmlzaAplbmRpZgoKbGV0IGI6dW5kb19pbmRlbnQgPSAic2V0IGFpPCBpbmRlbnRrZXlzPCBpbmRlbnRleHByPCIKCmZ1bmN0aW9uIFJwbEdldEluZGVudChsbnVtKQogIGxldCBpbmQgPSBpbmRlbnQoYTpsbnVtKQogIGxldCBwcmV2bGluZT1nZXRsaW5lKGE6bG51bSkKICAiIFN0cmlwIHRhaWwgY29tbWVudAogIGxldCBwcmV2c3RhdD1zdWJzdGl0dXRlKHByZXZsaW5lLCAnIS4qJCcsICcnLCAnJykKCiAgIiBBZGQgYSBzaGlmdHdpZHRoIHRvIHN0YXRlbWVudHMgZm9sbG93aW5nIGlmLCBpZmVyciwgdGhlbiwgZWxzZSwgZWxzZWlmLAogICIgY2FzZSwgc2VsZWN0LCBkZWZhdWx0LCBkbywgdW50aWwsIHdoaWxlLCByZXBlYXQsIGZvciwgc3RhcnQKICBpZiBwcmV2c3RhdCA9fj8gJ1w8XChpZlx8aWZlcnJcfGRvXHx3aGlsZVwpXD4nICYmIHByZXZzdGF0ID1+PyAnXDxlbmRcPicKICBlbHNlaWYgcHJldnN0YXQgPX4/ICdcKF5cfFxzXCtcKTw8XCgkXHxcc1wrXCknICYmIHByZXZzdGF0ID1+PyAnXHNcKz4+XCgkXHxcc1wrXCknCiAgZWxzZWlmIHByZXZzdGF0ID1+PyAnXDxcKGlmXHxpZmVyclx8dGhlblx8ZWxzZVx8ZWxzZWlmXHxzZWxlY3RcfGNhc2VcfGRvXHx1bnRpbFx8d2hpbGVcfHJlcGVhdFx8Zm9yXHxzdGFydFx8ZGVmYXVsdFwpXD4nIHx8IHByZXZzdGF0ID1+PyAnXCheXHxcc1wrXCk8PFwoJFx8XHNcK1wpJwogICAgbGV0IGluZCA9IGluZCArICZzdwogIGVuZGlmCgogICIgU3VidHJhY3QgYSBzaGlmdHdpZHRoIGZyb20gdGhlbiwgZWxzZSwgZWxzZWlmLCBlbmQsIHVudGlsLCByZXBlYXQsIG5leHQsCiAgIiBzdGVwCiAgbGV0IGxpbmUgPSBnZXRsaW5lKHY6bG51bSkKICBpZiBsaW5lID1+PyAnXlxzKlwodGhlblx8ZWxzZVx8ZWxzZWlmXHx1bnRpbFx8cmVwZWF0XHxuZXh0XHxzdGVwXHxkZWZhdWx0XHxlbmRcKVw+JwogICAgbGV0IGluZCA9IGluZCAtICZzdwogIGVsc2VpZiBsaW5lID1+PyAnXlxzKj4+XCgkXHxcc1wrXCknCiAgICBsZXQgaW5kID0gaW5kIC0gJnN3CiAgZW5kaWYKCiAgcmV0dXJuIGluZAplbmRmdW5jdGlvbgoKZnVuY3Rpb24gUnBsR2V0RnJlZUluZGVudCgpCiAgIiBGaW5kIHRoZSBwcmV2aW91cyBub24tYmxhbmsgbGluZQogIGxldCBsbnVtID0gcHJldm5vbmJsYW5rKHY6bG51bSAtIDEpCgogICIgVXNlIHplcm8gaW5kZW50IGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUKICBpZiBsbnVtID09IDAKICAgIHJldHVybiAwCiAgZW5kaWYKCiAgbGV0IGluZD1ScGxHZXRJbmRlbnQobG51bSkKICByZXR1cm4gaW5kCmVuZGZ1bmN0aW9uCgoiIHZpbTpzdz0yIHR3PTEzMAo=