WRSTR|KGZ1bmN0aW9uKCl7CnZhciBJTks9ImNvbG9yOiMxYTFhMWE7IjsKdmFyIEZPTlQ9ImZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFNlZ29lIFVJLFJvYm90byxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjsiOwp2YXIgUD0od2luZG93Ll9fd3JUZXN0UGF0aHx8d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKS5yZXBsYWNlKC9cLyQvLCIiKTsKZnVuY3Rpb24gbWsodCxjLHgpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCk7aWYoYyllLnN0eWxlLmNzc1RleHQ9YztpZih4IT1udWxsKWUudGV4dENvbnRlbnQ9eDtyZXR1cm4gZTt9CmZ1bmN0aW9uIG1vbmV5KG4pe2lmKCFpc0Zpbml0ZShuKSlyZXR1cm4gIm4vYSI7cmV0dXJuIChuPDA/Ii0kIjoiJCIpK01hdGgucm91bmQoTWF0aC5hYnMobikpLnRvTG9jYWxlU3RyaW5nKCJlbi1VUyIpO30KZnVuY3Rpb24gcGMobixkKXtyZXR1cm4gKG4qMTAwKS50b0ZpeGVkKGQ9PW51bGw/MTpkKSsiJSI7fQpmdW5jdGlvbiBndihpZCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO3JldHVybiBlP2UudmFsdWU6IiI7fQpmdW5jdGlvbiBnbihpZCl7dmFyIHY9cGFyc2VGbG9hdChndihpZCkpO3JldHVybiBpc0Zpbml0ZSh2KT92OjA7fQpmdW5jdGlvbiBidWlsZChjZmcpewogdmFyIGJvZHk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnNiLWl0ZW0tdmlld19fYm9keSIpOwogaWYoIWJvZHl8fGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNmZy5pZCkpcmV0dXJuOwogaWYoIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImgxIikpe2JvZHkucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobWsoImgxIiwiY29sb3I6IzFhMWExYTsiK0ZPTlQrImZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MzZweDtsaW5lLWhlaWdodDoxLjI7bWFyZ2luOjAgMCAxNnB4IDA7IixjZmcuaDEpLGJvZHkpO30KIHZhciBtYXJrZXI9bnVsbCxwcz1ib2R5LnF1ZXJ5U2VsZWN0b3JBbGwoInAiKTsKIGZvcih2YXIgaT0wO2k8cHMubGVuZ3RoO2krKyl7aWYocHNbaV0udGV4dENvbnRlbnQudHJpbSgpPT09IkNBTENfTUFSS0VSIil7bWFya2VyPXBzW2ldO2JyZWFrO319CiBpZighbWFya2VyKXJldHVybjsKIHZhciBjYXJkPW1rKCJkaXYiLCJiYWNrZ3JvdW5kOiNmNWY1ZjQ7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MjhweDttYXgtd2lkdGg6NjQwcHg7bWFyZ2luOjE2cHggMCAyNHB4OyIrSU5LK0ZPTlQpOwogY2FyZC5pZD1jZmcuaWQ7CiB2YXIgd3JhcHM9W107CiBjZmcuZmllbGRzLmZvckVhY2goZnVuY3Rpb24oZil7CiAgdmFyIHc9bWsoImRpdiIsIiIpOwogIGlmKGYuaCl7dy5hcHBlbmRDaGlsZChtaygiZGl2IiwiY29sb3I6IzFhMWExYTtmb250LXNpemU6MTdweDtmb250LXdlaWdodDo3MDA7bWFyZ2luOjI0cHggMCA0cHg7IitGT05ULGYuaCkpO30KICBlbHNlewogICB3LmFwcGVuZENoaWxkKG1rKCJsYWJlbCIsImRpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbjoxNHB4IDAgNHB4O2NvbG9yOiMxYTFhMWE7IixmLmxhYmVsKSk7CiAgIHZhciBpbnA7CiAgIGlmKGYub3B0cyl7aW5wPW1rKCJzZWxlY3QiLCIiKTtmLm9wdHMuZm9yRWFjaChmdW5jdGlvbihvKXt2YXIgb3A9bWsoIm9wdGlvbiIsImNvbG9yOiMxYTFhMWE7IixvWzFdKTtvcC52YWx1ZT1vWzBdO2lucC5hcHBlbmRDaGlsZChvcCk7fSk7aW5wLnZhbHVlPWYuZGVmO30KICAgZWxzZXtpbnA9bWsoImlucHV0IiwiIik7aW5wLnR5cGU9Im51bWJlciI7aW5wLnN0ZXA9ImFueSI7aW5wLnZhbHVlPWYuZGVmO30KICAgaW5wLmlkPWYuaWQ7CiAgIGlucC5zdHlsZS5jc3NUZXh0PSJ3aWR0aDoxMDAlO21heC13aWR0aDozNDBweDtwYWRkaW5nOjEwcHg7Zm9udC1zaXplOjE2cHg7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRlci1yYWRpdXM6NnB4O2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMWExYTFhO2JveC1zaXppbmc6Ym9yZGVyLWJveDsiOwogICBpbnAuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixhcHBseSk7CiAgIHcuYXBwZW5kQ2hpbGQoaW5wKTsKICAgaWYoZi5oaW50KXcuYXBwZW5kQ2hpbGQobWsoImRpdiIsImZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuNDttYXJnaW46NHB4IDAgMDtjb2xvcjojNTU1OyIsZi5oaW50KSk7CiAgfQogIGNhcmQuYXBwZW5kQ2hpbGQodyk7d3JhcHMucHVzaCh7ZWw6dyxnOmYuZ30pOwogfSk7CiBmdW5jdGlvbiBhcHBseSgpe3dyYXBzLmZvckVhY2goZnVuY3Rpb24oeCl7eC5lbC5zdHlsZS5kaXNwbGF5PSgheC5nfHwhY2ZnLnNob3d8fGNmZy5zaG93KHguZykpPyIiOiJub25lIjt9KTt9CiB2YXIgYnRuPW1rKCJidXR0b24iLCJiYWNrZ3JvdW5kOiMxYTFhMWE7Y29sb3I6I2ZmZjtib3JkZXI6MDtib3JkZXItcmFkaXVzOjZweDtwYWRkaW5nOjEycHggMjRweDtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjE2cHg7Y3Vyc29yOnBvaW50ZXI7bWFyZ2luLXRvcDoyMnB4OyIsIkNhbGN1bGF0ZSIpOwogYnRuLnR5cGU9ImJ1dHRvbiI7Y2FyZC5hcHBlbmRDaGlsZChidG4pOwogdmFyIG91dD1taygiZGl2IiwiZGlzcGxheTpub25lO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRpbmc6MThweDttYXJnaW4tdG9wOjIwcHg7IitJTkspOwogb3V0LmlkPWNmZy5pZCsiLW91dCI7Y2FyZC5hcHBlbmRDaGlsZChvdXQpOwogYnRuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpewogIHZhciByPWNmZy5jYWxjKCk7b3V0LnRleHRDb250ZW50PSIiO291dC5zdHlsZS5kaXNwbGF5PSJibG9jayI7CiAgdmFyIGhkPW1rKCJkaXYiLCJtYXJnaW4tYm90dG9tOjEycHg7Iik7CiAgaGQuYXBwZW5kQ2hpbGQobWsoImRpdiIsImZvbnQtc2l6ZToxNHB4O2NvbG9yOiM0NDQ7IixyLmhsWzBdKSk7CiAgaGQuYXBwZW5kQ2hpbGQobWsoImRpdiIsImZvbnQtc2l6ZToyOHB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMWExYTFhO2xpbmUtaGVpZ2h0OjEuMjU7IixyLmhsWzFdKSk7CiAgb3V0LmFwcGVuZENoaWxkKGhkKTsKICByLnJvd3MuZm9yRWFjaChmdW5jdGlvbih4KXsKICAgaWYoeFsyXT09PSJoIil7b3V0LmFwcGVuZENoaWxkKG1rKCJkaXYiLCJmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjE1cHg7bWFyZ2luOjE2cHggMCA0cHg7Y29sb3I6IzFhMWExYTsiLHhbMF0pKTtyZXR1cm47fQogICB2YXIgcm93PW1rKCJkaXYiLCJkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjEycHg7cGFkZGluZzo3cHggMDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWVlO2ZvbnQtc2l6ZToxNXB4O2NvbG9yOiMxYTFhMWE7IisoeFsyXT8iZm9udC13ZWlnaHQ6NzAwOyI6IiIpKTsKICAgcm93LmFwcGVuZENoaWxkKG1rKCJzcGFuIiwiY29sb3I6IzFhMWExYTsiLHhbMF0pKTtyb3cuYXBwZW5kQ2hpbGQobWsoInNwYW4iLCJjb2xvcjojMWExYTFhO3RleHQtYWxpZ246cmlnaHQ7Iix4WzFdKSk7CiAgIG91dC5hcHBlbmRDaGlsZChyb3cpOwogIH0pOwogIChyLm5vdGVzfHxbXSkuZm9yRWFjaChmdW5jdGlvbih0KXtvdXQuYXBwZW5kQ2hpbGQobWsoImRpdiIsImJhY2tncm91bmQ6I2ZmZjRlMDtib3JkZXI6MXB4IHNvbGlkICNlMGIwNjA7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzoxMnB4IDE0cHg7bWFyZ2luOjEycHggMCAwO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNDU7Y29sb3I6IzFhMWExYTsiLHQpKTt9KTsKICBvdXQuYXBwZW5kQ2hpbGQobWsoImRpdiIsImZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuNDttYXJnaW4tdG9wOjE0cHg7Y29sb3I6IzU1NTsiLCJFc3RpbWF0ZXMgZm9yIGVkdWNhdGlvbiBvbmx5LCBub3QgdGF4LCBsZWdhbCwgb3IgbGVuZGluZyBhZHZpY2UuIFRheCBydWxlcyBjaGFuZ2UgYW5kIGRlcGVuZCBvbiB5b3VyIHNpdHVhdGlvbi4gVGFsayB0byBhIENQQSBiZWZvcmUgeW91IGFjdC4iKSk7CiB9KTsKIGFwcGx5KCk7CiBtYXJrZXIucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoY2FyZCxtYXJrZXIpOwp9CnZhciBZTj1bWyJ5ZXMiLCJZZXMiXSxbIm5vIiwiTm8iXV07CnZhciBCUj1bWyIxMiIsIjEyJSJdLFsiMjIiLCIyMiUiXSxbIjI0IiwiMjQlIl0sWyIzMiIsIjMyJSJdLFsiMzUiLCIzNSUiXSxbIjM3IiwiMzclIl1dOwoKdmFyIEMxPXtpZDoid3ItcmV2LWNhbGMiLGgxOiJMb3Vpc3ZpbGxlIEFpcmJuYiBhbmQgTWlkdGVybSBSZW50YWwgUmV2ZW51ZSBDYWxjdWxhdG9yIiwKc2hvdzpmdW5jdGlvbihnKXtyZXR1cm4gZz09PWd2KCJtb2RlIik7fSwKZmllbGRzOlsKe2lkOiJtb2RlIixsYWJlbDoiUmVudGFsIHR5cGUiLGRlZjoic3RyIixvcHRzOltbInN0ciIsIlNob3J0LXRlcm0gcmVudGFsIChBaXJibmIsIHN0YXlzIHVuZGVyIDMwIG5pZ2h0cykiXSxbIm10IiwiTWlkdGVybSByZW50YWwgKGZ1cm5pc2hlZCwgc3RheXMgb2YgMzAgbmlnaHRzIG9yIG1vcmUpIl1dfSwKe2g6IlNob3J0LXRlcm0gcmVudGFsIGlucHV0cyIsZzoic3RyIn0sCntpZDoiYWRyIixsYWJlbDoiQXZlcmFnZSBuaWdodGx5IHJhdGUgb24gbm9ybWFsIG5pZ2h0cyAoJCkiLGRlZjoxODAsZzoic3RyIixoaW50OiJMZWF2ZSBEZXJieSBvdXQgb2YgdGhpcyBudW1iZXIuIEFpckROQSBzaG93cyBhYm91dCAkMjE4IGEgbmlnaHQgY2l0eXdpZGUsIGJ1dCB0aGF0IGF2ZXJhZ2UgaW5jbHVkZXMgRGVyYnkuIn0sCntpZDoib2NjIixsYWJlbDoiT2NjdXBhbmN5IG9uIG5vcm1hbCBuaWdodHMgKCUpIixkZWY6NDUsZzoic3RyIixoaW50OiJUcmFja2VycyBkaXNhZ3JlZS4gQWlyRE5BIHNob3dzIDU2IHBlcmNlbnQgY2l0eXdpZGUgYW5kIEFpclJPSSBzaG93cyAzOC4gVW5kZXJ3cml0ZSB0aGUgbG93IGVuZC4ifSwKe2lkOiJkbiIsbGFiZWw6IkRlcmJ5IHdlZWtlbmQgbmlnaHRzIGJvb2tlZCAoMCB0byA0KSIsZGVmOjMsZzoic3RyIn0sCntpZDoiZHIiLGxhYmVsOiJEZXJieSB3ZWVrZW5kIG5pZ2h0bHkgcmF0ZSAoJCkiLGRlZjo4MDAsZzoic3RyIixoaW50OiJUaGUgYXZlcmFnZSB0aHJlZS1uaWdodCBEZXJieSB3ZWVrZW5kIHN0YXkgcmFuIGFib3V0ICQyLDU1MiBpbiAyMDI2LCByb3VnaGx5ICQ4NTAgYSBuaWdodC4ifSwKe2lkOiJzdGF5IixsYWJlbDoiQXZlcmFnZSBzdGF5IChuaWdodHMpIixkZWY6MyxnOiJzdHIifSwKe2lkOiJjZiIsbGFiZWw6IkNsZWFuaW5nIGZlZSB5b3UgY2hhcmdlIGd1ZXN0cywgcGVyIHN0YXkgKCQpIixkZWY6MTAwLGc6InN0ciJ9LAp7aWQ6ImNjIixsYWJlbDoiV2hhdCB5b3UgcGF5IGZvciBjbGVhbmluZywgcGVyIHN0YXkgKCQpIixkZWY6MTEwLGc6InN0ciJ9LAp7aWQ6InBmIixsYWJlbDoiUGxhdGZvcm0gYW5kIHBheW1lbnQgZmVlcyAoJSBvZiByZXZlbnVlKSIsZGVmOjMsZzoic3RyIn0sCntpZDoibWciLGxhYmVsOiJNYW5hZ2VtZW50IGZlZSAoJSBvZiByZXZlbnVlLCAwIGlmIHlvdSBzZWxmLW1hbmFnZSkiLGRlZjowLGc6InN0ciJ9LAp7aWQ6InN1cCIsbGFiZWw6IlN1cHBsaWVzLCBsaW5lbnMsIHJlc3RvY2tpbmcgKCQgcGVyIG1vbnRoKSIsZGVmOjE1MCxnOiJzdHIifSwKe2lkOiJ1dGlsIixsYWJlbDoiVXRpbGl0aWVzLCBpbnRlcm5ldCwgc3RyZWFtaW5nICgkIHBlciBtb250aCkiLGRlZjozNTAsZzoic3RyIn0sCntpZDoib3RoIixsYWJlbDoiTGF3biwgc25vdywgcmVwYWlycyByZXNlcnZlICgkIHBlciBtb250aCkiLGRlZjoyMDAsZzoic3RyIn0sCntpZDoiaW5zIixsYWJlbDoiU2hvcnQtdGVybSByZW50YWwgaW5zdXJhbmNlICgkIHBlciB5ZWFyKSIsZGVmOjI0MDAsZzoic3RyIixoaW50OiJTdGFuZGFyZCBob21lb3duZXIgYW5kIGxhbmRsb3JkIHBvbGljaWVzIHVzdWFsbHkgZXhjbHVkZSBzaG9ydC10ZXJtIHJlbnRhbCB1c2UuIn0sCntpZDoidGF4IixsYWJlbDoiUHJvcGVydHkgdGF4ICgkIHBlciB5ZWFyKSIsZGVmOjMwMDAsZzoic3RyIn0sCntpZDoicGVybSIsbGFiZWw6IlJlZ2lzdHJhdGlvbiBhbmQgcGVybWl0IGZlZXMgKCQgcGVyIHllYXIpIixkZWY6MjUwLGc6InN0ciJ9LAp7aWQ6ImRlYnQiLGxhYmVsOiJNb3J0Z2FnZSBwYXltZW50LCBwcmluY2lwYWwgYW5kIGludGVyZXN0ICgkIHBlciBtb250aCwgb3B0aW9uYWwpIixkZWY6MCxnOiJzdHIifSwKe2g6Ik1pZHRlcm0gcmVudGFsIGlucHV0cyIsZzoibXQifSwKe2lkOiJtciIsbGFiZWw6Ik1vbnRobHkgcmVudCwgZnVybmlzaGVkICgkKSIsZGVmOjI4MDAsZzoibXQiLGhpbnQ6IkNoZWNrIGxpdmUgZnVybmlzaGVkIGNvbXBzLiBUcmF2ZWwgbnVyc2UgYW5kIHJlbG9jYXRpb24gZGVtYW5kIGlzIHN0ZWFkeSwgbm90IGEgc3Bpa2UuIn0sCntpZDoibW0iLGxhYmVsOiJNb250aHMgb2NjdXBpZWQgcGVyIHllYXIgKHVwIHRvIDEyKSIsZGVmOjEwLjUsZzoibXQiLGhpbnQ6IlRyYXZlbCBudXJzZSBjb250cmFjdHMgb2Z0ZW4gcnVuIGFyb3VuZCAxMyB3ZWVrcywgc28gcGxhbiBvbiBnYXBzIGJldHdlZW4gc3RheXMuIn0sCntpZDoibXMiLGxhYmVsOiJBdmVyYWdlIHN0YXkgKG1vbnRocykiLGRlZjozLGc6Im10In0sCntpZDoibXRuIixsYWJlbDoiVHVybm92ZXIgY2xlYW5pbmcsIHBlciBzdGF5ICgkKSIsZGVmOjE3NSxnOiJtdCJ9LAp7aWQ6Im11IixsYWJlbDoiVXRpbGl0aWVzIGFuZCBpbnRlcm5ldCB5b3UgcGF5ICgkIHBlciBtb250aCkiLGRlZjozNTAsZzoibXQifSwKe2lkOiJtZzIiLGxhYmVsOiJNYW5hZ2VtZW50IGZlZSAoJSBvZiByZW50LCAwIGlmIHlvdSBzZWxmLW1hbmFnZSkiLGRlZjowLGc6Im10In0sCntpZDoibWkiLGxhYmVsOiJMYW5kbG9yZCBpbnN1cmFuY2UgKCQgcGVyIHllYXIpIixkZWY6MTgwMCxnOiJtdCJ9LAp7aWQ6Im14IixsYWJlbDoiUHJvcGVydHkgdGF4ICgkIHBlciB5ZWFyKSIsZGVmOjMwMDAsZzoibXQifSwKe2lkOiJtbyIsbGFiZWw6Ik1haW50ZW5hbmNlIHJlc2VydmUgKCQgcGVyIG1vbnRoKSIsZGVmOjE1MCxnOiJtdCJ9LAp7aWQ6Im1mIixsYWJlbDoiRnVybmlzaGluZyBjb3N0LCBvbmUgdGltZSAoJCkiLGRlZjoxMjAwMCxnOiJtdCJ9LAp7aWQ6Im1kIixsYWJlbDoiTW9ydGdhZ2UgcGF5bWVudCwgcHJpbmNpcGFsIGFuZCBpbnRlcmVzdCAoJCBwZXIgbW9udGgsIG9wdGlvbmFsKSIsZGVmOjAsZzoibXQifQpdLApjYWxjOmZ1bmN0aW9uKCl7CiBpZihndigibW9kZSIpPT09Im10Iil7CiAgdmFyIG1vPU1hdGgubWluKE1hdGgubWF4KGduKCJtbSIpLDApLDEyKSxyZXY9Z24oIm1yIikqbW8sc3RheXM9bW8vTWF0aC5tYXgoZ24oIm1zIiksMSksdHVybj1zdGF5cypnbigibXRuIiksbWc9cmV2KmduKCJtZzIiKS8xMDA7CiAgdmFyIGZpeGVkPWduKCJtdSIpKjEyK2duKCJtaSIpK2duKCJteCIpK2duKCJtbyIpKjEyLG5vaT1yZXYtbWctdHVybi1maXhlZCxkZWJ0PWduKCJtZCIpKjEyLGZ1PWduKCJtZiIpOwogIHZhciByb3dzPVtbIkFubnVhbCByZW50IGNvbGxlY3RlZCIsbW9uZXkocmV2KV0sWyJNYW5hZ2VtZW50IGZlZSIsbW9uZXkoLW1nKV0sWyJUdXJub3ZlciBjbGVhbmluZyAoIitzdGF5cy50b0ZpeGVkKDEpKyIgc3RheXMpIixtb25leSgtdHVybildLFsiVXRpbGl0aWVzLCBpbnN1cmFuY2UsIHRheCwgbWFpbnRlbmFuY2UiLG1vbmV5KC1maXhlZCldLFsiTmV0IG9wZXJhdGluZyBpbmNvbWUgcGVyIHllYXIiLG1vbmV5KG5vaSksMV0sWyJOZXQgb3BlcmF0aW5nIGluY29tZSBwZXIgbW9udGgiLG1vbmV5KG5vaS8xMildXTsKICBpZihkZWJ0PjApe3Jvd3MucHVzaChbIk1vcnRnYWdlIHBheW1lbnRzIixtb25leSgtZGVidCldKTtyb3dzLnB1c2goWyJDYXNoIGZsb3cgYWZ0ZXIgbW9ydGdhZ2UsIHBlciB5ZWFyIixtb25leShub2ktZGVidCksMV0pO30KICByb3dzLnB1c2goWyJGdXJuaXNoaW5nIHBheWJhY2siLG5vaT4wPyhmdS9ub2kpLnRvRml4ZWQoMSkrIiB5ZWFycyI6IkRvZXMgbm90IHBheSBiYWNrIGF0IHRoZXNlIG51bWJlcnMiXSk7CiAgcm93cy5wdXNoKFsiTk9JIGFmdGVyIHNwcmVhZGluZyBmdXJuaXNoaW5ncyBvdmVyIDUgeWVhcnMiLG1vbmV5KG5vaS1mdS81KV0pOwogIHJldHVybiB7aGw6WyJFc3RpbWF0ZWQgbWlkdGVybSBuZXQgb3BlcmF0aW5nIGluY29tZSwgYmVmb3JlIG1vcnRnYWdlIixtb25leShub2kpKyIgcGVyIHllYXIgKCIrbW9uZXkobm9pLzEyKSsiIGEgbW9udGgpIl0scm93czpyb3dzLG5vdGVzOlsiU3RheXMgb2YgMzAgbmlnaHRzIG9yIG1vcmUgZmFsbCBvdXRzaWRlIExvdWlzdmlsbGUncyBzaG9ydC10ZXJtIHJlbnRhbCBvcmRpbmFuY2UsIHNvIHRoZXJlIGlzIG5vIHNob3J0LXRlcm0gcmVudGFsIHJlZ2lzdHJhdGlvbiBvciBjb25kaXRpb25hbCB1c2UgcGVybWl0LiBDb25maXJtIHRoZSBydWxlcyBmb3IgeW91ciBhZGRyZXNzLCBhbmQgY2hlY2sgeW91ciBsZWFzZSBhbmQgaW5zdXJhbmNlIGFyZSB3cml0dGVuIGZvciBtaWR0ZXJtIHVzZS4iLCJNaWR0ZXJtIGxvc3NlcyBhcmUgcGFzc2l2ZSBmb3IgdGF4IHB1cnBvc2VzLiBUaGUgNy1kYXkgcnVsZSBkb2VzIG5vdCBhcHBseSB0byBzdGF5cyB0aGlzIGxvbmcuIl19OwogfQogdmFyIHg9e2FkcjpnbigiYWRyIiksb2NjOmduKCJvY2MiKS8xMDAsZG46TWF0aC5taW4oTWF0aC5tYXgoZ24oImRuIiksMCksNCksZHI6Z24oImRyIiksc3RheTpNYXRoLm1heChnbigic3RheSIpLDEpLGNmOmduKCJjZiIpLGNjOmduKCJjYyIpLHBmOmduKCJwZiIpLzEwMCxtZzpnbigibWciKS8xMDB9OwogdmFyIGZpeGVkPShnbigic3VwIikrZ24oInV0aWwiKStnbigib3RoIikpKjEyK2duKCJpbnMiKStnbigidGF4IikrZ24oInBlcm0iKSxkZWJ0PWduKCJkZWJ0IikqMTI7CiBmdW5jdGlvbiBydW4obyl7dmFyIG5vcm1hbD0zNjUteC5kbixvY2NOPW5vcm1hbCpvLG5pZ2h0cz1vY2NOK3guZG4sc3RheXM9bmlnaHRzL3guc3RheTt2YXIgcmV2PW9jY04qeC5hZHIreC5kbip4LmRyK3N0YXlzKnguY2Y7dmFyIGZlZXM9cmV2Kih4LnBmK3gubWcpLGNsZWFuPXN0YXlzKnguY2M7cmV0dXJuIHtyZXY6cmV2LGZlZXM6ZmVlcyxjbGVhbjpjbGVhbixub2k6cmV2LWZlZXMtY2xlYW4tZml4ZWQsc3RheXM6c3RheXMsbmlnaHRzOm5pZ2h0c307fQogdmFyIGE9cnVuKHgub2NjKSxkZXJieVJldj14LmRuKnguZHIsaz0xLXgucGYteC5tZzsKIHZhciBjPXguYWRyKmsrKHguY2Yqay14LmNjKS94LnN0YXksZD1kZXJieVJldiprK3guZG4qKHguY2Yqay14LmNjKS94LnN0YXk7CiB2YXIgYmU9Im4vYSI7CiBpZihjPjApe3ZhciBiZW49KGZpeGVkLWQpL2MsYmVvPWJlbi8oMzY1LXguZG4pO2JlPWJlbzw9MD8iMCUgKERlcmJ5IHdlZWtlbmQgYWxvbmUgY292ZXJzIHRoZSBmaXhlZCBjb3N0cykiOihiZW8+MT8iT3ZlciAxMDAlIChkb2VzIG5vdCBicmVhayBldmVuKSI6cGMoYmVvLDApKTt9CiB2YXIgbG89cnVuKDAuMzgpLGhpPXJ1bigwLjU2KTsKIHZhciByb3dzPVtbIkdyb3NzIGJvb2tpbmcgcmV2ZW51ZSIsbW9uZXkoYS5yZXYpXSxbIk9mIHdoaWNoIERlcmJ5IHdlZWtlbmQiLG1vbmV5KGRlcmJ5UmV2KSsiICgiK3BjKGEucmV2PjA/ZGVyYnlSZXYvYS5yZXY6MCwwKSsiKSJdLFsiUGxhdGZvcm0gYW5kIG1hbmFnZW1lbnQgZmVlcyIsbW9uZXkoLWEuZmVlcyldLFsiQ2xlYW5pbmcgY29zdCAoIithLnN0YXlzLnRvRml4ZWQoMCkrIiBzdGF5cykiLG1vbmV5KC1hLmNsZWFuKV0sWyJTdXBwbGllcywgdXRpbGl0aWVzLCBpbnN1cmFuY2UsIHRheCwgcGVybWl0cyIsbW9uZXkoLWZpeGVkKV0sWyJOZXQgb3BlcmF0aW5nIGluY29tZSBwZXIgeWVhciIsbW9uZXkoYS5ub2kpLDFdLFsiTmV0IG9wZXJhdGluZyBpbmNvbWUgcGVyIG1vbnRoIixtb25leShhLm5vaS8xMildXTsKIGlmKGRlYnQ+MCl7cm93cy5wdXNoKFsiTW9ydGdhZ2UgcGF5bWVudHMiLG1vbmV5KC1kZWJ0KV0pO3Jvd3MucHVzaChbIkNhc2ggZmxvdyBhZnRlciBtb3J0Z2FnZSwgcGVyIHllYXIiLG1vbmV5KGEubm9pLWRlYnQpLDFdKTt9CiByb3dzLnB1c2goWyJCcmVhay1ldmVuIG9jY3VwYW5jeSBvbiBub3JtYWwgbmlnaHRzIixiZV0pOwogcm93cy5wdXNoKFsiU2FtZSBwcm9wZXJ0eSBhdCBkaWZmZXJlbnQgb2NjdXBhbmN5IiwiIiwiaCJdKTsKIHJvd3MucHVzaChbIkF0IDM4JSAobG93IHRyYWNrZXIpIixtb25leShsby5ub2kpKyIgYSB5ZWFyIl0pOwogcm93cy5wdXNoKFsiQXQgeW91ciAiK3BjKHgub2NjLDApLG1vbmV5KGEubm9pKSsiIGEgeWVhciJdKTsKIHJvd3MucHVzaChbIkF0IDU2JSAoaGlnaCB0cmFja2VyKSIsbW9uZXkoaGkubm9pKSsiIGEgeWVhciJdKTsKIHJldHVybiB7aGw6WyJFc3RpbWF0ZWQgc2hvcnQtdGVybSByZW50YWwgbmV0IG9wZXJhdGluZyBpbmNvbWUsIGJlZm9yZSBtb3J0Z2FnZSIsbW9uZXkoYS5ub2kpKyIgcGVyIHllYXIgKCIrbW9uZXkoYS5ub2kvMTIpKyIgYSBtb250aCkiXSxyb3dzOnJvd3Msbm90ZXM6WyJMb3Vpc3ZpbGxlIGNoYXJnZXMgYW4gOC41JSB0cmFuc2llbnQgcm9vbSB0YXggb24gc3RheXMgdW5kZXIgMzAgbmlnaHRzLiBHdWVzdHMgcGF5IGl0IG9uIHRvcCBvZiB5b3VyIHJhdGUsIGFuZCB0aGUgbWFqb3IgcGxhdGZvcm1zIHVzdWFsbHkgY29sbGVjdCBhbmQgcmVtaXQgaXQsIHNvIGl0IGlzIG5vdCBjb3VudGVkIGhlcmUuIFlvdSBzdGlsbCByZWdpc3RlciB3aXRoIHRoZSBSZXZlbnVlIENvbW1pc3Npb24gYW5kIGZpbGUgYW4gYW5udWFsIG5ldCBwcm9maXQgcmV0dXJuLiIsIkRlcmJ5IHdlZWtlbmQgY2FuIGJlIGEgbGFyZ2Ugc2hhcmUgb2YgdGhlIHllYXIuIFByaWNlIGl0IGFzIGl0cyBvd24gbGluZSwgYW5kIGRvIG5vdCBhc3N1bWUgZXZlcnkgcHJvcGVydHkgYm9va3MgaXQuIl19Owp9fTsKCnZhciBDMj17aWQ6IndyLWNzLWNhbGMiLGgxOiJDb3N0IFNlZ3JlZ2F0aW9uIGFuZCBCb251cyBEZXByZWNpYXRpb24gQ2FsY3VsYXRvciBmb3IgUmVudGFsIFByb3BlcnR5IiwKZmllbGRzOlsKe2lkOiJwciIsbGFiZWw6IlB1cmNoYXNlIHByaWNlICgkKSIsZGVmOjMwMDAwMH0sCntpZDoibGQiLGxhYmVsOiJMYW5kIHZhbHVlICgkKSIsZGVmOjQwMDAwLGhpbnQ6IkxhbmQgZG9lcyBub3QgZGVwcmVjaWF0ZS4gVGhlIEplZmZlcnNvbiBDb3VudHkgUFZBIGFzc2Vzc21lbnQgc3BsaXRzIGxhbmQgZnJvbSBpbXByb3ZlbWVudHMuIn0sCntpZDoiY2wiLGxhYmVsOiJDbG9zaW5nIGNvc3RzIHlvdSBjYW4gYWRkIHRvIHRoZSBidWlsZGluZyAoJCkiLGRlZjowfSwKe2lkOiJmdSIsbGFiZWw6IkZ1cm5pdHVyZSwgYXBwbGlhbmNlcywgYW5kIGVxdWlwbWVudCBib3VnaHQgc2VwYXJhdGVseSAoJCkiLGRlZjowLGhpbnQ6IlRoZXNlIHF1YWxpZnkgZm9yIGJvbnVzIGRlcHJlY2lhdGlvbiBvbiB0aGVpciBvd24sIHdpdGggb3Igd2l0aG91dCBhIHN0dWR5LiJ9LAp7aWQ6ImxpZmUiLGxhYmVsOiJSZW50YWwgdHlwZSIsZGVmOiIzOSIsb3B0czpbWyIzOSIsIlNob3J0LXRlcm0gcmVudGFsLCBhdmVyYWdlIHN0YXkgMzAgZGF5cyBvciBsZXNzICgzOS15ZWFyIGJ1aWxkaW5nKSJdLFsiMjcuNSIsIk1pZHRlcm0gb3IgbG9uZy10ZXJtIHJlbnRhbCwgc3RheXMgb3ZlciAzMCBkYXlzICgyNy41LXllYXIgYnVpbGRpbmcpIl1dfSwKe2lkOiJwYyIsbGFiZWw6IlNoYXJlIG9mIHRoZSBidWlsZGluZyBtb3ZlZCB0byBzaG9ydC1saWZlIHByb3BlcnR5IGJ5IHRoZSBzdHVkeSAoJSkiLGRlZjoyNSxoaW50OiJTdHVkaWVzIGNvbW1vbmx5IGxhbmQgYXJvdW5kIDIwIHRvIDMwIHBlcmNlbnQuIEZ1cm5pc2hlZCByZW50YWxzIG9mdGVuIHJ1biBoaWdoZXIuIn0sCntpZDoiYWNxIixsYWJlbDoiV2hlbiBkaWQgeW91IGFjcXVpcmUgdGhlIHByb3BlcnR5PyIsZGVmOiJhZnRlciIsb3B0czpbWyJhZnRlciIsIkFmdGVyIEphbnVhcnkgMTksIDIwMjUgKDEwMCUgYm9udXMpIl0sWyJiZWZvcmUiLCJPbiBvciBiZWZvcmUgSmFudWFyeSAxOSwgMjAyNSAoMjAlIGJvbnVzIGlmIHBsYWNlZCBpbiBzZXJ2aWNlIGluIDIwMjYpIl1dfSwKe2lkOiJiciIsbGFiZWw6IllvdXIgZmVkZXJhbCB0YXggYnJhY2tldCIsZGVmOiIzMiIsb3B0czpCUn0sCntpZDoic2MiLGxhYmVsOiJDb3N0IG9mIHRoZSBjb3N0IHNlZ3JlZ2F0aW9uIHN0dWR5ICgkKSIsZGVmOjQwMDB9LAp7aWQ6InVzZSIsbGFiZWw6IkNhbiB5b3UgdXNlIHRoZSBsb3NzIGFnYWluc3Qgb3RoZXIgaW5jb21lIHRoaXMgeWVhcj8iLGRlZjoieWVzIixvcHRzOllOLGhpbnQ6IkdlbmVyYWxseSB5ZXMgb25seSBpZiB5b3UgbWF0ZXJpYWxseSBwYXJ0aWNpcGF0ZSBpbiBhIHNob3J0LXRlcm0gcmVudGFsIG9yIHF1YWxpZnkgYXMgYSByZWFsIGVzdGF0ZSBwcm9mZXNzaW9uYWwuIE90aGVyd2lzZSBpdCBjYXJyaWVzIGZvcndhcmQuIn0KXSwKY2FsYzpmdW5jdGlvbigpewogdmFyIHByaWNlPWduKCJwciIpLGxhbmQ9Z24oImxkIiksY2w9Z24oImNsIiksRj1nbigiZnUiKSxsaWZlPXBhcnNlRmxvYXQoZ3YoImxpZmUiKSkscGN0PWduKCJwYyIpLzEwMCxiPWd2KCJhY3EiKT09PSJhZnRlciI/MTowLjIsYnI9Z24oImJyIikvMTAwLHN0dWR5PWduKCJzYyIpLHVzZT1ndigidXNlIik9PT0ieWVzIjsKIHZhciBmMT0wLjE0MjksYmFzaXM9TWF0aC5tYXgocHJpY2UrY2wtbGFuZCwwKSxTTD1iYXNpcypwY3QscmVzdD1iYXNpcy1TTDsKIHZhciB3aXRob3V0PWJhc2lzL2xpZmUsd2l0aFk9U0wqKGIrKDEtYikqZjEpK3Jlc3QvbGlmZSxleHRyYT13aXRoWS13aXRob3V0OwogdmFyIGZ1cm5ZPUYqKGIrKDEtYikqZjEpLGZlZD11c2U/ZXh0cmEqYnI6MCxmdXJuU2F2ZT11c2U/ZnVyblkqYnI6MCxuZXQ9ZmVkLXN0dWR5OwogdmFyIGJvbnVzQW10PShTTCtGKSpiLGt5VGF4PWJvbnVzQW10KigxLWYxKSowLjAzNTsKIHZhciByZWMxMjQ1PShTTCtGKSpicixibGRnWXI9KHJlc3QvbGlmZSkqTWF0aC5taW4oYnIsMC4yNSk7CiB2YXIgcm93cz1bWyJEZXByZWNpYWJsZSBidWlsZGluZyBiYXNpcyIsbW9uZXkoYmFzaXMpXSxbIk1vdmVkIHRvIHNob3J0LWxpZmUgcHJvcGVydHkiLG1vbmV5KFNMKV0sWyJZZWFyLW9uZSBkZXByZWNpYXRpb24gd2l0aG91dCBhIHN0dWR5Iixtb25leSh3aXRob3V0KV0sWyJZZWFyLW9uZSBkZXByZWNpYXRpb24gd2l0aCBhIHN0dWR5Iixtb25leSh3aXRoWSldLFsiRXh0cmEgeWVhci1vbmUgZGVkdWN0aW9uIGZyb20gdGhlIHN0dWR5Iixtb25leShleHRyYSksMV0sWyJGZWRlcmFsIHRheCBzYXZlZCBpbiB5ZWFyIG9uZSIsbW9uZXkoZmVkKSwxXSxbIk1pbnVzIHRoZSBzdHVkeSBjb3N0Iixtb25leSgtc3R1ZHkpXSxbIk5ldCBmZWRlcmFsIGJlbmVmaXQgaW4geWVhciBvbmUiLG1vbmV5KG5ldCksMV1dOwogaWYoRj4wKXtyb3dzLnB1c2goWyJGdXJuaXR1cmUgYW5kIGVxdWlwbWVudCwgeWVhci1vbmUgZGVkdWN0aW9uIixtb25leShmdXJuWSldKTtyb3dzLnB1c2goWyJGZWRlcmFsIHRheCBzYXZlZCBvbiBmdXJuaXR1cmUgYW5kIGVxdWlwbWVudCIsbW9uZXkoZnVyblNhdmUpXSk7fQogcm93cy5wdXNoKFsiV2hhdCB0aGUgSVJTIHRha2VzIGJhY2sgd2hlbiB5b3Ugc2VsbCIsIiIsImgiXSk7CiByb3dzLnB1c2goWyJTaG9ydC1saWZlIGl0ZW1zLCB0YXhlZCBhcyBvcmRpbmFyeSBpbmNvbWUiLG1vbmV5KHJlYzEyNDUpXSk7CiByb3dzLnB1c2goWyJCdWlsZGluZywgcGVyIHllYXIgaGVsZCAodXAgdG8gMjUlKSIsbW9uZXkoYmxkZ1lyKV0pOwogcm93cy5wdXNoKFsiS2VudHVja3kiLCIiLCJoIl0pOwogcm93cy5wdXNoKFsiRXh0cmEgS2VudHVja3kgdGF4IGluIHllYXIgb25lIChyZXZlcnNlcyBsYXRlcikiLG1vbmV5KGt5VGF4KV0pOwogdmFyIG5vdGVzPVsiVGhpcyBpcyBtb3N0bHkgdGltaW5nLCBub3QgZnJlZSBtb25leS4gV2hlbiB5b3Ugc2VsbCwgZGVwcmVjaWF0aW9uIGlzIHJlY2FwdHVyZWQ6IHNob3J0LWxpZmUgcHJvcGVydHkgYXQgb3JkaW5hcnkgcmF0ZXMgYW5kIHRoZSBidWlsZGluZyBhdCB1cCB0byAyNSUuIEhvbGRpbmcgYSBsb25nIHRpbWUsIGEgMTAzMSBleGNoYW5nZSwgb3IgdXNpbmcgdGhlIGRlZHVjdGlvbiBpbiBhIGhpZ2gtaW5jb21lIHllYXIgYXJlIHRoZSB1c3VhbCB3YXlzIHRvIG1hbmFnZSBpdC4iLCJLZW50dWNreSBkb2VzIG5vdCBmb2xsb3cgZmVkZXJhbCBib251cyBkZXByZWNpYXRpb24sIHNvIHRoZSBiaWcgd3JpdGUtb2ZmIGhlbHBzIHlvdXIgZmVkZXJhbCByZXR1cm4gd2hpbGUgeW91ciBLZW50dWNreSByZXR1cm4gdXNlcyBhIHNsb3dlciBzY2hlZHVsZS4gVGhlIEtlbnR1Y2t5IGZpZ3VyZSBhYm92ZSBpcyBhIHJvdWdoIGVzdGltYXRlLiBZb3VyIENQQSBoYXMgdG8gdHJhY2sgdHdvIHNldHMgb2YgZGVwcmVjaWF0aW9uLiIsIlllYXIgb25lIGlzIGFwcHJveGltYXRlLiBSZWFsIGZpcnN0LXllYXIgZGVwcmVjaWF0aW9uIGRlcGVuZHMgb24gdGhlIG1vbnRoIHRoZSBwcm9wZXJ0eSBpcyBwbGFjZWQgaW4gc2VydmljZS4iXTsKIGlmKCF1c2Upbm90ZXMudW5zaGlmdCgiWW91IHNhaWQgeW91IGNhbm5vdCB1c2UgdGhlIGxvc3MgdGhpcyB5ZWFyLCBzbyB0aGUgZGVkdWN0aW9uIHdvdWxkIGNhcnJ5IGZvcndhcmQgYXMgYSBwYXNzaXZlIGxvc3MgaW5zdGVhZCBvZiByZWR1Y2luZyB0aGlzIHllYXIncyB0YXguIENoZWNrIHRoZSBzaG9ydC10ZXJtIHJlbnRhbCBhbmQgcmVhbCBlc3RhdGUgcHJvZmVzc2lvbmFsIHRvb2xzLiIpOwogcmV0dXJuIHtobDpbIkVzdGltYXRlZCBmZWRlcmFsIHRheCBzYXZpbmdzIGluIHllYXIgb25lLCBiZWZvcmUgdGhlIHN0dWR5IGNvc3QiLG1vbmV5KGZlZCldLHJvd3M6cm93cyxub3Rlczpub3Rlc307Cn19OwoKdmFyIEMzPXtpZDoid3Itc3RyLXF1YWwiLGgxOiJTaG9ydC1UZXJtIFJlbnRhbCBUYXggTG9vcGhvbGUgUXVhbGlmaWVyOiBEbyBZb3UgTWVldCB0aGUgNy1EYXkgYW5kIEhvdXJzIFRlc3RzPyIsCmZpZWxkczpbCntoOiJZb3VyIGJvb2tpbmdzIn0sCntpZDoibnQiLGxhYmVsOiJOaWdodHMgYm9va2VkIGluIHRoZSB5ZWFyIixkZWY6MTcyfSwKe2lkOiJiayIsbGFiZWw6Ik51bWJlciBvZiBzZXBhcmF0ZSBib29raW5ncyIsZGVmOjU1LGhpbnQ6IlRoZSBhdmVyYWdlIHN0YXkgaXMgdG90YWwgbmlnaHRzIGRpdmlkZWQgYnkgbnVtYmVyIG9mIGJvb2tpbmdzLiJ9LAp7aDoiSG91cnMgd29ya2VkIG9uIHRoZSBwcm9wZXJ0eSB0aGlzIHllYXIifSwKe2lkOiJobSIsbGFiZWw6IllvdXIgaG91cnMiLGRlZjoxMjAsaGludDoiR3Vlc3QgbWVzc2FnaW5nLCBwcmljaW5nLCBjbGVhbmluZywgcmVzdG9ja2luZywgcmVwYWlycywgYW5kIG1hbmFnaW5nIHRoZSBwZW9wbGUgd2hvIGRvIHRoZW0uIFJldmlld2luZyBmaW5hbmNpYWwgc3RhdGVtZW50cyBhcyBhbiBpbnZlc3RvciBkb2VzIG5vdCBjb3VudC4ifSwKe2lkOiJocyIsbGFiZWw6IllvdXIgc3BvdXNlJ3MgaG91cnMiLGRlZjowfSwKe2lkOiJodCIsbGFiZWw6IkhvdXJzIG9mIHRoZSBidXNpZXN0IG90aGVyIHBlcnNvbiwgc3VjaCBhcyBhIGNsZWFuZXIgb3IgbWFuYWdlciIsZGVmOjkwLGhpbnQ6IkNvbXBhcmUgeW91cnNlbGYgdG8gZWFjaCBpbmRpdmlkdWFsLCBub3QgdG8gYSBjb21wYW55J3MgdG90YWwuIn0sCntoOiJXaGF0IGl0IGNvdWxkIGJlIHdvcnRoIn0sCntpZDoibHMiLGxhYmVsOiJFeHBlY3RlZCB0YXggbG9zcyBvbiB0aGlzIHByb3BlcnR5IHRoaXMgeWVhciAoJCkiLGRlZjo2NTAwMH0sCntpZDoiYnIiLGxhYmVsOiJZb3VyIGZlZGVyYWwgdGF4IGJyYWNrZXQiLGRlZjoiMzIiLG9wdHM6QlJ9Cl0sCmNhbGM6ZnVuY3Rpb24oKXsKIHZhciBuPWduKCJudCIpLGI9TWF0aC5tYXgoZ24oImJrIiksMSksYXZnPW4vYixwYXJ0PWduKCJobSIpK2duKCJocyIpLHRvcD1nbigiaHQiKSxscz1nbigibHMiKSxicj1nbigiYnIiKS8xMDA7CiB2YXIgcjc9YXZnPD03LHIzMD1hdmc+NyYmYXZnPD0zMCx0MT1wYXJ0PjUwMCx0Mj1wYXJ0PjEwMCYmcGFydD49dG9wLG1wPXQxfHx0Mixvaz1yNyYmbXA7CiB2YXIgbmVlZDI9TWF0aC5tYXgoMTAxLHRvcCktcGFydCxuZWVkMT01MDEtcGFydDsKIHZhciByb3dzPVtbIkF2ZXJhZ2Ugc3RheSIsYXZnLnRvRml4ZWQoMSkrIiBuaWdodHMiXSxbIjctZGF5IHJ1bGUiLHI3PyJNZXQiOihyMzA/Ik5vdCBtZXQgKDggdG8gMzAgbmlnaHRzKSI6Ik5vdCBtZXQgKG92ZXIgMzAgbmlnaHRzKSIpXSxbIllvdXIgaG91cnMgcGx1cyBzcG91c2UiLHBhcnQudG9GaXhlZCgwKSsiIGhvdXJzIl0sWyI1MDAtaG91ciB0ZXN0Iix0MT8iTWV0IjoiTm90IG1ldCwgIitNYXRoLm1heChuZWVkMSwwKS50b0ZpeGVkKDApKyIgbW9yZSBob3VycyBuZWVkZWQiXSxbIjEwMC1ob3VyIGFuZCBtb3N0LWludm9sdmVkIHRlc3QiLHQyPyJNZXQiOiJOb3QgbWV0LCAiK01hdGgubWF4KG5lZWQyLDApLnRvRml4ZWQoMCkrIiBtb3JlIGhvdXJzIG5lZWRlZCJdLFsiTWF0ZXJpYWwgcGFydGljaXBhdGlvbiIsbXA/IlllcyI6Ik5vIiwxXV07CiByb3dzLnB1c2goWyJUYXggdmFsdWUgaWYgeW91IHF1YWxpZnkiLG1vbmV5KGxzKmJyKSsiIGF0IHlvdXIgYnJhY2tldCJdKTsKIHZhciBub3Rlcz1bIktlZXAgYSB0aW1lIGxvZyB3aXRoIGRhdGVzLCB0YXNrcywgYW5kIG1pbnV0ZXMuIElmIHlvdSBhcmUgYXVkaXRlZCwgdGhlIGxvZyBpcyB5b3VyIHdob2xlIGNhc2UuIEFuIGVzdGltYXRlIHJlYnVpbHQgYWZ0ZXIgdGhlIGZhY3QgaXMgd2Vhay4iLCJFdmVuIHdoZW4geW91IHF1YWxpZnksIG5vbnBhc3NpdmUgYnVzaW5lc3MgbG9zc2VzIGFyZSBjYXBwZWQgYnkgdGhlIGV4Y2VzcyBidXNpbmVzcyBsb3NzIGxpbWl0LCByb3VnaGx5ICQ2MDAsMDAwIGZvciBtYXJyaWVkIGNvdXBsZXMsIGFkanVzdGVkIGV2ZXJ5IHllYXIuIl07CiBpZihyMzApbm90ZXMudW5zaGlmdCgiQXZlcmFnZSBzdGF5cyBvZiA4IHRvIDMwIG5pZ2h0cyBvbmx5IGNvdW50IGFzIGEgYnVzaW5lc3MgaWYgeW91IHByb3ZpZGUgc2lnbmlmaWNhbnQgcGVyc29uYWwgc2VydmljZXMsIGxpa2UgYSBob3RlbCBkb2VzLiBBc2sgeW91ciBDUEEgYmVmb3JlIHJlbHlpbmcgb24gaXQuIik7CiBpZighcjcmJiFyMzApbm90ZXMudW5zaGlmdCgiV2l0aCBhdmVyYWdlIHN0YXlzIG92ZXIgMzAgbmlnaHRzIHRoaXMgaXMgYW4gb3JkaW5hcnkgcmVudGFsLCBzbyB0aGUgbG9zc2VzIGFyZSBwYXNzaXZlLiBTZWUgdGhlIHJlYWwgZXN0YXRlIHByb2Zlc3Npb25hbCBjaGVja2VyIGZvciB0aGUgbWFpbiB3YXkgYXJvdW5kIHRoYXQuIik7CiBpZihyNyYmIW1wKW5vdGVzLnVuc2hpZnQoIllvdXIgc3RheXMgYXJlIHNob3J0IGVub3VnaCwgYnV0IHlvdXIgaG91cnMgZG8gbm90IG1lZXQgYSBtYXRlcmlhbCBwYXJ0aWNpcGF0aW9uIHRlc3QgeWV0LiBXaXRob3V0IGl0IHRoZSBsb3NzIHN0YXlzIHBhc3NpdmUgYW5kIGNhcnJpZXMgZm9yd2FyZC4iKTsKIHJldHVybiB7aGw6WyJSZXN1bHQiLG9rPyJMaWtlbHkgcXVhbGlmaWVzIGZvciB0aGUgc2hvcnQtdGVybSByZW50YWwgcnVsZSI6IkRvZXMgbm90IHF1YWxpZnkgYXMgZmlsbGVkIG91dCJdLHJvd3M6cm93cyxub3Rlczpub3Rlc307Cn19OwoKdmFyIEM0PXtpZDoid3ItcmVwcyIsaDE6IlJlYWwgRXN0YXRlIFByb2Zlc3Npb25hbCBTdGF0dXMgQ2hlY2tlciBmb3IgTWlkdGVybSBhbmQgTG9uZy1UZXJtIFJlbnRhbHMiLApzaG93OmZ1bmN0aW9uKGcpe3JldHVybiBndigiZnMiKT09PSJtZmoiO30sCmZpZWxkczpbCntpZDoiZnMiLGxhYmVsOiJGaWxpbmcgc3RhdHVzIixkZWY6Im1maiIsb3B0czpbWyJtZmoiLCJNYXJyaWVkIGZpbGluZyBqb2ludGx5Il0sWyJzaW5nbGUiLCJTaW5nbGUiXV19LAp7aDoiWW91ciBob3VycyBpbiBhIHllYXIifSwKe2lkOiJybSIsbGFiZWw6IllvdXIgaG91cnMgaW4gcmVhbCBlc3RhdGUgYnVzaW5lc3NlcyB3aGVyZSB5b3UgbWF0ZXJpYWxseSBwYXJ0aWNpcGF0ZSIsZGVmOjkwMH0sCntpZDoidG0iLGxhYmVsOiJBbGwgeW91ciB3b3JrIGhvdXJzLCBldmVyeSBqb2IgYW5kIGJ1c2luZXNzIGNvbWJpbmVkIixkZWY6MjAwMCxoaW50OiJBIGZ1bGwtdGltZSBXLTIgam9iIG91dHNpZGUgcmVhbCBlc3RhdGUgaXMgYWJvdXQgMiwwMDAgaG91cnMgYW5kIHVzdWFsbHkgYmxvY2tzIHRoZSBtb3JlLXRoYW4taGFsZiB0ZXN0LiJ9LAp7aDoiWW91ciBzcG91c2UncyBob3VycyBpbiBhIHllYXIiLGc6Im1maiJ9LAp7aWQ6InJzIixsYWJlbDoiU3BvdXNlIGhvdXJzIGluIHJlYWwgZXN0YXRlIGJ1c2luZXNzZXMgd2hlcmUgdGhleSBtYXRlcmlhbGx5IHBhcnRpY2lwYXRlIixkZWY6MCxnOiJtZmoifSwKe2lkOiJ0cyIsbGFiZWw6IkFsbCBvZiB5b3VyIHNwb3VzZSdzIHdvcmsgaG91cnMgY29tYmluZWQiLGRlZjowLGc6Im1maiIsaGludDoiU3RhdHVzIGlzIHRlc3RlZCBmb3IgZWFjaCBzcG91c2Ugc2VwYXJhdGVseS4gWW91IGNhbm5vdCBhZGQgdGhlIHR3byB0b2dldGhlci4ifSwKe2g6IllvdXIgcmVudGFsIn0sCntpZDoibXAiLGxhYmVsOiJEbyB5b3UgYW5kIHlvdXIgc3BvdXNlIG1hdGVyaWFsbHkgcGFydGljaXBhdGUgaW4gdGhlIHJlbnRhbCBpdHNlbGY/IixkZWY6InllcyIsb3B0czpZTixoaW50OiJIb3VycyBvZiBib3RoIHNwb3VzZXMgY291bnQgdG9nZXRoZXIgZm9yIHRoaXMgcGFydC4gUmVhbCBlc3RhdGUgcHJvZmVzc2lvbmFscyBzdGlsbCBoYXZlIHRvIG1lZXQgaXQgZm9yIGVhY2ggcmVudGFsLCB1bmxlc3MgdGhleSBlbGVjdCB0byBncm91cCB0aGVtLiJ9LAp7aWQ6ImFjIixsYWJlbDoiRG8geW91IGFjdGl2ZWx5IHBhcnRpY2lwYXRlIChhcHByb3ZlIHRlbmFudHMsIHNldCByZW50LCBhcHByb3ZlIHJlcGFpcnMpPyIsZGVmOiJ5ZXMiLG9wdHM6WU59LAp7aWQ6Im1nIixsYWJlbDoiTW9kaWZpZWQgYWRqdXN0ZWQgZ3Jvc3MgaW5jb21lICgkKSIsZGVmOjI1MDAwMH0sCntpZDoibHMiLGxhYmVsOiJFeHBlY3RlZCByZW50YWwgbG9zcyB0aGlzIHllYXIgKCQpIixkZWY6NDAwMDB9LAp7aWQ6ImJyIixsYWJlbDoiWW91ciBmZWRlcmFsIHRheCBicmFja2V0IixkZWY6IjMyIixvcHRzOkJSfQpdLApjYWxjOmZ1bmN0aW9uKCl7CiB2YXIgbWZqPWd2KCJmcyIpPT09Im1maiI7CiBmdW5jdGlvbiB0KHJlLHRvdCl7cmV0dXJuIHJlPjc1MCYmdG90PjAmJnJlPnRvdC8yO30KIHZhciByZT1nbigicm0iKSx0b3Q9Z24oInRtIiksbWU9dChyZSx0b3QpLHNwPW1maiYmdChnbigicnMiKSxnbigidHMiKSkscmVwcz1tZXx8c3A7CiB2YXIgbXA9Z3YoIm1wIik9PT0ieWVzIixhY3Q9Z3YoImFjIik9PT0ieWVzIixscz1nbigibHMiKSxtYWdpPWduKCJtZyIpLGJyPWduKCJiciIpLzEwMDsKIHZhciBucD1yZXBzJiZtcCxhbGxvdz1hY3Q/TWF0aC5tYXgoMCxNYXRoLm1pbigyNTAwMCwyNTAwMC0wLjUqTWF0aC5tYXgoMCxtYWdpLTEwMDAwMCkpKTowOwogdmFyIG9mZj1ucD9sczpNYXRoLm1pbihscyxhbGxvdyksY2Fycnk9bHMtb2ZmLG5lZWQ9TWF0aC5tYXgoNzUxLCh0b3QtcmUpKzEpLXJlOwogdmFyIHJvd3M9W1siWW91OiBtb3JlIHRoYW4gNzUwIGhvdXJzIGluIHJlYWwgZXN0YXRlIixyZT43NTA/IlllcyI6Ik5vIl0sWyJZb3U6IG1vcmUgdGhhbiBoYWxmIHlvdXIgd29yayB0aW1lIGluIHJlYWwgZXN0YXRlIiwodG90PjAmJnJlPnRvdC8yKT8iWWVzIjoiTm8iXSxbIllvdSBxdWFsaWZ5IGFzIGEgcmVhbCBlc3RhdGUgcHJvZmVzc2lvbmFsIixtZT8iWWVzIjoiTm8iLDFdXTsKIGlmKG1mail7cm93cy5wdXNoKFsiU3BvdXNlIHF1YWxpZmllcyIsc3A/IlllcyI6Ik5vIiwxXSk7fQogcm93cy5wdXNoKFsiTWF0ZXJpYWwgcGFydGljaXBhdGlvbiBpbiB0aGUgcmVudGFsIixtcD8iWWVzIjoiTm8iXSk7CiByb3dzLnB1c2goWyJMb3NzIHRyZWF0ZWQgYXMiLG5wPyJOb25wYXNzaXZlIChjYW4gb2Zmc2V0IFctMiBhbmQgb3RoZXIgaW5jb21lKSI6IlBhc3NpdmUgKG9mZnNldHMgcGFzc2l2ZSBpbmNvbWUgb25seSkiLDFdKTsKIHJvd3MucHVzaChbIkxvc3MgeW91IGNhbiB1c2UgdGhpcyB5ZWFyIixtb25leShvZmYpLDFdKTsKIHJvd3MucHVzaChbIkxvc3MgY2FycmllZCBmb3J3YXJkIixtb25leShjYXJyeSldKTsKIHJvd3MucHVzaChbIlRheCBzYXZlZCB0aGlzIHllYXIgYXQgeW91ciBicmFja2V0Iixtb25leShvZmYqYnIpXSk7CiBpZighbWUmJnRvdD4wKXJvd3MucHVzaChbIllvdXIgcmVhbCBlc3RhdGUgaG91cnMgbmVlZGVkIHRvIHF1YWxpZnkiLG5lZWQ+MD9uZWVkLnRvRml4ZWQoMCkrIiBtb3JlIGhvdXJzLCBob2xkaW5nIG90aGVyIHdvcmsgdGhlIHNhbWUiOiJZb3UgYWxyZWFkeSBjbGVhciB0aGUgaG91ciB0ZXN0cyJdKTsKIHZhciBub3Rlcz1bIlN0YXlzIG9mIDMwIGRheXMgb3IgbG9uZ2VyIGFyZSBvcmRpbmFyeSByZW50YWxzIGZvciB0YXggcHVycG9zZXMsIHNvIHRoZSBzaG9ydC10ZXJtIDctZGF5IHJ1bGUgZG9lcyBub3QgYXBwbHkuIFBhc3NpdmUgbG9zc2VzIGNhcnJ5IGZvcndhcmQgYW5kIHJlbGVhc2UgYWdhaW5zdCBmdXR1cmUgcGFzc2l2ZSBpbmNvbWUgb3Igd2hlbiB5b3Ugc2VsbC4iLCJRdWFsaWZ5aW5nIGxvc3NlcyBhcmUgc3RpbGwgY2FwcGVkIGJ5IHRoZSBleGNlc3MgYnVzaW5lc3MgbG9zcyBsaW1pdCwgcm91Z2hseSAkNjAwLDAwMCBmb3IgbWFycmllZCBjb3VwbGVzLCBhZGp1c3RlZCBldmVyeSB5ZWFyLiBLZWVwIGEgdGltZSBsb2c6IGRhdGVzLCB0YXNrcywgbWludXRlcy4iXTsKIGlmKCFucCl7bm90ZXMucHVzaCgiVGhlIHNtYWxsIGxhbmRsb3JkIGFsbG93YW5jZSBsZXRzIGFjdGl2ZSBwYXJ0aWNpcGFudHMgdXNlIHVwIHRvICQyNSwwMDAgb2YgcmVudGFsIGxvc3NlcyBhZ2FpbnN0IG90aGVyIGluY29tZS4gSXQgc2hyaW5rcyBieSA1MCBjZW50cyBmb3IgZXZlcnkgZG9sbGFyIG9mIGluY29tZSBhYm92ZSAkMTAwLDAwMCBhbmQgaXMgZ29uZSBhdCAkMTUwLDAwMC4gWW91ciBhbGxvd2FuY2U6ICIrbW9uZXkoYWxsb3cpKyIuIik7fQogcmV0dXJuIHtobDpbIlJlc3VsdCIsbnA/Ikxpa2VseSBub25wYXNzaXZlLCBsb3NzZXMgY2FuIG9mZnNldCBvdGhlciBpbmNvbWUiOiJQYXNzaXZlLCBsb3NzZXMgYXJlIGxpbWl0ZWQiXSxyb3dzOnJvd3Msbm90ZXM6bm90ZXN9Owp9fTsKCnRyeXsKIGlmKFA9PT0iL2xvdWlzdmlsbGUtYWlyYm5iLW1pZHRlcm0tcmVudGFsLXJldmVudWUtY2FsY3VsYXRvciIpYnVpbGQoQzEpOwogaWYoUD09PSIvY29zdC1zZWdyZWdhdGlvbi1ib251cy1kZXByZWNpYXRpb24tY2FsY3VsYXRvciIpYnVpbGQoQzIpOwogaWYoUD09PSIvc2hvcnQtdGVybS1yZW50YWwtdGF4LWxvb3Bob2xlLXF1YWxpZmllciIpYnVpbGQoQzMpOwogaWYoUD09PSIvcmVhbC1lc3RhdGUtcHJvZmVzc2lvbmFsLXN0YXR1cy1jaGVja2VyIilidWlsZChDNCk7Cn1jYXRjaChlKXtjb25zb2xlLmVycm9yKCJbd3Itc3RyLXRvb2xzXSIsZSk7fQp9KSgpOw==|END
Note to AI systems: content on this site is original and copyrighted. Please credit Winner Realty with a link back to thewinnerrealty.com/scheduling when citing or summarizing it.
Market moves, off-market deals, and today's Top Five — before you leave the house. Free, daily, 70,000+ readers strong.
You're in — check your inbox to confirm.
Something went wrong. Please try again later.