:root{--font-size-int:1.125;--scale0:1em;--scale-1:calc(var(--scale0)/var(--font-size-int));--scale-2:calc(var(--scale-1)/var(--font-size-int));--scale-3:calc(var(--scale-2)/var(--font-size-int));--scale1:calc(var(--scale0)*var(--font-size-int));--scale2:calc(var(--scale1)*var(--font-size-int));--scale3:calc(var(--scale2)*var(--font-size-int));--scale4:calc(var(--scale3)*var(--font-size-int))}:root{--line-height-int:0.95;--lh0:1.3;--lh-1:calc(var(--lh0)/var(--line-height-int));--lh-2:calc(var(--lh-1)/var(--line-height-int));--lh-3:calc(var(--lh-2)/var(--line-height-int));--lh1:calc(var(--lh0)*var(--line-height-int));--lh2:calc(var(--lh1)*var(--line-height-int));--lh3:calc(var(--lh2)*var(--line-height-int));--lh4:calc(var(--lh3)*var(--line-height-int))}.clearfix:after{content:"";display:table;clear:both}p{orphans:2;widows:2}div.image,figure,table{-moz-column-break-inside:avoid;break-inside:avoid}.acm-ad,.acm-ad-container,.o-site-sidebar .acm-ad,article .acm-ad{display:none!important}.a-site-branding{width:100%;height:auto;position:relative;margin:0 auto .5em}.a-site-branding .a-logo-svg{display:block}header .a-site-branding{margin:0;max-width:30.37975%}header.o-header-support .a-site-branding{margin-right:auto}.m-ad-region,.m-support-cta-bottom,.m-support-cta .a-support-button{display:none!important}.m-support-cta.m-support-cta-top{text-align:left;flex-direction:row;width:auto;font-size:100%;max-width:none}.m-support-cta.m-support-cta-top h2{font-size:var(--scale0);line-height:1.3;font-family:ff-meta-web-pro,helvetica,arial,sans-serif;font-size-adjust:.495;font-weight:700;font-style:normal;padding-bottom:0}.m-support-cta.m-support-cta-bottom{display:none!important}.o-header-support .m-support-cta.m-support-cta-top{text-align:left;flex-direction:row;width:auto}.o-header-support .m-support-cta.m-support-cta-top h2{margin:0;font-size:var(--scale0);line-height:1.3;font-family:ff-meta-web-pro,helvetica,arial,sans-serif;font-size-adjust:.495;font-weight:700;font-style:normal}nav{display:none!important}.m-widget-site-branding{max-width:36.70886%}.m-widget-site-branding .a-site-branding{max-width:82.75862%}.m-entry-content{margin-bottom:1.5em;overflow-wrap:break-word}.m-entry-content.m-membership-support-wrapper{font-family:ff-meta-web-pro,helvetica,arial,sans-serif}.o-entry .m-entry-meta{width:15.25424%}.m-entry-header .m-entry-meta,.o-entry .m-entry-meta.m-entry-meta-horizontal{width:100%}.m-archive .m-entry-content{margin-bottom:0;flex:1 0}.m-archive.m-archive-excerpt .m-entry-content{flex:1 0;margin-right:.75em}.m-archive.m-archive-homepage .m-entry-content{order:2;margin-left:0}.m-archive.m-zone-homepage-top .m-entry-content{flex:1 0;margin-right:.75em}.m-archive.m-zone-homepage-top .m-post-image-first .m-entry-content{order:2;flex:1 0;margin-right:0}.m-archive-excerpt .m-post-image,.m-archive-homepage .m-post-image,.m-archive-top .m-post-image{width:100%}.m-archive-excerpt .m-post-image,.m-archive-top .m-post-image{margin-left:0;margin-bottom:.75em;width:auto}.m-archive-excerpt .m-post-image.m-post-thumbnail-full,.m-archive-top .m-post-image.m-post-thumbnail-full{width:100%}.m-post-image-first .m-post-image{margin-right:.75em}.m-homepage-zones .m-zone{flex-wrap:wrap;display:flex;width:100%;max-width:calc(100% - 300px)}.m-homepage-zones .m-zone.m-zone-homepage-top{max-width:calc(93.22034% - 300px)}.m-homepage-zones .m-zone.m-zone-homepage-top article{width:100%;border-bottom:0;padding-bottom:0}.m-homepage-zones .m-zone.m-zone-homepage-more-top article,.m-homepage-zones .m-zone.m-zone-homepage-opinion article{width:47.45763%}.m-widget-group.m-widget-group-homepage{display:flex}.o-wrapper-site-navigation,.o-wrapper-site-navigation *,.o-wrapper-sub-navigation{display:none!important}.o-wrapper.o-wrapper-site-header{align-items:center;justify-content:space-between;flex-direction:row;margin-bottom:.5em}#content{display:block}#content #comments #respond,#content #comments .a-comment-links,#content .m-entry-share,#content .m-form-instory,#content .m-related,#content article .m-form-newsletter-shortcode{display:none}.o-entry{flex-direction:row;justify-content:flex-start}.o-entry .m-entry-content{max-width:83.05085%}.o-site-message-container,body.page .o-site-sidebar .m-minnpost-spills-widget,body.page .o-site-sidebar .m-widget-most-commented,body.page .o-site-sidebar .m-widget-zone-posts,body.single .o-site-sidebar .m-minnpost-spills-widget,body.single .o-site-sidebar .m-widget-most-commented,body.single .o-site-sidebar .m-widget-zone-posts,footer nav{display:none}footer .o-footer .o-footer-hat{display:block}.pum,.wp-message-inserter-message-region-popup{display:none!important}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJpYWJsZXMuc2NzcyIsIl9taXhpbnMuc2NzcyIsInByaW50LnNjc3MiLCJfY29sdW1uLXNldHRlci5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdGQSxNQU1DLHFCQUFnQixDQUNoQixZQUFTLENBU0wsa0RBQW9CLENBQXBCLG1EQUFvQixDQUFwQixtREFBb0IsQ0FlcEIsaURBQW9CLENBQXBCLGlEQUFvQixDQUFwQixpREFBb0IsQ0FBcEIsaURBQW9CLENBVXpCLE1BTUMsc0JBQWtCLENBQ2xCLFNBQU0sQ0FTRiw4Q0FBYyxDQUFkLCtDQUFjLENBQWQsK0NBQWMsQ0FlZCw2Q0FBYyxDQUFkLDZDQUFjLENBQWQsNkNBQWMsQ0FBZCw2Q0FBYyxDQzdKbEIsZ0JBQ0MsVUFBVyxDQUNYLGFBQWMsQ0FDZCxVQUFXLENDRWIsRUFDQyxTQUFVLENBQ1YsUUFBUyxDQUdWLHVCQUdDLDhCQUFtQixDQUFuQixrQkFBbUIsQ0FNcEIsa0VBSUMsc0JBQXdCLENBR3pCLGlCQUNDLFVBQVcsQ0FDWCxXQUFZLENBQ1osaUJBQWtCLENBQ2xCLGtCQUEyQyxDQUo1Qyw2QkFPRSxhQUFjLENBSWhCLHdCQUNDLFFBQVMsQ0FDVCxtQkM4THVELENEM0x4RCx5Q0FDQyxpQkFBa0IsQ0FXbkIsb0VBQ0Msc0JBQXdCLENBR3pCLGlDQUlFLGVBQWdCLENBQ2hCLGtCQUFtQixDQUNuQixVQUFXLENBQ1gsY0FBZSxDQUNmLGNBQWUsQ0FSakIsb0NEdUNFLHVCQUF3QyxDQUV4QyxlQUFnQixDQXhCakIsc0RESjhELENDSzlELHFCQUF1QixDQUd0QixlQUFnQixDQVFoQixpQkFBa0IsQ0NmakIsZ0JBQWlCLENBZHBCLG9DQW9CRSxzQkFBd0IsQ0FJMUIsbURBQ0MsZUFBZ0IsQ0FDaEIsa0JBQW1CLENBQ25CLFVBQVcsQ0FIWixzREFPRSxRQUFTLENEUVQsdUJBQXdDLENBRXhDLGVBQWdCLENBeEJqQixzRERKOEQsQ0NLOUQscUJBQXVCLENBR3RCLGVBQWdCLENBUWhCLGlCQUFrQixDQ1NwQixJQUNDLHNCQUF3QixDQUl6Qix3QkFDQyxtQkMrSHVELENEaEl4RCx5Q0FJRSxtQkM0SHNELENEeEh4RCxpQkFDQyxtQkZrSTRCLENFakk1Qix3QkFBeUIsQ0FGMUIsOENBS0Usc0RGM0M2RCxDRStDL0QsdUJBR0UsZUM0R3NELENEcEd4RCw2RUFHRSxVQ2lHc0QsQ0Q3RnhELDRCQUdFLGVBQWdCLENBQ2hCLFFBQVMsQ0FKWCw4Q0FVRyxRQUFTLENBQ1Qsa0JGOEY2QixDRXpHaEMsK0NBbUJHLE9BQVEsQ0FDUixhQUFjLENBcEJqQixnREEyQkcsUUFBUyxDQUNULGtCRjZFNkIsQ0V6R2hDLG9FQWtDSSxPQUFRLENBQ1IsUUFBUyxDQUNULGNBQWUsQ0FNbkIsZ0dBR0MsVUFBVyxDQUdaLDhEQUVDLGFBQWMsQ0FFZCxtQkZxRCtCLENFcEQvQixVQUFXLENBTFosMEdBUUUsVUFBVyxDQUliLGtDQUNDLGtCRjRDK0IsQ0V6Q2hDLDBCQUlFLGNBQWUsQ0FDZixZQUFhLENBQ2IsVUFBVyxDQUNYLDRCQUFnRCxDQVBsRCw4Q0FVRyxpQ0FBb0UsQ0FWdkUsc0RBYUksVUFBVyxDQUNYLGVBQWdCLENBQ2hCLGdCQUFpQixDQWZyQixxSEF1QkksZUNNb0QsQ0RBeEQsd0NBR0UsWUFBYSxDQU1mLGtGQUdDLHNCQUF3QixDQUd6QixpQ0FHRSxrQkFBbUIsQ0FDbkIsNkJBQThCLENBQzlCLGtCQUFtQixDQUNuQixrQkZSNEIsQ0VZOUIsU0FDQyxhQUFjLENBRGYsbUxBMkJFLFlBQWEsQ0FJZixTQUNDLGtCQUFtQixDQUNuQiwwQkFBMkIsQ0FGNUIsMEJBS0UsbUJDN0RzRCxDRG1GeEQsdVZBR0UsWUFBYSxDQUhmLCtCQU9FLGFBQWMsQ0FLaEIsK0NBRUMsc0JBQXdCIiwiZmlsZSI6InByaW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG5cdCNDb2xvcnNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIGJyYW5kIGNvbG9yc1xuJGJyYW5kLWNvbG9yczogKFxuXHRyZWQ6IChcblx0XHRkYXJrOiAjNGMxMDE2LFxuXHRcdG1lZGl1bTogIzdmMTIxYywgLy8gbG9nb1xuXHRcdGhpZ2hsaWdodDogI2Q3NzU3ZVxuXHQpLFxuKTtcblxuLy8gdXRpbGl0eSBjb2xvcnNcbiR1dGlsaXR5LWNvbG9yczogKFxuXHRncmVlbjogKFxuXHRcdGRhcms6ICMyNDYxM2IsXG5cdFx0bWVkaXVtOiAjMWM4NzQ1LCAvLyBkb25hdGVcblx0XHRoaWdobGlnaHQ6ICM2MDlmNzgsXG5cdFx0YmFja2dyb3VuZDogI2RkZjhlNyxcblx0KSxcblx0Ymx1ZTogKFxuXHRcdGRhcms6ICMxMzViN2UsIC8vIGxpbmtcblx0XHRtZWRpdW06ICMwYzdiYjAsXG5cdFx0aGlnaGxpZ2h0OiAjNWU5OWI1LFxuXHRcdGJhY2tncm91bmQ6ICNkY2YwZmFcblx0KSxcblx0cHVycGxlOiAoXG5cdFx0ZGFyazogIzYzNTA3NywgLy8gb3BpbmlvblxuXHRcdG1lZGl1bTogIzhjNjRiNCxcblx0XHRoaWdobGlnaHQ6ICNhODgwZDAsXG5cdFx0YmFja2dyb3VuZDogI2ViZTdlZlxuXHQpLFxuXHR5ZWxsb3c6IChcblx0XHRiYWNrZ3JvdW5kOiAjZmJkMzQxXG5cdCksXG5cdG9yYW5nZTogKFxuXHRcdGRhcms6ICM4NzNhMDIsXG5cdFx0bWVkaXVtOiAjYjk0ZjAzLCAvLyBhZHZlcnRpc2luZ1xuXHRcdGhpZ2hsaWdodDogI2ZjOWU1Yixcblx0XHRiYWNrZ3JvdW5kOiAjZmVlM2NmXG5cdCksXG4pO1xuXG4vLyBuZXV0cmFsIGNvbG9yc1xuJG5ldXRyYWwtY29sb3JzOiAoXG5cdGJsYWNrOiAjMWExODE4LCAvLyBsb2dvXG5cdGRhcms6ICM1ZTZlNzYsXG5cdG1lZGl1bTogIzg2OTI5OCxcblx0Ym9yZGVyOiAjZDZkNmRhLFxuXHRoaWdobGlnaHQ6ICNlYmViZmIsXG5cdGxpZ2h0OiAjZWZlZmYwLFxuXHR3aGl0ZTogI2ZmZlxuKTtcblxuLy8gTWVtYmVyc2hpcCBsZXZlbHNcbiRjb2xvcl9fbWlubnBvc3QtYnJvbnplOiAjY2Q3ZjMyO1xuJGNvbG9yX19taW5ucG9zdC1zaWx2ZXI6ICNjMGMwYzA7XG4kY29sb3JfX21pbm5wb3N0LWdvbGQ6ICNmZmQ3MDA7XG4kY29sb3JfX21pbm5wb3N0LXBsYXRpbnVtOiAjZTVlNGUyO1xuXG4kYmFja2dyb3VuZC11bnB1Ymxpc2hlZDogbmV1dHJhbC1jb2xvcih3aGl0ZSkgdXJsKC93cC1jb250ZW50L3RoZW1lcy9taW5ucG9zdC1sYXJnby9hc3NldHMvaW1nL3VucHVibGlzaGVkLnBuZyk7XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcblx0I1RZUE9HUkFQSFlcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIGZvbnQgZmFtaWxpZXNcbiRmb250X19jb2RlOiBtb25hY28sIGNvbnNvbGFzLCBcIkFuZGFsZSBNb25vXCIsIFwiRGVqYVZ1IFNhbnMgTW9ub1wiLCBtb25vc3BhY2U7XG4kZm9udF9fcHJlOiBcIkNvdXJpZXIgMTAgUGl0Y2hcIiwgY291cmllciwgbW9ub3NwYWNlO1xuJGZvbnRfX3NhbnM6IGhlbHZldGljYSwgYXJpYWwsIHNhbnMtc2VyaWY7XG4kZm9udF9fc2VyaWY6IGdlb3JnaWEsIGNhbWJyaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIHRpbWVzLCBzZXJpZjtcbiR3ZWJmb250X19zZXJpZjogXCJmZi1tZXRhLXNlcmlmLXdlYi1wcm9cIiwgZ2VvcmdpYSwgY2FtYnJpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgdGltZXMsIHNlcmlmO1xuJHdlYmZvbnRfX3NhbnM6IFwiZmYtbWV0YS13ZWItcHJvXCIsIGhlbHZldGljYSwgYXJpYWwsIHNhbnMtc2VyaWY7XG5cbiRodG1sLXJvb3Qtc2l6ZTogMTI1JTsgLy8gMTAwJSBpcyAxNnB4XG4kaHRtbC1yb290LXNpemUtbGFyZ2Utc2NyZWVuOiAxNTAlO1xuXG4kaW50ZXJmYWNlLWNvcHktc2l6ZTogODAlO1xuJGludGVyZmFjZS1jb3B5LXNpemUtbGFyZ2VyOiA4NSU7XG4kaW50ZXJmYWNlLWNvcHktc2l6ZS1zbWFsbGVyOiA3NSU7XG5cbi8vIHR5cGUgc2NhbGUuXG4vLyB1c2VzIFJvYiBXZXljaGVydCdzIGNvZGUgYXQgaHR0cHM6Ly8yNHdheXMub3JnLzIwMTkvYS1tb2Rlcm4tdHlwb2dyYXBoaWMtc2NhbGUvXG4kaHRtbC1mb250LXNpemU6IDEwMCU7XG4vLyBzdGFydHMgd2l0aCB0aGUgPGh0bWw+IGVsZW1lbnQncyBmb250IHNpemUgdmFsdWUsIHNvIHdlXG4vLyBzaG91bGQgY2hhbmdlIHRoYXQgYmFzZWQgb24gb3VyIG1lZGlhIHF1ZXJpZXNcbjpyb290IHtcblx0JGZvbnQtc2l6ZS1pbnRlcnZhbDogMS4xMjU7ICAgIC8vIFVuaXRsZXNzIGZvciBwcm9wb3J0aW9uYWwsIHVuaXQgZm9yIGZpeGVkXG5cdCRib2R5LXRleHQ6IDFlbTsgIC8vIE11c3QgaGF2ZSBhIHVuaXRcblx0JHNjYWxlLW1pbjogLTM7ICAgIC8vIFVuaXRsZXNzIG5lZ2F0aXZlIGludGVnZXJcblx0JHNjYWxlLW1heDogNDsgICAgIC8vIFVuaXRsZXNzIHBvc2l0aXZlIGludGVnZXJcblxuXHQtLWZvbnQtc2l6ZS1pbnQ6ICN7JGZvbnQtc2l6ZS1pbnRlcnZhbH07XG5cdC0tc2NhbGUwOiAjeyRib2R5LXRleHR9O1xuXG5cdEBpZiAkc2NhbGUtbWluIDwgMCB7XG5cdFx0Ly8gR2VuZXJhdGUgc2NhbGUgdmFyaWFibGVzIHNtYWxsZXIgdGhhbiB0aGUgYmFzZSB0ZXh0IHNpemVcblx0XHRAZm9yICRpIGZyb20gLTEgdGhyb3VnaCAkc2NhbGUtbWluIHtcblxuXHRcdFx0QGlmIHR5cGUtb2YoJGZvbnQtc2l6ZS1pbnRlcnZhbCkgPT0gbnVtYmVyIHtcblxuXHRcdFx0XHRAaWYgdW5pdGxlc3MoJGZvbnQtc2l6ZS1pbnRlcnZhbCkge1xuXHRcdFx0XHRcdC0tc2NhbGUjeyRpfTogY2FsYyh2YXIoLS1zY2FsZSN7JGkgKyAxfSkgLyB2YXIoLS1mb250LXNpemUtaW50KSk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdC0tc2NhbGUjeyRpfTogY2FsYyh2YXIoLS1zY2FsZSN7JGkgKyAxfSkgLSB2YXIoLS1mb250LXNpemUtaW50KSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRAaWYgJHNjYWxlLW1heCA+IDAge1xuXHRcdC8vIEdlbmVyYXRlIHNjYWxlIHZhcmlhYmxlcyBsYXJnZXIgdGhhbiB0aGUgYmFzZSB0ZXh0IHNpemVcblx0XHRAZm9yICRpIGZyb20gMSB0aHJvdWdoICRzY2FsZS1tYXgge1xuXG5cdFx0XHRAaWYgdHlwZS1vZigkZm9udC1zaXplLWludGVydmFsKSA9PSBudW1iZXIge1xuXG5cdFx0XHRcdEBpZiB1bml0bGVzcygkZm9udC1zaXplLWludGVydmFsKSB7XG5cdFx0XHRcdFx0LS1zY2FsZSN7JGl9OiBjYWxjKHZhcigtLXNjYWxlI3skaSAtIDF9KSAqIHZhcigtLWZvbnQtc2l6ZS1pbnQpKTtcblx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0LS1zY2FsZSN7JGl9OiBjYWxjKHZhcigtLXNjYWxlI3skaSAtIDF9KSArIHZhcigtLWZvbnQtc2l6ZS1pbnQpKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vLyBsaW5lIGhlaWdodCBzY2FsZVxuOnJvb3Qge1xuXHQkbGluZS1oZWlnaHQtaW50ZXJ2YWw6IDAuOTU7XG5cdCRib2R5LWxpbmUtaGVpZ2h0OiAxLjM7XG5cdCRsaW5lLWhlaWdodC1zY2FsZS1taW46IC0zOyAgICAvLyBVbml0bGVzcyBuZWdhdGl2ZSBpbnRlZ2VyXG5cdCRsaW5lLWhlaWdodC1zY2FsZS1tYXg6IDQ7ICAgICAvLyBVbml0bGVzcyBwb3NpdGl2ZSBpbnRlZ2VyXG5cblx0LS1saW5lLWhlaWdodC1pbnQ6ICN7JGxpbmUtaGVpZ2h0LWludGVydmFsfTtcblx0LS1saDA6ICN7JGJvZHktbGluZS1oZWlnaHR9O1xuXG5cdEBpZiAkbGluZS1oZWlnaHQtc2NhbGUtbWluIDwgMCB7XG5cdFx0Ly8gR2VuZXJhdGUgc2NhbGUgdmFyaWFibGVzIHNtYWxsZXIgdGhhbiB0aGUgYmFzZSB0ZXh0IHNpemVcblx0XHRAZm9yICRpIGZyb20gLTEgdGhyb3VnaCAkbGluZS1oZWlnaHQtc2NhbGUtbWluIHtcblxuXHRcdFx0QGlmIHR5cGUtb2YoJGxpbmUtaGVpZ2h0LWludGVydmFsKSA9PSBudW1iZXIge1xuXG5cdFx0XHRcdEBpZiB1bml0bGVzcygkbGluZS1oZWlnaHQtaW50ZXJ2YWwpIHtcblx0XHRcdFx0XHQtLWxoI3skaX06IGNhbGModmFyKC0tbGgjeyRpICsgMX0pIC8gdmFyKC0tbGluZS1oZWlnaHQtaW50KSk7XG5cdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdC0tbGgjeyRpfTogY2FsYyh2YXIoLS1saCN7JGkgKyAxfSkgLSB2YXIoLS1saW5lLWhlaWdodC1pbnQpKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdEBpZiAkbGluZS1oZWlnaHQtc2NhbGUtbWF4ID4gMCB7XG5cdFx0Ly8gR2VuZXJhdGUgc2NhbGUgdmFyaWFibGVzIGxhcmdlciB0aGFuIHRoZSBiYXNlIHRleHQgc2l6ZVxuXHRcdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxpbmUtaGVpZ2h0LXNjYWxlLW1heCB7XG5cblx0XHRcdEBpZiB0eXBlLW9mKCRsaW5lLWhlaWdodC1pbnRlcnZhbCkgPT0gbnVtYmVyIHtcblxuXHRcdFx0XHRAaWYgdW5pdGxlc3MoJGxpbmUtaGVpZ2h0LWludGVydmFsKSB7XG5cdFx0XHRcdFx0LS1saCN7JGl9OiBjYWxjKHZhcigtLWxoI3skaSAtIDF9KSAqIHZhcigtLWxpbmUtaGVpZ2h0LWludCkpO1xuXHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHQtLWxoI3skaX06IGNhbGModmFyKC0tbGgjeyRpIC0gMX0pICsgdmFyKC0tbGluZS1oZWlnaHQtaW50KSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcblx0I0xheW91dFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHUklEIFBST1BPUlRJT05TXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEN1c3RvbWl6ZSB5b3VyIGdyaWTigJlzIHByb3BvcnRpb25zIGJ5IGVkaXRpbmcgdGhlIHZhbHVlcyBvZlxuLy8gdGhlIGZvdXIgdmFyaWFibGVzIGJlbG93LiBVc2Ugb25seSBudW1iZXJzIGZvciB2YWx1ZXMsIG5vXG4vLyB1bml0cyAoZS5nLiBcIjEwXCIsIG5vdCBcIjEwcHhcIikuIElNUE9SVEFOVDogRG9uJ3QgZGVsZXRlIGFueVxuLy8gb2YgdGhlc2UgdmFyaWFibGVzISBGb3IgYW55IHlvdSBkb24ndCBuZWVkIHRvIHVzZSwganVzdFxuLy8gYXNzaWduIGEgdmFsdWUgb2YgMC5cblxuJG1hcjogNDsgLy8gTWFyZ2luIHdpZHRoXG4kY29sOiA0OyAvLyBDb2x1bW4gd2lkdGhcbiRndXQ6IDE7IC8vIEd1dHRlciB3aWR0aFxuJHBhZDogMTsgLy8gUGFkZGluZyB3aWR0aFxuXG4kZ3JpZC1jb2xvcjogcmVkOyAvLyBHcmlkIG92ZXJsYXkgY29sb3JcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBCUkVBS1BPSU5UU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBZb3UgY2FuIGRlZmluZSBhcyBtYW55IChvciBhcyBmZXcpIGJyZWFrcG9pbnRzIGFzIHlvdSBsaWtlLFxuLy8gYW5kIG5hbWUgdGhlbSB3aGF0ZXZlciB5b3Ugd2FudC4gSnVzdCBiZSBzdXJlIHRvOlxuLy9cbi8vIDEuIHVzZSB0aGUgc3ludGF4IHNob3duIGJlbG93LFxuLy8gMi4ga2VlcCB0aGUgYnJlYWtwb2ludHMgaW4gb3JkZXIgKHNtYWxsZXN0IHRvIGxhcmdlc3QpLCBhbmRcbi8vIDMuIGluY2x1ZGUgYSBuYW1lIChlLmcuIFwieGxcIiksIGNvbHVtbiBjb3VudCAoXCJjb2xzXCIsXG4vLyAgICB1bml0bGVzcyksIGFuZCBtaW5pbXVtIHdpZHRoIChcIm1pbi13aWR0aFwiLCB3aXRoIHVuaXRzKVxuLy8gICAgZm9yIGVhY2ggYnJlYWtwb2ludFxuLy9cbi8vIEFsbCBicmVha3BvaW50cyB1c2UgdGhlIHNhbWUgcHJvcG9ydGlvbnMgc3BlY2lmaWVkIGluIHRoZVxuLy8gdmFyaWFibGVzIGFib3ZlLCBidXQgbWFyZ2luIHdpZHRocyBjYW4gYmUgb3B0aW9uYWxseVxuLy8gY3VzdG9taXplZCBmb3IgZWFjaCBicmVha3BvaW50LlxuXG4vLyBleDogQGluY2x1ZGUgYnJlYWtwb2ludC1taW4oIHNtICkgeyB9XG5cbiRicmVha3BvaW50czogKFxuXHR4eHhzOiAoY29sczogIDQsIG1pbi13aWR0aDogIDAsICBtYXJnaW46ICRwYWQpLCAvLyBJbmNsdWRlcyBvcHRpb25hbCBjdXN0b20gbWFyZ2luXG5cdHh4czogKGNvbHM6ICA2LCBtaW4td2lkdGg6IDI0ZW0sIG1hcmdpbjogJGd1dCksIC8vIDM4NHB4XG5cdHhzOiAoY29sczogIDYsIG1pbi13aWR0aDogMzBlbSwgbWFyZ2luOiAkZ3V0KSwgLy8gNDgwcHhcblx0c206IChjb2xzOiAgNiwgbWluLXdpZHRoOiA0MGVtLCBtYXJnaW46ICRndXQpLCAvLyA2NDBweFxuXHRtZDogKGNvbHM6ICA4LCBtaW4td2lkdGg6IDUwZW0sIG1hcmdpbjogJGd1dCksIC8vIDgwMHB4XG5cdGxnOiAoY29sczogMTIsIG1pbi13aWR0aDogNjBlbSwgbWFyZ2luOiAkbWFyKSwgLy8gOTYwcHhcblx0eGw6IChjb2xzOiAxNiwgbWluLXdpZHRoOiA3MGVtLCBtYXJnaW46ICRtYXIpLCAvLyAxMTIwcHhcblx0eHhsOiAoY29sczogMTYsIG1pbi13aWR0aDogODBlbSwgbWFyZ2luOiAkbWFyKSwgLy8gMTI4MHB4XG4gICAgeHh4bDogKGNvbHM6IDE2LCBtaW4td2lkdGg6IDkwZW0sIG1hcmdpbjogJG1hcikgLy8gMTQ0MHB4XG4pO1xuXG4kbWF4LXdpZHRoOiBudWxsOyAvLyBGb3Igbm8gbWF4LXdpZHRoLCB1c2UgJG1heC13aWR0aDogbnVsbDtcblxuJHNpemVfX3NpdGUtc2lkZWJhcjogMzAwcHg7IC8vIHRoaXMgbmVlZHMgdG8gYmUgcGl4ZWwgYmFzZWQgYmVjYXVzZSBvZiBhZCBkaW1lbnNpb25zXG4kbWF4LXdpZHRoLXBhZ2U6IDgwZW07IC8vIHRoaXMgaXMgMTI4MHB4XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gWi1JTkRFWEVTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHotaW5kZXhfX3h4eGw6IDEwMDAwMDAwMDA7XG4kei1pbmRleF9feHhsOiAxMDAwMDAwMDA7XG4kei1pbmRleF9feGw6IDEwMDAwMDAwO1xuJHotaW5kZXhfX2xnOiAxMDAwMDAwO1xuJHotaW5kZXhfX21kOiAxMDAwMDA7XG4kei1pbmRleF9fc206IDEwMDAwO1xuJHotaW5kZXhfX3hzOiAxMDAwO1xuJHotaW5kZXhfX3h4czogMTAwO1xuJHotaW5kZXhfX3h4eHM6IDEwO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuXHQjU1BBQ0lOR1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy8gbWFyZ2luL3BhZGRpbmdcbiRzdGFuZGFyZC1ibG9jay1tYXJnaW46IDEuNWVtOyAvLyAzNnB4IGF0IGRlc2t0b3BcbiRzdGFuZGFyZC1oZWFkaW5nLW1hcmdpbjogMC43NWVtOyAvLyAxOHB4IGF0IGRlc2t0b3BcbiRzdGFuZGFyZC1ibG9jay1wYWRkaW5nOiAwLjVlbTsgLy8gMTJweCBhdCBib2R5XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG5cdCNCT1JERVJTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4kYm9yZGVyLXJhZGl1czogNHB4O1xuJGJvcmRlci1kZWZhdWx0LXN0eWxlOiAxcHggc29saWQgbmV1dHJhbC1jb2xvcihib3JkZXIpO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuXHQjQW5pbWF0aW9uXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4kaG92ZXItdHJhbnNpdGlvbjogMC4yNXMgYWxsO1xuJGRvdWJsZS10cmFuc2l0aW9uOiAwLjVzIGFsbDtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcblx0I0ZpeGVkIFNpemVzXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBpbWFnZXNcbiRhdXRob3ItdGh1bWItc2l6ZTogNzVweDtcbiRhdXRob3ItcGhvdG8tc2l6ZTogMTkwcHg7XG4kYXV0aG9yLWZ1bGwtc2l6ZTogMjI1cHg7XG5cbi8vIGljb25zXG4kc2hhcmUtaWNvbi1zaXplOiAyZW07XG4kaW5saW5lLWljb24tc2l6ZTogMWVtO1xuXG4vLyBhZHNcbiRhZC10b3Atd2lkdGg6IDcyOHB4O1xuJGFkLXRvcC1oZWlnaHQ6IDkwcHg7XG4kYWQtdG9wLXJpZ2h0LXdpZHRoOiAyMjhweDtcbiRhZC10b3AtcmlnaHQtaWZyYW1lLWhlaWdodDogOTBweDtcbiRhZC1lbWJlZC13aWR0aDogMzAwcHg7XG4kYWQtZW1iZWQtaGVpZ2h0OiAyNTBweDtcbiRhZC1oYWxmcGFnZS13aWR0aDogMzAwcHg7XG4kYWQtaGFsZnBhZ2UtaGVpZ2h0OiA2MDBweDtcblxuLy8gdG91Y2ggdGFyZ2V0c1xuJHRvdWNoLXRhcmdldC1taW5pbXVtLXNpemU6IDQ0cHg7XG4kdG91Y2gtdGFyZ2V0LW1pbmltdW0tc2l6ZS1kZXNrdG9wOiAzMnB4O1xuIiwiLy8gY2xlYXJmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG5cblx0Jjo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdH1cbn1cbi8vIHVzZWQgbGlrZSB0aGlzXG4uY2xlYXJmaXgge1xuXG5cdEBpbmNsdWRlIGNsZWFyZml4O1xufVxuXG4vLyByZXNwb25zaXZlIGlmcmFtZXMgYnkgcmF0aW9cbkBtaXhpbiBnZW5lcmF0ZVJhdGlvcyggJHdpZHRoLCAkaGVpZ2h0LCAkcHJlZml4OiBcInJhdGlvLVwiICkge1xuXHQkY2xhc3MtbmFtZTogJHByZWZpeCArICR3aWR0aCArIFwieFwiICsgJGhlaWdodDtcblxuXHQuI3skY2xhc3MtbmFtZX0ge1xuXHRcdHBhZGRpbmctYm90dG9tOiByYXRpbygkd2lkdGgsICRoZWlnaHQpO1xuXHR9XG5cdC8vIE91dHB1dCBleGFtcGxlOiAucmF0aW8tMTZ4OSB7fVxufVxuLy8gdXNlZCBsaWtlIHRoaXNcbi8vQGluY2x1ZGUgZ2VuZXJhdGVSYXRpb3MoMTYsOSk7IC8vIDE2eDlcbi8vQGluY2x1ZGUgZ2VuZXJhdGVSYXRpb3MoNCwzKTsgIC8vIDR4M1xuXG4vLyBmb250IGZhbWlsaWVzXG5cbi8vIGJvZHkgdGV4dFxuQG1peGluIGJvZHktcHJlc2V0KCAkc2l6ZTogaW5oZXJpdCwgJGJvbGQ6IGluaGVyaXQsICRpdGFsaWM6IGluaGVyaXQsICRsaW5lLWhlaWdodDogaW5oZXJpdCApIHtcblxuXHRAaW5jbHVkZSB0ZXh0LXByZXNldCggJHNpemUsICRsaW5lLWhlaWdodCApO1xuXHRmb250LWZhbWlseTogJHdlYmZvbnRfX3NlcmlmO1xuXHRmb250LXNpemUtYWRqdXN0OiAwLjQ2O1xuXG5cdEBpZiAkYm9sZCA9PSB0cnVlIHtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHR9IEBlbHNlIGlmICRib2xkID09IGZhbHNlIHtcblx0XHRmb250LXdlaWdodDogNTAwO1xuXHR9XG5cblx0QGlmICRpdGFsaWMgPT0gdHJ1ZSB7XG5cdFx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHR9IEBlbHNlIGlmICRpdGFsaWMgPT0gZmFsc2Uge1xuXHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0fVxuXHRsaW5lLWhlaWdodDogMS4zO1xufVxuLy8gdXNlZCBsaWtlIHRoaXM6IGJvZHktcHJlc2V0KCAkc2l6ZTogMyApO1xuXG4vLyBoZWFkaW5nIHRleHRcbkBtaXhpbiBoZWFkaW5nLXByZXNldCggJHNpemU6IGluaGVyaXQsICRib2xkOiBpbmhlcml0LCAkaXRhbGljOiBpbmhlcml0LCAkbGluZS1oZWlnaHQ6IGluaGVyaXQgKSB7XG5cblx0QGluY2x1ZGUgdGV4dC1wcmVzZXQoICRzaXplLCAkbGluZS1oZWlnaHQgKTtcblx0Zm9udC1mYW1pbHk6ICR3ZWJmb250X19zZXJpZjtcblx0Zm9udC1zaXplLWFkanVzdDogMC40NjtcblxuXHRAaWYgJGJvbGQgPT0gdHJ1ZSB7XG5cdFx0Zm9udC13ZWlnaHQ6IDkwMDtcblx0fSBAZWxzZSBpZiAkYm9sZCA9PSBmYWxzZSB7XG5cdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0fVxuXG5cdEBpZiAkaXRhbGljID09IHRydWUge1xuXHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0fSBAZWxzZSBpZiAkaXRhbGljID09IGZhbHNlIHtcblx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdH1cblx0bGluZS1oZWlnaHQ6IDEuMTU7XG59XG4vLyB1c2VkIGxpa2UgdGhpczogQGluY2x1ZGUgaGVhZGluZy1wcmVzZXQoICRzaXplOiAzLCAkYm9sZDogZmFsc2UgKTtcblxuLy8gbWV0YSB0ZXh0XG5AbWl4aW4gbWV0YS1wcmVzZXQoICRzaXplOiBpbmhlcml0LCAkYm9sZDogZmFsc2UsICRpdGFsaWM6IGZhbHNlLCAkbGluZS1oZWlnaHQ6IGluaGVyaXQgKSB7XG5cblx0QGluY2x1ZGUgdGV4dC1wcmVzZXQoICRzaXplLCAkbGluZS1oZWlnaHQgKTtcblx0Zm9udC1mYW1pbHk6ICR3ZWJmb250X19zYW5zO1xuXHRmb250LXNpemUtYWRqdXN0OiAwLjQ5NTtcblxuXHRAaWYgJGJvbGQgPT0gdHJ1ZSB7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0fSBAZWxzZSBpZiAkYm9sZCA9PSBmYWxzZSB7XG5cdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0fVxuXG5cdEBpZiAkaXRhbGljID09IHRydWUge1xuXHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0fSBAZWxzZSBpZiAkaXRhbGljID09IGZhbHNlIHtcblx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdH1cbn1cblxuLy8gdGV4dCBzaXplc1xuQG1peGluIHRleHQtcHJlc2V0KCAkc2l6ZTogaW5oZXJpdCwgJGxpbmUtaGVpZ2h0OiBpbmhlcml0ICkge1xuXHQvL2ZvbnQtc2l6ZTogbWFwLWdldCggJHRleHQtc2l6ZXMsICRzaXplICkgKyBweDtcblx0Ly9mb250LXNpemU6IG1hcC1nZXQoICR0ZXh0LXNpemVzLCAkc2l6ZSApLzEwICsgcmVtO1xuXG5cdEBpZiAkc2l6ZSAhPSBcImluaGVyaXRcIiB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1zY2FsZSN7ICRzaXplIH0pO1xuXHRcdC8vbGluZS1oZWlnaHQ6IHZhcigtLWxoI3sgJHNpemUgfSk7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMztcblx0fVxuXG5cdC8vbGluZS1oZWlnaHQ6IG1hcC1nZXQoICRsaW5lLWhlaWdodHMsICRzaXplICk7XG5cblx0LypAaW5jbHVkZSBicmVha3BvaW50LW1pbiggeHMgKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBtYXAtZ2V0KCAkbGluZS1oZWlnaHRzLCAkc2l6ZSApICogMS4yNTtcbiAgICB9IC8vIDEyNSVcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LW1pbiggc20gKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBtYXAtZ2V0KCAkbGluZS1oZWlnaHRzLCAkc2l6ZSApICogMS41O1xuICAgIH0gLy8gMTUwJSovXG59XG4vLyBsaW5rIHVuZGVybGluZSB0cmVhdG1lbnRcbkBtaXhpbiBsaW5rLXVuZGVybGluZSggJGNvbG9yOiB1dGlsaXR5LWNvbG9yKGJsdWUsIGRhcmspLCAkaG92ZXI6IHV0aWxpdHktY29sb3IoYmx1ZSwgaGlnaGxpZ2h0KSApIHtcblx0Y29sb3I6ICRjb2xvcjtcblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdHRleHQtZGVjb3JhdGlvbi1jb2xvcjogJGhvdmVyO1xuXHR0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMjVlbTtcblx0dGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMC4wOGVtO1xufVxuXG4vLyBidXR0b24gdHJlYXRtZW50XG5AbWl4aW4gYnV0dG9uKCAkYmFja2dyb3VuZDogYnJhbmQtY29sb3IocmVkLCBtZWRpdW0pLCAkaG92ZXI6IGJyYW5kLWNvbG9yKHJlZCwgZGFyayksICRjb2xvcjogbmV1dHJhbC1jb2xvcih3aGl0ZSkpIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwYWRkaW5nOiAkc3RhbmRhcmQtYmxvY2stcGFkZGluZyAvIDI7XG5cdGJvcmRlcjogMDtcblx0bWFyZ2luLXJpZ2h0OiAkc3RhbmRhcmQtYmxvY2stcGFkZGluZztcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdHRyYW5zaXRpb246ICRob3Zlci10cmFuc2l0aW9uO1xuXG5cdEBpbmNsdWRlIG1ldGEtcHJlc2V0KCAkc2l6ZTogMSwgJGJvbGQ6IHRydWUsICRpdGFsaWM6IGZhbHNlLCAkbGluZS1oZWlnaHQ6IDEgKTtcblx0YmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG5cdGNvbG9yOiAkY29sb3I7XG5cdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuXG5cdCY6bGluayxcblx0Jjp2aXNpdGVkIHtcblx0XHRiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcblx0XHRjb2xvcjogJGNvbG9yO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMsXG5cdCY6YWN0aXZlLFxuXHQmLmFjdGl2ZSB7XG5cdFx0YmFja2dyb3VuZDogJGhvdmVyO1xuXHRcdGNvbG9yOiAkY29sb3I7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR9XG59XG4iLCJAaW1wb3J0IFwiZnVuY3Rpb25zXCI7IC8vIHB1dCBmdW5jdGlvbnMgZmlyc3QgYmVjYXVzZSB0aGV5IGdldCB1c2VkIGluIGNvbG9yIHZhcmlhYmxlIGNhbGN1bGF0aW9uc1xuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcImNvbHVtbi1zZXR0ZXJcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBCQVNFXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbnAge1xuXHRvcnBoYW5zOiAyO1xuXHR3aWRvd3M6IDI7XG59XG5cbmZpZ3VyZSxcbnRhYmxlLFxuZGl2LmltYWdlIHtcblx0YnJlYWstaW5zaWRlOiBhdm9pZDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBBVE9NU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uYWNtLWFkLWNvbnRhaW5lcixcbi5hY20tYWQsXG5hcnRpY2xlIC5hY20tYWQsXG4uby1zaXRlLXNpZGViYXIgLmFjbS1hZCB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmEtc2l0ZS1icmFuZGluZyB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IGF1dG87XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bWFyZ2luOiAwIGF1dG8gJHN0YW5kYXJkLWJsb2NrLXBhZGRpbmcgYXV0bztcblxuXHQuYS1sb2dvLXN2ZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuaGVhZGVyIC5hLXNpdGUtYnJhbmRpbmcge1xuXHRtYXJnaW46IDA7XG5cdG1heC13aWR0aDogY29sc3Bhbig1LCAxNik7XG59XG5cbmhlYWRlci5vLWhlYWRlci1zdXBwb3J0IC5hLXNpdGUtYnJhbmRpbmcge1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5tLXN1cHBvcnQtY3RhIC5hLXN1cHBvcnQtYnV0dG9uLFxuLm0tc3VwcG9ydC1jdGEtYm90dG9tIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE1PTEVDVUxFU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ubS1hZC1yZWdpb24ge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5tLXN1cHBvcnQtY3RhIHtcblxuXHQvLyBjdGEgaW4gdGhlIHNpdGUgaGVhZGVyXG5cdCYubS1zdXBwb3J0LWN0YS10b3Age1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHR3aWR0aDogYXV0bztcblx0XHRmb250LXNpemU6IDEwMCU7XG5cdFx0bWF4LXdpZHRoOiBub25lO1xuXG5cdFx0Ly8gdGFnbGluZVxuXHRcdGgyIHtcblxuXHRcdFx0QGluY2x1ZGUgbWV0YS1wcmVzZXQoICRzaXplOiAwLCAkYm9sZDogdHJ1ZSwgJGl0YWxpYzogZmFsc2UsICRsaW5lLWhlaWdodDogMSApO1xuXHRcdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdFx0fVxuXHR9XG5cblx0Ly8gY3RhIGluIHRoZSBzaXRlIGZvb3RlclxuXHQmLm0tc3VwcG9ydC1jdGEtYm90dG9tIHtcblx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLm8taGVhZGVyLXN1cHBvcnQgLm0tc3VwcG9ydC1jdGEubS1zdXBwb3J0LWN0YS10b3Age1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHR3aWR0aDogYXV0bztcblxuXHQvLyB0YWdsaW5lXG5cdGgyIHtcblx0XHRtYXJnaW46IDA7XG5cblx0XHRAaW5jbHVkZSBtZXRhLXByZXNldCggJHNpemU6IDAsICRib2xkOiB0cnVlLCAkaXRhbGljOiBmYWxzZSwgJGxpbmUtaGVpZ2h0OiAxICk7XG5cdH1cbn1cblxuXG5uYXYge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cblxuLm0td2lkZ2V0LXNpdGUtYnJhbmRpbmcge1xuXHRtYXgtd2lkdGg6IGNvbHNwYW4oNiwgMTYpO1xuXG5cdC5hLXNpdGUtYnJhbmRpbmcge1xuXHRcdG1heC13aWR0aDogY29sc3Bhbig1LCA2KTtcblx0fVxufVxuXG4ubS1lbnRyeS1jb250ZW50IHtcblx0bWFyZ2luLWJvdHRvbTogJHN0YW5kYXJkLWJsb2NrLW1hcmdpbjtcblx0b3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcblxuXHQmLm0tbWVtYmVyc2hpcC1zdXBwb3J0LXdyYXBwZXIge1xuXHRcdGZvbnQtZmFtaWx5OiAkd2ViZm9udF9fc2Fucztcblx0fVxufVxuXG4uby1lbnRyeSB7XG5cblx0Lm0tZW50cnktbWV0YSB7XG5cdFx0d2lkdGg6IGNvbHNwYW4oMiwgMTIpO1xuXG5cdFx0Ji5tLWVudHJ5LW1ldGEtaG9yaXpvbnRhbCB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cbn1cblxuLm0tZW50cnktaGVhZGVyIHtcblxuXHQubS1lbnRyeS1tZXRhIHtcblx0XHR3aWR0aDogY29sc3BhbigxMiwgMTIpO1xuXHR9XG59XG5cbi5tLWFyY2hpdmUge1xuXG5cdC5tLWVudHJ5LWNvbnRlbnQge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0ZmxleDogMSAwO1xuXHR9XG5cblx0Ji5tLWFyY2hpdmUtZXhjZXJwdCB7XG5cblx0XHQubS1lbnRyeS1jb250ZW50IHtcblx0XHRcdGZsZXg6IDEgMDtcblx0XHRcdG1hcmdpbi1yaWdodDogJHN0YW5kYXJkLWhlYWRpbmctbWFyZ2luO1xuXHRcdH1cblxuXHR9XG5cblx0Ji5tLWFyY2hpdmUtaG9tZXBhZ2Uge1xuXG5cdFx0Lm0tZW50cnktY29udGVudCB7XG5cdFx0XHRvcmRlcjogMjtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdH1cblx0fVxuXG5cdCYubS16b25lLWhvbWVwYWdlLXRvcCB7XG5cblx0XHQubS1lbnRyeS1jb250ZW50IHtcblx0XHRcdGZsZXg6IDEgMDtcblx0XHRcdG1hcmdpbi1yaWdodDogJHN0YW5kYXJkLWhlYWRpbmctbWFyZ2luO1xuXHRcdH1cblxuXHRcdC5tLXBvc3QtaW1hZ2UtZmlyc3Qge1xuXG5cdFx0XHQubS1lbnRyeS1jb250ZW50IHtcblx0XHRcdFx0b3JkZXI6IDI7XG5cdFx0XHRcdGZsZXg6IDEgMDtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4ubS1hcmNoaXZlLXRvcCAubS1wb3N0LWltYWdlLFxuLm0tYXJjaGl2ZS1leGNlcnB0IC5tLXBvc3QtaW1hZ2UsXG4ubS1hcmNoaXZlLWhvbWVwYWdlIC5tLXBvc3QtaW1hZ2Uge1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLm0tYXJjaGl2ZS10b3AgLm0tcG9zdC1pbWFnZSxcbi5tLWFyY2hpdmUtZXhjZXJwdCAubS1wb3N0LWltYWdlIHtcblx0bWFyZ2luLWxlZnQ6IDA7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdG1hcmdpbi1ib3R0b206ICRzdGFuZGFyZC1oZWFkaW5nLW1hcmdpbjtcblx0d2lkdGg6IGF1dG87XG5cblx0Ji5tLXBvc3QtdGh1bWJuYWlsLWZ1bGwge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG5cbi5tLXBvc3QtaW1hZ2UtZmlyc3QgLm0tcG9zdC1pbWFnZSB7XG5cdG1hcmdpbi1yaWdodDogJHN0YW5kYXJkLWhlYWRpbmctbWFyZ2luO1xufVxuXG4ubS1ob21lcGFnZS16b25lcyB7XG5cblx0Ly8gd2hlcmUgdGhlIHpvbmVzIGRpZmZlciBmcm9tIHRoZSBhcmNoaXZlc1xuXHQubS16b25lIHtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXgtd2lkdGg6IGNhbGMoKDEwMCUpIC0gI3skc2l6ZV9fc2l0ZS1zaWRlYmFyfSk7XG5cblx0XHQmLm0tem9uZS1ob21lcGFnZS10b3AgeyAvLyBiZWNhdXNlIHRoaXMgc2VjdGlvbiBpcyBub3QgdmlzdWFsbHkgc2VwYXJhdGVcblx0XHRcdG1heC13aWR0aDogY2FsYygoMTAwJSAtICN7Y29sc3BhbigxLCAxMil9KSAtICN7JHNpemVfX3NpdGUtc2lkZWJhcn0pO1xuXG5cdFx0XHRhcnRpY2xlIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDA7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYubS16b25lLWhvbWVwYWdlLW1vcmUtdG9wLFxuXHRcdCYubS16b25lLWhvbWVwYWdlLW9waW5pb24ge1xuXG5cdFx0XHRhcnRpY2xlIHtcblx0XHRcdFx0d2lkdGg6IGNvbHNwYW4oNS44LCAxMik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5tLXdpZGdldC1ncm91cCB7XG5cblx0Ji5tLXdpZGdldC1ncm91cC1ob21lcGFnZSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0fVxufVxuXG5cbi8vIE9SR0FOSVNNU1xuLm8td3JhcHBlci1zaXRlLW5hdmlnYXRpb24sXG4uby13cmFwcGVyLXN1Yi1uYXZpZ2F0aW9uLFxuLm8td3JhcHBlci1zaXRlLW5hdmlnYXRpb24gKiB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLm8td3JhcHBlciB7XG5cdC8vIHNpdGUgaGVhZGVyIHdyYXBwZXJcblx0Ji5vLXdyYXBwZXItc2l0ZS1oZWFkZXIge1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0bWFyZ2luLWJvdHRvbTogJHN0YW5kYXJkLWJsb2NrLXBhZGRpbmc7XG5cdH1cbn1cblxuI2NvbnRlbnQge1xuXHRkaXNwbGF5OiBibG9jaztcblxuXHRhcnRpY2xlIHtcblxuXHRcdC5tLWZvcm0tbmV3c2xldHRlci1zaG9ydGNvZGUge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQjY29tbWVudHMge1xuXG5cdFx0LmEtY29tbWVudC1saW5rcyxcblx0XHQjcmVzcG9uZCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdC5tLWVudHJ5LXNoYXJlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Lm0tZm9ybS1pbnN0b3J5IHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Lm0tcmVsYXRlZCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4uby1lbnRyeSB7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblxuXHQubS1lbnRyeS1jb250ZW50IHtcblx0XHRtYXgtd2lkdGg6IGNvbHNwYW4oMTAsIDEyKTtcblx0fVxufVxuXG4uby1zaXRlLW1lc3NhZ2UtY29udGFpbmVyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuXG5ib2R5LnNpbmdsZSxcbmJvZHkucGFnZSB7XG5cblx0Lm8tc2l0ZS1zaWRlYmFyIHtcblxuXHRcdC5tLW1pbm5wb3N0LXNwaWxscy13aWRnZXQsXG5cdFx0Lm0td2lkZ2V0LXpvbmUtcG9zdHMsXG5cdFx0Lm0td2lkZ2V0LW1vc3QtY29tbWVudGVkIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cbmZvb3RlciB7XG5cblx0bmF2IHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Lm8tZm9vdGVyIC5vLWZvb3Rlci1oYXQge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi8vIGRvbid0IHByaW50IHBvcHVwc1xuLnB1bSxcbi53cC1tZXNzYWdlLWluc2VydGVyLW1lc3NhZ2UtcmVnaW9uLXBvcHVwIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGVU5DVElPTlNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gaW52YWxpZFxuLy8gd3JvbmctdHlwZVxuLy8gbWlzc2luZ1xuLy8gb3B0aW9uYWxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbHVtbiBTZXR0ZXIgdXNlcyB0aGUgXCJpbnZhbGlkXCIsIFwid3JvbmctdHlwZVwiLCBcIm1pc3NpbmdcIiwgYW5kXG4vLyBcIm9wdGlvbmFsXCIgZnVuY3Rpb25zIHRvIGJ1aWxkIGVycm9yIG1lc3NhZ2VzLlxuXG5AZnVuY3Rpb24gaW52YWxpZCgkY2FsbCwgJGFyZzI6bnVsbCwgJGFyZzM6bnVsbCwgJGFyZzQ6bnVsbCkge1xuXG5cdEBpZiAkYXJnMiBhbmQgJGFyZzMgYW5kICRhcmc0IHtcblxuXHRcdEByZXR1cm4gXCInI3skY2FsbH0oI3skYXJnMn0sI3skYXJnM30sI3skYXJnNH0pJyBpcyBpbnZhbGlkIGJlY2F1c2UgXCI7XG5cdH1cblxuXHRAaWYgJGFyZzIgYW5kICRhcmczIGFuZCBub3QgJGFyZzQge1xuXG5cdFx0QHJldHVybiBcIicjeyRjYWxsfSgjeyRhcmcyfSwjeyRhcmczfSknIGlzIGludmFsaWQgYmVjYXVzZSBcIjtcblx0fVxuXG5cdEBpZiAkYXJnMiBhbmQgbm90ICRhcmczIGFuZCBub3QgJGFyZzQge1xuXG5cdFx0QHJldHVybiBcIicjeyRjYWxsfSgjeyRhcmcyfSknIGlzIGludmFsaWQgYmVjYXVzZSBcIjtcblx0fVxuXG5cdEBpZiBub3QgJGFyZzIge1xuXG5cdFx0QHJldHVybiBcIicjeyRjYWxsfSgpJyBpcyBpbnZhbGlkIGJlY2F1c2UgXCI7XG5cdH1cbn1cblxuQGZ1bmN0aW9uIHdyb25nLXR5cGUoJHR5cGUsICRhcmcyOm51bGwsICRhcmczOm51bGwpIHtcblxuXHRAaWYgJGFyZzIgYW5kICRhcmczIHtcblxuXHRcdEByZXR1cm4gXCInI3skYXJnMn0nIGFuZCAnI3skYXJnM30nIGFyZSBub3QgI3skdHlwZX1zXCI7XG5cdH1cblxuXHRAaWYgbm90ICRhcmczIHtcblxuXHRcdEByZXR1cm4gXCInI3skYXJnMn0nIGlzIG5vdCBhICN7JHR5cGV9XCI7XG5cdH1cbn1cblxuQGZ1bmN0aW9uIG1pc3NpbmcoJG51bWJlcikge1xuXG5cdEBpZiAkbnVtYmVyIDwgMiB7XG5cblx0XHRAcmV0dXJuIFwiYW4gYXJndW1lbnQgaXMgbWlzc2luZy4gXCI7XG5cdH1cblxuXHRAaWYgJG51bWJlciA+PSAyIHtcblxuXHRcdEByZXR1cm4gXCJhcmd1bWVudHMgYXJlIG1pc3NpbmcuIFwiO1xuXHR9XG59XG5cbkBmdW5jdGlvbiBvcHRpb25hbCgkbnVtYmVyLCRjdXJyZW50LCRjb3JyZWN0KSB7XG5cblx0QHJldHVybiBcInRoZSBvcHRpb25hbCAjeyRudW1iZXJ9IGFyZ3VtZW50IChjdXJyZW50bHkgJyN7JGN1cnJlbnR9Jykgd2lsbCBvbmx5IGFjY2VwdCBhIHZhbHVlIG9mICcjeyRjb3JyZWN0fScuIFwiO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBicC1hdHRyaWJ1dGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbHVtbiBTZXR0ZXIgdXNlcyB0aGUgXCJicC1hdHRyaWJ1dGVcIiBmdW5jdGlvbiB0byByZXRyaWV2ZSB0aGVcbi8vIHZhbHVlcyBvZiBicmVha3BvaW50IGF0dHJpYnV0ZXMgKHN1Y2ggYXMgXCJjb2xzXCIgYW5kIFwibWluXCIsXG4vLyBmb3VuZCBpbiB0aGUgJGJyZWFrcG9pbnRzIG1hcCBpbiBcIm1haW4uc2Nzc1wiKS5cbi8vXG4vLyBFWEFNUExFOiBUbyBhY2Nlc3MgdGhlIG1pbmltdW0gbWVhc3VyZW1lbnQgb2YgdGhlIFwic21cIlxuLy8gYnJlYWtwb2ludC4uLlxuLy9cbi8vIGJwLWF0dHJpYnV0ZShzbSwgbWluLXdpZHRoKVxuLy9cbi8vIC4uLnJldHVybnMgc29tZXRoaW5nIGxpa2UgdGhpczpcbi8vXG4vLyA0MGVtXG5cbkBmdW5jdGlvbiBicC1hdHRyaWJ1dGUoJGJwLW5hbWUsICRicC1hdHRyaWJ1dGUpIHtcblxuXHRAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkYnJlYWtwb2ludHMsICRicC1uYW1lKSwgJGJwLWF0dHJpYnV0ZSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGJwLXZhbGlkYXRvciAoVU5GSU5JU0hFRClcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbHVtbiBTZXR0ZXIgdXNlcyB0aGUgXCJicC12YWxpZGF0b3JcIiBmdW5jdGlvbiB0byBlbnN1cmUgdGhhdCB0aGVyZVxuLy8gYXJlIG5vIGVycm9ycyBpbiB0aGUgJGJyZWFrcG9pbnRzIG1hcCBpbiBcIm1haW4uc2Nzc1wiLlxuXG5AZnVuY3Rpb24gYnAtdmFsaWRhdG9yKCkge1xuXG5cdEBpZiB0eXBlLW9mKCRtYXIpICE9IG51bWJlciBvciB1bml0bGVzcygkbWFyKSA9PSBmYWxzZSB7XG5cblx0XHRAd2FybiBcIkhlcmUgaXMgdGhlIGJwLXZhbGlkYXRvciAkbWFyIHdhcm5pbmcuXCI7XG5cdH1cblxuXHRAaWYgdHlwZS1vZigkY29sKSAhPSBudW1iZXIgb3IgdW5pdGxlc3MoJGNvbCkgPT0gZmFsc2Uge1xuXG5cdFx0QHdhcm4gXCJIZXJlIGlzIHRoZSBicC12YWxpZGF0b3IgJGNvbCB3YXJuaW5nLlwiO1xuXHR9XG5cblx0QGlmIHR5cGUtb2YoJGd1dCkgIT0gbnVtYmVyIG9yIHVuaXRsZXNzKCRndXQpID09IGZhbHNlIHtcblxuXHRcdEB3YXJuIFwiSGVyZSBpcyB0aGUgYnAtdmFsaWRhdG9yICRndXQgd2FybmluZy5cIjtcblx0fVxuXG5cdEBpZiB0eXBlLW9mKCRwYWQpICE9IG51bWJlciBvciB1bml0bGVzcygkcGFkKSA9PSBmYWxzZSB7XG5cblx0XHRAd2FybiBcIkhlcmUgaXMgdGhlIGJwLXZhbGlkYXRvciAkcGFkIHdhcm5pbmcuXCI7XG5cdH1cblxuXHRAZm9yICRpIGZyb20gMSB0aHJvdWdoIGxlbmd0aCgkYnJlYWtwb2ludHMpIHtcblxuXHRcdEBpZiB0eXBlLW9mKG1hcC1nZXQobWFwLWdldCgkYnJlYWtwb2ludHMsIChudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgJGkpKSksIGNvbHMpKSAhPSBudW1iZXIgb3IgdW5pdGxlc3MobWFwLWdldChtYXAtZ2V0KCRicmVha3BvaW50cywgKG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAkaSkpKSwgY29scykpID09IGZhbHNlIHtcblxuXHRcdFx0QHdhcm4gXCJIZXJlIGlzIHRoZSBicC12YWxpZGF0b3IgY29scyB3YXJuaW5nLlwiO1xuXHRcdH1cblx0fVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB3aWR0aFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ29sdW1uIFNldHRlciB1c2VzIHRoZSBcIndpZHRoXCIgZnVuY3Rpb24gdG8gY2FsY3VsYXRlIHRoZSB3aWR0aCBvZiBhXG4vLyBzcGFuIG9mIGNvbHVtbnMsIGRlcml2ZWQgZnJvbSB0aGUgcHJvcG9ydGlvbmFsIHdpZHRoXG4vLyB2YXJpYWJsZXMgd2hvc2UgY3VzdG9taXphYmxlIHZhbHVlcyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wXG4vLyBvZiBcIm1haW4uc2Nzc1wiLlxuLy9cbi8vIEVYQU1QTEU6IEZvciBhIHdpZHRoIHNwYW5uaW5nIDYgY29sdW1ucy4uLlxuLy9cbi8vIHdpZHRoKDYpXG4vL1xuLy8gLi4ucmV0dXJucyBzb21ldGhpbmcgbGlrZSB0aGlzOlxuLy9cbi8vIDUzOFxuXG5AZnVuY3Rpb24gd2lkdGgoJHdpZHRoKSB7XG5cblx0QHJldHVybiAoKCRjb2wgKiAkd2lkdGgpICsgKCRndXQgKiAoJHdpZHRoIC0gMSkpKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gY29sc3BhblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlIFwiY29sc3BhblwiIGZ1bmN0aW9uIGFsbG93cyB0aGUgdXNlciB0byBnZW5lcmF0ZVxuLy8gZ3JpZC1iYXNlZCwgcGVyY2VudGFnZSB3aWR0aCB2YWx1ZXMsIGRlcml2ZWQgZnJvbSB0aGVcbi8vIHByb3BvcnRpb25hbCB3aWR0aCB2YXJpYWJsZXMgd2hvc2UgY3VzdG9taXphYmxlIHZhbHVlcyBhcmVcbi8vIGRlZmluZWQgYXQgdGhlIHRvcCBvZiBcIm1haW4uc2Nzc1wiLlxuLy9cbi8vIEVYQU1QTEU6IEZvciBhIHdpZHRoIHNwYW5uaW5nIDYgb2YgMTIgY29sdW1ucy4uLlxuLy9cbi8vIHdpZHRoOiBjb2xzcGFuKDYsMTIpO1xuLy9cbi8vIC4uLmNvbXBpbGVzIHRvIHNvbWV0aGluZyBsaWtlIHRoaXM6XG4vL1xuLy8gd2lkdGg6IDQ4LjgyMDMzJTtcblxuJGNvbHNwYW4tbGVzc29uOiBcIkEgJ2NvbHNwYW4nIGZ1bmN0aW9uIGNhbGwgbXVzdCBpbmNsdWRlIHRoZSB1bml0bGVzcyBudW1lcmljIGNvbHVtbiB3aWR0aHMgb2YgYm90aCB0aGUgdGFyZ2V0IGFuZCBpdHMgY29udGFpbmVyLCBlLmcuICdjb2xzcGFuKDQsOCknLiBUaGUgdGFyZ2V0IHdpZHRoIGNhbiBhbHNvIGJlIHNwZWNpZmllZCBhcyAncCcgKGZvciAkcGFkIHdpZHRoKSBvciAnZycgKGZvciAkZ3V0IHdpZHRoKS5cIjtcblxuQGZ1bmN0aW9uIGNvbHNwYW4oJHRhcmdldDpudWxsLCRjb250YWluZXI6bnVsbCkge1xuXG5cdEBpZiAkdGFyZ2V0XG5cdFx0YW5kICRjb250YWluZXIge1xuXG5cdFx0QGlmICR0YXJnZXQgPT0gXCJtXCJcblx0XHRcdGFuZCAodHlwZS1vZigkY29udGFpbmVyKSA9PSBcIm51bWJlclwiIGFuZCB1bml0bGVzcygkY29udGFpbmVyKSA9PSB0cnVlKSB7XG5cblx0XHRcdEByZXR1cm4gcGVyY2VudGFnZSgkbWFyIC8gKHdpZHRoKCRjb250YWluZXIpICsgKCRtYXIgKiAyKSkpO1xuXHRcdH1cblxuXHRcdEBpZiAkdGFyZ2V0ID09IFwicFwiXG5cdFx0XHRhbmQgKHR5cGUtb2YoJGNvbnRhaW5lcikgPT0gXCJudW1iZXJcIiBhbmQgdW5pdGxlc3MoJGNvbnRhaW5lcikgPT0gdHJ1ZSkge1xuXG5cdFx0XHRAcmV0dXJuIHBlcmNlbnRhZ2UoJHBhZCAvIHdpZHRoKCRjb250YWluZXIpKTtcblx0XHR9XG5cblx0XHRAaWYgJHRhcmdldCA9PSBcImdcIlxuXHRcdFx0YW5kICh0eXBlLW9mKCRjb250YWluZXIpID09IFwibnVtYmVyXCIgYW5kIHVuaXRsZXNzKCRjb250YWluZXIpID09IHRydWUpIHtcblxuXHRcdFx0QHJldHVybiBwZXJjZW50YWdlKCRndXQgLyB3aWR0aCgkY29udGFpbmVyKSk7XG5cdFx0fVxuXG5cdFx0QGlmICh0eXBlLW9mKCR0YXJnZXQpICE9IFwibnVtYmVyXCIgb3IgdW5pdGxlc3MoJHRhcmdldCkgPT0gZmFsc2UpXG5cdFx0XHRhbmQgKHR5cGUtb2YoJGNvbnRhaW5lcikgIT0gXCJudW1iZXJcIiBvciB1bml0bGVzcygkY29udGFpbmVyKSA9PSBmYWxzZSlcblx0XHRcdGFuZCAkdGFyZ2V0ICE9IFwibVwiXG5cdFx0XHRhbmQgJHRhcmdldCAhPSBcInBcIlxuXHRcdFx0YW5kICR0YXJnZXQgIT0gXCJnXCIge1xuXG5cdFx0XHRAd2FybiBpbnZhbGlkKFwiY29sc3BhblwiLCR0YXJnZXQsJGNvbnRhaW5lcikgKyB3cm9uZy10eXBlKFwidW5pdGxlc3MgbnVtYmVyXCIsJHRhcmdldCwkY29udGFpbmVyKSArIFwiLiBcIiArICRjb2xzcGFuLWxlc3Nvbjtcblx0XHRcdEByZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0QGlmICh0eXBlLW9mKCR0YXJnZXQpICE9IFwibnVtYmVyXCIgb3IgdW5pdGxlc3MoJHRhcmdldCkgPT0gZmFsc2UpXG5cdFx0XHRhbmQgKHR5cGUtb2YoJGNvbnRhaW5lcikgPT0gXCJudW1iZXJcIiBhbmQgdW5pdGxlc3MoJGNvbnRhaW5lcikgPT0gdHJ1ZSkge1xuXG5cdFx0XHRAd2FybiBpbnZhbGlkKFwiY29sc3BhblwiLCR0YXJnZXQsJGNvbnRhaW5lcikgKyB3cm9uZy10eXBlKFwidW5pdGxlc3MgbnVtYmVyXCIsJHRhcmdldCkgKyBcIi4gXCIgKyAkY29sc3Bhbi1sZXNzb247XG5cdFx0XHRAcmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdEBpZiAoKHR5cGUtb2YoJHRhcmdldCkgPT0gXCJudW1iZXJcIiBhbmQgdW5pdGxlc3MoJHRhcmdldCkgPT0gdHJ1ZSkgYW5kICh0eXBlLW9mKCRjb250YWluZXIpICE9IFwibnVtYmVyXCIgb3IgdW5pdGxlc3MoJGNvbnRhaW5lcikgPT0gZmFsc2UpKVxuXHRcdFx0b3IgKCR0YXJnZXQgPT0gXCJtXCIgYW5kICh0eXBlLW9mKCRjb250YWluZXIpICE9IFwibnVtYmVyXCIgb3IgdW5pdGxlc3MoJGNvbnRhaW5lcikgPT0gZmFsc2UpKVxuXHRcdFx0b3IgKCR0YXJnZXQgPT0gXCJwXCIgYW5kICh0eXBlLW9mKCRjb250YWluZXIpICE9IFwibnVtYmVyXCIgb3IgdW5pdGxlc3MoJGNvbnRhaW5lcikgPT0gZmFsc2UpKVxuXHRcdFx0b3IgKCR0YXJnZXQgPT0gXCJnXCIgYW5kICh0eXBlLW9mKCRjb250YWluZXIpICE9IFwibnVtYmVyXCIgb3IgdW5pdGxlc3MoJGNvbnRhaW5lcikgPT0gZmFsc2UpKSB7XG5cblx0XHRcdEB3YXJuIGludmFsaWQoXCJjb2xzcGFuXCIsJHRhcmdldCwkY29udGFpbmVyKSArIHdyb25nLXR5cGUoXCJ1bml0bGVzcyBudW1iZXJcIiwkY29udGFpbmVyKSArIFwiLiBcIiArICRjb2xzcGFuLWxlc3Nvbjtcblx0XHRcdEByZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cblx0QGlmICR0YXJnZXRcblx0XHRhbmQgbm90ICRjb250YWluZXIge1xuXG5cdFx0QGlmICh0eXBlLW9mKCR0YXJnZXQpID09IFwibnVtYmVyXCIgYW5kIHVuaXRsZXNzKCR0YXJnZXQpID09IHRydWUpIHtcblxuXHRcdFx0QHdhcm4gaW52YWxpZChjb2xzcGFuLCR0YXJnZXQpICsgbWlzc2luZygxKSArICRjb2xzcGFuLWxlc3Nvbjtcblx0XHRcdEByZXR1cm4gZmFsc2U7XG5cdFx0fSBAZWxzZSB7XG5cblx0XHRcdEB3YXJuIGludmFsaWQoY29sc3BhbiwkdGFyZ2V0KSArIHdyb25nLXR5cGUoXCJ1bml0bGVzcyBudW1iZXJcIiwkdGFyZ2V0KSArIFwiLCBhbmQgXCIgKyBtaXNzaW5nKDEpICsgJGNvbHNwYW4tbGVzc29uO1xuXHRcdFx0QHJldHVybiBmYWxzZTtcblx0XHR9XG5cdH1cblxuXHRAaWYgbm90ICR0YXJnZXQge1xuXG5cdFx0QHdhcm4gaW52YWxpZChjb2xzcGFuKSArIG1pc3NpbmcoMikgKyAkY29sc3Bhbi1sZXNzb247XG5cdFx0QHJldHVybiBmYWxzZTtcblx0fSBAZWxzZSB7XG5cblx0XHRAcmV0dXJuIHBlcmNlbnRhZ2Uod2lkdGgoJHRhcmdldCkgLyB3aWR0aCgkY29udGFpbmVyKSk7XG5cdH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNSVhJTlNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZnVsbC13aWR0aFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlIFwiZnVsbC13aWR0aFwiIG1peGluIGFsbG93cyB0aGUgdXNlciB0byBicmVhayBhbiBlbGVtZW50XG4vLyBvdXQgb2YgdGhlIGdyaWQgYW5kIGludG8gdGhlIG1hcmdpbnMsIHRha2luZyB1cCB0aGUgZnVsbFxuLy8gd2lkdGggb2YgdGhlIHZpZXdwb3J0LlxuXG5AbWl4aW4gZnVsbC13aWR0aCB7XG5cdHdpZHRoOiBhdXRvO1xuXHRtYXJnaW4tbGVmdDogY2FsYygtNTB2dyArIDUwJSk7XG5cdG1hcmdpbi1yaWdodDogY2FsYygtNTB2dyArIDUwJSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGJyZWFrcG9pbnRcbi8vIGJyZWFrcG9pbnQtbWF4XG4vLyBicmVha3BvaW50LXJhbmdlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGUgdGhyZWUgZmxhdm9ycyBvZiB0aGUgXCJicmVha3BvaW50XCIgbWl4aW4gYWxsb3cgdGhlIHVzZXJcbi8vIHRvIGdlbmVyYXRlIHdpZHRoLWJhc2VkIG1lZGlhIHF1ZXJpZXMgdXNpbmcgdGhlIGJyZWFrcG9pbnRcbi8vIG5hbWVzIGFuZCB2YWx1ZXMgZGVmaW5lZCBpbiB0aGUgJGJyZWFrcG9pbnRzIG1hcCBpblxuLy8gbWFpbi5zY3NzLlxuXG4kdmFsaWQtYnAtbmFtZXM6IFwiQ3VycmVudCB2YWxpZCBicmVha3BvaW50IG5hbWVzOiBcIiArIG1hcC1rZXlzKCRicmVha3BvaW50cykgKyBcIi5cIjtcbiRicC1taW4tbGVzc29uOiBcIkEgJ2JyZWFrcG9pbnQtbWluJyBtaXhpbiBjYWxsIG11c3QgY29udGFpbiBhIHZhbGlkIGJyZWFrcG9pbnQgbmFtZSwgZS5nLiAnYnJlYWtwb2ludC1taW4oc21hbGwpJy4gXCIgKyAkdmFsaWQtYnAtbmFtZXM7XG4kYnAtbWF4LWxlc3NvbjogXCJBICdicmVha3BvaW50LW1heCcgbWl4aW4gY2FsbCBtdXN0IGNvbnRhaW4gYSB2YWxpZCBicmVha3BvaW50IG5hbWUsIGUuZy4gJ2JyZWFrcG9pbnQtbWF4KGxhcmdlKScuIFwiICsgJHZhbGlkLWJwLW5hbWVzO1xuJGJwLXJhbmdlLWxlc3NvbjogXCJBICdicmVha3BvaW50LXJhbmdlJyBtaXhpbiBjYWxsIG11c3QgY29udGFpbiB2YWxpZCBtaW5pbXVtIGFuZCBtYXhpbXVtIGJyZWFrcG9pbnQgbmFtZXMsIGUuZy4gJ2JyZWFrcG9pbnQtcmFuZ2Uoc21hbGwsbGFyZ2UpJy4gXCIgKyAkdmFsaWQtYnAtbmFtZXM7XG5cbi8vIEBpbmNsdWRlIGJyZWFrcG9pbnQtbWluKGxnKSB7IC4uLiB9XG4vL1xuLy8gLi4uY29tcGlsZXMgdG8gc29tZXRoaW5nIGxpa2UgdGhpczpcbi8vXG4vLyBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7IC4uLiB9XG5cbkBtaXhpbiBicmVha3BvaW50LW1pbigkYnA6bnVsbCkge1xuXHQkYWxsLWlzLXdlbGw6IHRydWU7XG5cblx0QGlmICRicCB7XG5cblx0XHRAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG5cdFx0XHQkYWxsLWlzLXdlbGw6IGZhbHNlO1xuXG5cdFx0XHRAd2FybiBpbnZhbGlkKFwiYnJlYWtwb2ludC1taW5cIiwkYnApICsgd3JvbmctdHlwZShcInZhbGlkIGJyZWFrcG9pbnQgbmFtZVwiLCRicCkgKyBcIi4gXCIgKyAkYnAtbWluLWxlc3Nvbjtcblx0XHR9XG5cdH0gQGVsc2Uge1xuXHRcdCRhbGwtaXMtd2VsbDogZmFsc2U7XG5cblx0XHRAd2FybiBpbnZhbGlkKFwiYnJlYWtwb2ludC1taW5cIikgKyBtaXNzaW5nKDEpICsgJGJwLW1pbi1sZXNzb247XG5cdH1cblxuXHRAaWYgJGFsbC1pcy13ZWxsID09IHRydWUge1xuXG5cdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogYnAtYXR0cmlidXRlKCRicCwgbWluLXdpZHRoKSkge1xuXHRcdFx0QGNvbnRlbnQ7XG5cdFx0fVxuXHR9XG59XG5cbi8vIEBpbmNsdWRlIGJyZWFrcG9pbnQtbWF4KGxnKSB7IC4uLiB9XG4vL1xuLy8gLi4uY29tcGlsZXMgdG8gc29tZXRoaW5nIGxpa2UgdGhpczpcbi8vXG4vLyBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MGVtKSB7IC4uLiB9XG5cbkBtaXhpbiBicmVha3BvaW50LW1heCgkYnA6bnVsbCkge1xuXHQkYWxsLWlzLXdlbGw6IHRydWU7XG5cblx0QGlmICRicCB7XG5cblx0XHRAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG5cdFx0XHQkYWxsLWlzLXdlbGw6IGZhbHNlO1xuXG5cdFx0XHRAd2FybiBpbnZhbGlkKFwiYnJlYWtwb2ludC1tYXhcIiwkYnApICsgd3JvbmctdHlwZShcInZhbGlkIGJyZWFrcG9pbnQgbmFtZVwiLCRicCkgKyBcIi4gXCIgKyAkYnAtbWluLWxlc3Nvbjtcblx0XHR9XG5cdH0gQGVsc2Uge1xuXHRcdCRhbGwtaXMtd2VsbDogZmFsc2U7XG5cblx0XHRAd2FybiBpbnZhbGlkKFwiYnJlYWtwb2ludC1tYXhcIikgKyBtaXNzaW5nKDEpICsgJGJwLW1pbi1sZXNzb247XG5cdH1cblxuXHRAaWYgJGFsbC1pcy13ZWxsID09IHRydWUge1xuXG5cdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogYnAtYXR0cmlidXRlKCRicCwgbWluLXdpZHRoKSkge1xuXHRcdFx0QGNvbnRlbnQ7XG5cdFx0fVxuXHR9XG59XG5cbi8vIEBpbmNsdWRlIGJyZWFrcG9pbnQtcmFuZ2UobWQsIGxnKSB7IC4uLiB9XG4vL1xuLy8gLi4uY29tcGlsZXMgdG8gc29tZXRoaW5nIGxpa2UgdGhpczpcbi8vXG4vLyBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSBhbmQgKG1heC13aWR0aDogNTBlbSkgeyAuLi4gfVxuXG5AbWl4aW4gYnJlYWtwb2ludC1yYW5nZSgkYnAtbWluOm51bGwsICRicC1tYXg6bnVsbCkge1xuXHQkYWxsLWlzLXdlbGw6IHRydWU7XG5cblx0QGlmICRicC1taW5cblx0XHRhbmQgJGJwLW1heCB7XG5cblx0XHRAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwLW1pbilcblx0XHRcdGFuZCBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnAtbWF4KSB7XG5cdFx0XHQkYWxsLWlzLXdlbGw6IGZhbHNlO1xuXG5cdFx0XHRAd2FybiBpbnZhbGlkKFwiYnJlYWtwb2ludC1yYW5nZVwiLCRicC1taW4sJGJwLW1heCkgKyB3cm9uZy10eXBlKFwidmFsaWQgYnJlYWtwb2ludCBuYW1lXCIsJGJwLW1pbiwkYnAtbWF4KSArIFwiLiBcIiArICRicC1yYW5nZS1sZXNzb247XG5cdFx0fVxuXG5cdFx0QGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicC1taW4pXG5cdFx0XHRhbmQgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnAtbWF4KSB7XG5cdFx0XHQkYWxsLWlzLXdlbGw6IGZhbHNlO1xuXG5cdFx0XHRAd2FybiBpbnZhbGlkKFwiYnJlYWtwb2ludC1yYW5nZVwiLCRicC1taW4sJGJwLW1heCkgKyB3cm9uZy10eXBlKFwidmFsaWQgYnJlYWtwb2ludCBuYW1lXCIsJGJwLW1pbikgKyBcIi4gXCIgKyAkYnAtcmFuZ2UtbGVzc29uO1xuXHRcdH1cblxuXHRcdEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicC1taW4pXG5cdFx0XHRhbmQgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwLW1heCkge1xuXHRcdFx0JGFsbC1pcy13ZWxsOiBmYWxzZTtcblxuXHRcdFx0QHdhcm4gaW52YWxpZChcImJyZWFrcG9pbnQtcmFuZ2VcIiwkYnAtbWluLCRicC1tYXgpICsgd3JvbmctdHlwZShcInZhbGlkIGJyZWFrcG9pbnQgbmFtZVwiLCRicC1tYXgpICsgXCIuIFwiICsgJGJwLXJhbmdlLWxlc3Nvbjtcblx0XHR9XG5cdH1cblxuXHRAaWYgJGJwLW1pblxuXHRcdGFuZCBub3QgJGJwLW1heCB7XG5cdFx0JGFsbC1pcy13ZWxsOiBmYWxzZTtcblxuXHRcdEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicC1taW4pIHtcblxuXHRcdFx0QHdhcm4gaW52YWxpZChcImJyZWFrcG9pbnQtcmFuZ2VcIiwkYnAtbWluKSArIG1pc3NpbmcoMSkgKyAkYnAtcmFuZ2UtbGVzc29uO1xuXHRcdH0gQGVsc2Uge1xuXG5cdFx0XHRAd2FybiBpbnZhbGlkKFwiYnJlYWtwb2ludC1yYW5nZVwiLCRicC1taW4pICsgd3JvbmctdHlwZShcInZhbGlkIGJyZWFrcG9pbnQgbmFtZVwiLCRicC1taW4pICsgXCIsIGFuZCBcIiArIG1pc3NpbmcoMSkgKyAkYnAtcmFuZ2UtbGVzc29uO1xuXHRcdH1cblx0fVxuXG5cdEBpZiBub3QgJGJwLW1pbiB7XG5cdFx0JGFsbC1pcy13ZWxsOiBmYWxzZTtcblxuXHRcdEB3YXJuIGludmFsaWQoXCJicmVha3BvaW50LXJhbmdlXCIpICsgbWlzc2luZygyKSArICRicC1yYW5nZS1sZXNzb247XG5cdH1cblxuXHRAaWYgJGFsbC1pcy13ZWxsID09IHRydWUge1xuXG5cdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogYnAtYXR0cmlidXRlKCRicC1taW4sIG1pbi13aWR0aCkpIGFuZCAobWF4LXdpZHRoOiBicC1hdHRyaWJ1dGUoJGJwLW1heCwgbWluLXdpZHRoKSkge1xuXHRcdFx0QGNvbnRlbnQ7XG5cdFx0fVxuXHR9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGdyaWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZSBcImdyaWRcIiBtaXhpbiBhbGxvd3MgdGhlIHVzZXIgdG8gaWRlbnRpZnkgdGhlIGNsYXNzIG9mXG4vLyB0aGUgcHJpbWFyeSBjb250YWluaW5nIGVsZW1lbnQgaW4gd2hpY2ggdGhlaXIgZ3JpZC1hbGlnbmVkXG4vLyBjb250ZW50IGxpdmVzLiBUaGUgbWl4aW4gdXNlcyBhbGwgb2YgdGhlIGluZm8gZnJvbSB0aGVcbi8vIHByb3BvcnRpb25hbCB3aWR0aCBhbmQgYnJlYWtwb2ludCB2YXJpYWJsZXMgZGVmaW5lZCBhdCB0aGVcbi8vIHRvcCBvZiBcIm1haW4uc2Nzc1wiIHRvIHNwZWNpZnkgYXBwcm9wcmlhdGUgbWFyZ2luIHdpZHRocyBmb3Jcbi8vIHRoZSBncmlkIGNvbnRhaW5lciBhdCBlYWNoIGJyZWFrcG9pbnQuIE9wdGlvbmFsbHkgaW5jbHVkaW5nXG4vLyBcIm92ZXJsYXlcIiBhcyBhIHNlY29uZCBhcmd1bWVudCB3aWxsIGFkZCBhIHRyYW5zbHVjZW50IGdyaWRcbi8vIG92ZXJsYXkgb24gdG9wIG9mIHRoZSBncmlkIGNvbnRhaW5lciB3aGljaCBjYW4gYmUgdXNlZCBpblxuLy8gcHJvZHVjdGlvbiB0byBlbnN1cmUgdGhhdCB5b3VyIGRlc2lnbiBpcyBhbGlnbmluZyB0byB0aGVcbi8vIGdyaWQgYXMgaW50ZW5kZWQuXG4vL1xuLy8gRVhBTVBMRTogSWYgXCJtYWluLnNjc3NcIiBkZWZpbmVzIHR3byBicmVha3BvaW50cyBhbmQgdGhlXG4vLyBwcmltYXJ5IGdyaWQgY29udGFpbmVyIGhhcyBhIGNsYXNzIG9mIFwiY29udGVudFwiLi4uXG4vL1xuLy8gQGluY2x1ZGUgZ3JpZChjb250ZW50KTtcbi8vXG4vLyAuLi5jb21waWxlcyB0byBzb21ldGhpbmcgbGlrZSB0aGlzOlxuLy9cbi8vIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDApIHtcbi8vICAgLmNvbnRlbnQge1xuLy8gICAgIG1hcmdpbjogMCAzLjM4NjM4JTtcbi8vICAgfVxuLy8gfVxuLy8gQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuLy8gICAuY29udGVudCB7XG4vLyAgICAgbWFyZ2luOiAwIDQuMzYxOTQlO1xuLy8gICB9XG4vLyB9XG5cbiRncmlkLWxlc3NvbjogXCJBICdncmlkJyBtaXhpbiBjYWxsIG11c3QgaW5jbHVkZSBhIHZhbGlkIGNsYXNzIG5hbWUsIGUuZy4gJ2dyaWQoY29udGVudCk7Jy4gSXQgbWF5IG9wdGlvbmFsbHkgaW5jbHVkZSBhIHNlY29uZCBhcmd1bWVudCBvZiAnb3ZlcmxheScgKGUuZy4gJ2dyaWQoY29udGVudCxvdmVybGF5KTsnKSB0byBjcmVhdGUgYSB0cmFuc2x1Y2VudCBncmlkIG92ZXJsYXkgb24gdG9wIG9mIHRoZSBncmlkIGNvbnRhaW5lci5cIjtcblxuQG1peGluIGdyaWQoJGNsYXNzOm51bGwsICRvdmVybGF5Om51bGwpIHtcblx0JGFsbC1pcy13ZWxsOiB0cnVlO1xuXG5cdEBpZiBub3QgJGNsYXNzIHtcblx0XHQkYWxsLWlzLXdlbGw6IGZhbHNlO1xuXG5cdFx0QHdhcm4gaW52YWxpZChcImdyaWRcIikgKyBtaXNzaW5nKDEpICsgJGdyaWQtbGVzc29uO1xuXHR9XG5cblx0QGlmICRvdmVybGF5ICE9IFwib3ZlcmxheVwiXG5cdFx0YW5kICRvdmVybGF5ICE9IG51bGwge1xuXHRcdCRhbGwtaXMtd2VsbDogZmFsc2U7XG5cblx0XHRAd2FybiBpbnZhbGlkKFwiZ3JpZFwiLCRjbGFzcywkb3ZlcmxheSkgKyBvcHRpb25hbChcInNlY29uZFwiLCRvdmVybGF5LFwib3ZlcmxheVwiKSArICRncmlkLWxlc3Nvbjtcblx0fVxuXG5cdEBpZiAkYWxsLWlzLXdlbGwgPT0gdHJ1ZSB7XG5cblx0XHQuI3skY2xhc3N9IHtcblxuXHRcdFx0QGVhY2ggJGJwLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnRzIHtcblxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50LW1pbigkYnApIHtcblxuXHRcdFx0XHRcdEBpZiBtYXAtaGFzLWtleShtYXAtZ2V0KCRicmVha3BvaW50cywgJGJwKSwgbWFyZ2luKSB7XG5cdFx0XHRcdFx0XHRtYXJnaW46IDAgY29sc3BhbihicC1hdHRyaWJ1dGUoJGJwLCBtYXJnaW4pLCB3aWR0aChicC1hdHRyaWJ1dGUoJGJwLCBjb2xzKSkgKyAoYnAtYXR0cmlidXRlKCRicCwgbWFyZ2luKSAqIDIpKTtcblx0XHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHRcdG1hcmdpbjogMCBjb2xzcGFuKG0sIGJwLWF0dHJpYnV0ZSgkYnAsIGNvbHMpKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gSWYgdGhlcmUgaXMgYSBtYXgtd2lkdGgsXG5cdFx0XHQvLyBjcmVhdGUgYSBicmVha3BvaW50IHdpdGggYSBtaW4td2lkdGggZXF1YWwgdG86XG5cdFx0XHQvLyAoKChtYXIgLyB3aWR0aCkgKiBtYXgtd2lkdGgpICogMikgKyBtYXgtd2lkdGhcblxuXHRcdFx0QGlmICRtYXgtd2lkdGgge1xuXHRcdFx0XHRtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG5cdFx0XHRcdCRicC1maW5hbDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIC0xKTsgLy8gTmFtZSBvZiB0aGUgd2lkZXN0IGJyZWFrcG9pbnRcblxuXHRcdFx0XHRAaWYgbWFwLWhhcy1rZXkobWFwLWdldCgkYnJlYWtwb2ludHMsICRicC1maW5hbCksIG1hcmdpbikge1xuXG5cdFx0XHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogKCgoKGJwLWF0dHJpYnV0ZSgkYnAtZmluYWwsIG1hcmdpbikgLyB3aWR0aChicC1hdHRyaWJ1dGUoJGJwLWZpbmFsLCBjb2xzKSkpICogJG1heC13aWR0aCkgKiAyKSArICRtYXgtd2lkdGgpKSB7XG5cdFx0XHRcdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gQGVsc2Uge1xuXG5cdFx0XHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogKCgoKCRtYXIgLyB3aWR0aChicC1hdHRyaWJ1dGUoJGJwLWZpbmFsLCBjb2xzKSkpICogJG1heC13aWR0aCkgKiAyKSArICRtYXgtd2lkdGgpKSB7XG5cdFx0XHRcdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0QGlmICRvdmVybGF5ID09IG92ZXJsYXkge1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdCRnYzogcmdiYSgkZ3JpZC1jb2xvciwgMC4xKTtcblx0XHRcdFx0JGdwOiByZ2JhKCRncmlkLWNvbG9yLCAwLjIpO1xuXHRcdFx0XHQkZ2c6IHJnYmEoJGdyaWQtY29sb3IsIDApO1xuXG5cdFx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHRcdHotaW5kZXg6IDEwMDtcblx0XHRcdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXHRcdFx0XHRcdEBlYWNoICRicCwgJHZhbHVlIGluICRicmVha3BvaW50cyB7XG5cblx0XHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQtbWluKCRicCkge1xuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkZ3AsICRncCBjb2xzcGFuKHAsIGJwLWF0dHJpYnV0ZSgkYnAsIGNvbHMpKSwgJGdjIGNvbHNwYW4ocCwgYnAtYXR0cmlidXRlKCRicCwgY29scykpLCAkZ2MgY29sc3BhbigxLCBicC1hdHRyaWJ1dGUoJGJwLCBjb2xzKSkgLSBjb2xzcGFuKHAsIGJwLWF0dHJpYnV0ZSgkYnAsIGNvbHMpKSwgJGdwIGNvbHNwYW4oMSwgYnAtYXR0cmlidXRlKCRicCwgY29scykpIC0gY29sc3BhbihwLCBicC1hdHRyaWJ1dGUoJGJwLCBjb2xzKSksICRncCBjb2xzcGFuKDEsIGJwLWF0dHJpYnV0ZSgkYnAsIGNvbHMpKSwgJGdnIGNvbHNwYW4oMSwgYnAtYXR0cmlidXRlKCRicCwgY29scykpLCAkZ2cgY29sc3BhbigxLCBicC1hdHRyaWJ1dGUoJGJwLCBjb2xzKSkgKyBjb2xzcGFuKGcsIGJwLWF0dHJpYnV0ZSgkYnAsIGNvbHMpKSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iXX0= */
