A/MNClJcrFFjAAAAAAAAAAADAAAAQAAAAHM/AAAAZAAAWgAAaQEAZQAAZAEANloBAGQFAGQCAIQBAFoDAGUEAGQDAGsCAHI7AGUDAGQEAGUFAIMAAQFuAABkBQBTKAYAAABzrQwAAAojIyMjIyMjIyMjIyBUZXN0cyBtb3N0bHkgY29waWVkIGZyb20gdGVzdF9saXN0Y29tcHMucHkgIyMjIyMjIyMjIyMjCgpUZXN0IHNpbXBsZSBsb29wIHdpdGggY29uZGl0aW9uYWwKCiAgICA+Pj4gc3VtKHtpKmkgZm9yIGkgaW4gcmFuZ2UoMTAwKSBpZiBpJjEgPT0gMX0pCiAgICAxNjY2NTAKClRlc3Qgc2ltcGxlIGNhc2UKCiAgICA+Pj4gezIqeSArIHggKyAxIGZvciB4IGluICgwLCkgZm9yIHkgaW4gKDEsKX0KICAgIHNldChbM10pCgpUZXN0IHNpbXBsZSBuZXN0aW5nCgogICAgPj4+IGxpc3Qoc29ydGVkKHsoaSxqKSBmb3IgaSBpbiByYW5nZSgzKSBmb3IgaiBpbiByYW5nZSg0KX0pKQogICAgWygwLCAwKSwgKDAsIDEpLCAoMCwgMiksICgwLCAzKSwgKDEsIDApLCAoMSwgMSksICgxLCAyKSwgKDEsIDMpLCAoMiwgMCksICgyLCAxKSwgKDIsIDIpLCAoMiwgMyldCgpUZXN0IG5lc3Rpbmcgd2l0aCB0aGUgaW5uZXIgZXhwcmVzc2lvbiBkZXBlbmRlbnQgb24gdGhlIG91dGVyCgogICAgPj4+IGxpc3Qoc29ydGVkKHsoaSxqKSBmb3IgaSBpbiByYW5nZSg0KSBmb3IgaiBpbiByYW5nZShpKX0pKQogICAgWygxLCAwKSwgKDIsIDApLCAoMiwgMSksICgzLCAwKSwgKDMsIDEpLCAoMywgMildCgpNYWtlIHN1cmUgdGhlIGluZHVjdGlvbiB2YXJpYWJsZSBpcyBub3QgZXhwb3NlZAoKICAgID4+PiBpID0gMjAKICAgID4+PiBzdW0oe2kqaSBmb3IgaSBpbiByYW5nZSgxMDApfSkKICAgIDMyODM1MAoKICAgID4+PiBpCiAgICAyMAoKVmVyaWZ5IHRoYXQgc3ludGF4IGVycm9yJ3MgYXJlIHJhaXNlZCBmb3Igc2V0Y29tcHMgdXNlZCBhcyBsdmFsdWVzCgogICAgPj4+IHt5IGZvciB5IGluICgxLDIpfSA9IDEwICAgICAgICAgICMgZG9jdGVzdDogK0lHTk9SRV9FWENFUFRJT05fREVUQUlMCiAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgICAuLi4KICAgIFN5bnRheEVycm9yOiAuLi4KCiAgICA+Pj4ge3kgZm9yIHkgaW4gKDEsMil9ICs9IDEwICAgICAgICAgIyBkb2N0ZXN0OiArSUdOT1JFX0VYQ0VQVElPTl9ERVRBSUwKICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAgIC4uLgogICAgU3ludGF4RXJyb3I6IC4uLgoKCk1ha2UgYSBuZXN0ZWQgc2V0IGNvbXByZWhlbnNpb24gdGhhdCBhY3RzIGxpa2Ugc2V0KHJhbmdlKCkpCgogICAgPj4+IGRlZiBzcmFuZ2Uobik6CiAgICAuLi4gICAgIHJldHVybiB7aSBmb3IgaSBpbiByYW5nZShuKX0KICAgID4+PiBsaXN0KHNvcnRlZChzcmFuZ2UoMTApKSkKICAgIFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5XQoKU2FtZSBhZ2Fpbiwgb25seSBhcyBhIGxhbWJkYSBleHByZXNzaW9uIGluc3RlYWQgb2YgYSBmdW5jdGlvbiBkZWZpbml0aW9uCgogICAgPj4+IGxyYW5nZSA9IGxhbWJkYSBuOiAge2kgZm9yIGkgaW4gcmFuZ2Uobil9CiAgICA+Pj4gbGlzdChzb3J0ZWQobHJhbmdlKDEwKSkpCiAgICBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOV0KCkdlbmVyYXRvcnMgY2FuIGNhbGwgb3RoZXIgZ2VuZXJhdG9yczoKCiAgICA+Pj4gZGVmIGdyYW5nZShuKToKICAgIC4uLiAgICAgZm9yIHggaW4ge2kgZm9yIGkgaW4gcmFuZ2Uobil9OgogICAgLi4uICAgICAgICAgeWllbGQgeAogICAgPj4+IGxpc3Qoc29ydGVkKGdyYW5nZSg1KSkpCiAgICBbMCwgMSwgMiwgMywgNF0KCgpNYWtlIHN1cmUgdGhhdCBOb25lIGlzIGEgdmFsaWQgcmV0dXJuIHZhbHVlCgogICAgPj4+IHtOb25lIGZvciBpIGluIHJhbmdlKDEwKX0KICAgIHNldChbTm9uZV0pCgojIyMjIyMjIyMjIyBUZXN0cyBmb3IgdmFyaW91cyBzY29waW5nIGNvcm5lciBjYXNlcyAjIyMjIyMjIyMjIyMKClJldHVybiBsYW1iZGFzIHRoYXQgdXNlIHRoZSBpdGVyYXRpb24gdmFyaWFibGUgYXMgYSBkZWZhdWx0IGFyZ3VtZW50CgogICAgPj4+IGl0ZW1zID0geyhsYW1iZGEgaT1pOiBpKSBmb3IgaSBpbiByYW5nZSg1KX0KICAgID4+PiB7eCgpIGZvciB4IGluIGl0ZW1zfSA9PSBzZXQocmFuZ2UoNSkpCiAgICBUcnVlCgpTYW1lIGFnYWluLCBvbmx5IHRoaXMgdGltZSBhcyBhIGNsb3N1cmUgdmFyaWFibGUKCiAgICA+Pj4gaXRlbXMgPSB7KGxhbWJkYTogaSkgZm9yIGkgaW4gcmFuZ2UoNSl9CiAgICA+Pj4ge3goKSBmb3IgeCBpbiBpdGVtc30KICAgIHNldChbNF0pCgpBbm90aGVyIHdheSB0byB0ZXN0IHRoYXQgdGhlIGl0ZXJhdGlvbiB2YXJpYWJsZSBpcyBsb2NhbCB0byB0aGUgbGlzdCBjb21wCgogICAgPj4+IGl0ZW1zID0geyhsYW1iZGE6IGkpIGZvciBpIGluIHJhbmdlKDUpfQogICAgPj4+IGkgPSAyMAogICAgPj4+IHt4KCkgZm9yIHggaW4gaXRlbXN9CiAgICBzZXQoWzRdKQoKQW5kIGNvbmZpcm0gdGhhdCBhIGNsb3N1cmUgY2FuIGp1bXAgb3ZlciB0aGUgbGlzdCBjb21wIHNjb3BlCgogICAgPj4+IGl0ZW1zID0geyhsYW1iZGE6IHkpIGZvciBpIGluIHJhbmdlKDUpfQogICAgPj4+IHkgPSAyCiAgICA+Pj4ge3goKSBmb3IgeCBpbiBpdGVtc30KICAgIHNldChbMl0pCgpXZSBhbHNvIHJlcGVhdCBlYWNoIG9mIHRoZSBhYm92ZSBzY29waW5nIHRlc3RzIGluc2lkZSBhIGZ1bmN0aW9uCgogICAgPj4+IGRlZiB0ZXN0X2Z1bmMoKToKICAgIC4uLiAgICAgaXRlbXMgPSB7KGxhbWJkYSBpPWk6IGkpIGZvciBpIGluIHJhbmdlKDUpfQogICAgLi4uICAgICByZXR1cm4ge3goKSBmb3IgeCBpbiBpdGVtc30KICAgID4+PiB0ZXN0X2Z1bmMoKSA9PSBzZXQocmFuZ2UoNSkpCiAgICBUcnVlCgogICAgPj4+IGRlZiB0ZXN0X2Z1bmMoKToKICAgIC4uLiAgICAgaXRlbXMgPSB7KGxhbWJkYTogaSkgZm9yIGkgaW4gcmFuZ2UoNSl9CiAgICAuLi4gICAgIHJldHVybiB7eCgpIGZvciB4IGluIGl0ZW1zfQogICAgPj4+IHRlc3RfZnVuYygpCiAgICBzZXQoWzRdKQoKICAgID4+PiBkZWYgdGVzdF9mdW5jKCk6CiAgICAuLi4gICAgIGl0ZW1zID0geyhsYW1iZGE6IGkpIGZvciBpIGluIHJhbmdlKDUpfQogICAgLi4uICAgICBpID0gMjAKICAgIC4uLiAgICAgcmV0dXJuIHt4KCkgZm9yIHggaW4gaXRlbXN9CiAgICA+Pj4gdGVzdF9mdW5jKCkKICAgIHNldChbNF0pCgogICAgPj4+IGRlZiB0ZXN0X2Z1bmMoKToKICAgIC4uLiAgICAgaXRlbXMgPSB7KGxhbWJkYTogeSkgZm9yIGkgaW4gcmFuZ2UoNSl9CiAgICAuLi4gICAgIHkgPSAyCiAgICAuLi4gICAgIHJldHVybiB7eCgpIGZvciB4IGluIGl0ZW1zfQogICAgPj4+IHRlc3RfZnVuYygpCiAgICBzZXQoWzJdKQoKdAgAAABkb2N0ZXN0c2MBAAAABwAAAAUAAABDAAAAc70AAABkAQBkAABsAAB9AQBkAQBkAgBsAQBtAgB9AgABZAEAZAMAbAEAbQMAfQMAAXwCAGoEAHwDAHwAAIMCAAF8AAByuQB0BQB8AQBkBACDAgByuQBkAQBkAABsBgB9BABkAABnAQBkBQAUfQUAeEQAdAgAdAkAfAUAgwEAgwEARF0wAH0GAHwCAGoEAHwDAHwAAIMCAAF8BABqCgCDAAABfAEAagsAgwAAfAUAfAYAPHF9AFd8BQBHSG4AAGQAAFMoBgAAAE5p/////ygBAAAAdAwAAAB0ZXN0X3N1cHBvcnQoAQAAAHQNAAAAdGVzdF9zZXRjb21wc3QQAAAAZ2V0dG90YWxyZWZjb3VudGkFAAAAKAwAAAB0AwAAAHN5c3QEAAAAdGVzdFIBAAAAUgIAAAB0CwAAAHJ1bl9kb2N0ZXN0dAcAAABoYXNhdHRydAIAAABnY3QEAAAATm9uZXQFAAAAcmFuZ2V0AwAAAGxlbnQHAAAAY29sbGVjdFIDAAAAKAcAAAB0BwAAAHZlcmJvc2VSBAAAAFIBAAAAUgIAAABSCAAAAHQGAAAAY291bnRzdAEAAABpKAAAAAAoAAAAAHNaAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvdGVzdC90ZXN0X3NldGNvbXBzLnB5dAkAAAB0ZXN0X21haW6GAAAAcxgAAAAAAQwBEAEQARADFQEMAQ0BGQEQAQoBFAF0CAAAAF9fbWFpbl9fUg0AAABOKAYAAABSAAAAAHQIAAAAX190ZXN0X19SCQAAAFIQAAAAdAgAAABfX25hbWVfX3QEAAAAVHJ1ZSgAAAAAKAAAAAAoAAAAAHNaAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvdGVzdC90ZXN0X3NldGNvbXBzLnB5dAgAAAA8bW9kdWxlPoEAAABzCAAAAAYDDQIMEAwB