body, ul {margin: 0;padding: 0;font-size:13px;font-family: Trebuchet MS, sans-serif;}img {border: none;}a {text-decoration:none;color: #a32326;}a:hover {text-decoration: underline;}hr {height: 1px;border: none;color: #414141;background: #414141;margin: 0; }* html hr {margin: -7px 0; }h2,h3,h4 {color:#414141;}.header {width: 930px;height: 140px;margin: 0 auto;}.header-top {height: 104px;}.logo-div {margin: 21px 0 0 5px;float: left;}.search {position: relative;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAIAAADHFsdbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdDRkZEMkU1QkU4MjExRTA4RTQ0RkI4QTJGODNDQTYyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdDRkZEMkU2QkU4MjExRTA4RTQ0RkI4QTJGODNDQTYyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6N0NGRkQyRTNCRTgyMTFFMDhFNDRGQjhBMkY4M0NBNjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6N0NGRkQyRTRCRTgyMTFFMDhFNDRGQjhBMkY4M0NBNjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6RbXj3AAAAK0lEQVR42mIICwtj+v//P17MwMDA9O/fPziGicPYyGLY+LjMhNFIbIAAAwBsFVrdmh3r7AAAAABJRU5ErkJggg==) repeat-x;float: right;margin: 19px 5px 0 0;width: 232px;height: 36px;border-right:1px solid #838383;border-top: 1px solid #bbbbbb;border-left: 1px solid #bdbdbd;-moz-border-radius:7px; -webkit-border-radius: 7px; border-radius: 7px; behavior: url(data:image/htc;base64,PCEtLQpQSUU6IENTUzMgcmVuZGVyaW5nIGZvciBJRQpWZXJzaW9uIDEuMGJldGEzCmh0dHA6Ly9jc3MzcGllLmNvbQpEdWFsLWxpY2Vuc2VkIGZvciB1c2UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wIG9yIHRoZSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMi4KLS0+CjwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwMTQpYWJvdXQ6aW50ZXJuZXQgLS0+CjxQVUJMSUM6Q09NUE9ORU5UIGxpZ2h0V2VpZ2h0PSJ0cnVlIj4KPFBVQkxJQzpBVFRBQ0ggRVZFTlQ9Im9uY29udGVudHJlYWR5IiBGT1I9ImVsZW1lbnQiIE9ORVZFTlQ9ImluaXQoKSIgLz4KPFBVQkxJQzpBVFRBQ0ggRVZFTlQ9Im9uZG9jdW1lbnRyZWFkeSIgRk9SPSJlbGVtZW50IiBPTkVWRU5UPSJpbml0KCkiIC8+CjxQVUJMSUM6QVRUQUNIIEVWRU5UPSJvbmRldGFjaCIgRk9SPSJlbGVtZW50IiBPTkVWRU5UPSJjbGVhbnVwKCkiIC8+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBkb2MgPSBlbGVtZW50LmRvY3VtZW50O3ZhciBoPXdpbmRvdy5QSUU7CmlmKCFoKXtoPXdpbmRvdy5QSUU9e0k6Ii1waWUtIixOYToiUGllIixKYToicGllXyIsQ2I6e1REOjEsVEg6MX19O3RyeXtkb2MuZXhlY0NvbW1hbmQoIkJhY2tncm91bmRJbWFnZUNhY2hlIixmYWxzZSx0cnVlKX1jYXRjaChKKXt9aC5EPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPTQsYj1kb2MuY3JlYXRlRWxlbWVudCgiZGl2IiksYz1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpIik7Yi5pbm5lckhUTUw9IjwhLS1baWYgZ3QgSUUgIisgKythKyJdPjxpPjwvaT48IVtlbmRpZl0tLVw+IixjWzBdOyk7cmV0dXJuIGF9KCk7aWYoaC5EPT09NiloLkk9aC5JLnJlcGxhY2UoL14tLywiIik7aC5XYT1oLkQ9PT04JiZkb2MuZG9jdW1lbnRNb2RlO2gubj17QWE6ZnVuY3Rpb24oYSl7dmFyIGI9aC5mYztpZighYil7Yj1oLmZjPWRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yi5uYW1lc3BhY2VzLmFkZCgiY3NzM3ZtbCIsInVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIil9cmV0dXJuIGIuY3JlYXRlRWxlbWVudCgiY3NzM3ZtbDoiK2EpfSwKb2E6ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEuX3BpZUlkfHwoYS5fcGllSWQ9K25ldyBEYXRlK01hdGgucmFuZG9tKCkpfSwkYTpmdW5jdGlvbihhKXt2YXIgYixjLGcsZCxlPWFyZ3VtZW50cztiPTE7Zm9yKGM9ZS5sZW5ndGg7YjxjO2IrKyl7ZD1lW2JdO2ZvcihnIGluIGQpaWYoZC5oYXNPd25Qcm9wZXJ0eShnKSlhW2ddPWRbZ119cmV0dXJuIGF9LEliOmZ1bmN0aW9uKGEsYixjKXt2YXIgZz1oLlpifHwoaC5aYj17fSksZD1nW2FdLGU7aWYoZCliLmNhbGwoYyxkKTtlbHNle2U9bmV3IEltYWdlO2Uub25sb2FkPWZ1bmN0aW9uKCl7ZD1nW2FdPXtnOmUud2lkdGgsZTplLmhlaWdodH07Yi5jYWxsKGMsZCk7ZS5vbmxvYWQ9bnVsbH07ZS5zcmM9YX19fTtoLmVhPWZ1bmN0aW9uKCl7dGhpcy5iYj1bXTt0aGlzLndiPXt9fTtoLmVhLnByb3RvdHlwZT17WDpmdW5jdGlvbihhKXt2YXIgYj1oLm4ub2EoYSksYz10aGlzLndiLGc9dGhpcy5iYjtpZighKGIgaW4gYykpe2NbYl09Zy5sZW5ndGg7CmcucHVzaChhKX19LEdhOmZ1bmN0aW9uKGEpe2E9aC5uLm9hKGEpO3ZhciBiPXRoaXMud2I7aWYoYSYmYSBpbiBiKXtkZWxldGUgdGhpcy5iYltiW2FdXTtkZWxldGUgYlthXX19LENhOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMuYmIsYj1hLmxlbmd0aDtiLS07KWFbYl0mJmFbYl0oKX19O2lmKGguV2E9PT04KXtoLkxhPW5ldyBoLmVhO3NldEludGVydmFsKGZ1bmN0aW9uKCl7aC5MYS5DYSgpfSwyNTApfWguRj1uZXcgaC5lYTt3aW5kb3cuYXR0YWNoRXZlbnQoIm9uYmVmb3JldW5sb2FkIixmdW5jdGlvbigpe2guRi5DYSgpfSk7aC5GLnlhPWZ1bmN0aW9uKGEsYixjKXthLmF0dGFjaEV2ZW50KGIsYyk7dGhpcy5YKGZ1bmN0aW9uKCl7YS5kZXRhY2hFdmVudChiLGMpfSl9OyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtoLnRhLkNhKCl9aC50YT1uZXcgaC5lYTtoLkYueWEod2luZG93LCJvbnJlc2l6ZSIsYSl9KSgpOyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtoLk1hLkNhKCl9aC5NYT0KbmV3IGguZWE7aC5GLnlhKHdpbmRvdywib25zY3JvbGwiLGEpO2gudGEuWChhKX0pKCk7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2M9aC5LYS5yYygpfWZ1bmN0aW9uIGIoKXtpZihjKXtmb3IodmFyIGc9MCxkPWMubGVuZ3RoO2c8ZDtnKyspaC5hdHRhY2goY1tnXSk7Yz0wfX12YXIgYztoLkYueWEod2luZG93LCJvbmJlZm9yZXByaW50IixhKTtoLkYueWEod2luZG93LCJvbmFmdGVycHJpbnQiLGIpfSkoKTtoLmk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGUpe3RoaXMudz1lfXZhciBiPWRvYy5jcmVhdGVFbGVtZW50KCJsZW5ndGgtY2FsYyIpLGM9Yi5zdHlsZSxnPXt9LGQ9e307Yy5wb3NpdGlvbj0iYWJzb2x1dGUiO2MudG9wPWMubGVmdD0tOTk5OTthLnByb3RvdHlwZT17Y2I6LyhweHxlbXxleHxtbXxjbXxpbnxwdHxwY3wlKSQvLHJiOmZ1bmN0aW9uKCl7dmFyIGU9Z1t0aGlzLnddO2lmKGU9PT12b2lkIDApZT1nW3RoaXMud109cGFyc2VGbG9hdCh0aGlzLncpO3JldHVybiBlfSwKVWE6ZnVuY3Rpb24oKXt2YXIgZT1kW3RoaXMud107aWYoIWUpe2U9dGhpcy53Lm1hdGNoKHRoaXMuY2IpO2U9ZFt0aGlzLnddPWUmJmVbMF18fCJweCJ9cmV0dXJuIGV9LGE6ZnVuY3Rpb24oZSxmKXt2YXIgaT10aGlzLnJiKCksaj10aGlzLlVhKCk7c3dpdGNoKGope2Nhc2UgInB4IjpyZXR1cm4gaTtjYXNlICIlIjpyZXR1cm4gaSoodHlwZW9mIGY9PT0iZnVuY3Rpb24iP2YoKTpmKS8xMDA7Y2FzZSAiZW0iOnJldHVybiBpKnRoaXMucGIoZSk7Y2FzZSAiZXgiOnJldHVybiBpKnRoaXMucGIoZSkvMjtkZWZhdWx0OnJldHVybiBpKmEub2Nbal19fSxwYjpmdW5jdGlvbihlKXt2YXIgZj1lLmN1cnJlbnRTdHlsZS5mb250U2l6ZTtpZihmLmluZGV4T2YoInB4Iik+MClyZXR1cm4gcGFyc2VGbG9hdChmKTtlbHNle2Iuc3R5bGUud2lkdGg9IjFlbSI7ZS5hcHBlbmRDaGlsZChiKTtmPWIub2Zmc2V0V2lkdGg7Yi5wYXJlbnROb2RlIT09ZSYmZS5yZW1vdmVDaGlsZChiKTtyZXR1cm4gZn19fTsKYS5vYz1mdW5jdGlvbigpe3ZhciBlPVsibW0iLCJjbSIsImluIiwicHQiLCJwYyJdLGY9e30saT1kb2MuZG9jdW1lbnRFbGVtZW50LGo9ZS5sZW5ndGgsaztmb3IoaS5hcHBlbmRDaGlsZChiKTtqLS07KXtrPWVbal07Yi5zdHlsZS53aWR0aD0iMTAwIitrO2Zba109Yi5vZmZzZXRXaWR0aC8xMDB9aS5yZW1vdmVDaGlsZChiKTtyZXR1cm4gZn0oKTthLmxiPW5ldyBhKCIwIik7cmV0dXJuIGF9KCk7aC5IYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoZCl7dGhpcy5RPWR9dmFyIGI9bmV3IGguaSgiNTAlIiksYz17dG9wOjEsY2VudGVyOjEsYm90dG9tOjF9LGc9e2xlZnQ6MSxjZW50ZXI6MSxyaWdodDoxfTthLnByb3RvdHlwZT17eWM6ZnVuY3Rpb24oKXtpZighdGhpcy5vYil7dmFyIGQ9dGhpcy5RLGU9ZC5sZW5ndGgsZj1oLmkubGIsaT1oLnEuZmEuYmE7Zj1bImxlZnQiLGYsInRvcCIsZl07aWYoZT09PTEpe2QucHVzaCh7dHlwZTppLHZhbHVlOiJjZW50ZXIifSk7ZSsrfWlmKGU9PT0yKXtpJgooZFswXS50eXBlfGRbMV0udHlwZSkmJmRbMF0udmFsdWUgaW4gYyYmZFsxXS52YWx1ZSBpbiBnJiZkLnB1c2goZC5zaGlmdCgpKTtpZihkWzBdLnR5cGUmaSlpZihkWzBdLnZhbHVlPT09ImNlbnRlciIpZlsxXT1iO2Vsc2UgZlswXT1kWzBdLnZhbHVlO2Vsc2UgaWYoZFswXS5VKCkpZlsxXT1uZXcgaC5pKGRbMF0udmFsdWUpO2lmKGRbMV0udHlwZSZpKWlmKGRbMV0udmFsdWU9PT0iY2VudGVyIilmWzNdPWI7ZWxzZSBmWzJdPWRbMV0udmFsdWU7ZWxzZSBpZihkWzFdLlUoKSlmWzNdPW5ldyBoLmkoZFsxXS52YWx1ZSl9dGhpcy5vYj1mfXJldHVybiB0aGlzLm9ifSxjb29yZHM6ZnVuY3Rpb24oZCxlLGYpe3ZhciBpPXRoaXMueWMoKSxqPWlbMV0uYShkLGUpO2Q9aVszXS5hKGQsZik7cmV0dXJue3g6aVswXT09PSJyaWdodCI/ZS1qOmoseTppWzJdPT09ImJvdHRvbSI/Zi1kOmR9fX07cmV0dXJuIGF9KCk7aC5LYj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7dGhpcy53PWJ9YS5wcm90b3R5cGU9CntjYjovW2Etel0rJC9pLFVhOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWN8fCh0aGlzLmVjPXRoaXMudy5tYXRjaCh0aGlzLmNiKVswXS50b0xvd2VyQ2FzZSgpKX0scWM6ZnVuY3Rpb24oKXt2YXIgYj10aGlzLlliLGM7aWYoYj09PXVuZGVmaW5lZCl7Yj10aGlzLlVhKCk7Yz1wYXJzZUZsb2F0KHRoaXMudywxMCk7Yj10aGlzLlliPWI9PT0iZGVnIj9jOmI9PT0icmFkIj9jL01hdGguUEkqMTgwOmI9PT0iZ3JhZCI/Yy80MDAqMzYwOmI9PT0idHVybiI/YyozNjA6MH1yZXR1cm4gYn19O3JldHVybiBhfSgpO2guUj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7dGhpcy53PWJ9YS5NYz0vXHMqcmdiYVwoXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSlccyosXHMqKFxkK3xcZCpcLlxkKylccypcKVxzKi87YS5hYj17YWxpY2VibHVlOiIjRjBGOEZGIixhbnRpcXVld2hpdGU6IiNGQUVCRDciLGFxdWE6IiMwMEZGRkYiLGFxdWFtYXJpbmU6IiM3RkZGRDQiLAphenVyZToiI0YwRkZGRiIsYmVpZ2U6IiNGNUY1REMiLGJpc3F1ZToiI0ZGRTRDNCIsYmxhY2s6IiMwMDAwMDAiLGJsYW5jaGVkYWxtb25kOiIjRkZFQkNEIixibHVlOiIjMDAwMEZGIixibHVldmlvbGV0OiIjOEEyQkUyIixicm93bjoiI0E1MkEyQSIsYnVybHl3b29kOiIjREVCODg3IixjYWRldGJsdWU6IiM1RjlFQTAiLGNoYXJ0cmV1c2U6IiM3RkZGMDAiLGNob2NvbGF0ZToiI0QyNjkxRSIsY29yYWw6IiNGRjdGNTAiLGNvcm5mbG93ZXJibHVlOiIjNjQ5NUVEIixjb3Juc2lsazoiI0ZGRjhEQyIsY3JpbXNvbjoiI0RDMTQzQyIsY3lhbjoiIzAwRkZGRiIsZGFya2JsdWU6IiMwMDAwOEIiLGRhcmtjeWFuOiIjMDA4QjhCIixkYXJrZ29sZGVucm9kOiIjQjg4NjBCIixkYXJrZ3JheToiI0E5QTlBOSIsZGFya2dyZWVuOiIjMDA2NDAwIixkYXJra2hha2k6IiNCREI3NkIiLGRhcmttYWdlbnRhOiIjOEIwMDhCIixkYXJrb2xpdmVncmVlbjoiIzU1NkIyRiIsZGFya29yYW5nZToiI0ZGOEMwMCIsCmRhcmtvcmNoaWQ6IiM5OTMyQ0MiLGRhcmtyZWQ6IiM4QjAwMDAiLGRhcmtzYWxtb246IiNFOTk2N0EiLGRhcmtzZWFncmVlbjoiIzhGQkM4RiIsZGFya3NsYXRlYmx1ZToiIzQ4M0Q4QiIsZGFya3NsYXRlZ3JheToiIzJGNEY0RiIsZGFya3R1cnF1b2lzZToiIzAwQ0VEMSIsZGFya3Zpb2xldDoiIzk0MDBEMyIsZGVlcHBpbms6IiNGRjE0OTMiLGRlZXBza3libHVlOiIjMDBCRkZGIixkaW1ncmF5OiIjNjk2OTY5Iixkb2RnZXJibHVlOiIjMUU5MEZGIixmaXJlYnJpY2s6IiNCMjIyMjIiLGZsb3JhbHdoaXRlOiIjRkZGQUYwIixmb3Jlc3RncmVlbjoiIzIyOEIyMiIsZnVjaHNpYToiI0ZGMDBGRiIsZ2FpbnNib3JvOiIjRENEQ0RDIixnaG9zdHdoaXRlOiIjRjhGOEZGIixnb2xkOiIjRkZENzAwIixnb2xkZW5yb2Q6IiNEQUE1MjAiLGdyYXk6IiM4MDgwODAiLGdyZWVuOiIjMDA4MDAwIixncmVlbnllbGxvdzoiI0FERkYyRiIsaG9uZXlkZXc6IiNGMEZGRjAiLGhvdHBpbms6IiNGRjY5QjQiLAppbmRpYW5yZWQ6IiNDRDVDNUMiLGluZGlnbzoiIzRCMDA4MiIsaXZvcnk6IiNGRkZGRjAiLGtoYWtpOiIjRjBFNjhDIixsYXZlbmRlcjoiI0U2RTZGQSIsbGF2ZW5kZXJibHVzaDoiI0ZGRjBGNSIsbGF3bmdyZWVuOiIjN0NGQzAwIixsZW1vbmNoaWZmb246IiNGRkZBQ0QiLGxpZ2h0Ymx1ZToiI0FERDhFNiIsbGlnaHRjb3JhbDoiI0YwODA4MCIsbGlnaHRjeWFuOiIjRTBGRkZGIixsaWdodGdvbGRlbnJvZHllbGxvdzoiI0ZBRkFEMiIsbGlnaHRncmVlbjoiIzkwRUU5MCIsbGlnaHRncmV5OiIjRDNEM0QzIixsaWdodHBpbms6IiNGRkI2QzEiLGxpZ2h0c2FsbW9uOiIjRkZBMDdBIixsaWdodHNlYWdyZWVuOiIjMjBCMkFBIixsaWdodHNreWJsdWU6IiM4N0NFRkEiLGxpZ2h0c2xhdGVncmF5OiIjNzc4ODk5IixsaWdodHN0ZWVsYmx1ZToiI0IwQzRERSIsbGlnaHR5ZWxsb3c6IiNGRkZGRTAiLGxpbWU6IiMwMEZGMDAiLGxpbWVncmVlbjoiIzMyQ0QzMiIsbGluZW46IiNGQUYwRTYiLG1hZ2VudGE6IiNGRjAwRkYiLAptYXJvb246IiM4MDAwMDAiLG1lZGl1bWF1cWFtYXJpbmU6IiM2NkNEQUEiLG1lZGl1bWJsdWU6IiMwMDAwQ0QiLG1lZGl1bW9yY2hpZDoiI0JBNTVEMyIsbWVkaXVtcHVycGxlOiIjOTM3MEQ4IixtZWRpdW1zZWFncmVlbjoiIzNDQjM3MSIsbWVkaXVtc2xhdGVibHVlOiIjN0I2OEVFIixtZWRpdW1zcHJpbmdncmVlbjoiIzAwRkE5QSIsbWVkaXVtdHVycXVvaXNlOiIjNDhEMUNDIixtZWRpdW12aW9sZXRyZWQ6IiNDNzE1ODUiLG1pZG5pZ2h0Ymx1ZToiIzE5MTk3MCIsbWludGNyZWFtOiIjRjVGRkZBIixtaXN0eXJvc2U6IiNGRkU0RTEiLG1vY2Nhc2luOiIjRkZFNEI1IixuYXZham93aGl0ZToiI0ZGREVBRCIsbmF2eToiIzAwMDA4MCIsb2xkbGFjZToiI0ZERjVFNiIsb2xpdmU6IiM4MDgwMDAiLG9saXZlZHJhYjoiIzY4OEUyMyIsb3JhbmdlOiIjRkZBNTAwIixvcmFuZ2VyZWQ6IiNGRjQ1MDAiLG9yY2hpZDoiI0RBNzBENiIscGFsZWdvbGRlbnJvZDoiI0VFRThBQSIscGFsZWdyZWVuOiIjOThGQjk4IiwKcGFsZXR1cnF1b2lzZToiI0FGRUVFRSIscGFsZXZpb2xldHJlZDoiI0Q4NzA5MyIscGFwYXlhd2hpcDoiI0ZGRUZENSIscGVhY2hwdWZmOiIjRkZEQUI5IixwZXJ1OiIjQ0Q4NTNGIixwaW5rOiIjRkZDMENCIixwbHVtOiIjRERBMEREIixwb3dkZXJibHVlOiIjQjBFMEU2IixwdXJwbGU6IiM4MDAwODAiLHJlZDoiI0ZGMDAwMCIscm9zeWJyb3duOiIjQkM4RjhGIixyb3lhbGJsdWU6IiM0MTY5RTEiLHNhZGRsZWJyb3duOiIjOEI0NTEzIixzYWxtb246IiNGQTgwNzIiLHNhbmR5YnJvd246IiNGNEE0NjAiLHNlYWdyZWVuOiIjMkU4QjU3IixzZWFzaGVsbDoiI0ZGRjVFRSIsc2llbm5hOiIjQTA1MjJEIixzaWx2ZXI6IiNDMEMwQzAiLHNreWJsdWU6IiM4N0NFRUIiLHNsYXRlYmx1ZToiIzZBNUFDRCIsc2xhdGVncmF5OiIjNzA4MDkwIixzbm93OiIjRkZGQUZBIixzcHJpbmdncmVlbjoiIzAwRkY3RiIsc3RlZWxibHVlOiIjNDY4MkI0Iix0YW46IiNEMkI0OEMiLHRlYWw6IiMwMDgwODAiLAp0aGlzdGxlOiIjRDhCRkQ4Iix0b21hdG86IiNGRjYzNDciLHR1cnF1b2lzZToiIzQwRTBEMCIsdmlvbGV0OiIjRUU4MkVFIix3aGVhdDoiI0Y1REVCMyIsd2hpdGU6IiNGRkZGRkYiLHdoaXRlc21va2U6IiNGNUY1RjUiLHllbGxvdzoiI0ZGRkYwMCIseWVsbG93Z3JlZW46IiM5QUNEMzIifTthLnByb3RvdHlwZT17cGFyc2U6ZnVuY3Rpb24oKXtpZighdGhpcy53YSl7dmFyIGI9dGhpcy53LGM7aWYoYz1iLm1hdGNoKGEuTWMpKXt0aGlzLndhPSJyZ2IoIitjWzFdKyIsIitjWzJdKyIsIitjWzNdKyIpIjt0aGlzLm1iPXBhcnNlRmxvYXQoY1s0XSl9ZWxzZXtpZigoYz1iLnRvTG93ZXJDYXNlKCkpaW4gYS5hYiliPWEuYWJbY107dGhpcy53YT1iO3RoaXMubWI9Yj09PSJ0cmFuc3BhcmVudCI/MDoxfX19LHZhbHVlOmZ1bmN0aW9uKGIpe3RoaXMucGFyc2UoKTtyZXR1cm4gdGhpcy53YT09PSJjdXJyZW50Q29sb3IiP2IuY3VycmVudFN0eWxlLmNvbG9yOnRoaXMud2F9LGhhOmZ1bmN0aW9uKCl7dGhpcy5wYXJzZSgpOwpyZXR1cm4gdGhpcy5tYn19O3JldHVybiBhfSgpO2gucT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYyl7dGhpcy5CYT1jO3RoaXMuY2g9MDt0aGlzLlE9W107dGhpcy5yYT0wfXZhciBiPWEuZmE9e3NhOjEsaWI6MixhYTo0LFRiOjgsamI6MTYsYmE6MzIsejo2NCxjYToxMjgsZGE6MjU2LHVhOjUxMixXYjoxMDI0LFVSTDoyMDQ4fTthLmtiPWZ1bmN0aW9uKGMsZyl7dGhpcy50eXBlPWM7dGhpcy52YWx1ZT1nfTthLmtiLnByb3RvdHlwZT17WWE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlJmIuenx8dGhpcy50eXBlJmIuY2EmJnRoaXMudmFsdWU9PT0iMCJ9LFU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ZYSgpfHx0aGlzLnR5cGUmYi51YX19O2EucHJvdG90eXBlPXtWYzovXHMvLEdjOi9eW1wrXC1dPyhcZCpcLik/XGQrLyx1cmw6L151cmxcKFxzKigiKFteIl0qKSJ8JyhbXiddKiknfChbISMkJSYqLX5dKikpXHMqXCkvaSx2YjovXlwtP1tfYS16XVtcdy1dKi9pLFFjOi9eKCIoW14iXSopInwnKFteJ10qKScpLywKQWM6L14jKFtcZGEtZl17Nn18W1xkYS1mXXszfSkvaSxUYzp7cHg6Yi56LGVtOmIueixleDpiLnosbW06Yi56LGNtOmIueiwiaW4iOmIueixwdDpiLnoscGM6Yi56LGRlZzpiLnNhLHJhZDpiLnNhLGdyYWQ6Yi5zYX0sbGM6e3JnYjoxLHJnYmE6MSxoc2w6MSxoc2xhOjF9LG5leHQ6ZnVuY3Rpb24oYyl7ZnVuY3Rpb24gZyh1LG4pe3U9bmV3IGEua2IodSxuKTtpZighYyl7ay5RLnB1c2godSk7ay5yYSsrfXJldHVybiB1fWZ1bmN0aW9uIGQoKXtrLnJhKys7cmV0dXJuIG51bGx9dmFyIGUsZixpLGosaz10aGlzO2lmKHRoaXMucmE8dGhpcy5RLmxlbmd0aClyZXR1cm4gdGhpcy5RW3RoaXMucmErK107Zm9yKDt0aGlzLlZjLnRlc3QodGhpcy5CYS5jaGFyQXQodGhpcy5jaCkpOyl0aGlzLmNoKys7aWYodGhpcy5jaD49dGhpcy5CYS5sZW5ndGgpcmV0dXJuIGQoKTtmPXRoaXMuY2g7ZT10aGlzLkJhLnN1YnN0cmluZyh0aGlzLmNoKTtpPWUuY2hhckF0KDApO3N3aXRjaChpKXtjYXNlICIjIjppZihqPQplLm1hdGNoKHRoaXMuQWMpKXt0aGlzLmNoKz1qWzBdLmxlbmd0aDtyZXR1cm4gZyhiLmFhLGpbMF0pfWJyZWFrO2Nhc2UgJyInOmNhc2UgIiciOmlmKGo9ZS5tYXRjaCh0aGlzLlFjKSl7dGhpcy5jaCs9alswXS5sZW5ndGg7cmV0dXJuIGcoYi5XYixqWzJdfHxqWzNdfHwiIil9YnJlYWs7Y2FzZSAiLyI6Y2FzZSAiLCI6dGhpcy5jaCsrO3JldHVybiBnKGIuZGEsaSk7Y2FzZSAidSI6aWYoaj1lLm1hdGNoKHRoaXMudXJsKSl7dGhpcy5jaCs9alswXS5sZW5ndGg7cmV0dXJuIGcoYi5VUkwsalsyXXx8alszXXx8als0XXx8IiIpfX1pZihqPWUubWF0Y2godGhpcy5HYykpe2k9alswXTt0aGlzLmNoKz1pLmxlbmd0aDtpZihlLmNoYXJBdChpLmxlbmd0aCk9PT0iJSIpe3RoaXMuY2grKztyZXR1cm4gZyhiLnVhLGkrIiUiKX1pZihqPWUuc3Vic3RyaW5nKGkubGVuZ3RoKS5tYXRjaCh0aGlzLnZiKSl7aSs9alswXTt0aGlzLmNoKz1qWzBdLmxlbmd0aDtyZXR1cm4gZyh0aGlzLlRjW2pbMF0udG9Mb3dlckNhc2UoKV18fApiLlRiLGkpfXJldHVybiBnKGIuY2EsaSl9aWYoaj1lLm1hdGNoKHRoaXMudmIpKXtpPWpbMF07dGhpcy5jaCs9aS5sZW5ndGg7aWYoaS50b0xvd2VyQ2FzZSgpaW4gaC5SLmFifHxpPT09ImN1cnJlbnRDb2xvciIpcmV0dXJuIGcoYi5hYSxpKTtpZihlLmNoYXJBdChpLmxlbmd0aCk9PT0iKCIpe3RoaXMuY2grKztpZihpLnRvTG93ZXJDYXNlKClpbiB0aGlzLmxjKXtlPWZ1bmN0aW9uKHUpe3JldHVybiB1JiZ1LnR5cGUmYi5jYX07aj1mdW5jdGlvbih1KXtyZXR1cm4gdSYmdS50eXBlJihiLmNhfGIudWEpfTt2YXIgbT1mdW5jdGlvbih1LG4pe3JldHVybiB1JiZ1LnZhbHVlPT09bn0sbD1mdW5jdGlvbigpe3JldHVybiBrLm5leHQoMSl9O2lmKChpLmNoYXJBdCgwKT09PSJyIj9qKGwoKSk6ZShsKCkpKSYmbShsKCksIiwiKSYmaihsKCkpJiZtKGwoKSwiLCIpJiZqKGwoKSkmJihpPT09InJnYiJ8fGk9PT0iaHNhInx8bShsKCksIiwiKSYmZShsKCkpKSYmbShsKCksIikiKSlyZXR1cm4gZyhiLmFhLAp0aGlzLkJhLnN1YnN0cmluZyhmLHRoaXMuY2gpKTtyZXR1cm4gZCgpfXJldHVybiBnKGIuamIsaSsiKCIpfXJldHVybiBnKGIuYmEsaSl9dGhpcy5jaCsrO3JldHVybiBnKGIuaWIsaSl9LHY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RW3RoaXMucmEtLSAtMl19LGFsbDpmdW5jdGlvbigpe2Zvcig7dGhpcy5uZXh0KCk7KTtyZXR1cm4gdGhpcy5RfSwkOmZ1bmN0aW9uKGMsZyl7Zm9yKHZhciBkPVtdLGUsZjtlPXRoaXMubmV4dCgpOyl7aWYoYyhlKSl7Zj10cnVlO3RoaXMudigpO2JyZWFrfWQucHVzaChlKX1yZXR1cm4gZyYmIWY/bnVsbDpkfX07cmV0dXJuIGF9KCk7dmFyIEs9ZnVuY3Rpb24oYSl7dGhpcy5kPWF9O0sucHJvdG90eXBlPXtKOjAsS2M6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLk9hLGI7cmV0dXJuIWF8fChiPXRoaXMubSgpKSYmKGEueCE9PWIueHx8YS55IT09Yi55KX0sTmM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLk9hLGI7cmV0dXJuIWF8fChiPXRoaXMubSgpKSYmKGEuZyE9PQpiLmd8fGEuZSE9PWIuZSl9LHFiOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt4OmEubGVmdCx5OmEudG9wLGc6YS5yaWdodC1hLmxlZnQsZTphLmJvdHRvbS1hLnRvcH19LG06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5KP3RoaXMueGF8fCh0aGlzLnhhPXRoaXMucWIoKSk6dGhpcy5xYigpfSx6YzpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5PYX0sRGE6ZnVuY3Rpb24oKXsrK3RoaXMuSn0sRmE6ZnVuY3Rpb24oKXtpZighLS10aGlzLkope2lmKHRoaXMueGEpdGhpcy5PYT10aGlzLnhhO3RoaXMueGE9bnVsbH19fTsoZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIpe3ZhciBjPWgubi5vYShiKTtyZXR1cm4gZnVuY3Rpb24oKXtpZih0aGlzLkope3ZhciBnPXRoaXMubmJ8fCh0aGlzLm5iPXt9KTtyZXR1cm4gYyBpbiBnP2dbY106KGdbY109Yi5jYWxsKHRoaXMpKX1lbHNlIHJldHVybiBiLmNhbGwodGhpcyl9fWgucD17SjowLFc6ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYyhnKXt0aGlzLmQ9Cmd9aC5uLiRhKGMucHJvdG90eXBlLGgucCxiKTtjLmRjPXt9O3JldHVybiBjfSxqOmZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5sYSgpLGM9dGhpcy5jb25zdHJ1Y3Rvci5kYztyZXR1cm4gYj9iIGluIGM/Y1tiXTooY1tiXT10aGlzLlkoYikpOm51bGx9LGxhOmEoZnVuY3Rpb24oKXt2YXIgYj10aGlzLmQsYz10aGlzLmNvbnN0cnVjdG9yLGc9Yi5zdHlsZTtiPWIuY3VycmVudFN0eWxlO3ZhciBkPXRoaXMuamEsZT10aGlzLnFhLGY9Yy5iY3x8KGMuYmM9aC5JK2QpO2M9Yy5jY3x8KGMuY2M9aC5OYStlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc3Vic3RyaW5nKDEpKTtyZXR1cm4gZ1tjXXx8Yi5nZXRBdHRyaWJ1dGUoZil8fGdbZV18fGIuZ2V0QXR0cmlidXRlKGQpfSksZjphKGZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmooKX0pLEM6YShmdW5jdGlvbigpe3ZhciBiPXRoaXMubGEoKSxjPWIhPT10aGlzLiRiO3RoaXMuJGI9YjtyZXR1cm4gY30pLGlhOmEsRGE6ZnVuY3Rpb24oKXsrK3RoaXMuSn0sCkZhOmZ1bmN0aW9uKCl7LS10aGlzLkp8fGRlbGV0ZSB0aGlzLm5ifX19KSgpO2guTWI9aC5wLlcoe2phOmguSSsiYmFja2dyb3VuZCIscWE6aC5OYSsiQmFja2dyb3VuZCIsaGM6e3Njcm9sbDoxLGZpeGVkOjEsbG9jYWw6MX0sRWE6eyJyZXBlYXQteCI6MSwicmVwZWF0LXkiOjEscmVwZWF0OjEsIm5vLXJlcGVhdCI6MX0sSGM6eyJwYWRkaW5nLWJveCI6MSwiYm9yZGVyLWJveCI6MSwiY29udGVudC1ib3giOjF9LGtjOnsicGFkZGluZy1ib3giOjEsImJvcmRlci1ib3giOjF9LExjOnt0b3A6MSxyaWdodDoxLGJvdHRvbToxLGxlZnQ6MSxjZW50ZXI6MX0sT2M6e2NvbnRhaW46MSxjb3ZlcjoxfSxZOmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIodil7cmV0dXJuIHYuVSgpfHx2LnR5cGUmaiYmdi52YWx1ZSBpbiB1fWZ1bmN0aW9uIGModil7cmV0dXJuIHYuVSgpJiZuZXcgaC5pKHYudmFsdWUpfHx2LnZhbHVlPT09ImF1dG8iJiYiYXV0byJ9dmFyIGc9dGhpcy5kLmN1cnJlbnRTdHlsZSxkLAplLGY9aC5xLmZhLGk9Zi5kYSxqPWYuYmEsaz1mLmFhLG0sbCx1PXRoaXMuTGMsbixxLHQ9bnVsbDtpZih0aGlzLlRhKCkpe2E9bmV3IGgucShhKTt0PXtpbWFnZXM6W119O2ZvcihlPXt9O2Q9YS5uZXh0KCk7KXttPWQudHlwZTtsPWQudmFsdWU7aWYoIWUudHlwZSYmbSZmLmpiJiZsPT09ImxpbmVhci1ncmFkaWVudCgiKXtuPXtaOltdLHR5cGU6ImxpbmVhci1ncmFkaWVudCJ9O2ZvcihxPXt9O2Q9YS5uZXh0KCk7KXttPWQudHlwZTtsPWQudmFsdWU7aWYobSZmLmliJiZsPT09IikiKXtxLmNvbG9yJiZuLloucHVzaChxKTtuLloubGVuZ3RoPjEmJmgubi4kYShlLG4pO2JyZWFrfWlmKG0mayl7aWYobi5SYXx8bi5WYSl7ZD1hLnYoKTtpZihkLnR5cGUhPT1pKWJyZWFrO2EubmV4dCgpfXE9e2NvbG9yOm5ldyBoLlIobCl9O2Q9YS5uZXh0KCk7aWYoZC5VKCkpcS55Yj1uZXcgaC5pKGQudmFsdWUpO2Vsc2UgYS52KCl9ZWxzZSBpZihtJmYuc2EmJiFuLlJhJiYhcS5jb2xvciYmIW4uWi5sZW5ndGgpbi5SYT0KbmV3IGguS2IoZC52YWx1ZSk7ZWxzZSBpZihiKGQpJiYhbi5WYSYmIXEuY29sb3ImJiFuLloubGVuZ3RoKXthLnYoKTtuLlZhPW5ldyBoLkhhKGEuJChmdW5jdGlvbih2KXtyZXR1cm4hYih2KX0sZmFsc2UpKX1lbHNlIGlmKG0maSYmbD09PSIsIil7aWYocS5jb2xvcil7bi5aLnB1c2gocSk7cT17fX19ZWxzZSBicmVha319ZWxzZSBpZighZS50eXBlJiZtJmYuVVJMKXtlLnVybD1sO2UudHlwZT0iaW1hZ2UifWVsc2UgaWYoYihkKSYmIWUuc2l6ZSl7YS52KCk7ZS5wb3NpdGlvbj1uZXcgaC5IYShhLiQoZnVuY3Rpb24odil7cmV0dXJuIWIodil9LGZhbHNlKSl9ZWxzZSBpZihtJmopaWYobCBpbiB0aGlzLkVhKWUucmVwZWF0PWw7ZWxzZSBpZihsIGluIHRoaXMuSGMpe2Uub3JpZ2luPWw7aWYobCBpbiB0aGlzLmtjKWUuY2xpcD1sfWVsc2V7aWYobCBpbiB0aGlzLmhjKWUuWmM9bH1lbHNlIGlmKG0mayYmIXQuY29sb3IpdC5jb2xvcj1uZXcgaC5SKGwpO2Vsc2UgaWYobSZpKWlmKGw9PT0KIi8iKXtkPWEubmV4dCgpO209ZC50eXBlO2w9ZC52YWx1ZTtpZihtJmomJmwgaW4gdGhpcy5PYyllLnNpemU9bDtlbHNlIGlmKGw9YyhkKSllLnNpemU9e2c6bCxlOmMoYS5uZXh0KCkpfHxhLnYoKSYmbH19ZWxzZXtpZihsPT09IiwiJiZlLnR5cGUpe3QuaW1hZ2VzLnB1c2goZSk7ZT17fX19ZWxzZSByZXR1cm4gbnVsbH1lLnR5cGUmJnQuaW1hZ2VzLnB1c2goZSl9ZWxzZSB0aGlzLkdiKGZ1bmN0aW9uKCl7dmFyIHY9Zy5iYWNrZ3JvdW5kUG9zaXRpb25YLHg9Zy5iYWNrZ3JvdW5kUG9zaXRpb25ZLHI9Zy5iYWNrZ3JvdW5kSW1hZ2Usbz1nLmJhY2tncm91bmRDb2xvcjt0PXt9O2lmKG8hPT0idHJhbnNwYXJlbnQiKXQuY29sb3I9bmV3IGguUihvKTtpZihyIT09Im5vbmUiKXQuaW1hZ2VzPVt7dHlwZToiaW1hZ2UiLHVybDoobmV3IGgucShyKSkubmV4dCgpLnZhbHVlLHJlcGVhdDpnLmJhY2tncm91bmRSZXBlYXQscG9zaXRpb246bmV3IGguSGEoKG5ldyBoLnEodisiICIreCkpLmFsbCgpKX1dfSk7CnJldHVybiB0JiYodC5jb2xvcnx8dC5pbWFnZXMmJnQuaW1hZ2VzWzBdKT90Om51bGx9LEdiOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZC5ydW50aW1lU3R5bGUsYz1iLmJhY2tncm91bmRJbWFnZSxnPWIuYmFja2dyb3VuZENvbG9yO2lmKGMpYi5iYWNrZ3JvdW5kSW1hZ2U9IiI7aWYoZyliLmJhY2tncm91bmRDb2xvcj0iIjthPWEuY2FsbCh0aGlzKTtpZihjKWIuYmFja2dyb3VuZEltYWdlPWM7aWYoZyliLmJhY2tncm91bmRDb2xvcj1nO3JldHVybiBhfSxsYTpoLnAuaWEoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5UYSgpfHx0aGlzLkdiKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kLmN1cnJlbnRTdHlsZTtyZXR1cm4gYS5iYWNrZ3JvdW5kQ29sb3IrIiAiK2EuYmFja2dyb3VuZEltYWdlKyIgIithLmJhY2tncm91bmRSZXBlYXQrIiAiK2EuYmFja2dyb3VuZFBvc2l0aW9uWCsiICIrYS5iYWNrZ3JvdW5kUG9zaXRpb25ZfSl9KSxUYTpoLnAuaWEoZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQ7CnJldHVybiBhLnN0eWxlW3RoaXMucWFdfHxhLmN1cnJlbnRTdHlsZS5nZXRBdHRyaWJ1dGUodGhpcy5qYSl9KSx4YjpmdW5jdGlvbigpe3ZhciBhPTA7aWYoaC5EPDcpe2E9dGhpcy5kO2E9IiIrKGEuc3R5bGVbaC5OYSsiUG5nRml4Il18fGEuY3VycmVudFN0eWxlLmdldEF0dHJpYnV0ZShoLkkrInBuZy1maXgiKSk9PT0idHJ1ZSJ9cmV0dXJuIGF9LGY6aC5wLmlhKGZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuVGEoKXx8dGhpcy54YigpKSYmISF0aGlzLmooKX0pfSk7aC5RYj1oLnAuVyh7QmI6WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxGYzp7YmQ6IjFweCIsJGM6IjNweCIsYWQ6IjVweCJ9LFk6ZnVuY3Rpb24oKXt2YXIgYT17fSxiPXt9LGM9e30sZz1mYWxzZSxkPXRydWUsZT10cnVlLGY9dHJ1ZTt0aGlzLkhiKGZ1bmN0aW9uKCl7Zm9yKHZhciBpPXRoaXMuZC5jdXJyZW50U3R5bGUsaj0wLGssbSxsLHUsbixxLHQ7ajw0O2orKyl7bD10aGlzLkJiW2pdO3Q9bC5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTsKaz1iW3RdPWlbImJvcmRlciIrbCsiU3R5bGUiXTttPWlbImJvcmRlciIrbCsiQ29sb3IiXTtsPWlbImJvcmRlciIrbCsiV2lkdGgiXTtpZihqPjApe2lmKGshPT11KWU9ZmFsc2U7aWYobSE9PW4pZD1mYWxzZTtpZihsIT09cSlmPWZhbHNlfXU9aztuPW07cT1sO2NbdF09bmV3IGguUihtKTtsPWFbdF09bmV3IGguaShiW3RdPT09Im5vbmUiPyIwIjp0aGlzLkZjW2xdfHxsKTtpZihsLmEodGhpcy5kKT4wKWc9dHJ1ZX19KTtyZXR1cm4gZz97aGI6YSxSYzpiLG1jOmMsV2M6ZixuYzpkLFNjOmV9Om51bGx9LGxhOmgucC5pYShmdW5jdGlvbigpe3ZhciBhPXRoaXMuZCxiPWEuY3VycmVudFN0eWxlLGM7YS50YWdOYW1lIGluIGguQ2ImJmEub2Zmc2V0UGFyZW50LmN1cnJlbnRTdHlsZS5ib3JkZXJDb2xsYXBzZT09PSJjb2xsYXBzZSJ8fHRoaXMuSGIoZnVuY3Rpb24oKXtjPWIuYm9yZGVyV2lkdGgrInwiK2IuYm9yZGVyU3R5bGUrInwiK2IuYm9yZGVyQ29sb3J9KTtyZXR1cm4gY30pLEhiOmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLmQucnVudGltZVN0eWxlLGM9Yi5ib3JkZXJXaWR0aCxnPWIuYm9yZGVyQ29sb3I7aWYoYyliLmJvcmRlcldpZHRoPSIiO2lmKGcpYi5ib3JkZXJDb2xvcj0iIjthPWEuY2FsbCh0aGlzKTtpZihjKWIuYm9yZGVyV2lkdGg9YztpZihnKWIuYm9yZGVyQ29sb3I9ZztyZXR1cm4gYX19KTsoZnVuY3Rpb24oKXtoLklhPWgucC5XKHtqYToiYm9yZGVyLXJhZGl1cyIscWE6ImJvcmRlclJhZGl1cyIsWTpmdW5jdGlvbihiKXt2YXIgYz1udWxsLGcsZCxlLGYsaT1mYWxzZTtpZihiKXtkPW5ldyBoLnEoYik7dmFyIGo9ZnVuY3Rpb24oKXtmb3IodmFyIGs9W10sbTsoZT1kLm5leHQoKSkmJmUuVSgpOyl7Zj1uZXcgaC5pKGUudmFsdWUpO209Zi5yYigpO2lmKG08MClyZXR1cm4gbnVsbDtpZihtPjApaT10cnVlO2sucHVzaChmKX1yZXR1cm4gay5sZW5ndGg+MCYmay5sZW5ndGg8NT97dGw6a1swXSx0cjprWzFdfHxrWzBdLGJyOmtbMl18fGtbMF0sYmw6a1szXXx8a1sxXXx8a1swXX06bnVsbH07CmlmKGI9aigpKXtpZihlKXtpZihlLnR5cGUmaC5xLmZhLmRhJiZlLnZhbHVlPT09Ii8iKWc9aigpfWVsc2UgZz1iO2lmKGkmJmImJmcpYz17eDpiLHk6Z319fXJldHVybiBjfX0pO3ZhciBhPWguaS5sYjthPXt0bDphLHRyOmEsYnI6YSxibDphfTtoLklhLkpiPXt4OmEseTphfX0pKCk7aC5PYj1oLnAuVyh7amE6ImJvcmRlci1pbWFnZSIscWE6ImJvcmRlckltYWdlIixFYTp7c3RyZXRjaDoxLHJvdW5kOjEscmVwZWF0OjEsc3BhY2U6MX0sWTpmdW5jdGlvbihhKXt2YXIgYj1udWxsLGMsZyxkLGUsZixpLGo9MCxrLG09aC5xLmZhLGw9bS5iYSx1PW0uY2Esbj1tLnoscT1tLnVhO2lmKGEpe2M9bmV3IGgucShhKTtiPXt9O2Zvcih2YXIgdD1mdW5jdGlvbihyKXtyZXR1cm4gciYmci50eXBlJm0uZGEmJnIudmFsdWU9PT0iLyJ9LHY9ZnVuY3Rpb24ocil7cmV0dXJuIHImJnIudHlwZSZsJiZyLnZhbHVlPT09ImZpbGwifSx4PWZ1bmN0aW9uKCl7ZT1jLiQoZnVuY3Rpb24ocil7cmV0dXJuIShyLnR5cGUmCih1fHEpKX0pO2lmKHYoYy5uZXh0KCkpJiYhYi5maWxsKWIuZmlsbD10cnVlO2Vsc2UgYy52KCk7aWYodChjLm5leHQoKSkpe2orKztmPWMuJChmdW5jdGlvbigpe3JldHVybiEoZy50eXBlJih1fHF8bikpJiYhKGcudHlwZSZsJiZnLnZhbHVlPT09ImF1dG8iKX0pO2lmKHQoYy5uZXh0KCkpKXtqKys7aT1jLiQoZnVuY3Rpb24oKXtyZXR1cm4hKGcudHlwZSYodXxuKSl9KX19ZWxzZSBjLnYoKX07Zz1jLm5leHQoKTspe2E9Zy50eXBlO2Q9Zy52YWx1ZTtpZihhJih1fHEpJiYhZSl7Yy52KCk7eCgpfWVsc2UgaWYodihnKSYmIWIuZmlsbCl7Yi5maWxsPXRydWU7eCgpfWVsc2UgaWYoYSZsJiZ0aGlzLkVhW2RdJiYhYi5yZXBlYXQpe2IucmVwZWF0PXtlOmR9O2lmKGc9Yy5uZXh0KCkpaWYoZy50eXBlJmwmJnRoaXMuRWFbZy52YWx1ZV0pYi5yZXBlYXQuZWI9Zy52YWx1ZTtlbHNlIGMudigpfWVsc2UgaWYoYSZtLlVSTCYmIWIuc3JjKWIuc3JjPWQ7ZWxzZSByZXR1cm4gbnVsbH1pZighYi5zcmN8fAohZXx8ZS5sZW5ndGg8MXx8ZS5sZW5ndGg+NHx8ZiYmZi5sZW5ndGg+NHx8aj09PTEmJmYubGVuZ3RoPDF8fGkmJmkubGVuZ3RoPjR8fGo9PT0yJiZpLmxlbmd0aDwxKXJldHVybiBudWxsO2lmKCFiLnJlcGVhdCliLnJlcGVhdD17ZToic3RyZXRjaCJ9O2lmKCFiLnJlcGVhdC5lYiliLnJlcGVhdC5lYj1iLnJlcGVhdC5lO2E9ZnVuY3Rpb24ocixvKXtyZXR1cm57UDpvKHJbMF0pLE86byhyWzFdfHxyWzBdKSxLOm8oclsyXXx8clswXSksTTpvKHJbM118fHJbMV18fHJbMF0pfX07Yi5zbGljZT1hKGUsZnVuY3Rpb24ocil7cmV0dXJuIG5ldyBoLmkoci50eXBlJnU/ci52YWx1ZSsicHgiOnIudmFsdWUpfSk7Yi53aWR0aD1mJiZmLmxlbmd0aD4wP2EoZixmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlJihufHEpP25ldyBoLmkoci52YWx1ZSk6ci52YWx1ZX0pOihrPXRoaXMuZC5jdXJyZW50U3R5bGUpJiZ7UDpuZXcgaC5pKGsuYm9yZGVyVG9wV2lkdGgpLE86bmV3IGguaShrLmJvcmRlclJpZ2h0V2lkdGgpLApLOm5ldyBoLmkoay5ib3JkZXJCb3R0b21XaWR0aCksTTpuZXcgaC5pKGsuYm9yZGVyTGVmdFdpZHRoKX07Yi5wYT1hKGl8fFswXSxmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlJm4/bmV3IGguaShyLnZhbHVlKTpyLnZhbHVlfSl9cmV0dXJuIGJ9fSk7aC5TYj1oLnAuVyh7amE6ImJveC1zaGFkb3ciLHFhOiJib3hTaGFkb3ciLFk6ZnVuY3Rpb24oYSl7dmFyIGIsYz1oLmksZz1oLnEuZmEsZDtpZihhKXtkPW5ldyBoLnEoYSk7Yj17cGE6W10sWGE6W119O2ZvcihhPWZ1bmN0aW9uKCl7Zm9yKHZhciBlLGYsaSxqLGssbTtlPWQubmV4dCgpOyl7aT1lLnZhbHVlO2Y9ZS50eXBlO2lmKGYmZy5kYSYmaT09PSIsIilicmVhaztlbHNlIGlmKGUuWWEoKSYmIWspe2QudigpO2s9ZC4kKGZ1bmN0aW9uKGwpe3JldHVybiFsLllhKCl9KX1lbHNlIGlmKGYmZy5hYSYmIWopaj1pO2Vsc2UgaWYoZiZnLmJhJiZpPT09Imluc2V0IiYmIW0pbT10cnVlO2Vsc2UgcmV0dXJuIGZhbHNlfWU9ayYmay5sZW5ndGg7CmlmKGU+MSYmZTw1KXsobT9iLlhhOmIucGEpLnB1c2goe1hjOm5ldyBjKGtbMF0udmFsdWUpLFljOm5ldyBjKGtbMV0udmFsdWUpLGJsdXI6bmV3IGMoa1syXT9rWzJdLnZhbHVlOiIwIiksUGM6bmV3IGMoa1szXT9rWzNdLnZhbHVlOiIwIiksY29sb3I6bmV3IGguUihqfHwiY3VycmVudENvbG9yIil9KTtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9O2EoKTspO31yZXR1cm4gYiYmKGIuWGEubGVuZ3RofHxiLnBhLmxlbmd0aCk/YjpudWxsfX0pO2guWGI9aC5wLlcoe2xhOmgucC5pYShmdW5jdGlvbigpe3ZhciBhPXRoaXMuZC5jdXJyZW50U3R5bGU7cmV0dXJuIGEudmlzaWJpbGl0eSsifCIrYS5kaXNwbGF5fSksWTpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZCxiPWEucnVudGltZVN0eWxlO2E9YS5jdXJyZW50U3R5bGU7dmFyIGM9Yi52aXNpYmlsaXR5LGc7Yi52aXNpYmlsaXR5PSIiO2c9YS52aXNpYmlsaXR5O2IudmlzaWJpbGl0eT1jO3JldHVybntVYzpnIT09ImhpZGRlbiIsc2M6YS5kaXNwbGF5IT09CiJub25lIn19LGY6ZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2V9fSk7aC5BPXtWOmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyxnLGQsZSl7dGhpcy5kPWM7dGhpcy5vPWc7dGhpcy5oPWQ7dGhpcy5wYXJlbnQ9ZX1oLm4uJGEoYi5wcm90b3R5cGUsaC5BLGEpO3JldHVybiBifSxaYTpmYWxzZSxOOmZ1bmN0aW9uKCl7cmV0dXJuIGZhbHNlfSxEYjpmdW5jdGlvbigpe3RoaXMuaygpO3RoaXMuZigpJiZ0aGlzLlQoKX0sZGI6ZnVuY3Rpb24oKXt0aGlzLlphPXRydWV9LEViOmZ1bmN0aW9uKCl7dGhpcy5mKCk/dGhpcy5UKCk6dGhpcy5rKCl9LFFhOmZ1bmN0aW9uKGEsYil7dGhpcy5BYihhKTtmb3IodmFyIGM9dGhpcy5nYXx8KHRoaXMuZ2E9W10pLGc9YSsxLGQ9Yy5sZW5ndGgsZTtnPGQ7ZysrKWlmKGU9Y1tnXSlicmVhaztjW2FdPWI7dGhpcy51KCkuaW5zZXJ0QmVmb3JlKGIsZXx8bnVsbCl9LG1hOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZ2E7cmV0dXJuIGImJmJbYV18fG51bGx9LEFiOmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLm1hKGEpLGM9dGhpcy52YTtpZihiJiZjKXtjLnJlbW92ZUNoaWxkKGIpO3RoaXMuZ2FbYV09bnVsbH19LG5hOmZ1bmN0aW9uKGEsYixjLGcpe3ZhciBkPXRoaXMuUGF8fCh0aGlzLlBhPXt9KSxlPWRbYV07aWYoIWUpe2U9ZFthXT1oLm4uQWEoInNoYXBlIik7aWYoYillLmFwcGVuZENoaWxkKGVbYl09aC5uLkFhKGIpKTtpZihnKXtjPXRoaXMubWEoZyk7aWYoIWMpe3RoaXMuUWEoZyxkb2MuY3JlYXRlRWxlbWVudCgiZ3JvdXAiK2cpKTtjPXRoaXMubWEoZyl9fWMuYXBwZW5kQ2hpbGQoZSk7YT1lLnN0eWxlO2EucG9zaXRpb249ImFic29sdXRlIjthLmxlZnQ9YS50b3A9MDthLmJlaGF2aW9yPSJ1cmwoI2RlZmF1bHQjVk1MKSJ9cmV0dXJuIGV9LFNhOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuUGEsYz1iJiZiW2FdO2lmKGMpe2MucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjKTtkZWxldGUgYlthXX1yZXR1cm4hIWN9LHRiOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZCxjPXRoaXMuby5tKCksCmc9Yy5nLGQ9Yy5lLGUsZixpLGosayxtO2M9YS54LnRsLmEoYixnKTtlPWEueS50bC5hKGIsZCk7Zj1hLngudHIuYShiLGcpO2k9YS55LnRyLmEoYixkKTtqPWEueC5ici5hKGIsZyk7az1hLnkuYnIuYShiLGQpO209YS54LmJsLmEoYixnKTthPWEueS5ibC5hKGIsZCk7Zz1NYXRoLm1pbihnLyhjK2YpLGQvKGkrayksZy8obStqKSxkLyhlK2EpKTtpZihnPDEpe2MqPWc7ZSo9ZztmKj1nO2kqPWc7aio9ZztrKj1nO20qPWc7YSo9Z31yZXR1cm57eDp7dGw6Yyx0cjpmLGJyOmosYmw6bX0seTp7dGw6ZSx0cjppLGJyOmssYmw6YX19fSxrYTpmdW5jdGlvbihhLGIsYyl7Yj1ifHwxO3ZhciBnLGQsZT10aGlzLm8ubSgpO2Q9ZS5nKmI7ZT1lLmUqYjt2YXIgZj10aGlzLmgucyxpPU1hdGguZmxvb3Isaj1NYXRoLmNlaWwsaz1hP2EuUCpiOjAsbT1hP2EuTypiOjAsbD1hP2EuSypiOjA7YT1hP2EuTSpiOjA7dmFyIHUsbixxLHQsdjtpZihjfHxmLmYoKSl7Zz10aGlzLnRiKGN8fGYuaigpKTtjPQpnLngudGwqYjtmPWcueS50bCpiO3U9Zy54LnRyKmI7bj1nLnkudHIqYjtxPWcueC5icipiO3Q9Zy55LmJyKmI7dj1nLnguYmwqYjtiPWcueS5ibCpiO2Q9Im0iK2koYSkrIiwiK2koZikrInF5IitpKGMpKyIsIitpKGspKyJsIitqKGQtdSkrIiwiK2koaykrInF4IitqKGQtbSkrIiwiK2kobikrImwiK2ooZC1tKSsiLCIraihlLXQpKyJxeSIraihkLXEpKyIsIitqKGUtbCkrImwiK2kodikrIiwiK2ooZS1sKSsicXgiK2koYSkrIiwiK2ooZS1iKSsiIHggZSJ9ZWxzZSBkPSJtIitpKGEpKyIsIitpKGspKyJsIitqKGQtbSkrIiwiK2koaykrImwiK2ooZC1tKSsiLCIraihlLWwpKyJsIitpKGEpKyIsIitqKGUtbCkrInhlIjtyZXR1cm4gZH0sdTpmdW5jdGlvbigpe3ZhciBhPXRoaXMucGFyZW50Lm1hKHRoaXMuQiksYjtpZighYSl7YT1kb2MuY3JlYXRlRWxlbWVudCh0aGlzLnphKTtiPWEuc3R5bGU7Yi5wb3NpdGlvbj0iYWJzb2x1dGUiO2IudG9wPWIubGVmdD0wO3RoaXMucGFyZW50LlFhKHRoaXMuQiwKYSl9cmV0dXJuIGF9LGs6ZnVuY3Rpb24oKXt0aGlzLnBhcmVudC5BYih0aGlzLkIpO2RlbGV0ZSB0aGlzLlBhO2RlbGV0ZSB0aGlzLmdhfX07aC5WYj1oLkEuVih7ZjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaWM7Zm9yKHZhciBiIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShiKSYmYVtiXS5mKCkpcmV0dXJuIHRydWU7cmV0dXJuIGZhbHNlfSxOOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaC5mYi5DKCl9LGRiOmZ1bmN0aW9uKCl7aWYodGhpcy5mKCkpe3ZhciBhPXRoaXMuc2IoKSxiPWEsYzthPWEuY3VycmVudFN0eWxlO3ZhciBnPWEucG9zaXRpb24sZD10aGlzLnUoKS5zdHlsZSxlPTAsZj0wO2Y9dGhpcy5vLm0oKTtpZihnPT09ImZpeGVkIiYmaC5EPjYpe2U9Zi54O2Y9Zi55O2I9Z31lbHNle2RvIGI9Yi5vZmZzZXRQYXJlbnQ7d2hpbGUoYiYmYi5jdXJyZW50U3R5bGUucG9zaXRpb249PT0ic3RhdGljIik7aWYoYil7Yz1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2I9Yi5jdXJyZW50U3R5bGU7CmU9Zi54LWMubGVmdC0ocGFyc2VGbG9hdChiLmJvcmRlckxlZnRXaWR0aCl8fDApO2Y9Zi55LWMudG9wLShwYXJzZUZsb2F0KGIuYm9yZGVyVG9wV2lkdGgpfHwwKX1lbHNle2I9ZG9jLmRvY3VtZW50RWxlbWVudDtlPWYueCtiLnNjcm9sbExlZnQtYi5jbGllbnRMZWZ0O2Y9Zi55K2Iuc2Nyb2xsVG9wLWIuY2xpZW50VG9wfWI9ImFic29sdXRlIn1kLnBvc2l0aW9uPWI7ZC5sZWZ0PWU7ZC50b3A9ZjtkLnpJbmRleD1nPT09InN0YXRpYyI/LTE6YS56SW5kZXg7dGhpcy5aYT10cnVlfX0sRWI6ZnVuY3Rpb24oKXt9LEZiOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oLmZiLmooKTt0aGlzLnUoKS5zdHlsZS5kaXNwbGF5PWEuVWMmJmEuc2M/IiI6Im5vbmUifSxEYjpmdW5jdGlvbigpe3RoaXMuZigpP3RoaXMuRmIoKTp0aGlzLmsoKX0sc2I6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQ7cmV0dXJuIGEudGFnTmFtZSBpbiBoLkNiP2Eub2Zmc2V0UGFyZW50OmF9LHU6ZnVuY3Rpb24oKXt2YXIgYT0KdGhpcy52YSxiO2lmKCFhKXtiPXRoaXMuc2IoKTthPXRoaXMudmE9ZG9jLmNyZWF0ZUVsZW1lbnQoImNzczMtY29udGFpbmVyIik7YS5zdHlsZS5kaXJlY3Rpb249Imx0ciI7dGhpcy5GYigpO2IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxiKX1yZXR1cm4gYX0sazpmdW5jdGlvbigpe3ZhciBhPXRoaXMudmEsYjtpZihhJiYoYj1hLnBhcmVudE5vZGUpKWIucmVtb3ZlQ2hpbGQoYSk7ZGVsZXRlIHRoaXMudmE7ZGVsZXRlIHRoaXMuZ2F9fSk7aC5MYj1oLkEuVih7QjoyLHphOiJiYWNrZ3JvdW5kIixOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkcuQygpfHxhLnMuQygpfSxmOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkwuZigpfHxhLnMuZigpfHxhLkcuZigpfHxhLlMuZigpJiZhLlMuaigpLlhhfSxUOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vLm0oKTtpZihhLmcmJmEuZSl7dGhpcy50YygpO3RoaXMudWMoKX19LHRjOmZ1bmN0aW9uKCl7dmFyIGE9CnRoaXMuaC5HLmooKSxiPXRoaXMuby5tKCksYz10aGlzLmQsZz1hJiZhLmNvbG9yLGQsZTtpZihnJiZnLmhhKCk+MCl7dGhpcy51YigpO2E9dGhpcy5uYSgiYmdDb2xvciIsImZpbGwiLHRoaXMudSgpLDEpO2Q9Yi5nO2I9Yi5lO2Euc3Ryb2tlZD1mYWxzZTthLmNvb3Jkc2l6ZT1kKjIrIiwiK2IqMjthLmNvb3Jkb3JpZ2luPSIxLDEiO2EucGF0aD10aGlzLmthKG51bGwsMik7ZT1hLnN0eWxlO2Uud2lkdGg9ZDtlLmhlaWdodD1iO2EuZmlsbC5jb2xvcj1nLnZhbHVlKGMpO2M9Zy5oYSgpO2lmKGM8MSlhLmZpbGwub3BhY2l0eT1jfWVsc2UgdGhpcy5TYSgiYmdDb2xvciIpfSx1YzpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5HLmooKSxiPXRoaXMuby5tKCk7YT1hJiZhLmltYWdlczt2YXIgYyxnLGQsZSxmO2lmKGEpe3RoaXMudWIoKTtnPWIuZztkPWIuZTtmb3IoZj1hLmxlbmd0aDtmLS07KXtiPWFbZl07Yz10aGlzLm5hKCJiZ0ltYWdlIitmLCJmaWxsIix0aGlzLnUoKSwyKTtjLnN0cm9rZWQ9CmZhbHNlO2MuZmlsbC50eXBlPSJ0aWxlIjtjLmZpbGxjb2xvcj0ibm9uZSI7Yy5jb29yZHNpemU9ZyoyKyIsIitkKjI7Yy5jb29yZG9yaWdpbj0iMSwxIjtjLnBhdGg9dGhpcy5rYSgwLDIpO2U9Yy5zdHlsZTtlLndpZHRoPWc7ZS5oZWlnaHQ9ZDtpZihiLnR5cGU9PT0ibGluZWFyLWdyYWRpZW50Iil0aGlzLmdjKGMsYik7ZWxzZXtjLmZpbGwuc3JjPWIudXJsO3RoaXMuSmMoYyxmKX19fWZvcihmPWE/YS5sZW5ndGg6MDt0aGlzLlNhKCJiZ0ltYWdlIitmKyspOyk7fSxKYzpmdW5jdGlvbihhLGIpe2gubi5JYihhLmZpbGwuc3JjLGZ1bmN0aW9uKGMpe3ZhciBnPWEuZmlsbCxkPXRoaXMuZCxlPXRoaXMuby5tKCksZj1lLmc7ZT1lLmU7dmFyIGk9dGhpcy5oLGo9aS5ILmooKSxrPWomJmouaGI7aj1rP2sudC5hKGQpOjA7dmFyIG09az9rLnIuYShkKTowLGw9az9rLmIuYShkKTowO2s9az9rLmwuYShkKTowO2k9aS5HLmooKS5pbWFnZXNbYl07ZD1pLnBvc2l0aW9uP2kucG9zaXRpb24uY29vcmRzKGQsCmYtYy5nLWstbSxlLWMuZS1qLWwpOnt4OjAseTowfTtpPWkucmVwZWF0O2w9bT0wO3ZhciB1PWYrMSxuPWUrMSxxPWguRD09PTg/MDoxO2s9TWF0aC5yb3VuZChkLngpK2srMC41O2o9TWF0aC5yb3VuZChkLnkpK2orMC41O2cucG9zaXRpb249ay9mKyIsIitqL2U7aWYoaSYmaSE9PSJyZXBlYXQiKXtpZihpPT09InJlcGVhdC14Inx8aT09PSJuby1yZXBlYXQiKXttPWorMTtuPWorYy5lK3F9aWYoaT09PSJyZXBlYXQteSJ8fGk9PT0ibm8tcmVwZWF0Iil7bD1rKzE7dT1rK2MuZytxfWEuc3R5bGUuY2xpcD0icmVjdCgiK20rInB4LCIrdSsicHgsIituKyJweCwiK2wrInB4KSJ9fSx0aGlzKX0sZ2M6ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKEEsQix5LEcsSCl7aWYoeT09PTB8fHk9PT0xODApcmV0dXJuW0csQl07ZWxzZSBpZih5PT09OTB8fHk9PT0yNzApcmV0dXJuW0EsSF07ZWxzZXt5PU1hdGgudGFuKC15KnUvMTgwKTtBPXkqQS1CO0I9LTEveTtHPUIqRy1IO0g9Qi15O3JldHVyblsoRy0KQSkvSCwoeSpHLUIqQSkvSF19fWZ1bmN0aW9uIGcoKXt4PW0+PTkwJiZtPDI3MD9qOjA7cj1tPDE4MD9rOjA7bz1qLXg7cz1rLXJ9ZnVuY3Rpb24gZCgpe2Zvcig7bTwwOyltKz0zNjA7bSU9MzYwfWZ1bmN0aW9uIGUoQSxCKXt2YXIgeT1CWzBdLUFbMF07QT1CWzFdLUFbMV07cmV0dXJuIE1hdGguYWJzKHk9PT0wP0E6QT09PTA/eTpNYXRoLnNxcnQoeSp5K0EqQSkpfXZhciBmPXRoaXMuZCxpPXRoaXMuby5tKCksaj1pLmcsaz1pLmU7YT1hLmZpbGw7dmFyIG09Yi5SYSxsPWIuVmE7Yj1iLlo7aT1iLmxlbmd0aDt2YXIgdT1NYXRoLlBJLG4scSx0LHYseCxyLG8scyxwLHosRSxDO2lmKGwpe2w9bC5jb29yZHMoZixqLGspO249bC54O3E9bC55fWlmKG0pe209bS5xYygpO2QoKTtnKCk7aWYoIWwpe249eDtxPXJ9bD1jKG4scSxtLG8scyk7dD1sWzBdO3Y9bFsxXX1lbHNlIGlmKGwpe3Q9ai1uO3Y9ay1xfWVsc2V7bj1xPXQ9MDt2PWt9bD10LW47cD12LXE7aWYobT09PXZvaWQgMCl7bT0hbD8KcDwwPzkwOjI3MDohcD9sPDA/MTgwOjA6LU1hdGguYXRhbjIocCxsKS91KjE4MDtkKCk7ZygpfWw9bSU5MD9NYXRoLmF0YW4yKGwqai9rLHApL3UqMTgwOm0rOTA7bCs9MTgwO2wlPTM2MDt6PWUoW24scV0sW3Qsdl0pO3Q9ZShbeCxyXSxjKHgscixtLG8scykpO3Y9W107cT1lKFtuLHFdLGMobixxLG0seCxyKSkvdCoxMDA7bj1bXTtmb3IocD0wO3A8aTtwKyspbi5wdXNoKGJbcF0ueWI/YltwXS55Yi5hKGYseik6cD09PTA/MDpwPT09aS0xP3o6bnVsbCk7Zm9yKHA9MTtwPGk7cCsrKXtpZihuW3BdPT09bnVsbCl7RT1uW3AtMV07ej1wO2RvIEM9blsrK3pdO3doaWxlKEM9PT1udWxsKTtuW3BdPUUrKEMtRSkvKHotcCsxKX1uW3BdPU1hdGgubWF4KG5bcF0sbltwLTFdKX1mb3IocD0wO3A8aTtwKyspdi5wdXNoKHErbltwXS90KjEwMCsiJSAiK2JbcF0uY29sb3IudmFsdWUoZikpO2EuYW5nbGU9bDthLnR5cGU9ImdyYWRpZW50IjthLm1ldGhvZD0ic2lnbWEiO2EuY29sb3I9YlswXS5jb2xvci52YWx1ZShmKTsKYS5jb2xvcjI9YltpLTFdLmNvbG9yLnZhbHVlKGYpO2EuY29sb3JzLnZhbHVlPXYuam9pbigiLCIpfSx1YjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZC5ydW50aW1lU3R5bGU7YS5iYWNrZ3JvdW5kSW1hZ2U9InVybChhYm91dDpibGFuaykiO2EuYmFja2dyb3VuZENvbG9yPSJ0cmFuc3BhcmVudCJ9LGs6ZnVuY3Rpb24oKXtoLkEuay5jYWxsKHRoaXMpO3ZhciBhPXRoaXMuZC5ydW50aW1lU3R5bGU7YS5iYWNrZ3JvdW5kSW1hZ2U9YS5iYWNrZ3JvdW5kQ29sb3I9IiJ9fSk7aC5QYj1oLkEuVih7Qjo0LHphOiJib3JkZXIiLGpjOntUQUJMRToxLElOUFVUOjEsVEVYVEFSRUE6MSxTRUxFQ1Q6MSxPUFRJT046MSxJTUc6MSxIUjoxLEZJRUxEU0VUOjF9LEVjOntzdWJtaXQ6MSxidXR0b246MSxyZXNldDoxfSxOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkguQygpfHxhLnMuQygpfSxmOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybihhLkwuZigpfHxhLnMuZigpfHxhLkcuZigpKSYmCmEuSC5mKCl9LFQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQsYj10aGlzLmguSC5qKCksYz10aGlzLm8ubSgpLGc9Yy5nO2M9Yy5lO3ZhciBkLGUsZixpLGo7aWYoYil7dGhpcy5DYygpO2I9dGhpcy53YygyKTtpPTA7Zm9yKGo9Yi5sZW5ndGg7aTxqO2krKyl7Zj1iW2ldO2Q9dGhpcy5uYSgiYm9yZGVyUGllY2UiK2ksZi5zdHJva2U/InN0cm9rZSI6ImZpbGwiLHRoaXMudSgpKTtkLmNvb3Jkc2l6ZT1nKjIrIiwiK2MqMjtkLmNvb3Jkb3JpZ2luPSIxLDEiO2QucGF0aD1mLnBhdGg7ZT1kLnN0eWxlO2Uud2lkdGg9ZztlLmhlaWdodD1jO2QuZmlsbGVkPSEhZi5maWxsO2Quc3Ryb2tlZD0hIWYuc3Ryb2tlO2lmKGYuc3Ryb2tlKXtkPWQuc3Ryb2tlO2Qud2VpZ2h0PWYuZ2IrInB4IjtkLmNvbG9yPWYuY29sb3IudmFsdWUoYSk7ZC5kYXNoc3R5bGU9Zi5zdHJva2U9PT0iZGFzaGVkIj8iMiAyIjpmLnN0cm9rZT09PSJkb3R0ZWQiPyIxIDEiOiJzb2xpZCI7ZC5saW5lc3R5bGU9Zi5zdHJva2U9PT0KImRvdWJsZSImJmYuZ2I+Mj8iVGhpblRoaW4iOiJTaW5nbGUifWVsc2UgZC5maWxsLmNvbG9yPWYuZmlsbC52YWx1ZShhKX1mb3IoO3RoaXMuU2EoImJvcmRlclBpZWNlIitpKyspOyk7fX0sQ2M6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQsYj1hLmN1cnJlbnRTdHlsZSxjPWEucnVudGltZVN0eWxlLGc9YS50YWdOYW1lLGQ9aC5EPT09NixlO2lmKGQmJmcgaW4gdGhpcy5qY3x8Zz09PSJCVVRUT04ifHxnPT09IklOUFVUIiYmYS50eXBlIGluIHRoaXMuRWMpe2MuYm9yZGVyV2lkdGg9IiI7Zz10aGlzLmguSC5CYjtmb3IoZT1nLmxlbmd0aDtlLS07KXtkPWdbZV07Y1sicGFkZGluZyIrZF09IiI7Y1sicGFkZGluZyIrZF09KG5ldyBoLmkoYlsicGFkZGluZyIrZF0pKS5hKGEpKyhuZXcgaC5pKGJbImJvcmRlciIrZCsiV2lkdGgiXSkpLmEoYSkrKCFoLkQ9PT04JiZlJTI/MTowKX1jLmJvcmRlcldpZHRoPTB9ZWxzZSBpZihkKXtpZihhLmNoaWxkTm9kZXMubGVuZ3RoIT09MXx8YS5maXJzdENoaWxkLnRhZ05hbWUhPT0KImllNi1tYXNrIil7Yj1kb2MuY3JlYXRlRWxlbWVudCgiaWU2LW1hc2siKTtnPWIuc3R5bGU7Zy52aXNpYmlsaXR5PSJ2aXNpYmxlIjtmb3IoZy56b29tPTE7Zz1hLmZpcnN0Q2hpbGQ7KWIuYXBwZW5kQ2hpbGQoZyk7YS5hcHBlbmRDaGlsZChiKTtjLnZpc2liaWxpdHk9ImhpZGRlbiJ9fWVsc2UgYy5ib3JkZXJDb2xvcj0idHJhbnNwYXJlbnQifSx3YzpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmQsYyxnLGQsZT10aGlzLmguSCxmPVtdLGksaixrLG0sbD1NYXRoLnJvdW5kLHUsbixxO2lmKGUuZigpKXtjPWUuaigpO2U9Yy5oYjtuPWMuUmM7cT1jLm1jO2lmKGMuV2MmJmMuU2MmJmMubmMpe2lmKHEudC5oYSgpPjApe2M9ZS50LmEoYik7az1jLzI7Zi5wdXNoKHtwYXRoOnRoaXMua2Eoe1A6ayxPOmssSzprLE06a30sYSksc3Ryb2tlOm4udCxjb2xvcjpxLnQsZ2I6Y30pfX1lbHNle2E9YXx8MTtjPXRoaXMuby5tKCk7Zz1jLmc7ZD1jLmU7Yz1sKGUudC5hKGIpKTtrPWwoZS5yLmEoYikpOwptPWwoZS5iLmEoYikpO2I9bChlLmwuYShiKSk7dmFyIHQ9e3Q6YyxyOmssYjptLGw6Yn07Yj10aGlzLmgucztpZihiLmYoKSl1PXRoaXMudGIoYi5qKCkpO2k9TWF0aC5mbG9vcjtqPU1hdGguY2VpbDt2YXIgdj1mdW5jdGlvbihvLHMpe3JldHVybiB1P3Vbb11bc106MH0seD1mdW5jdGlvbihvLHMscCx6LEUsQyl7dmFyIEE9digieCIsbyksQj12KCJ5IixvKSx5PW8uY2hhckF0KDEpPT09InIiO289by5jaGFyQXQoMCk9PT0iYiI7cmV0dXJuIEE+MCYmQj4wPyhDPyJhbCI6ImFlIikrKHk/aihnLUEpOmkoQSkpKmErIiwiKyhvP2ooZC1CKTppKEIpKSphKyIsIisoaShBKS1zKSphKyIsIisoaShCKS1wKSphKyIsIit6KjY1NTM1KyIsIisyOTQ5MDc1KihFPzE6LTEpOihDPyJtIjoibCIpKyh5P2ctczpzKSphKyIsIisobz9kLXA6cCkqYX0scj1mdW5jdGlvbihvLHMscCx6KXt2YXIgRT1vPT09InQiP2kodigieCIsInRsIikpKmErIiwiK2oocykqYTpvPT09InIiP2ooZy1zKSphKyIsIisKaSh2KCJ5IiwidHIiKSkqYTpvPT09ImIiP2ooZy12KCJ4IiwiYnIiKSkqYSsiLCIraShkLXMpKmE6aShzKSphKyIsIitqKGQtdigieSIsImJsIikpKmE7bz1vPT09InQiP2ooZy12KCJ4IiwidHIiKSkqYSsiLCIraihzKSphOm89PT0iciI/aihnLXMpKmErIiwiK2ooZC12KCJ5IiwiYnIiKSkqYTpvPT09ImIiP2kodigieCIsImJsIikpKmErIiwiK2koZC1zKSphOmkocykqYSsiLCIraSh2KCJ5IiwidGwiKSkqYTtyZXR1cm4gcD8oej8ibSIrbzoiIikrImwiK0U6KHo/Im0iK0U6IiIpKyJsIitvfTtiPWZ1bmN0aW9uKG8scyxwLHosRSxDKXt2YXIgQT1vPT09ImwifHxvPT09InIiLEI9dFtvXSx5LEc7aWYoQj4wJiZuW29dIT09Im5vbmUiJiZxW29dLmhhKCk+MCl7eT10W0E/bzpzXTtzPXRbQT9zOm9dO0c9dFtBP286cF07cD10W0E/cDpvXTtpZihuW29dPT09ImRhc2hlZCJ8fG5bb109PT0iZG90dGVkIil7Zi5wdXNoKHtwYXRoOngoeix5LHMsQys0NSwwLDEpK3goeiwwLDAsQywxLDApLApmaWxsOnFbb119KTtmLnB1c2goe3BhdGg6cihvLEIvMiwwLDEpLHN0cm9rZTpuW29dLGdiOkIsY29sb3I6cVtvXX0pO2YucHVzaCh7cGF0aDp4KEUsRyxwLEMsMCwxKSt4KEUsMCwwLEMtNDUsMSwwKSxmaWxsOnFbb119KX1lbHNlIGYucHVzaCh7cGF0aDp4KHoseSxzLEMrNDUsMCwxKStyKG8sQiwwLDApK3goRSxHLHAsQywwLDApKyhuW29dPT09ImRvdWJsZSImJkI+Mj94KEUsRy1pKEcvMykscC1pKHAvMyksQy00NSwxLDApK3IobyxqKEIvMyoyKSwxLDApK3goeix5LWkoeS8zKSxzLWkocy8zKSxDLDEsMCkrInggIit4KHosaSh5LzMpLGkocy8zKSxDKzQ1LDAsMSkrcihvLGkoQi8zKSwxLDApK3goRSxpKEcvMyksaShwLzMpLEMsMCwwKToiIikreChFLDAsMCxDLTQ1LDEsMCkrcihvLDAsMSwwKSt4KHosMCwwLEMsMSwwKSxmaWxsOnFbb119KX19O2IoInQiLCJsIiwiciIsInRsIiwidHIiLDkwKTtiKCJyIiwidCIsImIiLCJ0ciIsImJyIiwwKTtiKCJiIiwiciIsImwiLCJiciIsImJsIiwKLTkwKTtiKCJsIiwiYiIsInQiLCJibCIsInRsIiwtMTgwKX19cmV0dXJuIGZ9LGs6ZnVuY3Rpb24oKXtoLkEuay5jYWxsKHRoaXMpO3RoaXMuZC5ydW50aW1lU3R5bGUuYm9yZGVyQ29sb3I9IiJ9fSk7aC5OYj1oLkEuVih7Qjo1LEljOlsidCIsInRyIiwiciIsImJyIiwiYiIsImJsIiwibCIsInRsIiwiYyJdLE46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oLkwuQygpfSxmOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaC5MLmYoKX0sVDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5MLmooKSxiPXRoaXMuby5tKCk7dGhpcy51KCk7dmFyIGM9dGhpcy5kLGc9dGhpcy56YjtoLm4uSWIoYS5zcmMsZnVuY3Rpb24oZCl7ZnVuY3Rpb24gZSh4LHIsbyxzLHApe3g9Z1t4XS5zdHlsZTt4LndpZHRoPXI7eC5oZWlnaHQ9bzt4LmxlZnQ9czt4LnRvcD1wfWZ1bmN0aW9uIGYoeCxyLG8pe2Zvcih2YXIgcz0wLHA9eC5sZW5ndGg7czxwO3MrKylnW3hbc11dLmltYWdlZGF0YVtyXT1vfXZhciBpPWIuZyxqPQpiLmUsaz1hLndpZHRoLG09ay5QLmEoYyksbD1rLk8uYShjKSx1PWsuSy5hKGMpO2s9ay5NLmEoYyk7dmFyIG49YS5zbGljZSxxPW4uUC5hKGMpLHQ9bi5PLmEoYyksdj1uLksuYShjKTtuPW4uTS5hKGMpO2UoInRsIixrLG0sMCwwKTtlKCJ0IixpLWstbCxtLGssMCk7ZSgidHIiLGwsbSxpLWwsMCk7ZSgiciIsbCxqLW0tdSxpLWwsbSk7ZSgiYnIiLGwsdSxpLWwsai11KTtlKCJiIixpLWstbCx1LGssai11KTtlKCJibCIsayx1LDAsai11KTtlKCJsIixrLGotbS11LDAsbSk7ZSgiYyIsaS1rLWwsai1tLXUsayxtKTtmKFsidGwiLCJ0IiwidHIiXSwiY3JvcEJvdHRvbSIsKGQuZS1xKS9kLmUpO2YoWyJ0bCIsImwiLCJibCJdLCJjcm9wUmlnaHQiLChkLmctbikvZC5nKTtmKFsiYmwiLCJiIiwiYnIiXSwiY3JvcFRvcCIsKGQuZS12KS9kLmUpO2YoWyJ0ciIsInIiLCJiciJdLCJjcm9wTGVmdCIsKGQuZy10KS9kLmcpO2lmKGEucmVwZWF0LmViPT09InN0cmV0Y2giKXtmKFsibCIsInIiLCJjIl0sCiJjcm9wVG9wIixxL2QuZSk7ZihbImwiLCJyIiwiYyJdLCJjcm9wQm90dG9tIix2L2QuZSl9aWYoYS5yZXBlYXQuZT09PSJzdHJldGNoIil7ZihbInQiLCJiIiwiYyJdLCJjcm9wTGVmdCIsbi9kLmcpO2YoWyJ0IiwiYiIsImMiXSwiY3JvcFJpZ2h0Iix0L2QuZyl9Zy5jLnN0eWxlLmRpc3BsYXk9YS5maWxsPyIiOiJub25lIn0sdGhpcyl9LHU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnBhcmVudC5tYSh0aGlzLkIpLGIsYyxnLGQ9dGhpcy5JYyxlPWQubGVuZ3RoO2lmKCFhKXthPWRvYy5jcmVhdGVFbGVtZW50KCJib3JkZXItaW1hZ2UiKTtiPWEuc3R5bGU7Yi5wb3NpdGlvbj0iYWJzb2x1dGUiO3RoaXMuemI9e307Zm9yKGc9MDtnPGU7ZysrKXtjPXRoaXMuemJbZFtnXV09aC5uLkFhKCJyZWN0Iik7Yy5hcHBlbmRDaGlsZChoLm4uQWEoImltYWdlZGF0YSIpKTtiPWMuc3R5bGU7Yi5iZWhhdmlvcj0idXJsKCNkZWZhdWx0I1ZNTCkiO2IucG9zaXRpb249ImFic29sdXRlIjtiLnRvcD1iLmxlZnQ9CjA7Yy5pbWFnZWRhdGEuc3JjPXRoaXMuaC5MLmooKS5zcmM7Yy5zdHJva2VkPWZhbHNlO2MuZmlsbGVkPWZhbHNlO2EuYXBwZW5kQ2hpbGQoYyl9dGhpcy5wYXJlbnQuUWEodGhpcy5CLGEpfXJldHVybiBhfX0pO2guUmI9aC5BLlYoe0I6MSx6YToib3V0c2V0LWJveC1zaGFkb3ciLE46ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmg7cmV0dXJuIGEuUy5DKCl8fGEucy5DKCl9LGY6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmguUztyZXR1cm4gYS5mKCkmJmEuaigpLnBhWzBdfSxUOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh5LEcsSCx3LEQsRixJKXt5PWIubmEoInNoYWRvdyIreStHLCJmaWxsIixnLGYteSk7Rz15LmZpbGw7eS5jb29yZHNpemU9bSoyKyIsIitsKjI7eS5jb29yZG9yaWdpbj0iMSwxIjt5LnN0cm9rZWQ9ZmFsc2U7eS5maWxsZWQ9dHJ1ZTtHLmNvbG9yPUQudmFsdWUoYyk7aWYoRil7Ry50eXBlPSJncmFkaWVudHRpdGxlIjtHLmNvbG9yMj1HLmNvbG9yO0cub3BhY2l0eT0wfXkucGF0aD0KSTt2PXkuc3R5bGU7di5sZWZ0PUg7di50b3A9dzt2LndpZHRoPW07di5oZWlnaHQ9bDtyZXR1cm4geX12YXIgYj10aGlzLGM9dGhpcy5kLGc9dGhpcy51KCksZD10aGlzLmgsZT1kLlMuaigpLnBhO2Q9ZC5zLmooKTt2YXIgZj1lLmxlbmd0aCxpPWYsaixrPXRoaXMuby5tKCksbT1rLmcsbD1rLmU7az1oLkQ9PT04PzE6MDtmb3IodmFyIHU9WyJ0bCIsInRyIiwiYnIiLCJibCJdLG4scSx0LHYseCxyLG8scyxwLHosRSxDLEEsQjtpLS07KXtxPWVbaV07eD1xLlhjLmEoYyk7cj1xLlljLmEoYyk7aj1xLlBjLmEoYyk7bz1xLmJsdXIuYShjKTtxPXEuY29sb3I7cz0tai1vO2lmKCFkJiZvKWQ9aC5JYS5KYjtzPXRoaXMua2Eoe1A6cyxPOnMsSzpzLE06c30sMixkKTtpZihvKXtwPShqK28pKjIrbTt6PShqK28pKjIrbDtFPW8qMi9wO0M9byoyL3o7aWYoby1qPm0vMnx8by1qPmwvMilmb3Ioaj00O2otLTspe249dVtqXTtBPW4uY2hhckF0KDApPT09ImIiO0I9bi5jaGFyQXQoMSk9PT0iciI7Cm49YShpLG4seCxyLHEsbyxzKTt0PW4uZmlsbDt0LmZvY3VzcG9zaXRpb249KEI/MS1FOkUpKyIsIisoQT8xLUM6Qyk7dC5mb2N1c3NpemU9IjAsMCI7bi5zdHlsZS5jbGlwPSJyZWN0KCIrKChBP3ovMjowKStrKSsicHgsIisoQj9wOnAvMikrInB4LCIrKEE/ejp6LzIpKyJweCwiKygoQj9wLzI6MCkraykrInB4KSJ9ZWxzZXtuPWEoaSwiIix4LHIscSxvLHMpO3Q9bi5maWxsO3QuZm9jdXNwb3NpdGlvbj1FKyIsIitDO3QuZm9jdXNzaXplPTEtRSoyKyIsIisoMS1DKjIpfX1lbHNle249YShpLCIiLHgscixxLG8scyk7eD1xLmhhKCk7aWYoeDwxKW4uZmlsbC5vcGFjaXR5PXh9fX19KTtoLlViPWguQS5WKHtCOjYsemE6ImltZ0VsIixOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiB0aGlzLmQuc3JjIT09dGhpcy5hY3x8YS5zLkMoKX0sZjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaDtyZXR1cm4gYS5zLmYoKXx8YS5HLnhiKCl9LFQ6ZnVuY3Rpb24oKXt0aGlzLmFjPWY7dGhpcy5CYygpOwp2YXIgYT10aGlzLm5hKCJpbWciLCJmaWxsIix0aGlzLnUoKSksYj1hLmZpbGwsYz10aGlzLm8ubSgpLGc9Yy5nO2M9Yy5lO3ZhciBkPXRoaXMuaC5ILmooKTtkPWQmJmQuaGI7dmFyIGU9dGhpcy5kLGY9ZS5zcmMsaT1NYXRoLnJvdW5kO2Euc3Ryb2tlZD1mYWxzZTtiLnR5cGU9ImZyYW1lIjtiLnNyYz1mO2IucG9zaXRpb249KGc/MC41L2c6MCkrIiwiKyhjPzAuNS9jOjApO2EuY29vcmRzaXplPWcqMisiLCIrYyoyO2EuY29vcmRvcmlnaW49IjEsMSI7YS5wYXRoPXRoaXMua2EoZD97UDppKGQudC5hKGUpKSxPOmkoZC5yLmEoZSkpLEs6aShkLmIuYShlKSksTTppKGQubC5hKGUpKX06MCwyKTthPWEuc3R5bGU7YS53aWR0aD1nO2EuaGVpZ2h0PWN9LEJjOmZ1bmN0aW9uKCl7dGhpcy5kLnJ1bnRpbWVTdHlsZS5maWx0ZXI9ImFscGhhKG9wYWNpdHk9MCkifSxrOmZ1bmN0aW9uKCl7aC5BLmsuY2FsbCh0aGlzKTt0aGlzLmQucnVudGltZVN0eWxlLmZpbHRlcj0iIn19KTtoLkthPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShmKXtmdW5jdGlvbiBpKCl7aWYoIUIpe3ZhciB3LApELEY9Zi5jdXJyZW50U3R5bGUuZ2V0QXR0cmlidXRlKGMpPT09InRydWUiO2lmKCFBKXtBPTE7Zi5ydW50aW1lU3R5bGUuem9vbT0xO2Zvcih2YXIgST1mLE09MTtJPUkucHJldmlvdXNTaWJsaW5nOylpZihJLm5vZGVUeXBlPT09MSl7TT0wO2JyZWFrfWlmKE0pZi5jbGFzc05hbWUrPSIgIitoLkphKyJmaXJzdC1jaGlsZCJ9cC5EYSgpO2lmKEYmJihEPXAubSgpKSYmKHc9ZG9jLmRvY3VtZW50RWxlbWVudHx8ZG9jLmJvZHkpJiYoRC55PncuY2xpZW50SGVpZ2h0fHxELng+dy5jbGllbnRXaWR0aHx8RC55K0QuZTwwfHxELngrRC5nPDApKXtpZighRyl7Rz0xO2guTWEuWChpKX19ZWxzZXtCPTE7Rz1BPTA7aC5NYS5HYShpKTt6PXtHOm5ldyBoLk1iKGYpLEg6bmV3IGguUWIoZiksTDpuZXcgaC5PYihmKSxzOm5ldyBoLklhKGYpLFM6bmV3IGguU2IoZiksZmI6bmV3IGguWGIoZil9O0U9W3ouRyx6Lkgsei5MLHoucyx6LlMsei5mYl07dz1uZXcgaC5WYihmLHAseik7RD1bbmV3IGguUmIoZiwKcCx6LHcpLG5ldyBoLkxiKGYscCx6LHcpLG5ldyBoLlBiKGYscCx6LHcpLG5ldyBoLk5iKGYscCx6LHcpXTtmLnRhZ05hbWU9PT0iSU1HIiYmRC5wdXNoKG5ldyBoLlViKGYscCx6LHcpKTt3LmljPUQ7cz1bd10uY29uY2F0KEQpO2lmKHc9Zi5jdXJyZW50U3R5bGUuZ2V0QXR0cmlidXRlKGguSSsid2F0Y2gtYW5jZXN0b3JzIikpe0M9W107dz1wYXJzZUludCh3LDEwKTtEPTA7Zm9yKEY9Zi5wYXJlbnROb2RlO0YmJih3PT09Ik5hTiJ8fEQrKzx3KTspe0MucHVzaChGKTtGLmF0dGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIix0KTtGLmF0dGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO0YuYXR0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSk7Rj1GLnBhcmVudE5vZGV9fWguV2E9PT04JiZoLkxhLlgoayk7aygxKX1pZigheSl7eT0xO2YuYXR0YWNoRXZlbnQoIm9ubW92ZSIsaik7Zi5hdHRhY2hFdmVudCgib25yZXNpemUiLGopO2YuYXR0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLAptKTtmLmF0dGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO2YuYXR0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSk7aC50YS5YKGopO2guRi5YKHIpfXAuRmEoKX19ZnVuY3Rpb24gaigpe3AmJnAuemMoKSYmaygpfWZ1bmN0aW9uIGsodyl7aWYoIUgpaWYoQil7dmFyIEQsRjt2KCk7aWYod3x8cC5LYygpKXtEPTA7Zm9yKEY9cy5sZW5ndGg7RDxGO0QrKylzW0RdLmRiKCl9aWYod3x8cC5OYygpKXtEPTA7Zm9yKEY9cy5sZW5ndGg7RDxGO0QrKylzW0RdLkViKCl9eCgpfWVsc2UgQXx8aSgpfWZ1bmN0aW9uIG0oKXt2YXIgdyxELEY7dz1ldmVudDtpZighSCYmISh3JiZ3LnByb3BlcnR5TmFtZSBpbiBlKSlpZihCKXt2KCk7dz0wO2ZvcihEPXMubGVuZ3RoO3c8RDt3Kyspe0Y9c1t3XTtGLlphfHxGLmRiKCk7Ri5OKCkmJkYuRGIoKX14KCl9ZWxzZSBBfHxpKCl9ZnVuY3Rpb24gbCgpe2lmKGYpZi5jbGFzc05hbWUrPWd9ZnVuY3Rpb24gdSgpe2lmKGYpZi5jbGFzc05hbWU9Zi5jbGFzc05hbWUucmVwbGFjZShkLAoiIil9ZnVuY3Rpb24gbigpe3NldFRpbWVvdXQobCwwKX1mdW5jdGlvbiBxKCl7c2V0VGltZW91dCh1LDApfWZ1bmN0aW9uIHQoKXt2YXIgdz1ldmVudC5wcm9wZXJ0eU5hbWU7aWYodz09PSJjbGFzc05hbWUifHx3PT09ImlkIiltKCl9ZnVuY3Rpb24gdigpe3AuRGEoKTtmb3IodmFyIHc9RS5sZW5ndGg7dy0tOylFW3ddLkRhKCl9ZnVuY3Rpb24geCgpe2Zvcih2YXIgdz1FLmxlbmd0aDt3LS07KUVbd10uRmEoKTtwLkZhKCl9ZnVuY3Rpb24gcigpe2lmKHkpe2lmKEMpZm9yKHZhciB3PTAsRD1DLmxlbmd0aCxGO3c8RDt3Kyspe0Y9Q1t3XTtGLmRldGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIix0KTtGLmRldGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO0YuZGV0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSl9Zi5kZXRhY2hFdmVudCgib25tb3ZlIixrKTtmLmRldGFjaEV2ZW50KCJvbnJlc2l6ZSIsayk7Zi5kZXRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsbSk7Zi5kZXRhY2hFdmVudCgib25tb3VzZWVudGVyIiwKbik7Zi5kZXRhY2hFdmVudCgib25tb3VzZWxlYXZlIixxKTtoLkYuR2Eocik7eT0wfX1mdW5jdGlvbiBvKCl7aWYoIUgpe3ZhciB3LEQ7cigpO0g9MTtpZihzKXt3PTA7Zm9yKEQ9cy5sZW5ndGg7dzxEO3crKylzW3ddLmsoKX1oLldhPT09OCYmaC5MYS5HYShrKTtoLnRhLkdhKGspO3M9cD16PUU9Qz1mPW51bGx9fXZhciBzLHA9bmV3IEsoZikseixFLEMsQSxCLHksRyxIO3RoaXMuRGM9aTt0aGlzLnVwZGF0ZT1rO3RoaXMuaz1vO3RoaXMudmM9Zn12YXIgYj17fSxjPWguSSsibGF6eS1pbml0IixnPSIgIitoLkphKyJob3ZlciIsZD1uZXcgUmVnRXhwKCJcXGIiK2guSmErImhvdmVyXFxiIiwiZyIpLGU9e2JhY2tncm91bmQ6MSxiZ0NvbG9yOjEsZGlzcGxheToxfTthLnhjPWZ1bmN0aW9uKGYpe3ZhciBpPWgubi5vYShmKTtyZXR1cm4gYltpXXx8KGJbaV09bmV3IGEoZikpfTthLms9ZnVuY3Rpb24oZil7Zj1oLm4ub2EoZik7dmFyIGk9YltmXTtpZihpKXtpLmsoKTtkZWxldGUgYltmXX19OwphLnJjPWZ1bmN0aW9uKCl7dmFyIGY9W10saTtpZihiKXtmb3IodmFyIGogaW4gYilpZihiLmhhc093blByb3BlcnR5KGopKXtpPWJbal07Zi5wdXNoKGkudmMpO2kuaygpfWI9e319cmV0dXJuIGZ9O3JldHVybiBhfSgpO2guYXR0YWNoPWZ1bmN0aW9uKGEpe2guRDw5JiZoLkthLnhjKGEpLkRjKCl9O2guZGV0YWNoPWZ1bmN0aW9uKGEpe2guS2EuayhhKX19Owp2YXIgTD13aW5kb3cuUElFLE49ZWxlbWVudDtmdW5jdGlvbiBpbml0KCl7ZG9jLm1lZGlhIT09InByaW50IiYmTC5hdHRhY2goTil9ZnVuY3Rpb24gY2xlYW51cCgpe0wuZGV0YWNoKE4pO0w9Tj0wfU4ucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSImJmluaXQoKTsKPC9zY3JpcHQ+CjwvUFVCTElDOkNPTVBPTkVOVD4K);}.search-input {width: 170px;height: 24px;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAIAAAC0rgCNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjRGNjRGNzBCQkU4MzExRTBBOTQwRkUyODE3QzRCNzMwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjRGNjRGNzBDQkU4MzExRTBBOTQwRkUyODE3QzRCNzMwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEY2NEY3MDlCRTgzMTFFMEE5NDBGRTI4MTdDNEI3MzAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEY2NEY3MEFCRTgzMTFFMEE5NDBGRTI4MTdDNEI3MzAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5YdbmAAAAAMklEQVR42mI6fPgwEz8/P5OAgAATDw8PEycnJxMbGxsTCDAwMJCN////z/Tnzx+AAAMAMv8JH6uhGCwAAAAASUVORK5CYII=) repeat-x;border-top: 1px solid #7a7a7a;border-right: 1px solid #ca9796;border-bottom: 1px solid #cccccc;border-left: 1px solid #999999;-moz-border-radius:6px; -webkit-border-radius: 6px; border-radius: 6px; behavior: url(data:image/htc;base64,PCEtLQpQSUU6IENTUzMgcmVuZGVyaW5nIGZvciBJRQpWZXJzaW9uIDEuMGJldGEzCmh0dHA6Ly9jc3MzcGllLmNvbQpEdWFsLWxpY2Vuc2VkIGZvciB1c2UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wIG9yIHRoZSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMi4KLS0+CjwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwMTQpYWJvdXQ6aW50ZXJuZXQgLS0+CjxQVUJMSUM6Q09NUE9ORU5UIGxpZ2h0V2VpZ2h0PSJ0cnVlIj4KPFBVQkxJQzpBVFRBQ0ggRVZFTlQ9Im9uY29udGVudHJlYWR5IiBGT1I9ImVsZW1lbnQiIE9ORVZFTlQ9ImluaXQoKSIgLz4KPFBVQkxJQzpBVFRBQ0ggRVZFTlQ9Im9uZG9jdW1lbnRyZWFkeSIgRk9SPSJlbGVtZW50IiBPTkVWRU5UPSJpbml0KCkiIC8+CjxQVUJMSUM6QVRUQUNIIEVWRU5UPSJvbmRldGFjaCIgRk9SPSJlbGVtZW50IiBPTkVWRU5UPSJjbGVhbnVwKCkiIC8+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBkb2MgPSBlbGVtZW50LmRvY3VtZW50O3ZhciBoPXdpbmRvdy5QSUU7CmlmKCFoKXtoPXdpbmRvdy5QSUU9e0k6Ii1waWUtIixOYToiUGllIixKYToicGllXyIsQ2I6e1REOjEsVEg6MX19O3RyeXtkb2MuZXhlY0NvbW1hbmQoIkJhY2tncm91bmRJbWFnZUNhY2hlIixmYWxzZSx0cnVlKX1jYXRjaChKKXt9aC5EPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPTQsYj1kb2MuY3JlYXRlRWxlbWVudCgiZGl2IiksYz1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpIik7Yi5pbm5lckhUTUw9IjwhLS1baWYgZ3QgSUUgIisgKythKyJdPjxpPjwvaT48IVtlbmRpZl0tLVw+IixjWzBdOyk7cmV0dXJuIGF9KCk7aWYoaC5EPT09NiloLkk9aC5JLnJlcGxhY2UoL14tLywiIik7aC5XYT1oLkQ9PT04JiZkb2MuZG9jdW1lbnRNb2RlO2gubj17QWE6ZnVuY3Rpb24oYSl7dmFyIGI9aC5mYztpZighYil7Yj1oLmZjPWRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yi5uYW1lc3BhY2VzLmFkZCgiY3NzM3ZtbCIsInVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIil9cmV0dXJuIGIuY3JlYXRlRWxlbWVudCgiY3NzM3ZtbDoiK2EpfSwKb2E6ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEuX3BpZUlkfHwoYS5fcGllSWQ9K25ldyBEYXRlK01hdGgucmFuZG9tKCkpfSwkYTpmdW5jdGlvbihhKXt2YXIgYixjLGcsZCxlPWFyZ3VtZW50cztiPTE7Zm9yKGM9ZS5sZW5ndGg7YjxjO2IrKyl7ZD1lW2JdO2ZvcihnIGluIGQpaWYoZC5oYXNPd25Qcm9wZXJ0eShnKSlhW2ddPWRbZ119cmV0dXJuIGF9LEliOmZ1bmN0aW9uKGEsYixjKXt2YXIgZz1oLlpifHwoaC5aYj17fSksZD1nW2FdLGU7aWYoZCliLmNhbGwoYyxkKTtlbHNle2U9bmV3IEltYWdlO2Uub25sb2FkPWZ1bmN0aW9uKCl7ZD1nW2FdPXtnOmUud2lkdGgsZTplLmhlaWdodH07Yi5jYWxsKGMsZCk7ZS5vbmxvYWQ9bnVsbH07ZS5zcmM9YX19fTtoLmVhPWZ1bmN0aW9uKCl7dGhpcy5iYj1bXTt0aGlzLndiPXt9fTtoLmVhLnByb3RvdHlwZT17WDpmdW5jdGlvbihhKXt2YXIgYj1oLm4ub2EoYSksYz10aGlzLndiLGc9dGhpcy5iYjtpZighKGIgaW4gYykpe2NbYl09Zy5sZW5ndGg7CmcucHVzaChhKX19LEdhOmZ1bmN0aW9uKGEpe2E9aC5uLm9hKGEpO3ZhciBiPXRoaXMud2I7aWYoYSYmYSBpbiBiKXtkZWxldGUgdGhpcy5iYltiW2FdXTtkZWxldGUgYlthXX19LENhOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMuYmIsYj1hLmxlbmd0aDtiLS07KWFbYl0mJmFbYl0oKX19O2lmKGguV2E9PT04KXtoLkxhPW5ldyBoLmVhO3NldEludGVydmFsKGZ1bmN0aW9uKCl7aC5MYS5DYSgpfSwyNTApfWguRj1uZXcgaC5lYTt3aW5kb3cuYXR0YWNoRXZlbnQoIm9uYmVmb3JldW5sb2FkIixmdW5jdGlvbigpe2guRi5DYSgpfSk7aC5GLnlhPWZ1bmN0aW9uKGEsYixjKXthLmF0dGFjaEV2ZW50KGIsYyk7dGhpcy5YKGZ1bmN0aW9uKCl7YS5kZXRhY2hFdmVudChiLGMpfSl9OyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtoLnRhLkNhKCl9aC50YT1uZXcgaC5lYTtoLkYueWEod2luZG93LCJvbnJlc2l6ZSIsYSl9KSgpOyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtoLk1hLkNhKCl9aC5NYT0KbmV3IGguZWE7aC5GLnlhKHdpbmRvdywib25zY3JvbGwiLGEpO2gudGEuWChhKX0pKCk7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2M9aC5LYS5yYygpfWZ1bmN0aW9uIGIoKXtpZihjKXtmb3IodmFyIGc9MCxkPWMubGVuZ3RoO2c8ZDtnKyspaC5hdHRhY2goY1tnXSk7Yz0wfX12YXIgYztoLkYueWEod2luZG93LCJvbmJlZm9yZXByaW50IixhKTtoLkYueWEod2luZG93LCJvbmFmdGVycHJpbnQiLGIpfSkoKTtoLmk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGUpe3RoaXMudz1lfXZhciBiPWRvYy5jcmVhdGVFbGVtZW50KCJsZW5ndGgtY2FsYyIpLGM9Yi5zdHlsZSxnPXt9LGQ9e307Yy5wb3NpdGlvbj0iYWJzb2x1dGUiO2MudG9wPWMubGVmdD0tOTk5OTthLnByb3RvdHlwZT17Y2I6LyhweHxlbXxleHxtbXxjbXxpbnxwdHxwY3wlKSQvLHJiOmZ1bmN0aW9uKCl7dmFyIGU9Z1t0aGlzLnddO2lmKGU9PT12b2lkIDApZT1nW3RoaXMud109cGFyc2VGbG9hdCh0aGlzLncpO3JldHVybiBlfSwKVWE6ZnVuY3Rpb24oKXt2YXIgZT1kW3RoaXMud107aWYoIWUpe2U9dGhpcy53Lm1hdGNoKHRoaXMuY2IpO2U9ZFt0aGlzLnddPWUmJmVbMF18fCJweCJ9cmV0dXJuIGV9LGE6ZnVuY3Rpb24oZSxmKXt2YXIgaT10aGlzLnJiKCksaj10aGlzLlVhKCk7c3dpdGNoKGope2Nhc2UgInB4IjpyZXR1cm4gaTtjYXNlICIlIjpyZXR1cm4gaSoodHlwZW9mIGY9PT0iZnVuY3Rpb24iP2YoKTpmKS8xMDA7Y2FzZSAiZW0iOnJldHVybiBpKnRoaXMucGIoZSk7Y2FzZSAiZXgiOnJldHVybiBpKnRoaXMucGIoZSkvMjtkZWZhdWx0OnJldHVybiBpKmEub2Nbal19fSxwYjpmdW5jdGlvbihlKXt2YXIgZj1lLmN1cnJlbnRTdHlsZS5mb250U2l6ZTtpZihmLmluZGV4T2YoInB4Iik+MClyZXR1cm4gcGFyc2VGbG9hdChmKTtlbHNle2Iuc3R5bGUud2lkdGg9IjFlbSI7ZS5hcHBlbmRDaGlsZChiKTtmPWIub2Zmc2V0V2lkdGg7Yi5wYXJlbnROb2RlIT09ZSYmZS5yZW1vdmVDaGlsZChiKTtyZXR1cm4gZn19fTsKYS5vYz1mdW5jdGlvbigpe3ZhciBlPVsibW0iLCJjbSIsImluIiwicHQiLCJwYyJdLGY9e30saT1kb2MuZG9jdW1lbnRFbGVtZW50LGo9ZS5sZW5ndGgsaztmb3IoaS5hcHBlbmRDaGlsZChiKTtqLS07KXtrPWVbal07Yi5zdHlsZS53aWR0aD0iMTAwIitrO2Zba109Yi5vZmZzZXRXaWR0aC8xMDB9aS5yZW1vdmVDaGlsZChiKTtyZXR1cm4gZn0oKTthLmxiPW5ldyBhKCIwIik7cmV0dXJuIGF9KCk7aC5IYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoZCl7dGhpcy5RPWR9dmFyIGI9bmV3IGguaSgiNTAlIiksYz17dG9wOjEsY2VudGVyOjEsYm90dG9tOjF9LGc9e2xlZnQ6MSxjZW50ZXI6MSxyaWdodDoxfTthLnByb3RvdHlwZT17eWM6ZnVuY3Rpb24oKXtpZighdGhpcy5vYil7dmFyIGQ9dGhpcy5RLGU9ZC5sZW5ndGgsZj1oLmkubGIsaT1oLnEuZmEuYmE7Zj1bImxlZnQiLGYsInRvcCIsZl07aWYoZT09PTEpe2QucHVzaCh7dHlwZTppLHZhbHVlOiJjZW50ZXIifSk7ZSsrfWlmKGU9PT0yKXtpJgooZFswXS50eXBlfGRbMV0udHlwZSkmJmRbMF0udmFsdWUgaW4gYyYmZFsxXS52YWx1ZSBpbiBnJiZkLnB1c2goZC5zaGlmdCgpKTtpZihkWzBdLnR5cGUmaSlpZihkWzBdLnZhbHVlPT09ImNlbnRlciIpZlsxXT1iO2Vsc2UgZlswXT1kWzBdLnZhbHVlO2Vsc2UgaWYoZFswXS5VKCkpZlsxXT1uZXcgaC5pKGRbMF0udmFsdWUpO2lmKGRbMV0udHlwZSZpKWlmKGRbMV0udmFsdWU9PT0iY2VudGVyIilmWzNdPWI7ZWxzZSBmWzJdPWRbMV0udmFsdWU7ZWxzZSBpZihkWzFdLlUoKSlmWzNdPW5ldyBoLmkoZFsxXS52YWx1ZSl9dGhpcy5vYj1mfXJldHVybiB0aGlzLm9ifSxjb29yZHM6ZnVuY3Rpb24oZCxlLGYpe3ZhciBpPXRoaXMueWMoKSxqPWlbMV0uYShkLGUpO2Q9aVszXS5hKGQsZik7cmV0dXJue3g6aVswXT09PSJyaWdodCI/ZS1qOmoseTppWzJdPT09ImJvdHRvbSI/Zi1kOmR9fX07cmV0dXJuIGF9KCk7aC5LYj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7dGhpcy53PWJ9YS5wcm90b3R5cGU9CntjYjovW2Etel0rJC9pLFVhOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWN8fCh0aGlzLmVjPXRoaXMudy5tYXRjaCh0aGlzLmNiKVswXS50b0xvd2VyQ2FzZSgpKX0scWM6ZnVuY3Rpb24oKXt2YXIgYj10aGlzLlliLGM7aWYoYj09PXVuZGVmaW5lZCl7Yj10aGlzLlVhKCk7Yz1wYXJzZUZsb2F0KHRoaXMudywxMCk7Yj10aGlzLlliPWI9PT0iZGVnIj9jOmI9PT0icmFkIj9jL01hdGguUEkqMTgwOmI9PT0iZ3JhZCI/Yy80MDAqMzYwOmI9PT0idHVybiI/YyozNjA6MH1yZXR1cm4gYn19O3JldHVybiBhfSgpO2guUj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7dGhpcy53PWJ9YS5NYz0vXHMqcmdiYVwoXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSlccyosXHMqKFxkK3xcZCpcLlxkKylccypcKVxzKi87YS5hYj17YWxpY2VibHVlOiIjRjBGOEZGIixhbnRpcXVld2hpdGU6IiNGQUVCRDciLGFxdWE6IiMwMEZGRkYiLGFxdWFtYXJpbmU6IiM3RkZGRDQiLAphenVyZToiI0YwRkZGRiIsYmVpZ2U6IiNGNUY1REMiLGJpc3F1ZToiI0ZGRTRDNCIsYmxhY2s6IiMwMDAwMDAiLGJsYW5jaGVkYWxtb25kOiIjRkZFQkNEIixibHVlOiIjMDAwMEZGIixibHVldmlvbGV0OiIjOEEyQkUyIixicm93bjoiI0E1MkEyQSIsYnVybHl3b29kOiIjREVCODg3IixjYWRldGJsdWU6IiM1RjlFQTAiLGNoYXJ0cmV1c2U6IiM3RkZGMDAiLGNob2NvbGF0ZToiI0QyNjkxRSIsY29yYWw6IiNGRjdGNTAiLGNvcm5mbG93ZXJibHVlOiIjNjQ5NUVEIixjb3Juc2lsazoiI0ZGRjhEQyIsY3JpbXNvbjoiI0RDMTQzQyIsY3lhbjoiIzAwRkZGRiIsZGFya2JsdWU6IiMwMDAwOEIiLGRhcmtjeWFuOiIjMDA4QjhCIixkYXJrZ29sZGVucm9kOiIjQjg4NjBCIixkYXJrZ3JheToiI0E5QTlBOSIsZGFya2dyZWVuOiIjMDA2NDAwIixkYXJra2hha2k6IiNCREI3NkIiLGRhcmttYWdlbnRhOiIjOEIwMDhCIixkYXJrb2xpdmVncmVlbjoiIzU1NkIyRiIsZGFya29yYW5nZToiI0ZGOEMwMCIsCmRhcmtvcmNoaWQ6IiM5OTMyQ0MiLGRhcmtyZWQ6IiM4QjAwMDAiLGRhcmtzYWxtb246IiNFOTk2N0EiLGRhcmtzZWFncmVlbjoiIzhGQkM4RiIsZGFya3NsYXRlYmx1ZToiIzQ4M0Q4QiIsZGFya3NsYXRlZ3JheToiIzJGNEY0RiIsZGFya3R1cnF1b2lzZToiIzAwQ0VEMSIsZGFya3Zpb2xldDoiIzk0MDBEMyIsZGVlcHBpbms6IiNGRjE0OTMiLGRlZXBza3libHVlOiIjMDBCRkZGIixkaW1ncmF5OiIjNjk2OTY5Iixkb2RnZXJibHVlOiIjMUU5MEZGIixmaXJlYnJpY2s6IiNCMjIyMjIiLGZsb3JhbHdoaXRlOiIjRkZGQUYwIixmb3Jlc3RncmVlbjoiIzIyOEIyMiIsZnVjaHNpYToiI0ZGMDBGRiIsZ2FpbnNib3JvOiIjRENEQ0RDIixnaG9zdHdoaXRlOiIjRjhGOEZGIixnb2xkOiIjRkZENzAwIixnb2xkZW5yb2Q6IiNEQUE1MjAiLGdyYXk6IiM4MDgwODAiLGdyZWVuOiIjMDA4MDAwIixncmVlbnllbGxvdzoiI0FERkYyRiIsaG9uZXlkZXc6IiNGMEZGRjAiLGhvdHBpbms6IiNGRjY5QjQiLAppbmRpYW5yZWQ6IiNDRDVDNUMiLGluZGlnbzoiIzRCMDA4MiIsaXZvcnk6IiNGRkZGRjAiLGtoYWtpOiIjRjBFNjhDIixsYXZlbmRlcjoiI0U2RTZGQSIsbGF2ZW5kZXJibHVzaDoiI0ZGRjBGNSIsbGF3bmdyZWVuOiIjN0NGQzAwIixsZW1vbmNoaWZmb246IiNGRkZBQ0QiLGxpZ2h0Ymx1ZToiI0FERDhFNiIsbGlnaHRjb3JhbDoiI0YwODA4MCIsbGlnaHRjeWFuOiIjRTBGRkZGIixsaWdodGdvbGRlbnJvZHllbGxvdzoiI0ZBRkFEMiIsbGlnaHRncmVlbjoiIzkwRUU5MCIsbGlnaHRncmV5OiIjRDNEM0QzIixsaWdodHBpbms6IiNGRkI2QzEiLGxpZ2h0c2FsbW9uOiIjRkZBMDdBIixsaWdodHNlYWdyZWVuOiIjMjBCMkFBIixsaWdodHNreWJsdWU6IiM4N0NFRkEiLGxpZ2h0c2xhdGVncmF5OiIjNzc4ODk5IixsaWdodHN0ZWVsYmx1ZToiI0IwQzRERSIsbGlnaHR5ZWxsb3c6IiNGRkZGRTAiLGxpbWU6IiMwMEZGMDAiLGxpbWVncmVlbjoiIzMyQ0QzMiIsbGluZW46IiNGQUYwRTYiLG1hZ2VudGE6IiNGRjAwRkYiLAptYXJvb246IiM4MDAwMDAiLG1lZGl1bWF1cWFtYXJpbmU6IiM2NkNEQUEiLG1lZGl1bWJsdWU6IiMwMDAwQ0QiLG1lZGl1bW9yY2hpZDoiI0JBNTVEMyIsbWVkaXVtcHVycGxlOiIjOTM3MEQ4IixtZWRpdW1zZWFncmVlbjoiIzNDQjM3MSIsbWVkaXVtc2xhdGVibHVlOiIjN0I2OEVFIixtZWRpdW1zcHJpbmdncmVlbjoiIzAwRkE5QSIsbWVkaXVtdHVycXVvaXNlOiIjNDhEMUNDIixtZWRpdW12aW9sZXRyZWQ6IiNDNzE1ODUiLG1pZG5pZ2h0Ymx1ZToiIzE5MTk3MCIsbWludGNyZWFtOiIjRjVGRkZBIixtaXN0eXJvc2U6IiNGRkU0RTEiLG1vY2Nhc2luOiIjRkZFNEI1IixuYXZham93aGl0ZToiI0ZGREVBRCIsbmF2eToiIzAwMDA4MCIsb2xkbGFjZToiI0ZERjVFNiIsb2xpdmU6IiM4MDgwMDAiLG9saXZlZHJhYjoiIzY4OEUyMyIsb3JhbmdlOiIjRkZBNTAwIixvcmFuZ2VyZWQ6IiNGRjQ1MDAiLG9yY2hpZDoiI0RBNzBENiIscGFsZWdvbGRlbnJvZDoiI0VFRThBQSIscGFsZWdyZWVuOiIjOThGQjk4IiwKcGFsZXR1cnF1b2lzZToiI0FGRUVFRSIscGFsZXZpb2xldHJlZDoiI0Q4NzA5MyIscGFwYXlhd2hpcDoiI0ZGRUZENSIscGVhY2hwdWZmOiIjRkZEQUI5IixwZXJ1OiIjQ0Q4NTNGIixwaW5rOiIjRkZDMENCIixwbHVtOiIjRERBMEREIixwb3dkZXJibHVlOiIjQjBFMEU2IixwdXJwbGU6IiM4MDAwODAiLHJlZDoiI0ZGMDAwMCIscm9zeWJyb3duOiIjQkM4RjhGIixyb3lhbGJsdWU6IiM0MTY5RTEiLHNhZGRsZWJyb3duOiIjOEI0NTEzIixzYWxtb246IiNGQTgwNzIiLHNhbmR5YnJvd246IiNGNEE0NjAiLHNlYWdyZWVuOiIjMkU4QjU3IixzZWFzaGVsbDoiI0ZGRjVFRSIsc2llbm5hOiIjQTA1MjJEIixzaWx2ZXI6IiNDMEMwQzAiLHNreWJsdWU6IiM4N0NFRUIiLHNsYXRlYmx1ZToiIzZBNUFDRCIsc2xhdGVncmF5OiIjNzA4MDkwIixzbm93OiIjRkZGQUZBIixzcHJpbmdncmVlbjoiIzAwRkY3RiIsc3RlZWxibHVlOiIjNDY4MkI0Iix0YW46IiNEMkI0OEMiLHRlYWw6IiMwMDgwODAiLAp0aGlzdGxlOiIjRDhCRkQ4Iix0b21hdG86IiNGRjYzNDciLHR1cnF1b2lzZToiIzQwRTBEMCIsdmlvbGV0OiIjRUU4MkVFIix3aGVhdDoiI0Y1REVCMyIsd2hpdGU6IiNGRkZGRkYiLHdoaXRlc21va2U6IiNGNUY1RjUiLHllbGxvdzoiI0ZGRkYwMCIseWVsbG93Z3JlZW46IiM5QUNEMzIifTthLnByb3RvdHlwZT17cGFyc2U6ZnVuY3Rpb24oKXtpZighdGhpcy53YSl7dmFyIGI9dGhpcy53LGM7aWYoYz1iLm1hdGNoKGEuTWMpKXt0aGlzLndhPSJyZ2IoIitjWzFdKyIsIitjWzJdKyIsIitjWzNdKyIpIjt0aGlzLm1iPXBhcnNlRmxvYXQoY1s0XSl9ZWxzZXtpZigoYz1iLnRvTG93ZXJDYXNlKCkpaW4gYS5hYiliPWEuYWJbY107dGhpcy53YT1iO3RoaXMubWI9Yj09PSJ0cmFuc3BhcmVudCI/MDoxfX19LHZhbHVlOmZ1bmN0aW9uKGIpe3RoaXMucGFyc2UoKTtyZXR1cm4gdGhpcy53YT09PSJjdXJyZW50Q29sb3IiP2IuY3VycmVudFN0eWxlLmNvbG9yOnRoaXMud2F9LGhhOmZ1bmN0aW9uKCl7dGhpcy5wYXJzZSgpOwpyZXR1cm4gdGhpcy5tYn19O3JldHVybiBhfSgpO2gucT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYyl7dGhpcy5CYT1jO3RoaXMuY2g9MDt0aGlzLlE9W107dGhpcy5yYT0wfXZhciBiPWEuZmE9e3NhOjEsaWI6MixhYTo0LFRiOjgsamI6MTYsYmE6MzIsejo2NCxjYToxMjgsZGE6MjU2LHVhOjUxMixXYjoxMDI0LFVSTDoyMDQ4fTthLmtiPWZ1bmN0aW9uKGMsZyl7dGhpcy50eXBlPWM7dGhpcy52YWx1ZT1nfTthLmtiLnByb3RvdHlwZT17WWE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlJmIuenx8dGhpcy50eXBlJmIuY2EmJnRoaXMudmFsdWU9PT0iMCJ9LFU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ZYSgpfHx0aGlzLnR5cGUmYi51YX19O2EucHJvdG90eXBlPXtWYzovXHMvLEdjOi9eW1wrXC1dPyhcZCpcLik/XGQrLyx1cmw6L151cmxcKFxzKigiKFteIl0qKSJ8JyhbXiddKiknfChbISMkJSYqLX5dKikpXHMqXCkvaSx2YjovXlwtP1tfYS16XVtcdy1dKi9pLFFjOi9eKCIoW14iXSopInwnKFteJ10qKScpLywKQWM6L14jKFtcZGEtZl17Nn18W1xkYS1mXXszfSkvaSxUYzp7cHg6Yi56LGVtOmIueixleDpiLnosbW06Yi56LGNtOmIueiwiaW4iOmIueixwdDpiLnoscGM6Yi56LGRlZzpiLnNhLHJhZDpiLnNhLGdyYWQ6Yi5zYX0sbGM6e3JnYjoxLHJnYmE6MSxoc2w6MSxoc2xhOjF9LG5leHQ6ZnVuY3Rpb24oYyl7ZnVuY3Rpb24gZyh1LG4pe3U9bmV3IGEua2IodSxuKTtpZighYyl7ay5RLnB1c2godSk7ay5yYSsrfXJldHVybiB1fWZ1bmN0aW9uIGQoKXtrLnJhKys7cmV0dXJuIG51bGx9dmFyIGUsZixpLGosaz10aGlzO2lmKHRoaXMucmE8dGhpcy5RLmxlbmd0aClyZXR1cm4gdGhpcy5RW3RoaXMucmErK107Zm9yKDt0aGlzLlZjLnRlc3QodGhpcy5CYS5jaGFyQXQodGhpcy5jaCkpOyl0aGlzLmNoKys7aWYodGhpcy5jaD49dGhpcy5CYS5sZW5ndGgpcmV0dXJuIGQoKTtmPXRoaXMuY2g7ZT10aGlzLkJhLnN1YnN0cmluZyh0aGlzLmNoKTtpPWUuY2hhckF0KDApO3N3aXRjaChpKXtjYXNlICIjIjppZihqPQplLm1hdGNoKHRoaXMuQWMpKXt0aGlzLmNoKz1qWzBdLmxlbmd0aDtyZXR1cm4gZyhiLmFhLGpbMF0pfWJyZWFrO2Nhc2UgJyInOmNhc2UgIiciOmlmKGo9ZS5tYXRjaCh0aGlzLlFjKSl7dGhpcy5jaCs9alswXS5sZW5ndGg7cmV0dXJuIGcoYi5XYixqWzJdfHxqWzNdfHwiIil9YnJlYWs7Y2FzZSAiLyI6Y2FzZSAiLCI6dGhpcy5jaCsrO3JldHVybiBnKGIuZGEsaSk7Y2FzZSAidSI6aWYoaj1lLm1hdGNoKHRoaXMudXJsKSl7dGhpcy5jaCs9alswXS5sZW5ndGg7cmV0dXJuIGcoYi5VUkwsalsyXXx8alszXXx8als0XXx8IiIpfX1pZihqPWUubWF0Y2godGhpcy5HYykpe2k9alswXTt0aGlzLmNoKz1pLmxlbmd0aDtpZihlLmNoYXJBdChpLmxlbmd0aCk9PT0iJSIpe3RoaXMuY2grKztyZXR1cm4gZyhiLnVhLGkrIiUiKX1pZihqPWUuc3Vic3RyaW5nKGkubGVuZ3RoKS5tYXRjaCh0aGlzLnZiKSl7aSs9alswXTt0aGlzLmNoKz1qWzBdLmxlbmd0aDtyZXR1cm4gZyh0aGlzLlRjW2pbMF0udG9Mb3dlckNhc2UoKV18fApiLlRiLGkpfXJldHVybiBnKGIuY2EsaSl9aWYoaj1lLm1hdGNoKHRoaXMudmIpKXtpPWpbMF07dGhpcy5jaCs9aS5sZW5ndGg7aWYoaS50b0xvd2VyQ2FzZSgpaW4gaC5SLmFifHxpPT09ImN1cnJlbnRDb2xvciIpcmV0dXJuIGcoYi5hYSxpKTtpZihlLmNoYXJBdChpLmxlbmd0aCk9PT0iKCIpe3RoaXMuY2grKztpZihpLnRvTG93ZXJDYXNlKClpbiB0aGlzLmxjKXtlPWZ1bmN0aW9uKHUpe3JldHVybiB1JiZ1LnR5cGUmYi5jYX07aj1mdW5jdGlvbih1KXtyZXR1cm4gdSYmdS50eXBlJihiLmNhfGIudWEpfTt2YXIgbT1mdW5jdGlvbih1LG4pe3JldHVybiB1JiZ1LnZhbHVlPT09bn0sbD1mdW5jdGlvbigpe3JldHVybiBrLm5leHQoMSl9O2lmKChpLmNoYXJBdCgwKT09PSJyIj9qKGwoKSk6ZShsKCkpKSYmbShsKCksIiwiKSYmaihsKCkpJiZtKGwoKSwiLCIpJiZqKGwoKSkmJihpPT09InJnYiJ8fGk9PT0iaHNhInx8bShsKCksIiwiKSYmZShsKCkpKSYmbShsKCksIikiKSlyZXR1cm4gZyhiLmFhLAp0aGlzLkJhLnN1YnN0cmluZyhmLHRoaXMuY2gpKTtyZXR1cm4gZCgpfXJldHVybiBnKGIuamIsaSsiKCIpfXJldHVybiBnKGIuYmEsaSl9dGhpcy5jaCsrO3JldHVybiBnKGIuaWIsaSl9LHY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RW3RoaXMucmEtLSAtMl19LGFsbDpmdW5jdGlvbigpe2Zvcig7dGhpcy5uZXh0KCk7KTtyZXR1cm4gdGhpcy5RfSwkOmZ1bmN0aW9uKGMsZyl7Zm9yKHZhciBkPVtdLGUsZjtlPXRoaXMubmV4dCgpOyl7aWYoYyhlKSl7Zj10cnVlO3RoaXMudigpO2JyZWFrfWQucHVzaChlKX1yZXR1cm4gZyYmIWY/bnVsbDpkfX07cmV0dXJuIGF9KCk7dmFyIEs9ZnVuY3Rpb24oYSl7dGhpcy5kPWF9O0sucHJvdG90eXBlPXtKOjAsS2M6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLk9hLGI7cmV0dXJuIWF8fChiPXRoaXMubSgpKSYmKGEueCE9PWIueHx8YS55IT09Yi55KX0sTmM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLk9hLGI7cmV0dXJuIWF8fChiPXRoaXMubSgpKSYmKGEuZyE9PQpiLmd8fGEuZSE9PWIuZSl9LHFiOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt4OmEubGVmdCx5OmEudG9wLGc6YS5yaWdodC1hLmxlZnQsZTphLmJvdHRvbS1hLnRvcH19LG06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5KP3RoaXMueGF8fCh0aGlzLnhhPXRoaXMucWIoKSk6dGhpcy5xYigpfSx6YzpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5PYX0sRGE6ZnVuY3Rpb24oKXsrK3RoaXMuSn0sRmE6ZnVuY3Rpb24oKXtpZighLS10aGlzLkope2lmKHRoaXMueGEpdGhpcy5PYT10aGlzLnhhO3RoaXMueGE9bnVsbH19fTsoZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIpe3ZhciBjPWgubi5vYShiKTtyZXR1cm4gZnVuY3Rpb24oKXtpZih0aGlzLkope3ZhciBnPXRoaXMubmJ8fCh0aGlzLm5iPXt9KTtyZXR1cm4gYyBpbiBnP2dbY106KGdbY109Yi5jYWxsKHRoaXMpKX1lbHNlIHJldHVybiBiLmNhbGwodGhpcyl9fWgucD17SjowLFc6ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYyhnKXt0aGlzLmQ9Cmd9aC5uLiRhKGMucHJvdG90eXBlLGgucCxiKTtjLmRjPXt9O3JldHVybiBjfSxqOmZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5sYSgpLGM9dGhpcy5jb25zdHJ1Y3Rvci5kYztyZXR1cm4gYj9iIGluIGM/Y1tiXTooY1tiXT10aGlzLlkoYikpOm51bGx9LGxhOmEoZnVuY3Rpb24oKXt2YXIgYj10aGlzLmQsYz10aGlzLmNvbnN0cnVjdG9yLGc9Yi5zdHlsZTtiPWIuY3VycmVudFN0eWxlO3ZhciBkPXRoaXMuamEsZT10aGlzLnFhLGY9Yy5iY3x8KGMuYmM9aC5JK2QpO2M9Yy5jY3x8KGMuY2M9aC5OYStlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc3Vic3RyaW5nKDEpKTtyZXR1cm4gZ1tjXXx8Yi5nZXRBdHRyaWJ1dGUoZil8fGdbZV18fGIuZ2V0QXR0cmlidXRlKGQpfSksZjphKGZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmooKX0pLEM6YShmdW5jdGlvbigpe3ZhciBiPXRoaXMubGEoKSxjPWIhPT10aGlzLiRiO3RoaXMuJGI9YjtyZXR1cm4gY30pLGlhOmEsRGE6ZnVuY3Rpb24oKXsrK3RoaXMuSn0sCkZhOmZ1bmN0aW9uKCl7LS10aGlzLkp8fGRlbGV0ZSB0aGlzLm5ifX19KSgpO2guTWI9aC5wLlcoe2phOmguSSsiYmFja2dyb3VuZCIscWE6aC5OYSsiQmFja2dyb3VuZCIsaGM6e3Njcm9sbDoxLGZpeGVkOjEsbG9jYWw6MX0sRWE6eyJyZXBlYXQteCI6MSwicmVwZWF0LXkiOjEscmVwZWF0OjEsIm5vLXJlcGVhdCI6MX0sSGM6eyJwYWRkaW5nLWJveCI6MSwiYm9yZGVyLWJveCI6MSwiY29udGVudC1ib3giOjF9LGtjOnsicGFkZGluZy1ib3giOjEsImJvcmRlci1ib3giOjF9LExjOnt0b3A6MSxyaWdodDoxLGJvdHRvbToxLGxlZnQ6MSxjZW50ZXI6MX0sT2M6e2NvbnRhaW46MSxjb3ZlcjoxfSxZOmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIodil7cmV0dXJuIHYuVSgpfHx2LnR5cGUmaiYmdi52YWx1ZSBpbiB1fWZ1bmN0aW9uIGModil7cmV0dXJuIHYuVSgpJiZuZXcgaC5pKHYudmFsdWUpfHx2LnZhbHVlPT09ImF1dG8iJiYiYXV0byJ9dmFyIGc9dGhpcy5kLmN1cnJlbnRTdHlsZSxkLAplLGY9aC5xLmZhLGk9Zi5kYSxqPWYuYmEsaz1mLmFhLG0sbCx1PXRoaXMuTGMsbixxLHQ9bnVsbDtpZih0aGlzLlRhKCkpe2E9bmV3IGgucShhKTt0PXtpbWFnZXM6W119O2ZvcihlPXt9O2Q9YS5uZXh0KCk7KXttPWQudHlwZTtsPWQudmFsdWU7aWYoIWUudHlwZSYmbSZmLmpiJiZsPT09ImxpbmVhci1ncmFkaWVudCgiKXtuPXtaOltdLHR5cGU6ImxpbmVhci1ncmFkaWVudCJ9O2ZvcihxPXt9O2Q9YS5uZXh0KCk7KXttPWQudHlwZTtsPWQudmFsdWU7aWYobSZmLmliJiZsPT09IikiKXtxLmNvbG9yJiZuLloucHVzaChxKTtuLloubGVuZ3RoPjEmJmgubi4kYShlLG4pO2JyZWFrfWlmKG0mayl7aWYobi5SYXx8bi5WYSl7ZD1hLnYoKTtpZihkLnR5cGUhPT1pKWJyZWFrO2EubmV4dCgpfXE9e2NvbG9yOm5ldyBoLlIobCl9O2Q9YS5uZXh0KCk7aWYoZC5VKCkpcS55Yj1uZXcgaC5pKGQudmFsdWUpO2Vsc2UgYS52KCl9ZWxzZSBpZihtJmYuc2EmJiFuLlJhJiYhcS5jb2xvciYmIW4uWi5sZW5ndGgpbi5SYT0KbmV3IGguS2IoZC52YWx1ZSk7ZWxzZSBpZihiKGQpJiYhbi5WYSYmIXEuY29sb3ImJiFuLloubGVuZ3RoKXthLnYoKTtuLlZhPW5ldyBoLkhhKGEuJChmdW5jdGlvbih2KXtyZXR1cm4hYih2KX0sZmFsc2UpKX1lbHNlIGlmKG0maSYmbD09PSIsIil7aWYocS5jb2xvcil7bi5aLnB1c2gocSk7cT17fX19ZWxzZSBicmVha319ZWxzZSBpZighZS50eXBlJiZtJmYuVVJMKXtlLnVybD1sO2UudHlwZT0iaW1hZ2UifWVsc2UgaWYoYihkKSYmIWUuc2l6ZSl7YS52KCk7ZS5wb3NpdGlvbj1uZXcgaC5IYShhLiQoZnVuY3Rpb24odil7cmV0dXJuIWIodil9LGZhbHNlKSl9ZWxzZSBpZihtJmopaWYobCBpbiB0aGlzLkVhKWUucmVwZWF0PWw7ZWxzZSBpZihsIGluIHRoaXMuSGMpe2Uub3JpZ2luPWw7aWYobCBpbiB0aGlzLmtjKWUuY2xpcD1sfWVsc2V7aWYobCBpbiB0aGlzLmhjKWUuWmM9bH1lbHNlIGlmKG0mayYmIXQuY29sb3IpdC5jb2xvcj1uZXcgaC5SKGwpO2Vsc2UgaWYobSZpKWlmKGw9PT0KIi8iKXtkPWEubmV4dCgpO209ZC50eXBlO2w9ZC52YWx1ZTtpZihtJmomJmwgaW4gdGhpcy5PYyllLnNpemU9bDtlbHNlIGlmKGw9YyhkKSllLnNpemU9e2c6bCxlOmMoYS5uZXh0KCkpfHxhLnYoKSYmbH19ZWxzZXtpZihsPT09IiwiJiZlLnR5cGUpe3QuaW1hZ2VzLnB1c2goZSk7ZT17fX19ZWxzZSByZXR1cm4gbnVsbH1lLnR5cGUmJnQuaW1hZ2VzLnB1c2goZSl9ZWxzZSB0aGlzLkdiKGZ1bmN0aW9uKCl7dmFyIHY9Zy5iYWNrZ3JvdW5kUG9zaXRpb25YLHg9Zy5iYWNrZ3JvdW5kUG9zaXRpb25ZLHI9Zy5iYWNrZ3JvdW5kSW1hZ2Usbz1nLmJhY2tncm91bmRDb2xvcjt0PXt9O2lmKG8hPT0idHJhbnNwYXJlbnQiKXQuY29sb3I9bmV3IGguUihvKTtpZihyIT09Im5vbmUiKXQuaW1hZ2VzPVt7dHlwZToiaW1hZ2UiLHVybDoobmV3IGgucShyKSkubmV4dCgpLnZhbHVlLHJlcGVhdDpnLmJhY2tncm91bmRSZXBlYXQscG9zaXRpb246bmV3IGguSGEoKG5ldyBoLnEodisiICIreCkpLmFsbCgpKX1dfSk7CnJldHVybiB0JiYodC5jb2xvcnx8dC5pbWFnZXMmJnQuaW1hZ2VzWzBdKT90Om51bGx9LEdiOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZC5ydW50aW1lU3R5bGUsYz1iLmJhY2tncm91bmRJbWFnZSxnPWIuYmFja2dyb3VuZENvbG9yO2lmKGMpYi5iYWNrZ3JvdW5kSW1hZ2U9IiI7aWYoZyliLmJhY2tncm91bmRDb2xvcj0iIjthPWEuY2FsbCh0aGlzKTtpZihjKWIuYmFja2dyb3VuZEltYWdlPWM7aWYoZyliLmJhY2tncm91bmRDb2xvcj1nO3JldHVybiBhfSxsYTpoLnAuaWEoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5UYSgpfHx0aGlzLkdiKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kLmN1cnJlbnRTdHlsZTtyZXR1cm4gYS5iYWNrZ3JvdW5kQ29sb3IrIiAiK2EuYmFja2dyb3VuZEltYWdlKyIgIithLmJhY2tncm91bmRSZXBlYXQrIiAiK2EuYmFja2dyb3VuZFBvc2l0aW9uWCsiICIrYS5iYWNrZ3JvdW5kUG9zaXRpb25ZfSl9KSxUYTpoLnAuaWEoZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQ7CnJldHVybiBhLnN0eWxlW3RoaXMucWFdfHxhLmN1cnJlbnRTdHlsZS5nZXRBdHRyaWJ1dGUodGhpcy5qYSl9KSx4YjpmdW5jdGlvbigpe3ZhciBhPTA7aWYoaC5EPDcpe2E9dGhpcy5kO2E9IiIrKGEuc3R5bGVbaC5OYSsiUG5nRml4Il18fGEuY3VycmVudFN0eWxlLmdldEF0dHJpYnV0ZShoLkkrInBuZy1maXgiKSk9PT0idHJ1ZSJ9cmV0dXJuIGF9LGY6aC5wLmlhKGZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuVGEoKXx8dGhpcy54YigpKSYmISF0aGlzLmooKX0pfSk7aC5RYj1oLnAuVyh7QmI6WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxGYzp7YmQ6IjFweCIsJGM6IjNweCIsYWQ6IjVweCJ9LFk6ZnVuY3Rpb24oKXt2YXIgYT17fSxiPXt9LGM9e30sZz1mYWxzZSxkPXRydWUsZT10cnVlLGY9dHJ1ZTt0aGlzLkhiKGZ1bmN0aW9uKCl7Zm9yKHZhciBpPXRoaXMuZC5jdXJyZW50U3R5bGUsaj0wLGssbSxsLHUsbixxLHQ7ajw0O2orKyl7bD10aGlzLkJiW2pdO3Q9bC5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTsKaz1iW3RdPWlbImJvcmRlciIrbCsiU3R5bGUiXTttPWlbImJvcmRlciIrbCsiQ29sb3IiXTtsPWlbImJvcmRlciIrbCsiV2lkdGgiXTtpZihqPjApe2lmKGshPT11KWU9ZmFsc2U7aWYobSE9PW4pZD1mYWxzZTtpZihsIT09cSlmPWZhbHNlfXU9aztuPW07cT1sO2NbdF09bmV3IGguUihtKTtsPWFbdF09bmV3IGguaShiW3RdPT09Im5vbmUiPyIwIjp0aGlzLkZjW2xdfHxsKTtpZihsLmEodGhpcy5kKT4wKWc9dHJ1ZX19KTtyZXR1cm4gZz97aGI6YSxSYzpiLG1jOmMsV2M6ZixuYzpkLFNjOmV9Om51bGx9LGxhOmgucC5pYShmdW5jdGlvbigpe3ZhciBhPXRoaXMuZCxiPWEuY3VycmVudFN0eWxlLGM7YS50YWdOYW1lIGluIGguQ2ImJmEub2Zmc2V0UGFyZW50LmN1cnJlbnRTdHlsZS5ib3JkZXJDb2xsYXBzZT09PSJjb2xsYXBzZSJ8fHRoaXMuSGIoZnVuY3Rpb24oKXtjPWIuYm9yZGVyV2lkdGgrInwiK2IuYm9yZGVyU3R5bGUrInwiK2IuYm9yZGVyQ29sb3J9KTtyZXR1cm4gY30pLEhiOmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLmQucnVudGltZVN0eWxlLGM9Yi5ib3JkZXJXaWR0aCxnPWIuYm9yZGVyQ29sb3I7aWYoYyliLmJvcmRlcldpZHRoPSIiO2lmKGcpYi5ib3JkZXJDb2xvcj0iIjthPWEuY2FsbCh0aGlzKTtpZihjKWIuYm9yZGVyV2lkdGg9YztpZihnKWIuYm9yZGVyQ29sb3I9ZztyZXR1cm4gYX19KTsoZnVuY3Rpb24oKXtoLklhPWgucC5XKHtqYToiYm9yZGVyLXJhZGl1cyIscWE6ImJvcmRlclJhZGl1cyIsWTpmdW5jdGlvbihiKXt2YXIgYz1udWxsLGcsZCxlLGYsaT1mYWxzZTtpZihiKXtkPW5ldyBoLnEoYik7dmFyIGo9ZnVuY3Rpb24oKXtmb3IodmFyIGs9W10sbTsoZT1kLm5leHQoKSkmJmUuVSgpOyl7Zj1uZXcgaC5pKGUudmFsdWUpO209Zi5yYigpO2lmKG08MClyZXR1cm4gbnVsbDtpZihtPjApaT10cnVlO2sucHVzaChmKX1yZXR1cm4gay5sZW5ndGg+MCYmay5sZW5ndGg8NT97dGw6a1swXSx0cjprWzFdfHxrWzBdLGJyOmtbMl18fGtbMF0sYmw6a1szXXx8a1sxXXx8a1swXX06bnVsbH07CmlmKGI9aigpKXtpZihlKXtpZihlLnR5cGUmaC5xLmZhLmRhJiZlLnZhbHVlPT09Ii8iKWc9aigpfWVsc2UgZz1iO2lmKGkmJmImJmcpYz17eDpiLHk6Z319fXJldHVybiBjfX0pO3ZhciBhPWguaS5sYjthPXt0bDphLHRyOmEsYnI6YSxibDphfTtoLklhLkpiPXt4OmEseTphfX0pKCk7aC5PYj1oLnAuVyh7amE6ImJvcmRlci1pbWFnZSIscWE6ImJvcmRlckltYWdlIixFYTp7c3RyZXRjaDoxLHJvdW5kOjEscmVwZWF0OjEsc3BhY2U6MX0sWTpmdW5jdGlvbihhKXt2YXIgYj1udWxsLGMsZyxkLGUsZixpLGo9MCxrLG09aC5xLmZhLGw9bS5iYSx1PW0uY2Esbj1tLnoscT1tLnVhO2lmKGEpe2M9bmV3IGgucShhKTtiPXt9O2Zvcih2YXIgdD1mdW5jdGlvbihyKXtyZXR1cm4gciYmci50eXBlJm0uZGEmJnIudmFsdWU9PT0iLyJ9LHY9ZnVuY3Rpb24ocil7cmV0dXJuIHImJnIudHlwZSZsJiZyLnZhbHVlPT09ImZpbGwifSx4PWZ1bmN0aW9uKCl7ZT1jLiQoZnVuY3Rpb24ocil7cmV0dXJuIShyLnR5cGUmCih1fHEpKX0pO2lmKHYoYy5uZXh0KCkpJiYhYi5maWxsKWIuZmlsbD10cnVlO2Vsc2UgYy52KCk7aWYodChjLm5leHQoKSkpe2orKztmPWMuJChmdW5jdGlvbigpe3JldHVybiEoZy50eXBlJih1fHF8bikpJiYhKGcudHlwZSZsJiZnLnZhbHVlPT09ImF1dG8iKX0pO2lmKHQoYy5uZXh0KCkpKXtqKys7aT1jLiQoZnVuY3Rpb24oKXtyZXR1cm4hKGcudHlwZSYodXxuKSl9KX19ZWxzZSBjLnYoKX07Zz1jLm5leHQoKTspe2E9Zy50eXBlO2Q9Zy52YWx1ZTtpZihhJih1fHEpJiYhZSl7Yy52KCk7eCgpfWVsc2UgaWYodihnKSYmIWIuZmlsbCl7Yi5maWxsPXRydWU7eCgpfWVsc2UgaWYoYSZsJiZ0aGlzLkVhW2RdJiYhYi5yZXBlYXQpe2IucmVwZWF0PXtlOmR9O2lmKGc9Yy5uZXh0KCkpaWYoZy50eXBlJmwmJnRoaXMuRWFbZy52YWx1ZV0pYi5yZXBlYXQuZWI9Zy52YWx1ZTtlbHNlIGMudigpfWVsc2UgaWYoYSZtLlVSTCYmIWIuc3JjKWIuc3JjPWQ7ZWxzZSByZXR1cm4gbnVsbH1pZighYi5zcmN8fAohZXx8ZS5sZW5ndGg8MXx8ZS5sZW5ndGg+NHx8ZiYmZi5sZW5ndGg+NHx8aj09PTEmJmYubGVuZ3RoPDF8fGkmJmkubGVuZ3RoPjR8fGo9PT0yJiZpLmxlbmd0aDwxKXJldHVybiBudWxsO2lmKCFiLnJlcGVhdCliLnJlcGVhdD17ZToic3RyZXRjaCJ9O2lmKCFiLnJlcGVhdC5lYiliLnJlcGVhdC5lYj1iLnJlcGVhdC5lO2E9ZnVuY3Rpb24ocixvKXtyZXR1cm57UDpvKHJbMF0pLE86byhyWzFdfHxyWzBdKSxLOm8oclsyXXx8clswXSksTTpvKHJbM118fHJbMV18fHJbMF0pfX07Yi5zbGljZT1hKGUsZnVuY3Rpb24ocil7cmV0dXJuIG5ldyBoLmkoci50eXBlJnU/ci52YWx1ZSsicHgiOnIudmFsdWUpfSk7Yi53aWR0aD1mJiZmLmxlbmd0aD4wP2EoZixmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlJihufHEpP25ldyBoLmkoci52YWx1ZSk6ci52YWx1ZX0pOihrPXRoaXMuZC5jdXJyZW50U3R5bGUpJiZ7UDpuZXcgaC5pKGsuYm9yZGVyVG9wV2lkdGgpLE86bmV3IGguaShrLmJvcmRlclJpZ2h0V2lkdGgpLApLOm5ldyBoLmkoay5ib3JkZXJCb3R0b21XaWR0aCksTTpuZXcgaC5pKGsuYm9yZGVyTGVmdFdpZHRoKX07Yi5wYT1hKGl8fFswXSxmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlJm4/bmV3IGguaShyLnZhbHVlKTpyLnZhbHVlfSl9cmV0dXJuIGJ9fSk7aC5TYj1oLnAuVyh7amE6ImJveC1zaGFkb3ciLHFhOiJib3hTaGFkb3ciLFk6ZnVuY3Rpb24oYSl7dmFyIGIsYz1oLmksZz1oLnEuZmEsZDtpZihhKXtkPW5ldyBoLnEoYSk7Yj17cGE6W10sWGE6W119O2ZvcihhPWZ1bmN0aW9uKCl7Zm9yKHZhciBlLGYsaSxqLGssbTtlPWQubmV4dCgpOyl7aT1lLnZhbHVlO2Y9ZS50eXBlO2lmKGYmZy5kYSYmaT09PSIsIilicmVhaztlbHNlIGlmKGUuWWEoKSYmIWspe2QudigpO2s9ZC4kKGZ1bmN0aW9uKGwpe3JldHVybiFsLllhKCl9KX1lbHNlIGlmKGYmZy5hYSYmIWopaj1pO2Vsc2UgaWYoZiZnLmJhJiZpPT09Imluc2V0IiYmIW0pbT10cnVlO2Vsc2UgcmV0dXJuIGZhbHNlfWU9ayYmay5sZW5ndGg7CmlmKGU+MSYmZTw1KXsobT9iLlhhOmIucGEpLnB1c2goe1hjOm5ldyBjKGtbMF0udmFsdWUpLFljOm5ldyBjKGtbMV0udmFsdWUpLGJsdXI6bmV3IGMoa1syXT9rWzJdLnZhbHVlOiIwIiksUGM6bmV3IGMoa1szXT9rWzNdLnZhbHVlOiIwIiksY29sb3I6bmV3IGguUihqfHwiY3VycmVudENvbG9yIil9KTtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9O2EoKTspO31yZXR1cm4gYiYmKGIuWGEubGVuZ3RofHxiLnBhLmxlbmd0aCk/YjpudWxsfX0pO2guWGI9aC5wLlcoe2xhOmgucC5pYShmdW5jdGlvbigpe3ZhciBhPXRoaXMuZC5jdXJyZW50U3R5bGU7cmV0dXJuIGEudmlzaWJpbGl0eSsifCIrYS5kaXNwbGF5fSksWTpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZCxiPWEucnVudGltZVN0eWxlO2E9YS5jdXJyZW50U3R5bGU7dmFyIGM9Yi52aXNpYmlsaXR5LGc7Yi52aXNpYmlsaXR5PSIiO2c9YS52aXNpYmlsaXR5O2IudmlzaWJpbGl0eT1jO3JldHVybntVYzpnIT09ImhpZGRlbiIsc2M6YS5kaXNwbGF5IT09CiJub25lIn19LGY6ZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2V9fSk7aC5BPXtWOmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyxnLGQsZSl7dGhpcy5kPWM7dGhpcy5vPWc7dGhpcy5oPWQ7dGhpcy5wYXJlbnQ9ZX1oLm4uJGEoYi5wcm90b3R5cGUsaC5BLGEpO3JldHVybiBifSxaYTpmYWxzZSxOOmZ1bmN0aW9uKCl7cmV0dXJuIGZhbHNlfSxEYjpmdW5jdGlvbigpe3RoaXMuaygpO3RoaXMuZigpJiZ0aGlzLlQoKX0sZGI6ZnVuY3Rpb24oKXt0aGlzLlphPXRydWV9LEViOmZ1bmN0aW9uKCl7dGhpcy5mKCk/dGhpcy5UKCk6dGhpcy5rKCl9LFFhOmZ1bmN0aW9uKGEsYil7dGhpcy5BYihhKTtmb3IodmFyIGM9dGhpcy5nYXx8KHRoaXMuZ2E9W10pLGc9YSsxLGQ9Yy5sZW5ndGgsZTtnPGQ7ZysrKWlmKGU9Y1tnXSlicmVhaztjW2FdPWI7dGhpcy51KCkuaW5zZXJ0QmVmb3JlKGIsZXx8bnVsbCl9LG1hOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZ2E7cmV0dXJuIGImJmJbYV18fG51bGx9LEFiOmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLm1hKGEpLGM9dGhpcy52YTtpZihiJiZjKXtjLnJlbW92ZUNoaWxkKGIpO3RoaXMuZ2FbYV09bnVsbH19LG5hOmZ1bmN0aW9uKGEsYixjLGcpe3ZhciBkPXRoaXMuUGF8fCh0aGlzLlBhPXt9KSxlPWRbYV07aWYoIWUpe2U9ZFthXT1oLm4uQWEoInNoYXBlIik7aWYoYillLmFwcGVuZENoaWxkKGVbYl09aC5uLkFhKGIpKTtpZihnKXtjPXRoaXMubWEoZyk7aWYoIWMpe3RoaXMuUWEoZyxkb2MuY3JlYXRlRWxlbWVudCgiZ3JvdXAiK2cpKTtjPXRoaXMubWEoZyl9fWMuYXBwZW5kQ2hpbGQoZSk7YT1lLnN0eWxlO2EucG9zaXRpb249ImFic29sdXRlIjthLmxlZnQ9YS50b3A9MDthLmJlaGF2aW9yPSJ1cmwoI2RlZmF1bHQjVk1MKSJ9cmV0dXJuIGV9LFNhOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuUGEsYz1iJiZiW2FdO2lmKGMpe2MucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjKTtkZWxldGUgYlthXX1yZXR1cm4hIWN9LHRiOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZCxjPXRoaXMuby5tKCksCmc9Yy5nLGQ9Yy5lLGUsZixpLGosayxtO2M9YS54LnRsLmEoYixnKTtlPWEueS50bC5hKGIsZCk7Zj1hLngudHIuYShiLGcpO2k9YS55LnRyLmEoYixkKTtqPWEueC5ici5hKGIsZyk7az1hLnkuYnIuYShiLGQpO209YS54LmJsLmEoYixnKTthPWEueS5ibC5hKGIsZCk7Zz1NYXRoLm1pbihnLyhjK2YpLGQvKGkrayksZy8obStqKSxkLyhlK2EpKTtpZihnPDEpe2MqPWc7ZSo9ZztmKj1nO2kqPWc7aio9ZztrKj1nO20qPWc7YSo9Z31yZXR1cm57eDp7dGw6Yyx0cjpmLGJyOmosYmw6bX0seTp7dGw6ZSx0cjppLGJyOmssYmw6YX19fSxrYTpmdW5jdGlvbihhLGIsYyl7Yj1ifHwxO3ZhciBnLGQsZT10aGlzLm8ubSgpO2Q9ZS5nKmI7ZT1lLmUqYjt2YXIgZj10aGlzLmgucyxpPU1hdGguZmxvb3Isaj1NYXRoLmNlaWwsaz1hP2EuUCpiOjAsbT1hP2EuTypiOjAsbD1hP2EuSypiOjA7YT1hP2EuTSpiOjA7dmFyIHUsbixxLHQsdjtpZihjfHxmLmYoKSl7Zz10aGlzLnRiKGN8fGYuaigpKTtjPQpnLngudGwqYjtmPWcueS50bCpiO3U9Zy54LnRyKmI7bj1nLnkudHIqYjtxPWcueC5icipiO3Q9Zy55LmJyKmI7dj1nLnguYmwqYjtiPWcueS5ibCpiO2Q9Im0iK2koYSkrIiwiK2koZikrInF5IitpKGMpKyIsIitpKGspKyJsIitqKGQtdSkrIiwiK2koaykrInF4IitqKGQtbSkrIiwiK2kobikrImwiK2ooZC1tKSsiLCIraihlLXQpKyJxeSIraihkLXEpKyIsIitqKGUtbCkrImwiK2kodikrIiwiK2ooZS1sKSsicXgiK2koYSkrIiwiK2ooZS1iKSsiIHggZSJ9ZWxzZSBkPSJtIitpKGEpKyIsIitpKGspKyJsIitqKGQtbSkrIiwiK2koaykrImwiK2ooZC1tKSsiLCIraihlLWwpKyJsIitpKGEpKyIsIitqKGUtbCkrInhlIjtyZXR1cm4gZH0sdTpmdW5jdGlvbigpe3ZhciBhPXRoaXMucGFyZW50Lm1hKHRoaXMuQiksYjtpZighYSl7YT1kb2MuY3JlYXRlRWxlbWVudCh0aGlzLnphKTtiPWEuc3R5bGU7Yi5wb3NpdGlvbj0iYWJzb2x1dGUiO2IudG9wPWIubGVmdD0wO3RoaXMucGFyZW50LlFhKHRoaXMuQiwKYSl9cmV0dXJuIGF9LGs6ZnVuY3Rpb24oKXt0aGlzLnBhcmVudC5BYih0aGlzLkIpO2RlbGV0ZSB0aGlzLlBhO2RlbGV0ZSB0aGlzLmdhfX07aC5WYj1oLkEuVih7ZjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaWM7Zm9yKHZhciBiIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShiKSYmYVtiXS5mKCkpcmV0dXJuIHRydWU7cmV0dXJuIGZhbHNlfSxOOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaC5mYi5DKCl9LGRiOmZ1bmN0aW9uKCl7aWYodGhpcy5mKCkpe3ZhciBhPXRoaXMuc2IoKSxiPWEsYzthPWEuY3VycmVudFN0eWxlO3ZhciBnPWEucG9zaXRpb24sZD10aGlzLnUoKS5zdHlsZSxlPTAsZj0wO2Y9dGhpcy5vLm0oKTtpZihnPT09ImZpeGVkIiYmaC5EPjYpe2U9Zi54O2Y9Zi55O2I9Z31lbHNle2RvIGI9Yi5vZmZzZXRQYXJlbnQ7d2hpbGUoYiYmYi5jdXJyZW50U3R5bGUucG9zaXRpb249PT0ic3RhdGljIik7aWYoYil7Yz1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2I9Yi5jdXJyZW50U3R5bGU7CmU9Zi54LWMubGVmdC0ocGFyc2VGbG9hdChiLmJvcmRlckxlZnRXaWR0aCl8fDApO2Y9Zi55LWMudG9wLShwYXJzZUZsb2F0KGIuYm9yZGVyVG9wV2lkdGgpfHwwKX1lbHNle2I9ZG9jLmRvY3VtZW50RWxlbWVudDtlPWYueCtiLnNjcm9sbExlZnQtYi5jbGllbnRMZWZ0O2Y9Zi55K2Iuc2Nyb2xsVG9wLWIuY2xpZW50VG9wfWI9ImFic29sdXRlIn1kLnBvc2l0aW9uPWI7ZC5sZWZ0PWU7ZC50b3A9ZjtkLnpJbmRleD1nPT09InN0YXRpYyI/LTE6YS56SW5kZXg7dGhpcy5aYT10cnVlfX0sRWI6ZnVuY3Rpb24oKXt9LEZiOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oLmZiLmooKTt0aGlzLnUoKS5zdHlsZS5kaXNwbGF5PWEuVWMmJmEuc2M/IiI6Im5vbmUifSxEYjpmdW5jdGlvbigpe3RoaXMuZigpP3RoaXMuRmIoKTp0aGlzLmsoKX0sc2I6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQ7cmV0dXJuIGEudGFnTmFtZSBpbiBoLkNiP2Eub2Zmc2V0UGFyZW50OmF9LHU6ZnVuY3Rpb24oKXt2YXIgYT0KdGhpcy52YSxiO2lmKCFhKXtiPXRoaXMuc2IoKTthPXRoaXMudmE9ZG9jLmNyZWF0ZUVsZW1lbnQoImNzczMtY29udGFpbmVyIik7YS5zdHlsZS5kaXJlY3Rpb249Imx0ciI7dGhpcy5GYigpO2IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxiKX1yZXR1cm4gYX0sazpmdW5jdGlvbigpe3ZhciBhPXRoaXMudmEsYjtpZihhJiYoYj1hLnBhcmVudE5vZGUpKWIucmVtb3ZlQ2hpbGQoYSk7ZGVsZXRlIHRoaXMudmE7ZGVsZXRlIHRoaXMuZ2F9fSk7aC5MYj1oLkEuVih7QjoyLHphOiJiYWNrZ3JvdW5kIixOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkcuQygpfHxhLnMuQygpfSxmOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkwuZigpfHxhLnMuZigpfHxhLkcuZigpfHxhLlMuZigpJiZhLlMuaigpLlhhfSxUOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vLm0oKTtpZihhLmcmJmEuZSl7dGhpcy50YygpO3RoaXMudWMoKX19LHRjOmZ1bmN0aW9uKCl7dmFyIGE9CnRoaXMuaC5HLmooKSxiPXRoaXMuby5tKCksYz10aGlzLmQsZz1hJiZhLmNvbG9yLGQsZTtpZihnJiZnLmhhKCk+MCl7dGhpcy51YigpO2E9dGhpcy5uYSgiYmdDb2xvciIsImZpbGwiLHRoaXMudSgpLDEpO2Q9Yi5nO2I9Yi5lO2Euc3Ryb2tlZD1mYWxzZTthLmNvb3Jkc2l6ZT1kKjIrIiwiK2IqMjthLmNvb3Jkb3JpZ2luPSIxLDEiO2EucGF0aD10aGlzLmthKG51bGwsMik7ZT1hLnN0eWxlO2Uud2lkdGg9ZDtlLmhlaWdodD1iO2EuZmlsbC5jb2xvcj1nLnZhbHVlKGMpO2M9Zy5oYSgpO2lmKGM8MSlhLmZpbGwub3BhY2l0eT1jfWVsc2UgdGhpcy5TYSgiYmdDb2xvciIpfSx1YzpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5HLmooKSxiPXRoaXMuby5tKCk7YT1hJiZhLmltYWdlczt2YXIgYyxnLGQsZSxmO2lmKGEpe3RoaXMudWIoKTtnPWIuZztkPWIuZTtmb3IoZj1hLmxlbmd0aDtmLS07KXtiPWFbZl07Yz10aGlzLm5hKCJiZ0ltYWdlIitmLCJmaWxsIix0aGlzLnUoKSwyKTtjLnN0cm9rZWQ9CmZhbHNlO2MuZmlsbC50eXBlPSJ0aWxlIjtjLmZpbGxjb2xvcj0ibm9uZSI7Yy5jb29yZHNpemU9ZyoyKyIsIitkKjI7Yy5jb29yZG9yaWdpbj0iMSwxIjtjLnBhdGg9dGhpcy5rYSgwLDIpO2U9Yy5zdHlsZTtlLndpZHRoPWc7ZS5oZWlnaHQ9ZDtpZihiLnR5cGU9PT0ibGluZWFyLWdyYWRpZW50Iil0aGlzLmdjKGMsYik7ZWxzZXtjLmZpbGwuc3JjPWIudXJsO3RoaXMuSmMoYyxmKX19fWZvcihmPWE/YS5sZW5ndGg6MDt0aGlzLlNhKCJiZ0ltYWdlIitmKyspOyk7fSxKYzpmdW5jdGlvbihhLGIpe2gubi5JYihhLmZpbGwuc3JjLGZ1bmN0aW9uKGMpe3ZhciBnPWEuZmlsbCxkPXRoaXMuZCxlPXRoaXMuby5tKCksZj1lLmc7ZT1lLmU7dmFyIGk9dGhpcy5oLGo9aS5ILmooKSxrPWomJmouaGI7aj1rP2sudC5hKGQpOjA7dmFyIG09az9rLnIuYShkKTowLGw9az9rLmIuYShkKTowO2s9az9rLmwuYShkKTowO2k9aS5HLmooKS5pbWFnZXNbYl07ZD1pLnBvc2l0aW9uP2kucG9zaXRpb24uY29vcmRzKGQsCmYtYy5nLWstbSxlLWMuZS1qLWwpOnt4OjAseTowfTtpPWkucmVwZWF0O2w9bT0wO3ZhciB1PWYrMSxuPWUrMSxxPWguRD09PTg/MDoxO2s9TWF0aC5yb3VuZChkLngpK2srMC41O2o9TWF0aC5yb3VuZChkLnkpK2orMC41O2cucG9zaXRpb249ay9mKyIsIitqL2U7aWYoaSYmaSE9PSJyZXBlYXQiKXtpZihpPT09InJlcGVhdC14Inx8aT09PSJuby1yZXBlYXQiKXttPWorMTtuPWorYy5lK3F9aWYoaT09PSJyZXBlYXQteSJ8fGk9PT0ibm8tcmVwZWF0Iil7bD1rKzE7dT1rK2MuZytxfWEuc3R5bGUuY2xpcD0icmVjdCgiK20rInB4LCIrdSsicHgsIituKyJweCwiK2wrInB4KSJ9fSx0aGlzKX0sZ2M6ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKEEsQix5LEcsSCl7aWYoeT09PTB8fHk9PT0xODApcmV0dXJuW0csQl07ZWxzZSBpZih5PT09OTB8fHk9PT0yNzApcmV0dXJuW0EsSF07ZWxzZXt5PU1hdGgudGFuKC15KnUvMTgwKTtBPXkqQS1CO0I9LTEveTtHPUIqRy1IO0g9Qi15O3JldHVyblsoRy0KQSkvSCwoeSpHLUIqQSkvSF19fWZ1bmN0aW9uIGcoKXt4PW0+PTkwJiZtPDI3MD9qOjA7cj1tPDE4MD9rOjA7bz1qLXg7cz1rLXJ9ZnVuY3Rpb24gZCgpe2Zvcig7bTwwOyltKz0zNjA7bSU9MzYwfWZ1bmN0aW9uIGUoQSxCKXt2YXIgeT1CWzBdLUFbMF07QT1CWzFdLUFbMV07cmV0dXJuIE1hdGguYWJzKHk9PT0wP0E6QT09PTA/eTpNYXRoLnNxcnQoeSp5K0EqQSkpfXZhciBmPXRoaXMuZCxpPXRoaXMuby5tKCksaj1pLmcsaz1pLmU7YT1hLmZpbGw7dmFyIG09Yi5SYSxsPWIuVmE7Yj1iLlo7aT1iLmxlbmd0aDt2YXIgdT1NYXRoLlBJLG4scSx0LHYseCxyLG8scyxwLHosRSxDO2lmKGwpe2w9bC5jb29yZHMoZixqLGspO249bC54O3E9bC55fWlmKG0pe209bS5xYygpO2QoKTtnKCk7aWYoIWwpe249eDtxPXJ9bD1jKG4scSxtLG8scyk7dD1sWzBdO3Y9bFsxXX1lbHNlIGlmKGwpe3Q9ai1uO3Y9ay1xfWVsc2V7bj1xPXQ9MDt2PWt9bD10LW47cD12LXE7aWYobT09PXZvaWQgMCl7bT0hbD8KcDwwPzkwOjI3MDohcD9sPDA/MTgwOjA6LU1hdGguYXRhbjIocCxsKS91KjE4MDtkKCk7ZygpfWw9bSU5MD9NYXRoLmF0YW4yKGwqai9rLHApL3UqMTgwOm0rOTA7bCs9MTgwO2wlPTM2MDt6PWUoW24scV0sW3Qsdl0pO3Q9ZShbeCxyXSxjKHgscixtLG8scykpO3Y9W107cT1lKFtuLHFdLGMobixxLG0seCxyKSkvdCoxMDA7bj1bXTtmb3IocD0wO3A8aTtwKyspbi5wdXNoKGJbcF0ueWI/YltwXS55Yi5hKGYseik6cD09PTA/MDpwPT09aS0xP3o6bnVsbCk7Zm9yKHA9MTtwPGk7cCsrKXtpZihuW3BdPT09bnVsbCl7RT1uW3AtMV07ej1wO2RvIEM9blsrK3pdO3doaWxlKEM9PT1udWxsKTtuW3BdPUUrKEMtRSkvKHotcCsxKX1uW3BdPU1hdGgubWF4KG5bcF0sbltwLTFdKX1mb3IocD0wO3A8aTtwKyspdi5wdXNoKHErbltwXS90KjEwMCsiJSAiK2JbcF0uY29sb3IudmFsdWUoZikpO2EuYW5nbGU9bDthLnR5cGU9ImdyYWRpZW50IjthLm1ldGhvZD0ic2lnbWEiO2EuY29sb3I9YlswXS5jb2xvci52YWx1ZShmKTsKYS5jb2xvcjI9YltpLTFdLmNvbG9yLnZhbHVlKGYpO2EuY29sb3JzLnZhbHVlPXYuam9pbigiLCIpfSx1YjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZC5ydW50aW1lU3R5bGU7YS5iYWNrZ3JvdW5kSW1hZ2U9InVybChhYm91dDpibGFuaykiO2EuYmFja2dyb3VuZENvbG9yPSJ0cmFuc3BhcmVudCJ9LGs6ZnVuY3Rpb24oKXtoLkEuay5jYWxsKHRoaXMpO3ZhciBhPXRoaXMuZC5ydW50aW1lU3R5bGU7YS5iYWNrZ3JvdW5kSW1hZ2U9YS5iYWNrZ3JvdW5kQ29sb3I9IiJ9fSk7aC5QYj1oLkEuVih7Qjo0LHphOiJib3JkZXIiLGpjOntUQUJMRToxLElOUFVUOjEsVEVYVEFSRUE6MSxTRUxFQ1Q6MSxPUFRJT046MSxJTUc6MSxIUjoxLEZJRUxEU0VUOjF9LEVjOntzdWJtaXQ6MSxidXR0b246MSxyZXNldDoxfSxOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkguQygpfHxhLnMuQygpfSxmOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybihhLkwuZigpfHxhLnMuZigpfHxhLkcuZigpKSYmCmEuSC5mKCl9LFQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQsYj10aGlzLmguSC5qKCksYz10aGlzLm8ubSgpLGc9Yy5nO2M9Yy5lO3ZhciBkLGUsZixpLGo7aWYoYil7dGhpcy5DYygpO2I9dGhpcy53YygyKTtpPTA7Zm9yKGo9Yi5sZW5ndGg7aTxqO2krKyl7Zj1iW2ldO2Q9dGhpcy5uYSgiYm9yZGVyUGllY2UiK2ksZi5zdHJva2U/InN0cm9rZSI6ImZpbGwiLHRoaXMudSgpKTtkLmNvb3Jkc2l6ZT1nKjIrIiwiK2MqMjtkLmNvb3Jkb3JpZ2luPSIxLDEiO2QucGF0aD1mLnBhdGg7ZT1kLnN0eWxlO2Uud2lkdGg9ZztlLmhlaWdodD1jO2QuZmlsbGVkPSEhZi5maWxsO2Quc3Ryb2tlZD0hIWYuc3Ryb2tlO2lmKGYuc3Ryb2tlKXtkPWQuc3Ryb2tlO2Qud2VpZ2h0PWYuZ2IrInB4IjtkLmNvbG9yPWYuY29sb3IudmFsdWUoYSk7ZC5kYXNoc3R5bGU9Zi5zdHJva2U9PT0iZGFzaGVkIj8iMiAyIjpmLnN0cm9rZT09PSJkb3R0ZWQiPyIxIDEiOiJzb2xpZCI7ZC5saW5lc3R5bGU9Zi5zdHJva2U9PT0KImRvdWJsZSImJmYuZ2I+Mj8iVGhpblRoaW4iOiJTaW5nbGUifWVsc2UgZC5maWxsLmNvbG9yPWYuZmlsbC52YWx1ZShhKX1mb3IoO3RoaXMuU2EoImJvcmRlclBpZWNlIitpKyspOyk7fX0sQ2M6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQsYj1hLmN1cnJlbnRTdHlsZSxjPWEucnVudGltZVN0eWxlLGc9YS50YWdOYW1lLGQ9aC5EPT09NixlO2lmKGQmJmcgaW4gdGhpcy5qY3x8Zz09PSJCVVRUT04ifHxnPT09IklOUFVUIiYmYS50eXBlIGluIHRoaXMuRWMpe2MuYm9yZGVyV2lkdGg9IiI7Zz10aGlzLmguSC5CYjtmb3IoZT1nLmxlbmd0aDtlLS07KXtkPWdbZV07Y1sicGFkZGluZyIrZF09IiI7Y1sicGFkZGluZyIrZF09KG5ldyBoLmkoYlsicGFkZGluZyIrZF0pKS5hKGEpKyhuZXcgaC5pKGJbImJvcmRlciIrZCsiV2lkdGgiXSkpLmEoYSkrKCFoLkQ9PT04JiZlJTI/MTowKX1jLmJvcmRlcldpZHRoPTB9ZWxzZSBpZihkKXtpZihhLmNoaWxkTm9kZXMubGVuZ3RoIT09MXx8YS5maXJzdENoaWxkLnRhZ05hbWUhPT0KImllNi1tYXNrIil7Yj1kb2MuY3JlYXRlRWxlbWVudCgiaWU2LW1hc2siKTtnPWIuc3R5bGU7Zy52aXNpYmlsaXR5PSJ2aXNpYmxlIjtmb3IoZy56b29tPTE7Zz1hLmZpcnN0Q2hpbGQ7KWIuYXBwZW5kQ2hpbGQoZyk7YS5hcHBlbmRDaGlsZChiKTtjLnZpc2liaWxpdHk9ImhpZGRlbiJ9fWVsc2UgYy5ib3JkZXJDb2xvcj0idHJhbnNwYXJlbnQifSx3YzpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmQsYyxnLGQsZT10aGlzLmguSCxmPVtdLGksaixrLG0sbD1NYXRoLnJvdW5kLHUsbixxO2lmKGUuZigpKXtjPWUuaigpO2U9Yy5oYjtuPWMuUmM7cT1jLm1jO2lmKGMuV2MmJmMuU2MmJmMubmMpe2lmKHEudC5oYSgpPjApe2M9ZS50LmEoYik7az1jLzI7Zi5wdXNoKHtwYXRoOnRoaXMua2Eoe1A6ayxPOmssSzprLE06a30sYSksc3Ryb2tlOm4udCxjb2xvcjpxLnQsZ2I6Y30pfX1lbHNle2E9YXx8MTtjPXRoaXMuby5tKCk7Zz1jLmc7ZD1jLmU7Yz1sKGUudC5hKGIpKTtrPWwoZS5yLmEoYikpOwptPWwoZS5iLmEoYikpO2I9bChlLmwuYShiKSk7dmFyIHQ9e3Q6YyxyOmssYjptLGw6Yn07Yj10aGlzLmgucztpZihiLmYoKSl1PXRoaXMudGIoYi5qKCkpO2k9TWF0aC5mbG9vcjtqPU1hdGguY2VpbDt2YXIgdj1mdW5jdGlvbihvLHMpe3JldHVybiB1P3Vbb11bc106MH0seD1mdW5jdGlvbihvLHMscCx6LEUsQyl7dmFyIEE9digieCIsbyksQj12KCJ5IixvKSx5PW8uY2hhckF0KDEpPT09InIiO289by5jaGFyQXQoMCk9PT0iYiI7cmV0dXJuIEE+MCYmQj4wPyhDPyJhbCI6ImFlIikrKHk/aihnLUEpOmkoQSkpKmErIiwiKyhvP2ooZC1CKTppKEIpKSphKyIsIisoaShBKS1zKSphKyIsIisoaShCKS1wKSphKyIsIit6KjY1NTM1KyIsIisyOTQ5MDc1KihFPzE6LTEpOihDPyJtIjoibCIpKyh5P2ctczpzKSphKyIsIisobz9kLXA6cCkqYX0scj1mdW5jdGlvbihvLHMscCx6KXt2YXIgRT1vPT09InQiP2kodigieCIsInRsIikpKmErIiwiK2oocykqYTpvPT09InIiP2ooZy1zKSphKyIsIisKaSh2KCJ5IiwidHIiKSkqYTpvPT09ImIiP2ooZy12KCJ4IiwiYnIiKSkqYSsiLCIraShkLXMpKmE6aShzKSphKyIsIitqKGQtdigieSIsImJsIikpKmE7bz1vPT09InQiP2ooZy12KCJ4IiwidHIiKSkqYSsiLCIraihzKSphOm89PT0iciI/aihnLXMpKmErIiwiK2ooZC12KCJ5IiwiYnIiKSkqYTpvPT09ImIiP2kodigieCIsImJsIikpKmErIiwiK2koZC1zKSphOmkocykqYSsiLCIraSh2KCJ5IiwidGwiKSkqYTtyZXR1cm4gcD8oej8ibSIrbzoiIikrImwiK0U6KHo/Im0iK0U6IiIpKyJsIitvfTtiPWZ1bmN0aW9uKG8scyxwLHosRSxDKXt2YXIgQT1vPT09ImwifHxvPT09InIiLEI9dFtvXSx5LEc7aWYoQj4wJiZuW29dIT09Im5vbmUiJiZxW29dLmhhKCk+MCl7eT10W0E/bzpzXTtzPXRbQT9zOm9dO0c9dFtBP286cF07cD10W0E/cDpvXTtpZihuW29dPT09ImRhc2hlZCJ8fG5bb109PT0iZG90dGVkIil7Zi5wdXNoKHtwYXRoOngoeix5LHMsQys0NSwwLDEpK3goeiwwLDAsQywxLDApLApmaWxsOnFbb119KTtmLnB1c2goe3BhdGg6cihvLEIvMiwwLDEpLHN0cm9rZTpuW29dLGdiOkIsY29sb3I6cVtvXX0pO2YucHVzaCh7cGF0aDp4KEUsRyxwLEMsMCwxKSt4KEUsMCwwLEMtNDUsMSwwKSxmaWxsOnFbb119KX1lbHNlIGYucHVzaCh7cGF0aDp4KHoseSxzLEMrNDUsMCwxKStyKG8sQiwwLDApK3goRSxHLHAsQywwLDApKyhuW29dPT09ImRvdWJsZSImJkI+Mj94KEUsRy1pKEcvMykscC1pKHAvMyksQy00NSwxLDApK3IobyxqKEIvMyoyKSwxLDApK3goeix5LWkoeS8zKSxzLWkocy8zKSxDLDEsMCkrInggIit4KHosaSh5LzMpLGkocy8zKSxDKzQ1LDAsMSkrcihvLGkoQi8zKSwxLDApK3goRSxpKEcvMyksaShwLzMpLEMsMCwwKToiIikreChFLDAsMCxDLTQ1LDEsMCkrcihvLDAsMSwwKSt4KHosMCwwLEMsMSwwKSxmaWxsOnFbb119KX19O2IoInQiLCJsIiwiciIsInRsIiwidHIiLDkwKTtiKCJyIiwidCIsImIiLCJ0ciIsImJyIiwwKTtiKCJiIiwiciIsImwiLCJiciIsImJsIiwKLTkwKTtiKCJsIiwiYiIsInQiLCJibCIsInRsIiwtMTgwKX19cmV0dXJuIGZ9LGs6ZnVuY3Rpb24oKXtoLkEuay5jYWxsKHRoaXMpO3RoaXMuZC5ydW50aW1lU3R5bGUuYm9yZGVyQ29sb3I9IiJ9fSk7aC5OYj1oLkEuVih7Qjo1LEljOlsidCIsInRyIiwiciIsImJyIiwiYiIsImJsIiwibCIsInRsIiwiYyJdLE46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oLkwuQygpfSxmOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaC5MLmYoKX0sVDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5MLmooKSxiPXRoaXMuby5tKCk7dGhpcy51KCk7dmFyIGM9dGhpcy5kLGc9dGhpcy56YjtoLm4uSWIoYS5zcmMsZnVuY3Rpb24oZCl7ZnVuY3Rpb24gZSh4LHIsbyxzLHApe3g9Z1t4XS5zdHlsZTt4LndpZHRoPXI7eC5oZWlnaHQ9bzt4LmxlZnQ9czt4LnRvcD1wfWZ1bmN0aW9uIGYoeCxyLG8pe2Zvcih2YXIgcz0wLHA9eC5sZW5ndGg7czxwO3MrKylnW3hbc11dLmltYWdlZGF0YVtyXT1vfXZhciBpPWIuZyxqPQpiLmUsaz1hLndpZHRoLG09ay5QLmEoYyksbD1rLk8uYShjKSx1PWsuSy5hKGMpO2s9ay5NLmEoYyk7dmFyIG49YS5zbGljZSxxPW4uUC5hKGMpLHQ9bi5PLmEoYyksdj1uLksuYShjKTtuPW4uTS5hKGMpO2UoInRsIixrLG0sMCwwKTtlKCJ0IixpLWstbCxtLGssMCk7ZSgidHIiLGwsbSxpLWwsMCk7ZSgiciIsbCxqLW0tdSxpLWwsbSk7ZSgiYnIiLGwsdSxpLWwsai11KTtlKCJiIixpLWstbCx1LGssai11KTtlKCJibCIsayx1LDAsai11KTtlKCJsIixrLGotbS11LDAsbSk7ZSgiYyIsaS1rLWwsai1tLXUsayxtKTtmKFsidGwiLCJ0IiwidHIiXSwiY3JvcEJvdHRvbSIsKGQuZS1xKS9kLmUpO2YoWyJ0bCIsImwiLCJibCJdLCJjcm9wUmlnaHQiLChkLmctbikvZC5nKTtmKFsiYmwiLCJiIiwiYnIiXSwiY3JvcFRvcCIsKGQuZS12KS9kLmUpO2YoWyJ0ciIsInIiLCJiciJdLCJjcm9wTGVmdCIsKGQuZy10KS9kLmcpO2lmKGEucmVwZWF0LmViPT09InN0cmV0Y2giKXtmKFsibCIsInIiLCJjIl0sCiJjcm9wVG9wIixxL2QuZSk7ZihbImwiLCJyIiwiYyJdLCJjcm9wQm90dG9tIix2L2QuZSl9aWYoYS5yZXBlYXQuZT09PSJzdHJldGNoIil7ZihbInQiLCJiIiwiYyJdLCJjcm9wTGVmdCIsbi9kLmcpO2YoWyJ0IiwiYiIsImMiXSwiY3JvcFJpZ2h0Iix0L2QuZyl9Zy5jLnN0eWxlLmRpc3BsYXk9YS5maWxsPyIiOiJub25lIn0sdGhpcyl9LHU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnBhcmVudC5tYSh0aGlzLkIpLGIsYyxnLGQ9dGhpcy5JYyxlPWQubGVuZ3RoO2lmKCFhKXthPWRvYy5jcmVhdGVFbGVtZW50KCJib3JkZXItaW1hZ2UiKTtiPWEuc3R5bGU7Yi5wb3NpdGlvbj0iYWJzb2x1dGUiO3RoaXMuemI9e307Zm9yKGc9MDtnPGU7ZysrKXtjPXRoaXMuemJbZFtnXV09aC5uLkFhKCJyZWN0Iik7Yy5hcHBlbmRDaGlsZChoLm4uQWEoImltYWdlZGF0YSIpKTtiPWMuc3R5bGU7Yi5iZWhhdmlvcj0idXJsKCNkZWZhdWx0I1ZNTCkiO2IucG9zaXRpb249ImFic29sdXRlIjtiLnRvcD1iLmxlZnQ9CjA7Yy5pbWFnZWRhdGEuc3JjPXRoaXMuaC5MLmooKS5zcmM7Yy5zdHJva2VkPWZhbHNlO2MuZmlsbGVkPWZhbHNlO2EuYXBwZW5kQ2hpbGQoYyl9dGhpcy5wYXJlbnQuUWEodGhpcy5CLGEpfXJldHVybiBhfX0pO2guUmI9aC5BLlYoe0I6MSx6YToib3V0c2V0LWJveC1zaGFkb3ciLE46ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmg7cmV0dXJuIGEuUy5DKCl8fGEucy5DKCl9LGY6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmguUztyZXR1cm4gYS5mKCkmJmEuaigpLnBhWzBdfSxUOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh5LEcsSCx3LEQsRixJKXt5PWIubmEoInNoYWRvdyIreStHLCJmaWxsIixnLGYteSk7Rz15LmZpbGw7eS5jb29yZHNpemU9bSoyKyIsIitsKjI7eS5jb29yZG9yaWdpbj0iMSwxIjt5LnN0cm9rZWQ9ZmFsc2U7eS5maWxsZWQ9dHJ1ZTtHLmNvbG9yPUQudmFsdWUoYyk7aWYoRil7Ry50eXBlPSJncmFkaWVudHRpdGxlIjtHLmNvbG9yMj1HLmNvbG9yO0cub3BhY2l0eT0wfXkucGF0aD0KSTt2PXkuc3R5bGU7di5sZWZ0PUg7di50b3A9dzt2LndpZHRoPW07di5oZWlnaHQ9bDtyZXR1cm4geX12YXIgYj10aGlzLGM9dGhpcy5kLGc9dGhpcy51KCksZD10aGlzLmgsZT1kLlMuaigpLnBhO2Q9ZC5zLmooKTt2YXIgZj1lLmxlbmd0aCxpPWYsaixrPXRoaXMuby5tKCksbT1rLmcsbD1rLmU7az1oLkQ9PT04PzE6MDtmb3IodmFyIHU9WyJ0bCIsInRyIiwiYnIiLCJibCJdLG4scSx0LHYseCxyLG8scyxwLHosRSxDLEEsQjtpLS07KXtxPWVbaV07eD1xLlhjLmEoYyk7cj1xLlljLmEoYyk7aj1xLlBjLmEoYyk7bz1xLmJsdXIuYShjKTtxPXEuY29sb3I7cz0tai1vO2lmKCFkJiZvKWQ9aC5JYS5KYjtzPXRoaXMua2Eoe1A6cyxPOnMsSzpzLE06c30sMixkKTtpZihvKXtwPShqK28pKjIrbTt6PShqK28pKjIrbDtFPW8qMi9wO0M9byoyL3o7aWYoby1qPm0vMnx8by1qPmwvMilmb3Ioaj00O2otLTspe249dVtqXTtBPW4uY2hhckF0KDApPT09ImIiO0I9bi5jaGFyQXQoMSk9PT0iciI7Cm49YShpLG4seCxyLHEsbyxzKTt0PW4uZmlsbDt0LmZvY3VzcG9zaXRpb249KEI/MS1FOkUpKyIsIisoQT8xLUM6Qyk7dC5mb2N1c3NpemU9IjAsMCI7bi5zdHlsZS5jbGlwPSJyZWN0KCIrKChBP3ovMjowKStrKSsicHgsIisoQj9wOnAvMikrInB4LCIrKEE/ejp6LzIpKyJweCwiKygoQj9wLzI6MCkraykrInB4KSJ9ZWxzZXtuPWEoaSwiIix4LHIscSxvLHMpO3Q9bi5maWxsO3QuZm9jdXNwb3NpdGlvbj1FKyIsIitDO3QuZm9jdXNzaXplPTEtRSoyKyIsIisoMS1DKjIpfX1lbHNle249YShpLCIiLHgscixxLG8scyk7eD1xLmhhKCk7aWYoeDwxKW4uZmlsbC5vcGFjaXR5PXh9fX19KTtoLlViPWguQS5WKHtCOjYsemE6ImltZ0VsIixOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiB0aGlzLmQuc3JjIT09dGhpcy5hY3x8YS5zLkMoKX0sZjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaDtyZXR1cm4gYS5zLmYoKXx8YS5HLnhiKCl9LFQ6ZnVuY3Rpb24oKXt0aGlzLmFjPWY7dGhpcy5CYygpOwp2YXIgYT10aGlzLm5hKCJpbWciLCJmaWxsIix0aGlzLnUoKSksYj1hLmZpbGwsYz10aGlzLm8ubSgpLGc9Yy5nO2M9Yy5lO3ZhciBkPXRoaXMuaC5ILmooKTtkPWQmJmQuaGI7dmFyIGU9dGhpcy5kLGY9ZS5zcmMsaT1NYXRoLnJvdW5kO2Euc3Ryb2tlZD1mYWxzZTtiLnR5cGU9ImZyYW1lIjtiLnNyYz1mO2IucG9zaXRpb249KGc/MC41L2c6MCkrIiwiKyhjPzAuNS9jOjApO2EuY29vcmRzaXplPWcqMisiLCIrYyoyO2EuY29vcmRvcmlnaW49IjEsMSI7YS5wYXRoPXRoaXMua2EoZD97UDppKGQudC5hKGUpKSxPOmkoZC5yLmEoZSkpLEs6aShkLmIuYShlKSksTTppKGQubC5hKGUpKX06MCwyKTthPWEuc3R5bGU7YS53aWR0aD1nO2EuaGVpZ2h0PWN9LEJjOmZ1bmN0aW9uKCl7dGhpcy5kLnJ1bnRpbWVTdHlsZS5maWx0ZXI9ImFscGhhKG9wYWNpdHk9MCkifSxrOmZ1bmN0aW9uKCl7aC5BLmsuY2FsbCh0aGlzKTt0aGlzLmQucnVudGltZVN0eWxlLmZpbHRlcj0iIn19KTtoLkthPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShmKXtmdW5jdGlvbiBpKCl7aWYoIUIpe3ZhciB3LApELEY9Zi5jdXJyZW50U3R5bGUuZ2V0QXR0cmlidXRlKGMpPT09InRydWUiO2lmKCFBKXtBPTE7Zi5ydW50aW1lU3R5bGUuem9vbT0xO2Zvcih2YXIgST1mLE09MTtJPUkucHJldmlvdXNTaWJsaW5nOylpZihJLm5vZGVUeXBlPT09MSl7TT0wO2JyZWFrfWlmKE0pZi5jbGFzc05hbWUrPSIgIitoLkphKyJmaXJzdC1jaGlsZCJ9cC5EYSgpO2lmKEYmJihEPXAubSgpKSYmKHc9ZG9jLmRvY3VtZW50RWxlbWVudHx8ZG9jLmJvZHkpJiYoRC55PncuY2xpZW50SGVpZ2h0fHxELng+dy5jbGllbnRXaWR0aHx8RC55K0QuZTwwfHxELngrRC5nPDApKXtpZighRyl7Rz0xO2guTWEuWChpKX19ZWxzZXtCPTE7Rz1BPTA7aC5NYS5HYShpKTt6PXtHOm5ldyBoLk1iKGYpLEg6bmV3IGguUWIoZiksTDpuZXcgaC5PYihmKSxzOm5ldyBoLklhKGYpLFM6bmV3IGguU2IoZiksZmI6bmV3IGguWGIoZil9O0U9W3ouRyx6Lkgsei5MLHoucyx6LlMsei5mYl07dz1uZXcgaC5WYihmLHAseik7RD1bbmV3IGguUmIoZiwKcCx6LHcpLG5ldyBoLkxiKGYscCx6LHcpLG5ldyBoLlBiKGYscCx6LHcpLG5ldyBoLk5iKGYscCx6LHcpXTtmLnRhZ05hbWU9PT0iSU1HIiYmRC5wdXNoKG5ldyBoLlViKGYscCx6LHcpKTt3LmljPUQ7cz1bd10uY29uY2F0KEQpO2lmKHc9Zi5jdXJyZW50U3R5bGUuZ2V0QXR0cmlidXRlKGguSSsid2F0Y2gtYW5jZXN0b3JzIikpe0M9W107dz1wYXJzZUludCh3LDEwKTtEPTA7Zm9yKEY9Zi5wYXJlbnROb2RlO0YmJih3PT09Ik5hTiJ8fEQrKzx3KTspe0MucHVzaChGKTtGLmF0dGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIix0KTtGLmF0dGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO0YuYXR0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSk7Rj1GLnBhcmVudE5vZGV9fWguV2E9PT04JiZoLkxhLlgoayk7aygxKX1pZigheSl7eT0xO2YuYXR0YWNoRXZlbnQoIm9ubW92ZSIsaik7Zi5hdHRhY2hFdmVudCgib25yZXNpemUiLGopO2YuYXR0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLAptKTtmLmF0dGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO2YuYXR0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSk7aC50YS5YKGopO2guRi5YKHIpfXAuRmEoKX19ZnVuY3Rpb24gaigpe3AmJnAuemMoKSYmaygpfWZ1bmN0aW9uIGsodyl7aWYoIUgpaWYoQil7dmFyIEQsRjt2KCk7aWYod3x8cC5LYygpKXtEPTA7Zm9yKEY9cy5sZW5ndGg7RDxGO0QrKylzW0RdLmRiKCl9aWYod3x8cC5OYygpKXtEPTA7Zm9yKEY9cy5sZW5ndGg7RDxGO0QrKylzW0RdLkViKCl9eCgpfWVsc2UgQXx8aSgpfWZ1bmN0aW9uIG0oKXt2YXIgdyxELEY7dz1ldmVudDtpZighSCYmISh3JiZ3LnByb3BlcnR5TmFtZSBpbiBlKSlpZihCKXt2KCk7dz0wO2ZvcihEPXMubGVuZ3RoO3c8RDt3Kyspe0Y9c1t3XTtGLlphfHxGLmRiKCk7Ri5OKCkmJkYuRGIoKX14KCl9ZWxzZSBBfHxpKCl9ZnVuY3Rpb24gbCgpe2lmKGYpZi5jbGFzc05hbWUrPWd9ZnVuY3Rpb24gdSgpe2lmKGYpZi5jbGFzc05hbWU9Zi5jbGFzc05hbWUucmVwbGFjZShkLAoiIil9ZnVuY3Rpb24gbigpe3NldFRpbWVvdXQobCwwKX1mdW5jdGlvbiBxKCl7c2V0VGltZW91dCh1LDApfWZ1bmN0aW9uIHQoKXt2YXIgdz1ldmVudC5wcm9wZXJ0eU5hbWU7aWYodz09PSJjbGFzc05hbWUifHx3PT09ImlkIiltKCl9ZnVuY3Rpb24gdigpe3AuRGEoKTtmb3IodmFyIHc9RS5sZW5ndGg7dy0tOylFW3ddLkRhKCl9ZnVuY3Rpb24geCgpe2Zvcih2YXIgdz1FLmxlbmd0aDt3LS07KUVbd10uRmEoKTtwLkZhKCl9ZnVuY3Rpb24gcigpe2lmKHkpe2lmKEMpZm9yKHZhciB3PTAsRD1DLmxlbmd0aCxGO3c8RDt3Kyspe0Y9Q1t3XTtGLmRldGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIix0KTtGLmRldGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO0YuZGV0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSl9Zi5kZXRhY2hFdmVudCgib25tb3ZlIixrKTtmLmRldGFjaEV2ZW50KCJvbnJlc2l6ZSIsayk7Zi5kZXRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsbSk7Zi5kZXRhY2hFdmVudCgib25tb3VzZWVudGVyIiwKbik7Zi5kZXRhY2hFdmVudCgib25tb3VzZWxlYXZlIixxKTtoLkYuR2Eocik7eT0wfX1mdW5jdGlvbiBvKCl7aWYoIUgpe3ZhciB3LEQ7cigpO0g9MTtpZihzKXt3PTA7Zm9yKEQ9cy5sZW5ndGg7dzxEO3crKylzW3ddLmsoKX1oLldhPT09OCYmaC5MYS5HYShrKTtoLnRhLkdhKGspO3M9cD16PUU9Qz1mPW51bGx9fXZhciBzLHA9bmV3IEsoZikseixFLEMsQSxCLHksRyxIO3RoaXMuRGM9aTt0aGlzLnVwZGF0ZT1rO3RoaXMuaz1vO3RoaXMudmM9Zn12YXIgYj17fSxjPWguSSsibGF6eS1pbml0IixnPSIgIitoLkphKyJob3ZlciIsZD1uZXcgUmVnRXhwKCJcXGIiK2guSmErImhvdmVyXFxiIiwiZyIpLGU9e2JhY2tncm91bmQ6MSxiZ0NvbG9yOjEsZGlzcGxheToxfTthLnhjPWZ1bmN0aW9uKGYpe3ZhciBpPWgubi5vYShmKTtyZXR1cm4gYltpXXx8KGJbaV09bmV3IGEoZikpfTthLms9ZnVuY3Rpb24oZil7Zj1oLm4ub2EoZik7dmFyIGk9YltmXTtpZihpKXtpLmsoKTtkZWxldGUgYltmXX19OwphLnJjPWZ1bmN0aW9uKCl7dmFyIGY9W10saTtpZihiKXtmb3IodmFyIGogaW4gYilpZihiLmhhc093blByb3BlcnR5KGopKXtpPWJbal07Zi5wdXNoKGkudmMpO2kuaygpfWI9e319cmV0dXJuIGZ9O3JldHVybiBhfSgpO2guYXR0YWNoPWZ1bmN0aW9uKGEpe2guRDw5JiZoLkthLnhjKGEpLkRjKCl9O2guZGV0YWNoPWZ1bmN0aW9uKGEpe2guS2EuayhhKX19Owp2YXIgTD13aW5kb3cuUElFLE49ZWxlbWVudDtmdW5jdGlvbiBpbml0KCl7ZG9jLm1lZGlhIT09InByaW50IiYmTC5hdHRhY2goTil9ZnVuY3Rpb24gY2xlYW51cCgpe0wuZGV0YWNoKE4pO0w9Tj0wfU4ucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSImJmluaXQoKTsKPC9zY3JpcHQ+CjwvUFVCTElDOkNPTVBPTkVOVD4K);padding: 0;margin: 5px 0 0 6px;}.search-submit {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAAAaCAIAAACci1P5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjc1MUQ2QTlGQkU4NDExRTA4NzNDRjJFNEQwQTYyMDczIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjc1MUQ2QUEwQkU4NDExRTA4NzNDRjJFNEQwQTYyMDczIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzUxRDZBOURCRTg0MTFFMDg3M0NGMkU0RDBBNjIwNzMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzUxRDZBOUVCRTg0MTFFMDg3M0NGMkU0RDBBNjIwNzMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5HKr0GAAAIwElEQVR42rRXa4xdVRXej3PuvZMp00Kb6EDHMiEyw9SGMliB+EbF+AeDURNCIFofxaFEExMijx+NiRIoiC1qwFcMURMkTWDa+gTr0NLQTqelPjrjFJhKmcHWTtu5r3POfqztt/YZ2ib6957JTM7cux9rf+tb3/q2fOKB+/OT89n8fJBKCApBJiE4GRIRSOCTzj5BChmECsIrfqGg5gTNUiGl5mCkwoc8ZteuXc656tHpi1/cK4mUxyR8F7xCxEp3OsoAOKRVgjcUCFdbERqCtnt3JOBj3l9JLycmDllrjTHy9ellO38PLPmLIKSUovMPSc6efjtpIQDNgH98UP8kMeqKsyJoRPnaa0dNkWVFyLJMv/DnJa8ctoI0Mf5CA27V+UAFQmVQJPG/wI4CR6zUiWB+7DzikSdPniwKm+ftdmshO1GvPvEjhGiVBzMUeSk6m/NATC8kW4VQRow0ggYIOghLsjLu/fbgk66uappqHdPr36GLy3qrb4DB0pMDLSX5jkYpJRUoD95EcnBBGM1pDOQTmUpprxVhD7mkWu1SicMAJ1yRd9neXn/s9UBaKU2uYM50FkxON4JFnF4whMotYumCJS2R2EESCR6GOk1rSa2omcbSiwR0SAXnCy4vfmVhYqHg1XgJnFvzoh5KoRgJlKmPUgIVk15hRy2dZ4IhR6gHkC2AQ1oHL7Ry5BXmUQBqnuHEK8W5vDMezjtx9oUT4NzyIJIIOxbQCDfl3GtP5Jm/xAwW1gmteXxgxrBWSeYDfjnU4KCqwmJBhIU5RuqAodiO6xXAEMTMxqpVgXgchyi8hQAh1yqRIFYsaymR+pIFjuuWY10sLyESBhkMxonU4ov3nk+k4hyyXkmcnrgM4yStUs8ogyFIFmQ1qhppAd74+CKJY+QwU6VzGzROIj1Oi+VRkUamimzOq2EnJFXirFbZFAjiBHFZQqpj7QfFCKgSy3NPnIqYCH+h9jaI3OTJ4IBfPSgGB8VVV4m+lRnZwtl2ltt3XSoGhlpKZ8bhE1Ot1IYGWybPa5XK0KBxNquo6uBAwxtx+eV0ybKiKECE3GTJ0Op2JQl9K2l5D9Zv1xJ8knnrnfWGfODdL3zU27W2+ADEMj5yDtzEGZuG3v/41uGNd1/55S++9/5vDdz1tZZx9cK8+757rv3OgwPr77hx29NLPvGxdmGqq/qve/z7dWeSvv4btm5Z8Pxy/Q+3NvMi7e9ft+WxunOZycWqvht+sLlhzNDd31h+0yexVP/IV4fvvdcYG3F0Bjs7dw4s/FX/27Iu/NoDI59j1O5HN7+wYWRqdAfqL7Pm0s/dsuKaq5+/7Y6xOzcefPIn676+sUFZ0xsnlAU/nBFS2BzIgMkoDjc7uhNrr7jp43Uyqz77+enn/mDPLBA6iaesq7rqwx/Y98hm7G5dbpBuOo9lGe7/j/L8I5w3XL7VECoo69jQMmdWfuiDrz77u7TRukjpmV89XelZ1vOetaBlEgnjyDKliQz0RPELpHviyZ8Of2XDQqL7b/zozPYdIKmj5LLhNR95aPP06M75F/egkJjQSCCyfkGg57EM8nyUZfjlAzCgVhw5FBeLoGb5qHgB002B8g3OiiKaqeBR3ljBMuVRPZ5HIoUC0VfIH39uFOL1qe9tOTX1j7MHDgiPXohfWe3pwsLYSqAVWmcJP6KM4VzeVdQ/1qfFsmcvBFICD+IB1pnQYn3kwaxn2Amxnnj1SO/w9c3CLOTF0quvwQLzU9Psp4Ro+7ywEARC8kBvGAlDxuCN6PBTv1y5bt3+hx+N+OKgYXb84LNf+NLa229Lr7iijWGoM8dFFHhrZJITK7xLyoopzSWXEZQCR8NnLrCkI4noVcgjH9Bqxp7l6ugvnhratu19395UNFqrP/Pp3Q9+Vy802S4EseaukaXv7IX/WzOyAS+ihLivd+2tt155y827Hrgvn5ys6hqOjxNAXdNG/fj43uvu+ebY+ju1kpZFOhTcJ5EtQKgtfjZt2oTgnGfK28LOT/69OX4QiWctjE0LmxREpycOUaMOsW/OzrWmpqjZmtzx27TnYjSpA488Nv+XMY0AiVr1JjJtm/V/7d+XAK5Wa3Z838L4RLW7u7rikpceeri5byJRLN/YEODUpybN7FtzL7+S9PScPrA/4UYNjsFmOm7mjFs4JUogQ4C2Fa3sbLv5xq9/M/ezn+MIijsPhikmJcRfeKiuiw0sgTZDch0VCb6Gn6YkJOxP8BesRHsMsQwUgwvkNfct5SDpASLOtwG0MHAXK1gtUwAhSwNn4cMkhmBbNnOYpxPvD3fHJs7U5G4r2DY3FkAOVRoQYs+O3pSQ8Vpa7rzcrS0cHRs7mTAe6B0gGOYDIgMb49GSuflThRs7XwcE+3+2OUKk8GOep6MSvOUDgp7s0vCjEYKBzyH2wgiGSw8dS5yVMjmnQTgQlK55bIbzHNOBfoWC8BrLk7LomM6ynWB/hSoyQDHePlAkQAizAJnh/h6bKzdoNuFsGDAaVYnUiIYINUImUKAhpoHFFBux9zHSo82i/Wh2INEccEOn46orKTPOJYdmY9r1Q3/DkkgWwgHxrYhWjx0KI8u+GLhplmqKDsk4+AuMYBcLkVJRxVmmgB+ni7UpOlt2OQgR80VEAM3ZBxPKqwtaMRBFafB1DLqgPVeGSEn+O9FvJV2LGSf2NmH2T7uL+gIngFIfcscGK4H/4WOxk4iuCgn0ICLDYJD3YB2vDBigd6xEmlMMzUJdOb6IhnjNQ6XHOHieRCYrKODy/oAhDCEEGdA7x6zmvSA6Pg/qj8u6ocDSxQc3ijOzc3tuX29PncBRFO+YlP6+sw9XiooXnsWrT6xXtp65kM8vX/Jm0sX1UbTa6LdnZo7tHdnQOjYnmSucrRAtZaevZmVkZWcp71gyystfu2vjS7tdSJ02MiRy6qWxmbGXjzyzrTh9CshF78kMdGC+F52+7kZ2cRF67VkjhJytVt6s1f6Dmxgyyq0LEaj/CjAAp8zAK0+35KIAAAAASUVORK5CYII=) repeat-x;width: 55px;height: 26px;border: none;position: absolute;top: 5px;right: 5px;cursor: pointer;}.main-menu {height: 36px;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAjCAIAAADaE/fjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjIxRjRBMjJCQkU4ODExRTA4MjhGOTQ1RDk5MTBCMTlBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjIxRjRBMjJDQkU4ODExRTA4MjhGOTQ1RDk5MTBCMTlBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjFGNEEyMjlCRTg4MTFFMDgyOEY5NDVEOTkxMEIxOUEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjFGNEEyMkFCRTg4MTFFMDgyOEY5NDVEOTkxMEIxOUEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7bOum2AAAAK0lEQVR42mIICwtj+v//PxgzMDAw/fv3D0yDMEycFAzSj0sOm5lIYgABBgD0+FfqzSQIAwAAAABJRU5ErkJggg==) repeat-x;border-top: 1px solid #7a7a7a;border-left: 1px solid #858585;-moz-border-radius:10px 10px 0 0px; -webkit-border-radius: 10px 10px 0 0px; border-radius: 10px 10px 0 0px; behavior: url(data:image/htc;base64,PCEtLQpQSUU6IENTUzMgcmVuZGVyaW5nIGZvciBJRQpWZXJzaW9uIDEuMGJldGEzCmh0dHA6Ly9jc3MzcGllLmNvbQpEdWFsLWxpY2Vuc2VkIGZvciB1c2UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wIG9yIHRoZSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMi4KLS0+CjwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwMTQpYWJvdXQ6aW50ZXJuZXQgLS0+CjxQVUJMSUM6Q09NUE9ORU5UIGxpZ2h0V2VpZ2h0PSJ0cnVlIj4KPFBVQkxJQzpBVFRBQ0ggRVZFTlQ9Im9uY29udGVudHJlYWR5IiBGT1I9ImVsZW1lbnQiIE9ORVZFTlQ9ImluaXQoKSIgLz4KPFBVQkxJQzpBVFRBQ0ggRVZFTlQ9Im9uZG9jdW1lbnRyZWFkeSIgRk9SPSJlbGVtZW50IiBPTkVWRU5UPSJpbml0KCkiIC8+CjxQVUJMSUM6QVRUQUNIIEVWRU5UPSJvbmRldGFjaCIgRk9SPSJlbGVtZW50IiBPTkVWRU5UPSJjbGVhbnVwKCkiIC8+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBkb2MgPSBlbGVtZW50LmRvY3VtZW50O3ZhciBoPXdpbmRvdy5QSUU7CmlmKCFoKXtoPXdpbmRvdy5QSUU9e0k6Ii1waWUtIixOYToiUGllIixKYToicGllXyIsQ2I6e1REOjEsVEg6MX19O3RyeXtkb2MuZXhlY0NvbW1hbmQoIkJhY2tncm91bmRJbWFnZUNhY2hlIixmYWxzZSx0cnVlKX1jYXRjaChKKXt9aC5EPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPTQsYj1kb2MuY3JlYXRlRWxlbWVudCgiZGl2IiksYz1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpIik7Yi5pbm5lckhUTUw9IjwhLS1baWYgZ3QgSUUgIisgKythKyJdPjxpPjwvaT48IVtlbmRpZl0tLVw+IixjWzBdOyk7cmV0dXJuIGF9KCk7aWYoaC5EPT09NiloLkk9aC5JLnJlcGxhY2UoL14tLywiIik7aC5XYT1oLkQ9PT04JiZkb2MuZG9jdW1lbnRNb2RlO2gubj17QWE6ZnVuY3Rpb24oYSl7dmFyIGI9aC5mYztpZighYil7Yj1oLmZjPWRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yi5uYW1lc3BhY2VzLmFkZCgiY3NzM3ZtbCIsInVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIil9cmV0dXJuIGIuY3JlYXRlRWxlbWVudCgiY3NzM3ZtbDoiK2EpfSwKb2E6ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEuX3BpZUlkfHwoYS5fcGllSWQ9K25ldyBEYXRlK01hdGgucmFuZG9tKCkpfSwkYTpmdW5jdGlvbihhKXt2YXIgYixjLGcsZCxlPWFyZ3VtZW50cztiPTE7Zm9yKGM9ZS5sZW5ndGg7YjxjO2IrKyl7ZD1lW2JdO2ZvcihnIGluIGQpaWYoZC5oYXNPd25Qcm9wZXJ0eShnKSlhW2ddPWRbZ119cmV0dXJuIGF9LEliOmZ1bmN0aW9uKGEsYixjKXt2YXIgZz1oLlpifHwoaC5aYj17fSksZD1nW2FdLGU7aWYoZCliLmNhbGwoYyxkKTtlbHNle2U9bmV3IEltYWdlO2Uub25sb2FkPWZ1bmN0aW9uKCl7ZD1nW2FdPXtnOmUud2lkdGgsZTplLmhlaWdodH07Yi5jYWxsKGMsZCk7ZS5vbmxvYWQ9bnVsbH07ZS5zcmM9YX19fTtoLmVhPWZ1bmN0aW9uKCl7dGhpcy5iYj1bXTt0aGlzLndiPXt9fTtoLmVhLnByb3RvdHlwZT17WDpmdW5jdGlvbihhKXt2YXIgYj1oLm4ub2EoYSksYz10aGlzLndiLGc9dGhpcy5iYjtpZighKGIgaW4gYykpe2NbYl09Zy5sZW5ndGg7CmcucHVzaChhKX19LEdhOmZ1bmN0aW9uKGEpe2E9aC5uLm9hKGEpO3ZhciBiPXRoaXMud2I7aWYoYSYmYSBpbiBiKXtkZWxldGUgdGhpcy5iYltiW2FdXTtkZWxldGUgYlthXX19LENhOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMuYmIsYj1hLmxlbmd0aDtiLS07KWFbYl0mJmFbYl0oKX19O2lmKGguV2E9PT04KXtoLkxhPW5ldyBoLmVhO3NldEludGVydmFsKGZ1bmN0aW9uKCl7aC5MYS5DYSgpfSwyNTApfWguRj1uZXcgaC5lYTt3aW5kb3cuYXR0YWNoRXZlbnQoIm9uYmVmb3JldW5sb2FkIixmdW5jdGlvbigpe2guRi5DYSgpfSk7aC5GLnlhPWZ1bmN0aW9uKGEsYixjKXthLmF0dGFjaEV2ZW50KGIsYyk7dGhpcy5YKGZ1bmN0aW9uKCl7YS5kZXRhY2hFdmVudChiLGMpfSl9OyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtoLnRhLkNhKCl9aC50YT1uZXcgaC5lYTtoLkYueWEod2luZG93LCJvbnJlc2l6ZSIsYSl9KSgpOyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtoLk1hLkNhKCl9aC5NYT0KbmV3IGguZWE7aC5GLnlhKHdpbmRvdywib25zY3JvbGwiLGEpO2gudGEuWChhKX0pKCk7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2M9aC5LYS5yYygpfWZ1bmN0aW9uIGIoKXtpZihjKXtmb3IodmFyIGc9MCxkPWMubGVuZ3RoO2c8ZDtnKyspaC5hdHRhY2goY1tnXSk7Yz0wfX12YXIgYztoLkYueWEod2luZG93LCJvbmJlZm9yZXByaW50IixhKTtoLkYueWEod2luZG93LCJvbmFmdGVycHJpbnQiLGIpfSkoKTtoLmk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGUpe3RoaXMudz1lfXZhciBiPWRvYy5jcmVhdGVFbGVtZW50KCJsZW5ndGgtY2FsYyIpLGM9Yi5zdHlsZSxnPXt9LGQ9e307Yy5wb3NpdGlvbj0iYWJzb2x1dGUiO2MudG9wPWMubGVmdD0tOTk5OTthLnByb3RvdHlwZT17Y2I6LyhweHxlbXxleHxtbXxjbXxpbnxwdHxwY3wlKSQvLHJiOmZ1bmN0aW9uKCl7dmFyIGU9Z1t0aGlzLnddO2lmKGU9PT12b2lkIDApZT1nW3RoaXMud109cGFyc2VGbG9hdCh0aGlzLncpO3JldHVybiBlfSwKVWE6ZnVuY3Rpb24oKXt2YXIgZT1kW3RoaXMud107aWYoIWUpe2U9dGhpcy53Lm1hdGNoKHRoaXMuY2IpO2U9ZFt0aGlzLnddPWUmJmVbMF18fCJweCJ9cmV0dXJuIGV9LGE6ZnVuY3Rpb24oZSxmKXt2YXIgaT10aGlzLnJiKCksaj10aGlzLlVhKCk7c3dpdGNoKGope2Nhc2UgInB4IjpyZXR1cm4gaTtjYXNlICIlIjpyZXR1cm4gaSoodHlwZW9mIGY9PT0iZnVuY3Rpb24iP2YoKTpmKS8xMDA7Y2FzZSAiZW0iOnJldHVybiBpKnRoaXMucGIoZSk7Y2FzZSAiZXgiOnJldHVybiBpKnRoaXMucGIoZSkvMjtkZWZhdWx0OnJldHVybiBpKmEub2Nbal19fSxwYjpmdW5jdGlvbihlKXt2YXIgZj1lLmN1cnJlbnRTdHlsZS5mb250U2l6ZTtpZihmLmluZGV4T2YoInB4Iik+MClyZXR1cm4gcGFyc2VGbG9hdChmKTtlbHNle2Iuc3R5bGUud2lkdGg9IjFlbSI7ZS5hcHBlbmRDaGlsZChiKTtmPWIub2Zmc2V0V2lkdGg7Yi5wYXJlbnROb2RlIT09ZSYmZS5yZW1vdmVDaGlsZChiKTtyZXR1cm4gZn19fTsKYS5vYz1mdW5jdGlvbigpe3ZhciBlPVsibW0iLCJjbSIsImluIiwicHQiLCJwYyJdLGY9e30saT1kb2MuZG9jdW1lbnRFbGVtZW50LGo9ZS5sZW5ndGgsaztmb3IoaS5hcHBlbmRDaGlsZChiKTtqLS07KXtrPWVbal07Yi5zdHlsZS53aWR0aD0iMTAwIitrO2Zba109Yi5vZmZzZXRXaWR0aC8xMDB9aS5yZW1vdmVDaGlsZChiKTtyZXR1cm4gZn0oKTthLmxiPW5ldyBhKCIwIik7cmV0dXJuIGF9KCk7aC5IYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoZCl7dGhpcy5RPWR9dmFyIGI9bmV3IGguaSgiNTAlIiksYz17dG9wOjEsY2VudGVyOjEsYm90dG9tOjF9LGc9e2xlZnQ6MSxjZW50ZXI6MSxyaWdodDoxfTthLnByb3RvdHlwZT17eWM6ZnVuY3Rpb24oKXtpZighdGhpcy5vYil7dmFyIGQ9dGhpcy5RLGU9ZC5sZW5ndGgsZj1oLmkubGIsaT1oLnEuZmEuYmE7Zj1bImxlZnQiLGYsInRvcCIsZl07aWYoZT09PTEpe2QucHVzaCh7dHlwZTppLHZhbHVlOiJjZW50ZXIifSk7ZSsrfWlmKGU9PT0yKXtpJgooZFswXS50eXBlfGRbMV0udHlwZSkmJmRbMF0udmFsdWUgaW4gYyYmZFsxXS52YWx1ZSBpbiBnJiZkLnB1c2goZC5zaGlmdCgpKTtpZihkWzBdLnR5cGUmaSlpZihkWzBdLnZhbHVlPT09ImNlbnRlciIpZlsxXT1iO2Vsc2UgZlswXT1kWzBdLnZhbHVlO2Vsc2UgaWYoZFswXS5VKCkpZlsxXT1uZXcgaC5pKGRbMF0udmFsdWUpO2lmKGRbMV0udHlwZSZpKWlmKGRbMV0udmFsdWU9PT0iY2VudGVyIilmWzNdPWI7ZWxzZSBmWzJdPWRbMV0udmFsdWU7ZWxzZSBpZihkWzFdLlUoKSlmWzNdPW5ldyBoLmkoZFsxXS52YWx1ZSl9dGhpcy5vYj1mfXJldHVybiB0aGlzLm9ifSxjb29yZHM6ZnVuY3Rpb24oZCxlLGYpe3ZhciBpPXRoaXMueWMoKSxqPWlbMV0uYShkLGUpO2Q9aVszXS5hKGQsZik7cmV0dXJue3g6aVswXT09PSJyaWdodCI/ZS1qOmoseTppWzJdPT09ImJvdHRvbSI/Zi1kOmR9fX07cmV0dXJuIGF9KCk7aC5LYj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7dGhpcy53PWJ9YS5wcm90b3R5cGU9CntjYjovW2Etel0rJC9pLFVhOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWN8fCh0aGlzLmVjPXRoaXMudy5tYXRjaCh0aGlzLmNiKVswXS50b0xvd2VyQ2FzZSgpKX0scWM6ZnVuY3Rpb24oKXt2YXIgYj10aGlzLlliLGM7aWYoYj09PXVuZGVmaW5lZCl7Yj10aGlzLlVhKCk7Yz1wYXJzZUZsb2F0KHRoaXMudywxMCk7Yj10aGlzLlliPWI9PT0iZGVnIj9jOmI9PT0icmFkIj9jL01hdGguUEkqMTgwOmI9PT0iZ3JhZCI/Yy80MDAqMzYwOmI9PT0idHVybiI/YyozNjA6MH1yZXR1cm4gYn19O3JldHVybiBhfSgpO2guUj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7dGhpcy53PWJ9YS5NYz0vXHMqcmdiYVwoXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSlccyosXHMqKFxkK3xcZCpcLlxkKylccypcKVxzKi87YS5hYj17YWxpY2VibHVlOiIjRjBGOEZGIixhbnRpcXVld2hpdGU6IiNGQUVCRDciLGFxdWE6IiMwMEZGRkYiLGFxdWFtYXJpbmU6IiM3RkZGRDQiLAphenVyZToiI0YwRkZGRiIsYmVpZ2U6IiNGNUY1REMiLGJpc3F1ZToiI0ZGRTRDNCIsYmxhY2s6IiMwMDAwMDAiLGJsYW5jaGVkYWxtb25kOiIjRkZFQkNEIixibHVlOiIjMDAwMEZGIixibHVldmlvbGV0OiIjOEEyQkUyIixicm93bjoiI0E1MkEyQSIsYnVybHl3b29kOiIjREVCODg3IixjYWRldGJsdWU6IiM1RjlFQTAiLGNoYXJ0cmV1c2U6IiM3RkZGMDAiLGNob2NvbGF0ZToiI0QyNjkxRSIsY29yYWw6IiNGRjdGNTAiLGNvcm5mbG93ZXJibHVlOiIjNjQ5NUVEIixjb3Juc2lsazoiI0ZGRjhEQyIsY3JpbXNvbjoiI0RDMTQzQyIsY3lhbjoiIzAwRkZGRiIsZGFya2JsdWU6IiMwMDAwOEIiLGRhcmtjeWFuOiIjMDA4QjhCIixkYXJrZ29sZGVucm9kOiIjQjg4NjBCIixkYXJrZ3JheToiI0E5QTlBOSIsZGFya2dyZWVuOiIjMDA2NDAwIixkYXJra2hha2k6IiNCREI3NkIiLGRhcmttYWdlbnRhOiIjOEIwMDhCIixkYXJrb2xpdmVncmVlbjoiIzU1NkIyRiIsZGFya29yYW5nZToiI0ZGOEMwMCIsCmRhcmtvcmNoaWQ6IiM5OTMyQ0MiLGRhcmtyZWQ6IiM4QjAwMDAiLGRhcmtzYWxtb246IiNFOTk2N0EiLGRhcmtzZWFncmVlbjoiIzhGQkM4RiIsZGFya3NsYXRlYmx1ZToiIzQ4M0Q4QiIsZGFya3NsYXRlZ3JheToiIzJGNEY0RiIsZGFya3R1cnF1b2lzZToiIzAwQ0VEMSIsZGFya3Zpb2xldDoiIzk0MDBEMyIsZGVlcHBpbms6IiNGRjE0OTMiLGRlZXBza3libHVlOiIjMDBCRkZGIixkaW1ncmF5OiIjNjk2OTY5Iixkb2RnZXJibHVlOiIjMUU5MEZGIixmaXJlYnJpY2s6IiNCMjIyMjIiLGZsb3JhbHdoaXRlOiIjRkZGQUYwIixmb3Jlc3RncmVlbjoiIzIyOEIyMiIsZnVjaHNpYToiI0ZGMDBGRiIsZ2FpbnNib3JvOiIjRENEQ0RDIixnaG9zdHdoaXRlOiIjRjhGOEZGIixnb2xkOiIjRkZENzAwIixnb2xkZW5yb2Q6IiNEQUE1MjAiLGdyYXk6IiM4MDgwODAiLGdyZWVuOiIjMDA4MDAwIixncmVlbnllbGxvdzoiI0FERkYyRiIsaG9uZXlkZXc6IiNGMEZGRjAiLGhvdHBpbms6IiNGRjY5QjQiLAppbmRpYW5yZWQ6IiNDRDVDNUMiLGluZGlnbzoiIzRCMDA4MiIsaXZvcnk6IiNGRkZGRjAiLGtoYWtpOiIjRjBFNjhDIixsYXZlbmRlcjoiI0U2RTZGQSIsbGF2ZW5kZXJibHVzaDoiI0ZGRjBGNSIsbGF3bmdyZWVuOiIjN0NGQzAwIixsZW1vbmNoaWZmb246IiNGRkZBQ0QiLGxpZ2h0Ymx1ZToiI0FERDhFNiIsbGlnaHRjb3JhbDoiI0YwODA4MCIsbGlnaHRjeWFuOiIjRTBGRkZGIixsaWdodGdvbGRlbnJvZHllbGxvdzoiI0ZBRkFEMiIsbGlnaHRncmVlbjoiIzkwRUU5MCIsbGlnaHRncmV5OiIjRDNEM0QzIixsaWdodHBpbms6IiNGRkI2QzEiLGxpZ2h0c2FsbW9uOiIjRkZBMDdBIixsaWdodHNlYWdyZWVuOiIjMjBCMkFBIixsaWdodHNreWJsdWU6IiM4N0NFRkEiLGxpZ2h0c2xhdGVncmF5OiIjNzc4ODk5IixsaWdodHN0ZWVsYmx1ZToiI0IwQzRERSIsbGlnaHR5ZWxsb3c6IiNGRkZGRTAiLGxpbWU6IiMwMEZGMDAiLGxpbWVncmVlbjoiIzMyQ0QzMiIsbGluZW46IiNGQUYwRTYiLG1hZ2VudGE6IiNGRjAwRkYiLAptYXJvb246IiM4MDAwMDAiLG1lZGl1bWF1cWFtYXJpbmU6IiM2NkNEQUEiLG1lZGl1bWJsdWU6IiMwMDAwQ0QiLG1lZGl1bW9yY2hpZDoiI0JBNTVEMyIsbWVkaXVtcHVycGxlOiIjOTM3MEQ4IixtZWRpdW1zZWFncmVlbjoiIzNDQjM3MSIsbWVkaXVtc2xhdGVibHVlOiIjN0I2OEVFIixtZWRpdW1zcHJpbmdncmVlbjoiIzAwRkE5QSIsbWVkaXVtdHVycXVvaXNlOiIjNDhEMUNDIixtZWRpdW12aW9sZXRyZWQ6IiNDNzE1ODUiLG1pZG5pZ2h0Ymx1ZToiIzE5MTk3MCIsbWludGNyZWFtOiIjRjVGRkZBIixtaXN0eXJvc2U6IiNGRkU0RTEiLG1vY2Nhc2luOiIjRkZFNEI1IixuYXZham93aGl0ZToiI0ZGREVBRCIsbmF2eToiIzAwMDA4MCIsb2xkbGFjZToiI0ZERjVFNiIsb2xpdmU6IiM4MDgwMDAiLG9saXZlZHJhYjoiIzY4OEUyMyIsb3JhbmdlOiIjRkZBNTAwIixvcmFuZ2VyZWQ6IiNGRjQ1MDAiLG9yY2hpZDoiI0RBNzBENiIscGFsZWdvbGRlbnJvZDoiI0VFRThBQSIscGFsZWdyZWVuOiIjOThGQjk4IiwKcGFsZXR1cnF1b2lzZToiI0FGRUVFRSIscGFsZXZpb2xldHJlZDoiI0Q4NzA5MyIscGFwYXlhd2hpcDoiI0ZGRUZENSIscGVhY2hwdWZmOiIjRkZEQUI5IixwZXJ1OiIjQ0Q4NTNGIixwaW5rOiIjRkZDMENCIixwbHVtOiIjRERBMEREIixwb3dkZXJibHVlOiIjQjBFMEU2IixwdXJwbGU6IiM4MDAwODAiLHJlZDoiI0ZGMDAwMCIscm9zeWJyb3duOiIjQkM4RjhGIixyb3lhbGJsdWU6IiM0MTY5RTEiLHNhZGRsZWJyb3duOiIjOEI0NTEzIixzYWxtb246IiNGQTgwNzIiLHNhbmR5YnJvd246IiNGNEE0NjAiLHNlYWdyZWVuOiIjMkU4QjU3IixzZWFzaGVsbDoiI0ZGRjVFRSIsc2llbm5hOiIjQTA1MjJEIixzaWx2ZXI6IiNDMEMwQzAiLHNreWJsdWU6IiM4N0NFRUIiLHNsYXRlYmx1ZToiIzZBNUFDRCIsc2xhdGVncmF5OiIjNzA4MDkwIixzbm93OiIjRkZGQUZBIixzcHJpbmdncmVlbjoiIzAwRkY3RiIsc3RlZWxibHVlOiIjNDY4MkI0Iix0YW46IiNEMkI0OEMiLHRlYWw6IiMwMDgwODAiLAp0aGlzdGxlOiIjRDhCRkQ4Iix0b21hdG86IiNGRjYzNDciLHR1cnF1b2lzZToiIzQwRTBEMCIsdmlvbGV0OiIjRUU4MkVFIix3aGVhdDoiI0Y1REVCMyIsd2hpdGU6IiNGRkZGRkYiLHdoaXRlc21va2U6IiNGNUY1RjUiLHllbGxvdzoiI0ZGRkYwMCIseWVsbG93Z3JlZW46IiM5QUNEMzIifTthLnByb3RvdHlwZT17cGFyc2U6ZnVuY3Rpb24oKXtpZighdGhpcy53YSl7dmFyIGI9dGhpcy53LGM7aWYoYz1iLm1hdGNoKGEuTWMpKXt0aGlzLndhPSJyZ2IoIitjWzFdKyIsIitjWzJdKyIsIitjWzNdKyIpIjt0aGlzLm1iPXBhcnNlRmxvYXQoY1s0XSl9ZWxzZXtpZigoYz1iLnRvTG93ZXJDYXNlKCkpaW4gYS5hYiliPWEuYWJbY107dGhpcy53YT1iO3RoaXMubWI9Yj09PSJ0cmFuc3BhcmVudCI/MDoxfX19LHZhbHVlOmZ1bmN0aW9uKGIpe3RoaXMucGFyc2UoKTtyZXR1cm4gdGhpcy53YT09PSJjdXJyZW50Q29sb3IiP2IuY3VycmVudFN0eWxlLmNvbG9yOnRoaXMud2F9LGhhOmZ1bmN0aW9uKCl7dGhpcy5wYXJzZSgpOwpyZXR1cm4gdGhpcy5tYn19O3JldHVybiBhfSgpO2gucT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYyl7dGhpcy5CYT1jO3RoaXMuY2g9MDt0aGlzLlE9W107dGhpcy5yYT0wfXZhciBiPWEuZmE9e3NhOjEsaWI6MixhYTo0LFRiOjgsamI6MTYsYmE6MzIsejo2NCxjYToxMjgsZGE6MjU2LHVhOjUxMixXYjoxMDI0LFVSTDoyMDQ4fTthLmtiPWZ1bmN0aW9uKGMsZyl7dGhpcy50eXBlPWM7dGhpcy52YWx1ZT1nfTthLmtiLnByb3RvdHlwZT17WWE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlJmIuenx8dGhpcy50eXBlJmIuY2EmJnRoaXMudmFsdWU9PT0iMCJ9LFU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ZYSgpfHx0aGlzLnR5cGUmYi51YX19O2EucHJvdG90eXBlPXtWYzovXHMvLEdjOi9eW1wrXC1dPyhcZCpcLik/XGQrLyx1cmw6L151cmxcKFxzKigiKFteIl0qKSJ8JyhbXiddKiknfChbISMkJSYqLX5dKikpXHMqXCkvaSx2YjovXlwtP1tfYS16XVtcdy1dKi9pLFFjOi9eKCIoW14iXSopInwnKFteJ10qKScpLywKQWM6L14jKFtcZGEtZl17Nn18W1xkYS1mXXszfSkvaSxUYzp7cHg6Yi56LGVtOmIueixleDpiLnosbW06Yi56LGNtOmIueiwiaW4iOmIueixwdDpiLnoscGM6Yi56LGRlZzpiLnNhLHJhZDpiLnNhLGdyYWQ6Yi5zYX0sbGM6e3JnYjoxLHJnYmE6MSxoc2w6MSxoc2xhOjF9LG5leHQ6ZnVuY3Rpb24oYyl7ZnVuY3Rpb24gZyh1LG4pe3U9bmV3IGEua2IodSxuKTtpZighYyl7ay5RLnB1c2godSk7ay5yYSsrfXJldHVybiB1fWZ1bmN0aW9uIGQoKXtrLnJhKys7cmV0dXJuIG51bGx9dmFyIGUsZixpLGosaz10aGlzO2lmKHRoaXMucmE8dGhpcy5RLmxlbmd0aClyZXR1cm4gdGhpcy5RW3RoaXMucmErK107Zm9yKDt0aGlzLlZjLnRlc3QodGhpcy5CYS5jaGFyQXQodGhpcy5jaCkpOyl0aGlzLmNoKys7aWYodGhpcy5jaD49dGhpcy5CYS5sZW5ndGgpcmV0dXJuIGQoKTtmPXRoaXMuY2g7ZT10aGlzLkJhLnN1YnN0cmluZyh0aGlzLmNoKTtpPWUuY2hhckF0KDApO3N3aXRjaChpKXtjYXNlICIjIjppZihqPQplLm1hdGNoKHRoaXMuQWMpKXt0aGlzLmNoKz1qWzBdLmxlbmd0aDtyZXR1cm4gZyhiLmFhLGpbMF0pfWJyZWFrO2Nhc2UgJyInOmNhc2UgIiciOmlmKGo9ZS5tYXRjaCh0aGlzLlFjKSl7dGhpcy5jaCs9alswXS5sZW5ndGg7cmV0dXJuIGcoYi5XYixqWzJdfHxqWzNdfHwiIil9YnJlYWs7Y2FzZSAiLyI6Y2FzZSAiLCI6dGhpcy5jaCsrO3JldHVybiBnKGIuZGEsaSk7Y2FzZSAidSI6aWYoaj1lLm1hdGNoKHRoaXMudXJsKSl7dGhpcy5jaCs9alswXS5sZW5ndGg7cmV0dXJuIGcoYi5VUkwsalsyXXx8alszXXx8als0XXx8IiIpfX1pZihqPWUubWF0Y2godGhpcy5HYykpe2k9alswXTt0aGlzLmNoKz1pLmxlbmd0aDtpZihlLmNoYXJBdChpLmxlbmd0aCk9PT0iJSIpe3RoaXMuY2grKztyZXR1cm4gZyhiLnVhLGkrIiUiKX1pZihqPWUuc3Vic3RyaW5nKGkubGVuZ3RoKS5tYXRjaCh0aGlzLnZiKSl7aSs9alswXTt0aGlzLmNoKz1qWzBdLmxlbmd0aDtyZXR1cm4gZyh0aGlzLlRjW2pbMF0udG9Mb3dlckNhc2UoKV18fApiLlRiLGkpfXJldHVybiBnKGIuY2EsaSl9aWYoaj1lLm1hdGNoKHRoaXMudmIpKXtpPWpbMF07dGhpcy5jaCs9aS5sZW5ndGg7aWYoaS50b0xvd2VyQ2FzZSgpaW4gaC5SLmFifHxpPT09ImN1cnJlbnRDb2xvciIpcmV0dXJuIGcoYi5hYSxpKTtpZihlLmNoYXJBdChpLmxlbmd0aCk9PT0iKCIpe3RoaXMuY2grKztpZihpLnRvTG93ZXJDYXNlKClpbiB0aGlzLmxjKXtlPWZ1bmN0aW9uKHUpe3JldHVybiB1JiZ1LnR5cGUmYi5jYX07aj1mdW5jdGlvbih1KXtyZXR1cm4gdSYmdS50eXBlJihiLmNhfGIudWEpfTt2YXIgbT1mdW5jdGlvbih1LG4pe3JldHVybiB1JiZ1LnZhbHVlPT09bn0sbD1mdW5jdGlvbigpe3JldHVybiBrLm5leHQoMSl9O2lmKChpLmNoYXJBdCgwKT09PSJyIj9qKGwoKSk6ZShsKCkpKSYmbShsKCksIiwiKSYmaihsKCkpJiZtKGwoKSwiLCIpJiZqKGwoKSkmJihpPT09InJnYiJ8fGk9PT0iaHNhInx8bShsKCksIiwiKSYmZShsKCkpKSYmbShsKCksIikiKSlyZXR1cm4gZyhiLmFhLAp0aGlzLkJhLnN1YnN0cmluZyhmLHRoaXMuY2gpKTtyZXR1cm4gZCgpfXJldHVybiBnKGIuamIsaSsiKCIpfXJldHVybiBnKGIuYmEsaSl9dGhpcy5jaCsrO3JldHVybiBnKGIuaWIsaSl9LHY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RW3RoaXMucmEtLSAtMl19LGFsbDpmdW5jdGlvbigpe2Zvcig7dGhpcy5uZXh0KCk7KTtyZXR1cm4gdGhpcy5RfSwkOmZ1bmN0aW9uKGMsZyl7Zm9yKHZhciBkPVtdLGUsZjtlPXRoaXMubmV4dCgpOyl7aWYoYyhlKSl7Zj10cnVlO3RoaXMudigpO2JyZWFrfWQucHVzaChlKX1yZXR1cm4gZyYmIWY/bnVsbDpkfX07cmV0dXJuIGF9KCk7dmFyIEs9ZnVuY3Rpb24oYSl7dGhpcy5kPWF9O0sucHJvdG90eXBlPXtKOjAsS2M6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLk9hLGI7cmV0dXJuIWF8fChiPXRoaXMubSgpKSYmKGEueCE9PWIueHx8YS55IT09Yi55KX0sTmM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLk9hLGI7cmV0dXJuIWF8fChiPXRoaXMubSgpKSYmKGEuZyE9PQpiLmd8fGEuZSE9PWIuZSl9LHFiOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt4OmEubGVmdCx5OmEudG9wLGc6YS5yaWdodC1hLmxlZnQsZTphLmJvdHRvbS1hLnRvcH19LG06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5KP3RoaXMueGF8fCh0aGlzLnhhPXRoaXMucWIoKSk6dGhpcy5xYigpfSx6YzpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5PYX0sRGE6ZnVuY3Rpb24oKXsrK3RoaXMuSn0sRmE6ZnVuY3Rpb24oKXtpZighLS10aGlzLkope2lmKHRoaXMueGEpdGhpcy5PYT10aGlzLnhhO3RoaXMueGE9bnVsbH19fTsoZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIpe3ZhciBjPWgubi5vYShiKTtyZXR1cm4gZnVuY3Rpb24oKXtpZih0aGlzLkope3ZhciBnPXRoaXMubmJ8fCh0aGlzLm5iPXt9KTtyZXR1cm4gYyBpbiBnP2dbY106KGdbY109Yi5jYWxsKHRoaXMpKX1lbHNlIHJldHVybiBiLmNhbGwodGhpcyl9fWgucD17SjowLFc6ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYyhnKXt0aGlzLmQ9Cmd9aC5uLiRhKGMucHJvdG90eXBlLGgucCxiKTtjLmRjPXt9O3JldHVybiBjfSxqOmZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5sYSgpLGM9dGhpcy5jb25zdHJ1Y3Rvci5kYztyZXR1cm4gYj9iIGluIGM/Y1tiXTooY1tiXT10aGlzLlkoYikpOm51bGx9LGxhOmEoZnVuY3Rpb24oKXt2YXIgYj10aGlzLmQsYz10aGlzLmNvbnN0cnVjdG9yLGc9Yi5zdHlsZTtiPWIuY3VycmVudFN0eWxlO3ZhciBkPXRoaXMuamEsZT10aGlzLnFhLGY9Yy5iY3x8KGMuYmM9aC5JK2QpO2M9Yy5jY3x8KGMuY2M9aC5OYStlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc3Vic3RyaW5nKDEpKTtyZXR1cm4gZ1tjXXx8Yi5nZXRBdHRyaWJ1dGUoZil8fGdbZV18fGIuZ2V0QXR0cmlidXRlKGQpfSksZjphKGZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmooKX0pLEM6YShmdW5jdGlvbigpe3ZhciBiPXRoaXMubGEoKSxjPWIhPT10aGlzLiRiO3RoaXMuJGI9YjtyZXR1cm4gY30pLGlhOmEsRGE6ZnVuY3Rpb24oKXsrK3RoaXMuSn0sCkZhOmZ1bmN0aW9uKCl7LS10aGlzLkp8fGRlbGV0ZSB0aGlzLm5ifX19KSgpO2guTWI9aC5wLlcoe2phOmguSSsiYmFja2dyb3VuZCIscWE6aC5OYSsiQmFja2dyb3VuZCIsaGM6e3Njcm9sbDoxLGZpeGVkOjEsbG9jYWw6MX0sRWE6eyJyZXBlYXQteCI6MSwicmVwZWF0LXkiOjEscmVwZWF0OjEsIm5vLXJlcGVhdCI6MX0sSGM6eyJwYWRkaW5nLWJveCI6MSwiYm9yZGVyLWJveCI6MSwiY29udGVudC1ib3giOjF9LGtjOnsicGFkZGluZy1ib3giOjEsImJvcmRlci1ib3giOjF9LExjOnt0b3A6MSxyaWdodDoxLGJvdHRvbToxLGxlZnQ6MSxjZW50ZXI6MX0sT2M6e2NvbnRhaW46MSxjb3ZlcjoxfSxZOmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIodil7cmV0dXJuIHYuVSgpfHx2LnR5cGUmaiYmdi52YWx1ZSBpbiB1fWZ1bmN0aW9uIGModil7cmV0dXJuIHYuVSgpJiZuZXcgaC5pKHYudmFsdWUpfHx2LnZhbHVlPT09ImF1dG8iJiYiYXV0byJ9dmFyIGc9dGhpcy5kLmN1cnJlbnRTdHlsZSxkLAplLGY9aC5xLmZhLGk9Zi5kYSxqPWYuYmEsaz1mLmFhLG0sbCx1PXRoaXMuTGMsbixxLHQ9bnVsbDtpZih0aGlzLlRhKCkpe2E9bmV3IGgucShhKTt0PXtpbWFnZXM6W119O2ZvcihlPXt9O2Q9YS5uZXh0KCk7KXttPWQudHlwZTtsPWQudmFsdWU7aWYoIWUudHlwZSYmbSZmLmpiJiZsPT09ImxpbmVhci1ncmFkaWVudCgiKXtuPXtaOltdLHR5cGU6ImxpbmVhci1ncmFkaWVudCJ9O2ZvcihxPXt9O2Q9YS5uZXh0KCk7KXttPWQudHlwZTtsPWQudmFsdWU7aWYobSZmLmliJiZsPT09IikiKXtxLmNvbG9yJiZuLloucHVzaChxKTtuLloubGVuZ3RoPjEmJmgubi4kYShlLG4pO2JyZWFrfWlmKG0mayl7aWYobi5SYXx8bi5WYSl7ZD1hLnYoKTtpZihkLnR5cGUhPT1pKWJyZWFrO2EubmV4dCgpfXE9e2NvbG9yOm5ldyBoLlIobCl9O2Q9YS5uZXh0KCk7aWYoZC5VKCkpcS55Yj1uZXcgaC5pKGQudmFsdWUpO2Vsc2UgYS52KCl9ZWxzZSBpZihtJmYuc2EmJiFuLlJhJiYhcS5jb2xvciYmIW4uWi5sZW5ndGgpbi5SYT0KbmV3IGguS2IoZC52YWx1ZSk7ZWxzZSBpZihiKGQpJiYhbi5WYSYmIXEuY29sb3ImJiFuLloubGVuZ3RoKXthLnYoKTtuLlZhPW5ldyBoLkhhKGEuJChmdW5jdGlvbih2KXtyZXR1cm4hYih2KX0sZmFsc2UpKX1lbHNlIGlmKG0maSYmbD09PSIsIil7aWYocS5jb2xvcil7bi5aLnB1c2gocSk7cT17fX19ZWxzZSBicmVha319ZWxzZSBpZighZS50eXBlJiZtJmYuVVJMKXtlLnVybD1sO2UudHlwZT0iaW1hZ2UifWVsc2UgaWYoYihkKSYmIWUuc2l6ZSl7YS52KCk7ZS5wb3NpdGlvbj1uZXcgaC5IYShhLiQoZnVuY3Rpb24odil7cmV0dXJuIWIodil9LGZhbHNlKSl9ZWxzZSBpZihtJmopaWYobCBpbiB0aGlzLkVhKWUucmVwZWF0PWw7ZWxzZSBpZihsIGluIHRoaXMuSGMpe2Uub3JpZ2luPWw7aWYobCBpbiB0aGlzLmtjKWUuY2xpcD1sfWVsc2V7aWYobCBpbiB0aGlzLmhjKWUuWmM9bH1lbHNlIGlmKG0mayYmIXQuY29sb3IpdC5jb2xvcj1uZXcgaC5SKGwpO2Vsc2UgaWYobSZpKWlmKGw9PT0KIi8iKXtkPWEubmV4dCgpO209ZC50eXBlO2w9ZC52YWx1ZTtpZihtJmomJmwgaW4gdGhpcy5PYyllLnNpemU9bDtlbHNlIGlmKGw9YyhkKSllLnNpemU9e2c6bCxlOmMoYS5uZXh0KCkpfHxhLnYoKSYmbH19ZWxzZXtpZihsPT09IiwiJiZlLnR5cGUpe3QuaW1hZ2VzLnB1c2goZSk7ZT17fX19ZWxzZSByZXR1cm4gbnVsbH1lLnR5cGUmJnQuaW1hZ2VzLnB1c2goZSl9ZWxzZSB0aGlzLkdiKGZ1bmN0aW9uKCl7dmFyIHY9Zy5iYWNrZ3JvdW5kUG9zaXRpb25YLHg9Zy5iYWNrZ3JvdW5kUG9zaXRpb25ZLHI9Zy5iYWNrZ3JvdW5kSW1hZ2Usbz1nLmJhY2tncm91bmRDb2xvcjt0PXt9O2lmKG8hPT0idHJhbnNwYXJlbnQiKXQuY29sb3I9bmV3IGguUihvKTtpZihyIT09Im5vbmUiKXQuaW1hZ2VzPVt7dHlwZToiaW1hZ2UiLHVybDoobmV3IGgucShyKSkubmV4dCgpLnZhbHVlLHJlcGVhdDpnLmJhY2tncm91bmRSZXBlYXQscG9zaXRpb246bmV3IGguSGEoKG5ldyBoLnEodisiICIreCkpLmFsbCgpKX1dfSk7CnJldHVybiB0JiYodC5jb2xvcnx8dC5pbWFnZXMmJnQuaW1hZ2VzWzBdKT90Om51bGx9LEdiOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZC5ydW50aW1lU3R5bGUsYz1iLmJhY2tncm91bmRJbWFnZSxnPWIuYmFja2dyb3VuZENvbG9yO2lmKGMpYi5iYWNrZ3JvdW5kSW1hZ2U9IiI7aWYoZyliLmJhY2tncm91bmRDb2xvcj0iIjthPWEuY2FsbCh0aGlzKTtpZihjKWIuYmFja2dyb3VuZEltYWdlPWM7aWYoZyliLmJhY2tncm91bmRDb2xvcj1nO3JldHVybiBhfSxsYTpoLnAuaWEoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5UYSgpfHx0aGlzLkdiKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kLmN1cnJlbnRTdHlsZTtyZXR1cm4gYS5iYWNrZ3JvdW5kQ29sb3IrIiAiK2EuYmFja2dyb3VuZEltYWdlKyIgIithLmJhY2tncm91bmRSZXBlYXQrIiAiK2EuYmFja2dyb3VuZFBvc2l0aW9uWCsiICIrYS5iYWNrZ3JvdW5kUG9zaXRpb25ZfSl9KSxUYTpoLnAuaWEoZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQ7CnJldHVybiBhLnN0eWxlW3RoaXMucWFdfHxhLmN1cnJlbnRTdHlsZS5nZXRBdHRyaWJ1dGUodGhpcy5qYSl9KSx4YjpmdW5jdGlvbigpe3ZhciBhPTA7aWYoaC5EPDcpe2E9dGhpcy5kO2E9IiIrKGEuc3R5bGVbaC5OYSsiUG5nRml4Il18fGEuY3VycmVudFN0eWxlLmdldEF0dHJpYnV0ZShoLkkrInBuZy1maXgiKSk9PT0idHJ1ZSJ9cmV0dXJuIGF9LGY6aC5wLmlhKGZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuVGEoKXx8dGhpcy54YigpKSYmISF0aGlzLmooKX0pfSk7aC5RYj1oLnAuVyh7QmI6WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxGYzp7YmQ6IjFweCIsJGM6IjNweCIsYWQ6IjVweCJ9LFk6ZnVuY3Rpb24oKXt2YXIgYT17fSxiPXt9LGM9e30sZz1mYWxzZSxkPXRydWUsZT10cnVlLGY9dHJ1ZTt0aGlzLkhiKGZ1bmN0aW9uKCl7Zm9yKHZhciBpPXRoaXMuZC5jdXJyZW50U3R5bGUsaj0wLGssbSxsLHUsbixxLHQ7ajw0O2orKyl7bD10aGlzLkJiW2pdO3Q9bC5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTsKaz1iW3RdPWlbImJvcmRlciIrbCsiU3R5bGUiXTttPWlbImJvcmRlciIrbCsiQ29sb3IiXTtsPWlbImJvcmRlciIrbCsiV2lkdGgiXTtpZihqPjApe2lmKGshPT11KWU9ZmFsc2U7aWYobSE9PW4pZD1mYWxzZTtpZihsIT09cSlmPWZhbHNlfXU9aztuPW07cT1sO2NbdF09bmV3IGguUihtKTtsPWFbdF09bmV3IGguaShiW3RdPT09Im5vbmUiPyIwIjp0aGlzLkZjW2xdfHxsKTtpZihsLmEodGhpcy5kKT4wKWc9dHJ1ZX19KTtyZXR1cm4gZz97aGI6YSxSYzpiLG1jOmMsV2M6ZixuYzpkLFNjOmV9Om51bGx9LGxhOmgucC5pYShmdW5jdGlvbigpe3ZhciBhPXRoaXMuZCxiPWEuY3VycmVudFN0eWxlLGM7YS50YWdOYW1lIGluIGguQ2ImJmEub2Zmc2V0UGFyZW50LmN1cnJlbnRTdHlsZS5ib3JkZXJDb2xsYXBzZT09PSJjb2xsYXBzZSJ8fHRoaXMuSGIoZnVuY3Rpb24oKXtjPWIuYm9yZGVyV2lkdGgrInwiK2IuYm9yZGVyU3R5bGUrInwiK2IuYm9yZGVyQ29sb3J9KTtyZXR1cm4gY30pLEhiOmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLmQucnVudGltZVN0eWxlLGM9Yi5ib3JkZXJXaWR0aCxnPWIuYm9yZGVyQ29sb3I7aWYoYyliLmJvcmRlcldpZHRoPSIiO2lmKGcpYi5ib3JkZXJDb2xvcj0iIjthPWEuY2FsbCh0aGlzKTtpZihjKWIuYm9yZGVyV2lkdGg9YztpZihnKWIuYm9yZGVyQ29sb3I9ZztyZXR1cm4gYX19KTsoZnVuY3Rpb24oKXtoLklhPWgucC5XKHtqYToiYm9yZGVyLXJhZGl1cyIscWE6ImJvcmRlclJhZGl1cyIsWTpmdW5jdGlvbihiKXt2YXIgYz1udWxsLGcsZCxlLGYsaT1mYWxzZTtpZihiKXtkPW5ldyBoLnEoYik7dmFyIGo9ZnVuY3Rpb24oKXtmb3IodmFyIGs9W10sbTsoZT1kLm5leHQoKSkmJmUuVSgpOyl7Zj1uZXcgaC5pKGUudmFsdWUpO209Zi5yYigpO2lmKG08MClyZXR1cm4gbnVsbDtpZihtPjApaT10cnVlO2sucHVzaChmKX1yZXR1cm4gay5sZW5ndGg+MCYmay5sZW5ndGg8NT97dGw6a1swXSx0cjprWzFdfHxrWzBdLGJyOmtbMl18fGtbMF0sYmw6a1szXXx8a1sxXXx8a1swXX06bnVsbH07CmlmKGI9aigpKXtpZihlKXtpZihlLnR5cGUmaC5xLmZhLmRhJiZlLnZhbHVlPT09Ii8iKWc9aigpfWVsc2UgZz1iO2lmKGkmJmImJmcpYz17eDpiLHk6Z319fXJldHVybiBjfX0pO3ZhciBhPWguaS5sYjthPXt0bDphLHRyOmEsYnI6YSxibDphfTtoLklhLkpiPXt4OmEseTphfX0pKCk7aC5PYj1oLnAuVyh7amE6ImJvcmRlci1pbWFnZSIscWE6ImJvcmRlckltYWdlIixFYTp7c3RyZXRjaDoxLHJvdW5kOjEscmVwZWF0OjEsc3BhY2U6MX0sWTpmdW5jdGlvbihhKXt2YXIgYj1udWxsLGMsZyxkLGUsZixpLGo9MCxrLG09aC5xLmZhLGw9bS5iYSx1PW0uY2Esbj1tLnoscT1tLnVhO2lmKGEpe2M9bmV3IGgucShhKTtiPXt9O2Zvcih2YXIgdD1mdW5jdGlvbihyKXtyZXR1cm4gciYmci50eXBlJm0uZGEmJnIudmFsdWU9PT0iLyJ9LHY9ZnVuY3Rpb24ocil7cmV0dXJuIHImJnIudHlwZSZsJiZyLnZhbHVlPT09ImZpbGwifSx4PWZ1bmN0aW9uKCl7ZT1jLiQoZnVuY3Rpb24ocil7cmV0dXJuIShyLnR5cGUmCih1fHEpKX0pO2lmKHYoYy5uZXh0KCkpJiYhYi5maWxsKWIuZmlsbD10cnVlO2Vsc2UgYy52KCk7aWYodChjLm5leHQoKSkpe2orKztmPWMuJChmdW5jdGlvbigpe3JldHVybiEoZy50eXBlJih1fHF8bikpJiYhKGcudHlwZSZsJiZnLnZhbHVlPT09ImF1dG8iKX0pO2lmKHQoYy5uZXh0KCkpKXtqKys7aT1jLiQoZnVuY3Rpb24oKXtyZXR1cm4hKGcudHlwZSYodXxuKSl9KX19ZWxzZSBjLnYoKX07Zz1jLm5leHQoKTspe2E9Zy50eXBlO2Q9Zy52YWx1ZTtpZihhJih1fHEpJiYhZSl7Yy52KCk7eCgpfWVsc2UgaWYodihnKSYmIWIuZmlsbCl7Yi5maWxsPXRydWU7eCgpfWVsc2UgaWYoYSZsJiZ0aGlzLkVhW2RdJiYhYi5yZXBlYXQpe2IucmVwZWF0PXtlOmR9O2lmKGc9Yy5uZXh0KCkpaWYoZy50eXBlJmwmJnRoaXMuRWFbZy52YWx1ZV0pYi5yZXBlYXQuZWI9Zy52YWx1ZTtlbHNlIGMudigpfWVsc2UgaWYoYSZtLlVSTCYmIWIuc3JjKWIuc3JjPWQ7ZWxzZSByZXR1cm4gbnVsbH1pZighYi5zcmN8fAohZXx8ZS5sZW5ndGg8MXx8ZS5sZW5ndGg+NHx8ZiYmZi5sZW5ndGg+NHx8aj09PTEmJmYubGVuZ3RoPDF8fGkmJmkubGVuZ3RoPjR8fGo9PT0yJiZpLmxlbmd0aDwxKXJldHVybiBudWxsO2lmKCFiLnJlcGVhdCliLnJlcGVhdD17ZToic3RyZXRjaCJ9O2lmKCFiLnJlcGVhdC5lYiliLnJlcGVhdC5lYj1iLnJlcGVhdC5lO2E9ZnVuY3Rpb24ocixvKXtyZXR1cm57UDpvKHJbMF0pLE86byhyWzFdfHxyWzBdKSxLOm8oclsyXXx8clswXSksTTpvKHJbM118fHJbMV18fHJbMF0pfX07Yi5zbGljZT1hKGUsZnVuY3Rpb24ocil7cmV0dXJuIG5ldyBoLmkoci50eXBlJnU/ci52YWx1ZSsicHgiOnIudmFsdWUpfSk7Yi53aWR0aD1mJiZmLmxlbmd0aD4wP2EoZixmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlJihufHEpP25ldyBoLmkoci52YWx1ZSk6ci52YWx1ZX0pOihrPXRoaXMuZC5jdXJyZW50U3R5bGUpJiZ7UDpuZXcgaC5pKGsuYm9yZGVyVG9wV2lkdGgpLE86bmV3IGguaShrLmJvcmRlclJpZ2h0V2lkdGgpLApLOm5ldyBoLmkoay5ib3JkZXJCb3R0b21XaWR0aCksTTpuZXcgaC5pKGsuYm9yZGVyTGVmdFdpZHRoKX07Yi5wYT1hKGl8fFswXSxmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlJm4/bmV3IGguaShyLnZhbHVlKTpyLnZhbHVlfSl9cmV0dXJuIGJ9fSk7aC5TYj1oLnAuVyh7amE6ImJveC1zaGFkb3ciLHFhOiJib3hTaGFkb3ciLFk6ZnVuY3Rpb24oYSl7dmFyIGIsYz1oLmksZz1oLnEuZmEsZDtpZihhKXtkPW5ldyBoLnEoYSk7Yj17cGE6W10sWGE6W119O2ZvcihhPWZ1bmN0aW9uKCl7Zm9yKHZhciBlLGYsaSxqLGssbTtlPWQubmV4dCgpOyl7aT1lLnZhbHVlO2Y9ZS50eXBlO2lmKGYmZy5kYSYmaT09PSIsIilicmVhaztlbHNlIGlmKGUuWWEoKSYmIWspe2QudigpO2s9ZC4kKGZ1bmN0aW9uKGwpe3JldHVybiFsLllhKCl9KX1lbHNlIGlmKGYmZy5hYSYmIWopaj1pO2Vsc2UgaWYoZiZnLmJhJiZpPT09Imluc2V0IiYmIW0pbT10cnVlO2Vsc2UgcmV0dXJuIGZhbHNlfWU9ayYmay5sZW5ndGg7CmlmKGU+MSYmZTw1KXsobT9iLlhhOmIucGEpLnB1c2goe1hjOm5ldyBjKGtbMF0udmFsdWUpLFljOm5ldyBjKGtbMV0udmFsdWUpLGJsdXI6bmV3IGMoa1syXT9rWzJdLnZhbHVlOiIwIiksUGM6bmV3IGMoa1szXT9rWzNdLnZhbHVlOiIwIiksY29sb3I6bmV3IGguUihqfHwiY3VycmVudENvbG9yIil9KTtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9O2EoKTspO31yZXR1cm4gYiYmKGIuWGEubGVuZ3RofHxiLnBhLmxlbmd0aCk/YjpudWxsfX0pO2guWGI9aC5wLlcoe2xhOmgucC5pYShmdW5jdGlvbigpe3ZhciBhPXRoaXMuZC5jdXJyZW50U3R5bGU7cmV0dXJuIGEudmlzaWJpbGl0eSsifCIrYS5kaXNwbGF5fSksWTpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZCxiPWEucnVudGltZVN0eWxlO2E9YS5jdXJyZW50U3R5bGU7dmFyIGM9Yi52aXNpYmlsaXR5LGc7Yi52aXNpYmlsaXR5PSIiO2c9YS52aXNpYmlsaXR5O2IudmlzaWJpbGl0eT1jO3JldHVybntVYzpnIT09ImhpZGRlbiIsc2M6YS5kaXNwbGF5IT09CiJub25lIn19LGY6ZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2V9fSk7aC5BPXtWOmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyxnLGQsZSl7dGhpcy5kPWM7dGhpcy5vPWc7dGhpcy5oPWQ7dGhpcy5wYXJlbnQ9ZX1oLm4uJGEoYi5wcm90b3R5cGUsaC5BLGEpO3JldHVybiBifSxaYTpmYWxzZSxOOmZ1bmN0aW9uKCl7cmV0dXJuIGZhbHNlfSxEYjpmdW5jdGlvbigpe3RoaXMuaygpO3RoaXMuZigpJiZ0aGlzLlQoKX0sZGI6ZnVuY3Rpb24oKXt0aGlzLlphPXRydWV9LEViOmZ1bmN0aW9uKCl7dGhpcy5mKCk/dGhpcy5UKCk6dGhpcy5rKCl9LFFhOmZ1bmN0aW9uKGEsYil7dGhpcy5BYihhKTtmb3IodmFyIGM9dGhpcy5nYXx8KHRoaXMuZ2E9W10pLGc9YSsxLGQ9Yy5sZW5ndGgsZTtnPGQ7ZysrKWlmKGU9Y1tnXSlicmVhaztjW2FdPWI7dGhpcy51KCkuaW5zZXJ0QmVmb3JlKGIsZXx8bnVsbCl9LG1hOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZ2E7cmV0dXJuIGImJmJbYV18fG51bGx9LEFiOmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLm1hKGEpLGM9dGhpcy52YTtpZihiJiZjKXtjLnJlbW92ZUNoaWxkKGIpO3RoaXMuZ2FbYV09bnVsbH19LG5hOmZ1bmN0aW9uKGEsYixjLGcpe3ZhciBkPXRoaXMuUGF8fCh0aGlzLlBhPXt9KSxlPWRbYV07aWYoIWUpe2U9ZFthXT1oLm4uQWEoInNoYXBlIik7aWYoYillLmFwcGVuZENoaWxkKGVbYl09aC5uLkFhKGIpKTtpZihnKXtjPXRoaXMubWEoZyk7aWYoIWMpe3RoaXMuUWEoZyxkb2MuY3JlYXRlRWxlbWVudCgiZ3JvdXAiK2cpKTtjPXRoaXMubWEoZyl9fWMuYXBwZW5kQ2hpbGQoZSk7YT1lLnN0eWxlO2EucG9zaXRpb249ImFic29sdXRlIjthLmxlZnQ9YS50b3A9MDthLmJlaGF2aW9yPSJ1cmwoI2RlZmF1bHQjVk1MKSJ9cmV0dXJuIGV9LFNhOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuUGEsYz1iJiZiW2FdO2lmKGMpe2MucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjKTtkZWxldGUgYlthXX1yZXR1cm4hIWN9LHRiOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZCxjPXRoaXMuby5tKCksCmc9Yy5nLGQ9Yy5lLGUsZixpLGosayxtO2M9YS54LnRsLmEoYixnKTtlPWEueS50bC5hKGIsZCk7Zj1hLngudHIuYShiLGcpO2k9YS55LnRyLmEoYixkKTtqPWEueC5ici5hKGIsZyk7az1hLnkuYnIuYShiLGQpO209YS54LmJsLmEoYixnKTthPWEueS5ibC5hKGIsZCk7Zz1NYXRoLm1pbihnLyhjK2YpLGQvKGkrayksZy8obStqKSxkLyhlK2EpKTtpZihnPDEpe2MqPWc7ZSo9ZztmKj1nO2kqPWc7aio9ZztrKj1nO20qPWc7YSo9Z31yZXR1cm57eDp7dGw6Yyx0cjpmLGJyOmosYmw6bX0seTp7dGw6ZSx0cjppLGJyOmssYmw6YX19fSxrYTpmdW5jdGlvbihhLGIsYyl7Yj1ifHwxO3ZhciBnLGQsZT10aGlzLm8ubSgpO2Q9ZS5nKmI7ZT1lLmUqYjt2YXIgZj10aGlzLmgucyxpPU1hdGguZmxvb3Isaj1NYXRoLmNlaWwsaz1hP2EuUCpiOjAsbT1hP2EuTypiOjAsbD1hP2EuSypiOjA7YT1hP2EuTSpiOjA7dmFyIHUsbixxLHQsdjtpZihjfHxmLmYoKSl7Zz10aGlzLnRiKGN8fGYuaigpKTtjPQpnLngudGwqYjtmPWcueS50bCpiO3U9Zy54LnRyKmI7bj1nLnkudHIqYjtxPWcueC5icipiO3Q9Zy55LmJyKmI7dj1nLnguYmwqYjtiPWcueS5ibCpiO2Q9Im0iK2koYSkrIiwiK2koZikrInF5IitpKGMpKyIsIitpKGspKyJsIitqKGQtdSkrIiwiK2koaykrInF4IitqKGQtbSkrIiwiK2kobikrImwiK2ooZC1tKSsiLCIraihlLXQpKyJxeSIraihkLXEpKyIsIitqKGUtbCkrImwiK2kodikrIiwiK2ooZS1sKSsicXgiK2koYSkrIiwiK2ooZS1iKSsiIHggZSJ9ZWxzZSBkPSJtIitpKGEpKyIsIitpKGspKyJsIitqKGQtbSkrIiwiK2koaykrImwiK2ooZC1tKSsiLCIraihlLWwpKyJsIitpKGEpKyIsIitqKGUtbCkrInhlIjtyZXR1cm4gZH0sdTpmdW5jdGlvbigpe3ZhciBhPXRoaXMucGFyZW50Lm1hKHRoaXMuQiksYjtpZighYSl7YT1kb2MuY3JlYXRlRWxlbWVudCh0aGlzLnphKTtiPWEuc3R5bGU7Yi5wb3NpdGlvbj0iYWJzb2x1dGUiO2IudG9wPWIubGVmdD0wO3RoaXMucGFyZW50LlFhKHRoaXMuQiwKYSl9cmV0dXJuIGF9LGs6ZnVuY3Rpb24oKXt0aGlzLnBhcmVudC5BYih0aGlzLkIpO2RlbGV0ZSB0aGlzLlBhO2RlbGV0ZSB0aGlzLmdhfX07aC5WYj1oLkEuVih7ZjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaWM7Zm9yKHZhciBiIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShiKSYmYVtiXS5mKCkpcmV0dXJuIHRydWU7cmV0dXJuIGZhbHNlfSxOOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaC5mYi5DKCl9LGRiOmZ1bmN0aW9uKCl7aWYodGhpcy5mKCkpe3ZhciBhPXRoaXMuc2IoKSxiPWEsYzthPWEuY3VycmVudFN0eWxlO3ZhciBnPWEucG9zaXRpb24sZD10aGlzLnUoKS5zdHlsZSxlPTAsZj0wO2Y9dGhpcy5vLm0oKTtpZihnPT09ImZpeGVkIiYmaC5EPjYpe2U9Zi54O2Y9Zi55O2I9Z31lbHNle2RvIGI9Yi5vZmZzZXRQYXJlbnQ7d2hpbGUoYiYmYi5jdXJyZW50U3R5bGUucG9zaXRpb249PT0ic3RhdGljIik7aWYoYil7Yz1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2I9Yi5jdXJyZW50U3R5bGU7CmU9Zi54LWMubGVmdC0ocGFyc2VGbG9hdChiLmJvcmRlckxlZnRXaWR0aCl8fDApO2Y9Zi55LWMudG9wLShwYXJzZUZsb2F0KGIuYm9yZGVyVG9wV2lkdGgpfHwwKX1lbHNle2I9ZG9jLmRvY3VtZW50RWxlbWVudDtlPWYueCtiLnNjcm9sbExlZnQtYi5jbGllbnRMZWZ0O2Y9Zi55K2Iuc2Nyb2xsVG9wLWIuY2xpZW50VG9wfWI9ImFic29sdXRlIn1kLnBvc2l0aW9uPWI7ZC5sZWZ0PWU7ZC50b3A9ZjtkLnpJbmRleD1nPT09InN0YXRpYyI/LTE6YS56SW5kZXg7dGhpcy5aYT10cnVlfX0sRWI6ZnVuY3Rpb24oKXt9LEZiOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oLmZiLmooKTt0aGlzLnUoKS5zdHlsZS5kaXNwbGF5PWEuVWMmJmEuc2M/IiI6Im5vbmUifSxEYjpmdW5jdGlvbigpe3RoaXMuZigpP3RoaXMuRmIoKTp0aGlzLmsoKX0sc2I6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQ7cmV0dXJuIGEudGFnTmFtZSBpbiBoLkNiP2Eub2Zmc2V0UGFyZW50OmF9LHU6ZnVuY3Rpb24oKXt2YXIgYT0KdGhpcy52YSxiO2lmKCFhKXtiPXRoaXMuc2IoKTthPXRoaXMudmE9ZG9jLmNyZWF0ZUVsZW1lbnQoImNzczMtY29udGFpbmVyIik7YS5zdHlsZS5kaXJlY3Rpb249Imx0ciI7dGhpcy5GYigpO2IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxiKX1yZXR1cm4gYX0sazpmdW5jdGlvbigpe3ZhciBhPXRoaXMudmEsYjtpZihhJiYoYj1hLnBhcmVudE5vZGUpKWIucmVtb3ZlQ2hpbGQoYSk7ZGVsZXRlIHRoaXMudmE7ZGVsZXRlIHRoaXMuZ2F9fSk7aC5MYj1oLkEuVih7QjoyLHphOiJiYWNrZ3JvdW5kIixOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkcuQygpfHxhLnMuQygpfSxmOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkwuZigpfHxhLnMuZigpfHxhLkcuZigpfHxhLlMuZigpJiZhLlMuaigpLlhhfSxUOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vLm0oKTtpZihhLmcmJmEuZSl7dGhpcy50YygpO3RoaXMudWMoKX19LHRjOmZ1bmN0aW9uKCl7dmFyIGE9CnRoaXMuaC5HLmooKSxiPXRoaXMuby5tKCksYz10aGlzLmQsZz1hJiZhLmNvbG9yLGQsZTtpZihnJiZnLmhhKCk+MCl7dGhpcy51YigpO2E9dGhpcy5uYSgiYmdDb2xvciIsImZpbGwiLHRoaXMudSgpLDEpO2Q9Yi5nO2I9Yi5lO2Euc3Ryb2tlZD1mYWxzZTthLmNvb3Jkc2l6ZT1kKjIrIiwiK2IqMjthLmNvb3Jkb3JpZ2luPSIxLDEiO2EucGF0aD10aGlzLmthKG51bGwsMik7ZT1hLnN0eWxlO2Uud2lkdGg9ZDtlLmhlaWdodD1iO2EuZmlsbC5jb2xvcj1nLnZhbHVlKGMpO2M9Zy5oYSgpO2lmKGM8MSlhLmZpbGwub3BhY2l0eT1jfWVsc2UgdGhpcy5TYSgiYmdDb2xvciIpfSx1YzpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5HLmooKSxiPXRoaXMuby5tKCk7YT1hJiZhLmltYWdlczt2YXIgYyxnLGQsZSxmO2lmKGEpe3RoaXMudWIoKTtnPWIuZztkPWIuZTtmb3IoZj1hLmxlbmd0aDtmLS07KXtiPWFbZl07Yz10aGlzLm5hKCJiZ0ltYWdlIitmLCJmaWxsIix0aGlzLnUoKSwyKTtjLnN0cm9rZWQ9CmZhbHNlO2MuZmlsbC50eXBlPSJ0aWxlIjtjLmZpbGxjb2xvcj0ibm9uZSI7Yy5jb29yZHNpemU9ZyoyKyIsIitkKjI7Yy5jb29yZG9yaWdpbj0iMSwxIjtjLnBhdGg9dGhpcy5rYSgwLDIpO2U9Yy5zdHlsZTtlLndpZHRoPWc7ZS5oZWlnaHQ9ZDtpZihiLnR5cGU9PT0ibGluZWFyLWdyYWRpZW50Iil0aGlzLmdjKGMsYik7ZWxzZXtjLmZpbGwuc3JjPWIudXJsO3RoaXMuSmMoYyxmKX19fWZvcihmPWE/YS5sZW5ndGg6MDt0aGlzLlNhKCJiZ0ltYWdlIitmKyspOyk7fSxKYzpmdW5jdGlvbihhLGIpe2gubi5JYihhLmZpbGwuc3JjLGZ1bmN0aW9uKGMpe3ZhciBnPWEuZmlsbCxkPXRoaXMuZCxlPXRoaXMuby5tKCksZj1lLmc7ZT1lLmU7dmFyIGk9dGhpcy5oLGo9aS5ILmooKSxrPWomJmouaGI7aj1rP2sudC5hKGQpOjA7dmFyIG09az9rLnIuYShkKTowLGw9az9rLmIuYShkKTowO2s9az9rLmwuYShkKTowO2k9aS5HLmooKS5pbWFnZXNbYl07ZD1pLnBvc2l0aW9uP2kucG9zaXRpb24uY29vcmRzKGQsCmYtYy5nLWstbSxlLWMuZS1qLWwpOnt4OjAseTowfTtpPWkucmVwZWF0O2w9bT0wO3ZhciB1PWYrMSxuPWUrMSxxPWguRD09PTg/MDoxO2s9TWF0aC5yb3VuZChkLngpK2srMC41O2o9TWF0aC5yb3VuZChkLnkpK2orMC41O2cucG9zaXRpb249ay9mKyIsIitqL2U7aWYoaSYmaSE9PSJyZXBlYXQiKXtpZihpPT09InJlcGVhdC14Inx8aT09PSJuby1yZXBlYXQiKXttPWorMTtuPWorYy5lK3F9aWYoaT09PSJyZXBlYXQteSJ8fGk9PT0ibm8tcmVwZWF0Iil7bD1rKzE7dT1rK2MuZytxfWEuc3R5bGUuY2xpcD0icmVjdCgiK20rInB4LCIrdSsicHgsIituKyJweCwiK2wrInB4KSJ9fSx0aGlzKX0sZ2M6ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKEEsQix5LEcsSCl7aWYoeT09PTB8fHk9PT0xODApcmV0dXJuW0csQl07ZWxzZSBpZih5PT09OTB8fHk9PT0yNzApcmV0dXJuW0EsSF07ZWxzZXt5PU1hdGgudGFuKC15KnUvMTgwKTtBPXkqQS1CO0I9LTEveTtHPUIqRy1IO0g9Qi15O3JldHVyblsoRy0KQSkvSCwoeSpHLUIqQSkvSF19fWZ1bmN0aW9uIGcoKXt4PW0+PTkwJiZtPDI3MD9qOjA7cj1tPDE4MD9rOjA7bz1qLXg7cz1rLXJ9ZnVuY3Rpb24gZCgpe2Zvcig7bTwwOyltKz0zNjA7bSU9MzYwfWZ1bmN0aW9uIGUoQSxCKXt2YXIgeT1CWzBdLUFbMF07QT1CWzFdLUFbMV07cmV0dXJuIE1hdGguYWJzKHk9PT0wP0E6QT09PTA/eTpNYXRoLnNxcnQoeSp5K0EqQSkpfXZhciBmPXRoaXMuZCxpPXRoaXMuby5tKCksaj1pLmcsaz1pLmU7YT1hLmZpbGw7dmFyIG09Yi5SYSxsPWIuVmE7Yj1iLlo7aT1iLmxlbmd0aDt2YXIgdT1NYXRoLlBJLG4scSx0LHYseCxyLG8scyxwLHosRSxDO2lmKGwpe2w9bC5jb29yZHMoZixqLGspO249bC54O3E9bC55fWlmKG0pe209bS5xYygpO2QoKTtnKCk7aWYoIWwpe249eDtxPXJ9bD1jKG4scSxtLG8scyk7dD1sWzBdO3Y9bFsxXX1lbHNlIGlmKGwpe3Q9ai1uO3Y9ay1xfWVsc2V7bj1xPXQ9MDt2PWt9bD10LW47cD12LXE7aWYobT09PXZvaWQgMCl7bT0hbD8KcDwwPzkwOjI3MDohcD9sPDA/MTgwOjA6LU1hdGguYXRhbjIocCxsKS91KjE4MDtkKCk7ZygpfWw9bSU5MD9NYXRoLmF0YW4yKGwqai9rLHApL3UqMTgwOm0rOTA7bCs9MTgwO2wlPTM2MDt6PWUoW24scV0sW3Qsdl0pO3Q9ZShbeCxyXSxjKHgscixtLG8scykpO3Y9W107cT1lKFtuLHFdLGMobixxLG0seCxyKSkvdCoxMDA7bj1bXTtmb3IocD0wO3A8aTtwKyspbi5wdXNoKGJbcF0ueWI/YltwXS55Yi5hKGYseik6cD09PTA/MDpwPT09aS0xP3o6bnVsbCk7Zm9yKHA9MTtwPGk7cCsrKXtpZihuW3BdPT09bnVsbCl7RT1uW3AtMV07ej1wO2RvIEM9blsrK3pdO3doaWxlKEM9PT1udWxsKTtuW3BdPUUrKEMtRSkvKHotcCsxKX1uW3BdPU1hdGgubWF4KG5bcF0sbltwLTFdKX1mb3IocD0wO3A8aTtwKyspdi5wdXNoKHErbltwXS90KjEwMCsiJSAiK2JbcF0uY29sb3IudmFsdWUoZikpO2EuYW5nbGU9bDthLnR5cGU9ImdyYWRpZW50IjthLm1ldGhvZD0ic2lnbWEiO2EuY29sb3I9YlswXS5jb2xvci52YWx1ZShmKTsKYS5jb2xvcjI9YltpLTFdLmNvbG9yLnZhbHVlKGYpO2EuY29sb3JzLnZhbHVlPXYuam9pbigiLCIpfSx1YjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZC5ydW50aW1lU3R5bGU7YS5iYWNrZ3JvdW5kSW1hZ2U9InVybChhYm91dDpibGFuaykiO2EuYmFja2dyb3VuZENvbG9yPSJ0cmFuc3BhcmVudCJ9LGs6ZnVuY3Rpb24oKXtoLkEuay5jYWxsKHRoaXMpO3ZhciBhPXRoaXMuZC5ydW50aW1lU3R5bGU7YS5iYWNrZ3JvdW5kSW1hZ2U9YS5iYWNrZ3JvdW5kQ29sb3I9IiJ9fSk7aC5QYj1oLkEuVih7Qjo0LHphOiJib3JkZXIiLGpjOntUQUJMRToxLElOUFVUOjEsVEVYVEFSRUE6MSxTRUxFQ1Q6MSxPUFRJT046MSxJTUc6MSxIUjoxLEZJRUxEU0VUOjF9LEVjOntzdWJtaXQ6MSxidXR0b246MSxyZXNldDoxfSxOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkguQygpfHxhLnMuQygpfSxmOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybihhLkwuZigpfHxhLnMuZigpfHxhLkcuZigpKSYmCmEuSC5mKCl9LFQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQsYj10aGlzLmguSC5qKCksYz10aGlzLm8ubSgpLGc9Yy5nO2M9Yy5lO3ZhciBkLGUsZixpLGo7aWYoYil7dGhpcy5DYygpO2I9dGhpcy53YygyKTtpPTA7Zm9yKGo9Yi5sZW5ndGg7aTxqO2krKyl7Zj1iW2ldO2Q9dGhpcy5uYSgiYm9yZGVyUGllY2UiK2ksZi5zdHJva2U/InN0cm9rZSI6ImZpbGwiLHRoaXMudSgpKTtkLmNvb3Jkc2l6ZT1nKjIrIiwiK2MqMjtkLmNvb3Jkb3JpZ2luPSIxLDEiO2QucGF0aD1mLnBhdGg7ZT1kLnN0eWxlO2Uud2lkdGg9ZztlLmhlaWdodD1jO2QuZmlsbGVkPSEhZi5maWxsO2Quc3Ryb2tlZD0hIWYuc3Ryb2tlO2lmKGYuc3Ryb2tlKXtkPWQuc3Ryb2tlO2Qud2VpZ2h0PWYuZ2IrInB4IjtkLmNvbG9yPWYuY29sb3IudmFsdWUoYSk7ZC5kYXNoc3R5bGU9Zi5zdHJva2U9PT0iZGFzaGVkIj8iMiAyIjpmLnN0cm9rZT09PSJkb3R0ZWQiPyIxIDEiOiJzb2xpZCI7ZC5saW5lc3R5bGU9Zi5zdHJva2U9PT0KImRvdWJsZSImJmYuZ2I+Mj8iVGhpblRoaW4iOiJTaW5nbGUifWVsc2UgZC5maWxsLmNvbG9yPWYuZmlsbC52YWx1ZShhKX1mb3IoO3RoaXMuU2EoImJvcmRlclBpZWNlIitpKyspOyk7fX0sQ2M6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQsYj1hLmN1cnJlbnRTdHlsZSxjPWEucnVudGltZVN0eWxlLGc9YS50YWdOYW1lLGQ9aC5EPT09NixlO2lmKGQmJmcgaW4gdGhpcy5qY3x8Zz09PSJCVVRUT04ifHxnPT09IklOUFVUIiYmYS50eXBlIGluIHRoaXMuRWMpe2MuYm9yZGVyV2lkdGg9IiI7Zz10aGlzLmguSC5CYjtmb3IoZT1nLmxlbmd0aDtlLS07KXtkPWdbZV07Y1sicGFkZGluZyIrZF09IiI7Y1sicGFkZGluZyIrZF09KG5ldyBoLmkoYlsicGFkZGluZyIrZF0pKS5hKGEpKyhuZXcgaC5pKGJbImJvcmRlciIrZCsiV2lkdGgiXSkpLmEoYSkrKCFoLkQ9PT04JiZlJTI/MTowKX1jLmJvcmRlcldpZHRoPTB9ZWxzZSBpZihkKXtpZihhLmNoaWxkTm9kZXMubGVuZ3RoIT09MXx8YS5maXJzdENoaWxkLnRhZ05hbWUhPT0KImllNi1tYXNrIil7Yj1kb2MuY3JlYXRlRWxlbWVudCgiaWU2LW1hc2siKTtnPWIuc3R5bGU7Zy52aXNpYmlsaXR5PSJ2aXNpYmxlIjtmb3IoZy56b29tPTE7Zz1hLmZpcnN0Q2hpbGQ7KWIuYXBwZW5kQ2hpbGQoZyk7YS5hcHBlbmRDaGlsZChiKTtjLnZpc2liaWxpdHk9ImhpZGRlbiJ9fWVsc2UgYy5ib3JkZXJDb2xvcj0idHJhbnNwYXJlbnQifSx3YzpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmQsYyxnLGQsZT10aGlzLmguSCxmPVtdLGksaixrLG0sbD1NYXRoLnJvdW5kLHUsbixxO2lmKGUuZigpKXtjPWUuaigpO2U9Yy5oYjtuPWMuUmM7cT1jLm1jO2lmKGMuV2MmJmMuU2MmJmMubmMpe2lmKHEudC5oYSgpPjApe2M9ZS50LmEoYik7az1jLzI7Zi5wdXNoKHtwYXRoOnRoaXMua2Eoe1A6ayxPOmssSzprLE06a30sYSksc3Ryb2tlOm4udCxjb2xvcjpxLnQsZ2I6Y30pfX1lbHNle2E9YXx8MTtjPXRoaXMuby5tKCk7Zz1jLmc7ZD1jLmU7Yz1sKGUudC5hKGIpKTtrPWwoZS5yLmEoYikpOwptPWwoZS5iLmEoYikpO2I9bChlLmwuYShiKSk7dmFyIHQ9e3Q6YyxyOmssYjptLGw6Yn07Yj10aGlzLmgucztpZihiLmYoKSl1PXRoaXMudGIoYi5qKCkpO2k9TWF0aC5mbG9vcjtqPU1hdGguY2VpbDt2YXIgdj1mdW5jdGlvbihvLHMpe3JldHVybiB1P3Vbb11bc106MH0seD1mdW5jdGlvbihvLHMscCx6LEUsQyl7dmFyIEE9digieCIsbyksQj12KCJ5IixvKSx5PW8uY2hhckF0KDEpPT09InIiO289by5jaGFyQXQoMCk9PT0iYiI7cmV0dXJuIEE+MCYmQj4wPyhDPyJhbCI6ImFlIikrKHk/aihnLUEpOmkoQSkpKmErIiwiKyhvP2ooZC1CKTppKEIpKSphKyIsIisoaShBKS1zKSphKyIsIisoaShCKS1wKSphKyIsIit6KjY1NTM1KyIsIisyOTQ5MDc1KihFPzE6LTEpOihDPyJtIjoibCIpKyh5P2ctczpzKSphKyIsIisobz9kLXA6cCkqYX0scj1mdW5jdGlvbihvLHMscCx6KXt2YXIgRT1vPT09InQiP2kodigieCIsInRsIikpKmErIiwiK2oocykqYTpvPT09InIiP2ooZy1zKSphKyIsIisKaSh2KCJ5IiwidHIiKSkqYTpvPT09ImIiP2ooZy12KCJ4IiwiYnIiKSkqYSsiLCIraShkLXMpKmE6aShzKSphKyIsIitqKGQtdigieSIsImJsIikpKmE7bz1vPT09InQiP2ooZy12KCJ4IiwidHIiKSkqYSsiLCIraihzKSphOm89PT0iciI/aihnLXMpKmErIiwiK2ooZC12KCJ5IiwiYnIiKSkqYTpvPT09ImIiP2kodigieCIsImJsIikpKmErIiwiK2koZC1zKSphOmkocykqYSsiLCIraSh2KCJ5IiwidGwiKSkqYTtyZXR1cm4gcD8oej8ibSIrbzoiIikrImwiK0U6KHo/Im0iK0U6IiIpKyJsIitvfTtiPWZ1bmN0aW9uKG8scyxwLHosRSxDKXt2YXIgQT1vPT09ImwifHxvPT09InIiLEI9dFtvXSx5LEc7aWYoQj4wJiZuW29dIT09Im5vbmUiJiZxW29dLmhhKCk+MCl7eT10W0E/bzpzXTtzPXRbQT9zOm9dO0c9dFtBP286cF07cD10W0E/cDpvXTtpZihuW29dPT09ImRhc2hlZCJ8fG5bb109PT0iZG90dGVkIil7Zi5wdXNoKHtwYXRoOngoeix5LHMsQys0NSwwLDEpK3goeiwwLDAsQywxLDApLApmaWxsOnFbb119KTtmLnB1c2goe3BhdGg6cihvLEIvMiwwLDEpLHN0cm9rZTpuW29dLGdiOkIsY29sb3I6cVtvXX0pO2YucHVzaCh7cGF0aDp4KEUsRyxwLEMsMCwxKSt4KEUsMCwwLEMtNDUsMSwwKSxmaWxsOnFbb119KX1lbHNlIGYucHVzaCh7cGF0aDp4KHoseSxzLEMrNDUsMCwxKStyKG8sQiwwLDApK3goRSxHLHAsQywwLDApKyhuW29dPT09ImRvdWJsZSImJkI+Mj94KEUsRy1pKEcvMykscC1pKHAvMyksQy00NSwxLDApK3IobyxqKEIvMyoyKSwxLDApK3goeix5LWkoeS8zKSxzLWkocy8zKSxDLDEsMCkrInggIit4KHosaSh5LzMpLGkocy8zKSxDKzQ1LDAsMSkrcihvLGkoQi8zKSwxLDApK3goRSxpKEcvMyksaShwLzMpLEMsMCwwKToiIikreChFLDAsMCxDLTQ1LDEsMCkrcihvLDAsMSwwKSt4KHosMCwwLEMsMSwwKSxmaWxsOnFbb119KX19O2IoInQiLCJsIiwiciIsInRsIiwidHIiLDkwKTtiKCJyIiwidCIsImIiLCJ0ciIsImJyIiwwKTtiKCJiIiwiciIsImwiLCJiciIsImJsIiwKLTkwKTtiKCJsIiwiYiIsInQiLCJibCIsInRsIiwtMTgwKX19cmV0dXJuIGZ9LGs6ZnVuY3Rpb24oKXtoLkEuay5jYWxsKHRoaXMpO3RoaXMuZC5ydW50aW1lU3R5bGUuYm9yZGVyQ29sb3I9IiJ9fSk7aC5OYj1oLkEuVih7Qjo1LEljOlsidCIsInRyIiwiciIsImJyIiwiYiIsImJsIiwibCIsInRsIiwiYyJdLE46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oLkwuQygpfSxmOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaC5MLmYoKX0sVDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5MLmooKSxiPXRoaXMuby5tKCk7dGhpcy51KCk7dmFyIGM9dGhpcy5kLGc9dGhpcy56YjtoLm4uSWIoYS5zcmMsZnVuY3Rpb24oZCl7ZnVuY3Rpb24gZSh4LHIsbyxzLHApe3g9Z1t4XS5zdHlsZTt4LndpZHRoPXI7eC5oZWlnaHQ9bzt4LmxlZnQ9czt4LnRvcD1wfWZ1bmN0aW9uIGYoeCxyLG8pe2Zvcih2YXIgcz0wLHA9eC5sZW5ndGg7czxwO3MrKylnW3hbc11dLmltYWdlZGF0YVtyXT1vfXZhciBpPWIuZyxqPQpiLmUsaz1hLndpZHRoLG09ay5QLmEoYyksbD1rLk8uYShjKSx1PWsuSy5hKGMpO2s9ay5NLmEoYyk7dmFyIG49YS5zbGljZSxxPW4uUC5hKGMpLHQ9bi5PLmEoYyksdj1uLksuYShjKTtuPW4uTS5hKGMpO2UoInRsIixrLG0sMCwwKTtlKCJ0IixpLWstbCxtLGssMCk7ZSgidHIiLGwsbSxpLWwsMCk7ZSgiciIsbCxqLW0tdSxpLWwsbSk7ZSgiYnIiLGwsdSxpLWwsai11KTtlKCJiIixpLWstbCx1LGssai11KTtlKCJibCIsayx1LDAsai11KTtlKCJsIixrLGotbS11LDAsbSk7ZSgiYyIsaS1rLWwsai1tLXUsayxtKTtmKFsidGwiLCJ0IiwidHIiXSwiY3JvcEJvdHRvbSIsKGQuZS1xKS9kLmUpO2YoWyJ0bCIsImwiLCJibCJdLCJjcm9wUmlnaHQiLChkLmctbikvZC5nKTtmKFsiYmwiLCJiIiwiYnIiXSwiY3JvcFRvcCIsKGQuZS12KS9kLmUpO2YoWyJ0ciIsInIiLCJiciJdLCJjcm9wTGVmdCIsKGQuZy10KS9kLmcpO2lmKGEucmVwZWF0LmViPT09InN0cmV0Y2giKXtmKFsibCIsInIiLCJjIl0sCiJjcm9wVG9wIixxL2QuZSk7ZihbImwiLCJyIiwiYyJdLCJjcm9wQm90dG9tIix2L2QuZSl9aWYoYS5yZXBlYXQuZT09PSJzdHJldGNoIil7ZihbInQiLCJiIiwiYyJdLCJjcm9wTGVmdCIsbi9kLmcpO2YoWyJ0IiwiYiIsImMiXSwiY3JvcFJpZ2h0Iix0L2QuZyl9Zy5jLnN0eWxlLmRpc3BsYXk9YS5maWxsPyIiOiJub25lIn0sdGhpcyl9LHU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnBhcmVudC5tYSh0aGlzLkIpLGIsYyxnLGQ9dGhpcy5JYyxlPWQubGVuZ3RoO2lmKCFhKXthPWRvYy5jcmVhdGVFbGVtZW50KCJib3JkZXItaW1hZ2UiKTtiPWEuc3R5bGU7Yi5wb3NpdGlvbj0iYWJzb2x1dGUiO3RoaXMuemI9e307Zm9yKGc9MDtnPGU7ZysrKXtjPXRoaXMuemJbZFtnXV09aC5uLkFhKCJyZWN0Iik7Yy5hcHBlbmRDaGlsZChoLm4uQWEoImltYWdlZGF0YSIpKTtiPWMuc3R5bGU7Yi5iZWhhdmlvcj0idXJsKCNkZWZhdWx0I1ZNTCkiO2IucG9zaXRpb249ImFic29sdXRlIjtiLnRvcD1iLmxlZnQ9CjA7Yy5pbWFnZWRhdGEuc3JjPXRoaXMuaC5MLmooKS5zcmM7Yy5zdHJva2VkPWZhbHNlO2MuZmlsbGVkPWZhbHNlO2EuYXBwZW5kQ2hpbGQoYyl9dGhpcy5wYXJlbnQuUWEodGhpcy5CLGEpfXJldHVybiBhfX0pO2guUmI9aC5BLlYoe0I6MSx6YToib3V0c2V0LWJveC1zaGFkb3ciLE46ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmg7cmV0dXJuIGEuUy5DKCl8fGEucy5DKCl9LGY6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmguUztyZXR1cm4gYS5mKCkmJmEuaigpLnBhWzBdfSxUOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh5LEcsSCx3LEQsRixJKXt5PWIubmEoInNoYWRvdyIreStHLCJmaWxsIixnLGYteSk7Rz15LmZpbGw7eS5jb29yZHNpemU9bSoyKyIsIitsKjI7eS5jb29yZG9yaWdpbj0iMSwxIjt5LnN0cm9rZWQ9ZmFsc2U7eS5maWxsZWQ9dHJ1ZTtHLmNvbG9yPUQudmFsdWUoYyk7aWYoRil7Ry50eXBlPSJncmFkaWVudHRpdGxlIjtHLmNvbG9yMj1HLmNvbG9yO0cub3BhY2l0eT0wfXkucGF0aD0KSTt2PXkuc3R5bGU7di5sZWZ0PUg7di50b3A9dzt2LndpZHRoPW07di5oZWlnaHQ9bDtyZXR1cm4geX12YXIgYj10aGlzLGM9dGhpcy5kLGc9dGhpcy51KCksZD10aGlzLmgsZT1kLlMuaigpLnBhO2Q9ZC5zLmooKTt2YXIgZj1lLmxlbmd0aCxpPWYsaixrPXRoaXMuby5tKCksbT1rLmcsbD1rLmU7az1oLkQ9PT04PzE6MDtmb3IodmFyIHU9WyJ0bCIsInRyIiwiYnIiLCJibCJdLG4scSx0LHYseCxyLG8scyxwLHosRSxDLEEsQjtpLS07KXtxPWVbaV07eD1xLlhjLmEoYyk7cj1xLlljLmEoYyk7aj1xLlBjLmEoYyk7bz1xLmJsdXIuYShjKTtxPXEuY29sb3I7cz0tai1vO2lmKCFkJiZvKWQ9aC5JYS5KYjtzPXRoaXMua2Eoe1A6cyxPOnMsSzpzLE06c30sMixkKTtpZihvKXtwPShqK28pKjIrbTt6PShqK28pKjIrbDtFPW8qMi9wO0M9byoyL3o7aWYoby1qPm0vMnx8by1qPmwvMilmb3Ioaj00O2otLTspe249dVtqXTtBPW4uY2hhckF0KDApPT09ImIiO0I9bi5jaGFyQXQoMSk9PT0iciI7Cm49YShpLG4seCxyLHEsbyxzKTt0PW4uZmlsbDt0LmZvY3VzcG9zaXRpb249KEI/MS1FOkUpKyIsIisoQT8xLUM6Qyk7dC5mb2N1c3NpemU9IjAsMCI7bi5zdHlsZS5jbGlwPSJyZWN0KCIrKChBP3ovMjowKStrKSsicHgsIisoQj9wOnAvMikrInB4LCIrKEE/ejp6LzIpKyJweCwiKygoQj9wLzI6MCkraykrInB4KSJ9ZWxzZXtuPWEoaSwiIix4LHIscSxvLHMpO3Q9bi5maWxsO3QuZm9jdXNwb3NpdGlvbj1FKyIsIitDO3QuZm9jdXNzaXplPTEtRSoyKyIsIisoMS1DKjIpfX1lbHNle249YShpLCIiLHgscixxLG8scyk7eD1xLmhhKCk7aWYoeDwxKW4uZmlsbC5vcGFjaXR5PXh9fX19KTtoLlViPWguQS5WKHtCOjYsemE6ImltZ0VsIixOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiB0aGlzLmQuc3JjIT09dGhpcy5hY3x8YS5zLkMoKX0sZjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaDtyZXR1cm4gYS5zLmYoKXx8YS5HLnhiKCl9LFQ6ZnVuY3Rpb24oKXt0aGlzLmFjPWY7dGhpcy5CYygpOwp2YXIgYT10aGlzLm5hKCJpbWciLCJmaWxsIix0aGlzLnUoKSksYj1hLmZpbGwsYz10aGlzLm8ubSgpLGc9Yy5nO2M9Yy5lO3ZhciBkPXRoaXMuaC5ILmooKTtkPWQmJmQuaGI7dmFyIGU9dGhpcy5kLGY9ZS5zcmMsaT1NYXRoLnJvdW5kO2Euc3Ryb2tlZD1mYWxzZTtiLnR5cGU9ImZyYW1lIjtiLnNyYz1mO2IucG9zaXRpb249KGc/MC41L2c6MCkrIiwiKyhjPzAuNS9jOjApO2EuY29vcmRzaXplPWcqMisiLCIrYyoyO2EuY29vcmRvcmlnaW49IjEsMSI7YS5wYXRoPXRoaXMua2EoZD97UDppKGQudC5hKGUpKSxPOmkoZC5yLmEoZSkpLEs6aShkLmIuYShlKSksTTppKGQubC5hKGUpKX06MCwyKTthPWEuc3R5bGU7YS53aWR0aD1nO2EuaGVpZ2h0PWN9LEJjOmZ1bmN0aW9uKCl7dGhpcy5kLnJ1bnRpbWVTdHlsZS5maWx0ZXI9ImFscGhhKG9wYWNpdHk9MCkifSxrOmZ1bmN0aW9uKCl7aC5BLmsuY2FsbCh0aGlzKTt0aGlzLmQucnVudGltZVN0eWxlLmZpbHRlcj0iIn19KTtoLkthPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShmKXtmdW5jdGlvbiBpKCl7aWYoIUIpe3ZhciB3LApELEY9Zi5jdXJyZW50U3R5bGUuZ2V0QXR0cmlidXRlKGMpPT09InRydWUiO2lmKCFBKXtBPTE7Zi5ydW50aW1lU3R5bGUuem9vbT0xO2Zvcih2YXIgST1mLE09MTtJPUkucHJldmlvdXNTaWJsaW5nOylpZihJLm5vZGVUeXBlPT09MSl7TT0wO2JyZWFrfWlmKE0pZi5jbGFzc05hbWUrPSIgIitoLkphKyJmaXJzdC1jaGlsZCJ9cC5EYSgpO2lmKEYmJihEPXAubSgpKSYmKHc9ZG9jLmRvY3VtZW50RWxlbWVudHx8ZG9jLmJvZHkpJiYoRC55PncuY2xpZW50SGVpZ2h0fHxELng+dy5jbGllbnRXaWR0aHx8RC55K0QuZTwwfHxELngrRC5nPDApKXtpZighRyl7Rz0xO2guTWEuWChpKX19ZWxzZXtCPTE7Rz1BPTA7aC5NYS5HYShpKTt6PXtHOm5ldyBoLk1iKGYpLEg6bmV3IGguUWIoZiksTDpuZXcgaC5PYihmKSxzOm5ldyBoLklhKGYpLFM6bmV3IGguU2IoZiksZmI6bmV3IGguWGIoZil9O0U9W3ouRyx6Lkgsei5MLHoucyx6LlMsei5mYl07dz1uZXcgaC5WYihmLHAseik7RD1bbmV3IGguUmIoZiwKcCx6LHcpLG5ldyBoLkxiKGYscCx6LHcpLG5ldyBoLlBiKGYscCx6LHcpLG5ldyBoLk5iKGYscCx6LHcpXTtmLnRhZ05hbWU9PT0iSU1HIiYmRC5wdXNoKG5ldyBoLlViKGYscCx6LHcpKTt3LmljPUQ7cz1bd10uY29uY2F0KEQpO2lmKHc9Zi5jdXJyZW50U3R5bGUuZ2V0QXR0cmlidXRlKGguSSsid2F0Y2gtYW5jZXN0b3JzIikpe0M9W107dz1wYXJzZUludCh3LDEwKTtEPTA7Zm9yKEY9Zi5wYXJlbnROb2RlO0YmJih3PT09Ik5hTiJ8fEQrKzx3KTspe0MucHVzaChGKTtGLmF0dGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIix0KTtGLmF0dGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO0YuYXR0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSk7Rj1GLnBhcmVudE5vZGV9fWguV2E9PT04JiZoLkxhLlgoayk7aygxKX1pZigheSl7eT0xO2YuYXR0YWNoRXZlbnQoIm9ubW92ZSIsaik7Zi5hdHRhY2hFdmVudCgib25yZXNpemUiLGopO2YuYXR0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLAptKTtmLmF0dGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO2YuYXR0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSk7aC50YS5YKGopO2guRi5YKHIpfXAuRmEoKX19ZnVuY3Rpb24gaigpe3AmJnAuemMoKSYmaygpfWZ1bmN0aW9uIGsodyl7aWYoIUgpaWYoQil7dmFyIEQsRjt2KCk7aWYod3x8cC5LYygpKXtEPTA7Zm9yKEY9cy5sZW5ndGg7RDxGO0QrKylzW0RdLmRiKCl9aWYod3x8cC5OYygpKXtEPTA7Zm9yKEY9cy5sZW5ndGg7RDxGO0QrKylzW0RdLkViKCl9eCgpfWVsc2UgQXx8aSgpfWZ1bmN0aW9uIG0oKXt2YXIgdyxELEY7dz1ldmVudDtpZighSCYmISh3JiZ3LnByb3BlcnR5TmFtZSBpbiBlKSlpZihCKXt2KCk7dz0wO2ZvcihEPXMubGVuZ3RoO3c8RDt3Kyspe0Y9c1t3XTtGLlphfHxGLmRiKCk7Ri5OKCkmJkYuRGIoKX14KCl9ZWxzZSBBfHxpKCl9ZnVuY3Rpb24gbCgpe2lmKGYpZi5jbGFzc05hbWUrPWd9ZnVuY3Rpb24gdSgpe2lmKGYpZi5jbGFzc05hbWU9Zi5jbGFzc05hbWUucmVwbGFjZShkLAoiIil9ZnVuY3Rpb24gbigpe3NldFRpbWVvdXQobCwwKX1mdW5jdGlvbiBxKCl7c2V0VGltZW91dCh1LDApfWZ1bmN0aW9uIHQoKXt2YXIgdz1ldmVudC5wcm9wZXJ0eU5hbWU7aWYodz09PSJjbGFzc05hbWUifHx3PT09ImlkIiltKCl9ZnVuY3Rpb24gdigpe3AuRGEoKTtmb3IodmFyIHc9RS5sZW5ndGg7dy0tOylFW3ddLkRhKCl9ZnVuY3Rpb24geCgpe2Zvcih2YXIgdz1FLmxlbmd0aDt3LS07KUVbd10uRmEoKTtwLkZhKCl9ZnVuY3Rpb24gcigpe2lmKHkpe2lmKEMpZm9yKHZhciB3PTAsRD1DLmxlbmd0aCxGO3c8RDt3Kyspe0Y9Q1t3XTtGLmRldGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIix0KTtGLmRldGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO0YuZGV0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSl9Zi5kZXRhY2hFdmVudCgib25tb3ZlIixrKTtmLmRldGFjaEV2ZW50KCJvbnJlc2l6ZSIsayk7Zi5kZXRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsbSk7Zi5kZXRhY2hFdmVudCgib25tb3VzZWVudGVyIiwKbik7Zi5kZXRhY2hFdmVudCgib25tb3VzZWxlYXZlIixxKTtoLkYuR2Eocik7eT0wfX1mdW5jdGlvbiBvKCl7aWYoIUgpe3ZhciB3LEQ7cigpO0g9MTtpZihzKXt3PTA7Zm9yKEQ9cy5sZW5ndGg7dzxEO3crKylzW3ddLmsoKX1oLldhPT09OCYmaC5MYS5HYShrKTtoLnRhLkdhKGspO3M9cD16PUU9Qz1mPW51bGx9fXZhciBzLHA9bmV3IEsoZikseixFLEMsQSxCLHksRyxIO3RoaXMuRGM9aTt0aGlzLnVwZGF0ZT1rO3RoaXMuaz1vO3RoaXMudmM9Zn12YXIgYj17fSxjPWguSSsibGF6eS1pbml0IixnPSIgIitoLkphKyJob3ZlciIsZD1uZXcgUmVnRXhwKCJcXGIiK2guSmErImhvdmVyXFxiIiwiZyIpLGU9e2JhY2tncm91bmQ6MSxiZ0NvbG9yOjEsZGlzcGxheToxfTthLnhjPWZ1bmN0aW9uKGYpe3ZhciBpPWgubi5vYShmKTtyZXR1cm4gYltpXXx8KGJbaV09bmV3IGEoZikpfTthLms9ZnVuY3Rpb24oZil7Zj1oLm4ub2EoZik7dmFyIGk9YltmXTtpZihpKXtpLmsoKTtkZWxldGUgYltmXX19OwphLnJjPWZ1bmN0aW9uKCl7dmFyIGY9W10saTtpZihiKXtmb3IodmFyIGogaW4gYilpZihiLmhhc093blByb3BlcnR5KGopKXtpPWJbal07Zi5wdXNoKGkudmMpO2kuaygpfWI9e319cmV0dXJuIGZ9O3JldHVybiBhfSgpO2guYXR0YWNoPWZ1bmN0aW9uKGEpe2guRDw5JiZoLkthLnhjKGEpLkRjKCl9O2guZGV0YWNoPWZ1bmN0aW9uKGEpe2guS2EuayhhKX19Owp2YXIgTD13aW5kb3cuUElFLE49ZWxlbWVudDtmdW5jdGlvbiBpbml0KCl7ZG9jLm1lZGlhIT09InByaW50IiYmTC5hdHRhY2goTil9ZnVuY3Rpb24gY2xlYW51cCgpe0wuZGV0YWNoKE4pO0w9Tj0wfU4ucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSImJmluaXQoKTsKPC9zY3JpcHQ+CjwvUFVCTElDOkNPTVBPTkVOVD4K);width: 922px;}.main-menu-ul {list-style: none;margin-left: 5px;}.main-menu-ul li {position: relative;float: left;padding: 0 14px;text-align: center;}.menu-active, .menu-li:hover {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAjCAIAAADaE/fjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjk3NzA0MDA3QkU4QjExRTA5NjBBRUFDREJDMjJCNjM5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjk3NzA0MDA4QkU4QjExRTA5NjBBRUFDREJDMjJCNjM5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OTc3MDQwMDVCRThCMTFFMDk2MEFFQUNEQkMyMkI2MzkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OTc3MDQwMDZCRThCMTFFMDk2MEFFQUNEQkMyMkI2MzkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7aEDk4AAAASElEQVR42kxNwRHAMAgC7BK96/5TdLZSE5PaBycoIO7zEgDRqEkqhVJO/mHdtqdgBWJyq70YHTqK597/HrYemQD1MJ8ZrwADAPlMC4VXnoDeAAAAAElFTkSuQmCC) repeat-x;}.active-arrow {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAICAIAAACgWpLfAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEyRDk2MDcxQkU4QzExRTA5NDE4QjRCRTdBREJBRDc0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEyRDk2MDcyQkU4QzExRTA5NDE4QjRCRTdBREJBRDc0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTJEOTYwNkZCRThDMTFFMDk0MThCNEJFN0FEQkFENzQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTJEOTYwNzBCRThDMTFFMDk0MThCNEJFN0FEQkFENzQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7Xp/NcAAAAoUlEQVR42mxOQQrDIBCsK0LUY8BL8BLyBnMQyV2i+J480yfk7BNCzLaWUNrOYd0dZ2aXbNtWa338gBCCPGMMlFLY4fylaGRKCWKMXdf9jZnneRxH6Pvee99Mtxur1npZFmzgPM9pmowxAHCvk1Jidn3hzVprh2Fo16EUvznnLQ/wOY6DUrquqxACKedcU2P8019KaVbEvu855xDC572XAAMAjX1RyakenTkAAAAASUVORK5CYII=) no-repeat scroll 0 0 transparent;bottom: -11px;height: 8px;left: 43%;position: absolute;width: 11px;}.menu-sep {width: 3px !important;height: 35px;padding: 0 !important;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAjCAIAAADe5ifeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU1MTkzMjE5QkU4QTExRTA5NUFBRTU0NkQzMUY0RTc2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjU1MTkzMjFBQkU4QTExRTA5NUFBRTU0NkQzMUY0RTc2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTUxOTMyMTdCRThBMTFFMDk1QUFFNTQ2RDMxRjRFNzYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTUxOTMyMThCRThBMTFFMDk1QUFFNTQ2RDMxRjRFNzYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6Hn35xAAAAc0lEQVR42oxQQQ7AIAgbyBv9/0OcrqUsmZ7WZFhayKrWe78SsdY6mV8vdhcwM5eGGmOMOWdrLe4Ed3FIdnxoikFD83HPObrbxsbwNzKB+RCkkoLRZTLPSt2zokM4apbYNUAsatw95NacNkIX+/VCYo8AAwBsqoqjizOxWwAAAABJRU5ErkJggg==) no-repeat;}.main-menu-ul li a {color: #FFFFFF;font-family: Trebuchet MS,sans-serif;font-size: 12px;line-height: 34px;text-decoration: none;text-transform: uppercase;}.header-bottom {width: 100%;height: 33px;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAhCAIAAACX21boAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE4QTQ4RjAxQkU4RDExRTBCRThBOURBMDEwQzJBNjcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjE4QTQ4RjAyQkU4RDExRTBCRThBOURBMDEwQzJBNjcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MThBNDhFRkZCRThEMTFFMEJFOEE5REEwMTBDMkE2NzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MThBNDhGMDBCRThEMTFFMEJFOEE5REEwMTBDMkE2NzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7rBiqHAAAAM0lEQVR42mKorKxkYmBgYJKQkGD4+PEj0////8F8EI2MsYnhkv/37x+GelxmsrOzAwQYAPTPRpV4o1+HAAAAAElFTkSuQmCC) repeat-x;}.wrapper {width: 930px;margin: 0 auto;overflow: hidden;}.content {width: 615px;float: left;margin-top: 16px;}.container {background: #fff;position: relative;z-index: 150;border-left: 2px double #dedede;border-right: 2px double #d3d3d3;border-bottom: 1px solid #c1c1c1;border-top: 1px solid #cdcdcd;-moz-border-radius:10px 10px 10px 10px; -webkit-border-radius: 10px 10px 10px 10px; border-radius: 10px 10px 10px 10px; behavior: url(data:image/htc;base64,PCEtLQpQSUU6IENTUzMgcmVuZGVyaW5nIGZvciBJRQpWZXJzaW9uIDEuMGJldGEzCmh0dHA6Ly9jc3MzcGllLmNvbQpEdWFsLWxpY2Vuc2VkIGZvciB1c2UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wIG9yIHRoZSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMi4KLS0+CjwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwMTQpYWJvdXQ6aW50ZXJuZXQgLS0+CjxQVUJMSUM6Q09NUE9ORU5UIGxpZ2h0V2VpZ2h0PSJ0cnVlIj4KPFBVQkxJQzpBVFRBQ0ggRVZFTlQ9Im9uY29udGVudHJlYWR5IiBGT1I9ImVsZW1lbnQiIE9ORVZFTlQ9ImluaXQoKSIgLz4KPFBVQkxJQzpBVFRBQ0ggRVZFTlQ9Im9uZG9jdW1lbnRyZWFkeSIgRk9SPSJlbGVtZW50IiBPTkVWRU5UPSJpbml0KCkiIC8+CjxQVUJMSUM6QVRUQUNIIEVWRU5UPSJvbmRldGFjaCIgRk9SPSJlbGVtZW50IiBPTkVWRU5UPSJjbGVhbnVwKCkiIC8+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBkb2MgPSBlbGVtZW50LmRvY3VtZW50O3ZhciBoPXdpbmRvdy5QSUU7CmlmKCFoKXtoPXdpbmRvdy5QSUU9e0k6Ii1waWUtIixOYToiUGllIixKYToicGllXyIsQ2I6e1REOjEsVEg6MX19O3RyeXtkb2MuZXhlY0NvbW1hbmQoIkJhY2tncm91bmRJbWFnZUNhY2hlIixmYWxzZSx0cnVlKX1jYXRjaChKKXt9aC5EPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPTQsYj1kb2MuY3JlYXRlRWxlbWVudCgiZGl2IiksYz1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpIik7Yi5pbm5lckhUTUw9IjwhLS1baWYgZ3QgSUUgIisgKythKyJdPjxpPjwvaT48IVtlbmRpZl0tLVw+IixjWzBdOyk7cmV0dXJuIGF9KCk7aWYoaC5EPT09NiloLkk9aC5JLnJlcGxhY2UoL14tLywiIik7aC5XYT1oLkQ9PT04JiZkb2MuZG9jdW1lbnRNb2RlO2gubj17QWE6ZnVuY3Rpb24oYSl7dmFyIGI9aC5mYztpZighYil7Yj1oLmZjPWRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yi5uYW1lc3BhY2VzLmFkZCgiY3NzM3ZtbCIsInVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIil9cmV0dXJuIGIuY3JlYXRlRWxlbWVudCgiY3NzM3ZtbDoiK2EpfSwKb2E6ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEuX3BpZUlkfHwoYS5fcGllSWQ9K25ldyBEYXRlK01hdGgucmFuZG9tKCkpfSwkYTpmdW5jdGlvbihhKXt2YXIgYixjLGcsZCxlPWFyZ3VtZW50cztiPTE7Zm9yKGM9ZS5sZW5ndGg7YjxjO2IrKyl7ZD1lW2JdO2ZvcihnIGluIGQpaWYoZC5oYXNPd25Qcm9wZXJ0eShnKSlhW2ddPWRbZ119cmV0dXJuIGF9LEliOmZ1bmN0aW9uKGEsYixjKXt2YXIgZz1oLlpifHwoaC5aYj17fSksZD1nW2FdLGU7aWYoZCliLmNhbGwoYyxkKTtlbHNle2U9bmV3IEltYWdlO2Uub25sb2FkPWZ1bmN0aW9uKCl7ZD1nW2FdPXtnOmUud2lkdGgsZTplLmhlaWdodH07Yi5jYWxsKGMsZCk7ZS5vbmxvYWQ9bnVsbH07ZS5zcmM9YX19fTtoLmVhPWZ1bmN0aW9uKCl7dGhpcy5iYj1bXTt0aGlzLndiPXt9fTtoLmVhLnByb3RvdHlwZT17WDpmdW5jdGlvbihhKXt2YXIgYj1oLm4ub2EoYSksYz10aGlzLndiLGc9dGhpcy5iYjtpZighKGIgaW4gYykpe2NbYl09Zy5sZW5ndGg7CmcucHVzaChhKX19LEdhOmZ1bmN0aW9uKGEpe2E9aC5uLm9hKGEpO3ZhciBiPXRoaXMud2I7aWYoYSYmYSBpbiBiKXtkZWxldGUgdGhpcy5iYltiW2FdXTtkZWxldGUgYlthXX19LENhOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMuYmIsYj1hLmxlbmd0aDtiLS07KWFbYl0mJmFbYl0oKX19O2lmKGguV2E9PT04KXtoLkxhPW5ldyBoLmVhO3NldEludGVydmFsKGZ1bmN0aW9uKCl7aC5MYS5DYSgpfSwyNTApfWguRj1uZXcgaC5lYTt3aW5kb3cuYXR0YWNoRXZlbnQoIm9uYmVmb3JldW5sb2FkIixmdW5jdGlvbigpe2guRi5DYSgpfSk7aC5GLnlhPWZ1bmN0aW9uKGEsYixjKXthLmF0dGFjaEV2ZW50KGIsYyk7dGhpcy5YKGZ1bmN0aW9uKCl7YS5kZXRhY2hFdmVudChiLGMpfSl9OyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtoLnRhLkNhKCl9aC50YT1uZXcgaC5lYTtoLkYueWEod2luZG93LCJvbnJlc2l6ZSIsYSl9KSgpOyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtoLk1hLkNhKCl9aC5NYT0KbmV3IGguZWE7aC5GLnlhKHdpbmRvdywib25zY3JvbGwiLGEpO2gudGEuWChhKX0pKCk7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2M9aC5LYS5yYygpfWZ1bmN0aW9uIGIoKXtpZihjKXtmb3IodmFyIGc9MCxkPWMubGVuZ3RoO2c8ZDtnKyspaC5hdHRhY2goY1tnXSk7Yz0wfX12YXIgYztoLkYueWEod2luZG93LCJvbmJlZm9yZXByaW50IixhKTtoLkYueWEod2luZG93LCJvbmFmdGVycHJpbnQiLGIpfSkoKTtoLmk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGUpe3RoaXMudz1lfXZhciBiPWRvYy5jcmVhdGVFbGVtZW50KCJsZW5ndGgtY2FsYyIpLGM9Yi5zdHlsZSxnPXt9LGQ9e307Yy5wb3NpdGlvbj0iYWJzb2x1dGUiO2MudG9wPWMubGVmdD0tOTk5OTthLnByb3RvdHlwZT17Y2I6LyhweHxlbXxleHxtbXxjbXxpbnxwdHxwY3wlKSQvLHJiOmZ1bmN0aW9uKCl7dmFyIGU9Z1t0aGlzLnddO2lmKGU9PT12b2lkIDApZT1nW3RoaXMud109cGFyc2VGbG9hdCh0aGlzLncpO3JldHVybiBlfSwKVWE6ZnVuY3Rpb24oKXt2YXIgZT1kW3RoaXMud107aWYoIWUpe2U9dGhpcy53Lm1hdGNoKHRoaXMuY2IpO2U9ZFt0aGlzLnddPWUmJmVbMF18fCJweCJ9cmV0dXJuIGV9LGE6ZnVuY3Rpb24oZSxmKXt2YXIgaT10aGlzLnJiKCksaj10aGlzLlVhKCk7c3dpdGNoKGope2Nhc2UgInB4IjpyZXR1cm4gaTtjYXNlICIlIjpyZXR1cm4gaSoodHlwZW9mIGY9PT0iZnVuY3Rpb24iP2YoKTpmKS8xMDA7Y2FzZSAiZW0iOnJldHVybiBpKnRoaXMucGIoZSk7Y2FzZSAiZXgiOnJldHVybiBpKnRoaXMucGIoZSkvMjtkZWZhdWx0OnJldHVybiBpKmEub2Nbal19fSxwYjpmdW5jdGlvbihlKXt2YXIgZj1lLmN1cnJlbnRTdHlsZS5mb250U2l6ZTtpZihmLmluZGV4T2YoInB4Iik+MClyZXR1cm4gcGFyc2VGbG9hdChmKTtlbHNle2Iuc3R5bGUud2lkdGg9IjFlbSI7ZS5hcHBlbmRDaGlsZChiKTtmPWIub2Zmc2V0V2lkdGg7Yi5wYXJlbnROb2RlIT09ZSYmZS5yZW1vdmVDaGlsZChiKTtyZXR1cm4gZn19fTsKYS5vYz1mdW5jdGlvbigpe3ZhciBlPVsibW0iLCJjbSIsImluIiwicHQiLCJwYyJdLGY9e30saT1kb2MuZG9jdW1lbnRFbGVtZW50LGo9ZS5sZW5ndGgsaztmb3IoaS5hcHBlbmRDaGlsZChiKTtqLS07KXtrPWVbal07Yi5zdHlsZS53aWR0aD0iMTAwIitrO2Zba109Yi5vZmZzZXRXaWR0aC8xMDB9aS5yZW1vdmVDaGlsZChiKTtyZXR1cm4gZn0oKTthLmxiPW5ldyBhKCIwIik7cmV0dXJuIGF9KCk7aC5IYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoZCl7dGhpcy5RPWR9dmFyIGI9bmV3IGguaSgiNTAlIiksYz17dG9wOjEsY2VudGVyOjEsYm90dG9tOjF9LGc9e2xlZnQ6MSxjZW50ZXI6MSxyaWdodDoxfTthLnByb3RvdHlwZT17eWM6ZnVuY3Rpb24oKXtpZighdGhpcy5vYil7dmFyIGQ9dGhpcy5RLGU9ZC5sZW5ndGgsZj1oLmkubGIsaT1oLnEuZmEuYmE7Zj1bImxlZnQiLGYsInRvcCIsZl07aWYoZT09PTEpe2QucHVzaCh7dHlwZTppLHZhbHVlOiJjZW50ZXIifSk7ZSsrfWlmKGU9PT0yKXtpJgooZFswXS50eXBlfGRbMV0udHlwZSkmJmRbMF0udmFsdWUgaW4gYyYmZFsxXS52YWx1ZSBpbiBnJiZkLnB1c2goZC5zaGlmdCgpKTtpZihkWzBdLnR5cGUmaSlpZihkWzBdLnZhbHVlPT09ImNlbnRlciIpZlsxXT1iO2Vsc2UgZlswXT1kWzBdLnZhbHVlO2Vsc2UgaWYoZFswXS5VKCkpZlsxXT1uZXcgaC5pKGRbMF0udmFsdWUpO2lmKGRbMV0udHlwZSZpKWlmKGRbMV0udmFsdWU9PT0iY2VudGVyIilmWzNdPWI7ZWxzZSBmWzJdPWRbMV0udmFsdWU7ZWxzZSBpZihkWzFdLlUoKSlmWzNdPW5ldyBoLmkoZFsxXS52YWx1ZSl9dGhpcy5vYj1mfXJldHVybiB0aGlzLm9ifSxjb29yZHM6ZnVuY3Rpb24oZCxlLGYpe3ZhciBpPXRoaXMueWMoKSxqPWlbMV0uYShkLGUpO2Q9aVszXS5hKGQsZik7cmV0dXJue3g6aVswXT09PSJyaWdodCI/ZS1qOmoseTppWzJdPT09ImJvdHRvbSI/Zi1kOmR9fX07cmV0dXJuIGF9KCk7aC5LYj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7dGhpcy53PWJ9YS5wcm90b3R5cGU9CntjYjovW2Etel0rJC9pLFVhOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWN8fCh0aGlzLmVjPXRoaXMudy5tYXRjaCh0aGlzLmNiKVswXS50b0xvd2VyQ2FzZSgpKX0scWM6ZnVuY3Rpb24oKXt2YXIgYj10aGlzLlliLGM7aWYoYj09PXVuZGVmaW5lZCl7Yj10aGlzLlVhKCk7Yz1wYXJzZUZsb2F0KHRoaXMudywxMCk7Yj10aGlzLlliPWI9PT0iZGVnIj9jOmI9PT0icmFkIj9jL01hdGguUEkqMTgwOmI9PT0iZ3JhZCI/Yy80MDAqMzYwOmI9PT0idHVybiI/YyozNjA6MH1yZXR1cm4gYn19O3JldHVybiBhfSgpO2guUj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7dGhpcy53PWJ9YS5NYz0vXHMqcmdiYVwoXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSlccyosXHMqKFxkK3xcZCpcLlxkKylccypcKVxzKi87YS5hYj17YWxpY2VibHVlOiIjRjBGOEZGIixhbnRpcXVld2hpdGU6IiNGQUVCRDciLGFxdWE6IiMwMEZGRkYiLGFxdWFtYXJpbmU6IiM3RkZGRDQiLAphenVyZToiI0YwRkZGRiIsYmVpZ2U6IiNGNUY1REMiLGJpc3F1ZToiI0ZGRTRDNCIsYmxhY2s6IiMwMDAwMDAiLGJsYW5jaGVkYWxtb25kOiIjRkZFQkNEIixibHVlOiIjMDAwMEZGIixibHVldmlvbGV0OiIjOEEyQkUyIixicm93bjoiI0E1MkEyQSIsYnVybHl3b29kOiIjREVCODg3IixjYWRldGJsdWU6IiM1RjlFQTAiLGNoYXJ0cmV1c2U6IiM3RkZGMDAiLGNob2NvbGF0ZToiI0QyNjkxRSIsY29yYWw6IiNGRjdGNTAiLGNvcm5mbG93ZXJibHVlOiIjNjQ5NUVEIixjb3Juc2lsazoiI0ZGRjhEQyIsY3JpbXNvbjoiI0RDMTQzQyIsY3lhbjoiIzAwRkZGRiIsZGFya2JsdWU6IiMwMDAwOEIiLGRhcmtjeWFuOiIjMDA4QjhCIixkYXJrZ29sZGVucm9kOiIjQjg4NjBCIixkYXJrZ3JheToiI0E5QTlBOSIsZGFya2dyZWVuOiIjMDA2NDAwIixkYXJra2hha2k6IiNCREI3NkIiLGRhcmttYWdlbnRhOiIjOEIwMDhCIixkYXJrb2xpdmVncmVlbjoiIzU1NkIyRiIsZGFya29yYW5nZToiI0ZGOEMwMCIsCmRhcmtvcmNoaWQ6IiM5OTMyQ0MiLGRhcmtyZWQ6IiM4QjAwMDAiLGRhcmtzYWxtb246IiNFOTk2N0EiLGRhcmtzZWFncmVlbjoiIzhGQkM4RiIsZGFya3NsYXRlYmx1ZToiIzQ4M0Q4QiIsZGFya3NsYXRlZ3JheToiIzJGNEY0RiIsZGFya3R1cnF1b2lzZToiIzAwQ0VEMSIsZGFya3Zpb2xldDoiIzk0MDBEMyIsZGVlcHBpbms6IiNGRjE0OTMiLGRlZXBza3libHVlOiIjMDBCRkZGIixkaW1ncmF5OiIjNjk2OTY5Iixkb2RnZXJibHVlOiIjMUU5MEZGIixmaXJlYnJpY2s6IiNCMjIyMjIiLGZsb3JhbHdoaXRlOiIjRkZGQUYwIixmb3Jlc3RncmVlbjoiIzIyOEIyMiIsZnVjaHNpYToiI0ZGMDBGRiIsZ2FpbnNib3JvOiIjRENEQ0RDIixnaG9zdHdoaXRlOiIjRjhGOEZGIixnb2xkOiIjRkZENzAwIixnb2xkZW5yb2Q6IiNEQUE1MjAiLGdyYXk6IiM4MDgwODAiLGdyZWVuOiIjMDA4MDAwIixncmVlbnllbGxvdzoiI0FERkYyRiIsaG9uZXlkZXc6IiNGMEZGRjAiLGhvdHBpbms6IiNGRjY5QjQiLAppbmRpYW5yZWQ6IiNDRDVDNUMiLGluZGlnbzoiIzRCMDA4MiIsaXZvcnk6IiNGRkZGRjAiLGtoYWtpOiIjRjBFNjhDIixsYXZlbmRlcjoiI0U2RTZGQSIsbGF2ZW5kZXJibHVzaDoiI0ZGRjBGNSIsbGF3bmdyZWVuOiIjN0NGQzAwIixsZW1vbmNoaWZmb246IiNGRkZBQ0QiLGxpZ2h0Ymx1ZToiI0FERDhFNiIsbGlnaHRjb3JhbDoiI0YwODA4MCIsbGlnaHRjeWFuOiIjRTBGRkZGIixsaWdodGdvbGRlbnJvZHllbGxvdzoiI0ZBRkFEMiIsbGlnaHRncmVlbjoiIzkwRUU5MCIsbGlnaHRncmV5OiIjRDNEM0QzIixsaWdodHBpbms6IiNGRkI2QzEiLGxpZ2h0c2FsbW9uOiIjRkZBMDdBIixsaWdodHNlYWdyZWVuOiIjMjBCMkFBIixsaWdodHNreWJsdWU6IiM4N0NFRkEiLGxpZ2h0c2xhdGVncmF5OiIjNzc4ODk5IixsaWdodHN0ZWVsYmx1ZToiI0IwQzRERSIsbGlnaHR5ZWxsb3c6IiNGRkZGRTAiLGxpbWU6IiMwMEZGMDAiLGxpbWVncmVlbjoiIzMyQ0QzMiIsbGluZW46IiNGQUYwRTYiLG1hZ2VudGE6IiNGRjAwRkYiLAptYXJvb246IiM4MDAwMDAiLG1lZGl1bWF1cWFtYXJpbmU6IiM2NkNEQUEiLG1lZGl1bWJsdWU6IiMwMDAwQ0QiLG1lZGl1bW9yY2hpZDoiI0JBNTVEMyIsbWVkaXVtcHVycGxlOiIjOTM3MEQ4IixtZWRpdW1zZWFncmVlbjoiIzNDQjM3MSIsbWVkaXVtc2xhdGVibHVlOiIjN0I2OEVFIixtZWRpdW1zcHJpbmdncmVlbjoiIzAwRkE5QSIsbWVkaXVtdHVycXVvaXNlOiIjNDhEMUNDIixtZWRpdW12aW9sZXRyZWQ6IiNDNzE1ODUiLG1pZG5pZ2h0Ymx1ZToiIzE5MTk3MCIsbWludGNyZWFtOiIjRjVGRkZBIixtaXN0eXJvc2U6IiNGRkU0RTEiLG1vY2Nhc2luOiIjRkZFNEI1IixuYXZham93aGl0ZToiI0ZGREVBRCIsbmF2eToiIzAwMDA4MCIsb2xkbGFjZToiI0ZERjVFNiIsb2xpdmU6IiM4MDgwMDAiLG9saXZlZHJhYjoiIzY4OEUyMyIsb3JhbmdlOiIjRkZBNTAwIixvcmFuZ2VyZWQ6IiNGRjQ1MDAiLG9yY2hpZDoiI0RBNzBENiIscGFsZWdvbGRlbnJvZDoiI0VFRThBQSIscGFsZWdyZWVuOiIjOThGQjk4IiwKcGFsZXR1cnF1b2lzZToiI0FGRUVFRSIscGFsZXZpb2xldHJlZDoiI0Q4NzA5MyIscGFwYXlhd2hpcDoiI0ZGRUZENSIscGVhY2hwdWZmOiIjRkZEQUI5IixwZXJ1OiIjQ0Q4NTNGIixwaW5rOiIjRkZDMENCIixwbHVtOiIjRERBMEREIixwb3dkZXJibHVlOiIjQjBFMEU2IixwdXJwbGU6IiM4MDAwODAiLHJlZDoiI0ZGMDAwMCIscm9zeWJyb3duOiIjQkM4RjhGIixyb3lhbGJsdWU6IiM0MTY5RTEiLHNhZGRsZWJyb3duOiIjOEI0NTEzIixzYWxtb246IiNGQTgwNzIiLHNhbmR5YnJvd246IiNGNEE0NjAiLHNlYWdyZWVuOiIjMkU4QjU3IixzZWFzaGVsbDoiI0ZGRjVFRSIsc2llbm5hOiIjQTA1MjJEIixzaWx2ZXI6IiNDMEMwQzAiLHNreWJsdWU6IiM4N0NFRUIiLHNsYXRlYmx1ZToiIzZBNUFDRCIsc2xhdGVncmF5OiIjNzA4MDkwIixzbm93OiIjRkZGQUZBIixzcHJpbmdncmVlbjoiIzAwRkY3RiIsc3RlZWxibHVlOiIjNDY4MkI0Iix0YW46IiNEMkI0OEMiLHRlYWw6IiMwMDgwODAiLAp0aGlzdGxlOiIjRDhCRkQ4Iix0b21hdG86IiNGRjYzNDciLHR1cnF1b2lzZToiIzQwRTBEMCIsdmlvbGV0OiIjRUU4MkVFIix3aGVhdDoiI0Y1REVCMyIsd2hpdGU6IiNGRkZGRkYiLHdoaXRlc21va2U6IiNGNUY1RjUiLHllbGxvdzoiI0ZGRkYwMCIseWVsbG93Z3JlZW46IiM5QUNEMzIifTthLnByb3RvdHlwZT17cGFyc2U6ZnVuY3Rpb24oKXtpZighdGhpcy53YSl7dmFyIGI9dGhpcy53LGM7aWYoYz1iLm1hdGNoKGEuTWMpKXt0aGlzLndhPSJyZ2IoIitjWzFdKyIsIitjWzJdKyIsIitjWzNdKyIpIjt0aGlzLm1iPXBhcnNlRmxvYXQoY1s0XSl9ZWxzZXtpZigoYz1iLnRvTG93ZXJDYXNlKCkpaW4gYS5hYiliPWEuYWJbY107dGhpcy53YT1iO3RoaXMubWI9Yj09PSJ0cmFuc3BhcmVudCI/MDoxfX19LHZhbHVlOmZ1bmN0aW9uKGIpe3RoaXMucGFyc2UoKTtyZXR1cm4gdGhpcy53YT09PSJjdXJyZW50Q29sb3IiP2IuY3VycmVudFN0eWxlLmNvbG9yOnRoaXMud2F9LGhhOmZ1bmN0aW9uKCl7dGhpcy5wYXJzZSgpOwpyZXR1cm4gdGhpcy5tYn19O3JldHVybiBhfSgpO2gucT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYyl7dGhpcy5CYT1jO3RoaXMuY2g9MDt0aGlzLlE9W107dGhpcy5yYT0wfXZhciBiPWEuZmE9e3NhOjEsaWI6MixhYTo0LFRiOjgsamI6MTYsYmE6MzIsejo2NCxjYToxMjgsZGE6MjU2LHVhOjUxMixXYjoxMDI0LFVSTDoyMDQ4fTthLmtiPWZ1bmN0aW9uKGMsZyl7dGhpcy50eXBlPWM7dGhpcy52YWx1ZT1nfTthLmtiLnByb3RvdHlwZT17WWE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlJmIuenx8dGhpcy50eXBlJmIuY2EmJnRoaXMudmFsdWU9PT0iMCJ9LFU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ZYSgpfHx0aGlzLnR5cGUmYi51YX19O2EucHJvdG90eXBlPXtWYzovXHMvLEdjOi9eW1wrXC1dPyhcZCpcLik/XGQrLyx1cmw6L151cmxcKFxzKigiKFteIl0qKSJ8JyhbXiddKiknfChbISMkJSYqLX5dKikpXHMqXCkvaSx2YjovXlwtP1tfYS16XVtcdy1dKi9pLFFjOi9eKCIoW14iXSopInwnKFteJ10qKScpLywKQWM6L14jKFtcZGEtZl17Nn18W1xkYS1mXXszfSkvaSxUYzp7cHg6Yi56LGVtOmIueixleDpiLnosbW06Yi56LGNtOmIueiwiaW4iOmIueixwdDpiLnoscGM6Yi56LGRlZzpiLnNhLHJhZDpiLnNhLGdyYWQ6Yi5zYX0sbGM6e3JnYjoxLHJnYmE6MSxoc2w6MSxoc2xhOjF9LG5leHQ6ZnVuY3Rpb24oYyl7ZnVuY3Rpb24gZyh1LG4pe3U9bmV3IGEua2IodSxuKTtpZighYyl7ay5RLnB1c2godSk7ay5yYSsrfXJldHVybiB1fWZ1bmN0aW9uIGQoKXtrLnJhKys7cmV0dXJuIG51bGx9dmFyIGUsZixpLGosaz10aGlzO2lmKHRoaXMucmE8dGhpcy5RLmxlbmd0aClyZXR1cm4gdGhpcy5RW3RoaXMucmErK107Zm9yKDt0aGlzLlZjLnRlc3QodGhpcy5CYS5jaGFyQXQodGhpcy5jaCkpOyl0aGlzLmNoKys7aWYodGhpcy5jaD49dGhpcy5CYS5sZW5ndGgpcmV0dXJuIGQoKTtmPXRoaXMuY2g7ZT10aGlzLkJhLnN1YnN0cmluZyh0aGlzLmNoKTtpPWUuY2hhckF0KDApO3N3aXRjaChpKXtjYXNlICIjIjppZihqPQplLm1hdGNoKHRoaXMuQWMpKXt0aGlzLmNoKz1qWzBdLmxlbmd0aDtyZXR1cm4gZyhiLmFhLGpbMF0pfWJyZWFrO2Nhc2UgJyInOmNhc2UgIiciOmlmKGo9ZS5tYXRjaCh0aGlzLlFjKSl7dGhpcy5jaCs9alswXS5sZW5ndGg7cmV0dXJuIGcoYi5XYixqWzJdfHxqWzNdfHwiIil9YnJlYWs7Y2FzZSAiLyI6Y2FzZSAiLCI6dGhpcy5jaCsrO3JldHVybiBnKGIuZGEsaSk7Y2FzZSAidSI6aWYoaj1lLm1hdGNoKHRoaXMudXJsKSl7dGhpcy5jaCs9alswXS5sZW5ndGg7cmV0dXJuIGcoYi5VUkwsalsyXXx8alszXXx8als0XXx8IiIpfX1pZihqPWUubWF0Y2godGhpcy5HYykpe2k9alswXTt0aGlzLmNoKz1pLmxlbmd0aDtpZihlLmNoYXJBdChpLmxlbmd0aCk9PT0iJSIpe3RoaXMuY2grKztyZXR1cm4gZyhiLnVhLGkrIiUiKX1pZihqPWUuc3Vic3RyaW5nKGkubGVuZ3RoKS5tYXRjaCh0aGlzLnZiKSl7aSs9alswXTt0aGlzLmNoKz1qWzBdLmxlbmd0aDtyZXR1cm4gZyh0aGlzLlRjW2pbMF0udG9Mb3dlckNhc2UoKV18fApiLlRiLGkpfXJldHVybiBnKGIuY2EsaSl9aWYoaj1lLm1hdGNoKHRoaXMudmIpKXtpPWpbMF07dGhpcy5jaCs9aS5sZW5ndGg7aWYoaS50b0xvd2VyQ2FzZSgpaW4gaC5SLmFifHxpPT09ImN1cnJlbnRDb2xvciIpcmV0dXJuIGcoYi5hYSxpKTtpZihlLmNoYXJBdChpLmxlbmd0aCk9PT0iKCIpe3RoaXMuY2grKztpZihpLnRvTG93ZXJDYXNlKClpbiB0aGlzLmxjKXtlPWZ1bmN0aW9uKHUpe3JldHVybiB1JiZ1LnR5cGUmYi5jYX07aj1mdW5jdGlvbih1KXtyZXR1cm4gdSYmdS50eXBlJihiLmNhfGIudWEpfTt2YXIgbT1mdW5jdGlvbih1LG4pe3JldHVybiB1JiZ1LnZhbHVlPT09bn0sbD1mdW5jdGlvbigpe3JldHVybiBrLm5leHQoMSl9O2lmKChpLmNoYXJBdCgwKT09PSJyIj9qKGwoKSk6ZShsKCkpKSYmbShsKCksIiwiKSYmaihsKCkpJiZtKGwoKSwiLCIpJiZqKGwoKSkmJihpPT09InJnYiJ8fGk9PT0iaHNhInx8bShsKCksIiwiKSYmZShsKCkpKSYmbShsKCksIikiKSlyZXR1cm4gZyhiLmFhLAp0aGlzLkJhLnN1YnN0cmluZyhmLHRoaXMuY2gpKTtyZXR1cm4gZCgpfXJldHVybiBnKGIuamIsaSsiKCIpfXJldHVybiBnKGIuYmEsaSl9dGhpcy5jaCsrO3JldHVybiBnKGIuaWIsaSl9LHY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RW3RoaXMucmEtLSAtMl19LGFsbDpmdW5jdGlvbigpe2Zvcig7dGhpcy5uZXh0KCk7KTtyZXR1cm4gdGhpcy5RfSwkOmZ1bmN0aW9uKGMsZyl7Zm9yKHZhciBkPVtdLGUsZjtlPXRoaXMubmV4dCgpOyl7aWYoYyhlKSl7Zj10cnVlO3RoaXMudigpO2JyZWFrfWQucHVzaChlKX1yZXR1cm4gZyYmIWY/bnVsbDpkfX07cmV0dXJuIGF9KCk7dmFyIEs9ZnVuY3Rpb24oYSl7dGhpcy5kPWF9O0sucHJvdG90eXBlPXtKOjAsS2M6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLk9hLGI7cmV0dXJuIWF8fChiPXRoaXMubSgpKSYmKGEueCE9PWIueHx8YS55IT09Yi55KX0sTmM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLk9hLGI7cmV0dXJuIWF8fChiPXRoaXMubSgpKSYmKGEuZyE9PQpiLmd8fGEuZSE9PWIuZSl9LHFiOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt4OmEubGVmdCx5OmEudG9wLGc6YS5yaWdodC1hLmxlZnQsZTphLmJvdHRvbS1hLnRvcH19LG06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5KP3RoaXMueGF8fCh0aGlzLnhhPXRoaXMucWIoKSk6dGhpcy5xYigpfSx6YzpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5PYX0sRGE6ZnVuY3Rpb24oKXsrK3RoaXMuSn0sRmE6ZnVuY3Rpb24oKXtpZighLS10aGlzLkope2lmKHRoaXMueGEpdGhpcy5PYT10aGlzLnhhO3RoaXMueGE9bnVsbH19fTsoZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIpe3ZhciBjPWgubi5vYShiKTtyZXR1cm4gZnVuY3Rpb24oKXtpZih0aGlzLkope3ZhciBnPXRoaXMubmJ8fCh0aGlzLm5iPXt9KTtyZXR1cm4gYyBpbiBnP2dbY106KGdbY109Yi5jYWxsKHRoaXMpKX1lbHNlIHJldHVybiBiLmNhbGwodGhpcyl9fWgucD17SjowLFc6ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYyhnKXt0aGlzLmQ9Cmd9aC5uLiRhKGMucHJvdG90eXBlLGgucCxiKTtjLmRjPXt9O3JldHVybiBjfSxqOmZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5sYSgpLGM9dGhpcy5jb25zdHJ1Y3Rvci5kYztyZXR1cm4gYj9iIGluIGM/Y1tiXTooY1tiXT10aGlzLlkoYikpOm51bGx9LGxhOmEoZnVuY3Rpb24oKXt2YXIgYj10aGlzLmQsYz10aGlzLmNvbnN0cnVjdG9yLGc9Yi5zdHlsZTtiPWIuY3VycmVudFN0eWxlO3ZhciBkPXRoaXMuamEsZT10aGlzLnFhLGY9Yy5iY3x8KGMuYmM9aC5JK2QpO2M9Yy5jY3x8KGMuY2M9aC5OYStlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc3Vic3RyaW5nKDEpKTtyZXR1cm4gZ1tjXXx8Yi5nZXRBdHRyaWJ1dGUoZil8fGdbZV18fGIuZ2V0QXR0cmlidXRlKGQpfSksZjphKGZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmooKX0pLEM6YShmdW5jdGlvbigpe3ZhciBiPXRoaXMubGEoKSxjPWIhPT10aGlzLiRiO3RoaXMuJGI9YjtyZXR1cm4gY30pLGlhOmEsRGE6ZnVuY3Rpb24oKXsrK3RoaXMuSn0sCkZhOmZ1bmN0aW9uKCl7LS10aGlzLkp8fGRlbGV0ZSB0aGlzLm5ifX19KSgpO2guTWI9aC5wLlcoe2phOmguSSsiYmFja2dyb3VuZCIscWE6aC5OYSsiQmFja2dyb3VuZCIsaGM6e3Njcm9sbDoxLGZpeGVkOjEsbG9jYWw6MX0sRWE6eyJyZXBlYXQteCI6MSwicmVwZWF0LXkiOjEscmVwZWF0OjEsIm5vLXJlcGVhdCI6MX0sSGM6eyJwYWRkaW5nLWJveCI6MSwiYm9yZGVyLWJveCI6MSwiY29udGVudC1ib3giOjF9LGtjOnsicGFkZGluZy1ib3giOjEsImJvcmRlci1ib3giOjF9LExjOnt0b3A6MSxyaWdodDoxLGJvdHRvbToxLGxlZnQ6MSxjZW50ZXI6MX0sT2M6e2NvbnRhaW46MSxjb3ZlcjoxfSxZOmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIodil7cmV0dXJuIHYuVSgpfHx2LnR5cGUmaiYmdi52YWx1ZSBpbiB1fWZ1bmN0aW9uIGModil7cmV0dXJuIHYuVSgpJiZuZXcgaC5pKHYudmFsdWUpfHx2LnZhbHVlPT09ImF1dG8iJiYiYXV0byJ9dmFyIGc9dGhpcy5kLmN1cnJlbnRTdHlsZSxkLAplLGY9aC5xLmZhLGk9Zi5kYSxqPWYuYmEsaz1mLmFhLG0sbCx1PXRoaXMuTGMsbixxLHQ9bnVsbDtpZih0aGlzLlRhKCkpe2E9bmV3IGgucShhKTt0PXtpbWFnZXM6W119O2ZvcihlPXt9O2Q9YS5uZXh0KCk7KXttPWQudHlwZTtsPWQudmFsdWU7aWYoIWUudHlwZSYmbSZmLmpiJiZsPT09ImxpbmVhci1ncmFkaWVudCgiKXtuPXtaOltdLHR5cGU6ImxpbmVhci1ncmFkaWVudCJ9O2ZvcihxPXt9O2Q9YS5uZXh0KCk7KXttPWQudHlwZTtsPWQudmFsdWU7aWYobSZmLmliJiZsPT09IikiKXtxLmNvbG9yJiZuLloucHVzaChxKTtuLloubGVuZ3RoPjEmJmgubi4kYShlLG4pO2JyZWFrfWlmKG0mayl7aWYobi5SYXx8bi5WYSl7ZD1hLnYoKTtpZihkLnR5cGUhPT1pKWJyZWFrO2EubmV4dCgpfXE9e2NvbG9yOm5ldyBoLlIobCl9O2Q9YS5uZXh0KCk7aWYoZC5VKCkpcS55Yj1uZXcgaC5pKGQudmFsdWUpO2Vsc2UgYS52KCl9ZWxzZSBpZihtJmYuc2EmJiFuLlJhJiYhcS5jb2xvciYmIW4uWi5sZW5ndGgpbi5SYT0KbmV3IGguS2IoZC52YWx1ZSk7ZWxzZSBpZihiKGQpJiYhbi5WYSYmIXEuY29sb3ImJiFuLloubGVuZ3RoKXthLnYoKTtuLlZhPW5ldyBoLkhhKGEuJChmdW5jdGlvbih2KXtyZXR1cm4hYih2KX0sZmFsc2UpKX1lbHNlIGlmKG0maSYmbD09PSIsIil7aWYocS5jb2xvcil7bi5aLnB1c2gocSk7cT17fX19ZWxzZSBicmVha319ZWxzZSBpZighZS50eXBlJiZtJmYuVVJMKXtlLnVybD1sO2UudHlwZT0iaW1hZ2UifWVsc2UgaWYoYihkKSYmIWUuc2l6ZSl7YS52KCk7ZS5wb3NpdGlvbj1uZXcgaC5IYShhLiQoZnVuY3Rpb24odil7cmV0dXJuIWIodil9LGZhbHNlKSl9ZWxzZSBpZihtJmopaWYobCBpbiB0aGlzLkVhKWUucmVwZWF0PWw7ZWxzZSBpZihsIGluIHRoaXMuSGMpe2Uub3JpZ2luPWw7aWYobCBpbiB0aGlzLmtjKWUuY2xpcD1sfWVsc2V7aWYobCBpbiB0aGlzLmhjKWUuWmM9bH1lbHNlIGlmKG0mayYmIXQuY29sb3IpdC5jb2xvcj1uZXcgaC5SKGwpO2Vsc2UgaWYobSZpKWlmKGw9PT0KIi8iKXtkPWEubmV4dCgpO209ZC50eXBlO2w9ZC52YWx1ZTtpZihtJmomJmwgaW4gdGhpcy5PYyllLnNpemU9bDtlbHNlIGlmKGw9YyhkKSllLnNpemU9e2c6bCxlOmMoYS5uZXh0KCkpfHxhLnYoKSYmbH19ZWxzZXtpZihsPT09IiwiJiZlLnR5cGUpe3QuaW1hZ2VzLnB1c2goZSk7ZT17fX19ZWxzZSByZXR1cm4gbnVsbH1lLnR5cGUmJnQuaW1hZ2VzLnB1c2goZSl9ZWxzZSB0aGlzLkdiKGZ1bmN0aW9uKCl7dmFyIHY9Zy5iYWNrZ3JvdW5kUG9zaXRpb25YLHg9Zy5iYWNrZ3JvdW5kUG9zaXRpb25ZLHI9Zy5iYWNrZ3JvdW5kSW1hZ2Usbz1nLmJhY2tncm91bmRDb2xvcjt0PXt9O2lmKG8hPT0idHJhbnNwYXJlbnQiKXQuY29sb3I9bmV3IGguUihvKTtpZihyIT09Im5vbmUiKXQuaW1hZ2VzPVt7dHlwZToiaW1hZ2UiLHVybDoobmV3IGgucShyKSkubmV4dCgpLnZhbHVlLHJlcGVhdDpnLmJhY2tncm91bmRSZXBlYXQscG9zaXRpb246bmV3IGguSGEoKG5ldyBoLnEodisiICIreCkpLmFsbCgpKX1dfSk7CnJldHVybiB0JiYodC5jb2xvcnx8dC5pbWFnZXMmJnQuaW1hZ2VzWzBdKT90Om51bGx9LEdiOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZC5ydW50aW1lU3R5bGUsYz1iLmJhY2tncm91bmRJbWFnZSxnPWIuYmFja2dyb3VuZENvbG9yO2lmKGMpYi5iYWNrZ3JvdW5kSW1hZ2U9IiI7aWYoZyliLmJhY2tncm91bmRDb2xvcj0iIjthPWEuY2FsbCh0aGlzKTtpZihjKWIuYmFja2dyb3VuZEltYWdlPWM7aWYoZyliLmJhY2tncm91bmRDb2xvcj1nO3JldHVybiBhfSxsYTpoLnAuaWEoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5UYSgpfHx0aGlzLkdiKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kLmN1cnJlbnRTdHlsZTtyZXR1cm4gYS5iYWNrZ3JvdW5kQ29sb3IrIiAiK2EuYmFja2dyb3VuZEltYWdlKyIgIithLmJhY2tncm91bmRSZXBlYXQrIiAiK2EuYmFja2dyb3VuZFBvc2l0aW9uWCsiICIrYS5iYWNrZ3JvdW5kUG9zaXRpb25ZfSl9KSxUYTpoLnAuaWEoZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQ7CnJldHVybiBhLnN0eWxlW3RoaXMucWFdfHxhLmN1cnJlbnRTdHlsZS5nZXRBdHRyaWJ1dGUodGhpcy5qYSl9KSx4YjpmdW5jdGlvbigpe3ZhciBhPTA7aWYoaC5EPDcpe2E9dGhpcy5kO2E9IiIrKGEuc3R5bGVbaC5OYSsiUG5nRml4Il18fGEuY3VycmVudFN0eWxlLmdldEF0dHJpYnV0ZShoLkkrInBuZy1maXgiKSk9PT0idHJ1ZSJ9cmV0dXJuIGF9LGY6aC5wLmlhKGZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuVGEoKXx8dGhpcy54YigpKSYmISF0aGlzLmooKX0pfSk7aC5RYj1oLnAuVyh7QmI6WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxGYzp7YmQ6IjFweCIsJGM6IjNweCIsYWQ6IjVweCJ9LFk6ZnVuY3Rpb24oKXt2YXIgYT17fSxiPXt9LGM9e30sZz1mYWxzZSxkPXRydWUsZT10cnVlLGY9dHJ1ZTt0aGlzLkhiKGZ1bmN0aW9uKCl7Zm9yKHZhciBpPXRoaXMuZC5jdXJyZW50U3R5bGUsaj0wLGssbSxsLHUsbixxLHQ7ajw0O2orKyl7bD10aGlzLkJiW2pdO3Q9bC5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTsKaz1iW3RdPWlbImJvcmRlciIrbCsiU3R5bGUiXTttPWlbImJvcmRlciIrbCsiQ29sb3IiXTtsPWlbImJvcmRlciIrbCsiV2lkdGgiXTtpZihqPjApe2lmKGshPT11KWU9ZmFsc2U7aWYobSE9PW4pZD1mYWxzZTtpZihsIT09cSlmPWZhbHNlfXU9aztuPW07cT1sO2NbdF09bmV3IGguUihtKTtsPWFbdF09bmV3IGguaShiW3RdPT09Im5vbmUiPyIwIjp0aGlzLkZjW2xdfHxsKTtpZihsLmEodGhpcy5kKT4wKWc9dHJ1ZX19KTtyZXR1cm4gZz97aGI6YSxSYzpiLG1jOmMsV2M6ZixuYzpkLFNjOmV9Om51bGx9LGxhOmgucC5pYShmdW5jdGlvbigpe3ZhciBhPXRoaXMuZCxiPWEuY3VycmVudFN0eWxlLGM7YS50YWdOYW1lIGluIGguQ2ImJmEub2Zmc2V0UGFyZW50LmN1cnJlbnRTdHlsZS5ib3JkZXJDb2xsYXBzZT09PSJjb2xsYXBzZSJ8fHRoaXMuSGIoZnVuY3Rpb24oKXtjPWIuYm9yZGVyV2lkdGgrInwiK2IuYm9yZGVyU3R5bGUrInwiK2IuYm9yZGVyQ29sb3J9KTtyZXR1cm4gY30pLEhiOmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLmQucnVudGltZVN0eWxlLGM9Yi5ib3JkZXJXaWR0aCxnPWIuYm9yZGVyQ29sb3I7aWYoYyliLmJvcmRlcldpZHRoPSIiO2lmKGcpYi5ib3JkZXJDb2xvcj0iIjthPWEuY2FsbCh0aGlzKTtpZihjKWIuYm9yZGVyV2lkdGg9YztpZihnKWIuYm9yZGVyQ29sb3I9ZztyZXR1cm4gYX19KTsoZnVuY3Rpb24oKXtoLklhPWgucC5XKHtqYToiYm9yZGVyLXJhZGl1cyIscWE6ImJvcmRlclJhZGl1cyIsWTpmdW5jdGlvbihiKXt2YXIgYz1udWxsLGcsZCxlLGYsaT1mYWxzZTtpZihiKXtkPW5ldyBoLnEoYik7dmFyIGo9ZnVuY3Rpb24oKXtmb3IodmFyIGs9W10sbTsoZT1kLm5leHQoKSkmJmUuVSgpOyl7Zj1uZXcgaC5pKGUudmFsdWUpO209Zi5yYigpO2lmKG08MClyZXR1cm4gbnVsbDtpZihtPjApaT10cnVlO2sucHVzaChmKX1yZXR1cm4gay5sZW5ndGg+MCYmay5sZW5ndGg8NT97dGw6a1swXSx0cjprWzFdfHxrWzBdLGJyOmtbMl18fGtbMF0sYmw6a1szXXx8a1sxXXx8a1swXX06bnVsbH07CmlmKGI9aigpKXtpZihlKXtpZihlLnR5cGUmaC5xLmZhLmRhJiZlLnZhbHVlPT09Ii8iKWc9aigpfWVsc2UgZz1iO2lmKGkmJmImJmcpYz17eDpiLHk6Z319fXJldHVybiBjfX0pO3ZhciBhPWguaS5sYjthPXt0bDphLHRyOmEsYnI6YSxibDphfTtoLklhLkpiPXt4OmEseTphfX0pKCk7aC5PYj1oLnAuVyh7amE6ImJvcmRlci1pbWFnZSIscWE6ImJvcmRlckltYWdlIixFYTp7c3RyZXRjaDoxLHJvdW5kOjEscmVwZWF0OjEsc3BhY2U6MX0sWTpmdW5jdGlvbihhKXt2YXIgYj1udWxsLGMsZyxkLGUsZixpLGo9MCxrLG09aC5xLmZhLGw9bS5iYSx1PW0uY2Esbj1tLnoscT1tLnVhO2lmKGEpe2M9bmV3IGgucShhKTtiPXt9O2Zvcih2YXIgdD1mdW5jdGlvbihyKXtyZXR1cm4gciYmci50eXBlJm0uZGEmJnIudmFsdWU9PT0iLyJ9LHY9ZnVuY3Rpb24ocil7cmV0dXJuIHImJnIudHlwZSZsJiZyLnZhbHVlPT09ImZpbGwifSx4PWZ1bmN0aW9uKCl7ZT1jLiQoZnVuY3Rpb24ocil7cmV0dXJuIShyLnR5cGUmCih1fHEpKX0pO2lmKHYoYy5uZXh0KCkpJiYhYi5maWxsKWIuZmlsbD10cnVlO2Vsc2UgYy52KCk7aWYodChjLm5leHQoKSkpe2orKztmPWMuJChmdW5jdGlvbigpe3JldHVybiEoZy50eXBlJih1fHF8bikpJiYhKGcudHlwZSZsJiZnLnZhbHVlPT09ImF1dG8iKX0pO2lmKHQoYy5uZXh0KCkpKXtqKys7aT1jLiQoZnVuY3Rpb24oKXtyZXR1cm4hKGcudHlwZSYodXxuKSl9KX19ZWxzZSBjLnYoKX07Zz1jLm5leHQoKTspe2E9Zy50eXBlO2Q9Zy52YWx1ZTtpZihhJih1fHEpJiYhZSl7Yy52KCk7eCgpfWVsc2UgaWYodihnKSYmIWIuZmlsbCl7Yi5maWxsPXRydWU7eCgpfWVsc2UgaWYoYSZsJiZ0aGlzLkVhW2RdJiYhYi5yZXBlYXQpe2IucmVwZWF0PXtlOmR9O2lmKGc9Yy5uZXh0KCkpaWYoZy50eXBlJmwmJnRoaXMuRWFbZy52YWx1ZV0pYi5yZXBlYXQuZWI9Zy52YWx1ZTtlbHNlIGMudigpfWVsc2UgaWYoYSZtLlVSTCYmIWIuc3JjKWIuc3JjPWQ7ZWxzZSByZXR1cm4gbnVsbH1pZighYi5zcmN8fAohZXx8ZS5sZW5ndGg8MXx8ZS5sZW5ndGg+NHx8ZiYmZi5sZW5ndGg+NHx8aj09PTEmJmYubGVuZ3RoPDF8fGkmJmkubGVuZ3RoPjR8fGo9PT0yJiZpLmxlbmd0aDwxKXJldHVybiBudWxsO2lmKCFiLnJlcGVhdCliLnJlcGVhdD17ZToic3RyZXRjaCJ9O2lmKCFiLnJlcGVhdC5lYiliLnJlcGVhdC5lYj1iLnJlcGVhdC5lO2E9ZnVuY3Rpb24ocixvKXtyZXR1cm57UDpvKHJbMF0pLE86byhyWzFdfHxyWzBdKSxLOm8oclsyXXx8clswXSksTTpvKHJbM118fHJbMV18fHJbMF0pfX07Yi5zbGljZT1hKGUsZnVuY3Rpb24ocil7cmV0dXJuIG5ldyBoLmkoci50eXBlJnU/ci52YWx1ZSsicHgiOnIudmFsdWUpfSk7Yi53aWR0aD1mJiZmLmxlbmd0aD4wP2EoZixmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlJihufHEpP25ldyBoLmkoci52YWx1ZSk6ci52YWx1ZX0pOihrPXRoaXMuZC5jdXJyZW50U3R5bGUpJiZ7UDpuZXcgaC5pKGsuYm9yZGVyVG9wV2lkdGgpLE86bmV3IGguaShrLmJvcmRlclJpZ2h0V2lkdGgpLApLOm5ldyBoLmkoay5ib3JkZXJCb3R0b21XaWR0aCksTTpuZXcgaC5pKGsuYm9yZGVyTGVmdFdpZHRoKX07Yi5wYT1hKGl8fFswXSxmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlJm4/bmV3IGguaShyLnZhbHVlKTpyLnZhbHVlfSl9cmV0dXJuIGJ9fSk7aC5TYj1oLnAuVyh7amE6ImJveC1zaGFkb3ciLHFhOiJib3hTaGFkb3ciLFk6ZnVuY3Rpb24oYSl7dmFyIGIsYz1oLmksZz1oLnEuZmEsZDtpZihhKXtkPW5ldyBoLnEoYSk7Yj17cGE6W10sWGE6W119O2ZvcihhPWZ1bmN0aW9uKCl7Zm9yKHZhciBlLGYsaSxqLGssbTtlPWQubmV4dCgpOyl7aT1lLnZhbHVlO2Y9ZS50eXBlO2lmKGYmZy5kYSYmaT09PSIsIilicmVhaztlbHNlIGlmKGUuWWEoKSYmIWspe2QudigpO2s9ZC4kKGZ1bmN0aW9uKGwpe3JldHVybiFsLllhKCl9KX1lbHNlIGlmKGYmZy5hYSYmIWopaj1pO2Vsc2UgaWYoZiZnLmJhJiZpPT09Imluc2V0IiYmIW0pbT10cnVlO2Vsc2UgcmV0dXJuIGZhbHNlfWU9ayYmay5sZW5ndGg7CmlmKGU+MSYmZTw1KXsobT9iLlhhOmIucGEpLnB1c2goe1hjOm5ldyBjKGtbMF0udmFsdWUpLFljOm5ldyBjKGtbMV0udmFsdWUpLGJsdXI6bmV3IGMoa1syXT9rWzJdLnZhbHVlOiIwIiksUGM6bmV3IGMoa1szXT9rWzNdLnZhbHVlOiIwIiksY29sb3I6bmV3IGguUihqfHwiY3VycmVudENvbG9yIil9KTtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9O2EoKTspO31yZXR1cm4gYiYmKGIuWGEubGVuZ3RofHxiLnBhLmxlbmd0aCk/YjpudWxsfX0pO2guWGI9aC5wLlcoe2xhOmgucC5pYShmdW5jdGlvbigpe3ZhciBhPXRoaXMuZC5jdXJyZW50U3R5bGU7cmV0dXJuIGEudmlzaWJpbGl0eSsifCIrYS5kaXNwbGF5fSksWTpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZCxiPWEucnVudGltZVN0eWxlO2E9YS5jdXJyZW50U3R5bGU7dmFyIGM9Yi52aXNpYmlsaXR5LGc7Yi52aXNpYmlsaXR5PSIiO2c9YS52aXNpYmlsaXR5O2IudmlzaWJpbGl0eT1jO3JldHVybntVYzpnIT09ImhpZGRlbiIsc2M6YS5kaXNwbGF5IT09CiJub25lIn19LGY6ZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2V9fSk7aC5BPXtWOmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyxnLGQsZSl7dGhpcy5kPWM7dGhpcy5vPWc7dGhpcy5oPWQ7dGhpcy5wYXJlbnQ9ZX1oLm4uJGEoYi5wcm90b3R5cGUsaC5BLGEpO3JldHVybiBifSxaYTpmYWxzZSxOOmZ1bmN0aW9uKCl7cmV0dXJuIGZhbHNlfSxEYjpmdW5jdGlvbigpe3RoaXMuaygpO3RoaXMuZigpJiZ0aGlzLlQoKX0sZGI6ZnVuY3Rpb24oKXt0aGlzLlphPXRydWV9LEViOmZ1bmN0aW9uKCl7dGhpcy5mKCk/dGhpcy5UKCk6dGhpcy5rKCl9LFFhOmZ1bmN0aW9uKGEsYil7dGhpcy5BYihhKTtmb3IodmFyIGM9dGhpcy5nYXx8KHRoaXMuZ2E9W10pLGc9YSsxLGQ9Yy5sZW5ndGgsZTtnPGQ7ZysrKWlmKGU9Y1tnXSlicmVhaztjW2FdPWI7dGhpcy51KCkuaW5zZXJ0QmVmb3JlKGIsZXx8bnVsbCl9LG1hOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZ2E7cmV0dXJuIGImJmJbYV18fG51bGx9LEFiOmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLm1hKGEpLGM9dGhpcy52YTtpZihiJiZjKXtjLnJlbW92ZUNoaWxkKGIpO3RoaXMuZ2FbYV09bnVsbH19LG5hOmZ1bmN0aW9uKGEsYixjLGcpe3ZhciBkPXRoaXMuUGF8fCh0aGlzLlBhPXt9KSxlPWRbYV07aWYoIWUpe2U9ZFthXT1oLm4uQWEoInNoYXBlIik7aWYoYillLmFwcGVuZENoaWxkKGVbYl09aC5uLkFhKGIpKTtpZihnKXtjPXRoaXMubWEoZyk7aWYoIWMpe3RoaXMuUWEoZyxkb2MuY3JlYXRlRWxlbWVudCgiZ3JvdXAiK2cpKTtjPXRoaXMubWEoZyl9fWMuYXBwZW5kQ2hpbGQoZSk7YT1lLnN0eWxlO2EucG9zaXRpb249ImFic29sdXRlIjthLmxlZnQ9YS50b3A9MDthLmJlaGF2aW9yPSJ1cmwoI2RlZmF1bHQjVk1MKSJ9cmV0dXJuIGV9LFNhOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuUGEsYz1iJiZiW2FdO2lmKGMpe2MucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjKTtkZWxldGUgYlthXX1yZXR1cm4hIWN9LHRiOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZCxjPXRoaXMuby5tKCksCmc9Yy5nLGQ9Yy5lLGUsZixpLGosayxtO2M9YS54LnRsLmEoYixnKTtlPWEueS50bC5hKGIsZCk7Zj1hLngudHIuYShiLGcpO2k9YS55LnRyLmEoYixkKTtqPWEueC5ici5hKGIsZyk7az1hLnkuYnIuYShiLGQpO209YS54LmJsLmEoYixnKTthPWEueS5ibC5hKGIsZCk7Zz1NYXRoLm1pbihnLyhjK2YpLGQvKGkrayksZy8obStqKSxkLyhlK2EpKTtpZihnPDEpe2MqPWc7ZSo9ZztmKj1nO2kqPWc7aio9ZztrKj1nO20qPWc7YSo9Z31yZXR1cm57eDp7dGw6Yyx0cjpmLGJyOmosYmw6bX0seTp7dGw6ZSx0cjppLGJyOmssYmw6YX19fSxrYTpmdW5jdGlvbihhLGIsYyl7Yj1ifHwxO3ZhciBnLGQsZT10aGlzLm8ubSgpO2Q9ZS5nKmI7ZT1lLmUqYjt2YXIgZj10aGlzLmgucyxpPU1hdGguZmxvb3Isaj1NYXRoLmNlaWwsaz1hP2EuUCpiOjAsbT1hP2EuTypiOjAsbD1hP2EuSypiOjA7YT1hP2EuTSpiOjA7dmFyIHUsbixxLHQsdjtpZihjfHxmLmYoKSl7Zz10aGlzLnRiKGN8fGYuaigpKTtjPQpnLngudGwqYjtmPWcueS50bCpiO3U9Zy54LnRyKmI7bj1nLnkudHIqYjtxPWcueC5icipiO3Q9Zy55LmJyKmI7dj1nLnguYmwqYjtiPWcueS5ibCpiO2Q9Im0iK2koYSkrIiwiK2koZikrInF5IitpKGMpKyIsIitpKGspKyJsIitqKGQtdSkrIiwiK2koaykrInF4IitqKGQtbSkrIiwiK2kobikrImwiK2ooZC1tKSsiLCIraihlLXQpKyJxeSIraihkLXEpKyIsIitqKGUtbCkrImwiK2kodikrIiwiK2ooZS1sKSsicXgiK2koYSkrIiwiK2ooZS1iKSsiIHggZSJ9ZWxzZSBkPSJtIitpKGEpKyIsIitpKGspKyJsIitqKGQtbSkrIiwiK2koaykrImwiK2ooZC1tKSsiLCIraihlLWwpKyJsIitpKGEpKyIsIitqKGUtbCkrInhlIjtyZXR1cm4gZH0sdTpmdW5jdGlvbigpe3ZhciBhPXRoaXMucGFyZW50Lm1hKHRoaXMuQiksYjtpZighYSl7YT1kb2MuY3JlYXRlRWxlbWVudCh0aGlzLnphKTtiPWEuc3R5bGU7Yi5wb3NpdGlvbj0iYWJzb2x1dGUiO2IudG9wPWIubGVmdD0wO3RoaXMucGFyZW50LlFhKHRoaXMuQiwKYSl9cmV0dXJuIGF9LGs6ZnVuY3Rpb24oKXt0aGlzLnBhcmVudC5BYih0aGlzLkIpO2RlbGV0ZSB0aGlzLlBhO2RlbGV0ZSB0aGlzLmdhfX07aC5WYj1oLkEuVih7ZjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaWM7Zm9yKHZhciBiIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShiKSYmYVtiXS5mKCkpcmV0dXJuIHRydWU7cmV0dXJuIGZhbHNlfSxOOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaC5mYi5DKCl9LGRiOmZ1bmN0aW9uKCl7aWYodGhpcy5mKCkpe3ZhciBhPXRoaXMuc2IoKSxiPWEsYzthPWEuY3VycmVudFN0eWxlO3ZhciBnPWEucG9zaXRpb24sZD10aGlzLnUoKS5zdHlsZSxlPTAsZj0wO2Y9dGhpcy5vLm0oKTtpZihnPT09ImZpeGVkIiYmaC5EPjYpe2U9Zi54O2Y9Zi55O2I9Z31lbHNle2RvIGI9Yi5vZmZzZXRQYXJlbnQ7d2hpbGUoYiYmYi5jdXJyZW50U3R5bGUucG9zaXRpb249PT0ic3RhdGljIik7aWYoYil7Yz1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2I9Yi5jdXJyZW50U3R5bGU7CmU9Zi54LWMubGVmdC0ocGFyc2VGbG9hdChiLmJvcmRlckxlZnRXaWR0aCl8fDApO2Y9Zi55LWMudG9wLShwYXJzZUZsb2F0KGIuYm9yZGVyVG9wV2lkdGgpfHwwKX1lbHNle2I9ZG9jLmRvY3VtZW50RWxlbWVudDtlPWYueCtiLnNjcm9sbExlZnQtYi5jbGllbnRMZWZ0O2Y9Zi55K2Iuc2Nyb2xsVG9wLWIuY2xpZW50VG9wfWI9ImFic29sdXRlIn1kLnBvc2l0aW9uPWI7ZC5sZWZ0PWU7ZC50b3A9ZjtkLnpJbmRleD1nPT09InN0YXRpYyI/LTE6YS56SW5kZXg7dGhpcy5aYT10cnVlfX0sRWI6ZnVuY3Rpb24oKXt9LEZiOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oLmZiLmooKTt0aGlzLnUoKS5zdHlsZS5kaXNwbGF5PWEuVWMmJmEuc2M/IiI6Im5vbmUifSxEYjpmdW5jdGlvbigpe3RoaXMuZigpP3RoaXMuRmIoKTp0aGlzLmsoKX0sc2I6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQ7cmV0dXJuIGEudGFnTmFtZSBpbiBoLkNiP2Eub2Zmc2V0UGFyZW50OmF9LHU6ZnVuY3Rpb24oKXt2YXIgYT0KdGhpcy52YSxiO2lmKCFhKXtiPXRoaXMuc2IoKTthPXRoaXMudmE9ZG9jLmNyZWF0ZUVsZW1lbnQoImNzczMtY29udGFpbmVyIik7YS5zdHlsZS5kaXJlY3Rpb249Imx0ciI7dGhpcy5GYigpO2IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxiKX1yZXR1cm4gYX0sazpmdW5jdGlvbigpe3ZhciBhPXRoaXMudmEsYjtpZihhJiYoYj1hLnBhcmVudE5vZGUpKWIucmVtb3ZlQ2hpbGQoYSk7ZGVsZXRlIHRoaXMudmE7ZGVsZXRlIHRoaXMuZ2F9fSk7aC5MYj1oLkEuVih7QjoyLHphOiJiYWNrZ3JvdW5kIixOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkcuQygpfHxhLnMuQygpfSxmOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkwuZigpfHxhLnMuZigpfHxhLkcuZigpfHxhLlMuZigpJiZhLlMuaigpLlhhfSxUOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vLm0oKTtpZihhLmcmJmEuZSl7dGhpcy50YygpO3RoaXMudWMoKX19LHRjOmZ1bmN0aW9uKCl7dmFyIGE9CnRoaXMuaC5HLmooKSxiPXRoaXMuby5tKCksYz10aGlzLmQsZz1hJiZhLmNvbG9yLGQsZTtpZihnJiZnLmhhKCk+MCl7dGhpcy51YigpO2E9dGhpcy5uYSgiYmdDb2xvciIsImZpbGwiLHRoaXMudSgpLDEpO2Q9Yi5nO2I9Yi5lO2Euc3Ryb2tlZD1mYWxzZTthLmNvb3Jkc2l6ZT1kKjIrIiwiK2IqMjthLmNvb3Jkb3JpZ2luPSIxLDEiO2EucGF0aD10aGlzLmthKG51bGwsMik7ZT1hLnN0eWxlO2Uud2lkdGg9ZDtlLmhlaWdodD1iO2EuZmlsbC5jb2xvcj1nLnZhbHVlKGMpO2M9Zy5oYSgpO2lmKGM8MSlhLmZpbGwub3BhY2l0eT1jfWVsc2UgdGhpcy5TYSgiYmdDb2xvciIpfSx1YzpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5HLmooKSxiPXRoaXMuby5tKCk7YT1hJiZhLmltYWdlczt2YXIgYyxnLGQsZSxmO2lmKGEpe3RoaXMudWIoKTtnPWIuZztkPWIuZTtmb3IoZj1hLmxlbmd0aDtmLS07KXtiPWFbZl07Yz10aGlzLm5hKCJiZ0ltYWdlIitmLCJmaWxsIix0aGlzLnUoKSwyKTtjLnN0cm9rZWQ9CmZhbHNlO2MuZmlsbC50eXBlPSJ0aWxlIjtjLmZpbGxjb2xvcj0ibm9uZSI7Yy5jb29yZHNpemU9ZyoyKyIsIitkKjI7Yy5jb29yZG9yaWdpbj0iMSwxIjtjLnBhdGg9dGhpcy5rYSgwLDIpO2U9Yy5zdHlsZTtlLndpZHRoPWc7ZS5oZWlnaHQ9ZDtpZihiLnR5cGU9PT0ibGluZWFyLWdyYWRpZW50Iil0aGlzLmdjKGMsYik7ZWxzZXtjLmZpbGwuc3JjPWIudXJsO3RoaXMuSmMoYyxmKX19fWZvcihmPWE/YS5sZW5ndGg6MDt0aGlzLlNhKCJiZ0ltYWdlIitmKyspOyk7fSxKYzpmdW5jdGlvbihhLGIpe2gubi5JYihhLmZpbGwuc3JjLGZ1bmN0aW9uKGMpe3ZhciBnPWEuZmlsbCxkPXRoaXMuZCxlPXRoaXMuby5tKCksZj1lLmc7ZT1lLmU7dmFyIGk9dGhpcy5oLGo9aS5ILmooKSxrPWomJmouaGI7aj1rP2sudC5hKGQpOjA7dmFyIG09az9rLnIuYShkKTowLGw9az9rLmIuYShkKTowO2s9az9rLmwuYShkKTowO2k9aS5HLmooKS5pbWFnZXNbYl07ZD1pLnBvc2l0aW9uP2kucG9zaXRpb24uY29vcmRzKGQsCmYtYy5nLWstbSxlLWMuZS1qLWwpOnt4OjAseTowfTtpPWkucmVwZWF0O2w9bT0wO3ZhciB1PWYrMSxuPWUrMSxxPWguRD09PTg/MDoxO2s9TWF0aC5yb3VuZChkLngpK2srMC41O2o9TWF0aC5yb3VuZChkLnkpK2orMC41O2cucG9zaXRpb249ay9mKyIsIitqL2U7aWYoaSYmaSE9PSJyZXBlYXQiKXtpZihpPT09InJlcGVhdC14Inx8aT09PSJuby1yZXBlYXQiKXttPWorMTtuPWorYy5lK3F9aWYoaT09PSJyZXBlYXQteSJ8fGk9PT0ibm8tcmVwZWF0Iil7bD1rKzE7dT1rK2MuZytxfWEuc3R5bGUuY2xpcD0icmVjdCgiK20rInB4LCIrdSsicHgsIituKyJweCwiK2wrInB4KSJ9fSx0aGlzKX0sZ2M6ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKEEsQix5LEcsSCl7aWYoeT09PTB8fHk9PT0xODApcmV0dXJuW0csQl07ZWxzZSBpZih5PT09OTB8fHk9PT0yNzApcmV0dXJuW0EsSF07ZWxzZXt5PU1hdGgudGFuKC15KnUvMTgwKTtBPXkqQS1CO0I9LTEveTtHPUIqRy1IO0g9Qi15O3JldHVyblsoRy0KQSkvSCwoeSpHLUIqQSkvSF19fWZ1bmN0aW9uIGcoKXt4PW0+PTkwJiZtPDI3MD9qOjA7cj1tPDE4MD9rOjA7bz1qLXg7cz1rLXJ9ZnVuY3Rpb24gZCgpe2Zvcig7bTwwOyltKz0zNjA7bSU9MzYwfWZ1bmN0aW9uIGUoQSxCKXt2YXIgeT1CWzBdLUFbMF07QT1CWzFdLUFbMV07cmV0dXJuIE1hdGguYWJzKHk9PT0wP0E6QT09PTA/eTpNYXRoLnNxcnQoeSp5K0EqQSkpfXZhciBmPXRoaXMuZCxpPXRoaXMuby5tKCksaj1pLmcsaz1pLmU7YT1hLmZpbGw7dmFyIG09Yi5SYSxsPWIuVmE7Yj1iLlo7aT1iLmxlbmd0aDt2YXIgdT1NYXRoLlBJLG4scSx0LHYseCxyLG8scyxwLHosRSxDO2lmKGwpe2w9bC5jb29yZHMoZixqLGspO249bC54O3E9bC55fWlmKG0pe209bS5xYygpO2QoKTtnKCk7aWYoIWwpe249eDtxPXJ9bD1jKG4scSxtLG8scyk7dD1sWzBdO3Y9bFsxXX1lbHNlIGlmKGwpe3Q9ai1uO3Y9ay1xfWVsc2V7bj1xPXQ9MDt2PWt9bD10LW47cD12LXE7aWYobT09PXZvaWQgMCl7bT0hbD8KcDwwPzkwOjI3MDohcD9sPDA/MTgwOjA6LU1hdGguYXRhbjIocCxsKS91KjE4MDtkKCk7ZygpfWw9bSU5MD9NYXRoLmF0YW4yKGwqai9rLHApL3UqMTgwOm0rOTA7bCs9MTgwO2wlPTM2MDt6PWUoW24scV0sW3Qsdl0pO3Q9ZShbeCxyXSxjKHgscixtLG8scykpO3Y9W107cT1lKFtuLHFdLGMobixxLG0seCxyKSkvdCoxMDA7bj1bXTtmb3IocD0wO3A8aTtwKyspbi5wdXNoKGJbcF0ueWI/YltwXS55Yi5hKGYseik6cD09PTA/MDpwPT09aS0xP3o6bnVsbCk7Zm9yKHA9MTtwPGk7cCsrKXtpZihuW3BdPT09bnVsbCl7RT1uW3AtMV07ej1wO2RvIEM9blsrK3pdO3doaWxlKEM9PT1udWxsKTtuW3BdPUUrKEMtRSkvKHotcCsxKX1uW3BdPU1hdGgubWF4KG5bcF0sbltwLTFdKX1mb3IocD0wO3A8aTtwKyspdi5wdXNoKHErbltwXS90KjEwMCsiJSAiK2JbcF0uY29sb3IudmFsdWUoZikpO2EuYW5nbGU9bDthLnR5cGU9ImdyYWRpZW50IjthLm1ldGhvZD0ic2lnbWEiO2EuY29sb3I9YlswXS5jb2xvci52YWx1ZShmKTsKYS5jb2xvcjI9YltpLTFdLmNvbG9yLnZhbHVlKGYpO2EuY29sb3JzLnZhbHVlPXYuam9pbigiLCIpfSx1YjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZC5ydW50aW1lU3R5bGU7YS5iYWNrZ3JvdW5kSW1hZ2U9InVybChhYm91dDpibGFuaykiO2EuYmFja2dyb3VuZENvbG9yPSJ0cmFuc3BhcmVudCJ9LGs6ZnVuY3Rpb24oKXtoLkEuay5jYWxsKHRoaXMpO3ZhciBhPXRoaXMuZC5ydW50aW1lU3R5bGU7YS5iYWNrZ3JvdW5kSW1hZ2U9YS5iYWNrZ3JvdW5kQ29sb3I9IiJ9fSk7aC5QYj1oLkEuVih7Qjo0LHphOiJib3JkZXIiLGpjOntUQUJMRToxLElOUFVUOjEsVEVYVEFSRUE6MSxTRUxFQ1Q6MSxPUFRJT046MSxJTUc6MSxIUjoxLEZJRUxEU0VUOjF9LEVjOntzdWJtaXQ6MSxidXR0b246MSxyZXNldDoxfSxOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkguQygpfHxhLnMuQygpfSxmOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybihhLkwuZigpfHxhLnMuZigpfHxhLkcuZigpKSYmCmEuSC5mKCl9LFQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQsYj10aGlzLmguSC5qKCksYz10aGlzLm8ubSgpLGc9Yy5nO2M9Yy5lO3ZhciBkLGUsZixpLGo7aWYoYil7dGhpcy5DYygpO2I9dGhpcy53YygyKTtpPTA7Zm9yKGo9Yi5sZW5ndGg7aTxqO2krKyl7Zj1iW2ldO2Q9dGhpcy5uYSgiYm9yZGVyUGllY2UiK2ksZi5zdHJva2U/InN0cm9rZSI6ImZpbGwiLHRoaXMudSgpKTtkLmNvb3Jkc2l6ZT1nKjIrIiwiK2MqMjtkLmNvb3Jkb3JpZ2luPSIxLDEiO2QucGF0aD1mLnBhdGg7ZT1kLnN0eWxlO2Uud2lkdGg9ZztlLmhlaWdodD1jO2QuZmlsbGVkPSEhZi5maWxsO2Quc3Ryb2tlZD0hIWYuc3Ryb2tlO2lmKGYuc3Ryb2tlKXtkPWQuc3Ryb2tlO2Qud2VpZ2h0PWYuZ2IrInB4IjtkLmNvbG9yPWYuY29sb3IudmFsdWUoYSk7ZC5kYXNoc3R5bGU9Zi5zdHJva2U9PT0iZGFzaGVkIj8iMiAyIjpmLnN0cm9rZT09PSJkb3R0ZWQiPyIxIDEiOiJzb2xpZCI7ZC5saW5lc3R5bGU9Zi5zdHJva2U9PT0KImRvdWJsZSImJmYuZ2I+Mj8iVGhpblRoaW4iOiJTaW5nbGUifWVsc2UgZC5maWxsLmNvbG9yPWYuZmlsbC52YWx1ZShhKX1mb3IoO3RoaXMuU2EoImJvcmRlclBpZWNlIitpKyspOyk7fX0sQ2M6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQsYj1hLmN1cnJlbnRTdHlsZSxjPWEucnVudGltZVN0eWxlLGc9YS50YWdOYW1lLGQ9aC5EPT09NixlO2lmKGQmJmcgaW4gdGhpcy5qY3x8Zz09PSJCVVRUT04ifHxnPT09IklOUFVUIiYmYS50eXBlIGluIHRoaXMuRWMpe2MuYm9yZGVyV2lkdGg9IiI7Zz10aGlzLmguSC5CYjtmb3IoZT1nLmxlbmd0aDtlLS07KXtkPWdbZV07Y1sicGFkZGluZyIrZF09IiI7Y1sicGFkZGluZyIrZF09KG5ldyBoLmkoYlsicGFkZGluZyIrZF0pKS5hKGEpKyhuZXcgaC5pKGJbImJvcmRlciIrZCsiV2lkdGgiXSkpLmEoYSkrKCFoLkQ9PT04JiZlJTI/MTowKX1jLmJvcmRlcldpZHRoPTB9ZWxzZSBpZihkKXtpZihhLmNoaWxkTm9kZXMubGVuZ3RoIT09MXx8YS5maXJzdENoaWxkLnRhZ05hbWUhPT0KImllNi1tYXNrIil7Yj1kb2MuY3JlYXRlRWxlbWVudCgiaWU2LW1hc2siKTtnPWIuc3R5bGU7Zy52aXNpYmlsaXR5PSJ2aXNpYmxlIjtmb3IoZy56b29tPTE7Zz1hLmZpcnN0Q2hpbGQ7KWIuYXBwZW5kQ2hpbGQoZyk7YS5hcHBlbmRDaGlsZChiKTtjLnZpc2liaWxpdHk9ImhpZGRlbiJ9fWVsc2UgYy5ib3JkZXJDb2xvcj0idHJhbnNwYXJlbnQifSx3YzpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmQsYyxnLGQsZT10aGlzLmguSCxmPVtdLGksaixrLG0sbD1NYXRoLnJvdW5kLHUsbixxO2lmKGUuZigpKXtjPWUuaigpO2U9Yy5oYjtuPWMuUmM7cT1jLm1jO2lmKGMuV2MmJmMuU2MmJmMubmMpe2lmKHEudC5oYSgpPjApe2M9ZS50LmEoYik7az1jLzI7Zi5wdXNoKHtwYXRoOnRoaXMua2Eoe1A6ayxPOmssSzprLE06a30sYSksc3Ryb2tlOm4udCxjb2xvcjpxLnQsZ2I6Y30pfX1lbHNle2E9YXx8MTtjPXRoaXMuby5tKCk7Zz1jLmc7ZD1jLmU7Yz1sKGUudC5hKGIpKTtrPWwoZS5yLmEoYikpOwptPWwoZS5iLmEoYikpO2I9bChlLmwuYShiKSk7dmFyIHQ9e3Q6YyxyOmssYjptLGw6Yn07Yj10aGlzLmgucztpZihiLmYoKSl1PXRoaXMudGIoYi5qKCkpO2k9TWF0aC5mbG9vcjtqPU1hdGguY2VpbDt2YXIgdj1mdW5jdGlvbihvLHMpe3JldHVybiB1P3Vbb11bc106MH0seD1mdW5jdGlvbihvLHMscCx6LEUsQyl7dmFyIEE9digieCIsbyksQj12KCJ5IixvKSx5PW8uY2hhckF0KDEpPT09InIiO289by5jaGFyQXQoMCk9PT0iYiI7cmV0dXJuIEE+MCYmQj4wPyhDPyJhbCI6ImFlIikrKHk/aihnLUEpOmkoQSkpKmErIiwiKyhvP2ooZC1CKTppKEIpKSphKyIsIisoaShBKS1zKSphKyIsIisoaShCKS1wKSphKyIsIit6KjY1NTM1KyIsIisyOTQ5MDc1KihFPzE6LTEpOihDPyJtIjoibCIpKyh5P2ctczpzKSphKyIsIisobz9kLXA6cCkqYX0scj1mdW5jdGlvbihvLHMscCx6KXt2YXIgRT1vPT09InQiP2kodigieCIsInRsIikpKmErIiwiK2oocykqYTpvPT09InIiP2ooZy1zKSphKyIsIisKaSh2KCJ5IiwidHIiKSkqYTpvPT09ImIiP2ooZy12KCJ4IiwiYnIiKSkqYSsiLCIraShkLXMpKmE6aShzKSphKyIsIitqKGQtdigieSIsImJsIikpKmE7bz1vPT09InQiP2ooZy12KCJ4IiwidHIiKSkqYSsiLCIraihzKSphOm89PT0iciI/aihnLXMpKmErIiwiK2ooZC12KCJ5IiwiYnIiKSkqYTpvPT09ImIiP2kodigieCIsImJsIikpKmErIiwiK2koZC1zKSphOmkocykqYSsiLCIraSh2KCJ5IiwidGwiKSkqYTtyZXR1cm4gcD8oej8ibSIrbzoiIikrImwiK0U6KHo/Im0iK0U6IiIpKyJsIitvfTtiPWZ1bmN0aW9uKG8scyxwLHosRSxDKXt2YXIgQT1vPT09ImwifHxvPT09InIiLEI9dFtvXSx5LEc7aWYoQj4wJiZuW29dIT09Im5vbmUiJiZxW29dLmhhKCk+MCl7eT10W0E/bzpzXTtzPXRbQT9zOm9dO0c9dFtBP286cF07cD10W0E/cDpvXTtpZihuW29dPT09ImRhc2hlZCJ8fG5bb109PT0iZG90dGVkIil7Zi5wdXNoKHtwYXRoOngoeix5LHMsQys0NSwwLDEpK3goeiwwLDAsQywxLDApLApmaWxsOnFbb119KTtmLnB1c2goe3BhdGg6cihvLEIvMiwwLDEpLHN0cm9rZTpuW29dLGdiOkIsY29sb3I6cVtvXX0pO2YucHVzaCh7cGF0aDp4KEUsRyxwLEMsMCwxKSt4KEUsMCwwLEMtNDUsMSwwKSxmaWxsOnFbb119KX1lbHNlIGYucHVzaCh7cGF0aDp4KHoseSxzLEMrNDUsMCwxKStyKG8sQiwwLDApK3goRSxHLHAsQywwLDApKyhuW29dPT09ImRvdWJsZSImJkI+Mj94KEUsRy1pKEcvMykscC1pKHAvMyksQy00NSwxLDApK3IobyxqKEIvMyoyKSwxLDApK3goeix5LWkoeS8zKSxzLWkocy8zKSxDLDEsMCkrInggIit4KHosaSh5LzMpLGkocy8zKSxDKzQ1LDAsMSkrcihvLGkoQi8zKSwxLDApK3goRSxpKEcvMyksaShwLzMpLEMsMCwwKToiIikreChFLDAsMCxDLTQ1LDEsMCkrcihvLDAsMSwwKSt4KHosMCwwLEMsMSwwKSxmaWxsOnFbb119KX19O2IoInQiLCJsIiwiciIsInRsIiwidHIiLDkwKTtiKCJyIiwidCIsImIiLCJ0ciIsImJyIiwwKTtiKCJiIiwiciIsImwiLCJiciIsImJsIiwKLTkwKTtiKCJsIiwiYiIsInQiLCJibCIsInRsIiwtMTgwKX19cmV0dXJuIGZ9LGs6ZnVuY3Rpb24oKXtoLkEuay5jYWxsKHRoaXMpO3RoaXMuZC5ydW50aW1lU3R5bGUuYm9yZGVyQ29sb3I9IiJ9fSk7aC5OYj1oLkEuVih7Qjo1LEljOlsidCIsInRyIiwiciIsImJyIiwiYiIsImJsIiwibCIsInRsIiwiYyJdLE46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oLkwuQygpfSxmOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaC5MLmYoKX0sVDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5MLmooKSxiPXRoaXMuby5tKCk7dGhpcy51KCk7dmFyIGM9dGhpcy5kLGc9dGhpcy56YjtoLm4uSWIoYS5zcmMsZnVuY3Rpb24oZCl7ZnVuY3Rpb24gZSh4LHIsbyxzLHApe3g9Z1t4XS5zdHlsZTt4LndpZHRoPXI7eC5oZWlnaHQ9bzt4LmxlZnQ9czt4LnRvcD1wfWZ1bmN0aW9uIGYoeCxyLG8pe2Zvcih2YXIgcz0wLHA9eC5sZW5ndGg7czxwO3MrKylnW3hbc11dLmltYWdlZGF0YVtyXT1vfXZhciBpPWIuZyxqPQpiLmUsaz1hLndpZHRoLG09ay5QLmEoYyksbD1rLk8uYShjKSx1PWsuSy5hKGMpO2s9ay5NLmEoYyk7dmFyIG49YS5zbGljZSxxPW4uUC5hKGMpLHQ9bi5PLmEoYyksdj1uLksuYShjKTtuPW4uTS5hKGMpO2UoInRsIixrLG0sMCwwKTtlKCJ0IixpLWstbCxtLGssMCk7ZSgidHIiLGwsbSxpLWwsMCk7ZSgiciIsbCxqLW0tdSxpLWwsbSk7ZSgiYnIiLGwsdSxpLWwsai11KTtlKCJiIixpLWstbCx1LGssai11KTtlKCJibCIsayx1LDAsai11KTtlKCJsIixrLGotbS11LDAsbSk7ZSgiYyIsaS1rLWwsai1tLXUsayxtKTtmKFsidGwiLCJ0IiwidHIiXSwiY3JvcEJvdHRvbSIsKGQuZS1xKS9kLmUpO2YoWyJ0bCIsImwiLCJibCJdLCJjcm9wUmlnaHQiLChkLmctbikvZC5nKTtmKFsiYmwiLCJiIiwiYnIiXSwiY3JvcFRvcCIsKGQuZS12KS9kLmUpO2YoWyJ0ciIsInIiLCJiciJdLCJjcm9wTGVmdCIsKGQuZy10KS9kLmcpO2lmKGEucmVwZWF0LmViPT09InN0cmV0Y2giKXtmKFsibCIsInIiLCJjIl0sCiJjcm9wVG9wIixxL2QuZSk7ZihbImwiLCJyIiwiYyJdLCJjcm9wQm90dG9tIix2L2QuZSl9aWYoYS5yZXBlYXQuZT09PSJzdHJldGNoIil7ZihbInQiLCJiIiwiYyJdLCJjcm9wTGVmdCIsbi9kLmcpO2YoWyJ0IiwiYiIsImMiXSwiY3JvcFJpZ2h0Iix0L2QuZyl9Zy5jLnN0eWxlLmRpc3BsYXk9YS5maWxsPyIiOiJub25lIn0sdGhpcyl9LHU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnBhcmVudC5tYSh0aGlzLkIpLGIsYyxnLGQ9dGhpcy5JYyxlPWQubGVuZ3RoO2lmKCFhKXthPWRvYy5jcmVhdGVFbGVtZW50KCJib3JkZXItaW1hZ2UiKTtiPWEuc3R5bGU7Yi5wb3NpdGlvbj0iYWJzb2x1dGUiO3RoaXMuemI9e307Zm9yKGc9MDtnPGU7ZysrKXtjPXRoaXMuemJbZFtnXV09aC5uLkFhKCJyZWN0Iik7Yy5hcHBlbmRDaGlsZChoLm4uQWEoImltYWdlZGF0YSIpKTtiPWMuc3R5bGU7Yi5iZWhhdmlvcj0idXJsKCNkZWZhdWx0I1ZNTCkiO2IucG9zaXRpb249ImFic29sdXRlIjtiLnRvcD1iLmxlZnQ9CjA7Yy5pbWFnZWRhdGEuc3JjPXRoaXMuaC5MLmooKS5zcmM7Yy5zdHJva2VkPWZhbHNlO2MuZmlsbGVkPWZhbHNlO2EuYXBwZW5kQ2hpbGQoYyl9dGhpcy5wYXJlbnQuUWEodGhpcy5CLGEpfXJldHVybiBhfX0pO2guUmI9aC5BLlYoe0I6MSx6YToib3V0c2V0LWJveC1zaGFkb3ciLE46ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmg7cmV0dXJuIGEuUy5DKCl8fGEucy5DKCl9LGY6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmguUztyZXR1cm4gYS5mKCkmJmEuaigpLnBhWzBdfSxUOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh5LEcsSCx3LEQsRixJKXt5PWIubmEoInNoYWRvdyIreStHLCJmaWxsIixnLGYteSk7Rz15LmZpbGw7eS5jb29yZHNpemU9bSoyKyIsIitsKjI7eS5jb29yZG9yaWdpbj0iMSwxIjt5LnN0cm9rZWQ9ZmFsc2U7eS5maWxsZWQ9dHJ1ZTtHLmNvbG9yPUQudmFsdWUoYyk7aWYoRil7Ry50eXBlPSJncmFkaWVudHRpdGxlIjtHLmNvbG9yMj1HLmNvbG9yO0cub3BhY2l0eT0wfXkucGF0aD0KSTt2PXkuc3R5bGU7di5sZWZ0PUg7di50b3A9dzt2LndpZHRoPW07di5oZWlnaHQ9bDtyZXR1cm4geX12YXIgYj10aGlzLGM9dGhpcy5kLGc9dGhpcy51KCksZD10aGlzLmgsZT1kLlMuaigpLnBhO2Q9ZC5zLmooKTt2YXIgZj1lLmxlbmd0aCxpPWYsaixrPXRoaXMuby5tKCksbT1rLmcsbD1rLmU7az1oLkQ9PT04PzE6MDtmb3IodmFyIHU9WyJ0bCIsInRyIiwiYnIiLCJibCJdLG4scSx0LHYseCxyLG8scyxwLHosRSxDLEEsQjtpLS07KXtxPWVbaV07eD1xLlhjLmEoYyk7cj1xLlljLmEoYyk7aj1xLlBjLmEoYyk7bz1xLmJsdXIuYShjKTtxPXEuY29sb3I7cz0tai1vO2lmKCFkJiZvKWQ9aC5JYS5KYjtzPXRoaXMua2Eoe1A6cyxPOnMsSzpzLE06c30sMixkKTtpZihvKXtwPShqK28pKjIrbTt6PShqK28pKjIrbDtFPW8qMi9wO0M9byoyL3o7aWYoby1qPm0vMnx8by1qPmwvMilmb3Ioaj00O2otLTspe249dVtqXTtBPW4uY2hhckF0KDApPT09ImIiO0I9bi5jaGFyQXQoMSk9PT0iciI7Cm49YShpLG4seCxyLHEsbyxzKTt0PW4uZmlsbDt0LmZvY3VzcG9zaXRpb249KEI/MS1FOkUpKyIsIisoQT8xLUM6Qyk7dC5mb2N1c3NpemU9IjAsMCI7bi5zdHlsZS5jbGlwPSJyZWN0KCIrKChBP3ovMjowKStrKSsicHgsIisoQj9wOnAvMikrInB4LCIrKEE/ejp6LzIpKyJweCwiKygoQj9wLzI6MCkraykrInB4KSJ9ZWxzZXtuPWEoaSwiIix4LHIscSxvLHMpO3Q9bi5maWxsO3QuZm9jdXNwb3NpdGlvbj1FKyIsIitDO3QuZm9jdXNzaXplPTEtRSoyKyIsIisoMS1DKjIpfX1lbHNle249YShpLCIiLHgscixxLG8scyk7eD1xLmhhKCk7aWYoeDwxKW4uZmlsbC5vcGFjaXR5PXh9fX19KTtoLlViPWguQS5WKHtCOjYsemE6ImltZ0VsIixOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiB0aGlzLmQuc3JjIT09dGhpcy5hY3x8YS5zLkMoKX0sZjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaDtyZXR1cm4gYS5zLmYoKXx8YS5HLnhiKCl9LFQ6ZnVuY3Rpb24oKXt0aGlzLmFjPWY7dGhpcy5CYygpOwp2YXIgYT10aGlzLm5hKCJpbWciLCJmaWxsIix0aGlzLnUoKSksYj1hLmZpbGwsYz10aGlzLm8ubSgpLGc9Yy5nO2M9Yy5lO3ZhciBkPXRoaXMuaC5ILmooKTtkPWQmJmQuaGI7dmFyIGU9dGhpcy5kLGY9ZS5zcmMsaT1NYXRoLnJvdW5kO2Euc3Ryb2tlZD1mYWxzZTtiLnR5cGU9ImZyYW1lIjtiLnNyYz1mO2IucG9zaXRpb249KGc/MC41L2c6MCkrIiwiKyhjPzAuNS9jOjApO2EuY29vcmRzaXplPWcqMisiLCIrYyoyO2EuY29vcmRvcmlnaW49IjEsMSI7YS5wYXRoPXRoaXMua2EoZD97UDppKGQudC5hKGUpKSxPOmkoZC5yLmEoZSkpLEs6aShkLmIuYShlKSksTTppKGQubC5hKGUpKX06MCwyKTthPWEuc3R5bGU7YS53aWR0aD1nO2EuaGVpZ2h0PWN9LEJjOmZ1bmN0aW9uKCl7dGhpcy5kLnJ1bnRpbWVTdHlsZS5maWx0ZXI9ImFscGhhKG9wYWNpdHk9MCkifSxrOmZ1bmN0aW9uKCl7aC5BLmsuY2FsbCh0aGlzKTt0aGlzLmQucnVudGltZVN0eWxlLmZpbHRlcj0iIn19KTtoLkthPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShmKXtmdW5jdGlvbiBpKCl7aWYoIUIpe3ZhciB3LApELEY9Zi5jdXJyZW50U3R5bGUuZ2V0QXR0cmlidXRlKGMpPT09InRydWUiO2lmKCFBKXtBPTE7Zi5ydW50aW1lU3R5bGUuem9vbT0xO2Zvcih2YXIgST1mLE09MTtJPUkucHJldmlvdXNTaWJsaW5nOylpZihJLm5vZGVUeXBlPT09MSl7TT0wO2JyZWFrfWlmKE0pZi5jbGFzc05hbWUrPSIgIitoLkphKyJmaXJzdC1jaGlsZCJ9cC5EYSgpO2lmKEYmJihEPXAubSgpKSYmKHc9ZG9jLmRvY3VtZW50RWxlbWVudHx8ZG9jLmJvZHkpJiYoRC55PncuY2xpZW50SGVpZ2h0fHxELng+dy5jbGllbnRXaWR0aHx8RC55K0QuZTwwfHxELngrRC5nPDApKXtpZighRyl7Rz0xO2guTWEuWChpKX19ZWxzZXtCPTE7Rz1BPTA7aC5NYS5HYShpKTt6PXtHOm5ldyBoLk1iKGYpLEg6bmV3IGguUWIoZiksTDpuZXcgaC5PYihmKSxzOm5ldyBoLklhKGYpLFM6bmV3IGguU2IoZiksZmI6bmV3IGguWGIoZil9O0U9W3ouRyx6Lkgsei5MLHoucyx6LlMsei5mYl07dz1uZXcgaC5WYihmLHAseik7RD1bbmV3IGguUmIoZiwKcCx6LHcpLG5ldyBoLkxiKGYscCx6LHcpLG5ldyBoLlBiKGYscCx6LHcpLG5ldyBoLk5iKGYscCx6LHcpXTtmLnRhZ05hbWU9PT0iSU1HIiYmRC5wdXNoKG5ldyBoLlViKGYscCx6LHcpKTt3LmljPUQ7cz1bd10uY29uY2F0KEQpO2lmKHc9Zi5jdXJyZW50U3R5bGUuZ2V0QXR0cmlidXRlKGguSSsid2F0Y2gtYW5jZXN0b3JzIikpe0M9W107dz1wYXJzZUludCh3LDEwKTtEPTA7Zm9yKEY9Zi5wYXJlbnROb2RlO0YmJih3PT09Ik5hTiJ8fEQrKzx3KTspe0MucHVzaChGKTtGLmF0dGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIix0KTtGLmF0dGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO0YuYXR0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSk7Rj1GLnBhcmVudE5vZGV9fWguV2E9PT04JiZoLkxhLlgoayk7aygxKX1pZigheSl7eT0xO2YuYXR0YWNoRXZlbnQoIm9ubW92ZSIsaik7Zi5hdHRhY2hFdmVudCgib25yZXNpemUiLGopO2YuYXR0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLAptKTtmLmF0dGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO2YuYXR0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSk7aC50YS5YKGopO2guRi5YKHIpfXAuRmEoKX19ZnVuY3Rpb24gaigpe3AmJnAuemMoKSYmaygpfWZ1bmN0aW9uIGsodyl7aWYoIUgpaWYoQil7dmFyIEQsRjt2KCk7aWYod3x8cC5LYygpKXtEPTA7Zm9yKEY9cy5sZW5ndGg7RDxGO0QrKylzW0RdLmRiKCl9aWYod3x8cC5OYygpKXtEPTA7Zm9yKEY9cy5sZW5ndGg7RDxGO0QrKylzW0RdLkViKCl9eCgpfWVsc2UgQXx8aSgpfWZ1bmN0aW9uIG0oKXt2YXIgdyxELEY7dz1ldmVudDtpZighSCYmISh3JiZ3LnByb3BlcnR5TmFtZSBpbiBlKSlpZihCKXt2KCk7dz0wO2ZvcihEPXMubGVuZ3RoO3c8RDt3Kyspe0Y9c1t3XTtGLlphfHxGLmRiKCk7Ri5OKCkmJkYuRGIoKX14KCl9ZWxzZSBBfHxpKCl9ZnVuY3Rpb24gbCgpe2lmKGYpZi5jbGFzc05hbWUrPWd9ZnVuY3Rpb24gdSgpe2lmKGYpZi5jbGFzc05hbWU9Zi5jbGFzc05hbWUucmVwbGFjZShkLAoiIil9ZnVuY3Rpb24gbigpe3NldFRpbWVvdXQobCwwKX1mdW5jdGlvbiBxKCl7c2V0VGltZW91dCh1LDApfWZ1bmN0aW9uIHQoKXt2YXIgdz1ldmVudC5wcm9wZXJ0eU5hbWU7aWYodz09PSJjbGFzc05hbWUifHx3PT09ImlkIiltKCl9ZnVuY3Rpb24gdigpe3AuRGEoKTtmb3IodmFyIHc9RS5sZW5ndGg7dy0tOylFW3ddLkRhKCl9ZnVuY3Rpb24geCgpe2Zvcih2YXIgdz1FLmxlbmd0aDt3LS07KUVbd10uRmEoKTtwLkZhKCl9ZnVuY3Rpb24gcigpe2lmKHkpe2lmKEMpZm9yKHZhciB3PTAsRD1DLmxlbmd0aCxGO3c8RDt3Kyspe0Y9Q1t3XTtGLmRldGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIix0KTtGLmRldGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO0YuZGV0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSl9Zi5kZXRhY2hFdmVudCgib25tb3ZlIixrKTtmLmRldGFjaEV2ZW50KCJvbnJlc2l6ZSIsayk7Zi5kZXRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsbSk7Zi5kZXRhY2hFdmVudCgib25tb3VzZWVudGVyIiwKbik7Zi5kZXRhY2hFdmVudCgib25tb3VzZWxlYXZlIixxKTtoLkYuR2Eocik7eT0wfX1mdW5jdGlvbiBvKCl7aWYoIUgpe3ZhciB3LEQ7cigpO0g9MTtpZihzKXt3PTA7Zm9yKEQ9cy5sZW5ndGg7dzxEO3crKylzW3ddLmsoKX1oLldhPT09OCYmaC5MYS5HYShrKTtoLnRhLkdhKGspO3M9cD16PUU9Qz1mPW51bGx9fXZhciBzLHA9bmV3IEsoZikseixFLEMsQSxCLHksRyxIO3RoaXMuRGM9aTt0aGlzLnVwZGF0ZT1rO3RoaXMuaz1vO3RoaXMudmM9Zn12YXIgYj17fSxjPWguSSsibGF6eS1pbml0IixnPSIgIitoLkphKyJob3ZlciIsZD1uZXcgUmVnRXhwKCJcXGIiK2guSmErImhvdmVyXFxiIiwiZyIpLGU9e2JhY2tncm91bmQ6MSxiZ0NvbG9yOjEsZGlzcGxheToxfTthLnhjPWZ1bmN0aW9uKGYpe3ZhciBpPWgubi5vYShmKTtyZXR1cm4gYltpXXx8KGJbaV09bmV3IGEoZikpfTthLms9ZnVuY3Rpb24oZil7Zj1oLm4ub2EoZik7dmFyIGk9YltmXTtpZihpKXtpLmsoKTtkZWxldGUgYltmXX19OwphLnJjPWZ1bmN0aW9uKCl7dmFyIGY9W10saTtpZihiKXtmb3IodmFyIGogaW4gYilpZihiLmhhc093blByb3BlcnR5KGopKXtpPWJbal07Zi5wdXNoKGkudmMpO2kuaygpfWI9e319cmV0dXJuIGZ9O3JldHVybiBhfSgpO2guYXR0YWNoPWZ1bmN0aW9uKGEpe2guRDw5JiZoLkthLnhjKGEpLkRjKCl9O2guZGV0YWNoPWZ1bmN0aW9uKGEpe2guS2EuayhhKX19Owp2YXIgTD13aW5kb3cuUElFLE49ZWxlbWVudDtmdW5jdGlvbiBpbml0KCl7ZG9jLm1lZGlhIT09InByaW50IiYmTC5hdHRhY2goTil9ZnVuY3Rpb24gY2xlYW51cCgpe0wuZGV0YWNoKE4pO0w9Tj0wfU4ucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSImJmluaXQoKTsKPC9zY3JpcHQ+CjwvUFVCTElDOkNPTVBPTkVOVD4K);margin-bottom: 10px;overflow: hidden;}.slider {width: 611px;height: 504px;color: #414141;}.slider-main-item, .slider-item {float:left;cursor: pointer;}.slider-main-item h2 {height:37px;font-size: 17px;font-weight: bold;margin: 0px 5px;}.slider-main-item a {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAIAAACkr0LiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjEwN0QwMkY3QkY2NjExRTBCRjRCRDlCMjA4MjZEQThBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjEwN0QwMkY4QkY2NjExRTBCRjRCRDlCMjA4MjZEQThBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTA3RDAyRjVCRjY2MTFFMEJGNEJEOUIyMDgyNkRBOEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTA3RDAyRjZCRjY2MTFFMEJGNEJEOUIyMDgyNkRBOEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7I0X4EAAAAeklEQVR42mL8//8/AxL48+cPCwsLlPMfFbS1tZ08eRLCZnzx4sW8efMePHiArFtBQSEhIYFl7dq1QAkTExNOTk6g6KlTp4Ckvr6+iIgIy5s3b5SUlFJTUyE6eHl5HR0d+fj4gGyQtUxMTHDT/P394WwmBtwAnxxAgAEA+uk2f4aQEcwAAAAASUVORK5CYII=) right no-repeat;float:right;font-size: 10px;color: #414141;padding-right:14px;padding-top:2px;margin-right:10px;}.slider-line {float:left;width: 611px;height: 5px;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAmMAAAAFCAIAAACGmHxEAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkY3OUEwQUFBQzk3NDExRTBCOEEyQUY4REU3NjkxM0FFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkY3OUEwQUFCQzk3NDExRTBCOEEyQUY4REU3NjkxM0FFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Rjc5QTBBQThDOTc0MTFFMEI4QTJBRjhERTc2OTEzQUUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Rjc5QTBBQTlDOTc0MTFFMEI4QTJBRjhERTc2OTEzQUUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5nbRysAAAASElEQVR42uzQwQnAIBAAsFoEEQSncNRb8f5u0gWOTpCMkBYRDwBQOef0e68IACjtvV8LAPCjZaYFACittfqcUwQAlMYYnwADAFhwB7EBKjWcAAAAAElFTkSuQmCC);}.slider-item {width:140px;padding:6px;font-size: 12px;background: #eaeaea;height:100px;}.slider-item:last-child {width:142px;}.slider-top .active {background: #ffffff;}.wide-title {width:609px;}.box-title {min-height: 28px;margin: 1px 0 1px 1px;border-top: 1px solid #6f6f6f;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAcCAIAAAAvP0KbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU2NDU1MzcxQkU5MzExRTBCRUNEQTRCNTc3OTdFQzYyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjU2NDU1MzcyQkU5MzExRTBCRUNEQTRCNTc3OTdFQzYyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTY0NTUzNkZCRTkzMTFFMEJFQ0RBNEI1Nzc5N0VDNjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTY0NTUzNzBCRTkzMTFFMEJFQ0RBNEI1Nzc5N0VDNjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4NIEkSAAAAJ0lEQVR42mL29/dn+v//P9O/f//ANDobmY8ujg0zMDDgFAMCgAADAPfmSNnfS21pAAAAAElFTkSuQmCC) repeat-x #353535;-moz-border-radius:7px 7px 0 0; -webkit-border-radius: 7px 7px 0 0; border-radius: 7px 7px 0 0; behavior: url(data:image/htc;base64,PCEtLQpQSUU6IENTUzMgcmVuZGVyaW5nIGZvciBJRQpWZXJzaW9uIDEuMGJldGEzCmh0dHA6Ly9jc3MzcGllLmNvbQpEdWFsLWxpY2Vuc2VkIGZvciB1c2UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wIG9yIHRoZSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMi4KLS0+CjwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwMTQpYWJvdXQ6aW50ZXJuZXQgLS0+CjxQVUJMSUM6Q09NUE9ORU5UIGxpZ2h0V2VpZ2h0PSJ0cnVlIj4KPFBVQkxJQzpBVFRBQ0ggRVZFTlQ9Im9uY29udGVudHJlYWR5IiBGT1I9ImVsZW1lbnQiIE9ORVZFTlQ9ImluaXQoKSIgLz4KPFBVQkxJQzpBVFRBQ0ggRVZFTlQ9Im9uZG9jdW1lbnRyZWFkeSIgRk9SPSJlbGVtZW50IiBPTkVWRU5UPSJpbml0KCkiIC8+CjxQVUJMSUM6QVRUQUNIIEVWRU5UPSJvbmRldGFjaCIgRk9SPSJlbGVtZW50IiBPTkVWRU5UPSJjbGVhbnVwKCkiIC8+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBkb2MgPSBlbGVtZW50LmRvY3VtZW50O3ZhciBoPXdpbmRvdy5QSUU7CmlmKCFoKXtoPXdpbmRvdy5QSUU9e0k6Ii1waWUtIixOYToiUGllIixKYToicGllXyIsQ2I6e1REOjEsVEg6MX19O3RyeXtkb2MuZXhlY0NvbW1hbmQoIkJhY2tncm91bmRJbWFnZUNhY2hlIixmYWxzZSx0cnVlKX1jYXRjaChKKXt9aC5EPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPTQsYj1kb2MuY3JlYXRlRWxlbWVudCgiZGl2IiksYz1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpIik7Yi5pbm5lckhUTUw9IjwhLS1baWYgZ3QgSUUgIisgKythKyJdPjxpPjwvaT48IVtlbmRpZl0tLVw+IixjWzBdOyk7cmV0dXJuIGF9KCk7aWYoaC5EPT09NiloLkk9aC5JLnJlcGxhY2UoL14tLywiIik7aC5XYT1oLkQ9PT04JiZkb2MuZG9jdW1lbnRNb2RlO2gubj17QWE6ZnVuY3Rpb24oYSl7dmFyIGI9aC5mYztpZighYil7Yj1oLmZjPWRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yi5uYW1lc3BhY2VzLmFkZCgiY3NzM3ZtbCIsInVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIil9cmV0dXJuIGIuY3JlYXRlRWxlbWVudCgiY3NzM3ZtbDoiK2EpfSwKb2E6ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEuX3BpZUlkfHwoYS5fcGllSWQ9K25ldyBEYXRlK01hdGgucmFuZG9tKCkpfSwkYTpmdW5jdGlvbihhKXt2YXIgYixjLGcsZCxlPWFyZ3VtZW50cztiPTE7Zm9yKGM9ZS5sZW5ndGg7YjxjO2IrKyl7ZD1lW2JdO2ZvcihnIGluIGQpaWYoZC5oYXNPd25Qcm9wZXJ0eShnKSlhW2ddPWRbZ119cmV0dXJuIGF9LEliOmZ1bmN0aW9uKGEsYixjKXt2YXIgZz1oLlpifHwoaC5aYj17fSksZD1nW2FdLGU7aWYoZCliLmNhbGwoYyxkKTtlbHNle2U9bmV3IEltYWdlO2Uub25sb2FkPWZ1bmN0aW9uKCl7ZD1nW2FdPXtnOmUud2lkdGgsZTplLmhlaWdodH07Yi5jYWxsKGMsZCk7ZS5vbmxvYWQ9bnVsbH07ZS5zcmM9YX19fTtoLmVhPWZ1bmN0aW9uKCl7dGhpcy5iYj1bXTt0aGlzLndiPXt9fTtoLmVhLnByb3RvdHlwZT17WDpmdW5jdGlvbihhKXt2YXIgYj1oLm4ub2EoYSksYz10aGlzLndiLGc9dGhpcy5iYjtpZighKGIgaW4gYykpe2NbYl09Zy5sZW5ndGg7CmcucHVzaChhKX19LEdhOmZ1bmN0aW9uKGEpe2E9aC5uLm9hKGEpO3ZhciBiPXRoaXMud2I7aWYoYSYmYSBpbiBiKXtkZWxldGUgdGhpcy5iYltiW2FdXTtkZWxldGUgYlthXX19LENhOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMuYmIsYj1hLmxlbmd0aDtiLS07KWFbYl0mJmFbYl0oKX19O2lmKGguV2E9PT04KXtoLkxhPW5ldyBoLmVhO3NldEludGVydmFsKGZ1bmN0aW9uKCl7aC5MYS5DYSgpfSwyNTApfWguRj1uZXcgaC5lYTt3aW5kb3cuYXR0YWNoRXZlbnQoIm9uYmVmb3JldW5sb2FkIixmdW5jdGlvbigpe2guRi5DYSgpfSk7aC5GLnlhPWZ1bmN0aW9uKGEsYixjKXthLmF0dGFjaEV2ZW50KGIsYyk7dGhpcy5YKGZ1bmN0aW9uKCl7YS5kZXRhY2hFdmVudChiLGMpfSl9OyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtoLnRhLkNhKCl9aC50YT1uZXcgaC5lYTtoLkYueWEod2luZG93LCJvbnJlc2l6ZSIsYSl9KSgpOyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtoLk1hLkNhKCl9aC5NYT0KbmV3IGguZWE7aC5GLnlhKHdpbmRvdywib25zY3JvbGwiLGEpO2gudGEuWChhKX0pKCk7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2M9aC5LYS5yYygpfWZ1bmN0aW9uIGIoKXtpZihjKXtmb3IodmFyIGc9MCxkPWMubGVuZ3RoO2c8ZDtnKyspaC5hdHRhY2goY1tnXSk7Yz0wfX12YXIgYztoLkYueWEod2luZG93LCJvbmJlZm9yZXByaW50IixhKTtoLkYueWEod2luZG93LCJvbmFmdGVycHJpbnQiLGIpfSkoKTtoLmk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGUpe3RoaXMudz1lfXZhciBiPWRvYy5jcmVhdGVFbGVtZW50KCJsZW5ndGgtY2FsYyIpLGM9Yi5zdHlsZSxnPXt9LGQ9e307Yy5wb3NpdGlvbj0iYWJzb2x1dGUiO2MudG9wPWMubGVmdD0tOTk5OTthLnByb3RvdHlwZT17Y2I6LyhweHxlbXxleHxtbXxjbXxpbnxwdHxwY3wlKSQvLHJiOmZ1bmN0aW9uKCl7dmFyIGU9Z1t0aGlzLnddO2lmKGU9PT12b2lkIDApZT1nW3RoaXMud109cGFyc2VGbG9hdCh0aGlzLncpO3JldHVybiBlfSwKVWE6ZnVuY3Rpb24oKXt2YXIgZT1kW3RoaXMud107aWYoIWUpe2U9dGhpcy53Lm1hdGNoKHRoaXMuY2IpO2U9ZFt0aGlzLnddPWUmJmVbMF18fCJweCJ9cmV0dXJuIGV9LGE6ZnVuY3Rpb24oZSxmKXt2YXIgaT10aGlzLnJiKCksaj10aGlzLlVhKCk7c3dpdGNoKGope2Nhc2UgInB4IjpyZXR1cm4gaTtjYXNlICIlIjpyZXR1cm4gaSoodHlwZW9mIGY9PT0iZnVuY3Rpb24iP2YoKTpmKS8xMDA7Y2FzZSAiZW0iOnJldHVybiBpKnRoaXMucGIoZSk7Y2FzZSAiZXgiOnJldHVybiBpKnRoaXMucGIoZSkvMjtkZWZhdWx0OnJldHVybiBpKmEub2Nbal19fSxwYjpmdW5jdGlvbihlKXt2YXIgZj1lLmN1cnJlbnRTdHlsZS5mb250U2l6ZTtpZihmLmluZGV4T2YoInB4Iik+MClyZXR1cm4gcGFyc2VGbG9hdChmKTtlbHNle2Iuc3R5bGUud2lkdGg9IjFlbSI7ZS5hcHBlbmRDaGlsZChiKTtmPWIub2Zmc2V0V2lkdGg7Yi5wYXJlbnROb2RlIT09ZSYmZS5yZW1vdmVDaGlsZChiKTtyZXR1cm4gZn19fTsKYS5vYz1mdW5jdGlvbigpe3ZhciBlPVsibW0iLCJjbSIsImluIiwicHQiLCJwYyJdLGY9e30saT1kb2MuZG9jdW1lbnRFbGVtZW50LGo9ZS5sZW5ndGgsaztmb3IoaS5hcHBlbmRDaGlsZChiKTtqLS07KXtrPWVbal07Yi5zdHlsZS53aWR0aD0iMTAwIitrO2Zba109Yi5vZmZzZXRXaWR0aC8xMDB9aS5yZW1vdmVDaGlsZChiKTtyZXR1cm4gZn0oKTthLmxiPW5ldyBhKCIwIik7cmV0dXJuIGF9KCk7aC5IYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoZCl7dGhpcy5RPWR9dmFyIGI9bmV3IGguaSgiNTAlIiksYz17dG9wOjEsY2VudGVyOjEsYm90dG9tOjF9LGc9e2xlZnQ6MSxjZW50ZXI6MSxyaWdodDoxfTthLnByb3RvdHlwZT17eWM6ZnVuY3Rpb24oKXtpZighdGhpcy5vYil7dmFyIGQ9dGhpcy5RLGU9ZC5sZW5ndGgsZj1oLmkubGIsaT1oLnEuZmEuYmE7Zj1bImxlZnQiLGYsInRvcCIsZl07aWYoZT09PTEpe2QucHVzaCh7dHlwZTppLHZhbHVlOiJjZW50ZXIifSk7ZSsrfWlmKGU9PT0yKXtpJgooZFswXS50eXBlfGRbMV0udHlwZSkmJmRbMF0udmFsdWUgaW4gYyYmZFsxXS52YWx1ZSBpbiBnJiZkLnB1c2goZC5zaGlmdCgpKTtpZihkWzBdLnR5cGUmaSlpZihkWzBdLnZhbHVlPT09ImNlbnRlciIpZlsxXT1iO2Vsc2UgZlswXT1kWzBdLnZhbHVlO2Vsc2UgaWYoZFswXS5VKCkpZlsxXT1uZXcgaC5pKGRbMF0udmFsdWUpO2lmKGRbMV0udHlwZSZpKWlmKGRbMV0udmFsdWU9PT0iY2VudGVyIilmWzNdPWI7ZWxzZSBmWzJdPWRbMV0udmFsdWU7ZWxzZSBpZihkWzFdLlUoKSlmWzNdPW5ldyBoLmkoZFsxXS52YWx1ZSl9dGhpcy5vYj1mfXJldHVybiB0aGlzLm9ifSxjb29yZHM6ZnVuY3Rpb24oZCxlLGYpe3ZhciBpPXRoaXMueWMoKSxqPWlbMV0uYShkLGUpO2Q9aVszXS5hKGQsZik7cmV0dXJue3g6aVswXT09PSJyaWdodCI/ZS1qOmoseTppWzJdPT09ImJvdHRvbSI/Zi1kOmR9fX07cmV0dXJuIGF9KCk7aC5LYj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7dGhpcy53PWJ9YS5wcm90b3R5cGU9CntjYjovW2Etel0rJC9pLFVhOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWN8fCh0aGlzLmVjPXRoaXMudy5tYXRjaCh0aGlzLmNiKVswXS50b0xvd2VyQ2FzZSgpKX0scWM6ZnVuY3Rpb24oKXt2YXIgYj10aGlzLlliLGM7aWYoYj09PXVuZGVmaW5lZCl7Yj10aGlzLlVhKCk7Yz1wYXJzZUZsb2F0KHRoaXMudywxMCk7Yj10aGlzLlliPWI9PT0iZGVnIj9jOmI9PT0icmFkIj9jL01hdGguUEkqMTgwOmI9PT0iZ3JhZCI/Yy80MDAqMzYwOmI9PT0idHVybiI/YyozNjA6MH1yZXR1cm4gYn19O3JldHVybiBhfSgpO2guUj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7dGhpcy53PWJ9YS5NYz0vXHMqcmdiYVwoXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSlccyosXHMqKFxkK3xcZCpcLlxkKylccypcKVxzKi87YS5hYj17YWxpY2VibHVlOiIjRjBGOEZGIixhbnRpcXVld2hpdGU6IiNGQUVCRDciLGFxdWE6IiMwMEZGRkYiLGFxdWFtYXJpbmU6IiM3RkZGRDQiLAphenVyZToiI0YwRkZGRiIsYmVpZ2U6IiNGNUY1REMiLGJpc3F1ZToiI0ZGRTRDNCIsYmxhY2s6IiMwMDAwMDAiLGJsYW5jaGVkYWxtb25kOiIjRkZFQkNEIixibHVlOiIjMDAwMEZGIixibHVldmlvbGV0OiIjOEEyQkUyIixicm93bjoiI0E1MkEyQSIsYnVybHl3b29kOiIjREVCODg3IixjYWRldGJsdWU6IiM1RjlFQTAiLGNoYXJ0cmV1c2U6IiM3RkZGMDAiLGNob2NvbGF0ZToiI0QyNjkxRSIsY29yYWw6IiNGRjdGNTAiLGNvcm5mbG93ZXJibHVlOiIjNjQ5NUVEIixjb3Juc2lsazoiI0ZGRjhEQyIsY3JpbXNvbjoiI0RDMTQzQyIsY3lhbjoiIzAwRkZGRiIsZGFya2JsdWU6IiMwMDAwOEIiLGRhcmtjeWFuOiIjMDA4QjhCIixkYXJrZ29sZGVucm9kOiIjQjg4NjBCIixkYXJrZ3JheToiI0E5QTlBOSIsZGFya2dyZWVuOiIjMDA2NDAwIixkYXJra2hha2k6IiNCREI3NkIiLGRhcmttYWdlbnRhOiIjOEIwMDhCIixkYXJrb2xpdmVncmVlbjoiIzU1NkIyRiIsZGFya29yYW5nZToiI0ZGOEMwMCIsCmRhcmtvcmNoaWQ6IiM5OTMyQ0MiLGRhcmtyZWQ6IiM4QjAwMDAiLGRhcmtzYWxtb246IiNFOTk2N0EiLGRhcmtzZWFncmVlbjoiIzhGQkM4RiIsZGFya3NsYXRlYmx1ZToiIzQ4M0Q4QiIsZGFya3NsYXRlZ3JheToiIzJGNEY0RiIsZGFya3R1cnF1b2lzZToiIzAwQ0VEMSIsZGFya3Zpb2xldDoiIzk0MDBEMyIsZGVlcHBpbms6IiNGRjE0OTMiLGRlZXBza3libHVlOiIjMDBCRkZGIixkaW1ncmF5OiIjNjk2OTY5Iixkb2RnZXJibHVlOiIjMUU5MEZGIixmaXJlYnJpY2s6IiNCMjIyMjIiLGZsb3JhbHdoaXRlOiIjRkZGQUYwIixmb3Jlc3RncmVlbjoiIzIyOEIyMiIsZnVjaHNpYToiI0ZGMDBGRiIsZ2FpbnNib3JvOiIjRENEQ0RDIixnaG9zdHdoaXRlOiIjRjhGOEZGIixnb2xkOiIjRkZENzAwIixnb2xkZW5yb2Q6IiNEQUE1MjAiLGdyYXk6IiM4MDgwODAiLGdyZWVuOiIjMDA4MDAwIixncmVlbnllbGxvdzoiI0FERkYyRiIsaG9uZXlkZXc6IiNGMEZGRjAiLGhvdHBpbms6IiNGRjY5QjQiLAppbmRpYW5yZWQ6IiNDRDVDNUMiLGluZGlnbzoiIzRCMDA4MiIsaXZvcnk6IiNGRkZGRjAiLGtoYWtpOiIjRjBFNjhDIixsYXZlbmRlcjoiI0U2RTZGQSIsbGF2ZW5kZXJibHVzaDoiI0ZGRjBGNSIsbGF3bmdyZWVuOiIjN0NGQzAwIixsZW1vbmNoaWZmb246IiNGRkZBQ0QiLGxpZ2h0Ymx1ZToiI0FERDhFNiIsbGlnaHRjb3JhbDoiI0YwODA4MCIsbGlnaHRjeWFuOiIjRTBGRkZGIixsaWdodGdvbGRlbnJvZHllbGxvdzoiI0ZBRkFEMiIsbGlnaHRncmVlbjoiIzkwRUU5MCIsbGlnaHRncmV5OiIjRDNEM0QzIixsaWdodHBpbms6IiNGRkI2QzEiLGxpZ2h0c2FsbW9uOiIjRkZBMDdBIixsaWdodHNlYWdyZWVuOiIjMjBCMkFBIixsaWdodHNreWJsdWU6IiM4N0NFRkEiLGxpZ2h0c2xhdGVncmF5OiIjNzc4ODk5IixsaWdodHN0ZWVsYmx1ZToiI0IwQzRERSIsbGlnaHR5ZWxsb3c6IiNGRkZGRTAiLGxpbWU6IiMwMEZGMDAiLGxpbWVncmVlbjoiIzMyQ0QzMiIsbGluZW46IiNGQUYwRTYiLG1hZ2VudGE6IiNGRjAwRkYiLAptYXJvb246IiM4MDAwMDAiLG1lZGl1bWF1cWFtYXJpbmU6IiM2NkNEQUEiLG1lZGl1bWJsdWU6IiMwMDAwQ0QiLG1lZGl1bW9yY2hpZDoiI0JBNTVEMyIsbWVkaXVtcHVycGxlOiIjOTM3MEQ4IixtZWRpdW1zZWFncmVlbjoiIzNDQjM3MSIsbWVkaXVtc2xhdGVibHVlOiIjN0I2OEVFIixtZWRpdW1zcHJpbmdncmVlbjoiIzAwRkE5QSIsbWVkaXVtdHVycXVvaXNlOiIjNDhEMUNDIixtZWRpdW12aW9sZXRyZWQ6IiNDNzE1ODUiLG1pZG5pZ2h0Ymx1ZToiIzE5MTk3MCIsbWludGNyZWFtOiIjRjVGRkZBIixtaXN0eXJvc2U6IiNGRkU0RTEiLG1vY2Nhc2luOiIjRkZFNEI1IixuYXZham93aGl0ZToiI0ZGREVBRCIsbmF2eToiIzAwMDA4MCIsb2xkbGFjZToiI0ZERjVFNiIsb2xpdmU6IiM4MDgwMDAiLG9saXZlZHJhYjoiIzY4OEUyMyIsb3JhbmdlOiIjRkZBNTAwIixvcmFuZ2VyZWQ6IiNGRjQ1MDAiLG9yY2hpZDoiI0RBNzBENiIscGFsZWdvbGRlbnJvZDoiI0VFRThBQSIscGFsZWdyZWVuOiIjOThGQjk4IiwKcGFsZXR1cnF1b2lzZToiI0FGRUVFRSIscGFsZXZpb2xldHJlZDoiI0Q4NzA5MyIscGFwYXlhd2hpcDoiI0ZGRUZENSIscGVhY2hwdWZmOiIjRkZEQUI5IixwZXJ1OiIjQ0Q4NTNGIixwaW5rOiIjRkZDMENCIixwbHVtOiIjRERBMEREIixwb3dkZXJibHVlOiIjQjBFMEU2IixwdXJwbGU6IiM4MDAwODAiLHJlZDoiI0ZGMDAwMCIscm9zeWJyb3duOiIjQkM4RjhGIixyb3lhbGJsdWU6IiM0MTY5RTEiLHNhZGRsZWJyb3duOiIjOEI0NTEzIixzYWxtb246IiNGQTgwNzIiLHNhbmR5YnJvd246IiNGNEE0NjAiLHNlYWdyZWVuOiIjMkU4QjU3IixzZWFzaGVsbDoiI0ZGRjVFRSIsc2llbm5hOiIjQTA1MjJEIixzaWx2ZXI6IiNDMEMwQzAiLHNreWJsdWU6IiM4N0NFRUIiLHNsYXRlYmx1ZToiIzZBNUFDRCIsc2xhdGVncmF5OiIjNzA4MDkwIixzbm93OiIjRkZGQUZBIixzcHJpbmdncmVlbjoiIzAwRkY3RiIsc3RlZWxibHVlOiIjNDY4MkI0Iix0YW46IiNEMkI0OEMiLHRlYWw6IiMwMDgwODAiLAp0aGlzdGxlOiIjRDhCRkQ4Iix0b21hdG86IiNGRjYzNDciLHR1cnF1b2lzZToiIzQwRTBEMCIsdmlvbGV0OiIjRUU4MkVFIix3aGVhdDoiI0Y1REVCMyIsd2hpdGU6IiNGRkZGRkYiLHdoaXRlc21va2U6IiNGNUY1RjUiLHllbGxvdzoiI0ZGRkYwMCIseWVsbG93Z3JlZW46IiM5QUNEMzIifTthLnByb3RvdHlwZT17cGFyc2U6ZnVuY3Rpb24oKXtpZighdGhpcy53YSl7dmFyIGI9dGhpcy53LGM7aWYoYz1iLm1hdGNoKGEuTWMpKXt0aGlzLndhPSJyZ2IoIitjWzFdKyIsIitjWzJdKyIsIitjWzNdKyIpIjt0aGlzLm1iPXBhcnNlRmxvYXQoY1s0XSl9ZWxzZXtpZigoYz1iLnRvTG93ZXJDYXNlKCkpaW4gYS5hYiliPWEuYWJbY107dGhpcy53YT1iO3RoaXMubWI9Yj09PSJ0cmFuc3BhcmVudCI/MDoxfX19LHZhbHVlOmZ1bmN0aW9uKGIpe3RoaXMucGFyc2UoKTtyZXR1cm4gdGhpcy53YT09PSJjdXJyZW50Q29sb3IiP2IuY3VycmVudFN0eWxlLmNvbG9yOnRoaXMud2F9LGhhOmZ1bmN0aW9uKCl7dGhpcy5wYXJzZSgpOwpyZXR1cm4gdGhpcy5tYn19O3JldHVybiBhfSgpO2gucT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYyl7dGhpcy5CYT1jO3RoaXMuY2g9MDt0aGlzLlE9W107dGhpcy5yYT0wfXZhciBiPWEuZmE9e3NhOjEsaWI6MixhYTo0LFRiOjgsamI6MTYsYmE6MzIsejo2NCxjYToxMjgsZGE6MjU2LHVhOjUxMixXYjoxMDI0LFVSTDoyMDQ4fTthLmtiPWZ1bmN0aW9uKGMsZyl7dGhpcy50eXBlPWM7dGhpcy52YWx1ZT1nfTthLmtiLnByb3RvdHlwZT17WWE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlJmIuenx8dGhpcy50eXBlJmIuY2EmJnRoaXMudmFsdWU9PT0iMCJ9LFU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ZYSgpfHx0aGlzLnR5cGUmYi51YX19O2EucHJvdG90eXBlPXtWYzovXHMvLEdjOi9eW1wrXC1dPyhcZCpcLik/XGQrLyx1cmw6L151cmxcKFxzKigiKFteIl0qKSJ8JyhbXiddKiknfChbISMkJSYqLX5dKikpXHMqXCkvaSx2YjovXlwtP1tfYS16XVtcdy1dKi9pLFFjOi9eKCIoW14iXSopInwnKFteJ10qKScpLywKQWM6L14jKFtcZGEtZl17Nn18W1xkYS1mXXszfSkvaSxUYzp7cHg6Yi56LGVtOmIueixleDpiLnosbW06Yi56LGNtOmIueiwiaW4iOmIueixwdDpiLnoscGM6Yi56LGRlZzpiLnNhLHJhZDpiLnNhLGdyYWQ6Yi5zYX0sbGM6e3JnYjoxLHJnYmE6MSxoc2w6MSxoc2xhOjF9LG5leHQ6ZnVuY3Rpb24oYyl7ZnVuY3Rpb24gZyh1LG4pe3U9bmV3IGEua2IodSxuKTtpZighYyl7ay5RLnB1c2godSk7ay5yYSsrfXJldHVybiB1fWZ1bmN0aW9uIGQoKXtrLnJhKys7cmV0dXJuIG51bGx9dmFyIGUsZixpLGosaz10aGlzO2lmKHRoaXMucmE8dGhpcy5RLmxlbmd0aClyZXR1cm4gdGhpcy5RW3RoaXMucmErK107Zm9yKDt0aGlzLlZjLnRlc3QodGhpcy5CYS5jaGFyQXQodGhpcy5jaCkpOyl0aGlzLmNoKys7aWYodGhpcy5jaD49dGhpcy5CYS5sZW5ndGgpcmV0dXJuIGQoKTtmPXRoaXMuY2g7ZT10aGlzLkJhLnN1YnN0cmluZyh0aGlzLmNoKTtpPWUuY2hhckF0KDApO3N3aXRjaChpKXtjYXNlICIjIjppZihqPQplLm1hdGNoKHRoaXMuQWMpKXt0aGlzLmNoKz1qWzBdLmxlbmd0aDtyZXR1cm4gZyhiLmFhLGpbMF0pfWJyZWFrO2Nhc2UgJyInOmNhc2UgIiciOmlmKGo9ZS5tYXRjaCh0aGlzLlFjKSl7dGhpcy5jaCs9alswXS5sZW5ndGg7cmV0dXJuIGcoYi5XYixqWzJdfHxqWzNdfHwiIil9YnJlYWs7Y2FzZSAiLyI6Y2FzZSAiLCI6dGhpcy5jaCsrO3JldHVybiBnKGIuZGEsaSk7Y2FzZSAidSI6aWYoaj1lLm1hdGNoKHRoaXMudXJsKSl7dGhpcy5jaCs9alswXS5sZW5ndGg7cmV0dXJuIGcoYi5VUkwsalsyXXx8alszXXx8als0XXx8IiIpfX1pZihqPWUubWF0Y2godGhpcy5HYykpe2k9alswXTt0aGlzLmNoKz1pLmxlbmd0aDtpZihlLmNoYXJBdChpLmxlbmd0aCk9PT0iJSIpe3RoaXMuY2grKztyZXR1cm4gZyhiLnVhLGkrIiUiKX1pZihqPWUuc3Vic3RyaW5nKGkubGVuZ3RoKS5tYXRjaCh0aGlzLnZiKSl7aSs9alswXTt0aGlzLmNoKz1qWzBdLmxlbmd0aDtyZXR1cm4gZyh0aGlzLlRjW2pbMF0udG9Mb3dlckNhc2UoKV18fApiLlRiLGkpfXJldHVybiBnKGIuY2EsaSl9aWYoaj1lLm1hdGNoKHRoaXMudmIpKXtpPWpbMF07dGhpcy5jaCs9aS5sZW5ndGg7aWYoaS50b0xvd2VyQ2FzZSgpaW4gaC5SLmFifHxpPT09ImN1cnJlbnRDb2xvciIpcmV0dXJuIGcoYi5hYSxpKTtpZihlLmNoYXJBdChpLmxlbmd0aCk9PT0iKCIpe3RoaXMuY2grKztpZihpLnRvTG93ZXJDYXNlKClpbiB0aGlzLmxjKXtlPWZ1bmN0aW9uKHUpe3JldHVybiB1JiZ1LnR5cGUmYi5jYX07aj1mdW5jdGlvbih1KXtyZXR1cm4gdSYmdS50eXBlJihiLmNhfGIudWEpfTt2YXIgbT1mdW5jdGlvbih1LG4pe3JldHVybiB1JiZ1LnZhbHVlPT09bn0sbD1mdW5jdGlvbigpe3JldHVybiBrLm5leHQoMSl9O2lmKChpLmNoYXJBdCgwKT09PSJyIj9qKGwoKSk6ZShsKCkpKSYmbShsKCksIiwiKSYmaihsKCkpJiZtKGwoKSwiLCIpJiZqKGwoKSkmJihpPT09InJnYiJ8fGk9PT0iaHNhInx8bShsKCksIiwiKSYmZShsKCkpKSYmbShsKCksIikiKSlyZXR1cm4gZyhiLmFhLAp0aGlzLkJhLnN1YnN0cmluZyhmLHRoaXMuY2gpKTtyZXR1cm4gZCgpfXJldHVybiBnKGIuamIsaSsiKCIpfXJldHVybiBnKGIuYmEsaSl9dGhpcy5jaCsrO3JldHVybiBnKGIuaWIsaSl9LHY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RW3RoaXMucmEtLSAtMl19LGFsbDpmdW5jdGlvbigpe2Zvcig7dGhpcy5uZXh0KCk7KTtyZXR1cm4gdGhpcy5RfSwkOmZ1bmN0aW9uKGMsZyl7Zm9yKHZhciBkPVtdLGUsZjtlPXRoaXMubmV4dCgpOyl7aWYoYyhlKSl7Zj10cnVlO3RoaXMudigpO2JyZWFrfWQucHVzaChlKX1yZXR1cm4gZyYmIWY/bnVsbDpkfX07cmV0dXJuIGF9KCk7dmFyIEs9ZnVuY3Rpb24oYSl7dGhpcy5kPWF9O0sucHJvdG90eXBlPXtKOjAsS2M6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLk9hLGI7cmV0dXJuIWF8fChiPXRoaXMubSgpKSYmKGEueCE9PWIueHx8YS55IT09Yi55KX0sTmM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLk9hLGI7cmV0dXJuIWF8fChiPXRoaXMubSgpKSYmKGEuZyE9PQpiLmd8fGEuZSE9PWIuZSl9LHFiOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt4OmEubGVmdCx5OmEudG9wLGc6YS5yaWdodC1hLmxlZnQsZTphLmJvdHRvbS1hLnRvcH19LG06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5KP3RoaXMueGF8fCh0aGlzLnhhPXRoaXMucWIoKSk6dGhpcy5xYigpfSx6YzpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5PYX0sRGE6ZnVuY3Rpb24oKXsrK3RoaXMuSn0sRmE6ZnVuY3Rpb24oKXtpZighLS10aGlzLkope2lmKHRoaXMueGEpdGhpcy5PYT10aGlzLnhhO3RoaXMueGE9bnVsbH19fTsoZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIpe3ZhciBjPWgubi5vYShiKTtyZXR1cm4gZnVuY3Rpb24oKXtpZih0aGlzLkope3ZhciBnPXRoaXMubmJ8fCh0aGlzLm5iPXt9KTtyZXR1cm4gYyBpbiBnP2dbY106KGdbY109Yi5jYWxsKHRoaXMpKX1lbHNlIHJldHVybiBiLmNhbGwodGhpcyl9fWgucD17SjowLFc6ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYyhnKXt0aGlzLmQ9Cmd9aC5uLiRhKGMucHJvdG90eXBlLGgucCxiKTtjLmRjPXt9O3JldHVybiBjfSxqOmZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5sYSgpLGM9dGhpcy5jb25zdHJ1Y3Rvci5kYztyZXR1cm4gYj9iIGluIGM/Y1tiXTooY1tiXT10aGlzLlkoYikpOm51bGx9LGxhOmEoZnVuY3Rpb24oKXt2YXIgYj10aGlzLmQsYz10aGlzLmNvbnN0cnVjdG9yLGc9Yi5zdHlsZTtiPWIuY3VycmVudFN0eWxlO3ZhciBkPXRoaXMuamEsZT10aGlzLnFhLGY9Yy5iY3x8KGMuYmM9aC5JK2QpO2M9Yy5jY3x8KGMuY2M9aC5OYStlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc3Vic3RyaW5nKDEpKTtyZXR1cm4gZ1tjXXx8Yi5nZXRBdHRyaWJ1dGUoZil8fGdbZV18fGIuZ2V0QXR0cmlidXRlKGQpfSksZjphKGZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmooKX0pLEM6YShmdW5jdGlvbigpe3ZhciBiPXRoaXMubGEoKSxjPWIhPT10aGlzLiRiO3RoaXMuJGI9YjtyZXR1cm4gY30pLGlhOmEsRGE6ZnVuY3Rpb24oKXsrK3RoaXMuSn0sCkZhOmZ1bmN0aW9uKCl7LS10aGlzLkp8fGRlbGV0ZSB0aGlzLm5ifX19KSgpO2guTWI9aC5wLlcoe2phOmguSSsiYmFja2dyb3VuZCIscWE6aC5OYSsiQmFja2dyb3VuZCIsaGM6e3Njcm9sbDoxLGZpeGVkOjEsbG9jYWw6MX0sRWE6eyJyZXBlYXQteCI6MSwicmVwZWF0LXkiOjEscmVwZWF0OjEsIm5vLXJlcGVhdCI6MX0sSGM6eyJwYWRkaW5nLWJveCI6MSwiYm9yZGVyLWJveCI6MSwiY29udGVudC1ib3giOjF9LGtjOnsicGFkZGluZy1ib3giOjEsImJvcmRlci1ib3giOjF9LExjOnt0b3A6MSxyaWdodDoxLGJvdHRvbToxLGxlZnQ6MSxjZW50ZXI6MX0sT2M6e2NvbnRhaW46MSxjb3ZlcjoxfSxZOmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIodil7cmV0dXJuIHYuVSgpfHx2LnR5cGUmaiYmdi52YWx1ZSBpbiB1fWZ1bmN0aW9uIGModil7cmV0dXJuIHYuVSgpJiZuZXcgaC5pKHYudmFsdWUpfHx2LnZhbHVlPT09ImF1dG8iJiYiYXV0byJ9dmFyIGc9dGhpcy5kLmN1cnJlbnRTdHlsZSxkLAplLGY9aC5xLmZhLGk9Zi5kYSxqPWYuYmEsaz1mLmFhLG0sbCx1PXRoaXMuTGMsbixxLHQ9bnVsbDtpZih0aGlzLlRhKCkpe2E9bmV3IGgucShhKTt0PXtpbWFnZXM6W119O2ZvcihlPXt9O2Q9YS5uZXh0KCk7KXttPWQudHlwZTtsPWQudmFsdWU7aWYoIWUudHlwZSYmbSZmLmpiJiZsPT09ImxpbmVhci1ncmFkaWVudCgiKXtuPXtaOltdLHR5cGU6ImxpbmVhci1ncmFkaWVudCJ9O2ZvcihxPXt9O2Q9YS5uZXh0KCk7KXttPWQudHlwZTtsPWQudmFsdWU7aWYobSZmLmliJiZsPT09IikiKXtxLmNvbG9yJiZuLloucHVzaChxKTtuLloubGVuZ3RoPjEmJmgubi4kYShlLG4pO2JyZWFrfWlmKG0mayl7aWYobi5SYXx8bi5WYSl7ZD1hLnYoKTtpZihkLnR5cGUhPT1pKWJyZWFrO2EubmV4dCgpfXE9e2NvbG9yOm5ldyBoLlIobCl9O2Q9YS5uZXh0KCk7aWYoZC5VKCkpcS55Yj1uZXcgaC5pKGQudmFsdWUpO2Vsc2UgYS52KCl9ZWxzZSBpZihtJmYuc2EmJiFuLlJhJiYhcS5jb2xvciYmIW4uWi5sZW5ndGgpbi5SYT0KbmV3IGguS2IoZC52YWx1ZSk7ZWxzZSBpZihiKGQpJiYhbi5WYSYmIXEuY29sb3ImJiFuLloubGVuZ3RoKXthLnYoKTtuLlZhPW5ldyBoLkhhKGEuJChmdW5jdGlvbih2KXtyZXR1cm4hYih2KX0sZmFsc2UpKX1lbHNlIGlmKG0maSYmbD09PSIsIil7aWYocS5jb2xvcil7bi5aLnB1c2gocSk7cT17fX19ZWxzZSBicmVha319ZWxzZSBpZighZS50eXBlJiZtJmYuVVJMKXtlLnVybD1sO2UudHlwZT0iaW1hZ2UifWVsc2UgaWYoYihkKSYmIWUuc2l6ZSl7YS52KCk7ZS5wb3NpdGlvbj1uZXcgaC5IYShhLiQoZnVuY3Rpb24odil7cmV0dXJuIWIodil9LGZhbHNlKSl9ZWxzZSBpZihtJmopaWYobCBpbiB0aGlzLkVhKWUucmVwZWF0PWw7ZWxzZSBpZihsIGluIHRoaXMuSGMpe2Uub3JpZ2luPWw7aWYobCBpbiB0aGlzLmtjKWUuY2xpcD1sfWVsc2V7aWYobCBpbiB0aGlzLmhjKWUuWmM9bH1lbHNlIGlmKG0mayYmIXQuY29sb3IpdC5jb2xvcj1uZXcgaC5SKGwpO2Vsc2UgaWYobSZpKWlmKGw9PT0KIi8iKXtkPWEubmV4dCgpO209ZC50eXBlO2w9ZC52YWx1ZTtpZihtJmomJmwgaW4gdGhpcy5PYyllLnNpemU9bDtlbHNlIGlmKGw9YyhkKSllLnNpemU9e2c6bCxlOmMoYS5uZXh0KCkpfHxhLnYoKSYmbH19ZWxzZXtpZihsPT09IiwiJiZlLnR5cGUpe3QuaW1hZ2VzLnB1c2goZSk7ZT17fX19ZWxzZSByZXR1cm4gbnVsbH1lLnR5cGUmJnQuaW1hZ2VzLnB1c2goZSl9ZWxzZSB0aGlzLkdiKGZ1bmN0aW9uKCl7dmFyIHY9Zy5iYWNrZ3JvdW5kUG9zaXRpb25YLHg9Zy5iYWNrZ3JvdW5kUG9zaXRpb25ZLHI9Zy5iYWNrZ3JvdW5kSW1hZ2Usbz1nLmJhY2tncm91bmRDb2xvcjt0PXt9O2lmKG8hPT0idHJhbnNwYXJlbnQiKXQuY29sb3I9bmV3IGguUihvKTtpZihyIT09Im5vbmUiKXQuaW1hZ2VzPVt7dHlwZToiaW1hZ2UiLHVybDoobmV3IGgucShyKSkubmV4dCgpLnZhbHVlLHJlcGVhdDpnLmJhY2tncm91bmRSZXBlYXQscG9zaXRpb246bmV3IGguSGEoKG5ldyBoLnEodisiICIreCkpLmFsbCgpKX1dfSk7CnJldHVybiB0JiYodC5jb2xvcnx8dC5pbWFnZXMmJnQuaW1hZ2VzWzBdKT90Om51bGx9LEdiOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZC5ydW50aW1lU3R5bGUsYz1iLmJhY2tncm91bmRJbWFnZSxnPWIuYmFja2dyb3VuZENvbG9yO2lmKGMpYi5iYWNrZ3JvdW5kSW1hZ2U9IiI7aWYoZyliLmJhY2tncm91bmRDb2xvcj0iIjthPWEuY2FsbCh0aGlzKTtpZihjKWIuYmFja2dyb3VuZEltYWdlPWM7aWYoZyliLmJhY2tncm91bmRDb2xvcj1nO3JldHVybiBhfSxsYTpoLnAuaWEoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5UYSgpfHx0aGlzLkdiKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kLmN1cnJlbnRTdHlsZTtyZXR1cm4gYS5iYWNrZ3JvdW5kQ29sb3IrIiAiK2EuYmFja2dyb3VuZEltYWdlKyIgIithLmJhY2tncm91bmRSZXBlYXQrIiAiK2EuYmFja2dyb3VuZFBvc2l0aW9uWCsiICIrYS5iYWNrZ3JvdW5kUG9zaXRpb25ZfSl9KSxUYTpoLnAuaWEoZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQ7CnJldHVybiBhLnN0eWxlW3RoaXMucWFdfHxhLmN1cnJlbnRTdHlsZS5nZXRBdHRyaWJ1dGUodGhpcy5qYSl9KSx4YjpmdW5jdGlvbigpe3ZhciBhPTA7aWYoaC5EPDcpe2E9dGhpcy5kO2E9IiIrKGEuc3R5bGVbaC5OYSsiUG5nRml4Il18fGEuY3VycmVudFN0eWxlLmdldEF0dHJpYnV0ZShoLkkrInBuZy1maXgiKSk9PT0idHJ1ZSJ9cmV0dXJuIGF9LGY6aC5wLmlhKGZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuVGEoKXx8dGhpcy54YigpKSYmISF0aGlzLmooKX0pfSk7aC5RYj1oLnAuVyh7QmI6WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxGYzp7YmQ6IjFweCIsJGM6IjNweCIsYWQ6IjVweCJ9LFk6ZnVuY3Rpb24oKXt2YXIgYT17fSxiPXt9LGM9e30sZz1mYWxzZSxkPXRydWUsZT10cnVlLGY9dHJ1ZTt0aGlzLkhiKGZ1bmN0aW9uKCl7Zm9yKHZhciBpPXRoaXMuZC5jdXJyZW50U3R5bGUsaj0wLGssbSxsLHUsbixxLHQ7ajw0O2orKyl7bD10aGlzLkJiW2pdO3Q9bC5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTsKaz1iW3RdPWlbImJvcmRlciIrbCsiU3R5bGUiXTttPWlbImJvcmRlciIrbCsiQ29sb3IiXTtsPWlbImJvcmRlciIrbCsiV2lkdGgiXTtpZihqPjApe2lmKGshPT11KWU9ZmFsc2U7aWYobSE9PW4pZD1mYWxzZTtpZihsIT09cSlmPWZhbHNlfXU9aztuPW07cT1sO2NbdF09bmV3IGguUihtKTtsPWFbdF09bmV3IGguaShiW3RdPT09Im5vbmUiPyIwIjp0aGlzLkZjW2xdfHxsKTtpZihsLmEodGhpcy5kKT4wKWc9dHJ1ZX19KTtyZXR1cm4gZz97aGI6YSxSYzpiLG1jOmMsV2M6ZixuYzpkLFNjOmV9Om51bGx9LGxhOmgucC5pYShmdW5jdGlvbigpe3ZhciBhPXRoaXMuZCxiPWEuY3VycmVudFN0eWxlLGM7YS50YWdOYW1lIGluIGguQ2ImJmEub2Zmc2V0UGFyZW50LmN1cnJlbnRTdHlsZS5ib3JkZXJDb2xsYXBzZT09PSJjb2xsYXBzZSJ8fHRoaXMuSGIoZnVuY3Rpb24oKXtjPWIuYm9yZGVyV2lkdGgrInwiK2IuYm9yZGVyU3R5bGUrInwiK2IuYm9yZGVyQ29sb3J9KTtyZXR1cm4gY30pLEhiOmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLmQucnVudGltZVN0eWxlLGM9Yi5ib3JkZXJXaWR0aCxnPWIuYm9yZGVyQ29sb3I7aWYoYyliLmJvcmRlcldpZHRoPSIiO2lmKGcpYi5ib3JkZXJDb2xvcj0iIjthPWEuY2FsbCh0aGlzKTtpZihjKWIuYm9yZGVyV2lkdGg9YztpZihnKWIuYm9yZGVyQ29sb3I9ZztyZXR1cm4gYX19KTsoZnVuY3Rpb24oKXtoLklhPWgucC5XKHtqYToiYm9yZGVyLXJhZGl1cyIscWE6ImJvcmRlclJhZGl1cyIsWTpmdW5jdGlvbihiKXt2YXIgYz1udWxsLGcsZCxlLGYsaT1mYWxzZTtpZihiKXtkPW5ldyBoLnEoYik7dmFyIGo9ZnVuY3Rpb24oKXtmb3IodmFyIGs9W10sbTsoZT1kLm5leHQoKSkmJmUuVSgpOyl7Zj1uZXcgaC5pKGUudmFsdWUpO209Zi5yYigpO2lmKG08MClyZXR1cm4gbnVsbDtpZihtPjApaT10cnVlO2sucHVzaChmKX1yZXR1cm4gay5sZW5ndGg+MCYmay5sZW5ndGg8NT97dGw6a1swXSx0cjprWzFdfHxrWzBdLGJyOmtbMl18fGtbMF0sYmw6a1szXXx8a1sxXXx8a1swXX06bnVsbH07CmlmKGI9aigpKXtpZihlKXtpZihlLnR5cGUmaC5xLmZhLmRhJiZlLnZhbHVlPT09Ii8iKWc9aigpfWVsc2UgZz1iO2lmKGkmJmImJmcpYz17eDpiLHk6Z319fXJldHVybiBjfX0pO3ZhciBhPWguaS5sYjthPXt0bDphLHRyOmEsYnI6YSxibDphfTtoLklhLkpiPXt4OmEseTphfX0pKCk7aC5PYj1oLnAuVyh7amE6ImJvcmRlci1pbWFnZSIscWE6ImJvcmRlckltYWdlIixFYTp7c3RyZXRjaDoxLHJvdW5kOjEscmVwZWF0OjEsc3BhY2U6MX0sWTpmdW5jdGlvbihhKXt2YXIgYj1udWxsLGMsZyxkLGUsZixpLGo9MCxrLG09aC5xLmZhLGw9bS5iYSx1PW0uY2Esbj1tLnoscT1tLnVhO2lmKGEpe2M9bmV3IGgucShhKTtiPXt9O2Zvcih2YXIgdD1mdW5jdGlvbihyKXtyZXR1cm4gciYmci50eXBlJm0uZGEmJnIudmFsdWU9PT0iLyJ9LHY9ZnVuY3Rpb24ocil7cmV0dXJuIHImJnIudHlwZSZsJiZyLnZhbHVlPT09ImZpbGwifSx4PWZ1bmN0aW9uKCl7ZT1jLiQoZnVuY3Rpb24ocil7cmV0dXJuIShyLnR5cGUmCih1fHEpKX0pO2lmKHYoYy5uZXh0KCkpJiYhYi5maWxsKWIuZmlsbD10cnVlO2Vsc2UgYy52KCk7aWYodChjLm5leHQoKSkpe2orKztmPWMuJChmdW5jdGlvbigpe3JldHVybiEoZy50eXBlJih1fHF8bikpJiYhKGcudHlwZSZsJiZnLnZhbHVlPT09ImF1dG8iKX0pO2lmKHQoYy5uZXh0KCkpKXtqKys7aT1jLiQoZnVuY3Rpb24oKXtyZXR1cm4hKGcudHlwZSYodXxuKSl9KX19ZWxzZSBjLnYoKX07Zz1jLm5leHQoKTspe2E9Zy50eXBlO2Q9Zy52YWx1ZTtpZihhJih1fHEpJiYhZSl7Yy52KCk7eCgpfWVsc2UgaWYodihnKSYmIWIuZmlsbCl7Yi5maWxsPXRydWU7eCgpfWVsc2UgaWYoYSZsJiZ0aGlzLkVhW2RdJiYhYi5yZXBlYXQpe2IucmVwZWF0PXtlOmR9O2lmKGc9Yy5uZXh0KCkpaWYoZy50eXBlJmwmJnRoaXMuRWFbZy52YWx1ZV0pYi5yZXBlYXQuZWI9Zy52YWx1ZTtlbHNlIGMudigpfWVsc2UgaWYoYSZtLlVSTCYmIWIuc3JjKWIuc3JjPWQ7ZWxzZSByZXR1cm4gbnVsbH1pZighYi5zcmN8fAohZXx8ZS5sZW5ndGg8MXx8ZS5sZW5ndGg+NHx8ZiYmZi5sZW5ndGg+NHx8aj09PTEmJmYubGVuZ3RoPDF8fGkmJmkubGVuZ3RoPjR8fGo9PT0yJiZpLmxlbmd0aDwxKXJldHVybiBudWxsO2lmKCFiLnJlcGVhdCliLnJlcGVhdD17ZToic3RyZXRjaCJ9O2lmKCFiLnJlcGVhdC5lYiliLnJlcGVhdC5lYj1iLnJlcGVhdC5lO2E9ZnVuY3Rpb24ocixvKXtyZXR1cm57UDpvKHJbMF0pLE86byhyWzFdfHxyWzBdKSxLOm8oclsyXXx8clswXSksTTpvKHJbM118fHJbMV18fHJbMF0pfX07Yi5zbGljZT1hKGUsZnVuY3Rpb24ocil7cmV0dXJuIG5ldyBoLmkoci50eXBlJnU/ci52YWx1ZSsicHgiOnIudmFsdWUpfSk7Yi53aWR0aD1mJiZmLmxlbmd0aD4wP2EoZixmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlJihufHEpP25ldyBoLmkoci52YWx1ZSk6ci52YWx1ZX0pOihrPXRoaXMuZC5jdXJyZW50U3R5bGUpJiZ7UDpuZXcgaC5pKGsuYm9yZGVyVG9wV2lkdGgpLE86bmV3IGguaShrLmJvcmRlclJpZ2h0V2lkdGgpLApLOm5ldyBoLmkoay5ib3JkZXJCb3R0b21XaWR0aCksTTpuZXcgaC5pKGsuYm9yZGVyTGVmdFdpZHRoKX07Yi5wYT1hKGl8fFswXSxmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlJm4/bmV3IGguaShyLnZhbHVlKTpyLnZhbHVlfSl9cmV0dXJuIGJ9fSk7aC5TYj1oLnAuVyh7amE6ImJveC1zaGFkb3ciLHFhOiJib3hTaGFkb3ciLFk6ZnVuY3Rpb24oYSl7dmFyIGIsYz1oLmksZz1oLnEuZmEsZDtpZihhKXtkPW5ldyBoLnEoYSk7Yj17cGE6W10sWGE6W119O2ZvcihhPWZ1bmN0aW9uKCl7Zm9yKHZhciBlLGYsaSxqLGssbTtlPWQubmV4dCgpOyl7aT1lLnZhbHVlO2Y9ZS50eXBlO2lmKGYmZy5kYSYmaT09PSIsIilicmVhaztlbHNlIGlmKGUuWWEoKSYmIWspe2QudigpO2s9ZC4kKGZ1bmN0aW9uKGwpe3JldHVybiFsLllhKCl9KX1lbHNlIGlmKGYmZy5hYSYmIWopaj1pO2Vsc2UgaWYoZiZnLmJhJiZpPT09Imluc2V0IiYmIW0pbT10cnVlO2Vsc2UgcmV0dXJuIGZhbHNlfWU9ayYmay5sZW5ndGg7CmlmKGU+MSYmZTw1KXsobT9iLlhhOmIucGEpLnB1c2goe1hjOm5ldyBjKGtbMF0udmFsdWUpLFljOm5ldyBjKGtbMV0udmFsdWUpLGJsdXI6bmV3IGMoa1syXT9rWzJdLnZhbHVlOiIwIiksUGM6bmV3IGMoa1szXT9rWzNdLnZhbHVlOiIwIiksY29sb3I6bmV3IGguUihqfHwiY3VycmVudENvbG9yIil9KTtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9O2EoKTspO31yZXR1cm4gYiYmKGIuWGEubGVuZ3RofHxiLnBhLmxlbmd0aCk/YjpudWxsfX0pO2guWGI9aC5wLlcoe2xhOmgucC5pYShmdW5jdGlvbigpe3ZhciBhPXRoaXMuZC5jdXJyZW50U3R5bGU7cmV0dXJuIGEudmlzaWJpbGl0eSsifCIrYS5kaXNwbGF5fSksWTpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZCxiPWEucnVudGltZVN0eWxlO2E9YS5jdXJyZW50U3R5bGU7dmFyIGM9Yi52aXNpYmlsaXR5LGc7Yi52aXNpYmlsaXR5PSIiO2c9YS52aXNpYmlsaXR5O2IudmlzaWJpbGl0eT1jO3JldHVybntVYzpnIT09ImhpZGRlbiIsc2M6YS5kaXNwbGF5IT09CiJub25lIn19LGY6ZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2V9fSk7aC5BPXtWOmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyxnLGQsZSl7dGhpcy5kPWM7dGhpcy5vPWc7dGhpcy5oPWQ7dGhpcy5wYXJlbnQ9ZX1oLm4uJGEoYi5wcm90b3R5cGUsaC5BLGEpO3JldHVybiBifSxaYTpmYWxzZSxOOmZ1bmN0aW9uKCl7cmV0dXJuIGZhbHNlfSxEYjpmdW5jdGlvbigpe3RoaXMuaygpO3RoaXMuZigpJiZ0aGlzLlQoKX0sZGI6ZnVuY3Rpb24oKXt0aGlzLlphPXRydWV9LEViOmZ1bmN0aW9uKCl7dGhpcy5mKCk/dGhpcy5UKCk6dGhpcy5rKCl9LFFhOmZ1bmN0aW9uKGEsYil7dGhpcy5BYihhKTtmb3IodmFyIGM9dGhpcy5nYXx8KHRoaXMuZ2E9W10pLGc9YSsxLGQ9Yy5sZW5ndGgsZTtnPGQ7ZysrKWlmKGU9Y1tnXSlicmVhaztjW2FdPWI7dGhpcy51KCkuaW5zZXJ0QmVmb3JlKGIsZXx8bnVsbCl9LG1hOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZ2E7cmV0dXJuIGImJmJbYV18fG51bGx9LEFiOmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLm1hKGEpLGM9dGhpcy52YTtpZihiJiZjKXtjLnJlbW92ZUNoaWxkKGIpO3RoaXMuZ2FbYV09bnVsbH19LG5hOmZ1bmN0aW9uKGEsYixjLGcpe3ZhciBkPXRoaXMuUGF8fCh0aGlzLlBhPXt9KSxlPWRbYV07aWYoIWUpe2U9ZFthXT1oLm4uQWEoInNoYXBlIik7aWYoYillLmFwcGVuZENoaWxkKGVbYl09aC5uLkFhKGIpKTtpZihnKXtjPXRoaXMubWEoZyk7aWYoIWMpe3RoaXMuUWEoZyxkb2MuY3JlYXRlRWxlbWVudCgiZ3JvdXAiK2cpKTtjPXRoaXMubWEoZyl9fWMuYXBwZW5kQ2hpbGQoZSk7YT1lLnN0eWxlO2EucG9zaXRpb249ImFic29sdXRlIjthLmxlZnQ9YS50b3A9MDthLmJlaGF2aW9yPSJ1cmwoI2RlZmF1bHQjVk1MKSJ9cmV0dXJuIGV9LFNhOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuUGEsYz1iJiZiW2FdO2lmKGMpe2MucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjKTtkZWxldGUgYlthXX1yZXR1cm4hIWN9LHRiOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZCxjPXRoaXMuby5tKCksCmc9Yy5nLGQ9Yy5lLGUsZixpLGosayxtO2M9YS54LnRsLmEoYixnKTtlPWEueS50bC5hKGIsZCk7Zj1hLngudHIuYShiLGcpO2k9YS55LnRyLmEoYixkKTtqPWEueC5ici5hKGIsZyk7az1hLnkuYnIuYShiLGQpO209YS54LmJsLmEoYixnKTthPWEueS5ibC5hKGIsZCk7Zz1NYXRoLm1pbihnLyhjK2YpLGQvKGkrayksZy8obStqKSxkLyhlK2EpKTtpZihnPDEpe2MqPWc7ZSo9ZztmKj1nO2kqPWc7aio9ZztrKj1nO20qPWc7YSo9Z31yZXR1cm57eDp7dGw6Yyx0cjpmLGJyOmosYmw6bX0seTp7dGw6ZSx0cjppLGJyOmssYmw6YX19fSxrYTpmdW5jdGlvbihhLGIsYyl7Yj1ifHwxO3ZhciBnLGQsZT10aGlzLm8ubSgpO2Q9ZS5nKmI7ZT1lLmUqYjt2YXIgZj10aGlzLmgucyxpPU1hdGguZmxvb3Isaj1NYXRoLmNlaWwsaz1hP2EuUCpiOjAsbT1hP2EuTypiOjAsbD1hP2EuSypiOjA7YT1hP2EuTSpiOjA7dmFyIHUsbixxLHQsdjtpZihjfHxmLmYoKSl7Zz10aGlzLnRiKGN8fGYuaigpKTtjPQpnLngudGwqYjtmPWcueS50bCpiO3U9Zy54LnRyKmI7bj1nLnkudHIqYjtxPWcueC5icipiO3Q9Zy55LmJyKmI7dj1nLnguYmwqYjtiPWcueS5ibCpiO2Q9Im0iK2koYSkrIiwiK2koZikrInF5IitpKGMpKyIsIitpKGspKyJsIitqKGQtdSkrIiwiK2koaykrInF4IitqKGQtbSkrIiwiK2kobikrImwiK2ooZC1tKSsiLCIraihlLXQpKyJxeSIraihkLXEpKyIsIitqKGUtbCkrImwiK2kodikrIiwiK2ooZS1sKSsicXgiK2koYSkrIiwiK2ooZS1iKSsiIHggZSJ9ZWxzZSBkPSJtIitpKGEpKyIsIitpKGspKyJsIitqKGQtbSkrIiwiK2koaykrImwiK2ooZC1tKSsiLCIraihlLWwpKyJsIitpKGEpKyIsIitqKGUtbCkrInhlIjtyZXR1cm4gZH0sdTpmdW5jdGlvbigpe3ZhciBhPXRoaXMucGFyZW50Lm1hKHRoaXMuQiksYjtpZighYSl7YT1kb2MuY3JlYXRlRWxlbWVudCh0aGlzLnphKTtiPWEuc3R5bGU7Yi5wb3NpdGlvbj0iYWJzb2x1dGUiO2IudG9wPWIubGVmdD0wO3RoaXMucGFyZW50LlFhKHRoaXMuQiwKYSl9cmV0dXJuIGF9LGs6ZnVuY3Rpb24oKXt0aGlzLnBhcmVudC5BYih0aGlzLkIpO2RlbGV0ZSB0aGlzLlBhO2RlbGV0ZSB0aGlzLmdhfX07aC5WYj1oLkEuVih7ZjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaWM7Zm9yKHZhciBiIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShiKSYmYVtiXS5mKCkpcmV0dXJuIHRydWU7cmV0dXJuIGZhbHNlfSxOOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaC5mYi5DKCl9LGRiOmZ1bmN0aW9uKCl7aWYodGhpcy5mKCkpe3ZhciBhPXRoaXMuc2IoKSxiPWEsYzthPWEuY3VycmVudFN0eWxlO3ZhciBnPWEucG9zaXRpb24sZD10aGlzLnUoKS5zdHlsZSxlPTAsZj0wO2Y9dGhpcy5vLm0oKTtpZihnPT09ImZpeGVkIiYmaC5EPjYpe2U9Zi54O2Y9Zi55O2I9Z31lbHNle2RvIGI9Yi5vZmZzZXRQYXJlbnQ7d2hpbGUoYiYmYi5jdXJyZW50U3R5bGUucG9zaXRpb249PT0ic3RhdGljIik7aWYoYil7Yz1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2I9Yi5jdXJyZW50U3R5bGU7CmU9Zi54LWMubGVmdC0ocGFyc2VGbG9hdChiLmJvcmRlckxlZnRXaWR0aCl8fDApO2Y9Zi55LWMudG9wLShwYXJzZUZsb2F0KGIuYm9yZGVyVG9wV2lkdGgpfHwwKX1lbHNle2I9ZG9jLmRvY3VtZW50RWxlbWVudDtlPWYueCtiLnNjcm9sbExlZnQtYi5jbGllbnRMZWZ0O2Y9Zi55K2Iuc2Nyb2xsVG9wLWIuY2xpZW50VG9wfWI9ImFic29sdXRlIn1kLnBvc2l0aW9uPWI7ZC5sZWZ0PWU7ZC50b3A9ZjtkLnpJbmRleD1nPT09InN0YXRpYyI/LTE6YS56SW5kZXg7dGhpcy5aYT10cnVlfX0sRWI6ZnVuY3Rpb24oKXt9LEZiOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oLmZiLmooKTt0aGlzLnUoKS5zdHlsZS5kaXNwbGF5PWEuVWMmJmEuc2M/IiI6Im5vbmUifSxEYjpmdW5jdGlvbigpe3RoaXMuZigpP3RoaXMuRmIoKTp0aGlzLmsoKX0sc2I6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQ7cmV0dXJuIGEudGFnTmFtZSBpbiBoLkNiP2Eub2Zmc2V0UGFyZW50OmF9LHU6ZnVuY3Rpb24oKXt2YXIgYT0KdGhpcy52YSxiO2lmKCFhKXtiPXRoaXMuc2IoKTthPXRoaXMudmE9ZG9jLmNyZWF0ZUVsZW1lbnQoImNzczMtY29udGFpbmVyIik7YS5zdHlsZS5kaXJlY3Rpb249Imx0ciI7dGhpcy5GYigpO2IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxiKX1yZXR1cm4gYX0sazpmdW5jdGlvbigpe3ZhciBhPXRoaXMudmEsYjtpZihhJiYoYj1hLnBhcmVudE5vZGUpKWIucmVtb3ZlQ2hpbGQoYSk7ZGVsZXRlIHRoaXMudmE7ZGVsZXRlIHRoaXMuZ2F9fSk7aC5MYj1oLkEuVih7QjoyLHphOiJiYWNrZ3JvdW5kIixOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkcuQygpfHxhLnMuQygpfSxmOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkwuZigpfHxhLnMuZigpfHxhLkcuZigpfHxhLlMuZigpJiZhLlMuaigpLlhhfSxUOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vLm0oKTtpZihhLmcmJmEuZSl7dGhpcy50YygpO3RoaXMudWMoKX19LHRjOmZ1bmN0aW9uKCl7dmFyIGE9CnRoaXMuaC5HLmooKSxiPXRoaXMuby5tKCksYz10aGlzLmQsZz1hJiZhLmNvbG9yLGQsZTtpZihnJiZnLmhhKCk+MCl7dGhpcy51YigpO2E9dGhpcy5uYSgiYmdDb2xvciIsImZpbGwiLHRoaXMudSgpLDEpO2Q9Yi5nO2I9Yi5lO2Euc3Ryb2tlZD1mYWxzZTthLmNvb3Jkc2l6ZT1kKjIrIiwiK2IqMjthLmNvb3Jkb3JpZ2luPSIxLDEiO2EucGF0aD10aGlzLmthKG51bGwsMik7ZT1hLnN0eWxlO2Uud2lkdGg9ZDtlLmhlaWdodD1iO2EuZmlsbC5jb2xvcj1nLnZhbHVlKGMpO2M9Zy5oYSgpO2lmKGM8MSlhLmZpbGwub3BhY2l0eT1jfWVsc2UgdGhpcy5TYSgiYmdDb2xvciIpfSx1YzpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5HLmooKSxiPXRoaXMuby5tKCk7YT1hJiZhLmltYWdlczt2YXIgYyxnLGQsZSxmO2lmKGEpe3RoaXMudWIoKTtnPWIuZztkPWIuZTtmb3IoZj1hLmxlbmd0aDtmLS07KXtiPWFbZl07Yz10aGlzLm5hKCJiZ0ltYWdlIitmLCJmaWxsIix0aGlzLnUoKSwyKTtjLnN0cm9rZWQ9CmZhbHNlO2MuZmlsbC50eXBlPSJ0aWxlIjtjLmZpbGxjb2xvcj0ibm9uZSI7Yy5jb29yZHNpemU9ZyoyKyIsIitkKjI7Yy5jb29yZG9yaWdpbj0iMSwxIjtjLnBhdGg9dGhpcy5rYSgwLDIpO2U9Yy5zdHlsZTtlLndpZHRoPWc7ZS5oZWlnaHQ9ZDtpZihiLnR5cGU9PT0ibGluZWFyLWdyYWRpZW50Iil0aGlzLmdjKGMsYik7ZWxzZXtjLmZpbGwuc3JjPWIudXJsO3RoaXMuSmMoYyxmKX19fWZvcihmPWE/YS5sZW5ndGg6MDt0aGlzLlNhKCJiZ0ltYWdlIitmKyspOyk7fSxKYzpmdW5jdGlvbihhLGIpe2gubi5JYihhLmZpbGwuc3JjLGZ1bmN0aW9uKGMpe3ZhciBnPWEuZmlsbCxkPXRoaXMuZCxlPXRoaXMuby5tKCksZj1lLmc7ZT1lLmU7dmFyIGk9dGhpcy5oLGo9aS5ILmooKSxrPWomJmouaGI7aj1rP2sudC5hKGQpOjA7dmFyIG09az9rLnIuYShkKTowLGw9az9rLmIuYShkKTowO2s9az9rLmwuYShkKTowO2k9aS5HLmooKS5pbWFnZXNbYl07ZD1pLnBvc2l0aW9uP2kucG9zaXRpb24uY29vcmRzKGQsCmYtYy5nLWstbSxlLWMuZS1qLWwpOnt4OjAseTowfTtpPWkucmVwZWF0O2w9bT0wO3ZhciB1PWYrMSxuPWUrMSxxPWguRD09PTg/MDoxO2s9TWF0aC5yb3VuZChkLngpK2srMC41O2o9TWF0aC5yb3VuZChkLnkpK2orMC41O2cucG9zaXRpb249ay9mKyIsIitqL2U7aWYoaSYmaSE9PSJyZXBlYXQiKXtpZihpPT09InJlcGVhdC14Inx8aT09PSJuby1yZXBlYXQiKXttPWorMTtuPWorYy5lK3F9aWYoaT09PSJyZXBlYXQteSJ8fGk9PT0ibm8tcmVwZWF0Iil7bD1rKzE7dT1rK2MuZytxfWEuc3R5bGUuY2xpcD0icmVjdCgiK20rInB4LCIrdSsicHgsIituKyJweCwiK2wrInB4KSJ9fSx0aGlzKX0sZ2M6ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKEEsQix5LEcsSCl7aWYoeT09PTB8fHk9PT0xODApcmV0dXJuW0csQl07ZWxzZSBpZih5PT09OTB8fHk9PT0yNzApcmV0dXJuW0EsSF07ZWxzZXt5PU1hdGgudGFuKC15KnUvMTgwKTtBPXkqQS1CO0I9LTEveTtHPUIqRy1IO0g9Qi15O3JldHVyblsoRy0KQSkvSCwoeSpHLUIqQSkvSF19fWZ1bmN0aW9uIGcoKXt4PW0+PTkwJiZtPDI3MD9qOjA7cj1tPDE4MD9rOjA7bz1qLXg7cz1rLXJ9ZnVuY3Rpb24gZCgpe2Zvcig7bTwwOyltKz0zNjA7bSU9MzYwfWZ1bmN0aW9uIGUoQSxCKXt2YXIgeT1CWzBdLUFbMF07QT1CWzFdLUFbMV07cmV0dXJuIE1hdGguYWJzKHk9PT0wP0E6QT09PTA/eTpNYXRoLnNxcnQoeSp5K0EqQSkpfXZhciBmPXRoaXMuZCxpPXRoaXMuby5tKCksaj1pLmcsaz1pLmU7YT1hLmZpbGw7dmFyIG09Yi5SYSxsPWIuVmE7Yj1iLlo7aT1iLmxlbmd0aDt2YXIgdT1NYXRoLlBJLG4scSx0LHYseCxyLG8scyxwLHosRSxDO2lmKGwpe2w9bC5jb29yZHMoZixqLGspO249bC54O3E9bC55fWlmKG0pe209bS5xYygpO2QoKTtnKCk7aWYoIWwpe249eDtxPXJ9bD1jKG4scSxtLG8scyk7dD1sWzBdO3Y9bFsxXX1lbHNlIGlmKGwpe3Q9ai1uO3Y9ay1xfWVsc2V7bj1xPXQ9MDt2PWt9bD10LW47cD12LXE7aWYobT09PXZvaWQgMCl7bT0hbD8KcDwwPzkwOjI3MDohcD9sPDA/MTgwOjA6LU1hdGguYXRhbjIocCxsKS91KjE4MDtkKCk7ZygpfWw9bSU5MD9NYXRoLmF0YW4yKGwqai9rLHApL3UqMTgwOm0rOTA7bCs9MTgwO2wlPTM2MDt6PWUoW24scV0sW3Qsdl0pO3Q9ZShbeCxyXSxjKHgscixtLG8scykpO3Y9W107cT1lKFtuLHFdLGMobixxLG0seCxyKSkvdCoxMDA7bj1bXTtmb3IocD0wO3A8aTtwKyspbi5wdXNoKGJbcF0ueWI/YltwXS55Yi5hKGYseik6cD09PTA/MDpwPT09aS0xP3o6bnVsbCk7Zm9yKHA9MTtwPGk7cCsrKXtpZihuW3BdPT09bnVsbCl7RT1uW3AtMV07ej1wO2RvIEM9blsrK3pdO3doaWxlKEM9PT1udWxsKTtuW3BdPUUrKEMtRSkvKHotcCsxKX1uW3BdPU1hdGgubWF4KG5bcF0sbltwLTFdKX1mb3IocD0wO3A8aTtwKyspdi5wdXNoKHErbltwXS90KjEwMCsiJSAiK2JbcF0uY29sb3IudmFsdWUoZikpO2EuYW5nbGU9bDthLnR5cGU9ImdyYWRpZW50IjthLm1ldGhvZD0ic2lnbWEiO2EuY29sb3I9YlswXS5jb2xvci52YWx1ZShmKTsKYS5jb2xvcjI9YltpLTFdLmNvbG9yLnZhbHVlKGYpO2EuY29sb3JzLnZhbHVlPXYuam9pbigiLCIpfSx1YjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZC5ydW50aW1lU3R5bGU7YS5iYWNrZ3JvdW5kSW1hZ2U9InVybChhYm91dDpibGFuaykiO2EuYmFja2dyb3VuZENvbG9yPSJ0cmFuc3BhcmVudCJ9LGs6ZnVuY3Rpb24oKXtoLkEuay5jYWxsKHRoaXMpO3ZhciBhPXRoaXMuZC5ydW50aW1lU3R5bGU7YS5iYWNrZ3JvdW5kSW1hZ2U9YS5iYWNrZ3JvdW5kQ29sb3I9IiJ9fSk7aC5QYj1oLkEuVih7Qjo0LHphOiJib3JkZXIiLGpjOntUQUJMRToxLElOUFVUOjEsVEVYVEFSRUE6MSxTRUxFQ1Q6MSxPUFRJT046MSxJTUc6MSxIUjoxLEZJRUxEU0VUOjF9LEVjOntzdWJtaXQ6MSxidXR0b246MSxyZXNldDoxfSxOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkguQygpfHxhLnMuQygpfSxmOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybihhLkwuZigpfHxhLnMuZigpfHxhLkcuZigpKSYmCmEuSC5mKCl9LFQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQsYj10aGlzLmguSC5qKCksYz10aGlzLm8ubSgpLGc9Yy5nO2M9Yy5lO3ZhciBkLGUsZixpLGo7aWYoYil7dGhpcy5DYygpO2I9dGhpcy53YygyKTtpPTA7Zm9yKGo9Yi5sZW5ndGg7aTxqO2krKyl7Zj1iW2ldO2Q9dGhpcy5uYSgiYm9yZGVyUGllY2UiK2ksZi5zdHJva2U/InN0cm9rZSI6ImZpbGwiLHRoaXMudSgpKTtkLmNvb3Jkc2l6ZT1nKjIrIiwiK2MqMjtkLmNvb3Jkb3JpZ2luPSIxLDEiO2QucGF0aD1mLnBhdGg7ZT1kLnN0eWxlO2Uud2lkdGg9ZztlLmhlaWdodD1jO2QuZmlsbGVkPSEhZi5maWxsO2Quc3Ryb2tlZD0hIWYuc3Ryb2tlO2lmKGYuc3Ryb2tlKXtkPWQuc3Ryb2tlO2Qud2VpZ2h0PWYuZ2IrInB4IjtkLmNvbG9yPWYuY29sb3IudmFsdWUoYSk7ZC5kYXNoc3R5bGU9Zi5zdHJva2U9PT0iZGFzaGVkIj8iMiAyIjpmLnN0cm9rZT09PSJkb3R0ZWQiPyIxIDEiOiJzb2xpZCI7ZC5saW5lc3R5bGU9Zi5zdHJva2U9PT0KImRvdWJsZSImJmYuZ2I+Mj8iVGhpblRoaW4iOiJTaW5nbGUifWVsc2UgZC5maWxsLmNvbG9yPWYuZmlsbC52YWx1ZShhKX1mb3IoO3RoaXMuU2EoImJvcmRlclBpZWNlIitpKyspOyk7fX0sQ2M6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQsYj1hLmN1cnJlbnRTdHlsZSxjPWEucnVudGltZVN0eWxlLGc9YS50YWdOYW1lLGQ9aC5EPT09NixlO2lmKGQmJmcgaW4gdGhpcy5qY3x8Zz09PSJCVVRUT04ifHxnPT09IklOUFVUIiYmYS50eXBlIGluIHRoaXMuRWMpe2MuYm9yZGVyV2lkdGg9IiI7Zz10aGlzLmguSC5CYjtmb3IoZT1nLmxlbmd0aDtlLS07KXtkPWdbZV07Y1sicGFkZGluZyIrZF09IiI7Y1sicGFkZGluZyIrZF09KG5ldyBoLmkoYlsicGFkZGluZyIrZF0pKS5hKGEpKyhuZXcgaC5pKGJbImJvcmRlciIrZCsiV2lkdGgiXSkpLmEoYSkrKCFoLkQ9PT04JiZlJTI/MTowKX1jLmJvcmRlcldpZHRoPTB9ZWxzZSBpZihkKXtpZihhLmNoaWxkTm9kZXMubGVuZ3RoIT09MXx8YS5maXJzdENoaWxkLnRhZ05hbWUhPT0KImllNi1tYXNrIil7Yj1kb2MuY3JlYXRlRWxlbWVudCgiaWU2LW1hc2siKTtnPWIuc3R5bGU7Zy52aXNpYmlsaXR5PSJ2aXNpYmxlIjtmb3IoZy56b29tPTE7Zz1hLmZpcnN0Q2hpbGQ7KWIuYXBwZW5kQ2hpbGQoZyk7YS5hcHBlbmRDaGlsZChiKTtjLnZpc2liaWxpdHk9ImhpZGRlbiJ9fWVsc2UgYy5ib3JkZXJDb2xvcj0idHJhbnNwYXJlbnQifSx3YzpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmQsYyxnLGQsZT10aGlzLmguSCxmPVtdLGksaixrLG0sbD1NYXRoLnJvdW5kLHUsbixxO2lmKGUuZigpKXtjPWUuaigpO2U9Yy5oYjtuPWMuUmM7cT1jLm1jO2lmKGMuV2MmJmMuU2MmJmMubmMpe2lmKHEudC5oYSgpPjApe2M9ZS50LmEoYik7az1jLzI7Zi5wdXNoKHtwYXRoOnRoaXMua2Eoe1A6ayxPOmssSzprLE06a30sYSksc3Ryb2tlOm4udCxjb2xvcjpxLnQsZ2I6Y30pfX1lbHNle2E9YXx8MTtjPXRoaXMuby5tKCk7Zz1jLmc7ZD1jLmU7Yz1sKGUudC5hKGIpKTtrPWwoZS5yLmEoYikpOwptPWwoZS5iLmEoYikpO2I9bChlLmwuYShiKSk7dmFyIHQ9e3Q6YyxyOmssYjptLGw6Yn07Yj10aGlzLmgucztpZihiLmYoKSl1PXRoaXMudGIoYi5qKCkpO2k9TWF0aC5mbG9vcjtqPU1hdGguY2VpbDt2YXIgdj1mdW5jdGlvbihvLHMpe3JldHVybiB1P3Vbb11bc106MH0seD1mdW5jdGlvbihvLHMscCx6LEUsQyl7dmFyIEE9digieCIsbyksQj12KCJ5IixvKSx5PW8uY2hhckF0KDEpPT09InIiO289by5jaGFyQXQoMCk9PT0iYiI7cmV0dXJuIEE+MCYmQj4wPyhDPyJhbCI6ImFlIikrKHk/aihnLUEpOmkoQSkpKmErIiwiKyhvP2ooZC1CKTppKEIpKSphKyIsIisoaShBKS1zKSphKyIsIisoaShCKS1wKSphKyIsIit6KjY1NTM1KyIsIisyOTQ5MDc1KihFPzE6LTEpOihDPyJtIjoibCIpKyh5P2ctczpzKSphKyIsIisobz9kLXA6cCkqYX0scj1mdW5jdGlvbihvLHMscCx6KXt2YXIgRT1vPT09InQiP2kodigieCIsInRsIikpKmErIiwiK2oocykqYTpvPT09InIiP2ooZy1zKSphKyIsIisKaSh2KCJ5IiwidHIiKSkqYTpvPT09ImIiP2ooZy12KCJ4IiwiYnIiKSkqYSsiLCIraShkLXMpKmE6aShzKSphKyIsIitqKGQtdigieSIsImJsIikpKmE7bz1vPT09InQiP2ooZy12KCJ4IiwidHIiKSkqYSsiLCIraihzKSphOm89PT0iciI/aihnLXMpKmErIiwiK2ooZC12KCJ5IiwiYnIiKSkqYTpvPT09ImIiP2kodigieCIsImJsIikpKmErIiwiK2koZC1zKSphOmkocykqYSsiLCIraSh2KCJ5IiwidGwiKSkqYTtyZXR1cm4gcD8oej8ibSIrbzoiIikrImwiK0U6KHo/Im0iK0U6IiIpKyJsIitvfTtiPWZ1bmN0aW9uKG8scyxwLHosRSxDKXt2YXIgQT1vPT09ImwifHxvPT09InIiLEI9dFtvXSx5LEc7aWYoQj4wJiZuW29dIT09Im5vbmUiJiZxW29dLmhhKCk+MCl7eT10W0E/bzpzXTtzPXRbQT9zOm9dO0c9dFtBP286cF07cD10W0E/cDpvXTtpZihuW29dPT09ImRhc2hlZCJ8fG5bb109PT0iZG90dGVkIil7Zi5wdXNoKHtwYXRoOngoeix5LHMsQys0NSwwLDEpK3goeiwwLDAsQywxLDApLApmaWxsOnFbb119KTtmLnB1c2goe3BhdGg6cihvLEIvMiwwLDEpLHN0cm9rZTpuW29dLGdiOkIsY29sb3I6cVtvXX0pO2YucHVzaCh7cGF0aDp4KEUsRyxwLEMsMCwxKSt4KEUsMCwwLEMtNDUsMSwwKSxmaWxsOnFbb119KX1lbHNlIGYucHVzaCh7cGF0aDp4KHoseSxzLEMrNDUsMCwxKStyKG8sQiwwLDApK3goRSxHLHAsQywwLDApKyhuW29dPT09ImRvdWJsZSImJkI+Mj94KEUsRy1pKEcvMykscC1pKHAvMyksQy00NSwxLDApK3IobyxqKEIvMyoyKSwxLDApK3goeix5LWkoeS8zKSxzLWkocy8zKSxDLDEsMCkrInggIit4KHosaSh5LzMpLGkocy8zKSxDKzQ1LDAsMSkrcihvLGkoQi8zKSwxLDApK3goRSxpKEcvMyksaShwLzMpLEMsMCwwKToiIikreChFLDAsMCxDLTQ1LDEsMCkrcihvLDAsMSwwKSt4KHosMCwwLEMsMSwwKSxmaWxsOnFbb119KX19O2IoInQiLCJsIiwiciIsInRsIiwidHIiLDkwKTtiKCJyIiwidCIsImIiLCJ0ciIsImJyIiwwKTtiKCJiIiwiciIsImwiLCJiciIsImJsIiwKLTkwKTtiKCJsIiwiYiIsInQiLCJibCIsInRsIiwtMTgwKX19cmV0dXJuIGZ9LGs6ZnVuY3Rpb24oKXtoLkEuay5jYWxsKHRoaXMpO3RoaXMuZC5ydW50aW1lU3R5bGUuYm9yZGVyQ29sb3I9IiJ9fSk7aC5OYj1oLkEuVih7Qjo1LEljOlsidCIsInRyIiwiciIsImJyIiwiYiIsImJsIiwibCIsInRsIiwiYyJdLE46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oLkwuQygpfSxmOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaC5MLmYoKX0sVDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5MLmooKSxiPXRoaXMuby5tKCk7dGhpcy51KCk7dmFyIGM9dGhpcy5kLGc9dGhpcy56YjtoLm4uSWIoYS5zcmMsZnVuY3Rpb24oZCl7ZnVuY3Rpb24gZSh4LHIsbyxzLHApe3g9Z1t4XS5zdHlsZTt4LndpZHRoPXI7eC5oZWlnaHQ9bzt4LmxlZnQ9czt4LnRvcD1wfWZ1bmN0aW9uIGYoeCxyLG8pe2Zvcih2YXIgcz0wLHA9eC5sZW5ndGg7czxwO3MrKylnW3hbc11dLmltYWdlZGF0YVtyXT1vfXZhciBpPWIuZyxqPQpiLmUsaz1hLndpZHRoLG09ay5QLmEoYyksbD1rLk8uYShjKSx1PWsuSy5hKGMpO2s9ay5NLmEoYyk7dmFyIG49YS5zbGljZSxxPW4uUC5hKGMpLHQ9bi5PLmEoYyksdj1uLksuYShjKTtuPW4uTS5hKGMpO2UoInRsIixrLG0sMCwwKTtlKCJ0IixpLWstbCxtLGssMCk7ZSgidHIiLGwsbSxpLWwsMCk7ZSgiciIsbCxqLW0tdSxpLWwsbSk7ZSgiYnIiLGwsdSxpLWwsai11KTtlKCJiIixpLWstbCx1LGssai11KTtlKCJibCIsayx1LDAsai11KTtlKCJsIixrLGotbS11LDAsbSk7ZSgiYyIsaS1rLWwsai1tLXUsayxtKTtmKFsidGwiLCJ0IiwidHIiXSwiY3JvcEJvdHRvbSIsKGQuZS1xKS9kLmUpO2YoWyJ0bCIsImwiLCJibCJdLCJjcm9wUmlnaHQiLChkLmctbikvZC5nKTtmKFsiYmwiLCJiIiwiYnIiXSwiY3JvcFRvcCIsKGQuZS12KS9kLmUpO2YoWyJ0ciIsInIiLCJiciJdLCJjcm9wTGVmdCIsKGQuZy10KS9kLmcpO2lmKGEucmVwZWF0LmViPT09InN0cmV0Y2giKXtmKFsibCIsInIiLCJjIl0sCiJjcm9wVG9wIixxL2QuZSk7ZihbImwiLCJyIiwiYyJdLCJjcm9wQm90dG9tIix2L2QuZSl9aWYoYS5yZXBlYXQuZT09PSJzdHJldGNoIil7ZihbInQiLCJiIiwiYyJdLCJjcm9wTGVmdCIsbi9kLmcpO2YoWyJ0IiwiYiIsImMiXSwiY3JvcFJpZ2h0Iix0L2QuZyl9Zy5jLnN0eWxlLmRpc3BsYXk9YS5maWxsPyIiOiJub25lIn0sdGhpcyl9LHU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnBhcmVudC5tYSh0aGlzLkIpLGIsYyxnLGQ9dGhpcy5JYyxlPWQubGVuZ3RoO2lmKCFhKXthPWRvYy5jcmVhdGVFbGVtZW50KCJib3JkZXItaW1hZ2UiKTtiPWEuc3R5bGU7Yi5wb3NpdGlvbj0iYWJzb2x1dGUiO3RoaXMuemI9e307Zm9yKGc9MDtnPGU7ZysrKXtjPXRoaXMuemJbZFtnXV09aC5uLkFhKCJyZWN0Iik7Yy5hcHBlbmRDaGlsZChoLm4uQWEoImltYWdlZGF0YSIpKTtiPWMuc3R5bGU7Yi5iZWhhdmlvcj0idXJsKCNkZWZhdWx0I1ZNTCkiO2IucG9zaXRpb249ImFic29sdXRlIjtiLnRvcD1iLmxlZnQ9CjA7Yy5pbWFnZWRhdGEuc3JjPXRoaXMuaC5MLmooKS5zcmM7Yy5zdHJva2VkPWZhbHNlO2MuZmlsbGVkPWZhbHNlO2EuYXBwZW5kQ2hpbGQoYyl9dGhpcy5wYXJlbnQuUWEodGhpcy5CLGEpfXJldHVybiBhfX0pO2guUmI9aC5BLlYoe0I6MSx6YToib3V0c2V0LWJveC1zaGFkb3ciLE46ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmg7cmV0dXJuIGEuUy5DKCl8fGEucy5DKCl9LGY6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmguUztyZXR1cm4gYS5mKCkmJmEuaigpLnBhWzBdfSxUOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh5LEcsSCx3LEQsRixJKXt5PWIubmEoInNoYWRvdyIreStHLCJmaWxsIixnLGYteSk7Rz15LmZpbGw7eS5jb29yZHNpemU9bSoyKyIsIitsKjI7eS5jb29yZG9yaWdpbj0iMSwxIjt5LnN0cm9rZWQ9ZmFsc2U7eS5maWxsZWQ9dHJ1ZTtHLmNvbG9yPUQudmFsdWUoYyk7aWYoRil7Ry50eXBlPSJncmFkaWVudHRpdGxlIjtHLmNvbG9yMj1HLmNvbG9yO0cub3BhY2l0eT0wfXkucGF0aD0KSTt2PXkuc3R5bGU7di5sZWZ0PUg7di50b3A9dzt2LndpZHRoPW07di5oZWlnaHQ9bDtyZXR1cm4geX12YXIgYj10aGlzLGM9dGhpcy5kLGc9dGhpcy51KCksZD10aGlzLmgsZT1kLlMuaigpLnBhO2Q9ZC5zLmooKTt2YXIgZj1lLmxlbmd0aCxpPWYsaixrPXRoaXMuby5tKCksbT1rLmcsbD1rLmU7az1oLkQ9PT04PzE6MDtmb3IodmFyIHU9WyJ0bCIsInRyIiwiYnIiLCJibCJdLG4scSx0LHYseCxyLG8scyxwLHosRSxDLEEsQjtpLS07KXtxPWVbaV07eD1xLlhjLmEoYyk7cj1xLlljLmEoYyk7aj1xLlBjLmEoYyk7bz1xLmJsdXIuYShjKTtxPXEuY29sb3I7cz0tai1vO2lmKCFkJiZvKWQ9aC5JYS5KYjtzPXRoaXMua2Eoe1A6cyxPOnMsSzpzLE06c30sMixkKTtpZihvKXtwPShqK28pKjIrbTt6PShqK28pKjIrbDtFPW8qMi9wO0M9byoyL3o7aWYoby1qPm0vMnx8by1qPmwvMilmb3Ioaj00O2otLTspe249dVtqXTtBPW4uY2hhckF0KDApPT09ImIiO0I9bi5jaGFyQXQoMSk9PT0iciI7Cm49YShpLG4seCxyLHEsbyxzKTt0PW4uZmlsbDt0LmZvY3VzcG9zaXRpb249KEI/MS1FOkUpKyIsIisoQT8xLUM6Qyk7dC5mb2N1c3NpemU9IjAsMCI7bi5zdHlsZS5jbGlwPSJyZWN0KCIrKChBP3ovMjowKStrKSsicHgsIisoQj9wOnAvMikrInB4LCIrKEE/ejp6LzIpKyJweCwiKygoQj9wLzI6MCkraykrInB4KSJ9ZWxzZXtuPWEoaSwiIix4LHIscSxvLHMpO3Q9bi5maWxsO3QuZm9jdXNwb3NpdGlvbj1FKyIsIitDO3QuZm9jdXNzaXplPTEtRSoyKyIsIisoMS1DKjIpfX1lbHNle249YShpLCIiLHgscixxLG8scyk7eD1xLmhhKCk7aWYoeDwxKW4uZmlsbC5vcGFjaXR5PXh9fX19KTtoLlViPWguQS5WKHtCOjYsemE6ImltZ0VsIixOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiB0aGlzLmQuc3JjIT09dGhpcy5hY3x8YS5zLkMoKX0sZjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaDtyZXR1cm4gYS5zLmYoKXx8YS5HLnhiKCl9LFQ6ZnVuY3Rpb24oKXt0aGlzLmFjPWY7dGhpcy5CYygpOwp2YXIgYT10aGlzLm5hKCJpbWciLCJmaWxsIix0aGlzLnUoKSksYj1hLmZpbGwsYz10aGlzLm8ubSgpLGc9Yy5nO2M9Yy5lO3ZhciBkPXRoaXMuaC5ILmooKTtkPWQmJmQuaGI7dmFyIGU9dGhpcy5kLGY9ZS5zcmMsaT1NYXRoLnJvdW5kO2Euc3Ryb2tlZD1mYWxzZTtiLnR5cGU9ImZyYW1lIjtiLnNyYz1mO2IucG9zaXRpb249KGc/MC41L2c6MCkrIiwiKyhjPzAuNS9jOjApO2EuY29vcmRzaXplPWcqMisiLCIrYyoyO2EuY29vcmRvcmlnaW49IjEsMSI7YS5wYXRoPXRoaXMua2EoZD97UDppKGQudC5hKGUpKSxPOmkoZC5yLmEoZSkpLEs6aShkLmIuYShlKSksTTppKGQubC5hKGUpKX06MCwyKTthPWEuc3R5bGU7YS53aWR0aD1nO2EuaGVpZ2h0PWN9LEJjOmZ1bmN0aW9uKCl7dGhpcy5kLnJ1bnRpbWVTdHlsZS5maWx0ZXI9ImFscGhhKG9wYWNpdHk9MCkifSxrOmZ1bmN0aW9uKCl7aC5BLmsuY2FsbCh0aGlzKTt0aGlzLmQucnVudGltZVN0eWxlLmZpbHRlcj0iIn19KTtoLkthPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShmKXtmdW5jdGlvbiBpKCl7aWYoIUIpe3ZhciB3LApELEY9Zi5jdXJyZW50U3R5bGUuZ2V0QXR0cmlidXRlKGMpPT09InRydWUiO2lmKCFBKXtBPTE7Zi5ydW50aW1lU3R5bGUuem9vbT0xO2Zvcih2YXIgST1mLE09MTtJPUkucHJldmlvdXNTaWJsaW5nOylpZihJLm5vZGVUeXBlPT09MSl7TT0wO2JyZWFrfWlmKE0pZi5jbGFzc05hbWUrPSIgIitoLkphKyJmaXJzdC1jaGlsZCJ9cC5EYSgpO2lmKEYmJihEPXAubSgpKSYmKHc9ZG9jLmRvY3VtZW50RWxlbWVudHx8ZG9jLmJvZHkpJiYoRC55PncuY2xpZW50SGVpZ2h0fHxELng+dy5jbGllbnRXaWR0aHx8RC55K0QuZTwwfHxELngrRC5nPDApKXtpZighRyl7Rz0xO2guTWEuWChpKX19ZWxzZXtCPTE7Rz1BPTA7aC5NYS5HYShpKTt6PXtHOm5ldyBoLk1iKGYpLEg6bmV3IGguUWIoZiksTDpuZXcgaC5PYihmKSxzOm5ldyBoLklhKGYpLFM6bmV3IGguU2IoZiksZmI6bmV3IGguWGIoZil9O0U9W3ouRyx6Lkgsei5MLHoucyx6LlMsei5mYl07dz1uZXcgaC5WYihmLHAseik7RD1bbmV3IGguUmIoZiwKcCx6LHcpLG5ldyBoLkxiKGYscCx6LHcpLG5ldyBoLlBiKGYscCx6LHcpLG5ldyBoLk5iKGYscCx6LHcpXTtmLnRhZ05hbWU9PT0iSU1HIiYmRC5wdXNoKG5ldyBoLlViKGYscCx6LHcpKTt3LmljPUQ7cz1bd10uY29uY2F0KEQpO2lmKHc9Zi5jdXJyZW50U3R5bGUuZ2V0QXR0cmlidXRlKGguSSsid2F0Y2gtYW5jZXN0b3JzIikpe0M9W107dz1wYXJzZUludCh3LDEwKTtEPTA7Zm9yKEY9Zi5wYXJlbnROb2RlO0YmJih3PT09Ik5hTiJ8fEQrKzx3KTspe0MucHVzaChGKTtGLmF0dGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIix0KTtGLmF0dGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO0YuYXR0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSk7Rj1GLnBhcmVudE5vZGV9fWguV2E9PT04JiZoLkxhLlgoayk7aygxKX1pZigheSl7eT0xO2YuYXR0YWNoRXZlbnQoIm9ubW92ZSIsaik7Zi5hdHRhY2hFdmVudCgib25yZXNpemUiLGopO2YuYXR0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLAptKTtmLmF0dGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO2YuYXR0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSk7aC50YS5YKGopO2guRi5YKHIpfXAuRmEoKX19ZnVuY3Rpb24gaigpe3AmJnAuemMoKSYmaygpfWZ1bmN0aW9uIGsodyl7aWYoIUgpaWYoQil7dmFyIEQsRjt2KCk7aWYod3x8cC5LYygpKXtEPTA7Zm9yKEY9cy5sZW5ndGg7RDxGO0QrKylzW0RdLmRiKCl9aWYod3x8cC5OYygpKXtEPTA7Zm9yKEY9cy5sZW5ndGg7RDxGO0QrKylzW0RdLkViKCl9eCgpfWVsc2UgQXx8aSgpfWZ1bmN0aW9uIG0oKXt2YXIgdyxELEY7dz1ldmVudDtpZighSCYmISh3JiZ3LnByb3BlcnR5TmFtZSBpbiBlKSlpZihCKXt2KCk7dz0wO2ZvcihEPXMubGVuZ3RoO3c8RDt3Kyspe0Y9c1t3XTtGLlphfHxGLmRiKCk7Ri5OKCkmJkYuRGIoKX14KCl9ZWxzZSBBfHxpKCl9ZnVuY3Rpb24gbCgpe2lmKGYpZi5jbGFzc05hbWUrPWd9ZnVuY3Rpb24gdSgpe2lmKGYpZi5jbGFzc05hbWU9Zi5jbGFzc05hbWUucmVwbGFjZShkLAoiIil9ZnVuY3Rpb24gbigpe3NldFRpbWVvdXQobCwwKX1mdW5jdGlvbiBxKCl7c2V0VGltZW91dCh1LDApfWZ1bmN0aW9uIHQoKXt2YXIgdz1ldmVudC5wcm9wZXJ0eU5hbWU7aWYodz09PSJjbGFzc05hbWUifHx3PT09ImlkIiltKCl9ZnVuY3Rpb24gdigpe3AuRGEoKTtmb3IodmFyIHc9RS5sZW5ndGg7dy0tOylFW3ddLkRhKCl9ZnVuY3Rpb24geCgpe2Zvcih2YXIgdz1FLmxlbmd0aDt3LS07KUVbd10uRmEoKTtwLkZhKCl9ZnVuY3Rpb24gcigpe2lmKHkpe2lmKEMpZm9yKHZhciB3PTAsRD1DLmxlbmd0aCxGO3c8RDt3Kyspe0Y9Q1t3XTtGLmRldGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIix0KTtGLmRldGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO0YuZGV0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSl9Zi5kZXRhY2hFdmVudCgib25tb3ZlIixrKTtmLmRldGFjaEV2ZW50KCJvbnJlc2l6ZSIsayk7Zi5kZXRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsbSk7Zi5kZXRhY2hFdmVudCgib25tb3VzZWVudGVyIiwKbik7Zi5kZXRhY2hFdmVudCgib25tb3VzZWxlYXZlIixxKTtoLkYuR2Eocik7eT0wfX1mdW5jdGlvbiBvKCl7aWYoIUgpe3ZhciB3LEQ7cigpO0g9MTtpZihzKXt3PTA7Zm9yKEQ9cy5sZW5ndGg7dzxEO3crKylzW3ddLmsoKX1oLldhPT09OCYmaC5MYS5HYShrKTtoLnRhLkdhKGspO3M9cD16PUU9Qz1mPW51bGx9fXZhciBzLHA9bmV3IEsoZikseixFLEMsQSxCLHksRyxIO3RoaXMuRGM9aTt0aGlzLnVwZGF0ZT1rO3RoaXMuaz1vO3RoaXMudmM9Zn12YXIgYj17fSxjPWguSSsibGF6eS1pbml0IixnPSIgIitoLkphKyJob3ZlciIsZD1uZXcgUmVnRXhwKCJcXGIiK2guSmErImhvdmVyXFxiIiwiZyIpLGU9e2JhY2tncm91bmQ6MSxiZ0NvbG9yOjEsZGlzcGxheToxfTthLnhjPWZ1bmN0aW9uKGYpe3ZhciBpPWgubi5vYShmKTtyZXR1cm4gYltpXXx8KGJbaV09bmV3IGEoZikpfTthLms9ZnVuY3Rpb24oZil7Zj1oLm4ub2EoZik7dmFyIGk9YltmXTtpZihpKXtpLmsoKTtkZWxldGUgYltmXX19OwphLnJjPWZ1bmN0aW9uKCl7dmFyIGY9W10saTtpZihiKXtmb3IodmFyIGogaW4gYilpZihiLmhhc093blByb3BlcnR5KGopKXtpPWJbal07Zi5wdXNoKGkudmMpO2kuaygpfWI9e319cmV0dXJuIGZ9O3JldHVybiBhfSgpO2guYXR0YWNoPWZ1bmN0aW9uKGEpe2guRDw5JiZoLkthLnhjKGEpLkRjKCl9O2guZGV0YWNoPWZ1bmN0aW9uKGEpe2guS2EuayhhKX19Owp2YXIgTD13aW5kb3cuUElFLE49ZWxlbWVudDtmdW5jdGlvbiBpbml0KCl7ZG9jLm1lZGlhIT09InByaW50IiYmTC5hdHRhY2goTil9ZnVuY3Rpb24gY2xlYW51cCgpe0wuZGV0YWNoKE4pO0w9Tj0wfU4ucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSImJmluaXQoKTsKPC9zY3JpcHQ+CjwvUFVCTElDOkNPTVBPTkVOVD4K);font-size: 12px;font-family: Trebuchet MS, sans-serif;text-transform: uppercase;font-weight: bold;color: #fff;border-bottom:1px solid #c1c1c1;padding-bottom: 1px;}.title-square {float:left;width: 12px;height: 12px;margin: 1px 6px 0 0;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjMxRTA2RDQ5QkU5NDExRTA4NTk0RTRGRjc0MkQ0MTFEIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjMxRTA2RDRBQkU5NDExRTA4NTk0RTRGRjc0MkQ0MTFEIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MzFFMDZENDdCRTk0MTFFMDg1OTRFNEZGNzQyRDQxMUQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MzFFMDZENDhCRTk0MTFFMDg1OTRFNEZGNzQyRDQxMUQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4llVeHAAAA+0lEQVR42myQPW6GMAyG7SRqxVIxVEzcgI0D9BZUqlDvVHXkLh2ROAE7Hai6VGL7IP6pISyfhIdY9vvmsRNsmqau6yzL4CqmaRrHMZijbdsQwqVpWZau60JVVUVR/H58Xpqe3tuyLE/AX9/H7xlRVVFREBEEn99ekxysbcmt5IhIWEJABSckCEhikhlOUhS+cbSO20RU1EhWCCU14FHjdtMtildm8A7sBGeg+JhIadwKssrmFUHNaIKwLchyklJiNp6Luw94b6jfQNTf7SSqZIvgA8FxW5G9PTLekV76L9hHGw7sdTYWgawz/8w7aRgGM+V5fvmZwxH/AgwAeEqTNXbpO5gAAAAASUVORK5CYII=) no-repeat;}.box-title {margin-bottom: 0px;}.box-title .title {margin: 6px 0 0 9px;}.news-item {margin: 0 7px;padding: 7px 0px 7px;border-bottom: 1px solid #ccc;overflow: hidden;}.news-item:last-child {border-bottom: none;}.news-pic {float: left;margin: 5px 15px 10px 0;}.news-item-title a {font-size: 15px;font-weight: bold;text-decoration: none;}.news-item-title a:hover {text-decoration:none !important;}.news-item-text {font-size: 13px;margin-top: 4px;}.news-item-date {float:left;color: #3E3E3E;font-size: 12px;margin-top: 4px;overflow: hidden;}.news-item-comment {float:right;color:#fff;text-align: center;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAARCAYAAADHeGwwAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkNGQkQ1MDQ4MDk2MjExRTE4MkY2RjM1QjkwRkNFRkM5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkNGQkQ1MDQ5MDk2MjExRTE4MkY2RjM1QjkwRkNFRkM5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Q0ZCRDUwNDYwOTYyMTFFMTgyRjZGMzVCOTBGQ0VGQzkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Q0ZCRDUwNDcwOTYyMTFFMTgyRjZGMzVCOTBGQ0VGQzkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5UtnCUAAAAvUlEQVR42mJMS0tjgAJ1IA4HYmkGysAXIN4BxLtBHBaoYCAQLwViTgbqgCIgngjEBUxAgh+I51DRcBjIB2IPkAX2QCzEQBsQCLKAh4F2gIeJgcZg1ILBYcFrGpr/GmTBQSC+TAPDfwHxdCYoIwKIb1LR8I9AHA0yE1YWXQNiQyA2gxZ6pABQ4VgHxGeBeBYQPwXiU7CgZ0FS+B0aXAdJtCAKapg/1HCqpyJjIA7FZji6D8gF64H4CC5JgAADAOaNIA6pBPGEAAAAAElFTkSuQmCC) no-repeat;width:24px;height:17px;font-size: 12px;line-height: 14px;margin-top:5px;}.news-item-categories {float:right;text-transform: uppercase;line-height: 13px;margin-right:10px;margin-top:5px;}.news-item-categories a {color:#414141;}.news {margin-top:6px;}.news-single {padding:15px; font-size: 13px;font-family: Trebuchet MS, sans-serif;}.news-single h1 {color: #A32326;margin-top:0;font-size: 15px;font-family: Trebuchet MS, sans-serif;}.news-single .mainimage, .conference .mainimage {margin-right:13px;max-width: 60%;margin-top:3px;}.news-single .metainfo {color:#414141;font-size: 12px;text-transform: uppercase;}.news-gallery {width: 577px;border-top:3px dotted #8a8a8a;border-bottom:3px dotted #8a8a8a;margin: 5px 0 20px;min-height: 124px;overflow: hidden;}.news-gall-ul {list-style: none;width:585px;display:block;margin-top:4px;}.to-gallery {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAIAAACkr0LiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjEwN0QwMkY3QkY2NjExRTBCRjRCRDlCMjA4MjZEQThBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjEwN0QwMkY4QkY2NjExRTBCRjRCRDlCMjA4MjZEQThBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTA3RDAyRjVCRjY2MTFFMEJGNEJEOUIyMDgyNkRBOEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTA3RDAyRjZCRjY2MTFFMEJGNEJEOUIyMDgyNkRBOEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7I0X4EAAAAeklEQVR42mL8//8/AxL48+cPCwsLlPMfFbS1tZ08eRLCZnzx4sW8efMePHiArFtBQSEhIYFl7dq1QAkTExNOTk6g6KlTp4Ckvr6+iIgIy5s3b5SUlFJTUyE6eHl5HR0d+fj4gGyQtUxMTHDT/P394WwmBtwAnxxAgAEA+uk2f4aQEcwAAAAASUVORK5CYII=) no-repeat scroll right center transparent;color: #414141;float: right;font-size: 10px;margin-right: 4px;padding-right: 14px;padding-top: 1px;margin-top: -2px;}.news-gall-li {list-style: none;float: left;}.news-photo-item {margin-right:7px;}.conference-body {clear:both; overflow: hidden; padding:0 10px 0 10px;}.conference-container {padding-left: 10px;padding-right:10px;}.conference img {}.conference h1 {color:#414141;font-size: 18px;font-family: Trebuchet MS, sans-serif;text-transform: uppercase;}.labeldiv_conf_approve {float:left;}.news-nav {clear: both;}.news-nav a, .news-nav span {text-decoration: none;border: 1px solid #BFBFBF;padding: 3px 5px;margin: 2px;}.news-nav a:hover, .news-nav span.current {}.news-nav span.current {font-weight: bold;}.box-footer {width: 609px;height: 24px;margin: 1px 0 1px 1px;border-top: 1px solid #6f6f6f;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAdCAIAAADkY5E+AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjI2QkJBQTVEQkU5QjExRTA5OEYzRkMwMDU0OENDM0E5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjI2QkJBQTVFQkU5QjExRTA5OEYzRkMwMDU0OENDM0E5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjZCQkFBNUJCRTlCMTFFMDk4RjNGQzAwNTQ4Q0MzQTkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjZCQkFBNUNCRTlCMTFFMDk4RjNGQzAwNTQ4Q0MzQTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7Sw+1BAAAALklEQVR42mJ4+PAhEwMDAxj/+/ePiZGREcz+//8/XBzGxiUGw8h8bGqgegECDADElCm1MfYAIwAAAABJRU5ErkJggg==) repeat-x bottom;-moz-border-radius:0 0 7px 7px; -webkit-border-radius: 0 0 7px 7px; border-radius: 0 0 7px 7px; behavior: url(data:image/htc;base64,PCEtLQpQSUU6IENTUzMgcmVuZGVyaW5nIGZvciBJRQpWZXJzaW9uIDEuMGJldGEzCmh0dHA6Ly9jc3MzcGllLmNvbQpEdWFsLWxpY2Vuc2VkIGZvciB1c2UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wIG9yIHRoZSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMi4KLS0+CjwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwMTQpYWJvdXQ6aW50ZXJuZXQgLS0+CjxQVUJMSUM6Q09NUE9ORU5UIGxpZ2h0V2VpZ2h0PSJ0cnVlIj4KPFBVQkxJQzpBVFRBQ0ggRVZFTlQ9Im9uY29udGVudHJlYWR5IiBGT1I9ImVsZW1lbnQiIE9ORVZFTlQ9ImluaXQoKSIgLz4KPFBVQkxJQzpBVFRBQ0ggRVZFTlQ9Im9uZG9jdW1lbnRyZWFkeSIgRk9SPSJlbGVtZW50IiBPTkVWRU5UPSJpbml0KCkiIC8+CjxQVUJMSUM6QVRUQUNIIEVWRU5UPSJvbmRldGFjaCIgRk9SPSJlbGVtZW50IiBPTkVWRU5UPSJjbGVhbnVwKCkiIC8+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBkb2MgPSBlbGVtZW50LmRvY3VtZW50O3ZhciBoPXdpbmRvdy5QSUU7CmlmKCFoKXtoPXdpbmRvdy5QSUU9e0k6Ii1waWUtIixOYToiUGllIixKYToicGllXyIsQ2I6e1REOjEsVEg6MX19O3RyeXtkb2MuZXhlY0NvbW1hbmQoIkJhY2tncm91bmRJbWFnZUNhY2hlIixmYWxzZSx0cnVlKX1jYXRjaChKKXt9aC5EPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPTQsYj1kb2MuY3JlYXRlRWxlbWVudCgiZGl2IiksYz1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpIik7Yi5pbm5lckhUTUw9IjwhLS1baWYgZ3QgSUUgIisgKythKyJdPjxpPjwvaT48IVtlbmRpZl0tLVw+IixjWzBdOyk7cmV0dXJuIGF9KCk7aWYoaC5EPT09NiloLkk9aC5JLnJlcGxhY2UoL14tLywiIik7aC5XYT1oLkQ9PT04JiZkb2MuZG9jdW1lbnRNb2RlO2gubj17QWE6ZnVuY3Rpb24oYSl7dmFyIGI9aC5mYztpZighYil7Yj1oLmZjPWRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yi5uYW1lc3BhY2VzLmFkZCgiY3NzM3ZtbCIsInVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIil9cmV0dXJuIGIuY3JlYXRlRWxlbWVudCgiY3NzM3ZtbDoiK2EpfSwKb2E6ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEuX3BpZUlkfHwoYS5fcGllSWQ9K25ldyBEYXRlK01hdGgucmFuZG9tKCkpfSwkYTpmdW5jdGlvbihhKXt2YXIgYixjLGcsZCxlPWFyZ3VtZW50cztiPTE7Zm9yKGM9ZS5sZW5ndGg7YjxjO2IrKyl7ZD1lW2JdO2ZvcihnIGluIGQpaWYoZC5oYXNPd25Qcm9wZXJ0eShnKSlhW2ddPWRbZ119cmV0dXJuIGF9LEliOmZ1bmN0aW9uKGEsYixjKXt2YXIgZz1oLlpifHwoaC5aYj17fSksZD1nW2FdLGU7aWYoZCliLmNhbGwoYyxkKTtlbHNle2U9bmV3IEltYWdlO2Uub25sb2FkPWZ1bmN0aW9uKCl7ZD1nW2FdPXtnOmUud2lkdGgsZTplLmhlaWdodH07Yi5jYWxsKGMsZCk7ZS5vbmxvYWQ9bnVsbH07ZS5zcmM9YX19fTtoLmVhPWZ1bmN0aW9uKCl7dGhpcy5iYj1bXTt0aGlzLndiPXt9fTtoLmVhLnByb3RvdHlwZT17WDpmdW5jdGlvbihhKXt2YXIgYj1oLm4ub2EoYSksYz10aGlzLndiLGc9dGhpcy5iYjtpZighKGIgaW4gYykpe2NbYl09Zy5sZW5ndGg7CmcucHVzaChhKX19LEdhOmZ1bmN0aW9uKGEpe2E9aC5uLm9hKGEpO3ZhciBiPXRoaXMud2I7aWYoYSYmYSBpbiBiKXtkZWxldGUgdGhpcy5iYltiW2FdXTtkZWxldGUgYlthXX19LENhOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMuYmIsYj1hLmxlbmd0aDtiLS07KWFbYl0mJmFbYl0oKX19O2lmKGguV2E9PT04KXtoLkxhPW5ldyBoLmVhO3NldEludGVydmFsKGZ1bmN0aW9uKCl7aC5MYS5DYSgpfSwyNTApfWguRj1uZXcgaC5lYTt3aW5kb3cuYXR0YWNoRXZlbnQoIm9uYmVmb3JldW5sb2FkIixmdW5jdGlvbigpe2guRi5DYSgpfSk7aC5GLnlhPWZ1bmN0aW9uKGEsYixjKXthLmF0dGFjaEV2ZW50KGIsYyk7dGhpcy5YKGZ1bmN0aW9uKCl7YS5kZXRhY2hFdmVudChiLGMpfSl9OyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtoLnRhLkNhKCl9aC50YT1uZXcgaC5lYTtoLkYueWEod2luZG93LCJvbnJlc2l6ZSIsYSl9KSgpOyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtoLk1hLkNhKCl9aC5NYT0KbmV3IGguZWE7aC5GLnlhKHdpbmRvdywib25zY3JvbGwiLGEpO2gudGEuWChhKX0pKCk7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2M9aC5LYS5yYygpfWZ1bmN0aW9uIGIoKXtpZihjKXtmb3IodmFyIGc9MCxkPWMubGVuZ3RoO2c8ZDtnKyspaC5hdHRhY2goY1tnXSk7Yz0wfX12YXIgYztoLkYueWEod2luZG93LCJvbmJlZm9yZXByaW50IixhKTtoLkYueWEod2luZG93LCJvbmFmdGVycHJpbnQiLGIpfSkoKTtoLmk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGUpe3RoaXMudz1lfXZhciBiPWRvYy5jcmVhdGVFbGVtZW50KCJsZW5ndGgtY2FsYyIpLGM9Yi5zdHlsZSxnPXt9LGQ9e307Yy5wb3NpdGlvbj0iYWJzb2x1dGUiO2MudG9wPWMubGVmdD0tOTk5OTthLnByb3RvdHlwZT17Y2I6LyhweHxlbXxleHxtbXxjbXxpbnxwdHxwY3wlKSQvLHJiOmZ1bmN0aW9uKCl7dmFyIGU9Z1t0aGlzLnddO2lmKGU9PT12b2lkIDApZT1nW3RoaXMud109cGFyc2VGbG9hdCh0aGlzLncpO3JldHVybiBlfSwKVWE6ZnVuY3Rpb24oKXt2YXIgZT1kW3RoaXMud107aWYoIWUpe2U9dGhpcy53Lm1hdGNoKHRoaXMuY2IpO2U9ZFt0aGlzLnddPWUmJmVbMF18fCJweCJ9cmV0dXJuIGV9LGE6ZnVuY3Rpb24oZSxmKXt2YXIgaT10aGlzLnJiKCksaj10aGlzLlVhKCk7c3dpdGNoKGope2Nhc2UgInB4IjpyZXR1cm4gaTtjYXNlICIlIjpyZXR1cm4gaSoodHlwZW9mIGY9PT0iZnVuY3Rpb24iP2YoKTpmKS8xMDA7Y2FzZSAiZW0iOnJldHVybiBpKnRoaXMucGIoZSk7Y2FzZSAiZXgiOnJldHVybiBpKnRoaXMucGIoZSkvMjtkZWZhdWx0OnJldHVybiBpKmEub2Nbal19fSxwYjpmdW5jdGlvbihlKXt2YXIgZj1lLmN1cnJlbnRTdHlsZS5mb250U2l6ZTtpZihmLmluZGV4T2YoInB4Iik+MClyZXR1cm4gcGFyc2VGbG9hdChmKTtlbHNle2Iuc3R5bGUud2lkdGg9IjFlbSI7ZS5hcHBlbmRDaGlsZChiKTtmPWIub2Zmc2V0V2lkdGg7Yi5wYXJlbnROb2RlIT09ZSYmZS5yZW1vdmVDaGlsZChiKTtyZXR1cm4gZn19fTsKYS5vYz1mdW5jdGlvbigpe3ZhciBlPVsibW0iLCJjbSIsImluIiwicHQiLCJwYyJdLGY9e30saT1kb2MuZG9jdW1lbnRFbGVtZW50LGo9ZS5sZW5ndGgsaztmb3IoaS5hcHBlbmRDaGlsZChiKTtqLS07KXtrPWVbal07Yi5zdHlsZS53aWR0aD0iMTAwIitrO2Zba109Yi5vZmZzZXRXaWR0aC8xMDB9aS5yZW1vdmVDaGlsZChiKTtyZXR1cm4gZn0oKTthLmxiPW5ldyBhKCIwIik7cmV0dXJuIGF9KCk7aC5IYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoZCl7dGhpcy5RPWR9dmFyIGI9bmV3IGguaSgiNTAlIiksYz17dG9wOjEsY2VudGVyOjEsYm90dG9tOjF9LGc9e2xlZnQ6MSxjZW50ZXI6MSxyaWdodDoxfTthLnByb3RvdHlwZT17eWM6ZnVuY3Rpb24oKXtpZighdGhpcy5vYil7dmFyIGQ9dGhpcy5RLGU9ZC5sZW5ndGgsZj1oLmkubGIsaT1oLnEuZmEuYmE7Zj1bImxlZnQiLGYsInRvcCIsZl07aWYoZT09PTEpe2QucHVzaCh7dHlwZTppLHZhbHVlOiJjZW50ZXIifSk7ZSsrfWlmKGU9PT0yKXtpJgooZFswXS50eXBlfGRbMV0udHlwZSkmJmRbMF0udmFsdWUgaW4gYyYmZFsxXS52YWx1ZSBpbiBnJiZkLnB1c2goZC5zaGlmdCgpKTtpZihkWzBdLnR5cGUmaSlpZihkWzBdLnZhbHVlPT09ImNlbnRlciIpZlsxXT1iO2Vsc2UgZlswXT1kWzBdLnZhbHVlO2Vsc2UgaWYoZFswXS5VKCkpZlsxXT1uZXcgaC5pKGRbMF0udmFsdWUpO2lmKGRbMV0udHlwZSZpKWlmKGRbMV0udmFsdWU9PT0iY2VudGVyIilmWzNdPWI7ZWxzZSBmWzJdPWRbMV0udmFsdWU7ZWxzZSBpZihkWzFdLlUoKSlmWzNdPW5ldyBoLmkoZFsxXS52YWx1ZSl9dGhpcy5vYj1mfXJldHVybiB0aGlzLm9ifSxjb29yZHM6ZnVuY3Rpb24oZCxlLGYpe3ZhciBpPXRoaXMueWMoKSxqPWlbMV0uYShkLGUpO2Q9aVszXS5hKGQsZik7cmV0dXJue3g6aVswXT09PSJyaWdodCI/ZS1qOmoseTppWzJdPT09ImJvdHRvbSI/Zi1kOmR9fX07cmV0dXJuIGF9KCk7aC5LYj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7dGhpcy53PWJ9YS5wcm90b3R5cGU9CntjYjovW2Etel0rJC9pLFVhOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWN8fCh0aGlzLmVjPXRoaXMudy5tYXRjaCh0aGlzLmNiKVswXS50b0xvd2VyQ2FzZSgpKX0scWM6ZnVuY3Rpb24oKXt2YXIgYj10aGlzLlliLGM7aWYoYj09PXVuZGVmaW5lZCl7Yj10aGlzLlVhKCk7Yz1wYXJzZUZsb2F0KHRoaXMudywxMCk7Yj10aGlzLlliPWI9PT0iZGVnIj9jOmI9PT0icmFkIj9jL01hdGguUEkqMTgwOmI9PT0iZ3JhZCI/Yy80MDAqMzYwOmI9PT0idHVybiI/YyozNjA6MH1yZXR1cm4gYn19O3JldHVybiBhfSgpO2guUj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7dGhpcy53PWJ9YS5NYz0vXHMqcmdiYVwoXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSlccyosXHMqKFxkK3xcZCpcLlxkKylccypcKVxzKi87YS5hYj17YWxpY2VibHVlOiIjRjBGOEZGIixhbnRpcXVld2hpdGU6IiNGQUVCRDciLGFxdWE6IiMwMEZGRkYiLGFxdWFtYXJpbmU6IiM3RkZGRDQiLAphenVyZToiI0YwRkZGRiIsYmVpZ2U6IiNGNUY1REMiLGJpc3F1ZToiI0ZGRTRDNCIsYmxhY2s6IiMwMDAwMDAiLGJsYW5jaGVkYWxtb25kOiIjRkZFQkNEIixibHVlOiIjMDAwMEZGIixibHVldmlvbGV0OiIjOEEyQkUyIixicm93bjoiI0E1MkEyQSIsYnVybHl3b29kOiIjREVCODg3IixjYWRldGJsdWU6IiM1RjlFQTAiLGNoYXJ0cmV1c2U6IiM3RkZGMDAiLGNob2NvbGF0ZToiI0QyNjkxRSIsY29yYWw6IiNGRjdGNTAiLGNvcm5mbG93ZXJibHVlOiIjNjQ5NUVEIixjb3Juc2lsazoiI0ZGRjhEQyIsY3JpbXNvbjoiI0RDMTQzQyIsY3lhbjoiIzAwRkZGRiIsZGFya2JsdWU6IiMwMDAwOEIiLGRhcmtjeWFuOiIjMDA4QjhCIixkYXJrZ29sZGVucm9kOiIjQjg4NjBCIixkYXJrZ3JheToiI0E5QTlBOSIsZGFya2dyZWVuOiIjMDA2NDAwIixkYXJra2hha2k6IiNCREI3NkIiLGRhcmttYWdlbnRhOiIjOEIwMDhCIixkYXJrb2xpdmVncmVlbjoiIzU1NkIyRiIsZGFya29yYW5nZToiI0ZGOEMwMCIsCmRhcmtvcmNoaWQ6IiM5OTMyQ0MiLGRhcmtyZWQ6IiM4QjAwMDAiLGRhcmtzYWxtb246IiNFOTk2N0EiLGRhcmtzZWFncmVlbjoiIzhGQkM4RiIsZGFya3NsYXRlYmx1ZToiIzQ4M0Q4QiIsZGFya3NsYXRlZ3JheToiIzJGNEY0RiIsZGFya3R1cnF1b2lzZToiIzAwQ0VEMSIsZGFya3Zpb2xldDoiIzk0MDBEMyIsZGVlcHBpbms6IiNGRjE0OTMiLGRlZXBza3libHVlOiIjMDBCRkZGIixkaW1ncmF5OiIjNjk2OTY5Iixkb2RnZXJibHVlOiIjMUU5MEZGIixmaXJlYnJpY2s6IiNCMjIyMjIiLGZsb3JhbHdoaXRlOiIjRkZGQUYwIixmb3Jlc3RncmVlbjoiIzIyOEIyMiIsZnVjaHNpYToiI0ZGMDBGRiIsZ2FpbnNib3JvOiIjRENEQ0RDIixnaG9zdHdoaXRlOiIjRjhGOEZGIixnb2xkOiIjRkZENzAwIixnb2xkZW5yb2Q6IiNEQUE1MjAiLGdyYXk6IiM4MDgwODAiLGdyZWVuOiIjMDA4MDAwIixncmVlbnllbGxvdzoiI0FERkYyRiIsaG9uZXlkZXc6IiNGMEZGRjAiLGhvdHBpbms6IiNGRjY5QjQiLAppbmRpYW5yZWQ6IiNDRDVDNUMiLGluZGlnbzoiIzRCMDA4MiIsaXZvcnk6IiNGRkZGRjAiLGtoYWtpOiIjRjBFNjhDIixsYXZlbmRlcjoiI0U2RTZGQSIsbGF2ZW5kZXJibHVzaDoiI0ZGRjBGNSIsbGF3bmdyZWVuOiIjN0NGQzAwIixsZW1vbmNoaWZmb246IiNGRkZBQ0QiLGxpZ2h0Ymx1ZToiI0FERDhFNiIsbGlnaHRjb3JhbDoiI0YwODA4MCIsbGlnaHRjeWFuOiIjRTBGRkZGIixsaWdodGdvbGRlbnJvZHllbGxvdzoiI0ZBRkFEMiIsbGlnaHRncmVlbjoiIzkwRUU5MCIsbGlnaHRncmV5OiIjRDNEM0QzIixsaWdodHBpbms6IiNGRkI2QzEiLGxpZ2h0c2FsbW9uOiIjRkZBMDdBIixsaWdodHNlYWdyZWVuOiIjMjBCMkFBIixsaWdodHNreWJsdWU6IiM4N0NFRkEiLGxpZ2h0c2xhdGVncmF5OiIjNzc4ODk5IixsaWdodHN0ZWVsYmx1ZToiI0IwQzRERSIsbGlnaHR5ZWxsb3c6IiNGRkZGRTAiLGxpbWU6IiMwMEZGMDAiLGxpbWVncmVlbjoiIzMyQ0QzMiIsbGluZW46IiNGQUYwRTYiLG1hZ2VudGE6IiNGRjAwRkYiLAptYXJvb246IiM4MDAwMDAiLG1lZGl1bWF1cWFtYXJpbmU6IiM2NkNEQUEiLG1lZGl1bWJsdWU6IiMwMDAwQ0QiLG1lZGl1bW9yY2hpZDoiI0JBNTVEMyIsbWVkaXVtcHVycGxlOiIjOTM3MEQ4IixtZWRpdW1zZWFncmVlbjoiIzNDQjM3MSIsbWVkaXVtc2xhdGVibHVlOiIjN0I2OEVFIixtZWRpdW1zcHJpbmdncmVlbjoiIzAwRkE5QSIsbWVkaXVtdHVycXVvaXNlOiIjNDhEMUNDIixtZWRpdW12aW9sZXRyZWQ6IiNDNzE1ODUiLG1pZG5pZ2h0Ymx1ZToiIzE5MTk3MCIsbWludGNyZWFtOiIjRjVGRkZBIixtaXN0eXJvc2U6IiNGRkU0RTEiLG1vY2Nhc2luOiIjRkZFNEI1IixuYXZham93aGl0ZToiI0ZGREVBRCIsbmF2eToiIzAwMDA4MCIsb2xkbGFjZToiI0ZERjVFNiIsb2xpdmU6IiM4MDgwMDAiLG9saXZlZHJhYjoiIzY4OEUyMyIsb3JhbmdlOiIjRkZBNTAwIixvcmFuZ2VyZWQ6IiNGRjQ1MDAiLG9yY2hpZDoiI0RBNzBENiIscGFsZWdvbGRlbnJvZDoiI0VFRThBQSIscGFsZWdyZWVuOiIjOThGQjk4IiwKcGFsZXR1cnF1b2lzZToiI0FGRUVFRSIscGFsZXZpb2xldHJlZDoiI0Q4NzA5MyIscGFwYXlhd2hpcDoiI0ZGRUZENSIscGVhY2hwdWZmOiIjRkZEQUI5IixwZXJ1OiIjQ0Q4NTNGIixwaW5rOiIjRkZDMENCIixwbHVtOiIjRERBMEREIixwb3dkZXJibHVlOiIjQjBFMEU2IixwdXJwbGU6IiM4MDAwODAiLHJlZDoiI0ZGMDAwMCIscm9zeWJyb3duOiIjQkM4RjhGIixyb3lhbGJsdWU6IiM0MTY5RTEiLHNhZGRsZWJyb3duOiIjOEI0NTEzIixzYWxtb246IiNGQTgwNzIiLHNhbmR5YnJvd246IiNGNEE0NjAiLHNlYWdyZWVuOiIjMkU4QjU3IixzZWFzaGVsbDoiI0ZGRjVFRSIsc2llbm5hOiIjQTA1MjJEIixzaWx2ZXI6IiNDMEMwQzAiLHNreWJsdWU6IiM4N0NFRUIiLHNsYXRlYmx1ZToiIzZBNUFDRCIsc2xhdGVncmF5OiIjNzA4MDkwIixzbm93OiIjRkZGQUZBIixzcHJpbmdncmVlbjoiIzAwRkY3RiIsc3RlZWxibHVlOiIjNDY4MkI0Iix0YW46IiNEMkI0OEMiLHRlYWw6IiMwMDgwODAiLAp0aGlzdGxlOiIjRDhCRkQ4Iix0b21hdG86IiNGRjYzNDciLHR1cnF1b2lzZToiIzQwRTBEMCIsdmlvbGV0OiIjRUU4MkVFIix3aGVhdDoiI0Y1REVCMyIsd2hpdGU6IiNGRkZGRkYiLHdoaXRlc21va2U6IiNGNUY1RjUiLHllbGxvdzoiI0ZGRkYwMCIseWVsbG93Z3JlZW46IiM5QUNEMzIifTthLnByb3RvdHlwZT17cGFyc2U6ZnVuY3Rpb24oKXtpZighdGhpcy53YSl7dmFyIGI9dGhpcy53LGM7aWYoYz1iLm1hdGNoKGEuTWMpKXt0aGlzLndhPSJyZ2IoIitjWzFdKyIsIitjWzJdKyIsIitjWzNdKyIpIjt0aGlzLm1iPXBhcnNlRmxvYXQoY1s0XSl9ZWxzZXtpZigoYz1iLnRvTG93ZXJDYXNlKCkpaW4gYS5hYiliPWEuYWJbY107dGhpcy53YT1iO3RoaXMubWI9Yj09PSJ0cmFuc3BhcmVudCI/MDoxfX19LHZhbHVlOmZ1bmN0aW9uKGIpe3RoaXMucGFyc2UoKTtyZXR1cm4gdGhpcy53YT09PSJjdXJyZW50Q29sb3IiP2IuY3VycmVudFN0eWxlLmNvbG9yOnRoaXMud2F9LGhhOmZ1bmN0aW9uKCl7dGhpcy5wYXJzZSgpOwpyZXR1cm4gdGhpcy5tYn19O3JldHVybiBhfSgpO2gucT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYyl7dGhpcy5CYT1jO3RoaXMuY2g9MDt0aGlzLlE9W107dGhpcy5yYT0wfXZhciBiPWEuZmE9e3NhOjEsaWI6MixhYTo0LFRiOjgsamI6MTYsYmE6MzIsejo2NCxjYToxMjgsZGE6MjU2LHVhOjUxMixXYjoxMDI0LFVSTDoyMDQ4fTthLmtiPWZ1bmN0aW9uKGMsZyl7dGhpcy50eXBlPWM7dGhpcy52YWx1ZT1nfTthLmtiLnByb3RvdHlwZT17WWE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlJmIuenx8dGhpcy50eXBlJmIuY2EmJnRoaXMudmFsdWU9PT0iMCJ9LFU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ZYSgpfHx0aGlzLnR5cGUmYi51YX19O2EucHJvdG90eXBlPXtWYzovXHMvLEdjOi9eW1wrXC1dPyhcZCpcLik/XGQrLyx1cmw6L151cmxcKFxzKigiKFteIl0qKSJ8JyhbXiddKiknfChbISMkJSYqLX5dKikpXHMqXCkvaSx2YjovXlwtP1tfYS16XVtcdy1dKi9pLFFjOi9eKCIoW14iXSopInwnKFteJ10qKScpLywKQWM6L14jKFtcZGEtZl17Nn18W1xkYS1mXXszfSkvaSxUYzp7cHg6Yi56LGVtOmIueixleDpiLnosbW06Yi56LGNtOmIueiwiaW4iOmIueixwdDpiLnoscGM6Yi56LGRlZzpiLnNhLHJhZDpiLnNhLGdyYWQ6Yi5zYX0sbGM6e3JnYjoxLHJnYmE6MSxoc2w6MSxoc2xhOjF9LG5leHQ6ZnVuY3Rpb24oYyl7ZnVuY3Rpb24gZyh1LG4pe3U9bmV3IGEua2IodSxuKTtpZighYyl7ay5RLnB1c2godSk7ay5yYSsrfXJldHVybiB1fWZ1bmN0aW9uIGQoKXtrLnJhKys7cmV0dXJuIG51bGx9dmFyIGUsZixpLGosaz10aGlzO2lmKHRoaXMucmE8dGhpcy5RLmxlbmd0aClyZXR1cm4gdGhpcy5RW3RoaXMucmErK107Zm9yKDt0aGlzLlZjLnRlc3QodGhpcy5CYS5jaGFyQXQodGhpcy5jaCkpOyl0aGlzLmNoKys7aWYodGhpcy5jaD49dGhpcy5CYS5sZW5ndGgpcmV0dXJuIGQoKTtmPXRoaXMuY2g7ZT10aGlzLkJhLnN1YnN0cmluZyh0aGlzLmNoKTtpPWUuY2hhckF0KDApO3N3aXRjaChpKXtjYXNlICIjIjppZihqPQplLm1hdGNoKHRoaXMuQWMpKXt0aGlzLmNoKz1qWzBdLmxlbmd0aDtyZXR1cm4gZyhiLmFhLGpbMF0pfWJyZWFrO2Nhc2UgJyInOmNhc2UgIiciOmlmKGo9ZS5tYXRjaCh0aGlzLlFjKSl7dGhpcy5jaCs9alswXS5sZW5ndGg7cmV0dXJuIGcoYi5XYixqWzJdfHxqWzNdfHwiIil9YnJlYWs7Y2FzZSAiLyI6Y2FzZSAiLCI6dGhpcy5jaCsrO3JldHVybiBnKGIuZGEsaSk7Y2FzZSAidSI6aWYoaj1lLm1hdGNoKHRoaXMudXJsKSl7dGhpcy5jaCs9alswXS5sZW5ndGg7cmV0dXJuIGcoYi5VUkwsalsyXXx8alszXXx8als0XXx8IiIpfX1pZihqPWUubWF0Y2godGhpcy5HYykpe2k9alswXTt0aGlzLmNoKz1pLmxlbmd0aDtpZihlLmNoYXJBdChpLmxlbmd0aCk9PT0iJSIpe3RoaXMuY2grKztyZXR1cm4gZyhiLnVhLGkrIiUiKX1pZihqPWUuc3Vic3RyaW5nKGkubGVuZ3RoKS5tYXRjaCh0aGlzLnZiKSl7aSs9alswXTt0aGlzLmNoKz1qWzBdLmxlbmd0aDtyZXR1cm4gZyh0aGlzLlRjW2pbMF0udG9Mb3dlckNhc2UoKV18fApiLlRiLGkpfXJldHVybiBnKGIuY2EsaSl9aWYoaj1lLm1hdGNoKHRoaXMudmIpKXtpPWpbMF07dGhpcy5jaCs9aS5sZW5ndGg7aWYoaS50b0xvd2VyQ2FzZSgpaW4gaC5SLmFifHxpPT09ImN1cnJlbnRDb2xvciIpcmV0dXJuIGcoYi5hYSxpKTtpZihlLmNoYXJBdChpLmxlbmd0aCk9PT0iKCIpe3RoaXMuY2grKztpZihpLnRvTG93ZXJDYXNlKClpbiB0aGlzLmxjKXtlPWZ1bmN0aW9uKHUpe3JldHVybiB1JiZ1LnR5cGUmYi5jYX07aj1mdW5jdGlvbih1KXtyZXR1cm4gdSYmdS50eXBlJihiLmNhfGIudWEpfTt2YXIgbT1mdW5jdGlvbih1LG4pe3JldHVybiB1JiZ1LnZhbHVlPT09bn0sbD1mdW5jdGlvbigpe3JldHVybiBrLm5leHQoMSl9O2lmKChpLmNoYXJBdCgwKT09PSJyIj9qKGwoKSk6ZShsKCkpKSYmbShsKCksIiwiKSYmaihsKCkpJiZtKGwoKSwiLCIpJiZqKGwoKSkmJihpPT09InJnYiJ8fGk9PT0iaHNhInx8bShsKCksIiwiKSYmZShsKCkpKSYmbShsKCksIikiKSlyZXR1cm4gZyhiLmFhLAp0aGlzLkJhLnN1YnN0cmluZyhmLHRoaXMuY2gpKTtyZXR1cm4gZCgpfXJldHVybiBnKGIuamIsaSsiKCIpfXJldHVybiBnKGIuYmEsaSl9dGhpcy5jaCsrO3JldHVybiBnKGIuaWIsaSl9LHY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RW3RoaXMucmEtLSAtMl19LGFsbDpmdW5jdGlvbigpe2Zvcig7dGhpcy5uZXh0KCk7KTtyZXR1cm4gdGhpcy5RfSwkOmZ1bmN0aW9uKGMsZyl7Zm9yKHZhciBkPVtdLGUsZjtlPXRoaXMubmV4dCgpOyl7aWYoYyhlKSl7Zj10cnVlO3RoaXMudigpO2JyZWFrfWQucHVzaChlKX1yZXR1cm4gZyYmIWY/bnVsbDpkfX07cmV0dXJuIGF9KCk7dmFyIEs9ZnVuY3Rpb24oYSl7dGhpcy5kPWF9O0sucHJvdG90eXBlPXtKOjAsS2M6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLk9hLGI7cmV0dXJuIWF8fChiPXRoaXMubSgpKSYmKGEueCE9PWIueHx8YS55IT09Yi55KX0sTmM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLk9hLGI7cmV0dXJuIWF8fChiPXRoaXMubSgpKSYmKGEuZyE9PQpiLmd8fGEuZSE9PWIuZSl9LHFiOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt4OmEubGVmdCx5OmEudG9wLGc6YS5yaWdodC1hLmxlZnQsZTphLmJvdHRvbS1hLnRvcH19LG06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5KP3RoaXMueGF8fCh0aGlzLnhhPXRoaXMucWIoKSk6dGhpcy5xYigpfSx6YzpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5PYX0sRGE6ZnVuY3Rpb24oKXsrK3RoaXMuSn0sRmE6ZnVuY3Rpb24oKXtpZighLS10aGlzLkope2lmKHRoaXMueGEpdGhpcy5PYT10aGlzLnhhO3RoaXMueGE9bnVsbH19fTsoZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIpe3ZhciBjPWgubi5vYShiKTtyZXR1cm4gZnVuY3Rpb24oKXtpZih0aGlzLkope3ZhciBnPXRoaXMubmJ8fCh0aGlzLm5iPXt9KTtyZXR1cm4gYyBpbiBnP2dbY106KGdbY109Yi5jYWxsKHRoaXMpKX1lbHNlIHJldHVybiBiLmNhbGwodGhpcyl9fWgucD17SjowLFc6ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYyhnKXt0aGlzLmQ9Cmd9aC5uLiRhKGMucHJvdG90eXBlLGgucCxiKTtjLmRjPXt9O3JldHVybiBjfSxqOmZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5sYSgpLGM9dGhpcy5jb25zdHJ1Y3Rvci5kYztyZXR1cm4gYj9iIGluIGM/Y1tiXTooY1tiXT10aGlzLlkoYikpOm51bGx9LGxhOmEoZnVuY3Rpb24oKXt2YXIgYj10aGlzLmQsYz10aGlzLmNvbnN0cnVjdG9yLGc9Yi5zdHlsZTtiPWIuY3VycmVudFN0eWxlO3ZhciBkPXRoaXMuamEsZT10aGlzLnFhLGY9Yy5iY3x8KGMuYmM9aC5JK2QpO2M9Yy5jY3x8KGMuY2M9aC5OYStlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc3Vic3RyaW5nKDEpKTtyZXR1cm4gZ1tjXXx8Yi5nZXRBdHRyaWJ1dGUoZil8fGdbZV18fGIuZ2V0QXR0cmlidXRlKGQpfSksZjphKGZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmooKX0pLEM6YShmdW5jdGlvbigpe3ZhciBiPXRoaXMubGEoKSxjPWIhPT10aGlzLiRiO3RoaXMuJGI9YjtyZXR1cm4gY30pLGlhOmEsRGE6ZnVuY3Rpb24oKXsrK3RoaXMuSn0sCkZhOmZ1bmN0aW9uKCl7LS10aGlzLkp8fGRlbGV0ZSB0aGlzLm5ifX19KSgpO2guTWI9aC5wLlcoe2phOmguSSsiYmFja2dyb3VuZCIscWE6aC5OYSsiQmFja2dyb3VuZCIsaGM6e3Njcm9sbDoxLGZpeGVkOjEsbG9jYWw6MX0sRWE6eyJyZXBlYXQteCI6MSwicmVwZWF0LXkiOjEscmVwZWF0OjEsIm5vLXJlcGVhdCI6MX0sSGM6eyJwYWRkaW5nLWJveCI6MSwiYm9yZGVyLWJveCI6MSwiY29udGVudC1ib3giOjF9LGtjOnsicGFkZGluZy1ib3giOjEsImJvcmRlci1ib3giOjF9LExjOnt0b3A6MSxyaWdodDoxLGJvdHRvbToxLGxlZnQ6MSxjZW50ZXI6MX0sT2M6e2NvbnRhaW46MSxjb3ZlcjoxfSxZOmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIodil7cmV0dXJuIHYuVSgpfHx2LnR5cGUmaiYmdi52YWx1ZSBpbiB1fWZ1bmN0aW9uIGModil7cmV0dXJuIHYuVSgpJiZuZXcgaC5pKHYudmFsdWUpfHx2LnZhbHVlPT09ImF1dG8iJiYiYXV0byJ9dmFyIGc9dGhpcy5kLmN1cnJlbnRTdHlsZSxkLAplLGY9aC5xLmZhLGk9Zi5kYSxqPWYuYmEsaz1mLmFhLG0sbCx1PXRoaXMuTGMsbixxLHQ9bnVsbDtpZih0aGlzLlRhKCkpe2E9bmV3IGgucShhKTt0PXtpbWFnZXM6W119O2ZvcihlPXt9O2Q9YS5uZXh0KCk7KXttPWQudHlwZTtsPWQudmFsdWU7aWYoIWUudHlwZSYmbSZmLmpiJiZsPT09ImxpbmVhci1ncmFkaWVudCgiKXtuPXtaOltdLHR5cGU6ImxpbmVhci1ncmFkaWVudCJ9O2ZvcihxPXt9O2Q9YS5uZXh0KCk7KXttPWQudHlwZTtsPWQudmFsdWU7aWYobSZmLmliJiZsPT09IikiKXtxLmNvbG9yJiZuLloucHVzaChxKTtuLloubGVuZ3RoPjEmJmgubi4kYShlLG4pO2JyZWFrfWlmKG0mayl7aWYobi5SYXx8bi5WYSl7ZD1hLnYoKTtpZihkLnR5cGUhPT1pKWJyZWFrO2EubmV4dCgpfXE9e2NvbG9yOm5ldyBoLlIobCl9O2Q9YS5uZXh0KCk7aWYoZC5VKCkpcS55Yj1uZXcgaC5pKGQudmFsdWUpO2Vsc2UgYS52KCl9ZWxzZSBpZihtJmYuc2EmJiFuLlJhJiYhcS5jb2xvciYmIW4uWi5sZW5ndGgpbi5SYT0KbmV3IGguS2IoZC52YWx1ZSk7ZWxzZSBpZihiKGQpJiYhbi5WYSYmIXEuY29sb3ImJiFuLloubGVuZ3RoKXthLnYoKTtuLlZhPW5ldyBoLkhhKGEuJChmdW5jdGlvbih2KXtyZXR1cm4hYih2KX0sZmFsc2UpKX1lbHNlIGlmKG0maSYmbD09PSIsIil7aWYocS5jb2xvcil7bi5aLnB1c2gocSk7cT17fX19ZWxzZSBicmVha319ZWxzZSBpZighZS50eXBlJiZtJmYuVVJMKXtlLnVybD1sO2UudHlwZT0iaW1hZ2UifWVsc2UgaWYoYihkKSYmIWUuc2l6ZSl7YS52KCk7ZS5wb3NpdGlvbj1uZXcgaC5IYShhLiQoZnVuY3Rpb24odil7cmV0dXJuIWIodil9LGZhbHNlKSl9ZWxzZSBpZihtJmopaWYobCBpbiB0aGlzLkVhKWUucmVwZWF0PWw7ZWxzZSBpZihsIGluIHRoaXMuSGMpe2Uub3JpZ2luPWw7aWYobCBpbiB0aGlzLmtjKWUuY2xpcD1sfWVsc2V7aWYobCBpbiB0aGlzLmhjKWUuWmM9bH1lbHNlIGlmKG0mayYmIXQuY29sb3IpdC5jb2xvcj1uZXcgaC5SKGwpO2Vsc2UgaWYobSZpKWlmKGw9PT0KIi8iKXtkPWEubmV4dCgpO209ZC50eXBlO2w9ZC52YWx1ZTtpZihtJmomJmwgaW4gdGhpcy5PYyllLnNpemU9bDtlbHNlIGlmKGw9YyhkKSllLnNpemU9e2c6bCxlOmMoYS5uZXh0KCkpfHxhLnYoKSYmbH19ZWxzZXtpZihsPT09IiwiJiZlLnR5cGUpe3QuaW1hZ2VzLnB1c2goZSk7ZT17fX19ZWxzZSByZXR1cm4gbnVsbH1lLnR5cGUmJnQuaW1hZ2VzLnB1c2goZSl9ZWxzZSB0aGlzLkdiKGZ1bmN0aW9uKCl7dmFyIHY9Zy5iYWNrZ3JvdW5kUG9zaXRpb25YLHg9Zy5iYWNrZ3JvdW5kUG9zaXRpb25ZLHI9Zy5iYWNrZ3JvdW5kSW1hZ2Usbz1nLmJhY2tncm91bmRDb2xvcjt0PXt9O2lmKG8hPT0idHJhbnNwYXJlbnQiKXQuY29sb3I9bmV3IGguUihvKTtpZihyIT09Im5vbmUiKXQuaW1hZ2VzPVt7dHlwZToiaW1hZ2UiLHVybDoobmV3IGgucShyKSkubmV4dCgpLnZhbHVlLHJlcGVhdDpnLmJhY2tncm91bmRSZXBlYXQscG9zaXRpb246bmV3IGguSGEoKG5ldyBoLnEodisiICIreCkpLmFsbCgpKX1dfSk7CnJldHVybiB0JiYodC5jb2xvcnx8dC5pbWFnZXMmJnQuaW1hZ2VzWzBdKT90Om51bGx9LEdiOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZC5ydW50aW1lU3R5bGUsYz1iLmJhY2tncm91bmRJbWFnZSxnPWIuYmFja2dyb3VuZENvbG9yO2lmKGMpYi5iYWNrZ3JvdW5kSW1hZ2U9IiI7aWYoZyliLmJhY2tncm91bmRDb2xvcj0iIjthPWEuY2FsbCh0aGlzKTtpZihjKWIuYmFja2dyb3VuZEltYWdlPWM7aWYoZyliLmJhY2tncm91bmRDb2xvcj1nO3JldHVybiBhfSxsYTpoLnAuaWEoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5UYSgpfHx0aGlzLkdiKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kLmN1cnJlbnRTdHlsZTtyZXR1cm4gYS5iYWNrZ3JvdW5kQ29sb3IrIiAiK2EuYmFja2dyb3VuZEltYWdlKyIgIithLmJhY2tncm91bmRSZXBlYXQrIiAiK2EuYmFja2dyb3VuZFBvc2l0aW9uWCsiICIrYS5iYWNrZ3JvdW5kUG9zaXRpb25ZfSl9KSxUYTpoLnAuaWEoZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQ7CnJldHVybiBhLnN0eWxlW3RoaXMucWFdfHxhLmN1cnJlbnRTdHlsZS5nZXRBdHRyaWJ1dGUodGhpcy5qYSl9KSx4YjpmdW5jdGlvbigpe3ZhciBhPTA7aWYoaC5EPDcpe2E9dGhpcy5kO2E9IiIrKGEuc3R5bGVbaC5OYSsiUG5nRml4Il18fGEuY3VycmVudFN0eWxlLmdldEF0dHJpYnV0ZShoLkkrInBuZy1maXgiKSk9PT0idHJ1ZSJ9cmV0dXJuIGF9LGY6aC5wLmlhKGZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuVGEoKXx8dGhpcy54YigpKSYmISF0aGlzLmooKX0pfSk7aC5RYj1oLnAuVyh7QmI6WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxGYzp7YmQ6IjFweCIsJGM6IjNweCIsYWQ6IjVweCJ9LFk6ZnVuY3Rpb24oKXt2YXIgYT17fSxiPXt9LGM9e30sZz1mYWxzZSxkPXRydWUsZT10cnVlLGY9dHJ1ZTt0aGlzLkhiKGZ1bmN0aW9uKCl7Zm9yKHZhciBpPXRoaXMuZC5jdXJyZW50U3R5bGUsaj0wLGssbSxsLHUsbixxLHQ7ajw0O2orKyl7bD10aGlzLkJiW2pdO3Q9bC5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTsKaz1iW3RdPWlbImJvcmRlciIrbCsiU3R5bGUiXTttPWlbImJvcmRlciIrbCsiQ29sb3IiXTtsPWlbImJvcmRlciIrbCsiV2lkdGgiXTtpZihqPjApe2lmKGshPT11KWU9ZmFsc2U7aWYobSE9PW4pZD1mYWxzZTtpZihsIT09cSlmPWZhbHNlfXU9aztuPW07cT1sO2NbdF09bmV3IGguUihtKTtsPWFbdF09bmV3IGguaShiW3RdPT09Im5vbmUiPyIwIjp0aGlzLkZjW2xdfHxsKTtpZihsLmEodGhpcy5kKT4wKWc9dHJ1ZX19KTtyZXR1cm4gZz97aGI6YSxSYzpiLG1jOmMsV2M6ZixuYzpkLFNjOmV9Om51bGx9LGxhOmgucC5pYShmdW5jdGlvbigpe3ZhciBhPXRoaXMuZCxiPWEuY3VycmVudFN0eWxlLGM7YS50YWdOYW1lIGluIGguQ2ImJmEub2Zmc2V0UGFyZW50LmN1cnJlbnRTdHlsZS5ib3JkZXJDb2xsYXBzZT09PSJjb2xsYXBzZSJ8fHRoaXMuSGIoZnVuY3Rpb24oKXtjPWIuYm9yZGVyV2lkdGgrInwiK2IuYm9yZGVyU3R5bGUrInwiK2IuYm9yZGVyQ29sb3J9KTtyZXR1cm4gY30pLEhiOmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLmQucnVudGltZVN0eWxlLGM9Yi5ib3JkZXJXaWR0aCxnPWIuYm9yZGVyQ29sb3I7aWYoYyliLmJvcmRlcldpZHRoPSIiO2lmKGcpYi5ib3JkZXJDb2xvcj0iIjthPWEuY2FsbCh0aGlzKTtpZihjKWIuYm9yZGVyV2lkdGg9YztpZihnKWIuYm9yZGVyQ29sb3I9ZztyZXR1cm4gYX19KTsoZnVuY3Rpb24oKXtoLklhPWgucC5XKHtqYToiYm9yZGVyLXJhZGl1cyIscWE6ImJvcmRlclJhZGl1cyIsWTpmdW5jdGlvbihiKXt2YXIgYz1udWxsLGcsZCxlLGYsaT1mYWxzZTtpZihiKXtkPW5ldyBoLnEoYik7dmFyIGo9ZnVuY3Rpb24oKXtmb3IodmFyIGs9W10sbTsoZT1kLm5leHQoKSkmJmUuVSgpOyl7Zj1uZXcgaC5pKGUudmFsdWUpO209Zi5yYigpO2lmKG08MClyZXR1cm4gbnVsbDtpZihtPjApaT10cnVlO2sucHVzaChmKX1yZXR1cm4gay5sZW5ndGg+MCYmay5sZW5ndGg8NT97dGw6a1swXSx0cjprWzFdfHxrWzBdLGJyOmtbMl18fGtbMF0sYmw6a1szXXx8a1sxXXx8a1swXX06bnVsbH07CmlmKGI9aigpKXtpZihlKXtpZihlLnR5cGUmaC5xLmZhLmRhJiZlLnZhbHVlPT09Ii8iKWc9aigpfWVsc2UgZz1iO2lmKGkmJmImJmcpYz17eDpiLHk6Z319fXJldHVybiBjfX0pO3ZhciBhPWguaS5sYjthPXt0bDphLHRyOmEsYnI6YSxibDphfTtoLklhLkpiPXt4OmEseTphfX0pKCk7aC5PYj1oLnAuVyh7amE6ImJvcmRlci1pbWFnZSIscWE6ImJvcmRlckltYWdlIixFYTp7c3RyZXRjaDoxLHJvdW5kOjEscmVwZWF0OjEsc3BhY2U6MX0sWTpmdW5jdGlvbihhKXt2YXIgYj1udWxsLGMsZyxkLGUsZixpLGo9MCxrLG09aC5xLmZhLGw9bS5iYSx1PW0uY2Esbj1tLnoscT1tLnVhO2lmKGEpe2M9bmV3IGgucShhKTtiPXt9O2Zvcih2YXIgdD1mdW5jdGlvbihyKXtyZXR1cm4gciYmci50eXBlJm0uZGEmJnIudmFsdWU9PT0iLyJ9LHY9ZnVuY3Rpb24ocil7cmV0dXJuIHImJnIudHlwZSZsJiZyLnZhbHVlPT09ImZpbGwifSx4PWZ1bmN0aW9uKCl7ZT1jLiQoZnVuY3Rpb24ocil7cmV0dXJuIShyLnR5cGUmCih1fHEpKX0pO2lmKHYoYy5uZXh0KCkpJiYhYi5maWxsKWIuZmlsbD10cnVlO2Vsc2UgYy52KCk7aWYodChjLm5leHQoKSkpe2orKztmPWMuJChmdW5jdGlvbigpe3JldHVybiEoZy50eXBlJih1fHF8bikpJiYhKGcudHlwZSZsJiZnLnZhbHVlPT09ImF1dG8iKX0pO2lmKHQoYy5uZXh0KCkpKXtqKys7aT1jLiQoZnVuY3Rpb24oKXtyZXR1cm4hKGcudHlwZSYodXxuKSl9KX19ZWxzZSBjLnYoKX07Zz1jLm5leHQoKTspe2E9Zy50eXBlO2Q9Zy52YWx1ZTtpZihhJih1fHEpJiYhZSl7Yy52KCk7eCgpfWVsc2UgaWYodihnKSYmIWIuZmlsbCl7Yi5maWxsPXRydWU7eCgpfWVsc2UgaWYoYSZsJiZ0aGlzLkVhW2RdJiYhYi5yZXBlYXQpe2IucmVwZWF0PXtlOmR9O2lmKGc9Yy5uZXh0KCkpaWYoZy50eXBlJmwmJnRoaXMuRWFbZy52YWx1ZV0pYi5yZXBlYXQuZWI9Zy52YWx1ZTtlbHNlIGMudigpfWVsc2UgaWYoYSZtLlVSTCYmIWIuc3JjKWIuc3JjPWQ7ZWxzZSByZXR1cm4gbnVsbH1pZighYi5zcmN8fAohZXx8ZS5sZW5ndGg8MXx8ZS5sZW5ndGg+NHx8ZiYmZi5sZW5ndGg+NHx8aj09PTEmJmYubGVuZ3RoPDF8fGkmJmkubGVuZ3RoPjR8fGo9PT0yJiZpLmxlbmd0aDwxKXJldHVybiBudWxsO2lmKCFiLnJlcGVhdCliLnJlcGVhdD17ZToic3RyZXRjaCJ9O2lmKCFiLnJlcGVhdC5lYiliLnJlcGVhdC5lYj1iLnJlcGVhdC5lO2E9ZnVuY3Rpb24ocixvKXtyZXR1cm57UDpvKHJbMF0pLE86byhyWzFdfHxyWzBdKSxLOm8oclsyXXx8clswXSksTTpvKHJbM118fHJbMV18fHJbMF0pfX07Yi5zbGljZT1hKGUsZnVuY3Rpb24ocil7cmV0dXJuIG5ldyBoLmkoci50eXBlJnU/ci52YWx1ZSsicHgiOnIudmFsdWUpfSk7Yi53aWR0aD1mJiZmLmxlbmd0aD4wP2EoZixmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlJihufHEpP25ldyBoLmkoci52YWx1ZSk6ci52YWx1ZX0pOihrPXRoaXMuZC5jdXJyZW50U3R5bGUpJiZ7UDpuZXcgaC5pKGsuYm9yZGVyVG9wV2lkdGgpLE86bmV3IGguaShrLmJvcmRlclJpZ2h0V2lkdGgpLApLOm5ldyBoLmkoay5ib3JkZXJCb3R0b21XaWR0aCksTTpuZXcgaC5pKGsuYm9yZGVyTGVmdFdpZHRoKX07Yi5wYT1hKGl8fFswXSxmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlJm4/bmV3IGguaShyLnZhbHVlKTpyLnZhbHVlfSl9cmV0dXJuIGJ9fSk7aC5TYj1oLnAuVyh7amE6ImJveC1zaGFkb3ciLHFhOiJib3hTaGFkb3ciLFk6ZnVuY3Rpb24oYSl7dmFyIGIsYz1oLmksZz1oLnEuZmEsZDtpZihhKXtkPW5ldyBoLnEoYSk7Yj17cGE6W10sWGE6W119O2ZvcihhPWZ1bmN0aW9uKCl7Zm9yKHZhciBlLGYsaSxqLGssbTtlPWQubmV4dCgpOyl7aT1lLnZhbHVlO2Y9ZS50eXBlO2lmKGYmZy5kYSYmaT09PSIsIilicmVhaztlbHNlIGlmKGUuWWEoKSYmIWspe2QudigpO2s9ZC4kKGZ1bmN0aW9uKGwpe3JldHVybiFsLllhKCl9KX1lbHNlIGlmKGYmZy5hYSYmIWopaj1pO2Vsc2UgaWYoZiZnLmJhJiZpPT09Imluc2V0IiYmIW0pbT10cnVlO2Vsc2UgcmV0dXJuIGZhbHNlfWU9ayYmay5sZW5ndGg7CmlmKGU+MSYmZTw1KXsobT9iLlhhOmIucGEpLnB1c2goe1hjOm5ldyBjKGtbMF0udmFsdWUpLFljOm5ldyBjKGtbMV0udmFsdWUpLGJsdXI6bmV3IGMoa1syXT9rWzJdLnZhbHVlOiIwIiksUGM6bmV3IGMoa1szXT9rWzNdLnZhbHVlOiIwIiksY29sb3I6bmV3IGguUihqfHwiY3VycmVudENvbG9yIil9KTtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9O2EoKTspO31yZXR1cm4gYiYmKGIuWGEubGVuZ3RofHxiLnBhLmxlbmd0aCk/YjpudWxsfX0pO2guWGI9aC5wLlcoe2xhOmgucC5pYShmdW5jdGlvbigpe3ZhciBhPXRoaXMuZC5jdXJyZW50U3R5bGU7cmV0dXJuIGEudmlzaWJpbGl0eSsifCIrYS5kaXNwbGF5fSksWTpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZCxiPWEucnVudGltZVN0eWxlO2E9YS5jdXJyZW50U3R5bGU7dmFyIGM9Yi52aXNpYmlsaXR5LGc7Yi52aXNpYmlsaXR5PSIiO2c9YS52aXNpYmlsaXR5O2IudmlzaWJpbGl0eT1jO3JldHVybntVYzpnIT09ImhpZGRlbiIsc2M6YS5kaXNwbGF5IT09CiJub25lIn19LGY6ZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2V9fSk7aC5BPXtWOmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyxnLGQsZSl7dGhpcy5kPWM7dGhpcy5vPWc7dGhpcy5oPWQ7dGhpcy5wYXJlbnQ9ZX1oLm4uJGEoYi5wcm90b3R5cGUsaC5BLGEpO3JldHVybiBifSxaYTpmYWxzZSxOOmZ1bmN0aW9uKCl7cmV0dXJuIGZhbHNlfSxEYjpmdW5jdGlvbigpe3RoaXMuaygpO3RoaXMuZigpJiZ0aGlzLlQoKX0sZGI6ZnVuY3Rpb24oKXt0aGlzLlphPXRydWV9LEViOmZ1bmN0aW9uKCl7dGhpcy5mKCk/dGhpcy5UKCk6dGhpcy5rKCl9LFFhOmZ1bmN0aW9uKGEsYil7dGhpcy5BYihhKTtmb3IodmFyIGM9dGhpcy5nYXx8KHRoaXMuZ2E9W10pLGc9YSsxLGQ9Yy5sZW5ndGgsZTtnPGQ7ZysrKWlmKGU9Y1tnXSlicmVhaztjW2FdPWI7dGhpcy51KCkuaW5zZXJ0QmVmb3JlKGIsZXx8bnVsbCl9LG1hOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZ2E7cmV0dXJuIGImJmJbYV18fG51bGx9LEFiOmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLm1hKGEpLGM9dGhpcy52YTtpZihiJiZjKXtjLnJlbW92ZUNoaWxkKGIpO3RoaXMuZ2FbYV09bnVsbH19LG5hOmZ1bmN0aW9uKGEsYixjLGcpe3ZhciBkPXRoaXMuUGF8fCh0aGlzLlBhPXt9KSxlPWRbYV07aWYoIWUpe2U9ZFthXT1oLm4uQWEoInNoYXBlIik7aWYoYillLmFwcGVuZENoaWxkKGVbYl09aC5uLkFhKGIpKTtpZihnKXtjPXRoaXMubWEoZyk7aWYoIWMpe3RoaXMuUWEoZyxkb2MuY3JlYXRlRWxlbWVudCgiZ3JvdXAiK2cpKTtjPXRoaXMubWEoZyl9fWMuYXBwZW5kQ2hpbGQoZSk7YT1lLnN0eWxlO2EucG9zaXRpb249ImFic29sdXRlIjthLmxlZnQ9YS50b3A9MDthLmJlaGF2aW9yPSJ1cmwoI2RlZmF1bHQjVk1MKSJ9cmV0dXJuIGV9LFNhOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuUGEsYz1iJiZiW2FdO2lmKGMpe2MucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjKTtkZWxldGUgYlthXX1yZXR1cm4hIWN9LHRiOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZCxjPXRoaXMuby5tKCksCmc9Yy5nLGQ9Yy5lLGUsZixpLGosayxtO2M9YS54LnRsLmEoYixnKTtlPWEueS50bC5hKGIsZCk7Zj1hLngudHIuYShiLGcpO2k9YS55LnRyLmEoYixkKTtqPWEueC5ici5hKGIsZyk7az1hLnkuYnIuYShiLGQpO209YS54LmJsLmEoYixnKTthPWEueS5ibC5hKGIsZCk7Zz1NYXRoLm1pbihnLyhjK2YpLGQvKGkrayksZy8obStqKSxkLyhlK2EpKTtpZihnPDEpe2MqPWc7ZSo9ZztmKj1nO2kqPWc7aio9ZztrKj1nO20qPWc7YSo9Z31yZXR1cm57eDp7dGw6Yyx0cjpmLGJyOmosYmw6bX0seTp7dGw6ZSx0cjppLGJyOmssYmw6YX19fSxrYTpmdW5jdGlvbihhLGIsYyl7Yj1ifHwxO3ZhciBnLGQsZT10aGlzLm8ubSgpO2Q9ZS5nKmI7ZT1lLmUqYjt2YXIgZj10aGlzLmgucyxpPU1hdGguZmxvb3Isaj1NYXRoLmNlaWwsaz1hP2EuUCpiOjAsbT1hP2EuTypiOjAsbD1hP2EuSypiOjA7YT1hP2EuTSpiOjA7dmFyIHUsbixxLHQsdjtpZihjfHxmLmYoKSl7Zz10aGlzLnRiKGN8fGYuaigpKTtjPQpnLngudGwqYjtmPWcueS50bCpiO3U9Zy54LnRyKmI7bj1nLnkudHIqYjtxPWcueC5icipiO3Q9Zy55LmJyKmI7dj1nLnguYmwqYjtiPWcueS5ibCpiO2Q9Im0iK2koYSkrIiwiK2koZikrInF5IitpKGMpKyIsIitpKGspKyJsIitqKGQtdSkrIiwiK2koaykrInF4IitqKGQtbSkrIiwiK2kobikrImwiK2ooZC1tKSsiLCIraihlLXQpKyJxeSIraihkLXEpKyIsIitqKGUtbCkrImwiK2kodikrIiwiK2ooZS1sKSsicXgiK2koYSkrIiwiK2ooZS1iKSsiIHggZSJ9ZWxzZSBkPSJtIitpKGEpKyIsIitpKGspKyJsIitqKGQtbSkrIiwiK2koaykrImwiK2ooZC1tKSsiLCIraihlLWwpKyJsIitpKGEpKyIsIitqKGUtbCkrInhlIjtyZXR1cm4gZH0sdTpmdW5jdGlvbigpe3ZhciBhPXRoaXMucGFyZW50Lm1hKHRoaXMuQiksYjtpZighYSl7YT1kb2MuY3JlYXRlRWxlbWVudCh0aGlzLnphKTtiPWEuc3R5bGU7Yi5wb3NpdGlvbj0iYWJzb2x1dGUiO2IudG9wPWIubGVmdD0wO3RoaXMucGFyZW50LlFhKHRoaXMuQiwKYSl9cmV0dXJuIGF9LGs6ZnVuY3Rpb24oKXt0aGlzLnBhcmVudC5BYih0aGlzLkIpO2RlbGV0ZSB0aGlzLlBhO2RlbGV0ZSB0aGlzLmdhfX07aC5WYj1oLkEuVih7ZjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaWM7Zm9yKHZhciBiIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShiKSYmYVtiXS5mKCkpcmV0dXJuIHRydWU7cmV0dXJuIGZhbHNlfSxOOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaC5mYi5DKCl9LGRiOmZ1bmN0aW9uKCl7aWYodGhpcy5mKCkpe3ZhciBhPXRoaXMuc2IoKSxiPWEsYzthPWEuY3VycmVudFN0eWxlO3ZhciBnPWEucG9zaXRpb24sZD10aGlzLnUoKS5zdHlsZSxlPTAsZj0wO2Y9dGhpcy5vLm0oKTtpZihnPT09ImZpeGVkIiYmaC5EPjYpe2U9Zi54O2Y9Zi55O2I9Z31lbHNle2RvIGI9Yi5vZmZzZXRQYXJlbnQ7d2hpbGUoYiYmYi5jdXJyZW50U3R5bGUucG9zaXRpb249PT0ic3RhdGljIik7aWYoYil7Yz1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2I9Yi5jdXJyZW50U3R5bGU7CmU9Zi54LWMubGVmdC0ocGFyc2VGbG9hdChiLmJvcmRlckxlZnRXaWR0aCl8fDApO2Y9Zi55LWMudG9wLShwYXJzZUZsb2F0KGIuYm9yZGVyVG9wV2lkdGgpfHwwKX1lbHNle2I9ZG9jLmRvY3VtZW50RWxlbWVudDtlPWYueCtiLnNjcm9sbExlZnQtYi5jbGllbnRMZWZ0O2Y9Zi55K2Iuc2Nyb2xsVG9wLWIuY2xpZW50VG9wfWI9ImFic29sdXRlIn1kLnBvc2l0aW9uPWI7ZC5sZWZ0PWU7ZC50b3A9ZjtkLnpJbmRleD1nPT09InN0YXRpYyI/LTE6YS56SW5kZXg7dGhpcy5aYT10cnVlfX0sRWI6ZnVuY3Rpb24oKXt9LEZiOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oLmZiLmooKTt0aGlzLnUoKS5zdHlsZS5kaXNwbGF5PWEuVWMmJmEuc2M/IiI6Im5vbmUifSxEYjpmdW5jdGlvbigpe3RoaXMuZigpP3RoaXMuRmIoKTp0aGlzLmsoKX0sc2I6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQ7cmV0dXJuIGEudGFnTmFtZSBpbiBoLkNiP2Eub2Zmc2V0UGFyZW50OmF9LHU6ZnVuY3Rpb24oKXt2YXIgYT0KdGhpcy52YSxiO2lmKCFhKXtiPXRoaXMuc2IoKTthPXRoaXMudmE9ZG9jLmNyZWF0ZUVsZW1lbnQoImNzczMtY29udGFpbmVyIik7YS5zdHlsZS5kaXJlY3Rpb249Imx0ciI7dGhpcy5GYigpO2IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxiKX1yZXR1cm4gYX0sazpmdW5jdGlvbigpe3ZhciBhPXRoaXMudmEsYjtpZihhJiYoYj1hLnBhcmVudE5vZGUpKWIucmVtb3ZlQ2hpbGQoYSk7ZGVsZXRlIHRoaXMudmE7ZGVsZXRlIHRoaXMuZ2F9fSk7aC5MYj1oLkEuVih7QjoyLHphOiJiYWNrZ3JvdW5kIixOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkcuQygpfHxhLnMuQygpfSxmOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkwuZigpfHxhLnMuZigpfHxhLkcuZigpfHxhLlMuZigpJiZhLlMuaigpLlhhfSxUOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vLm0oKTtpZihhLmcmJmEuZSl7dGhpcy50YygpO3RoaXMudWMoKX19LHRjOmZ1bmN0aW9uKCl7dmFyIGE9CnRoaXMuaC5HLmooKSxiPXRoaXMuby5tKCksYz10aGlzLmQsZz1hJiZhLmNvbG9yLGQsZTtpZihnJiZnLmhhKCk+MCl7dGhpcy51YigpO2E9dGhpcy5uYSgiYmdDb2xvciIsImZpbGwiLHRoaXMudSgpLDEpO2Q9Yi5nO2I9Yi5lO2Euc3Ryb2tlZD1mYWxzZTthLmNvb3Jkc2l6ZT1kKjIrIiwiK2IqMjthLmNvb3Jkb3JpZ2luPSIxLDEiO2EucGF0aD10aGlzLmthKG51bGwsMik7ZT1hLnN0eWxlO2Uud2lkdGg9ZDtlLmhlaWdodD1iO2EuZmlsbC5jb2xvcj1nLnZhbHVlKGMpO2M9Zy5oYSgpO2lmKGM8MSlhLmZpbGwub3BhY2l0eT1jfWVsc2UgdGhpcy5TYSgiYmdDb2xvciIpfSx1YzpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5HLmooKSxiPXRoaXMuby5tKCk7YT1hJiZhLmltYWdlczt2YXIgYyxnLGQsZSxmO2lmKGEpe3RoaXMudWIoKTtnPWIuZztkPWIuZTtmb3IoZj1hLmxlbmd0aDtmLS07KXtiPWFbZl07Yz10aGlzLm5hKCJiZ0ltYWdlIitmLCJmaWxsIix0aGlzLnUoKSwyKTtjLnN0cm9rZWQ9CmZhbHNlO2MuZmlsbC50eXBlPSJ0aWxlIjtjLmZpbGxjb2xvcj0ibm9uZSI7Yy5jb29yZHNpemU9ZyoyKyIsIitkKjI7Yy5jb29yZG9yaWdpbj0iMSwxIjtjLnBhdGg9dGhpcy5rYSgwLDIpO2U9Yy5zdHlsZTtlLndpZHRoPWc7ZS5oZWlnaHQ9ZDtpZihiLnR5cGU9PT0ibGluZWFyLWdyYWRpZW50Iil0aGlzLmdjKGMsYik7ZWxzZXtjLmZpbGwuc3JjPWIudXJsO3RoaXMuSmMoYyxmKX19fWZvcihmPWE/YS5sZW5ndGg6MDt0aGlzLlNhKCJiZ0ltYWdlIitmKyspOyk7fSxKYzpmdW5jdGlvbihhLGIpe2gubi5JYihhLmZpbGwuc3JjLGZ1bmN0aW9uKGMpe3ZhciBnPWEuZmlsbCxkPXRoaXMuZCxlPXRoaXMuby5tKCksZj1lLmc7ZT1lLmU7dmFyIGk9dGhpcy5oLGo9aS5ILmooKSxrPWomJmouaGI7aj1rP2sudC5hKGQpOjA7dmFyIG09az9rLnIuYShkKTowLGw9az9rLmIuYShkKTowO2s9az9rLmwuYShkKTowO2k9aS5HLmooKS5pbWFnZXNbYl07ZD1pLnBvc2l0aW9uP2kucG9zaXRpb24uY29vcmRzKGQsCmYtYy5nLWstbSxlLWMuZS1qLWwpOnt4OjAseTowfTtpPWkucmVwZWF0O2w9bT0wO3ZhciB1PWYrMSxuPWUrMSxxPWguRD09PTg/MDoxO2s9TWF0aC5yb3VuZChkLngpK2srMC41O2o9TWF0aC5yb3VuZChkLnkpK2orMC41O2cucG9zaXRpb249ay9mKyIsIitqL2U7aWYoaSYmaSE9PSJyZXBlYXQiKXtpZihpPT09InJlcGVhdC14Inx8aT09PSJuby1yZXBlYXQiKXttPWorMTtuPWorYy5lK3F9aWYoaT09PSJyZXBlYXQteSJ8fGk9PT0ibm8tcmVwZWF0Iil7bD1rKzE7dT1rK2MuZytxfWEuc3R5bGUuY2xpcD0icmVjdCgiK20rInB4LCIrdSsicHgsIituKyJweCwiK2wrInB4KSJ9fSx0aGlzKX0sZ2M6ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKEEsQix5LEcsSCl7aWYoeT09PTB8fHk9PT0xODApcmV0dXJuW0csQl07ZWxzZSBpZih5PT09OTB8fHk9PT0yNzApcmV0dXJuW0EsSF07ZWxzZXt5PU1hdGgudGFuKC15KnUvMTgwKTtBPXkqQS1CO0I9LTEveTtHPUIqRy1IO0g9Qi15O3JldHVyblsoRy0KQSkvSCwoeSpHLUIqQSkvSF19fWZ1bmN0aW9uIGcoKXt4PW0+PTkwJiZtPDI3MD9qOjA7cj1tPDE4MD9rOjA7bz1qLXg7cz1rLXJ9ZnVuY3Rpb24gZCgpe2Zvcig7bTwwOyltKz0zNjA7bSU9MzYwfWZ1bmN0aW9uIGUoQSxCKXt2YXIgeT1CWzBdLUFbMF07QT1CWzFdLUFbMV07cmV0dXJuIE1hdGguYWJzKHk9PT0wP0E6QT09PTA/eTpNYXRoLnNxcnQoeSp5K0EqQSkpfXZhciBmPXRoaXMuZCxpPXRoaXMuby5tKCksaj1pLmcsaz1pLmU7YT1hLmZpbGw7dmFyIG09Yi5SYSxsPWIuVmE7Yj1iLlo7aT1iLmxlbmd0aDt2YXIgdT1NYXRoLlBJLG4scSx0LHYseCxyLG8scyxwLHosRSxDO2lmKGwpe2w9bC5jb29yZHMoZixqLGspO249bC54O3E9bC55fWlmKG0pe209bS5xYygpO2QoKTtnKCk7aWYoIWwpe249eDtxPXJ9bD1jKG4scSxtLG8scyk7dD1sWzBdO3Y9bFsxXX1lbHNlIGlmKGwpe3Q9ai1uO3Y9ay1xfWVsc2V7bj1xPXQ9MDt2PWt9bD10LW47cD12LXE7aWYobT09PXZvaWQgMCl7bT0hbD8KcDwwPzkwOjI3MDohcD9sPDA/MTgwOjA6LU1hdGguYXRhbjIocCxsKS91KjE4MDtkKCk7ZygpfWw9bSU5MD9NYXRoLmF0YW4yKGwqai9rLHApL3UqMTgwOm0rOTA7bCs9MTgwO2wlPTM2MDt6PWUoW24scV0sW3Qsdl0pO3Q9ZShbeCxyXSxjKHgscixtLG8scykpO3Y9W107cT1lKFtuLHFdLGMobixxLG0seCxyKSkvdCoxMDA7bj1bXTtmb3IocD0wO3A8aTtwKyspbi5wdXNoKGJbcF0ueWI/YltwXS55Yi5hKGYseik6cD09PTA/MDpwPT09aS0xP3o6bnVsbCk7Zm9yKHA9MTtwPGk7cCsrKXtpZihuW3BdPT09bnVsbCl7RT1uW3AtMV07ej1wO2RvIEM9blsrK3pdO3doaWxlKEM9PT1udWxsKTtuW3BdPUUrKEMtRSkvKHotcCsxKX1uW3BdPU1hdGgubWF4KG5bcF0sbltwLTFdKX1mb3IocD0wO3A8aTtwKyspdi5wdXNoKHErbltwXS90KjEwMCsiJSAiK2JbcF0uY29sb3IudmFsdWUoZikpO2EuYW5nbGU9bDthLnR5cGU9ImdyYWRpZW50IjthLm1ldGhvZD0ic2lnbWEiO2EuY29sb3I9YlswXS5jb2xvci52YWx1ZShmKTsKYS5jb2xvcjI9YltpLTFdLmNvbG9yLnZhbHVlKGYpO2EuY29sb3JzLnZhbHVlPXYuam9pbigiLCIpfSx1YjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZC5ydW50aW1lU3R5bGU7YS5iYWNrZ3JvdW5kSW1hZ2U9InVybChhYm91dDpibGFuaykiO2EuYmFja2dyb3VuZENvbG9yPSJ0cmFuc3BhcmVudCJ9LGs6ZnVuY3Rpb24oKXtoLkEuay5jYWxsKHRoaXMpO3ZhciBhPXRoaXMuZC5ydW50aW1lU3R5bGU7YS5iYWNrZ3JvdW5kSW1hZ2U9YS5iYWNrZ3JvdW5kQ29sb3I9IiJ9fSk7aC5QYj1oLkEuVih7Qjo0LHphOiJib3JkZXIiLGpjOntUQUJMRToxLElOUFVUOjEsVEVYVEFSRUE6MSxTRUxFQ1Q6MSxPUFRJT046MSxJTUc6MSxIUjoxLEZJRUxEU0VUOjF9LEVjOntzdWJtaXQ6MSxidXR0b246MSxyZXNldDoxfSxOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkguQygpfHxhLnMuQygpfSxmOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybihhLkwuZigpfHxhLnMuZigpfHxhLkcuZigpKSYmCmEuSC5mKCl9LFQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQsYj10aGlzLmguSC5qKCksYz10aGlzLm8ubSgpLGc9Yy5nO2M9Yy5lO3ZhciBkLGUsZixpLGo7aWYoYil7dGhpcy5DYygpO2I9dGhpcy53YygyKTtpPTA7Zm9yKGo9Yi5sZW5ndGg7aTxqO2krKyl7Zj1iW2ldO2Q9dGhpcy5uYSgiYm9yZGVyUGllY2UiK2ksZi5zdHJva2U/InN0cm9rZSI6ImZpbGwiLHRoaXMudSgpKTtkLmNvb3Jkc2l6ZT1nKjIrIiwiK2MqMjtkLmNvb3Jkb3JpZ2luPSIxLDEiO2QucGF0aD1mLnBhdGg7ZT1kLnN0eWxlO2Uud2lkdGg9ZztlLmhlaWdodD1jO2QuZmlsbGVkPSEhZi5maWxsO2Quc3Ryb2tlZD0hIWYuc3Ryb2tlO2lmKGYuc3Ryb2tlKXtkPWQuc3Ryb2tlO2Qud2VpZ2h0PWYuZ2IrInB4IjtkLmNvbG9yPWYuY29sb3IudmFsdWUoYSk7ZC5kYXNoc3R5bGU9Zi5zdHJva2U9PT0iZGFzaGVkIj8iMiAyIjpmLnN0cm9rZT09PSJkb3R0ZWQiPyIxIDEiOiJzb2xpZCI7ZC5saW5lc3R5bGU9Zi5zdHJva2U9PT0KImRvdWJsZSImJmYuZ2I+Mj8iVGhpblRoaW4iOiJTaW5nbGUifWVsc2UgZC5maWxsLmNvbG9yPWYuZmlsbC52YWx1ZShhKX1mb3IoO3RoaXMuU2EoImJvcmRlclBpZWNlIitpKyspOyk7fX0sQ2M6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQsYj1hLmN1cnJlbnRTdHlsZSxjPWEucnVudGltZVN0eWxlLGc9YS50YWdOYW1lLGQ9aC5EPT09NixlO2lmKGQmJmcgaW4gdGhpcy5qY3x8Zz09PSJCVVRUT04ifHxnPT09IklOUFVUIiYmYS50eXBlIGluIHRoaXMuRWMpe2MuYm9yZGVyV2lkdGg9IiI7Zz10aGlzLmguSC5CYjtmb3IoZT1nLmxlbmd0aDtlLS07KXtkPWdbZV07Y1sicGFkZGluZyIrZF09IiI7Y1sicGFkZGluZyIrZF09KG5ldyBoLmkoYlsicGFkZGluZyIrZF0pKS5hKGEpKyhuZXcgaC5pKGJbImJvcmRlciIrZCsiV2lkdGgiXSkpLmEoYSkrKCFoLkQ9PT04JiZlJTI/MTowKX1jLmJvcmRlcldpZHRoPTB9ZWxzZSBpZihkKXtpZihhLmNoaWxkTm9kZXMubGVuZ3RoIT09MXx8YS5maXJzdENoaWxkLnRhZ05hbWUhPT0KImllNi1tYXNrIil7Yj1kb2MuY3JlYXRlRWxlbWVudCgiaWU2LW1hc2siKTtnPWIuc3R5bGU7Zy52aXNpYmlsaXR5PSJ2aXNpYmxlIjtmb3IoZy56b29tPTE7Zz1hLmZpcnN0Q2hpbGQ7KWIuYXBwZW5kQ2hpbGQoZyk7YS5hcHBlbmRDaGlsZChiKTtjLnZpc2liaWxpdHk9ImhpZGRlbiJ9fWVsc2UgYy5ib3JkZXJDb2xvcj0idHJhbnNwYXJlbnQifSx3YzpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmQsYyxnLGQsZT10aGlzLmguSCxmPVtdLGksaixrLG0sbD1NYXRoLnJvdW5kLHUsbixxO2lmKGUuZigpKXtjPWUuaigpO2U9Yy5oYjtuPWMuUmM7cT1jLm1jO2lmKGMuV2MmJmMuU2MmJmMubmMpe2lmKHEudC5oYSgpPjApe2M9ZS50LmEoYik7az1jLzI7Zi5wdXNoKHtwYXRoOnRoaXMua2Eoe1A6ayxPOmssSzprLE06a30sYSksc3Ryb2tlOm4udCxjb2xvcjpxLnQsZ2I6Y30pfX1lbHNle2E9YXx8MTtjPXRoaXMuby5tKCk7Zz1jLmc7ZD1jLmU7Yz1sKGUudC5hKGIpKTtrPWwoZS5yLmEoYikpOwptPWwoZS5iLmEoYikpO2I9bChlLmwuYShiKSk7dmFyIHQ9e3Q6YyxyOmssYjptLGw6Yn07Yj10aGlzLmgucztpZihiLmYoKSl1PXRoaXMudGIoYi5qKCkpO2k9TWF0aC5mbG9vcjtqPU1hdGguY2VpbDt2YXIgdj1mdW5jdGlvbihvLHMpe3JldHVybiB1P3Vbb11bc106MH0seD1mdW5jdGlvbihvLHMscCx6LEUsQyl7dmFyIEE9digieCIsbyksQj12KCJ5IixvKSx5PW8uY2hhckF0KDEpPT09InIiO289by5jaGFyQXQoMCk9PT0iYiI7cmV0dXJuIEE+MCYmQj4wPyhDPyJhbCI6ImFlIikrKHk/aihnLUEpOmkoQSkpKmErIiwiKyhvP2ooZC1CKTppKEIpKSphKyIsIisoaShBKS1zKSphKyIsIisoaShCKS1wKSphKyIsIit6KjY1NTM1KyIsIisyOTQ5MDc1KihFPzE6LTEpOihDPyJtIjoibCIpKyh5P2ctczpzKSphKyIsIisobz9kLXA6cCkqYX0scj1mdW5jdGlvbihvLHMscCx6KXt2YXIgRT1vPT09InQiP2kodigieCIsInRsIikpKmErIiwiK2oocykqYTpvPT09InIiP2ooZy1zKSphKyIsIisKaSh2KCJ5IiwidHIiKSkqYTpvPT09ImIiP2ooZy12KCJ4IiwiYnIiKSkqYSsiLCIraShkLXMpKmE6aShzKSphKyIsIitqKGQtdigieSIsImJsIikpKmE7bz1vPT09InQiP2ooZy12KCJ4IiwidHIiKSkqYSsiLCIraihzKSphOm89PT0iciI/aihnLXMpKmErIiwiK2ooZC12KCJ5IiwiYnIiKSkqYTpvPT09ImIiP2kodigieCIsImJsIikpKmErIiwiK2koZC1zKSphOmkocykqYSsiLCIraSh2KCJ5IiwidGwiKSkqYTtyZXR1cm4gcD8oej8ibSIrbzoiIikrImwiK0U6KHo/Im0iK0U6IiIpKyJsIitvfTtiPWZ1bmN0aW9uKG8scyxwLHosRSxDKXt2YXIgQT1vPT09ImwifHxvPT09InIiLEI9dFtvXSx5LEc7aWYoQj4wJiZuW29dIT09Im5vbmUiJiZxW29dLmhhKCk+MCl7eT10W0E/bzpzXTtzPXRbQT9zOm9dO0c9dFtBP286cF07cD10W0E/cDpvXTtpZihuW29dPT09ImRhc2hlZCJ8fG5bb109PT0iZG90dGVkIil7Zi5wdXNoKHtwYXRoOngoeix5LHMsQys0NSwwLDEpK3goeiwwLDAsQywxLDApLApmaWxsOnFbb119KTtmLnB1c2goe3BhdGg6cihvLEIvMiwwLDEpLHN0cm9rZTpuW29dLGdiOkIsY29sb3I6cVtvXX0pO2YucHVzaCh7cGF0aDp4KEUsRyxwLEMsMCwxKSt4KEUsMCwwLEMtNDUsMSwwKSxmaWxsOnFbb119KX1lbHNlIGYucHVzaCh7cGF0aDp4KHoseSxzLEMrNDUsMCwxKStyKG8sQiwwLDApK3goRSxHLHAsQywwLDApKyhuW29dPT09ImRvdWJsZSImJkI+Mj94KEUsRy1pKEcvMykscC1pKHAvMyksQy00NSwxLDApK3IobyxqKEIvMyoyKSwxLDApK3goeix5LWkoeS8zKSxzLWkocy8zKSxDLDEsMCkrInggIit4KHosaSh5LzMpLGkocy8zKSxDKzQ1LDAsMSkrcihvLGkoQi8zKSwxLDApK3goRSxpKEcvMyksaShwLzMpLEMsMCwwKToiIikreChFLDAsMCxDLTQ1LDEsMCkrcihvLDAsMSwwKSt4KHosMCwwLEMsMSwwKSxmaWxsOnFbb119KX19O2IoInQiLCJsIiwiciIsInRsIiwidHIiLDkwKTtiKCJyIiwidCIsImIiLCJ0ciIsImJyIiwwKTtiKCJiIiwiciIsImwiLCJiciIsImJsIiwKLTkwKTtiKCJsIiwiYiIsInQiLCJibCIsInRsIiwtMTgwKX19cmV0dXJuIGZ9LGs6ZnVuY3Rpb24oKXtoLkEuay5jYWxsKHRoaXMpO3RoaXMuZC5ydW50aW1lU3R5bGUuYm9yZGVyQ29sb3I9IiJ9fSk7aC5OYj1oLkEuVih7Qjo1LEljOlsidCIsInRyIiwiciIsImJyIiwiYiIsImJsIiwibCIsInRsIiwiYyJdLE46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oLkwuQygpfSxmOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaC5MLmYoKX0sVDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5MLmooKSxiPXRoaXMuby5tKCk7dGhpcy51KCk7dmFyIGM9dGhpcy5kLGc9dGhpcy56YjtoLm4uSWIoYS5zcmMsZnVuY3Rpb24oZCl7ZnVuY3Rpb24gZSh4LHIsbyxzLHApe3g9Z1t4XS5zdHlsZTt4LndpZHRoPXI7eC5oZWlnaHQ9bzt4LmxlZnQ9czt4LnRvcD1wfWZ1bmN0aW9uIGYoeCxyLG8pe2Zvcih2YXIgcz0wLHA9eC5sZW5ndGg7czxwO3MrKylnW3hbc11dLmltYWdlZGF0YVtyXT1vfXZhciBpPWIuZyxqPQpiLmUsaz1hLndpZHRoLG09ay5QLmEoYyksbD1rLk8uYShjKSx1PWsuSy5hKGMpO2s9ay5NLmEoYyk7dmFyIG49YS5zbGljZSxxPW4uUC5hKGMpLHQ9bi5PLmEoYyksdj1uLksuYShjKTtuPW4uTS5hKGMpO2UoInRsIixrLG0sMCwwKTtlKCJ0IixpLWstbCxtLGssMCk7ZSgidHIiLGwsbSxpLWwsMCk7ZSgiciIsbCxqLW0tdSxpLWwsbSk7ZSgiYnIiLGwsdSxpLWwsai11KTtlKCJiIixpLWstbCx1LGssai11KTtlKCJibCIsayx1LDAsai11KTtlKCJsIixrLGotbS11LDAsbSk7ZSgiYyIsaS1rLWwsai1tLXUsayxtKTtmKFsidGwiLCJ0IiwidHIiXSwiY3JvcEJvdHRvbSIsKGQuZS1xKS9kLmUpO2YoWyJ0bCIsImwiLCJibCJdLCJjcm9wUmlnaHQiLChkLmctbikvZC5nKTtmKFsiYmwiLCJiIiwiYnIiXSwiY3JvcFRvcCIsKGQuZS12KS9kLmUpO2YoWyJ0ciIsInIiLCJiciJdLCJjcm9wTGVmdCIsKGQuZy10KS9kLmcpO2lmKGEucmVwZWF0LmViPT09InN0cmV0Y2giKXtmKFsibCIsInIiLCJjIl0sCiJjcm9wVG9wIixxL2QuZSk7ZihbImwiLCJyIiwiYyJdLCJjcm9wQm90dG9tIix2L2QuZSl9aWYoYS5yZXBlYXQuZT09PSJzdHJldGNoIil7ZihbInQiLCJiIiwiYyJdLCJjcm9wTGVmdCIsbi9kLmcpO2YoWyJ0IiwiYiIsImMiXSwiY3JvcFJpZ2h0Iix0L2QuZyl9Zy5jLnN0eWxlLmRpc3BsYXk9YS5maWxsPyIiOiJub25lIn0sdGhpcyl9LHU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnBhcmVudC5tYSh0aGlzLkIpLGIsYyxnLGQ9dGhpcy5JYyxlPWQubGVuZ3RoO2lmKCFhKXthPWRvYy5jcmVhdGVFbGVtZW50KCJib3JkZXItaW1hZ2UiKTtiPWEuc3R5bGU7Yi5wb3NpdGlvbj0iYWJzb2x1dGUiO3RoaXMuemI9e307Zm9yKGc9MDtnPGU7ZysrKXtjPXRoaXMuemJbZFtnXV09aC5uLkFhKCJyZWN0Iik7Yy5hcHBlbmRDaGlsZChoLm4uQWEoImltYWdlZGF0YSIpKTtiPWMuc3R5bGU7Yi5iZWhhdmlvcj0idXJsKCNkZWZhdWx0I1ZNTCkiO2IucG9zaXRpb249ImFic29sdXRlIjtiLnRvcD1iLmxlZnQ9CjA7Yy5pbWFnZWRhdGEuc3JjPXRoaXMuaC5MLmooKS5zcmM7Yy5zdHJva2VkPWZhbHNlO2MuZmlsbGVkPWZhbHNlO2EuYXBwZW5kQ2hpbGQoYyl9dGhpcy5wYXJlbnQuUWEodGhpcy5CLGEpfXJldHVybiBhfX0pO2guUmI9aC5BLlYoe0I6MSx6YToib3V0c2V0LWJveC1zaGFkb3ciLE46ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmg7cmV0dXJuIGEuUy5DKCl8fGEucy5DKCl9LGY6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmguUztyZXR1cm4gYS5mKCkmJmEuaigpLnBhWzBdfSxUOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh5LEcsSCx3LEQsRixJKXt5PWIubmEoInNoYWRvdyIreStHLCJmaWxsIixnLGYteSk7Rz15LmZpbGw7eS5jb29yZHNpemU9bSoyKyIsIitsKjI7eS5jb29yZG9yaWdpbj0iMSwxIjt5LnN0cm9rZWQ9ZmFsc2U7eS5maWxsZWQ9dHJ1ZTtHLmNvbG9yPUQudmFsdWUoYyk7aWYoRil7Ry50eXBlPSJncmFkaWVudHRpdGxlIjtHLmNvbG9yMj1HLmNvbG9yO0cub3BhY2l0eT0wfXkucGF0aD0KSTt2PXkuc3R5bGU7di5sZWZ0PUg7di50b3A9dzt2LndpZHRoPW07di5oZWlnaHQ9bDtyZXR1cm4geX12YXIgYj10aGlzLGM9dGhpcy5kLGc9dGhpcy51KCksZD10aGlzLmgsZT1kLlMuaigpLnBhO2Q9ZC5zLmooKTt2YXIgZj1lLmxlbmd0aCxpPWYsaixrPXRoaXMuby5tKCksbT1rLmcsbD1rLmU7az1oLkQ9PT04PzE6MDtmb3IodmFyIHU9WyJ0bCIsInRyIiwiYnIiLCJibCJdLG4scSx0LHYseCxyLG8scyxwLHosRSxDLEEsQjtpLS07KXtxPWVbaV07eD1xLlhjLmEoYyk7cj1xLlljLmEoYyk7aj1xLlBjLmEoYyk7bz1xLmJsdXIuYShjKTtxPXEuY29sb3I7cz0tai1vO2lmKCFkJiZvKWQ9aC5JYS5KYjtzPXRoaXMua2Eoe1A6cyxPOnMsSzpzLE06c30sMixkKTtpZihvKXtwPShqK28pKjIrbTt6PShqK28pKjIrbDtFPW8qMi9wO0M9byoyL3o7aWYoby1qPm0vMnx8by1qPmwvMilmb3Ioaj00O2otLTspe249dVtqXTtBPW4uY2hhckF0KDApPT09ImIiO0I9bi5jaGFyQXQoMSk9PT0iciI7Cm49YShpLG4seCxyLHEsbyxzKTt0PW4uZmlsbDt0LmZvY3VzcG9zaXRpb249KEI/MS1FOkUpKyIsIisoQT8xLUM6Qyk7dC5mb2N1c3NpemU9IjAsMCI7bi5zdHlsZS5jbGlwPSJyZWN0KCIrKChBP3ovMjowKStrKSsicHgsIisoQj9wOnAvMikrInB4LCIrKEE/ejp6LzIpKyJweCwiKygoQj9wLzI6MCkraykrInB4KSJ9ZWxzZXtuPWEoaSwiIix4LHIscSxvLHMpO3Q9bi5maWxsO3QuZm9jdXNwb3NpdGlvbj1FKyIsIitDO3QuZm9jdXNzaXplPTEtRSoyKyIsIisoMS1DKjIpfX1lbHNle249YShpLCIiLHgscixxLG8scyk7eD1xLmhhKCk7aWYoeDwxKW4uZmlsbC5vcGFjaXR5PXh9fX19KTtoLlViPWguQS5WKHtCOjYsemE6ImltZ0VsIixOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiB0aGlzLmQuc3JjIT09dGhpcy5hY3x8YS5zLkMoKX0sZjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaDtyZXR1cm4gYS5zLmYoKXx8YS5HLnhiKCl9LFQ6ZnVuY3Rpb24oKXt0aGlzLmFjPWY7dGhpcy5CYygpOwp2YXIgYT10aGlzLm5hKCJpbWciLCJmaWxsIix0aGlzLnUoKSksYj1hLmZpbGwsYz10aGlzLm8ubSgpLGc9Yy5nO2M9Yy5lO3ZhciBkPXRoaXMuaC5ILmooKTtkPWQmJmQuaGI7dmFyIGU9dGhpcy5kLGY9ZS5zcmMsaT1NYXRoLnJvdW5kO2Euc3Ryb2tlZD1mYWxzZTtiLnR5cGU9ImZyYW1lIjtiLnNyYz1mO2IucG9zaXRpb249KGc/MC41L2c6MCkrIiwiKyhjPzAuNS9jOjApO2EuY29vcmRzaXplPWcqMisiLCIrYyoyO2EuY29vcmRvcmlnaW49IjEsMSI7YS5wYXRoPXRoaXMua2EoZD97UDppKGQudC5hKGUpKSxPOmkoZC5yLmEoZSkpLEs6aShkLmIuYShlKSksTTppKGQubC5hKGUpKX06MCwyKTthPWEuc3R5bGU7YS53aWR0aD1nO2EuaGVpZ2h0PWN9LEJjOmZ1bmN0aW9uKCl7dGhpcy5kLnJ1bnRpbWVTdHlsZS5maWx0ZXI9ImFscGhhKG9wYWNpdHk9MCkifSxrOmZ1bmN0aW9uKCl7aC5BLmsuY2FsbCh0aGlzKTt0aGlzLmQucnVudGltZVN0eWxlLmZpbHRlcj0iIn19KTtoLkthPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShmKXtmdW5jdGlvbiBpKCl7aWYoIUIpe3ZhciB3LApELEY9Zi5jdXJyZW50U3R5bGUuZ2V0QXR0cmlidXRlKGMpPT09InRydWUiO2lmKCFBKXtBPTE7Zi5ydW50aW1lU3R5bGUuem9vbT0xO2Zvcih2YXIgST1mLE09MTtJPUkucHJldmlvdXNTaWJsaW5nOylpZihJLm5vZGVUeXBlPT09MSl7TT0wO2JyZWFrfWlmKE0pZi5jbGFzc05hbWUrPSIgIitoLkphKyJmaXJzdC1jaGlsZCJ9cC5EYSgpO2lmKEYmJihEPXAubSgpKSYmKHc9ZG9jLmRvY3VtZW50RWxlbWVudHx8ZG9jLmJvZHkpJiYoRC55PncuY2xpZW50SGVpZ2h0fHxELng+dy5jbGllbnRXaWR0aHx8RC55K0QuZTwwfHxELngrRC5nPDApKXtpZighRyl7Rz0xO2guTWEuWChpKX19ZWxzZXtCPTE7Rz1BPTA7aC5NYS5HYShpKTt6PXtHOm5ldyBoLk1iKGYpLEg6bmV3IGguUWIoZiksTDpuZXcgaC5PYihmKSxzOm5ldyBoLklhKGYpLFM6bmV3IGguU2IoZiksZmI6bmV3IGguWGIoZil9O0U9W3ouRyx6Lkgsei5MLHoucyx6LlMsei5mYl07dz1uZXcgaC5WYihmLHAseik7RD1bbmV3IGguUmIoZiwKcCx6LHcpLG5ldyBoLkxiKGYscCx6LHcpLG5ldyBoLlBiKGYscCx6LHcpLG5ldyBoLk5iKGYscCx6LHcpXTtmLnRhZ05hbWU9PT0iSU1HIiYmRC5wdXNoKG5ldyBoLlViKGYscCx6LHcpKTt3LmljPUQ7cz1bd10uY29uY2F0KEQpO2lmKHc9Zi5jdXJyZW50U3R5bGUuZ2V0QXR0cmlidXRlKGguSSsid2F0Y2gtYW5jZXN0b3JzIikpe0M9W107dz1wYXJzZUludCh3LDEwKTtEPTA7Zm9yKEY9Zi5wYXJlbnROb2RlO0YmJih3PT09Ik5hTiJ8fEQrKzx3KTspe0MucHVzaChGKTtGLmF0dGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIix0KTtGLmF0dGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO0YuYXR0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSk7Rj1GLnBhcmVudE5vZGV9fWguV2E9PT04JiZoLkxhLlgoayk7aygxKX1pZigheSl7eT0xO2YuYXR0YWNoRXZlbnQoIm9ubW92ZSIsaik7Zi5hdHRhY2hFdmVudCgib25yZXNpemUiLGopO2YuYXR0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLAptKTtmLmF0dGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO2YuYXR0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSk7aC50YS5YKGopO2guRi5YKHIpfXAuRmEoKX19ZnVuY3Rpb24gaigpe3AmJnAuemMoKSYmaygpfWZ1bmN0aW9uIGsodyl7aWYoIUgpaWYoQil7dmFyIEQsRjt2KCk7aWYod3x8cC5LYygpKXtEPTA7Zm9yKEY9cy5sZW5ndGg7RDxGO0QrKylzW0RdLmRiKCl9aWYod3x8cC5OYygpKXtEPTA7Zm9yKEY9cy5sZW5ndGg7RDxGO0QrKylzW0RdLkViKCl9eCgpfWVsc2UgQXx8aSgpfWZ1bmN0aW9uIG0oKXt2YXIgdyxELEY7dz1ldmVudDtpZighSCYmISh3JiZ3LnByb3BlcnR5TmFtZSBpbiBlKSlpZihCKXt2KCk7dz0wO2ZvcihEPXMubGVuZ3RoO3c8RDt3Kyspe0Y9c1t3XTtGLlphfHxGLmRiKCk7Ri5OKCkmJkYuRGIoKX14KCl9ZWxzZSBBfHxpKCl9ZnVuY3Rpb24gbCgpe2lmKGYpZi5jbGFzc05hbWUrPWd9ZnVuY3Rpb24gdSgpe2lmKGYpZi5jbGFzc05hbWU9Zi5jbGFzc05hbWUucmVwbGFjZShkLAoiIil9ZnVuY3Rpb24gbigpe3NldFRpbWVvdXQobCwwKX1mdW5jdGlvbiBxKCl7c2V0VGltZW91dCh1LDApfWZ1bmN0aW9uIHQoKXt2YXIgdz1ldmVudC5wcm9wZXJ0eU5hbWU7aWYodz09PSJjbGFzc05hbWUifHx3PT09ImlkIiltKCl9ZnVuY3Rpb24gdigpe3AuRGEoKTtmb3IodmFyIHc9RS5sZW5ndGg7dy0tOylFW3ddLkRhKCl9ZnVuY3Rpb24geCgpe2Zvcih2YXIgdz1FLmxlbmd0aDt3LS07KUVbd10uRmEoKTtwLkZhKCl9ZnVuY3Rpb24gcigpe2lmKHkpe2lmKEMpZm9yKHZhciB3PTAsRD1DLmxlbmd0aCxGO3c8RDt3Kyspe0Y9Q1t3XTtGLmRldGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIix0KTtGLmRldGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO0YuZGV0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSl9Zi5kZXRhY2hFdmVudCgib25tb3ZlIixrKTtmLmRldGFjaEV2ZW50KCJvbnJlc2l6ZSIsayk7Zi5kZXRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsbSk7Zi5kZXRhY2hFdmVudCgib25tb3VzZWVudGVyIiwKbik7Zi5kZXRhY2hFdmVudCgib25tb3VzZWxlYXZlIixxKTtoLkYuR2Eocik7eT0wfX1mdW5jdGlvbiBvKCl7aWYoIUgpe3ZhciB3LEQ7cigpO0g9MTtpZihzKXt3PTA7Zm9yKEQ9cy5sZW5ndGg7dzxEO3crKylzW3ddLmsoKX1oLldhPT09OCYmaC5MYS5HYShrKTtoLnRhLkdhKGspO3M9cD16PUU9Qz1mPW51bGx9fXZhciBzLHA9bmV3IEsoZikseixFLEMsQSxCLHksRyxIO3RoaXMuRGM9aTt0aGlzLnVwZGF0ZT1rO3RoaXMuaz1vO3RoaXMudmM9Zn12YXIgYj17fSxjPWguSSsibGF6eS1pbml0IixnPSIgIitoLkphKyJob3ZlciIsZD1uZXcgUmVnRXhwKCJcXGIiK2guSmErImhvdmVyXFxiIiwiZyIpLGU9e2JhY2tncm91bmQ6MSxiZ0NvbG9yOjEsZGlzcGxheToxfTthLnhjPWZ1bmN0aW9uKGYpe3ZhciBpPWgubi5vYShmKTtyZXR1cm4gYltpXXx8KGJbaV09bmV3IGEoZikpfTthLms9ZnVuY3Rpb24oZil7Zj1oLm4ub2EoZik7dmFyIGk9YltmXTtpZihpKXtpLmsoKTtkZWxldGUgYltmXX19OwphLnJjPWZ1bmN0aW9uKCl7dmFyIGY9W10saTtpZihiKXtmb3IodmFyIGogaW4gYilpZihiLmhhc093blByb3BlcnR5KGopKXtpPWJbal07Zi5wdXNoKGkudmMpO2kuaygpfWI9e319cmV0dXJuIGZ9O3JldHVybiBhfSgpO2guYXR0YWNoPWZ1bmN0aW9uKGEpe2guRDw5JiZoLkthLnhjKGEpLkRjKCl9O2guZGV0YWNoPWZ1bmN0aW9uKGEpe2guS2EuayhhKX19Owp2YXIgTD13aW5kb3cuUElFLE49ZWxlbWVudDtmdW5jdGlvbiBpbml0KCl7ZG9jLm1lZGlhIT09InByaW50IiYmTC5hdHRhY2goTil9ZnVuY3Rpb24gY2xlYW51cCgpe0wuZGV0YWNoKE4pO0w9Tj0wfU4ucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSImJmluaXQoKTsKPC9zY3JpcHQ+CjwvUFVCTElDOkNPTVBPTkVOVD4K);font-size: 12px;font-family: Trebuchet MS, sans-serif;text-transform: uppercase;font-weight: bold;color: #666;border-top:1px solid #c1c1c1;margin-top: 1px;padding-top: 6px;text-align: center;}.all-news a {color: #666;text-decoration: none;}.gallery-box {overflow: hidden;padding-bottom: 10px;padding-left: 10px;margin-top: 7px;}.gallery-box-item {width: 138px;height: 238px;position: relative;float: left;margin: 0 12px 0 0;}.gallery-box-title {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIoAAACWCAYAAAABkxCEAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjM5NjQyNDE5QTA1RDExRTE5NUE4QkNFQUZFQjYzQzJCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjM5NjQyNDFBQTA1RDExRTE5NUE4QkNFQUZFQjYzQzJCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Mzk2NDI0MTdBMDVEMTFFMTk1QThCQ0VBRkVCNjNDMkIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Mzk2NDI0MThBMDVEMTFFMTk1QThCQ0VBRkVCNjNDMkIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7i1WXbAAABUklEQVR42uza2wmAMAxA0Sruv2H28F3doPkoRfAccIFwSfzoFBG1QMNsBAgFoSAUhIJQEAoIBaEgFISCUBAKQgGhIBSEglAQCkJBKCAUhIJQEApCQSgIBYSCUBAKQkEoCAWhgFAQCkJBKAgFoSAUEApCQSgIBaEgFIQCQkEoCAWhIBSEglBAKAgFoSAUhIJQEAoIBaEgFISCUBAKQgGhIBSEglAQCkJBKCAUhIJQEApCQSj8xfJ+1RjIhHIbAzYKNgpCwenBRkEoCEUoCAWhMDiUyxiwURAKTg82CkLB6UEoQsHpwUZBKAgF/yjYKAhFKAgFoSAUhIJQEApCKeU0BmwUhIJQEAp+ZrFREIpQcHqwURAKTg82CkJBKE4PuVAOYyATymoMCAWhIBSEglAQCkLZjAGhIBSEwgdD2Y0BoSAUxobimQFCoV8oXrghFPp4BBgA45dGS1fvGqQAAAAASUVORK5CYII=) no-repeat scroll 0 -13px transparent;position: absolute;text-transform: uppercase;font-size: 11px;color: #666;padding: 7px 9px 25px 11px;line-height: 17px;width: 118px;height:238px;}.grad {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIkAAAAuCAYAAAAcPTqfAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjYyMjU1NjI1QzM5NzExRTBBMDc4RDk3RUNEREM2NjJDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjYyMjU1NjI2QzM5NzExRTBBMDc4RDk3RUNEREM2NjJDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjIyNTU2MjNDMzk3MTFFMEEwNzhEOTdFQ0REQzY2MkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjIyNTU2MjRDMzk3MTFFMEEwNzhEOTdFQ0REQzY2MkMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz61MZMUAAAAnElEQVR42uzcgQmDQBBFQRX773D70PNErcATDmWFGbCB5fETAnGMiGOAG5MTIBJEwvvm69mdgVYk1RkQCSJBJCSIZHMGRIJIEAkJIinOgEgQCSIhQSSrM2BJsCSIBB83WBJEgkhAJIgEkfBVJIszYEnojsSPaVgSRIJI8J0ES4IlQSQgEh5G4m+eWBIsCSJBJPwiEu9MQyT0OQUYAGcoLVHnKBxHAAAAAElFTkSuQmCC) repeat-x scroll center bottom transparent;bottom: -46px;height: 46px;left: 0;position: absolute;width: 138px;}.gallery-item-pic {position: absolute;bottom: 0;}.footer {height: 105px;width: 100%;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABpCAIAAAB00N7pAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjM0MTJFRTBCQkY0RTExRTA4RDVDQTk3NDEyMEM4MzFBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjM0MTJFRTBDQkY0RTExRTA4RDVDQTk3NDEyMEM4MzFBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MzQxMkVFMDlCRjRFMTFFMDhENUNBOTc0MTIwQzgzMUEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MzQxMkVFMEFCRjRFMTFFMDhENUNBOTc0MTIwQzgzMUEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz40yLuhAAAAI0lEQVR42mJ89uwZ461btxhvLVnKsEhGnomBgWEUDy4MEGAA+8sJDiQb1E0AAAAASUVORK5CYII=) repeat-x; overflow: hidden;}.footer-menu {width: 850px;height: 20px;margin: 30px auto 0;}.footer-menu-ul {list-style: none;}.footer-menu li {line-height: 15px;float: left;margin-right: 12px;}.footer-menu li a {color: #fff;text-decoration: none;font-size: 12px;text-transform: uppercase;}.footer-menu-ul-sep {width: 1px;height: 20px;background: #fff;}.footer-menu2 {width:930px;color:#fff;font-size:10px;margin: 0 auto;padding-top: 30px;}.footer-menu2 a {color:#fff;font-size:10px;}.sidebar {width:290px;float: right;margin-top: 14px;}.sideround {-moz-border-radius:10px 10px 0 0px; -webkit-border-radius: 10px 10px 0 0px; border-radius: 10px 10px 0 0px; behavior: url(data:image/htc;base64,PCEtLQpQSUU6IENTUzMgcmVuZGVyaW5nIGZvciBJRQpWZXJzaW9uIDEuMGJldGEzCmh0dHA6Ly9jc3MzcGllLmNvbQpEdWFsLWxpY2Vuc2VkIGZvciB1c2UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIFZlcnNpb24gMi4wIG9yIHRoZSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMi4KLS0+CjwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwMTQpYWJvdXQ6aW50ZXJuZXQgLS0+CjxQVUJMSUM6Q09NUE9ORU5UIGxpZ2h0V2VpZ2h0PSJ0cnVlIj4KPFBVQkxJQzpBVFRBQ0ggRVZFTlQ9Im9uY29udGVudHJlYWR5IiBGT1I9ImVsZW1lbnQiIE9ORVZFTlQ9ImluaXQoKSIgLz4KPFBVQkxJQzpBVFRBQ0ggRVZFTlQ9Im9uZG9jdW1lbnRyZWFkeSIgRk9SPSJlbGVtZW50IiBPTkVWRU5UPSJpbml0KCkiIC8+CjxQVUJMSUM6QVRUQUNIIEVWRU5UPSJvbmRldGFjaCIgRk9SPSJlbGVtZW50IiBPTkVWRU5UPSJjbGVhbnVwKCkiIC8+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBkb2MgPSBlbGVtZW50LmRvY3VtZW50O3ZhciBoPXdpbmRvdy5QSUU7CmlmKCFoKXtoPXdpbmRvdy5QSUU9e0k6Ii1waWUtIixOYToiUGllIixKYToicGllXyIsQ2I6e1REOjEsVEg6MX19O3RyeXtkb2MuZXhlY0NvbW1hbmQoIkJhY2tncm91bmRJbWFnZUNhY2hlIixmYWxzZSx0cnVlKX1jYXRjaChKKXt9aC5EPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPTQsYj1kb2MuY3JlYXRlRWxlbWVudCgiZGl2IiksYz1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpIik7Yi5pbm5lckhUTUw9IjwhLS1baWYgZ3QgSUUgIisgKythKyJdPjxpPjwvaT48IVtlbmRpZl0tLVw+IixjWzBdOyk7cmV0dXJuIGF9KCk7aWYoaC5EPT09NiloLkk9aC5JLnJlcGxhY2UoL14tLywiIik7aC5XYT1oLkQ9PT04JiZkb2MuZG9jdW1lbnRNb2RlO2gubj17QWE6ZnVuY3Rpb24oYSl7dmFyIGI9aC5mYztpZighYil7Yj1oLmZjPWRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yi5uYW1lc3BhY2VzLmFkZCgiY3NzM3ZtbCIsInVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIil9cmV0dXJuIGIuY3JlYXRlRWxlbWVudCgiY3NzM3ZtbDoiK2EpfSwKb2E6ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEuX3BpZUlkfHwoYS5fcGllSWQ9K25ldyBEYXRlK01hdGgucmFuZG9tKCkpfSwkYTpmdW5jdGlvbihhKXt2YXIgYixjLGcsZCxlPWFyZ3VtZW50cztiPTE7Zm9yKGM9ZS5sZW5ndGg7YjxjO2IrKyl7ZD1lW2JdO2ZvcihnIGluIGQpaWYoZC5oYXNPd25Qcm9wZXJ0eShnKSlhW2ddPWRbZ119cmV0dXJuIGF9LEliOmZ1bmN0aW9uKGEsYixjKXt2YXIgZz1oLlpifHwoaC5aYj17fSksZD1nW2FdLGU7aWYoZCliLmNhbGwoYyxkKTtlbHNle2U9bmV3IEltYWdlO2Uub25sb2FkPWZ1bmN0aW9uKCl7ZD1nW2FdPXtnOmUud2lkdGgsZTplLmhlaWdodH07Yi5jYWxsKGMsZCk7ZS5vbmxvYWQ9bnVsbH07ZS5zcmM9YX19fTtoLmVhPWZ1bmN0aW9uKCl7dGhpcy5iYj1bXTt0aGlzLndiPXt9fTtoLmVhLnByb3RvdHlwZT17WDpmdW5jdGlvbihhKXt2YXIgYj1oLm4ub2EoYSksYz10aGlzLndiLGc9dGhpcy5iYjtpZighKGIgaW4gYykpe2NbYl09Zy5sZW5ndGg7CmcucHVzaChhKX19LEdhOmZ1bmN0aW9uKGEpe2E9aC5uLm9hKGEpO3ZhciBiPXRoaXMud2I7aWYoYSYmYSBpbiBiKXtkZWxldGUgdGhpcy5iYltiW2FdXTtkZWxldGUgYlthXX19LENhOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMuYmIsYj1hLmxlbmd0aDtiLS07KWFbYl0mJmFbYl0oKX19O2lmKGguV2E9PT04KXtoLkxhPW5ldyBoLmVhO3NldEludGVydmFsKGZ1bmN0aW9uKCl7aC5MYS5DYSgpfSwyNTApfWguRj1uZXcgaC5lYTt3aW5kb3cuYXR0YWNoRXZlbnQoIm9uYmVmb3JldW5sb2FkIixmdW5jdGlvbigpe2guRi5DYSgpfSk7aC5GLnlhPWZ1bmN0aW9uKGEsYixjKXthLmF0dGFjaEV2ZW50KGIsYyk7dGhpcy5YKGZ1bmN0aW9uKCl7YS5kZXRhY2hFdmVudChiLGMpfSl9OyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtoLnRhLkNhKCl9aC50YT1uZXcgaC5lYTtoLkYueWEod2luZG93LCJvbnJlc2l6ZSIsYSl9KSgpOyhmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtoLk1hLkNhKCl9aC5NYT0KbmV3IGguZWE7aC5GLnlhKHdpbmRvdywib25zY3JvbGwiLGEpO2gudGEuWChhKX0pKCk7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2M9aC5LYS5yYygpfWZ1bmN0aW9uIGIoKXtpZihjKXtmb3IodmFyIGc9MCxkPWMubGVuZ3RoO2c8ZDtnKyspaC5hdHRhY2goY1tnXSk7Yz0wfX12YXIgYztoLkYueWEod2luZG93LCJvbmJlZm9yZXByaW50IixhKTtoLkYueWEod2luZG93LCJvbmFmdGVycHJpbnQiLGIpfSkoKTtoLmk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGUpe3RoaXMudz1lfXZhciBiPWRvYy5jcmVhdGVFbGVtZW50KCJsZW5ndGgtY2FsYyIpLGM9Yi5zdHlsZSxnPXt9LGQ9e307Yy5wb3NpdGlvbj0iYWJzb2x1dGUiO2MudG9wPWMubGVmdD0tOTk5OTthLnByb3RvdHlwZT17Y2I6LyhweHxlbXxleHxtbXxjbXxpbnxwdHxwY3wlKSQvLHJiOmZ1bmN0aW9uKCl7dmFyIGU9Z1t0aGlzLnddO2lmKGU9PT12b2lkIDApZT1nW3RoaXMud109cGFyc2VGbG9hdCh0aGlzLncpO3JldHVybiBlfSwKVWE6ZnVuY3Rpb24oKXt2YXIgZT1kW3RoaXMud107aWYoIWUpe2U9dGhpcy53Lm1hdGNoKHRoaXMuY2IpO2U9ZFt0aGlzLnddPWUmJmVbMF18fCJweCJ9cmV0dXJuIGV9LGE6ZnVuY3Rpb24oZSxmKXt2YXIgaT10aGlzLnJiKCksaj10aGlzLlVhKCk7c3dpdGNoKGope2Nhc2UgInB4IjpyZXR1cm4gaTtjYXNlICIlIjpyZXR1cm4gaSoodHlwZW9mIGY9PT0iZnVuY3Rpb24iP2YoKTpmKS8xMDA7Y2FzZSAiZW0iOnJldHVybiBpKnRoaXMucGIoZSk7Y2FzZSAiZXgiOnJldHVybiBpKnRoaXMucGIoZSkvMjtkZWZhdWx0OnJldHVybiBpKmEub2Nbal19fSxwYjpmdW5jdGlvbihlKXt2YXIgZj1lLmN1cnJlbnRTdHlsZS5mb250U2l6ZTtpZihmLmluZGV4T2YoInB4Iik+MClyZXR1cm4gcGFyc2VGbG9hdChmKTtlbHNle2Iuc3R5bGUud2lkdGg9IjFlbSI7ZS5hcHBlbmRDaGlsZChiKTtmPWIub2Zmc2V0V2lkdGg7Yi5wYXJlbnROb2RlIT09ZSYmZS5yZW1vdmVDaGlsZChiKTtyZXR1cm4gZn19fTsKYS5vYz1mdW5jdGlvbigpe3ZhciBlPVsibW0iLCJjbSIsImluIiwicHQiLCJwYyJdLGY9e30saT1kb2MuZG9jdW1lbnRFbGVtZW50LGo9ZS5sZW5ndGgsaztmb3IoaS5hcHBlbmRDaGlsZChiKTtqLS07KXtrPWVbal07Yi5zdHlsZS53aWR0aD0iMTAwIitrO2Zba109Yi5vZmZzZXRXaWR0aC8xMDB9aS5yZW1vdmVDaGlsZChiKTtyZXR1cm4gZn0oKTthLmxiPW5ldyBhKCIwIik7cmV0dXJuIGF9KCk7aC5IYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoZCl7dGhpcy5RPWR9dmFyIGI9bmV3IGguaSgiNTAlIiksYz17dG9wOjEsY2VudGVyOjEsYm90dG9tOjF9LGc9e2xlZnQ6MSxjZW50ZXI6MSxyaWdodDoxfTthLnByb3RvdHlwZT17eWM6ZnVuY3Rpb24oKXtpZighdGhpcy5vYil7dmFyIGQ9dGhpcy5RLGU9ZC5sZW5ndGgsZj1oLmkubGIsaT1oLnEuZmEuYmE7Zj1bImxlZnQiLGYsInRvcCIsZl07aWYoZT09PTEpe2QucHVzaCh7dHlwZTppLHZhbHVlOiJjZW50ZXIifSk7ZSsrfWlmKGU9PT0yKXtpJgooZFswXS50eXBlfGRbMV0udHlwZSkmJmRbMF0udmFsdWUgaW4gYyYmZFsxXS52YWx1ZSBpbiBnJiZkLnB1c2goZC5zaGlmdCgpKTtpZihkWzBdLnR5cGUmaSlpZihkWzBdLnZhbHVlPT09ImNlbnRlciIpZlsxXT1iO2Vsc2UgZlswXT1kWzBdLnZhbHVlO2Vsc2UgaWYoZFswXS5VKCkpZlsxXT1uZXcgaC5pKGRbMF0udmFsdWUpO2lmKGRbMV0udHlwZSZpKWlmKGRbMV0udmFsdWU9PT0iY2VudGVyIilmWzNdPWI7ZWxzZSBmWzJdPWRbMV0udmFsdWU7ZWxzZSBpZihkWzFdLlUoKSlmWzNdPW5ldyBoLmkoZFsxXS52YWx1ZSl9dGhpcy5vYj1mfXJldHVybiB0aGlzLm9ifSxjb29yZHM6ZnVuY3Rpb24oZCxlLGYpe3ZhciBpPXRoaXMueWMoKSxqPWlbMV0uYShkLGUpO2Q9aVszXS5hKGQsZik7cmV0dXJue3g6aVswXT09PSJyaWdodCI/ZS1qOmoseTppWzJdPT09ImJvdHRvbSI/Zi1kOmR9fX07cmV0dXJuIGF9KCk7aC5LYj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7dGhpcy53PWJ9YS5wcm90b3R5cGU9CntjYjovW2Etel0rJC9pLFVhOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWN8fCh0aGlzLmVjPXRoaXMudy5tYXRjaCh0aGlzLmNiKVswXS50b0xvd2VyQ2FzZSgpKX0scWM6ZnVuY3Rpb24oKXt2YXIgYj10aGlzLlliLGM7aWYoYj09PXVuZGVmaW5lZCl7Yj10aGlzLlVhKCk7Yz1wYXJzZUZsb2F0KHRoaXMudywxMCk7Yj10aGlzLlliPWI9PT0iZGVnIj9jOmI9PT0icmFkIj9jL01hdGguUEkqMTgwOmI9PT0iZ3JhZCI/Yy80MDAqMzYwOmI9PT0idHVybiI/YyozNjA6MH1yZXR1cm4gYn19O3JldHVybiBhfSgpO2guUj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYil7dGhpcy53PWJ9YS5NYz0vXHMqcmdiYVwoXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSlccyosXHMqKFxkK3xcZCpcLlxkKylccypcKVxzKi87YS5hYj17YWxpY2VibHVlOiIjRjBGOEZGIixhbnRpcXVld2hpdGU6IiNGQUVCRDciLGFxdWE6IiMwMEZGRkYiLGFxdWFtYXJpbmU6IiM3RkZGRDQiLAphenVyZToiI0YwRkZGRiIsYmVpZ2U6IiNGNUY1REMiLGJpc3F1ZToiI0ZGRTRDNCIsYmxhY2s6IiMwMDAwMDAiLGJsYW5jaGVkYWxtb25kOiIjRkZFQkNEIixibHVlOiIjMDAwMEZGIixibHVldmlvbGV0OiIjOEEyQkUyIixicm93bjoiI0E1MkEyQSIsYnVybHl3b29kOiIjREVCODg3IixjYWRldGJsdWU6IiM1RjlFQTAiLGNoYXJ0cmV1c2U6IiM3RkZGMDAiLGNob2NvbGF0ZToiI0QyNjkxRSIsY29yYWw6IiNGRjdGNTAiLGNvcm5mbG93ZXJibHVlOiIjNjQ5NUVEIixjb3Juc2lsazoiI0ZGRjhEQyIsY3JpbXNvbjoiI0RDMTQzQyIsY3lhbjoiIzAwRkZGRiIsZGFya2JsdWU6IiMwMDAwOEIiLGRhcmtjeWFuOiIjMDA4QjhCIixkYXJrZ29sZGVucm9kOiIjQjg4NjBCIixkYXJrZ3JheToiI0E5QTlBOSIsZGFya2dyZWVuOiIjMDA2NDAwIixkYXJra2hha2k6IiNCREI3NkIiLGRhcmttYWdlbnRhOiIjOEIwMDhCIixkYXJrb2xpdmVncmVlbjoiIzU1NkIyRiIsZGFya29yYW5nZToiI0ZGOEMwMCIsCmRhcmtvcmNoaWQ6IiM5OTMyQ0MiLGRhcmtyZWQ6IiM4QjAwMDAiLGRhcmtzYWxtb246IiNFOTk2N0EiLGRhcmtzZWFncmVlbjoiIzhGQkM4RiIsZGFya3NsYXRlYmx1ZToiIzQ4M0Q4QiIsZGFya3NsYXRlZ3JheToiIzJGNEY0RiIsZGFya3R1cnF1b2lzZToiIzAwQ0VEMSIsZGFya3Zpb2xldDoiIzk0MDBEMyIsZGVlcHBpbms6IiNGRjE0OTMiLGRlZXBza3libHVlOiIjMDBCRkZGIixkaW1ncmF5OiIjNjk2OTY5Iixkb2RnZXJibHVlOiIjMUU5MEZGIixmaXJlYnJpY2s6IiNCMjIyMjIiLGZsb3JhbHdoaXRlOiIjRkZGQUYwIixmb3Jlc3RncmVlbjoiIzIyOEIyMiIsZnVjaHNpYToiI0ZGMDBGRiIsZ2FpbnNib3JvOiIjRENEQ0RDIixnaG9zdHdoaXRlOiIjRjhGOEZGIixnb2xkOiIjRkZENzAwIixnb2xkZW5yb2Q6IiNEQUE1MjAiLGdyYXk6IiM4MDgwODAiLGdyZWVuOiIjMDA4MDAwIixncmVlbnllbGxvdzoiI0FERkYyRiIsaG9uZXlkZXc6IiNGMEZGRjAiLGhvdHBpbms6IiNGRjY5QjQiLAppbmRpYW5yZWQ6IiNDRDVDNUMiLGluZGlnbzoiIzRCMDA4MiIsaXZvcnk6IiNGRkZGRjAiLGtoYWtpOiIjRjBFNjhDIixsYXZlbmRlcjoiI0U2RTZGQSIsbGF2ZW5kZXJibHVzaDoiI0ZGRjBGNSIsbGF3bmdyZWVuOiIjN0NGQzAwIixsZW1vbmNoaWZmb246IiNGRkZBQ0QiLGxpZ2h0Ymx1ZToiI0FERDhFNiIsbGlnaHRjb3JhbDoiI0YwODA4MCIsbGlnaHRjeWFuOiIjRTBGRkZGIixsaWdodGdvbGRlbnJvZHllbGxvdzoiI0ZBRkFEMiIsbGlnaHRncmVlbjoiIzkwRUU5MCIsbGlnaHRncmV5OiIjRDNEM0QzIixsaWdodHBpbms6IiNGRkI2QzEiLGxpZ2h0c2FsbW9uOiIjRkZBMDdBIixsaWdodHNlYWdyZWVuOiIjMjBCMkFBIixsaWdodHNreWJsdWU6IiM4N0NFRkEiLGxpZ2h0c2xhdGVncmF5OiIjNzc4ODk5IixsaWdodHN0ZWVsYmx1ZToiI0IwQzRERSIsbGlnaHR5ZWxsb3c6IiNGRkZGRTAiLGxpbWU6IiMwMEZGMDAiLGxpbWVncmVlbjoiIzMyQ0QzMiIsbGluZW46IiNGQUYwRTYiLG1hZ2VudGE6IiNGRjAwRkYiLAptYXJvb246IiM4MDAwMDAiLG1lZGl1bWF1cWFtYXJpbmU6IiM2NkNEQUEiLG1lZGl1bWJsdWU6IiMwMDAwQ0QiLG1lZGl1bW9yY2hpZDoiI0JBNTVEMyIsbWVkaXVtcHVycGxlOiIjOTM3MEQ4IixtZWRpdW1zZWFncmVlbjoiIzNDQjM3MSIsbWVkaXVtc2xhdGVibHVlOiIjN0I2OEVFIixtZWRpdW1zcHJpbmdncmVlbjoiIzAwRkE5QSIsbWVkaXVtdHVycXVvaXNlOiIjNDhEMUNDIixtZWRpdW12aW9sZXRyZWQ6IiNDNzE1ODUiLG1pZG5pZ2h0Ymx1ZToiIzE5MTk3MCIsbWludGNyZWFtOiIjRjVGRkZBIixtaXN0eXJvc2U6IiNGRkU0RTEiLG1vY2Nhc2luOiIjRkZFNEI1IixuYXZham93aGl0ZToiI0ZGREVBRCIsbmF2eToiIzAwMDA4MCIsb2xkbGFjZToiI0ZERjVFNiIsb2xpdmU6IiM4MDgwMDAiLG9saXZlZHJhYjoiIzY4OEUyMyIsb3JhbmdlOiIjRkZBNTAwIixvcmFuZ2VyZWQ6IiNGRjQ1MDAiLG9yY2hpZDoiI0RBNzBENiIscGFsZWdvbGRlbnJvZDoiI0VFRThBQSIscGFsZWdyZWVuOiIjOThGQjk4IiwKcGFsZXR1cnF1b2lzZToiI0FGRUVFRSIscGFsZXZpb2xldHJlZDoiI0Q4NzA5MyIscGFwYXlhd2hpcDoiI0ZGRUZENSIscGVhY2hwdWZmOiIjRkZEQUI5IixwZXJ1OiIjQ0Q4NTNGIixwaW5rOiIjRkZDMENCIixwbHVtOiIjRERBMEREIixwb3dkZXJibHVlOiIjQjBFMEU2IixwdXJwbGU6IiM4MDAwODAiLHJlZDoiI0ZGMDAwMCIscm9zeWJyb3duOiIjQkM4RjhGIixyb3lhbGJsdWU6IiM0MTY5RTEiLHNhZGRsZWJyb3duOiIjOEI0NTEzIixzYWxtb246IiNGQTgwNzIiLHNhbmR5YnJvd246IiNGNEE0NjAiLHNlYWdyZWVuOiIjMkU4QjU3IixzZWFzaGVsbDoiI0ZGRjVFRSIsc2llbm5hOiIjQTA1MjJEIixzaWx2ZXI6IiNDMEMwQzAiLHNreWJsdWU6IiM4N0NFRUIiLHNsYXRlYmx1ZToiIzZBNUFDRCIsc2xhdGVncmF5OiIjNzA4MDkwIixzbm93OiIjRkZGQUZBIixzcHJpbmdncmVlbjoiIzAwRkY3RiIsc3RlZWxibHVlOiIjNDY4MkI0Iix0YW46IiNEMkI0OEMiLHRlYWw6IiMwMDgwODAiLAp0aGlzdGxlOiIjRDhCRkQ4Iix0b21hdG86IiNGRjYzNDciLHR1cnF1b2lzZToiIzQwRTBEMCIsdmlvbGV0OiIjRUU4MkVFIix3aGVhdDoiI0Y1REVCMyIsd2hpdGU6IiNGRkZGRkYiLHdoaXRlc21va2U6IiNGNUY1RjUiLHllbGxvdzoiI0ZGRkYwMCIseWVsbG93Z3JlZW46IiM5QUNEMzIifTthLnByb3RvdHlwZT17cGFyc2U6ZnVuY3Rpb24oKXtpZighdGhpcy53YSl7dmFyIGI9dGhpcy53LGM7aWYoYz1iLm1hdGNoKGEuTWMpKXt0aGlzLndhPSJyZ2IoIitjWzFdKyIsIitjWzJdKyIsIitjWzNdKyIpIjt0aGlzLm1iPXBhcnNlRmxvYXQoY1s0XSl9ZWxzZXtpZigoYz1iLnRvTG93ZXJDYXNlKCkpaW4gYS5hYiliPWEuYWJbY107dGhpcy53YT1iO3RoaXMubWI9Yj09PSJ0cmFuc3BhcmVudCI/MDoxfX19LHZhbHVlOmZ1bmN0aW9uKGIpe3RoaXMucGFyc2UoKTtyZXR1cm4gdGhpcy53YT09PSJjdXJyZW50Q29sb3IiP2IuY3VycmVudFN0eWxlLmNvbG9yOnRoaXMud2F9LGhhOmZ1bmN0aW9uKCl7dGhpcy5wYXJzZSgpOwpyZXR1cm4gdGhpcy5tYn19O3JldHVybiBhfSgpO2gucT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYyl7dGhpcy5CYT1jO3RoaXMuY2g9MDt0aGlzLlE9W107dGhpcy5yYT0wfXZhciBiPWEuZmE9e3NhOjEsaWI6MixhYTo0LFRiOjgsamI6MTYsYmE6MzIsejo2NCxjYToxMjgsZGE6MjU2LHVhOjUxMixXYjoxMDI0LFVSTDoyMDQ4fTthLmtiPWZ1bmN0aW9uKGMsZyl7dGhpcy50eXBlPWM7dGhpcy52YWx1ZT1nfTthLmtiLnByb3RvdHlwZT17WWE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlJmIuenx8dGhpcy50eXBlJmIuY2EmJnRoaXMudmFsdWU9PT0iMCJ9LFU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ZYSgpfHx0aGlzLnR5cGUmYi51YX19O2EucHJvdG90eXBlPXtWYzovXHMvLEdjOi9eW1wrXC1dPyhcZCpcLik/XGQrLyx1cmw6L151cmxcKFxzKigiKFteIl0qKSJ8JyhbXiddKiknfChbISMkJSYqLX5dKikpXHMqXCkvaSx2YjovXlwtP1tfYS16XVtcdy1dKi9pLFFjOi9eKCIoW14iXSopInwnKFteJ10qKScpLywKQWM6L14jKFtcZGEtZl17Nn18W1xkYS1mXXszfSkvaSxUYzp7cHg6Yi56LGVtOmIueixleDpiLnosbW06Yi56LGNtOmIueiwiaW4iOmIueixwdDpiLnoscGM6Yi56LGRlZzpiLnNhLHJhZDpiLnNhLGdyYWQ6Yi5zYX0sbGM6e3JnYjoxLHJnYmE6MSxoc2w6MSxoc2xhOjF9LG5leHQ6ZnVuY3Rpb24oYyl7ZnVuY3Rpb24gZyh1LG4pe3U9bmV3IGEua2IodSxuKTtpZighYyl7ay5RLnB1c2godSk7ay5yYSsrfXJldHVybiB1fWZ1bmN0aW9uIGQoKXtrLnJhKys7cmV0dXJuIG51bGx9dmFyIGUsZixpLGosaz10aGlzO2lmKHRoaXMucmE8dGhpcy5RLmxlbmd0aClyZXR1cm4gdGhpcy5RW3RoaXMucmErK107Zm9yKDt0aGlzLlZjLnRlc3QodGhpcy5CYS5jaGFyQXQodGhpcy5jaCkpOyl0aGlzLmNoKys7aWYodGhpcy5jaD49dGhpcy5CYS5sZW5ndGgpcmV0dXJuIGQoKTtmPXRoaXMuY2g7ZT10aGlzLkJhLnN1YnN0cmluZyh0aGlzLmNoKTtpPWUuY2hhckF0KDApO3N3aXRjaChpKXtjYXNlICIjIjppZihqPQplLm1hdGNoKHRoaXMuQWMpKXt0aGlzLmNoKz1qWzBdLmxlbmd0aDtyZXR1cm4gZyhiLmFhLGpbMF0pfWJyZWFrO2Nhc2UgJyInOmNhc2UgIiciOmlmKGo9ZS5tYXRjaCh0aGlzLlFjKSl7dGhpcy5jaCs9alswXS5sZW5ndGg7cmV0dXJuIGcoYi5XYixqWzJdfHxqWzNdfHwiIil9YnJlYWs7Y2FzZSAiLyI6Y2FzZSAiLCI6dGhpcy5jaCsrO3JldHVybiBnKGIuZGEsaSk7Y2FzZSAidSI6aWYoaj1lLm1hdGNoKHRoaXMudXJsKSl7dGhpcy5jaCs9alswXS5sZW5ndGg7cmV0dXJuIGcoYi5VUkwsalsyXXx8alszXXx8als0XXx8IiIpfX1pZihqPWUubWF0Y2godGhpcy5HYykpe2k9alswXTt0aGlzLmNoKz1pLmxlbmd0aDtpZihlLmNoYXJBdChpLmxlbmd0aCk9PT0iJSIpe3RoaXMuY2grKztyZXR1cm4gZyhiLnVhLGkrIiUiKX1pZihqPWUuc3Vic3RyaW5nKGkubGVuZ3RoKS5tYXRjaCh0aGlzLnZiKSl7aSs9alswXTt0aGlzLmNoKz1qWzBdLmxlbmd0aDtyZXR1cm4gZyh0aGlzLlRjW2pbMF0udG9Mb3dlckNhc2UoKV18fApiLlRiLGkpfXJldHVybiBnKGIuY2EsaSl9aWYoaj1lLm1hdGNoKHRoaXMudmIpKXtpPWpbMF07dGhpcy5jaCs9aS5sZW5ndGg7aWYoaS50b0xvd2VyQ2FzZSgpaW4gaC5SLmFifHxpPT09ImN1cnJlbnRDb2xvciIpcmV0dXJuIGcoYi5hYSxpKTtpZihlLmNoYXJBdChpLmxlbmd0aCk9PT0iKCIpe3RoaXMuY2grKztpZihpLnRvTG93ZXJDYXNlKClpbiB0aGlzLmxjKXtlPWZ1bmN0aW9uKHUpe3JldHVybiB1JiZ1LnR5cGUmYi5jYX07aj1mdW5jdGlvbih1KXtyZXR1cm4gdSYmdS50eXBlJihiLmNhfGIudWEpfTt2YXIgbT1mdW5jdGlvbih1LG4pe3JldHVybiB1JiZ1LnZhbHVlPT09bn0sbD1mdW5jdGlvbigpe3JldHVybiBrLm5leHQoMSl9O2lmKChpLmNoYXJBdCgwKT09PSJyIj9qKGwoKSk6ZShsKCkpKSYmbShsKCksIiwiKSYmaihsKCkpJiZtKGwoKSwiLCIpJiZqKGwoKSkmJihpPT09InJnYiJ8fGk9PT0iaHNhInx8bShsKCksIiwiKSYmZShsKCkpKSYmbShsKCksIikiKSlyZXR1cm4gZyhiLmFhLAp0aGlzLkJhLnN1YnN0cmluZyhmLHRoaXMuY2gpKTtyZXR1cm4gZCgpfXJldHVybiBnKGIuamIsaSsiKCIpfXJldHVybiBnKGIuYmEsaSl9dGhpcy5jaCsrO3JldHVybiBnKGIuaWIsaSl9LHY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5RW3RoaXMucmEtLSAtMl19LGFsbDpmdW5jdGlvbigpe2Zvcig7dGhpcy5uZXh0KCk7KTtyZXR1cm4gdGhpcy5RfSwkOmZ1bmN0aW9uKGMsZyl7Zm9yKHZhciBkPVtdLGUsZjtlPXRoaXMubmV4dCgpOyl7aWYoYyhlKSl7Zj10cnVlO3RoaXMudigpO2JyZWFrfWQucHVzaChlKX1yZXR1cm4gZyYmIWY/bnVsbDpkfX07cmV0dXJuIGF9KCk7dmFyIEs9ZnVuY3Rpb24oYSl7dGhpcy5kPWF9O0sucHJvdG90eXBlPXtKOjAsS2M6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLk9hLGI7cmV0dXJuIWF8fChiPXRoaXMubSgpKSYmKGEueCE9PWIueHx8YS55IT09Yi55KX0sTmM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLk9hLGI7cmV0dXJuIWF8fChiPXRoaXMubSgpKSYmKGEuZyE9PQpiLmd8fGEuZSE9PWIuZSl9LHFiOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt4OmEubGVmdCx5OmEudG9wLGc6YS5yaWdodC1hLmxlZnQsZTphLmJvdHRvbS1hLnRvcH19LG06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5KP3RoaXMueGF8fCh0aGlzLnhhPXRoaXMucWIoKSk6dGhpcy5xYigpfSx6YzpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5PYX0sRGE6ZnVuY3Rpb24oKXsrK3RoaXMuSn0sRmE6ZnVuY3Rpb24oKXtpZighLS10aGlzLkope2lmKHRoaXMueGEpdGhpcy5PYT10aGlzLnhhO3RoaXMueGE9bnVsbH19fTsoZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIpe3ZhciBjPWgubi5vYShiKTtyZXR1cm4gZnVuY3Rpb24oKXtpZih0aGlzLkope3ZhciBnPXRoaXMubmJ8fCh0aGlzLm5iPXt9KTtyZXR1cm4gYyBpbiBnP2dbY106KGdbY109Yi5jYWxsKHRoaXMpKX1lbHNlIHJldHVybiBiLmNhbGwodGhpcyl9fWgucD17SjowLFc6ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYyhnKXt0aGlzLmQ9Cmd9aC5uLiRhKGMucHJvdG90eXBlLGgucCxiKTtjLmRjPXt9O3JldHVybiBjfSxqOmZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5sYSgpLGM9dGhpcy5jb25zdHJ1Y3Rvci5kYztyZXR1cm4gYj9iIGluIGM/Y1tiXTooY1tiXT10aGlzLlkoYikpOm51bGx9LGxhOmEoZnVuY3Rpb24oKXt2YXIgYj10aGlzLmQsYz10aGlzLmNvbnN0cnVjdG9yLGc9Yi5zdHlsZTtiPWIuY3VycmVudFN0eWxlO3ZhciBkPXRoaXMuamEsZT10aGlzLnFhLGY9Yy5iY3x8KGMuYmM9aC5JK2QpO2M9Yy5jY3x8KGMuY2M9aC5OYStlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc3Vic3RyaW5nKDEpKTtyZXR1cm4gZ1tjXXx8Yi5nZXRBdHRyaWJ1dGUoZil8fGdbZV18fGIuZ2V0QXR0cmlidXRlKGQpfSksZjphKGZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmooKX0pLEM6YShmdW5jdGlvbigpe3ZhciBiPXRoaXMubGEoKSxjPWIhPT10aGlzLiRiO3RoaXMuJGI9YjtyZXR1cm4gY30pLGlhOmEsRGE6ZnVuY3Rpb24oKXsrK3RoaXMuSn0sCkZhOmZ1bmN0aW9uKCl7LS10aGlzLkp8fGRlbGV0ZSB0aGlzLm5ifX19KSgpO2guTWI9aC5wLlcoe2phOmguSSsiYmFja2dyb3VuZCIscWE6aC5OYSsiQmFja2dyb3VuZCIsaGM6e3Njcm9sbDoxLGZpeGVkOjEsbG9jYWw6MX0sRWE6eyJyZXBlYXQteCI6MSwicmVwZWF0LXkiOjEscmVwZWF0OjEsIm5vLXJlcGVhdCI6MX0sSGM6eyJwYWRkaW5nLWJveCI6MSwiYm9yZGVyLWJveCI6MSwiY29udGVudC1ib3giOjF9LGtjOnsicGFkZGluZy1ib3giOjEsImJvcmRlci1ib3giOjF9LExjOnt0b3A6MSxyaWdodDoxLGJvdHRvbToxLGxlZnQ6MSxjZW50ZXI6MX0sT2M6e2NvbnRhaW46MSxjb3ZlcjoxfSxZOmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIodil7cmV0dXJuIHYuVSgpfHx2LnR5cGUmaiYmdi52YWx1ZSBpbiB1fWZ1bmN0aW9uIGModil7cmV0dXJuIHYuVSgpJiZuZXcgaC5pKHYudmFsdWUpfHx2LnZhbHVlPT09ImF1dG8iJiYiYXV0byJ9dmFyIGc9dGhpcy5kLmN1cnJlbnRTdHlsZSxkLAplLGY9aC5xLmZhLGk9Zi5kYSxqPWYuYmEsaz1mLmFhLG0sbCx1PXRoaXMuTGMsbixxLHQ9bnVsbDtpZih0aGlzLlRhKCkpe2E9bmV3IGgucShhKTt0PXtpbWFnZXM6W119O2ZvcihlPXt9O2Q9YS5uZXh0KCk7KXttPWQudHlwZTtsPWQudmFsdWU7aWYoIWUudHlwZSYmbSZmLmpiJiZsPT09ImxpbmVhci1ncmFkaWVudCgiKXtuPXtaOltdLHR5cGU6ImxpbmVhci1ncmFkaWVudCJ9O2ZvcihxPXt9O2Q9YS5uZXh0KCk7KXttPWQudHlwZTtsPWQudmFsdWU7aWYobSZmLmliJiZsPT09IikiKXtxLmNvbG9yJiZuLloucHVzaChxKTtuLloubGVuZ3RoPjEmJmgubi4kYShlLG4pO2JyZWFrfWlmKG0mayl7aWYobi5SYXx8bi5WYSl7ZD1hLnYoKTtpZihkLnR5cGUhPT1pKWJyZWFrO2EubmV4dCgpfXE9e2NvbG9yOm5ldyBoLlIobCl9O2Q9YS5uZXh0KCk7aWYoZC5VKCkpcS55Yj1uZXcgaC5pKGQudmFsdWUpO2Vsc2UgYS52KCl9ZWxzZSBpZihtJmYuc2EmJiFuLlJhJiYhcS5jb2xvciYmIW4uWi5sZW5ndGgpbi5SYT0KbmV3IGguS2IoZC52YWx1ZSk7ZWxzZSBpZihiKGQpJiYhbi5WYSYmIXEuY29sb3ImJiFuLloubGVuZ3RoKXthLnYoKTtuLlZhPW5ldyBoLkhhKGEuJChmdW5jdGlvbih2KXtyZXR1cm4hYih2KX0sZmFsc2UpKX1lbHNlIGlmKG0maSYmbD09PSIsIil7aWYocS5jb2xvcil7bi5aLnB1c2gocSk7cT17fX19ZWxzZSBicmVha319ZWxzZSBpZighZS50eXBlJiZtJmYuVVJMKXtlLnVybD1sO2UudHlwZT0iaW1hZ2UifWVsc2UgaWYoYihkKSYmIWUuc2l6ZSl7YS52KCk7ZS5wb3NpdGlvbj1uZXcgaC5IYShhLiQoZnVuY3Rpb24odil7cmV0dXJuIWIodil9LGZhbHNlKSl9ZWxzZSBpZihtJmopaWYobCBpbiB0aGlzLkVhKWUucmVwZWF0PWw7ZWxzZSBpZihsIGluIHRoaXMuSGMpe2Uub3JpZ2luPWw7aWYobCBpbiB0aGlzLmtjKWUuY2xpcD1sfWVsc2V7aWYobCBpbiB0aGlzLmhjKWUuWmM9bH1lbHNlIGlmKG0mayYmIXQuY29sb3IpdC5jb2xvcj1uZXcgaC5SKGwpO2Vsc2UgaWYobSZpKWlmKGw9PT0KIi8iKXtkPWEubmV4dCgpO209ZC50eXBlO2w9ZC52YWx1ZTtpZihtJmomJmwgaW4gdGhpcy5PYyllLnNpemU9bDtlbHNlIGlmKGw9YyhkKSllLnNpemU9e2c6bCxlOmMoYS5uZXh0KCkpfHxhLnYoKSYmbH19ZWxzZXtpZihsPT09IiwiJiZlLnR5cGUpe3QuaW1hZ2VzLnB1c2goZSk7ZT17fX19ZWxzZSByZXR1cm4gbnVsbH1lLnR5cGUmJnQuaW1hZ2VzLnB1c2goZSl9ZWxzZSB0aGlzLkdiKGZ1bmN0aW9uKCl7dmFyIHY9Zy5iYWNrZ3JvdW5kUG9zaXRpb25YLHg9Zy5iYWNrZ3JvdW5kUG9zaXRpb25ZLHI9Zy5iYWNrZ3JvdW5kSW1hZ2Usbz1nLmJhY2tncm91bmRDb2xvcjt0PXt9O2lmKG8hPT0idHJhbnNwYXJlbnQiKXQuY29sb3I9bmV3IGguUihvKTtpZihyIT09Im5vbmUiKXQuaW1hZ2VzPVt7dHlwZToiaW1hZ2UiLHVybDoobmV3IGgucShyKSkubmV4dCgpLnZhbHVlLHJlcGVhdDpnLmJhY2tncm91bmRSZXBlYXQscG9zaXRpb246bmV3IGguSGEoKG5ldyBoLnEodisiICIreCkpLmFsbCgpKX1dfSk7CnJldHVybiB0JiYodC5jb2xvcnx8dC5pbWFnZXMmJnQuaW1hZ2VzWzBdKT90Om51bGx9LEdiOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZC5ydW50aW1lU3R5bGUsYz1iLmJhY2tncm91bmRJbWFnZSxnPWIuYmFja2dyb3VuZENvbG9yO2lmKGMpYi5iYWNrZ3JvdW5kSW1hZ2U9IiI7aWYoZyliLmJhY2tncm91bmRDb2xvcj0iIjthPWEuY2FsbCh0aGlzKTtpZihjKWIuYmFja2dyb3VuZEltYWdlPWM7aWYoZyliLmJhY2tncm91bmRDb2xvcj1nO3JldHVybiBhfSxsYTpoLnAuaWEoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5UYSgpfHx0aGlzLkdiKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kLmN1cnJlbnRTdHlsZTtyZXR1cm4gYS5iYWNrZ3JvdW5kQ29sb3IrIiAiK2EuYmFja2dyb3VuZEltYWdlKyIgIithLmJhY2tncm91bmRSZXBlYXQrIiAiK2EuYmFja2dyb3VuZFBvc2l0aW9uWCsiICIrYS5iYWNrZ3JvdW5kUG9zaXRpb25ZfSl9KSxUYTpoLnAuaWEoZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQ7CnJldHVybiBhLnN0eWxlW3RoaXMucWFdfHxhLmN1cnJlbnRTdHlsZS5nZXRBdHRyaWJ1dGUodGhpcy5qYSl9KSx4YjpmdW5jdGlvbigpe3ZhciBhPTA7aWYoaC5EPDcpe2E9dGhpcy5kO2E9IiIrKGEuc3R5bGVbaC5OYSsiUG5nRml4Il18fGEuY3VycmVudFN0eWxlLmdldEF0dHJpYnV0ZShoLkkrInBuZy1maXgiKSk9PT0idHJ1ZSJ9cmV0dXJuIGF9LGY6aC5wLmlhKGZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuVGEoKXx8dGhpcy54YigpKSYmISF0aGlzLmooKX0pfSk7aC5RYj1oLnAuVyh7QmI6WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxGYzp7YmQ6IjFweCIsJGM6IjNweCIsYWQ6IjVweCJ9LFk6ZnVuY3Rpb24oKXt2YXIgYT17fSxiPXt9LGM9e30sZz1mYWxzZSxkPXRydWUsZT10cnVlLGY9dHJ1ZTt0aGlzLkhiKGZ1bmN0aW9uKCl7Zm9yKHZhciBpPXRoaXMuZC5jdXJyZW50U3R5bGUsaj0wLGssbSxsLHUsbixxLHQ7ajw0O2orKyl7bD10aGlzLkJiW2pdO3Q9bC5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTsKaz1iW3RdPWlbImJvcmRlciIrbCsiU3R5bGUiXTttPWlbImJvcmRlciIrbCsiQ29sb3IiXTtsPWlbImJvcmRlciIrbCsiV2lkdGgiXTtpZihqPjApe2lmKGshPT11KWU9ZmFsc2U7aWYobSE9PW4pZD1mYWxzZTtpZihsIT09cSlmPWZhbHNlfXU9aztuPW07cT1sO2NbdF09bmV3IGguUihtKTtsPWFbdF09bmV3IGguaShiW3RdPT09Im5vbmUiPyIwIjp0aGlzLkZjW2xdfHxsKTtpZihsLmEodGhpcy5kKT4wKWc9dHJ1ZX19KTtyZXR1cm4gZz97aGI6YSxSYzpiLG1jOmMsV2M6ZixuYzpkLFNjOmV9Om51bGx9LGxhOmgucC5pYShmdW5jdGlvbigpe3ZhciBhPXRoaXMuZCxiPWEuY3VycmVudFN0eWxlLGM7YS50YWdOYW1lIGluIGguQ2ImJmEub2Zmc2V0UGFyZW50LmN1cnJlbnRTdHlsZS5ib3JkZXJDb2xsYXBzZT09PSJjb2xsYXBzZSJ8fHRoaXMuSGIoZnVuY3Rpb24oKXtjPWIuYm9yZGVyV2lkdGgrInwiK2IuYm9yZGVyU3R5bGUrInwiK2IuYm9yZGVyQ29sb3J9KTtyZXR1cm4gY30pLEhiOmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLmQucnVudGltZVN0eWxlLGM9Yi5ib3JkZXJXaWR0aCxnPWIuYm9yZGVyQ29sb3I7aWYoYyliLmJvcmRlcldpZHRoPSIiO2lmKGcpYi5ib3JkZXJDb2xvcj0iIjthPWEuY2FsbCh0aGlzKTtpZihjKWIuYm9yZGVyV2lkdGg9YztpZihnKWIuYm9yZGVyQ29sb3I9ZztyZXR1cm4gYX19KTsoZnVuY3Rpb24oKXtoLklhPWgucC5XKHtqYToiYm9yZGVyLXJhZGl1cyIscWE6ImJvcmRlclJhZGl1cyIsWTpmdW5jdGlvbihiKXt2YXIgYz1udWxsLGcsZCxlLGYsaT1mYWxzZTtpZihiKXtkPW5ldyBoLnEoYik7dmFyIGo9ZnVuY3Rpb24oKXtmb3IodmFyIGs9W10sbTsoZT1kLm5leHQoKSkmJmUuVSgpOyl7Zj1uZXcgaC5pKGUudmFsdWUpO209Zi5yYigpO2lmKG08MClyZXR1cm4gbnVsbDtpZihtPjApaT10cnVlO2sucHVzaChmKX1yZXR1cm4gay5sZW5ndGg+MCYmay5sZW5ndGg8NT97dGw6a1swXSx0cjprWzFdfHxrWzBdLGJyOmtbMl18fGtbMF0sYmw6a1szXXx8a1sxXXx8a1swXX06bnVsbH07CmlmKGI9aigpKXtpZihlKXtpZihlLnR5cGUmaC5xLmZhLmRhJiZlLnZhbHVlPT09Ii8iKWc9aigpfWVsc2UgZz1iO2lmKGkmJmImJmcpYz17eDpiLHk6Z319fXJldHVybiBjfX0pO3ZhciBhPWguaS5sYjthPXt0bDphLHRyOmEsYnI6YSxibDphfTtoLklhLkpiPXt4OmEseTphfX0pKCk7aC5PYj1oLnAuVyh7amE6ImJvcmRlci1pbWFnZSIscWE6ImJvcmRlckltYWdlIixFYTp7c3RyZXRjaDoxLHJvdW5kOjEscmVwZWF0OjEsc3BhY2U6MX0sWTpmdW5jdGlvbihhKXt2YXIgYj1udWxsLGMsZyxkLGUsZixpLGo9MCxrLG09aC5xLmZhLGw9bS5iYSx1PW0uY2Esbj1tLnoscT1tLnVhO2lmKGEpe2M9bmV3IGgucShhKTtiPXt9O2Zvcih2YXIgdD1mdW5jdGlvbihyKXtyZXR1cm4gciYmci50eXBlJm0uZGEmJnIudmFsdWU9PT0iLyJ9LHY9ZnVuY3Rpb24ocil7cmV0dXJuIHImJnIudHlwZSZsJiZyLnZhbHVlPT09ImZpbGwifSx4PWZ1bmN0aW9uKCl7ZT1jLiQoZnVuY3Rpb24ocil7cmV0dXJuIShyLnR5cGUmCih1fHEpKX0pO2lmKHYoYy5uZXh0KCkpJiYhYi5maWxsKWIuZmlsbD10cnVlO2Vsc2UgYy52KCk7aWYodChjLm5leHQoKSkpe2orKztmPWMuJChmdW5jdGlvbigpe3JldHVybiEoZy50eXBlJih1fHF8bikpJiYhKGcudHlwZSZsJiZnLnZhbHVlPT09ImF1dG8iKX0pO2lmKHQoYy5uZXh0KCkpKXtqKys7aT1jLiQoZnVuY3Rpb24oKXtyZXR1cm4hKGcudHlwZSYodXxuKSl9KX19ZWxzZSBjLnYoKX07Zz1jLm5leHQoKTspe2E9Zy50eXBlO2Q9Zy52YWx1ZTtpZihhJih1fHEpJiYhZSl7Yy52KCk7eCgpfWVsc2UgaWYodihnKSYmIWIuZmlsbCl7Yi5maWxsPXRydWU7eCgpfWVsc2UgaWYoYSZsJiZ0aGlzLkVhW2RdJiYhYi5yZXBlYXQpe2IucmVwZWF0PXtlOmR9O2lmKGc9Yy5uZXh0KCkpaWYoZy50eXBlJmwmJnRoaXMuRWFbZy52YWx1ZV0pYi5yZXBlYXQuZWI9Zy52YWx1ZTtlbHNlIGMudigpfWVsc2UgaWYoYSZtLlVSTCYmIWIuc3JjKWIuc3JjPWQ7ZWxzZSByZXR1cm4gbnVsbH1pZighYi5zcmN8fAohZXx8ZS5sZW5ndGg8MXx8ZS5sZW5ndGg+NHx8ZiYmZi5sZW5ndGg+NHx8aj09PTEmJmYubGVuZ3RoPDF8fGkmJmkubGVuZ3RoPjR8fGo9PT0yJiZpLmxlbmd0aDwxKXJldHVybiBudWxsO2lmKCFiLnJlcGVhdCliLnJlcGVhdD17ZToic3RyZXRjaCJ9O2lmKCFiLnJlcGVhdC5lYiliLnJlcGVhdC5lYj1iLnJlcGVhdC5lO2E9ZnVuY3Rpb24ocixvKXtyZXR1cm57UDpvKHJbMF0pLE86byhyWzFdfHxyWzBdKSxLOm8oclsyXXx8clswXSksTTpvKHJbM118fHJbMV18fHJbMF0pfX07Yi5zbGljZT1hKGUsZnVuY3Rpb24ocil7cmV0dXJuIG5ldyBoLmkoci50eXBlJnU/ci52YWx1ZSsicHgiOnIudmFsdWUpfSk7Yi53aWR0aD1mJiZmLmxlbmd0aD4wP2EoZixmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlJihufHEpP25ldyBoLmkoci52YWx1ZSk6ci52YWx1ZX0pOihrPXRoaXMuZC5jdXJyZW50U3R5bGUpJiZ7UDpuZXcgaC5pKGsuYm9yZGVyVG9wV2lkdGgpLE86bmV3IGguaShrLmJvcmRlclJpZ2h0V2lkdGgpLApLOm5ldyBoLmkoay5ib3JkZXJCb3R0b21XaWR0aCksTTpuZXcgaC5pKGsuYm9yZGVyTGVmdFdpZHRoKX07Yi5wYT1hKGl8fFswXSxmdW5jdGlvbihyKXtyZXR1cm4gci50eXBlJm4/bmV3IGguaShyLnZhbHVlKTpyLnZhbHVlfSl9cmV0dXJuIGJ9fSk7aC5TYj1oLnAuVyh7amE6ImJveC1zaGFkb3ciLHFhOiJib3hTaGFkb3ciLFk6ZnVuY3Rpb24oYSl7dmFyIGIsYz1oLmksZz1oLnEuZmEsZDtpZihhKXtkPW5ldyBoLnEoYSk7Yj17cGE6W10sWGE6W119O2ZvcihhPWZ1bmN0aW9uKCl7Zm9yKHZhciBlLGYsaSxqLGssbTtlPWQubmV4dCgpOyl7aT1lLnZhbHVlO2Y9ZS50eXBlO2lmKGYmZy5kYSYmaT09PSIsIilicmVhaztlbHNlIGlmKGUuWWEoKSYmIWspe2QudigpO2s9ZC4kKGZ1bmN0aW9uKGwpe3JldHVybiFsLllhKCl9KX1lbHNlIGlmKGYmZy5hYSYmIWopaj1pO2Vsc2UgaWYoZiZnLmJhJiZpPT09Imluc2V0IiYmIW0pbT10cnVlO2Vsc2UgcmV0dXJuIGZhbHNlfWU9ayYmay5sZW5ndGg7CmlmKGU+MSYmZTw1KXsobT9iLlhhOmIucGEpLnB1c2goe1hjOm5ldyBjKGtbMF0udmFsdWUpLFljOm5ldyBjKGtbMV0udmFsdWUpLGJsdXI6bmV3IGMoa1syXT9rWzJdLnZhbHVlOiIwIiksUGM6bmV3IGMoa1szXT9rWzNdLnZhbHVlOiIwIiksY29sb3I6bmV3IGguUihqfHwiY3VycmVudENvbG9yIil9KTtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9O2EoKTspO31yZXR1cm4gYiYmKGIuWGEubGVuZ3RofHxiLnBhLmxlbmd0aCk/YjpudWxsfX0pO2guWGI9aC5wLlcoe2xhOmgucC5pYShmdW5jdGlvbigpe3ZhciBhPXRoaXMuZC5jdXJyZW50U3R5bGU7cmV0dXJuIGEudmlzaWJpbGl0eSsifCIrYS5kaXNwbGF5fSksWTpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZCxiPWEucnVudGltZVN0eWxlO2E9YS5jdXJyZW50U3R5bGU7dmFyIGM9Yi52aXNpYmlsaXR5LGc7Yi52aXNpYmlsaXR5PSIiO2c9YS52aXNpYmlsaXR5O2IudmlzaWJpbGl0eT1jO3JldHVybntVYzpnIT09ImhpZGRlbiIsc2M6YS5kaXNwbGF5IT09CiJub25lIn19LGY6ZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2V9fSk7aC5BPXtWOmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyxnLGQsZSl7dGhpcy5kPWM7dGhpcy5vPWc7dGhpcy5oPWQ7dGhpcy5wYXJlbnQ9ZX1oLm4uJGEoYi5wcm90b3R5cGUsaC5BLGEpO3JldHVybiBifSxaYTpmYWxzZSxOOmZ1bmN0aW9uKCl7cmV0dXJuIGZhbHNlfSxEYjpmdW5jdGlvbigpe3RoaXMuaygpO3RoaXMuZigpJiZ0aGlzLlQoKX0sZGI6ZnVuY3Rpb24oKXt0aGlzLlphPXRydWV9LEViOmZ1bmN0aW9uKCl7dGhpcy5mKCk/dGhpcy5UKCk6dGhpcy5rKCl9LFFhOmZ1bmN0aW9uKGEsYil7dGhpcy5BYihhKTtmb3IodmFyIGM9dGhpcy5nYXx8KHRoaXMuZ2E9W10pLGc9YSsxLGQ9Yy5sZW5ndGgsZTtnPGQ7ZysrKWlmKGU9Y1tnXSlicmVhaztjW2FdPWI7dGhpcy51KCkuaW5zZXJ0QmVmb3JlKGIsZXx8bnVsbCl9LG1hOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZ2E7cmV0dXJuIGImJmJbYV18fG51bGx9LEFiOmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLm1hKGEpLGM9dGhpcy52YTtpZihiJiZjKXtjLnJlbW92ZUNoaWxkKGIpO3RoaXMuZ2FbYV09bnVsbH19LG5hOmZ1bmN0aW9uKGEsYixjLGcpe3ZhciBkPXRoaXMuUGF8fCh0aGlzLlBhPXt9KSxlPWRbYV07aWYoIWUpe2U9ZFthXT1oLm4uQWEoInNoYXBlIik7aWYoYillLmFwcGVuZENoaWxkKGVbYl09aC5uLkFhKGIpKTtpZihnKXtjPXRoaXMubWEoZyk7aWYoIWMpe3RoaXMuUWEoZyxkb2MuY3JlYXRlRWxlbWVudCgiZ3JvdXAiK2cpKTtjPXRoaXMubWEoZyl9fWMuYXBwZW5kQ2hpbGQoZSk7YT1lLnN0eWxlO2EucG9zaXRpb249ImFic29sdXRlIjthLmxlZnQ9YS50b3A9MDthLmJlaGF2aW9yPSJ1cmwoI2RlZmF1bHQjVk1MKSJ9cmV0dXJuIGV9LFNhOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuUGEsYz1iJiZiW2FdO2lmKGMpe2MucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjKTtkZWxldGUgYlthXX1yZXR1cm4hIWN9LHRiOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuZCxjPXRoaXMuby5tKCksCmc9Yy5nLGQ9Yy5lLGUsZixpLGosayxtO2M9YS54LnRsLmEoYixnKTtlPWEueS50bC5hKGIsZCk7Zj1hLngudHIuYShiLGcpO2k9YS55LnRyLmEoYixkKTtqPWEueC5ici5hKGIsZyk7az1hLnkuYnIuYShiLGQpO209YS54LmJsLmEoYixnKTthPWEueS5ibC5hKGIsZCk7Zz1NYXRoLm1pbihnLyhjK2YpLGQvKGkrayksZy8obStqKSxkLyhlK2EpKTtpZihnPDEpe2MqPWc7ZSo9ZztmKj1nO2kqPWc7aio9ZztrKj1nO20qPWc7YSo9Z31yZXR1cm57eDp7dGw6Yyx0cjpmLGJyOmosYmw6bX0seTp7dGw6ZSx0cjppLGJyOmssYmw6YX19fSxrYTpmdW5jdGlvbihhLGIsYyl7Yj1ifHwxO3ZhciBnLGQsZT10aGlzLm8ubSgpO2Q9ZS5nKmI7ZT1lLmUqYjt2YXIgZj10aGlzLmgucyxpPU1hdGguZmxvb3Isaj1NYXRoLmNlaWwsaz1hP2EuUCpiOjAsbT1hP2EuTypiOjAsbD1hP2EuSypiOjA7YT1hP2EuTSpiOjA7dmFyIHUsbixxLHQsdjtpZihjfHxmLmYoKSl7Zz10aGlzLnRiKGN8fGYuaigpKTtjPQpnLngudGwqYjtmPWcueS50bCpiO3U9Zy54LnRyKmI7bj1nLnkudHIqYjtxPWcueC5icipiO3Q9Zy55LmJyKmI7dj1nLnguYmwqYjtiPWcueS5ibCpiO2Q9Im0iK2koYSkrIiwiK2koZikrInF5IitpKGMpKyIsIitpKGspKyJsIitqKGQtdSkrIiwiK2koaykrInF4IitqKGQtbSkrIiwiK2kobikrImwiK2ooZC1tKSsiLCIraihlLXQpKyJxeSIraihkLXEpKyIsIitqKGUtbCkrImwiK2kodikrIiwiK2ooZS1sKSsicXgiK2koYSkrIiwiK2ooZS1iKSsiIHggZSJ9ZWxzZSBkPSJtIitpKGEpKyIsIitpKGspKyJsIitqKGQtbSkrIiwiK2koaykrImwiK2ooZC1tKSsiLCIraihlLWwpKyJsIitpKGEpKyIsIitqKGUtbCkrInhlIjtyZXR1cm4gZH0sdTpmdW5jdGlvbigpe3ZhciBhPXRoaXMucGFyZW50Lm1hKHRoaXMuQiksYjtpZighYSl7YT1kb2MuY3JlYXRlRWxlbWVudCh0aGlzLnphKTtiPWEuc3R5bGU7Yi5wb3NpdGlvbj0iYWJzb2x1dGUiO2IudG9wPWIubGVmdD0wO3RoaXMucGFyZW50LlFhKHRoaXMuQiwKYSl9cmV0dXJuIGF9LGs6ZnVuY3Rpb24oKXt0aGlzLnBhcmVudC5BYih0aGlzLkIpO2RlbGV0ZSB0aGlzLlBhO2RlbGV0ZSB0aGlzLmdhfX07aC5WYj1oLkEuVih7ZjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaWM7Zm9yKHZhciBiIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShiKSYmYVtiXS5mKCkpcmV0dXJuIHRydWU7cmV0dXJuIGZhbHNlfSxOOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaC5mYi5DKCl9LGRiOmZ1bmN0aW9uKCl7aWYodGhpcy5mKCkpe3ZhciBhPXRoaXMuc2IoKSxiPWEsYzthPWEuY3VycmVudFN0eWxlO3ZhciBnPWEucG9zaXRpb24sZD10aGlzLnUoKS5zdHlsZSxlPTAsZj0wO2Y9dGhpcy5vLm0oKTtpZihnPT09ImZpeGVkIiYmaC5EPjYpe2U9Zi54O2Y9Zi55O2I9Z31lbHNle2RvIGI9Yi5vZmZzZXRQYXJlbnQ7d2hpbGUoYiYmYi5jdXJyZW50U3R5bGUucG9zaXRpb249PT0ic3RhdGljIik7aWYoYil7Yz1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2I9Yi5jdXJyZW50U3R5bGU7CmU9Zi54LWMubGVmdC0ocGFyc2VGbG9hdChiLmJvcmRlckxlZnRXaWR0aCl8fDApO2Y9Zi55LWMudG9wLShwYXJzZUZsb2F0KGIuYm9yZGVyVG9wV2lkdGgpfHwwKX1lbHNle2I9ZG9jLmRvY3VtZW50RWxlbWVudDtlPWYueCtiLnNjcm9sbExlZnQtYi5jbGllbnRMZWZ0O2Y9Zi55K2Iuc2Nyb2xsVG9wLWIuY2xpZW50VG9wfWI9ImFic29sdXRlIn1kLnBvc2l0aW9uPWI7ZC5sZWZ0PWU7ZC50b3A9ZjtkLnpJbmRleD1nPT09InN0YXRpYyI/LTE6YS56SW5kZXg7dGhpcy5aYT10cnVlfX0sRWI6ZnVuY3Rpb24oKXt9LEZiOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oLmZiLmooKTt0aGlzLnUoKS5zdHlsZS5kaXNwbGF5PWEuVWMmJmEuc2M/IiI6Im5vbmUifSxEYjpmdW5jdGlvbigpe3RoaXMuZigpP3RoaXMuRmIoKTp0aGlzLmsoKX0sc2I6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQ7cmV0dXJuIGEudGFnTmFtZSBpbiBoLkNiP2Eub2Zmc2V0UGFyZW50OmF9LHU6ZnVuY3Rpb24oKXt2YXIgYT0KdGhpcy52YSxiO2lmKCFhKXtiPXRoaXMuc2IoKTthPXRoaXMudmE9ZG9jLmNyZWF0ZUVsZW1lbnQoImNzczMtY29udGFpbmVyIik7YS5zdHlsZS5kaXJlY3Rpb249Imx0ciI7dGhpcy5GYigpO2IucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxiKX1yZXR1cm4gYX0sazpmdW5jdGlvbigpe3ZhciBhPXRoaXMudmEsYjtpZihhJiYoYj1hLnBhcmVudE5vZGUpKWIucmVtb3ZlQ2hpbGQoYSk7ZGVsZXRlIHRoaXMudmE7ZGVsZXRlIHRoaXMuZ2F9fSk7aC5MYj1oLkEuVih7QjoyLHphOiJiYWNrZ3JvdW5kIixOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkcuQygpfHxhLnMuQygpfSxmOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkwuZigpfHxhLnMuZigpfHxhLkcuZigpfHxhLlMuZigpJiZhLlMuaigpLlhhfSxUOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vLm0oKTtpZihhLmcmJmEuZSl7dGhpcy50YygpO3RoaXMudWMoKX19LHRjOmZ1bmN0aW9uKCl7dmFyIGE9CnRoaXMuaC5HLmooKSxiPXRoaXMuby5tKCksYz10aGlzLmQsZz1hJiZhLmNvbG9yLGQsZTtpZihnJiZnLmhhKCk+MCl7dGhpcy51YigpO2E9dGhpcy5uYSgiYmdDb2xvciIsImZpbGwiLHRoaXMudSgpLDEpO2Q9Yi5nO2I9Yi5lO2Euc3Ryb2tlZD1mYWxzZTthLmNvb3Jkc2l6ZT1kKjIrIiwiK2IqMjthLmNvb3Jkb3JpZ2luPSIxLDEiO2EucGF0aD10aGlzLmthKG51bGwsMik7ZT1hLnN0eWxlO2Uud2lkdGg9ZDtlLmhlaWdodD1iO2EuZmlsbC5jb2xvcj1nLnZhbHVlKGMpO2M9Zy5oYSgpO2lmKGM8MSlhLmZpbGwub3BhY2l0eT1jfWVsc2UgdGhpcy5TYSgiYmdDb2xvciIpfSx1YzpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5HLmooKSxiPXRoaXMuby5tKCk7YT1hJiZhLmltYWdlczt2YXIgYyxnLGQsZSxmO2lmKGEpe3RoaXMudWIoKTtnPWIuZztkPWIuZTtmb3IoZj1hLmxlbmd0aDtmLS07KXtiPWFbZl07Yz10aGlzLm5hKCJiZ0ltYWdlIitmLCJmaWxsIix0aGlzLnUoKSwyKTtjLnN0cm9rZWQ9CmZhbHNlO2MuZmlsbC50eXBlPSJ0aWxlIjtjLmZpbGxjb2xvcj0ibm9uZSI7Yy5jb29yZHNpemU9ZyoyKyIsIitkKjI7Yy5jb29yZG9yaWdpbj0iMSwxIjtjLnBhdGg9dGhpcy5rYSgwLDIpO2U9Yy5zdHlsZTtlLndpZHRoPWc7ZS5oZWlnaHQ9ZDtpZihiLnR5cGU9PT0ibGluZWFyLWdyYWRpZW50Iil0aGlzLmdjKGMsYik7ZWxzZXtjLmZpbGwuc3JjPWIudXJsO3RoaXMuSmMoYyxmKX19fWZvcihmPWE/YS5sZW5ndGg6MDt0aGlzLlNhKCJiZ0ltYWdlIitmKyspOyk7fSxKYzpmdW5jdGlvbihhLGIpe2gubi5JYihhLmZpbGwuc3JjLGZ1bmN0aW9uKGMpe3ZhciBnPWEuZmlsbCxkPXRoaXMuZCxlPXRoaXMuby5tKCksZj1lLmc7ZT1lLmU7dmFyIGk9dGhpcy5oLGo9aS5ILmooKSxrPWomJmouaGI7aj1rP2sudC5hKGQpOjA7dmFyIG09az9rLnIuYShkKTowLGw9az9rLmIuYShkKTowO2s9az9rLmwuYShkKTowO2k9aS5HLmooKS5pbWFnZXNbYl07ZD1pLnBvc2l0aW9uP2kucG9zaXRpb24uY29vcmRzKGQsCmYtYy5nLWstbSxlLWMuZS1qLWwpOnt4OjAseTowfTtpPWkucmVwZWF0O2w9bT0wO3ZhciB1PWYrMSxuPWUrMSxxPWguRD09PTg/MDoxO2s9TWF0aC5yb3VuZChkLngpK2srMC41O2o9TWF0aC5yb3VuZChkLnkpK2orMC41O2cucG9zaXRpb249ay9mKyIsIitqL2U7aWYoaSYmaSE9PSJyZXBlYXQiKXtpZihpPT09InJlcGVhdC14Inx8aT09PSJuby1yZXBlYXQiKXttPWorMTtuPWorYy5lK3F9aWYoaT09PSJyZXBlYXQteSJ8fGk9PT0ibm8tcmVwZWF0Iil7bD1rKzE7dT1rK2MuZytxfWEuc3R5bGUuY2xpcD0icmVjdCgiK20rInB4LCIrdSsicHgsIituKyJweCwiK2wrInB4KSJ9fSx0aGlzKX0sZ2M6ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKEEsQix5LEcsSCl7aWYoeT09PTB8fHk9PT0xODApcmV0dXJuW0csQl07ZWxzZSBpZih5PT09OTB8fHk9PT0yNzApcmV0dXJuW0EsSF07ZWxzZXt5PU1hdGgudGFuKC15KnUvMTgwKTtBPXkqQS1CO0I9LTEveTtHPUIqRy1IO0g9Qi15O3JldHVyblsoRy0KQSkvSCwoeSpHLUIqQSkvSF19fWZ1bmN0aW9uIGcoKXt4PW0+PTkwJiZtPDI3MD9qOjA7cj1tPDE4MD9rOjA7bz1qLXg7cz1rLXJ9ZnVuY3Rpb24gZCgpe2Zvcig7bTwwOyltKz0zNjA7bSU9MzYwfWZ1bmN0aW9uIGUoQSxCKXt2YXIgeT1CWzBdLUFbMF07QT1CWzFdLUFbMV07cmV0dXJuIE1hdGguYWJzKHk9PT0wP0E6QT09PTA/eTpNYXRoLnNxcnQoeSp5K0EqQSkpfXZhciBmPXRoaXMuZCxpPXRoaXMuby5tKCksaj1pLmcsaz1pLmU7YT1hLmZpbGw7dmFyIG09Yi5SYSxsPWIuVmE7Yj1iLlo7aT1iLmxlbmd0aDt2YXIgdT1NYXRoLlBJLG4scSx0LHYseCxyLG8scyxwLHosRSxDO2lmKGwpe2w9bC5jb29yZHMoZixqLGspO249bC54O3E9bC55fWlmKG0pe209bS5xYygpO2QoKTtnKCk7aWYoIWwpe249eDtxPXJ9bD1jKG4scSxtLG8scyk7dD1sWzBdO3Y9bFsxXX1lbHNlIGlmKGwpe3Q9ai1uO3Y9ay1xfWVsc2V7bj1xPXQ9MDt2PWt9bD10LW47cD12LXE7aWYobT09PXZvaWQgMCl7bT0hbD8KcDwwPzkwOjI3MDohcD9sPDA/MTgwOjA6LU1hdGguYXRhbjIocCxsKS91KjE4MDtkKCk7ZygpfWw9bSU5MD9NYXRoLmF0YW4yKGwqai9rLHApL3UqMTgwOm0rOTA7bCs9MTgwO2wlPTM2MDt6PWUoW24scV0sW3Qsdl0pO3Q9ZShbeCxyXSxjKHgscixtLG8scykpO3Y9W107cT1lKFtuLHFdLGMobixxLG0seCxyKSkvdCoxMDA7bj1bXTtmb3IocD0wO3A8aTtwKyspbi5wdXNoKGJbcF0ueWI/YltwXS55Yi5hKGYseik6cD09PTA/MDpwPT09aS0xP3o6bnVsbCk7Zm9yKHA9MTtwPGk7cCsrKXtpZihuW3BdPT09bnVsbCl7RT1uW3AtMV07ej1wO2RvIEM9blsrK3pdO3doaWxlKEM9PT1udWxsKTtuW3BdPUUrKEMtRSkvKHotcCsxKX1uW3BdPU1hdGgubWF4KG5bcF0sbltwLTFdKX1mb3IocD0wO3A8aTtwKyspdi5wdXNoKHErbltwXS90KjEwMCsiJSAiK2JbcF0uY29sb3IudmFsdWUoZikpO2EuYW5nbGU9bDthLnR5cGU9ImdyYWRpZW50IjthLm1ldGhvZD0ic2lnbWEiO2EuY29sb3I9YlswXS5jb2xvci52YWx1ZShmKTsKYS5jb2xvcjI9YltpLTFdLmNvbG9yLnZhbHVlKGYpO2EuY29sb3JzLnZhbHVlPXYuam9pbigiLCIpfSx1YjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZC5ydW50aW1lU3R5bGU7YS5iYWNrZ3JvdW5kSW1hZ2U9InVybChhYm91dDpibGFuaykiO2EuYmFja2dyb3VuZENvbG9yPSJ0cmFuc3BhcmVudCJ9LGs6ZnVuY3Rpb24oKXtoLkEuay5jYWxsKHRoaXMpO3ZhciBhPXRoaXMuZC5ydW50aW1lU3R5bGU7YS5iYWNrZ3JvdW5kSW1hZ2U9YS5iYWNrZ3JvdW5kQ29sb3I9IiJ9fSk7aC5QYj1oLkEuVih7Qjo0LHphOiJib3JkZXIiLGpjOntUQUJMRToxLElOUFVUOjEsVEVYVEFSRUE6MSxTRUxFQ1Q6MSxPUFRJT046MSxJTUc6MSxIUjoxLEZJRUxEU0VUOjF9LEVjOntzdWJtaXQ6MSxidXR0b246MSxyZXNldDoxfSxOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiBhLkguQygpfHxhLnMuQygpfSxmOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybihhLkwuZigpfHxhLnMuZigpfHxhLkcuZigpKSYmCmEuSC5mKCl9LFQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQsYj10aGlzLmguSC5qKCksYz10aGlzLm8ubSgpLGc9Yy5nO2M9Yy5lO3ZhciBkLGUsZixpLGo7aWYoYil7dGhpcy5DYygpO2I9dGhpcy53YygyKTtpPTA7Zm9yKGo9Yi5sZW5ndGg7aTxqO2krKyl7Zj1iW2ldO2Q9dGhpcy5uYSgiYm9yZGVyUGllY2UiK2ksZi5zdHJva2U/InN0cm9rZSI6ImZpbGwiLHRoaXMudSgpKTtkLmNvb3Jkc2l6ZT1nKjIrIiwiK2MqMjtkLmNvb3Jkb3JpZ2luPSIxLDEiO2QucGF0aD1mLnBhdGg7ZT1kLnN0eWxlO2Uud2lkdGg9ZztlLmhlaWdodD1jO2QuZmlsbGVkPSEhZi5maWxsO2Quc3Ryb2tlZD0hIWYuc3Ryb2tlO2lmKGYuc3Ryb2tlKXtkPWQuc3Ryb2tlO2Qud2VpZ2h0PWYuZ2IrInB4IjtkLmNvbG9yPWYuY29sb3IudmFsdWUoYSk7ZC5kYXNoc3R5bGU9Zi5zdHJva2U9PT0iZGFzaGVkIj8iMiAyIjpmLnN0cm9rZT09PSJkb3R0ZWQiPyIxIDEiOiJzb2xpZCI7ZC5saW5lc3R5bGU9Zi5zdHJva2U9PT0KImRvdWJsZSImJmYuZ2I+Mj8iVGhpblRoaW4iOiJTaW5nbGUifWVsc2UgZC5maWxsLmNvbG9yPWYuZmlsbC52YWx1ZShhKX1mb3IoO3RoaXMuU2EoImJvcmRlclBpZWNlIitpKyspOyk7fX0sQ2M6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmQsYj1hLmN1cnJlbnRTdHlsZSxjPWEucnVudGltZVN0eWxlLGc9YS50YWdOYW1lLGQ9aC5EPT09NixlO2lmKGQmJmcgaW4gdGhpcy5qY3x8Zz09PSJCVVRUT04ifHxnPT09IklOUFVUIiYmYS50eXBlIGluIHRoaXMuRWMpe2MuYm9yZGVyV2lkdGg9IiI7Zz10aGlzLmguSC5CYjtmb3IoZT1nLmxlbmd0aDtlLS07KXtkPWdbZV07Y1sicGFkZGluZyIrZF09IiI7Y1sicGFkZGluZyIrZF09KG5ldyBoLmkoYlsicGFkZGluZyIrZF0pKS5hKGEpKyhuZXcgaC5pKGJbImJvcmRlciIrZCsiV2lkdGgiXSkpLmEoYSkrKCFoLkQ9PT04JiZlJTI/MTowKX1jLmJvcmRlcldpZHRoPTB9ZWxzZSBpZihkKXtpZihhLmNoaWxkTm9kZXMubGVuZ3RoIT09MXx8YS5maXJzdENoaWxkLnRhZ05hbWUhPT0KImllNi1tYXNrIil7Yj1kb2MuY3JlYXRlRWxlbWVudCgiaWU2LW1hc2siKTtnPWIuc3R5bGU7Zy52aXNpYmlsaXR5PSJ2aXNpYmxlIjtmb3IoZy56b29tPTE7Zz1hLmZpcnN0Q2hpbGQ7KWIuYXBwZW5kQ2hpbGQoZyk7YS5hcHBlbmRDaGlsZChiKTtjLnZpc2liaWxpdHk9ImhpZGRlbiJ9fWVsc2UgYy5ib3JkZXJDb2xvcj0idHJhbnNwYXJlbnQifSx3YzpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmQsYyxnLGQsZT10aGlzLmguSCxmPVtdLGksaixrLG0sbD1NYXRoLnJvdW5kLHUsbixxO2lmKGUuZigpKXtjPWUuaigpO2U9Yy5oYjtuPWMuUmM7cT1jLm1jO2lmKGMuV2MmJmMuU2MmJmMubmMpe2lmKHEudC5oYSgpPjApe2M9ZS50LmEoYik7az1jLzI7Zi5wdXNoKHtwYXRoOnRoaXMua2Eoe1A6ayxPOmssSzprLE06a30sYSksc3Ryb2tlOm4udCxjb2xvcjpxLnQsZ2I6Y30pfX1lbHNle2E9YXx8MTtjPXRoaXMuby5tKCk7Zz1jLmc7ZD1jLmU7Yz1sKGUudC5hKGIpKTtrPWwoZS5yLmEoYikpOwptPWwoZS5iLmEoYikpO2I9bChlLmwuYShiKSk7dmFyIHQ9e3Q6YyxyOmssYjptLGw6Yn07Yj10aGlzLmgucztpZihiLmYoKSl1PXRoaXMudGIoYi5qKCkpO2k9TWF0aC5mbG9vcjtqPU1hdGguY2VpbDt2YXIgdj1mdW5jdGlvbihvLHMpe3JldHVybiB1P3Vbb11bc106MH0seD1mdW5jdGlvbihvLHMscCx6LEUsQyl7dmFyIEE9digieCIsbyksQj12KCJ5IixvKSx5PW8uY2hhckF0KDEpPT09InIiO289by5jaGFyQXQoMCk9PT0iYiI7cmV0dXJuIEE+MCYmQj4wPyhDPyJhbCI6ImFlIikrKHk/aihnLUEpOmkoQSkpKmErIiwiKyhvP2ooZC1CKTppKEIpKSphKyIsIisoaShBKS1zKSphKyIsIisoaShCKS1wKSphKyIsIit6KjY1NTM1KyIsIisyOTQ5MDc1KihFPzE6LTEpOihDPyJtIjoibCIpKyh5P2ctczpzKSphKyIsIisobz9kLXA6cCkqYX0scj1mdW5jdGlvbihvLHMscCx6KXt2YXIgRT1vPT09InQiP2kodigieCIsInRsIikpKmErIiwiK2oocykqYTpvPT09InIiP2ooZy1zKSphKyIsIisKaSh2KCJ5IiwidHIiKSkqYTpvPT09ImIiP2ooZy12KCJ4IiwiYnIiKSkqYSsiLCIraShkLXMpKmE6aShzKSphKyIsIitqKGQtdigieSIsImJsIikpKmE7bz1vPT09InQiP2ooZy12KCJ4IiwidHIiKSkqYSsiLCIraihzKSphOm89PT0iciI/aihnLXMpKmErIiwiK2ooZC12KCJ5IiwiYnIiKSkqYTpvPT09ImIiP2kodigieCIsImJsIikpKmErIiwiK2koZC1zKSphOmkocykqYSsiLCIraSh2KCJ5IiwidGwiKSkqYTtyZXR1cm4gcD8oej8ibSIrbzoiIikrImwiK0U6KHo/Im0iK0U6IiIpKyJsIitvfTtiPWZ1bmN0aW9uKG8scyxwLHosRSxDKXt2YXIgQT1vPT09ImwifHxvPT09InIiLEI9dFtvXSx5LEc7aWYoQj4wJiZuW29dIT09Im5vbmUiJiZxW29dLmhhKCk+MCl7eT10W0E/bzpzXTtzPXRbQT9zOm9dO0c9dFtBP286cF07cD10W0E/cDpvXTtpZihuW29dPT09ImRhc2hlZCJ8fG5bb109PT0iZG90dGVkIil7Zi5wdXNoKHtwYXRoOngoeix5LHMsQys0NSwwLDEpK3goeiwwLDAsQywxLDApLApmaWxsOnFbb119KTtmLnB1c2goe3BhdGg6cihvLEIvMiwwLDEpLHN0cm9rZTpuW29dLGdiOkIsY29sb3I6cVtvXX0pO2YucHVzaCh7cGF0aDp4KEUsRyxwLEMsMCwxKSt4KEUsMCwwLEMtNDUsMSwwKSxmaWxsOnFbb119KX1lbHNlIGYucHVzaCh7cGF0aDp4KHoseSxzLEMrNDUsMCwxKStyKG8sQiwwLDApK3goRSxHLHAsQywwLDApKyhuW29dPT09ImRvdWJsZSImJkI+Mj94KEUsRy1pKEcvMykscC1pKHAvMyksQy00NSwxLDApK3IobyxqKEIvMyoyKSwxLDApK3goeix5LWkoeS8zKSxzLWkocy8zKSxDLDEsMCkrInggIit4KHosaSh5LzMpLGkocy8zKSxDKzQ1LDAsMSkrcihvLGkoQi8zKSwxLDApK3goRSxpKEcvMyksaShwLzMpLEMsMCwwKToiIikreChFLDAsMCxDLTQ1LDEsMCkrcihvLDAsMSwwKSt4KHosMCwwLEMsMSwwKSxmaWxsOnFbb119KX19O2IoInQiLCJsIiwiciIsInRsIiwidHIiLDkwKTtiKCJyIiwidCIsImIiLCJ0ciIsImJyIiwwKTtiKCJiIiwiciIsImwiLCJiciIsImJsIiwKLTkwKTtiKCJsIiwiYiIsInQiLCJibCIsInRsIiwtMTgwKX19cmV0dXJuIGZ9LGs6ZnVuY3Rpb24oKXtoLkEuay5jYWxsKHRoaXMpO3RoaXMuZC5ydW50aW1lU3R5bGUuYm9yZGVyQ29sb3I9IiJ9fSk7aC5OYj1oLkEuVih7Qjo1LEljOlsidCIsInRyIiwiciIsImJyIiwiYiIsImJsIiwibCIsInRsIiwiYyJdLE46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oLkwuQygpfSxmOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaC5MLmYoKX0sVDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaC5MLmooKSxiPXRoaXMuby5tKCk7dGhpcy51KCk7dmFyIGM9dGhpcy5kLGc9dGhpcy56YjtoLm4uSWIoYS5zcmMsZnVuY3Rpb24oZCl7ZnVuY3Rpb24gZSh4LHIsbyxzLHApe3g9Z1t4XS5zdHlsZTt4LndpZHRoPXI7eC5oZWlnaHQ9bzt4LmxlZnQ9czt4LnRvcD1wfWZ1bmN0aW9uIGYoeCxyLG8pe2Zvcih2YXIgcz0wLHA9eC5sZW5ndGg7czxwO3MrKylnW3hbc11dLmltYWdlZGF0YVtyXT1vfXZhciBpPWIuZyxqPQpiLmUsaz1hLndpZHRoLG09ay5QLmEoYyksbD1rLk8uYShjKSx1PWsuSy5hKGMpO2s9ay5NLmEoYyk7dmFyIG49YS5zbGljZSxxPW4uUC5hKGMpLHQ9bi5PLmEoYyksdj1uLksuYShjKTtuPW4uTS5hKGMpO2UoInRsIixrLG0sMCwwKTtlKCJ0IixpLWstbCxtLGssMCk7ZSgidHIiLGwsbSxpLWwsMCk7ZSgiciIsbCxqLW0tdSxpLWwsbSk7ZSgiYnIiLGwsdSxpLWwsai11KTtlKCJiIixpLWstbCx1LGssai11KTtlKCJibCIsayx1LDAsai11KTtlKCJsIixrLGotbS11LDAsbSk7ZSgiYyIsaS1rLWwsai1tLXUsayxtKTtmKFsidGwiLCJ0IiwidHIiXSwiY3JvcEJvdHRvbSIsKGQuZS1xKS9kLmUpO2YoWyJ0bCIsImwiLCJibCJdLCJjcm9wUmlnaHQiLChkLmctbikvZC5nKTtmKFsiYmwiLCJiIiwiYnIiXSwiY3JvcFRvcCIsKGQuZS12KS9kLmUpO2YoWyJ0ciIsInIiLCJiciJdLCJjcm9wTGVmdCIsKGQuZy10KS9kLmcpO2lmKGEucmVwZWF0LmViPT09InN0cmV0Y2giKXtmKFsibCIsInIiLCJjIl0sCiJjcm9wVG9wIixxL2QuZSk7ZihbImwiLCJyIiwiYyJdLCJjcm9wQm90dG9tIix2L2QuZSl9aWYoYS5yZXBlYXQuZT09PSJzdHJldGNoIil7ZihbInQiLCJiIiwiYyJdLCJjcm9wTGVmdCIsbi9kLmcpO2YoWyJ0IiwiYiIsImMiXSwiY3JvcFJpZ2h0Iix0L2QuZyl9Zy5jLnN0eWxlLmRpc3BsYXk9YS5maWxsPyIiOiJub25lIn0sdGhpcyl9LHU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnBhcmVudC5tYSh0aGlzLkIpLGIsYyxnLGQ9dGhpcy5JYyxlPWQubGVuZ3RoO2lmKCFhKXthPWRvYy5jcmVhdGVFbGVtZW50KCJib3JkZXItaW1hZ2UiKTtiPWEuc3R5bGU7Yi5wb3NpdGlvbj0iYWJzb2x1dGUiO3RoaXMuemI9e307Zm9yKGc9MDtnPGU7ZysrKXtjPXRoaXMuemJbZFtnXV09aC5uLkFhKCJyZWN0Iik7Yy5hcHBlbmRDaGlsZChoLm4uQWEoImltYWdlZGF0YSIpKTtiPWMuc3R5bGU7Yi5iZWhhdmlvcj0idXJsKCNkZWZhdWx0I1ZNTCkiO2IucG9zaXRpb249ImFic29sdXRlIjtiLnRvcD1iLmxlZnQ9CjA7Yy5pbWFnZWRhdGEuc3JjPXRoaXMuaC5MLmooKS5zcmM7Yy5zdHJva2VkPWZhbHNlO2MuZmlsbGVkPWZhbHNlO2EuYXBwZW5kQ2hpbGQoYyl9dGhpcy5wYXJlbnQuUWEodGhpcy5CLGEpfXJldHVybiBhfX0pO2guUmI9aC5BLlYoe0I6MSx6YToib3V0c2V0LWJveC1zaGFkb3ciLE46ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmg7cmV0dXJuIGEuUy5DKCl8fGEucy5DKCl9LGY6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmguUztyZXR1cm4gYS5mKCkmJmEuaigpLnBhWzBdfSxUOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh5LEcsSCx3LEQsRixJKXt5PWIubmEoInNoYWRvdyIreStHLCJmaWxsIixnLGYteSk7Rz15LmZpbGw7eS5jb29yZHNpemU9bSoyKyIsIitsKjI7eS5jb29yZG9yaWdpbj0iMSwxIjt5LnN0cm9rZWQ9ZmFsc2U7eS5maWxsZWQ9dHJ1ZTtHLmNvbG9yPUQudmFsdWUoYyk7aWYoRil7Ry50eXBlPSJncmFkaWVudHRpdGxlIjtHLmNvbG9yMj1HLmNvbG9yO0cub3BhY2l0eT0wfXkucGF0aD0KSTt2PXkuc3R5bGU7di5sZWZ0PUg7di50b3A9dzt2LndpZHRoPW07di5oZWlnaHQ9bDtyZXR1cm4geX12YXIgYj10aGlzLGM9dGhpcy5kLGc9dGhpcy51KCksZD10aGlzLmgsZT1kLlMuaigpLnBhO2Q9ZC5zLmooKTt2YXIgZj1lLmxlbmd0aCxpPWYsaixrPXRoaXMuby5tKCksbT1rLmcsbD1rLmU7az1oLkQ9PT04PzE6MDtmb3IodmFyIHU9WyJ0bCIsInRyIiwiYnIiLCJibCJdLG4scSx0LHYseCxyLG8scyxwLHosRSxDLEEsQjtpLS07KXtxPWVbaV07eD1xLlhjLmEoYyk7cj1xLlljLmEoYyk7aj1xLlBjLmEoYyk7bz1xLmJsdXIuYShjKTtxPXEuY29sb3I7cz0tai1vO2lmKCFkJiZvKWQ9aC5JYS5KYjtzPXRoaXMua2Eoe1A6cyxPOnMsSzpzLE06c30sMixkKTtpZihvKXtwPShqK28pKjIrbTt6PShqK28pKjIrbDtFPW8qMi9wO0M9byoyL3o7aWYoby1qPm0vMnx8by1qPmwvMilmb3Ioaj00O2otLTspe249dVtqXTtBPW4uY2hhckF0KDApPT09ImIiO0I9bi5jaGFyQXQoMSk9PT0iciI7Cm49YShpLG4seCxyLHEsbyxzKTt0PW4uZmlsbDt0LmZvY3VzcG9zaXRpb249KEI/MS1FOkUpKyIsIisoQT8xLUM6Qyk7dC5mb2N1c3NpemU9IjAsMCI7bi5zdHlsZS5jbGlwPSJyZWN0KCIrKChBP3ovMjowKStrKSsicHgsIisoQj9wOnAvMikrInB4LCIrKEE/ejp6LzIpKyJweCwiKygoQj9wLzI6MCkraykrInB4KSJ9ZWxzZXtuPWEoaSwiIix4LHIscSxvLHMpO3Q9bi5maWxsO3QuZm9jdXNwb3NpdGlvbj1FKyIsIitDO3QuZm9jdXNzaXplPTEtRSoyKyIsIisoMS1DKjIpfX1lbHNle249YShpLCIiLHgscixxLG8scyk7eD1xLmhhKCk7aWYoeDwxKW4uZmlsbC5vcGFjaXR5PXh9fX19KTtoLlViPWguQS5WKHtCOjYsemE6ImltZ0VsIixOOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5oO3JldHVybiB0aGlzLmQuc3JjIT09dGhpcy5hY3x8YS5zLkMoKX0sZjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaDtyZXR1cm4gYS5zLmYoKXx8YS5HLnhiKCl9LFQ6ZnVuY3Rpb24oKXt0aGlzLmFjPWY7dGhpcy5CYygpOwp2YXIgYT10aGlzLm5hKCJpbWciLCJmaWxsIix0aGlzLnUoKSksYj1hLmZpbGwsYz10aGlzLm8ubSgpLGc9Yy5nO2M9Yy5lO3ZhciBkPXRoaXMuaC5ILmooKTtkPWQmJmQuaGI7dmFyIGU9dGhpcy5kLGY9ZS5zcmMsaT1NYXRoLnJvdW5kO2Euc3Ryb2tlZD1mYWxzZTtiLnR5cGU9ImZyYW1lIjtiLnNyYz1mO2IucG9zaXRpb249KGc/MC41L2c6MCkrIiwiKyhjPzAuNS9jOjApO2EuY29vcmRzaXplPWcqMisiLCIrYyoyO2EuY29vcmRvcmlnaW49IjEsMSI7YS5wYXRoPXRoaXMua2EoZD97UDppKGQudC5hKGUpKSxPOmkoZC5yLmEoZSkpLEs6aShkLmIuYShlKSksTTppKGQubC5hKGUpKX06MCwyKTthPWEuc3R5bGU7YS53aWR0aD1nO2EuaGVpZ2h0PWN9LEJjOmZ1bmN0aW9uKCl7dGhpcy5kLnJ1bnRpbWVTdHlsZS5maWx0ZXI9ImFscGhhKG9wYWNpdHk9MCkifSxrOmZ1bmN0aW9uKCl7aC5BLmsuY2FsbCh0aGlzKTt0aGlzLmQucnVudGltZVN0eWxlLmZpbHRlcj0iIn19KTtoLkthPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShmKXtmdW5jdGlvbiBpKCl7aWYoIUIpe3ZhciB3LApELEY9Zi5jdXJyZW50U3R5bGUuZ2V0QXR0cmlidXRlKGMpPT09InRydWUiO2lmKCFBKXtBPTE7Zi5ydW50aW1lU3R5bGUuem9vbT0xO2Zvcih2YXIgST1mLE09MTtJPUkucHJldmlvdXNTaWJsaW5nOylpZihJLm5vZGVUeXBlPT09MSl7TT0wO2JyZWFrfWlmKE0pZi5jbGFzc05hbWUrPSIgIitoLkphKyJmaXJzdC1jaGlsZCJ9cC5EYSgpO2lmKEYmJihEPXAubSgpKSYmKHc9ZG9jLmRvY3VtZW50RWxlbWVudHx8ZG9jLmJvZHkpJiYoRC55PncuY2xpZW50SGVpZ2h0fHxELng+dy5jbGllbnRXaWR0aHx8RC55K0QuZTwwfHxELngrRC5nPDApKXtpZighRyl7Rz0xO2guTWEuWChpKX19ZWxzZXtCPTE7Rz1BPTA7aC5NYS5HYShpKTt6PXtHOm5ldyBoLk1iKGYpLEg6bmV3IGguUWIoZiksTDpuZXcgaC5PYihmKSxzOm5ldyBoLklhKGYpLFM6bmV3IGguU2IoZiksZmI6bmV3IGguWGIoZil9O0U9W3ouRyx6Lkgsei5MLHoucyx6LlMsei5mYl07dz1uZXcgaC5WYihmLHAseik7RD1bbmV3IGguUmIoZiwKcCx6LHcpLG5ldyBoLkxiKGYscCx6LHcpLG5ldyBoLlBiKGYscCx6LHcpLG5ldyBoLk5iKGYscCx6LHcpXTtmLnRhZ05hbWU9PT0iSU1HIiYmRC5wdXNoKG5ldyBoLlViKGYscCx6LHcpKTt3LmljPUQ7cz1bd10uY29uY2F0KEQpO2lmKHc9Zi5jdXJyZW50U3R5bGUuZ2V0QXR0cmlidXRlKGguSSsid2F0Y2gtYW5jZXN0b3JzIikpe0M9W107dz1wYXJzZUludCh3LDEwKTtEPTA7Zm9yKEY9Zi5wYXJlbnROb2RlO0YmJih3PT09Ik5hTiJ8fEQrKzx3KTspe0MucHVzaChGKTtGLmF0dGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIix0KTtGLmF0dGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO0YuYXR0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSk7Rj1GLnBhcmVudE5vZGV9fWguV2E9PT04JiZoLkxhLlgoayk7aygxKX1pZigheSl7eT0xO2YuYXR0YWNoRXZlbnQoIm9ubW92ZSIsaik7Zi5hdHRhY2hFdmVudCgib25yZXNpemUiLGopO2YuYXR0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLAptKTtmLmF0dGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO2YuYXR0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSk7aC50YS5YKGopO2guRi5YKHIpfXAuRmEoKX19ZnVuY3Rpb24gaigpe3AmJnAuemMoKSYmaygpfWZ1bmN0aW9uIGsodyl7aWYoIUgpaWYoQil7dmFyIEQsRjt2KCk7aWYod3x8cC5LYygpKXtEPTA7Zm9yKEY9cy5sZW5ndGg7RDxGO0QrKylzW0RdLmRiKCl9aWYod3x8cC5OYygpKXtEPTA7Zm9yKEY9cy5sZW5ndGg7RDxGO0QrKylzW0RdLkViKCl9eCgpfWVsc2UgQXx8aSgpfWZ1bmN0aW9uIG0oKXt2YXIgdyxELEY7dz1ldmVudDtpZighSCYmISh3JiZ3LnByb3BlcnR5TmFtZSBpbiBlKSlpZihCKXt2KCk7dz0wO2ZvcihEPXMubGVuZ3RoO3c8RDt3Kyspe0Y9c1t3XTtGLlphfHxGLmRiKCk7Ri5OKCkmJkYuRGIoKX14KCl9ZWxzZSBBfHxpKCl9ZnVuY3Rpb24gbCgpe2lmKGYpZi5jbGFzc05hbWUrPWd9ZnVuY3Rpb24gdSgpe2lmKGYpZi5jbGFzc05hbWU9Zi5jbGFzc05hbWUucmVwbGFjZShkLAoiIil9ZnVuY3Rpb24gbigpe3NldFRpbWVvdXQobCwwKX1mdW5jdGlvbiBxKCl7c2V0VGltZW91dCh1LDApfWZ1bmN0aW9uIHQoKXt2YXIgdz1ldmVudC5wcm9wZXJ0eU5hbWU7aWYodz09PSJjbGFzc05hbWUifHx3PT09ImlkIiltKCl9ZnVuY3Rpb24gdigpe3AuRGEoKTtmb3IodmFyIHc9RS5sZW5ndGg7dy0tOylFW3ddLkRhKCl9ZnVuY3Rpb24geCgpe2Zvcih2YXIgdz1FLmxlbmd0aDt3LS07KUVbd10uRmEoKTtwLkZhKCl9ZnVuY3Rpb24gcigpe2lmKHkpe2lmKEMpZm9yKHZhciB3PTAsRD1DLmxlbmd0aCxGO3c8RDt3Kyspe0Y9Q1t3XTtGLmRldGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIix0KTtGLmRldGFjaEV2ZW50KCJvbm1vdXNlZW50ZXIiLG4pO0YuZGV0YWNoRXZlbnQoIm9ubW91c2VsZWF2ZSIscSl9Zi5kZXRhY2hFdmVudCgib25tb3ZlIixrKTtmLmRldGFjaEV2ZW50KCJvbnJlc2l6ZSIsayk7Zi5kZXRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsbSk7Zi5kZXRhY2hFdmVudCgib25tb3VzZWVudGVyIiwKbik7Zi5kZXRhY2hFdmVudCgib25tb3VzZWxlYXZlIixxKTtoLkYuR2Eocik7eT0wfX1mdW5jdGlvbiBvKCl7aWYoIUgpe3ZhciB3LEQ7cigpO0g9MTtpZihzKXt3PTA7Zm9yKEQ9cy5sZW5ndGg7dzxEO3crKylzW3ddLmsoKX1oLldhPT09OCYmaC5MYS5HYShrKTtoLnRhLkdhKGspO3M9cD16PUU9Qz1mPW51bGx9fXZhciBzLHA9bmV3IEsoZikseixFLEMsQSxCLHksRyxIO3RoaXMuRGM9aTt0aGlzLnVwZGF0ZT1rO3RoaXMuaz1vO3RoaXMudmM9Zn12YXIgYj17fSxjPWguSSsibGF6eS1pbml0IixnPSIgIitoLkphKyJob3ZlciIsZD1uZXcgUmVnRXhwKCJcXGIiK2guSmErImhvdmVyXFxiIiwiZyIpLGU9e2JhY2tncm91bmQ6MSxiZ0NvbG9yOjEsZGlzcGxheToxfTthLnhjPWZ1bmN0aW9uKGYpe3ZhciBpPWgubi5vYShmKTtyZXR1cm4gYltpXXx8KGJbaV09bmV3IGEoZikpfTthLms9ZnVuY3Rpb24oZil7Zj1oLm4ub2EoZik7dmFyIGk9YltmXTtpZihpKXtpLmsoKTtkZWxldGUgYltmXX19OwphLnJjPWZ1bmN0aW9uKCl7dmFyIGY9W10saTtpZihiKXtmb3IodmFyIGogaW4gYilpZihiLmhhc093blByb3BlcnR5KGopKXtpPWJbal07Zi5wdXNoKGkudmMpO2kuaygpfWI9e319cmV0dXJuIGZ9O3JldHVybiBhfSgpO2guYXR0YWNoPWZ1bmN0aW9uKGEpe2guRDw5JiZoLkthLnhjKGEpLkRjKCl9O2guZGV0YWNoPWZ1bmN0aW9uKGEpe2guS2EuayhhKX19Owp2YXIgTD13aW5kb3cuUElFLE49ZWxlbWVudDtmdW5jdGlvbiBpbml0KCl7ZG9jLm1lZGlhIT09InByaW50IiYmTC5hdHRhY2goTil9ZnVuY3Rpb24gY2xlYW51cCgpe0wuZGV0YWNoKE4pO0w9Tj0wfU4ucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSImJmluaXQoKTsKPC9zY3JpcHQ+CjwvUFVCTElDOkNPTVBPTkVOVD4K);border: 8px solid #f1f1f1;background: #f1f1f1;}.side-inner-box {background: none repeat scroll 0 0 #FFFFFF;padding: 0 12px 0px;position: relative;}.sidebox {padding-bottom: 20px;}.conf-date {font-size:10px;color:#666;}.conf-person {text-transform: uppercase;color:#414141;font-weight: bold;}.person-name {font-size: 13px;}.person-photo {float:left;margin-right: 20px;margin-bottom:5px;}.conf-theme {font-size: 11px;margin: 0px 0 5px;color: #A32326;}.conf-link {bottom: 5px;padding-right: 5px;padding-right: 15px;background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAIAAACkr0LiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjEwN0QwMkY3QkY2NjExRTBCRjRCRDlCMjA4MjZEQThBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjEwN0QwMkY4QkY2NjExRTBCRjRCRDlCMjA4MjZEQThBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTA3RDAyRjVCRjY2MTFFMEJGNEJEOUIyMDgyNkRBOEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTA3RDAyRjZCRjY2MTFFMEJGNEJEOUIyMDgyNkRBOEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7I0X4EAAAAeklEQVR42mL8//8/AxL48+cPCwsLlPMfFbS1tZ08eRLCZnzx4sW8efMePHiArFtBQSEhIYFl7dq1QAkTExNOTk6g6KlTp4Ckvr6+iIgIy5s3b5SUlFJTUyE6eHl5HR0d+fj4gGyQtUxMTHDT/P394WwmBtwAnxxAgAEA+uk2f4aQEcwAAAAASUVORK5CYII=) no-repeat right; text-align: right; }.conf-link a {font-size: 10px;color: #666;text-decoration:none;}.afisha-photo {float: left;margin: 6px 10px 6px 0;}.afisha-photos {margin-top:6px;width:310px;overflow: visible;}.last-comments {padding-top:10px;font-size:12px;}.last-comments a {float:left;margin-bottom:5px;width:257px;}.last-comments a:hover {text-decoration: none;}.last-comments div a img {float:left;margin-right:10px;margin-top:3px;}.last-comments div a div {float:left;width:212px;}.last-comments div a div{color:#000000; }.last-comments div a div b, .last-comments div a div i, .last-comments a {color:#414141;font-style: normal;}.last-comments .social-media a div, .last-comments .social-media a div b , .last-comments .social-media a div i{color: #A32326!important;}.comment .folding { width: 9px; height: 9px; float: left; position: relative; top: 17px; cursor: pointer; }.comment .folding-open { width: 9px; height: 9px; float: left; position: relative; top: 17px; cursor: pointer; }.comment .folding.off { display: none; }.comment .content { margin: 0 50px 0px 13px; padding: 0; }.comment .content { width:550px; float:none}.comment .content .tb { height: 7px; overflow: hidden; background: url(/uploads/ibeer/images/comment-tb.gif) repeat-x; }.comment .content .tl { height: 7px; background: url(/uploads/ibeer/images/comment-tl.gif) no-repeat left top; }.comment .content .tr { height: 7px; background: url(/uploads/ibeer/images/comment-tr.gif) no-repeat right top; }.comment .content .bb { height: 15px; background: url(/uploads/ibeer/images/comment-bb.gif) repeat-x; margin-left: 24px; }.comment .content .bl { height: 15px; background: url(/uploads/ibeer/images/comment-bl.gif) no-repeat left bottom; }.comment .content .br { height: 15px; background: url(/uploads/ibeer/images/comment-br.gif) no-repeat right bottom; }.comment .content .text { border-left: 1px solid #dddede; border-right: 1px solid #dddede; padding: 2px 10px; overflow: hidden; zoom: 1; }.comment .content .text p { margin-top:2px; margin-bottom:2px; }.comment .social-media { background:#DDDDDD;}.comment .info { font-size: 11px; line-height: 14px; margin-left: 14px; margin-bottom: 20px; overflow: hidden; zoom: 1; }.comment .info p { font-size: 12px; font-weight: bold; margin-top:3px; }.comment .info img.avatar { float: left; margin: 3px 7px 0 0; *margin: 2px 7px 0 0; }.form_comments input[type=text] {width:363px;}.field_captcha input {width:158px!important;}.form_comments input[type=submit] {margin-top:20px;margin-left:279px;}.social-likes {overflow:hidden;}.facebook-plus {float:left;width:150px;overflow:hidden;margin-bottom:5px;overflow:hidden;}.google-plus {float:left;width:84px;overflow:hidden;}.twitter-plus {width:114px;float:left;overflow:hidden;}.vkontakte-plus {width:123px;float:left;}.mailru-plus {float:left;width:110px;}.fb-like-box {margin: 0 0 10px 0;}.fb-like-box {background: #fff;}.galleries {padding: 9px 0 9px 15px;overflow: hidden;}.gallery-item {width: 183px;margin: 0 15px 25px 0;float: left;overflow: hidden;position:relative;height: 100%;}.photo-item-a {overflow:hidden;display:block;float:left;}.gallery-item-title {margin: 0 0 2px;color: #414141;font-size: 12px;text-transform: uppercase;}.gallery-cover {bottom:0;}.gallery-cover-pic {}.gallery-cont {padding:13px 0 0 13px;width:605px;}.gallery {list-style:none;}.gallery li {float:left;list-style: none;}.photo-item {margin: 0 14px 14px 0; }.gallery-row {overflow: hidden;position: relative;}@media only screen and (min-width: 1200px) and (max-width: 1350px) {body {margin: 0 0 0 -210px;}.informer-vkursi {position: fixed;top:2%;margin-left:309px;width:20%;}}@media only screen and (min-width: 1351px) and (max-width: 1600px) {body {margin: 0 0 0 -210px;}.informer-vkursi {position: fixed;top:2%;margin-left:309px;width:292px;}}@media only screen and (min-width: 1601px) and (max-width: 9600px) {.informer-vkursi {position: fixed;top:2%;margin-left:309px;width:292px;}}