/**
* This page and wiki was built with the help of igem-wikibrick, a tool created by Virginia iGEM 2018 * @version v0.7.3 * @version v0.7.3 * @link https://github.com/Virginia-iGEM/igem-wikibrick * @license MIT */
/*
Copyright (C) Federico Zivolo 2018 Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function r(e){return 11===e?re:10===e?pe:re||pe}function p(e){if(!e)return document.documentElement;for(var o=r(10)?document.body:null,n=e.offsetParent;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',n=e.nodeName;if('BODY'===n||'HTML'===n){var i=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||i;return r[o]}return e[o]}function f(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],n=l(t,'top'),i=l(t,'left'),r=o?-1:1;return e.top+=n*r,e.bottom+=n*r,e.left+=i*r,e.right+=i*r,e}function m(e,t){var o='x'===t?'Left':'Top',n='Left'==o?'Right':'Bottom';return parseFloat(e['border'+o+'Width'],10)+parseFloat(e['border'+n+'Width'],10)}function h(e,t,o,n){return J(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],r(10)?parseInt(o['offset'+e])+parseInt(n['margin'+('Height'===e?'Top':'Left')])+parseInt(n['margin'+('Height'===e?'Bottom':'Right')]):0)}function c(e){var t=e.body,o=e.documentElement,n=r(10)&&getComputedStyle(o);return{height:h('Height',t,o,n),width:h('Width',t,o,n)}}function g(e){return le({},e,{right:e.left+e.width,bottom:e.top+e.height})}function u(e){var o={};try{if(r(10)){o=e.getBoundingClientRect();var n=l(e,'top'),i=l(e,'left');o.top+=n,o.left+=i,o.bottom+=n,o.right+=i}else o=e.getBoundingClientRect()}catch(t){}var p={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},s='HTML'===e.nodeName?c(e.ownerDocument):{},d=s.width||e.clientWidth||p.right-p.left,a=s.height||e.clientHeight||p.bottom-p.top,f=e.offsetWidth-d,h=e.offsetHeight-a;if(f||h){var u=t(e);f-=m(u,'x'),h-=m(u,'y'),p.width-=f,p.height-=h}return g(p)}function b(e,o){var i=2<arguments.length&&void 0!==arguments[2]&&arguments[2],p=r(10),s='HTML'===o.nodeName,d=u(e),a=u(o),l=n(e),m=t(o),h=parseFloat(m.borderTopWidth,10),c=parseFloat(m.borderLeftWidth,10);i&&s&&(a.top=J(a.top,0),a.left=J(a.left,0));var b=g({top:d.top-a.top-h,left:d.left-a.left-c,width:d.width,height:d.height});if(b.marginTop=0,b.marginLeft=0,!p&&s){var y=parseFloat(m.marginTop,10),w=parseFloat(m.marginLeft,10);b.top-=h-y,b.bottom-=h-y,b.left-=c-w,b.right-=c-w,b.marginTop=y,b.marginLeft=w}return(p&&!i?o.contains(l):o===l&&'BODY'!==l.nodeName)&&(b=f(b,o)),b}function y(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,n=b(e,o),i=J(o.clientWidth,window.innerWidth||0),r=J(o.clientHeight,window.innerHeight||0),p=t?0:l(o),s=t?0:l(o,'left'),d={top:p-n.top+n.marginTop,left:s-n.left+n.marginLeft,width:i,height:r};return g(d)}function w(e){var n=e.nodeName;return'BODY'===n||'HTML'===n?!1:'fixed'===t(e,'position')||w(o(e))}function E(e){if(!e||!e.parentElement||r())return document.documentElement;for(var o=e.parentElement;o&&'none'===t(o,'transform');)o=o.parentElement;return o||document.documentElement}function v(e,t,i,r){var p=4<arguments.length&&void 0!==arguments[4]&&arguments[4],s={top:0,left:0},d=p?E(e):a(e,t);if('viewport'===r)s=y(d,p);else{var l;'scrollParent'===r?(l=n(o(t)),'BODY'===l.nodeName&&(l=e.ownerDocument.documentElement)):'window'===r?l=e.ownerDocument.documentElement:l=r;var f=b(l,d,p);if('HTML'===l.nodeName&&!w(d)){var m=c(e.ownerDocument),h=m.height,g=m.width;s.top+=f.top-f.marginTop,s.bottom=h+f.top,s.left+=f.left-f.marginLeft,s.right=g+f.left}else s=f}i=i||0;var u='number'==typeof i;return s.left+=u?i:i.left||0,s.top+=u?i:i.top||0,s.right-=u?i:i.right||0,s.bottom-=u?i:i.bottom||0,s}function x(e){var t=e.width,o=e.height;return t*o}function O(e,t,o,n,i){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=v(o,n,r,i),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return le({key:e},s[e],{area:x(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,n=e.height;return t>=o.clientWidth&&n>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return l+(f?'-'+f:)}function L(e,t,o){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,i=n?E(t):a(t,o);return b(o,i,n)}function S(e){var t=getComputedStyle(e),o=parseFloat(t.marginTop)+parseFloat(t.marginBottom),n=parseFloat(t.marginLeft)+parseFloat(t.marginRight),i={width:e.offsetWidth+n,height:e.offsetHeight+o};return i}function T(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function D(e,t,o){o=o.split('-')[0];var n=S(e),i={width:n.width,height:n.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return i[p]=t[p]+t[d]/2-n[d]/2,i[s]=o===s?t[s]-n[a]:t[T(s)],i}function C(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function N(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var n=C(e,function(e){return e[t]===o});return e.indexOf(n)}function P(t,o,n){var i=void 0===n?t:t.slice(0,N(t,'name',n));return i.forEach(function(t){t['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var n=t['function']||t.fn;t.enabled&&e(n)&&(o.offsets.popper=g(o.offsets.popper),o.offsets.reference=g(o.offsets.reference),o=n(o,t))}),o}function k(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=L(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=O(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=D(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?'fixed':'absolute',e=P(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var o=e.name,n=e.enabled;return n&&o===t})}function H(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length;n++){var i=t[n],r=i?+i+o:e;if('undefined'!=typeof document.body.style[r])return r}return null}function B(){return this.state.isDestroyed=!0,W(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.position=,this.popper.style.top=,this.popper.style.left=,this.popper.style.right=,this.popper.style.bottom=,this.popper.style.willChange=,this.popper.style[H('transform')]=),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function A(e){var t=e.ownerDocument;return t?t.defaultView:window}function M(e,t,o,i){var r='BODY'===e.nodeName,p=r?e.ownerDocument.defaultView:e;p.addEventListener(t,o,{passive:!0}),r||M(n(p.parentNode),t,o,i),i.push(p)}function F(e,t,o,i){o.updateBound=i,A(e).addEventListener('resize',o.updateBound,{passive:!0});var r=n(e);return M(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function I(){this.state.eventsEnabled||(this.state=F(this.reference,this.options,this.state,this.scheduleUpdate))}function R(e,t){return A(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function U(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=R(this.reference,this.state))}function Y(e){return!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function j(e,t){Object.keys(t).forEach(function(o){var n=;-1!==['width','height','top','right','bottom','left'].indexOf(o)&&Y(t[o])&&(n='px'),e.style[o]=t[o]+n})}function K(e,t){Object.keys(t).forEach(function(o){var n=t[o];!1===n?e.removeAttribute(o):e.setAttribute(o,t[o])})}function q(e,t,o){var n=C(e,function(e){var o=e.name;return o===t}),i=!!n&&e.some(function(e){return e.name===o&&e.enabled&&e.order<n.order});if(!i){var r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return i}function G(e){return'end'===e?'start':'start'===e?'end':e}function V(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=me.indexOf(e),n=me.slice(o+1).concat(me.slice(0,o));return t?n.reverse():n}function z(e,t,o,n){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],p=i[2];if(!r)return e;if(0===p.indexOf('%')){var s;switch(p){case'%p':s=o;break;case'%':case'%r':default:s=n;}var d=g(s);return d[t]/100*r}if('vh'===p||'vw'===p){var a;return a='vh'===p?J(document.documentElement.clientHeight,window.innerHeight||0):J(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return r}function _(e,t,o,n){var i=[0,0],r=-1!==['right','left'].indexOf(n),p=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=p.indexOf(C(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return a=a.map(function(e,n){var i=(1===n?!r:r)?'height':'width',p=!1;return e.reduce(function(e,t){return===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return z(e,i,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,n){Y(o)&&(i[t]+=o*('-'===e[n-1]?-1:1))})}),i}function X(e,t){var o,n=t.offset,i=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=i.split('-')[0];return o=Y(+n)?[+n,0]:_(n,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e}for(var Q=Math.min,Z=Math.round,$=Math.floor,J=Math.max,ee='undefined'!=typeof window&&'undefined'!=typeof document,te=['Edge','Trident','Firefox'],oe=0,ne=0;ne<te.length;ne+=1)if(ee&&0<=navigator.userAgent.indexOf(te[ne])){oe=1;break}var i=ee&&window.Promise,ie=i?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},oe))}},re=ee&&!!(window.MSInputMethodContext&&document.documentMode),pe=ee&&/MSIE 10/.test(navigator.userAgent),se=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},de=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}(),ae=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},le=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var n in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},fe=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],me=fe.slice(3),he={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},ce=function(){function t(o,n){var i=this,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};se(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=ie(this.update.bind(this)),this.options=le({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o&&o.jquery?o[0]:o,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(le({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){i.options.modifiers[e]=le({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return le({name:e},i.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return de(t,[{key:'update',value:function(){return k.call(this)}},{key:'destroy',value:function(){return B.call(this)}},{key:'enableEventListeners',value:function(){return I.call(this)}},{key:'disableEventListeners',value:function(){return U.call(this)}}]),t}();return ce.Utils=('undefined'==typeof window?global:window).PopperUtils,ce.placements=fe,ce.Defaults={placement:'bottom',positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split('-')[0],n=t.split('-')[1];if(n){var i=e.offsets,r=i.reference,p=i.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:ae({},d,r[d]),end:ae({},d,r[d]+r[a]-p[a])};e.offsets.popper=le({},p,l[n])}return e}},offset:{order:200,enabled:!0,fn:X,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||p(e.instance.popper);e.instance.reference===o&&(o=p(o));var n=H('transform'),i=e.instance.popper.style,r=i.top,s=i.left,d=i[n];i.top=,i.left=,i[n]=;var a=v(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);i.top=r,i.left=s,i[n]=d,t.boundaries=a;var l=t.priority,f=e.offsets.popper,m={primary:function(e){var o=f[e];return f[e]<a[e]&&!t.escapeWithReference&&(o=J(f[e],a[e])),ae({},e,o)},secondary:function(e){var o='right'===e?'left':'top',n=f[o];return f[e]>a[e]&&!t.escapeWithReference&&(n=Q(f[o],a[e]-('right'===e?f.width:f.height))),ae({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=le({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=$,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]<r(n[d])&&(e.offsets.popper[d]=r(n[d])-o[a]),o[d]>r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!q(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-u<s[m]&&(e.offsets.popper[m]-=s[m]-(d[c]-u)),d[m]+u>s[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,y=t(e.instance.popper),w=parseFloat(y['margin'+f],10),E=parseFloat(y['border'+f+'Width'],10),v=b-e.offsets.popper[m]-w-E;return v=J(Q(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},ae(n,m,Z(v)),ae(n,h,),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||,p=[];switch(t.behavior){case he.FLIP:p=[n,i];break;case he.CLOCKWISE:p=V(n);break;case he.COUNTERCLOCKWISE:p=V(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=$,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)<f(l.right)||'top'===n&&f(a.bottom)>f(l.top)||'bottom'===n&&f(a.top)<f(l.bottom),h=f(a.left)<f(o.left),c=f(a.right)>f(o.right),g=f(a.top)<f(o.top),u=f(a.bottom)>f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,y=-1!==['top','bottom'].indexOf(n),w=!!t.flipVariations&&(y&&'start'===r&&h||y&&'end'===r&&c||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),w&&(r=G(r)),e.placement=n+(r?'-'+r:),e.offsets.popper=le({},e.offsets.popper,D(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!q(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=C(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var o=t.x,n=t.y,i=e.offsets.popper,r=C(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==r&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');var s,d,a=void 0===r?t.gpuAcceleration:r,l=p(e.instance.popper),f=u(l),m={position:i.position},h={left:$(i.left),top:Z(i.top),bottom:Z(i.bottom),right:$(i.right)},c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=H('transform');if(d='bottom'==c?'HTML'===l.nodeName?-l.clientHeight+h.bottom:-f.height+h.bottom:h.top,s='right'==g?'HTML'===l.nodeName?-l.clientWidth+h.right:-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var y='bottom'==c?-1:1,w='right'==g?-1:1;m[c]=d*y,m[g]=s*w,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=le({},E,e.attributes),e.styles=le({},m,e.styles),e.arrowStyles=le({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return j(e.instance.popper,e.styles),K(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&j(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),j(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ce});
//# sourceMappingURL=popper.min.js.map /*!
* Bootstrap v4.1.0 (https://getbootstrap.com/) * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,c){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function o(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function h(r){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{},e=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(s).filter(function(t){return Object.getOwnPropertyDescriptor(s,t).enumerable}))),e.forEach(function(t){var e,n,i;e=r,i=s[n=t],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return r}e=e&&e.hasOwnProperty("default")?e.default:e,c=c&&c.hasOwnProperty("default")?c.default:c;var r,n,s,a,l,u,f,d,_,g,m,p,v,E,y,T,C,I,A,D,b,S,w,N,O,k,P,L,j,R,H,W,M,x,U,K,F,V,Q,B,Y,G,q,z,X,J,Z,$,tt,et,nt,it,rt,st,ot,at,lt,ht,ct,ut,ft,dt,_t,gt,mt,pt,vt,Et,yt,Tt,Ct,It,At,Dt,bt,St,wt,Nt,Ot,kt,Pt,Lt,jt,Rt,Ht,Wt,Mt,xt,Ut,Kt,Ft,Vt,Qt,Bt,Yt,Gt,qt,zt,Xt,Jt,Zt,$t,te,ee,ne,ie,re,se,oe,ae,le,he,ce,ue,fe,de,_e,ge,me,pe,ve,Ee,ye,Te,Ce,Ie,Ae,De,be,Se,we,Ne,Oe,ke,Pe,Le,je,Re,He,We,Me,xe,Ue,Ke,Fe,Ve,Qe,Be,Ye,Ge,qe,ze,Xe,Je,Ze,$e,tn,en,nn,rn,sn,on,an,ln,hn,cn,un,fn,dn,_n,gn,mn,pn,vn,En,yn,Tn,Cn=function(i){var e="transitionend";function t(t){var e=this,n=!1;return i(this).one(l.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||l.triggerTransitionEnd(e)},t),this}var l={TRANSITION_END:"bsTransitionEnd",getUID:function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");e&&"#"!==e||(e=t.getAttribute("href")||"");try{return 0<i(document).find(e).length?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=i(t).css("transition-duration");return parseFloat(e)?(e=e.split(",")[0],1e3*parseFloat(e)):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){i(t).trigger(e)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var r=n[i],s=e[i],o=s&&l.isElement(s)?"element":(a=s,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(o))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+o+'" but expected type "'+r+'".')}var a}};return i.fn.emulateTransitionEnd=t,i.event.special[l.TRANSITION_END]={bindType:e,delegateType:e,handle:function(t){if(i(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}},l}(e),In=(n="alert",a="."+(s="bs.alert"),l=(r=e).fn[n],u={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},f="alert",d="fade",_="show",g=function(){function i(t){this._element=t}var t=i.prototype;return t.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},t.dispose=function(){r.removeData(this._element,s),this._element=null},t._getRootElement=function(t){var e=Cn.getSelectorFromElement(t),n=!1;return e&&(n=r(e)[0]),n||(n=r(t).closest("."+f)[0]),n},t._triggerCloseEvent=function(t){var e=r.Event(u.CLOSE);return r(t).trigger(e),e},t._removeElement=function(e){var n=this;if(r(e).removeClass(_),r(e).hasClass(d)){var t=Cn.getTransitionDurationFromElement(e);r(e).one(Cn.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(t)}else this._destroyElement(e)},t._destroyElement=function(t){r(t).detach().trigger(u.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var t=r(this),e=t.data(s);e||(e=new i(this),t.data(s,e)),"close"===n&&e[n](this)})},i._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),i}(),r(document).on(u.CLICK_DATA_API,'[data-dismiss="alert"]',g._handleDismiss(new g)),r.fn[n]=g._jQueryInterface,r.fn[n].Constructor=g,r.fn[n].noConflict=function(){return r.fn[n]=l,g._jQueryInterface},g),An=(p="button",E="."+(v="bs.button"),y=".data-api",T=(m=e).fn[p],C="active",I="btn",D='[data-toggle^="button"]',b='[data-toggle="buttons"]',S="input",w=".active",N=".btn",O={CLICK_DATA_API:"click"+E+y,FOCUS_BLUR_DATA_API:(A="focus")+E+y+" blur"+E+y},k=function(){function n(t){this._element=t}var t=n.prototype;return t.toggle=function(){var t=!0,e=!0,n=m(this._element).closest(b)[0];if(n){var i=m(this._element).find(S)[0];if(i){if("radio"===i.type)if(i.checked&&m(this._element).hasClass(C))t=!1;else{var r=m(n).find(w)[0];r&&m(r).removeClass(C)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!m(this._element).hasClass(C),m(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!m(this._element).hasClass(C)),t&&m(this._element).toggleClass(C)},t.dispose=function(){m.removeData(this._element,v),this._element=null},n._jQueryInterface=function(e){return this.each(function(){var t=m(this).data(v);t||(t=new n(this),m(this).data(v,t)),"toggle"===e&&t[e]()})},o(n,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),n}(),m(document).on(O.CLICK_DATA_API,D,function(t){t.preventDefault();var e=t.target;m(e).hasClass(I)||(e=m(e).closest(N)),k._jQueryInterface.call(m(e),"toggle")}).on(O.FOCUS_BLUR_DATA_API,D,function(t){var e=m(t.target).closest(N)[0];m(e).toggleClass(A,/^focus(in)?$/.test(t.type))}),m.fn[p]=k._jQueryInterface,m.fn[p].Constructor=k,m.fn[p].noConflict=function(){return m.fn[p]=T,k._jQueryInterface},k),Dn=(L="carousel",R="."+(j="bs.carousel"),H=".data-api",W=(P=e).fn[L],M={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},x={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},U="next",K="prev",F="left",V="right",Q={SLIDE:"slide"+R,SLID:"slid"+R,KEYDOWN:"keydown"+R,MOUSEENTER:"mouseenter"+R,MOUSELEAVE:"mouseleave"+R,TOUCHEND:"touchend"+R,LOAD_DATA_API:"load"+R+H,CLICK_DATA_API:"click"+R+H},B="carousel",Y="active",G="slide",q="carousel-item-right",z="carousel-item-left",X="carousel-item-next",J="carousel-item-prev",Z={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},$=function(){function s(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(e),this._element=P(t)[0],this._indicatorsElement=P(this._element).find(Z.INDICATORS)[0],this._addEventListeners()}var t=s.prototype;return t.next=function(){this._isSliding||this._slide(U)},t.nextWhenVisible=function(){!document.hidden&&P(this._element).is(":visible")&&"hidden"!==P(this._element).css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(K)},t.pause=function(t){t||(this._isPaused=!0),P(this._element).find(Z.NEXT_PREV)[0]&&(Cn.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(t){var e=this;this._activeElement=P(this._element).find(Z.ACTIVE_ITEM)[0];var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)P(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n<t?U:K;this._slide(i,this._items[t])}},t.dispose=function(){P(this._element).off(R),P.removeData(this._element,j),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(t){return t=h({},M,t),Cn.typeCheckConfig(L,t,x),t},t._addEventListeners=function(){var e=this;this._config.keyboard&&P(this._element).on(Q.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(P(this._element).on(Q.MOUSEENTER,function(t){return e.pause(t)}).on(Q.MOUSELEAVE,function(t){return e.cycle(t)}),"ontouchstart"in document.documentElement&&P(this._element).on(Q.TOUCHEND,function(){e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},500+e._config.interval)}))},t._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},t._getItemIndex=function(t){return this._items=P.makeArray(P(t).parent().find(Z.ITEM)),this._items.indexOf(t)},t._getItemByDirection=function(t,e){var n=t===U,i=t===K,r=this._getItemIndex(e),s=this._items.length-1;if((i&&0===r||n&&r===s)&&!this._config.wrap)return e;var o=(r+(t===K?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},t._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(P(this._element).find(Z.ACTIVE_ITEM)[0]),r=P.Event(Q.SLIDE,{relatedTarget:t,direction:e,from:i,to:n});return P(this._element).trigger(r),r},t._setActiveIndicatorElement=function(t){if(this._indicatorsElement){P(this._indicatorsElement).find(Z.ACTIVE).removeClass(Y);var e=this._indicatorsElement.children[this._getItemIndex(t)];e&&P(e).addClass(Y)}},t._slide=function(t,e){var n,i,r,s=this,o=P(this._element).find(Z.ACTIVE_ITEM)[0],a=this._getItemIndex(o),l=e||o&&this._getItemByDirection(t,o),h=this._getItemIndex(l),c=Boolean(this._interval);if(t===U?(n=z,i=X,r=F):(n=q,i=J,r=V),l&&P(l).hasClass(Y))this._isSliding=!1;else if(!this._triggerSlideEvent(l,r).isDefaultPrevented()&&o&&l){this._isSliding=!0,c&&this.pause(),this._setActiveIndicatorElement(l);var u=P.Event(Q.SLID,{relatedTarget:l,direction:r,from:a,to:h});if(P(this._element).hasClass(G)){P(l).addClass(i),Cn.reflow(l),P(o).addClass(n),P(l).addClass(n);var f=Cn.getTransitionDurationFromElement(o);P(o).one(Cn.TRANSITION_END,function(){P(l).removeClass(n+" "+i).addClass(Y),P(o).removeClass(Y+" "+i+" "+n),s._isSliding=!1,setTimeout(function(){return P(s._element).trigger(u)},0)}).emulateTransitionEnd(f)}else P(o).removeClass(Y),P(l).addClass(Y),this._isSliding=!1,P(this._element).trigger(u);c&&this.cycle()}},s._jQueryInterface=function(i){return this.each(function(){var t=P(this).data(j),e=h({},M,P(this).data());"object"==typeof i&&(e=h({},e,i));var n="string"==typeof i?i:e.slide;if(t||(t=new s(this,e),P(this).data(j,t)),"number"==typeof i)t.to(i);else if("string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}else e.interval&&(t.pause(),t.cycle())})},s._dataApiClickHandler=function(t){var e=Cn.getSelectorFromElement(this);if(e){var n=P(e)[0];if(n&&P(n).hasClass(B)){var i=h({},P(n).data(),P(this).data()),r=this.getAttribute("data-slide-to");r&&(i.interval=!1),s._jQueryInterface.call(P(n),i),r&&P(n).data(j).to(r),t.preventDefault()}}},o(s,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return M}}]),s}(),P(document).on(Q.CLICK_DATA_API,Z.DATA_SLIDE,$._dataApiClickHandler),P(window).on(Q.LOAD_DATA_API,function(){P(Z.DATA_RIDE).each(function(){var t=P(this);$._jQueryInterface.call(t,t.data())})}),P.fn[L]=$._jQueryInterface,P.fn[L].Constructor=$,P.fn[L].noConflict=function(){return P.fn[L]=W,$._jQueryInterface},$),bn=(et="collapse",it="."+(nt="bs.collapse"),rt=(tt=e).fn[et],st={toggle:!0,parent:""},ot={toggle:"boolean",parent:"(string|element)"},at={SHOW:"show"+it,SHOWN:"shown"+it,HIDE:"hide"+it,HIDDEN:"hidden"+it,CLICK_DATA_API:"click"+it+".data-api"},lt="show",ht="collapse",ct="collapsing",ut="collapsed",ft="width",dt="height",_t={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},gt=function(){function a(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=tt.makeArray(tt('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=tt(_t.DATA_TOGGLE),i=0;i<n.length;i++){var r=n[i],s=Cn.getSelectorFromElement(r);null!==s&&0<tt(s).filter(t).length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=a.prototype;return t.toggle=function(){tt(this._element).hasClass(lt)?this.hide():this.show()},t.show=function(){var t,e,n=this;if(!this._isTransitioning&&!tt(this._element).hasClass(lt)&&(this._parent&&0===(t=tt.makeArray(tt(this._parent).find(_t.ACTIVES).filter('[data-parent="'+this._config.parent+'"]'))).length&&(t=null),!(t&&(e=tt(t).not(this._selector).data(nt))&&e._isTransitioning))){var i=tt.Event(at.SHOW);if(tt(this._element).trigger(i),!i.isDefaultPrevented()){t&&(a._jQueryInterface.call(tt(t).not(this._selector),"hide"),e||tt(t).data(nt,null));var r=this._getDimension();tt(this._element).removeClass(ht).addClass(ct),(this._element.style[r]=0)<this._triggerArray.length&&tt(this._triggerArray).removeClass(ut).attr("aria-expanded",!0),this.setTransitioning(!0);var s="scroll"+(r[0].toUpperCase()+r.slice(1)),o=Cn.getTransitionDurationFromElement(this._element);tt(this._element).one(Cn.TRANSITION_END,function(){tt(n._element).removeClass(ct).addClass(ht).addClass(lt),n._element.style[r]="",n.setTransitioning(!1),tt(n._element).trigger(at.SHOWN)}).emulateTransitionEnd(o),this._element.style[r]=this._element[s]+"px"}}},t.hide=function(){var t=this;if(!this._isTransitioning&&tt(this._element).hasClass(lt)){var e=tt.Event(at.HIDE);if(tt(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();if(this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",Cn.reflow(this._element),tt(this._element).addClass(ct).removeClass(ht).removeClass(lt),0<this._triggerArray.length)for(var i=0;i<this._triggerArray.length;i++){var r=this._triggerArray[i],s=Cn.getSelectorFromElement(r);if(null!==s)tt(s).hasClass(lt)||tt(r).addClass(ut).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var o=Cn.getTransitionDurationFromElement(this._element);tt(this._element).one(Cn.TRANSITION_END,function(){t.setTransitioning(!1),tt(t._element).removeClass(ct).addClass(ht).trigger(at.HIDDEN)}).emulateTransitionEnd(o)}}},t.setTransitioning=function(t){this._isTransitioning=t},t.dispose=function(){tt.removeData(this._element,nt),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(t){return(t=h({},st,t)).toggle=Boolean(t.toggle),Cn.typeCheckConfig(et,t,ot),t},t._getDimension=function(){return tt(this._element).hasClass(ft)?ft:dt},t._getParent=function(){var n=this,t=null;Cn.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=tt(this._config.parent)[0];var e='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return tt(t).find(e).each(function(t,e){n._addAriaAndCollapsedClass(a._getTargetFromElement(e),[e])}),t},t._addAriaAndCollapsedClass=function(t,e){if(t){var n=tt(t).hasClass(lt);0<e.length&&tt(e).toggleClass(ut,!n).attr("aria-expanded",n)}},a._getTargetFromElement=function(t){var e=Cn.getSelectorFromElement(t);return e?tt(e)[0]:null},a._jQueryInterface=function(i){return this.each(function(){var t=tt(this),e=t.data(nt),n=h({},st,t.data(),"object"==typeof i&&i);if(!e&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),e||(e=new a(this,n),t.data(nt,e)),"string"==typeof i){if("undefined"==typeof e[i])throw new TypeError('No method named "'+i+'"');e[i]()}})},o(a,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return st}}]),a}(),tt(document).on(at.CLICK_DATA_API,_t.DATA_TOGGLE,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=tt(this),e=Cn.getSelectorFromElement(this);tt(e).each(function(){var t=tt(this),e=t.data(nt)?"toggle":n.data();gt._jQueryInterface.call(t,e)})}),tt.fn[et]=gt._jQueryInterface,tt.fn[et].Constructor=gt,tt.fn[et].noConflict=function(){return tt.fn[et]=rt,gt._jQueryInterface},gt),Sn=(pt="dropdown",Et="."+(vt="bs.dropdown"),yt=".data-api",Tt=(mt=e).fn[pt],Ct=new RegExp("38|40|27"),It={HIDE:"hide"+Et,HIDDEN:"hidden"+Et,SHOW:"show"+Et,SHOWN:"shown"+Et,CLICK:"click"+Et,CLICK_DATA_API:"click"+Et+yt,KEYDOWN_DATA_API:"keydown"+Et+yt,KEYUP_DATA_API:"keyup"+Et+yt},At="disabled",Dt="show",bt="dropup",St="dropright",wt="dropleft",Nt="dropdown-menu-right",Ot="position-static",kt='[data-toggle="dropdown"]',Pt=".dropdown form",Lt=".dropdown-menu",jt=".navbar-nav",Rt=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Ht="top-start",Wt="top-end",Mt="bottom-start",xt="bottom-end",Ut="right-start",Kt="left-start",Ft={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Vt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Qt=function(){function l(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var t=l.prototype;return t.toggle=function(){if(!this._element.disabled&&!mt(this._element).hasClass(At)){var t=l._getParentFromElement(this._element),e=mt(this._menu).hasClass(Dt);if(l._clearMenus(),!e){var n={relatedTarget:this._element},i=mt.Event(It.SHOW,n);if(mt(t).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof c)throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=t:Cn.isElement(this._config.reference)&&(r=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&mt(t).addClass(Ot),this._popper=new c(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===mt(t).closest(jt).length&&mt(document.body).children().on("mouseover",null,mt.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),mt(this._menu).toggleClass(Dt),mt(t).toggleClass(Dt).trigger(mt.Event(It.SHOWN,n))}}}},t.dispose=function(){mt.removeData(this._element,vt),mt(this._element).off(Et),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;mt(this._element).on(It.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(t){return t=h({},this.constructor.Default,mt(this._element).data(),t),Cn.typeCheckConfig(pt,t,this.constructor.DefaultType),t},t._getMenuElement=function(){if(!this._menu){var t=l._getParentFromElement(this._element);this._menu=mt(t).find(Lt)[0]}return this._menu},t._getPlacement=function(){var t=mt(this._element).parent(),e=Mt;return t.hasClass(bt)?(e=Ht,mt(this._menu).hasClass(Nt)&&(e=Wt)):t.hasClass(St)?e=Ut:t.hasClass(wt)?e=Kt:mt(this._menu).hasClass(Nt)&&(e=xt),e},t._detectNavbar=function(){return 0<mt(this._element).closest(".navbar").length},t._getPopperConfig=function(){var e=this,t={};"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=h({},t.offsets,e._config.offset(t.offsets)||{}),t}:t.offset=this._config.offset;var n={placement:this._getPlacement(),modifiers:{offset:t,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(n.modifiers.applyStyle={enabled:!1}),n},l._jQueryInterface=function(e){return this.each(function(){var t=mt(this).data(vt);if(t||(t=new l(this,"object"==typeof e?e:null),mt(this).data(vt,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},l._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var e=mt.makeArray(mt(kt)),n=0;n<e.length;n++){var i=l._getParentFromElement(e[n]),r=mt(e[n]).data(vt),s={relatedTarget:e[n]};if(r){var o=r._menu;if(mt(i).hasClass(Dt)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&mt.contains(i,t.target))){var a=mt.Event(It.HIDE,s);mt(i).trigger(a),a.isDefaultPrevented()||("ontouchstart"in document.documentElement&&mt(document.body).children().off("mouseover",null,mt.noop),e[n].setAttribute("aria-expanded","false"),mt(o).removeClass(Dt),mt(i).removeClass(Dt).trigger(mt.Event(It.HIDDEN,s)))}}}},l._getParentFromElement=function(t){var e,n=Cn.getSelectorFromElement(t);return n&&(e=mt(n)[0]),e||t.parentNode},l._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||mt(t.target).closest(Lt).length)):Ct.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!mt(this).hasClass(At))){var e=l._getParentFromElement(this),n=mt(e).hasClass(Dt);if((n||27===t.which&&32===t.which)&&(!n||27!==t.which&&32!==t.which)){var i=mt(e).find(Rt).get();if(0!==i.length){var r=i.indexOf(t.target);38===t.which&&0<r&&r--,40===t.which&&r<i.length-1&&r++,r<0&&(r=0),i[r].focus()}}else{if(27===t.which){var s=mt(e).find(kt)[0];mt(s).trigger("focus")}mt(this).trigger("click")}}},o(l,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Ft}},{key:"DefaultType",get:function(){return Vt}}]),l}(),mt(document).on(It.KEYDOWN_DATA_API,kt,Qt._dataApiKeydownHandler).on(It.KEYDOWN_DATA_API,Lt,Qt._dataApiKeydownHandler).on(It.CLICK_DATA_API+" "+It.KEYUP_DATA_API,Qt._clearMenus).on(It.CLICK_DATA_API,kt,function(t){t.preventDefault(),t.stopPropagation(),Qt._jQueryInterface.call(mt(this),"toggle")}).on(It.CLICK_DATA_API,Pt,function(t){t.stopPropagation()}),mt.fn[pt]=Qt._jQueryInterface,mt.fn[pt].Constructor=Qt,mt.fn[pt].noConflict=function(){return mt.fn[pt]=Tt,Qt._jQueryInterface},Qt),wn=(Yt="modal",qt="."+(Gt="bs.modal"),zt=(Bt=e).fn[Yt],Xt={backdrop:!0,keyboard:!0,focus:!0,show:!0},Jt={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Zt={HIDE:"hide"+qt,HIDDEN:"hidden"+qt,SHOW:"show"+qt,SHOWN:"shown"+qt,FOCUSIN:"focusin"+qt,RESIZE:"resize"+qt,CLICK_DISMISS:"click.dismiss"+qt,KEYDOWN_DISMISS:"keydown.dismiss"+qt,MOUSEUP_DISMISS:"mouseup.dismiss"+qt,MOUSEDOWN_DISMISS:"mousedown.dismiss"+qt,CLICK_DATA_API:"click"+qt+".data-api"},$t="modal-scrollbar-measure",te="modal-backdrop",ee="modal-open",ne="fade",ie="show",re={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"},se=function(){function r(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=Bt(t).find(re.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._scrollbarWidth=0}var t=r.prototype;return t.toggle=function(t){return this._isShown?this.hide():this.show(t)},t.show=function(t){var e=this;if(!this._isTransitioning&&!this._isShown){Bt(this._element).hasClass(ne)&&(this._isTransitioning=!0);var n=Bt.Event(Zt.SHOW,{relatedTarget:t});Bt(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),Bt(document.body).addClass(ee),this._setEscapeEvent(),this._setResizeEvent(),Bt(this._element).on(Zt.CLICK_DISMISS,re.DATA_DISMISS,function(t){return e.hide(t)}),Bt(this._dialog).on(Zt.MOUSEDOWN_DISMISS,function(){Bt(e._element).one(Zt.MOUSEUP_DISMISS,function(t){Bt(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},t.hide=function(t){var e=this;if(t&&t.preventDefault(),!this._isTransitioning&&this._isShown){var n=Bt.Event(Zt.HIDE);if(Bt(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=Bt(this._element).hasClass(ne);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),Bt(document).off(Zt.FOCUSIN),Bt(this._element).removeClass(ie),Bt(this._element).off(Zt.CLICK_DISMISS),Bt(this._dialog).off(Zt.MOUSEDOWN_DISMISS),i){var r=Cn.getTransitionDurationFromElement(this._element);Bt(this._element).one(Cn.TRANSITION_END,function(t){return e._hideModal(t)}).emulateTransitionEnd(r)}else this._hideModal()}}},t.dispose=function(){Bt.removeData(this._element,Gt),Bt(window,document,this._element,this._backdrop).off(qt),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(t){return t=h({},Xt,t),Cn.typeCheckConfig(Yt,t,Jt),t},t._showElement=function(t){var e=this,n=Bt(this._element).hasClass(ne);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,n&&Cn.reflow(this._element),Bt(this._element).addClass(ie),this._config.focus&&this._enforceFocus();var i=Bt.Event(Zt.SHOWN,{relatedTarget:t}),r=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,Bt(e._element).trigger(i)};if(n){var s=Cn.getTransitionDurationFromElement(this._element);Bt(this._dialog).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r()},t._enforceFocus=function(){var e=this;Bt(document).off(Zt.FOCUSIN).on(Zt.FOCUSIN,function(t){document!==t.target&&e._element!==t.target&&0===Bt(e._element).has(t.target).length&&e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?Bt(this._element).on(Zt.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||Bt(this._element).off(Zt.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?Bt(window).on(Zt.RESIZE,function(t){return e.handleUpdate(t)}):Bt(window).off(Zt.RESIZE)},t._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._isTransitioning=!1,this._showBackdrop(function(){Bt(document.body).removeClass(ee),t._resetAdjustments(),t._resetScrollbar(),Bt(t._element).trigger(Zt.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&(Bt(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(t){var e=this,n=Bt(this._element).hasClass(ne)?ne:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=te,n&&Bt(this._backdrop).addClass(n),Bt(this._backdrop).appendTo(document.body),Bt(this._element).on(Zt.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&Cn.reflow(this._backdrop),Bt(this._backdrop).addClass(ie),!t)return;if(!n)return void t();var i=Cn.getTransitionDurationFromElement(this._backdrop);Bt(this._backdrop).one(Cn.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){Bt(this._backdrop).removeClass(ie);var r=function(){e._removeBackdrop(),t&&t()};if(Bt(this._element).hasClass(ne)){var s=Cn.getTransitionDurationFromElement(this._backdrop);Bt(this._backdrop).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r()}else t&&t()},t._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var r=this;if(this._isBodyOverflowing){Bt(re.FIXED_CONTENT).each(function(t,e){var n=Bt(e)[0].style.paddingRight,i=Bt(e).css("padding-right");Bt(e).data("padding-right",n).css("padding-right",parseFloat(i)+r._scrollbarWidth+"px")}),Bt(re.STICKY_CONTENT).each(function(t,e){var n=Bt(e)[0].style.marginRight,i=Bt(e).css("margin-right");Bt(e).data("margin-right",n).css("margin-right",parseFloat(i)-r._scrollbarWidth+"px")}),Bt(re.NAVBAR_TOGGLER).each(function(t,e){var n=Bt(e)[0].style.marginRight,i=Bt(e).css("margin-right");Bt(e).data("margin-right",n).css("margin-right",parseFloat(i)+r._scrollbarWidth+"px")});var t=document.body.style.paddingRight,e=Bt(document.body).css("padding-right");Bt(document.body).data("padding-right",t).css("padding-right",parseFloat(e)+this._scrollbarWidth+"px")}},t._resetScrollbar=function(){Bt(re.FIXED_CONTENT).each(function(t,e){var n=Bt(e).data("padding-right");"undefined"!=typeof n&&Bt(e).css("padding-right",n).removeData("padding-right")}),Bt(re.STICKY_CONTENT+", "+re.NAVBAR_TOGGLER).each(function(t,e){var n=Bt(e).data("margin-right");"undefined"!=typeof n&&Bt(e).css("margin-right",n).removeData("margin-right")});var t=Bt(document.body).data("padding-right");"undefined"!=typeof t&&Bt(document.body).css("padding-right",t).removeData("padding-right")},t._getScrollbarWidth=function(){var t=document.createElement("div");t.className=$t,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},r._jQueryInterface=function(n,i){return this.each(function(){var t=Bt(this).data(Gt),e=h({},r.Default,Bt(this).data(),"object"==typeof n&&n);if(t||(t=new r(this,e),Bt(this).data(Gt,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n](i)}else e.show&&t.show(i)})},o(r,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Xt}}]),r}(),Bt(document).on(Zt.CLICK_DATA_API,re.DATA_TOGGLE,function(t){var e,n=this,i=Cn.getSelectorFromElement(this);i&&(e=Bt(i)[0]);var r=Bt(e).data(Gt)?"toggle":h({},Bt(e).data(),Bt(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var s=Bt(e).one(Zt.SHOW,function(t){t.isDefaultPrevented()||s.one(Zt.HIDDEN,function(){Bt(n).is(":visible")&&n.focus()})});se._jQueryInterface.call(Bt(e),r,this)}),Bt.fn[Yt]=se._jQueryInterface,Bt.fn[Yt].Constructor=se,Bt.fn[Yt].noConflict=function(){return Bt.fn[Yt]=zt,se._jQueryInterface},se),Nn=(ae="tooltip",he="."+(le="bs.tooltip"),ce=(oe=e).fn[ae],ue="bs-tooltip",fe=new RegExp("(^|\\s)"+ue+"\\S+","g"),ge={animation:!0,template:'
//# sourceMappingURL=bootstrap.min.js.map // https://d3js.org Version 5.5.0. Copyright 2018 Mike Bostock. (function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.d3=t.d3||{})})(this,function(t){"use strict";function n(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function e(t){return 1===t.length&&(t=function(t){return function(e,r){return n(t(e),r)}}(t)),{left:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)<0?r=o+1:i=o}return r},right:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)>0?i=o:r=o+1}return r}}}function r(t,n){return[t,n]}function i(t){return null===t?NaN:+t}function o(t,n){var e,r,o=t.length,a=0,u=-1,f=0,c=0;if(null==n)for(;++u<o;)isNaN(e=i(t[u]))||(c+=(r=e-f)*(e-(f+=r/++a)));else for(;++u<o;)isNaN(e=i(n(t[u],u,t)))||(c+=(r=e-f)*(e-(f+=r/++a)));if(a>1)return c/(a-1)}function a(t,n){var e=o(t,n);return e?Math.sqrt(e):e}function u(t,n){var e,r,i,o=t.length,a=-1;if(null==n){for(;++a<o;)if(null!=(e=t[a])&&e>=e)for(r=i=e;++a<o;)null!=(e=t[a])&&(r>e&&(r=e),i<e&&(i=e))}else for(;++a<o;)if(null!=(e=n(t[a],a,t))&&e>=e)for(r=i=e;++a<o;)null!=(e=n(t[a],a,t))&&(r>e&&(r=e),i<e&&(i=e));return[r,i]}function f(t){return function(){return t}}function c(t){return t}function s(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r<i;)o[r]=t+r*e;return o}function l(t,n,e){var r,i,o,a,u=-1;if(n=+n,t=+t,e=+e,t===n&&e>0)return[t];if((r=n<t)&&(i=t,t=n,n=i),0===(a=h(t,n,e))||!isFinite(a))return[];if(a>0)for(t=Math.ceil(t/a),n=Math.floor(n/a),o=new Array(i=Math.ceil(n-t+1));++u<i;)o[u]=(t+u)*a;else for(t=Math.floor(t*a),n=Math.ceil(n*a),o=new Array(i=Math.ceil(t-n+1));++u<i;)o[u]=(t-u)/a;return r&&o.reverse(),o}function h(t,n,e){var r=(n-t)/Math.max(0,e),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=is?10:o>=os?5:o>=as?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=is?10:o>=os?5:o>=as?2:1)}function d(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=is?i*=10:o>=os?i*=5:o>=as&&(i*=2),n<t?-i:i}function p(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1}function v(t,n,e){if(null==e&&(e=i),r=t.length){if((n=+n)<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,o=(r-1)*n,a=Math.floor(o),u=+e(t[a],a,t);return u+(+e(t[a+1],a+1,t)-u)*(o-a)}}function g(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o<i;)if(null!=(e=t[o])&&e>=e)for(r=e;++o<i;)null!=(e=t[o])&&e>r&&(r=e)}else for(;++o<i;)if(null!=(e=n(t[o],o,t))&&e>=e)for(r=e;++o<i;)null!=(e=n(t[o],o,t))&&e>r&&(r=e);return r}function y(t){for(var n,e,r,i=t.length,o=-1,a=0;++o<i;)a+=t[o].length;for(e=new Array(a);--i>=0;)for(n=(r=t[i]).length;--n>=0;)e[--a]=r[n];return e}function _(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o<i;)if(null!=(e=t[o])&&e>=e)for(r=e;++o<i;)null!=(e=t[o])&&r>e&&(r=e)}else for(;++o<i;)if(null!=(e=n(t[o],o,t))&&e>=e)for(r=e;++o<i;)null!=(e=n(t[o],o,t))&&r>e&&(r=e);return r}function b(t){if(!(i=t.length))return[];for(var n=-1,e=_(t,m),r=new Array(e);++n<e;)for(var i,o=-1,a=r[n]=new Array(i);++o<i;)a[o]=t[o][n];return r}function m(t){return t.length}function x(t){return t}function w(t){return"translate("+(t+.5)+",0)"}function M(t){return"translate(0,"+(t+.5)+")"}function A(){return!this.__axis}function T(t,n){function e(e){var h=null==i?n.ticks?n.ticks.apply(n,r):n.domain():i,d=null==o?n.tickFormat?n.tickFormat.apply(n,r):x:o,p=Math.max(a,0)+f,v=n.range(),g=+v[0]+.5,y=+v[v.length-1]+.5,_=(n.bandwidth?function(t){var n=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(n=Math.round(n)),function(e){return+t(e)+n}}:function(t){return function(n){return+t(n)}})(n.copy()),b=e.selection?e.selection():e,m=b.selectAll(".domain").data([null]),w=b.selectAll(".tick").data(h,n).order(),M=w.exit(),T=w.enter().append("g").attr("class","tick"),N=w.select("line"),S=w.select("text");m=m.merge(m.enter().insert("path",".tick").attr("class","domain").attr("stroke","#000")),w=w.merge(T),N=N.merge(T.append("line").attr("stroke","#000").attr(s+"2",c*a)),S=S.merge(T.append("text").attr("fill","#000").attr(s,c*p).attr("dy",t===fs?"0em":t===ss?"0.71em":"0.32em")),e!==b&&(m=m.transition(e),w=w.transition(e),N=N.transition(e),S=S.transition(e),M=M.transition(e).attr("opacity",hs).attr("transform",function(t){return isFinite(t=_(t))?l(t):this.getAttribute("transform")}),T.attr("opacity",hs).attr("transform",function(t){var n=this.parentNode.__axis;return l(n&&isFinite(n=n(t))?n:_(t))})),M.remove(),m.attr("d",t===ls||t==cs?"M"+c*u+","+g+"H0.5V"+y+"H"+c*u:"M"+g+","+c*u+"V0.5H"+y+"V"+c*u),w.attr("opacity",1).attr("transform",function(t){return l(_(t))}),N.attr(s+"2",c*a),S.attr(s,c*p).text(d),b.filter(A).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===cs?"start":t===ls?"end":"middle"),b.each(function(){this.__axis=_})}var r=[],i=null,o=null,a=6,u=6,f=3,c=t===fs||t===ls?-1:1,s=t===ls||t===cs?"x":"y",l=t===fs||t===ss?w:M;return e.scale=function(t){return arguments.length?(n=t,e):n},e.ticks=function(){return r=us.call(arguments),e},e.tickArguments=function(t){return arguments.length?(r=null==t?[]:us.call(t),e):r.slice()},e.tickValues=function(t){return arguments.length?(i=null==t?null:us.call(t),e):i&&i.slice()},e.tickFormat=function(t){return arguments.length?(o=t,e):o},e.tickSize=function(t){return arguments.length?(a=u=+t,e):a},e.tickSizeInner=function(t){return arguments.length?(a=+t,e):a},e.tickSizeOuter=function(t){return arguments.length?(u=+t,e):u},e.tickPadding=function(t){return arguments.length?(f=+t,e):f},e}function N(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r)throw new Error("illegal type: "+t);r[t]=[]}return new S(r)}function S(t){this._=t}function E(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=ds,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}function k(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),vs.hasOwnProperty(n)?{space:vs[n],local:t}:t}function C(t){var n=k(t);return(n.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===ps&&n.documentElement.namespaceURI===ps?n.createElement(t):n.createElementNS(e,t)}})(n)}function P(){}function z(t){return null==t?P:function(){return this.querySelector(t)}}function R(){return[]}function L(t){return null==t?R:function(){return this.querySelectorAll(t)}}function D(t){return new Array(t.length)}function U(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function q(t,n,e,r,i,o){for(var a,u=0,f=n.length,c=o.length;u<c;++u)(a=n[u])?(a.__data__=o[u],r[u]=a):e[u]=new U(t,o[u]);for(;u<f;++u)(a=n[u])&&(i[u]=a)}function O(t,n,e,r,i,o,a){var u,f,c,s={},l=n.length,h=o.length,d=new Array(l);for(u=0;u<l;++u)(f=n[u])&&(d[u]=c=ms+a.call(f,f.__data__,u,n),c in s?i[u]=f:s[c]=f);for(u=0;u<h;++u)(f=s[c=ms+a.call(t,o[u],u,o)])?(r[u]=f,f.__data__=o[u],s[c]=null):e[u]=new U(t,o[u]);for(u=0;u<l;++u)(f=n[u])&&s[d[u]]===f&&(i[u]=f)}function Y(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function B(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function F(t,n){return t.style.getPropertyValue(n)||B(t).getComputedStyle(t,null).getPropertyValue(n)}function I(t){return t.trim().split(/^|\s+/)}function j(t){return t.classList||new H(t)}function H(t){this._node=t,this._names=I(t.getAttribute("class")||"")}function X(t,n){for(var e=j(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function G(t,n){for(var e=j(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function V(){this.textContent=""}function $(){this.innerHTML=""}function W(){this.nextSibling&&this.parentNode.appendChild(this)}function Z(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Q(){return null}function J(){var t=this.parentNode;t&&t.removeChild(this)}function K(){return this.parentNode.insertBefore(this.cloneNode(!1),this.nextSibling)}function tt(){return this.parentNode.insertBefore(this.cloneNode(!0),this.nextSibling)}function nt(t,n,e){return t=et(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function et(n,e,r){return function(i){var o=t.event;t.event=i;try{n.call(this,this.__data__,e,r)}finally{t.event=o}}}function rt(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.capture);++i?n.length=i:delete this.__on}}}function it(t,n,e){var r=xs.hasOwnProperty(t.type)?nt:et;return function(i,o,a){var u,f=this.__on,c=r(n,o,a);if(f)for(var s=0,l=f.length;s<l;++s)if((u=f[s]).type===t.type&&u.name===t.name)return this.removeEventListener(u.type,u.listener,u.capture),this.addEventListener(u.type,u.listener=c,u.capture=e),void(u.value=n);this.addEventListener(t.type,c,e),u={type:t.type,name:t.name,value:n,listener:c,capture:e},f?f.push(u):this.__on=[u]}}function ot(n,e,r,i){var o=t.event;n.sourceEvent=t.event,t.event=n;try{return e.apply(r,i)}finally{t.event=o}}function at(t,n,e){var r=B(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function ut(t,n){this._groups=t,this._parents=n}function ft(){return new ut(document.documentElement,ws)}function ct(t){return"string"==typeof t?new ut(document.querySelector(t),[document.documentElement]):new ut(t,ws)}function st(){return new lt}function lt(){this._="@"+(++Ms).toString(36)}function ht(){for(var n,e=t.event;n=e.sourceEvent;)e=n;return e}function dt(t,n){var e=t.ownerSVGElement||t;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=n.clientX,r.y=n.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}var i=t.getBoundingClientRect();return[n.clientX-i.left-t.clientLeft,n.clientY-i.top-t.clientTop]}function pt(t){var n=ht();return n.changedTouches&&(n=n.changedTouches[0]),dt(t,n)}function vt(t,n,e){arguments.length<3&&(e=n,n=ht().changedTouches);for(var r,i=0,o=n?n.length:0;i<o;++i)if((r=n[i]).identifier===e)return dt(t,r);return null}function gt(){t.event.stopImmediatePropagation()}function yt(){t.event.preventDefault(),t.event.stopImmediatePropagation()}function _t(t){var n=t.document.documentElement,e=ct(t).on("dragstart.drag",yt,!0);"onselectstart"in n?e.on("selectstart.drag",yt,!0):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function bt(t,n){var e=t.document.documentElement,r=ct(t).on("dragstart.drag",null);n&&(r.on("click.drag",yt,!0),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in e?r.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}function mt(t){return function(){return t}}function xt(t,n,e,r,i,o,a,u,f,c){this.target=t,this.type=n,this.subject=e,this.identifier=r,this.active=i,this.x=o,this.y=a,this.dx=u,this.dy=f,this._=c}function wt(){return!t.event.button}function Mt(){return this.parentNode}function At(n){return null==n?{x:t.event.x,y:t.event.y}:n}function Tt(){return"ontouchstart"in this}function Nt(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function St(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function Et(){}function kt(t){var n;return t=(t+"").trim().toLowerCase(),(n=Ss.exec(t))?(n=parseInt(n[1],16),new Lt(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1)):(n=Es.exec(t))?Ct(parseInt(n[1],16)):(n=ks.exec(t))?new Lt(n[1],n[2],n[3],1):(n=Cs.exec(t))?new Lt(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=Ps.exec(t))?Pt(n[1],n[2],n[3],n[4]):(n=zs.exec(t))?Pt(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Rs.exec(t))?Ut(n[1],n[2]/100,n[3]/100,1):(n=Ls.exec(t))?Ut(n[1],n[2]/100,n[3]/100,n[4]):Ds.hasOwnProperty(t)?Ct(Ds[t]):"transparent"===t?new Lt(NaN,NaN,NaN,0):null}function Ct(t){return new Lt(t>>16&255,t>>8&255,255&t,1)}function Pt(t,n,e,r){return r<=0&&(t=n=e=NaN),new Lt(t,n,e,r)}function zt(t){return t instanceof Et||(t=kt(t)),t?(t=t.rgb(),new Lt(t.r,t.g,t.b,t.opacity)):new Lt}function Rt(t,n,e,r){return 1===arguments.length?zt(t):new Lt(t,n,e,null==r?1:r)}function Lt(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function Dt(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function Ut(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Ot(t,n,e,r)}function qt(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof Ot)return new Ot(t.h,t.s,t.l,t.opacity);if(t instanceof Et||(t=kt(t)),!t)return new Ot;if(t instanceof Ot)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,f=(o+i)/2;return u?(a=n===o?(e-r)/u+6*(e<r):e===o?(r-n)/u+2:(n-e)/u+4,u/=f<.5?o+i:2-o-i,a*=60):u=f>0&&f<1?0:a,new Ot(a,u,f,t.opacity)}(t):new Ot(t,n,e,null==r?1:r)}function Ot(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Yt(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function Bt(t){if(t instanceof It)return new It(t.l,t.a,t.b,t.opacity);if(t instanceof Wt){if(isNaN(t.h))return new It(t.l,0,0,t.opacity);var n=t.h*Us;return new It(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}t instanceof Lt||(t=zt(t));var e,r,i=Gt(t.r),o=Gt(t.g),a=Gt(t.b),u=jt((.2225045*i+.7168786*o+.0606169*a)/Ys);return i===o&&o===a?e=r=u:(e=jt((.4360747*i+.3850649*o+.1430804*a)/Os),r=jt((.0139322*i+.0971045*o+.7141733*a)/Bs)),new It(116*u-16,500*(e-u),200*(u-r),t.opacity)}function Ft(t,n,e,r){return 1===arguments.length?Bt(t):new It(t,n,e,null==r?1:r)}function It(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function jt(t){return t>Hs?Math.pow(t,1/3):t/js+Fs}function Ht(t){return t>Is?t*t*t:js*(t-Fs)}function Xt(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Gt(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Vt(t){if(t instanceof Wt)return new Wt(t.h,t.c,t.l,t.opacity);if(t instanceof It||(t=Bt(t)),0===t.a&&0===t.b)return new Wt(NaN,0,t.l,t.opacity);var n=Math.atan2(t.b,t.a)*qs;return new Wt(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function $t(t,n,e,r){return 1===arguments.length?Vt(t):new Wt(t,n,e,null==r?1:r)}function Wt(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}function Zt(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof Qt)return new Qt(t.h,t.s,t.l,t.opacity);t instanceof Lt||(t=zt(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(Zs*r+$s*n-Ws*e)/(Zs+$s-Ws),o=r-i,a=(Vs*(e-i)-Xs*o)/Gs,u=Math.sqrt(a*a+o*o)/(Vs*i*(1-i)),f=u?Math.atan2(a,o)*qs-120:NaN;return new Qt(f<0?f+360:f,u,i,t.opacity)}(t):new Qt(t,n,e,null==r?1:r)}function Qt(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Jt(t,n,e,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*n+(4-6*o+3*a)*e+(1+3*t+3*o-3*a)*r+a*i)/6}function Kt(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r<n-1?t[r+2]:2*o-i;return Jt((e-r/n)*n,a,i,o,u)}}function tn(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],a=t[(r+1)%n],u=t[(r+2)%n];return Jt((e-r/n)*n,i,o,a,u)}}function nn(t){return function(){return t}}function en(t,n){return function(e){return t+e*n}}function rn(t,n){var e=n-t;return e?en(t,e>180||e<-180?e-360*Math.round(e/360):e):nn(isNaN(t)?n:t)}function on(t){return 1==(t=+t)?an:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):nn(isNaN(n)?e:n)}}function an(t,n){var e=n-t;return e?en(t,e):nn(isNaN(t)?n:t)}function un(t){return function(n){var e,r,i=n.length,o=new Array(i),a=new Array(i),u=new Array(i);for(e=0;e<i;++e)r=Rt(n[e]),o[e]=r.r||0,a[e]=r.g||0,u[e]=r.b||0;return o=t(o),a=t(a),u=t(u),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=u(t),r+""}}}function fn(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,o=new Array(i),a=new Array(r);for(e=0;e<i;++e)o[e]=dn(t[e],n[e]);for(;e<r;++e)a[e]=n[e];return function(t){for(e=0;e<i;++e)a[e]=o[e](t);return a}}function cn(t,n){var e=new Date;return t=+t,n-=t,function(r){return e.setTime(t+n*r),e}}function sn(t,n){return t=+t,n-=t,function(e){return t+n*e}}function ln(t,n){var e,r={},i={};null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={});for(e in n)e in t?r[e]=dn(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}}function hn(t,n){var e,r,i,o=al.lastIndex=ul.lastIndex=0,a=-1,u=[],f=[];for(t+="",n+="";(e=al.exec(t))&&(r=ul.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(e=e[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,f.push({i:a,x:sn(e,r)})),o=ul.lastIndex;return o<n.length&&(i=n.slice(o),u[a]?u[a]+=i:u[++a]=i),u.length<2?f[0]?function(t){return function(n){return t(n)+""}}(f[0].x):function(t){return function(){return t}}(n):(n=f.length,function(t){for(var e,r=0;r<n;++r)u[(e=f[r]).i]=e.x(t);return u.join("")})}function dn(t,n){var e,r=typeof n;return null==n||"boolean"===r?nn(n):("number"===r?sn:"string"===r?(e=kt(n))?(n=e,rl):hn:n instanceof kt?rl:n instanceof Date?cn:Array.isArray(n)?fn:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?ln:sn)(t,n)}function pn(t,n){return t=+t,n-=t,function(e){return Math.round(t+n*e)}}function vn(t,n,e,r,i,o){var a,u,f;return(a=Math.sqrt(t*t+n*n))&&(t/=a,n/=a),(f=t*e+n*r)&&(e-=t*f,r-=n*f),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,f/=u),t*r<n*e&&(t=-t,n=-n,f=-f,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*fl,skewX:Math.atan(f)*fl,scaleX:a,scaleY:u}}function gn(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}return function(o,a){var u=[],f=[];return o=t(o),a=t(a),function(t,r,i,o,a,u){if(t!==i||r!==o){var f=a.push("translate(",null,n,null,e);u.push({i:f-4,x:sn(t,i)},{i:f-2,x:sn(r,o)})}else(i||o)&&a.push("translate("+i+n+o+e)}(o.translateX,o.translateY,a.translateX,a.translateY,u,f),function(t,n,e,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:sn(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,u,f),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:sn(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,u,f),function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:sn(t,e)},{i:u-2,x:sn(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,u,f),o=a=null,function(t){for(var n,e=-1,r=f.length;++e<r;)u[(n=f[e]).i]=n.x(t);return u.join("")}}}function yn(t){return((t=Math.exp(t))+1/t)/2}function _n(t,n){var e,r,i=t[0],o=t[1],a=t[2],u=n[0],f=n[1],c=n[2],s=u-i,l=f-o,h=s*s+l*l;if(h<vl)r=Math.log(c/a)/hl,e=function(t){return[i+t*s,o+t*l,a*Math.exp(hl*t*r)]};else{var d=Math.sqrt(h),p=(c*c-a*a+pl*h)/(2*a*dl*d),v=(c*c-a*a-pl*h)/(2*c*dl*d),g=Math.log(Math.sqrt(p*p+1)-p),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-g)/hl,e=function(t){var n=t*r,e=yn(g),u=a/(dl*d)*(e*function(t){return((t=Math.exp(2*t))-1)/(t+1)}(hl*n+g)-function(t){return((t=Math.exp(t))-1/t)/2}(g));return[i+u*s,o+u*l,a*e/yn(hl*n+g)]}}return e.duration=1e3*r,e}function bn(t){return function(n,e){var r=t((n=qt(n)).h,(e=qt(e)).h),i=an(n.s,e.s),o=an(n.l,e.l),a=an(n.opacity,e.opacity);return function(t){return n.h=r(t),n.s=i(t),n.l=o(t),n.opacity=a(t),n+""}}}function mn(t){return function(n,e){var r=t((n=$t(n)).h,(e=$t(e)).h),i=an(n.c,e.c),o=an(n.l,e.l),a=an(n.opacity,e.opacity);return function(t){return n.h=r(t),n.c=i(t),n.l=o(t),n.opacity=a(t),n+""}}}function xn(t){return function n(e){function r(n,r){var i=t((n=Zt(n)).h,(r=Zt(r)).h),o=an(n.s,r.s),a=an(n.l,r.l),u=an(n.opacity,r.opacity);return function(t){return n.h=i(t),n.s=o(t),n.l=a(Math.pow(t,e)),n.opacity=u(t),n+""}}return e=+e,r.gamma=n,r}(1)}function wn(){return Sl||(Cl(Mn),Sl=kl.now()+El)}function Mn(){Sl=0}function An(){this._call=this._time=this._next=null}function Tn(t,n,e){var r=new An;return r.restart(t,n,e),r}function Nn(){wn(),++wl;for(var t,n=nl;n;)(t=Sl-n._time)>=0&&n._call.call(null,t),n=n._next;--wl}function Sn(){Sl=(Nl=kl.now())+El,wl=Ml=0;try{Nn()}finally{wl=0,function(){var t,n,e=nl,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:nl=n);el=t,kn(r)}(),Sl=0}}function En(){var t=kl.now(),n=t-Nl;n>Tl&&(El-=n,Nl=t)}function kn(t){if(!wl){Ml&&(Ml=clearTimeout(Ml));t-Sl>24?(t<1/0&&(Ml=setTimeout(Sn,t-kl.now()-El)),Al&&(Al=clearInterval(Al))):(Al||(Nl=kl.now(),Al=setInterval(En,Tl)),wl=1,Cl(Sn))}}function Cn(t,n,e){var r=new An;return n=null==n?0:+n,r.restart(function(e){r.stop(),t(e+n)},n,e),r}function Pn(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};(function(t,n,e){function r(f){var c,s,l,h;if(e.state!==Ll)return o();for(c in u)if((h=u[c]).name===e.name){if(h.state===Ul)return Cn(r);h.state===ql?(h.state=Yl,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete u[c]):+c<n&&(h.state=Yl,h.timer.stop(),delete u[c])}if(Cn(function(){e.state===Ul&&(e.state=ql,e.timer.restart(i,e.delay,e.time),i(f))}),e.state=Dl,e.on.call("start",t,t.__data__,e.index,e.group),e.state===Dl){for(e.state=Ul,a=new Array(l=e.tween.length),c=0,s=-1;c<l;++c)(h=e.tween[c].value.call(t,t.__data__,e.index,e.group))&&(a[++s]=h);a.length=s+1}}function i(n){for(var r=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(o),e.state=Ol,1),i=-1,u=a.length;++i<u;)a[i].call(null,r);e.state===Ol&&(e.on.call("end",t,t.__data__,e.index,e.group),o())}function o(){e.state=Yl,e.timer.stop(),delete u[n];for(var r in u)return;delete t.__transition}var a,u=t.__transition;u[n]=e,e.timer=Tn(function(t){e.state=Ll,e.timer.restart(r,e.delay,e.time),e.delay<=t&&r(t-e.delay)},0,e.time)})(t,e,{name:n,index:r,group:i,on:Pl,tween:zl,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:Rl})}function zn(t,n){var e=Ln(t,n);if(e.state>Rl)throw new Error("too late; already scheduled");return e}function Rn(t,n){var e=Ln(t,n);if(e.state>Dl)throw new Error("too late; already started");return e}function Ln(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function Dn(t,n){var e,r,i,o=t.__transition,a=!0;if(o){n=null==n?null:n+"";for(i in o)(e=o[i]).name===n?(r=e.state>Dl&&e.state<Ol,e.state=Yl,e.timer.stop(),r&&e.on.call("interrupt",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}function Un(t,n,e){var r=t._id;return t.each(function(){var t=Rn(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return Ln(t,r).value[n]}}function qn(t,n){var e;return("number"==typeof n?sn:n instanceof kt?rl:(e=kt(n))?(n=e,rl):hn)(t,n)}function On(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Yn(t){return ft().transition(t)}function Bn(){return++Fl}function Fn(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function In(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}function jn(t){return(1-Math.cos(Gl*t))/2}function Hn(t){return((t*=2)<=1?Math.pow(2,10*t-10):2-Math.pow(2,10-10*t))/2}function Xn(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}function Gn(t){return(t=+t)<$l?rh*t*t:t<Zl?rh*(t-=Wl)*t+Ql:t<Kl?rh*(t-=Jl)*t+th:rh*(t-=nh)*t+eh}function Vn(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))return lh.time=wn(),lh;return e}function $n(t){return function(){return t}}function Wn(){t.event.stopImmediatePropagation()}function Zn(){t.event.preventDefault(),t.event.stopImmediatePropagation()}function Qn(t){return{type:t}}function Jn(){return!t.event.button}function Kn(){var t=this.ownerSVGElement||this;return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function te(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function ne(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function ee(n){function e(t){var e=t.property("__brush",u).selectAll(".overlay").data([Qn("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",mh.overlay).merge(e).each(function(){var t=te(this).extent;ct(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])}),t.selectAll(".selection").data([Qn("selection")]).enter().append("rect").attr("class","selection").attr("cursor",mh.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var i=t.selectAll(".handle").data(n.handles,function(t){return t.type});i.exit().remove(),i.enter().append("rect").attr("class",function(t){return"handle handle--"+t.type}).attr("cursor",function(t){return mh[t.type]}),t.each(r).attr("fill","none").attr("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush touchstart.brush",a)}function r(){var t=ct(this),n=te(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",function(t){return"e"===t.type[t.type.length-1]?n[1][0]-h/2:n[0][0]-h/2}).attr("y",function(t){return"s"===t.type[0]?n[1][1]-h/2:n[0][1]-h/2}).attr("width",function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+h:h}).attr("height",function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+h:h})):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function i(t,n){return t.__brush.emitter||new o(t,n)}function o(t,n){this.that=t,this.args=n,this.state=t.__brush,this.active=0}function a(){function e(){var t=pt(w);!L||m||x||(Math.abs(t[0]-U[0])>Math.abs(t[1]-U[1])?x=!0:m=!0),U=t,b=!0,Zn(),o()}function o(){var t;switch(y=U[0]-D[0],_=U[1]-D[1],A){case ph:case dh:T&&(y=Math.max(C-u,Math.min(z-d,y)),c=u+y,p=d+y),N&&(_=Math.max(P-l,Math.min(R-v,_)),h=l+_,g=v+_);break;case vh:T<0?(y=Math.max(C-u,Math.min(z-u,y)),c=u+y,p=d):T>0&&(y=Math.max(C-d,Math.min(z-d,y)),c=u,p=d+y),N<0?(_=Math.max(P-l,Math.min(R-l,_)),h=l+_,g=v):N>0&&(_=Math.max(P-v,Math.min(R-v,_)),h=l,g=v+_);break;case gh:T&&(c=Math.max(C,Math.min(z,u-y*T)),p=Math.max(C,Math.min(z,d+y*T))),N&&(h=Math.max(P,Math.min(R,l-_*N)),g=Math.max(P,Math.min(R,v+_*N)))}p<c&&(T*=-1,t=u,u=d,d=t,t=c,c=p,p=t,M in xh&&Y.attr("cursor",mh[M=xh[M]])),g<h&&(N*=-1,t=l,l=v,v=t,t=h,h=g,g=t,M in wh&&Y.attr("cursor",mh[M=wh[M]])),S.selection&&(k=S.selection),m&&(c=k[0][0],p=k[1][0]),x&&(h=k[0][1],g=k[1][1]),k[0][0]===c&&k[0][1]===h&&k[1][0]===p&&k[1][1]===g||(S.selection=[[c,h],[p,g]],r.call(w),q.brush())}function a(){if(Wn(),t.event.touches){if(t.event.touches.length)return;f&&clearTimeout(f),f=setTimeout(function(){f=null},500),O.on("touchmove.brush touchend.brush touchcancel.brush",null)}else bt(t.event.view,b),B.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);O.attr("pointer-events","all"),Y.attr("cursor",mh.overlay),S.selection&&(k=S.selection),ne(k)&&(S.selection=null,r.call(w)),q.end()}if(t.event.touches){if(t.event.changedTouches.length<t.event.touches.length)return Zn()}else if(f)return;if(s.apply(this,arguments)){var u,c,l,h,d,p,v,g,y,_,b,m,x,w=this,M=t.event.target.__data__.type,A="selection"===(t.event.metaKey?M="overlay":M)?dh:t.event.altKey?gh:vh,T=n===_h?null:Mh[M],N=n===yh?null:Ah[M],S=te(w),E=S.extent,k=S.selection,C=E[0][0],P=E[0][1],z=E[1][0],R=E[1][1],L=T&&N&&t.event.shiftKey,D=pt(w),U=D,q=i(w,arguments).beforestart();"overlay"===M?S.selection=k=[[u=n===_h?C:D[0],l=n===yh?P:D[1]],[d=n===_h?z:u,v=n===yh?R:l]]:(u=k[0][0],l=k[0][1],d=k[1][0],v=k[1][1]),c=u,h=l,p=d,g=v;var O=ct(w).attr("pointer-events","none"),Y=O.selectAll(".overlay").attr("cursor",mh[M]);if(t.event.touches)O.on("touchmove.brush",e,!0).on("touchend.brush touchcancel.brush",a,!0);else{var B=ct(t.event.view).on("keydown.brush",function(){switch(t.event.keyCode){case 16:L=T&&N;break;case 18:A===vh&&(T&&(d=p-y*T,u=c+y*T),N&&(v=g-_*N,l=h+_*N),A=gh,o());break;case 32:A!==vh&&A!==gh||(T<0?d=p-y:T>0&&(u=c-y),N<0?v=g-_:N>0&&(l=h-_),A=ph,Y.attr("cursor",mh.selection),o());break;default:return}Zn()},!0).on("keyup.brush",function(){switch(t.event.keyCode){case 16:L&&(m=x=L=!1,o());break;case 18:A===gh&&(T<0?d=p:T>0&&(u=c),N<0?v=g:N>0&&(l=h),A=vh,o());break;case 32:A===ph&&(t.event.altKey?(T&&(d=p-y*T,u=c+y*T),N&&(v=g-_*N,l=h+_*N),A=gh):(T<0?d=p:T>0&&(u=c),N<0?v=g:N>0&&(l=h),A=vh),Y.attr("cursor",mh[M]),o());break;default:return}Zn()},!0).on("mousemove.brush",e,!0).on("mouseup.brush",a,!0);_t(t.event.view)}Wn(),Dn(w),r.call(w),q.start()}}function u(){var t=this.__brush||{selection:null};return t.extent=c.apply(this,arguments),t.dim=n,t}var f,c=Kn,s=Jn,l=N(e,"start","brush","end"),h=6;return e.move=function(t,e){t.selection?t.on("start.brush",function(){i(this,arguments).beforestart().start()}).on("interrupt.brush end.brush",function(){i(this,arguments).end()}).tween("brush",function(){function t(t){a.selection=1===t&&ne(c)?null:s(t),r.call(o),u.brush()}var o=this,a=o.__brush,u=i(o,arguments),f=a.selection,c=n.input("function"==typeof e?e.apply(this,arguments):e,a.extent),s=dn(f,c);return f&&c?t:t(1)}):t.each(function(){var t=arguments,o=this.__brush,a=n.input("function"==typeof e?e.apply(this,t):e,o.extent),u=i(this,t).beforestart();Dn(this),o.selection=null==a||ne(a)?null:a,r.call(this),u.start().brush().end()})},o.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting&&(this.starting=!1,this.emit("start")),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(t){ot(new function(t,n,e){this.target=t,this.type=n,this.selection=e}(e,t,n.output(this.state.selection)),l.apply,l,[t,this.that,this.args])}},e.extent=function(t){return arguments.length?(c="function"==typeof t?t:$n([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),e):c},e.filter=function(t){return arguments.length?(s="function"==typeof t?t:$n(!!t),e):s},e.handleSize=function(t){return arguments.length?(h=+t,e):h},e.on=function(){var t=l.on.apply(l,arguments);return t===l?e:t},e}function re(t){return function(){return t}}function ie(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function oe(){return new ie}function ae(t){return t.source}function ue(t){return t.target}function fe(t){return t.radius}function ce(t){return t.startAngle}function se(t){return t.endAngle}function le(){}function he(t,n){var e=new le;if(t instanceof le)t.each(function(t,n){e.set(n,t)});else if(Array.isArray(t)){var r,i=-1,o=t.length;if(null==n)for(;++i<o;)e.set(i,t[i]);else for(;++i<o;)e.set(n(r=t[i],i,t),r)}else if(t)for(var a in t)e.set(a,t[a]);return e}function de(){return{}}function pe(t,n,e){t[n]=e}function ve(){return he()}function ge(t,n,e){t.set(n,e)}function ye(){}function _e(t,n){var e=new ye;if(t instanceof ye)t.each(function(t){e.add(t)});else if(t){var r=-1,i=t.length;if(null==n)for(;++r<i;)e.add(t[r]);else for(;++r<i;)e.add(n(t[r],r,t))}return e}function be(t,n){return t-n}function me(t){return function(){return t}}function xe(t,n){for(var e,r=-1,i=n.length;++r<i;)if(e=function(t,n){for(var e=n[0],r=n[1],i=-1,o=0,a=t.length,u=a-1;o<a;u=o++){var f=t[o],c=f[0],s=f[1],l=t[u],h=l[0],d=l[1];if(function(t,n,e){var r;return function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])==(e[0]-t[0])*(n[1]-t[1])}(t,n,e)&&function(t,n,e){return t<=n&&n<=e||e<=n&&n<=t}(t[r=+(t[0]===n[0])],e[r],n[r])}(f,l,n))return 0;s>r!=d>r&&e<(h-c)*(r-s)/(d-s)+c&&(i=-i)}return i}(t,n[r]))return e;return 0}function we(){}function Me(){function t(t){var e=a(t);if(Array.isArray(e))e=e.slice().sort(be);else{var r=u(t),i=r[0],o=r[1];e=d(i,o,e),e=s(Math.floor(i/e)*e,Math.floor(o/e)*e,e)}return e.map(function(e){return n(t,e)})}function n(t,n){var r=[],a=[];return function(t,n,r){function a(t){var n,i,o=[t[0][0]+u,t[0][1]+f],a=[t[1][0]+u,t[1][1]+f],c=e(o),s=e(a);(n=p[c])?(i=d[s])?(delete p[n.end],delete d[i.start],n===i?(n.ring.push(a),r(n.ring)):d[n.start]=p[i.end]={start:n.start,end:i.end,ring:n.ring.concat(i.ring)}):(delete p[n.end],n.ring.push(a),p[n.end=s]=n):(n=d[s])?(i=p[c])?(delete d[n.start],delete p[i.end],n===i?(n.ring.push(a),r(n.ring)):d[i.start]=p[n.end]={start:i.start,end:n.end,ring:i.ring.concat(n.ring)}):(delete d[n.start],n.ring.unshift(o),d[n.start=c]=n):d[c]=p[s]={start:c,end:s,ring:[o,a]}}var u,f,c,s,l,h,d=new Array,p=new Array;u=f=-1,s=t[0]>=n,qh[s<<1].forEach(a);for(;++u<i-1;)c=s,s=t[u+1]>=n,qh[c|s<<1].forEach(a);qh[s<<0].forEach(a);for(;++f<o-1;){for(u=-1,s=t[f*i+i]>=n,l=t[f*i]>=n,qh[s<<1|l<<2].forEach(a);++u<i-1;)c=s,s=t[f*i+i+u+1]>=n,h=l,l=t[f*i+u+1]>=n,qh[c|s<<1|l<<2|h<<3].forEach(a);qh[s|l<<3].forEach(a)}u=-1,l=t[f*i]>=n,qh[l<<2].forEach(a);for(;++u<i-1;)h=l,l=t[f*i+u+1]>=n,qh[l<<2|h<<3].forEach(a);qh[l<<3].forEach(a)}(t,n,function(e){f(e,t,n),function(t){for(var n=0,e=t.length,r=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];++n<e;)r+=t[n-1][1]*t[n][0]-t[n-1][0]*t[n][1];return r}(e)>0?r.push([e]):a.push(e)}),a.forEach(function(t){for(var n,e=0,i=r.length;e<i;++e)if(-1!==xe((n=r[e])[0],t))return void n.push(t)}),{type:"MultiPolygon",value:n,coordinates:r}}function e(t){return 2*t[0]+t[1]*(i+1)*4}function r(t,n,e){t.forEach(function(t){var r,a=t[0],u=t[1],f=0|a,c=0|u,s=n[c*i+f];a>0&&a<i&&f===a&&(r=n[c*i+f-1],t[0]=a+(e-r)/(s-r)-.5),u>0&&u<o&&c===u&&(r=n[(c-1)*i+f],t[1]=u+(e-r)/(s-r)-.5)})}var i=1,o=1,a=p,f=r;return t.contour=n,t.size=function(n){if(!arguments.length)return[i,o];var e=Math.ceil(n[0]),r=Math.ceil(n[1]);if(!(e>0&&r>0))throw new Error("invalid size");return i=e,o=r,t},t.thresholds=function(n){return arguments.length?(a="function"==typeof n?n:Array.isArray(n)?me(Uh.call(n)):me(n),t):a},t.smooth=function(n){return arguments.length?(f=n?r:we,t):f===r},t}function Ae(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a<i;++a)for(var u=0,f=0;u<r+e;++u)u<r&&(f+=t.data[u+a*r]),u>=e&&(u>=o&&(f-=t.data[u-o+a*r]),n.data[u-e+a*r]=f/Math.min(u+1,r-1+o-u,o))}function Te(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a<r;++a)for(var u=0,f=0;u<i+e;++u)u<i&&(f+=t.data[a+u*r]),u>=e&&(u>=o&&(f-=t.data[a+(u-o)*r]),n.data[a+(u-e)*r]=f/Math.min(u+1,i-1+o-u,o))}function Ne(t){return t[0]}function Se(t){return t[1]}function Ee(t){return new Function("d","return {"+t.map(function(t,n){return JSON.stringify(t)+": d["+n+"]"}).join(",")+"}")}function ke(t){function n(t,n){function e(){if(c)return Yh;if(s)return s=!1,Oh;var n,e,r=u;if(t.charCodeAt(r)===Bh){for(;u++<a&&t.charCodeAt(u)!==Bh||t.charCodeAt(++u)===Bh;);return(n=u)>=a?c=!0:(e=t.charCodeAt(u++))===Fh?s=!0:e===Ih&&(s=!0,t.charCodeAt(u)===Fh&&++u),t.slice(r+1,n-1).replace(/""/g,'"')}for(;u<a;){if((e=t.charCodeAt(n=u++))===Fh)s=!0;else if(e===Ih)s=!0,t.charCodeAt(u)===Fh&&++u;else if(e!==o)continue;return t.slice(r,n)}return c=!0,t.slice(r,a)}var r,i=[],a=t.length,u=0,f=0,c=a<=0,s=!1;for(t.charCodeAt(a-1)===Fh&&--a,t.charCodeAt(a-1)===Ih&&--a;(r=e())!==Yh;){for(var l=[];r!==Oh&&r!==Yh;)l.push(r),r=e();n&&null==(l=n(l,f++))||i.push(l)}return i}function e(n){return n.map(r).join(t)}function r(t){return null==t?"":i.test(t+="")?'"'+t.replace(/"/g,'""')+'"':t}var i=new RegExp('["'+t+"\n\r]"),o=t.charCodeAt(0);return{parse:function(t,e){var r,i,o=n(t,function(t,n){if(r)return r(t,n-1);i=t,r=e?function(t,n){var e=Ee(t);return function(r,i){return n(e(r),i,t)}}(t,e):Ee(t)});return o.columns=i||[],o},parseRows:n,format:function(n,e){return null==e&&(e=function(t){var n=Object.create(null),e=[];return t.forEach(function(t){for(var r in t)r in n||e.push(n[r]=r)}),e}(n)),[e.map(r).join(t)].concat(n.map(function(n){return e.map(function(t){return r(n[t])}).join(t)})).join("\n")},formatRows:function(t){return t.map(e).join("\n")}}}function Ce(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.blob()}function Pe(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.arrayBuffer()}function ze(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function Re(t,n){return fetch(t,n).then(ze)}function Le(t){return function(n,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=void 0),Re(n,e).then(function(n){return t(n,r)})}}function De(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.json()}function Ue(t){return function(n,e){return Re(n,e).then(function(n){return(new DOMParser).parseFromString(n,t)})}}function qe(t){return function(){return t}}function Oe(){return 1e-6*(Math.random()-.5)}function Ye(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,a,u,f,c,s,l,h,d=t._root,p={data:r},v=t._x0,g=t._y0,y=t._x1,_=t._y1;if(!d)return t._root=p,t;for(;d.length;)if((c=n>=(o=(v+y)/2))?v=o:y=o,(s=e>=(a=(g+_)/2))?g=a:_=a,i=d,!(d=d[l=s<<1|c]))return i[l]=p,t;if(u=+t._x.call(null,d.data),f=+t._y.call(null,d.data),n===u&&e===f)return p.next=d,i?i[l]=p:t._root=p,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(c=n>=(o=(v+y)/2))?v=o:y=o,(s=e>=(a=(g+_)/2))?g=a:_=a}while((l=s<<1|c)==(h=(f>=a)<<1|u>=o));return i[h]=d,i[l]=p,t}function Be(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function Fe(t){return t[0]}function Ie(t){return t[1]}function je(t,n,e){var r=new He(null==n?Fe:n,null==e?Ie:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function He(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function Xe(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}function Ge(t){return t.x+t.vx}function Ve(t){return t.y+t.vy}function $e(t){return t.index}function We(t,n){var e=t.get(n);if(!e)throw new Error("missing: "+n);return e}function Ze(t){return t.x}function Qe(t){return t.y}function Je(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]}function Ke(t){return(t=Je(Math.abs(t)))?t[1]:NaN}function tr(t){return new nr(t)}function nr(t){if(!(n=ud.exec(t)))throw new Error("invalid format: "+t);var n;this.fill=n[1]||" ",this.align=n[2]||">",this.sign=n[3]||"-",this.symbol=n[4]||"",this.zero=!!n[5],this.width=n[6]&&+n[6],this.comma=!!n[7],this.precision=n[8]&&+n[8].slice(1),this.trim=!!n[9],this.type=n[10]||""}function er(t,n){var e=Je(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}function rr(t){return t}function ir(t){function n(t){function n(t){var n,r,a,s=y,x=_;if("c"===g)x=b(t)+x,t="";else{var w=(t=+t)<0;if(t=b(Math.abs(t),p),v&&(t=function(t){t:for(var n,e=t.length,r=1,i=-1;r<e;++r)switch(t[r]){case".":i=n=r;break;case"0":0===i&&(i=r),n=r;break;default:if(i>0){if(!+t[r])break t;i=0}}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),w&&0==+t&&(w=!1),s=(w?"("===c?c:"-":"-"===c||"("===c?"":c)+s,x=("s"===g?ld[8+fd/3]:"")+x+(w&&"("===c?")":""),m)for(n=-1,r=t.length;++n<r;)if(48>(a=t.charCodeAt(n))||a>57){x=(46===a?i+t.slice(n+1):t.slice(n))+x,t=t.slice(0,n);break}}d&&!l&&(t=e(t,1/0));var M=s.length+t.length+x.length,A=M<h?new Array(h-M+1).join(u):"";switch(d&&l&&(t=e(A+t,A.length?h-x.length:1/0),A=""),f){case"<":t=s+t+x+A;break;case"=":t=s+A+t+x;break;case"^":t=A.slice(0,M=A.length>>1)+s+t+x+A.slice(M);break;default:t=A+s+t+x}return o(t)}var u=(t=tr(t)).fill,f=t.align,c=t.sign,s=t.symbol,l=t.zero,h=t.width,d=t.comma,p=t.precision,v=t.trim,g=t.type;"n"===g?(d=!0,g="g"):sd[g]||(null==p&&(p=12),v=!0,g="g"),(l||"0"===u&&"="===f)&&(l=!0,u="0",f="=");var y="$"===s?r[0]:"#"===s&&/[boxX]/.test(g)?"0"+g.toLowerCase():"",_="$"===s?r[1]:/[%p]/.test(g)?a:"",b=sd[g],m=/[defgprs%]/.test(g);return p=null==p?6:/[gprs]/.test(g)?Math.max(1,Math.min(21,p)):Math.max(0,Math.min(20,p)),n.toString=function(){return t+""},n}var e=t.grouping&&t.thousands?function(t,n){return function(e,r){for(var i=e.length,o=[],a=0,u=t[0],f=0;i>0&&u>0&&(f+u+1>r&&(u=Math.max(1,r-f)),o.push(e.substring(i-=u,i+u)),!((f+=u+1)>r));)u=t[a=(a+1)%t.length];return o.reverse().join(n)}}(t.grouping,t.thousands):rr,r=t.currency,i=t.decimal,o=t.numerals?function(t){return function(n){return n.replace(/[0-9]/g,function(n){return t[+n]})}}(t.numerals):rr,a=t.percent||"%";return{format:n,formatPrefix:function(t,e){var r=n((t=tr(t),t.type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(Ke(e)/3))),o=Math.pow(10,-i),a=ld[8+i/3];return function(t){return r(o*t)+a}}}}function or(n){return cd=ir(n),t.format=cd.format,t.formatPrefix=cd.formatPrefix,cd}function ar(t){return Math.max(0,-Ke(Math.abs(t)))}function ur(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Ke(n)/3)))-Ke(Math.abs(t)))}function fr(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,Ke(n)-Ke(t))+1}function cr(){return new sr}function sr(){this.reset()}function lr(t,n,e){var r=t.s=n+e,i=r-n,o=r-i;t.t=n-o+(e-i)}function hr(t){return t>1?0:t<-1?Gd:Math.acos(t)}function dr(t){return t>1?Vd:t<-1?-Vd:Math.asin(t)}function pr(t){return(t=ap(t/2))*t}function vr(){}function gr(t,n){t&&lp.hasOwnProperty(t.type)&&lp[t.type](t,n)}function yr(t,n,e){var r,i=-1,o=t.length-e;for(n.lineStart();++i<o;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function _r(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)yr(t[e],n,1);n.polygonEnd()}function br(t,n){t&&sp.hasOwnProperty(t.type)?sp[t.type](t,n):gr(t,n)}function mr(){pp.point=wr}function xr(){Mr(hd,dd)}function wr(t,n){pp.point=Mr,hd=t,dd=n,pd=t*=Qd,vd=np(n=(n*=Qd)/2+$d),gd=ap(n)}function Mr(t,n){n=(n*=Qd)/2+$d;var e=(t*=Qd)-pd,r=e>=0?1:-1,i=r*e,o=np(n),a=ap(n),u=gd*a,f=vd*o+u*np(i),c=u*r*ap(i);hp.add(tp(c,f)),pd=t,vd=o,gd=a}function Ar(t){return[tp(t[1],t[0]),dr(t[2])]}function Tr(t){var n=t[0],e=t[1],r=np(e);return[r*np(n),r*ap(n),ap(e)]}function Nr(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Sr(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Er(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function kr(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function Cr(t){var n=fp(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}function Pr(t,n){Td.push(Nd=[yd=t,bd=t]),n<_d&&(_d=n),n>md&&(md=n)}function zr(t,n){var e=Tr([t*Qd,n*Qd]);if(Ad){var r=Sr(Ad,e),i=Sr([r[1],-r[0],0],r);Cr(i),i=Ar(i);var o,a=t-xd,u=a>0?1:-1,f=i[0]*Zd*u,c=Jd(a)>180;c^(u*xd<f&&f<u*t)?(o=i[1]*Zd)>md&&(md=o):(f=(f+360)%360-180,c^(u*xd<f&&f<u*t)?(o=-i[1]*Zd)<_d&&(_d=o):(n<_d&&(_d=n),n>md&&(md=n))),c?t<xd?Or(yd,t)>Or(yd,bd)&&(bd=t):Or(t,bd)>Or(yd,bd)&&(yd=t):bd>=yd?(t<yd&&(yd=t),t>bd&&(bd=t)):t>xd?Or(yd,t)>Or(yd,bd)&&(bd=t):Or(t,bd)>Or(yd,bd)&&(yd=t)}else Td.push(Nd=[yd=t,bd=t]);n<_d&&(_d=n),n>md&&(md=n),Ad=e,xd=t}function Rr(){gp.point=zr}function Lr(){Nd[0]=yd,Nd[1]=bd,gp.point=Pr,Ad=null}function Dr(t,n){if(Ad){var e=t-xd;vp.add(Jd(e)>180?e+(e>0?360:-360):e)}else wd=t,Md=n;pp.point(t,n),zr(t,n)}function Ur(){pp.lineStart()}function qr(){Dr(wd,Md),pp.lineEnd(),Jd(vp)>Hd&&(yd=-(bd=180)),Nd[0]=yd,Nd[1]=bd,Ad=null}function Or(t,n){return(n-=t)<0?n+360:n}function Yr(t,n){return t[0]-n[0]}function Br(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}function Fr(t,n){t*=Qd;var e=np(n*=Qd);Ir(e*np(t),e*ap(t),ap(n))}function Ir(t,n,e){kd+=(t-kd)/++Sd,Cd+=(n-Cd)/Sd,Pd+=(e-Pd)/Sd}function jr(){yp.point=Hr}function Hr(t,n){t*=Qd;var e=np(n*=Qd);Bd=e*np(t),Fd=e*ap(t),Id=ap(n),yp.point=Xr,Ir(Bd,Fd,Id)}function Xr(t,n){t*=Qd;var e=np(n*=Qd),r=e*np(t),i=e*ap(t),o=ap(n),a=tp(fp((a=Fd*o-Id*i)*a+(a=Id*r-Bd*o)*a+(a=Bd*i-Fd*r)*a),Bd*r+Fd*i+Id*o);Ed+=a,zd+=a*(Bd+(Bd=r)),Rd+=a*(Fd+(Fd=i)),Ld+=a*(Id+(Id=o)),Ir(Bd,Fd,Id)}function Gr(){yp.point=Fr}function Vr(){yp.point=Wr}function $r(){Zr(Od,Yd),yp.point=Fr}function Wr(t,n){Od=t,Yd=n,t*=Qd,n*=Qd,yp.point=Zr;var e=np(n);Bd=e*np(t),Fd=e*ap(t),Id=ap(n),Ir(Bd,Fd,Id)}function Zr(t,n){t*=Qd;var e=np(n*=Qd),r=e*np(t),i=e*ap(t),o=ap(n),a=Fd*o-Id*i,u=Id*r-Bd*o,f=Bd*i-Fd*r,c=fp(a*a+u*u+f*f),s=dr(c),l=c&&-s/c;Dd+=l*a,Ud+=l*u,qd+=l*f,Ed+=s,zd+=s*(Bd+(Bd=r)),Rd+=s*(Fd+(Fd=i)),Ld+=s*(Id+(Id=o)),Ir(Bd,Fd,Id)}function Qr(t){return function(){return t}}function Jr(t,n){function e(e,r){return e=t(e,r),n(e[0],e[1])}return t.invert&&n.invert&&(e.invert=function(e,r){return(e=n.invert(e,r))&&t.invert(e[0],e[1])}),e}function Kr(t,n){return[t>Gd?t-Wd:t<-Gd?t+Wd:t,n]}function ti(t,n,e){return(t%=Wd)?n||e?Jr(ei(t),ri(n,e)):ei(t):n||e?ri(n,e):Kr}function ni(t){return function(n,e){return n+=t,[n>Gd?n-Wd:n<-Gd?n+Wd:n,e]}}function ei(t){var n=ni(t);return n.invert=ni(-t),n}function ri(t,n){function e(t,n){var e=np(n),u=np(t)*e,f=ap(t)*e,c=ap(n),s=c*r+u*i;return[tp(f*o-s*a,u*r-c*i),dr(s*o+f*a)]}var r=np(t),i=ap(t),o=np(n),a=ap(n);return e.invert=function(t,n){var e=np(n),u=np(t)*e,f=ap(t)*e,c=ap(n),s=c*o-f*a;return[tp(f*o+c*a,u*r+s*i),dr(s*r-u*i)]},e}function ii(t){function n(n){return n=t(n[0]*Qd,n[1]*Qd),n[0]*=Zd,n[1]*=Zd,n}return t=ti(t[0]*Qd,t[1]*Qd,t.length>2?t[2]*Qd:0),n.invert=function(n){return n=t.invert(n[0]*Qd,n[1]*Qd),n[0]*=Zd,n[1]*=Zd,n},n}function oi(t,n,e,r,i,o){if(e){var a=np(n),u=ap(n),f=r*e;null==i?(i=n+r*Wd,o=n-f/2):(i=ai(a,i),o=ai(a,o),(r>0?i<o:i>o)&&(i+=r*Wd));for(var c,s=i;r>0?s>o:s<o;s-=f)c=Ar([a,-u*np(s),-u*ap(s)]),t.point(c[0],c[1])}}function ai(t,n){(n=Tr(n))[0]-=t,Cr(n);var e=hr(-n[1]);return((-n[2]<0?-e:e)+Wd-Hd)%Wd}function ui(){var t,n=[];return{point:function(n,e){t.push([n,e])},lineStart:function(){n.push(t=[])},lineEnd:vr,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function fi(t,n){return Jd(t[0]-n[0])<Hd&&Jd(t[1]-n[1])<Hd}function ci(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function si(t,n,e,r,i){var o,a,u=[],f=[];if(t.forEach(function(t){if(!((n=t.length-1)<=0)){var n,e,r=t[0],a=t[n];if(fi(r,a)){for(i.lineStart(),o=0;o<n;++o)i.point((r=t[o])[0],r[1]);i.lineEnd()}else u.push(e=new ci(r,t,null,!0)),f.push(e.o=new ci(r,null,e,!1)),u.push(e=new ci(a,t,null,!1)),f.push(e.o=new ci(a,null,e,!0))}}),u.length){for(f.sort(n),li(u),li(f),o=0,a=f.length;o<a;++o)f[o].e=e=!e;for(var c,s,l=u[0];;){for(var h=l,d=!0;h.v;)if((h=h.n)===l)return;c=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(d)for(o=0,a=c.length;o<a;++o)i.point((s=c[o])[0],s[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(d)for(c=h.p.z,o=c.length-1;o>=0;--o)i.point((s=c[o])[0],s[1]);else r(h.x,h.p.x,-1,i);h=h.p}c=(h=h.o).z,d=!d}while(!h.v);i.lineEnd()}}}function li(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}function hi(t,n){var e=n[0],r=n[1],i=ap(r),o=[ap(e),-np(e),0],a=0,u=0;kp.reset(),1===i?r=Vd+Hd:-1===i&&(r=-Vd-Hd);for(var f=0,c=t.length;f<c;++f)if(l=(s=t[f]).length)for(var s,l,h=s[l-1],d=h[0],p=h[1]/2+$d,v=ap(p),g=np(p),y=0;y<l;++y,d=b,v=x,g=w,h=_){var _=s[y],b=_[0],m=_[1]/2+$d,x=ap(m),w=np(m),M=b-d,A=M>=0?1:-1,T=A*M,N=T>Gd,S=v*x;if(kp.add(tp(S*A*ap(T),g*w+S*np(T))),a+=N?M+A*Wd:M,N^d>=e^b>=e){var E=Sr(Tr(h),Tr(_));Cr(E);var k=Sr(o,E);Cr(k);var C=(N^M>=0?-1:1)*dr(k[2]);(r>C||r===C&&(E[0]||E[1]))&&(u+=N^M>=0?1:-1)}}return(a<-Hd||a<Hd&&kp<-Hd)^1&u}function di(t,n,e,r){return function(i){function o(n,e){t(n,e)&&i.point(n,e)}function a(t,n){v.point(t,n)}function u(){m.point=a,v.lineStart()}function f(){m.point=o,v.lineEnd()}function c(t,n){p.push([t,n]),_.point(t,n)}function s(){_.lineStart(),p=[]}function l(){c(p[0][0],p[0][1]),_.lineEnd();var t,n,e,r,o=_.clean(),a=g.result(),u=a.length;if(p.pop(),h.push(p),p=null,u)if(1&o){if(e=a[0],(n=e.length-1)>0){for(b||(i.polygonStart(),b=!0),i.lineStart(),t=0;t<n;++t)i.point((r=e[t])[0],r[1]);i.lineEnd()}}else u>1&&2&o&&a.push(a.pop().concat(a.shift())),d.push(a.filter(pi))}var h,d,p,v=n(i),g=ui(),_=n(g),b=!1,m={point:o,lineStart:u,lineEnd:f,polygonStart:function(){m.point=c,m.lineStart=s,m.lineEnd=l,d=[],h=[]},polygonEnd:function(){m.point=o,m.lineStart=u,m.lineEnd=f,d=y(d);var t=hi(h,r);d.length?(b||(i.polygonStart(),b=!0),si(d,vi,t,e,i)):t&&(b||(i.polygonStart(),b=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),b&&(i.polygonEnd(),b=!1),d=h=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}};return m}}function pi(t){return t.length>1}function vi(t,n){return((t=t.x)[0]<0?t[1]-Vd-Hd:Vd-t[1])-((n=n.x)[0]<0?n[1]-Vd-Hd:Vd-n[1])}function gi(t){function n(t,n){return np(t)*np(n)>i}function e(t,n,e){var r=[1,0,0],o=Sr(Tr(t),Tr(n)),a=Nr(o,o),u=o[0],f=a-u*u;if(!f)return!e&&t;var c=i*a/f,s=-i*u/f,l=Sr(r,o),h=kr(r,c);Er(h,kr(o,s));var d=l,p=Nr(h,d),v=Nr(d,d),g=p*p-v*(Nr(h,h)-1);if(!(g<0)){var y=fp(g),_=kr(d,(-p-y)/v);if(Er(_,h),_=Ar(_),!e)return _;var b,m=t[0],x=n[0],w=t[1],M=n[1];x<m&&(b=m,m=x,x=b);var A=x-m,T=Jd(A-Gd)<Hd;if(!T&&M<w&&(b=w,w=M,M=b),T||A<Hd?T?w+M>0^_[1]<(Jd(_[0]-m)<Hd?w:M):w<=_[1]&&_[1]<=M:A>Gd^(m<=_[0]&&_[0]<=x)){var N=kr(d,(-p+y)/v);return Er(N,h),[_,Ar(N)]}}}function r(n,e){var r=a?t:Gd-t,i=0;return n<-r?i|=1:n>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}var i=np(t),o=6*Qd,a=i>0,u=Jd(i)>Hd;return di(n,function(t){var i,o,f,c,s;return{lineStart:function(){c=f=!1,s=1},point:function(l,h){var d,p=[l,h],v=n(l,h),g=a?v?0:r(l,h):v?r(l+(l<0?Gd:-Gd),h):0;if(!i&&(c=f=v)&&t.lineStart(),v!==f&&(!(d=e(i,p))||fi(i,d)||fi(p,d))&&(p[0]+=Hd,p[1]+=Hd,v=n(p[0],p[1])),v!==f)s=0,v?(t.lineStart(),d=e(p,i),t.point(d[0],d[1])):(d=e(i,p),t.point(d[0],d[1]),t.lineEnd()),i=d;else if(u&&i&&a^v){var y;g&o||!(y=e(p,i,!0))||(s=0,a?(t.lineStart(),t.point(y[0][0],y[0][1]),t.point(y[1][0],y[1][1]),t.lineEnd()):(t.point(y[1][0],y[1][1]),t.lineEnd(),t.lineStart(),t.point(y[0][0],y[0][1])))}!v||i&&fi(i,p)||t.point(p[0],p[1]),i=p,f=v,o=g},lineEnd:function(){f&&t.lineEnd(),i=null},clean:function(){return s|(c&&f)<<1}}},function(n,e,r,i){oi(i,t,o,r,n,e)},a?[0,-t]:[-Gd,t-Gd])}function yi(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,u,c){var s=0,l=0;if(null==i||(s=a(i,u))!==(l=a(o,u))||f(i,o)<0^u>0)do{c.point(0===s||3===s?t:e,s>1?r:n)}while((s=(s+u+4)%4)!==l);else c.point(o[0],o[1])}function a(r,i){return Jd(r[0]-t)<Hd?i>0?0:3:Jd(r[0]-e)<Hd?i>0?2:1:Jd(r[1]-n)<Hd?i>0?1:0:i>0?3:2}function u(t,n){return f(t.x,n.x)}function f(t,n){var e=a(t,1),r=a(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(a){function f(t,n){i(t,n)&&w.point(t,n)}function c(o,a){var u=i(o,a);if(l&&h.push([o,a]),m)d=o,p=a,v=u,m=!1,u&&(w.lineStart(),w.point(o,a));else if(u&&b)w.point(o,a);else{var f=[g=Math.max(zp,Math.min(Pp,g)),_=Math.max(zp,Math.min(Pp,_))],c=[o=Math.max(zp,Math.min(Pp,o)),a=Math.max(zp,Math.min(Pp,a))];!function(t,n,e,r,i,o){var a,u=t[0],f=t[1],c=0,s=1,l=n[0]-u,h=n[1]-f;if(a=e-u,l||!(a>0)){if(a/=l,l<0){if(a<c)return;a<s&&(s=a)}else if(l>0){if(a>s)return;a>c&&(c=a)}if(a=i-u,l||!(a<0)){if(a/=l,l<0){if(a>s)return;a>c&&(c=a)}else if(l>0){if(a<c)return;a<s&&(s=a)}if(a=r-f,h||!(a>0)){if(a/=h,h<0){if(a<c)return;a<s&&(s=a)}else if(h>0){if(a>s)return;a>c&&(c=a)}if(a=o-f,h||!(a<0)){if(a/=h,h<0){if(a>s)return;a>c&&(c=a)}else if(h>0){if(a<c)return;a<s&&(s=a)}return c>0&&(t[0]=u+c*l,t[1]=f+c*h),s<1&&(n[0]=u+s*l,n[1]=f+s*h),!0}}}}}(f,c,t,n,e,r)?u&&(w.lineStart(),w.point(o,a),x=!1):(b||(w.lineStart(),w.point(f[0],f[1])),w.point(c[0],c[1]),u||w.lineEnd(),x=!1)}g=o,_=a,b=u}var s,l,h,d,p,v,g,_,b,m,x,w=a,M=ui(),A={point:f,lineStart:function(){A.point=c,l&&l.push(h=[]),m=!0,b=!1,g=_=NaN},lineEnd:function(){s&&(c(d,p),v&&b&&M.rejoin(),s.push(M.result())),A.point=f,b&&w.lineEnd()},polygonStart:function(){w=M,s=[],l=[],x=!0},polygonEnd:function(){var n=function(){for(var n=0,e=0,i=l.length;e<i;++e)for(var o,a,u=l[e],f=1,c=u.length,s=u[0],h=s[0],d=s[1];f<c;++f)o=h,a=d,h=(s=u[f])[0],d=s[1],a<=r?d>r&&(h-o)*(r-a)>(d-a)*(t-o)&&++n:d<=r&&(h-o)*(r-a)<(d-a)*(t-o)&&--n;return n}(),e=x&&n,i=(s=y(s)).length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),i&&si(s,u,n,o,a),a.polygonEnd()),w=a,s=l=h=null}};return A}}function _i(){Lp.point=Lp.lineEnd=vr}function bi(t,n){_p=t*=Qd,bp=ap(n*=Qd),mp=np(n),Lp.point=mi}function mi(t,n){t*=Qd;var e=ap(n*=Qd),r=np(n),i=Jd(t-_p),o=np(i),a=r*ap(i),u=mp*e-bp*r*o,f=bp*e+mp*r*o;Rp.add(tp(fp(a*a+u*u),f)),_p=t,bp=e,mp=r}function xi(t){return Rp.reset(),br(t,Lp),+Rp}function wi(t,n){return Dp[0]=t,Dp[1]=n,xi(Up)}function Mi(t,n){return!(!t||!Op.hasOwnProperty(t.type))&&Op[t.type](t,n)}function Ai(t,n){return 0===wi(t,n)}function Ti(t,n){var e=wi(t[0],t[1]);return wi(t[0],n)+wi(n,t[1])<=e+Hd}function Ni(t,n){return!!hi(t.map(Si),Ei(n))}function Si(t){return(t=t.map(Ei)).pop(),t}function Ei(t){return[t[0]*Qd,t[1]*Qd]}function ki(t,n,e){var r=s(t,n-Hd,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function Ci(t,n,e){var r=s(t,n-Hd,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function Pi(){function t(){return{type:"MultiLineString",coordinates:n()}}function n(){return s(ep(o/y)*y,i,y).map(d).concat(s(ep(c/_)*_,f,_).map(p)).concat(s(ep(r/v)*v,e,v).filter(function(t){return Jd(t%y)>Hd}).map(l)).concat(s(ep(u/g)*g,a,g).filter(function(t){return Jd(t%_)>Hd}).map(h))}var e,r,i,o,a,u,f,c,l,h,d,p,v=10,g=v,y=90,_=360,b=2.5;return t.lines=function(){return n().map(function(t){return{type:"LineString",coordinates:t}})},t.outline=function(){return{type:"Polygon",coordinates:[d(o).concat(p(f).slice(1),d(i).reverse().slice(1),p(c).reverse().slice(1))]}},t.extent=function(n){return arguments.length?t.extentMajor(n).extentMinor(n):t.extentMinor()},t.extentMajor=function(n){return arguments.length?(o=+n[0][0],i=+n[1][0],c=+n[0][1],f=+n[1][1],o>i&&(n=o,o=i,i=n),c>f&&(n=c,c=f,f=n),t.precision(b)):[[o,c],[i,f]]},t.extentMinor=function(n){return arguments.length?(r=+n[0][0],e=+n[1][0],u=+n[0][1],a=+n[1][1],r>e&&(n=r,r=e,e=n),u>a&&(n=u,u=a,a=n),t.precision(b)):[[r,u],[e,a]]},t.step=function(n){return arguments.length?t.stepMajor(n).stepMinor(n):t.stepMinor()},t.stepMajor=function(n){return arguments.length?(y=+n[0],_=+n[1],t):[y,_]},t.stepMinor=function(n){return arguments.length?(v=+n[0],g=+n[1],t):[v,g]},t.precision=function(n){return arguments.length?(b=+n,l=ki(u,a,90),h=Ci(r,e,b),d=ki(c,f,90),p=Ci(o,i,b),t):b},t.extentMajor([[-180,-90+Hd],[180,90-Hd]]).extentMinor([[-180,-80-Hd],[180,80+Hd]])}function zi(t){return t}function Ri(){Fp.point=Li}function Li(t,n){Fp.point=Di,xp=Mp=t,wp=Ap=n}function Di(t,n){Bp.add(Ap*t-Mp*n),Mp=t,Ap=n}function Ui(){Di(xp,wp)}function qi(t,n){Vp+=t,$p+=n,++Wp}function Oi(){ev.point=Yi}function Yi(t,n){ev.point=Bi,qi(Sp=t,Ep=n)}function Bi(t,n){var e=t-Sp,r=n-Ep,i=fp(e*e+r*r);Zp+=i*(Sp+t)/2,Qp+=i*(Ep+n)/2,Jp+=i,qi(Sp=t,Ep=n)}function Fi(){ev.point=qi}function Ii(){ev.point=Hi}function ji(){Xi(Tp,Np)}function Hi(t,n){ev.point=Xi,qi(Tp=Sp=t,Np=Ep=n)}function Xi(t,n){var e=t-Sp,r=n-Ep,i=fp(e*e+r*r);Zp+=i*(Sp+t)/2,Qp+=i*(Ep+n)/2,Jp+=i,Kp+=(i=Ep*t-Sp*n)*(Sp+t),tv+=i*(Ep+n),nv+=3*i,qi(Sp=t,Ep=n)}function Gi(t){this._context=t}function Vi(t,n){cv.point=$i,iv=av=t,ov=uv=n}function $i(t,n){av-=t,uv-=n,fv.add(fp(av*av+uv*uv)),av=t,uv=n}function Wi(){this._string=[]}function Zi(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function Qi(t){return function(n){var e=new Ji;for(var r in t)e[r]=t[r];return e.stream=n,e}}function Ji(){}function Ki(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),br(e,t.stream(Gp)),n(Gp.result()),null!=r&&t.clipExtent(r),t}function to(t,n,e){return Ki(t,function(e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=Math.min(r/(e[1][0]-e[0][0]),i/(e[1][1]-e[0][1])),a=+n[0][0]+(r-o*(e[1][0]+e[0][0]))/2,u=+n[0][1]+(i-o*(e[1][1]+e[0][1]))/2;t.scale(150*o).translate([a,u])},e)}function no(t,n,e){return to(t,[[0,0],n],e)}function eo(t,n,e){return Ki(t,function(e){var r=+n,i=r/(e[1][0]-e[0][0]),o=(r-i*(e[1][0]+e[0][0]))/2,a=-i*e[0][1];t.scale(150*i).translate([o,a])},e)}function ro(t,n,e){return Ki(t,function(e){var r=+n,i=r/(e[1][1]-e[0][1]),o=-i*e[0][0],a=(r-i*(e[1][1]+e[0][1]))/2;t.scale(150*i).translate([o,a])},e)}function io(t,n){return+n?function(t,n){function e(r,i,o,a,u,f,c,s,l,h,d,p,v,g){var y=c-r,_=s-i,b=y*y+_*_;if(b>4*n&&v--){var m=a+h,x=u+d,w=f+p,M=fp(m*m+x*x+w*w),A=dr(w/=M),T=Jd(Jd(w)-1)<Hd||Jd(o-l)<Hd?(o+l)/2:tp(x,m),N=t(T,A),S=N[0],E=N[1],k=S-r,C=E-i,P=_*k-y*C;(P*P/b>n||Jd((y*k+_*C)/b-.5)>.3||a*h+u*d+f*p<lv)&&(e(r,i,o,a,u,f,S,E,T,m/=M,x/=M,w,v,g),g.point(S,E),e(S,E,T,m,x,w,c,s,l,h,d,p,v,g))}}return function(n){function r(e,r){e=t(e,r),n.point(e[0],e[1])}function i(){y=NaN,w.point=o,n.lineStart()}function o(r,i){var o=Tr([r,i]),a=t(r,i);e(y,_,g,b,m,x,y=a[0],_=a[1],g=r,b=o[0],m=o[1],x=o[2],sv,n),n.point(y,_)}function a(){w.point=r,n.lineEnd()}function u(){i(),w.point=f,w.lineEnd=c}function f(t,n){o(s=t,n),l=y,h=_,d=b,p=m,v=x,w.point=o}function c(){e(y,_,g,b,m,x,l,h,s,d,p,v,sv,n),w.lineEnd=a,a()}var s,l,h,d,p,v,g,y,_,b,m,x,w={point:r,lineStart:i,lineEnd:a,polygonStart:function(){n.polygonStart(),w.lineStart=u},polygonEnd:function(){n.polygonEnd(),w.lineStart=i}};return w}}(t,n):function(t){return Qi({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}(t)}function oo(t,n,e,r){function i(t,r){return[u*t-f*r+n,e-f*t-u*r]}var o=np(r),a=ap(r),u=o*t,f=a*t,c=o/t,s=a/t,l=(a*e-o*n)/t,h=(a*n+o*e)/t;return i.invert=function(t,n){return[c*t-s*n+l,h-s*t-c*n]},i}function ao(t){return uo(function(){return t})()}function uo(t){function n(t){return l(t[0]*Qd,t[1]*Qd)}function e(){var t=oo(p,0,0,w).apply(null,i(y,_)),n=(w?oo:function(t,n,e){function r(r,i){return[n+t*r,e-t*i]}return r.invert=function(r,i){return[(r-n)/t,(e-i)/t]},r})(p,v-t[0],g-t[1],w);return o=ti(b,m,x),s=Jr(i,n),l=Jr(o,s),c=io(s,S),r()}function r(){return h=d=null,n}var i,o,a,u,f,c,s,l,h,d,p=150,v=480,g=250,y=0,_=0,b=0,m=0,x=0,w=0,M=null,A=Cp,T=null,N=zi,S=.5;return n.stream=function(t){return h&&d===t?h:h=hv(function(t){return Qi({point:function(n,e){var r=t(n,e);return this.stream.point(r[0],r[1])}})}(o)(A(c(N(d=t)))))},n.preclip=function(t){return arguments.length?(A=t,M=void 0,r()):A},n.postclip=function(t){return arguments.length?(N=t,T=a=u=f=null,r()):N},n.clipAngle=function(t){return arguments.length?(A=+t?gi(M=t*Qd):(M=null,Cp),r()):M*Zd},n.clipExtent=function(t){return arguments.length?(N=null==t?(T=a=u=f=null,zi):yi(T=+t[0][0],a=+t[0][1],u=+t[1][0],f=+t[1][1]),r()):null==T?null:[[T,a],[u,f]]},n.scale=function(t){return arguments.length?(p=+t,e()):p},n.translate=function(t){return arguments.length?(v=+t[0],g=+t[1],e()):[v,g]},n.center=function(t){return arguments.length?(y=t[0]%360*Qd,_=t[1]%360*Qd,e()):[y*Zd,_*Zd]},n.rotate=function(t){return arguments.length?(b=t[0]%360*Qd,m=t[1]%360*Qd,x=t.length>2?t[2]%360*Qd:0,e()):[b*Zd,m*Zd,x*Zd]},n.angle=function(t){return arguments.length?(w=t%360*Qd,e()):w*Zd},n.precision=function(t){return arguments.length?(c=io(s,S=t*t),r()):fp(S)},n.fitExtent=function(t,e){return to(n,t,e)},n.fitSize=function(t,e){return no(n,t,e)},n.fitWidth=function(t,e){return eo(n,t,e)},n.fitHeight=function(t,e){return ro(n,t,e)},function(){return i=t.apply(this,arguments),n.invert=i.invert&&function(t){return(t=l.invert(t[0],t[1]))&&[t[0]*Zd,t[1]*Zd]},e()}}function fo(t){var n=0,e=Gd/3,r=uo(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*Qd,e=t[1]*Qd):[n*Zd,e*Zd]},i}function co(t,n){function e(t,n){var e=fp(o-2*i*ap(n))/i;return[e*ap(t*=i),a-e*np(t)]}var r=ap(t),i=(r+ap(n))/2;if(Jd(i)<Hd)return function(t){function n(t,n){return[t*e,ap(n)/e]}var e=np(t);return n.invert=function(t,n){return[t/e,dr(n*e)]},n}(t);var o=1+r*(2*i-r),a=fp(o)/i;return e.invert=function(t,n){var e=a-n;return[tp(t,Jd(e))/i*up(e),dr((o-(t*t+e*e)*i*i)/(2*i))]},e}function so(){return fo(co).scale(155.424).center([0,33.6442])}function lo(){return so().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function ho(t){return function(n,e){var r=np(n),i=np(e),o=t(r*i);return[o*i*ap(n),o*ap(e)]}}function po(t){return function(n,e){var r=fp(n*n+e*e),i=t(r),o=ap(i),a=np(i);return[tp(n*o,r*a),dr(r&&e*o/r)]}}function vo(t,n){return[t,ip(cp((Vd+n)/2))]}function go(t){function n(){var n=Gd*u(),a=o(ii(o.rotate()).invert([0,0]));return c(null==s?[[a[0]-n,a[1]-n],[a[0]+n,a[1]+n]]:t===vo?[[Math.max(a[0]-n,s),e],[Math.min(a[0]+n,r),i]]:[[s,Math.max(a[1]-n,e)],[r,Math.min(a[1]+n,i)]])}var e,r,i,o=ao(t),a=o.center,u=o.scale,f=o.translate,c=o.clipExtent,s=null;return o.scale=function(t){return arguments.length?(u(t),n()):u()},o.translate=function(t){return arguments.length?(f(t),n()):f()},o.center=function(t){return arguments.length?(a(t),n()):a()},o.clipExtent=function(t){return arguments.length?(null==t?s=e=r=i=null:(s=+t[0][0],e=+t[0][1],r=+t[1][0],i=+t[1][1]),n()):null==s?null:[[s,e],[r,i]]},n()}function yo(t){return cp((Vd+t)/2)}function _o(t,n){function e(t,n){o>0?n<-Vd+Hd&&(n=-Vd+Hd):n>Vd-Hd&&(n=Vd-Hd);var e=o/op(yo(n),i);return[e*ap(i*t),o-e*np(i*t)]}var r=np(t),i=t===n?ap(t):ip(r/np(n))/ip(yo(n)/yo(t)),o=r*op(yo(t),i)/i;return i?(e.invert=function(t,n){var e=o-n,r=up(i)*fp(t*t+e*e);return[tp(t,Jd(e))/i*up(e),2*Kd(op(o/r,1/i))-Vd]},e):vo}function bo(t,n){return[t,n]}function mo(t,n){function e(t,n){var e=o-n,r=i*t;return[e*ap(r),o-e*np(r)]}var r=np(t),i=t===n?ap(t):(r-np(n))/(n-t),o=r/i+t;return Jd(i)<Hd?bo:(e.invert=function(t,n){var e=o-n;return[tp(t,Jd(e))/i*up(e),o-up(i)*fp(t*t+e*e)]},e)}function xo(t,n){var e=np(n),r=np(t)*e;return[e*ap(t)/r,ap(n)/r]}function wo(t,n,e,r){return 1===t&&1===n&&0===e&&0===r?zi:Qi({point:function(i,o){this.stream.point(i*t+e,o*n+r)}})}function Mo(t,n){var e=n*n,r=e*e;return[t*(.8707-.131979*e+r*(r*(.003971*e-.001529*r)-.013791)),n*(1.007226+e*(.015085+r*(.028874*e-.044475-.005916*r)))]}function Ao(t,n){return[np(n)*ap(t),ap(n)]}function To(t,n){var e=np(n),r=1+np(t)*e;return[e*ap(t)/r,ap(n)/r]}function No(t,n){return[ip(cp((Vd+n)/2)),-t]}function So(t,n){return t.parent===n.parent?1:2}function Eo(t,n){return t+n.x}function ko(t,n){return Math.max(t,n.y)}function Co(t){var n=0,e=t.children,r=e&&e.length;if(r)for(;--r>=0;)n+=e[r].value;else n=1;t.value=n}function Po(t,n){var e,r,i,o,a,u=new Do(t),f=+t.value&&(u.value=t.value),c=[u];for(null==n&&(n=zo);e=c.pop();)if(f&&(e.value=+e.data.value),(i=n(e.data))&&(a=i.length))for(e.children=new Array(a),o=a-1;o>=0;--o)c.push(r=e.children[o]=new Do(i[o])),r.parent=e,r.depth=e.depth+1;return u.eachBefore(Lo)}function zo(t){return t.children}function Ro(t){t.data=t.data.data}function Lo(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function Do(t){this.data=t,this.depth=this.height=0,this.parent=null}function Uo(t){for(var n,e,r=0,i=(t=function(t){for(var n,e,r=t.length;r;)e=Math.random()*r--|0,n=t[r],t[r]=t[e],t[e]=n;return t}(vv.call(t))).length,o=[];r<i;)n=t[r],e&&Oo(e,n)?++r:(e=function(t){switch(t.length){case 1:return function(t){return{x:t.x,y:t.y,r:t.r}}(t[0]);case 2:return Bo(t[0],t[1]);case 3:return Fo(t[0],t[1],t[2])}}(o=function(t,n){var e,r;if(Yo(n,t))return[n];for(e=0;e<t.length;++e)if(qo(n,t[e])&&Yo(Bo(t[e],n),t))return[t[e],n];for(e=0;e<t.length-1;++e)for(r=e+1;r<t.length;++r)if(qo(Bo(t[e],t[r]),n)&&qo(Bo(t[e],n),t[r])&&qo(Bo(t[r],n),t[e])&&Yo(Fo(t[e],t[r],n),t))return[t[e],t[r],n];throw new Error}(o,n)),r=0);return e}function qo(t,n){var e=t.r-n.r,r=n.x-t.x,i=n.y-t.y;return e<0||e*e<r*r+i*i}function Oo(t,n){var e=t.r-n.r+1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function Yo(t,n){for(var e=0;e<n.length;++e)if(!Oo(t,n[e]))return!1;return!0}function Bo(t,n){var e=t.x,r=t.y,i=t.r,o=n.x,a=n.y,u=n.r,f=o-e,c=a-r,s=u-i,l=Math.sqrt(f*f+c*c);return{x:(e+o+f/l*s)/2,y:(r+a+c/l*s)/2,r:(l+i+u)/2}}function Fo(t,n,e){var r=t.x,i=t.y,o=t.r,a=n.x,u=n.y,f=n.r,c=e.x,s=e.y,l=e.r,h=r-a,d=r-c,p=i-u,v=i-s,g=f-o,y=l-o,_=r*r+i*i-o*o,b=_-a*a-u*u+f*f,m=_-c*c-s*s+l*l,x=d*p-h*v,w=(p*m-v*b)/(2*x)-r,M=(v*g-p*y)/x,A=(d*b-h*m)/(2*x)-i,T=(h*y-d*g)/x,N=M*M+T*T-1,S=2*(o+w*M+A*T),E=w*w+A*A-o*o,k=-(N?(S+Math.sqrt(S*S-4*N*E))/(2*N):E/S);return{x:r+w+M*k,y:i+A+T*k,r:k}}function Io(t,n,e){var r,i,o,a,u=t.x-n.x,f=t.y-n.y,c=u*u+f*f;c?(i=n.r+e.r,i*=i,a=t.r+e.r,i>(a*=a)?(r=(c+a-i)/(2*c),o=Math.sqrt(Math.max(0,a/c-r*r)),e.x=t.x-r*u-o*f,e.y=t.y-r*f+o*u):(r=(c+i-a)/(2*c),o=Math.sqrt(Math.max(0,i/c-r*r)),e.x=n.x+r*u-o*f,e.y=n.y+r*f+o*u)):(e.x=n.x+e.r,e.y=n.y)}function jo(t,n){var e=t.r+n.r-1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function Ho(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,o=(n.y*e.r+e.y*n.r)/r;return i*i+o*o}function Xo(t){this._=t,this.next=null,this.previous=null}function Go(t){if(!(i=t.length))return 0;var n,e,r,i,o,a,u,f,c,s,l;if(n=t[0],n.x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;Io(e,n,r=t[2]),n=new Xo(n),e=new Xo(e),r=new Xo(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(u=3;u<i;++u){Io(n._,e._,r=t[u]),r=new Xo(r),f=e.next,c=n.previous,s=e._.r,l=n._.r;do{if(s<=l){if(jo(f._,r._)){e=f,n.next=e,e.previous=n,--u;continue t}s+=f._.r,f=f.next}else{if(jo(c._,r._)){(n=c).next=e,e.previous=n,--u;continue t}l+=c._.r,c=c.previous}}while(f!==c.next);for(r.previous=n,r.next=e,n.next=e.previous=e=r,o=Ho(n);(r=r.next)!==e;)(a=Ho(r))<o&&(n=r,o=a);e=n.next}for(n=[e._],r=e;(r=r.next)!==e;)n.push(r._);for(r=Uo(n),u=0;u<i;++u)n=t[u],n.x-=r.x,n.y-=r.y;return r.r}function Vo(t){if("function"!=typeof t)throw new Error;return t}function $o(){return 0}function Wo(t){return function(){return t}}function Zo(t){return Math.sqrt(t.value)}function Qo(t){return function(n){n.children||(n.r=Math.max(0,+t(n)||0))}}function Jo(t,n){return function(e){if(r=e.children){var r,i,o,a=r.length,u=t(e)*n||0;if(u)for(i=0;i<a;++i)r[i].r+=u;if(o=Go(r),u)for(i=0;i<a;++i)r[i].r-=u;e.r=o+u}}}function Ko(t){return function(n){var e=n.parent;n.r*=t,e&&(n.x=e.x+t*n.x,n.y=e.y+t*n.y)}}function ta(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function na(t,n,e,r,i){for(var o,a=t.children,u=-1,f=a.length,c=t.value&&(r-n)/t.value;++u<f;)(o=a[u]).y0=e,o.y1=i,o.x0=n,o.x1=n+=o.value*c}function ea(t){return t.id}function ra(t){return t.parentId}function ia(t,n){return t.parent===n.parent?1:2}function oa(t){var n=t.children;return n?n[0]:t.t}function aa(t){var n=t.children;return n?n[n.length-1]:t.t}function ua(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function fa(t,n,e){return t.a.parent===n.parent?t.a:e}function ca(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}function sa(t,n,e,r,i){for(var o,a=t.children,u=-1,f=a.length,c=t.value&&(i-e)/t.value;++u<f;)(o=a[u]).x0=n,o.x1=r,o.y0=e,o.y1=e+=o.value*c}function la(t,n,e,r,i,o){for(var a,u,f,c,s,l,h,d,p,v,g,y=[],_=n.children,b=0,m=0,x=_.length,w=n.value;b<x;){f=i-e,c=o-r;do{s=_[m++].value}while(!s&&m<x);for(l=h=s,g=s*s*(v=Math.max(c/f,f/c)/(w*t)),p=Math.max(h/g,g/l);m<x;++m){if(s+=u=_[m].value,u<l&&(l=u),u>h&&(h=u),g=s*s*v,(d=Math.max(h/g,g/l))>p){s-=u;break}p=d}y.push(a={value:s,dice:f<c,children:_.slice(b,m)}),a.dice?na(a,e,r,i,w?r+=c*s/w:o):sa(a,e,r,w?e+=f*s/w:i,o),w-=s,b=m}return y}function ha(t,n,e){return(n[0]-t[0])*(e[1]-t[1])-(n[1]-t[1])*(e[0]-t[0])}function da(t,n){return t[0]-n[0]||t[1]-n[1]}function pa(t){for(var n=t.length,e=[0,1],r=2,i=2;i<n;++i){for(;r>1&&ha(t[e[r-2]],t[e[r-1]],t[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function va(){return Math.random()}function ga(t){function n(n){var o=n+"",a=e.get(o);if(!a){if(i!==Pv)return i;e.set(o,a=r.push(n))}return t[(a-1)%t.length]}var e=he(),r=[],i=Pv;return t=null==t?[]:Cv.call(t),n.domain=function(t){if(!arguments.length)return r.slice();r=[],e=he();for(var i,o,a=-1,u=t.length;++a<u;)e.has(o=(i=t[a])+"")||e.set(o,r.push(i));return n},n.range=function(e){return arguments.length?(t=Cv.call(e),n):t.slice()},n.unknown=function(t){return arguments.length?(i=t,n):i},n.copy=function(){return ga().domain(r).range(t).unknown(i)},n}function ya(){function t(){var t=i().length,r=a[1]<a[0],h=a[r-0],d=a[1-r];n=(d-h)/Math.max(1,t-f+2*c),u&&(n=Math.floor(n)),h+=(d-h-n*(t-f))*l,e=n*(1-f),u&&(h=Math.round(h),e=Math.round(e));var p=s(t).map(function(t){return h+n*t});return o(r?p.reverse():p)}var n,e,r=ga().unknown(void 0),i=r.domain,o=r.range,a=[0,1],u=!1,f=0,c=0,l=.5;return delete r.unknown,r.domain=function(n){return arguments.length?(i(n),t()):i()},r.range=function(n){return arguments.length?(a=[+n[0],+n[1]],t()):a.slice()},r.rangeRound=function(n){return a=[+n[0],+n[1]],u=!0,t()},r.bandwidth=function(){return e},r.step=function(){return n},r.round=function(n){return arguments.length?(u=!!n,t()):u},r.padding=function(n){return arguments.length?(f=c=Math.max(0,Math.min(1,n)),t()):f},r.paddingInner=function(n){return arguments.length?(f=Math.max(0,Math.min(1,n)),t()):f},r.paddingOuter=function(n){return arguments.length?(c=Math.max(0,Math.min(1,n)),t()):c},r.align=function(n){return arguments.length?(l=Math.max(0,Math.min(1,n)),t()):l},r.copy=function(){return ya().domain(i()).range(a).round(u).paddingInner(f).paddingOuter(c).align(l)},t()}function _a(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return _a(n())},t}function ba(t){return function(){return t}}function ma(t){return+t}function xa(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:ba(n)}function wa(t,n,e,r){var i=t[0],o=t[1],a=n[0],u=n[1];return o<i?(i=e(o,i),a=r(u,a)):(i=e(i,o),a=r(a,u)),function(t){return a(i(t))}}function Ma(t,n,e,r){var i=Math.min(t.length,n.length)-1,o=new Array(i),a=new Array(i),u=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++u<i;)o[u]=e(t[u],t[u+1]),a[u]=r(n[u],n[u+1]);return function(n){var e=Kc(t,n,1,i)-1;return a[e](o[e](n))}}function Aa(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp())}function Ta(t,n){function e(){return i=Math.min(u.length,f.length)>2?Ma:wa,o=a=null,r}function r(n){return(o||(o=i(u,f,s?function(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=n?0:t>=e?1:r(t)}}}(t):t,c)))(+n)}var i,o,a,u=zv,f=zv,c=dn,s=!1;return r.invert=function(t){return(a||(a=i(f,u,xa,s?function(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=0?n:t>=1?e:r(t)}}}(n):n)))(+t)},r.domain=function(t){return arguments.length?(u=kv.call(t,ma),e()):u.slice()},r.range=function(t){return arguments.length?(f=Cv.call(t),e()):f.slice()},r.rangeRound=function(t){return f=Cv.call(t),c=pn,e()},r.clamp=function(t){return arguments.length?(s=!!t,e()):s},r.interpolate=function(t){return arguments.length?(c=t,e()):c},e()}function Na(n){var e=n.domain;return n.ticks=function(t){var n=e();return l(n[0],n[n.length-1],null==t?10:t)},n.tickFormat=function(n,r){return function(n,e,r){var i,o=n[0],a=n[n.length-1],u=d(o,a,null==e?10:e);switch((r=tr(null==r?",f":r)).type){case"s":var f=Math.max(Math.abs(o),Math.abs(a));return null!=r.precision||isNaN(i=ur(u,f))||(r.precision=i),t.formatPrefix(r,f);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=fr(u,Math.max(Math.abs(o),Math.abs(a))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=ar(u))||(r.precision=i-2*("%"===r.type))}return t.format(r)}(e(),n,r)},n.nice=function(t){null==t&&(t=10);var r,i=e(),o=0,a=i.length-1,u=i[o],f=i[a];return f<u&&(r=u,u=f,f=r,r=o,o=a,a=r),(r=h(u,f,t))>0?r=h(u=Math.floor(u/r)*r,f=Math.ceil(f/r)*r,t):r<0&&(r=h(u=Math.ceil(u*r)/r,f=Math.floor(f*r)/r,t)),r>0?(i[o]=Math.floor(u/r)*r,i[a]=Math.ceil(f/r)*r,e(i)):r<0&&(i[o]=Math.ceil(u*r)/r,i[a]=Math.floor(f*r)/r,e(i)),n},n}function Sa(){var t=Ta(xa,sn);return t.copy=function(){return Aa(t,Sa())},Na(t)}function Ea(){function t(t){return+t}var n=[0,1];return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=kv.call(e,ma),t):n.slice()},t.copy=function(){return Ea().domain(n)},Na(t)}function ka(t,n){var e,r=0,i=(t=t.slice()).length-1,o=t[r],a=t[i];return a<o&&(e=r,r=i,i=e,e=o,o=a,a=e),t[r]=n.floor(o),t[i]=n.ceil(a),t}function Ca(t,n){return(n=Math.log(n/t))?function(e){return Math.log(e/t)/n}:ba(n)}function Pa(t,n){return t<0?function(e){return-Math.pow(-n,e)*Math.pow(-t,1-e)}:function(e){return Math.pow(n,e)*Math.pow(t,1-e)}}function za(t){return isFinite(t)?+("1e"+t):t<0?0:t}function Ra(t){return 10===t?za:t===Math.E?Math.exp:function(n){return Math.pow(t,n)}}function La(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(n){return Math.log(n)/t})}function Da(t){return function(n){return-t(-n)}}function Ua(){function n(){return o=La(i),a=Ra(i),r()[0]<0&&(o=Da(o),a=Da(a)),e}var e=Ta(Ca,Pa).domain([1,10]),r=e.domain,i=10,o=La(10),a=Ra(10);return e.base=function(t){return arguments.length?(i=+t,n()):i},e.domain=function(t){return arguments.length?(r(t),n()):r()},e.ticks=function(t){var n,e=r(),u=e[0],f=e[e.length-1];(n=f<u)&&(d=u,u=f,f=d);var c,s,h,d=o(u),p=o(f),v=null==t?10:+t,g=[];if(!(i%1)&&p-d<v){if(d=Math.round(d)-1,p=Math.round(p)+1,u>0){for(;d<p;++d)for(s=1,c=a(d);s<i;++s)if(!((h=c*s)<u)){if(h>f)break;g.push(h)}}else for(;d<p;++d)for(s=i-1,c=a(d);s>=1;--s)if(!((h=c*s)<u)){if(h>f)break;g.push(h)}}else g=l(d,p,Math.min(p-d,v)).map(a);return n?g.reverse():g},e.tickFormat=function(n,r){if(null==r&&(r=10===i?".0e":","),"function"!=typeof r&&(r=t.format(r)),n===1/0)return r;null==n&&(n=10);var u=Math.max(1,i*n/e.ticks().length);return function(t){var n=t/a(Math.round(o(t)));return n*i<i-.5&&(n*=i),n<=u?r(t):""}},e.nice=function(){return r(ka(r(),{floor:function(t){return a(Math.floor(o(t)))},ceil:function(t){return a(Math.ceil(o(t)))}}))},e.copy=function(){return Aa(e,Ua().base(i))},e}function qa(t,n){return t<0?-Math.pow(-t,n):Math.pow(t,n)}function Oa(){var t=1,n=Ta(function(n,e){return(e=qa(e,t)-(n=qa(n,t)))?function(r){return(qa(r,t)-n)/e}:ba(e)},function(n,e){return e=qa(e,t)-(n=qa(n,t)),function(r){return qa(n+e*r,1/t)}}),e=n.domain;return n.exponent=function(n){return arguments.length?(t=+n,e(e())):t},n.copy=function(){return Aa(n,Oa().exponent(t))},Na(n)}function Ya(){function t(){var t=0,n=Math.max(1,i.length);for(o=new Array(n-1);++t<n;)o[t-1]=v(r,t/n);return e}function e(t){if(!isNaN(t=+t))return i[Kc(o,t)]}var r=[],i=[],o=[];return e.invertExtent=function(t){var n=i.indexOf(t);return n<0?[NaN,NaN]:[n>0?o[n-1]:r[0],n<o.length?o[n]:r[r.length-1]]},e.domain=function(e){if(!arguments.length)return r.slice();r=[];for(var i,o=0,a=e.length;o<a;++o)null==(i=e[o])||isNaN(i=+i)||r.push(i);return r.sort(n),t()},e.range=function(n){return arguments.length?(i=Cv.call(n),t()):i.slice()},e.quantiles=function(){return o.slice()},e.copy=function(){return Ya().domain(r).range(i)},e}function Ba(){function t(t){if(t<=t)return a[Kc(o,t,0,i)]}function n(){var n=-1;for(o=new Array(i);++n<i;)o[n]=((n+1)*r-(n-i)*e)/(i+1);return t}var e=0,r=1,i=1,o=[.5],a=[0,1];return t.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],n()):[e,r]},t.range=function(t){return arguments.length?(i=(a=Cv.call(t)).length-1,n()):a.slice()},t.invertExtent=function(t){var n=a.indexOf(t);return n<0?[NaN,NaN]:n<1?[e,o[0]]:n>=i?[o[i-1],r]:[o[n-1],o[n]]},t.copy=function(){return Ba().domain([e,r]).range(a)},Na(t)}function Fa(){function t(t){if(t<=t)return e[Kc(n,t,0,r)]}var n=[.5],e=[0,1],r=1;return t.domain=function(i){return arguments.length?(n=Cv.call(i),r=Math.min(n.length,e.length-1),t):n.slice()},t.range=function(i){return arguments.length?(e=Cv.call(i),r=Math.min(n.length,e.length-1),t):e.slice()},t.invertExtent=function(t){var r=e.indexOf(t);return[n[r-1],n[r]]},t.copy=function(){return Fa().domain(n).range(e)},t}function Ia(t,n,e,r){function i(n){return t(n=new Date(+n)),n}return i.floor=i,i.ceil=function(e){return t(e=new Date(e-1)),n(e,1),t(e),e},i.round=function(t){var n=i(t),e=i.ceil(t);return t-n<e-t?n:e},i.offset=function(t,e){return n(t=new Date(+t),null==e?1:Math.floor(e)),t},i.range=function(e,r,o){var a,u=[];if(e=i.ceil(e),o=null==o?1:Math.floor(o),!(e<r&&o>0))return u;do{u.push(a=new Date(+e)),n(e,o),t(e)}while(a<e&&e<r);return u},i.filter=function(e){return Ia(function(n){if(n>=n)for(;t(n),!e(n);)n.setTime(n-1)},function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;n(t,-1),!e(t););else for(;--r>=0;)for(;n(t,1),!e(t););})},e&&(i.count=function(n,r){return Rv.setTime(+n),Lv.setTime(+r),t(Rv),t(Lv),Math.floor(e(Rv,Lv))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t==0}:function(n){return i.count(0,n)%t==0}):i:null}),i}function ja(t){return Ia(function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+7*n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*qv)/Ov})}function Ha(t){return Ia(function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+7*n)},function(t,n){return(n-t)/Ov})}function Xa(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Ga(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Va(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function $a(t){function n(t,n){return function(e){var r,i,o,a=[],u=-1,f=0,c=t.length;for(e instanceof Date||(e=new Date(+e));++u<c;)37===t.charCodeAt(u)&&(a.push(t.slice(f,u)),null!=(i=Ug[r=t.charAt(++u)])?r=t.charAt(++u):i="e"===r?" ":"0",(o=n[r])&&(r=o(e,i)),a.push(r),f=u+1);return a.push(t.slice(f,u)),a.join("")}}function e(t,n){return function(e){var i,o,a=Va(1900);if(r(a,t,e+="",0)!=e.length)return null;if("Q"in a)return new Date(a.Q);if("p"in a&&(a.H=a.H%12+12*a.p),"V"in a){if(a.V<1||a.V>53)return null;"w"in a||(a.w=1),"Z"in a?(i=(o=(i=Ga(Va(a.y))).getUTCDay())>4||0===o?_g.ceil(i):_g(i),i=vg.offset(i,7*(a.V-1)),a.y=i.getUTCFullYear(),a.m=i.getUTCMonth(),a.d=i.getUTCDate()+(a.w+6)%7):(i=(o=(i=n(Va(a.y))).getDay())>4||0===o?$v.ceil(i):$v(i),i=Xv.offset(i,7*(a.V-1)),a.y=i.getFullYear(),a.m=i.getMonth(),a.d=i.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&("w"in a||(a.w="u"in a?a.u%7:"W"in a?1:0),o="Z"in a?Ga(Va(a.y)).getUTCDay():n(Va(a.y)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(o+5)%7:a.w+7*a.U-(o+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,Ga(a)):n(a)}}function r(t,n,e,r){for(var i,o,a=0,u=n.length,f=e.length;a<u;){if(r>=f)return-1;if(37===(i=n.charCodeAt(a++))){if(i=n.charAt(a++),!(o=A[i in Ug?n.charAt(a++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}var i=t.dateTime,o=t.date,a=t.time,u=t.periods,f=t.days,c=t.shortDays,s=t.months,l=t.shortMonths,h=Qa(u),d=Ja(u),p=Qa(f),v=Ja(f),g=Qa(c),y=Ja(c),_=Qa(s),b=Ja(s),m=Qa(l),x=Ja(l),w={a:function(t){return c[t.getDay()]},A:function(t){return f[t.getDay()]},b:function(t){return l[t.getMonth()]},B:function(t){return s[t.getMonth()]},c:null,d:_u,e:_u,f:Mu,H:bu,I:mu,j:xu,L:wu,m:Au,M:Tu,p:function(t){return u[+(t.getHours()>=12)]},Q:Ku,s:tf,S:Nu,u:Su,U:Eu,V:ku,w:Cu,W:Pu,x:null,X:null,y:zu,Y:Ru,Z:Lu,"%":Ju},M={a:function(t){return c[t.getUTCDay()]},A:function(t){return f[t.getUTCDay()]},b:function(t){return l[t.getUTCMonth()]},B:function(t){return s[t.getUTCMonth()]},c:null,d:Du,e:Du,f:Bu,H:Uu,I:qu,j:Ou,L:Yu,m:Fu,M:Iu,p:function(t){return u[+(t.getUTCHours()>=12)]},Q:Ku,s:tf,S:ju,u:Hu,U:Xu,V:Gu,w:Vu,W:$u,x:null,X:null,y:Wu,Y:Zu,Z:Qu,"%":Ju},A={a:function(t,n,e){var r=g.exec(n.slice(e));return r?(t.w=y[r[0].toLowerCase()],e+r[0].length):-1},A:function(t,n,e){var r=p.exec(n.slice(e));return r?(t.w=v[r[0].toLowerCase()],e+r[0].length):-1},b:function(t,n,e){var r=m.exec(n.slice(e));return r?(t.m=x[r[0].toLowerCase()],e+r[0].length):-1},B:function(t,n,e){var r=_.exec(n.slice(e));return r?(t.m=b[r[0].toLowerCase()],e+r[0].length):-1},c:function(t,n,e){return r(t,i,n,e)},d:fu,e:fu,f:pu,H:su,I:su,j:cu,L:du,m:uu,M:lu,p:function(t,n,e){var r=h.exec(n.slice(e));return r?(t.p=d[r[0].toLowerCase()],e+r[0].length):-1},Q:gu,s:yu,S:hu,u:tu,U:nu,V:eu,w:Ka,W:ru,x:function(t,n,e){return r(t,o,n,e)},X:function(t,n,e){return r(t,a,n,e)},y:ou,Y:iu,Z:au,"%":vu};return w.x=n(o,w),w.X=n(a,w),w.c=n(i,w),M.x=n(o,M),M.X=n(a,M),M.c=n(i,M),{format:function(t){var e=n(t+="",w);return e.toString=function(){return t},e},parse:function(t){var n=e(t+="",Xa);return n.toString=function(){return t},n},utcFormat:function(t){var e=n(t+="",M);return e.toString=function(){return t},e},utcParse:function(t){var n=e(t,Ga);return n.toString=function(){return t},n}}}function Wa(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<e?new Array(e-o+1).join(n)+i:i)}function Za(t){return t.replace(Yg,"\\$&")}function Qa(t){return new RegExp("^(?:"+t.map(Za).join("|")+")","i")}function Ja(t){for(var n={},e=-1,r=t.length;++e<r;)n[t[e].toLowerCase()]=e;return n}function Ka(t,n,e){var r=qg.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function tu(t,n,e){var r=qg.exec(n.slice(e,e+1));return r?(t.u=+r[0],e+r[0].length):-1}function nu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.U=+r[0],e+r[0].length):-1}function eu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.V=+r[0],e+r[0].length):-1}function ru(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.W=+r[0],e+r[0].length):-1}function iu(t,n,e){var r=qg.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function ou(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function au(t,n,e){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function uu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function fu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function cu(t,n,e){var r=qg.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function su(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function lu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function hu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function du(t,n,e){var r=qg.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function pu(t,n,e){var r=qg.exec(n.slice(e,e+6));return r?(t.L=Math.floor(r[0]/1e3),e+r[0].length):-1}function vu(t,n,e){var r=Og.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function gu(t,n,e){var r=qg.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].length):-1}function yu(t,n,e){var r=qg.exec(n.slice(e));return r?(t.Q=1e3*+r[0],e+r[0].length):-1}function _u(t,n){return Wa(t.getDate(),n,2)}function bu(t,n){return Wa(t.getHours(),n,2)}function mu(t,n){return Wa(t.getHours()%12||12,n,2)}function xu(t,n){return Wa(1+Xv.count(cg(t),t),n,3)}function wu(t,n){return Wa(t.getMilliseconds(),n,3)}function Mu(t,n){return wu(t,n)+"000"}function Au(t,n){return Wa(t.getMonth()+1,n,2)}function Tu(t,n){return Wa(t.getMinutes(),n,2)}function Nu(t,n){return Wa(t.getSeconds(),n,2)}function Su(t){var n=t.getDay();return 0===n?7:n}function Eu(t,n){return Wa(Vv.count(cg(t),t),n,2)}function ku(t,n){var e=t.getDay();return t=e>=4||0===e?Qv(t):Qv.ceil(t),Wa(Qv.count(cg(t),t)+(4===cg(t).getDay()),n,2)}function Cu(t){return t.getDay()}function Pu(t,n){return Wa($v.count(cg(t),t),n,2)}function zu(t,n){return Wa(t.getFullYear()%100,n,2)}function Ru(t,n){return Wa(t.getFullYear()%1e4,n,4)}function Lu(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+Wa(n/60|0,"0",2)+Wa(n%60,"0",2)}function Du(t,n){return Wa(t.getUTCDate(),n,2)}function Uu(t,n){return Wa(t.getUTCHours(),n,2)}function qu(t,n){return Wa(t.getUTCHours()%12||12,n,2)}function Ou(t,n){return Wa(1+vg.count(Rg(t),t),n,3)}function Yu(t,n){return Wa(t.getUTCMilliseconds(),n,3)}function Bu(t,n){return Yu(t,n)+"000"}function Fu(t,n){return Wa(t.getUTCMonth()+1,n,2)}function Iu(t,n){return Wa(t.getUTCMinutes(),n,2)}function ju(t,n){return Wa(t.getUTCSeconds(),n,2)}function Hu(t){var n=t.getUTCDay();return 0===n?7:n}function Xu(t,n){return Wa(yg.count(Rg(t),t),n,2)}function Gu(t,n){var e=t.getUTCDay();return t=e>=4||0===e?xg(t):xg.ceil(t),Wa(xg.count(Rg(t),t)+(4===Rg(t).getUTCDay()),n,2)}function Vu(t){return t.getUTCDay()}function $u(t,n){return Wa(_g.count(Rg(t),t),n,2)}function Wu(t,n){return Wa(t.getUTCFullYear()%100,n,2)}function Zu(t,n){return Wa(t.getUTCFullYear()%1e4,n,4)}function Qu(){return"+0000"}function Ju(){return"%"}function Ku(t){return+t}function tf(t){return Math.floor(+t/1e3)}function nf(n){return Lg=$a(n),t.timeFormat=Lg.format,t.timeParse=Lg.parse,t.utcFormat=Lg.utcFormat,t.utcParse=Lg.utcParse,Lg}function ef(t){return new Date(t)}function rf(t){return t instanceof Date?+t:+new Date(+t)}function of(t,n,r,i,o,a,u,f,c){function s(e){return(u(e)<e?g:a(e)<e?y:o(e)<e?_:i(e)<e?b:n(e)<e?r(e)<e?m:x:t(e)<e?w:M)(e)}function l(n,r,i,o){if(null==n&&(n=10),"number"==typeof n){var a=Math.abs(i-r)/n,u=e(function(t){return t[2]}).right(A,a);u===A.length?(o=d(r/Wg,i/Wg,n),n=t):u?(o=(u=A[a/A[u-1][2]<A[u][2]/a?u-1:u])[1],n=u[0]):(o=Math.max(d(r,i,n),1),n=f)}return null==o?n:n.every(o)}var h=Ta(xa,sn),p=h.invert,v=h.domain,g=c(".%L"),y=c(":%S"),_=c("%I:%M"),b=c("%I %p"),m=c("%a %d"),x=c("%b %d"),w=c("%B"),M=c("%Y"),A=[[u,1,jg],[u,5,5*jg],[u,15,15*jg],[u,30,30*jg],[a,1,Hg],[a,5,5*Hg],[a,15,15*Hg],[a,30,30*Hg],[o,1,Xg],[o,3,3*Xg],[o,6,6*Xg],[o,12,12*Xg],[i,1,Gg],[i,2,2*Gg],[r,1,Vg],[n,1,$g],[n,3,3*$g],[t,1,Wg]];return h.invert=function(t){return new Date(p(t))},h.domain=function(t){return arguments.length?v(kv.call(t,rf)):v().map(ef)},h.ticks=function(t,n){var e,r=v(),i=r[0],o=r[r.length-1],a=o<i;return a&&(e=i,i=o,o=e),e=l(t,i,o,n),e=e?e.range(i,o+1):[],a?e.reverse():e},h.tickFormat=function(t,n){return null==n?s:c(n)},h.nice=function(t,n){var e=v();return(t=l(t,e[0],e[e.length-1],n))?v(ka(e,t)):h},h.copy=function(){return Aa(h,of(t,n,r,i,o,a,u,f,c))},h}function af(t){function n(n){var r=(n-e)*i;return t(o?Math.max(0,Math.min(1,r)):r)}var e=0,r=1,i=1,o=!1;return n.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],i=e===r?0:1/(r-e),n):[e,r]},n.clamp=function(t){return arguments.length?(o=!!t,n):o},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return af(t).domain([e,r]).clamp(o)},Na(n)}function uf(t){function n(n){var e=.5+((n=+n)-r)*(n<r?o:a);return t(u?Math.max(0,Math.min(1,e)):e)}var e=0,r=.5,i=1,o=1,a=1,u=!1;return n.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],i=+t[2],o=e===r?0:.5/(r-e),a=r===i?0:.5/(i-r),n):[e,r,i]},n.clamp=function(t){return arguments.length?(u=!!t,n):u},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return uf(t).domain([e,r,i]).clamp(u)},Na(n)}function ff(t){for(var n=t.length/6|0,e=new Array(n),r=0;r<n;)e[r]="#"+t.slice(6*r,6*++r);return e}function cf(t){return il(t[t.length-1])}function sf(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}function lf(t){return function(){return t}}function hf(t){return t>=1?T_:t<=-1?-T_:Math.asin(t)}function df(t){return t.innerRadius}function pf(t){return t.outerRadius}function vf(t){return t.startAngle}function gf(t){return t.endAngle}function yf(t){return t&&t.padAngle}function _f(t,n,e,r,i,o,a){var u=t-e,f=n-r,c=(a?o:-o)/w_(u*u+f*f),s=c*f,l=-c*u,h=t+s,d=n+l,p=e+s,v=r+l,g=(h+p)/2,y=(d+v)/2,_=p-h,b=v-d,m=_*_+b*b,x=i-o,w=h*v-p*d,M=(b<0?-1:1)*w_(b_(0,x*x*m-w*w)),A=(w*b-_*M)/m,T=(-w*_-b*M)/m,N=(w*b+_*M)/m,S=(-w*_+b*M)/m,E=A-g,k=T-y,C=N-g,P=S-y;return E*E+k*k>C*C+P*P&&(A=N,T=S),{cx:A,cy:T,x01:-s,y01:-l,x11:A*(i/x-1),y11:T*(i/x-1)}}function bf(t){this._context=t}function mf(t){return new bf(t)}function xf(t){return t[0]}function wf(t){return t[1]}function Mf(){function t(t){var u,f,c,s=t.length,l=!1;for(null==i&&(a=o(c=oe())),u=0;u<=s;++u)!(u<s&&r(f=t[u],u,t))===l&&((l=!l)?a.lineStart():a.lineEnd()),l&&a.point(+n(f,u,t),+e(f,u,t));if(c)return a=null,c+""||null}var n=xf,e=wf,r=lf(!0),i=null,o=mf,a=null;return t.x=function(e){return arguments.length?(n="function"==typeof e?e:lf(+e),t):n},t.y=function(n){return arguments.length?(e="function"==typeof n?n:lf(+n),t):e},t.defined=function(n){return arguments.length?(r="function"==typeof n?n:lf(!!n),t):r},t.curve=function(n){return arguments.length?(o=n,null!=i&&(a=o(i)),t):o},t.context=function(n){return arguments.length?(null==n?i=a=null:a=o(i=n),t):i},t}function Af(){function t(t){var n,s,l,h,d,p=t.length,v=!1,g=new Array(p),y=new Array(p);for(null==u&&(c=f(d=oe())),n=0;n<=p;++n){if(!(n<p&&a(h=t[n],n,t))===v)if(v=!v)s=n,c.areaStart(),c.lineStart();else{for(c.lineEnd(),c.lineStart(),l=n-1;l>=s;--l)c.point(g[l],y[l]);c.lineEnd(),c.areaEnd()}v&&(g[n]=+e(h,n,t),y[n]=+i(h,n,t),c.point(r?+r(h,n,t):g[n],o?+o(h,n,t):y[n]))}if(d)return c=null,d+""||null}function n(){return Mf().defined(a).curve(f).context(u)}var e=xf,r=null,i=lf(0),o=wf,a=lf(!0),u=null,f=mf,c=null;return t.x=function(n){return arguments.length?(e="function"==typeof n?n:lf(+n),r=null,t):e},t.x0=function(n){return arguments.length?(e="function"==typeof n?n:lf(+n),t):e},t.x1=function(n){return arguments.length?(r=null==n?null:"function"==typeof n?n:lf(+n),t):r},t.y=function(n){return arguments.length?(i="function"==typeof n?n:lf(+n),o=null,t):i},t.y0=function(n){return arguments.length?(i="function"==typeof n?n:lf(+n),t):i},t.y1=function(n){return arguments.length?(o=null==n?null:"function"==typeof n?n:lf(+n),t):o},t.lineX0=t.lineY0=function(){return n().x(e).y(i)},t.lineY1=function(){return n().x(e).y(o)},t.lineX1=function(){return n().x(r).y(i)},t.defined=function(n){return arguments.length?(a="function"==typeof n?n:lf(!!n),t):a},t.curve=function(n){return arguments.length?(f=n,null!=u&&(c=f(u)),t):f},t.context=function(n){return arguments.length?(null==n?u=c=null:c=f(u=n),t):u},t}function Tf(t,n){return n<t?-1:n>t?1:n>=t?0:NaN}function Nf(t){return t}function Sf(t){this._curve=t}function Ef(t){function n(n){return new Sf(t(n))}return n._curve=t,n}function kf(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(Ef(t)):n()._curve},t}function Cf(){return kf(Mf().curve(S_))}function Pf(){var t=Af().curve(S_),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return kf(e())},delete t.lineX0,t.lineEndAngle=function(){return kf(r())},delete t.lineX1,t.lineInnerRadius=function(){return kf(i())},delete t.lineY0,t.lineOuterRadius=function(){return kf(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(Ef(t)):n()._curve},t}function zf(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.sin(t)]}function Rf(t){return t.source}function Lf(t){return t.target}function Df(t){function n(){var n,u=E_.call(arguments),f=e.apply(this,u),c=r.apply(this,u);if(a||(a=n=oe()),t(a,+i.apply(this,(u[0]=f,u)),+o.apply(this,u),+i.apply(this,(u[0]=c,u)),+o.apply(this,u)),n)return a=null,n+""||null}var e=Rf,r=Lf,i=xf,o=wf,a=null;return n.source=function(t){return arguments.length?(e=t,n):e},n.target=function(t){return arguments.length?(r=t,n):r},n.x=function(t){return arguments.length?(i="function"==typeof t?t:lf(+t),n):i},n.y=function(t){return arguments.length?(o="function"==typeof t?t:lf(+t),n):o},n.context=function(t){return arguments.length?(a=null==t?null:t,n):a},n}function Uf(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n=(n+r)/2,e,n,i,r,i)}function qf(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n,e=(e+i)/2,r,e,r,i)}function Of(t,n,e,r,i){var o=zf(n,e),a=zf(n,e=(e+i)/2),u=zf(r,e),f=zf(r,i);t.moveTo(o[0],o[1]),t.bezierCurveTo(a[0],a[1],u[0],u[1],f[0],f[1])}function Yf(){}function Bf(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function Ff(t){this._context=t}function If(t){this._context=t}function jf(t){this._context=t}function Hf(t,n){this._basis=new Ff(t),this._beta=n}function Xf(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function Gf(t,n){this._context=t,this._k=(1-n)/6}function Vf(t,n){this._context=t,this._k=(1-n)/6}function $f(t,n){this._context=t,this._k=(1-n)/6}function Wf(t,n,e){var r=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>M_){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,f=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/f,i=(i*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/f}if(t._l23_a>M_){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,s=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*c+t._x1*t._l23_2a-n*t._l12_2a)/s,a=(a*c+t._y1*t._l23_2a-e*t._l12_2a)/s}t._context.bezierCurveTo(r,i,o,a,t._x2,t._y2)}function Zf(t,n){this._context=t,this._alpha=n}function Qf(t,n){this._context=t,this._alpha=n}function Jf(t,n){this._context=t,this._alpha=n}function Kf(t){this._context=t}function tc(t){return t<0?-1:1}function nc(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),a=(e-t._y1)/(i||r<0&&-0),u=(o*i+a*r)/(r+i);return(tc(o)+tc(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(u))||0}function ec(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function rc(t,n,e){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,u=(o-r)/3;t._context.bezierCurveTo(r+u,i+u*n,o-u,a-u*e,o,a)}function ic(t){this._context=t}function oc(t){this._context=new ac(t)}function ac(t){this._context=t}function uc(t){this._context=t}function fc(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),a=new Array(r);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],n=1;n<r-1;++n)i[n]=1,o[n]=4,a[n]=4*t[n]+2*t[n+1];for(i[r-1]=2,o[r-1]=7,a[r-1]=8*t[r-1]+t[r],n=1;n<r;++n)e=i[n]/o[n-1],o[n]-=e,a[n]-=e*a[n-1];for(i[r-1]=a[r-1]/o[r-1],n=r-2;n>=0;--n)i[n]=(a[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n<r-1;++n)o[n]=2*t[n+1]-i[n+1];return[i,o]}function cc(t,n){this._context=t,this._t=n}function sc(t,n){if((i=t.length)>1)for(var e,r,i,o=1,a=t[n[0]],u=a.length;o<i;++o)for(r=a,a=t[n[o]],e=0;e<u;++e)a[e][1]+=a[e][0]=isNaN(r[e][1])?r[e][0]:r[e][1]}function lc(t){for(var n=t.length,e=new Array(n);--n>=0;)e[n]=n;return e}function hc(t,n){return t[n]}function dc(t){var n=t.map(pc);return lc(t).sort(function(t,e){return n[t]-n[e]})}function pc(t){for(var n,e=0,r=-1,i=t.length;++r<i;)(n=+t[r][1])&&(e+=n);return e}function vc(t){return function(){return t}}function gc(t){return t[0]}function yc(t){return t[1]}function _c(){this._=null}function bc(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function mc(t,n){var e=n,r=n.R,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function xc(t,n){var e=n,r=n.L,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function wc(t){for(;t.L;)t=t.L;return t}function Mc(t,n,e,r){var i=[null,null],o=rb.push(i)-1;return i.left=t,i.right=n,e&&Tc(i,t,n,e),r&&Tc(i,n,t,r),nb[t.index].halfedges.push(o),nb[n.index].halfedges.push(o),i}function Ac(t,n,e){var r=[n,e];return r.left=t,r}function Tc(t,n,e,r){t[0]||t[1]?t.left===e?t[1]=r:t[0]=r:(t[0]=r,t.left=n,t.right=e)}function Nc(t,n,e,r,i){var o,a=t[0],u=t[1],f=a[0],c=a[1],s=0,l=1,h=u[0]-f,d=u[1]-c;if(o=n-f,h||!(o>0)){if(o/=h,h<0){if(o<s)return;o<l&&(l=o)}else if(h>0){if(o>l)return;o>s&&(s=o)}if(o=r-f,h||!(o<0)){if(o/=h,h<0){if(o>l)return;o>s&&(s=o)}else if(h>0){if(o<s)return;o<l&&(l=o)}if(o=e-c,d||!(o>0)){if(o/=d,d<0){if(o<s)return;o<l&&(l=o)}else if(d>0){if(o>l)return;o>s&&(s=o)}if(o=i-c,d||!(o<0)){if(o/=d,d<0){if(o>l)return;o>s&&(s=o)}else if(d>0){if(o<s)return;o<l&&(l=o)}return!(s>0||l<1)||(s>0&&(t[0]=[f+s*h,c+s*d]),l<1&&(t[1]=[f+l*h,c+l*d]),!0)}}}}}function Sc(t,n,e,r,i){var o=t[1];if(o)return!0;var a,u,f=t[0],c=t.left,s=t.right,l=c[0],h=c[1],d=s[0],p=s[1],v=(l+d)/2,g=(h+p)/2;if(p===h){if(v<n||v>=r)return;if(l>d){if(f){if(f[1]>=i)return}else f=[v,e];o=[v,i]}else{if(f){if(f[1]<e)return}else f=[v,i];o=[v,e]}}else if(a=(l-d)/(p-h),u=g-a*v,a<-1||a>1)if(l>d){if(f){if(f[1]>=i)return}else f=[(e-u)/a,e];o=[(i-u)/a,i]}else{if(f){if(f[1]<e)return}else f=[(i-u)/a,i];o=[(e-u)/a,e]}else if(h<p){if(f){if(f[0]>=r)return}else f=[n,a*n+u];o=[r,a*r+u]}else{if(f){if(f[0]<n)return}else f=[r,a*r+u];o=[n,a*n+u]}return t[0]=f,t[1]=o,!0}function Ec(t,n){var e=t.site,r=n.left,i=n.right;return e===i&&(i=r,r=e),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(e===r?(r=n[1],i=n[0]):(r=n[0],i=n[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function kc(t,n){return n[+(n.left!==t.site)]}function Cc(t,n){return n[+(n.left===t.site)]}function Pc(t){var n=t.P,e=t.N;if(n&&e){var r=n.site,i=t.site,o=e.site;if(r!==o){var a=i[0],u=i[1],f=r[0]-a,c=r[1]-u,s=o[0]-a,l=o[1]-u,h=2*(f*l-c*s);if(!(h>=-ub)){var d=f*f+c*c,p=s*s+l*l,v=(l*d-c*p)/h,g=(f*p-s*d)/h,y=ib.pop()||new function(){bc(this),this.x=this.y=this.arc=this.site=this.cy=null};y.arc=t,y.site=i,y.x=v+a,y.y=(y.cy=g+u)+Math.sqrt(v*v+g*g),t.circle=y;for(var _=null,b=eb._;b;)if(y.y<b.y||y.y===b.y&&y.x<=b.x){if(!b.L){_=b.P;break}b=b.L}else{if(!b.R){_=b;break}b=b.R}eb.insert(_,y),_||(K_=y)}}}}function zc(t){var n=t.circle;n&&(n.P||(K_=n.N),eb.remove(n),ib.push(n),bc(n),t.circle=null)}function Rc(t){var n=ob.pop()||new function(){bc(this),this.edge=this.site=this.circle=null};return n.site=t,n}function Lc(t){zc(t),tb.remove(t),ob.push(t),bc(t)}function Dc(t){var n=t.circle,e=n.x,r=n.cy,i=[e,r],o=t.P,a=t.N,u=[t];Lc(t);for(var f=o;f.circle&&Math.abs(e-f.circle.x)<ab&&Math.abs(r-f.circle.cy)<ab;)o=f.P,u.unshift(f),Lc(f),f=o;u.unshift(f),zc(f);for(var c=a;c.circle&&Math.abs(e-c.circle.x)<ab&&Math.abs(r-c.circle.cy)<ab;)a=c.N,u.push(c),Lc(c),c=a;u.push(c),zc(c);var s,l=u.length;for(s=1;s<l;++s)c=u[s],f=u[s-1],Tc(c.edge,f.site,c.site,i);f=u[0],(c=u[l-1]).edge=Mc(f.site,c.site,null,i),Pc(f),Pc(c)}function Uc(t){for(var n,e,r,i,o=t[0],a=t[1],u=tb._;u;)if((r=qc(u,a)-o)>ab)u=u.L;else{if(!((i=o-function(t,n){var e=t.N;if(e)return qc(e,n);var r=t.site;return r[1]===n?r[0]:1/0}(u,a))>ab)){r>-ab?(n=u.P,e=u):i>-ab?(n=u,e=u.N):n=e=u;break}if(!u.R){n=u;break}u=u.R}(function(t){nb[t.index]={site:t,halfedges:[]}})(t);var f=Rc(t);if(tb.insert(n,f),n||e){if(n===e)return zc(n),e=Rc(n.site),tb.insert(f,e),f.edge=e.edge=Mc(n.site,f.site),Pc(n),void Pc(e);if(e){zc(n),zc(e);var c=n.site,s=c[0],l=c[1],h=t[0]-s,d=t[1]-l,p=e.site,v=p[0]-s,g=p[1]-l,y=2*(h*g-d*v),_=h*h+d*d,b=v*v+g*g,m=[(g*_-d*b)/y+s,(h*b-v*_)/y+l];Tc(e.edge,c,p,m),f.edge=Mc(c,t,null,m),e.edge=Mc(t,p,null,m),Pc(n),Pc(e)}else f.edge=Mc(n.site,f.site)}}function qc(t,n){var e=t.site,r=e[0],i=e[1],o=i-n;if(!o)return r;var a=t.P;if(!a)return-1/0;var u=(e=a.site)[0],f=e[1],c=f-n;if(!c)return u;var s=u-r,l=1/o-1/c,h=s/c;return l?(-h+Math.sqrt(h*h-2*l*(s*s/(-2*c)-f+c/2+i-o/2)))/l+r:(r+u)/2}function Oc(t,n,e){return(t[0]-e[0])*(n[1]-t[1])-(t[0]-n[0])*(e[1]-t[1])}function Yc(t,n){return n[1]-t[1]||n[0]-t[0]}function Bc(t,n){var e,r,i,o=t.sort(Yc).pop();for(rb=[],nb=new Array(t.length),tb=new _c,eb=new _c;;)if(i=K_,o&&(!i||o[1]<i.y||o[1]===i.y&&o[0]<i.x))o[0]===e&&o[1]===r||(Uc(o),e=o[0],r=o[1]),o=t.pop();else{if(!i)break;Dc(i.arc)}if(function(){for(var t,n,e,r,i=0,o=nb.length;i<o;++i)if((t=nb[i])&&(r=(n=t.halfedges).length)){var a=new Array(r),u=new Array(r);for(e=0;e<r;++e)a[e]=e,u[e]=Ec(t,rb[n[e]]);for(a.sort(function(t,n){return u[n]-u[t]}),e=0;e<r;++e)u[e]=n[a[e]];for(e=0;e<r;++e)n[e]=u[e]}}(),n){var a=+n[0][0],u=+n[0][1],f=+n[1][0],c=+n[1][1];(function(t,n,e,r){for(var i,o=rb.length;o--;)Sc(i=rb[o],t,n,e,r)&&Nc(i,t,n,e,r)&&(Math.abs(i[0][0]-i[1][0])>ab||Math.abs(i[0][1]-i[1][1])>ab)||delete rb[o]})(a,u,f,c),function(t,n,e,r){var i,o,a,u,f,c,s,l,h,d,p,v,g=nb.length,y=!0;for(i=0;i<g;++i)if(o=nb[i]){for(a=o.site,u=(f=o.halfedges).length;u--;)rb[f[u]]||f.splice(u,1);for(u=0,c=f.length;u<c;)p=(d=Cc(o,rb[f[u]]))[0],v=d[1],l=(s=kc(o,rb[f[++u%c]]))[0],h=s[1],(Math.abs(p-l)>ab||Math.abs(v-h)>ab)&&(f.splice(u,0,rb.push(Ac(a,d,Math.abs(p-t)<ab&&r-v>ab?[t,Math.abs(l-t)<ab?h:r]:Math.abs(v-r)<ab&&e-p>ab?[Math.abs(h-r)<ab?l:e,r]:Math.abs(p-e)<ab&&v-n>ab?[e,Math.abs(l-e)<ab?h:n]:Math.abs(v-n)<ab&&p-t>ab?[Math.abs(h-n)<ab?l:t,n]:null))-1),++c);c&&(y=!1)}if(y){var _,b,m,x=1/0;for(i=0,y=null;i<g;++i)(o=nb[i])&&(m=(_=(a=o.site)[0]-t)*_+(b=a[1]-n)*b)<x&&(x=m,y=o);if(y){var w=[t,n],M=[t,r],A=[e,r],T=[e,n];y.halfedges.push(rb.push(Ac(a=y.site,w,M))-1,rb.push(Ac(a,M,A))-1,rb.push(Ac(a,A,T))-1,rb.push(Ac(a,T,w))-1)}}for(i=0;i<g;++i)(o=nb[i])&&(o.halfedges.length||delete nb[i])}(a,u,f,c)}this.edges=rb,this.cells=nb,tb=eb=rb=nb=null}function Fc(t){return function(){return t}}function Ic(t,n,e){this.k=t,this.x=n,this.y=e}function jc(t){return t.__zoom||fb}function Hc(){t.event.stopImmediatePropagation()}function Xc(){t.event.preventDefault(),t.event.stopImmediatePropagation()}function Gc(){return!t.event.button}function Vc(){var t,n,e=this;return e instanceof SVGElement?(t=(e=e.ownerSVGElement||e).width.baseVal.value,n=e.height.baseVal.value):(t=e.clientWidth,n=e.clientHeight),[[0,0],[t,n]]}function $c(){return this.__zoom||fb}function Wc(){return-t.event.deltaY*(t.event.deltaMode?120:1)/500}function Zc(){return"ontouchstart"in this}function Qc(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],a=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}var Jc=e(n),Kc=Jc.right,ts=Jc.left,ns=Array.prototype,es=ns.slice,rs=ns.map,is=Math.sqrt(50),os=Math.sqrt(10),as=Math.sqrt(2),us=Array.prototype.slice,fs=1,cs=2,ss=3,ls=4,hs=1e-6,ds={value:function(){}};S.prototype=N.prototype={constructor:S,on:function(t,n){var e,r=this._,i=function(t,n){return t.trim().split(/^|\s+/).map(function(t){var e="",r=t.indexOf(".");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}})}(t+"",r),o=-1,a=i.length;{if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++o<a;)if(e=(t=i[o]).type)r[e]=E(r[e],t.name,n);else if(null==n)for(e in r)r[e]=E(r[e],t.name,null);return this}for(;++o<a;)if((e=(t=i[o]).type)&&(e=function(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}(r[e],t.name)))return e}},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new S(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,e=(r=this._[t]).length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var ps="http://www.w3.org/1999/xhtml",vs={svg:"http://www.w3.org/2000/svg",xhtml:ps,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},gs=function(t){return function(){return this.matches(t)}};if("undefined"!=typeof document){var ys=document.documentElement;if(!ys.matches){var _s=ys.webkitMatchesSelector||ys.msMatchesSelector||ys.mozMatchesSelector||ys.oMatchesSelector;gs=function(t){return function(){return _s.call(this,t)}}}}var bs=gs;U.prototype={constructor:U,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var ms="$";H.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var xs={};if(t.event=null,"undefined"!=typeof document){"onmouseenter"in document.documentElement||(xs={mouseenter:"mouseover",mouseleave:"mouseout"})}var ws=[null];ut.prototype=ft.prototype={constructor:ut,select:function(t){"function"!=typeof t&&(t=z(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a,u=n[i],f=u.length,c=r[i]=new Array(f),s=0;s<f;++s)(o=u[s])&&(a=t.call(o,o.__data__,s,u))&&("__data__"in o&&(a.__data__=o.__data__),c[s]=a);return new ut(r,this._parents)},selectAll:function(t){"function"!=typeof t&&(t=L(t));for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var a,u=n[o],f=u.length,c=0;c<f;++c)(a=u[c])&&(r.push(t.call(a,a.__data__,c,u)),i.push(a));return new ut(r,i)},filter:function(t){"function"!=typeof t&&(t=bs(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,f=r[i]=[],c=0;c<u;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&f.push(o);return new ut(r,this._parents)},data:function(t,n){if(!t)return d=new Array(this.size()),c=-1,this.each(function(t){d[++c]=t}),d;var e=n?O:q,r=this._parents,i=this._groups;"function"!=typeof t&&(t=function(t){return function(){return t}}(t));for(var o=i.length,a=new Array(o),u=new Array(o),f=new Array(o),c=0;c<o;++c){var s=r[c],l=i[c],h=l.length,d=t.call(s,s&&s.__data__,c,r),p=d.length,v=u[c]=new Array(p),g=a[c]=new Array(p);e(s,l,v,g,f[c]=new Array(h),d,n);for(var y,_,b=0,m=0;b<p;++b)if(y=v[b]){for(b>=m&&(m=b+1);!(_=g[m])&&++m<p;);y._next=_||null}}return a=new ut(a,r),a._enter=u,a._exit=f,a},enter:function(){return new ut(this._enter||this._groups.map(D),this._parents)},exit:function(){return new ut(this._exit||this._groups.map(D),this._parents)},merge:function(t){for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=new Array(r),u=0;u<o;++u)for(var f,c=n[u],s=e[u],l=c.length,h=a[u]=new Array(l),d=0;d<l;++d)(f=c[d]||s[d])&&(h[d]=f);for(;u<r;++u)a[u]=n[u];return new ut(a,this._parents)},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=Y);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var a,u=e[o],f=u.length,c=i[o]=new Array(f),s=0;s<f;++s)(a=u[s])&&(c[s]=a);c.sort(n)}return new ut(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){var t=new Array(this.size()),n=-1;return this.each(function(){t[++n]=this}),t},node:function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){var t=0;return this.each(function(){++t}),t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,n){var e=k(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof n?e.local?function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}:function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}:e.local?function(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}:function(t,n){return function(){this.setAttribute(t,n)}})(e,n))},style:function(t,n,e){return arguments.length>1?this.each((null==n?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof n?function(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}:function(t,n,e){return function(){this.style.setProperty(t,n,e)}})(t,n,null==e?"":e)):F(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?function(t){return function(){delete this[t]}}:"function"==typeof n?function(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}:function(t,n){return function(){this[t]=n}})(t,n)):this.node()[t]},classed:function(t,n){var e=I(t+"");if(arguments.length<2){for(var r=j(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?function(t,n){return function(){(n.apply(this,arguments)?X:G)(this,t)}}:n?function(t){return function(){X(this,t)}}:function(t){return function(){G(this,t)}})(e,n))},text:function(t){return arguments.length?this.each(null==t?V:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?$:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(W)},lower:function(){return this.each(Z)},append:function(t){var n="function"==typeof t?t:C(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},insert:function(t,n){var e="function"==typeof t?t:C(t),r=null==n?Q:"function"==typeof n?n:z(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(J)},clone:function(t){return this.select(t?tt:K)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=function(t){return t.trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}})}(t+""),a=o.length;if(!(arguments.length<2)){for(u=n?it:rt,null==e&&(e=!1),r=0;r<a;++r)this.each(u(o[r],n,e));return this}var u=this.node().__on;if(u)for(var f,c=0,s=u.length;c<s;++c)for(r=0,f=u[c];r<a;++r)if((i=o[r]).type===f.type&&i.name===f.name)return f.value},dispatch:function(t,n){return this.each(("function"==typeof n?function(t,n){return function(){return at(this,t,n.apply(this,arguments))}}:function(t,n){return function(){return at(this,t,n)}})(t,n))}};var Ms=0;lt.prototype=st.prototype={constructor:lt,get:function(t){for(var n=this._;!(n in t);)if(!(t=t.parentNode))return;return t[n]},set:function(t,n){return t[this._]=n},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}},xt.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var As="\\s*([+-]?\\d+)\\s*",Ts="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ns="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Ss=/^#([0-9a-f]{3})$/,Es=/^#([0-9a-f]{6})$/,ks=new RegExp("^rgb\\("+[As,As,As]+"\\)$"),Cs=new RegExp("^rgb\\("+[Ns,Ns,Ns]+"\\)$"),Ps=new RegExp("^rgba\\("+[As,As,As,Ts]+"\\)$"),zs=new RegExp("^rgba\\("+[Ns,Ns,Ns,Ts]+"\\)$"),Rs=new RegExp("^hsl\\("+[Ts,Ns,Ns]+"\\)$"),Ls=new RegExp("^hsla\\("+[Ts,Ns,Ns,Ts]+"\\)$"),Ds={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Nt(Et,kt,{displayable:function(){return this.rgb().displayable()},hex:function(){return this.rgb().hex()},toString:function(){return this.rgb()+""}}),Nt(Lt,Rt,St(Et,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Lt(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Lt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},hex:function(){return"#"+Dt(this.r)+Dt(this.g)+Dt(this.b)},toString:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}})),Nt(Ot,qt,St(Et,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Ot(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Ot(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new Lt(Yt(t>=240?t-240:t+120,i,r),Yt(t,i,r),Yt(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var Us=Math.PI/180,qs=180/Math.PI,Os=.96422,Ys=1,Bs=.82521,Fs=4/29,Is=6/29,js=3*Is*Is,Hs=Is*Is*Is;Nt(It,Ft,St(Et,{brighter:function(t){return new It(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new It(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return n=Os*Ht(n),t=Ys*Ht(t),e=Bs*Ht(e),new Lt(Xt(3.1338561*n-1.6168667*t-.4906146*e),Xt(-.9787684*n+1.9161415*t+.033454*e),Xt(.0719453*n-.2289914*t+1.4052427*e),this.opacity)}})),Nt(Wt,$t,St(Et,{brighter:function(t){return new Wt(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new Wt(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return Bt(this).rgb()}}));var Xs=-.29227,Gs=-.90649,Vs=1.97294,$s=Vs*Gs,Ws=1.78277*Vs,Zs=1.78277*Xs- -.14861*Gs;Nt(Qt,Zt,St(Et,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Qt(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Qt(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*Us,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new Lt(255*(n+e*(-.14861*r+1.78277*i)),255*(n+e*(Xs*r+Gs*i)),255*(n+e*(Vs*r)),this.opacity)}}));var Qs,Js,Ks,tl,nl,el,rl=function t(n){function e(t,n){var e=r((t=Rt(t)).r,(n=Rt(n)).r),i=r(t.g,n.g),o=r(t.b,n.b),a=an(t.opacity,n.opacity);return function(n){return t.r=e(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}var r=on(n);return e.gamma=t,e}(1),il=un(Kt),ol=un(tn),al=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ul=new RegExp(al.source,"g"),fl=180/Math.PI,cl={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},sl=gn(function(t){return"none"===t?cl:(Qs||(Qs=document.createElement("DIV"),Js=document.documentElement,Ks=document.defaultView),Qs.style.transform=t,t=Ks.getComputedStyle(Js.appendChild(Qs),null).getPropertyValue("transform"),Js.removeChild(Qs),t=t.slice(7,-1).split(","),vn(+t[0],+t[1],+t[2],+t[3],+t[4],+t[5]))},"px, ","px)","deg)"),ll=gn(function(t){return null==t?cl:(tl||(tl=document.createElementNS("http://www.w3.org/2000/svg","g")),tl.setAttribute("transform",t),(t=tl.transform.baseVal.consolidate())?(t=t.matrix,vn(t.a,t.b,t.c,t.d,t.e,t.f)):cl)},", ",")",")"),hl=Math.SQRT2,dl=2,pl=4,vl=1e-12,gl=bn(rn),yl=bn(an),_l=mn(rn),bl=mn(an),ml=xn(rn),xl=xn(an),wl=0,Ml=0,Al=0,Tl=1e3,Nl=0,Sl=0,El=0,kl="object"==typeof performance&&performance.now?performance:Date,Cl="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};An.prototype=Tn.prototype={constructor:An,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?wn():+e)+(null==n?0:+n),this._next||el===this||(el?el._next=this:nl=this,el=this),this._call=t,this._time=e,kn()},stop:function(){this._call&&(this._call=null,this._time=1/0,kn())}};var Pl=N("start","end","interrupt"),zl=[],Rl=0,Ll=1,Dl=2,Ul=3,ql=4,Ol=5,Yl=6,Bl=ft.prototype.constructor,Fl=0,Il=ft.prototype;On.prototype=Yn.prototype={constructor:On,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=z(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a<i;++a)for(var u,f,c=r[a],s=c.length,l=o[a]=new Array(s),h=0;h<s;++h)(u=c[h])&&(f=t.call(u,u.__data__,h,c))&&("__data__"in u&&(f.__data__=u.__data__),l[h]=f,Pn(l[h],n,e,h,l,Ln(u,e)));return new On(o,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=L(t));for(var r=this._groups,i=r.length,o=[],a=[],u=0;u<i;++u)for(var f,c=r[u],s=c.length,l=0;l<s;++l)if(f=c[l]){for(var h,d=t.call(f,f.__data__,l,c),p=Ln(f,e),v=0,g=d.length;v<g;++v)(h=d[v])&&Pn(h,n,e,v,d,p);o.push(d),a.push(f)}return new On(o,a,n,e)},filter:function(t){"function"!=typeof t&&(t=bs(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,f=r[i]=[],c=0;c<u;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&f.push(o);return new On(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=new Array(r),u=0;u<o;++u)for(var f,c=n[u],s=e[u],l=c.length,h=a[u]=new Array(l),d=0;d<l;++d)(f=c[d]||s[d])&&(h[d]=f);for(;u<r;++u)a[u]=n[u];return new On(a,this._parents,this._name,this._id)},selection:function(){return new Bl(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=Bn(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],f=u.length,c=0;c<f;++c)if(a=u[c]){var s=Ln(a,n);Pn(a,t,e,c,u,{time:s.time+s.delay+s.duration,delay:0,duration:s.duration,ease:s.ease})}return new On(r,this._parents,t,e)},call:Il.call,nodes:Il.nodes,node:Il.node,size:Il.size,empty:Il.empty,each:Il.each,on:function(t,n){var e=this._id;return arguments.length<2?Ln(this.node(),e).on.on(t):this.each(function(t,n,e){var r,i,o=function(t){return(t+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t})}(n)?zn:Rn;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(n,e),a.on=i}}(e,t,n))},attr:function(t,n){var e=k(t),r="transform"===e?ll:qn;return this.attrTween(t,"function"==typeof n?(e.local?function(t,n,e){var r,i,o;return function(){var a,u=e(this);if(null!=u)return(a=this.getAttributeNS(t.space,t.local))===u?null:a===r&&u===i?o:o=n(r=a,i=u);this.removeAttributeNS(t.space,t.local)}}:function(t,n,e){var r,i,o;return function(){var a,u=e(this);if(null!=u)return(a=this.getAttribute(t))===u?null:a===r&&u===i?o:o=n(r=a,i=u);this.removeAttribute(t)}})(e,r,Un(this,"attr."+t,n)):null==n?(e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(e):(e.local?function(t,n,e){var r,i;return function(){var o=this.getAttributeNS(t.space,t.local);return o===e?null:o===r?i:i=n(r=o,e)}}:function(t,n,e){var r,i;return function(){var o=this.getAttribute(t);return o===e?null:o===r?i:i=n(r=o,e)}})(e,r,n+""))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=k(t);return this.tween(e,(r.local?function(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttributeNS(t.space,t.local,r(n))}}return e._value=n,e}:function(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttribute(t,r(n))}}return e._value=n,e})(r,n))},style:function(t,n,e){var r="transform"==(t+="")?sl:qn;return null==n?this.styleTween(t,function(t,n){var e,r,i;return function(){var o=F(this,t),a=(this.style.removeProperty(t),F(this,t));return o===a?null:o===e&&a===r?i:i=n(e=o,r=a)}}(t,r)).on("end.style."+t,function(t){return function(){this.style.removeProperty(t)}}(t)):this.styleTween(t,"function"==typeof n?function(t,n,e){var r,i,o;return function(){var a=F(this,t),u=e(this);return null==u&&(this.style.removeProperty(t),u=F(this,t)),a===u?null:a===r&&u===i?o:o=n(r=a,i=u)}}(t,r,Un(this,"style."+t,n)):function(t,n,e){var r,i;return function(){var o=F(this,t);return o===e?null:o===r?i:i=n(r=o,e)}}(t,r,n+""),e)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,function(t,n,e){function r(){var r=this,i=n.apply(r,arguments);return i&&function(n){r.style.setProperty(t,i(n),e)}}return r._value=n,r}(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var n=t(this);this.textContent=null==n?"":n}}(Un(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},remove:function(){return this.on("end.remove",function(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}(this._id))},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=Ln(this.node(),e).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?function(t,n){var e,r;return function(){var i=Rn(this,t),o=i.tween;if(o!==e)for(var a=0,u=(r=e=o).length;a<u;++a)if(r[a].name===n){(r=r.slice()).splice(a,1);break}i.tween=r}}:function(t,n,e){var r,i;if("function"!=typeof e)throw new Error;return function(){var o=Rn(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var u={name:n,value:e},f=0,c=i.length;f<c;++f)if(i[f].name===n){i[f]=u;break}f===c&&i.push(u)}o.tween=i}})(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){zn(this,t).delay=+n.apply(this,arguments)}}:function(t,n){return n=+n,function(){zn(this,t).delay=n}})(n,t)):Ln(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){Rn(this,t).duration=+n.apply(this,arguments)}}:function(t,n){return n=+n,function(){Rn(this,t).duration=n}})(n,t)):Ln(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(function(t,n){if("function"!=typeof n)throw new Error;return function(){Rn(this,t).ease=n}}(n,t)):Ln(this.node(),n).ease}};var jl=function t(n){function e(t){return Math.pow(t,n)}return n=+n,e.exponent=t,e}(3),Hl=function t(n){function e(t){return 1-Math.pow(1-t,n)}return n=+n,e.exponent=t,e}(3),Xl=function t(n){function e(t){return((t*=2)<=1?Math.pow(t,n):2-Math.pow(2-t,n))/2}return n=+n,e.exponent=t,e}(3),Gl=Math.PI,Vl=Gl/2,$l=4/11,Wl=6/11,Zl=8/11,Ql=.75,Jl=9/11,Kl=10/11,th=.9375,nh=21/22,eh=63/64,rh=1/$l/$l,ih=function t(n){function e(t){return t*t*((n+1)*t-n)}return n=+n,e.overshoot=t,e}(1.70158),oh=function t(n){function e(t){return--t*t*((n+1)*t+n)+1}return n=+n,e.overshoot=t,e}(1.70158),ah=function t(n){function e(t){return((t*=2)<1?t*t*((n+1)*t-n):(t-=2)*t*((n+1)*t+n)+2)/2}return n=+n,e.overshoot=t,e}(1.70158),uh=2*Math.PI,fh=function t(n,e){function r(t){return n*Math.pow(2,10*--t)*Math.sin((i-t)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=uh);return r.amplitude=function(n){return t(n,e*uh)},r.period=function(e){return t(n,e)},r}(1,.3),ch=function t(n,e){function r(t){return 1-n*Math.pow(2,-10*(t=+t))*Math.sin((t+i)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=uh);return r.amplitude=function(n){return t(n,e*uh)},r.period=function(e){return t(n,e)},r}(1,.3),sh=function t(n,e){function r(t){return((t=2*t-1)<0?n*Math.pow(2,10*t)*Math.sin((i-t)/e):2-n*Math.pow(2,-10*t)*Math.sin((i+t)/e))/2}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=uh);return r.amplitude=function(n){return t(n,e*uh)},r.period=function(e){return t(n,e)},r}(1,.3),lh={time:null,delay:0,duration:250,ease:In};ft.prototype.interrupt=function(t){return this.each(function(){Dn(this,t)})},ft.prototype.transition=function(t){var n,e;t instanceof On?(n=t._id,t=t._name):(n=Bn(),(e=lh).time=wn(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],f=u.length,c=0;c<f;++c)(a=u[c])&&Pn(a,t,n,c,u,e||Vn(a,n));return new On(r,this._parents,t,n)};var hh=[null],dh={name:"drag"},ph={name:"space"},vh={name:"handle"},gh={name:"center"},yh={name:"x",handles:["e","w"].map(Qn),input:function(t,n){return t&&[[t[0],n[0][1]],[t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},_h={name:"y",handles:["n","s"].map(Qn),input:function(t,n){return t&&[[n[0][0],t[0]],[n[1][0],t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},bh={name:"xy",handles:["n","e","s","w","nw","ne","se","sw"].map(Qn),input:function(t){return t},output:function(t){return t}},mh={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},xh={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},wh={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Mh={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Ah={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1},Th=Math.cos,Nh=Math.sin,Sh=Math.PI,Eh=Sh/2,kh=2*Sh,Ch=Math.max,Ph=Array.prototype.slice,zh=Math.PI,Rh=2*zh,Lh=Rh-1e-6;ie.prototype=oe.prototype={constructor:ie,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,e,r){this._+="Q"+ +t+","+ +n+","+(this._x1=+e)+","+(this._y1=+r)},bezierCurveTo:function(t,n,e,r,i,o){this._+="C"+ +t+","+ +n+","+ +e+","+ +r+","+(this._x1=+i)+","+(this._y1=+o)},arcTo:function(t,n,e,r,i){t=+t,n=+n,e=+e,r=+r,i=+i;var o=this._x1,a=this._y1,u=e-t,f=r-n,c=o-t,s=a-n,l=c*c+s*s;if(i<0)throw new Error("negative radius: "+i);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(l>1e-6)if(Math.abs(s*u-f*c)>1e-6&&i){var h=e-o,d=r-a,p=u*u+f*f,v=h*h+d*d,g=Math.sqrt(p),y=Math.sqrt(l),_=i*Math.tan((zh-Math.acos((p+l-v)/(2*g*y)))/2),b=_/y,m=_/g;Math.abs(b-1)>1e-6&&(this._+="L"+(t+b*c)+","+(n+b*s)),this._+="A"+i+","+i+",0,0,"+ +(s*h>c*d)+","+(this._x1=t+m*u)+","+(this._y1=n+m*f)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n;var a=(e=+e)*Math.cos(r),u=e*Math.sin(r),f=t+a,c=n+u,s=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+f+","+c:(Math.abs(this._x1-f)>1e-6||Math.abs(this._y1-c)>1e-6)&&(this._+="L"+f+","+c),e&&(l<0&&(l=l%Rh+Rh),l>Lh?this._+="A"+e+","+e+",0,1,"+s+","+(t-a)+","+(n-u)+"A"+e+","+e+",0,1,"+s+","+(this._x1=f)+","+(this._y1=c):l>1e-6&&(this._+="A"+e+","+e+",0,"+ +(l>=zh)+","+s+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};le.prototype=he.prototype={constructor:le,has:function(t){return"$"+t in this},get:function(t){return this["$"+t]},set:function(t,n){return this["$"+t]=n,this},remove:function(t){var n="$"+t;return n in this&&delete this[n]},clear:function(){for(var t in this)"$"===t[0]&&delete this[t]},keys:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(n.slice(1));return t},values:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(this[n]);return t},entries:function(){var t=[];for(var n in this)"$"===n[0]&&t.push({key:n.slice(1),value:this[n]});return t},size:function(){var t=0;for(var n in this)"$"===n[0]&&++t;return t},empty:function(){for(var t in this)if("$"===t[0])return!1;return!0},each:function(t){for(var n in this)"$"===n[0]&&t(this[n],n.slice(1),this)}};var Dh=he.prototype;ye.prototype=_e.prototype={constructor:ye,has:Dh.has,add:function(t){return t+="",this["$"+t]=t,this},remove:Dh.remove,clear:Dh.clear,values:Dh.keys,size:Dh.size,empty:Dh.empty,each:Dh.each};var Uh=Array.prototype.slice,qh=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]],Oh={},Yh={},Bh=34,Fh=10,Ih=13,jh=ke(","),Hh=jh.parse,Xh=jh.parseRows,Gh=jh.format,Vh=jh.formatRows,$h=ke("\t"),Wh=$h.parse,Zh=$h.parseRows,Qh=$h.format,Jh=$h.formatRows,Kh=Le(Hh),td=Le(Wh),nd=Ue("application/xml"),ed=Ue("text/html"),rd=Ue("image/svg+xml"),id=je.prototype=He.prototype;id.copy=function(){var t,n,e=new He(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=Xe(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=Xe(n));return e},id.add=function(t){var n=+this._x.call(null,t),e=+this._y.call(null,t);return Ye(this.cover(n,e),n,e,t)},id.addAll=function(t){var n,e,r,i,o=t.length,a=new Array(o),u=new Array(o),f=1/0,c=1/0,s=-1/0,l=-1/0;for(e=0;e<o;++e)isNaN(r=+this._x.call(null,n=t[e]))||isNaN(i=+this._y.call(null,n))||(a[e]=r,u[e]=i,r<f&&(f=r),r>s&&(s=r),i<c&&(c=i),i>l&&(l=i));for(s<f&&(f=this._x0,s=this._x1),l<c&&(c=this._y0,l=this._y1),this.cover(f,c).cover(s,l),e=0;e<o;++e)Ye(this,a[e],u[e],t[e]);return this},id.cover=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,o=(r=Math.floor(n))+1;else{if(!(e>t||t>i||r>n||n>o))return this;var a,u,f=i-e,c=this._root;switch(u=(n<(r+o)/2)<<1|t<(e+i)/2){case 0:do{a=new Array(4),a[u]=c,c=a}while(f*=2,i=e+f,o=r+f,t>i||n>o);break;case 1:do{a=new Array(4),a[u]=c,c=a}while(f*=2,e=i-f,o=r+f,e>t||n>o);break;case 2:do{a=new Array(4),a[u]=c,c=a}while(f*=2,i=e+f,r=o-f,t>i||r>n);break;case 3:do{a=new Array(4),a[u]=c,c=a}while(f*=2,e=i-f,r=o-f,e>t||r>n)}this._root&&this._root.length&&(this._root=c)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},id.data=function(){var t=[];return this.visit(function(n){if(!n.length)do{t.push(n.data)}while(n=n.next)}),t},id.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},id.find=function(t,n,e){var r,i,o,a,u,f,c,s=this._x0,l=this._y0,h=this._x1,d=this._y1,p=[],v=this._root;for(v&&p.push(new Be(v,s,l,h,d)),null==e?e=1/0:(s=t-e,l=n-e,h=t+e,d=n+e,e*=e);f=p.pop();)if(!(!(v=f.node)||(i=f.x0)>h||(o=f.y0)>d||(a=f.x1)<s||(u=f.y1)<l))if(v.length){var g=(i+a)/2,y=(o+u)/2;p.push(new Be(v[3],g,y,a,u),new Be(v[2],i,y,g,u),new Be(v[1],g,o,a,y),new Be(v[0],i,o,g,y)),(c=(n>=y)<<1|t>=g)&&(f=p[p.length-1],p[p.length-1]=p[p.length-1-c],p[p.length-1-c]=f)}else{var _=t-+this._x.call(null,v.data),b=n-+this._y.call(null,v.data),m=_*_+b*b;if(m<e){var x=Math.sqrt(e=m);s=t-x,l=n-x,h=t+x,d=n+x,r=v.data}}return r},id.remove=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t)))return this;var n,e,r,i,o,a,u,f,c,s,l,h,d=this._root,p=this._x0,v=this._y0,g=this._x1,y=this._y1;if(!d)return this;if(d.length)for(;;){if((c=o>=(u=(p+g)/2))?p=u:g=u,(s=a>=(f=(v+y)/2))?v=f:y=f,n=d,!(d=d[l=s<<1|c]))return this;if(!d.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;d.data!==t;)if(r=d,!(d=d.next))return this;return(i=d.next)&&delete d.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(d=n[0]||n[1]||n[2]||n[3])&&d===(n[3]||n[2]||n[1]||n[0])&&!d.length&&(e?e[h]=d:this._root=d),this):(this._root=i,this)},id.removeAll=function(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this},id.root=function(){return this._root},id.size=function(){var t=0;return this.visit(function(n){if(!n.length)do{++t}while(n=n.next)}),t},id.visit=function(t){var n,e,r,i,o,a,u=[],f=this._root;for(f&&u.push(new Be(f,this._x0,this._y0,this._x1,this._y1));n=u.pop();)if(!t(f=n.node,r=n.x0,i=n.y0,o=n.x1,a=n.y1)&&f.length){var c=(r+o)/2,s=(i+a)/2;(e=f[3])&&u.push(new Be(e,c,s,o,a)),(e=f[2])&&u.push(new Be(e,r,s,c,a)),(e=f[1])&&u.push(new Be(e,c,i,o,s)),(e=f[0])&&u.push(new Be(e,r,i,c,s))}return this},id.visitAfter=function(t){var n,e=[],r=[];for(this._root&&e.push(new Be(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var o,a=n.x0,u=n.y0,f=n.x1,c=n.y1,s=(a+f)/2,l=(u+c)/2;(o=i[0])&&e.push(new Be(o,a,u,s,l)),(o=i[1])&&e.push(new Be(o,s,u,f,l)),(o=i[2])&&e.push(new Be(o,a,l,s,c)),(o=i[3])&&e.push(new Be(o,s,l,f,c))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},id.x=function(t){return arguments.length?(this._x=t,this):this._x},id.y=function(t){return arguments.length?(this._y=t,this):this._y};var od=10,ad=Math.PI*(3-Math.sqrt(5)),ud=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;tr.prototype=nr.prototype,nr.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var fd,cd,sd={"%":function(t,n){return(100*t).toFixed(n)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},g:function(t,n){return t.toPrecision(n)},o:function(t){return Math.round(t).toString(8)},p:function(t,n){return er(100*t,n)},r:er,s:function(t,n){var e=Je(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(fd=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Je(t,Math.max(0,n+o-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},ld=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];or({decimal:".",thousands:",",grouping:[3],currency:["$",""]}),sr.prototype={constructor:sr,reset:function(){this.s=this.t=0},add:function(t){lr(jd,t,this.t),lr(this,jd.s,this.s),this.s?this.t+=jd.t:this.s=jd.t},valueOf:function(){return this.s}};var hd,dd,pd,vd,gd,yd,_d,bd,md,xd,wd,Md,Ad,Td,Nd,Sd,Ed,kd,Cd,Pd,zd,Rd,Ld,Dd,Ud,qd,Od,Yd,Bd,Fd,Id,jd=new sr,Hd=1e-6,Xd=1e-12,Gd=Math.PI,Vd=Gd/2,$d=Gd/4,Wd=2*Gd,Zd=180/Gd,Qd=Gd/180,Jd=Math.abs,Kd=Math.atan,tp=Math.atan2,np=Math.cos,ep=Math.ceil,rp=Math.exp,ip=Math.log,op=Math.pow,ap=Math.sin,up=Math.sign||function(t){return t>0?1:t<0?-1:0},fp=Math.sqrt,cp=Math.tan,sp={Feature:function(t,n){gr(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)gr(e[r].geometry,n)}},lp={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){yr(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)yr(e[r],n,0)},Polygon:function(t,n){_r(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)_r(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)gr(e[r],n)}},hp=cr(),dp=cr(),pp={point:vr,lineStart:vr,lineEnd:vr,polygonStart:function(){hp.reset(),pp.lineStart=mr,pp.lineEnd=xr},polygonEnd:function(){var t=+hp;dp.add(t<0?Wd+t:t),this.lineStart=this.lineEnd=this.point=vr},sphere:function(){dp.add(Wd)}},vp=cr(),gp={point:Pr,lineStart:Rr,lineEnd:Lr,polygonStart:function(){gp.point=Dr,gp.lineStart=Ur,gp.lineEnd=qr,vp.reset(),pp.polygonStart()},polygonEnd:function(){pp.polygonEnd(),gp.point=Pr,gp.lineStart=Rr,gp.lineEnd=Lr,hp<0?(yd=-(bd=180),_d=-(md=90)):vp>Hd?md=90:vp<-Hd&&(_d=-90),Nd[0]=yd,Nd[1]=bd}},yp={sphere:vr,point:Fr,lineStart:jr,lineEnd:Gr,polygonStart:function(){yp.lineStart=Vr,yp.lineEnd=$r},polygonEnd:function(){yp.lineStart=jr,yp.lineEnd=Gr}};Kr.invert=Kr;var _p,bp,mp,xp,wp,Mp,Ap,Tp,Np,Sp,Ep,kp=cr(),Cp=di(function(){return!0},function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,a){var u=o>0?Gd:-Gd,f=Jd(o-e);Jd(f-Gd)<Hd?(t.point(e,r=(r+a)/2>0?Vd:-Vd),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),t.point(o,r),n=0):i!==u&&f>=Gd&&(Jd(e-i)<Hd&&(e-=i*Hd),Jd(o-u)<Hd&&(o-=u*Hd),r=function(t,n,e,r){var i,o,a=ap(t-e);return Jd(a)>Hd?Kd((ap(n)*(o=np(r))*ap(e)-ap(r)*(i=np(n))*ap(t))/(i*o*a)):(n+r)/2}(e,r,o,a),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),n=0),t.point(e=o,r=a),i=u},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}},function(t,n,e,r){var i;if(null==t)i=e*Vd,r.point(-Gd,i),r.point(0,i),r.point(Gd,i),r.point(Gd,0),r.point(Gd,-i),r.point(0,-i),r.point(-Gd,-i),r.point(-Gd,0),r.point(-Gd,i);else if(Jd(t[0]-n[0])>Hd){var o=t[0]<n[0]?Gd:-Gd;i=e*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(n[0],n[1])},[-Gd,-Vd]),Pp=1e9,zp=-Pp,Rp=cr(),Lp={sphere:vr,point:vr,lineStart:function(){Lp.point=bi,Lp.lineEnd=_i},lineEnd:vr,polygonStart:vr,polygonEnd:vr},Dp=[null,null],Up={type:"LineString",coordinates:Dp},qp={Feature:function(t,n){return Mi(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)if(Mi(e[r].geometry,n))return!0;return!1}},Op={Sphere:function(){return!0},Point:function(t,n){return Ai(t.coordinates,n)},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Ai(e[r],n))return!0;return!1},LineString:function(t,n){return Ti(t.coordinates,n)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Ti(e[r],n))return!0;return!1},Polygon:function(t,n){return Ni(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Ni(e[r],n))return!0;return!1},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)if(Mi(e[r],n))return!0;return!1}},Yp=cr(),Bp=cr(),Fp={point:vr,lineStart:vr,lineEnd:vr,polygonStart:function(){Fp.lineStart=Ri,Fp.lineEnd=Ui},polygonEnd:function(){Fp.lineStart=Fp.lineEnd=Fp.point=vr,Yp.add(Jd(Bp)),Bp.reset()},result:function(){var t=Yp/2;return Yp.reset(),t}},Ip=1/0,jp=Ip,Hp=-Ip,Xp=Hp,Gp={point:function(t,n){t<Ip&&(Ip=t),t>Hp&&(Hp=t),n<jp&&(jp=n),n>Xp&&(Xp=n)},lineStart:vr,lineEnd:vr,polygonStart:vr,polygonEnd:vr,result:function(){var t=[[Ip,jp],[Hp,Xp]];return Hp=Xp=-(jp=Ip=1/0),t}},Vp=0,$p=0,Wp=0,Zp=0,Qp=0,Jp=0,Kp=0,tv=0,nv=0,ev={point:qi,lineStart:Oi,lineEnd:Fi,polygonStart:function(){ev.lineStart=Ii,ev.lineEnd=ji},polygonEnd:function(){ev.point=qi,ev.lineStart=Oi,ev.lineEnd=Fi},result:function(){var t=nv?[Kp/nv,tv/nv]:Jp?[Zp/Jp,Qp/Jp]:Wp?[Vp/Wp,$p/Wp]:[NaN,NaN];return Vp=$p=Wp=Zp=Qp=Jp=Kp=tv=nv=0,t}};Gi.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,Wd)}},result:vr};var rv,iv,ov,av,uv,fv=cr(),cv={point:vr,lineStart:function(){cv.point=Vi},lineEnd:function(){rv&&$i(iv,ov),cv.point=vr},polygonStart:function(){rv=!0},polygonEnd:function(){rv=null},result:function(){var t=+fv;return fv.reset(),t}};Wi.prototype={_radius:4.5,_circle:Zi(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:null==this._circle&&(this._circle=Zi(this._radius)),this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}},Ji.prototype={constructor:Ji,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var sv=16,lv=np(30*Qd),hv=Qi({point:function(t,n){this.stream.point(t*Qd,n*Qd)}}),dv=ho(function(t){return fp(2/(1+t))});dv.invert=po(function(t){return 2*dr(t/2)});var pv=ho(function(t){return(t=hr(t))&&t/ap(t)});pv.invert=po(function(t){return t}),vo.invert=function(t,n){return[t,2*Kd(rp(n))-Vd]},bo.invert=bo,xo.invert=po(Kd),Mo.invert=function(t,n){var e,r=n,i=25;do{var o=r*r,a=o*o;r-=e=(r*(1.007226+o*(.015085+a*(.028874*o-.044475-.005916*a)))-n)/(1.007226+o*(.045255+a*(.259866*o-.311325-.005916*11*a)))}while(Jd(e)>Hd&&--i>0);return[t/(.8707+(o=r*r)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),r]},Ao.invert=po(dr),To.invert=po(function(t){return 2*Kd(t)}),No.invert=function(t,n){return[-n,2*Kd(rp(t))-Vd]},Do.prototype=Po.prototype={constructor:Do,count:function(){return this.eachAfter(Co)},each:function(t){var n,e,r,i,o=this,a=[o];do{for(n=a.reverse(),a=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r<i;++r)a.push(e[r])}while(a.length);return this},eachAfter:function(t){for(var n,e,r,i=this,o=[i],a=[];i=o.pop();)if(a.push(i),n=i.children)for(e=0,r=n.length;e<r;++e)o.push(n[e]);for(;i=a.pop();)t(i);return this},eachBefore:function(t){for(var n,e,r=this,i=[r];r=i.pop();)if(t(r),n=r.children)for(e=n.length-1;e>=0;--e)i.push(n[e]);return this},sum:function(t){return this.eachAfter(function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e})},sort:function(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){var t=[];return this.each(function(n){t.push(n)}),t},leaves:function(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},links:function(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n},copy:function(){return Po(this).eachBefore(Ro)}};var vv=Array.prototype.slice,gv="$",yv={depth:-1},_v={};ca.prototype=Object.create(Do.prototype);var bv=(1+Math.sqrt(5))/2,mv=function t(n){function e(t,e,r,i,o){la(n,t,e,r,i,o)}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(bv),xv=function t(n){function e(t,e,r,i,o){if((a=t._squarify)&&a.ratio===n)for(var a,u,f,c,s,l=-1,h=a.length,d=t.value;++l<h;){for(f=(u=a[l]).children,c=u.value=0,s=f.length;c<s;++c)u.value+=f[c].value;u.dice?na(u,e,r,i,r+=(o-r)*u.value/d):sa(u,e,r,e+=(i-e)*u.value/d,o),d-=u.value}else t._squarify=a=la(n,t,e,r,i,o),a.ratio=n}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(bv),wv=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,1===arguments.length?(e=t,t=0):e-=t,function(){return n()*e+t}}return e.source=t,e}(va),Mv=function t(n){function e(t,e){var r,i;return t=null==t?0:+t,e=null==e?1:+e,function(){var o;if(null!=r)o=r,r=null;else do{r=2*n()-1,o=2*n()-1,i=r*r+o*o}while(!i||i>1);return t+e*o*Math.sqrt(-2*Math.log(i)/i)}}return e.source=t,e}(va),Av=function t(n){function e(){var t=Mv.source(n).apply(this,arguments);return function(){return Math.exp(t())}}return e.source=t,e}(va),Tv=function t(n){function e(t){return function(){for(var e=0,r=0;r<t;++r)e+=n();return e}}return e.source=t,e}(va),Nv=function t(n){function e(t){var e=Tv.source(n)(t);return function(){return e()/t}}return e.source=t,e}(va),Sv=function t(n){function e(t){return function(){return-Math.log(1-n())/t}}return e.source=t,e}(va),Ev=Array.prototype,kv=Ev.map,Cv=Ev.slice,Pv={name:"implicit"},zv=[0,1],Rv=new Date,Lv=new Date,Dv=Ia(function(){},function(t,n){t.setTime(+t+n)},function(t,n){return n-t});Dv.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Ia(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):Dv:null};var Uv=Dv.range,qv=6e4,Ov=6048e5,Yv=Ia(function(t){t.setTime(1e3*Math.floor(t/1e3))},function(t,n){t.setTime(+t+1e3*n)},function(t,n){return(n-t)/1e3},function(t){return t.getUTCSeconds()}),Bv=Yv.range,Fv=Ia(function(t){t.setTime(Math.floor(t/qv)*qv)},function(t,n){t.setTime(+t+n*qv)},function(t,n){return(n-t)/qv},function(t){return t.getMinutes()}),Iv=Fv.range,jv=Ia(function(t){var n=t.getTimezoneOffset()*qv%36e5;n<0&&(n+=36e5),t.setTime(36e5*Math.floor((+t-n)/36e5)+n)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getHours()}),Hv=jv.range,Xv=Ia(function(t){t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*qv)/864e5},function(t){return t.getDate()-1}),Gv=Xv.range,Vv=ja(0),$v=ja(1),Wv=ja(2),Zv=ja(3),Qv=ja(4),Jv=ja(5),Kv=ja(6),tg=Vv.range,ng=$v.range,eg=Wv.range,rg=Zv.range,ig=Qv.range,og=Jv.range,ag=Kv.range,ug=Ia(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,n){t.setMonth(t.getMonth()+n)},function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())},function(t){return t.getMonth()}),fg=ug.range,cg=Ia(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t,n){return n.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});cg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Ia(function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,e){n.setFullYear(n.getFullYear()+e*t)}):null};var sg=cg.range,lg=Ia(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*qv)},function(t,n){return(n-t)/qv},function(t){return t.getUTCMinutes()}),hg=lg.range,dg=Ia(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getUTCHours()}),pg=dg.range,vg=Ia(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/864e5},function(t){return t.getUTCDate()-1}),gg=vg.range,yg=Ha(0),_g=Ha(1),bg=Ha(2),mg=Ha(3),xg=Ha(4),wg=Ha(5),Mg=Ha(6),Ag=yg.range,Tg=_g.range,Ng=bg.range,Sg=mg.range,Eg=xg.range,kg=wg.range,Cg=Mg.range,Pg=Ia(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCMonth(t.getUTCMonth()+n)},function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()}),zg=Pg.range,Rg=Ia(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)},function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});Rg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Ia(function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)}):null};var Lg,Dg=Rg.range,Ug={"-":"",_:" ",0:"0"},qg=/^\s*\d+/,Og=/^%/,Yg=/[\\^$*+?|[\]().{}]/g;nf({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Bg="%Y-%m-%dT%H:%M:%S.%LZ",Fg=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat(Bg),Ig=+new Date("2000-01-01T00:00:00.000Z")?function(t){var n=new Date(t);return isNaN(n)?null:n}:t.utcParse(Bg),jg=1e3,Hg=60*jg,Xg=60*Hg,Gg=24*Xg,Vg=7*Gg,$g=30*Gg,Wg=365*Gg,Zg=ff("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),Qg=ff("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),Jg=ff("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),Kg=ff("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),ty=ff("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),ny=ff("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),ey=ff("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),ry=ff("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),iy=ff("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"),oy=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(ff),ay=cf(oy),uy=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(ff),fy=cf(uy),cy=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(ff),sy=cf(cy),ly=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(ff),hy=cf(ly),dy=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(ff),py=cf(dy),vy=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(ff),gy=cf(vy),yy=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(ff),_y=cf(yy),by=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(ff),my=cf(by),xy=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(ff),wy=cf(xy),My=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(ff),Ay=cf(My),Ty=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(ff),Ny=cf(Ty),Sy=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(ff),Ey=cf(Sy),ky=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(ff),Cy=cf(ky),Py=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(ff),zy=cf(Py),Ry=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(ff),Ly=cf(Ry),Dy=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(ff),Uy=cf(Dy),qy=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(ff),Oy=cf(qy),Yy=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(ff),By=cf(Yy),Fy=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(ff),Iy=cf(Fy),jy=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(ff),Hy=cf(jy),Xy=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(ff),Gy=cf(Xy),Vy=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(ff),$y=cf(Vy),Wy=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(ff),Zy=cf(Wy),Qy=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(ff),Jy=cf(Qy),Ky=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(ff),t_=cf(Ky),n_=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(ff),e_=cf(n_),r_=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(ff),i_=cf(r_),o_=xl(Zt(300,.5,0),Zt(-240,.5,1)),a_=xl(Zt(-100,.75,.35),Zt(80,1.5,.8)),u_=xl(Zt(260,.75,.35),Zt(80,1.5,.8)),f_=Zt(),c_=Rt(),s_=Math.PI/3,l_=2*Math.PI/3,h_=sf(ff("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),d_=sf(ff("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),p_=sf(ff("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),v_=sf(ff("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),g_=Math.abs,y_=Math.atan2,__=Math.cos,b_=Math.max,m_=Math.min,x_=Math.sin,w_=Math.sqrt,M_=1e-12,A_=Math.PI,T_=A_/2,N_=2*A_;bf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var S_=Ef(mf);Sf.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var E_=Array.prototype.slice,k_={draw:function(t,n){var e=Math.sqrt(n/A_);t.moveTo(e,0),t.arc(0,0,e,0,N_)}},C_={draw:function(t,n){var e=Math.sqrt(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}},P_=Math.sqrt(1/3),z_=2*P_,R_={draw:function(t,n){var e=Math.sqrt(n/z_),r=e*P_;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},L_=Math.sin(A_/10)/Math.sin(7*A_/10),D_=Math.sin(N_/10)*L_,U_=-Math.cos(N_/10)*L_,q_={draw:function(t,n){var e=Math.sqrt(.8908130915292852*n),r=D_*e,i=U_*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var a=N_*o/5,u=Math.cos(a),f=Math.sin(a);t.lineTo(f*e,-u*e),t.lineTo(u*r-f*i,f*r+u*i)}t.closePath()}},O_={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},Y_=Math.sqrt(3),B_={draw:function(t,n){var e=-Math.sqrt(n/(3*Y_));t.moveTo(0,2*e),t.lineTo(-Y_*e,-e),t.lineTo(Y_*e,-e),t.closePath()}},F_=Math.sqrt(3)/2,I_=1/Math.sqrt(12),j_=3*(I_/2+1),H_={draw:function(t,n){var e=Math.sqrt(n/j_),r=e/2,i=e*I_,o=r,a=e*I_+e,u=-o,f=a;t.moveTo(r,i),t.lineTo(o,a),t.lineTo(u,f),t.lineTo(-.5*r-F_*i,F_*r+-.5*i),t.lineTo(-.5*o-F_*a,F_*o+-.5*a),t.lineTo(-.5*u-F_*f,F_*u+-.5*f),t.lineTo(-.5*r+F_*i,-.5*i-F_*r),t.lineTo(-.5*o+F_*a,-.5*a-F_*o),t.lineTo(-.5*u+F_*f,-.5*f-F_*u),t.closePath()}},X_=[k_,C_,R_,O_,q_,B_,H_];Ff.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Bf(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Bf(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},If.prototype={areaStart:Yf,areaEnd:Yf,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:Bf(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},jf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:Bf(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},Hf.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],a=t[e]-i,u=n[e]-o,f=-1;++f<=e;)r=f/e,this._basis.point(this._beta*t[f]+(1-this._beta)*(i+r*a),this._beta*n[f]+(1-this._beta)*(o+r*u));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var G_=function t(n){function e(t){return 1===n?new Ff(t):new Hf(t,n)}return e.beta=function(n){return t(+n)},e}(.85);Gf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Xf(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:Xf(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var V_=function t(n){function e(t){return new Gf(t,n)}return e.tension=function(n){return t(+n)},e}(0);Vf.prototype={areaStart:Yf,areaEnd:Yf,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Xf(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var $_=function t(n){function e(t){return new Vf(t,n)}return e.tension=function(n){return t(+n)},e}(0);$f.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Xf(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var W_=function t(n){function e(t){return new $f(t,n)}return e.tension=function(n){return t(+n)},e}(0);Zf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:Wf(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Z_=function t(n){function e(t){return n?new Zf(t,n):new Gf(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Qf.prototype={areaStart:Yf,areaEnd:Yf,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Wf(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Q_=function t(n){function e(t){return n?new Qf(t,n):new Vf(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Jf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Wf(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var J_=function t(n){function e(t){return n?new Jf(t,n):new $f(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Kf.prototype={areaStart:Yf,areaEnd:Yf,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}},ic.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:rc(this,this._t0,ec(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var e=NaN;if(t=+t,n=+n,t!==this._x1||n!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,rc(this,ec(this,e=nc(this,t,n)),e);break;default:rc(this,this._t0,e=nc(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(oc.prototype=Object.create(ic.prototype)).point=function(t,n){ic.prototype.point.call(this,n,t)},ac.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,e,r,i,o){this._context.bezierCurveTo(n,t,r,e,o,i)}},uc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,e=t.length;if(e)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),2===e)this._context.lineTo(t[1],n[1]);else for(var r=fc(t),i=fc(n),o=0,a=1;a<e;++o,++a)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],t[a],n[a]);(this._line||0!==this._line&&1===e)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,n){this._x.push(+t),this._y.push(+n)}},cc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}},_c.prototype={constructor:_c,insert:function(t,n){var e,r,i;if(t){if(n.P=t,n.N=t.N,t.N&&(t.N.P=n),t.N=n,t.R){for(t=t.R;t.L;)t=t.L;t.L=n}else t.R=n;e=t}else this._?(t=wc(this._),n.P=null,n.N=t,t.P=t.L=n,e=t):(n.P=n.N=null,this._=n,e=null);for(n.L=n.R=null,n.U=e,n.C=!0,t=n;e&&e.C;)e===(r=e.U).L?(i=r.R)&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.R&&(mc(this,e),e=(t=e).U),e.C=!1,r.C=!0,xc(this,r)):(i=r.L)&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.L&&(xc(this,e),e=(t=e).U),e.C=!1,r.C=!0,mc(this,r)),e=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var n,e,r,i=t.U,o=t.L,a=t.R;if(e=o?a?wc(a):o:a,i?i.L===t?i.L=e:i.R=e:this._=e,o&&a?(r=e.C,e.C=t.C,e.L=o,o.U=e,e!==a?(i=e.U,e.U=t.U,t=e.R,i.L=t,e.R=a,a.U=e):(e.U=i,i=e,t=e.R)):(r=t.C,t=e),t&&(t.U=i),!r)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===i.L){if((n=i.R).C&&(n.C=!1,i.C=!0,mc(this,i),n=i.R),n.L&&n.L.C||n.R&&n.R.C){n.R&&n.R.C||(n.L.C=!1,n.C=!0,xc(this,n),n=i.R),n.C=i.C,i.C=n.R.C=!1,mc(this,i),t=this._;break}}else if((n=i.L).C&&(n.C=!1,i.C=!0,xc(this,i),n=i.L),n.L&&n.L.C||n.R&&n.R.C){n.L&&n.L.C||(n.R.C=!1,n.C=!0,mc(this,n),n=i.L),n.C=i.C,i.C=n.L.C=!1,xc(this,i),t=this._;break}n.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}};var K_,tb,nb,eb,rb,ib=[],ob=[],ab=1e-6,ub=1e-12;Bc.prototype={constructor:Bc,polygons:function(){var t=this.edges;return this.cells.map(function(n){var e=n.halfedges.map(function(e){return kc(n,t[e])});return e.data=n.site.data,e})},triangles:function(){var t=[],n=this.edges;return this.cells.forEach(function(e,r){if(o=(i=e.halfedges).length)for(var i,o,a,u=e.site,f=-1,c=n[i[o-1]],s=c.left===u?c.right:c.left;++f<o;)a=s,s=(c=n[i[f]]).left===u?c.right:c.left,a&&s&&r<a.index&&r<s.index&&Oc(u,a,s)<0&&t.push([u.data,a.data,s.data])}),t},links:function(){return this.edges.filter(function(t){return t.right}).map(function(t){return{source:t.left.data,target:t.right.data}})},find:function(t,n,e){for(var r,i,o=this,a=o._found||0,u=o.cells.length;!(i=o.cells[a]);)if(++a>=u)return null;var f=t-i.site[0],c=n-i.site[1],s=f*f+c*c;do{i=o.cells[r=a],a=null,i.halfedges.forEach(function(e){var r=o.edges[e],u=r.left;if(u!==i.site&&u||(u=r.right)){var f=t-u[0],c=n-u[1],l=f*f+c*c;l<s&&(s=l,a=u.index)}})}while(null!==a);return o._found=r,null==e||s<=e*e?i.site:null}},Ic.prototype={constructor:Ic,scale:function(t){return 1===t?this:new Ic(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new Ic(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var fb=new Ic(1,0,0);jc.prototype=Ic.prototype,t.version="5.5.0",t.bisect=Kc,t.bisectRight=Kc,t.bisectLeft=ts,t.ascending=n,t.bisector=e,t.cross=function(t,n,e){var i,o,a,u,f=t.length,c=n.length,s=new Array(f*c);for(null==e&&(e=r),i=a=0;i<f;++i)for(u=t[i],o=0;o<c;++o,++a)s[a]=e(u,n[o]);return s},t.descending=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},t.deviation=a,t.extent=u,t.histogram=function(){function t(t){var i,o,a=t.length,u=new Array(a);for(i=0;i<a;++i)u[i]=n(t[i],i,t);var f=e(u),c=f[0],l=f[1],h=r(u,c,l);Array.isArray(h)||(h=d(c,l,h),h=s(Math.ceil(c/h)*h,Math.floor(l/h)*h,h));for(var p=h.length;h[0]<=c;)h.shift(),--p;for(;h[p-1]>l;)h.pop(),--p;var v,g=new Array(p+1);for(i=0;i<=p;++i)(v=g[i]=[]).x0=i>0?h[i-1]:c,v.x1=i<p?h[i]:l;for(i=0;i<a;++i)c<=(o=u[i])&&o<=l&&g[Kc(h,o,0,p)].push(t[i]);return g}var n=c,e=u,r=p;return t.value=function(e){return arguments.length?(n="function"==typeof e?e:f(e),t):n},t.domain=function(n){return arguments.length?(e="function"==typeof n?n:f([n[0],n[1]]),t):e},t.thresholds=function(n){return arguments.length?(r="function"==typeof n?n:Array.isArray(n)?f(es.call(n)):f(n),t):r},t},t.thresholdFreedmanDiaconis=function(t,e,r){return t=rs.call(t,i).sort(n),Math.ceil((r-e)/(2*(v(t,.75)-v(t,.25))*Math.pow(t.length,-1/3)))},t.thresholdScott=function(t,n,e){return Math.ceil((e-n)/(3.5*a(t)*Math.pow(t.length,-1/3)))},t.thresholdSturges=p,t.max=g,t.mean=function(t,n){var e,r=t.length,o=r,a=-1,u=0;if(null==n)for(;++a<r;)isNaN(e=i(t[a]))?--o:u+=e;else for(;++a<r;)isNaN(e=i(n(t[a],a,t)))?--o:u+=e;if(o)return u/o},t.median=function(t,e){var r,o=t.length,a=-1,u=[];if(null==e)for(;++a<o;)isNaN(r=i(t[a]))||u.push(r);else for(;++a<o;)isNaN(r=i(e(t[a],a,t)))||u.push(r);return v(u.sort(n),.5)},t.merge=y,t.min=_,t.pairs=function(t,n){null==n&&(n=r);for(var e=0,i=t.length-1,o=t[0],a=new Array(i<0?0:i);e<i;)a[e]=n(o,o=t[++e]);return a},t.permute=function(t,n){for(var e=n.length,r=new Array(e);e--;)r[e]=t[n[e]];return r},t.quantile=v,t.range=s,t.scan=function(t,e){if(r=t.length){var r,i,o=0,a=0,u=t[a];for(null==e&&(e=n);++o<r;)(e(i=t[o],u)<0||0!==e(u,u))&&(u=i,a=o);return 0===e(u,u)?a:void 0}},t.shuffle=function(t,n,e){for(var r,i,o=(null==e?t.length:e)-(n=null==n?0:+n);o;)i=Math.random()*o--|0,r=t[o+n],t[o+n]=t[i+n],t[i+n]=r;return t},t.sum=function(t,n){var e,r=t.length,i=-1,o=0;if(null==n)for(;++i<r;)(e=+t[i])&&(o+=e);else for(;++i<r;)(e=+n(t[i],i,t))&&(o+=e);return o},t.ticks=l,t.tickIncrement=h,t.tickStep=d,t.transpose=b,t.variance=o,t.zip=function(){return b(arguments)},t.axisTop=function(t){return T(fs,t)},t.axisRight=function(t){return T(cs,t)},t.axisBottom=function(t){return T(ss,t)},t.axisLeft=function(t){return T(ls,t)},t.brush=function(){return ee(bh)},t.brushX=function(){return ee(yh)},t.brushY=function(){return ee(_h)},t.brushSelection=function(t){var n=t.__brush;return n?n.dim.output(n.selection):null},t.chord=function(){function t(t){var o,a,u,f,c,l,h=t.length,d=[],p=s(h),v=[],g=[],y=g.groups=new Array(h),_=new Array(h*h);for(o=0,c=-1;++c<h;){for(a=0,l=-1;++l<h;)a+=t[c][l];d.push(a),v.push(s(h)),o+=a}for(e&&p.sort(function(t,n){return e(d[t],d[n])}),r&&v.forEach(function(n,e){n.sort(function(n,i){return r(t[e][n],t[e][i])})}),f=(o=Ch(0,kh-n*h)/o)?n:kh/h,a=0,c=-1;++c<h;){for(u=a,l=-1;++l<h;){var b=p[c],m=v[b][l],x=t[b][m],w=a,M=a+=x*o;_[m*h+b]={index:b,subindex:m,startAngle:w,endAngle:M,value:x}}y[b]={index:b,startAngle:u,endAngle:a,value:d[b]},a+=f}for(c=-1;++c<h;)for(l=c-1;++l<h;){var A=_[l*h+c],T=_[c*h+l];(A.value||T.value)&&g.push(A.value<T.value?{source:T,target:A}:{source:A,target:T})}return i?g.sort(i):g}var n=0,e=null,r=null,i=null;return t.padAngle=function(e){return arguments.length?(n=Ch(0,e),t):n},t.sortGroups=function(n){return arguments.length?(e=n,t):e},t.sortSubgroups=function(n){return arguments.length?(r=n,t):r},t.sortChords=function(n){return arguments.length?(null==n?i=null:(i=function(t){return function(n,e){return t(n.source.value+n.target.value,e.source.value+e.target.value)}}(n))._=n,t):i&&i._},t},t.ribbon=function(){function t(){var t,u=Ph.call(arguments),f=n.apply(this,u),c=e.apply(this,u),s=+r.apply(this,(u[0]=f,u)),l=i.apply(this,u)-Eh,h=o.apply(this,u)-Eh,d=s*Th(l),p=s*Nh(l),v=+r.apply(this,(u[0]=c,u)),g=i.apply(this,u)-Eh,y=o.apply(this,u)-Eh;if(a||(a=t=oe()),a.moveTo(d,p),a.arc(0,0,s,l,h),l===g&&h===y||(a.quadraticCurveTo(0,0,v*Th(g),v*Nh(g)),a.arc(0,0,v,g,y)),a.quadraticCurveTo(0,0,d,p),a.closePath(),t)return a=null,t+""||null}var n=ae,e=ue,r=fe,i=ce,o=se,a=null;return t.radius=function(n){return arguments.length?(r="function"==typeof n?n:re(+n),t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:re(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:re(+n),t):o},t.source=function(e){return arguments.length?(n=e,t):n},t.target=function(n){return arguments.length?(e=n,t):e},t.context=function(n){return arguments.length?(a=null==n?null:n,t):a},t},t.nest=function(){function t(n,i,a,u){if(i>=o.length)return null!=e&&n.sort(e),null!=r?r(n):n;for(var f,c,s,l=-1,h=n.length,d=o[i++],p=he(),v=a();++l<h;)(s=p.get(f=d(c=n[l])+""))?s.push(c):p.set(f,[c]);return p.each(function(n,e){u(v,e,t(n,i,a,u))}),v}function n(t,e){if(++e>o.length)return t;var i,u=a[e-1];return null!=r&&e>=o.length?i=t.entries():(i=[],t.each(function(t,r){i.push({key:r,values:n(t,e)})})),null!=u?i.sort(function(t,n){return u(t.key,n.key)}):i}var e,r,i,o=[],a=[];return i={object:function(n){return t(n,0,de,pe)},map:function(n){return t(n,0,ve,ge)},entries:function(e){return n(t(e,0,ve,ge),0)},key:function(t){return o.push(t),i},sortKeys:function(t){return a[o.length-1]=t,i},sortValues:function(t){return e=t,i},rollup:function(t){return r=t,i}}},t.set=_e,t.map=he,t.keys=function(t){var n=[];for(var e in t)n.push(e);return n},t.values=function(t){var n=[];for(var e in t)n.push(t[e]);return n},t.entries=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},t.color=kt,t.rgb=Rt,t.hsl=qt,t.lab=Ft,t.hcl=$t,t.lch=function(t,n,e,r){return 1===arguments.length?Vt(t):new Wt(e,n,t,null==r?1:r)},t.gray=function(t,n){return new It(t,0,0,null==n?1:n)},t.cubehelix=Zt,t.contours=Me,t.contourDensity=function(){function t(t){var e=new Float32Array(v*y),r=new Float32Array(v*y);t.forEach(function(t,n,r){var i=a(t,n,r)+p>>h,o=u(t,n,r)+p>>h;i>=0&&i<v&&o>=0&&o<y&&++e[i+o*v]}),Ae({width:v,height:y,data:e},{width:v,height:y,data:r},l>>h),Te({width:v,height:y,data:r},{width:v,height:y,data:e},l>>h),Ae({width:v,height:y,data:e},{width:v,height:y,data:r},l>>h),Te({width:v,height:y,data:r},{width:v,height:y,data:e},l>>h),Ae({width:v,height:y,data:e},{width:v,height:y,data:r},l>>h),Te({width:v,height:y,data:r},{width:v,height:y,data:e},l>>h);var i=_(e);if(!Array.isArray(i)){var o=g(e);i=d(0,o,i),(i=s(0,Math.floor(o/i)*i,i)).shift()}return Me().thresholds(i).size([v,y])(e).map(n)}function n(t){return t.value*=Math.pow(2,-2*h),t.coordinates.forEach(e),t}function e(t){t.forEach(r)}function r(t){t.forEach(i)}function i(t){t[0]=t[0]*Math.pow(2,h)-p,t[1]=t[1]*Math.pow(2,h)-p}function o(){return p=3*l,v=f+2*p>>h,y=c+2*p>>h,t}var a=Ne,u=Se,f=960,c=500,l=20,h=2,p=3*l,v=f+2*p>>h,y=c+2*p>>h,_=me(20);return t.x=function(n){return arguments.length?(a="function"==typeof n?n:me(+n),t):a},t.y=function(n){return arguments.length?(u="function"==typeof n?n:me(+n),t):u},t.size=function(t){if(!arguments.length)return[f,c];var n=Math.ceil(t[0]),e=Math.ceil(t[1]);if(!(n>=0||n>=0))throw new Error("invalid size");return f=n,c=e,o()},t.cellSize=function(t){if(!arguments.length)return 1<<h;if(!((t=+t)>=1))throw new Error("invalid cell size");return h=Math.floor(Math.log(t)/Math.LN2),o()},t.thresholds=function(n){return arguments.length?(_="function"==typeof n?n:Array.isArray(n)?me(Uh.call(n)):me(n),t):_},t.bandwidth=function(t){if(!arguments.length)return Math.sqrt(l*(l+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return l=Math.round((Math.sqrt(4*t*t+1)-1)/2),o()},t},t.dispatch=N,t.drag=function(){function n(t){t.on("mousedown.drag",e).filter(g).on("touchstart.drag",o).on("touchmove.drag",a).on("touchend.drag touchcancel.drag",u).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function e(){if(!h&&d.apply(this,arguments)){var n=f("mouse",p.apply(this,arguments),pt,this,arguments);n&&(ct(t.event.view).on("mousemove.drag",r,!0).on("mouseup.drag",i,!0),_t(t.event.view),gt(),l=!1,c=t.event.clientX,s=t.event.clientY,n("start"))}}function r(){if(yt(),!l){var n=t.event.clientX-c,e=t.event.clientY-s;l=n*n+e*e>m}y.mouse("drag")}function i(){ct(t.event.view).on("mousemove.drag mouseup.drag",null),bt(t.event.view,l),yt(),y.mouse("end")}function o(){if(d.apply(this,arguments)){var n,e,r=t.event.changedTouches,i=p.apply(this,arguments),o=r.length;for(n=0;n<o;++n)(e=f(r[n].identifier,i,vt,this,arguments))&&(gt(),e("start"))}}function a(){var n,e,r=t.event.changedTouches,i=r.length;for(n=0;n<i;++n)(e=y[r[n].identifier])&&(yt(),e("drag"))}function u(){var n,e,r=t.event.changedTouches,i=r.length;for(h&&clearTimeout(h),h=setTimeout(function(){h=null},500),n=0;n<i;++n)(e=y[r[n].identifier])&&(gt(),e("end"))}function f(e,r,i,o,a){var u,f,c,s=i(r,e),l=_.copy();if(ot(new xt(n,"beforestart",u,e,b,s[0],s[1],0,0,l),function(){return null!=(t.event.subject=u=v.apply(o,a))&&(f=u.x-s[0]||0,c=u.y-s[1]||0,!0)}))return function t(h){var d,p=s;switch(h){case"start":y[e]=t,d=b++;break;case"end":delete y[e],--b;case"drag":s=i(r,e),d=b}ot(new xt(n,h,u,e,d,s[0]+f,s[1]+c,s[0]-p[0],s[1]-p[1],l),l.apply,l,[h,o,a])}}var c,s,l,h,d=wt,p=Mt,v=At,g=Tt,y={},_=N("start","drag","end"),b=0,m=0;return n.filter=function(t){return arguments.length?(d="function"==typeof t?t:mt(!!t),n):d},n.container=function(t){return arguments.length?(p="function"==typeof t?t:mt(t),n):p},n.subject=function(t){return arguments.length?(v="function"==typeof t?t:mt(t),n):v},n.touchable=function(t){return arguments.length?(g="function"==typeof t?t:mt(!!t),n):g},n.on=function(){var t=_.on.apply(_,arguments);return t===_?n:t},n.clickDistance=function(t){return arguments.length?(m=(t=+t)*t,n):Math.sqrt(m)},n},t.dragDisable=_t,t.dragEnable=bt,t.dsvFormat=ke,t.csvParse=Hh,t.csvParseRows=Xh,t.csvFormat=Gh,t.csvFormatRows=Vh,t.tsvParse=Wh,t.tsvParseRows=Zh,t.tsvFormat=Qh,t.tsvFormatRows=Jh,t.easeLinear=function(t){return+t},t.easeQuad=Fn,t.easeQuadIn=function(t){return t*t},t.easeQuadOut=function(t){return t*(2-t)},t.easeQuadInOut=Fn,t.easeCubic=In,t.easeCubicIn=function(t){return t*t*t},t.easeCubicOut=function(t){return--t*t*t+1},t.easeCubicInOut=In,t.easePoly=Xl,t.easePolyIn=jl,t.easePolyOut=Hl,t.easePolyInOut=Xl,t.easeSin=jn,t.easeSinIn=function(t){return 1-Math.cos(t*Vl)},t.easeSinOut=function(t){return Math.sin(t*Vl)},t.easeSinInOut=jn,t.easeExp=Hn,t.easeExpIn=function(t){return Math.pow(2,10*t-10)},t.easeExpOut=function(t){return 1-Math.pow(2,-10*t)},t.easeExpInOut=Hn,t.easeCircle=Xn,t.easeCircleIn=function(t){return 1-Math.sqrt(1-t*t)},t.easeCircleOut=function(t){return Math.sqrt(1- --t*t)},t.easeCircleInOut=Xn,t.easeBounce=Gn,t.easeBounceIn=function(t){return 1-Gn(1-t)},t.easeBounceOut=Gn,t.easeBounceInOut=function(t){return((t*=2)<=1?1-Gn(1-t):Gn(t-1)+1)/2},t.easeBack=ah,t.easeBackIn=ih,t.easeBackOut=oh,t.easeBackInOut=ah,t.easeElastic=ch,t.easeElasticIn=fh,t.easeElasticOut=ch,t.easeElasticInOut=sh,t.blob=function(t,n){return fetch(t,n).then(Ce)},t.buffer=function(t,n){return fetch(t,n).then(Pe)},t.dsv=function(t,n,e,r){3===arguments.length&&"function"==typeof e&&(r=e,e=void 0);var i=ke(t);return Re(n,e).then(function(t){return i.parse(t,r)})},t.csv=Kh,t.tsv=td,t.image=function(t,n){return new Promise(function(e,r){var i=new Image;for(var o in n)i[o]=n[o];i.onerror=r,i.onload=function(){e(i)},i.src=t})},t.json=function(t,n){return fetch(t,n).then(De)},t.text=Re,t.xml=nd,t.html=ed,t.svg=rd,t.forceCenter=function(t,n){function e(){var e,i,o=r.length,a=0,u=0;for(e=0;e<o;++e)a+=(i=r[e]).x,u+=i.y;for(a=a/o-t,u=u/o-n,e=0;e<o;++e)(i=r[e]).x-=a,i.y-=u}var r;return null==t&&(t=0),null==n&&(n=0),e.initialize=function(t){r=t},e.x=function(n){return arguments.length?(t=+n,e):t},e.y=function(t){return arguments.length?(n=+t,e):n},e},t.forceCollide=function(t){function n(){for(var t,n,r,f,c,s,l,h=i.length,d=0;d<u;++d)for(n=je(i,Ge,Ve).visitAfter(e),t=0;t<h;++t)r=i[t],s=o[r.index],l=s*s,f=r.x+r.vx,c=r.y+r.vy,n.visit(function(t,n,e,i,o){var u=t.data,h=t.r,d=s+h;if(!u)return n>f+d||i<f-d||e>c+d||o<c-d;if(u.index>r.index){var p=f-u.x-u.vx,v=c-u.y-u.vy,g=p*p+v*v;g<d*d&&(0===p&&(p=Oe(),g+=p*p),0===v&&(v=Oe(),g+=v*v),g=(d-(g=Math.sqrt(g)))/g*a,r.vx+=(p*=g)*(d=(h*=h)/(l+h)),r.vy+=(v*=g)*d,u.vx-=p*(d=1-d),u.vy-=v*d)}})}function e(t){if(t.data)return t.r=o[t.data.index];for(var n=t.r=0;n<4;++n)t[n]&&t[n].r>t.r&&(t.r=t[n].r)}function r(){if(i){var n,e,r=i.length;for(o=new Array(r),n=0;n<r;++n)e=i[n],o[e.index]=+t(e,n,i)}}var i,o,a=1,u=1;return"function"!=typeof t&&(t=qe(null==t?1:+t)),n.initialize=function(t){i=t,r()},n.iterations=function(t){return arguments.length?(u=+t,n):u},n.strength=function(t){return arguments.length?(a=+t,n):a},n.radius=function(e){return arguments.length?(t="function"==typeof e?e:qe(+e),r(),n):t},n},t.forceLink=function(t){function n(n){for(var e=0,r=t.length;e<d;++e)for(var i,u,f,s,l,h,p,v=0;v<r;++v)u=(i=t[v]).source,s=(f=i.target).x+f.vx-u.x-u.vx||Oe(),l=f.y+f.vy-u.y-u.vy||Oe(),s*=h=((h=Math.sqrt(s*s+l*l))-a[v])/h*n*o[v],l*=h,f.vx-=s*(p=c[v]),f.vy-=l*p,u.vx+=s*(p=1-p),u.vy+=l*p}function e(){if(u){var n,e,l=u.length,h=t.length,d=he(u,s);for(n=0,f=new Array(l);n<h;++n)(e=t[n]).index=n,"object"!=typeof e.source&&(e.source=We(d,e.source)),"object"!=typeof e.target&&(e.target=We(d,e.target)),f[e.source.index]=(f[e.source.index]||0)+1,f[e.target.index]=(f[e.target.index]||0)+1;for(n=0,c=new Array(h);n<h;++n)e=t[n],c[n]=f[e.source.index]/(f[e.source.index]+f[e.target.index]);o=new Array(h),r(),a=new Array(h),i()}}function r(){if(u)for(var n=0,e=t.length;n<e;++n)o[n]=+l(t[n],n,t)}function i(){if(u)for(var n=0,e=t.length;n<e;++n)a[n]=+h(t[n],n,t)}var o,a,u,f,c,s=$e,l=function(t){return 1/Math.min(f[t.source.index],f[t.target.index])},h=qe(30),d=1;return null==t&&(t=[]),n.initialize=function(t){u=t,e()},n.links=function(r){return arguments.length?(t=r,e(),n):t},n.id=function(t){return arguments.length?(s=t,n):s},n.iterations=function(t){return arguments.length?(d=+t,n):d},n.strength=function(t){return arguments.length?(l="function"==typeof t?t:qe(+t),r(),n):l},n.distance=function(t){return arguments.length?(h="function"==typeof t?t:qe(+t),i(),n):h},n},t.forceManyBody=function(){function t(t){var n,u=i.length,f=je(i,Ze,Qe).visitAfter(e);for(a=t,n=0;n<u;++n)o=i[n],f.visit(r)}function n(){if(i){var t,n,e=i.length;for(u=new Array(e),t=0;t<e;++t)n=i[t],u[n.index]=+f(n,t,i)}}function e(t){var n,e,r,i,o,a=0,f=0;if(t.length){for(r=i=o=0;o<4;++o)(n=t[o])&&(e=Math.abs(n.value))&&(a+=n.value,f+=e,r+=e*n.x,i+=e*n.y);t.x=r/f,t.y=i/f}else{(n=t).x=n.data.x,n.y=n.data.y;do{a+=u[n.data.index]}while(n=n.next)}t.value=a}function r(t,n,e,r){if(!t.value)return!0;var i=t.x-o.x,f=t.y-o.y,h=r-n,d=i*i+f*f;if(h*h/l<d)return d<s&&(0===i&&(i=Oe(),d+=i*i),0===f&&(f=Oe(),d+=f*f),d<c&&(d=Math.sqrt(c*d)),o.vx+=i*t.value*a/d,o.vy+=f*t.value*a/d),!0;if(!(t.length||d>=s)){(t.data!==o||t.next)&&(0===i&&(i=Oe(),d+=i*i),0===f&&(f=Oe(),d+=f*f),d<c&&(d=Math.sqrt(c*d)));do{t.data!==o&&(h=u[t.data.index]*a/d,o.vx+=i*h,o.vy+=f*h)}while(t=t.next)}}var i,o,a,u,f=qe(-30),c=1,s=1/0,l=.81;return t.initialize=function(t){i=t,n()},t.strength=function(e){return arguments.length?(f="function"==typeof e?e:qe(+e),n(),t):f},t.distanceMin=function(n){return arguments.length?(c=n*n,t):Math.sqrt(c)},t.distanceMax=function(n){return arguments.length?(s=n*n,t):Math.sqrt(s)},t.theta=function(n){return arguments.length?(l=n*n,t):Math.sqrt(l)},t},t.forceRadial=function(t,n,e){function r(t){for(var r=0,i=o.length;r<i;++r){var f=o[r],c=f.x-n||1e-6,s=f.y-e||1e-6,l=Math.sqrt(c*c+s*s),h=(u[r]-l)*a[r]*t/l;f.vx+=c*h,f.vy+=s*h}}function i(){if(o){var n,e=o.length;for(a=new Array(e),u=new Array(e),n=0;n<e;++n)u[n]=+t(o[n],n,o),a[n]=isNaN(u[n])?0:+f(o[n],n,o)}}var o,a,u,f=qe(.1);return"function"!=typeof t&&(t=qe(+t)),null==n&&(n=0),null==e&&(e=0),r.initialize=function(t){o=t,i()},r.strength=function(t){return arguments.length?(f="function"==typeof t?t:qe(+t),i(),r):f},r.radius=function(n){return arguments.length?(t="function"==typeof n?n:qe(+n),i(),r):t},r.x=function(t){return arguments.length?(n=+t,r):n},r.y=function(t){return arguments.length?(e=+t,r):e},r},t.forceSimulation=function(t){function n(){e(),d.call("tick",o),a<u&&(h.stop(),d.call("end",o))}function e(){var n,e,r=t.length;for(a+=(c-a)*f,l.each(function(t){t(a)}),n=0;n<r;++n)null==(e=t[n]).fx?e.x+=e.vx*=s:(e.x=e.fx,e.vx=0),null==e.fy?e.y+=e.vy*=s:(e.y=e.fy,e.vy=0)}function r(){for(var n,e=0,r=t.length;e<r;++e){if(n=t[e],n.index=e,isNaN(n.x)||isNaN(n.y)){var i=od*Math.sqrt(e),o=e*ad;n.x=i*Math.cos(o),n.y=i*Math.sin(o)}(isNaN(n.vx)||isNaN(n.vy))&&(n.vx=n.vy=0)}}function i(n){return n.initialize&&n.initialize(t),n}var o,a=1,u=.001,f=1-Math.pow(u,1/300),c=0,s=.6,l=he(),h=Tn(n),d=N("tick","end");return null==t&&(t=[]),r(),o={tick:e,restart:function(){return h.restart(n),o},stop:function(){return h.stop(),o},nodes:function(n){return arguments.length?(t=n,r(),l.each(i),o):t},alpha:function(t){return arguments.length?(a=+t,o):a},alphaMin:function(t){return arguments.length?(u=+t,o):u},alphaDecay:function(t){return arguments.length?(f=+t,o):+f},alphaTarget:function(t){return arguments.length?(c=+t,o):c},velocityDecay:function(t){return arguments.length?(s=1-t,o):1-s},force:function(t,n){return arguments.length>1?(null==n?l.remove(t):l.set(t,i(n)),o):l.get(t)},find:function(n,e,r){var i,o,a,u,f,c=0,s=t.length;for(null==r?r=1/0:r*=r,c=0;c<s;++c)(a=(i=n-(u=t[c]).x)*i+(o=e-u.y)*o)<r&&(f=u,r=a);return f},on:function(t,n){return arguments.length>1?(d.on(t,n),o):d.on(t)}}},t.forceX=function(t){function n(t){for(var n,e=0,a=r.length;e<a;++e)(n=r[e]).vx+=(o[e]-n.x)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+a(r[n],n,r)}}var r,i,o,a=qe(.1);return"function"!=typeof t&&(t=qe(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(a="function"==typeof t?t:qe(+t),e(),n):a},n.x=function(r){return arguments.length?(t="function"==typeof r?r:qe(+r),e(),n):t},n},t.forceY=function(t){function n(t){for(var n,e=0,a=r.length;e<a;++e)(n=r[e]).vy+=(o[e]-n.y)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+a(r[n],n,r)}}var r,i,o,a=qe(.1);return"function"!=typeof t&&(t=qe(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(a="function"==typeof t?t:qe(+t),e(),n):a},n.y=function(r){return arguments.length?(t="function"==typeof r?r:qe(+r),e(),n):t},n},t.formatDefaultLocale=or,t.formatLocale=ir,t.formatSpecifier=tr,t.precisionFixed=ar,t.precisionPrefix=ur,t.precisionRound=fr,t.geoArea=function(t){return dp.reset(),br(t,pp),2*dp},t.geoBounds=function(t){var n,e,r,i,o,a,u;if(md=bd=-(yd=_d=1/0),Td=[],br(t,gp),e=Td.length){for(Td.sort(Yr),n=1,o=[r=Td[0]];n<e;++n)Br(r,(i=Td[n])[0])||Br(r,i[1])?(Or(r[0],i[1])>Or(r[0],r[1])&&(r[1]=i[1]),Or(i[0],r[1])>Or(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,n=0,r=o[e=o.length-1];n<=e;r=i,++n)i=o[n],(u=Or(r[1],i[0]))>a&&(a=u,yd=i[0],bd=r[1])}return Td=Nd=null,yd===1/0||_d===1/0?[[NaN,NaN],[NaN,NaN]]:[[yd,_d],[bd,md]]},t.geoCentroid=function(t){Sd=Ed=kd=Cd=Pd=zd=Rd=Ld=Dd=Ud=qd=0,br(t,yp);var n=Dd,e=Ud,r=qd,i=n*n+e*e+r*r;return i<Xd&&(n=zd,e=Rd,r=Ld,Ed<Hd&&(n=kd,e=Cd,r=Pd),(i=n*n+e*e+r*r)<Xd)?[NaN,NaN]:[tp(e,n)*Zd,dr(r/fp(i))*Zd]},t.geoCircle=function(){function t(){var t=r.apply(this,arguments),u=i.apply(this,arguments)*Qd,f=o.apply(this,arguments)*Qd;return n=[],e=ti(-t[0]*Qd,-t[1]*Qd,0).invert,oi(a,u,f,1),t={type:"Polygon",coordinates:[n]},n=e=null,t}var n,e,r=Qr([0,0]),i=Qr(90),o=Qr(6),a={point:function(t,r){n.push(t=e(t,r)),t[0]*=Zd,t[1]*=Zd}};return t.center=function(n){return arguments.length?(r="function"==typeof n?n:Qr([+n[0],+n[1]]),t):r},t.radius=function(n){return arguments.length?(i="function"==typeof n?n:Qr(+n),t):i},t.precision=function(n){return arguments.length?(o="function"==typeof n?n:Qr(+n),t):o},t},t.geoClipAntimeridian=Cp,t.geoClipCircle=gi,t.geoClipExtent=function(){var t,n,e,r=0,i=0,o=960,a=500;return e={stream:function(e){return t&&n===e?t:t=yi(r,i,o,a)(n=e)},extent:function(u){return arguments.length?(r=+u[0][0],i=+u[0][1],o=+u[1][0],a=+u[1][1],t=n=null,e):[[r,i],[o,a]]}}},t.geoClipRectangle=yi,t.geoContains=function(t,n){return(t&&qp.hasOwnProperty(t.type)?qp[t.type]:Mi)(t,n)},t.geoDistance=wi,t.geoGraticule=Pi,t.geoGraticule10=function(){return Pi()()},t.geoInterpolate=function(t,n){var e=t[0]*Qd,r=t[1]*Qd,i=n[0]*Qd,o=n[1]*Qd,a=np(r),u=ap(r),f=np(o),c=ap(o),s=a*np(e),l=a*ap(e),h=f*np(i),d=f*ap(i),p=2*dr(fp(pr(o-r)+a*f*pr(i-e))),v=ap(p),g=p?function(t){var n=ap(t*=p)/v,e=ap(p-t)/v,r=e*s+n*h,i=e*l+n*d,o=e*u+n*c;return[tp(i,r)*Zd,tp(o,fp(r*r+i*i))*Zd]}:function(){return[e*Zd,r*Zd]};return g.distance=p,g},t.geoLength=xi,t.geoPath=function(t,n){function e(t){return t&&("function"==typeof o&&i.pointRadius(+o.apply(this,arguments)),br(t,r(i))),i.result()}var r,i,o=4.5;return e.area=function(t){return br(t,r(Fp)),Fp.result()},e.measure=function(t){return br(t,r(cv)),cv.result()},e.bounds=function(t){return br(t,r(Gp)),Gp.result()},e.centroid=function(t){return br(t,r(ev)),ev.result()},e.projection=function(n){return arguments.length?(r=null==n?(t=null,zi):(t=n).stream,e):t},e.context=function(t){return arguments.length?(i=null==t?(n=null,new Wi):new Gi(n=t),"function"!=typeof o&&i.pointRadius(o),e):n},e.pointRadius=function(t){return arguments.length?(o="function"==typeof t?t:(i.pointRadius(+t),+t),e):o},e.projection(t).context(n)},t.geoAlbers=lo,t.geoAlbersUsa=function(){function t(t){var n=t[0],e=t[1];return u=null,i.point(n,e),u||(o.point(n,e),u)||(a.point(n,e),u)}function n(){return e=r=null,t}var e,r,i,o,a,u,f=lo(),c=so().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s=so().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,n){u=[t,n]}};return t.invert=function(t){var n=f.scale(),e=f.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?c:i>=.166&&i<.234&&r>=-.214&&r<-.115?s:f).invert(t)},t.stream=function(t){return e&&r===t?e:e=function(t){var n=t.length;return{point:function(e,r){for(var i=-1;++i<n;)t[i].point(e,r)},sphere:function(){for(var e=-1;++e<n;)t[e].sphere()},lineStart:function(){for(var e=-1;++e<n;)t[e].lineStart()},lineEnd:function(){for(var e=-1;++e<n;)t[e].lineEnd()},polygonStart:function(){for(var e=-1;++e<n;)t[e].polygonStart()},polygonEnd:function(){for(var e=-1;++e<n;)t[e].polygonEnd()}}}([f.stream(r=t),c.stream(t),s.stream(t)])},t.precision=function(t){return arguments.length?(f.precision(t),c.precision(t),s.precision(t),n()):f.precision()},t.scale=function(n){return arguments.length?(f.scale(n),c.scale(.35*n),s.scale(n),t.translate(f.translate())):f.scale()},t.translate=function(t){if(!arguments.length)return f.translate();var e=f.scale(),r=+t[0],u=+t[1];return i=f.translate(t).clipExtent([[r-.455*e,u-.238*e],[r+.455*e,u+.238*e]]).stream(l),o=c.translate([r-.307*e,u+.201*e]).clipExtent([[r-.425*e+Hd,u+.12*e+Hd],[r-.214*e-Hd,u+.234*e-Hd]]).stream(l),a=s.translate([r-.205*e,u+.212*e]).clipExtent([[r-.214*e+Hd,u+.166*e+Hd],[r-.115*e-Hd,u+.234*e-Hd]]).stream(l),n()},t.fitExtent=function(n,e){return to(t,n,e)},t.fitSize=function(n,e){return no(t,n,e)},t.fitWidth=function(n,e){return eo(t,n,e)},t.fitHeight=function(n,e){return ro(t,n,e)},t.scale(1070)},t.geoAzimuthalEqualArea=function(){return ao(dv).scale(124.75).clipAngle(179.999)},t.geoAzimuthalEqualAreaRaw=dv,t.geoAzimuthalEquidistant=function(){return ao(pv).scale(79.4188).clipAngle(179.999)},t.geoAzimuthalEquidistantRaw=pv,t.geoConicConformal=function(){return fo(_o).scale(109.5).parallels([30,30])},t.geoConicConformalRaw=_o,t.geoConicEqualArea=so,t.geoConicEqualAreaRaw=co,t.geoConicEquidistant=function(){return fo(mo).scale(131.154).center([0,13.9389])},t.geoConicEquidistantRaw=mo,t.geoEquirectangular=function(){return ao(bo).scale(152.63)},t.geoEquirectangularRaw=bo,t.geoGnomonic=function(){return ao(xo).scale(144.049).clipAngle(60)},t.geoGnomonicRaw=xo,t.geoIdentity=function(){function t(){return i=o=null,a}var n,e,r,i,o,a,u=1,f=0,c=0,s=1,l=1,h=zi,d=null,p=zi;return a={stream:function(t){return i&&o===t?i:i=h(p(o=t))},postclip:function(i){return arguments.length?(p=i,d=n=e=r=null,t()):p},clipExtent:function(i){return arguments.length?(p=null==i?(d=n=e=r=null,zi):yi(d=+i[0][0],n=+i[0][1],e=+i[1][0],r=+i[1][1]),t()):null==d?null:[[d,n],[e,r]]},scale:function(n){return arguments.length?(h=wo((u=+n)*s,u*l,f,c),t()):u},translate:function(n){return arguments.length?(h=wo(u*s,u*l,f=+n[0],c=+n[1]),t()):[f,c]},reflectX:function(n){return arguments.length?(h=wo(u*(s=n?-1:1),u*l,f,c),t()):s<0},reflectY:function(n){return arguments.length?(h=wo(u*s,u*(l=n?-1:1),f,c),t()):l<0},fitExtent:function(t,n){return to(a,t,n)},fitSize:function(t,n){return no(a,t,n)},fitWidth:function(t,n){return eo(a,t,n)},fitHeight:function(t,n){return ro(a,t,n)}}},t.geoProjection=ao,t.geoProjectionMutator=uo,t.geoMercator=function(){return go(vo).scale(961/Wd)},t.geoMercatorRaw=vo,t.geoNaturalEarth1=function(){return ao(Mo).scale(175.295)},t.geoNaturalEarth1Raw=Mo,t.geoOrthographic=function(){return ao(Ao).scale(249.5).clipAngle(90+Hd)},t.geoOrthographicRaw=Ao,t.geoStereographic=function(){return ao(To).scale(250).clipAngle(142)},t.geoStereographicRaw=To,t.geoTransverseMercator=function(){var t=go(No),n=t.center,e=t.rotate;return t.center=function(t){return arguments.length?n([-t[1],t[0]]):(t=n(),[t[1],-t[0]])},t.rotate=function(t){return arguments.length?e([t[0],t[1],t.length>2?t[2]+90:90]):(t=e(),[t[0],t[1],t[2]-90])},e([0,0,90]).scale(159.155)},t.geoTransverseMercatorRaw=No,t.geoRotation=ii,t.geoStream=br,t.geoTransform=function(t){return{stream:Qi(t)}},t.cluster=function(){function t(t){var o,a=0;t.eachAfter(function(t){var e=t.children;e?(t.x=function(t){return t.reduce(Eo,0)/t.length}(e),t.y=function(t){return 1+t.reduce(ko,0)}(e)):(t.x=o?a+=n(t,o):0,t.y=0,o=t)});var u=function(t){for(var n;n=t.children;)t=n[0];return t}(t),f=function(t){for(var n;n=t.children;)t=n[n.length-1];return t}(t),c=u.x-n(u,f)/2,s=f.x+n(f,u)/2;return t.eachAfter(i?function(n){n.x=(n.x-t.x)*e,n.y=(t.y-n.y)*r}:function(n){n.x=(n.x-c)/(s-c)*e,n.y=(1-(t.y?n.y/t.y:1))*r})}var n=So,e=1,r=1,i=!1;return t.separation=function(e){return arguments.length?(n=e,t):n},t.size=function(n){return arguments.length?(i=!1,e=+n[0],r=+n[1],t):i?null:[e,r]},t.nodeSize=function(n){return arguments.length?(i=!0,e=+n[0],r=+n[1],t):i?[e,r]:null},t},t.hierarchy=Po,t.pack=function(){function t(t){return t.x=e/2,t.y=r/2,n?t.eachBefore(Qo(n)).eachAfter(Jo(i,.5)).eachBefore(Ko(1)):t.eachBefore(Qo(Zo)).eachAfter(Jo($o,1)).eachAfter(Jo(i,t.r/Math.min(e,r))).eachBefore(Ko(Math.min(e,r)/(2*t.r))),t}var n=null,e=1,r=1,i=$o;return t.radius=function(e){return arguments.length?(n=function(t){return null==t?null:Vo(t)}(e),t):n},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i="function"==typeof n?n:Wo(+n),t):i},t},t.packSiblings=function(t){return Go(t),t},t.packEnclose=Uo,t.partition=function(){function t(t){var o=t.height+1;return t.x0=t.y0=r,t.x1=n,t.y1=e/o,t.eachBefore(function(t,n){return function(e){e.children&&na(e,e.x0,t*(e.depth+1)/n,e.x1,t*(e.depth+2)/n);var i=e.x0,o=e.y0,a=e.x1-r,u=e.y1-r;a<i&&(i=a=(i+a)/2),u<o&&(o=u=(o+u)/2),e.x0=i,e.y0=o,e.x1=a,e.y1=u}}(e,o)),i&&t.eachBefore(ta),t}var n=1,e=1,r=0,i=!1;return t.round=function(n){return arguments.length?(i=!!n,t):i},t.size=function(r){return arguments.length?(n=+r[0],e=+r[1],t):[n,e]},t.padding=function(n){return arguments.length?(r=+n,t):r},t},t.stratify=function(){function t(t){var r,i,o,a,u,f,c,s=t.length,l=new Array(s),h={};for(i=0;i<s;++i)r=t[i],u=l[i]=new Do(r),null!=(f=n(r,i,t))&&(f+="")&&(h[c=gv+(u.id=f)]=c in h?_v:u);for(i=0;i<s;++i)if(u=l[i],null!=(f=e(t[i],i,t))&&(f+="")){if(!(a=h[gv+f]))throw new Error("missing: "+f);if(a===_v)throw new Error("ambiguous: "+f);a.children?a.children.push(u):a.children=[u],u.parent=a}else{if(o)throw new Error("multiple roots");o=u}if(!o)throw new Error("no root");if(o.parent=yv,o.eachBefore(function(t){t.depth=t.parent.depth+1,--s}).eachBefore(Lo),o.parent=null,s>0)throw new Error("cycle");return o}var n=ea,e=ra;return t.id=function(e){return arguments.length?(n=Vo(e),t):n},t.parentId=function(n){return arguments.length?(e=Vo(n),t):e},t},t.tree=function(){function t(t){var f=function(t){for(var n,e,r,i,o,a=new ca(t,0),u=[a];n=u.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)u.push(e=n.children[i]=new ca(r[i],i)),e.parent=n;return(a.parent=new ca(null,0)).children=[a],a}(t);if(f.eachAfter(n),f.parent.m=-f.z,f.eachBefore(e),u)t.eachBefore(r);else{var c=t,s=t,l=t;t.eachBefore(function(t){t.x<c.x&&(c=t),t.x>s.x&&(s=t),t.depth>l.depth&&(l=t)});var h=c===s?1:i(c,s)/2,d=h-c.x,p=o/(s.x+h+d),v=a/(l.depth||1);t.eachBefore(function(t){t.x=(t.x+d)*p,t.y=t.depth*v})}return t}function n(t){var n=t.children,e=t.parent.children,r=t.i?e[t.i-1]:null;if(n){(function(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)(n=i[o]).z+=e,n.m+=e,e+=n.s+(r+=n.c)})(t);var o=(n[0].z+n[n.length-1].z)/2;r?(t.z=r.z+i(t._,r._),t.m=t.z-o):t.z=o}else r&&(t.z=r.z+i(t._,r._));t.parent.A=function(t,n,e){if(n){for(var r,o=t,a=t,u=n,f=o.parent.children[0],c=o.m,s=a.m,l=u.m,h=f.m;u=aa(u),o=oa(o),u&&o;)f=oa(f),(a=aa(a)).a=t,(r=u.z+l-o.z-c+i(u._,o._))>0&&(ua(fa(u,t,e),t,r),c+=r,s+=r),l+=u.m,c+=o.m,h+=f.m,s+=a.m;u&&!aa(a)&&(a.t=u,a.m+=l-s),o&&!oa(f)&&(f.t=o,f.m+=c-h,e=t)}return e}(t,r,t.parent.A||e[0])}function e(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function r(t){t.x*=o,t.y=t.depth*a}var i=ia,o=1,a=1,u=null;return t.separation=function(n){return arguments.length?(i=n,t):i},t.size=function(n){return arguments.length?(u=!1,o=+n[0],a=+n[1],t):u?null:[o,a]},t.nodeSize=function(n){return arguments.length?(u=!0,o=+n[0],a=+n[1],t):u?[o,a]:null},t},t.treemap=function(){function t(t){return t.x0=t.y0=0,t.x1=i,t.y1=o,t.eachBefore(n),a=[0],r&&t.eachBefore(ta),t}function n(t){var n=a[t.depth],r=t.x0+n,i=t.y0+n,o=t.x1-n,h=t.y1-n;o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),t.x0=r,t.y0=i,t.x1=o,t.y1=h,t.children&&(n=a[t.depth+1]=u(t)/2,r+=l(t)-n,i+=f(t)-n,o-=c(t)-n,h-=s(t)-n,o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),e(t,r,i,o,h))}var e=mv,r=!1,i=1,o=1,a=[0],u=$o,f=$o,c=$o,s=$o,l=$o;return t.round=function(n){return arguments.length?(r=!!n,t):r},t.size=function(n){return arguments.length?(i=+n[0],o=+n[1],t):[i,o]},t.tile=function(n){return arguments.length?(e=Vo(n),t):e},t.padding=function(n){return arguments.length?t.paddingInner(n).paddingOuter(n):t.paddingInner()},t.paddingInner=function(n){return arguments.length?(u="function"==typeof n?n:Wo(+n),t):u},t.paddingOuter=function(n){return arguments.length?t.paddingTop(n).paddingRight(n).paddingBottom(n).paddingLeft(n):t.paddingTop()},t.paddingTop=function(n){return arguments.length?(f="function"==typeof n?n:Wo(+n),t):f},t.paddingRight=function(n){return arguments.length?(c="function"==typeof n?n:Wo(+n),t):c},t.paddingBottom=function(n){return arguments.length?(s="function"==typeof n?n:Wo(+n),t):s},t.paddingLeft=function(n){return arguments.length?(l="function"==typeof n?n:Wo(+n),t):l},t},t.treemapBinary=function(t,n,e,r,i){function o(t,n,e,r,i,a,u){if(t>=n-1){var c=f[t];return c.x0=r,c.y0=i,c.x1=a,void(c.y1=u)}for(var l=s[t],h=e/2+l,d=t+1,p=n-1;d<p;){var v=d+p>>>1;s[v]<h?d=v+1:p=v}h-s[d-1]<s[d]-h&&t+1<d&&--d;var g=s[d]-l,y=e-g;if(a-r>u-i){var _=(r*y+a*g)/e;o(t,d,g,r,i,_,u),o(d,n,y,_,i,a,u)}else{var b=(i*y+u*g)/e;o(t,d,g,r,i,a,b),o(d,n,y,r,b,a,u)}}var a,u,f=t.children,c=f.length,s=new Array(c+1);for(s[0]=u=a=0;a<c;++a)s[a+1]=u+=f[a].value;o(0,c,t.value,n,e,r,i)},t.treemapDice=na,t.treemapSlice=sa,t.treemapSliceDice=function(t,n,e,r,i){(1&t.depth?sa:na)(t,n,e,r,i)},t.treemapSquarify=mv,t.treemapResquarify=xv,t.interpolate=dn,t.interpolateArray=fn,t.interpolateBasis=Kt,t.interpolateBasisClosed=tn,t.interpolateDate=cn,t.interpolateNumber=sn,t.interpolateObject=ln,t.interpolateRound=pn,t.interpolateString=hn,t.interpolateTransformCss=sl,t.interpolateTransformSvg=ll,t.interpolateZoom=_n,t.interpolateRgb=rl,t.interpolateRgbBasis=il,t.interpolateRgbBasisClosed=ol,t.interpolateHsl=gl,t.interpolateHslLong=yl,t.interpolateLab=function(t,n){var e=an((t=Ft(t)).l,(n=Ft(n)).l),r=an(t.a,n.a),i=an(t.b,n.b),o=an(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+""}},t.interpolateHcl=_l,t.interpolateHclLong=bl,t.interpolateCubehelix=ml,t.interpolateCubehelixLong=xl,t.piecewise=function(t,n){for(var e=0,r=n.length-1,i=n[0],o=new Array(r<0?0:r);e<r;)o[e]=t(i,i=n[++e]);return function(t){var n=Math.max(0,Math.min(r-1,Math.floor(t*=r)));return o[n](t-n)}},t.quantize=function(t,n){for(var e=new Array(n),r=0;r<n;++r)e[r]=t(r/(n-1));return e},t.path=oe,t.polygonArea=function(t){for(var n,e=-1,r=t.length,i=t[r-1],o=0;++e<r;)n=i,i=t[e],o+=n[1]*i[0]-n[0]*i[1];return o/2},t.polygonCentroid=function(t){for(var n,e,r=-1,i=t.length,o=0,a=0,u=t[i-1],f=0;++r<i;)n=u,u=t[r],f+=e=n[0]*u[1]-u[0]*n[1],o+=(n[0]+u[0])*e,a+=(n[1]+u[1])*e;return f*=3,[o/f,a/f]},t.polygonHull=function(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n<e;++n)r[n]=[+t[n][0],+t[n][1],n];for(r.sort(da),n=0;n<e;++n)i[n]=[r[n][0],-r[n][1]];var o=pa(r),a=pa(i),u=a[0]===o[0],f=a[a.length-1]===o[o.length-1],c=[];for(n=o.length-1;n>=0;--n)c.push(t[r[o[n]][2]]);for(n=+u;n<a.length-f;++n)c.push(t[r[a[n]][2]]);return c},t.polygonContains=function(t,n){for(var e,r,i=t.length,o=t[i-1],a=n[0],u=n[1],f=o[0],c=o[1],s=!1,l=0;l<i;++l)e=(o=t[l])[0],(r=o[1])>u!=c>u&&a<(f-e)*(u-r)/(c-r)+e&&(s=!s),f=e,c=r;return s},t.polygonLength=function(t){for(var n,e,r=-1,i=t.length,o=t[i-1],a=o[0],u=o[1],f=0;++r<i;)n=a,e=u,n-=a=(o=t[r])[0],e-=u=o[1],f+=Math.sqrt(n*n+e*e);return f},t.quadtree=je,t.randomUniform=wv,t.randomNormal=Mv,t.randomLogNormal=Av,t.randomBates=Nv,t.randomIrwinHall=Tv,t.randomExponential=Sv,t.scaleBand=ya,t.scalePoint=function(){return _a(ya().paddingInner(1))},t.scaleIdentity=Ea,t.scaleLinear=Sa,t.scaleLog=Ua,t.scaleOrdinal=ga,t.scaleImplicit=Pv,t.scalePow=Oa,t.scaleSqrt=function(){return Oa().exponent(.5)},t.scaleQuantile=Ya,t.scaleQuantize=Ba,t.scaleThreshold=Fa,t.scaleTime=function(){return of(cg,ug,Vv,Xv,jv,Fv,Yv,Dv,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)])},t.scaleUtc=function(){return of(Rg,Pg,yg,vg,dg,lg,Yv,Dv,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)])},t.scaleSequential=af,t.scaleDiverging=uf,t.schemeCategory10=Zg,t.schemeAccent=Qg,t.schemeDark2=Jg,t.schemePaired=Kg,t.schemePastel1=ty,t.schemePastel2=ny,t.schemeSet1=ey,t.schemeSet2=ry,t.schemeSet3=iy,t.interpolateBrBG=ay,t.schemeBrBG=oy,t.interpolatePRGn=fy,t.schemePRGn=uy,t.interpolatePiYG=sy,t.schemePiYG=cy,t.interpolatePuOr=hy,t.schemePuOr=ly,t.interpolateRdBu=py,t.schemeRdBu=dy,t.interpolateRdGy=gy,t.schemeRdGy=vy,t.interpolateRdYlBu=_y,t.schemeRdYlBu=yy,t.interpolateRdYlGn=my,t.schemeRdYlGn=by,t.interpolateSpectral=wy,t.schemeSpectral=xy,t.interpolateBuGn=Ay,t.schemeBuGn=My,t.interpolateBuPu=Ny,t.schemeBuPu=Ty,t.interpolateGnBu=Ey,t.schemeGnBu=Sy,t.interpolateOrRd=Cy,t.schemeOrRd=ky,t.interpolatePuBuGn=zy,t.schemePuBuGn=Py,t.interpolatePuBu=Ly,t.schemePuBu=Ry,t.interpolatePuRd=Uy,t.schemePuRd=Dy,t.interpolateRdPu=Oy,t.schemeRdPu=qy,t.interpolateYlGnBu=By,t.schemeYlGnBu=Yy,t.interpolateYlGn=Iy,t.schemeYlGn=Fy,t.interpolateYlOrBr=Hy,t.schemeYlOrBr=jy,t.interpolateYlOrRd=Gy,t.schemeYlOrRd=Xy,t.interpolateBlues=$y,t.schemeBlues=Vy,t.interpolateGreens=Zy,t.schemeGreens=Wy,t.interpolateGreys=Jy,t.schemeGreys=Qy,t.interpolatePurples=t_,t.schemePurples=Ky,t.interpolateReds=e_,t.schemeReds=n_,t.interpolateOranges=i_,t.schemeOranges=r_,t.interpolateCubehelixDefault=o_,t.interpolateRainbow=function(t){(t<0||t>1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return f_.h=360*t-100,f_.s=1.5-1.5*n,f_.l=.8-.9*n,f_+""},t.interpolateWarm=a_,t.interpolateCool=u_,t.interpolateSinebow=function(t){var n;return t=(.5-t)*Math.PI,c_.r=255*(n=Math.sin(t))*n,c_.g=255*(n=Math.sin(t+s_))*n,c_.b=255*(n=Math.sin(t+l_))*n,c_+""},t.interpolateViridis=h_,t.interpolateMagma=d_,t.interpolateInferno=p_,t.interpolatePlasma=v_,t.create=function(t){return ct(C(t).call(document.documentElement))},t.creator=C,t.local=st,t.matcher=bs,t.mouse=pt,t.namespace=k,t.namespaces=vs,t.clientPoint=dt,t.select=ct,t.selectAll=function(t){return"string"==typeof t?new ut([document.querySelectorAll(t)],[document.documentElement]):new ut([null==t?[]:t],ws)},t.selection=ft,t.selector=z,t.selectorAll=L,t.style=F,t.touch=vt,t.touches=function(t,n){null==n&&(n=ht().touches);for(var e=0,r=n?n.length:0,i=new Array(r);e<r;++e)i[e]=dt(t,n[e]);return i},t.window=B,t.customEvent=ot,t.arc=function(){function t(){var t,c,s=+n.apply(this,arguments),l=+e.apply(this,arguments),h=o.apply(this,arguments)-T_,d=a.apply(this,arguments)-T_,p=g_(d-h),v=d>h;if(f||(f=t=oe()),l<s&&(c=l,l=s,s=c),l>M_)if(p>N_-M_)f.moveTo(l*__(h),l*x_(h)),f.arc(0,0,l,h,d,!v),s>M_&&(f.moveTo(s*__(d),s*x_(d)),f.arc(0,0,s,d,h,v));else{var g,y,_=h,b=d,m=h,x=d,w=p,M=p,A=u.apply(this,arguments)/2,T=A>M_&&(i?+i.apply(this,arguments):w_(s*s+l*l)),N=m_(g_(l-s)/2,+r.apply(this,arguments)),S=N,E=N;if(T>M_){var k=hf(T/s*x_(A)),C=hf(T/l*x_(A));(w-=2*k)>M_?(k*=v?1:-1,m+=k,x-=k):(w=0,m=x=(h+d)/2),(M-=2*C)>M_?(C*=v?1:-1,_+=C,b-=C):(M=0,_=b=(h+d)/2)}var P=l*__(_),z=l*x_(_),R=s*__(x),L=s*x_(x);if(N>M_){var D=l*__(b),U=l*x_(b),q=s*__(m),O=s*x_(m);if(p<A_){var Y=w>M_?function(t,n,e,r,i,o,a,u){var f=e-t,c=r-n,s=a-i,l=u-o,h=(s*(n-o)-l*(t-i))/(l*f-s*c);return[t+h*f,n+h*c]}(P,z,q,O,D,U,R,L):[R,L],B=P-Y[0],F=z-Y[1],I=D-Y[0],j=U-Y[1],H=1/x_(function(t){return t>1?0:t<-1?A_:Math.acos(t)}((B*I+F*j)/(w_(B*B+F*F)*w_(I*I+j*j)))/2),X=w_(Y[0]*Y[0]+Y[1]*Y[1]);S=m_(N,(s-X)/(H-1)),E=m_(N,(l-X)/(H+1))}}M>M_?E>M_?(g=_f(q,O,P,z,l,E,v),y=_f(D,U,R,L,l,E,v),f.moveTo(g.cx+g.x01,g.cy+g.y01),E<N?f.arc(g.cx,g.cy,E,y_(g.y01,g.x01),y_(y.y01,y.x01),!v):(f.arc(g.cx,g.cy,E,y_(g.y01,g.x01),y_(g.y11,g.x11),!v),f.arc(0,0,l,y_(g.cy+g.y11,g.cx+g.x11),y_(y.cy+y.y11,y.cx+y.x11),!v),f.arc(y.cx,y.cy,E,y_(y.y11,y.x11),y_(y.y01,y.x01),!v))):(f.moveTo(P,z),f.arc(0,0,l,_,b,!v)):f.moveTo(P,z),s>M_&&w>M_?S>M_?(g=_f(R,L,D,U,s,-S,v),y=_f(P,z,q,O,s,-S,v),f.lineTo(g.cx+g.x01,g.cy+g.y01),S<N?f.arc(g.cx,g.cy,S,y_(g.y01,g.x01),y_(y.y01,y.x01),!v):(f.arc(g.cx,g.cy,S,y_(g.y01,g.x01),y_(g.y11,g.x11),!v),f.arc(0,0,s,y_(g.cy+g.y11,g.cx+g.x11),y_(y.cy+y.y11,y.cx+y.x11),v),f.arc(y.cx,y.cy,S,y_(y.y11,y.x11),y_(y.y01,y.x01),!v))):f.arc(0,0,s,x,m,v):f.lineTo(R,L)}else f.moveTo(0,0);if(f.closePath(),t)return f=null,t+""||null}var n=df,e=pf,r=lf(0),i=null,o=vf,a=gf,u=yf,f=null;return t.centroid=function(){var t=(+n.apply(this,arguments)+ +e.apply(this,arguments))/2,r=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-A_/2;return[__(r)*t,x_(r)*t]},t.innerRadius=function(e){return arguments.length?(n="function"==typeof e?e:lf(+e),t):n},t.outerRadius=function(n){return arguments.length?(e="function"==typeof n?n:lf(+n),t):e},t.cornerRadius=function(n){return arguments.length?(r="function"==typeof n?n:lf(+n),t):r},t.padRadius=function(n){return arguments.length?(i=null==n?null:"function"==typeof n?n:lf(+n),t):i},t.startAngle=function(n){return arguments.length?(o="function"==typeof n?n:lf(+n),t):o},t.endAngle=function(n){return arguments.length?(a="function"==typeof n?n:lf(+n),t):a},t.padAngle=function(n){return arguments.length?(u="function"==typeof n?n:lf(+n),t):u},t.context=function(n){return arguments.length?(f=null==n?null:n,t):f},t},t.area=Af,t.line=Mf,t.pie=function(){function t(t){var u,f,c,s,l,h=t.length,d=0,p=new Array(h),v=new Array(h),g=+i.apply(this,arguments),y=Math.min(N_,Math.max(-N_,o.apply(this,arguments)-g)),_=Math.min(Math.abs(y)/h,a.apply(this,arguments)),b=_*(y<0?-1:1);for(u=0;u<h;++u)(l=v[p[u]=u]=+n(t[u],u,t))>0&&(d+=l);for(null!=e?p.sort(function(t,n){return e(v[t],v[n])}):null!=r&&p.sort(function(n,e){return r(t[n],t[e])}),u=0,c=d?(y-h*b)/d:0;u<h;++u,g=s)f=p[u],s=g+((l=v[f])>0?l*c:0)+b,v[f]={data:t[f],index:u,value:l,startAngle:g,endAngle:s,padAngle:_};return v}var n=Nf,e=Tf,r=null,i=lf(0),o=lf(N_),a=lf(0);return t.value=function(e){return arguments.length?(n="function"==typeof e?e:lf(+e),t):n},t.sortValues=function(n){return arguments.length?(e=n,r=null,t):e},t.sort=function(n){return arguments.length?(r=n,e=null,t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:lf(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:lf(+n),t):o},t.padAngle=function(n){return arguments.length?(a="function"==typeof n?n:lf(+n),t):a},t},t.areaRadial=Pf,t.radialArea=Pf,t.lineRadial=Cf,t.radialLine=Cf,t.pointRadial=zf,t.linkHorizontal=function(){return Df(Uf)},t.linkVertical=function(){return Df(qf)},t.linkRadial=function(){var t=Df(Of);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},t.symbol=function(){function t(){var t;if(r||(r=t=oe()),n.apply(this,arguments).draw(r,+e.apply(this,arguments)),t)return r=null,t+""||null}var n=lf(k_),e=lf(64),r=null;return t.type=function(e){return arguments.length?(n="function"==typeof e?e:lf(e),t):n},t.size=function(n){return arguments.length?(e="function"==typeof n?n:lf(+n),t):e},t.context=function(n){return arguments.length?(r=null==n?null:n,t):r},t},t.symbols=X_,t.symbolCircle=k_,t.symbolCross=C_,t.symbolDiamond=R_,t.symbolSquare=O_,t.symbolStar=q_,t.symbolTriangle=B_,t.symbolWye=H_,t.curveBasisClosed=function(t){return new If(t)},t.curveBasisOpen=function(t){return new jf(t)},t.curveBasis=function(t){return new Ff(t)},t.curveBundle=G_,t.curveCardinalClosed=$_,t.curveCardinalOpen=W_,t.curveCardinal=V_,t.curveCatmullRomClosed=Q_,t.curveCatmullRomOpen=J_,t.curveCatmullRom=Z_,t.curveLinearClosed=function(t){return new Kf(t)},t.curveLinear=mf,t.curveMonotoneX=function(t){return new ic(t)},t.curveMonotoneY=function(t){return new oc(t)},t.curveNatural=function(t){return new uc(t)},t.curveStep=function(t){return new cc(t,.5)},t.curveStepAfter=function(t){return new cc(t,1)},t.curveStepBefore=function(t){return new cc(t,0)},t.stack=function(){function t(t){var o,a,u=n.apply(this,arguments),f=t.length,c=u.length,s=new Array(c);for(o=0;o<c;++o){for(var l,h=u[o],d=s[o]=new Array(f),p=0;p<f;++p)d[p]=l=[0,+i(t[p],h,p,t)],l.data=t[p];d.key=h}for(o=0,a=e(s);o<c;++o)s[a[o]].index=o;return r(s,a),s}var n=lf([]),e=lc,r=sc,i=hc;return t.keys=function(e){return arguments.length?(n="function"==typeof e?e:lf(E_.call(e)),t):n},t.value=function(n){return arguments.length?(i="function"==typeof n?n:lf(+n),t):i},t.order=function(n){return arguments.length?(e=null==n?lc:"function"==typeof n?n:lf(E_.call(n)),t):e},t.offset=function(n){return arguments.length?(r=null==n?sc:n,t):r},t},t.stackOffsetExpand=function(t,n){if((r=t.length)>0){for(var e,r,i,o=0,a=t[0].length;o<a;++o){for(i=e=0;e<r;++e)i+=t[e][o][1]||0;if(i)for(e=0;e<r;++e)t[e][o][1]/=i}sc(t,n)}},t.stackOffsetDiverging=function(t,n){if((u=t.length)>1)for(var e,r,i,o,a,u,f=0,c=t[n[0]].length;f<c;++f)for(o=a=0,e=0;e<u;++e)(i=(r=t[n[e]][f])[1]-r[0])>=0?(r[0]=o,r[1]=o+=i):i<0?(r[1]=a,r[0]=a+=i):r[0]=o},t.stackOffsetNone=sc,t.stackOffsetSilhouette=function(t,n){if((e=t.length)>0){for(var e,r=0,i=t[n[0]],o=i.length;r<o;++r){for(var a=0,u=0;a<e;++a)u+=t[a][r][1]||0;i[r][1]+=i[r][0]=-u/2}sc(t,n)}},t.stackOffsetWiggle=function(t,n){if((i=t.length)>0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,a=1;a<r;++a){for(var u=0,f=0,c=0;u<i;++u){for(var s=t[n[u]],l=s[a][1]||0,h=(l-(s[a-1][1]||0))/2,d=0;d<u;++d){var p=t[n[d]];h+=(p[a][1]||0)-(p[a-1][1]||0)}f+=l,c+=h*l}e[a-1][1]+=e[a-1][0]=o,f&&(o-=c/f)}e[a-1][1]+=e[a-1][0]=o,sc(t,n)}},t.stackOrderAscending=dc,t.stackOrderDescending=function(t){return dc(t).reverse()},t.stackOrderInsideOut=function(t){var n,e,r=t.length,i=t.map(pc),o=lc(t).sort(function(t,n){return i[n]-i[t]}),a=0,u=0,f=[],c=[];for(n=0;n<r;++n)e=o[n],a<u?(a+=i[e],f.push(e)):(u+=i[e],c.push(e));return c.reverse().concat(f)},t.stackOrderNone=lc,t.stackOrderReverse=function(t){return lc(t).reverse()},t.timeInterval=Ia,t.timeMillisecond=Dv,t.timeMilliseconds=Uv,t.utcMillisecond=Dv,t.utcMilliseconds=Uv,t.timeSecond=Yv,t.timeSeconds=Bv,t.utcSecond=Yv,t.utcSeconds=Bv,t.timeMinute=Fv,t.timeMinutes=Iv,t.timeHour=jv,t.timeHours=Hv,t.timeDay=Xv,t.timeDays=Gv,t.timeWeek=Vv,t.timeWeeks=tg,t.timeSunday=Vv,t.timeSundays=tg,t.timeMonday=$v,t.timeMondays=ng,t.timeTuesday=Wv,t.timeTuesdays=eg,t.timeWednesday=Zv,t.timeWednesdays=rg,t.timeThursday=Qv,t.timeThursdays=ig,t.timeFriday=Jv,t.timeFridays=og,t.timeSaturday=Kv,t.timeSaturdays=ag,t.timeMonth=ug,t.timeMonths=fg,t.timeYear=cg,t.timeYears=sg,t.utcMinute=lg,t.utcMinutes=hg,t.utcHour=dg,t.utcHours=pg,t.utcDay=vg,t.utcDays=gg,t.utcWeek=yg,t.utcWeeks=Ag,t.utcSunday=yg,t.utcSundays=Ag,t.utcMonday=_g,t.utcMondays=Tg,t.utcTuesday=bg,t.utcTuesdays=Ng,t.utcWednesday=mg,t.utcWednesdays=Sg,t.utcThursday=xg,t.utcThursdays=Eg,t.utcFriday=wg,t.utcFridays=kg,t.utcSaturday=Mg,t.utcSaturdays=Cg,t.utcMonth=Pg,t.utcMonths=zg,t.utcYear=Rg,t.utcYears=Dg,t.timeFormatDefaultLocale=nf,t.timeFormatLocale=$a,t.isoFormat=Fg,t.isoParse=Ig,t.now=wn,t.timer=Tn,t.timerFlush=Nn,t.timeout=Cn,t.interval=function(t,n,e){var r=new An,i=n;return null==n?(r.restart(t,n,e),r):(n=+n,e=null==e?wn():+e,r.restart(function o(a){a+=i,r.restart(o,i+=n,e),t(a)},n,e),r)},t.transition=Yn,t.active=function(t,n){var e,r,i=t.__transition;if(i){n=null==n?null:n+"";for(r in i)if((e=i[r]).state>Ll&&e.name===n)return new On(t,hh,n,+r)}return null},t.interrupt=Dn,t.voronoi=function(){function t(t){return new Bc(t.map(function(r,i){var o=[Math.round(n(r,i,t)/ab)*ab,Math.round(e(r,i,t)/ab)*ab];return o.index=i,o.data=r,o}),r)}var n=gc,e=yc,r=null;return t.polygons=function(n){return t(n).polygons()},t.links=function(n){return t(n).links()},t.triangles=function(n){return t(n).triangles()},t.x=function(e){return arguments.length?(n="function"==typeof e?e:vc(+e),t):n},t.y=function(n){return arguments.length?(e="function"==typeof n?n:vc(+n),t):e},t.extent=function(n){return arguments.length?(r=null==n?null:[[+n[0][0],+n[0][1]],[+n[1][0],+n[1][1]]],t):r&&[[r[0][0],r[0][1]],[r[1][0],r[1][1]]]},t.size=function(n){return arguments.length?(r=null==n?null:[[0,0],[+n[0],+n[1]]],t):r&&[r[1][0]-r[0][0],r[1][1]-r[0][1]]},t},t.zoom=function(){function n(t){t.property("__zoom",$c).on("wheel.zoom",f).on("mousedown.zoom",c).on("dblclick.zoom",s).filter(m).on("touchstart.zoom",l).on("touchmove.zoom",h).on("touchend.zoom touchcancel.zoom",d).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function e(t,n){return(n=Math.max(x[0],Math.min(x[1],n)))===t.k?t:new Ic(n,t.x,t.y)}function r(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new Ic(t.k,r,i)}function i(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function o(t,n,e){t.on("start.zoom",function(){a(this,arguments).start()}).on("interrupt.zoom end.zoom",function(){a(this,arguments).end()}).tween("zoom",function(){var t=arguments,r=a(this,t),o=y.apply(this,t),u=e||i(o),f=Math.max(o[1][0]-o[0][0],o[1][1]-o[0][1]),c=this.__zoom,s="function"==typeof n?n.apply(this,t):n,l=A(c.invert(u).concat(f/c.k),s.invert(u).concat(f/s.k));return function(t){if(1===t)t=s;else{var n=l(t),e=f/n[2];t=new Ic(e,u[0]-n[0]*e,u[1]-n[1]*e)}r.zoom(null,t)}})}function a(t,n){for(var e,r=0,i=T.length;r<i;++r)if((e=T[r]).that===t)return e;return new u(t,n)}function u(t,n){this.that=t,this.args=n,this.index=-1,this.active=0,this.extent=y.apply(t,n)}function f(){if(g.apply(this,arguments)){var t=a(this,arguments),n=this.__zoom,i=Math.max(x[0],Math.min(x[1],n.k*Math.pow(2,b.apply(this,arguments)))),o=pt(this);if(t.wheel)t.mouse[0][0]===o[0]&&t.mouse[0][1]===o[1]||(t.mouse[1]=n.invert(t.mouse[0]=o)),clearTimeout(t.wheel);else{if(n.k===i)return;t.mouse=[o,n.invert(o)],Dn(this),t.start()}Xc(),t.wheel=setTimeout(function(){t.wheel=null,t.end()},k),t.zoom("mouse",_(r(e(n,i),t.mouse[0],t.mouse[1]),t.extent,w))}}function c(){if(!v&&g.apply(this,arguments)){var n=a(this,arguments),e=ct(t.event.view).on("mousemove.zoom",function(){if(Xc(),!n.moved){var e=t.event.clientX-o,i=t.event.clientY-u;n.moved=e*e+i*i>C}n.zoom("mouse",_(r(n.that.__zoom,n.mouse[0]=pt(n.that),n.mouse[1]),n.extent,w))},!0).on("mouseup.zoom",function(){e.on("mousemove.zoom mouseup.zoom",null),bt(t.event.view,n.moved),Xc(),n.end()},!0),i=pt(this),o=t.event.clientX,u=t.event.clientY;_t(t.event.view),Hc(),n.mouse=[i,this.__zoom.invert(i)],Dn(this),n.start()}}function s(){if(g.apply(this,arguments)){var i=this.__zoom,a=pt(this),u=i.invert(a),f=i.k*(t.event.shiftKey?.5:2),c=_(r(e(i,f),a,u),y.apply(this,arguments),w);Xc(),M>0?ct(this).transition().duration(M).call(o,c,a):ct(this).call(n.transform,c)}}function l(){if(g.apply(this,arguments)){var n,e,r,i,o=a(this,arguments),u=t.event.changedTouches,f=u.length;for(Hc(),e=0;e<f;++e)i=[i=vt(this,u,(r=u[e]).identifier),this.__zoom.invert(i),r.identifier],o.touch0?o.touch1||(o.touch1=i):(o.touch0=i,n=!0);if(p&&(p=clearTimeout(p),!o.touch1))return o.end(),void((i=ct(this).on("dblclick.zoom"))&&i.apply(this,arguments));n&&(p=setTimeout(function(){p=null},E),Dn(this),o.start())}}function h(){var n,i,o,u,f=a(this,arguments),c=t.event.changedTouches,s=c.length;for(Xc(),p&&(p=clearTimeout(p)),n=0;n<s;++n)o=vt(this,c,(i=c[n]).identifier),f.touch0&&f.touch0[2]===i.identifier?f.touch0[0]=o:f.touch1&&f.touch1[2]===i.identifier&&(f.touch1[0]=o);if(i=f.that.__zoom,f.touch1){var l=f.touch0[0],h=f.touch0[1],d=f.touch1[0],v=f.touch1[1],g=(g=d[0]-l[0])*g+(g=d[1]-l[1])*g,y=(y=v[0]-h[0])*y+(y=v[1]-h[1])*y;i=e(i,Math.sqrt(g/y)),o=[(l[0]+d[0])/2,(l[1]+d[1])/2],u=[(h[0]+v[0])/2,(h[1]+v[1])/2]}else{if(!f.touch0)return;o=f.touch0[0],u=f.touch0[1]}f.zoom("touch",_(r(i,o,u),f.extent,w))}function d(){var n,e,r=a(this,arguments),i=t.event.changedTouches,o=i.length;for(Hc(),v&&clearTimeout(v),v=setTimeout(function(){v=null},E),n=0;n<o;++n)e=i[n],r.touch0&&r.touch0[2]===e.identifier?delete r.touch0:r.touch1&&r.touch1[2]===e.identifier&&delete r.touch1;r.touch1&&!r.touch0&&(r.touch0=r.touch1,delete r.touch1),r.touch0?r.touch0[1]=this.__zoom.invert(r.touch0[0]):r.end()}var p,v,g=Gc,y=Vc,_=Qc,b=Wc,m=Zc,x=[0,1/0],w=[[-1/0,-1/0],[1/0,1/0]],M=250,A=_n,T=[],S=N("start","zoom","end"),E=500,k=150,C=0;return n.transform=function(t,n){var e=t.selection?t.selection():t;e.property("__zoom",$c),t!==e?o(t,n):e.interrupt().each(function(){a(this,arguments).start().zoom(null,"function"==typeof n?n.apply(this,arguments):n).end()})},n.scaleBy=function(t,e){n.scaleTo(t,function(){return this.__zoom.k*("function"==typeof e?e.apply(this,arguments):e)})},n.scaleTo=function(t,o){n.transform(t,function(){var t=y.apply(this,arguments),n=this.__zoom,a=i(t),u=n.invert(a),f="function"==typeof o?o.apply(this,arguments):o;return _(r(e(n,f),a,u),t,w)})},n.translateBy=function(t,e,r){n.transform(t,function(){return _(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof r?r.apply(this,arguments):r),y.apply(this,arguments),w)})},n.translateTo=function(t,e,r){n.transform(t,function(){var t=y.apply(this,arguments),n=this.__zoom,o=i(t);return _(fb.translate(o[0],o[1]).scale(n.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof r?-r.apply(this,arguments):-r),t,w)})},u.prototype={start:function(){return 1==++this.active&&(this.index=T.push(this)-1,this.emit("start")),this},zoom:function(t,n){return this.mouse&&"mouse"!==t&&(this.mouse[1]=n.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=n.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=n.invert(this.touch1[0])),this.that.__zoom=n,this.emit("zoom"),this},end:function(){return 0==--this.active&&(T.splice(this.index,1),this.index=-1,this.emit("end")),this},emit:function(t){ot(new function(t,n,e){this.target=t,this.type=n,this.transform=e}(n,t,this.that.__zoom),S.apply,S,[t,this.that,this.args])}},n.wheelDelta=function(t){return arguments.length?(b="function"==typeof t?t:Fc(+t),n):b},n.filter=function(t){return arguments.length?(g="function"==typeof t?t:Fc(!!t),n):g},n.touchable=function(t){return arguments.length?(m="function"==typeof t?t:Fc(!!t),n):m},n.extent=function(t){return arguments.length?(y="function"==typeof t?t:Fc([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),n):y},n.scaleExtent=function(t){return arguments.length?(x[0]=+t[0],x[1]=+t[1],n):[x[0],x[1]]},n.translateExtent=function(t){return arguments.length?(w[0][0]=+t[0][0],w[1][0]=+t[1][0],w[0][1]=+t[0][1],w[1][1]=+t[1][1],n):[[w[0][0],w[0][1]],[w[1][0],w[1][1]]]},n.constrain=function(t){return arguments.length?(_=t,n):_},n.duration=function(t){return arguments.length?(M=+t,n):M},n.interpolate=function(t){return arguments.length?(A=t,n):A},n.on=function(){var t=S.on.apply(S,arguments);return t===S?n:t},n.clickDistance=function(t){return arguments.length?(C=(t=+t)*t,n):Math.sqrt(C)},n},t.zoomTransform=jc,t.zoomIdentity=fb,Object.defineProperty(t,"__esModule",{value:!0})}); /*!
* Lightbox for Bootstrap by @ashleydw * https://github.com/ashleydw/lightbox * * License: https://github.com/ashleydw/lightbox/blob/master/LICENSE */
+function ($) {
'use strict';
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
var Lightbox = (function ($) {
var NAME = 'ekkoLightbox'; var JQUERY_NO_CONFLICT = $.fn[NAME];
var Default = { title: , footer: , maxWidth: 9999, maxHeight: 9999, showArrows: true, //display the left / right arrows or not wrapping: true, //if true, gallery loops infinitely type: null, //force the lightbox into image / youtube mode. if null, or not image|youtube|vimeo; detect it alwaysShowClose: false, //always show the close button, even if there is no title
loadingMessage: 'leftArrow: '❮', rightArrow: '❯', strings: { close: 'Close', fail: 'Failed to load image:', type: 'Could not detect remote target type. Force the type using data-type' }, doc: document, // if in an iframe can specify top.document onShow: function onShow() {}, onShown: function onShown() {}, onHide: function onHide() {}, onHidden: function onHidden() {}, onNavigate: function onNavigate() {}, onContentLoaded: function onContentLoaded() {} };
var Lightbox = (function () { _createClass(Lightbox, null, [{ key: 'Default',
/**
Class properties: _$element: null -> the <a> element currently being displayed _$modal: The bootstrap modal generated _$modalDialog: The .modal-dialog _$modalContent: The .modal-content _$modalBody: The .modal-body _$modalHeader: The .modal-header _$modalFooter: The .modal-footer _$lightboxContainerOne: Container of the first lightbox element _$lightboxContainerTwo: Container of the second lightbox element _$lightboxBody: First element in the container _$modalArrows: The overlayed arrows container _$galleryItems: Other <a>'s available for this gallery _galleryName: Name of the current data('gallery') showing _galleryIndex: The current index of the _$galleryItems being shown _config: {} the options for the modal _modalId: unique id for the current lightbox _padding / _border: CSS properties for the modal container; these are used to calculate the available space for the content */
get: function get() { return Default; } }]);
function Lightbox($element, config) { var _this = this;
_classCallCheck(this, Lightbox);
this._config = $.extend({}, Default, config); this._$modalArrows = null; this._galleryIndex = 0; this._galleryName = null; this._padding = null; this._border = null; this._titleIsShown = false; this._footerIsShown = false; this._wantedWidth = 0; this._wantedHeight = 0; this._touchstartX = 0; this._touchendX = 0;
this._modalId = 'ekkoLightbox-' + Math.floor(Math.random() * 1000 + 1); this._$element = $element instanceof jQuery ? $element : $($element);
this._isBootstrap3 = $.fn.modal.Constructor.VERSION[0] == 3;
var h4 = '' + (this._config.title || " ") + '
';var btn = '<button type="button" class="close" data-dismiss="modal" aria-label="' + this._config.strings.close + '">×</button>';
var header = ' '; var footer = ' '; var body = 'this._$modal = $('#' + this._modalId, this._config.doc); this._$modalDialog = this._$modal.find('.modal-dialog').first(); this._$modalContent = this._$modal.find('.modal-content').first(); this._$modalBody = this._$modal.find('.modal-body').first(); this._$modalHeader = this._$modal.find('.modal-header').first(); this._$modalFooter = this._$modal.find('.modal-footer').first();
this._$lightboxContainer = this._$modalBody.find('.ekko-lightbox-container').first(); this._$lightboxBodyOne = this._$lightboxContainer.find('> div:first-child').first(); this._$lightboxBodyTwo = this._$lightboxContainer.find('> div:last-child').first();
this._border = this._calculateBorders(); this._padding = this._calculatePadding();
this._galleryName = this._$element.data('gallery'); if (this._galleryName) { this._$galleryItems = $(document.body).find('*[data-gallery="' + this._galleryName + '"]'); this._galleryIndex = this._$galleryItems.index(this._$element); $(document).on('keydown.ekkoLightbox', this._navigationalBinder.bind(this));
// add the directional arrows to the modal if (this._config.showArrows && this._$galleryItems.length > 1) {
this._$lightboxContainer.append(' ');this._$modalArrows = this._$lightboxContainer.find('div.ekko-lightbox-nav-overlay').first(); this._$lightboxContainer.on('click', 'a:first-child', function (event) { event.preventDefault(); return _this.navigateLeft(); }); this._$lightboxContainer.on('click', 'a:last-child', function (event) { event.preventDefault(); return _this.navigateRight(); }); this.updateNavigation(); } }
this._$modal.on('show.bs.modal', this._config.onShow.bind(this)).on('shown.bs.modal', function () { _this._toggleLoading(true); _this._handle(); return _this._config.onShown.call(_this); }).on('hide.bs.modal', this._config.onHide.bind(this)).on('hidden.bs.modal', function () { if (_this._galleryName) { $(document).off('keydown.ekkoLightbox'); $(window).off('resize.ekkoLightbox'); } _this._$modal.remove(); return _this._config.onHidden.call(_this); }).modal(this._config);
$(window).on('resize.ekkoLightbox', function () { _this._resize(_this._wantedWidth, _this._wantedHeight); }); this._$lightboxContainer.on('touchstart', function () { _this._touchstartX = event.changedTouches[0].screenX; }).on('touchend', function () { _this._touchendX = event.changedTouches[0].screenX; _this._swipeGesure(); }); }
_createClass(Lightbox, [{ key: 'element', value: function element() { return this._$element; } }, { key: 'modal', value: function modal() { return this._$modal; } }, { key: 'navigateTo', value: function navigateTo(index) {
if (index < 0 || index > this._$galleryItems.length - 1) return this;
this._galleryIndex = index;
this.updateNavigation();
this._$element = $(this._$galleryItems.get(this._galleryIndex)); this._handle(); } }, { key: 'navigateLeft', value: function navigateLeft() {
if (!this._$galleryItems) return;
if (this._$galleryItems.length === 1) return;
if (this._galleryIndex === 0) { if (this._config.wrapping) this._galleryIndex = this._$galleryItems.length - 1;else return; } else //circular this._galleryIndex--;
this._config.onNavigate.call(this, 'left', this._galleryIndex); return this.navigateTo(this._galleryIndex); } }, { key: 'navigateRight', value: function navigateRight() {
if (!this._$galleryItems) return;
if (this._$galleryItems.length === 1) return;
if (this._galleryIndex === this._$galleryItems.length - 1) { if (this._config.wrapping) this._galleryIndex = 0;else return; } else //circular this._galleryIndex++;
this._config.onNavigate.call(this, 'right', this._galleryIndex); return this.navigateTo(this._galleryIndex); } }, { key: 'updateNavigation', value: function updateNavigation() { if (!this._config.wrapping) { var $nav = this._$lightboxContainer.find('div.ekko-lightbox-nav-overlay'); if (this._galleryIndex === 0) $nav.find('a:first-child').addClass('disabled');else $nav.find('a:first-child').removeClass('disabled');
if (this._galleryIndex === this._$galleryItems.length - 1) $nav.find('a:last-child').addClass('disabled');else $nav.find('a:last-child').removeClass('disabled'); } } }, { key: 'close', value: function close() { return this._$modal.modal('hide'); }
// helper private methods }, { key: '_navigationalBinder', value: function _navigationalBinder(event) { event = event || window.event; if (event.keyCode === 39) return this.navigateRight(); if (event.keyCode === 37) return this.navigateLeft(); }
// type detection private methods }, { key: '_detectRemoteType', value: function _detectRemoteType(src, type) {
type = type || false;
if (!type && this._isImage(src)) type = 'image'; if (!type && this._getYoutubeId(src)) type = 'youtube'; if (!type && this._getVimeoId(src)) type = 'vimeo'; if (!type && this._getInstagramId(src)) type = 'instagram';
if (!type || ['image', 'youtube', 'vimeo', 'instagram', 'video', 'url'].indexOf(type) < 0) type = 'url';
return type; } }, { key: '_isImage', value: function _isImage(string) { return string && string.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i); } }, { key: '_containerToUse', value: function _containerToUse() { var _this2 = this;
// if currently showing an image, fade it out and remove var $toUse = this._$lightboxBodyTwo; var $current = this._$lightboxBodyOne;
if (this._$lightboxBodyTwo.hasClass('in')) { $toUse = this._$lightboxBodyOne; $current = this._$lightboxBodyTwo; }
$current.removeClass('in show'); setTimeout(function () { if (!_this2._$lightboxBodyTwo.hasClass('in')) _this2._$lightboxBodyTwo.empty(); if (!_this2._$lightboxBodyOne.hasClass('in')) _this2._$lightboxBodyOne.empty(); }, 500);
$toUse.addClass('in show'); return $toUse; } }, { key: '_handle', value: function _handle() {
var $toUse = this._containerToUse(); this._updateTitleAndFooter();
var currentRemote = this._$element.attr('data-remote') || this._$element.attr('href'); var currentType = this._detectRemoteType(currentRemote, this._$element.attr('data-type') || false);
if (['image', 'youtube', 'vimeo', 'instagram', 'video', 'url'].indexOf(currentType) < 0) return this._error(this._config.strings.type);
switch (currentType) { case 'image': this._preloadImage(currentRemote, $toUse); this._preloadImageByIndex(this._galleryIndex, 3); break; case 'youtube': this._showYoutubeVideo(currentRemote, $toUse); break; case 'vimeo': this._showVimeoVideo(this._getVimeoId(currentRemote), $toUse); break; case 'instagram': this._showInstagramVideo(this._getInstagramId(currentRemote), $toUse); break; case 'video': this._showHtml5Video(currentRemote, $toUse); break; default: // url this._loadRemoteContent(currentRemote, $toUse); break; }
return this; } }, { key: '_getYoutubeId', value: function _getYoutubeId(string) { if (!string) return false; var matches = string.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/); return matches && matches[2].length === 11 ? matches[2] : false; } }, { key: '_getVimeoId', value: function _getVimeoId(string) { return string && string.indexOf('vimeo') > 0 ? string : false; } }, { key: '_getInstagramId', value: function _getInstagramId(string) { return string && string.indexOf('instagram') > 0 ? string : false; }
// layout private methods }, { key: '_toggleLoading', value: function _toggleLoading(show) { show = show || false; if (show) { this._$modalDialog.css('display', 'none'); this._$modal.removeClass('in show'); $('.modal-backdrop').append(this._config.loadingMessage); } else { this._$modalDialog.css('display', 'block'); this._$modal.addClass('in show'); $('.modal-backdrop').find('.ekko-lightbox-loader').remove(); } return this; } }, { key: '_calculateBorders', value: function _calculateBorders() { return { top: this._totalCssByAttribute('border-top-width'), right: this._totalCssByAttribute('border-right-width'), bottom: this._totalCssByAttribute('border-bottom-width'), left: this._totalCssByAttribute('border-left-width') }; } }, { key: '_calculatePadding', value: function _calculatePadding() { return { top: this._totalCssByAttribute('padding-top'), right: this._totalCssByAttribute('padding-right'), bottom: this._totalCssByAttribute('padding-bottom'), left: this._totalCssByAttribute('padding-left') }; } }, { key: '_totalCssByAttribute', value: function _totalCssByAttribute(attribute) { return parseInt(this._$modalDialog.css(attribute), 10) + parseInt(this._$modalContent.css(attribute), 10) + parseInt(this._$modalBody.css(attribute), 10); } }, { key: '_updateTitleAndFooter', value: function _updateTitleAndFooter() { var title = this._$element.data('title') || ""; var caption = this._$element.data('footer') || "";
this._titleIsShown = false; if (title || this._config.alwaysShowClose) { this._titleIsShown = true; this._$modalHeader.css('display', ).find('.modal-title').html(title || " "); } else this._$modalHeader.css('display', 'none');
this._footerIsShown = false; if (caption) { this._footerIsShown = true; this._$modalFooter.css('display', ).html(caption); } else this._$modalFooter.css('display', 'none');
return this; } }, { key: '_showYoutubeVideo', value: function _showYoutubeVideo(remote, $containerForElement) { var id = this._getYoutubeId(remote); var query = remote.indexOf('&') > 0 ? remote.substr(remote.indexOf('&')) : ; var width = this._$element.data('width') || 560; var height = this._$element.data('height') || width / (560 / 315); return this._showVideoIframe('//www.youtube.com/embed/' + id + '?badge=0&autoplay=1&html5=1' + query, width, height, $containerForElement); } }, { key: '_showVimeoVideo', value: function _showVimeoVideo(id, $containerForElement) { var width = this._$element.data('width') || 500; var height = this._$element.data('height') || width / (560 / 315); return this._showVideoIframe(id + '?autoplay=1', width, height, $containerForElement); } }, { key: '_showInstagramVideo', value: function _showInstagramVideo(id, $containerForElement) { // instagram load their content into iframe's so this can be put straight into the element var width = this._$element.data('width') || 612; var height = width + 80; id = id.substr(-1) !== '/' ? id + '/' : id; // ensure id has trailing slash $containerForElement.html('<iframe width="' + width + '" height="' + height + '" src="' + id + 'embed/" frameborder="0" allowfullscreen></iframe>'); this._resize(width, height); this._config.onContentLoaded.call(this); if (this._$modalArrows) //hide the arrows when showing video this._$modalArrows.css('display', 'none'); this._toggleLoading(false); return this; } }, { key: '_showVideoIframe', value: function _showVideoIframe(url, width, height, $containerForElement) { // should be used for videos only. for remote content use loadRemoteContent (data-type=url) height = height || width; // default to square
$containerForElement.html(' ');this._resize(width, height); this._config.onContentLoaded.call(this); if (this._$modalArrows) this._$modalArrows.css('display', 'none'); //hide the arrows when showing video this._toggleLoading(false); return this; } }, { key: '_showHtml5Video', value: function _showHtml5Video(url, $containerForElement) { // should be used for videos only. for remote content use loadRemoteContent (data-type=url) var width = this._$element.data('width') || 560; var height = this._$element.data('height') || width / (560 / 315);
$containerForElement.html(' ');this._resize(width, height); this._config.onContentLoaded.call(this); if (this._$modalArrows) this._$modalArrows.css('display', 'none'); //hide the arrows when showing video this._toggleLoading(false); return this; } }, { key: '_loadRemoteContent', value: function _loadRemoteContent(url, $containerForElement) { var _this3 = this;
var width = this._$element.data('width') || 560; var height = this._$element.data('height') || 560;
var disableExternalCheck = this._$element.data('disableExternalCheck') || false; this._toggleLoading(false);
// external urls are loading into an iframe // local ajax can be loaded into the container itself if (!disableExternalCheck && !this._isExternal(url)) { $containerForElement.load(url, $.proxy(function () { return _this3._$element.trigger('loaded.bs.modal');l; })); } else { $containerForElement.html('<iframe src="' + url + '" frameborder="0" allowfullscreen></iframe>'); this._config.onContentLoaded.call(this); }
if (this._$modalArrows) //hide the arrows when remote content this._$modalArrows.css('display', 'none');
this._resize(width, height); return this; } }, { key: '_isExternal', value: function _isExternal(url) { var match = url.match(/^([^:\/?#]+:)?(?:\/\/([^\/?#]*))?([^?#]+)?(\?[^#]*)?(#.*)?/); if (typeof match[1] === "string" && match[1].length > 0 && match[1].toLowerCase() !== location.protocol) return true;
if (typeof match[2] === "string" && match[2].length > 0 && match[2].replace(new RegExp(':(' + ({ "http:": 80, "https:": 443 })[location.protocol] + ')?$'), "") !== location.host) return true;
return false; } }, { key: '_error', value: function _error(message) { console.error(message); this._containerToUse().html(message); this._resize(300, 300); return this; } }, { key: '_preloadImageByIndex', value: function _preloadImageByIndex(startIndex, numberOfTimes) {
if (!this._$galleryItems) return;
var next = $(this._$galleryItems.get(startIndex), false); if (typeof next == 'undefined') return;
var src = next.attr('data-remote') || next.attr('href'); if (next.attr('data-type') === 'image' || this._isImage(src)) this._preloadImage(src, false);
if (numberOfTimes > 0) return this._preloadImageByIndex(startIndex + 1, numberOfTimes - 1); } }, { key: '_preloadImage', value: function _preloadImage(src, $containerForImage) { var _this4 = this;
$containerForImage = $containerForImage || false;
var img = new Image(); if ($containerForImage) { (function () {
// if loading takes > 200ms show a loader var loadingTimeout = setTimeout(function () { $containerForImage.append(_this4._config.loadingMessage); }, 200);
img.onload = function () { if (loadingTimeout) clearTimeout(loadingTimeout); loadingTimeout = null; var image = $('<img />'); image.attr('src', img.src); image.addClass('img-fluid');
// backward compatibility for bootstrap v3 image.css('width', '100%');
$containerForImage.html(image); if (_this4._$modalArrows) _this4._$modalArrows.css('display', ); // remove display to default to css property
_this4._resize(img.width, img.height); _this4._toggleLoading(false); return _this4._config.onContentLoaded.call(_this4); }; img.onerror = function () { _this4._toggleLoading(false); return _this4._error(_this4._config.strings.fail + (' ' + src)); }; })(); }
img.src = src; return img; } }, { key: '_swipeGesure', value: function _swipeGesure() { if (this._touchendX < this._touchstartX) { return this.navigateRight(); } if (this._touchendX > this._touchstartX) { return this.navigateLeft(); } } }, { key: '_resize', value: function _resize(width, height) {
height = height || width; this._wantedWidth = width; this._wantedHeight = height;
var imageAspecRatio = width / height;
// if width > the available space, scale down the expected width and height var widthBorderAndPadding = this._padding.left + this._padding.right + this._border.left + this._border.right;
// force 10px margin if window size > 575px var addMargin = this._config.doc.body.clientWidth > 575 ? 20 : 0; var discountMargin = this._config.doc.body.clientWidth > 575 ? 0 : 20;
var maxWidth = Math.min(width + widthBorderAndPadding, this._config.doc.body.clientWidth - addMargin, this._config.maxWidth);
if (width + widthBorderAndPadding > maxWidth) { height = (maxWidth - widthBorderAndPadding - discountMargin) / imageAspecRatio; width = maxWidth; } else width = width + widthBorderAndPadding;
var headerHeight = 0, footerHeight = 0;
// as the resize is performed the modal is show, the calculate might fail // if so, default to the default sizes if (this._footerIsShown) footerHeight = this._$modalFooter.outerHeight(true) || 55;
if (this._titleIsShown) headerHeight = this._$modalHeader.outerHeight(true) || 67;
var borderPadding = this._padding.top + this._padding.bottom + this._border.bottom + this._border.top;
//calculated each time as resizing the window can cause them to change due to Bootstraps fluid margins var margins = parseFloat(this._$modalDialog.css('margin-top')) + parseFloat(this._$modalDialog.css('margin-bottom'));
var maxHeight = Math.min(height, $(window).height() - borderPadding - margins - headerHeight - footerHeight, this._config.maxHeight - borderPadding - headerHeight - footerHeight);
if (height > maxHeight) { // if height > the available height, scale down the width width = Math.ceil(maxHeight * imageAspecRatio) + widthBorderAndPadding; }
this._$lightboxContainer.css('height', maxHeight); this._$modalDialog.css('flex', 1).css('maxWidth', width);
var modal = this._$modal.data('bs.modal'); if (modal) { // v4 method is mistakenly protected try { modal._handleUpdate(); } catch (Exception) { modal.handleUpdate(); } } return this; } }], [{ key: '_jQueryInterface', value: function _jQueryInterface(config) { var _this5 = this;
config = config || {}; return this.each(function () { var $this = $(_this5); var _config = $.extend({}, Lightbox.Default, $this.data(), typeof config === 'object' && config);
new Lightbox(_this5, _config); }); } }]);
return Lightbox; })();
$.fn[NAME] = Lightbox._jQueryInterface; $.fn[NAME].Constructor = Lightbox; $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT; return Lightbox._jQueryInterface; };
return Lightbox; })(jQuery); //# sourceMappingURL=ekko-lightbox.js.map
}(jQuery);
$(document).ready(function() { var previous = " ";
$("#image_gallery").click(function(event) { var id_name = event.target.id; id_name = id_name.replace(/[0-9]/g, ); //regex for alphabets, no numbers var id_toggle = document.getElementById(id_name); //get ID of names under class "team-bio" if(document.getElementById(id_name)){ //if ID exists
if((previous != id_name) && (previous != " ")){ //if you click a diff image var id_previous = document.getElementById(previous); $(id_previous).toggle("hidden"); console.log(id_previous);
} else if(previous == id_name){ //clicking on the same image $(id_toggle).toggle("unhidden"); } $(id_toggle).toggle("unhidden"); //toggles txtbox to appear
previous = id_name;//checks to see if you clicked different images } else{ alert("This person does not exist. Try again."); } } );
}); (function($) {
$.fn.visible = function() {
var $t = $(this), $w = $(window), windowHeight = window.innerHeight, windowTop = $w.scrollTop(), windowBottom = windowTop + windowHeight, _height = $t.outerHeight(), _top = $t.offset().top, _bottom = _top + _height;
return ((_bottom >= windowTop) && (_top <= windowBottom)); };
})(jQuery);
$(document).ready(function () {
if ($(".sub-page").is(":visible") === false){ $(".navbar").addClass("invisible"); }
$(window).on("scroll", function () { if ($(window).scrollTop() >= 100 && !$(".navbar").hasClass("fixed")) { $(".navbar").addClass("fixed").addClass("fixed-top").animate({ top: 15, opacity: 1 }, 1000);
if ($(".sub-page").is(":visible") === false){ $(".navbar").removeClass("invisible"); }
} else if ($(window).scrollTop() <= 50) { $(".navbar").css("top", "").removeClass("fixed").removeClass("fixed-top");
if ($(".sub-page").is(":visible") === false){ console.log("Invisible"); $(".navbar").addClass("invisible"); } } }); //on or scroll, detect elements in view $(window).on('scroll resize', function() { $('.fly-in').each(function (i, val) { if($(val).visible()){ $(val).addClass("come-in"); } }) }); //trigger our scroll event on initial load $(window).trigger('scroll');
});
$(document).ready(function () {
let widthPol = 1920, heightPol = 100;
const headerPoly = [ {"x": 0, "y": 100}, {"x": widthPol, "y": 100}, {"x": widthPol, "y": 0}, {"x": 0, "y": 50}, {"x": 0, "y": 100}, ];
let widthImgOverlay = 1920, heightImgOverlay = 100;
const imagePolyTop = [ {"x": 0, "y": 100}, {"x": widthImgOverlay, "y": 50}, {"x": widthImgOverlay, "y": 0}, {"x": 0, "y": 0}, {"x": 0, "y": 100}, ];
const imagePolyBottom = [ {"x": 0, "y": 100}, {"x": widthImgOverlay, "y": 100}, {"x": widthImgOverlay, "y": 0}, {"x": 0, "y": 50}, {"x": 0, "y": 100}, ];
let imgHeaderHolder = d3.select("body").select("#bottom-landing-overlay").select('#landing-svg') .attr("width", widthPol) .attr("height", heightPol);
console.log(d3.select("body"));
let imgBottomHolder = d3.select("body").selectAll(".svg-image-overlay-bottom") .attr("width", widthImgOverlay) .attr("height", heightImgOverlay);
let imgTopHolder = d3.select("body").selectAll(".svg-image-overlay-top") .attr("width", widthImgOverlay) .attr("height", heightImgOverlay);
createPolygon(headerPoly, widthPol, heightPol, imgHeaderHolder); createPolygon(imagePolyBottom, widthImgOverlay, heightImgOverlay, imgBottomHolder); createPolygon(imagePolyTop, widthImgOverlay, heightImgOverlay, imgTopHolder);
function createPolygon(polygon, width, height, vis) {
let svg = vis.selectAll("path").data([polygon]);
svg.exit().remove();
let lineFunction = d3.line() .x(function (d) { return d.x }) .y(function (d) { return d.y });
svg.enter().append("path") .attr("d", lineFunction(polygon)) .attr("fill", "#fff"); }
$(document).on('click', '[data-toggle="lightbox"]', function(event) { event.preventDefault(); $(this).ekkoLightbox({ }); }); $(function () { $('[data-toggle="tooltip"]').tooltip() })
}); $(document).ready(function () {
let duration = 750;
setTimeout(function () { $('.spinner').each(function (k,v) { setTimeout(function () { $(v).fadeIn(duration).css("display", "flex"); $({deg: 0}).animate({ deg: 360 }, { step: function (now, fx) { $(v).css({"transform": "rotateY(" + now + "deg)"}); }, duration: duration, easing: 'linear', queue: false, complete: function () { } }, 'linear'); }, k * duration*2/3); }) }, 200);
$(".main-background").on("click", function () { $('.spinner').each(function () { $(this).fadeIn().css("display", "flex"); }) })
}); let modelInitData = [
{ time: 0, gfp: 0, roff: 0, ron: 0 }, { time: 50, gfp: 0.503308, roff: 0.005113, ron: 0.423903 }, { time: 100, gfp: 0.690581, roff: 0.0049136, ron: 0.792887 }, { time: 150, gfp: 0.767586, roff: 0.00471637, ron: 0.889209 }, { time: 200, gfp: 0.80343, roff: 0.00453485, ron: 0.873127 }, { time: 250, gfp: 0.823516, roff: 0.00436488, ron: 0.847286 }, { time: 300, gfp: 0.837313, roff: 0.00420449, ron: 0.824804 }, { time: 350, gfp: 0.848361, roff: 0.00405266, ron: 0.808024 }, { time: 400, gfp: 0.858, roff: 0.00390859, ron: 0.796644 }, { time: 450, gfp: 0.866756, roff: 0.00377157, ron: 0.789551 }, { time: 500, gfp: 0.874851, roff: 0.00364102, ron: 0.785535 }, { time: 550, gfp: 0.882393, roff: 0.00351647, ron: 0.783577 }, { time: 600, gfp: 0.889442, roff: 0.00339753, ron: 0.782911 }, { time: 650, gfp: 0.896039, roff: 0.00328388, ron: 0.783012 }, { time: 700, gfp: 0.902214, roff: 0.00317525, ron: 0.783537 }, { time: 750, gfp: 0.907996, roff: 0.0030714, ron: 0.784275 }, { time: 800, gfp: 0.913407, roff: 0.00297211, ron: 0.785103 }, { time: 850, gfp: 0.918469, roff: 0.00287717, ron: 0.78595 }, { time: 900, gfp: 0.923205, roff: 0.00278638, ron: 0.786779 }, { time: 950, gfp: 0.927633, roff: 0.00269957, ron: 0.787571 }, { time: 1000, gfp: 0.931772, roff: 0.00261657, ron: 0.788317 }, { time: 1050, gfp: 0.935641, roff: 0.0025372, ron: 0.789016 }, { time: 1100, gfp: 0.939256, roff: 0.00246131, ron: 0.789668 }, { time: 1150, gfp: 0.942634, roff: 0.00238875, ron: 0.790274 }, { time: 1200, gfp: 0.945789, roff: 0.00231937, ron: 0.790838 }, { time: 1250, gfp: 0.948736, roff: 0.00225304, ron: 0.791361 }, { time: 1300, gfp: 0.951489, roff: 0.00218962, ron: 0.791848 }, { time: 1350, gfp: 0.954061, roff: 0.00212898, ron: 0.7923 }, { time: 1400, gfp: 0.956464, roff: 0.00207101, ron: 0.792721 }, { time: 1450, gfp: 0.958709, roff: 0.00201559, ron: 0.793112 }, { time: 1500, gfp: 0.960807, roff: 0.0019626, ron: 0.793476 }, { time: 1550, gfp: 0.962768, roff: 0.00191194, ron: 0.793815 }, { time: 1600, gfp: 0.964601, roff: 0.00186351, ron: 0.79413 }, { time: 1650, gfp: 0.966314, roff: 0.00181721, ron: 0.794424 }, { time: 1700, gfp: 0.967917, roff: 0.00177295, ron: 0.794698 }, { time: 1750, gfp: 0.969416, roff: 0.00173063, ron: 0.794954 }, { time: 1800, gfp: 0.970819, roff: 0.00169018, ron: 0.795192 }, { time: 1850, gfp: 0.972132, roff: 0.00165151, ron: 0.795415 }, { time: 1900, gfp: 0.973361, roff: 0.00161454, ron: 0.795622 }, { time: 1950, gfp: 0.974512, roff: 0.00157921, ron: 0.795817 }, { time: 2000, gfp: 0.975591, roff: 0.00154542, ron: 0.795998 }, { time: 2050, gfp: 0.976602, roff: 0.00151313, ron: 0.796168 }, { time: 2100, gfp: 0.977549, roff: 0.00148226, ron: 0.796327 }, { time: 2150, gfp: 0.978438, roff: 0.00145275, ron: 0.796475 }, { time: 2200, gfp: 0.979272, roff: 0.00142454, ron: 0.796615 }, { time: 2250, gfp: 0.980055, roff: 0.00139757, ron: 0.796745 }, { time: 2300, gfp: 0.98079, roff: 0.00137179, ron: 0.796868 }, { time: 2350, gfp: 0.981481, roff: 0.00134715, ron: 0.796982 }, { time: 2400, gfp: 0.98213, roff: 0.0013236, ron: 0.79709 }, { time: 2450, gfp: 0.98274, roff: 0.00130109, ron: 0.797191 }, { time: 2500, gfp: 0.983314, roff: 0.00127957, ron: 0.797286 }, { time: 2550, gfp: 0.983853, roff: 0.00125899, ron: 0.797376 }, { time: 2600, gfp: 0.984362, roff: 0.00123933, ron: 0.79746 }, { time: 2650, gfp: 0.98484, roff: 0.00122053, ron: 0.797539 }, { time: 2700, gfp: 0.985291, roff: 0.00120257, ron: 0.797613 }, { time: 2750, gfp: 0.985715, roff: 0.00118539, ron: 0.797683 }, { time: 2800, gfp: 0.986116, roff: 0.00116898, ron: 0.797749 }, { time: 2850, gfp: 0.986493, roff: 0.00115329, ron: 0.797811 }, { time: 2900, gfp: 0.98685, roff: 0.00113829, ron: 0.797869 }, { time: 2950, gfp: 0.987186, roff: 0.00112395, ron: 0.797925 }, { time: 3000, gfp: 0.987503, roff: 0.00111025, ron: 0.797977 }, { time: 3050, gfp: 0.987803, roff: 0.00109715, ron: 0.798026 }, { time: 3100, gfp: 0.988087, roff: 0.00108463, ron: 0.798072 }, { time: 3150, gfp: 0.988354, roff: 0.00107267, ron: 0.798116 }, { time: 3200, gfp: 0.988608, roff: 0.00106123, ron: 0.798158 }, { time: 3250, gfp: 0.988847, roff: 0.0010503, ron: 0.798197 }, { time: 3300, gfp: 0.989074, roff: 0.00103985, ron: 0.798234 }, { time: 3350, gfp: 0.989289, roff: 0.00102986, ron: 0.798269 }, { time: 3400, gfp: 0.989492, roff: 0.00102031, ron: 0.798302 }, { time: 3450, gfp: 0.989684, roff: 0.00101119, ron: 0.798334 }, { time: 3500, gfp: 0.989866, roff: 0.00100247, ron: 0.798364 }, { time: 3550, gfp: 0.990039, roff: 0.00099413, ron: 0.798392 }, { time: 3600, gfp: 0.990203, roff: 0.000986162, ron: 0.798419 }, { time: 3650, gfp: 0.990358, roff: 0.000978546, ron: 0.798444 }, { time: 3700, gfp: 0.990506, roff: 0.000971266, ron: 0.798468 }, { time: 3750, gfp: 0.990645, roff: 0.000964308, ron: 0.798491 }, { time: 3800, gfp: 0.990778, roff: 0.000957657, ron: 0.798512 }, { time: 3850, gfp: 0.990904, roff: 0.0009513, ron: 0.798533 }, { time: 3900, gfp: 0.991024, roff: 0.000945224, ron: 0.798552 }, { time: 3950, gfp: 0.991137, roff: 0.000939417, ron: 0.798571 }, { time: 4000, gfp: 0.991245, roff: 0.000933866, ron: 0.798588 }, { time: 4050, gfp: 0.991348, roff: 0.000928561, ron: 0.798605 }, { time: 4100, gfp: 0.991445, roff: 0.00092349, ron: 0.798621 }, { time: 4150, gfp: 0.991538, roff: 0.000918643, ron: 0.798636 }, { time: 4200, gfp: 0.991626, roff: 0.000914011, ron: 0.79865 }, { time: 4250, gfp: 0.99171, roff: 0.000909583, ron: 0.798664 }, { time: 4300, gfp: 0.991789, roff: 0.000905351, ron: 0.798677 }, { time: 4350, gfp: 0.991865, roff: 0.000901306, ron: 0.798689 }, { time: 4400, gfp: 0.991937, roff: 0.00089744, ron: 0.798701 }, { time: 4450, gfp: 0.992006, roff: 0.000893745, ron: 0.798712 }, { time: 4500, gfp: 0.992071, roff: 0.000890213, ron: 0.798723 }, { time: 4550, gfp: 0.992134, roff: 0.000886837, ron: 0.798733 }, { time: 4600, gfp: 0.992193, roff: 0.00088361, ron: 0.798743 }, { time: 4650, gfp: 0.992249, roff: 0.000880526, ron: 0.798752 }, { time: 4700, gfp: 0.992303, roff: 0.000877579, ron: 0.79876 }, { time: 4750, gfp: 0.992354, roff: 0.000874761, ron: 0.798769 }, { time: 4800, gfp: 0.992403, roff: 0.000872069, ron: 0.798777 }, { time: 4850, gfp: 0.992449, roff: 0.000869495, ron: 0.798784 }, { time: 4900, gfp: 0.992494, roff: 0.000867035, ron: 0.798791 }, { time: 4950, gfp: 0.992536, roff: 0.000864684, ron: 0.798798 }, { time: 5000, gfp: 0.992576, roff: 0.000862437, ron: 0.798805 }, { time: 5050, gfp: 0.992615, roff: 0.00086029, ron: 0.798811 }, { time: 5100, gfp: 0.992651, roff: 0.000858237, ron: 0.798817 }, { time: 5150, gfp: 0.992686, roff: 0.000856275, ron: 0.798823 }, { time: 5200, gfp: 0.992719, roff: 0.0008544, ron: 0.798828 }, { time: 5250, gfp: 0.992751, roff: 0.000852607, ron: 0.798833 }, { time: 5300, gfp: 0.992781, roff: 0.000850894, ron: 0.798838 }, { time: 5350, gfp: 0.99281, roff: 0.000849257, ron: 0.798843 }, { time: 5400, gfp: 0.992838, roff: 0.000847692, ron: 0.798847 }, { time: 5450, gfp: 0.992864, roff: 0.000846196, ron: 0.798851 }, { time: 5500, gfp: 0.992889, roff: 0.000844766, ron: 0.798856 }, { time: 5550, gfp: 0.992913, roff: 0.000843399, ron: 0.798859 }, { time: 5600, gfp: 0.992936, roff: 0.000842093, ron: 0.798863 }, { time: 5650, gfp: 0.992957, roff: 0.000840845, ron: 0.798867 }, { time: 5700, gfp: 0.992978, roff: 0.000839652, ron: 0.79887 }, { time: 5750, gfp: 0.992998, roff: 0.000838512, ron: 0.798873 }, { time: 5800, gfp: 0.993017, roff: 0.000837422, ron: 0.798876 }, { time: 5850, gfp: 0.993035, roff: 0.00083638, ron: 0.798879 }, { time: 5900, gfp: 0.993052, roff: 0.000835385, ron: 0.798882 }, { time: 5950, gfp: 0.993069, roff: 0.000834433, ron: 0.798885 }, { time: 6000, gfp: 0.993084, roff: 0.000833524, ron: 0.798887 }, { time: 6050, gfp: 0.993099, roff: 0.000832654, ron: 0.79889 }, { time: 6100, gfp: 0.993114, roff: 0.000831824, ron: 0.798892 }, { time: 6150, gfp: 0.993127, roff: 0.00083103, ron: 0.798894 }, { time: 6200, gfp: 0.99314, roff: 0.000830271, ron: 0.798896 }, { time: 6250, gfp: 0.993153, roff: 0.000829545, ron: 0.798898 }, { time: 6300, gfp: 0.993165, roff: 0.000828852, ron: 0.7989 }, { time: 6350, gfp: 0.993176, roff: 0.000828189, ron: 0.798902 }, { time: 6400, gfp: 0.993187, roff: 0.000827555, ron: 0.798904 }, { time: 6450, gfp: 0.993197, roff: 0.00082695, ron: 0.798906 }, { time: 6500, gfp: 0.993207, roff: 0.000826371, ron: 0.798907 }, { time: 6550, gfp: 0.993217, roff: 0.000825818, ron: 0.798909 }, { time: 6600, gfp: 0.993226, roff: 0.000825289, ron: 0.79891 }, { time: 6650, gfp: 0.993235, roff: 0.000824783, ron: 0.798912 }, { time: 6700, gfp: 0.993243, roff: 0.0008243, ron: 0.798913 }, { time: 6750, gfp: 0.993251, roff: 0.000823839, ron: 0.798914 }, { time: 6800, gfp: 0.993258, roff: 0.000823398, ron: 0.798915 }, { time: 6850, gfp: 0.993265, roff: 0.000822976, ron: 0.798917 }, { time: 6900, gfp: 0.993272, roff: 0.000822573, ron: 0.798918 }, { time: 6950, gfp: 0.993279, roff: 0.000822188, ron: 0.798919 }, { time: 7000, gfp: 0.993285, roff: 0.00082182, ron: 0.79892 }, { time: 7050, gfp: 0.993291, roff: 0.000821468, ron: 0.798921 }, { time: 7100, gfp: 0.993297, roff: 0.000821132, ron: 0.798922 }, { time: 7150, gfp: 0.993302, roff: 0.00082081, ron: 0.798923 }, { time: 7200, gfp: 0.993307, roff: 0.000820503, ron: 0.798923 }, { time: 7250, gfp: 0.993312, roff: 0.000820209, ron: 0.798924 }, { time: 7300, gfp: 0.993317, roff: 0.000819929, ron: 0.798925 }, { time: 7350, gfp: 0.993322, roff: 0.00081966, ron: 0.798926 }, { time: 7400, gfp: 0.993326, roff: 0.000819404, ron: 0.798926 }, { time: 7450, gfp: 0.99333, roff: 0.000819159, ron: 0.798927 }, { time: 7500, gfp: 0.993334, roff: 0.000818925, ron: 0.798928 }, { time: 7550, gfp: 0.993338, roff: 0.000818701, ron: 0.798928 }, { time: 7600, gfp: 0.993342, roff: 0.000818487, ron: 0.798929 }, { time: 7650, gfp: 0.993345, roff: 0.000818282, ron: 0.79893 }, { time: 7700, gfp: 0.993348, roff: 0.000818087, ron: 0.79893 }, { time: 7750, gfp: 0.993352, roff: 0.0008179, ron: 0.798931 }, { time: 7800, gfp: 0.993355, roff: 0.000817722, ron: 0.798931 }, { time: 7850, gfp: 0.993358, roff: 0.000817551, ron: 0.798932 }, { time: 7900, gfp: 0.99336, roff: 0.000817388, ron: 0.798932 }, { time: 7950, gfp: 0.993363, roff: 0.000817232, ron: 0.798932 }, { time: 8000, gfp: 0.993365, roff: 0.000817083, ron: 0.798933 }, { time: 8050, gfp: 0.993368, roff: 0.000816941, ron: 0.798933 }, { time: 8100, gfp: 0.99337, roff: 0.000816804, ron: 0.798934 }, { time: 8150, gfp: 0.993372, roff: 0.000816674, ron: 0.798934 }, { time: 8200, gfp: 0.993374, roff: 0.00081655, ron: 0.798934 }, { time: 8250, gfp: 0.993376, roff: 0.000816431, ron: 0.798935 }, { time: 8300, gfp: 0.993378, roff: 0.000816318, ron: 0.798935 }, { time: 8350, gfp: 0.99338, roff: 0.000816209, ron: 0.798935 }, { time: 8400, gfp: 0.993382, roff: 0.000816105, ron: 0.798935 }, { time: 8450, gfp: 0.993384, roff: 0.000816006, ron: 0.798936 }, { time: 8500, gfp: 0.993385, roff: 0.000815911, ron: 0.798936 }, { time: 8550, gfp: 0.993387, roff: 0.000815821, ron: 0.798936 }, { time: 8600, gfp: 0.993388, roff: 0.000815734, ron: 0.798936 }, { time: 8650, gfp: 0.99339, roff: 0.000815651, ron: 0.798937 }, { time: 8700, gfp: 0.993391, roff: 0.000815572, ron: 0.798937 }, { time: 8750, gfp: 0.993392, roff: 0.000815497, ron: 0.798937 }, { time: 8800, gfp: 0.993394, roff: 0.000815425, ron: 0.798937 }, { time: 8850, gfp: 0.993395, roff: 0.000815356, ron: 0.798938 }, { time: 8900, gfp: 0.993396, roff: 0.00081529, ron: 0.798938 }, { time: 8950, gfp: 0.993397, roff: 0.000815227, ron: 0.798938 }, { time: 9000, gfp: 0.993398, roff: 0.000815166, ron: 0.798938 }, { time: 9050, gfp: 0.993399, roff: 0.000815109, ron: 0.798938 }, { time: 9100, gfp: 0.9934, roff: 0.000815054, ron: 0.798938 }, { time: 9150, gfp: 0.993401, roff: 0.000815001, ron: 0.798938 }, { time: 9200, gfp: 0.993402, roff: 0.000814951, ron: 0.798939 }, { time: 9250, gfp: 0.993402, roff: 0.000814903, ron: 0.798939 }, { time: 9300, gfp: 0.993403, roff: 0.000814857, ron: 0.798939 }, { time: 9350, gfp: 0.993404, roff: 0.000814813, ron: 0.798939 }, { time: 9400, gfp: 0.993405, roff: 0.000814771, ron: 0.798939 }, { time: 9450, gfp: 0.993405, roff: 0.000814731, ron: 0.798939 }, { time: 9500, gfp: 0.993406, roff: 0.000814693, ron: 0.798939 }, { time: 9550, gfp: 0.993406, roff: 0.000814656, ron: 0.798939 }, { time: 9600, gfp: 0.993407, roff: 0.000814621, ron: 0.79894 }, { time: 9650, gfp: 0.993408, roff: 0.000814587, ron: 0.79894 }, { time: 9700, gfp: 0.993408, roff: 0.000814555, ron: 0.79894 }, { time: 9750, gfp: 0.993409, roff: 0.000814525, ron: 0.79894 }, { time: 9800, gfp: 0.993409, roff: 0.000814496, ron: 0.79894 }, { time: 9850, gfp: 0.99341, roff: 0.000814468, ron: 0.79894 }, { time: 9900, gfp: 0.99341, roff: 0.000814441, ron: 0.79894 }, { time: 9950, gfp: 0.993411, roff: 0.000814415, ron: 0.79894 }, { time: 10000, gfp: 0.993411, roff: 0.000814391, ron: 0.79894 }, { time: 10050, gfp: 0.993411, roff: 0.000814368, ron: 0.79894 }, { time: 10100, gfp: 0.993412, roff: 0.000814345, ron: 0.79894 }, { time: 10150, gfp: 0.993412, roff: 0.000814324, ron: 0.79894 }, { time: 10200, gfp: 0.993412, roff: 0.000814304, ron: 0.79894 }, { time: 10250, gfp: 0.993413, roff: 0.000814284, ron: 0.79894 }, { time: 10300, gfp: 0.993413, roff: 0.000814266, ron: 0.798941 }, { time: 10350, gfp: 0.993413, roff: 0.000814248, ron: 0.798941 }, { time: 10400, gfp: 0.993414, roff: 0.000814231, ron: 0.798941 }, { time: 10450, gfp: 0.993414, roff: 0.000814215, ron: 0.798941 }, { time: 10500, gfp: 0.993414, roff: 0.000814199, ron: 0.798941 }, { time: 10550, gfp: 0.993414, roff: 0.000814184, ron: 0.798941 }, { time: 10600, gfp: 0.993415, roff: 0.00081417, ron: 0.798941 }, { time: 10650, gfp: 0.993415, roff: 0.000814157, ron: 0.798941 }, { time: 10700, gfp: 0.993415, roff: 0.000814144, ron: 0.798941 }, { time: 10750, gfp: 0.993415, roff: 0.000814131, ron: 0.798941 }, { time: 10800, gfp: 0.993416, roff: 0.00081412, ron: 0.798941 }, { time: 10850, gfp: 0.993416, roff: 0.000814108, ron: 0.798941 }, { time: 10900, gfp: 0.993416, roff: 0.000814097, ron: 0.798941 }, { time: 10950, gfp: 0.993416, roff: 0.000814087, ron: 0.798941 }, { time: 11000, gfp: 0.993416, roff: 0.000814077, ron: 0.798941 }, { time: 11050, gfp: 0.993416, roff: 0.000814068, ron: 0.798941 }, { time: 11100, gfp: 0.993417, roff: 0.000814059, ron: 0.798941 }, { time: 11150, gfp: 0.993417, roff: 0.00081405, ron: 0.798941 }, { time: 11200, gfp: 0.993417, roff: 0.000814042, ron: 0.798941 }, { time: 11250, gfp: 0.993417, roff: 0.000814034, ron: 0.798941 }, { time: 11300, gfp: 0.993417, roff: 0.000814027, ron: 0.798941 }, { time: 11350, gfp: 0.993417, roff: 0.000814019, ron: 0.798941 }, { time: 11400, gfp: 0.993417, roff: 0.000814012, ron: 0.798941 }, { time: 11450, gfp: 0.993417, roff: 0.000814006, ron: 0.798941 }, { time: 11500, gfp: 0.993418, roff: 0.000814, ron: 0.798941 }, { time: 11550, gfp: 0.993418, roff: 0.000813994, ron: 0.798941 }, { time: 11600, gfp: 0.993418, roff: 0.000813988, ron: 0.798941 }, { time: 11650, gfp: 0.993418, roff: 0.000813982, ron: 0.798941 }, { time: 11700, gfp: 0.993418, roff: 0.000813977, ron: 0.798941 }, { time: 11750, gfp: 0.993418, roff: 0.000813972, ron: 0.798941 }, { time: 11800, gfp: 0.993418, roff: 0.000813967, ron: 0.798941 }, { time: 11850, gfp: 0.993418, roff: 0.000813963, ron: 0.798941 }, { time: 11900, gfp: 0.993418, roff: 0.000813958, ron: 0.798941 }, { time: 11950, gfp: 0.993418, roff: 0.000813954, ron: 0.798941 }, { time: 12000, gfp: 0.993418, roff: 0.00081395, ron: 0.798941 }, { time: 12050, gfp: 0.993418, roff: 0.000813946, ron: 0.798941 }, { time: 12100, gfp: 0.993419, roff: 0.000813943, ron: 0.798941 }, { time: 12150, gfp: 0.993419, roff: 0.000813939, ron: 0.798941 }, { time: 12200, gfp: 0.993419, roff: 0.000813936, ron: 0.798941 }, { time: 12250, gfp: 0.993419, roff: 0.000813933, ron: 0.798941 }, { time: 12300, gfp: 0.993419, roff: 0.00081393, ron: 0.798941 }, { time: 12350, gfp: 0.993419, roff: 0.000813927, ron: 0.798941 }, { time: 12400, gfp: 0.993419, roff: 0.000813924, ron: 0.798941 }, { time: 12450, gfp: 0.993419, roff: 0.000813921, ron: 0.798941 }, { time: 12500, gfp: 0.993419, roff: 0.000813919, ron: 0.798941 }, { time: 12550, gfp: 0.993419, roff: 0.000813916, ron: 0.798941 }, { time: 12600, gfp: 0.993419, roff: 0.000813914, ron: 0.798941 }, { time: 12650, gfp: 0.993419, roff: 0.000813912, ron: 0.798941 }, { time: 12700, gfp: 0.993419, roff: 0.00081391, ron: 0.798941 }, { time: 12750, gfp: 0.993419, roff: 0.000813908, ron: 0.798941 }, { time: 12800, gfp: 0.993419, roff: 0.000813906, ron: 0.798941 }, { time: 12850, gfp: 0.993419, roff: 0.000813904, ron: 0.798941 }, { time: 12900, gfp: 0.993419, roff: 0.000813903, ron: 0.798941 }, { time: 12950, gfp: 0.993419, roff: 0.000813901, ron: 0.798942 }, { time: 13000, gfp: 0.993419, roff: 0.000813899, ron: 0.798942 }, { time: 13050, gfp: 0.993419, roff: 0.000813898, ron: 0.798942 }, { time: 13100, gfp: 0.993419, roff: 0.000813896, ron: 0.798942 }, { time: 13150, gfp: 0.993419, roff: 0.000813895, ron: 0.798942 }, { time: 13200, gfp: 0.993419, roff: 0.000813893, ron: 0.798942 }, { time: 13250, gfp: 0.993419, roff: 0.000813892, ron: 0.798942 }, { time: 13300, gfp: 0.993419, roff: 0.000813891, ron: 0.798942 }, { time: 13350, gfp: 0.993419, roff: 0.00081389, ron: 0.798942 }, { time: 13400, gfp: 0.993419, roff: 0.000813889, ron: 0.798942 }, { time: 13450, gfp: 0.993419, roff: 0.000813888, ron: 0.798942 }, { time: 13500, gfp: 0.993419, roff: 0.000813887, ron: 0.798942 }, { time: 13550, gfp: 0.993419, roff: 0.000813886, ron: 0.798942 }, { time: 13600, gfp: 0.993419, roff: 0.000813885, ron: 0.798942 }
] let modelOffData = [
{ time: 0, gfp: 0.000142288, roff: 0.838272, ron: 0.000568828 }, { time: 13600, gfp: 0.000142288, roff: 0.838272, ron: 0.000568828 }
]; let modelOffOnData = [
{ time: 0, gfp: 0.000163698, roff: 0.697701, ron: 0.832674 }, { time: 50, gfp: 0.000211074, roff: 0.612363, ron: 0.948521 }, { time: 100, gfp: 0.000267526, roff: 0.550777, ron: 0.919628 }, { time: 150, gfp: 0.000329676, roff: 0.501516, ron: 0.870831 }, { time: 200, gfp: 0.000397584, roff: 0.460319, ron: 0.809957 }, { time: 250, gfp: 0.000472028, roff: 0.424945, ron: 0.744471 }, { time: 300, gfp: 0.00055395, roff: 0.394015, ron: 0.68035 }, { time: 350, gfp: 0.00064434, roff: 0.36661, ron: 0.621023 }, { time: 400, gfp: 0.000744222, roff: 0.342082, ron: 0.567804 }, { time: 450, gfp: 0.000854664, roff: 0.319958, ron: 0.520748 }, { time: 500, gfp: 0.000976787, roff: 0.299877, ron: 0.479326 }, { time: 550, gfp: 0.00111178, roff: 0.281556, ron: 0.442819 }, { time: 600, gfp: 0.00126091, roff: 0.264771, ron: 0.410508 }, { time: 650, gfp: 0.00142552, roff: 0.249338, ron: 0.381752 }, { time: 700, gfp: 0.00160704, roff: 0.235106, ron: 0.356011 }, { time: 750, gfp: 0.001807, roff: 0.221948, ron: 0.33284 }, { time: 800, gfp: 0.00202701, roff: 0.209757, ron: 0.311876 }, { time: 850, gfp: 0.00226874, roff: 0.198442, ron: 0.292823 }, { time: 900, gfp: 0.00253395, roff: 0.187925, ron: 0.275439 }, { time: 950, gfp: 0.00282443, roff: 0.178137, ron: 0.259525 }, { time: 1000, gfp: 0.00314203, roff: 0.169021, ron: 0.244918 }, { time: 1050, gfp: 0.00348854, roff: 0.160523, ron: 0.231479 }, { time: 1100, gfp: 0.00386576, roff: 0.1526, ron: 0.219094 }, { time: 1150, gfp: 0.00427536, roff: 0.14521, ron: 0.207664 }, { time: 1200, gfp: 0.00471886, roff: 0.138319, ron: 0.197106 }, { time: 1250, gfp: 0.00519756, roff: 0.131895, ron: 0.187348 }, { time: 1300, gfp: 0.00571242, roff: 0.125909, ron: 0.178328 }, { time: 1350, gfp: 0.00626401, roff: 0.120336, ron: 0.169991 }, { time: 1400, gfp: 0.00685239, roff: 0.115154, ron: 0.162289 }, { time: 1450, gfp: 0.00747704, roff: 0.110341, ron: 0.15518 }, { time: 1500, gfp: 0.00813668, roff: 0.105878, ron: 0.148626 }, { time: 1550, gfp: 0.00882929, roff: 0.101748, ron: 0.142592 }, { time: 1600, gfp: 0.00955198, roff: 0.0979326, ron: 0.137048 }, { time: 1650, gfp: 0.010301, roff: 0.0944174, ron: 0.131964 }, { time: 1700, gfp: 0.0110718, roff: 0.0911866, ron: 0.127314 }, { time: 1750, gfp: 0.0118589, roff: 0.0882252, ron: 0.123072 }, { time: 1800, gfp: 0.0126564, roff: 0.0855188, ron: 0.119213 }, { time: 1850, gfp: 0.0134576, roff: 0.0830528, ron: 0.115713 }, { time: 1900, gfp: 0.0142557, roff: 0.0808127, ron: 0.11255 }, { time: 1950, gfp: 0.0150439, roff: 0.0787842, ron: 0.109701 }, { time: 2000, gfp: 0.0158156, roff: 0.076953, ron: 0.107144 }, { time: 2050, gfp: 0.0165645, roff: 0.0753049, ron: 0.104857 }, { time: 2100, gfp: 0.0172853, roff: 0.0738257, ron: 0.10282 }, { time: 2150, gfp: 0.0179733, roff: 0.0725018, ron: 0.101012 }, { time: 2200, gfp: 0.0186248, roff: 0.0713196, ron: 0.0994126 }, { time: 2250, gfp: 0.0192373, roff: 0.0702663, ron: 0.0980041 }, { time: 2300, gfp: 0.0198091, roff: 0.0693294, ron: 0.0967681 }, { time: 2350, gfp: 0.0203398, roff: 0.0684972, ron: 0.095688 }, { time: 2400, gfp: 0.0208296, roff: 0.0677587, ron: 0.094748 }, { time: 2450, gfp: 0.0212794, roff: 0.0671036, ron: 0.0939335 }, { time: 2500, gfp: 0.0216909, roff: 0.0665225, ron: 0.0932313 }, { time: 2550, gfp: 0.0220663, roff: 0.0660066, ron: 0.0926289 }, { time: 2600, gfp: 0.0224078, roff: 0.065548, ron: 0.0921154 }, { time: 2650, gfp: 0.0227183, roff: 0.0651395, ron: 0.0916808 }, { time: 2700, gfp: 0.0230003, roff: 0.0647746, ron: 0.0913162 }, { time: 2750, gfp: 0.0232567, roff: 0.0644476, ron: 0.0910134 }, { time: 2800, gfp: 0.0234902, roff: 0.0641533, ron: 0.0907656 }, { time: 2850, gfp: 0.0237033, roff: 0.0638871, ron: 0.0905663 }, { time: 2900, gfp: 0.0238986, roff: 0.0636448, ron: 0.0904102 }, { time: 2950, gfp: 0.0240783, roff: 0.0634229, ron: 0.0902925 }, { time: 3000, gfp: 0.0242446, roff: 0.0632182, ron: 0.0902089 }, { time: 3050, gfp: 0.0243995, roff: 0.0630279, ron: 0.0901558 }, { time: 3100, gfp: 0.0245447, roff: 0.0628495, ron: 0.0901301 }, { time: 3150, gfp: 0.024682, roff: 0.0626807, ron: 0.0901291 }, { time: 3200, gfp: 0.0248127, roff: 0.0625198, ron: 0.0901504 }, { time: 3250, gfp: 0.0249383, roff: 0.0623649, ron: 0.0901922 }, { time: 3300, gfp: 0.02506, roff: 0.0622147, ron: 0.0902528 }, { time: 3350, gfp: 0.0251787, roff: 0.0620677, ron: 0.0903307 }, { time: 3400, gfp: 0.0252957, roff: 0.0619229, ron: 0.0904248 }, { time: 3450, gfp: 0.0254116, roff: 0.0617791, ron: 0.0905343 }, { time: 3500, gfp: 0.0255274, roff: 0.0616354, ron: 0.0906582 }, { time: 3550, gfp: 0.0256438, roff: 0.0614911, ron: 0.0907961 }, { time: 3600, gfp: 0.0257616, roff: 0.0613453, ron: 0.0909475 }, { time: 3650, gfp: 0.0258812, roff: 0.0611973, ron: 0.091112 }, { time: 3700, gfp: 0.0260035, roff: 0.0610467, ron: 0.0912895 }, { time: 3750, gfp: 0.0261288, roff: 0.0608927, ron: 0.0914798 }, { time: 3800, gfp: 0.0262578, roff: 0.0607348, ron: 0.0916831 }, { time: 3850, gfp: 0.0263909, roff: 0.0605727, ron: 0.0918993 }, { time: 3900, gfp: 0.0265287, roff: 0.0604057, ron: 0.0921286 }, { time: 3950, gfp: 0.0266717, roff: 0.0602336, ron: 0.0923714 }, { time: 4000, gfp: 0.0268203, roff: 0.0600559, ron: 0.0926278 }, { time: 4050, gfp: 0.026975, roff: 0.0598721, ron: 0.0928983 }, { time: 4100, gfp: 0.0271363, roff: 0.0596819, ron: 0.0931834 }, { time: 4150, gfp: 0.0273047, roff: 0.059485, ron: 0.0934834 }, { time: 4200, gfp: 0.0274808, roff: 0.059281, ron: 0.0937991 }, { time: 4250, gfp: 0.027665, roff: 0.0590695, ron: 0.0941311 }, { time: 4300, gfp: 0.0278578, roff: 0.0588503, ron: 0.0944799 }, { time: 4350, gfp: 0.0280599, roff: 0.0586229, ron: 0.0948465 }, { time: 4400, gfp: 0.0282717, roff: 0.058387, ron: 0.0952315 }, { time: 4450, gfp: 0.028494, roff: 0.0581423, ron: 0.095636 }, { time: 4500, gfp: 0.0287273, roff: 0.0578885, ron: 0.0960607 }, { time: 4550, gfp: 0.0289724, roff: 0.0576252, ron: 0.0965067 }, { time: 4600, gfp: 0.0292299, roff: 0.0573522, ron: 0.0969752 }, { time: 4650, gfp: 0.0295005, roff: 0.0570689, ron: 0.0974672 }, { time: 4700, gfp: 0.0297852, roff: 0.0567753, ron: 0.097984 }, { time: 4750, gfp: 0.0300847, roff: 0.0564708, ron: 0.0985269 }, { time: 4800, gfp: 0.0303999, roff: 0.0561552, ron: 0.0990972 }, { time: 4850, gfp: 0.0307319, roff: 0.0558282, ron: 0.0996966 }, { time: 4900, gfp: 0.0310816, roff: 0.0554894, ron: 0.100327 }, { time: 4950, gfp: 0.0314502, roff: 0.0551386, ron: 0.100989 }, { time: 5000, gfp: 0.0318387, roff: 0.0547754, ron: 0.101685 }, { time: 5050, gfp: 0.0322486, roff: 0.0543995, ron: 0.102418 }, { time: 5100, gfp: 0.032681, roff: 0.0540105, ron: 0.103188 }, { time: 5150, gfp: 0.0331375, roff: 0.0536083, ron: 0.103999 }, { time: 5200, gfp: 0.0336197, roff: 0.0531926, ron: 0.104852 }, { time: 5250, gfp: 0.0341291, roff: 0.052763, ron: 0.105751 }, { time: 5300, gfp: 0.0346677, roff: 0.0523192, ron: 0.106697 }, { time: 5350, gfp: 0.0352372, roff: 0.0518612, ron: 0.107694 }, { time: 5400, gfp: 0.0358398, roff: 0.0513886, ron: 0.108745 }, { time: 5450, gfp: 0.0364777, roff: 0.0509012, ron: 0.109853 }, { time: 5500, gfp: 0.0371534, roff: 0.0503989, ron: 0.111022 }, { time: 5550, gfp: 0.0378693, roff: 0.0498814, ron: 0.112254 }, { time: 5600, gfp: 0.0386284, roff: 0.0493487, ron: 0.113555 }, { time: 5650, gfp: 0.0394336, roff: 0.0488007, ron: 0.114929 }, { time: 5700, gfp: 0.0402882, roff: 0.0482372, ron: 0.11638 }, { time: 5750, gfp: 0.0411958, roff: 0.0476583, ron: 0.117914 }, { time: 5800, gfp: 0.0421601, roff: 0.047064, ron: 0.119535 }, { time: 5850, gfp: 0.0431852, roff: 0.0464542, ron: 0.121249 }, { time: 5900, gfp: 0.0442756, roff: 0.0458292, ron: 0.123062 }, { time: 5950, gfp: 0.0454362, roff: 0.045189, ron: 0.124982 }, { time: 6000, gfp: 0.0466721, roff: 0.0445338, ron: 0.127014 }, { time: 6050, gfp: 0.047989, roff: 0.0438639, ron: 0.129168 }, { time: 6100, gfp: 0.0493929, roff: 0.0431795, ron: 0.13145 }, { time: 6150, gfp: 0.0508906, roff: 0.0424811, ron: 0.133869 }, { time: 6200, gfp: 0.052489, roff: 0.041769, ron: 0.136435 }, { time: 6250, gfp: 0.054196, roff: 0.0410438, ron: 0.139158 }, { time: 6300, gfp: 0.0560198, roff: 0.040306, ron: 0.142049 }, { time: 6350, gfp: 0.0579695, roff: 0.0395561, ron: 0.145119 }, { time: 6400, gfp: 0.0600547, roff: 0.038795, ron: 0.14838 }, { time: 6450, gfp: 0.0622861, roff: 0.0380232, ron: 0.151846 }, { time: 6500, gfp: 0.0646748, roff: 0.0372417, ron: 0.155531 }, { time: 6550, gfp: 0.0672331, roff: 0.0364514, ron: 0.15945 }, { time: 6600, gfp: 0.0699739, roff: 0.035653, ron: 0.163618 }, { time: 6650, gfp: 0.0729114, roff: 0.0348478, ron: 0.168053 }, { time: 6700, gfp: 0.0760605, roff: 0.0340366, ron: 0.172773 }, { time: 6750, gfp: 0.0794372, roff: 0.0332207, ron: 0.177796 }, { time: 6800, gfp: 0.0830586, roff: 0.0324012, ron: 0.183143 }, { time: 6850, gfp: 0.086943, roff: 0.0315792, ron: 0.188835 }, { time: 6900, gfp: 0.0911095, roff: 0.030756, ron: 0.194894 }, { time: 6950, gfp: 0.0955784, roff: 0.0299329, ron: 0.201341 }, { time: 7000, gfp: 0.100371, roff: 0.0291111, ron: 0.208202 }, { time: 7050, gfp: 0.10551, roff: 0.028292, ron: 0.2155 }, { time: 7100, gfp: 0.111019, roff: 0.0274767, ron: 0.22326 }, { time: 7150, gfp: 0.116921, roff: 0.0266665, ron: 0.231505 }, { time: 7200, gfp: 0.123241, roff: 0.0258628, ron: 0.240261 }, { time: 7250, gfp: 0.130005, roff: 0.0250668, ron: 0.249551 }, { time: 7300, gfp: 0.137238, roff: 0.0242795, ron: 0.259399 }, { time: 7350, gfp: 0.144967, roff: 0.0235022, ron: 0.269824 }, { time: 7400, gfp: 0.153215, roff: 0.0227359, ron: 0.280847 }, { time: 7450, gfp: 0.162009, roff: 0.0219817, ron: 0.292483 }, { time: 7500, gfp: 0.171371, roff: 0.0212405, ron: 0.304743 }, { time: 7550, gfp: 0.181325, roff: 0.0205132, ron: 0.317636 }, { time: 7600, gfp: 0.191889, roff: 0.0198006, ron: 0.331162 }, { time: 7650, gfp: 0.203083, roff: 0.0191033, ron: 0.345316 }, { time: 7700, gfp: 0.214921, roff: 0.0184221, ron: 0.360084 }, { time: 7750, gfp: 0.227414, roff: 0.0177574, ron: 0.375442 }, { time: 7800, gfp: 0.240568, roff: 0.0171097, ron: 0.391357 }, { time: 7850, gfp: 0.254387, roff: 0.0164793, ron: 0.407784 }, { time: 7900, gfp: 0.268866, roff: 0.0158667, ron: 0.424664 }, { time: 7950, gfp: 0.283997, roff: 0.0152719, ron: 0.441928 }, { time: 8000, gfp: 0.299765, roff: 0.0146951, ron: 0.459491 }, { time: 8050, gfp: 0.316146, roff: 0.0141363, ron: 0.477256 }, { time: 8100, gfp: 0.333113, roff: 0.0135956, ron: 0.495114 }, { time: 8150, gfp: 0.35063, roff: 0.0130729, ron: 0.512949 }, { time: 8200, gfp: 0.368654, roff: 0.012568, ron: 0.530633 }, { time: 8250, gfp: 0.387136, roff: 0.0120808, ron: 0.548038 }, { time: 8300, gfp: 0.406021, roff: 0.0116111, ron: 0.565036 }, { time: 8350, gfp: 0.425248, roff: 0.0111585, ron: 0.581504 }, { time: 8400, gfp: 0.444752, roff: 0.0107228, ron: 0.59733 }, { time: 8450, gfp: 0.464464, roff: 0.0103036, ron: 0.61242 }, { time: 8500, gfp: 0.48431, roff: 0.00990054, ron: 0.626697 }, { time: 8550, gfp: 0.504218, roff: 0.00951326, ron: 0.640109 }, { time: 8600, gfp: 0.524114, roff: 0.00914133, ron: 0.652627 }, { time: 8650, gfp: 0.543923, roff: 0.0087843, ron: 0.664244 }, { time: 8700, gfp: 0.563575, roff: 0.00844173, ron: 0.674974 }, { time: 8750, gfp: 0.583001, roff: 0.00811316, ron: 0.68485 }, { time: 8800, gfp: 0.602136, roff: 0.00779812, ron: 0.693914 }, { time: 8850, gfp: 0.620919, roff: 0.00749615, ron: 0.702221 }, { time: 8900, gfp: 0.639297, roff: 0.00720679, ron: 0.709826 }, { time: 8950, gfp: 0.657221, roff: 0.00692957, ron: 0.716788 }, { time: 9000, gfp: 0.674647, roff: 0.00666403, ron: 0.723163 }, { time: 9050, gfp: 0.691539, roff: 0.00640973, ron: 0.729003 }, { time: 9100, gfp: 0.707866, roff: 0.00616623, ron: 0.734358 }, { time: 9150, gfp: 0.723604, roff: 0.00593311, ron: 0.739272 }, { time: 9200, gfp: 0.738736, roff: 0.00570995, ron: 0.743785 }, { time: 9250, gfp: 0.753249, roff: 0.00549634, ron: 0.747934 }, { time: 9300, gfp: 0.767135, roff: 0.00529191, ron: 0.75175 }, { time: 9350, gfp: 0.780392, roff: 0.00509626, ron: 0.755263 }, { time: 9400, gfp: 0.793023, roff: 0.00490904, ron: 0.758498 }, { time: 9450, gfp: 0.805034, roff: 0.0047299, ron: 0.761479 }, { time: 9500, gfp: 0.816434, roff: 0.0045585, ron: 0.764227 }, { time: 9550, gfp: 0.827235, roff: 0.00439452, ron: 0.76676 }, { time: 9600, gfp: 0.837454, roff: 0.00423764, ron: 0.769098 }, { time: 9650, gfp: 0.847108, roff: 0.00408756, ron: 0.771254 }, { time: 9700, gfp: 0.856215, roff: 0.003944, ron: 0.773245 }, { time: 9750, gfp: 0.864795, roff: 0.00380668, ron: 0.775083 }, { time: 9800, gfp: 0.872871, roff: 0.00367534, ron: 0.776781 }, { time: 9850, gfp: 0.880462, roff: 0.00354971, ron: 0.778349 }, { time: 9900, gfp: 0.887593, roff: 0.00342956, ron: 0.779799 }, { time: 9950, gfp: 0.894285, roff: 0.00331464, ron: 0.781138 }, { time: 10000, gfp: 0.90056, roff: 0.00320474, ron: 0.782377 }, { time: 10050, gfp: 0.906441, roff: 0.00309964, ron: 0.783523 }, { time: 10100, gfp: 0.911948, roff: 0.00299914, ron: 0.784583 }, { time: 10150, gfp: 0.917103, roff: 0.00290302, ron: 0.785564 }, { time: 10200, gfp: 0.921926, roff: 0.00281111, ron: 0.786473 }, { time: 10250, gfp: 0.926437, roff: 0.00272323, ron: 0.787314 }, { time: 10300, gfp: 0.930654, roff: 0.00263919, ron: 0.788094 }, { time: 10350, gfp: 0.934596, roff: 0.00255883, ron: 0.788816 }, { time: 10400, gfp: 0.938279, roff: 0.00248199, ron: 0.789486 }, { time: 10450, gfp: 0.941721, roff: 0.00240852, ron: 0.790108 }, { time: 10500, gfp: 0.944936, roff: 0.00233828, ron: 0.790684 }, { time: 10550, gfp: 0.94794, roff: 0.00227112, ron: 0.791219 }, { time: 10600, gfp: 0.950745, roff: 0.0022069, ron: 0.791716 }, { time: 10650, gfp: 0.953366, roff: 0.00214551, ron: 0.792178 }, { time: 10700, gfp: 0.955815, roff: 0.00208681, ron: 0.792607 }, { time: 10750, gfp: 0.958103, roff: 0.00203069, ron: 0.793007 }, { time: 10800, gfp: 0.96024, roff: 0.00197704, ron: 0.793378 }, { time: 10850, gfp: 0.962238, roff: 0.00192575, ron: 0.793723 }, { time: 10900, gfp: 0.964105, roff: 0.00187671, ron: 0.794045 }, { time: 10950, gfp: 0.965851, roff: 0.00182983, ron: 0.794345 }, { time: 11000, gfp: 0.967484, roff: 0.00178501, ron: 0.794624 }, { time: 11050, gfp: 0.969011, roff: 0.00174216, ron: 0.794885 }, { time: 11100, gfp: 0.97044, roff: 0.00170121, ron: 0.795128 }, { time: 11150, gfp: 0.971777, roff: 0.00166205, ron: 0.795355 }, { time: 11200, gfp: 0.973029, roff: 0.00162462, ron: 0.795566 }, { time: 11250, gfp: 0.974201, roff: 0.00158883, ron: 0.795764 }, { time: 11300, gfp: 0.975299, roff: 0.00155463, ron: 0.795949 }, { time: 11350, gfp: 0.976328, roff: 0.00152193, ron: 0.796122 }, { time: 11400, gfp: 0.977293, roff: 0.00149067, ron: 0.796284 }, { time: 11450, gfp: 0.978198, roff: 0.00146078, ron: 0.796435 }, { time: 11500, gfp: 0.979047, roff: 0.00143222, ron: 0.796577 }, { time: 11550, gfp: 0.979844, roff: 0.00140492, ron: 0.79671 }, { time: 11600, gfp: 0.980592, roff: 0.00137882, ron: 0.796835 }, { time: 11650, gfp: 0.981294, roff: 0.00135387, ron: 0.796951 }, { time: 11700, gfp: 0.981954, roff: 0.00133002, ron: 0.797061 }, { time: 11750, gfp: 0.982575, roff: 0.00130722, ron: 0.797164 }, { time: 11800, gfp: 0.983158, roff: 0.00128543, ron: 0.797261 }, { time: 11850, gfp: 0.983707, roff: 0.0012646, ron: 0.797351 }, { time: 11900, gfp: 0.984224, roff: 0.00124469, ron: 0.797437 }, { time: 11950, gfp: 0.98471, roff: 0.00122565, ron: 0.797517 }, { time: 12000, gfp: 0.985168, roff: 0.00120746, ron: 0.797593 }, { time: 12050, gfp: 0.9856, roff: 0.00119007, ron: 0.797664 }, { time: 12100, gfp: 0.986007, roff: 0.00117345, ron: 0.797731 }, { time: 12150, gfp: 0.986391, roff: 0.00115756, ron: 0.797794 }, { time: 12200, gfp: 0.986753, roff: 0.00114238, ron: 0.797854 }, { time: 12250, gfp: 0.987095, roff: 0.00112786, ron: 0.79791 }, { time: 12300, gfp: 0.987417, roff: 0.00111398, ron: 0.797963 }, { time: 12350, gfp: 0.987722, roff: 0.00110072, ron: 0.798013 }, { time: 12400, gfp: 0.98801, roff: 0.00108804, ron: 0.79806 }, { time: 12450, gfp: 0.988282, roff: 0.00107593, ron: 0.798104 }, { time: 12500, gfp: 0.988539, roff: 0.00106435, ron: 0.798147 }, { time: 12550, gfp: 0.988782, roff: 0.00105328, ron: 0.798186 }, { time: 12600, gfp: 0.989012, roff: 0.00104269, ron: 0.798224 }, { time: 12650, gfp: 0.98923, roff: 0.00103258, ron: 0.79826 }, { time: 12700, gfp: 0.989437, roff: 0.00102291, ron: 0.798293 }, { time: 12750, gfp: 0.989632, roff: 0.00101367, ron: 0.798325 }, { time: 12800, gfp: 0.989817, roff: 0.00100484, ron: 0.798356 }, { time: 12850, gfp: 0.989992, roff: 0.000996401, ron: 0.798384 }, { time: 12900, gfp: 0.990158, roff: 0.000988333, ron: 0.798411 }, { time: 12950, gfp: 0.990316, roff: 0.000980621, ron: 0.798437 }, { time: 13000, gfp: 0.990466, roff: 0.000973249, ron: 0.798461 }, { time: 13050, gfp: 0.990607, roff: 0.000966203, ron: 0.798485 }, { time: 13100, gfp: 0.990742, roff: 0.000959469, ron: 0.798507 }, { time: 13150, gfp: 0.99087, roff: 0.000953032, ron: 0.798527 }, { time: 13200, gfp: 0.990991, roff: 0.000946879, ron: 0.798547 }, { time: 13250, gfp: 0.991106, roff: 0.000940999, ron: 0.798566 }, { time: 13300, gfp: 0.991216, roff: 0.000935378, ron: 0.798584 }, { time: 13350, gfp: 0.99132, roff: 0.000930006, ron: 0.798601 }, { time: 13400, gfp: 0.991419, roff: 0.000924871, ron: 0.798617 }, { time: 13450, gfp: 0.991513, roff: 0.000919964, ron: 0.798632 }, { time: 13500, gfp: 0.991602, roff: 0.000915273, ron: 0.798647 }, { time: 13550, gfp: 0.991687, roff: 0.000910789, ron: 0.79866 }, { time: 13600, gfp: 0.991768, roff: 0.000906504, ron: 0.798673 }, { time: 13650, gfp: 0.991845, roff: 0.000902408, ron: 0.798686 }, { time: 13700, gfp: 0.991918, roff: 0.000898493, ron: 0.798698 }, { time: 13750, gfp: 0.991987, roff: 0.000894751, ron: 0.798709 }, { time: 13800, gfp: 0.992054, roff: 0.000891174, ron: 0.79872 }, { time: 13850, gfp: 0.992117, roff: 0.000887756, ron: 0.79873 }, { time: 13900, gfp: 0.992177, roff: 0.000884489, ron: 0.79874 }, { time: 13950, gfp: 0.992234, roff: 0.000881366, ron: 0.798749 }, { time: 14000, gfp: 0.992288, roff: 0.000878381, ron: 0.798758 }, { time: 14050, gfp: 0.99234, roff: 0.000875529, ron: 0.798767 }, { time: 14100, gfp: 0.99239, roff: 0.000872802, ron: 0.798775 }, { time: 14150, gfp: 0.992437, roff: 0.000870196, ron: 0.798782 }, { time: 14200, gfp: 0.992482, roff: 0.000867706, ron: 0.798789 }, { time: 14250, gfp: 0.992524, roff: 0.000865325, ron: 0.798796 }, { time: 14300, gfp: 0.992565, roff: 0.00086305, ron: 0.798803 }, { time: 14350, gfp: 0.992604, roff: 0.000860875, ron: 0.798809 }, { time: 14400, gfp: 0.992641, roff: 0.000858796, ron: 0.798815 }, { time: 14450, gfp: 0.992676, roff: 0.000856809, ron: 0.798821 }, { time: 14500, gfp: 0.99271, roff: 0.00085491, ron: 0.798827 }, { time: 14550, gfp: 0.992742, roff: 0.000853095, ron: 0.798832 }, { time: 14600, gfp: 0.992773, roff: 0.000851361, ron: 0.798837 }, { time: 14650, gfp: 0.992802, roff: 0.000849702, ron: 0.798841 }, { time: 14700, gfp: 0.99283, roff: 0.000848118, ron: 0.798846 }, { time: 14750, gfp: 0.992857, roff: 0.000846603, ron: 0.79885 }, { time: 14800, gfp: 0.992882, roff: 0.000845155, ron: 0.798854 }, { time: 14850, gfp: 0.992906, roff: 0.000843772, ron: 0.798858 }, { time: 14900, gfp: 0.992929, roff: 0.000842449, ron: 0.798862 }, { time: 14950, gfp: 0.992951, roff: 0.000841185, ron: 0.798866 }, { time: 15000, gfp: 0.992972, roff: 0.000839977, ron: 0.798869 }, { time: 15050, gfp: 0.992993, roff: 0.000838822, ron: 0.798872 }, { time: 15100, gfp: 0.993012, roff: 0.000837719, ron: 0.798875 }, { time: 15150, gfp: 0.99303, roff: 0.000836664, ron: 0.798878 }, { time: 15200, gfp: 0.993048, roff: 0.000835656, ron: 0.798881 }, { time: 15250, gfp: 0.993064, roff: 0.000834692, ron: 0.798884 }, { time: 15300, gfp: 0.99308, roff: 0.000833771, ron: 0.798887 }, { time: 15350, gfp: 0.993095, roff: 0.000832891, ron: 0.798889 }, { time: 15400, gfp: 0.99311, roff: 0.000832049, ron: 0.798891 }, { time: 15450, gfp: 0.993124, roff: 0.000831245, ron: 0.798894 }, { time: 15500, gfp: 0.993137, roff: 0.000830476, ron: 0.798896 }, { time: 15550, gfp: 0.99315, roff: 0.000829742, ron: 0.798898 }, { time: 15600, gfp: 0.993162, roff: 0.00082904, ron: 0.7989 }, { time: 15650, gfp: 0.993173, roff: 0.000828369, ron: 0.798902 }, { time: 15700, gfp: 0.993184, roff: 0.000827727, ron: 0.798903 }, { time: 15750, gfp: 0.993195, roff: 0.000827114, ron: 0.798905 }, { time: 15800, gfp: 0.993205, roff: 0.000826528, ron: 0.798907 }, { time: 15850, gfp: 0.993214, roff: 0.000825968, ron: 0.798908 }, { time: 15900, gfp: 0.993223, roff: 0.000825433, ron: 0.79891 }, { time: 15950, gfp: 0.993232, roff: 0.000824921, ron: 0.798911 }, { time: 16000, gfp: 0.993241, roff: 0.000824432, ron: 0.798913 }, { time: 16050, gfp: 0.993249, roff: 0.000823965, ron: 0.798914 }, { time: 16100, gfp: 0.993256, roff: 0.000823518, ron: 0.798915 }, { time: 16150, gfp: 0.993263, roff: 0.000823091, ron: 0.798916 }, { time: 16200, gfp: 0.99327, roff: 0.000822683, ron: 0.798917 }, { time: 16250, gfp: 0.993277, roff: 0.000822293, ron: 0.798918 }, { time: 16300, gfp: 0.993283, roff: 0.00082192, ron: 0.798919 }, { time: 16350, gfp: 0.993289, roff: 0.000821564, ron: 0.79892 }, { time: 16400, gfp: 0.993295, roff: 0.000821224, ron: 0.798921 }, { time: 16450, gfp: 0.993301, roff: 0.000820898, ron: 0.798922 }, { time: 16500, gfp: 0.993306, roff: 0.000820587, ron: 0.798923 }, { time: 16550, gfp: 0.993311, roff: 0.00082029, ron: 0.798924 }, { time: 16600, gfp: 0.993316, roff: 0.000820006, ron: 0.798925 }, { time: 16650, gfp: 0.993321, roff: 0.000819734, ron: 0.798926 }, { time: 16700, gfp: 0.993325, roff: 0.000819474, ron: 0.798926 }, { time: 16750, gfp: 0.993329, roff: 0.000819226, ron: 0.798927 }, { time: 16800, gfp: 0.993333, roff: 0.000818989, ron: 0.798928 }, { time: 16850, gfp: 0.993337, roff: 0.000818763, ron: 0.798928 }, { time: 16900, gfp: 0.993341, roff: 0.000818546, ron: 0.798929 }, { time: 16950, gfp: 0.993344, roff: 0.000818339, ron: 0.798929 }, { time: 17000, gfp: 0.993348, roff: 0.000818141, ron: 0.79893 }, { time: 17050, gfp: 0.993351, roff: 0.000817952, ron: 0.79893 }, { time: 17100, gfp: 0.993354, roff: 0.000817771, ron: 0.798931 }, { time: 17150, gfp: 0.993357, roff: 0.000817598, ron: 0.798931 }, { time: 17200, gfp: 0.99336, roff: 0.000817433, ron: 0.798932 }, { time: 17250, gfp: 0.993362, roff: 0.000817276, ron: 0.798932 }, { time: 17300, gfp: 0.993365, roff: 0.000817125, ron: 0.798933 }, { time: 17350, gfp: 0.993367, roff: 0.00081698, ron: 0.798933 }, { time: 17400, gfp: 0.99337, roff: 0.000816843, ron: 0.798933 }, { time: 17450, gfp: 0.993372, roff: 0.000816711, ron: 0.798934 }, { time: 17500, gfp: 0.993374, roff: 0.000816585, ron: 0.798934 }, { time: 17550, gfp: 0.993376, roff: 0.000816465, ron: 0.798934 }, { time: 17600, gfp: 0.993378, roff: 0.00081635, ron: 0.798935 }, { time: 17650, gfp: 0.99338, roff: 0.00081624, ron: 0.798935 }, { time: 17700, gfp: 0.993382, roff: 0.000816135, ron: 0.798935 }, { time: 17750, gfp: 0.993383, roff: 0.000816034, ron: 0.798936 }, { time: 17800, gfp: 0.993385, roff: 0.000815938, ron: 0.798936 }, { time: 17850, gfp: 0.993386, roff: 0.000815847, ron: 0.798936 }, { time: 17900, gfp: 0.993388, roff: 0.000815759, ron: 0.798936 }, { time: 17950, gfp: 0.993389, roff: 0.000815675, ron: 0.798937 }, { time: 18000, gfp: 0.993391, roff: 0.000815595, ron: 0.798937 }, { time: 18050, gfp: 0.993392, roff: 0.000815518, ron: 0.798937 }, { time: 18100, gfp: 0.993393, roff: 0.000815445, ron: 0.798937 }, { time: 18150, gfp: 0.993394, roff: 0.000815375, ron: 0.798937 }, { time: 18200, gfp: 0.993395, roff: 0.000815309, ron: 0.798938 }, { time: 18250, gfp: 0.993397, roff: 0.000815245, ron: 0.798938 }, { time: 18300, gfp: 0.993398, roff: 0.000815184, ron: 0.798938 }, { time: 18350, gfp: 0.993399, roff: 0.000815125, ron: 0.798938 }, { time: 18400, gfp: 0.9934, roff: 0.00081507, ron: 0.798938 }, { time: 18450, gfp: 0.9934, roff: 0.000815016, ron: 0.798938 }, { time: 18500, gfp: 0.993401, roff: 0.000814965, ron: 0.798939 }, { time: 18550, gfp: 0.993402, roff: 0.000814917, ron: 0.798939 }, { time: 18600, gfp: 0.993403, roff: 0.00081487, ron: 0.798939 }, { time: 18650, gfp: 0.993404, roff: 0.000814826, ron: 0.798939 }, { time: 18700, gfp: 0.993404, roff: 0.000814783, ron: 0.798939 }, { time: 18750, gfp: 0.993405, roff: 0.000814743, ron: 0.798939 }, { time: 18800, gfp: 0.993406, roff: 0.000814704, ron: 0.798939 }, { time: 18850, gfp: 0.993406, roff: 0.000814667, ron: 0.798939 }, { time: 18900, gfp: 0.993407, roff: 0.000814631, ron: 0.79894 }, { time: 18950, gfp: 0.993407, roff: 0.000814597, ron: 0.79894 }, { time: 19000, gfp: 0.993408, roff: 0.000814565, ron: 0.79894 }, { time: 19050, gfp: 0.993409, roff: 0.000814534, ron: 0.79894 }, { time: 19100, gfp: 0.993409, roff: 0.000814504, ron: 0.79894 }, { time: 19150, gfp: 0.99341, roff: 0.000814476, ron: 0.79894 }, { time: 19200, gfp: 0.99341, roff: 0.000814449, ron: 0.79894 }, { time: 19250, gfp: 0.99341, roff: 0.000814423, ron: 0.79894 }, { time: 19300, gfp: 0.993411, roff: 0.000814398, ron: 0.79894 }, { time: 19350, gfp: 0.993411, roff: 0.000814375, ron: 0.79894 }, { time: 19400, gfp: 0.993412, roff: 0.000814352, ron: 0.79894 }, { time: 19450, gfp: 0.993412, roff: 0.000814331, ron: 0.79894 }, { time: 19500, gfp: 0.993412, roff: 0.00081431, ron: 0.79894 }, { time: 19550, gfp: 0.993413, roff: 0.00081429, ron: 0.79894 }, { time: 19600, gfp: 0.993413, roff: 0.000814271, ron: 0.79894 }, { time: 19650, gfp: 0.993413, roff: 0.000814253, ron: 0.798941 }, { time: 19700, gfp: 0.993414, roff: 0.000814236, ron: 0.798941 }, { time: 19750, gfp: 0.993414, roff: 0.00081422, ron: 0.798941 }, { time: 19800, gfp: 0.993414, roff: 0.000814204, ron: 0.798941 }, { time: 19850, gfp: 0.993414, roff: 0.000814189, ron: 0.798941 }, { time: 19900, gfp: 0.993415, roff: 0.000814174, ron: 0.798941 }, { time: 19950, gfp: 0.993415, roff: 0.000814161, ron: 0.798941 }, { time: 20000, gfp: 0.993415, roff: 0.000814148, ron: 0.798941 }, { time: 20050, gfp: 0.993415, roff: 0.000814135, ron: 0.798941 }, { time: 20100, gfp: 0.993415, roff: 0.000814123, ron: 0.798941 }, { time: 20150, gfp: 0.993416, roff: 0.000814112, ron: 0.798941 }, { time: 20200, gfp: 0.993416, roff: 0.000814101, ron: 0.798941 }, { time: 20250, gfp: 0.993416, roff: 0.00081409, ron: 0.798941 }, { time: 20300, gfp: 0.993416, roff: 0.00081408, ron: 0.798941 }, { time: 20350, gfp: 0.993416, roff: 0.000814071, ron: 0.798941 }, { time: 20400, gfp: 0.993417, roff: 0.000814062, ron: 0.798941 }, { time: 20450, gfp: 0.993417, roff: 0.000814053, ron: 0.798941 }, { time: 20500, gfp: 0.993417, roff: 0.000814044, ron: 0.798941 }, { time: 20550, gfp: 0.993417, roff: 0.000814037, ron: 0.798941 }, { time: 20600, gfp: 0.993417, roff: 0.000814029, ron: 0.798941 }, { time: 20650, gfp: 0.993417, roff: 0.000814022, ron: 0.798941 }, { time: 20700, gfp: 0.993417, roff: 0.000814015, ron: 0.798941 }, { time: 20750, gfp: 0.993417, roff: 0.000814008, ron: 0.798941 }, { time: 20800, gfp: 0.993418, roff: 0.000814002, ron: 0.798941 }, { time: 20850, gfp: 0.993418, roff: 0.000813996, ron: 0.798941 }, { time: 20900, gfp: 0.993418, roff: 0.00081399, ron: 0.798941 }, { time: 20950, gfp: 0.993418, roff: 0.000813984, ron: 0.798941 }, { time: 21000, gfp: 0.993418, roff: 0.000813979, ron: 0.798941 }, { time: 21050, gfp: 0.993418, roff: 0.000813974, ron: 0.798941 }, { time: 21100, gfp: 0.993418, roff: 0.000813969, ron: 0.798941 }, { time: 21150, gfp: 0.993418, roff: 0.000813964, ron: 0.798941 }, { time: 21200, gfp: 0.993418, roff: 0.00081396, ron: 0.798941 }, { time: 21250, gfp: 0.993418, roff: 0.000813956, ron: 0.798941 }, { time: 21300, gfp: 0.993418, roff: 0.000813952, ron: 0.798941 }, { time: 21350, gfp: 0.993418, roff: 0.000813948, ron: 0.798941 }, { time: 21400, gfp: 0.993418, roff: 0.000813944, ron: 0.798941 }, { time: 21450, gfp: 0.993419, roff: 0.00081394, ron: 0.798941 }, { time: 21500, gfp: 0.993419, roff: 0.000813937, ron: 0.798941 }, { time: 21550, gfp: 0.993419, roff: 0.000813934, ron: 0.798941 }, { time: 21600, gfp: 0.993419, roff: 0.000813931, ron: 0.798941 }, { time: 21650, gfp: 0.993419, roff: 0.000813928, ron: 0.798941 }, { time: 21700, gfp: 0.993419, roff: 0.000813925, ron: 0.798941 }, { time: 21750, gfp: 0.993419, roff: 0.000813922, ron: 0.798941 }, { time: 21800, gfp: 0.993419, roff: 0.00081392, ron: 0.798941 }, { time: 21850, gfp: 0.993419, roff: 0.000813917, ron: 0.798941 }, { time: 21900, gfp: 0.993419, roff: 0.000813915, ron: 0.798941 }, { time: 21950, gfp: 0.993419, roff: 0.000813913, ron: 0.798941 }, { time: 22000, gfp: 0.993419, roff: 0.00081391, ron: 0.798941 }, { time: 22050, gfp: 0.993419, roff: 0.000813908, ron: 0.798941 }, { time: 22100, gfp: 0.993419, roff: 0.000813906, ron: 0.798941 }, { time: 22150, gfp: 0.993419, roff: 0.000813904, ron: 0.798941 }, { time: 22200, gfp: 0.993419, roff: 0.000813903, ron: 0.798941 }, { time: 22250, gfp: 0.993419, roff: 0.000813901, ron: 0.798942 }, { time: 22300, gfp: 0.993419, roff: 0.000813899, ron: 0.798942 }, { time: 22350, gfp: 0.993419, roff: 0.000813898, ron: 0.798942 }, { time: 22400, gfp: 0.993419, roff: 0.000813896, ron: 0.798942 }, { time: 22450, gfp: 0.993419, roff: 0.000813895, ron: 0.798942 }, { time: 22500, gfp: 0.993419, roff: 0.000813893, ron: 0.798942 }, { time: 22550, gfp: 0.993419, roff: 0.000813892, ron: 0.798942 }, { time: 22600, gfp: 0.993419, roff: 0.000813891, ron: 0.798942 }, { time: 22650, gfp: 0.993419, roff: 0.00081389, ron: 0.798942 }, { time: 22700, gfp: 0.993419, roff: 0.000813889, ron: 0.798942 }, { time: 22750, gfp: 0.993419, roff: 0.000813887, ron: 0.798942 }, { time: 22800, gfp: 0.993419, roff: 0.000813886, ron: 0.798942 }, { time: 22850, gfp: 0.993419, roff: 0.000813885, ron: 0.798942 }, { time: 22900, gfp: 0.993419, roff: 0.000813884, ron: 0.798942 }, { time: 22950, gfp: 0.99342, roff: 0.000813884, ron: 0.798942 }, { time: 23000, gfp: 0.99342, roff: 0.000813883, ron: 0.798942 }, { time: 23050, gfp: 0.99342, roff: 0.000813882, ron: 0.798942 }, { time: 23100, gfp: 0.99342, roff: 0.000813881, ron: 0.798942 }, { time: 23150, gfp: 0.99342, roff: 0.00081388, ron: 0.798942 }, { time: 23200, gfp: 0.99342, roff: 0.00081388, ron: 0.798942 }, { time: 23250, gfp: 0.99342, roff: 0.000813879, ron: 0.798942 }, { time: 23300, gfp: 0.99342, roff: 0.000813878, ron: 0.798942 }, { time: 23350, gfp: 0.99342, roff: 0.000813878, ron: 0.798942 }, { time: 23400, gfp: 0.99342, roff: 0.000813877, ron: 0.798942 }, { time: 23450, gfp: 0.99342, roff: 0.000813876, ron: 0.798942 }, { time: 23500, gfp: 0.99342, roff: 0.000813876, ron: 0.798942 }, { time: 23550, gfp: 0.99342, roff: 0.000813875, ron: 0.798942 }, { time: 23600, gfp: 0.99342, roff: 0.000813875, ron: 0.798942 }, { time: 23650, gfp: 0.99342, roff: 0.000813874, ron: 0.798942 }, { time: 23700, gfp: 0.99342, roff: 0.000813874, ron: 0.798942 }, { time: 23750, gfp: 0.99342, roff: 0.000813873, ron: 0.798942 }, { time: 23800, gfp: 0.99342, roff: 0.000813873, ron: 0.798942 }, { time: 23850, gfp: 0.99342, roff: 0.000813873, ron: 0.798942 }, { time: 23900, gfp: 0.99342, roff: 0.000813872, ron: 0.798942 }, { time: 23950, gfp: 0.99342, roff: 0.000813872, ron: 0.798942 }, { time: 24000, gfp: 0.99342, roff: 0.000813872, ron: 0.798942 }, { time: 24050, gfp: 0.99342, roff: 0.000813871, ron: 0.798942 }, { time: 24100, gfp: 0.99342, roff: 0.000813871, ron: 0.798942 }, { time: 24150, gfp: 0.99342, roff: 0.000813871, ron: 0.798942 }, { time: 24200, gfp: 0.99342, roff: 0.00081387, ron: 0.798942 }, { time: 24250, gfp: 0.99342, roff: 0.00081387, ron: 0.798942 }, { time: 24300, gfp: 0.99342, roff: 0.00081387, ron: 0.798942 }, { time: 24350, gfp: 0.99342, roff: 0.000813869, ron: 0.798942 }, { time: 24400, gfp: 0.99342, roff: 0.000813869, ron: 0.798942 }, { time: 24450, gfp: 0.99342, roff: 0.000813869, ron: 0.798942 }, { time: 24500, gfp: 0.99342, roff: 0.000813869, ron: 0.798942 }, { time: 24550, gfp: 0.99342, roff: 0.000813868, ron: 0.798942 }, { time: 24600, gfp: 0.99342, roff: 0.000813868, ron: 0.798942 }, { time: 24650, gfp: 0.99342, roff: 0.000813868, ron: 0.798942 }, { time: 24700, gfp: 0.99342, roff: 0.000813868, ron: 0.798942 }, { time: 24750, gfp: 0.99342, roff: 0.000813868, ron: 0.798942 }, { time: 24800, gfp: 0.99342, roff: 0.000813868, ron: 0.798942 }, { time: 24850, gfp: 0.99342, roff: 0.000813867, ron: 0.798942 }, { time: 24900, gfp: 0.99342, roff: 0.000813867, ron: 0.798942 }, { time: 24950, gfp: 0.99342, roff: 0.000813867, ron: 0.798942 }, { time: 25000, gfp: 0.99342, roff: 0.000813867, ron: 0.798942 }, { time: 25050, gfp: 0.99342, roff: 0.000813867, ron: 0.798942 }, { time: 25100, gfp: 0.99342, roff: 0.000813867, ron: 0.798942 }, { time: 25150, gfp: 0.99342, roff: 0.000813866, ron: 0.798942 }, { time: 25200, gfp: 0.99342, roff: 0.000813866, ron: 0.798942 }, { time: 25250, gfp: 0.99342, roff: 0.000813866, ron: 0.798942 }, { time: 25300, gfp: 0.99342, roff: 0.000813866, ron: 0.798942 }, { time: 25350, gfp: 0.99342, roff: 0.000813866, ron: 0.798942 }, { time: 25400, gfp: 0.99342, roff: 0.000813866, ron: 0.798942 }, { time: 25450, gfp: 0.99342, roff: 0.000813866, ron: 0.798942 }, { time: 25500, gfp: 0.99342, roff: 0.000813866, ron: 0.798942 }, { time: 25550, gfp: 0.99342, roff: 0.000813866, ron: 0.798942 }, { time: 25600, gfp: 0.99342, roff: 0.000813866, ron: 0.798942 }, { time: 25650, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 25700, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 25750, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 25800, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 25850, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 25900, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 25950, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 26000, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 26050, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 26100, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 26150, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 26200, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 26250, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 26300, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 26350, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 26400, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 26450, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 26500, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 26550, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 26600, gfp: 0.99342, roff: 0.000813865, ron: 0.798942 }, { time: 26650, gfp: 0.99342, roff: 0.000813864, ron: 0.798942 }
]; let modelOnData = [
{ time: 0, gfp: 0.99342, roff: 0.000813884, ron: 0.798942 }
]; let modelOnOffData = [
{ time: 0, gfp: 0.400329, roff: 0.460298, ron: 0.681631 }, { time: 50, gfp: 0.147499, roff: 0.558638, ron: 0.601859 }, { time: 100, gfp: 0.0544694, roff: 0.539113, ron: 0.542517 }, { time: 150, gfp: 0.0202746, roff: 0.498525, ron: 0.494678 }, { time: 200, gfp: 0.00773694, roff: 0.459142, ron: 0.454481 }, { time: 250, gfp: 0.00317335, roff: 0.424206, ron: 0.419853 }, { time: 300, gfp: 0.0015489, roff: 0.393442, ron: 0.389514 }, { time: 350, gfp: 0.00101154, roff: 0.366154, ron: 0.362602 }, { time: 400, gfp: 0.000880431, roff: 0.341744, ron: 0.338502 }, { time: 450, gfp: 0.000905717, roff: 0.319748, ron: 0.316759 }, { time: 500, gfp: 0.000996144, roff: 0.299804, ron: 0.297022 }, { time: 550, gfp: 0.00111885, roff: 0.281633, ron: 0.279018 }, { time: 600, gfp: 0.00126247, roff: 0.265009, ron: 0.262529 }, { time: 650, gfp: 0.0014236, roff: 0.249748, ron: 0.247374 }, { time: 700, gfp: 0.00160176, roff: 0.235701, ron: 0.233407 }, { time: 750, gfp: 0.00179759, roff: 0.222742, ron: 0.220504 }, { time: 800, gfp: 0.0020121, roff: 0.210764, ron: 0.20856 }, { time: 850, gfp: 0.00224646, roff: 0.199679, ron: 0.197488 }, { time: 900, gfp: 0.00250184, roff: 0.189409, ron: 0.18721 }, { time: 950, gfp: 0.00277934, roff: 0.179889, ron: 0.17766 }, { time: 1000, gfp: 0.00307994, roff: 0.17106, ron: 0.168781 }, { time: 1050, gfp: 0.00340444, roff: 0.162872, ron: 0.160522 }, { time: 1100, gfp: 0.00375337, roff: 0.155283, ron: 0.152839 }, { time: 1150, gfp: 0.00412695, roff: 0.148252, ron: 0.145693 }, { time: 1200, gfp: 0.00452498, roff: 0.141747, ron: 0.139047 }, { time: 1250, gfp: 0.00494676, roff: 0.135737, ron: 0.132871 }, { time: 1300, gfp: 0.00539103, roff: 0.130194, ron: 0.127135 }, { time: 1350, gfp: 0.00585587, roff: 0.125093, ron: 0.121813 }, { time: 1400, gfp: 0.00633866, roff: 0.120414, ron: 0.116881 }, { time: 1450, gfp: 0.00683605, roff: 0.116133, ron: 0.112316 }, { time: 1500, gfp: 0.00734397, roff: 0.112233, ron: 0.108095 }, { time: 1550, gfp: 0.00785765, roff: 0.108695, ron: 0.104199 }, { time: 1600, gfp: 0.00837174, roff: 0.105501, ron: 0.100606 }, { time: 1650, gfp: 0.0088804, roff: 0.102634, ron: 0.0972984 }, { time: 1700, gfp: 0.00937754, roff: 0.100078, ron: 0.0942554 }, { time: 1750, gfp: 0.009857, roff: 0.0978164, ron: 0.0914584 }, { time: 1800, gfp: 0.0103127, roff: 0.0958334, ron: 0.0888883 }, { time: 1850, gfp: 0.0107391, roff: 0.0941135, ron: 0.0865267 }, { time: 1900, gfp: 0.011131, roff: 0.0926413, ron: 0.0843553 }, { time: 1950, gfp: 0.0114841, roff: 0.0914018, ron: 0.0823563 }, { time: 2000, gfp: 0.0117951, roff: 0.0903809, ron: 0.0805124 }, { time: 2050, gfp: 0.0120613, roff: 0.0895646, ron: 0.0788069 }, { time: 2100, gfp: 0.0122813, roff: 0.0889402, ron: 0.0772242 }, { time: 2150, gfp: 0.0124544, roff: 0.0884953, ron: 0.0757492 }, { time: 2200, gfp: 0.0125807, roff: 0.0882189, ron: 0.0743678 }, { time: 2250, gfp: 0.0126612, roff: 0.0881005, ron: 0.073067 }, { time: 2300, gfp: 0.0126975, roff: 0.0881312, ron: 0.0718349 }, { time: 2350, gfp: 0.0126915, roff: 0.0883027, ron: 0.0706604 }, { time: 2400, gfp: 0.0126456, roff: 0.0886082, ron: 0.0695338 }, { time: 2450, gfp: 0.0125623, roff: 0.0890417, ron: 0.068446 }, { time: 2500, gfp: 0.0124443, roff: 0.0895985, ron: 0.0673892 }, { time: 2550, gfp: 0.0122945, roff: 0.0902748, ron: 0.0663562 }, { time: 2600, gfp: 0.0121155, roff: 0.0910681, ron: 0.0653409 }, { time: 2650, gfp: 0.0119101, roff: 0.0919768, ron: 0.0643378 }, { time: 2700, gfp: 0.0116807, roff: 0.0930003, ron: 0.0633424 }, { time: 2750, gfp: 0.01143, roff: 0.0941388, ron: 0.0623504 }, { time: 2800, gfp: 0.0111601, roff: 0.0953937, ron: 0.0613586 }, { time: 2850, gfp: 0.0108733, roff: 0.0967673, ron: 0.0603641 }, { time: 2900, gfp: 0.0105718, roff: 0.0982626, ron: 0.0593643 }, { time: 2950, gfp: 0.0102573, roff: 0.0998839, ron: 0.0583575 }, { time: 3000, gfp: 0.00993184, roff: 0.101636, ron: 0.0573421 }, { time: 3050, gfp: 0.00959707, roff: 0.103525, ron: 0.056317 }, { time: 3100, gfp: 0.00925467, roff: 0.105557, ron: 0.0552813 }, { time: 3150, gfp: 0.00890621, roff: 0.107742, ron: 0.0542345 }, { time: 3200, gfp: 0.00855318, roff: 0.110086, ron: 0.0531763 }, { time: 3250, gfp: 0.00819703, roff: 0.1126, ron: 0.0521069 }, { time: 3300, gfp: 0.00783913, roff: 0.115296, ron: 0.0510265 }, { time: 3350, gfp: 0.00748084, roff: 0.118185, ron: 0.0499355 }, { time: 3400, gfp: 0.00712343, roff: 0.12128, ron: 0.0488347 }, { time: 3450, gfp: 0.00676815, roff: 0.124596, ron: 0.0477249 }, { time: 3500, gfp: 0.0064162, roff: 0.128149, ron: 0.046607 }, { time: 3550, gfp: 0.00606875, roff: 0.131955, ron: 0.0454824 }, { time: 3600, gfp: 0.00572688, roff: 0.136033, ron: 0.0443522 }, { time: 3650, gfp: 0.00539166, roff: 0.140404, ron: 0.0432179 }, { time: 3700, gfp: 0.00506407, roff: 0.145088, ron: 0.042081 }, { time: 3750, gfp: 0.00474505, roff: 0.150109, ron: 0.0409432 }, { time: 3800, gfp: 0.00443546, roff: 0.15549, ron: 0.0398061 }, { time: 3850, gfp: 0.00413609, roff: 0.161259, ron: 0.0386713 }, { time: 3900, gfp: 0.00384763, roff: 0.167444, ron: 0.0375408 }, { time: 3950, gfp: 0.0035707, roff: 0.174072, ron: 0.0364163 }, { time: 4000, gfp: 0.0033058, roff: 0.181176, ron: 0.0352995 }, { time: 4050, gfp: 0.00305337, roff: 0.188787, ron: 0.0341922 }, { time: 4100, gfp: 0.00281371, roff: 0.196938, ron: 0.0330962 }, { time: 4150, gfp: 0.00258704, roff: 0.205664, ron: 0.0320132 }, { time: 4200, gfp: 0.00237346, roff: 0.214998, ron: 0.0309446 }, { time: 4250, gfp: 0.002173, roff: 0.224977, ron: 0.0298922 }, { time: 4300, gfp: 0.00198555, roff: 0.235632, ron: 0.0288573 }, { time: 4350, gfp: 0.00181094, roff: 0.246999, ron: 0.0278413 }, { time: 4400, gfp: 0.00164889, roff: 0.259108, ron: 0.0268454 }, { time: 4450, gfp: 0.00149907, roff: 0.271987, ron: 0.0258707 }, { time: 4500, gfp: 0.00136106, roff: 0.285661, ron: 0.0249182 }, { time: 4550, gfp: 0.00123438, roff: 0.300147, ron: 0.0239888 }, { time: 4600, gfp: 0.00111853, roff: 0.315458, ron: 0.0230831 }, { time: 4650, gfp: 0.00101293, roff: 0.331597, ron: 0.0222018 }, { time: 4700, gfp: 0.000917001, roff: 0.348557, ron: 0.0213454 }, { time: 4750, gfp: 0.000830149, roff: 0.366317, ron: 0.0205141 }, { time: 4800, gfp: 0.000751762, roff: 0.384843, ron: 0.0197082 }, { time: 4850, gfp: 0.000681236, roff: 0.404084, ron: 0.0189278 }, { time: 4900, gfp: 0.000617972, roff: 0.423969, ron: 0.018173 }, { time: 4950, gfp: 0.000561393, roff: 0.444408, ron: 0.0174436 }, { time: 5000, gfp: 0.000510941, roff: 0.465289, ron: 0.0167394 }, { time: 5050, gfp: 0.000466084, roff: 0.486478, ron: 0.0160603 }, { time: 5100, gfp: 0.000426318, roff: 0.50782, ron: 0.0154058 }, { time: 5150, gfp: 0.000391168, roff: 0.529144, ron: 0.0147756 }, { time: 5200, gfp: 0.000360193, roff: 0.550261, ron: 0.0141692 }, { time: 5250, gfp: 0.000332982, roff: 0.570978, ron: 0.0135862 }, { time: 5300, gfp: 0.000309152, roff: 0.591101, ron: 0.013026 }, { time: 5350, gfp: 0.000288349, roff: 0.610446, ron: 0.012488 }, { time: 5400, gfp: 0.000270246, roff: 0.628851, ron: 0.0119718 }, { time: 5450, gfp: 0.000254538, roff: 0.646185, ron: 0.0114766 }, { time: 5500, gfp: 0.000240943, roff: 0.662357, ron: 0.0110018 }, { time: 5550, gfp: 0.000229201, roff: 0.677317, ron: 0.0105467 }, { time: 5600, gfp: 0.000219072, roff: 0.691056, ron: 0.0101108 }, { time: 5650, gfp: 0.000210337, roff: 0.703605, ron: 0.00969327 }, { time: 5700, gfp: 0.000202798, roff: 0.715024, ron: 0.00929353 }, { time: 5750, gfp: 0.000196278, roff: 0.725395, ron: 0.00891089 }, { time: 5800, gfp: 0.000190623, roff: 0.734806, ron: 0.00854469 }, { time: 5850, gfp: 0.000185698, roff: 0.743351, ron: 0.00819429 }, { time: 5900, gfp: 0.00018139, roff: 0.751118, ron: 0.00785904 }, { time: 5950, gfp: 0.000177604, roff: 0.758191, ron: 0.00753833 }, { time: 6000, gfp: 0.000174261, roff: 0.764642, ron: 0.00723156 }, { time: 6050, gfp: 0.000171295, roff: 0.770535, ron: 0.00693816 }, { time: 6100, gfp: 0.000168653, roff: 0.775927, ron: 0.00665754 }, { time: 6150, gfp: 0.00016629, roff: 0.780866, ron: 0.00638919 }, { time: 6200, gfp: 0.00016417, roff: 0.785394, ron: 0.00613256 }, { time: 6250, gfp: 0.000162263, roff: 0.78955, ron: 0.00588717 }, { time: 6300, gfp: 0.000160542, roff: 0.793365, ron: 0.00565253 }, { time: 6350, gfp: 0.000158987, roff: 0.796869, ron: 0.00542818 }, { time: 6400, gfp: 0.000157579, roff: 0.800089, ron: 0.00521368 }, { time: 6450, gfp: 0.000156302, roff: 0.803049, ron: 0.00500859 }, { time: 6500, gfp: 0.000155142, roff: 0.805771, ron: 0.00481251 }, { time: 6550, gfp: 0.000154087, roff: 0.808273, ron: 0.00462505 }, { time: 6600, gfp: 0.000153126, roff: 0.810575, ron: 0.00444584 }, { time: 6650, gfp: 0.000152251, roff: 0.812693, ron: 0.00427451 }, { time: 6700, gfp: 0.000151452, roff: 0.814641, ron: 0.00411073 }, { time: 6750, gfp: 0.000150723, roff: 0.816434, ron: 0.00395416 }, { time: 6800, gfp: 0.000150056, roff: 0.818085, ron: 0.00380449 }, { time: 6850, gfp: 0.000149447, roff: 0.819604, ron: 0.00366141 }, { time: 6900, gfp: 0.000148889, roff: 0.821003, ron: 0.00352464 }, { time: 6950, gfp: 0.000148378, roff: 0.822292, ron: 0.0033939 }, { time: 7000, gfp: 0.00014791, roff: 0.823479, ron: 0.00326893 }, { time: 7050, gfp: 0.000147481, roff: 0.824572, ron: 0.00314947 }, { time: 7100, gfp: 0.000147087, roff: 0.82558, ron: 0.00303529 }, { time: 7150, gfp: 0.000146725, roff: 0.826509, ron: 0.00292615 }, { time: 7200, gfp: 0.000146393, roff: 0.827365, ron: 0.00282182 }, { time: 7250, gfp: 0.000146088, roff: 0.828155, ron: 0.00272211 }, { time: 7300, gfp: 0.000145808, roff: 0.828884, ron: 0.00262679 }, { time: 7350, gfp: 0.00014555, roff: 0.829556, ron: 0.00253569 }, { time: 7400, gfp: 0.000145312, roff: 0.830177, ron: 0.00244862 }, { time: 7450, gfp: 0.000145093, roff: 0.83075, ron: 0.00236539 }, { time: 7500, gfp: 0.000144892, roff: 0.831279, ron: 0.00228584 }, { time: 7550, gfp: 0.000144706, roff: 0.831769, ron: 0.00220981 }, { time: 7600, gfp: 0.000144535, roff: 0.832221, ron: 0.00213714 }, { time: 7650, gfp: 0.000144377, roff: 0.832638, ron: 0.00206769 }, { time: 7700, gfp: 0.000144231, roff: 0.833025, ron: 0.0020013 }, { time: 7750, gfp: 0.000144096, roff: 0.833383, ron: 0.00193786 }, { time: 7800, gfp: 0.000143972, roff: 0.833714, ron: 0.00187721 }, { time: 7850, gfp: 0.000143857, roff: 0.83402, ron: 0.00181926 }, { time: 7900, gfp: 0.000143751, roff: 0.834304, ron: 0.00176386 }, { time: 7950, gfp: 0.000143652, roff: 0.834567, ron: 0.00171092 }, { time: 8000, gfp: 0.000143561, roff: 0.834811, ron: 0.00166032 }, { time: 8050, gfp: 0.000143477, roff: 0.835037, ron: 0.00161196 }, { time: 8100, gfp: 0.000143398, roff: 0.835247, ron: 0.00156574 }, { time: 8150, gfp: 0.000143326, roff: 0.835442, ron: 0.00152157 }, { time: 8200, gfp: 0.000143259, roff: 0.835623, ron: 0.00147935 }, { time: 8250, gfp: 0.000143196, roff: 0.835791, ron: 0.00143901 }, { time: 8300, gfp: 0.000143138, roff: 0.835948, ron: 0.00140045 }, { time: 8350, gfp: 0.000143084, roff: 0.836093, ron: 0.00136359 }, { time: 8400, gfp: 0.000143034, roff: 0.836228, ron: 0.00132837 }, { time: 8450, gfp: 0.000142988, roff: 0.836354, ron: 0.00129471 }, { time: 8500, gfp: 0.000142944, roff: 0.836472, ron: 0.00126254 }, { time: 8550, gfp: 0.000142904, roff: 0.836581, ron: 0.00123179 }, { time: 8600, gfp: 0.000142866, roff: 0.836683, ron: 0.00120241 }, { time: 8650, gfp: 0.000142831, roff: 0.836778, ron: 0.00117433 }, { time: 8700, gfp: 0.000142799, roff: 0.836867, ron: 0.00114749 }, { time: 8750, gfp: 0.000142768, roff: 0.83695, ron: 0.00112184 }, { time: 8800, gfp: 0.00014274, roff: 0.837027, ron: 0.00109733 }, { time: 8850, gfp: 0.000142713, roff: 0.837099, ron: 0.0010739 }, { time: 8900, gfp: 0.000142689, roff: 0.837167, ron: 0.00105151 }, { time: 8950, gfp: 0.000142665, roff: 0.83723, ron: 0.00103011 }, { time: 9000, gfp: 0.000142644, roff: 0.83729, ron: 0.00100967 }, { time: 9050, gfp: 0.000142623, roff: 0.837345, ron: 0.000990123 }, { time: 9100, gfp: 0.000142604, roff: 0.837397, ron: 0.000971447 }, { time: 9150, gfp: 0.000142587, roff: 0.837446, ron: 0.000953598 }, { time: 9200, gfp: 0.00014257, roff: 0.837492, ron: 0.00093654 }, { time: 9250, gfp: 0.000142554, roff: 0.837535, ron: 0.000920238 }, { time: 9300, gfp: 0.00014254, roff: 0.837575, ron: 0.000904659 }, { time: 9350, gfp: 0.000142526, roff: 0.837613, ron: 0.00088977 }, { time: 9400, gfp: 0.000142513, roff: 0.837648, ron: 0.000875541 }, { time: 9450, gfp: 0.000142501, roff: 0.837682, ron: 0.000861942 }, { time: 9500, gfp: 0.000142489, roff: 0.837713, ron: 0.000848947 }, { time: 9550, gfp: 0.000142479, roff: 0.837743, ron: 0.000836527 }, { time: 9600, gfp: 0.000142468, roff: 0.837771, ron: 0.000824658 }, { time: 9650, gfp: 0.000142459, roff: 0.837797, ron: 0.000813315 }, { time: 9700, gfp: 0.00014245, roff: 0.837822, ron: 0.000802475 }, { time: 9750, gfp: 0.000142442, roff: 0.837845, ron: 0.000792116 }, { time: 9800, gfp: 0.000142434, roff: 0.837867, ron: 0.000782215 }, { time: 9850, gfp: 0.000142426, roff: 0.837888, ron: 0.000772754 }, { time: 9900, gfp: 0.000142419, roff: 0.837907, ron: 0.000763712 }, { time: 9950, gfp: 0.000142412, roff: 0.837926, ron: 0.000755071 }, { time: 10000, gfp: 0.000142406, roff: 0.837943, ron: 0.000746813 }, { time: 10050, gfp: 0.0001424, roff: 0.83796, ron: 0.000738921 }, { time: 10100, gfp: 0.000142394, roff: 0.837976, ron: 0.000731379 }, { time: 10150, gfp: 0.000142389, roff: 0.83799, ron: 0.000724171 }, { time: 10200, gfp: 0.000142384, roff: 0.838004, ron: 0.000717283 }, { time: 10250, gfp: 0.000142379, roff: 0.838018, ron: 0.0007107 }, { time: 10300, gfp: 0.000142375, roff: 0.83803, ron: 0.00070441 }, { time: 10350, gfp: 0.00014237, roff: 0.838042, ron: 0.000698398 }, { time: 10400, gfp: 0.000142366, roff: 0.838053, ron: 0.000692652 }, { time: 10450, gfp: 0.000142363, roff: 0.838064, ron: 0.000687162 }, { time: 10500, gfp: 0.000142359, roff: 0.838074, ron: 0.000681914 }, { time: 10550, gfp: 0.000142355, roff: 0.838084, ron: 0.0006769 }, { time: 10600, gfp: 0.000142352, roff: 0.838093, ron: 0.000672108 }, { time: 10650, gfp: 0.000142349, roff: 0.838101, ron: 0.000667528 }, { time: 10700, gfp: 0.000142346, roff: 0.838109, ron: 0.000663151 }, { time: 10750, gfp: 0.000142343, roff: 0.838117, ron: 0.000658969 }, { time: 10800, gfp: 0.000142341, roff: 0.838125, ron: 0.000654971 }, { time: 10850, gfp: 0.000142338, roff: 0.838132, ron: 0.000651152 }, { time: 10900, gfp: 0.000142336, roff: 0.838138, ron: 0.000647501 }, { time: 10950, gfp: 0.000142334, roff: 0.838145, ron: 0.000644012 }, { time: 11000, gfp: 0.000142331, roff: 0.838151, ron: 0.000640678 }, { time: 11050, gfp: 0.000142329, roff: 0.838156, ron: 0.000637492 }, { time: 11100, gfp: 0.000142327, roff: 0.838162, ron: 0.000634447 }, { time: 11150, gfp: 0.000142326, roff: 0.838167, ron: 0.000631538 }, { time: 11200, gfp: 0.000142324, roff: 0.838172, ron: 0.000628757 }, { time: 11250, gfp: 0.000142322, roff: 0.838176, ron: 0.000626099 }, { time: 11300, gfp: 0.000142321, roff: 0.838181, ron: 0.00062356 }, { time: 11350, gfp: 0.000142319, roff: 0.838185, ron: 0.000621133 }, { time: 11400, gfp: 0.000142318, roff: 0.838189, ron: 0.000618813 }, { time: 11450, gfp: 0.000142316, roff: 0.838193, ron: 0.000616597 }, { time: 11500, gfp: 0.000142315, roff: 0.838197, ron: 0.000614478 }, { time: 11550, gfp: 0.000142314, roff: 0.8382, ron: 0.000612454 }, { time: 11600, gfp: 0.000142312, roff: 0.838203, ron: 0.000610519 }, { time: 11650, gfp: 0.000142311, roff: 0.838207, ron: 0.000608671 }, { time: 11700, gfp: 0.00014231, roff: 0.83821, ron: 0.000606904 }, { time: 11750, gfp: 0.000142309, roff: 0.838212, ron: 0.000605215 }, { time: 11800, gfp: 0.000142308, roff: 0.838215, ron: 0.000603602 }, { time: 11850, gfp: 0.000142307, roff: 0.838218, ron: 0.00060206 }, { time: 11900, gfp: 0.000142306, roff: 0.83822, ron: 0.000600586 }, { time: 11950, gfp: 0.000142306, roff: 0.838223, ron: 0.000599178 }, { time: 12000, gfp: 0.000142305, roff: 0.838225, ron: 0.000597832 }, { time: 12050, gfp: 0.000142304, roff: 0.838227, ron: 0.000596546 }, { time: 12100, gfp: 0.000142303, roff: 0.838229, ron: 0.000595316 }, { time: 12150, gfp: 0.000142303, roff: 0.838231, ron: 0.000594142 }, { time: 12200, gfp: 0.000142302, roff: 0.838233, ron: 0.000593019 }, { time: 12250, gfp: 0.000142301, roff: 0.838235, ron: 0.000591947 }, { time: 12300, gfp: 0.000142301, roff: 0.838236, ron: 0.000590921 }, { time: 12350, gfp: 0.0001423, roff: 0.838238, ron: 0.000589942 }, { time: 12400, gfp: 0.0001423, roff: 0.83824, ron: 0.000589005 }, { time: 12450, gfp: 0.000142299, roff: 0.838241, ron: 0.000588111 }, { time: 12500, gfp: 0.000142299, roff: 0.838242, ron: 0.000587255 }, { time: 12550, gfp: 0.000142298, roff: 0.838244, ron: 0.000586438 }, { time: 12600, gfp: 0.000142298, roff: 0.838245, ron: 0.000585657 }, { time: 12650, gfp: 0.000142297, roff: 0.838246, ron: 0.000584911 }, { time: 12700, gfp: 0.000142297, roff: 0.838247, ron: 0.000584198 }, { time: 12750, gfp: 0.000142296, roff: 0.838249, ron: 0.000583516 }, { time: 12800, gfp: 0.000142296, roff: 0.83825, ron: 0.000582865 }, { time: 12850, gfp: 0.000142296, roff: 0.838251, ron: 0.000582242 }, { time: 12900, gfp: 0.000142295, roff: 0.838252, ron: 0.000581648 }, { time: 12950, gfp: 0.000142295, roff: 0.838253, ron: 0.000581079 }, { time: 13000, gfp: 0.000142295, roff: 0.838253, ron: 0.000580536 }, { time: 13050, gfp: 0.000142294, roff: 0.838254, ron: 0.000580017 }, { time: 13100, gfp: 0.000142294, roff: 0.838255, ron: 0.000579521 }, { time: 13150, gfp: 0.000142294, roff: 0.838256, ron: 0.000579047 }, { time: 13200, gfp: 0.000142294, roff: 0.838257, ron: 0.000578594 }, { time: 13250, gfp: 0.000142293, roff: 0.838257, ron: 0.000578161 }, { time: 13300, gfp: 0.000142293, roff: 0.838258, ron: 0.000577747 }, { time: 13350, gfp: 0.000142293, roff: 0.838259, ron: 0.000577351 }, { time: 13400, gfp: 0.000142293, roff: 0.838259, ron: 0.000576973 }, { time: 13450, gfp: 0.000142292, roff: 0.83826, ron: 0.000576612 }, { time: 13500, gfp: 0.000142292, roff: 0.83826, ron: 0.000576267 }, { time: 13550, gfp: 0.000142292, roff: 0.838261, ron: 0.000575937 }, { time: 13600, gfp: 0.000142292, roff: 0.838261, ron: 0.000575621 }, { time: 13650, gfp: 0.000142292, roff: 0.838262, ron: 0.00057532 }, { time: 13700, gfp: 0.000142291, roff: 0.838262, ron: 0.000575032 }, { time: 13750, gfp: 0.000142291, roff: 0.838263, ron: 0.000574757 }, { time: 13800, gfp: 0.000142291, roff: 0.838263, ron: 0.000574494 }, { time: 13850, gfp: 0.000142291, roff: 0.838264, ron: 0.000574243 }, { time: 13900, gfp: 0.000142291, roff: 0.838264, ron: 0.000574003 }, { time: 13950, gfp: 0.000142291, roff: 0.838264, ron: 0.000573773 }, { time: 14000, gfp: 0.000142291, roff: 0.838265, ron: 0.000573554 }, { time: 14050, gfp: 0.000142291, roff: 0.838265, ron: 0.000573344 }, { time: 14100, gfp: 0.00014229, roff: 0.838265, ron: 0.000573144 }, { time: 14150, gfp: 0.00014229, roff: 0.838266, ron: 0.000572952 }, { time: 14200, gfp: 0.00014229, roff: 0.838266, ron: 0.00057277 }, { time: 14250, gfp: 0.00014229, roff: 0.838266, ron: 0.000572595 }, { time: 14300, gfp: 0.00014229, roff: 0.838266, ron: 0.000572428 }, { time: 14350, gfp: 0.00014229, roff: 0.838267, ron: 0.000572268 }, { time: 14400, gfp: 0.00014229, roff: 0.838267, ron: 0.000572115 }, { time: 14450, gfp: 0.00014229, roff: 0.838267, ron: 0.00057197 }, { time: 14500, gfp: 0.00014229, roff: 0.838267, ron: 0.00057183 }, { time: 14550, gfp: 0.00014229, roff: 0.838268, ron: 0.000571697 }, { time: 14600, gfp: 0.000142289, roff: 0.838268, ron: 0.00057157 }, { time: 14650, gfp: 0.000142289, roff: 0.838268, ron: 0.000571448 }, { time: 14700, gfp: 0.000142289, roff: 0.838268, ron: 0.000571332 }, { time: 14750, gfp: 0.000142289, roff: 0.838268, ron: 0.000571221 }, { time: 14800, gfp: 0.000142289, roff: 0.838269, ron: 0.000571114 }, { time: 14850, gfp: 0.000142289, roff: 0.838269, ron: 0.000571013 }, { time: 14900, gfp: 0.000142289, roff: 0.838269, ron: 0.000570916 }, { time: 14950, gfp: 0.000142289, roff: 0.838269, ron: 0.000570823 }, { time: 15000, gfp: 0.000142289, roff: 0.838269, ron: 0.000570735 }, { time: 15050, gfp: 0.000142289, roff: 0.838269, ron: 0.00057065 }, { time: 15100, gfp: 0.000142289, roff: 0.838269, ron: 0.000570569 }, { time: 15150, gfp: 0.000142289, roff: 0.83827, ron: 0.000570492 }, { time: 15200, gfp: 0.000142289, roff: 0.83827, ron: 0.000570418 }, { time: 15250, gfp: 0.000142289, roff: 0.83827, ron: 0.000570348 }, { time: 15300, gfp: 0.000142289, roff: 0.83827, ron: 0.00057028 }, { time: 15350, gfp: 0.000142289, roff: 0.83827, ron: 0.000570216 }, { time: 15400, gfp: 0.000142289, roff: 0.83827, ron: 0.000570154 }, { time: 15450, gfp: 0.000142289, roff: 0.83827, ron: 0.000570095 }, { time: 15500, gfp: 0.000142289, roff: 0.83827, ron: 0.000570039 }, { time: 15550, gfp: 0.000142289, roff: 0.83827, ron: 0.000569985 }, { time: 15600, gfp: 0.000142289, roff: 0.83827, ron: 0.000569934 }, { time: 15650, gfp: 0.000142289, roff: 0.838271, ron: 0.000569885 }, { time: 15700, gfp: 0.000142289, roff: 0.838271, ron: 0.000569838 }, { time: 15750, gfp: 0.000142288, roff: 0.838271, ron: 0.000569793 }, { time: 15800, gfp: 0.000142288, roff: 0.838271, ron: 0.00056975 }, { time: 15850, gfp: 0.000142288, roff: 0.838271, ron: 0.000569709 }, { time: 15900, gfp: 0.000142288, roff: 0.838271, ron: 0.00056967 }, { time: 15950, gfp: 0.000142288, roff: 0.838271, ron: 0.000569633 }, { time: 16000, gfp: 0.000142288, roff: 0.838271, ron: 0.000569597 }, { time: 16050, gfp: 0.000142288, roff: 0.838271, ron: 0.000569563 }, { time: 16100, gfp: 0.000142288, roff: 0.838271, ron: 0.00056953 }, { time: 16150, gfp: 0.000142288, roff: 0.838271, ron: 0.000569499 }, { time: 16200, gfp: 0.000142288, roff: 0.838271, ron: 0.00056947 }, { time: 16250, gfp: 0.000142288, roff: 0.838271, ron: 0.000569441 }, { time: 16300, gfp: 0.000142288, roff: 0.838271, ron: 0.000569414 }, { time: 16350, gfp: 0.000142288, roff: 0.838271, ron: 0.000569388 }, { time: 16400, gfp: 0.000142288, roff: 0.838271, ron: 0.000569363 }, { time: 16450, gfp: 0.000142288, roff: 0.838271, ron: 0.000569339 }, { time: 16500, gfp: 0.000142288, roff: 0.838271, ron: 0.000569316 }, { time: 16550, gfp: 0.000142288, roff: 0.838271, ron: 0.000569295 }, { time: 16600, gfp: 0.000142288, roff: 0.838271, ron: 0.000569274 }, { time: 16650, gfp: 0.000142288, roff: 0.838272, ron: 0.000569254 }, { time: 16700, gfp: 0.000142288, roff: 0.838272, ron: 0.000569235 }, { time: 16750, gfp: 0.000142288, roff: 0.838272, ron: 0.000569217 }, { time: 16800, gfp: 0.000142288, roff: 0.838272, ron: 0.0005692 }, { time: 16850, gfp: 0.000142288, roff: 0.838272, ron: 0.000569183 }, { time: 16900, gfp: 0.000142288, roff: 0.838272, ron: 0.000569167 }, { time: 16950, gfp: 0.000142288, roff: 0.838272, ron: 0.000569152 }, { time: 17000, gfp: 0.000142288, roff: 0.838272, ron: 0.000569138 }, { time: 17050, gfp: 0.000142288, roff: 0.838272, ron: 0.000569124 }, { time: 17100, gfp: 0.000142288, roff: 0.838272, ron: 0.000569111 }, { time: 17150, gfp: 0.000142288, roff: 0.838272, ron: 0.000569099 }, { time: 17200, gfp: 0.000142288, roff: 0.838272, ron: 0.000569087 }, { time: 17250, gfp: 0.000142288, roff: 0.838272, ron: 0.000569075 }, { time: 17300, gfp: 0.000142288, roff: 0.838272, ron: 0.000569064 }, { time: 17350, gfp: 0.000142288, roff: 0.838272, ron: 0.000569054 }, { time: 17400, gfp: 0.000142288, roff: 0.838272, ron: 0.000569044 }, { time: 17450, gfp: 0.000142288, roff: 0.838272, ron: 0.000569034 }, { time: 17500, gfp: 0.000142288, roff: 0.838272, ron: 0.000569025 }, { time: 17550, gfp: 0.000142288, roff: 0.838272, ron: 0.000569016 }, { time: 17600, gfp: 0.000142288, roff: 0.838272, ron: 0.000569008 }, { time: 17650, gfp: 0.000142288, roff: 0.838272, ron: 0.000569 }, { time: 17700, gfp: 0.000142288, roff: 0.838272, ron: 0.000568992 }, { time: 17750, gfp: 0.000142288, roff: 0.838272, ron: 0.000568985 }, { time: 17800, gfp: 0.000142288, roff: 0.838272, ron: 0.000568978 }, { time: 17850, gfp: 0.000142288, roff: 0.838272, ron: 0.000568971 }, { time: 17900, gfp: 0.000142288, roff: 0.838272, ron: 0.000568965 }, { time: 17950, gfp: 0.000142288, roff: 0.838272, ron: 0.000568959 }, { time: 18000, gfp: 0.000142288, roff: 0.838272, ron: 0.000568953 }, { time: 18050, gfp: 0.000142288, roff: 0.838272, ron: 0.000568948 }, { time: 18100, gfp: 0.000142288, roff: 0.838272, ron: 0.000568942 }, { time: 18150, gfp: 0.000142288, roff: 0.838272, ron: 0.000568937 }, { time: 18200, gfp: 0.000142288, roff: 0.838272, ron: 0.000568932 }, { time: 18250, gfp: 0.000142288, roff: 0.838272, ron: 0.000568928 }, { time: 18300, gfp: 0.000142288, roff: 0.838272, ron: 0.000568923 }, { time: 18350, gfp: 0.000142288, roff: 0.838272, ron: 0.000568919 }, { time: 18400, gfp: 0.000142288, roff: 0.838272, ron: 0.000568915 }, { time: 18450, gfp: 0.000142288, roff: 0.838272, ron: 0.000568911 }, { time: 18500, gfp: 0.000142288, roff: 0.838272, ron: 0.000568907 }, { time: 18550, gfp: 0.000142288, roff: 0.838272, ron: 0.000568904 }, { time: 18600, gfp: 0.000142288, roff: 0.838272, ron: 0.0005689 }, { time: 18650, gfp: 0.000142288, roff: 0.838272, ron: 0.000568897 }, { time: 18700, gfp: 0.000142288, roff: 0.838272, ron: 0.000568894 }, { time: 18750, gfp: 0.000142288, roff: 0.838272, ron: 0.000568891 }, { time: 18800, gfp: 0.000142288, roff: 0.838272, ron: 0.000568888 }, { time: 18850, gfp: 0.000142288, roff: 0.838272, ron: 0.000568886 }, { time: 18900, gfp: 0.000142288, roff: 0.838272, ron: 0.000568883 }, { time: 18950, gfp: 0.000142288, roff: 0.838272, ron: 0.000568881 }, { time: 19000, gfp: 0.000142288, roff: 0.838272, ron: 0.000568878 }, { time: 19050, gfp: 0.000142288, roff: 0.838272, ron: 0.000568876 }, { time: 19100, gfp: 0.000142288, roff: 0.838272, ron: 0.000568874 }, { time: 19150, gfp: 0.000142288, roff: 0.838272, ron: 0.000568872 }, { time: 19200, gfp: 0.000142288, roff: 0.838272, ron: 0.00056887 }, { time: 19250, gfp: 0.000142288, roff: 0.838272, ron: 0.000568868 }, { time: 19300, gfp: 0.000142288, roff: 0.838272, ron: 0.000568866 }, { time: 19350, gfp: 0.000142288, roff: 0.838272, ron: 0.000568864 }, { time: 19400, gfp: 0.000142288, roff: 0.838272, ron: 0.000568863 }, { time: 19450, gfp: 0.000142288, roff: 0.838272, ron: 0.000568861 }, { time: 19500, gfp: 0.000142288, roff: 0.838272, ron: 0.00056886 }, { time: 19550, gfp: 0.000142288, roff: 0.838272, ron: 0.000568858 }, { time: 19600, gfp: 0.000142288, roff: 0.838272, ron: 0.000568857 }, { time: 19650, gfp: 0.000142288, roff: 0.838272, ron: 0.000568856 }, { time: 19700, gfp: 0.000142288, roff: 0.838272, ron: 0.000568855 }, { time: 19750, gfp: 0.000142288, roff: 0.838272, ron: 0.000568853 }, { time: 19800, gfp: 0.000142288, roff: 0.838272, ron: 0.000568852 }, { time: 19850, gfp: 0.000142288, roff: 0.838272, ron: 0.000568851 }, { time: 19900, gfp: 0.000142288, roff: 0.838272, ron: 0.00056885 }, { time: 19950, gfp: 0.000142288, roff: 0.838272, ron: 0.000568849 }, { time: 20000, gfp: 0.000142288, roff: 0.838272, ron: 0.000568848 }, { time: 20050, gfp: 0.000142288, roff: 0.838272, ron: 0.000568847 }, { time: 20100, gfp: 0.000142288, roff: 0.838272, ron: 0.000568846 }, { time: 20150, gfp: 0.000142288, roff: 0.838272, ron: 0.000568846 }, { time: 20200, gfp: 0.000142288, roff: 0.838272, ron: 0.000568845 }, { time: 20250, gfp: 0.000142288, roff: 0.838272, ron: 0.000568844 }, { time: 20300, gfp: 0.000142288, roff: 0.838272, ron: 0.000568843 }, { time: 20350, gfp: 0.000142288, roff: 0.838272, ron: 0.000568843 }, { time: 20400, gfp: 0.000142288, roff: 0.838272, ron: 0.000568842 }, { time: 20450, gfp: 0.000142288, roff: 0.838272, ron: 0.000568841 }, { time: 20500, gfp: 0.000142288, roff: 0.838272, ron: 0.000568841 }, { time: 20550, gfp: 0.000142288, roff: 0.838272, ron: 0.00056884 }, { time: 20600, gfp: 0.000142288, roff: 0.838272, ron: 0.00056884 }, { time: 20650, gfp: 0.000142288, roff: 0.838272, ron: 0.000568839 }, { time: 20700, gfp: 0.000142288, roff: 0.838272, ron: 0.000568839 }, { time: 20750, gfp: 0.000142288, roff: 0.838272, ron: 0.000568838 }, { time: 20800, gfp: 0.000142288, roff: 0.838272, ron: 0.000568838 }, { time: 20850, gfp: 0.000142288, roff: 0.838272, ron: 0.000568837 }, { time: 20900, gfp: 0.000142288, roff: 0.838272, ron: 0.000568837 }, { time: 20950, gfp: 0.000142288, roff: 0.838272, ron: 0.000568836 }, { time: 21000, gfp: 0.000142288, roff: 0.838272, ron: 0.000568836 }, { time: 21050, gfp: 0.000142288, roff: 0.838272, ron: 0.000568836 }, { time: 21100, gfp: 0.000142288, roff: 0.838272, ron: 0.000568835 }, { time: 21150, gfp: 0.000142288, roff: 0.838272, ron: 0.000568835 }, { time: 21200, gfp: 0.000142288, roff: 0.838272, ron: 0.000568835 }, { time: 21250, gfp: 0.000142288, roff: 0.838272, ron: 0.000568834 }, { time: 21300, gfp: 0.000142288, roff: 0.838272, ron: 0.000568834 }, { time: 21350, gfp: 0.000142288, roff: 0.838272, ron: 0.000568834 }, { time: 21400, gfp: 0.000142288, roff: 0.838272, ron: 0.000568834 }, { time: 21450, gfp: 0.000142288, roff: 0.838272, ron: 0.000568833 }, { time: 21500, gfp: 0.000142288, roff: 0.838272, ron: 0.000568833 }, { time: 21550, gfp: 0.000142288, roff: 0.838272, ron: 0.000568833 }, { time: 21600, gfp: 0.000142288, roff: 0.838272, ron: 0.000568833 }, { time: 21650, gfp: 0.000142288, roff: 0.838272, ron: 0.000568832 }, { time: 21700, gfp: 0.000142288, roff: 0.838272, ron: 0.000568832 }, { time: 21750, gfp: 0.000142288, roff: 0.838272, ron: 0.000568832 }, { time: 21800, gfp: 0.000142288, roff: 0.838272, ron: 0.000568832 }, { time: 21850, gfp: 0.000142288, roff: 0.838272, ron: 0.000568832 }, { time: 21900, gfp: 0.000142288, roff: 0.838272, ron: 0.000568831 }, { time: 21950, gfp: 0.000142288, roff: 0.838272, ron: 0.000568831 }, { time: 22000, gfp: 0.000142288, roff: 0.838272, ron: 0.000568831 }, { time: 22050, gfp: 0.000142288, roff: 0.838272, ron: 0.000568831 }, { time: 22100, gfp: 0.000142288, roff: 0.838272, ron: 0.000568831 }, { time: 22150, gfp: 0.000142288, roff: 0.838272, ron: 0.000568831 }, { time: 22200, gfp: 0.000142288, roff: 0.838272, ron: 0.000568831 }, { time: 22250, gfp: 0.000142288, roff: 0.838272, ron: 0.00056883 }, { time: 22300, gfp: 0.000142288, roff: 0.838272, ron: 0.00056883 }, { time: 22350, gfp: 0.000142288, roff: 0.838272, ron: 0.00056883 }, { time: 22400, gfp: 0.000142288, roff: 0.838272, ron: 0.00056883 }, { time: 22450, gfp: 0.000142288, roff: 0.838272, ron: 0.00056883 }, { time: 22500, gfp: 0.000142288, roff: 0.838272, ron: 0.00056883 }, { time: 22550, gfp: 0.000142288, roff: 0.838272, ron: 0.00056883 }, { time: 22600, gfp: 0.000142288, roff: 0.838272, ron: 0.00056883 }, { time: 22650, gfp: 0.000142288, roff: 0.838272, ron: 0.00056883 }, { time: 22700, gfp: 0.000142288, roff: 0.838272, ron: 0.00056883 }, { time: 22750, gfp: 0.000142288, roff: 0.838272, ron: 0.00056883 }, { time: 22800, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 22850, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 22900, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 22950, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23000, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23050, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23100, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23150, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23200, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23250, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23300, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23350, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23400, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23450, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23500, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23550, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23600, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23650, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23700, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23750, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23800, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23850, gfp: 0.000142288, roff: 0.838272, ron: 0.000568829 }, { time: 23900, gfp: 0.000142288, roff: 0.838272, ron: 0.000568828 }
]; var sitemap = {
: 'home', 'Overview_Project': 'quorus', 'Description': 'quorus', 'Design': 'quorus', 'Experiments': 'quorus', 'Notebook': 'quorus', 'InterLab': 'quorus', 'Model': 'quorus', 'Results': 'quorus', 'Demonstrate': 'quorus', 'Improve': 'quorus',
'Parts': 'quorus', 'Basic_Part': 'quorus', 'Composite_Part': 'quorus', 'Part_Collection': 'quorus',
'Safety': 'quorus',
'Overview_HP': 'hp', 'Human_Practices': 'hp', 'Public_Engagement': 'hp',
'Team': 'team', 'Collaborations': 'team', 'Attributions': 'team',
'Applied_Design': 'competition', 'Entrepreneurship': 'competition', 'Hardware': 'competition', 'Measurement': 'competition', 'Model': 'competition', 'Software': 'competition'
} $(document).ready(function() {
var curnavitem = window.location.href; if(curnavitem.match(/igem\.org/i)) { // We know we're live curnavitem = curnavitem.replace(/(http:\/\/)?\d{4}\.igem\.org\.Team:\w+\/?/i, ); } else { curnavitem = curnavitem.replace(/(http:\/\/)?localhost:\d+\/?/, ); curnavitem = curnavitem.replace(/\.html/i, ); } console.log(curnavitem); $('.' + sitemap[curnavitem]).addClass('current');
}) // Code courtesy of Mohamed Hasan // https://codepen.io/Mhmdhasan/pen/mAdaQE
$(document).ready(function () {
'use strict'; var c, currentScrollTop = 0, navbar = $('header');
$(window).scroll(function () { var a = $(window).scrollTop(); var b = navbar.height(); currentScrollTop = a; if (c < currentScrollTop && a > b + b) { navbar.addClass("scrollUp"); } else if (c > currentScrollTop && !(a <= b)) { navbar.removeClass("scrollUp"); } c = currentScrollTop; });
}); //Code courtesy of https://codepen.io/kruxor/pen/CwpFq
$(window).scroll(function() {
if ($(this).scrollTop() > 50 ) { $('.scrolltop:hidden').stop(true, true).fadeIn(); } else { $('.scrolltop').stop(true, true).fadeOut(); }
}); $(function(){$(".scroll").click(function(){$("html,body").animate({scrollTop:$("#top").offset().top},"1000");return false})}); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwb3BwZXIubWluLmpzIiwiYm9vdHN0cmFwLm1pbi5qcyIsImQzLm1pbi5qcyIsImVra28tbGlnaHRib3guanMiLCJmb290ZXItaGVhZGVyLXRlbXBsYXRlLmpzIiwiaW1hZ2UtZ2FsbGVyeS5qcyIsImluZGV4LmpzIiwibGFuZGluZy5qcyIsIm1vZGVsLmpzIiwibmF2bGluZS5qcyIsInNjcm9sbHNlbnNpdGl2ZS5qcyIsInNtb290aHNjcm9sbGJhci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNOQTtBQUNBO0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDNXBCQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNoSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUM5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUMvalBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQy9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJ3aWtpLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuIENvcHlyaWdodCAoQykgRmVkZXJpY28gWml2b2xvIDIwMThcclxuIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBNSVQgTGljZW5zZSAobGljZW5zZSB0ZXJtcyBhcmUgYXQgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkuXHJcbiAqLyhmdW5jdGlvbihlLHQpeydvYmplY3QnPT10eXBlb2YgZXhwb3J0cyYmJ3VuZGVmaW5lZCchPXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9dCgpOidmdW5jdGlvbic9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKHQpOmUuUG9wcGVyPXQoKX0pKHRoaXMsZnVuY3Rpb24oKXsndXNlIHN0cmljdCc7ZnVuY3Rpb24gZShlKXtyZXR1cm4gZSYmJ1tvYmplY3QgRnVuY3Rpb25dJz09PXt9LnRvU3RyaW5nLmNhbGwoZSl9ZnVuY3Rpb24gdChlLHQpe2lmKDEhPT1lLm5vZGVUeXBlKXJldHVybltdO3ZhciBvPWdldENvbXB1dGVkU3R5bGUoZSxudWxsKTtyZXR1cm4gdD9vW3RdOm99ZnVuY3Rpb24gbyhlKXtyZXR1cm4nSFRNTCc9PT1lLm5vZGVOYW1lP2U6ZS5wYXJlbnROb2RlfHxlLmhvc3R9ZnVuY3Rpb24gbihlKXtpZighZSlyZXR1cm4gZG9jdW1lbnQuYm9keTtzd2l0Y2goZS5ub2RlTmFtZSl7Y2FzZSdIVE1MJzpjYXNlJ0JPRFknOnJldHVybiBlLm93bmVyRG9jdW1lbnQuYm9keTtjYXNlJyNkb2N1bWVudCc6cmV0dXJuIGUuYm9keTt9dmFyIGk9dChlKSxyPWkub3ZlcmZsb3cscD1pLm92ZXJmbG93WCxzPWkub3ZlcmZsb3dZO3JldHVybiAvKGF1dG98c2Nyb2xsfG92ZXJsYXkpLy50ZXN0KHIrcytwKT9lOm4obyhlKSl9ZnVuY3Rpb24gcihlKXtyZXR1cm4gMTE9PT1lP3JlOjEwPT09ZT9wZTpyZXx8cGV9ZnVuY3Rpb24gcChlKXtpZighZSlyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2Zvcih2YXIgbz1yKDEwKT9kb2N1bWVudC5ib2R5Om51bGwsbj1lLm9mZnNldFBhcmVudDtuPT09byYmZS5uZXh0RWxlbWVudFNpYmxpbmc7KW49KGU9ZS5uZXh0RWxlbWVudFNpYmxpbmcpLm9mZnNldFBhcmVudDt2YXIgaT1uJiZuLm5vZGVOYW1lO3JldHVybiBpJiYnQk9EWSchPT1pJiYnSFRNTCchPT1pPy0xIT09WydURCcsJ1RBQkxFJ10uaW5kZXhPZihuLm5vZGVOYW1lKSYmJ3N0YXRpYyc9PT10KG4sJ3Bvc2l0aW9uJyk/cChuKTpuOmU/ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudDpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR9ZnVuY3Rpb24gcyhlKXt2YXIgdD1lLm5vZGVOYW1lO3JldHVybidCT0RZJyE9PXQmJignSFRNTCc9PT10fHxwKGUuZmlyc3RFbGVtZW50Q2hpbGQpPT09ZSl9ZnVuY3Rpb24gZChlKXtyZXR1cm4gbnVsbD09PWUucGFyZW50Tm9kZT9lOmQoZS5wYXJlbnROb2RlKX1mdW5jdGlvbiBhKGUsdCl7aWYoIWV8fCFlLm5vZGVUeXBlfHwhdHx8IXQubm9kZVR5cGUpcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDt2YXIgbz1lLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HLG49bz9lOnQsaT1vP3Q6ZSxyPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7ci5zZXRTdGFydChuLDApLHIuc2V0RW5kKGksMCk7dmFyIGw9ci5jb21tb25BbmNlc3RvckNvbnRhaW5lcjtpZihlIT09bCYmdCE9PWx8fG4uY29udGFpbnMoaSkpcmV0dXJuIHMobCk/bDpwKGwpO3ZhciBmPWQoZSk7cmV0dXJuIGYuaG9zdD9hKGYuaG9zdCx0KTphKGUsZCh0KS5ob3N0KX1mdW5jdGlvbiBsKGUpe3ZhciB0PTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTondG9wJyxvPSd0b3AnPT09dD8nc2Nyb2xsVG9wJzonc2Nyb2xsTGVmdCcsbj1lLm5vZGVOYW1lO2lmKCdCT0RZJz09PW58fCdIVE1MJz09PW4pe3ZhciBpPWUub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQscj1lLm93bmVyRG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudHx8aTtyZXR1cm4gcltvXX1yZXR1cm4gZVtvXX1mdW5jdGlvbiBmKGUsdCl7dmFyIG89Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxuPWwodCwndG9wJyksaT1sKHQsJ2xlZnQnKSxyPW8/LTE6MTtyZXR1cm4gZS50b3ArPW4qcixlLmJvdHRvbSs9bipyLGUubGVmdCs9aSpyLGUucmlnaHQrPWkqcixlfWZ1bmN0aW9uIG0oZSx0KXt2YXIgbz0neCc9PT10PydMZWZ0JzonVG9wJyxuPSdMZWZ0Jz09bz8nUmlnaHQnOidCb3R0b20nO3JldHVybiBwYXJzZUZsb2F0KGVbJ2JvcmRlcicrbysnV2lkdGgnXSwxMCkrcGFyc2VGbG9hdChlWydib3JkZXInK24rJ1dpZHRoJ10sMTApfWZ1bmN0aW9uIGgoZSx0LG8sbil7cmV0dXJuIEoodFsnb2Zmc2V0JytlXSx0WydzY3JvbGwnK2VdLG9bJ2NsaWVudCcrZV0sb1snb2Zmc2V0JytlXSxvWydzY3JvbGwnK2VdLHIoMTApP3BhcnNlSW50KG9bJ29mZnNldCcrZV0pK3BhcnNlSW50KG5bJ21hcmdpbicrKCdIZWlnaHQnPT09ZT8nVG9wJzonTGVmdCcpXSkrcGFyc2VJbnQoblsnbWFyZ2luJysoJ0hlaWdodCc9PT1lPydCb3R0b20nOidSaWdodCcpXSk6MCl9ZnVuY3Rpb24gYyhlKXt2YXIgdD1lLmJvZHksbz1lLmRvY3VtZW50RWxlbWVudCxuPXIoMTApJiZnZXRDb21wdXRlZFN0eWxlKG8pO3JldHVybntoZWlnaHQ6aCgnSGVpZ2h0Jyx0LG8sbiksd2lkdGg6aCgnV2lkdGgnLHQsbyxuKX19ZnVuY3Rpb24gZyhlKXtyZXR1cm4gbGUoe30sZSx7cmlnaHQ6ZS5sZWZ0K2Uud2lkdGgsYm90dG9tOmUudG9wK2UuaGVpZ2h0fSl9ZnVuY3Rpb24gdShlKXt2YXIgbz17fTt0cnl7aWYocigxMCkpe289ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgbj1sKGUsJ3RvcCcpLGk9bChlLCdsZWZ0Jyk7by50b3ArPW4sby5sZWZ0Kz1pLG8uYm90dG9tKz1uLG8ucmlnaHQrPWl9ZWxzZSBvPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9Y2F0Y2godCl7fXZhciBwPXtsZWZ0Om8ubGVmdCx0b3A6by50b3Asd2lkdGg6by5yaWdodC1vLmxlZnQsaGVpZ2h0Om8uYm90dG9tLW8udG9wfSxzPSdIVE1MJz09PWUubm9kZU5hbWU/YyhlLm93bmVyRG9jdW1lbnQpOnt9LGQ9cy53aWR0aHx8ZS5jbGllbnRXaWR0aHx8cC5yaWdodC1wLmxlZnQsYT1zLmhlaWdodHx8ZS5jbGllbnRIZWlnaHR8fHAuYm90dG9tLXAudG9wLGY9ZS5vZmZzZXRXaWR0aC1kLGg9ZS5vZmZzZXRIZWlnaHQtYTtpZihmfHxoKXt2YXIgdT10KGUpO2YtPW0odSwneCcpLGgtPW0odSwneScpLHAud2lkdGgtPWYscC5oZWlnaHQtPWh9cmV0dXJuIGcocCl9ZnVuY3Rpb24gYihlLG8pe3ZhciBpPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0scD1yKDEwKSxzPSdIVE1MJz09PW8ubm9kZU5hbWUsZD11KGUpLGE9dShvKSxsPW4oZSksbT10KG8pLGg9cGFyc2VGbG9hdChtLmJvcmRlclRvcFdpZHRoLDEwKSxjPXBhcnNlRmxvYXQobS5ib3JkZXJMZWZ0V2lkdGgsMTApO2kmJnMmJihhLnRvcD1KKGEudG9wLDApLGEubGVmdD1KKGEubGVmdCwwKSk7dmFyIGI9Zyh7dG9wOmQudG9wLWEudG9wLWgsbGVmdDpkLmxlZnQtYS5sZWZ0LWMsd2lkdGg6ZC53aWR0aCxoZWlnaHQ6ZC5oZWlnaHR9KTtpZihiLm1hcmdpblRvcD0wLGIubWFyZ2luTGVmdD0wLCFwJiZzKXt2YXIgeT1wYXJzZUZsb2F0KG0ubWFyZ2luVG9wLDEwKSx3PXBhcnNlRmxvYXQobS5tYXJnaW5MZWZ0LDEwKTtiLnRvcC09aC15LGIuYm90dG9tLT1oLXksYi5sZWZ0LT1jLXcsYi5yaWdodC09Yy13LGIubWFyZ2luVG9wPXksYi5tYXJnaW5MZWZ0PXd9cmV0dXJuKHAmJiFpP28uY29udGFpbnMobCk6bz09PWwmJidCT0RZJyE9PWwubm9kZU5hbWUpJiYoYj1mKGIsbykpLGJ9ZnVuY3Rpb24geShlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLG89ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxuPWIoZSxvKSxpPUooby5jbGllbnRXaWR0aCx3aW5kb3cuaW5uZXJXaWR0aHx8MCkscj1KKG8uY2xpZW50SGVpZ2h0LHdpbmRvdy5pbm5lckhlaWdodHx8MCkscD10PzA6bChvKSxzPXQ/MDpsKG8sJ2xlZnQnKSxkPXt0b3A6cC1uLnRvcCtuLm1hcmdpblRvcCxsZWZ0OnMtbi5sZWZ0K24ubWFyZ2luTGVmdCx3aWR0aDppLGhlaWdodDpyfTtyZXR1cm4gZyhkKX1mdW5jdGlvbiB3KGUpe3ZhciBuPWUubm9kZU5hbWU7cmV0dXJuJ0JPRFknPT09bnx8J0hUTUwnPT09bj8hMTonZml4ZWQnPT09dChlLCdwb3NpdGlvbicpfHx3KG8oZSkpfWZ1bmN0aW9uIEUoZSl7aWYoIWV8fCFlLnBhcmVudEVsZW1lbnR8fHIoKSlyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2Zvcih2YXIgbz1lLnBhcmVudEVsZW1lbnQ7byYmJ25vbmUnPT09dChvLCd0cmFuc2Zvcm0nKTspbz1vLnBhcmVudEVsZW1lbnQ7cmV0dXJuIG98fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudH1mdW5jdGlvbiB2KGUsdCxpLHIpe3ZhciBwPTQ8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzRdJiZhcmd1bWVudHNbNF0scz17dG9wOjAsbGVmdDowfSxkPXA/RShlKTphKGUsdCk7aWYoJ3ZpZXdwb3J0Jz09PXIpcz15KGQscCk7ZWxzZXt2YXIgbDsnc2Nyb2xsUGFyZW50Jz09PXI/KGw9bihvKHQpKSwnQk9EWSc9PT1sLm5vZGVOYW1lJiYobD1lLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSk6J3dpbmRvdyc9PT1yP2w9ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudDpsPXI7dmFyIGY9YihsLGQscCk7aWYoJ0hUTUwnPT09bC5ub2RlTmFtZSYmIXcoZCkpe3ZhciBtPWMoZS5vd25lckRvY3VtZW50KSxoPW0uaGVpZ2h0LGc9bS53aWR0aDtzLnRvcCs9Zi50b3AtZi5tYXJnaW5Ub3Ascy5ib3R0b209aCtmLnRvcCxzLmxlZnQrPWYubGVmdC1mLm1hcmdpbkxlZnQscy5yaWdodD1nK2YubGVmdH1lbHNlIHM9Zn1pPWl8fDA7dmFyIHU9J251bWJlcic9PXR5cGVvZiBpO3JldHVybiBzLmxlZnQrPXU/aTppLmxlZnR8fDAscy50b3ArPXU/aTppLnRvcHx8MCxzLnJpZ2h0LT11P2k6aS5yaWdodHx8MCxzLmJvdHRvbS09dT9pOmkuYm90dG9tfHwwLHN9ZnVuY3Rpb24geChlKXt2YXIgdD1lLndpZHRoLG89ZS5oZWlnaHQ7cmV0dXJuIHQqb31mdW5jdGlvbiBPKGUsdCxvLG4saSl7dmFyIHI9NTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbNV0/YXJndW1lbnRzWzVdOjA7aWYoLTE9PT1lLmluZGV4T2YoJ2F1dG8nKSlyZXR1cm4gZTt2YXIgcD12KG8sbixyLGkpLHM9e3RvcDp7d2lkdGg6cC53aWR0aCxoZWlnaHQ6dC50b3AtcC50b3B9LHJpZ2h0Ont3aWR0aDpwLnJpZ2h0LXQucmlnaHQsaGVpZ2h0OnAuaGVpZ2h0fSxib3R0b206e3dpZHRoOnAud2lkdGgsaGVpZ2h0OnAuYm90dG9tLXQuYm90dG9tfSxsZWZ0Ont3aWR0aDp0LmxlZnQtcC5sZWZ0LGhlaWdodDpwLmhlaWdodH19LGQ9T2JqZWN0LmtleXMocykubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBsZSh7a2V5OmV9LHNbZV0se2FyZWE6eChzW2VdKX0pfSkuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiB0LmFyZWEtZS5hcmVhfSksYT1kLmZpbHRlcihmdW5jdGlvbihlKXt2YXIgdD1lLndpZHRoLG49ZS5oZWlnaHQ7cmV0dXJuIHQ+PW8uY2xpZW50V2lkdGgmJm4+PW8uY2xpZW50SGVpZ2h0fSksbD0wPGEubGVuZ3RoP2FbMF0ua2V5OmRbMF0ua2V5LGY9ZS5zcGxpdCgnLScpWzFdO3JldHVybiBsKyhmPyctJytmOicnKX1mdW5jdGlvbiBMKGUsdCxvKXt2YXIgbj0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbCxpPW4/RSh0KTphKHQsbyk7cmV0dXJuIGIobyxpLG4pfWZ1bmN0aW9uIFMoZSl7dmFyIHQ9Z2V0Q29tcHV0ZWRTdHlsZShlKSxvPXBhcnNlRmxvYXQodC5tYXJnaW5Ub3ApK3BhcnNlRmxvYXQodC5tYXJnaW5Cb3R0b20pLG49cGFyc2VGbG9hdCh0Lm1hcmdpbkxlZnQpK3BhcnNlRmxvYXQodC5tYXJnaW5SaWdodCksaT17d2lkdGg6ZS5vZmZzZXRXaWR0aCtuLGhlaWdodDplLm9mZnNldEhlaWdodCtvfTtyZXR1cm4gaX1mdW5jdGlvbiBUKGUpe3ZhciB0PXtsZWZ0OidyaWdodCcscmlnaHQ6J2xlZnQnLGJvdHRvbTondG9wJyx0b3A6J2JvdHRvbSd9O3JldHVybiBlLnJlcGxhY2UoL2xlZnR8cmlnaHR8Ym90dG9tfHRvcC9nLGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSl9ZnVuY3Rpb24gRChlLHQsbyl7bz1vLnNwbGl0KCctJylbMF07dmFyIG49UyhlKSxpPXt3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodH0scj0tMSE9PVsncmlnaHQnLCdsZWZ0J10uaW5kZXhPZihvKSxwPXI/J3RvcCc6J2xlZnQnLHM9cj8nbGVmdCc6J3RvcCcsZD1yPydoZWlnaHQnOid3aWR0aCcsYT1yPyd3aWR0aCc6J2hlaWdodCc7cmV0dXJuIGlbcF09dFtwXSt0W2RdLzItbltkXS8yLGlbc109bz09PXM/dFtzXS1uW2FdOnRbVChzKV0saX1mdW5jdGlvbiBDKGUsdCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5maW5kP2UuZmluZCh0KTplLmZpbHRlcih0KVswXX1mdW5jdGlvbiBOKGUsdCxvKXtpZihBcnJheS5wcm90b3R5cGUuZmluZEluZGV4KXJldHVybiBlLmZpbmRJbmRleChmdW5jdGlvbihlKXtyZXR1cm4gZVt0XT09PW99KTt2YXIgbj1DKGUsZnVuY3Rpb24oZSl7cmV0dXJuIGVbdF09PT1vfSk7cmV0dXJuIGUuaW5kZXhPZihuKX1mdW5jdGlvbiBQKHQsbyxuKXt2YXIgaT12b2lkIDA9PT1uP3Q6dC5zbGljZSgwLE4odCwnbmFtZScsbikpO3JldHVybiBpLmZvckVhY2goZnVuY3Rpb24odCl7dFsnZnVuY3Rpb24nXSYmY29uc29sZS53YXJuKCdgbW9kaWZpZXIuZnVuY3Rpb25gIGlzIGRlcHJlY2F0ZWQsIHVzZSBgbW9kaWZpZXIuZm5gIScpO3ZhciBuPXRbJ2Z1bmN0aW9uJ118fHQuZm47dC5lbmFibGVkJiZlKG4pJiYoby5vZmZzZXRzLnBvcHBlcj1nKG8ub2Zmc2V0cy5wb3BwZXIpLG8ub2Zmc2V0cy5yZWZlcmVuY2U9ZyhvLm9mZnNldHMucmVmZXJlbmNlKSxvPW4obyx0KSl9KSxvfWZ1bmN0aW9uIGsoKXtpZighdGhpcy5zdGF0ZS5pc0Rlc3Ryb3llZCl7dmFyIGU9e2luc3RhbmNlOnRoaXMsc3R5bGVzOnt9LGFycm93U3R5bGVzOnt9LGF0dHJpYnV0ZXM6e30sZmxpcHBlZDohMSxvZmZzZXRzOnt9fTtlLm9mZnNldHMucmVmZXJlbmNlPUwodGhpcy5zdGF0ZSx0aGlzLnBvcHBlcix0aGlzLnJlZmVyZW5jZSx0aGlzLm9wdGlvbnMucG9zaXRpb25GaXhlZCksZS5wbGFjZW1lbnQ9Tyh0aGlzLm9wdGlvbnMucGxhY2VtZW50LGUub2Zmc2V0cy5yZWZlcmVuY2UsdGhpcy5wb3BwZXIsdGhpcy5yZWZlcmVuY2UsdGhpcy5vcHRpb25zLm1vZGlmaWVycy5mbGlwLmJvdW5kYXJpZXNFbGVtZW50LHRoaXMub3B0aW9ucy5tb2RpZmllcnMuZmxpcC5wYWRkaW5nKSxlLm9yaWdpbmFsUGxhY2VtZW50PWUucGxhY2VtZW50LGUucG9zaXRpb25GaXhlZD10aGlzLm9wdGlvbnMucG9zaXRpb25GaXhlZCxlLm9mZnNldHMucG9wcGVyPUQodGhpcy5wb3BwZXIsZS5vZmZzZXRzLnJlZmVyZW5jZSxlLnBsYWNlbWVudCksZS5vZmZzZXRzLnBvcHBlci5wb3NpdGlvbj10aGlzLm9wdGlvbnMucG9zaXRpb25GaXhlZD8nZml4ZWQnOidhYnNvbHV0ZScsZT1QKHRoaXMubW9kaWZpZXJzLGUpLHRoaXMuc3RhdGUuaXNDcmVhdGVkP3RoaXMub3B0aW9ucy5vblVwZGF0ZShlKToodGhpcy5zdGF0ZS5pc0NyZWF0ZWQ9ITAsdGhpcy5vcHRpb25zLm9uQ3JlYXRlKGUpKX19ZnVuY3Rpb24gVyhlLHQpe3JldHVybiBlLnNvbWUoZnVuY3Rpb24oZSl7dmFyIG89ZS5uYW1lLG49ZS5lbmFibGVkO3JldHVybiBuJiZvPT09dH0pfWZ1bmN0aW9uIEgoZSl7Zm9yKHZhciB0PVshMSwnbXMnLCdXZWJraXQnLCdNb3onLCdPJ10sbz1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLHI9aT8nJytpK286ZTtpZigndW5kZWZpbmVkJyE9dHlwZW9mIGRvY3VtZW50LmJvZHkuc3R5bGVbcl0pcmV0dXJuIHJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQigpe3JldHVybiB0aGlzLnN0YXRlLmlzRGVzdHJveWVkPSEwLFcodGhpcy5tb2RpZmllcnMsJ2FwcGx5U3R5bGUnKSYmKHRoaXMucG9wcGVyLnJlbW92ZUF0dHJpYnV0ZSgneC1wbGFjZW1lbnQnKSx0aGlzLnBvcHBlci5zdHlsZS5wb3NpdGlvbj0nJyx0aGlzLnBvcHBlci5zdHlsZS50b3A9JycsdGhpcy5wb3BwZXIuc3R5bGUubGVmdD0nJyx0aGlzLnBvcHBlci5zdHlsZS5yaWdodD0nJyx0aGlzLnBvcHBlci5zdHlsZS5ib3R0b209JycsdGhpcy5wb3BwZXIuc3R5bGUud2lsbENoYW5nZT0nJyx0aGlzLnBvcHBlci5zdHlsZVtIKCd0cmFuc2Zvcm0nKV09JycpLHRoaXMuZGlzYWJsZUV2ZW50TGlzdGVuZXJzKCksdGhpcy5vcHRpb25zLnJlbW92ZU9uRGVzdHJveSYmdGhpcy5wb3BwZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnBvcHBlciksdGhpc31mdW5jdGlvbiBBKGUpe3ZhciB0PWUub3duZXJEb2N1bWVudDtyZXR1cm4gdD90LmRlZmF1bHRWaWV3OndpbmRvd31mdW5jdGlvbiBNKGUsdCxvLGkpe3ZhciByPSdCT0RZJz09PWUubm9kZU5hbWUscD1yP2Uub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldzplO3AuYWRkRXZlbnRMaXN0ZW5lcih0LG8se3Bhc3NpdmU6ITB9KSxyfHxNKG4ocC5wYXJlbnROb2RlKSx0LG8saSksaS5wdXNoKHApfWZ1bmN0aW9uIEYoZSx0LG8saSl7by51cGRhdGVCb3VuZD1pLEEoZSkuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJyxvLnVwZGF0ZUJvdW5kLHtwYXNzaXZlOiEwfSk7dmFyIHI9bihlKTtyZXR1cm4gTShyLCdzY3JvbGwnLG8udXBkYXRlQm91bmQsby5zY3JvbGxQYXJlbnRzKSxvLnNjcm9sbEVsZW1lbnQ9cixvLmV2ZW50c0VuYWJsZWQ9ITAsb31mdW5jdGlvbiBJKCl7dGhpcy5zdGF0ZS5ldmVudHNFbmFibGVkfHwodGhpcy5zdGF0ZT1GKHRoaXMucmVmZXJlbmNlLHRoaXMub3B0aW9ucyx0aGlzLnN0YXRlLHRoaXMuc2NoZWR1bGVVcGRhdGUpKX1mdW5jdGlvbiBSKGUsdCl7cmV0dXJuIEEoZSkucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJyx0LnVwZGF0ZUJvdW5kKSx0LnNjcm9sbFBhcmVudHMuZm9yRWFjaChmdW5jdGlvbihlKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsdC51cGRhdGVCb3VuZCl9KSx0LnVwZGF0ZUJvdW5kPW51bGwsdC5zY3JvbGxQYXJlbnRzPVtdLHQuc2Nyb2xsRWxlbWVudD1udWxsLHQuZXZlbnRzRW5hYmxlZD0hMSx0fWZ1bmN0aW9uIFUoKXt0aGlzLnN0YXRlLmV2ZW50c0VuYWJsZWQmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnNjaGVkdWxlVXBkYXRlKSx0aGlzLnN0YXRlPVIodGhpcy5yZWZlcmVuY2UsdGhpcy5zdGF0ZSkpfWZ1bmN0aW9uIFkoZSl7cmV0dXJuJychPT1lJiYhaXNOYU4ocGFyc2VGbG9hdChlKSkmJmlzRmluaXRlKGUpfWZ1bmN0aW9uIGooZSx0KXtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBuPScnOy0xIT09Wyd3aWR0aCcsJ2hlaWdodCcsJ3RvcCcsJ3JpZ2h0JywnYm90dG9tJywnbGVmdCddLmluZGV4T2YobykmJlkodFtvXSkmJihuPSdweCcpLGUuc3R5bGVbb109dFtvXStufSl9ZnVuY3Rpb24gSyhlLHQpe09iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24obyl7dmFyIG49dFtvXTshMT09PW4/ZS5yZW1vdmVBdHRyaWJ1dGUobyk6ZS5zZXRBdHRyaWJ1dGUobyx0W29dKX0pfWZ1bmN0aW9uIHEoZSx0LG8pe3ZhciBuPUMoZSxmdW5jdGlvbihlKXt2YXIgbz1lLm5hbWU7cmV0dXJuIG89PT10fSksaT0hIW4mJmUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lPT09byYmZS5lbmFibGVkJiZlLm9yZGVyPG4ub3JkZXJ9KTtpZighaSl7dmFyIHI9J2AnK3QrJ2AnO2NvbnNvbGUud2FybignYCcrbysnYCcrJyBtb2RpZmllciBpcyByZXF1aXJlZCBieSAnK3IrJyBtb2RpZmllciBpbiBvcmRlciB0byB3b3JrLCBiZSBzdXJlIHRvIGluY2x1ZGUgaXQgYmVmb3JlICcrcisnIScpfXJldHVybiBpfWZ1bmN0aW9uIEcoZSl7cmV0dXJuJ2VuZCc9PT1lPydzdGFydCc6J3N0YXJ0Jz09PWU/J2VuZCc6ZX1mdW5jdGlvbiBWKGUpe3ZhciB0PTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sbz1tZS5pbmRleE9mKGUpLG49bWUuc2xpY2UobysxKS5jb25jYXQobWUuc2xpY2UoMCxvKSk7cmV0dXJuIHQ/bi5yZXZlcnNlKCk6bn1mdW5jdGlvbiB6KGUsdCxvLG4pe3ZhciBpPWUubWF0Y2goLygoPzpcXC18XFwrKT9cXGQqXFwuP1xcZCopKC4qKS8pLHI9K2lbMV0scD1pWzJdO2lmKCFyKXJldHVybiBlO2lmKDA9PT1wLmluZGV4T2YoJyUnKSl7dmFyIHM7c3dpdGNoKHApe2Nhc2UnJXAnOnM9bzticmVhaztjYXNlJyUnOmNhc2UnJXInOmRlZmF1bHQ6cz1uO312YXIgZD1nKHMpO3JldHVybiBkW3RdLzEwMCpyfWlmKCd2aCc9PT1wfHwndncnPT09cCl7dmFyIGE7cmV0dXJuIGE9J3ZoJz09PXA/Sihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LHdpbmRvdy5pbm5lckhlaWdodHx8MCk6Sihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsd2luZG93LmlubmVyV2lkdGh8fDApLGEvMTAwKnJ9cmV0dXJuIHJ9ZnVuY3Rpb24gXyhlLHQsbyxuKXt2YXIgaT1bMCwwXSxyPS0xIT09WydyaWdodCcsJ2xlZnQnXS5pbmRleE9mKG4pLHA9ZS5zcGxpdCgvKFxcK3xcXC0pLykubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRyaW0oKX0pLHM9cC5pbmRleE9mKEMocCxmdW5jdGlvbihlKXtyZXR1cm4tMSE9PWUuc2VhcmNoKC8sfFxccy8pfSkpO3Bbc10mJi0xPT09cFtzXS5pbmRleE9mKCcsJykmJmNvbnNvbGUud2FybignT2Zmc2V0cyBzZXBhcmF0ZWQgYnkgd2hpdGUgc3BhY2UocykgYXJlIGRlcHJlY2F0ZWQsIHVzZSBhIGNvbW1hICgsKSBpbnN0ZWFkLicpO3ZhciBkPS9cXHMqLFxccyp8XFxzKy8sYT0tMT09PXM/W3BdOltwLnNsaWNlKDAscykuY29uY2F0KFtwW3NdLnNwbGl0KGQpWzBdXSksW3Bbc10uc3BsaXQoZClbMV1dLmNvbmNhdChwLnNsaWNlKHMrMSkpXTtyZXR1cm4gYT1hLm1hcChmdW5jdGlvbihlLG4pe3ZhciBpPSgxPT09bj8hcjpyKT8naGVpZ2h0Jzond2lkdGgnLHA9ITE7cmV0dXJuIGUucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuJyc9PT1lW2UubGVuZ3RoLTFdJiYtMSE9PVsnKycsJy0nXS5pbmRleE9mKHQpPyhlW2UubGVuZ3RoLTFdPXQscD0hMCxlKTpwPyhlW2UubGVuZ3RoLTFdKz10LHA9ITEsZSk6ZS5jb25jYXQodCl9LFtdKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHooZSxpLHQsbyl9KX0pLGEuZm9yRWFjaChmdW5jdGlvbihlLHQpe2UuZm9yRWFjaChmdW5jdGlvbihvLG4pe1kobykmJihpW3RdKz1vKignLSc9PT1lW24tMV0/LTE6MSkpfSl9KSxpfWZ1bmN0aW9uIFgoZSx0KXt2YXIgbyxuPXQub2Zmc2V0LGk9ZS5wbGFjZW1lbnQscj1lLm9mZnNldHMscD1yLnBvcHBlcixzPXIucmVmZXJlbmNlLGQ9aS5zcGxpdCgnLScpWzBdO3JldHVybiBvPVkoK24pP1srbiwwXTpfKG4scCxzLGQpLCdsZWZ0Jz09PWQ/KHAudG9wKz1vWzBdLHAubGVmdC09b1sxXSk6J3JpZ2h0Jz09PWQ/KHAudG9wKz1vWzBdLHAubGVmdCs9b1sxXSk6J3RvcCc9PT1kPyhwLmxlZnQrPW9bMF0scC50b3AtPW9bMV0pOidib3R0b20nPT09ZCYmKHAubGVmdCs9b1swXSxwLnRvcCs9b1sxXSksZS5wb3BwZXI9cCxlfWZvcih2YXIgUT1NYXRoLm1pbixaPU1hdGgucm91bmQsJD1NYXRoLmZsb29yLEo9TWF0aC5tYXgsZWU9J3VuZGVmaW5lZCchPXR5cGVvZiB3aW5kb3cmJid1bmRlZmluZWQnIT10eXBlb2YgZG9jdW1lbnQsdGU9WydFZGdlJywnVHJpZGVudCcsJ0ZpcmVmb3gnXSxvZT0wLG5lPTA7bmU8dGUubGVuZ3RoO25lKz0xKWlmKGVlJiYwPD1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YodGVbbmVdKSl7b2U9MTticmVha312YXIgaT1lZSYmd2luZG93LlByb21pc2UsaWU9aT9mdW5jdGlvbihlKXt2YXIgdD0hMTtyZXR1cm4gZnVuY3Rpb24oKXt0fHwodD0hMCx3aW5kb3cuUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3Q9ITEsZSgpfSkpfX06ZnVuY3Rpb24oZSl7dmFyIHQ9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7dHx8KHQ9ITAsc2V0VGltZW91dChmdW5jdGlvbigpe3Q9ITEsZSgpfSxvZSkpfX0scmU9ZWUmJiEhKHdpbmRvdy5NU0lucHV0TWV0aG9kQ29udGV4dCYmZG9jdW1lbnQuZG9jdW1lbnRNb2RlKSxwZT1lZSYmL01TSUUgMTAvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksc2U9ZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKX0sZGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7Zm9yKHZhciBvLG49MDtuPHQubGVuZ3RoO24rKylvPXRbbl0sby5lbnVtZXJhYmxlPW8uZW51bWVyYWJsZXx8ITEsby5jb25maWd1cmFibGU9ITAsJ3ZhbHVlJ2luIG8mJihvLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxvLmtleSxvKX1yZXR1cm4gZnVuY3Rpb24odCxvLG4pe3JldHVybiBvJiZlKHQucHJvdG90eXBlLG8pLG4mJmUodCxuKSx0fX0oKSxhZT1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpvLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1vLGV9LGxlPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxvPTE7bzxhcmd1bWVudHMubGVuZ3RoO28rKylmb3IodmFyIG4gaW4gdD1hcmd1bWVudHNbb10sdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxuKSYmKGVbbl09dFtuXSk7cmV0dXJuIGV9LGZlPVsnYXV0by1zdGFydCcsJ2F1dG8nLCdhdXRvLWVuZCcsJ3RvcC1zdGFydCcsJ3RvcCcsJ3RvcC1lbmQnLCdyaWdodC1zdGFydCcsJ3JpZ2h0JywncmlnaHQtZW5kJywnYm90dG9tLWVuZCcsJ2JvdHRvbScsJ2JvdHRvbS1zdGFydCcsJ2xlZnQtZW5kJywnbGVmdCcsJ2xlZnQtc3RhcnQnXSxtZT1mZS5zbGljZSgzKSxoZT17RkxJUDonZmxpcCcsQ0xPQ0tXSVNFOidjbG9ja3dpc2UnLENPVU5URVJDTE9DS1dJU0U6J2NvdW50ZXJjbG9ja3dpc2UnfSxjZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQobyxuKXt2YXIgaT10aGlzLHI9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9O3NlKHRoaXMsdCksdGhpcy5zY2hlZHVsZVVwZGF0ZT1mdW5jdGlvbigpe3JldHVybiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaS51cGRhdGUpfSx0aGlzLnVwZGF0ZT1pZSh0aGlzLnVwZGF0ZS5iaW5kKHRoaXMpKSx0aGlzLm9wdGlvbnM9bGUoe30sdC5EZWZhdWx0cyxyKSx0aGlzLnN0YXRlPXtpc0Rlc3Ryb3llZDohMSxpc0NyZWF0ZWQ6ITEsc2Nyb2xsUGFyZW50czpbXX0sdGhpcy5yZWZlcmVuY2U9byYmby5qcXVlcnk/b1swXTpvLHRoaXMucG9wcGVyPW4mJm4uanF1ZXJ5P25bMF06bix0aGlzLm9wdGlvbnMubW9kaWZpZXJzPXt9LE9iamVjdC5rZXlzKGxlKHt9LHQuRGVmYXVsdHMubW9kaWZpZXJzLHIubW9kaWZpZXJzKSkuZm9yRWFjaChmdW5jdGlvbihlKXtpLm9wdGlvbnMubW9kaWZpZXJzW2VdPWxlKHt9LHQuRGVmYXVsdHMubW9kaWZpZXJzW2VdfHx7fSxyLm1vZGlmaWVycz9yLm1vZGlmaWVyc1tlXTp7fSl9KSx0aGlzLm1vZGlmaWVycz1PYmplY3Qua2V5cyh0aGlzLm9wdGlvbnMubW9kaWZpZXJzKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGxlKHtuYW1lOmV9LGkub3B0aW9ucy5tb2RpZmllcnNbZV0pfSkuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLm9yZGVyLXQub3JkZXJ9KSx0aGlzLm1vZGlmaWVycy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuZW5hYmxlZCYmZSh0Lm9uTG9hZCkmJnQub25Mb2FkKGkucmVmZXJlbmNlLGkucG9wcGVyLGkub3B0aW9ucyx0LGkuc3RhdGUpfSksdGhpcy51cGRhdGUoKTt2YXIgcD10aGlzLm9wdGlvbnMuZXZlbnRzRW5hYmxlZDtwJiZ0aGlzLmVuYWJsZUV2ZW50TGlzdGVuZXJzKCksdGhpcy5zdGF0ZS5ldmVudHNFbmFibGVkPXB9cmV0dXJuIGRlKHQsW3trZXk6J3VwZGF0ZScsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gay5jYWxsKHRoaXMpfX0se2tleTonZGVzdHJveScsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQi5jYWxsKHRoaXMpfX0se2tleTonZW5hYmxlRXZlbnRMaXN0ZW5lcnMnLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEkuY2FsbCh0aGlzKX19LHtrZXk6J2Rpc2FibGVFdmVudExpc3RlbmVycycsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gVS5jYWxsKHRoaXMpfX1dKSx0fSgpO3JldHVybiBjZS5VdGlscz0oJ3VuZGVmaW5lZCc9PXR5cGVvZiB3aW5kb3c/Z2xvYmFsOndpbmRvdykuUG9wcGVyVXRpbHMsY2UucGxhY2VtZW50cz1mZSxjZS5EZWZhdWx0cz17cGxhY2VtZW50Oidib3R0b20nLHBvc2l0aW9uRml4ZWQ6ITEsZXZlbnRzRW5hYmxlZDohMCxyZW1vdmVPbkRlc3Ryb3k6ITEsb25DcmVhdGU6ZnVuY3Rpb24oKXt9LG9uVXBkYXRlOmZ1bmN0aW9uKCl7fSxtb2RpZmllcnM6e3NoaWZ0OntvcmRlcjoxMDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXt2YXIgdD1lLnBsYWNlbWVudCxvPXQuc3BsaXQoJy0nKVswXSxuPXQuc3BsaXQoJy0nKVsxXTtpZihuKXt2YXIgaT1lLm9mZnNldHMscj1pLnJlZmVyZW5jZSxwPWkucG9wcGVyLHM9LTEhPT1bJ2JvdHRvbScsJ3RvcCddLmluZGV4T2YobyksZD1zPydsZWZ0JzondG9wJyxhPXM/J3dpZHRoJzonaGVpZ2h0JyxsPXtzdGFydDphZSh7fSxkLHJbZF0pLGVuZDphZSh7fSxkLHJbZF0rclthXS1wW2FdKX07ZS5vZmZzZXRzLnBvcHBlcj1sZSh7fSxwLGxbbl0pfXJldHVybiBlfX0sb2Zmc2V0OntvcmRlcjoyMDAsZW5hYmxlZDohMCxmbjpYLG9mZnNldDowfSxwcmV2ZW50T3ZlcmZsb3c6e29yZGVyOjMwMCxlbmFibGVkOiEwLGZuOmZ1bmN0aW9uKGUsdCl7dmFyIG89dC5ib3VuZGFyaWVzRWxlbWVudHx8cChlLmluc3RhbmNlLnBvcHBlcik7ZS5pbnN0YW5jZS5yZWZlcmVuY2U9PT1vJiYobz1wKG8pKTt2YXIgbj1IKCd0cmFuc2Zvcm0nKSxpPWUuaW5zdGFuY2UucG9wcGVyLnN0eWxlLHI9aS50b3Ascz1pLmxlZnQsZD1pW25dO2kudG9wPScnLGkubGVmdD0nJyxpW25dPScnO3ZhciBhPXYoZS5pbnN0YW5jZS5wb3BwZXIsZS5pbnN0YW5jZS5yZWZlcmVuY2UsdC5wYWRkaW5nLG8sZS5wb3NpdGlvbkZpeGVkKTtpLnRvcD1yLGkubGVmdD1zLGlbbl09ZCx0LmJvdW5kYXJpZXM9YTt2YXIgbD10LnByaW9yaXR5LGY9ZS5vZmZzZXRzLnBvcHBlcixtPXtwcmltYXJ5OmZ1bmN0aW9uKGUpe3ZhciBvPWZbZV07cmV0dXJuIGZbZV08YVtlXSYmIXQuZXNjYXBlV2l0aFJlZmVyZW5jZSYmKG89SihmW2VdLGFbZV0pKSxhZSh7fSxlLG8pfSxzZWNvbmRhcnk6ZnVuY3Rpb24oZSl7dmFyIG89J3JpZ2h0Jz09PWU/J2xlZnQnOid0b3AnLG49ZltvXTtyZXR1cm4gZltlXT5hW2VdJiYhdC5lc2NhcGVXaXRoUmVmZXJlbmNlJiYobj1RKGZbb10sYVtlXS0oJ3JpZ2h0Jz09PWU/Zi53aWR0aDpmLmhlaWdodCkpKSxhZSh7fSxvLG4pfX07cmV0dXJuIGwuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD0tMT09PVsnbGVmdCcsJ3RvcCddLmluZGV4T2YoZSk/J3NlY29uZGFyeSc6J3ByaW1hcnknO2Y9bGUoe30sZixtW3RdKGUpKX0pLGUub2Zmc2V0cy5wb3BwZXI9ZixlfSxwcmlvcml0eTpbJ2xlZnQnLCdyaWdodCcsJ3RvcCcsJ2JvdHRvbSddLHBhZGRpbmc6NSxib3VuZGFyaWVzRWxlbWVudDonc2Nyb2xsUGFyZW50J30sa2VlcFRvZ2V0aGVyOntvcmRlcjo0MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXt2YXIgdD1lLm9mZnNldHMsbz10LnBvcHBlcixuPXQucmVmZXJlbmNlLGk9ZS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXSxyPSQscD0tMSE9PVsndG9wJywnYm90dG9tJ10uaW5kZXhPZihpKSxzPXA/J3JpZ2h0JzonYm90dG9tJyxkPXA/J2xlZnQnOid0b3AnLGE9cD8nd2lkdGgnOidoZWlnaHQnO3JldHVybiBvW3NdPHIobltkXSkmJihlLm9mZnNldHMucG9wcGVyW2RdPXIobltkXSktb1thXSksb1tkXT5yKG5bc10pJiYoZS5vZmZzZXRzLnBvcHBlcltkXT1yKG5bc10pKSxlfX0sYXJyb3c6e29yZGVyOjUwMCxlbmFibGVkOiEwLGZuOmZ1bmN0aW9uKGUsbyl7dmFyIG47aWYoIXEoZS5pbnN0YW5jZS5tb2RpZmllcnMsJ2Fycm93Jywna2VlcFRvZ2V0aGVyJykpcmV0dXJuIGU7dmFyIGk9by5lbGVtZW50O2lmKCdzdHJpbmcnPT10eXBlb2YgaSl7aWYoaT1lLmluc3RhbmNlLnBvcHBlci5xdWVyeVNlbGVjdG9yKGkpLCFpKXJldHVybiBlO31lbHNlIGlmKCFlLmluc3RhbmNlLnBvcHBlci5jb250YWlucyhpKSlyZXR1cm4gY29uc29sZS53YXJuKCdXQVJOSU5HOiBgYXJyb3cuZWxlbWVudGAgbXVzdCBiZSBjaGlsZCBvZiBpdHMgcG9wcGVyIGVsZW1lbnQhJyksZTt2YXIgcj1lLnBsYWNlbWVudC5zcGxpdCgnLScpWzBdLHA9ZS5vZmZzZXRzLHM9cC5wb3BwZXIsZD1wLnJlZmVyZW5jZSxhPS0xIT09WydsZWZ0JywncmlnaHQnXS5pbmRleE9mKHIpLGw9YT8naGVpZ2h0Jzond2lkdGgnLGY9YT8nVG9wJzonTGVmdCcsbT1mLnRvTG93ZXJDYXNlKCksaD1hPydsZWZ0JzondG9wJyxjPWE/J2JvdHRvbSc6J3JpZ2h0Jyx1PVMoaSlbbF07ZFtjXS11PHNbbV0mJihlLm9mZnNldHMucG9wcGVyW21dLT1zW21dLShkW2NdLXUpKSxkW21dK3U+c1tjXSYmKGUub2Zmc2V0cy5wb3BwZXJbbV0rPWRbbV0rdS1zW2NdKSxlLm9mZnNldHMucG9wcGVyPWcoZS5vZmZzZXRzLnBvcHBlcik7dmFyIGI9ZFttXStkW2xdLzItdS8yLHk9dChlLmluc3RhbmNlLnBvcHBlciksdz1wYXJzZUZsb2F0KHlbJ21hcmdpbicrZl0sMTApLEU9cGFyc2VGbG9hdCh5Wydib3JkZXInK2YrJ1dpZHRoJ10sMTApLHY9Yi1lLm9mZnNldHMucG9wcGVyW21dLXctRTtyZXR1cm4gdj1KKFEoc1tsXS11LHYpLDApLGUuYXJyb3dFbGVtZW50PWksZS5vZmZzZXRzLmFycm93PShuPXt9LGFlKG4sbSxaKHYpKSxhZShuLGgsJycpLG4pLGV9LGVsZW1lbnQ6J1t4LWFycm93XSd9LGZsaXA6e29yZGVyOjYwMCxlbmFibGVkOiEwLGZuOmZ1bmN0aW9uKGUsdCl7aWYoVyhlLmluc3RhbmNlLm1vZGlmaWVycywnaW5uZXInKSlyZXR1cm4gZTtpZihlLmZsaXBwZWQmJmUucGxhY2VtZW50PT09ZS5vcmlnaW5hbFBsYWNlbWVudClyZXR1cm4gZTt2YXIgbz12KGUuaW5zdGFuY2UucG9wcGVyLGUuaW5zdGFuY2UucmVmZXJlbmNlLHQucGFkZGluZyx0LmJvdW5kYXJpZXNFbGVtZW50LGUucG9zaXRpb25GaXhlZCksbj1lLnBsYWNlbWVudC5zcGxpdCgnLScpWzBdLGk9VChuKSxyPWUucGxhY2VtZW50LnNwbGl0KCctJylbMV18fCcnLHA9W107c3dpdGNoKHQuYmVoYXZpb3Ipe2Nhc2UgaGUuRkxJUDpwPVtuLGldO2JyZWFrO2Nhc2UgaGUuQ0xPQ0tXSVNFOnA9VihuKTticmVhaztjYXNlIGhlLkNPVU5URVJDTE9DS1dJU0U6cD1WKG4sITApO2JyZWFrO2RlZmF1bHQ6cD10LmJlaGF2aW9yO31yZXR1cm4gcC5mb3JFYWNoKGZ1bmN0aW9uKHMsZCl7aWYobiE9PXN8fHAubGVuZ3RoPT09ZCsxKXJldHVybiBlO249ZS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXSxpPVQobik7dmFyIGE9ZS5vZmZzZXRzLnBvcHBlcixsPWUub2Zmc2V0cy5yZWZlcmVuY2UsZj0kLG09J2xlZnQnPT09biYmZihhLnJpZ2h0KT5mKGwubGVmdCl8fCdyaWdodCc9PT1uJiZmKGEubGVmdCk8ZihsLnJpZ2h0KXx8J3RvcCc9PT1uJiZmKGEuYm90dG9tKT5mKGwudG9wKXx8J2JvdHRvbSc9PT1uJiZmKGEudG9wKTxmKGwuYm90dG9tKSxoPWYoYS5sZWZ0KTxmKG8ubGVmdCksYz1mKGEucmlnaHQpPmYoby5yaWdodCksZz1mKGEudG9wKTxmKG8udG9wKSx1PWYoYS5ib3R0b20pPmYoby5ib3R0b20pLGI9J2xlZnQnPT09biYmaHx8J3JpZ2h0Jz09PW4mJmN8fCd0b3AnPT09biYmZ3x8J2JvdHRvbSc9PT1uJiZ1LHk9LTEhPT1bJ3RvcCcsJ2JvdHRvbSddLmluZGV4T2Yobiksdz0hIXQuZmxpcFZhcmlhdGlvbnMmJih5JiYnc3RhcnQnPT09ciYmaHx8eSYmJ2VuZCc9PT1yJiZjfHwheSYmJ3N0YXJ0Jz09PXImJmd8fCF5JiYnZW5kJz09PXImJnUpOyhtfHxifHx3KSYmKGUuZmxpcHBlZD0hMCwobXx8YikmJihuPXBbZCsxXSksdyYmKHI9RyhyKSksZS5wbGFjZW1lbnQ9bisocj8nLScrcjonJyksZS5vZmZzZXRzLnBvcHBlcj1sZSh7fSxlLm9mZnNldHMucG9wcGVyLEQoZS5pbnN0YW5jZS5wb3BwZXIsZS5vZmZzZXRzLnJlZmVyZW5jZSxlLnBsYWNlbWVudCkpLGU9UChlLmluc3RhbmNlLm1vZGlmaWVycyxlLCdmbGlwJykpfSksZX0sYmVoYXZpb3I6J2ZsaXAnLHBhZGRpbmc6NSxib3VuZGFyaWVzRWxlbWVudDondmlld3BvcnQnfSxpbm5lcjp7b3JkZXI6NzAwLGVuYWJsZWQ6ITEsZm46ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wbGFjZW1lbnQsbz10LnNwbGl0KCctJylbMF0sbj1lLm9mZnNldHMsaT1uLnBvcHBlcixyPW4ucmVmZXJlbmNlLHA9LTEhPT1bJ2xlZnQnLCdyaWdodCddLmluZGV4T2Yobykscz0tMT09PVsndG9wJywnbGVmdCddLmluZGV4T2Yobyk7cmV0dXJuIGlbcD8nbGVmdCc6J3RvcCddPXJbb10tKHM/aVtwPyd3aWR0aCc6J2hlaWdodCddOjApLGUucGxhY2VtZW50PVQodCksZS5vZmZzZXRzLnBvcHBlcj1nKGkpLGV9fSxoaWRlOntvcmRlcjo4MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXtpZighcShlLmluc3RhbmNlLm1vZGlmaWVycywnaGlkZScsJ3ByZXZlbnRPdmVyZmxvdycpKXJldHVybiBlO3ZhciB0PWUub2Zmc2V0cy5yZWZlcmVuY2Usbz1DKGUuaW5zdGFuY2UubW9kaWZpZXJzLGZ1bmN0aW9uKGUpe3JldHVybidwcmV2ZW50T3ZlcmZsb3cnPT09ZS5uYW1lfSkuYm91bmRhcmllcztpZih0LmJvdHRvbTxvLnRvcHx8dC5sZWZ0Pm8ucmlnaHR8fHQudG9wPm8uYm90dG9tfHx0LnJpZ2h0PG8ubGVmdCl7aWYoITA9PT1lLmhpZGUpcmV0dXJuIGU7ZS5oaWRlPSEwLGUuYXR0cmlidXRlc1sneC1vdXQtb2YtYm91bmRhcmllcyddPScnfWVsc2V7aWYoITE9PT1lLmhpZGUpcmV0dXJuIGU7ZS5oaWRlPSExLGUuYXR0cmlidXRlc1sneC1vdXQtb2YtYm91bmRhcmllcyddPSExfXJldHVybiBlfX0sY29tcHV0ZVN0eWxlOntvcmRlcjo4NTAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlLHQpe3ZhciBvPXQueCxuPXQueSxpPWUub2Zmc2V0cy5wb3BwZXIscj1DKGUuaW5zdGFuY2UubW9kaWZpZXJzLGZ1bmN0aW9uKGUpe3JldHVybidhcHBseVN0eWxlJz09PWUubmFtZX0pLmdwdUFjY2VsZXJhdGlvbjt2b2lkIDAhPT1yJiZjb25zb2xlLndhcm4oJ1dBUk5JTkc6IGBncHVBY2NlbGVyYXRpb25gIG9wdGlvbiBtb3ZlZCB0byBgY29tcHV0ZVN0eWxlYCBtb2RpZmllciBhbmQgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiBQb3BwZXIuanMhJyk7dmFyIHMsZCxhPXZvaWQgMD09PXI/dC5ncHVBY2NlbGVyYXRpb246cixsPXAoZS5pbnN0YW5jZS5wb3BwZXIpLGY9dShsKSxtPXtwb3NpdGlvbjppLnBvc2l0aW9ufSxoPXtsZWZ0OiQoaS5sZWZ0KSx0b3A6WihpLnRvcCksYm90dG9tOlooaS5ib3R0b20pLHJpZ2h0OiQoaS5yaWdodCl9LGM9J2JvdHRvbSc9PT1vPyd0b3AnOidib3R0b20nLGc9J3JpZ2h0Jz09PW4/J2xlZnQnOidyaWdodCcsYj1IKCd0cmFuc2Zvcm0nKTtpZihkPSdib3R0b20nPT1jPydIVE1MJz09PWwubm9kZU5hbWU/LWwuY2xpZW50SGVpZ2h0K2guYm90dG9tOi1mLmhlaWdodCtoLmJvdHRvbTpoLnRvcCxzPSdyaWdodCc9PWc/J0hUTUwnPT09bC5ub2RlTmFtZT8tbC5jbGllbnRXaWR0aCtoLnJpZ2h0Oi1mLndpZHRoK2gucmlnaHQ6aC5sZWZ0LGEmJmIpbVtiXT0ndHJhbnNsYXRlM2QoJytzKydweCwgJytkKydweCwgMCknLG1bY109MCxtW2ddPTAsbS53aWxsQ2hhbmdlPSd0cmFuc2Zvcm0nO2Vsc2V7dmFyIHk9J2JvdHRvbSc9PWM/LTE6MSx3PSdyaWdodCc9PWc/LTE6MTttW2NdPWQqeSxtW2ddPXMqdyxtLndpbGxDaGFuZ2U9YysnLCAnK2d9dmFyIEU9e1wieC1wbGFjZW1lbnRcIjplLnBsYWNlbWVudH07cmV0dXJuIGUuYXR0cmlidXRlcz1sZSh7fSxFLGUuYXR0cmlidXRlcyksZS5zdHlsZXM9bGUoe30sbSxlLnN0eWxlcyksZS5hcnJvd1N0eWxlcz1sZSh7fSxlLm9mZnNldHMuYXJyb3csZS5hcnJvd1N0eWxlcyksZX0sZ3B1QWNjZWxlcmF0aW9uOiEwLHg6J2JvdHRvbScseToncmlnaHQnfSxhcHBseVN0eWxlOntvcmRlcjo5MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXtyZXR1cm4gaihlLmluc3RhbmNlLnBvcHBlcixlLnN0eWxlcyksSyhlLmluc3RhbmNlLnBvcHBlcixlLmF0dHJpYnV0ZXMpLGUuYXJyb3dFbGVtZW50JiZPYmplY3Qua2V5cyhlLmFycm93U3R5bGVzKS5sZW5ndGgmJmooZS5hcnJvd0VsZW1lbnQsZS5hcnJvd1N0eWxlcyksZX0sb25Mb2FkOmZ1bmN0aW9uKGUsdCxvLG4saSl7dmFyIHI9TChpLHQsZSxvLnBvc2l0aW9uRml4ZWQpLHA9TyhvLnBsYWNlbWVudCxyLHQsZSxvLm1vZGlmaWVycy5mbGlwLmJvdW5kYXJpZXNFbGVtZW50LG8ubW9kaWZpZXJzLmZsaXAucGFkZGluZyk7cmV0dXJuIHQuc2V0QXR0cmlidXRlKCd4LXBsYWNlbWVudCcscCksaih0LHtwb3NpdGlvbjpvLnBvc2l0aW9uRml4ZWQ/J2ZpeGVkJzonYWJzb2x1dGUnfSksb30sZ3B1QWNjZWxlcmF0aW9uOnZvaWQgMH19fSxjZX0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wb3BwZXIubWluLmpzLm1hcCIsIi8qIVxuICAqIEJvb3RzdHJhcCB2NC4xLjAgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pXG4gICogQ29weXJpZ2h0IDIwMTEtMjAxOCBUaGUgQm9vdHN0cmFwIEF1dGhvcnMgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ncmFwaHMvY29udHJpYnV0b3JzKVxuICAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXG4gICovXG4hZnVuY3Rpb24odCxlKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9lKGV4cG9ydHMscmVxdWlyZShcImpxdWVyeVwiKSxyZXF1aXJlKFwicG9wcGVyLmpzXCIpKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtcImV4cG9ydHNcIixcImpxdWVyeVwiLFwicG9wcGVyLmpzXCJdLGUpOmUodC5ib290c3RyYXA9e30sdC5qUXVlcnksdC5Qb3BwZXIpfSh0aGlzLGZ1bmN0aW9uKHQsZSxjKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBpKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGkua2V5LGkpfX1mdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm4gZSYmaSh0LnByb3RvdHlwZSxlKSxuJiZpKHQsbiksdH1mdW5jdGlvbiBoKHIpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBzPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30sZT1PYmplY3Qua2V5cyhzKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYoZT1lLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzLHQpLmVudW1lcmFibGV9KSkpLGUuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZSxuLGk7ZT1yLGk9c1tuPXRdLG4gaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTppLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVtuXT1pfSl9cmV0dXJuIHJ9ZT1lJiZlLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFwiKT9lLmRlZmF1bHQ6ZSxjPWMmJmMuaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0XCIpP2MuZGVmYXVsdDpjO3ZhciByLG4scyxhLGwsdSxmLGQsXyxnLG0scCx2LEUseSxULEMsSSxBLEQsYixTLHcsTixPLGssUCxMLGosUixILFcsTSx4LFUsSyxGLFYsUSxCLFksRyxxLHosWCxKLFosJCx0dCxldCxudCxpdCxydCxzdCxvdCxhdCxsdCxodCxjdCx1dCxmdCxkdCxfdCxndCxtdCxwdCx2dCxFdCx5dCxUdCxDdCxJdCxBdCxEdCxidCxTdCx3dCxOdCxPdCxrdCxQdCxMdCxqdCxSdCxIdCxXdCxNdCx4dCxVdCxLdCxGdCxWdCxRdCxCdCxZdCxHdCxxdCx6dCxYdCxKdCxadCwkdCx0ZSxlZSxuZSxpZSxyZSxzZSxvZSxhZSxsZSxoZSxjZSx1ZSxmZSxkZSxfZSxnZSxtZSxwZSx2ZSxFZSx5ZSxUZSxDZSxJZSxBZSxEZSxiZSxTZSx3ZSxOZSxPZSxrZSxQZSxMZSxqZSxSZSxIZSxXZSxNZSx4ZSxVZSxLZSxGZSxWZSxRZSxCZSxZZSxHZSxxZSx6ZSxYZSxKZSxaZSwkZSx0bixlbixubixybixzbixvbixhbixsbixobixjbix1bixmbixkbixfbixnbixtbixwbix2bixFbix5bixUbixDbj1mdW5jdGlvbihpKXt2YXIgZT1cInRyYW5zaXRpb25lbmRcIjtmdW5jdGlvbiB0KHQpe3ZhciBlPXRoaXMsbj0hMTtyZXR1cm4gaSh0aGlzKS5vbmUobC5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbigpe249ITB9KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bnx8bC50cmlnZ2VyVHJhbnNpdGlvbkVuZChlKX0sdCksdGhpc312YXIgbD17VFJBTlNJVElPTl9FTkQ6XCJic1RyYW5zaXRpb25FbmRcIixnZXRVSUQ6ZnVuY3Rpb24odCl7Zm9yKDt0Kz1+figxZTYqTWF0aC5yYW5kb20oKSksZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodCk7KTtyZXR1cm4gdH0sZ2V0U2VsZWN0b3JGcm9tRWxlbWVudDpmdW5jdGlvbih0KXt2YXIgZT10LmdldEF0dHJpYnV0ZShcImRhdGEtdGFyZ2V0XCIpO2UmJlwiI1wiIT09ZXx8KGU9dC5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpfHxcIlwiKTt0cnl7cmV0dXJuIDA8aShkb2N1bWVudCkuZmluZChlKS5sZW5ndGg/ZTpudWxsfWNhdGNoKHQpe3JldHVybiBudWxsfX0sZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQ6ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIDA7dmFyIGU9aSh0KS5jc3MoXCJ0cmFuc2l0aW9uLWR1cmF0aW9uXCIpO3JldHVybiBwYXJzZUZsb2F0KGUpPyhlPWUuc3BsaXQoXCIsXCIpWzBdLDFlMypwYXJzZUZsb2F0KGUpKTowfSxyZWZsb3c6ZnVuY3Rpb24odCl7cmV0dXJuIHQub2Zmc2V0SGVpZ2h0fSx0cmlnZ2VyVHJhbnNpdGlvbkVuZDpmdW5jdGlvbih0KXtpKHQpLnRyaWdnZXIoZSl9LHN1cHBvcnRzVHJhbnNpdGlvbkVuZDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKGUpfSxpc0VsZW1lbnQ6ZnVuY3Rpb24odCl7cmV0dXJuKHRbMF18fHQpLm5vZGVUeXBlfSx0eXBlQ2hlY2tDb25maWc6ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaSBpbiBuKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGkpKXt2YXIgcj1uW2ldLHM9ZVtpXSxvPXMmJmwuaXNFbGVtZW50KHMpP1wiZWxlbWVudFwiOihhPXMse30udG9TdHJpbmcuY2FsbChhKS5tYXRjaCgvXFxzKFthLXpdKykvaSlbMV0udG9Mb3dlckNhc2UoKSk7aWYoIW5ldyBSZWdFeHAocikudGVzdChvKSl0aHJvdyBuZXcgRXJyb3IodC50b1VwcGVyQ2FzZSgpKyc6IE9wdGlvbiBcIicraSsnXCIgcHJvdmlkZWQgdHlwZSBcIicrbysnXCIgYnV0IGV4cGVjdGVkIHR5cGUgXCInK3IrJ1wiLicpfXZhciBhfX07cmV0dXJuIGkuZm4uZW11bGF0ZVRyYW5zaXRpb25FbmQ9dCxpLmV2ZW50LnNwZWNpYWxbbC5UUkFOU0lUSU9OX0VORF09e2JpbmRUeXBlOmUsZGVsZWdhdGVUeXBlOmUsaGFuZGxlOmZ1bmN0aW9uKHQpe2lmKGkodC50YXJnZXQpLmlzKHRoaXMpKXJldHVybiB0LmhhbmRsZU9iai5oYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LGx9KGUpLEluPShuPVwiYWxlcnRcIixhPVwiLlwiKyhzPVwiYnMuYWxlcnRcIiksbD0ocj1lKS5mbltuXSx1PXtDTE9TRTpcImNsb3NlXCIrYSxDTE9TRUQ6XCJjbG9zZWRcIithLENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIithK1wiLmRhdGEtYXBpXCJ9LGY9XCJhbGVydFwiLGQ9XCJmYWRlXCIsXz1cInNob3dcIixnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaSh0KXt0aGlzLl9lbGVtZW50PXR9dmFyIHQ9aS5wcm90b3R5cGU7cmV0dXJuIHQuY2xvc2U9ZnVuY3Rpb24odCl7dD10fHx0aGlzLl9lbGVtZW50O3ZhciBlPXRoaXMuX2dldFJvb3RFbGVtZW50KHQpO3RoaXMuX3RyaWdnZXJDbG9zZUV2ZW50KGUpLmlzRGVmYXVsdFByZXZlbnRlZCgpfHx0aGlzLl9yZW1vdmVFbGVtZW50KGUpfSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtyLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxzKSx0aGlzLl9lbGVtZW50PW51bGx9LHQuX2dldFJvb3RFbGVtZW50PWZ1bmN0aW9uKHQpe3ZhciBlPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodCksbj0hMTtyZXR1cm4gZSYmKG49cihlKVswXSksbnx8KG49cih0KS5jbG9zZXN0KFwiLlwiK2YpWzBdKSxufSx0Ll90cmlnZ2VyQ2xvc2VFdmVudD1mdW5jdGlvbih0KXt2YXIgZT1yLkV2ZW50KHUuQ0xPU0UpO3JldHVybiByKHQpLnRyaWdnZXIoZSksZX0sdC5fcmVtb3ZlRWxlbWVudD1mdW5jdGlvbihlKXt2YXIgbj10aGlzO2lmKHIoZSkucmVtb3ZlQ2xhc3MoXykscihlKS5oYXNDbGFzcyhkKSl7dmFyIHQ9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQoZSk7cihlKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24odCl7cmV0dXJuIG4uX2Rlc3Ryb3lFbGVtZW50KGUsdCl9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZCh0KX1lbHNlIHRoaXMuX2Rlc3Ryb3lFbGVtZW50KGUpfSx0Ll9kZXN0cm95RWxlbWVudD1mdW5jdGlvbih0KXtyKHQpLmRldGFjaCgpLnRyaWdnZXIodS5DTE9TRUQpLnJlbW92ZSgpfSxpLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXIodGhpcyksZT10LmRhdGEocyk7ZXx8KGU9bmV3IGkodGhpcyksdC5kYXRhKHMsZSkpLFwiY2xvc2VcIj09PW4mJmVbbl0odGhpcyl9KX0saS5faGFuZGxlRGlzbWlzcz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7dCYmdC5wcmV2ZW50RGVmYXVsdCgpLGUuY2xvc2UodGhpcyl9fSxvKGksbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fV0pLGl9KCkscihkb2N1bWVudCkub24odS5DTElDS19EQVRBX0FQSSwnW2RhdGEtZGlzbWlzcz1cImFsZXJ0XCJdJyxnLl9oYW5kbGVEaXNtaXNzKG5ldyBnKSksci5mbltuXT1nLl9qUXVlcnlJbnRlcmZhY2Usci5mbltuXS5Db25zdHJ1Y3Rvcj1nLHIuZm5bbl0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiByLmZuW25dPWwsZy5falF1ZXJ5SW50ZXJmYWNlfSxnKSxBbj0ocD1cImJ1dHRvblwiLEU9XCIuXCIrKHY9XCJicy5idXR0b25cIikseT1cIi5kYXRhLWFwaVwiLFQ9KG09ZSkuZm5bcF0sQz1cImFjdGl2ZVwiLEk9XCJidG5cIixEPSdbZGF0YS10b2dnbGVePVwiYnV0dG9uXCJdJyxiPSdbZGF0YS10b2dnbGU9XCJidXR0b25zXCJdJyxTPVwiaW5wdXRcIix3PVwiLmFjdGl2ZVwiLE49XCIuYnRuXCIsTz17Q0xJQ0tfREFUQV9BUEk6XCJjbGlja1wiK0UreSxGT0NVU19CTFVSX0RBVEFfQVBJOihBPVwiZm9jdXNcIikrRSt5K1wiIGJsdXJcIitFK3l9LGs9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQpe3RoaXMuX2VsZW1lbnQ9dH12YXIgdD1uLnByb3RvdHlwZTtyZXR1cm4gdC50b2dnbGU9ZnVuY3Rpb24oKXt2YXIgdD0hMCxlPSEwLG49bSh0aGlzLl9lbGVtZW50KS5jbG9zZXN0KGIpWzBdO2lmKG4pe3ZhciBpPW0odGhpcy5fZWxlbWVudCkuZmluZChTKVswXTtpZihpKXtpZihcInJhZGlvXCI9PT1pLnR5cGUpaWYoaS5jaGVja2VkJiZtKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEMpKXQ9ITE7ZWxzZXt2YXIgcj1tKG4pLmZpbmQodylbMF07ciYmbShyKS5yZW1vdmVDbGFzcyhDKX1pZih0KXtpZihpLmhhc0F0dHJpYnV0ZShcImRpc2FibGVkXCIpfHxuLmhhc0F0dHJpYnV0ZShcImRpc2FibGVkXCIpfHxpLmNsYXNzTGlzdC5jb250YWlucyhcImRpc2FibGVkXCIpfHxuLmNsYXNzTGlzdC5jb250YWlucyhcImRpc2FibGVkXCIpKXJldHVybjtpLmNoZWNrZWQ9IW0odGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoQyksbShpKS50cmlnZ2VyKFwiY2hhbmdlXCIpfWkuZm9jdXMoKSxlPSExfX1lJiZ0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtcHJlc3NlZFwiLCFtKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEMpKSx0JiZtKHRoaXMuX2VsZW1lbnQpLnRvZ2dsZUNsYXNzKEMpfSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXttLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCx2KSx0aGlzLl9lbGVtZW50PW51bGx9LG4uX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bSh0aGlzKS5kYXRhKHYpO3R8fCh0PW5ldyBuKHRoaXMpLG0odGhpcykuZGF0YSh2LHQpKSxcInRvZ2dsZVwiPT09ZSYmdFtlXSgpfSl9LG8obixudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19XSksbn0oKSxtKGRvY3VtZW50KS5vbihPLkNMSUNLX0RBVEFfQVBJLEQsZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBlPXQudGFyZ2V0O20oZSkuaGFzQ2xhc3MoSSl8fChlPW0oZSkuY2xvc2VzdChOKSksay5falF1ZXJ5SW50ZXJmYWNlLmNhbGwobShlKSxcInRvZ2dsZVwiKX0pLm9uKE8uRk9DVVNfQkxVUl9EQVRBX0FQSSxELGZ1bmN0aW9uKHQpe3ZhciBlPW0odC50YXJnZXQpLmNsb3Nlc3QoTilbMF07bShlKS50b2dnbGVDbGFzcyhBLC9eZm9jdXMoaW4pPyQvLnRlc3QodC50eXBlKSl9KSxtLmZuW3BdPWsuX2pRdWVyeUludGVyZmFjZSxtLmZuW3BdLkNvbnN0cnVjdG9yPWssbS5mbltwXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG0uZm5bcF09VCxrLl9qUXVlcnlJbnRlcmZhY2V9LGspLERuPShMPVwiY2Fyb3VzZWxcIixSPVwiLlwiKyhqPVwiYnMuY2Fyb3VzZWxcIiksSD1cIi5kYXRhLWFwaVwiLFc9KFA9ZSkuZm5bTF0sTT17aW50ZXJ2YWw6NWUzLGtleWJvYXJkOiEwLHNsaWRlOiExLHBhdXNlOlwiaG92ZXJcIix3cmFwOiEwfSx4PXtpbnRlcnZhbDpcIihudW1iZXJ8Ym9vbGVhbilcIixrZXlib2FyZDpcImJvb2xlYW5cIixzbGlkZTpcIihib29sZWFufHN0cmluZylcIixwYXVzZTpcIihzdHJpbmd8Ym9vbGVhbilcIix3cmFwOlwiYm9vbGVhblwifSxVPVwibmV4dFwiLEs9XCJwcmV2XCIsRj1cImxlZnRcIixWPVwicmlnaHRcIixRPXtTTElERTpcInNsaWRlXCIrUixTTElEOlwic2xpZFwiK1IsS0VZRE9XTjpcImtleWRvd25cIitSLE1PVVNFRU5URVI6XCJtb3VzZWVudGVyXCIrUixNT1VTRUxFQVZFOlwibW91c2VsZWF2ZVwiK1IsVE9VQ0hFTkQ6XCJ0b3VjaGVuZFwiK1IsTE9BRF9EQVRBX0FQSTpcImxvYWRcIitSK0gsQ0xJQ0tfREFUQV9BUEk6XCJjbGlja1wiK1IrSH0sQj1cImNhcm91c2VsXCIsWT1cImFjdGl2ZVwiLEc9XCJzbGlkZVwiLHE9XCJjYXJvdXNlbC1pdGVtLXJpZ2h0XCIsej1cImNhcm91c2VsLWl0ZW0tbGVmdFwiLFg9XCJjYXJvdXNlbC1pdGVtLW5leHRcIixKPVwiY2Fyb3VzZWwtaXRlbS1wcmV2XCIsWj17QUNUSVZFOlwiLmFjdGl2ZVwiLEFDVElWRV9JVEVNOlwiLmFjdGl2ZS5jYXJvdXNlbC1pdGVtXCIsSVRFTTpcIi5jYXJvdXNlbC1pdGVtXCIsTkVYVF9QUkVWOlwiLmNhcm91c2VsLWl0ZW0tbmV4dCwgLmNhcm91c2VsLWl0ZW0tcHJldlwiLElORElDQVRPUlM6XCIuY2Fyb3VzZWwtaW5kaWNhdG9yc1wiLERBVEFfU0xJREU6XCJbZGF0YS1zbGlkZV0sIFtkYXRhLXNsaWRlLXRvXVwiLERBVEFfUklERTonW2RhdGEtcmlkZT1cImNhcm91c2VsXCJdJ30sJD1mdW5jdGlvbigpe2Z1bmN0aW9uIHModCxlKXt0aGlzLl9pdGVtcz1udWxsLHRoaXMuX2ludGVydmFsPW51bGwsdGhpcy5fYWN0aXZlRWxlbWVudD1udWxsLHRoaXMuX2lzUGF1c2VkPSExLHRoaXMuX2lzU2xpZGluZz0hMSx0aGlzLnRvdWNoVGltZW91dD1udWxsLHRoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fZWxlbWVudD1QKHQpWzBdLHRoaXMuX2luZGljYXRvcnNFbGVtZW50PVAodGhpcy5fZWxlbWVudCkuZmluZChaLklORElDQVRPUlMpWzBdLHRoaXMuX2FkZEV2ZW50TGlzdGVuZXJzKCl9dmFyIHQ9cy5wcm90b3R5cGU7cmV0dXJuIHQubmV4dD1mdW5jdGlvbigpe3RoaXMuX2lzU2xpZGluZ3x8dGhpcy5fc2xpZGUoVSl9LHQubmV4dFdoZW5WaXNpYmxlPWZ1bmN0aW9uKCl7IWRvY3VtZW50LmhpZGRlbiYmUCh0aGlzLl9lbGVtZW50KS5pcyhcIjp2aXNpYmxlXCIpJiZcImhpZGRlblwiIT09UCh0aGlzLl9lbGVtZW50KS5jc3MoXCJ2aXNpYmlsaXR5XCIpJiZ0aGlzLm5leHQoKX0sdC5wcmV2PWZ1bmN0aW9uKCl7dGhpcy5faXNTbGlkaW5nfHx0aGlzLl9zbGlkZShLKX0sdC5wYXVzZT1mdW5jdGlvbih0KXt0fHwodGhpcy5faXNQYXVzZWQ9ITApLFAodGhpcy5fZWxlbWVudCkuZmluZChaLk5FWFRfUFJFVilbMF0mJihDbi50cmlnZ2VyVHJhbnNpdGlvbkVuZCh0aGlzLl9lbGVtZW50KSx0aGlzLmN5Y2xlKCEwKSksY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCksdGhpcy5faW50ZXJ2YWw9bnVsbH0sdC5jeWNsZT1mdW5jdGlvbih0KXt0fHwodGhpcy5faXNQYXVzZWQ9ITEpLHRoaXMuX2ludGVydmFsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCksdGhpcy5faW50ZXJ2YWw9bnVsbCksdGhpcy5fY29uZmlnLmludGVydmFsJiYhdGhpcy5faXNQYXVzZWQmJih0aGlzLl9pbnRlcnZhbD1zZXRJbnRlcnZhbCgoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlP3RoaXMubmV4dFdoZW5WaXNpYmxlOnRoaXMubmV4dCkuYmluZCh0aGlzKSx0aGlzLl9jb25maWcuaW50ZXJ2YWwpKX0sdC50bz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX2FjdGl2ZUVsZW1lbnQ9UCh0aGlzLl9lbGVtZW50KS5maW5kKFouQUNUSVZFX0lURU0pWzBdO3ZhciBuPXRoaXMuX2dldEl0ZW1JbmRleCh0aGlzLl9hY3RpdmVFbGVtZW50KTtpZighKHQ+dGhpcy5faXRlbXMubGVuZ3RoLTF8fHQ8MCkpaWYodGhpcy5faXNTbGlkaW5nKVAodGhpcy5fZWxlbWVudCkub25lKFEuU0xJRCxmdW5jdGlvbigpe3JldHVybiBlLnRvKHQpfSk7ZWxzZXtpZihuPT09dClyZXR1cm4gdGhpcy5wYXVzZSgpLHZvaWQgdGhpcy5jeWNsZSgpO3ZhciBpPW48dD9VOks7dGhpcy5fc2xpZGUoaSx0aGlzLl9pdGVtc1t0XSl9fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtQKHRoaXMuX2VsZW1lbnQpLm9mZihSKSxQLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxqKSx0aGlzLl9pdGVtcz1udWxsLHRoaXMuX2NvbmZpZz1udWxsLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLl9pbnRlcnZhbD1udWxsLHRoaXMuX2lzUGF1c2VkPW51bGwsdGhpcy5faXNTbGlkaW5nPW51bGwsdGhpcy5fYWN0aXZlRWxlbWVudD1udWxsLHRoaXMuX2luZGljYXRvcnNFbGVtZW50PW51bGx9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gdD1oKHt9LE0sdCksQ24udHlwZUNoZWNrQ29uZmlnKEwsdCx4KSx0fSx0Ll9hZGRFdmVudExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fY29uZmlnLmtleWJvYXJkJiZQKHRoaXMuX2VsZW1lbnQpLm9uKFEuS0VZRE9XTixmdW5jdGlvbih0KXtyZXR1cm4gZS5fa2V5ZG93bih0KX0pLFwiaG92ZXJcIj09PXRoaXMuX2NvbmZpZy5wYXVzZSYmKFAodGhpcy5fZWxlbWVudCkub24oUS5NT1VTRUVOVEVSLGZ1bmN0aW9uKHQpe3JldHVybiBlLnBhdXNlKHQpfSkub24oUS5NT1VTRUxFQVZFLGZ1bmN0aW9uKHQpe3JldHVybiBlLmN5Y2xlKHQpfSksXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmUCh0aGlzLl9lbGVtZW50KS5vbihRLlRPVUNIRU5ELGZ1bmN0aW9uKCl7ZS5wYXVzZSgpLGUudG91Y2hUaW1lb3V0JiZjbGVhclRpbWVvdXQoZS50b3VjaFRpbWVvdXQpLGUudG91Y2hUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24odCl7cmV0dXJuIGUuY3ljbGUodCl9LDUwMCtlLl9jb25maWcuaW50ZXJ2YWwpfSkpfSx0Ll9rZXlkb3duPWZ1bmN0aW9uKHQpe2lmKCEvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KHQudGFyZ2V0LnRhZ05hbWUpKXN3aXRjaCh0LndoaWNoKXtjYXNlIDM3OnQucHJldmVudERlZmF1bHQoKSx0aGlzLnByZXYoKTticmVhaztjYXNlIDM5OnQucHJldmVudERlZmF1bHQoKSx0aGlzLm5leHQoKX19LHQuX2dldEl0ZW1JbmRleD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faXRlbXM9UC5tYWtlQXJyYXkoUCh0KS5wYXJlbnQoKS5maW5kKFouSVRFTSkpLHRoaXMuX2l0ZW1zLmluZGV4T2YodCl9LHQuX2dldEl0ZW1CeURpcmVjdGlvbj1mdW5jdGlvbih0LGUpe3ZhciBuPXQ9PT1VLGk9dD09PUsscj10aGlzLl9nZXRJdGVtSW5kZXgoZSkscz10aGlzLl9pdGVtcy5sZW5ndGgtMTtpZigoaSYmMD09PXJ8fG4mJnI9PT1zKSYmIXRoaXMuX2NvbmZpZy53cmFwKXJldHVybiBlO3ZhciBvPShyKyh0PT09Sz8tMToxKSkldGhpcy5faXRlbXMubGVuZ3RoO3JldHVybi0xPT09bz90aGlzLl9pdGVtc1t0aGlzLl9pdGVtcy5sZW5ndGgtMV06dGhpcy5faXRlbXNbb119LHQuX3RyaWdnZXJTbGlkZUV2ZW50PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fZ2V0SXRlbUluZGV4KHQpLGk9dGhpcy5fZ2V0SXRlbUluZGV4KFAodGhpcy5fZWxlbWVudCkuZmluZChaLkFDVElWRV9JVEVNKVswXSkscj1QLkV2ZW50KFEuU0xJREUse3JlbGF0ZWRUYXJnZXQ6dCxkaXJlY3Rpb246ZSxmcm9tOmksdG86bn0pO3JldHVybiBQKHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIocikscn0sdC5fc2V0QWN0aXZlSW5kaWNhdG9yRWxlbWVudD1mdW5jdGlvbih0KXtpZih0aGlzLl9pbmRpY2F0b3JzRWxlbWVudCl7UCh0aGlzLl9pbmRpY2F0b3JzRWxlbWVudCkuZmluZChaLkFDVElWRSkucmVtb3ZlQ2xhc3MoWSk7dmFyIGU9dGhpcy5faW5kaWNhdG9yc0VsZW1lbnQuY2hpbGRyZW5bdGhpcy5fZ2V0SXRlbUluZGV4KHQpXTtlJiZQKGUpLmFkZENsYXNzKFkpfX0sdC5fc2xpZGU9ZnVuY3Rpb24odCxlKXt2YXIgbixpLHIscz10aGlzLG89UCh0aGlzLl9lbGVtZW50KS5maW5kKFouQUNUSVZFX0lURU0pWzBdLGE9dGhpcy5fZ2V0SXRlbUluZGV4KG8pLGw9ZXx8byYmdGhpcy5fZ2V0SXRlbUJ5RGlyZWN0aW9uKHQsbyksaD10aGlzLl9nZXRJdGVtSW5kZXgobCksYz1Cb29sZWFuKHRoaXMuX2ludGVydmFsKTtpZih0PT09VT8obj16LGk9WCxyPUYpOihuPXEsaT1KLHI9ViksbCYmUChsKS5oYXNDbGFzcyhZKSl0aGlzLl9pc1NsaWRpbmc9ITE7ZWxzZSBpZighdGhpcy5fdHJpZ2dlclNsaWRlRXZlbnQobCxyKS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmbyYmbCl7dGhpcy5faXNTbGlkaW5nPSEwLGMmJnRoaXMucGF1c2UoKSx0aGlzLl9zZXRBY3RpdmVJbmRpY2F0b3JFbGVtZW50KGwpO3ZhciB1PVAuRXZlbnQoUS5TTElELHtyZWxhdGVkVGFyZ2V0OmwsZGlyZWN0aW9uOnIsZnJvbTphLHRvOmh9KTtpZihQKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEcpKXtQKGwpLmFkZENsYXNzKGkpLENuLnJlZmxvdyhsKSxQKG8pLmFkZENsYXNzKG4pLFAobCkuYWRkQ2xhc3Mobik7dmFyIGY9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQobyk7UChvKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24oKXtQKGwpLnJlbW92ZUNsYXNzKG4rXCIgXCIraSkuYWRkQ2xhc3MoWSksUChvKS5yZW1vdmVDbGFzcyhZK1wiIFwiK2krXCIgXCIrbikscy5faXNTbGlkaW5nPSExLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gUChzLl9lbGVtZW50KS50cmlnZ2VyKHUpfSwwKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGYpfWVsc2UgUChvKS5yZW1vdmVDbGFzcyhZKSxQKGwpLmFkZENsYXNzKFkpLHRoaXMuX2lzU2xpZGluZz0hMSxQKHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIodSk7YyYmdGhpcy5jeWNsZSgpfX0scy5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1QKHRoaXMpLmRhdGEoaiksZT1oKHt9LE0sUCh0aGlzKS5kYXRhKCkpO1wib2JqZWN0XCI9PXR5cGVvZiBpJiYoZT1oKHt9LGUsaSkpO3ZhciBuPVwic3RyaW5nXCI9PXR5cGVvZiBpP2k6ZS5zbGlkZTtpZih0fHwodD1uZXcgcyh0aGlzLGUpLFAodGhpcykuZGF0YShqLHQpKSxcIm51bWJlclwiPT10eXBlb2YgaSl0LnRvKGkpO2Vsc2UgaWYoXCJzdHJpbmdcIj09dHlwZW9mIG4pe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiB0W25dKXRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG1ldGhvZCBuYW1lZCBcIicrbisnXCInKTt0W25dKCl9ZWxzZSBlLmludGVydmFsJiYodC5wYXVzZSgpLHQuY3ljbGUoKSl9KX0scy5fZGF0YUFwaUNsaWNrSGFuZGxlcj1mdW5jdGlvbih0KXt2YXIgZT1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHRoaXMpO2lmKGUpe3ZhciBuPVAoZSlbMF07aWYobiYmUChuKS5oYXNDbGFzcyhCKSl7dmFyIGk9aCh7fSxQKG4pLmRhdGEoKSxQKHRoaXMpLmRhdGEoKSkscj10aGlzLmdldEF0dHJpYnV0ZShcImRhdGEtc2xpZGUtdG9cIik7ciYmKGkuaW50ZXJ2YWw9ITEpLHMuX2pRdWVyeUludGVyZmFjZS5jYWxsKFAobiksaSksciYmUChuKS5kYXRhKGopLnRvKHIpLHQucHJldmVudERlZmF1bHQoKX19fSxvKHMsbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBNfX1dKSxzfSgpLFAoZG9jdW1lbnQpLm9uKFEuQ0xJQ0tfREFUQV9BUEksWi5EQVRBX1NMSURFLCQuX2RhdGFBcGlDbGlja0hhbmRsZXIpLFAod2luZG93KS5vbihRLkxPQURfREFUQV9BUEksZnVuY3Rpb24oKXtQKFouREFUQV9SSURFKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9UCh0aGlzKTskLl9qUXVlcnlJbnRlcmZhY2UuY2FsbCh0LHQuZGF0YSgpKX0pfSksUC5mbltMXT0kLl9qUXVlcnlJbnRlcmZhY2UsUC5mbltMXS5Db25zdHJ1Y3Rvcj0kLFAuZm5bTF0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBQLmZuW0xdPVcsJC5falF1ZXJ5SW50ZXJmYWNlfSwkKSxibj0oZXQ9XCJjb2xsYXBzZVwiLGl0PVwiLlwiKyhudD1cImJzLmNvbGxhcHNlXCIpLHJ0PSh0dD1lKS5mbltldF0sc3Q9e3RvZ2dsZTohMCxwYXJlbnQ6XCJcIn0sb3Q9e3RvZ2dsZTpcImJvb2xlYW5cIixwYXJlbnQ6XCIoc3RyaW5nfGVsZW1lbnQpXCJ9LGF0PXtTSE9XOlwic2hvd1wiK2l0LFNIT1dOOlwic2hvd25cIitpdCxISURFOlwiaGlkZVwiK2l0LEhJRERFTjpcImhpZGRlblwiK2l0LENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitpdCtcIi5kYXRhLWFwaVwifSxsdD1cInNob3dcIixodD1cImNvbGxhcHNlXCIsY3Q9XCJjb2xsYXBzaW5nXCIsdXQ9XCJjb2xsYXBzZWRcIixmdD1cIndpZHRoXCIsZHQ9XCJoZWlnaHRcIixfdD17QUNUSVZFUzpcIi5zaG93LCAuY29sbGFwc2luZ1wiLERBVEFfVE9HR0xFOidbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSd9LGd0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh0LGUpe3RoaXMuX2lzVHJhbnNpdGlvbmluZz0hMSx0aGlzLl9lbGVtZW50PXQsdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl90cmlnZ2VyQXJyYXk9dHQubWFrZUFycmF5KHR0KCdbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXVtocmVmPVwiIycrdC5pZCsnXCJdLFtkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdW2RhdGEtdGFyZ2V0PVwiIycrdC5pZCsnXCJdJykpO2Zvcih2YXIgbj10dChfdC5EQVRBX1RPR0dMRSksaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgcj1uW2ldLHM9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudChyKTtudWxsIT09cyYmMDx0dChzKS5maWx0ZXIodCkubGVuZ3RoJiYodGhpcy5fc2VsZWN0b3I9cyx0aGlzLl90cmlnZ2VyQXJyYXkucHVzaChyKSl9dGhpcy5fcGFyZW50PXRoaXMuX2NvbmZpZy5wYXJlbnQ/dGhpcy5fZ2V0UGFyZW50KCk6bnVsbCx0aGlzLl9jb25maWcucGFyZW50fHx0aGlzLl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3ModGhpcy5fZWxlbWVudCx0aGlzLl90cmlnZ2VyQXJyYXkpLHRoaXMuX2NvbmZpZy50b2dnbGUmJnRoaXMudG9nZ2xlKCl9dmFyIHQ9YS5wcm90b3R5cGU7cmV0dXJuIHQudG9nZ2xlPWZ1bmN0aW9uKCl7dHQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobHQpP3RoaXMuaGlkZSgpOnRoaXMuc2hvdygpfSx0LnNob3c9ZnVuY3Rpb24oKXt2YXIgdCxlLG49dGhpcztpZighdGhpcy5faXNUcmFuc2l0aW9uaW5nJiYhdHQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobHQpJiYodGhpcy5fcGFyZW50JiYwPT09KHQ9dHQubWFrZUFycmF5KHR0KHRoaXMuX3BhcmVudCkuZmluZChfdC5BQ1RJVkVTKS5maWx0ZXIoJ1tkYXRhLXBhcmVudD1cIicrdGhpcy5fY29uZmlnLnBhcmVudCsnXCJdJykpKS5sZW5ndGgmJih0PW51bGwpLCEodCYmKGU9dHQodCkubm90KHRoaXMuX3NlbGVjdG9yKS5kYXRhKG50KSkmJmUuX2lzVHJhbnNpdGlvbmluZykpKXt2YXIgaT10dC5FdmVudChhdC5TSE9XKTtpZih0dCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKGkpLCFpLmlzRGVmYXVsdFByZXZlbnRlZCgpKXt0JiYoYS5falF1ZXJ5SW50ZXJmYWNlLmNhbGwodHQodCkubm90KHRoaXMuX3NlbGVjdG9yKSxcImhpZGVcIiksZXx8dHQodCkuZGF0YShudCxudWxsKSk7dmFyIHI9dGhpcy5fZ2V0RGltZW5zaW9uKCk7dHQodGhpcy5fZWxlbWVudCkucmVtb3ZlQ2xhc3MoaHQpLmFkZENsYXNzKGN0KSwodGhpcy5fZWxlbWVudC5zdHlsZVtyXT0wKTx0aGlzLl90cmlnZ2VyQXJyYXkubGVuZ3RoJiZ0dCh0aGlzLl90cmlnZ2VyQXJyYXkpLnJlbW92ZUNsYXNzKHV0KS5hdHRyKFwiYXJpYS1leHBhbmRlZFwiLCEwKSx0aGlzLnNldFRyYW5zaXRpb25pbmcoITApO3ZhciBzPVwic2Nyb2xsXCIrKHJbMF0udG9VcHBlckNhc2UoKStyLnNsaWNlKDEpKSxvPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO3R0KHRoaXMuX2VsZW1lbnQpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbigpe3R0KG4uX2VsZW1lbnQpLnJlbW92ZUNsYXNzKGN0KS5hZGRDbGFzcyhodCkuYWRkQ2xhc3MobHQpLG4uX2VsZW1lbnQuc3R5bGVbcl09XCJcIixuLnNldFRyYW5zaXRpb25pbmcoITEpLHR0KG4uX2VsZW1lbnQpLnRyaWdnZXIoYXQuU0hPV04pfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQobyksdGhpcy5fZWxlbWVudC5zdHlsZVtyXT10aGlzLl9lbGVtZW50W3NdK1wicHhcIn19fSx0LmhpZGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCF0aGlzLl9pc1RyYW5zaXRpb25pbmcmJnR0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKGx0KSl7dmFyIGU9dHQuRXZlbnQoYXQuSElERSk7aWYodHQodGhpcy5fZWxlbWVudCkudHJpZ2dlcihlKSwhZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIG49dGhpcy5fZ2V0RGltZW5zaW9uKCk7aWYodGhpcy5fZWxlbWVudC5zdHlsZVtuXT10aGlzLl9lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW25dK1wicHhcIixDbi5yZWZsb3codGhpcy5fZWxlbWVudCksdHQodGhpcy5fZWxlbWVudCkuYWRkQ2xhc3MoY3QpLnJlbW92ZUNsYXNzKGh0KS5yZW1vdmVDbGFzcyhsdCksMDx0aGlzLl90cmlnZ2VyQXJyYXkubGVuZ3RoKWZvcih2YXIgaT0wO2k8dGhpcy5fdHJpZ2dlckFycmF5Lmxlbmd0aDtpKyspe3ZhciByPXRoaXMuX3RyaWdnZXJBcnJheVtpXSxzPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQocik7aWYobnVsbCE9PXMpdHQocykuaGFzQ2xhc3MobHQpfHx0dChyKS5hZGRDbGFzcyh1dCkuYXR0cihcImFyaWEtZXhwYW5kZWRcIiwhMSl9dGhpcy5zZXRUcmFuc2l0aW9uaW5nKCEwKTt0aGlzLl9lbGVtZW50LnN0eWxlW25dPVwiXCI7dmFyIG89Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7dHQodGhpcy5fZWxlbWVudCkub25lKENuLlRSQU5TSVRJT05fRU5ELGZ1bmN0aW9uKCl7dC5zZXRUcmFuc2l0aW9uaW5nKCExKSx0dCh0Ll9lbGVtZW50KS5yZW1vdmVDbGFzcyhjdCkuYWRkQ2xhc3MoaHQpLnRyaWdnZXIoYXQuSElEREVOKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKG8pfX19LHQuc2V0VHJhbnNpdGlvbmluZz1mdW5jdGlvbih0KXt0aGlzLl9pc1RyYW5zaXRpb25pbmc9dH0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7dHQucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LG50KSx0aGlzLl9jb25maWc9bnVsbCx0aGlzLl9wYXJlbnQ9bnVsbCx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5fdHJpZ2dlckFycmF5PW51bGwsdGhpcy5faXNUcmFuc2l0aW9uaW5nPW51bGx9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4odD1oKHt9LHN0LHQpKS50b2dnbGU9Qm9vbGVhbih0LnRvZ2dsZSksQ24udHlwZUNoZWNrQ29uZmlnKGV0LHQsb3QpLHR9LHQuX2dldERpbWVuc2lvbj1mdW5jdGlvbigpe3JldHVybiB0dCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhmdCk/ZnQ6ZHR9LHQuX2dldFBhcmVudD1mdW5jdGlvbigpe3ZhciBuPXRoaXMsdD1udWxsO0NuLmlzRWxlbWVudCh0aGlzLl9jb25maWcucGFyZW50KT8odD10aGlzLl9jb25maWcucGFyZW50LFwidW5kZWZpbmVkXCIhPXR5cGVvZiB0aGlzLl9jb25maWcucGFyZW50LmpxdWVyeSYmKHQ9dGhpcy5fY29uZmlnLnBhcmVudFswXSkpOnQ9dHQodGhpcy5fY29uZmlnLnBhcmVudClbMF07dmFyIGU9J1tkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdW2RhdGEtcGFyZW50PVwiJyt0aGlzLl9jb25maWcucGFyZW50KydcIl0nO3JldHVybiB0dCh0KS5maW5kKGUpLmVhY2goZnVuY3Rpb24odCxlKXtuLl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3MoYS5fZ2V0VGFyZ2V0RnJvbUVsZW1lbnQoZSksW2VdKX0pLHR9LHQuX2FkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcz1mdW5jdGlvbih0LGUpe2lmKHQpe3ZhciBuPXR0KHQpLmhhc0NsYXNzKGx0KTswPGUubGVuZ3RoJiZ0dChlKS50b2dnbGVDbGFzcyh1dCwhbikuYXR0cihcImFyaWEtZXhwYW5kZWRcIixuKX19LGEuX2dldFRhcmdldEZyb21FbGVtZW50PWZ1bmN0aW9uKHQpe3ZhciBlPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodCk7cmV0dXJuIGU/dHQoZSlbMF06bnVsbH0sYS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD10dCh0aGlzKSxlPXQuZGF0YShudCksbj1oKHt9LHN0LHQuZGF0YSgpLFwib2JqZWN0XCI9PXR5cGVvZiBpJiZpKTtpZighZSYmbi50b2dnbGUmJi9zaG93fGhpZGUvLnRlc3QoaSkmJihuLnRvZ2dsZT0hMSksZXx8KGU9bmV3IGEodGhpcyxuKSx0LmRhdGEobnQsZSkpLFwic3RyaW5nXCI9PXR5cGVvZiBpKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgZVtpXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK2krJ1wiJyk7ZVtpXSgpfX0pfSxvKGEsbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBzdH19XSksYX0oKSx0dChkb2N1bWVudCkub24oYXQuQ0xJQ0tfREFUQV9BUEksX3QuREFUQV9UT0dHTEUsZnVuY3Rpb24odCl7XCJBXCI9PT10LmN1cnJlbnRUYXJnZXQudGFnTmFtZSYmdC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBuPXR0KHRoaXMpLGU9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0aGlzKTt0dChlKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9dHQodGhpcyksZT10LmRhdGEobnQpP1widG9nZ2xlXCI6bi5kYXRhKCk7Z3QuX2pRdWVyeUludGVyZmFjZS5jYWxsKHQsZSl9KX0pLHR0LmZuW2V0XT1ndC5falF1ZXJ5SW50ZXJmYWNlLHR0LmZuW2V0XS5Db25zdHJ1Y3Rvcj1ndCx0dC5mbltldF0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiB0dC5mbltldF09cnQsZ3QuX2pRdWVyeUludGVyZmFjZX0sZ3QpLFNuPShwdD1cImRyb3Bkb3duXCIsRXQ9XCIuXCIrKHZ0PVwiYnMuZHJvcGRvd25cIikseXQ9XCIuZGF0YS1hcGlcIixUdD0obXQ9ZSkuZm5bcHRdLEN0PW5ldyBSZWdFeHAoXCIzOHw0MHwyN1wiKSxJdD17SElERTpcImhpZGVcIitFdCxISURERU46XCJoaWRkZW5cIitFdCxTSE9XOlwic2hvd1wiK0V0LFNIT1dOOlwic2hvd25cIitFdCxDTElDSzpcImNsaWNrXCIrRXQsQ0xJQ0tfREFUQV9BUEk6XCJjbGlja1wiK0V0K3l0LEtFWURPV05fREFUQV9BUEk6XCJrZXlkb3duXCIrRXQreXQsS0VZVVBfREFUQV9BUEk6XCJrZXl1cFwiK0V0K3l0fSxBdD1cImRpc2FibGVkXCIsRHQ9XCJzaG93XCIsYnQ9XCJkcm9wdXBcIixTdD1cImRyb3ByaWdodFwiLHd0PVwiZHJvcGxlZnRcIixOdD1cImRyb3Bkb3duLW1lbnUtcmlnaHRcIixPdD1cInBvc2l0aW9uLXN0YXRpY1wiLGt0PSdbZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXScsUHQ9XCIuZHJvcGRvd24gZm9ybVwiLEx0PVwiLmRyb3Bkb3duLW1lbnVcIixqdD1cIi5uYXZiYXItbmF2XCIsUnQ9XCIuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpub3QoLmRpc2FibGVkKTpub3QoOmRpc2FibGVkKVwiLEh0PVwidG9wLXN0YXJ0XCIsV3Q9XCJ0b3AtZW5kXCIsTXQ9XCJib3R0b20tc3RhcnRcIix4dD1cImJvdHRvbS1lbmRcIixVdD1cInJpZ2h0LXN0YXJ0XCIsS3Q9XCJsZWZ0LXN0YXJ0XCIsRnQ9e29mZnNldDowLGZsaXA6ITAsYm91bmRhcnk6XCJzY3JvbGxQYXJlbnRcIixyZWZlcmVuY2U6XCJ0b2dnbGVcIixkaXNwbGF5OlwiZHluYW1pY1wifSxWdD17b2Zmc2V0OlwiKG51bWJlcnxzdHJpbmd8ZnVuY3Rpb24pXCIsZmxpcDpcImJvb2xlYW5cIixib3VuZGFyeTpcIihzdHJpbmd8ZWxlbWVudClcIixyZWZlcmVuY2U6XCIoc3RyaW5nfGVsZW1lbnQpXCIsZGlzcGxheTpcInN0cmluZ1wifSxRdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGwodCxlKXt0aGlzLl9lbGVtZW50PXQsdGhpcy5fcG9wcGVyPW51bGwsdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl9tZW51PXRoaXMuX2dldE1lbnVFbGVtZW50KCksdGhpcy5faW5OYXZiYXI9dGhpcy5fZGV0ZWN0TmF2YmFyKCksdGhpcy5fYWRkRXZlbnRMaXN0ZW5lcnMoKX12YXIgdD1sLnByb3RvdHlwZTtyZXR1cm4gdC50b2dnbGU9ZnVuY3Rpb24oKXtpZighdGhpcy5fZWxlbWVudC5kaXNhYmxlZCYmIW10KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEF0KSl7dmFyIHQ9bC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCksZT1tdCh0aGlzLl9tZW51KS5oYXNDbGFzcyhEdCk7aWYobC5fY2xlYXJNZW51cygpLCFlKXt2YXIgbj17cmVsYXRlZFRhcmdldDp0aGlzLl9lbGVtZW50fSxpPW10LkV2ZW50KEl0LlNIT1csbik7aWYobXQodCkudHJpZ2dlcihpKSwhaS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7aWYoIXRoaXMuX2luTmF2YmFyKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgYyl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQm9vdHN0cmFwIGRyb3Bkb3duIHJlcXVpcmUgUG9wcGVyLmpzIChodHRwczovL3BvcHBlci5qcy5vcmcpXCIpO3ZhciByPXRoaXMuX2VsZW1lbnQ7XCJwYXJlbnRcIj09PXRoaXMuX2NvbmZpZy5yZWZlcmVuY2U/cj10OkNuLmlzRWxlbWVudCh0aGlzLl9jb25maWcucmVmZXJlbmNlKSYmKHI9dGhpcy5fY29uZmlnLnJlZmVyZW5jZSxcInVuZGVmaW5lZFwiIT10eXBlb2YgdGhpcy5fY29uZmlnLnJlZmVyZW5jZS5qcXVlcnkmJihyPXRoaXMuX2NvbmZpZy5yZWZlcmVuY2VbMF0pKSxcInNjcm9sbFBhcmVudFwiIT09dGhpcy5fY29uZmlnLmJvdW5kYXJ5JiZtdCh0KS5hZGRDbGFzcyhPdCksdGhpcy5fcG9wcGVyPW5ldyBjKHIsdGhpcy5fbWVudSx0aGlzLl9nZXRQb3BwZXJDb25maWcoKSl9XCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmMD09PW10KHQpLmNsb3Nlc3QoanQpLmxlbmd0aCYmbXQoZG9jdW1lbnQuYm9keSkuY2hpbGRyZW4oKS5vbihcIm1vdXNlb3ZlclwiLG51bGwsbXQubm9vcCksdGhpcy5fZWxlbWVudC5mb2N1cygpLHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCEwKSxtdCh0aGlzLl9tZW51KS50b2dnbGVDbGFzcyhEdCksbXQodCkudG9nZ2xlQ2xhc3MoRHQpLnRyaWdnZXIobXQuRXZlbnQoSXQuU0hPV04sbikpfX19fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXttdC5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsdnQpLG10KHRoaXMuX2VsZW1lbnQpLm9mZihFdCksdGhpcy5fZWxlbWVudD1udWxsLCh0aGlzLl9tZW51PW51bGwpIT09dGhpcy5fcG9wcGVyJiYodGhpcy5fcG9wcGVyLmRlc3Ryb3koKSx0aGlzLl9wb3BwZXI9bnVsbCl9LHQudXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5faW5OYXZiYXI9dGhpcy5fZGV0ZWN0TmF2YmFyKCksbnVsbCE9PXRoaXMuX3BvcHBlciYmdGhpcy5fcG9wcGVyLnNjaGVkdWxlVXBkYXRlKCl9LHQuX2FkZEV2ZW50TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczttdCh0aGlzLl9lbGVtZW50KS5vbihJdC5DTElDSyxmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxlLnRvZ2dsZSgpfSl9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gdD1oKHt9LHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdCxtdCh0aGlzLl9lbGVtZW50KS5kYXRhKCksdCksQ24udHlwZUNoZWNrQ29uZmlnKHB0LHQsdGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0VHlwZSksdH0sdC5fZ2V0TWVudUVsZW1lbnQ9ZnVuY3Rpb24oKXtpZighdGhpcy5fbWVudSl7dmFyIHQ9bC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7dGhpcy5fbWVudT1tdCh0KS5maW5kKEx0KVswXX1yZXR1cm4gdGhpcy5fbWVudX0sdC5fZ2V0UGxhY2VtZW50PWZ1bmN0aW9uKCl7dmFyIHQ9bXQodGhpcy5fZWxlbWVudCkucGFyZW50KCksZT1NdDtyZXR1cm4gdC5oYXNDbGFzcyhidCk/KGU9SHQsbXQodGhpcy5fbWVudSkuaGFzQ2xhc3MoTnQpJiYoZT1XdCkpOnQuaGFzQ2xhc3MoU3QpP2U9VXQ6dC5oYXNDbGFzcyh3dCk/ZT1LdDptdCh0aGlzLl9tZW51KS5oYXNDbGFzcyhOdCkmJihlPXh0KSxlfSx0Ll9kZXRlY3ROYXZiYXI9ZnVuY3Rpb24oKXtyZXR1cm4gMDxtdCh0aGlzLl9lbGVtZW50KS5jbG9zZXN0KFwiLm5hdmJhclwiKS5sZW5ndGh9LHQuX2dldFBvcHBlckNvbmZpZz1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD17fTtcImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzLl9jb25maWcub2Zmc2V0P3QuZm49ZnVuY3Rpb24odCl7cmV0dXJuIHQub2Zmc2V0cz1oKHt9LHQub2Zmc2V0cyxlLl9jb25maWcub2Zmc2V0KHQub2Zmc2V0cyl8fHt9KSx0fTp0Lm9mZnNldD10aGlzLl9jb25maWcub2Zmc2V0O3ZhciBuPXtwbGFjZW1lbnQ6dGhpcy5fZ2V0UGxhY2VtZW50KCksbW9kaWZpZXJzOntvZmZzZXQ6dCxmbGlwOntlbmFibGVkOnRoaXMuX2NvbmZpZy5mbGlwfSxwcmV2ZW50T3ZlcmZsb3c6e2JvdW5kYXJpZXNFbGVtZW50OnRoaXMuX2NvbmZpZy5ib3VuZGFyeX19fTtyZXR1cm5cInN0YXRpY1wiPT09dGhpcy5fY29uZmlnLmRpc3BsYXkmJihuLm1vZGlmaWVycy5hcHBseVN0eWxlPXtlbmFibGVkOiExfSksbn0sbC5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1tdCh0aGlzKS5kYXRhKHZ0KTtpZih0fHwodD1uZXcgbCh0aGlzLFwib2JqZWN0XCI9PXR5cGVvZiBlP2U6bnVsbCksbXQodGhpcykuZGF0YSh2dCx0KSksXCJzdHJpbmdcIj09dHlwZW9mIGUpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiB0W2VdKXRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG1ldGhvZCBuYW1lZCBcIicrZSsnXCInKTt0W2VdKCl9fSl9LGwuX2NsZWFyTWVudXM9ZnVuY3Rpb24odCl7aWYoIXR8fDMhPT10LndoaWNoJiYoXCJrZXl1cFwiIT09dC50eXBlfHw5PT09dC53aGljaCkpZm9yKHZhciBlPW10Lm1ha2VBcnJheShtdChrdCkpLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9bC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQoZVtuXSkscj1tdChlW25dKS5kYXRhKHZ0KSxzPXtyZWxhdGVkVGFyZ2V0OmVbbl19O2lmKHIpe3ZhciBvPXIuX21lbnU7aWYobXQoaSkuaGFzQ2xhc3MoRHQpJiYhKHQmJihcImNsaWNrXCI9PT10LnR5cGUmJi9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QodC50YXJnZXQudGFnTmFtZSl8fFwia2V5dXBcIj09PXQudHlwZSYmOT09PXQud2hpY2gpJiZtdC5jb250YWlucyhpLHQudGFyZ2V0KSkpe3ZhciBhPW10LkV2ZW50KEl0LkhJREUscyk7bXQoaSkudHJpZ2dlcihhKSxhLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwoXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmbXQoZG9jdW1lbnQuYm9keSkuY2hpbGRyZW4oKS5vZmYoXCJtb3VzZW92ZXJcIixudWxsLG10Lm5vb3ApLGVbbl0uc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLFwiZmFsc2VcIiksbXQobykucmVtb3ZlQ2xhc3MoRHQpLG10KGkpLnJlbW92ZUNsYXNzKER0KS50cmlnZ2VyKG10LkV2ZW50KEl0LkhJRERFTixzKSkpfX19fSxsLl9nZXRQYXJlbnRGcm9tRWxlbWVudD1mdW5jdGlvbih0KXt2YXIgZSxuPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodCk7cmV0dXJuIG4mJihlPW10KG4pWzBdKSxlfHx0LnBhcmVudE5vZGV9LGwuX2RhdGFBcGlLZXlkb3duSGFuZGxlcj1mdW5jdGlvbih0KXtpZigoL2lucHV0fHRleHRhcmVhL2kudGVzdCh0LnRhcmdldC50YWdOYW1lKT8hKDMyPT09dC53aGljaHx8MjchPT10LndoaWNoJiYoNDAhPT10LndoaWNoJiYzOCE9PXQud2hpY2h8fG10KHQudGFyZ2V0KS5jbG9zZXN0KEx0KS5sZW5ndGgpKTpDdC50ZXN0KHQud2hpY2gpKSYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLCF0aGlzLmRpc2FibGVkJiYhbXQodGhpcykuaGFzQ2xhc3MoQXQpKSl7dmFyIGU9bC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQodGhpcyksbj1tdChlKS5oYXNDbGFzcyhEdCk7aWYoKG58fDI3PT09dC53aGljaCYmMzI9PT10LndoaWNoKSYmKCFufHwyNyE9PXQud2hpY2gmJjMyIT09dC53aGljaCkpe3ZhciBpPW10KGUpLmZpbmQoUnQpLmdldCgpO2lmKDAhPT1pLmxlbmd0aCl7dmFyIHI9aS5pbmRleE9mKHQudGFyZ2V0KTszOD09PXQud2hpY2gmJjA8ciYmci0tLDQwPT09dC53aGljaCYmcjxpLmxlbmd0aC0xJiZyKysscjwwJiYocj0wKSxpW3JdLmZvY3VzKCl9fWVsc2V7aWYoMjc9PT10LndoaWNoKXt2YXIgcz1tdChlKS5maW5kKGt0KVswXTttdChzKS50cmlnZ2VyKFwiZm9jdXNcIil9bXQodGhpcykudHJpZ2dlcihcImNsaWNrXCIpfX19LG8obCxudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19LHtrZXk6XCJEZWZhdWx0XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEZ0fX0se2tleTpcIkRlZmF1bHRUeXBlXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFZ0fX1dKSxsfSgpLG10KGRvY3VtZW50KS5vbihJdC5LRVlET1dOX0RBVEFfQVBJLGt0LFF0Ll9kYXRhQXBpS2V5ZG93bkhhbmRsZXIpLm9uKEl0LktFWURPV05fREFUQV9BUEksTHQsUXQuX2RhdGFBcGlLZXlkb3duSGFuZGxlcikub24oSXQuQ0xJQ0tfREFUQV9BUEkrXCIgXCIrSXQuS0VZVVBfREFUQV9BUEksUXQuX2NsZWFyTWVudXMpLm9uKEl0LkNMSUNLX0RBVEFfQVBJLGt0LGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLFF0Ll9qUXVlcnlJbnRlcmZhY2UuY2FsbChtdCh0aGlzKSxcInRvZ2dsZVwiKX0pLm9uKEl0LkNMSUNLX0RBVEFfQVBJLFB0LGZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9KSxtdC5mbltwdF09UXQuX2pRdWVyeUludGVyZmFjZSxtdC5mbltwdF0uQ29uc3RydWN0b3I9UXQsbXQuZm5bcHRdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbXQuZm5bcHRdPVR0LFF0Ll9qUXVlcnlJbnRlcmZhY2V9LFF0KSx3bj0oWXQ9XCJtb2RhbFwiLHF0PVwiLlwiKyhHdD1cImJzLm1vZGFsXCIpLHp0PShCdD1lKS5mbltZdF0sWHQ9e2JhY2tkcm9wOiEwLGtleWJvYXJkOiEwLGZvY3VzOiEwLHNob3c6ITB9LEp0PXtiYWNrZHJvcDpcIihib29sZWFufHN0cmluZylcIixrZXlib2FyZDpcImJvb2xlYW5cIixmb2N1czpcImJvb2xlYW5cIixzaG93OlwiYm9vbGVhblwifSxadD17SElERTpcImhpZGVcIitxdCxISURERU46XCJoaWRkZW5cIitxdCxTSE9XOlwic2hvd1wiK3F0LFNIT1dOOlwic2hvd25cIitxdCxGT0NVU0lOOlwiZm9jdXNpblwiK3F0LFJFU0laRTpcInJlc2l6ZVwiK3F0LENMSUNLX0RJU01JU1M6XCJjbGljay5kaXNtaXNzXCIrcXQsS0VZRE9XTl9ESVNNSVNTOlwia2V5ZG93bi5kaXNtaXNzXCIrcXQsTU9VU0VVUF9ESVNNSVNTOlwibW91c2V1cC5kaXNtaXNzXCIrcXQsTU9VU0VET1dOX0RJU01JU1M6XCJtb3VzZWRvd24uZGlzbWlzc1wiK3F0LENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitxdCtcIi5kYXRhLWFwaVwifSwkdD1cIm1vZGFsLXNjcm9sbGJhci1tZWFzdXJlXCIsdGU9XCJtb2RhbC1iYWNrZHJvcFwiLGVlPVwibW9kYWwtb3BlblwiLG5lPVwiZmFkZVwiLGllPVwic2hvd1wiLHJlPXtESUFMT0c6XCIubW9kYWwtZGlhbG9nXCIsREFUQV9UT0dHTEU6J1tkYXRhLXRvZ2dsZT1cIm1vZGFsXCJdJyxEQVRBX0RJU01JU1M6J1tkYXRhLWRpc21pc3M9XCJtb2RhbFwiXScsRklYRURfQ09OVEVOVDpcIi5maXhlZC10b3AsIC5maXhlZC1ib3R0b20sIC5pcy1maXhlZCwgLnN0aWNreS10b3BcIixTVElDS1lfQ09OVEVOVDpcIi5zdGlja3ktdG9wXCIsTkFWQkFSX1RPR0dMRVI6XCIubmF2YmFyLXRvZ2dsZXJcIn0sc2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQsZSl7dGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl9lbGVtZW50PXQsdGhpcy5fZGlhbG9nPUJ0KHQpLmZpbmQocmUuRElBTE9HKVswXSx0aGlzLl9iYWNrZHJvcD1udWxsLHRoaXMuX2lzU2hvd249ITEsdGhpcy5faXNCb2R5T3ZlcmZsb3dpbmc9ITEsdGhpcy5faWdub3JlQmFja2Ryb3BDbGljaz0hMSx0aGlzLl9zY3JvbGxiYXJXaWR0aD0wfXZhciB0PXIucHJvdG90eXBlO3JldHVybiB0LnRvZ2dsZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faXNTaG93bj90aGlzLmhpZGUoKTp0aGlzLnNob3codCl9LHQuc2hvdz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKCF0aGlzLl9pc1RyYW5zaXRpb25pbmcmJiF0aGlzLl9pc1Nob3duKXtCdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhuZSkmJih0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITApO3ZhciBuPUJ0LkV2ZW50KFp0LlNIT1cse3JlbGF0ZWRUYXJnZXQ6dH0pO0J0KHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIobiksdGhpcy5faXNTaG93bnx8bi5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KHRoaXMuX2lzU2hvd249ITAsdGhpcy5fY2hlY2tTY3JvbGxiYXIoKSx0aGlzLl9zZXRTY3JvbGxiYXIoKSx0aGlzLl9hZGp1c3REaWFsb2coKSxCdChkb2N1bWVudC5ib2R5KS5hZGRDbGFzcyhlZSksdGhpcy5fc2V0RXNjYXBlRXZlbnQoKSx0aGlzLl9zZXRSZXNpemVFdmVudCgpLEJ0KHRoaXMuX2VsZW1lbnQpLm9uKFp0LkNMSUNLX0RJU01JU1MscmUuREFUQV9ESVNNSVNTLGZ1bmN0aW9uKHQpe3JldHVybiBlLmhpZGUodCl9KSxCdCh0aGlzLl9kaWFsb2cpLm9uKFp0Lk1PVVNFRE9XTl9ESVNNSVNTLGZ1bmN0aW9uKCl7QnQoZS5fZWxlbWVudCkub25lKFp0Lk1PVVNFVVBfRElTTUlTUyxmdW5jdGlvbih0KXtCdCh0LnRhcmdldCkuaXMoZS5fZWxlbWVudCkmJihlLl9pZ25vcmVCYWNrZHJvcENsaWNrPSEwKX0pfSksdGhpcy5fc2hvd0JhY2tkcm9wKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX3Nob3dFbGVtZW50KHQpfSkpfX0sdC5oaWRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodCYmdC5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLl9pc1RyYW5zaXRpb25pbmcmJnRoaXMuX2lzU2hvd24pe3ZhciBuPUJ0LkV2ZW50KFp0LkhJREUpO2lmKEJ0KHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIobiksdGhpcy5faXNTaG93biYmIW4uaXNEZWZhdWx0UHJldmVudGVkKCkpe3RoaXMuX2lzU2hvd249ITE7dmFyIGk9QnQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobmUpO2lmKGkmJih0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITApLHRoaXMuX3NldEVzY2FwZUV2ZW50KCksdGhpcy5fc2V0UmVzaXplRXZlbnQoKSxCdChkb2N1bWVudCkub2ZmKFp0LkZPQ1VTSU4pLEJ0KHRoaXMuX2VsZW1lbnQpLnJlbW92ZUNsYXNzKGllKSxCdCh0aGlzLl9lbGVtZW50KS5vZmYoWnQuQ0xJQ0tfRElTTUlTUyksQnQodGhpcy5fZGlhbG9nKS5vZmYoWnQuTU9VU0VET1dOX0RJU01JU1MpLGkpe3ZhciByPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO0J0KHRoaXMuX2VsZW1lbnQpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbih0KXtyZXR1cm4gZS5faGlkZU1vZGFsKHQpfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQocil9ZWxzZSB0aGlzLl9oaWRlTW9kYWwoKX19fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtCdC5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsR3QpLEJ0KHdpbmRvdyxkb2N1bWVudCx0aGlzLl9lbGVtZW50LHRoaXMuX2JhY2tkcm9wKS5vZmYocXQpLHRoaXMuX2NvbmZpZz1udWxsLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLl9kaWFsb2c9bnVsbCx0aGlzLl9iYWNrZHJvcD1udWxsLHRoaXMuX2lzU2hvd249bnVsbCx0aGlzLl9pc0JvZHlPdmVyZmxvd2luZz1udWxsLHRoaXMuX2lnbm9yZUJhY2tkcm9wQ2xpY2s9bnVsbCx0aGlzLl9zY3JvbGxiYXJXaWR0aD1udWxsfSx0LmhhbmRsZVVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuX2FkanVzdERpYWxvZygpfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9aCh7fSxYdCx0KSxDbi50eXBlQ2hlY2tDb25maWcoWXQsdCxKdCksdH0sdC5fc2hvd0VsZW1lbnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPUJ0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKG5lKTt0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUmJnRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFfHxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpLHRoaXMuX2VsZW1lbnQuc3R5bGUuZGlzcGxheT1cImJsb2NrXCIsdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoXCJhcmlhLWhpZGRlblwiKSx0aGlzLl9lbGVtZW50LnNjcm9sbFRvcD0wLG4mJkNuLnJlZmxvdyh0aGlzLl9lbGVtZW50KSxCdCh0aGlzLl9lbGVtZW50KS5hZGRDbGFzcyhpZSksdGhpcy5fY29uZmlnLmZvY3VzJiZ0aGlzLl9lbmZvcmNlRm9jdXMoKTt2YXIgaT1CdC5FdmVudChadC5TSE9XTix7cmVsYXRlZFRhcmdldDp0fSkscj1mdW5jdGlvbigpe2UuX2NvbmZpZy5mb2N1cyYmZS5fZWxlbWVudC5mb2N1cygpLGUuX2lzVHJhbnNpdGlvbmluZz0hMSxCdChlLl9lbGVtZW50KS50cmlnZ2VyKGkpfTtpZihuKXt2YXIgcz1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KTtCdCh0aGlzLl9kaWFsb2cpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxyKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChzKX1lbHNlIHIoKX0sdC5fZW5mb3JjZUZvY3VzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztCdChkb2N1bWVudCkub2ZmKFp0LkZPQ1VTSU4pLm9uKFp0LkZPQ1VTSU4sZnVuY3Rpb24odCl7ZG9jdW1lbnQhPT10LnRhcmdldCYmZS5fZWxlbWVudCE9PXQudGFyZ2V0JiYwPT09QnQoZS5fZWxlbWVudCkuaGFzKHQudGFyZ2V0KS5sZW5ndGgmJmUuX2VsZW1lbnQuZm9jdXMoKX0pfSx0Ll9zZXRFc2NhcGVFdmVudD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5faXNTaG93biYmdGhpcy5fY29uZmlnLmtleWJvYXJkP0J0KHRoaXMuX2VsZW1lbnQpLm9uKFp0LktFWURPV05fRElTTUlTUyxmdW5jdGlvbih0KXsyNz09PXQud2hpY2gmJih0LnByZXZlbnREZWZhdWx0KCksZS5oaWRlKCkpfSk6dGhpcy5faXNTaG93bnx8QnQodGhpcy5fZWxlbWVudCkub2ZmKFp0LktFWURPV05fRElTTUlTUyl9LHQuX3NldFJlc2l6ZUV2ZW50PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9pc1Nob3duP0J0KHdpbmRvdykub24oWnQuUkVTSVpFLGZ1bmN0aW9uKHQpe3JldHVybiBlLmhhbmRsZVVwZGF0ZSh0KX0pOkJ0KHdpbmRvdykub2ZmKFp0LlJFU0laRSl9LHQuX2hpZGVNb2RhbD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fZWxlbWVudC5zdHlsZS5kaXNwbGF5PVwibm9uZVwiLHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIiwhMCksdGhpcy5faXNUcmFuc2l0aW9uaW5nPSExLHRoaXMuX3Nob3dCYWNrZHJvcChmdW5jdGlvbigpe0J0KGRvY3VtZW50LmJvZHkpLnJlbW92ZUNsYXNzKGVlKSx0Ll9yZXNldEFkanVzdG1lbnRzKCksdC5fcmVzZXRTY3JvbGxiYXIoKSxCdCh0Ll9lbGVtZW50KS50cmlnZ2VyKFp0LkhJRERFTil9KX0sdC5fcmVtb3ZlQmFja2Ryb3A9ZnVuY3Rpb24oKXt0aGlzLl9iYWNrZHJvcCYmKEJ0KHRoaXMuX2JhY2tkcm9wKS5yZW1vdmUoKSx0aGlzLl9iYWNrZHJvcD1udWxsKX0sdC5fc2hvd0JhY2tkcm9wPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1CdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhuZSk/bmU6XCJcIjtpZih0aGlzLl9pc1Nob3duJiZ0aGlzLl9jb25maWcuYmFja2Ryb3Ape2lmKHRoaXMuX2JhY2tkcm9wPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksdGhpcy5fYmFja2Ryb3AuY2xhc3NOYW1lPXRlLG4mJkJ0KHRoaXMuX2JhY2tkcm9wKS5hZGRDbGFzcyhuKSxCdCh0aGlzLl9iYWNrZHJvcCkuYXBwZW5kVG8oZG9jdW1lbnQuYm9keSksQnQodGhpcy5fZWxlbWVudCkub24oWnQuQ0xJQ0tfRElTTUlTUyxmdW5jdGlvbih0KXtlLl9pZ25vcmVCYWNrZHJvcENsaWNrP2UuX2lnbm9yZUJhY2tkcm9wQ2xpY2s9ITE6dC50YXJnZXQ9PT10LmN1cnJlbnRUYXJnZXQmJihcInN0YXRpY1wiPT09ZS5fY29uZmlnLmJhY2tkcm9wP2UuX2VsZW1lbnQuZm9jdXMoKTplLmhpZGUoKSl9KSxuJiZDbi5yZWZsb3codGhpcy5fYmFja2Ryb3ApLEJ0KHRoaXMuX2JhY2tkcm9wKS5hZGRDbGFzcyhpZSksIXQpcmV0dXJuO2lmKCFuKXJldHVybiB2b2lkIHQoKTt2YXIgaT1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9iYWNrZHJvcCk7QnQodGhpcy5fYmFja2Ryb3ApLm9uZShDbi5UUkFOU0lUSU9OX0VORCx0KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChpKX1lbHNlIGlmKCF0aGlzLl9pc1Nob3duJiZ0aGlzLl9iYWNrZHJvcCl7QnQodGhpcy5fYmFja2Ryb3ApLnJlbW92ZUNsYXNzKGllKTt2YXIgcj1mdW5jdGlvbigpe2UuX3JlbW92ZUJhY2tkcm9wKCksdCYmdCgpfTtpZihCdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhuZSkpe3ZhciBzPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2JhY2tkcm9wKTtCdCh0aGlzLl9iYWNrZHJvcCkub25lKENuLlRSQU5TSVRJT05fRU5ELHIpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKHMpfWVsc2UgcigpfWVsc2UgdCYmdCgpfSx0Ll9hZGp1c3REaWFsb2c9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9lbGVtZW50LnNjcm9sbEhlaWdodD5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OyF0aGlzLl9pc0JvZHlPdmVyZmxvd2luZyYmdCYmKHRoaXMuX2VsZW1lbnQuc3R5bGUucGFkZGluZ0xlZnQ9dGhpcy5fc2Nyb2xsYmFyV2lkdGgrXCJweFwiKSx0aGlzLl9pc0JvZHlPdmVyZmxvd2luZyYmIXQmJih0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdSaWdodD10aGlzLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfSx0Ll9yZXNldEFkanVzdG1lbnRzPWZ1bmN0aW9uKCl7dGhpcy5fZWxlbWVudC5zdHlsZS5wYWRkaW5nTGVmdD1cIlwiLHRoaXMuX2VsZW1lbnQuc3R5bGUucGFkZGluZ1JpZ2h0PVwiXCJ9LHQuX2NoZWNrU2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuYm9keS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLl9pc0JvZHlPdmVyZmxvd2luZz10LmxlZnQrdC5yaWdodDx3aW5kb3cuaW5uZXJXaWR0aCx0aGlzLl9zY3JvbGxiYXJXaWR0aD10aGlzLl9nZXRTY3JvbGxiYXJXaWR0aCgpfSx0Ll9zZXRTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgcj10aGlzO2lmKHRoaXMuX2lzQm9keU92ZXJmbG93aW5nKXtCdChyZS5GSVhFRF9DT05URU5UKS5lYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49QnQoZSlbMF0uc3R5bGUucGFkZGluZ1JpZ2h0LGk9QnQoZSkuY3NzKFwicGFkZGluZy1yaWdodFwiKTtCdChlKS5kYXRhKFwicGFkZGluZy1yaWdodFwiLG4pLmNzcyhcInBhZGRpbmctcmlnaHRcIixwYXJzZUZsb2F0KGkpK3IuX3Njcm9sbGJhcldpZHRoK1wicHhcIil9KSxCdChyZS5TVElDS1lfQ09OVEVOVCkuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpWzBdLnN0eWxlLm1hcmdpblJpZ2h0LGk9QnQoZSkuY3NzKFwibWFyZ2luLXJpZ2h0XCIpO0J0KGUpLmRhdGEoXCJtYXJnaW4tcmlnaHRcIixuKS5jc3MoXCJtYXJnaW4tcmlnaHRcIixwYXJzZUZsb2F0KGkpLXIuX3Njcm9sbGJhcldpZHRoK1wicHhcIil9KSxCdChyZS5OQVZCQVJfVE9HR0xFUikuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpWzBdLnN0eWxlLm1hcmdpblJpZ2h0LGk9QnQoZSkuY3NzKFwibWFyZ2luLXJpZ2h0XCIpO0J0KGUpLmRhdGEoXCJtYXJnaW4tcmlnaHRcIixuKS5jc3MoXCJtYXJnaW4tcmlnaHRcIixwYXJzZUZsb2F0KGkpK3IuX3Njcm9sbGJhcldpZHRoK1wicHhcIil9KTt2YXIgdD1kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCxlPUJ0KGRvY3VtZW50LmJvZHkpLmNzcyhcInBhZGRpbmctcmlnaHRcIik7QnQoZG9jdW1lbnQuYm9keSkuZGF0YShcInBhZGRpbmctcmlnaHRcIix0KS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIscGFyc2VGbG9hdChlKSt0aGlzLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfX0sdC5fcmVzZXRTY3JvbGxiYXI9ZnVuY3Rpb24oKXtCdChyZS5GSVhFRF9DT05URU5UKS5lYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49QnQoZSkuZGF0YShcInBhZGRpbmctcmlnaHRcIik7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIG4mJkJ0KGUpLmNzcyhcInBhZGRpbmctcmlnaHRcIixuKS5yZW1vdmVEYXRhKFwicGFkZGluZy1yaWdodFwiKX0pLEJ0KHJlLlNUSUNLWV9DT05URU5UK1wiLCBcIityZS5OQVZCQVJfVE9HR0xFUikuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpLmRhdGEoXCJtYXJnaW4tcmlnaHRcIik7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIG4mJkJ0KGUpLmNzcyhcIm1hcmdpbi1yaWdodFwiLG4pLnJlbW92ZURhdGEoXCJtYXJnaW4tcmlnaHRcIil9KTt2YXIgdD1CdChkb2N1bWVudC5ib2R5KS5kYXRhKFwicGFkZGluZy1yaWdodFwiKTtcInVuZGVmaW5lZFwiIT10eXBlb2YgdCYmQnQoZG9jdW1lbnQuYm9keSkuY3NzKFwicGFkZGluZy1yaWdodFwiLHQpLnJlbW92ZURhdGEoXCJwYWRkaW5nLXJpZ2h0XCIpfSx0Ll9nZXRTY3JvbGxiYXJXaWR0aD1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7dC5jbGFzc05hbWU9JHQsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KTt2YXIgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLXQuY2xpZW50V2lkdGg7cmV0dXJuIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodCksZX0sci5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4saSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PUJ0KHRoaXMpLmRhdGEoR3QpLGU9aCh7fSxyLkRlZmF1bHQsQnQodGhpcykuZGF0YSgpLFwib2JqZWN0XCI9PXR5cGVvZiBuJiZuKTtpZih0fHwodD1uZXcgcih0aGlzLGUpLEJ0KHRoaXMpLmRhdGEoR3QsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBuKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK24rJ1wiJyk7dFtuXShpKX1lbHNlIGUuc2hvdyYmdC5zaG93KGkpfSl9LG8ocixudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19LHtrZXk6XCJEZWZhdWx0XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFh0fX1dKSxyfSgpLEJ0KGRvY3VtZW50KS5vbihadC5DTElDS19EQVRBX0FQSSxyZS5EQVRBX1RPR0dMRSxmdW5jdGlvbih0KXt2YXIgZSxuPXRoaXMsaT1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHRoaXMpO2kmJihlPUJ0KGkpWzBdKTt2YXIgcj1CdChlKS5kYXRhKEd0KT9cInRvZ2dsZVwiOmgoe30sQnQoZSkuZGF0YSgpLEJ0KHRoaXMpLmRhdGEoKSk7XCJBXCIhPT10aGlzLnRhZ05hbWUmJlwiQVJFQVwiIT09dGhpcy50YWdOYW1lfHx0LnByZXZlbnREZWZhdWx0KCk7dmFyIHM9QnQoZSkub25lKFp0LlNIT1csZnVuY3Rpb24odCl7dC5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8cy5vbmUoWnQuSElEREVOLGZ1bmN0aW9uKCl7QnQobikuaXMoXCI6dmlzaWJsZVwiKSYmbi5mb2N1cygpfSl9KTtzZS5falF1ZXJ5SW50ZXJmYWNlLmNhbGwoQnQoZSkscix0aGlzKX0pLEJ0LmZuW1l0XT1zZS5falF1ZXJ5SW50ZXJmYWNlLEJ0LmZuW1l0XS5Db25zdHJ1Y3Rvcj1zZSxCdC5mbltZdF0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBCdC5mbltZdF09enQsc2UuX2pRdWVyeUludGVyZmFjZX0sc2UpLE5uPShhZT1cInRvb2x0aXBcIixoZT1cIi5cIisobGU9XCJicy50b29sdGlwXCIpLGNlPShvZT1lKS5mblthZV0sdWU9XCJicy10b29sdGlwXCIsZmU9bmV3IFJlZ0V4cChcIihefFxcXFxzKVwiK3VlK1wiXFxcXFMrXCIsXCJnXCIpLGdlPXthbmltYXRpb246ITAsdGVtcGxhdGU6JzxkaXYgY2xhc3M9XCJ0b29sdGlwXCIgcm9sZT1cInRvb2x0aXBcIj48ZGl2IGNsYXNzPVwiYXJyb3dcIj48L2Rpdj48ZGl2IGNsYXNzPVwidG9vbHRpcC1pbm5lclwiPjwvZGl2PjwvZGl2PicsdHJpZ2dlcjpcImhvdmVyIGZvY3VzXCIsdGl0bGU6XCJcIixkZWxheTowLGh0bWw6IShfZT17QVVUTzpcImF1dG9cIixUT1A6XCJ0b3BcIixSSUdIVDpcInJpZ2h0XCIsQk9UVE9NOlwiYm90dG9tXCIsTEVGVDpcImxlZnRcIn0pLHNlbGVjdG9yOiEoZGU9e2FuaW1hdGlvbjpcImJvb2xlYW5cIix0ZW1wbGF0ZTpcInN0cmluZ1wiLHRpdGxlOlwiKHN0cmluZ3xlbGVtZW50fGZ1bmN0aW9uKVwiLHRyaWdnZXI6XCJzdHJpbmdcIixkZWxheTpcIihudW1iZXJ8b2JqZWN0KVwiLGh0bWw6XCJib29sZWFuXCIsc2VsZWN0b3I6XCIoc3RyaW5nfGJvb2xlYW4pXCIscGxhY2VtZW50OlwiKHN0cmluZ3xmdW5jdGlvbilcIixvZmZzZXQ6XCIobnVtYmVyfHN0cmluZylcIixjb250YWluZXI6XCIoc3RyaW5nfGVsZW1lbnR8Ym9vbGVhbilcIixmYWxsYmFja1BsYWNlbWVudDpcIihzdHJpbmd8YXJyYXkpXCIsYm91bmRhcnk6XCIoc3RyaW5nfGVsZW1lbnQpXCJ9KSxwbGFjZW1lbnQ6XCJ0b3BcIixvZmZzZXQ6MCxjb250YWluZXI6ITEsZmFsbGJhY2tQbGFjZW1lbnQ6XCJmbGlwXCIsYm91bmRhcnk6XCJzY3JvbGxQYXJlbnRcIn0scGU9XCJvdXRcIix2ZT17SElERTpcImhpZGVcIitoZSxISURERU46XCJoaWRkZW5cIitoZSxTSE9XOihtZT1cInNob3dcIikraGUsU0hPV046XCJzaG93blwiK2hlLElOU0VSVEVEOlwiaW5zZXJ0ZWRcIitoZSxDTElDSzpcImNsaWNrXCIraGUsRk9DVVNJTjpcImZvY3VzaW5cIitoZSxGT0NVU09VVDpcImZvY3Vzb3V0XCIraGUsTU9VU0VFTlRFUjpcIm1vdXNlZW50ZXJcIitoZSxNT1VTRUxFQVZFOlwibW91c2VsZWF2ZVwiK2hlfSxFZT1cImZhZGVcIix5ZT1cInNob3dcIixUZT1cIi50b29sdGlwLWlubmVyXCIsQ2U9XCIuYXJyb3dcIixJZT1cImhvdmVyXCIsQWU9XCJmb2N1c1wiLERlPVwiY2xpY2tcIixiZT1cIm1hbnVhbFwiLFNlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaSh0LGUpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBjKXRocm93IG5ldyBUeXBlRXJyb3IoXCJCb290c3RyYXAgdG9vbHRpcHMgcmVxdWlyZSBQb3BwZXIuanMgKGh0dHBzOi8vcG9wcGVyLmpzLm9yZylcIik7dGhpcy5faXNFbmFibGVkPSEwLHRoaXMuX3RpbWVvdXQ9MCx0aGlzLl9ob3ZlclN0YXRlPVwiXCIsdGhpcy5fYWN0aXZlVHJpZ2dlcj17fSx0aGlzLl9wb3BwZXI9bnVsbCx0aGlzLmVsZW1lbnQ9dCx0aGlzLmNvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy50aXA9bnVsbCx0aGlzLl9zZXRMaXN0ZW5lcnMoKX12YXIgdD1pLnByb3RvdHlwZTtyZXR1cm4gdC5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLl9pc0VuYWJsZWQ9ITB9LHQuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuX2lzRW5hYmxlZD0hMX0sdC50b2dnbGVFbmFibGVkPWZ1bmN0aW9uKCl7dGhpcy5faXNFbmFibGVkPSF0aGlzLl9pc0VuYWJsZWR9LHQudG9nZ2xlPWZ1bmN0aW9uKHQpe2lmKHRoaXMuX2lzRW5hYmxlZClpZih0KXt2YXIgZT10aGlzLmNvbnN0cnVjdG9yLkRBVEFfS0VZLG49b2UodC5jdXJyZW50VGFyZ2V0KS5kYXRhKGUpO258fChuPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHQuY3VycmVudFRhcmdldCx0aGlzLl9nZXREZWxlZ2F0ZUNvbmZpZygpKSxvZSh0LmN1cnJlbnRUYXJnZXQpLmRhdGEoZSxuKSksbi5fYWN0aXZlVHJpZ2dlci5jbGljaz0hbi5fYWN0aXZlVHJpZ2dlci5jbGljayxuLl9pc1dpdGhBY3RpdmVUcmlnZ2VyKCk/bi5fZW50ZXIobnVsbCxuKTpuLl9sZWF2ZShudWxsLG4pfWVsc2V7aWYob2UodGhpcy5nZXRUaXBFbGVtZW50KCkpLmhhc0NsYXNzKHllKSlyZXR1cm4gdm9pZCB0aGlzLl9sZWF2ZShudWxsLHRoaXMpO3RoaXMuX2VudGVyKG51bGwsdGhpcyl9fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCksb2UucmVtb3ZlRGF0YSh0aGlzLmVsZW1lbnQsdGhpcy5jb25zdHJ1Y3Rvci5EQVRBX0tFWSksb2UodGhpcy5lbGVtZW50KS5vZmYodGhpcy5jb25zdHJ1Y3Rvci5FVkVOVF9LRVkpLG9lKHRoaXMuZWxlbWVudCkuY2xvc2VzdChcIi5tb2RhbFwiKS5vZmYoXCJoaWRlLmJzLm1vZGFsXCIpLHRoaXMudGlwJiZvZSh0aGlzLnRpcCkucmVtb3ZlKCksdGhpcy5faXNFbmFibGVkPW51bGwsdGhpcy5fdGltZW91dD1udWxsLHRoaXMuX2hvdmVyU3RhdGU9bnVsbCwodGhpcy5fYWN0aXZlVHJpZ2dlcj1udWxsKSE9PXRoaXMuX3BvcHBlciYmdGhpcy5fcG9wcGVyLmRlc3Ryb3koKSx0aGlzLl9wb3BwZXI9bnVsbCx0aGlzLmVsZW1lbnQ9bnVsbCx0aGlzLmNvbmZpZz1udWxsLHRoaXMudGlwPW51bGx9LHQuc2hvdz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoXCJub25lXCI9PT1vZSh0aGlzLmVsZW1lbnQpLmNzcyhcImRpc3BsYXlcIikpdGhyb3cgbmV3IEVycm9yKFwiUGxlYXNlIHVzZSBzaG93IG9uIHZpc2libGUgZWxlbWVudHNcIik7dmFyIHQ9b2UuRXZlbnQodGhpcy5jb25zdHJ1Y3Rvci5FdmVudC5TSE9XKTtpZih0aGlzLmlzV2l0aENvbnRlbnQoKSYmdGhpcy5faXNFbmFibGVkKXtvZSh0aGlzLmVsZW1lbnQpLnRyaWdnZXIodCk7dmFyIG49b2UuY29udGFpbnModGhpcy5lbGVtZW50Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHRoaXMuZWxlbWVudCk7aWYodC5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8IW4pcmV0dXJuO3ZhciBpPXRoaXMuZ2V0VGlwRWxlbWVudCgpLHI9Q24uZ2V0VUlEKHRoaXMuY29uc3RydWN0b3IuTkFNRSk7aS5zZXRBdHRyaWJ1dGUoXCJpZFwiLHIpLHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWRlc2NyaWJlZGJ5XCIsciksdGhpcy5zZXRDb250ZW50KCksdGhpcy5jb25maWcuYW5pbWF0aW9uJiZvZShpKS5hZGRDbGFzcyhFZSk7dmFyIHM9XCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy5jb25maWcucGxhY2VtZW50P3RoaXMuY29uZmlnLnBsYWNlbWVudC5jYWxsKHRoaXMsaSx0aGlzLmVsZW1lbnQpOnRoaXMuY29uZmlnLnBsYWNlbWVudCxvPXRoaXMuX2dldEF0dGFjaG1lbnQocyk7dGhpcy5hZGRBdHRhY2htZW50Q2xhc3Mobyk7dmFyIGE9ITE9PT10aGlzLmNvbmZpZy5jb250YWluZXI/ZG9jdW1lbnQuYm9keTpvZSh0aGlzLmNvbmZpZy5jb250YWluZXIpO29lKGkpLmRhdGEodGhpcy5jb25zdHJ1Y3Rvci5EQVRBX0tFWSx0aGlzKSxvZS5jb250YWlucyh0aGlzLmVsZW1lbnQub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdGhpcy50aXApfHxvZShpKS5hcHBlbmRUbyhhKSxvZSh0aGlzLmVsZW1lbnQpLnRyaWdnZXIodGhpcy5jb25zdHJ1Y3Rvci5FdmVudC5JTlNFUlRFRCksdGhpcy5fcG9wcGVyPW5ldyBjKHRoaXMuZWxlbWVudCxpLHtwbGFjZW1lbnQ6byxtb2RpZmllcnM6e29mZnNldDp7b2Zmc2V0OnRoaXMuY29uZmlnLm9mZnNldH0sZmxpcDp7YmVoYXZpb3I6dGhpcy5jb25maWcuZmFsbGJhY2tQbGFjZW1lbnR9LGFycm93OntlbGVtZW50OkNlfSxwcmV2ZW50T3ZlcmZsb3c6e2JvdW5kYXJpZXNFbGVtZW50OnRoaXMuY29uZmlnLmJvdW5kYXJ5fX0sb25DcmVhdGU6ZnVuY3Rpb24odCl7dC5vcmlnaW5hbFBsYWNlbWVudCE9PXQucGxhY2VtZW50JiZlLl9oYW5kbGVQb3BwZXJQbGFjZW1lbnRDaGFuZ2UodCl9LG9uVXBkYXRlOmZ1bmN0aW9uKHQpe2UuX2hhbmRsZVBvcHBlclBsYWNlbWVudENoYW5nZSh0KX19KSxvZShpKS5hZGRDbGFzcyh5ZSksXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmb2UoZG9jdW1lbnQuYm9keSkuY2hpbGRyZW4oKS5vbihcIm1vdXNlb3ZlclwiLG51bGwsb2Uubm9vcCk7dmFyIGw9ZnVuY3Rpb24oKXtlLmNvbmZpZy5hbmltYXRpb24mJmUuX2ZpeFRyYW5zaXRpb24oKTt2YXIgdD1lLl9ob3ZlclN0YXRlO2UuX2hvdmVyU3RhdGU9bnVsbCxvZShlLmVsZW1lbnQpLnRyaWdnZXIoZS5jb25zdHJ1Y3Rvci5FdmVudC5TSE9XTiksdD09PXBlJiZlLl9sZWF2ZShudWxsLGUpfTtpZihvZSh0aGlzLnRpcCkuaGFzQ2xhc3MoRWUpKXt2YXIgaD1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLnRpcCk7b2UodGhpcy50aXApLm9uZShDbi5UUkFOU0lUSU9OX0VORCxsKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChoKX1lbHNlIGwoKX19LHQuaGlkZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5nZXRUaXBFbGVtZW50KCksaT1vZS5FdmVudCh0aGlzLmNvbnN0cnVjdG9yLkV2ZW50LkhJREUpLHI9ZnVuY3Rpb24oKXtlLl9ob3ZlclN0YXRlIT09bWUmJm4ucGFyZW50Tm9kZSYmbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pLGUuX2NsZWFuVGlwQ2xhc3MoKSxlLmVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFwiYXJpYS1kZXNjcmliZWRieVwiKSxvZShlLmVsZW1lbnQpLnRyaWdnZXIoZS5jb25zdHJ1Y3Rvci5FdmVudC5ISURERU4pLG51bGwhPT1lLl9wb3BwZXImJmUuX3BvcHBlci5kZXN0cm95KCksdCYmdCgpfTtpZihvZSh0aGlzLmVsZW1lbnQpLnRyaWdnZXIoaSksIWkuaXNEZWZhdWx0UHJldmVudGVkKCkpe2lmKG9lKG4pLnJlbW92ZUNsYXNzKHllKSxcIm9udG91Y2hzdGFydFwiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZvZShkb2N1bWVudC5ib2R5KS5jaGlsZHJlbigpLm9mZihcIm1vdXNlb3ZlclwiLG51bGwsb2Uubm9vcCksdGhpcy5fYWN0aXZlVHJpZ2dlcltEZV09ITEsdGhpcy5fYWN0aXZlVHJpZ2dlcltBZV09ITEsdGhpcy5fYWN0aXZlVHJpZ2dlcltJZV09ITEsb2UodGhpcy50aXApLmhhc0NsYXNzKEVlKSl7dmFyIHM9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQobik7b2Uobikub25lKENuLlRSQU5TSVRJT05fRU5ELHIpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKHMpfWVsc2UgcigpO3RoaXMuX2hvdmVyU3RhdGU9XCJcIn19LHQudXBkYXRlPWZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX3BvcHBlciYmdGhpcy5fcG9wcGVyLnNjaGVkdWxlVXBkYXRlKCl9LHQuaXNXaXRoQ29udGVudD1mdW5jdGlvbigpe3JldHVybiBCb29sZWFuKHRoaXMuZ2V0VGl0bGUoKSl9LHQuYWRkQXR0YWNobWVudENsYXNzPWZ1bmN0aW9uKHQpe29lKHRoaXMuZ2V0VGlwRWxlbWVudCgpKS5hZGRDbGFzcyh1ZStcIi1cIit0KX0sdC5nZXRUaXBFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGlwPXRoaXMudGlwfHxvZSh0aGlzLmNvbmZpZy50ZW1wbGF0ZSlbMF0sdGhpcy50aXB9LHQuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciB0PW9lKHRoaXMuZ2V0VGlwRWxlbWVudCgpKTt0aGlzLnNldEVsZW1lbnRDb250ZW50KHQuZmluZChUZSksdGhpcy5nZXRUaXRsZSgpKSx0LnJlbW92ZUNsYXNzKEVlK1wiIFwiK3llKX0sdC5zZXRFbGVtZW50Q29udGVudD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuY29uZmlnLmh0bWw7XCJvYmplY3RcIj09dHlwZW9mIGUmJihlLm5vZGVUeXBlfHxlLmpxdWVyeSk/bj9vZShlKS5wYXJlbnQoKS5pcyh0KXx8dC5lbXB0eSgpLmFwcGVuZChlKTp0LnRleHQob2UoZSkudGV4dCgpKTp0W24/XCJodG1sXCI6XCJ0ZXh0XCJdKGUpfSx0LmdldFRpdGxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtb3JpZ2luYWwtdGl0bGVcIik7cmV0dXJuIHR8fCh0PVwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMuY29uZmlnLnRpdGxlP3RoaXMuY29uZmlnLnRpdGxlLmNhbGwodGhpcy5lbGVtZW50KTp0aGlzLmNvbmZpZy50aXRsZSksdH0sdC5fZ2V0QXR0YWNobWVudD1mdW5jdGlvbih0KXtyZXR1cm4gX2VbdC50b1VwcGVyQ2FzZSgpXX0sdC5fc2V0TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGk9dGhpczt0aGlzLmNvbmZpZy50cmlnZ2VyLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKFwiY2xpY2tcIj09PXQpb2UoaS5lbGVtZW50KS5vbihpLmNvbnN0cnVjdG9yLkV2ZW50LkNMSUNLLGkuY29uZmlnLnNlbGVjdG9yLGZ1bmN0aW9uKHQpe3JldHVybiBpLnRvZ2dsZSh0KX0pO2Vsc2UgaWYodCE9PWJlKXt2YXIgZT10PT09SWU/aS5jb25zdHJ1Y3Rvci5FdmVudC5NT1VTRUVOVEVSOmkuY29uc3RydWN0b3IuRXZlbnQuRk9DVVNJTixuPXQ9PT1JZT9pLmNvbnN0cnVjdG9yLkV2ZW50Lk1PVVNFTEVBVkU6aS5jb25zdHJ1Y3Rvci5FdmVudC5GT0NVU09VVDtvZShpLmVsZW1lbnQpLm9uKGUsaS5jb25maWcuc2VsZWN0b3IsZnVuY3Rpb24odCl7cmV0dXJuIGkuX2VudGVyKHQpfSkub24obixpLmNvbmZpZy5zZWxlY3RvcixmdW5jdGlvbih0KXtyZXR1cm4gaS5fbGVhdmUodCl9KX1vZShpLmVsZW1lbnQpLmNsb3Nlc3QoXCIubW9kYWxcIikub24oXCJoaWRlLmJzLm1vZGFsXCIsZnVuY3Rpb24oKXtyZXR1cm4gaS5oaWRlKCl9KX0pLHRoaXMuY29uZmlnLnNlbGVjdG9yP3RoaXMuY29uZmlnPWgoe30sdGhpcy5jb25maWcse3RyaWdnZXI6XCJtYW51YWxcIixzZWxlY3RvcjpcIlwifSk6dGhpcy5fZml4VGl0bGUoKX0sdC5fZml4VGl0bGU9ZnVuY3Rpb24oKXt2YXIgdD10eXBlb2YgdGhpcy5lbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtb3JpZ2luYWwtdGl0bGVcIik7KHRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiKXx8XCJzdHJpbmdcIiE9PXQpJiYodGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZShcImRhdGEtb3JpZ2luYWwtdGl0bGVcIix0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKFwidGl0bGVcIil8fFwiXCIpLHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiLFwiXCIpKX0sdC5fZW50ZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmNvbnN0cnVjdG9yLkRBVEFfS0VZOyhlPWV8fG9lKHQuY3VycmVudFRhcmdldCkuZGF0YShuKSl8fChlPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHQuY3VycmVudFRhcmdldCx0aGlzLl9nZXREZWxlZ2F0ZUNvbmZpZygpKSxvZSh0LmN1cnJlbnRUYXJnZXQpLmRhdGEobixlKSksdCYmKGUuX2FjdGl2ZVRyaWdnZXJbXCJmb2N1c2luXCI9PT10LnR5cGU/QWU6SWVdPSEwKSxvZShlLmdldFRpcEVsZW1lbnQoKSkuaGFzQ2xhc3MoeWUpfHxlLl9ob3ZlclN0YXRlPT09bWU/ZS5faG92ZXJTdGF0ZT1tZTooY2xlYXJUaW1lb3V0KGUuX3RpbWVvdXQpLGUuX2hvdmVyU3RhdGU9bWUsZS5jb25maWcuZGVsYXkmJmUuY29uZmlnLmRlbGF5LnNob3c/ZS5fdGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5faG92ZXJTdGF0ZT09PW1lJiZlLnNob3coKX0sZS5jb25maWcuZGVsYXkuc2hvdyk6ZS5zaG93KCkpfSx0Ll9sZWF2ZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuY29uc3RydWN0b3IuREFUQV9LRVk7KGU9ZXx8b2UodC5jdXJyZW50VGFyZ2V0KS5kYXRhKG4pKXx8KGU9bmV3IHRoaXMuY29uc3RydWN0b3IodC5jdXJyZW50VGFyZ2V0LHRoaXMuX2dldERlbGVnYXRlQ29uZmlnKCkpLG9lKHQuY3VycmVudFRhcmdldCkuZGF0YShuLGUpKSx0JiYoZS5fYWN0aXZlVHJpZ2dlcltcImZvY3Vzb3V0XCI9PT10LnR5cGU/QWU6SWVdPSExKSxlLl9pc1dpdGhBY3RpdmVUcmlnZ2VyKCl8fChjbGVhclRpbWVvdXQoZS5fdGltZW91dCksZS5faG92ZXJTdGF0ZT1wZSxlLmNvbmZpZy5kZWxheSYmZS5jb25maWcuZGVsYXkuaGlkZT9lLl90aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLl9ob3ZlclN0YXRlPT09cGUmJmUuaGlkZSgpfSxlLmNvbmZpZy5kZWxheS5oaWRlKTplLmhpZGUoKSl9LHQuX2lzV2l0aEFjdGl2ZVRyaWdnZXI9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5fYWN0aXZlVHJpZ2dlcilpZih0aGlzLl9hY3RpdmVUcmlnZ2VyW3RdKXJldHVybiEwO3JldHVybiExfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mKHQ9aCh7fSx0aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHQsb2UodGhpcy5lbGVtZW50KS5kYXRhKCksdCkpLmRlbGF5JiYodC5kZWxheT17c2hvdzp0LmRlbGF5LGhpZGU6dC5kZWxheX0pLFwibnVtYmVyXCI9PXR5cGVvZiB0LnRpdGxlJiYodC50aXRsZT10LnRpdGxlLnRvU3RyaW5nKCkpLFwibnVtYmVyXCI9PXR5cGVvZiB0LmNvbnRlbnQmJih0LmNvbnRlbnQ9dC5jb250ZW50LnRvU3RyaW5nKCkpLENuLnR5cGVDaGVja0NvbmZpZyhhZSx0LHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFR5cGUpLHR9LHQuX2dldERlbGVnYXRlQ29uZmlnPWZ1bmN0aW9uKCl7dmFyIHQ9e307aWYodGhpcy5jb25maWcpZm9yKHZhciBlIGluIHRoaXMuY29uZmlnKXRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFtlXSE9PXRoaXMuY29uZmlnW2VdJiYodFtlXT10aGlzLmNvbmZpZ1tlXSk7cmV0dXJuIHR9LHQuX2NsZWFuVGlwQ2xhc3M9ZnVuY3Rpb24oKXt2YXIgdD1vZSh0aGlzLmdldFRpcEVsZW1lbnQoKSksZT10LmF0dHIoXCJjbGFzc1wiKS5tYXRjaChmZSk7bnVsbCE9PWUmJjA8ZS5sZW5ndGgmJnQucmVtb3ZlQ2xhc3MoZS5qb2luKFwiXCIpKX0sdC5faGFuZGxlUG9wcGVyUGxhY2VtZW50Q2hhbmdlPWZ1bmN0aW9uKHQpe3RoaXMuX2NsZWFuVGlwQ2xhc3MoKSx0aGlzLmFkZEF0dGFjaG1lbnRDbGFzcyh0aGlzLl9nZXRBdHRhY2htZW50KHQucGxhY2VtZW50KSl9LHQuX2ZpeFRyYW5zaXRpb249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdldFRpcEVsZW1lbnQoKSxlPXRoaXMuY29uZmlnLmFuaW1hdGlvbjtudWxsPT09dC5nZXRBdHRyaWJ1dGUoXCJ4LXBsYWNlbWVudFwiKSYmKG9lKHQpLnJlbW92ZUNsYXNzKEVlKSx0aGlzLmNvbmZpZy5hbmltYXRpb249ITEsdGhpcy5oaWRlKCksdGhpcy5zaG93KCksdGhpcy5jb25maWcuYW5pbWF0aW9uPWUpfSxpLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PW9lKHRoaXMpLmRhdGEobGUpLGU9XCJvYmplY3RcIj09dHlwZW9mIG4mJm47aWYoKHR8fCEvZGlzcG9zZXxoaWRlLy50ZXN0KG4pKSYmKHR8fCh0PW5ldyBpKHRoaXMsZSksb2UodGhpcykuZGF0YShsZSx0KSksXCJzdHJpbmdcIj09dHlwZW9mIG4pKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK24rJ1wiJyk7dFtuXSgpfX0pfSxvKGksbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBnZX19LHtrZXk6XCJOQU1FXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGFlfX0se2tleTpcIkRBVEFfS0VZXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGxlfX0se2tleTpcIkV2ZW50XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZlfX0se2tleTpcIkVWRU5UX0tFWVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBoZX19LHtrZXk6XCJEZWZhdWx0VHlwZVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBkZX19XSksaX0oKSxvZS5mblthZV09U2UuX2pRdWVyeUludGVyZmFjZSxvZS5mblthZV0uQ29uc3RydWN0b3I9U2Usb2UuZm5bYWVdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gb2UuZm5bYWVdPWNlLFNlLl9qUXVlcnlJbnRlcmZhY2V9LFNlKSxPbj0oTmU9XCJwb3BvdmVyXCIsa2U9XCIuXCIrKE9lPVwiYnMucG9wb3ZlclwiKSxQZT0od2U9ZSkuZm5bTmVdLExlPVwiYnMtcG9wb3ZlclwiLGplPW5ldyBSZWdFeHAoXCIoXnxcXFxccylcIitMZStcIlxcXFxTK1wiLFwiZ1wiKSxSZT1oKHt9LE5uLkRlZmF1bHQse3BsYWNlbWVudDpcInJpZ2h0XCIsdHJpZ2dlcjpcImNsaWNrXCIsY29udGVudDpcIlwiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPVwicG9wb3ZlclwiIHJvbGU9XCJ0b29sdGlwXCI+PGRpdiBjbGFzcz1cImFycm93XCI+PC9kaXY+PGgzIGNsYXNzPVwicG9wb3Zlci1oZWFkZXJcIj48L2gzPjxkaXYgY2xhc3M9XCJwb3BvdmVyLWJvZHlcIj48L2Rpdj48L2Rpdj4nfSksSGU9aCh7fSxObi5EZWZhdWx0VHlwZSx7Y29udGVudDpcIihzdHJpbmd8ZWxlbWVudHxmdW5jdGlvbilcIn0pLFdlPVwiZmFkZVwiLHhlPVwiLnBvcG92ZXItaGVhZGVyXCIsVWU9XCIucG9wb3Zlci1ib2R5XCIsS2U9e0hJREU6XCJoaWRlXCIra2UsSElEREVOOlwiaGlkZGVuXCIra2UsU0hPVzooTWU9XCJzaG93XCIpK2tlLFNIT1dOOlwic2hvd25cIitrZSxJTlNFUlRFRDpcImluc2VydGVkXCIra2UsQ0xJQ0s6XCJjbGlja1wiK2tlLEZPQ1VTSU46XCJmb2N1c2luXCIra2UsRk9DVVNPVVQ6XCJmb2N1c291dFwiK2tlLE1PVVNFRU5URVI6XCJtb3VzZWVudGVyXCIra2UsTU9VU0VMRUFWRTpcIm1vdXNlbGVhdmVcIitrZX0sRmU9ZnVuY3Rpb24odCl7dmFyIGUsbjtmdW5jdGlvbiBpKCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzfW49dCwoZT1pKS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSksKGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUpLl9fcHJvdG9fXz1uO3ZhciByPWkucHJvdG90eXBlO3JldHVybiByLmlzV2l0aENvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfHx0aGlzLl9nZXRDb250ZW50KCl9LHIuYWRkQXR0YWNobWVudENsYXNzPWZ1bmN0aW9uKHQpe3dlKHRoaXMuZ2V0VGlwRWxlbWVudCgpKS5hZGRDbGFzcyhMZStcIi1cIit0KX0sci5nZXRUaXBFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGlwPXRoaXMudGlwfHx3ZSh0aGlzLmNvbmZpZy50ZW1wbGF0ZSlbMF0sdGhpcy50aXB9LHIuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciB0PXdlKHRoaXMuZ2V0VGlwRWxlbWVudCgpKTt0aGlzLnNldEVsZW1lbnRDb250ZW50KHQuZmluZCh4ZSksdGhpcy5nZXRUaXRsZSgpKTt2YXIgZT10aGlzLl9nZXRDb250ZW50KCk7XCJmdW5jdGlvblwiPT10eXBlb2YgZSYmKGU9ZS5jYWxsKHRoaXMuZWxlbWVudCkpLHRoaXMuc2V0RWxlbWVudENvbnRlbnQodC5maW5kKFVlKSxlKSx0LnJlbW92ZUNsYXNzKFdlK1wiIFwiK01lKX0sci5fZ2V0Q29udGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZGF0YS1jb250ZW50XCIpfHx0aGlzLmNvbmZpZy5jb250ZW50fSxyLl9jbGVhblRpcENsYXNzPWZ1bmN0aW9uKCl7dmFyIHQ9d2UodGhpcy5nZXRUaXBFbGVtZW50KCkpLGU9dC5hdHRyKFwiY2xhc3NcIikubWF0Y2goamUpO251bGwhPT1lJiYwPGUubGVuZ3RoJiZ0LnJlbW92ZUNsYXNzKGUuam9pbihcIlwiKSl9LGkuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9d2UodGhpcykuZGF0YShPZSksZT1cIm9iamVjdFwiPT10eXBlb2Ygbj9uOm51bGw7aWYoKHR8fCEvZGVzdHJveXxoaWRlLy50ZXN0KG4pKSYmKHR8fCh0PW5ldyBpKHRoaXMsZSksd2UodGhpcykuZGF0YShPZSx0KSksXCJzdHJpbmdcIj09dHlwZW9mIG4pKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK24rJ1wiJyk7dFtuXSgpfX0pfSxvKGksbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBSZX19LHtrZXk6XCJOQU1FXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE5lfX0se2tleTpcIkRBVEFfS0VZXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9lfX0se2tleTpcIkV2ZW50XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEtlfX0se2tleTpcIkVWRU5UX0tFWVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBrZX19LHtrZXk6XCJEZWZhdWx0VHlwZVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBIZX19XSksaX0oTm4pLHdlLmZuW05lXT1GZS5falF1ZXJ5SW50ZXJmYWNlLHdlLmZuW05lXS5Db25zdHJ1Y3Rvcj1GZSx3ZS5mbltOZV0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiB3ZS5mbltOZV09UGUsRmUuX2pRdWVyeUludGVyZmFjZX0sRmUpLGtuPShRZT1cInNjcm9sbHNweVwiLFllPVwiLlwiKyhCZT1cImJzLnNjcm9sbHNweVwiKSxHZT0oVmU9ZSkuZm5bUWVdLHFlPXtvZmZzZXQ6MTAsbWV0aG9kOlwiYXV0b1wiLHRhcmdldDpcIlwifSx6ZT17b2Zmc2V0OlwibnVtYmVyXCIsbWV0aG9kOlwic3RyaW5nXCIsdGFyZ2V0OlwiKHN0cmluZ3xlbGVtZW50KVwifSxYZT17QUNUSVZBVEU6XCJhY3RpdmF0ZVwiK1llLFNDUk9MTDpcInNjcm9sbFwiK1llLExPQURfREFUQV9BUEk6XCJsb2FkXCIrWWUrXCIuZGF0YS1hcGlcIn0sSmU9XCJkcm9wZG93bi1pdGVtXCIsWmU9XCJhY3RpdmVcIiwkZT17REFUQV9TUFk6J1tkYXRhLXNweT1cInNjcm9sbFwiXScsQUNUSVZFOlwiLmFjdGl2ZVwiLE5BVl9MSVNUX0dST1VQOlwiLm5hdiwgLmxpc3QtZ3JvdXBcIixOQVZfTElOS1M6XCIubmF2LWxpbmtcIixOQVZfSVRFTVM6XCIubmF2LWl0ZW1cIixMSVNUX0lURU1TOlwiLmxpc3QtZ3JvdXAtaXRlbVwiLERST1BET1dOOlwiLmRyb3Bkb3duXCIsRFJPUERPV05fSVRFTVM6XCIuZHJvcGRvd24taXRlbVwiLERST1BET1dOX1RPR0dMRTpcIi5kcm9wZG93bi10b2dnbGVcIn0sdG49XCJvZmZzZXRcIixlbj1cInBvc2l0aW9uXCIsbm49ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQsZSl7dmFyIG49dGhpczt0aGlzLl9lbGVtZW50PXQsdGhpcy5fc2Nyb2xsRWxlbWVudD1cIkJPRFlcIj09PXQudGFnTmFtZT93aW5kb3c6dCx0aGlzLl9jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMuX3NlbGVjdG9yPXRoaXMuX2NvbmZpZy50YXJnZXQrXCIgXCIrJGUuTkFWX0xJTktTK1wiLFwiK3RoaXMuX2NvbmZpZy50YXJnZXQrXCIgXCIrJGUuTElTVF9JVEVNUytcIixcIit0aGlzLl9jb25maWcudGFyZ2V0K1wiIFwiKyRlLkRST1BET1dOX0lURU1TLHRoaXMuX29mZnNldHM9W10sdGhpcy5fdGFyZ2V0cz1bXSx0aGlzLl9hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLl9zY3JvbGxIZWlnaHQ9MCxWZSh0aGlzLl9zY3JvbGxFbGVtZW50KS5vbihYZS5TQ1JPTEwsZnVuY3Rpb24odCl7cmV0dXJuIG4uX3Byb2Nlc3ModCl9KSx0aGlzLnJlZnJlc2goKSx0aGlzLl9wcm9jZXNzKCl9dmFyIHQ9bi5wcm90b3R5cGU7cmV0dXJuIHQucmVmcmVzaD1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLl9zY3JvbGxFbGVtZW50PT09dGhpcy5fc2Nyb2xsRWxlbWVudC53aW5kb3c/dG46ZW4scj1cImF1dG9cIj09PXRoaXMuX2NvbmZpZy5tZXRob2Q/dDp0aGlzLl9jb25maWcubWV0aG9kLHM9cj09PWVuP3RoaXMuX2dldFNjcm9sbFRvcCgpOjA7dGhpcy5fb2Zmc2V0cz1bXSx0aGlzLl90YXJnZXRzPVtdLHRoaXMuX3Njcm9sbEhlaWdodD10aGlzLl9nZXRTY3JvbGxIZWlnaHQoKSxWZS5tYWtlQXJyYXkoVmUodGhpcy5fc2VsZWN0b3IpKS5tYXAoZnVuY3Rpb24odCl7dmFyIGUsbj1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHQpO2lmKG4mJihlPVZlKG4pWzBdKSxlKXt2YXIgaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKGkud2lkdGh8fGkuaGVpZ2h0KXJldHVybltWZShlKVtyXSgpLnRvcCtzLG5dfXJldHVybiBudWxsfSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0WzBdLWVbMF19KS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UuX29mZnNldHMucHVzaCh0WzBdKSxlLl90YXJnZXRzLnB1c2godFsxXSl9KX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7VmUucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LEJlKSxWZSh0aGlzLl9zY3JvbGxFbGVtZW50KS5vZmYoWWUpLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLl9zY3JvbGxFbGVtZW50PW51bGwsdGhpcy5fY29uZmlnPW51bGwsdGhpcy5fc2VsZWN0b3I9bnVsbCx0aGlzLl9vZmZzZXRzPW51bGwsdGhpcy5fdGFyZ2V0cz1udWxsLHRoaXMuX2FjdGl2ZVRhcmdldD1udWxsLHRoaXMuX3Njcm9sbEhlaWdodD1udWxsfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mKHQ9aCh7fSxxZSx0KSkudGFyZ2V0KXt2YXIgZT1WZSh0LnRhcmdldCkuYXR0cihcImlkXCIpO2V8fChlPUNuLmdldFVJRChRZSksVmUodC50YXJnZXQpLmF0dHIoXCJpZFwiLGUpKSx0LnRhcmdldD1cIiNcIitlfXJldHVybiBDbi50eXBlQ2hlY2tDb25maWcoUWUsdCx6ZSksdH0sdC5fZ2V0U2Nyb2xsVG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ9PT13aW5kb3c/dGhpcy5fc2Nyb2xsRWxlbWVudC5wYWdlWU9mZnNldDp0aGlzLl9zY3JvbGxFbGVtZW50LnNjcm9sbFRvcH0sdC5fZ2V0U2Nyb2xsSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQuc2Nyb2xsSGVpZ2h0fHxNYXRoLm1heChkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0KX0sdC5fZ2V0T2Zmc2V0SGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Njcm9sbEVsZW1lbnQ9PT13aW5kb3c/d2luZG93LmlubmVySGVpZ2h0OnRoaXMuX3Njcm9sbEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0fSx0Ll9wcm9jZXNzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZ2V0U2Nyb2xsVG9wKCkrdGhpcy5fY29uZmlnLm9mZnNldCxlPXRoaXMuX2dldFNjcm9sbEhlaWdodCgpLG49dGhpcy5fY29uZmlnLm9mZnNldCtlLXRoaXMuX2dldE9mZnNldEhlaWdodCgpO2lmKHRoaXMuX3Njcm9sbEhlaWdodCE9PWUmJnRoaXMucmVmcmVzaCgpLG48PXQpe3ZhciBpPXRoaXMuX3RhcmdldHNbdGhpcy5fdGFyZ2V0cy5sZW5ndGgtMV07dGhpcy5fYWN0aXZlVGFyZ2V0IT09aSYmdGhpcy5fYWN0aXZhdGUoaSl9ZWxzZXtpZih0aGlzLl9hY3RpdmVUYXJnZXQmJnQ8dGhpcy5fb2Zmc2V0c1swXSYmMDx0aGlzLl9vZmZzZXRzWzBdKXJldHVybiB0aGlzLl9hY3RpdmVUYXJnZXQ9bnVsbCx2b2lkIHRoaXMuX2NsZWFyKCk7Zm9yKHZhciByPXRoaXMuX29mZnNldHMubGVuZ3RoO3ItLTspe3RoaXMuX2FjdGl2ZVRhcmdldCE9PXRoaXMuX3RhcmdldHNbcl0mJnQ+PXRoaXMuX29mZnNldHNbcl0mJihcInVuZGVmaW5lZFwiPT10eXBlb2YgdGhpcy5fb2Zmc2V0c1tyKzFdfHx0PHRoaXMuX29mZnNldHNbcisxXSkmJnRoaXMuX2FjdGl2YXRlKHRoaXMuX3RhcmdldHNbcl0pfX19LHQuX2FjdGl2YXRlPWZ1bmN0aW9uKGUpe3RoaXMuX2FjdGl2ZVRhcmdldD1lLHRoaXMuX2NsZWFyKCk7dmFyIHQ9dGhpcy5fc2VsZWN0b3Iuc3BsaXQoXCIsXCIpO3Q9dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQrJ1tkYXRhLXRhcmdldD1cIicrZSsnXCJdLCcrdCsnW2hyZWY9XCInK2UrJ1wiXSd9KTt2YXIgbj1WZSh0LmpvaW4oXCIsXCIpKTtuLmhhc0NsYXNzKEplKT8obi5jbG9zZXN0KCRlLkRST1BET1dOKS5maW5kKCRlLkRST1BET1dOX1RPR0dMRSkuYWRkQ2xhc3MoWmUpLG4uYWRkQ2xhc3MoWmUpKToobi5hZGRDbGFzcyhaZSksbi5wYXJlbnRzKCRlLk5BVl9MSVNUX0dST1VQKS5wcmV2KCRlLk5BVl9MSU5LUytcIiwgXCIrJGUuTElTVF9JVEVNUykuYWRkQ2xhc3MoWmUpLG4ucGFyZW50cygkZS5OQVZfTElTVF9HUk9VUCkucHJldigkZS5OQVZfSVRFTVMpLmNoaWxkcmVuKCRlLk5BVl9MSU5LUykuYWRkQ2xhc3MoWmUpKSxWZSh0aGlzLl9zY3JvbGxFbGVtZW50KS50cmlnZ2VyKFhlLkFDVElWQVRFLHtyZWxhdGVkVGFyZ2V0OmV9KX0sdC5fY2xlYXI9ZnVuY3Rpb24oKXtWZSh0aGlzLl9zZWxlY3RvcikuZmlsdGVyKCRlLkFDVElWRSkucmVtb3ZlQ2xhc3MoWmUpfSxuLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PVZlKHRoaXMpLmRhdGEoQmUpO2lmKHR8fCh0PW5ldyBuKHRoaXMsXCJvYmplY3RcIj09dHlwZW9mIGUmJmUpLFZlKHRoaXMpLmRhdGEoQmUsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBlKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtlXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK2UrJ1wiJyk7dFtlXSgpfX0pfSxvKG4sbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBxZX19XSksbn0oKSxWZSh3aW5kb3cpLm9uKFhlLkxPQURfREFUQV9BUEksZnVuY3Rpb24oKXtmb3IodmFyIHQ9VmUubWFrZUFycmF5KFZlKCRlLkRBVEFfU1BZKSksZT10Lmxlbmd0aDtlLS07KXt2YXIgbj1WZSh0W2VdKTtubi5falF1ZXJ5SW50ZXJmYWNlLmNhbGwobixuLmRhdGEoKSl9fSksVmUuZm5bUWVdPW5uLl9qUXVlcnlJbnRlcmZhY2UsVmUuZm5bUWVdLkNvbnN0cnVjdG9yPW5uLFZlLmZuW1FlXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIFZlLmZuW1FlXT1HZSxubi5falF1ZXJ5SW50ZXJmYWNlfSxubiksUG49KG9uPVwiLlwiKyhzbj1cImJzLnRhYlwiKSxhbj0ocm49ZSkuZm4udGFiLGxuPXtISURFOlwiaGlkZVwiK29uLEhJRERFTjpcImhpZGRlblwiK29uLFNIT1c6XCJzaG93XCIrb24sU0hPV046XCJzaG93blwiK29uLENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitvbitcIi5kYXRhLWFwaVwifSxobj1cImRyb3Bkb3duLW1lbnVcIixjbj1cImFjdGl2ZVwiLHVuPVwiZGlzYWJsZWRcIixmbj1cImZhZGVcIixkbj1cInNob3dcIixfbj1cIi5kcm9wZG93blwiLGduPVwiLm5hdiwgLmxpc3QtZ3JvdXBcIixtbj1cIi5hY3RpdmVcIixwbj1cIj4gbGkgPiAuYWN0aXZlXCIsdm49J1tkYXRhLXRvZ2dsZT1cInRhYlwiXSwgW2RhdGEtdG9nZ2xlPVwicGlsbFwiXSwgW2RhdGEtdG9nZ2xlPVwibGlzdFwiXScsRW49XCIuZHJvcGRvd24tdG9nZ2xlXCIseW49XCI+IC5kcm9wZG93bi1tZW51IC5hY3RpdmVcIixUbj1mdW5jdGlvbigpe2Z1bmN0aW9uIGkodCl7dGhpcy5fZWxlbWVudD10fXZhciB0PWkucHJvdG90eXBlO3JldHVybiB0LnNob3c9ZnVuY3Rpb24oKXt2YXIgbj10aGlzO2lmKCEodGhpcy5fZWxlbWVudC5wYXJlbnROb2RlJiZ0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmcm4odGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoY24pfHxybih0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyh1bikpKXt2YXIgdCxpLGU9cm4odGhpcy5fZWxlbWVudCkuY2xvc2VzdChnbilbMF0scj1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO2lmKGUpe3ZhciBzPVwiVUxcIj09PWUubm9kZU5hbWU/cG46bW47aT0oaT1ybi5tYWtlQXJyYXkocm4oZSkuZmluZChzKSkpW2kubGVuZ3RoLTFdfXZhciBvPXJuLkV2ZW50KGxuLkhJREUse3JlbGF0ZWRUYXJnZXQ6dGhpcy5fZWxlbWVudH0pLGE9cm4uRXZlbnQobG4uU0hPVyx7cmVsYXRlZFRhcmdldDppfSk7aWYoaSYmcm4oaSkudHJpZ2dlcihvKSxybih0aGlzLl9lbGVtZW50KS50cmlnZ2VyKGEpLCFhLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYhby5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7ciYmKHQ9cm4ocilbMF0pLHRoaXMuX2FjdGl2YXRlKHRoaXMuX2VsZW1lbnQsZSk7dmFyIGw9ZnVuY3Rpb24oKXt2YXIgdD1ybi5FdmVudChsbi5ISURERU4se3JlbGF0ZWRUYXJnZXQ6bi5fZWxlbWVudH0pLGU9cm4uRXZlbnQobG4uU0hPV04se3JlbGF0ZWRUYXJnZXQ6aX0pO3JuKGkpLnRyaWdnZXIodCkscm4obi5fZWxlbWVudCkudHJpZ2dlcihlKX07dD90aGlzLl9hY3RpdmF0ZSh0LHQucGFyZW50Tm9kZSxsKTpsKCl9fX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7cm4ucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LHNuKSx0aGlzLl9lbGVtZW50PW51bGx9LHQuX2FjdGl2YXRlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10aGlzLHI9KFwiVUxcIj09PWUubm9kZU5hbWU/cm4oZSkuZmluZChwbik6cm4oZSkuY2hpbGRyZW4obW4pKVswXSxzPW4mJnImJnJuKHIpLmhhc0NsYXNzKGZuKSxvPWZ1bmN0aW9uKCl7cmV0dXJuIGkuX3RyYW5zaXRpb25Db21wbGV0ZSh0LHIsbil9O2lmKHImJnMpe3ZhciBhPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHIpO3JuKHIpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxvKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChhKX1lbHNlIG8oKX0sdC5fdHJhbnNpdGlvbkNvbXBsZXRlPWZ1bmN0aW9uKHQsZSxuKXtpZihlKXtybihlKS5yZW1vdmVDbGFzcyhkbitcIiBcIitjbik7dmFyIGk9cm4oZS5wYXJlbnROb2RlKS5maW5kKHluKVswXTtpJiZybihpKS5yZW1vdmVDbGFzcyhjbiksXCJ0YWJcIj09PWUuZ2V0QXR0cmlidXRlKFwicm9sZVwiKSYmZS5zZXRBdHRyaWJ1dGUoXCJhcmlhLXNlbGVjdGVkXCIsITEpfWlmKHJuKHQpLmFkZENsYXNzKGNuKSxcInRhYlwiPT09dC5nZXRBdHRyaWJ1dGUoXCJyb2xlXCIpJiZ0LnNldEF0dHJpYnV0ZShcImFyaWEtc2VsZWN0ZWRcIiwhMCksQ24ucmVmbG93KHQpLHJuKHQpLmFkZENsYXNzKGRuKSx0LnBhcmVudE5vZGUmJnJuKHQucGFyZW50Tm9kZSkuaGFzQ2xhc3MoaG4pKXt2YXIgcj1ybih0KS5jbG9zZXN0KF9uKVswXTtyJiZybihyKS5maW5kKEVuKS5hZGRDbGFzcyhjbiksdC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsITApfW4mJm4oKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1ybih0aGlzKSxlPXQuZGF0YShzbik7aWYoZXx8KGU9bmV3IGkodGhpcyksdC5kYXRhKHNuLGUpKSxcInN0cmluZ1wiPT10eXBlb2Ygbil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGVbbl0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytuKydcIicpO2Vbbl0oKX19KX0sbyhpLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX1dKSxpfSgpLHJuKGRvY3VtZW50KS5vbihsbi5DTElDS19EQVRBX0FQSSx2bixmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksVG4uX2pRdWVyeUludGVyZmFjZS5jYWxsKHJuKHRoaXMpLFwic2hvd1wiKX0pLHJuLmZuLnRhYj1Ubi5falF1ZXJ5SW50ZXJmYWNlLHJuLmZuLnRhYi5Db25zdHJ1Y3Rvcj1Ubixybi5mbi50YWIubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBybi5mbi50YWI9YW4sVG4uX2pRdWVyeUludGVyZmFjZX0sVG4pOyFmdW5jdGlvbih0KXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkuIGpRdWVyeSBtdXN0IGJlIGluY2x1ZGVkIGJlZm9yZSBCb290c3RyYXAncyBKYXZhU2NyaXB0LlwiKTt2YXIgZT10LmZuLmpxdWVyeS5zcGxpdChcIiBcIilbMF0uc3BsaXQoXCIuXCIpO2lmKGVbMF08MiYmZVsxXTw5fHwxPT09ZVswXSYmOT09PWVbMV0mJmVbMl08MXx8NDw9ZVswXSl0aHJvdyBuZXcgRXJyb3IoXCJCb290c3RyYXAncyBKYXZhU2NyaXB0IHJlcXVpcmVzIGF0IGxlYXN0IGpRdWVyeSB2MS45LjEgYnV0IGxlc3MgdGhhbiB2NC4wLjBcIil9KGUpLHQuVXRpbD1Dbix0LkFsZXJ0PUluLHQuQnV0dG9uPUFuLHQuQ2Fyb3VzZWw9RG4sdC5Db2xsYXBzZT1ibix0LkRyb3Bkb3duPVNuLHQuTW9kYWw9d24sdC5Qb3BvdmVyPU9uLHQuU2Nyb2xsc3B5PWtuLHQuVGFiPVBuLHQuVG9vbHRpcD1ObixPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Ym9vdHN0cmFwLm1pbi5qcy5tYXAiLCIvLyBodHRwczovL2QzanMub3JnIFZlcnNpb24gNS41LjAuIENvcHlyaWdodCAyMDE4IE1pa2UgQm9zdG9jay5cbihmdW5jdGlvbih0LG4pe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP24oZXhwb3J0cyk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXCJleHBvcnRzXCJdLG4pOm4odC5kMz10LmQzfHx7fSl9KSh0aGlzLGZ1bmN0aW9uKHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4odCxuKXtyZXR1cm4gdDxuPy0xOnQ+bj8xOnQ+PW4/MDpOYU59ZnVuY3Rpb24gZSh0KXtyZXR1cm4gMT09PXQubGVuZ3RoJiYodD1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtyZXR1cm4gbih0KGUpLHIpfX0odCkpLHtsZWZ0OmZ1bmN0aW9uKG4sZSxyLGkpe2ZvcihudWxsPT1yJiYocj0wKSxudWxsPT1pJiYoaT1uLmxlbmd0aCk7cjxpOyl7dmFyIG89citpPj4+MTt0KG5bb10sZSk8MD9yPW8rMTppPW99cmV0dXJuIHJ9LHJpZ2h0OmZ1bmN0aW9uKG4sZSxyLGkpe2ZvcihudWxsPT1yJiYocj0wKSxudWxsPT1pJiYoaT1uLmxlbmd0aCk7cjxpOyl7dmFyIG89citpPj4+MTt0KG5bb10sZSk+MD9pPW86cj1vKzF9cmV0dXJuIHJ9fX1mdW5jdGlvbiByKHQsbil7cmV0dXJuW3Qsbl19ZnVuY3Rpb24gaSh0KXtyZXR1cm4gbnVsbD09PXQ/TmFOOit0fWZ1bmN0aW9uIG8odCxuKXt2YXIgZSxyLG89dC5sZW5ndGgsYT0wLHU9LTEsZj0wLGM9MDtpZihudWxsPT1uKWZvcig7Kyt1PG87KWlzTmFOKGU9aSh0W3VdKSl8fChjKz0ocj1lLWYpKihlLShmKz1yLysrYSkpKTtlbHNlIGZvcig7Kyt1PG87KWlzTmFOKGU9aShuKHRbdV0sdSx0KSkpfHwoYys9KHI9ZS1mKSooZS0oZis9ci8rK2EpKSk7aWYoYT4xKXJldHVybiBjLyhhLTEpfWZ1bmN0aW9uIGEodCxuKXt2YXIgZT1vKHQsbik7cmV0dXJuIGU/TWF0aC5zcXJ0KGUpOmV9ZnVuY3Rpb24gdSh0LG4pe3ZhciBlLHIsaSxvPXQubGVuZ3RoLGE9LTE7aWYobnVsbD09bil7Zm9yKDsrK2E8bzspaWYobnVsbCE9KGU9dFthXSkmJmU+PWUpZm9yKHI9aT1lOysrYTxvOyludWxsIT0oZT10W2FdKSYmKHI+ZSYmKHI9ZSksaTxlJiYoaT1lKSl9ZWxzZSBmb3IoOysrYTxvOylpZihudWxsIT0oZT1uKHRbYV0sYSx0KSkmJmU+PWUpZm9yKHI9aT1lOysrYTxvOyludWxsIT0oZT1uKHRbYV0sYSx0KSkmJihyPmUmJihyPWUpLGk8ZSYmKGk9ZSkpO3JldHVybltyLGldfWZ1bmN0aW9uIGYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGModCl7cmV0dXJuIHR9ZnVuY3Rpb24gcyh0LG4sZSl7dD0rdCxuPStuLGU9KGk9YXJndW1lbnRzLmxlbmd0aCk8Mj8obj10LHQ9MCwxKTppPDM/MTorZTtmb3IodmFyIHI9LTEsaT0wfE1hdGgubWF4KDAsTWF0aC5jZWlsKChuLXQpL2UpKSxvPW5ldyBBcnJheShpKTsrK3I8aTspb1tyXT10K3IqZTtyZXR1cm4gb31mdW5jdGlvbiBsKHQsbixlKXt2YXIgcixpLG8sYSx1PS0xO2lmKG49K24sdD0rdCxlPStlLHQ9PT1uJiZlPjApcmV0dXJuW3RdO2lmKChyPW48dCkmJihpPXQsdD1uLG49aSksMD09PShhPWgodCxuLGUpKXx8IWlzRmluaXRlKGEpKXJldHVybltdO2lmKGE+MClmb3IodD1NYXRoLmNlaWwodC9hKSxuPU1hdGguZmxvb3Iobi9hKSxvPW5ldyBBcnJheShpPU1hdGguY2VpbChuLXQrMSkpOysrdTxpOylvW3VdPSh0K3UpKmE7ZWxzZSBmb3IodD1NYXRoLmZsb29yKHQqYSksbj1NYXRoLmNlaWwobiphKSxvPW5ldyBBcnJheShpPU1hdGguY2VpbCh0LW4rMSkpOysrdTxpOylvW3VdPSh0LXUpL2E7cmV0dXJuIHImJm8ucmV2ZXJzZSgpLG99ZnVuY3Rpb24gaCh0LG4sZSl7dmFyIHI9KG4tdCkvTWF0aC5tYXgoMCxlKSxpPU1hdGguZmxvb3IoTWF0aC5sb2cocikvTWF0aC5MTjEwKSxvPXIvTWF0aC5wb3coMTAsaSk7cmV0dXJuIGk+PTA/KG8+PWlzPzEwOm8+PW9zPzU6bz49YXM/MjoxKSpNYXRoLnBvdygxMCxpKTotTWF0aC5wb3coMTAsLWkpLyhvPj1pcz8xMDpvPj1vcz81Om8+PWFzPzI6MSl9ZnVuY3Rpb24gZCh0LG4sZSl7dmFyIHI9TWF0aC5hYnMobi10KS9NYXRoLm1heCgwLGUpLGk9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhyKS9NYXRoLkxOMTApKSxvPXIvaTtyZXR1cm4gbz49aXM/aSo9MTA6bz49b3M/aSo9NTpvPj1hcyYmKGkqPTIpLG48dD8taTppfWZ1bmN0aW9uIHAodCl7cmV0dXJuIE1hdGguY2VpbChNYXRoLmxvZyh0Lmxlbmd0aCkvTWF0aC5MTjIpKzF9ZnVuY3Rpb24gdih0LG4sZSl7aWYobnVsbD09ZSYmKGU9aSkscj10Lmxlbmd0aCl7aWYoKG49K24pPD0wfHxyPDIpcmV0dXJuK2UodFswXSwwLHQpO2lmKG4+PTEpcmV0dXJuK2UodFtyLTFdLHItMSx0KTt2YXIgcixvPShyLTEpKm4sYT1NYXRoLmZsb29yKG8pLHU9K2UodFthXSxhLHQpO3JldHVybiB1KygrZSh0W2ErMV0sYSsxLHQpLXUpKihvLWEpfX1mdW5jdGlvbiBnKHQsbil7dmFyIGUscixpPXQubGVuZ3RoLG89LTE7aWYobnVsbD09bil7Zm9yKDsrK288aTspaWYobnVsbCE9KGU9dFtvXSkmJmU+PWUpZm9yKHI9ZTsrK288aTspbnVsbCE9KGU9dFtvXSkmJmU+ciYmKHI9ZSl9ZWxzZSBmb3IoOysrbzxpOylpZihudWxsIT0oZT1uKHRbb10sbyx0KSkmJmU+PWUpZm9yKHI9ZTsrK288aTspbnVsbCE9KGU9bih0W29dLG8sdCkpJiZlPnImJihyPWUpO3JldHVybiByfWZ1bmN0aW9uIHkodCl7Zm9yKHZhciBuLGUscixpPXQubGVuZ3RoLG89LTEsYT0wOysrbzxpOylhKz10W29dLmxlbmd0aDtmb3IoZT1uZXcgQXJyYXkoYSk7LS1pPj0wOylmb3Iobj0ocj10W2ldKS5sZW5ndGg7LS1uPj0wOyllWy0tYV09cltuXTtyZXR1cm4gZX1mdW5jdGlvbiBfKHQsbil7dmFyIGUscixpPXQubGVuZ3RoLG89LTE7aWYobnVsbD09bil7Zm9yKDsrK288aTspaWYobnVsbCE9KGU9dFtvXSkmJmU+PWUpZm9yKHI9ZTsrK288aTspbnVsbCE9KGU9dFtvXSkmJnI+ZSYmKHI9ZSl9ZWxzZSBmb3IoOysrbzxpOylpZihudWxsIT0oZT1uKHRbb10sbyx0KSkmJmU+PWUpZm9yKHI9ZTsrK288aTspbnVsbCE9KGU9bih0W29dLG8sdCkpJiZyPmUmJihyPWUpO3JldHVybiByfWZ1bmN0aW9uIGIodCl7aWYoIShpPXQubGVuZ3RoKSlyZXR1cm5bXTtmb3IodmFyIG49LTEsZT1fKHQsbSkscj1uZXcgQXJyYXkoZSk7KytuPGU7KWZvcih2YXIgaSxvPS0xLGE9cltuXT1uZXcgQXJyYXkoaSk7KytvPGk7KWFbb109dFtvXVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBtKHQpe3JldHVybiB0Lmxlbmd0aH1mdW5jdGlvbiB4KHQpe3JldHVybiB0fWZ1bmN0aW9uIHcodCl7cmV0dXJuXCJ0cmFuc2xhdGUoXCIrKHQrLjUpK1wiLDApXCJ9ZnVuY3Rpb24gTSh0KXtyZXR1cm5cInRyYW5zbGF0ZSgwLFwiKyh0Ky41KStcIilcIn1mdW5jdGlvbiBBKCl7cmV0dXJuIXRoaXMuX19heGlzfWZ1bmN0aW9uIFQodCxuKXtmdW5jdGlvbiBlKGUpe3ZhciBoPW51bGw9PWk/bi50aWNrcz9uLnRpY2tzLmFwcGx5KG4scik6bi5kb21haW4oKTppLGQ9bnVsbD09bz9uLnRpY2tGb3JtYXQ/bi50aWNrRm9ybWF0LmFwcGx5KG4scik6eDpvLHA9TWF0aC5tYXgoYSwwKStmLHY9bi5yYW5nZSgpLGc9K3ZbMF0rLjUseT0rdlt2Lmxlbmd0aC0xXSsuNSxfPShuLmJhbmR3aWR0aD9mdW5jdGlvbih0KXt2YXIgbj1NYXRoLm1heCgwLHQuYmFuZHdpZHRoKCktMSkvMjtyZXR1cm4gdC5yb3VuZCgpJiYobj1NYXRoLnJvdW5kKG4pKSxmdW5jdGlvbihlKXtyZXR1cm4rdChlKStufX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybit0KG4pfX0pKG4uY29weSgpKSxiPWUuc2VsZWN0aW9uP2Uuc2VsZWN0aW9uKCk6ZSxtPWIuc2VsZWN0QWxsKFwiLmRvbWFpblwiKS5kYXRhKFtudWxsXSksdz1iLnNlbGVjdEFsbChcIi50aWNrXCIpLmRhdGEoaCxuKS5vcmRlcigpLE09dy5leGl0KCksVD13LmVudGVyKCkuYXBwZW5kKFwiZ1wiKS5hdHRyKFwiY2xhc3NcIixcInRpY2tcIiksTj13LnNlbGVjdChcImxpbmVcIiksUz13LnNlbGVjdChcInRleHRcIik7bT1tLm1lcmdlKG0uZW50ZXIoKS5pbnNlcnQoXCJwYXRoXCIsXCIudGlja1wiKS5hdHRyKFwiY2xhc3NcIixcImRvbWFpblwiKS5hdHRyKFwic3Ryb2tlXCIsXCIjMDAwXCIpKSx3PXcubWVyZ2UoVCksTj1OLm1lcmdlKFQuYXBwZW5kKFwibGluZVwiKS5hdHRyKFwic3Ryb2tlXCIsXCIjMDAwXCIpLmF0dHIocytcIjJcIixjKmEpKSxTPVMubWVyZ2UoVC5hcHBlbmQoXCJ0ZXh0XCIpLmF0dHIoXCJmaWxsXCIsXCIjMDAwXCIpLmF0dHIocyxjKnApLmF0dHIoXCJkeVwiLHQ9PT1mcz9cIjBlbVwiOnQ9PT1zcz9cIjAuNzFlbVwiOlwiMC4zMmVtXCIpKSxlIT09YiYmKG09bS50cmFuc2l0aW9uKGUpLHc9dy50cmFuc2l0aW9uKGUpLE49Ti50cmFuc2l0aW9uKGUpLFM9Uy50cmFuc2l0aW9uKGUpLE09TS50cmFuc2l0aW9uKGUpLmF0dHIoXCJvcGFjaXR5XCIsaHMpLmF0dHIoXCJ0cmFuc2Zvcm1cIixmdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1fKHQpKT9sKHQpOnRoaXMuZ2V0QXR0cmlidXRlKFwidHJhbnNmb3JtXCIpfSksVC5hdHRyKFwib3BhY2l0eVwiLGhzKS5hdHRyKFwidHJhbnNmb3JtXCIsZnVuY3Rpb24odCl7dmFyIG49dGhpcy5wYXJlbnROb2RlLl9fYXhpcztyZXR1cm4gbChuJiZpc0Zpbml0ZShuPW4odCkpP246Xyh0KSl9KSksTS5yZW1vdmUoKSxtLmF0dHIoXCJkXCIsdD09PWxzfHx0PT1jcz9cIk1cIitjKnUrXCIsXCIrZytcIkgwLjVWXCIreStcIkhcIitjKnU6XCJNXCIrZytcIixcIitjKnUrXCJWMC41SFwiK3krXCJWXCIrYyp1KSx3LmF0dHIoXCJvcGFjaXR5XCIsMSkuYXR0cihcInRyYW5zZm9ybVwiLGZ1bmN0aW9uKHQpe3JldHVybiBsKF8odCkpfSksTi5hdHRyKHMrXCIyXCIsYyphKSxTLmF0dHIocyxjKnApLnRleHQoZCksYi5maWx0ZXIoQSkuYXR0cihcImZpbGxcIixcIm5vbmVcIikuYXR0cihcImZvbnQtc2l6ZVwiLDEwKS5hdHRyKFwiZm9udC1mYW1pbHlcIixcInNhbnMtc2VyaWZcIikuYXR0cihcInRleHQtYW5jaG9yXCIsdD09PWNzP1wic3RhcnRcIjp0PT09bHM/XCJlbmRcIjpcIm1pZGRsZVwiKSxiLmVhY2goZnVuY3Rpb24oKXt0aGlzLl9fYXhpcz1ffSl9dmFyIHI9W10saT1udWxsLG89bnVsbCxhPTYsdT02LGY9MyxjPXQ9PT1mc3x8dD09PWxzPy0xOjEscz10PT09bHN8fHQ9PT1jcz9cInhcIjpcInlcIixsPXQ9PT1mc3x8dD09PXNzP3c6TTtyZXR1cm4gZS5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGUpOm59LGUudGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gcj11cy5jYWxsKGFyZ3VtZW50cyksZX0sZS50aWNrQXJndW1lbnRzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PXQ/W106dXMuY2FsbCh0KSxlKTpyLnNsaWNlKCl9LGUudGlja1ZhbHVlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1udWxsPT10P251bGw6dXMuY2FsbCh0KSxlKTppJiZpLnNsaWNlKCl9LGUudGlja0Zvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz10LGUpOm99LGUudGlja1NpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9dT0rdCxlKTphfSxlLnRpY2tTaXplSW5uZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K3QsZSk6YX0sZS50aWNrU2l6ZU91dGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSt0LGUpOnV9LGUudGlja1BhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9K3QsZSk6Zn0sZX1mdW5jdGlvbiBOKCl7Zm9yKHZhciB0LG49MCxlPWFyZ3VtZW50cy5sZW5ndGgscj17fTtuPGU7KytuKXtpZighKHQ9YXJndW1lbnRzW25dK1wiXCIpfHx0IGluIHIpdGhyb3cgbmV3IEVycm9yKFwiaWxsZWdhbCB0eXBlOiBcIit0KTtyW3RdPVtdfXJldHVybiBuZXcgUyhyKX1mdW5jdGlvbiBTKHQpe3RoaXMuXz10fWZ1bmN0aW9uIEUodCxuLGUpe2Zvcih2YXIgcj0wLGk9dC5sZW5ndGg7cjxpOysrcilpZih0W3JdLm5hbWU9PT1uKXt0W3JdPWRzLHQ9dC5zbGljZSgwLHIpLmNvbmNhdCh0LnNsaWNlKHIrMSkpO2JyZWFrfXJldHVybiBudWxsIT1lJiZ0LnB1c2goe25hbWU6bix2YWx1ZTplfSksdH1mdW5jdGlvbiBrKHQpe3ZhciBuPXQrPVwiXCIsZT1uLmluZGV4T2YoXCI6XCIpO3JldHVybiBlPj0wJiZcInhtbG5zXCIhPT0obj10LnNsaWNlKDAsZSkpJiYodD10LnNsaWNlKGUrMSkpLHZzLmhhc093blByb3BlcnR5KG4pP3tzcGFjZTp2c1tuXSxsb2NhbDp0fTp0fWZ1bmN0aW9uIEModCl7dmFyIG49ayh0KTtyZXR1cm4obi5sb2NhbD9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0LnNwYWNlLHQubG9jYWwpfX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcy5vd25lckRvY3VtZW50LGU9dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIGU9PT1wcyYmbi5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJPT09cHM/bi5jcmVhdGVFbGVtZW50KHQpOm4uY3JlYXRlRWxlbWVudE5TKGUsdCl9fSkobil9ZnVuY3Rpb24gUCgpe31mdW5jdGlvbiB6KHQpe3JldHVybiBudWxsPT10P1A6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKHQpfX1mdW5jdGlvbiBSKCl7cmV0dXJuW119ZnVuY3Rpb24gTCh0KXtyZXR1cm4gbnVsbD09dD9SOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbCh0KX19ZnVuY3Rpb24gRCh0KXtyZXR1cm4gbmV3IEFycmF5KHQubGVuZ3RoKX1mdW5jdGlvbiBVKHQsbil7dGhpcy5vd25lckRvY3VtZW50PXQub3duZXJEb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSST10Lm5hbWVzcGFjZVVSSSx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcGFyZW50PXQsdGhpcy5fX2RhdGFfXz1ufWZ1bmN0aW9uIHEodCxuLGUscixpLG8pe2Zvcih2YXIgYSx1PTAsZj1uLmxlbmd0aCxjPW8ubGVuZ3RoO3U8YzsrK3UpKGE9blt1XSk/KGEuX19kYXRhX189b1t1XSxyW3VdPWEpOmVbdV09bmV3IFUodCxvW3VdKTtmb3IoO3U8ZjsrK3UpKGE9blt1XSkmJihpW3VdPWEpfWZ1bmN0aW9uIE8odCxuLGUscixpLG8sYSl7dmFyIHUsZixjLHM9e30sbD1uLmxlbmd0aCxoPW8ubGVuZ3RoLGQ9bmV3IEFycmF5KGwpO2Zvcih1PTA7dTxsOysrdSkoZj1uW3VdKSYmKGRbdV09Yz1tcythLmNhbGwoZixmLl9fZGF0YV9fLHUsbiksYyBpbiBzP2lbdV09ZjpzW2NdPWYpO2Zvcih1PTA7dTxoOysrdSkoZj1zW2M9bXMrYS5jYWxsKHQsb1t1XSx1LG8pXSk/KHJbdV09ZixmLl9fZGF0YV9fPW9bdV0sc1tjXT1udWxsKTplW3VdPW5ldyBVKHQsb1t1XSk7Zm9yKHU9MDt1PGw7Kyt1KShmPW5bdV0pJiZzW2RbdV1dPT09ZiYmKGlbdV09Zil9ZnVuY3Rpb24gWSh0LG4pe3JldHVybiB0PG4/LTE6dD5uPzE6dD49bj8wOk5hTn1mdW5jdGlvbiBCKHQpe3JldHVybiB0Lm93bmVyRG9jdW1lbnQmJnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8dC5kb2N1bWVudCYmdHx8dC5kZWZhdWx0Vmlld31mdW5jdGlvbiBGKHQsbil7cmV0dXJuIHQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuKXx8Qih0KS5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShuKX1mdW5jdGlvbiBJKHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxcXHMrLyl9ZnVuY3Rpb24gaih0KXtyZXR1cm4gdC5jbGFzc0xpc3R8fG5ldyBIKHQpfWZ1bmN0aW9uIEgodCl7dGhpcy5fbm9kZT10LHRoaXMuX25hbWVzPUkodC5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKXx8XCJcIil9ZnVuY3Rpb24gWCh0LG4pe2Zvcih2YXIgZT1qKHQpLHI9LTEsaT1uLmxlbmd0aDsrK3I8aTspZS5hZGQobltyXSl9ZnVuY3Rpb24gRyh0LG4pe2Zvcih2YXIgZT1qKHQpLHI9LTEsaT1uLmxlbmd0aDsrK3I8aTspZS5yZW1vdmUobltyXSl9ZnVuY3Rpb24gVigpe3RoaXMudGV4dENvbnRlbnQ9XCJcIn1mdW5jdGlvbiAkKCl7dGhpcy5pbm5lckhUTUw9XCJcIn1mdW5jdGlvbiBXKCl7dGhpcy5uZXh0U2libGluZyYmdGhpcy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMpfWZ1bmN0aW9uIFooKXt0aGlzLnByZXZpb3VzU2libGluZyYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLHRoaXMucGFyZW50Tm9kZS5maXJzdENoaWxkKX1mdW5jdGlvbiBRKCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gSigpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIEsoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmNsb25lTm9kZSghMSksdGhpcy5uZXh0U2libGluZyl9ZnVuY3Rpb24gdHQoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLmNsb25lTm9kZSghMCksdGhpcy5uZXh0U2libGluZyl9ZnVuY3Rpb24gbnQodCxuLGUpe3JldHVybiB0PWV0KHQsbixlKSxmdW5jdGlvbihuKXt2YXIgZT1uLnJlbGF0ZWRUYXJnZXQ7ZSYmKGU9PT10aGlzfHw4JmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24odGhpcykpfHx0LmNhbGwodGhpcyxuKX19ZnVuY3Rpb24gZXQobixlLHIpe3JldHVybiBmdW5jdGlvbihpKXt2YXIgbz10LmV2ZW50O3QuZXZlbnQ9aTt0cnl7bi5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyxlLHIpfWZpbmFsbHl7dC5ldmVudD1vfX19ZnVuY3Rpb24gcnQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcy5fX29uO2lmKG4pe2Zvcih2YXIgZSxyPTAsaT0tMSxvPW4ubGVuZ3RoO3I8bzsrK3IpZT1uW3JdLHQudHlwZSYmZS50eXBlIT09dC50eXBlfHxlLm5hbWUhPT10Lm5hbWU/blsrK2ldPWU6dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGUudHlwZSxlLmxpc3RlbmVyLGUuY2FwdHVyZSk7KytpP24ubGVuZ3RoPWk6ZGVsZXRlIHRoaXMuX19vbn19fWZ1bmN0aW9uIGl0KHQsbixlKXt2YXIgcj14cy5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP250OmV0O3JldHVybiBmdW5jdGlvbihpLG8sYSl7dmFyIHUsZj10aGlzLl9fb24sYz1yKG4sbyxhKTtpZihmKWZvcih2YXIgcz0wLGw9Zi5sZW5ndGg7czxsOysrcylpZigodT1mW3NdKS50eXBlPT09dC50eXBlJiZ1Lm5hbWU9PT10Lm5hbWUpcmV0dXJuIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcih1LnR5cGUsdS5saXN0ZW5lcix1LmNhcHR1cmUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcih1LnR5cGUsdS5saXN0ZW5lcj1jLHUuY2FwdHVyZT1lKSx2b2lkKHUudmFsdWU9bik7dGhpcy5hZGRFdmVudExpc3RlbmVyKHQudHlwZSxjLGUpLHU9e3R5cGU6dC50eXBlLG5hbWU6dC5uYW1lLHZhbHVlOm4sbGlzdGVuZXI6YyxjYXB0dXJlOmV9LGY/Zi5wdXNoKHUpOnRoaXMuX19vbj1bdV19fWZ1bmN0aW9uIG90KG4sZSxyLGkpe3ZhciBvPXQuZXZlbnQ7bi5zb3VyY2VFdmVudD10LmV2ZW50LHQuZXZlbnQ9bjt0cnl7cmV0dXJuIGUuYXBwbHkocixpKX1maW5hbGx5e3QuZXZlbnQ9b319ZnVuY3Rpb24gYXQodCxuLGUpe3ZhciByPUIodCksaT1yLkN1c3RvbUV2ZW50O1wiZnVuY3Rpb25cIj09dHlwZW9mIGk/aT1uZXcgaShuLGUpOihpPXIuZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJFdmVudFwiKSxlPyhpLmluaXRFdmVudChuLGUuYnViYmxlcyxlLmNhbmNlbGFibGUpLGkuZGV0YWlsPWUuZGV0YWlsKTppLmluaXRFdmVudChuLCExLCExKSksdC5kaXNwYXRjaEV2ZW50KGkpfWZ1bmN0aW9uIHV0KHQsbil7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1ufWZ1bmN0aW9uIGZ0KCl7cmV0dXJuIG5ldyB1dChbW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF1dLHdzKX1mdW5jdGlvbiBjdCh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD9uZXcgdXQoW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHQpXV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyB1dChbW3RdXSx3cyl9ZnVuY3Rpb24gc3QoKXtyZXR1cm4gbmV3IGx0fWZ1bmN0aW9uIGx0KCl7dGhpcy5fPVwiQFwiKygrK01zKS50b1N0cmluZygzNil9ZnVuY3Rpb24gaHQoKXtmb3IodmFyIG4sZT10LmV2ZW50O249ZS5zb3VyY2VFdmVudDspZT1uO3JldHVybiBlfWZ1bmN0aW9uIGR0KHQsbil7dmFyIGU9dC5vd25lclNWR0VsZW1lbnR8fHQ7aWYoZS5jcmVhdGVTVkdQb2ludCl7dmFyIHI9ZS5jcmVhdGVTVkdQb2ludCgpO3JldHVybiByLng9bi5jbGllbnRYLHIueT1uLmNsaWVudFkscj1yLm1hdHJpeFRyYW5zZm9ybSh0LmdldFNjcmVlbkNUTSgpLmludmVyc2UoKSksW3IueCxyLnldfXZhciBpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW24uY2xpZW50WC1pLmxlZnQtdC5jbGllbnRMZWZ0LG4uY2xpZW50WS1pLnRvcC10LmNsaWVudFRvcF19ZnVuY3Rpb24gcHQodCl7dmFyIG49aHQoKTtyZXR1cm4gbi5jaGFuZ2VkVG91Y2hlcyYmKG49bi5jaGFuZ2VkVG91Y2hlc1swXSksZHQodCxuKX1mdW5jdGlvbiB2dCh0LG4sZSl7YXJndW1lbnRzLmxlbmd0aDwzJiYoZT1uLG49aHQoKS5jaGFuZ2VkVG91Y2hlcyk7Zm9yKHZhciByLGk9MCxvPW4/bi5sZW5ndGg6MDtpPG87KytpKWlmKChyPW5baV0pLmlkZW50aWZpZXI9PT1lKXJldHVybiBkdCh0LHIpO3JldHVybiBudWxsfWZ1bmN0aW9uIGd0KCl7dC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiB5dCgpe3QuZXZlbnQucHJldmVudERlZmF1bHQoKSx0LmV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIF90KHQpe3ZhciBuPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGU9Y3QodCkub24oXCJkcmFnc3RhcnQuZHJhZ1wiLHl0LCEwKTtcIm9uc2VsZWN0c3RhcnRcImluIG4/ZS5vbihcInNlbGVjdHN0YXJ0LmRyYWdcIix5dCwhMCk6KG4uX19ub3NlbGVjdD1uLnN0eWxlLk1velVzZXJTZWxlY3Qsbi5zdHlsZS5Nb3pVc2VyU2VsZWN0PVwibm9uZVwiKX1mdW5jdGlvbiBidCh0LG4pe3ZhciBlPXQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHI9Y3QodCkub24oXCJkcmFnc3RhcnQuZHJhZ1wiLG51bGwpO24mJihyLm9uKFwiY2xpY2suZHJhZ1wiLHl0LCEwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5vbihcImNsaWNrLmRyYWdcIixudWxsKX0sMCkpLFwib25zZWxlY3RzdGFydFwiaW4gZT9yLm9uKFwic2VsZWN0c3RhcnQuZHJhZ1wiLG51bGwpOihlLnN0eWxlLk1velVzZXJTZWxlY3Q9ZS5fX25vc2VsZWN0LGRlbGV0ZSBlLl9fbm9zZWxlY3QpfWZ1bmN0aW9uIG10KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiB4dCh0LG4sZSxyLGksbyxhLHUsZixjKXt0aGlzLnRhcmdldD10LHRoaXMudHlwZT1uLHRoaXMuc3ViamVjdD1lLHRoaXMuaWRlbnRpZmllcj1yLHRoaXMuYWN0aXZlPWksdGhpcy54PW8sdGhpcy55PWEsdGhpcy5keD11LHRoaXMuZHk9Zix0aGlzLl89Y31mdW5jdGlvbiB3dCgpe3JldHVybiF0LmV2ZW50LmJ1dHRvbn1mdW5jdGlvbiBNdCgpe3JldHVybiB0aGlzLnBhcmVudE5vZGV9ZnVuY3Rpb24gQXQobil7cmV0dXJuIG51bGw9PW4/e3g6dC5ldmVudC54LHk6dC5ldmVudC55fTpufWZ1bmN0aW9uIFR0KCl7cmV0dXJuXCJvbnRvdWNoc3RhcnRcImluIHRoaXN9ZnVuY3Rpb24gTnQodCxuLGUpe3QucHJvdG90eXBlPW4ucHJvdG90eXBlPWUsZS5jb25zdHJ1Y3Rvcj10fWZ1bmN0aW9uIFN0KHQsbil7dmFyIGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSk7Zm9yKHZhciByIGluIG4pZVtyXT1uW3JdO3JldHVybiBlfWZ1bmN0aW9uIEV0KCl7fWZ1bmN0aW9uIGt0KHQpe3ZhciBuO3JldHVybiB0PSh0K1wiXCIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLChuPVNzLmV4ZWModCkpPyhuPXBhcnNlSW50KG5bMV0sMTYpLG5ldyBMdChuPj44JjE1fG4+PjQmMjQwLG4+PjQmMTV8MjQwJm4sKDE1Jm4pPDw0fDE1Jm4sMSkpOihuPUVzLmV4ZWModCkpP0N0KHBhcnNlSW50KG5bMV0sMTYpKToobj1rcy5leGVjKHQpKT9uZXcgTHQoblsxXSxuWzJdLG5bM10sMSk6KG49Q3MuZXhlYyh0KSk/bmV3IEx0KDI1NSpuWzFdLzEwMCwyNTUqblsyXS8xMDAsMjU1Km5bM10vMTAwLDEpOihuPVBzLmV4ZWModCkpP1B0KG5bMV0sblsyXSxuWzNdLG5bNF0pOihuPXpzLmV4ZWModCkpP1B0KDI1NSpuWzFdLzEwMCwyNTUqblsyXS8xMDAsMjU1Km5bM10vMTAwLG5bNF0pOihuPVJzLmV4ZWModCkpP1V0KG5bMV0sblsyXS8xMDAsblszXS8xMDAsMSk6KG49THMuZXhlYyh0KSk/VXQoblsxXSxuWzJdLzEwMCxuWzNdLzEwMCxuWzRdKTpEcy5oYXNPd25Qcm9wZXJ0eSh0KT9DdChEc1t0XSk6XCJ0cmFuc3BhcmVudFwiPT09dD9uZXcgTHQoTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiBDdCh0KXtyZXR1cm4gbmV3IEx0KHQ+PjE2JjI1NSx0Pj44JjI1NSwyNTUmdCwxKX1mdW5jdGlvbiBQdCh0LG4sZSxyKXtyZXR1cm4gcjw9MCYmKHQ9bj1lPU5hTiksbmV3IEx0KHQsbixlLHIpfWZ1bmN0aW9uIHp0KHQpe3JldHVybiB0IGluc3RhbmNlb2YgRXR8fCh0PWt0KHQpKSx0Pyh0PXQucmdiKCksbmV3IEx0KHQucix0LmcsdC5iLHQub3BhY2l0eSkpOm5ldyBMdH1mdW5jdGlvbiBSdCh0LG4sZSxyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/enQodCk6bmV3IEx0KHQsbixlLG51bGw9PXI/MTpyKX1mdW5jdGlvbiBMdCh0LG4sZSxyKXt0aGlzLnI9K3QsdGhpcy5nPStuLHRoaXMuYj0rZSx0aGlzLm9wYWNpdHk9K3J9ZnVuY3Rpb24gRHQodCl7cmV0dXJuKCh0PU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodCl8fDApKSk8MTY/XCIwXCI6XCJcIikrdC50b1N0cmluZygxNil9ZnVuY3Rpb24gVXQodCxuLGUscil7cmV0dXJuIHI8PTA/dD1uPWU9TmFOOmU8PTB8fGU+PTE/dD1uPU5hTjpuPD0wJiYodD1OYU4pLG5ldyBPdCh0LG4sZSxyKX1mdW5jdGlvbiBxdCh0LG4sZSxyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIE90KXJldHVybiBuZXcgT3QodC5oLHQucyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgRXR8fCh0PWt0KHQpKSwhdClyZXR1cm4gbmV3IE90O2lmKHQgaW5zdGFuY2VvZiBPdClyZXR1cm4gdDt2YXIgbj0odD10LnJnYigpKS5yLzI1NSxlPXQuZy8yNTUscj10LmIvMjU1LGk9TWF0aC5taW4obixlLHIpLG89TWF0aC5tYXgobixlLHIpLGE9TmFOLHU9by1pLGY9KG8raSkvMjtyZXR1cm4gdT8oYT1uPT09bz8oZS1yKS91KzYqKGU8cik6ZT09PW8/KHItbikvdSsyOihuLWUpL3UrNCx1Lz1mPC41P28raToyLW8taSxhKj02MCk6dT1mPjAmJmY8MT8wOmEsbmV3IE90KGEsdSxmLHQub3BhY2l0eSl9KHQpOm5ldyBPdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gT3QodCxuLGUscil7dGhpcy5oPSt0LHRoaXMucz0rbix0aGlzLmw9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIFl0KHQsbixlKXtyZXR1cm4gMjU1Kih0PDYwP24rKGUtbikqdC82MDp0PDE4MD9lOnQ8MjQwP24rKGUtbikqKDI0MC10KS82MDpuKX1mdW5jdGlvbiBCdCh0KXtpZih0IGluc3RhbmNlb2YgSXQpcmV0dXJuIG5ldyBJdCh0LmwsdC5hLHQuYix0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBXdCl7aWYoaXNOYU4odC5oKSlyZXR1cm4gbmV3IEl0KHQubCwwLDAsdC5vcGFjaXR5KTt2YXIgbj10LmgqVXM7cmV0dXJuIG5ldyBJdCh0LmwsTWF0aC5jb3MobikqdC5jLE1hdGguc2luKG4pKnQuYyx0Lm9wYWNpdHkpfXQgaW5zdGFuY2VvZiBMdHx8KHQ9enQodCkpO3ZhciBlLHIsaT1HdCh0LnIpLG89R3QodC5nKSxhPUd0KHQuYiksdT1qdCgoLjIyMjUwNDUqaSsuNzE2ODc4NipvKy4wNjA2MTY5KmEpL1lzKTtyZXR1cm4gaT09PW8mJm89PT1hP2U9cj11OihlPWp0KCguNDM2MDc0NyppKy4zODUwNjQ5Km8rLjE0MzA4MDQqYSkvT3MpLHI9anQoKC4wMTM5MzIyKmkrLjA5NzEwNDUqbysuNzE0MTczMyphKS9CcykpLG5ldyBJdCgxMTYqdS0xNiw1MDAqKGUtdSksMjAwKih1LXIpLHQub3BhY2l0eSl9ZnVuY3Rpb24gRnQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP0J0KHQpOm5ldyBJdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gSXQodCxuLGUscil7dGhpcy5sPSt0LHRoaXMuYT0rbix0aGlzLmI9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIGp0KHQpe3JldHVybiB0PkhzP01hdGgucG93KHQsMS8zKTp0L2pzK0ZzfWZ1bmN0aW9uIEh0KHQpe3JldHVybiB0PklzP3QqdCp0OmpzKih0LUZzKX1mdW5jdGlvbiBYdCh0KXtyZXR1cm4gMjU1Kih0PD0uMDAzMTMwOD8xMi45Mip0OjEuMDU1Kk1hdGgucG93KHQsMS8yLjQpLS4wNTUpfWZ1bmN0aW9uIEd0KHQpe3JldHVybih0Lz0yNTUpPD0uMDQwNDU/dC8xMi45MjpNYXRoLnBvdygodCsuMDU1KS8xLjA1NSwyLjQpfWZ1bmN0aW9uIFZ0KHQpe2lmKHQgaW5zdGFuY2VvZiBXdClyZXR1cm4gbmV3IFd0KHQuaCx0LmMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIEl0fHwodD1CdCh0KSksMD09PXQuYSYmMD09PXQuYilyZXR1cm4gbmV3IFd0KE5hTiwwLHQubCx0Lm9wYWNpdHkpO3ZhciBuPU1hdGguYXRhbjIodC5iLHQuYSkqcXM7cmV0dXJuIG5ldyBXdChuPDA/biszNjA6bixNYXRoLnNxcnQodC5hKnQuYSt0LmIqdC5iKSx0LmwsdC5vcGFjaXR5KX1mdW5jdGlvbiAkdCh0LG4sZSxyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/VnQodCk6bmV3IFd0KHQsbixlLG51bGw9PXI/MTpyKX1mdW5jdGlvbiBXdCh0LG4sZSxyKXt0aGlzLmg9K3QsdGhpcy5jPStuLHRoaXMubD0rZSx0aGlzLm9wYWNpdHk9K3J9ZnVuY3Rpb24gWnQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2Z1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBRdClyZXR1cm4gbmV3IFF0KHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7dCBpbnN0YW5jZW9mIEx0fHwodD16dCh0KSk7dmFyIG49dC5yLzI1NSxlPXQuZy8yNTUscj10LmIvMjU1LGk9KFpzKnIrJHMqbi1XcyplKS8oWnMrJHMtV3MpLG89ci1pLGE9KFZzKihlLWkpLVhzKm8pL0dzLHU9TWF0aC5zcXJ0KGEqYStvKm8pLyhWcyppKigxLWkpKSxmPXU/TWF0aC5hdGFuMihhLG8pKnFzLTEyMDpOYU47cmV0dXJuIG5ldyBRdChmPDA/ZiszNjA6Zix1LGksdC5vcGFjaXR5KX0odCk6bmV3IFF0KHQsbixlLG51bGw9PXI/MTpyKX1mdW5jdGlvbiBRdCh0LG4sZSxyKXt0aGlzLmg9K3QsdGhpcy5zPStuLHRoaXMubD0rZSx0aGlzLm9wYWNpdHk9K3J9ZnVuY3Rpb24gSnQodCxuLGUscixpKXt2YXIgbz10KnQsYT1vKnQ7cmV0dXJuKCgxLTMqdCszKm8tYSkqbisoNC02Km8rMyphKSplKygxKzMqdCszKm8tMyphKSpyK2EqaSkvNn1mdW5jdGlvbiBLdCh0KXt2YXIgbj10Lmxlbmd0aC0xO3JldHVybiBmdW5jdGlvbihlKXt2YXIgcj1lPD0wP2U9MDplPj0xPyhlPTEsbi0xKTpNYXRoLmZsb29yKGUqbiksaT10W3JdLG89dFtyKzFdLGE9cj4wP3Rbci0xXToyKmktbyx1PXI8bi0xP3RbcisyXToyKm8taTtyZXR1cm4gSnQoKGUtci9uKSpuLGEsaSxvLHUpfX1mdW5jdGlvbiB0bih0KXt2YXIgbj10Lmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI9TWF0aC5mbG9vcigoKGUlPTEpPDA/KytlOmUpKm4pLGk9dFsocituLTEpJW5dLG89dFtyJW5dLGE9dFsocisxKSVuXSx1PXRbKHIrMiklbl07cmV0dXJuIEp0KChlLXIvbikqbixpLG8sYSx1KX19ZnVuY3Rpb24gbm4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGVuKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0K2Uqbn19ZnVuY3Rpb24gcm4odCxuKXt2YXIgZT1uLXQ7cmV0dXJuIGU/ZW4odCxlPjE4MHx8ZTwtMTgwP2UtMzYwKk1hdGgucm91bmQoZS8zNjApOmUpOm5uKGlzTmFOKHQpP246dCl9ZnVuY3Rpb24gb24odCl7cmV0dXJuIDE9PSh0PSt0KT9hbjpmdW5jdGlvbihuLGUpe3JldHVybiBlLW4/ZnVuY3Rpb24odCxuLGUpe3JldHVybiB0PU1hdGgucG93KHQsZSksbj1NYXRoLnBvdyhuLGUpLXQsZT0xL2UsZnVuY3Rpb24ocil7cmV0dXJuIE1hdGgucG93KHQrcipuLGUpfX0obixlLHQpOm5uKGlzTmFOKG4pP2U6bil9fWZ1bmN0aW9uIGFuKHQsbil7dmFyIGU9bi10O3JldHVybiBlP2VuKHQsZSk6bm4oaXNOYU4odCk/bjp0KX1mdW5jdGlvbiB1bih0KXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGUscixpPW4ubGVuZ3RoLG89bmV3IEFycmF5KGkpLGE9bmV3IEFycmF5KGkpLHU9bmV3IEFycmF5KGkpO2ZvcihlPTA7ZTxpOysrZSlyPVJ0KG5bZV0pLG9bZV09ci5yfHwwLGFbZV09ci5nfHwwLHVbZV09ci5ifHwwO3JldHVybiBvPXQobyksYT10KGEpLHU9dCh1KSxyLm9wYWNpdHk9MSxmdW5jdGlvbih0KXtyZXR1cm4gci5yPW8odCksci5nPWEodCksci5iPXUodCkscitcIlwifX19ZnVuY3Rpb24gZm4odCxuKXt2YXIgZSxyPW4/bi5sZW5ndGg6MCxpPXQ/TWF0aC5taW4ocix0Lmxlbmd0aCk6MCxvPW5ldyBBcnJheShpKSxhPW5ldyBBcnJheShyKTtmb3IoZT0wO2U8aTsrK2Upb1tlXT1kbih0W2VdLG5bZV0pO2Zvcig7ZTxyOysrZSlhW2VdPW5bZV07cmV0dXJuIGZ1bmN0aW9uKHQpe2ZvcihlPTA7ZTxpOysrZSlhW2VdPW9bZV0odCk7cmV0dXJuIGF9fWZ1bmN0aW9uIGNuKHQsbil7dmFyIGU9bmV3IERhdGU7cmV0dXJuIHQ9K3Qsbi09dCxmdW5jdGlvbihyKXtyZXR1cm4gZS5zZXRUaW1lKHQrbipyKSxlfX1mdW5jdGlvbiBzbih0LG4pe3JldHVybiB0PSt0LG4tPXQsZnVuY3Rpb24oZSl7cmV0dXJuIHQrbiplfX1mdW5jdGlvbiBsbih0LG4pe3ZhciBlLHI9e30saT17fTtudWxsIT09dCYmXCJvYmplY3RcIj09dHlwZW9mIHR8fCh0PXt9KSxudWxsIT09biYmXCJvYmplY3RcIj09dHlwZW9mIG58fChuPXt9KTtmb3IoZSBpbiBuKWUgaW4gdD9yW2VdPWRuKHRbZV0sbltlXSk6aVtlXT1uW2VdO3JldHVybiBmdW5jdGlvbih0KXtmb3IoZSBpbiByKWlbZV09cltlXSh0KTtyZXR1cm4gaX19ZnVuY3Rpb24gaG4odCxuKXt2YXIgZSxyLGksbz1hbC5sYXN0SW5kZXg9dWwubGFzdEluZGV4PTAsYT0tMSx1PVtdLGY9W107Zm9yKHQrPVwiXCIsbis9XCJcIjsoZT1hbC5leGVjKHQpKSYmKHI9dWwuZXhlYyhuKSk7KShpPXIuaW5kZXgpPm8mJihpPW4uc2xpY2UobyxpKSx1W2FdP3VbYV0rPWk6dVsrK2FdPWkpLChlPWVbMF0pPT09KHI9clswXSk/dVthXT91W2FdKz1yOnVbKythXT1yOih1WysrYV09bnVsbCxmLnB1c2goe2k6YSx4OnNuKGUscil9KSksbz11bC5sYXN0SW5kZXg7cmV0dXJuIG88bi5sZW5ndGgmJihpPW4uc2xpY2UobyksdVthXT91W2FdKz1pOnVbKythXT1pKSx1Lmxlbmd0aDwyP2ZbMF0/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0KG4pK1wiXCJ9fShmWzBdLngpOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0obik6KG49Zi5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9MDtyPG47KytyKXVbKGU9ZltyXSkuaV09ZS54KHQpO3JldHVybiB1LmpvaW4oXCJcIil9KX1mdW5jdGlvbiBkbih0LG4pe3ZhciBlLHI9dHlwZW9mIG47cmV0dXJuIG51bGw9PW58fFwiYm9vbGVhblwiPT09cj9ubihuKTooXCJudW1iZXJcIj09PXI/c246XCJzdHJpbmdcIj09PXI/KGU9a3QobikpPyhuPWUscmwpOmhuOm4gaW5zdGFuY2VvZiBrdD9ybDpuIGluc3RhbmNlb2YgRGF0ZT9jbjpBcnJheS5pc0FycmF5KG4pP2ZuOlwiZnVuY3Rpb25cIiE9dHlwZW9mIG4udmFsdWVPZiYmXCJmdW5jdGlvblwiIT10eXBlb2Ygbi50b1N0cmluZ3x8aXNOYU4obik/bG46c24pKHQsbil9ZnVuY3Rpb24gcG4odCxuKXtyZXR1cm4gdD0rdCxuLT10LGZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnJvdW5kKHQrbiplKX19ZnVuY3Rpb24gdm4odCxuLGUscixpLG8pe3ZhciBhLHUsZjtyZXR1cm4oYT1NYXRoLnNxcnQodCp0K24qbikpJiYodC89YSxuLz1hKSwoZj10KmUrbipyKSYmKGUtPXQqZixyLT1uKmYpLCh1PU1hdGguc3FydChlKmUrcipyKSkmJihlLz11LHIvPXUsZi89dSksdCpyPG4qZSYmKHQ9LXQsbj0tbixmPS1mLGE9LWEpLHt0cmFuc2xhdGVYOmksdHJhbnNsYXRlWTpvLHJvdGF0ZTpNYXRoLmF0YW4yKG4sdCkqZmwsc2tld1g6TWF0aC5hdGFuKGYpKmZsLHNjYWxlWDphLHNjYWxlWTp1fX1mdW5jdGlvbiBnbih0LG4sZSxyKXtmdW5jdGlvbiBpKHQpe3JldHVybiB0Lmxlbmd0aD90LnBvcCgpK1wiIFwiOlwiXCJ9cmV0dXJuIGZ1bmN0aW9uKG8sYSl7dmFyIHU9W10sZj1bXTtyZXR1cm4gbz10KG8pLGE9dChhKSxmdW5jdGlvbih0LHIsaSxvLGEsdSl7aWYodCE9PWl8fHIhPT1vKXt2YXIgZj1hLnB1c2goXCJ0cmFuc2xhdGUoXCIsbnVsbCxuLG51bGwsZSk7dS5wdXNoKHtpOmYtNCx4OnNuKHQsaSl9LHtpOmYtMix4OnNuKHIsbyl9KX1lbHNlKGl8fG8pJiZhLnB1c2goXCJ0cmFuc2xhdGUoXCIraStuK28rZSl9KG8udHJhbnNsYXRlWCxvLnRyYW5zbGF0ZVksYS50cmFuc2xhdGVYLGEudHJhbnNsYXRlWSx1LGYpLGZ1bmN0aW9uKHQsbixlLG8pe3QhPT1uPyh0LW4+MTgwP24rPTM2MDpuLXQ+MTgwJiYodCs9MzYwKSxvLnB1c2goe2k6ZS5wdXNoKGkoZSkrXCJyb3RhdGUoXCIsbnVsbCxyKS0yLHg6c24odCxuKX0pKTpuJiZlLnB1c2goaShlKStcInJvdGF0ZShcIituK3IpfShvLnJvdGF0ZSxhLnJvdGF0ZSx1LGYpLGZ1bmN0aW9uKHQsbixlLG8pe3QhPT1uP28ucHVzaCh7aTplLnB1c2goaShlKStcInNrZXdYKFwiLG51bGwsciktMix4OnNuKHQsbil9KTpuJiZlLnB1c2goaShlKStcInNrZXdYKFwiK24rcil9KG8uc2tld1gsYS5za2V3WCx1LGYpLGZ1bmN0aW9uKHQsbixlLHIsbyxhKXtpZih0IT09ZXx8biE9PXIpe3ZhciB1PW8ucHVzaChpKG8pK1wic2NhbGUoXCIsbnVsbCxcIixcIixudWxsLFwiKVwiKTthLnB1c2goe2k6dS00LHg6c24odCxlKX0se2k6dS0yLHg6c24obixyKX0pfWVsc2UgMT09PWUmJjE9PT1yfHxvLnB1c2goaShvKStcInNjYWxlKFwiK2UrXCIsXCIrcitcIilcIil9KG8uc2NhbGVYLG8uc2NhbGVZLGEuc2NhbGVYLGEuc2NhbGVZLHUsZiksbz1hPW51bGwsZnVuY3Rpb24odCl7Zm9yKHZhciBuLGU9LTEscj1mLmxlbmd0aDsrK2U8cjspdVsobj1mW2VdKS5pXT1uLngodCk7cmV0dXJuIHUuam9pbihcIlwiKX19fWZ1bmN0aW9uIHluKHQpe3JldHVybigodD1NYXRoLmV4cCh0KSkrMS90KS8yfWZ1bmN0aW9uIF9uKHQsbil7dmFyIGUscixpPXRbMF0sbz10WzFdLGE9dFsyXSx1PW5bMF0sZj1uWzFdLGM9blsyXSxzPXUtaSxsPWYtbyxoPXMqcytsKmw7aWYoaDx2bClyPU1hdGgubG9nKGMvYSkvaGwsZT1mdW5jdGlvbih0KXtyZXR1cm5baSt0KnMsbyt0KmwsYSpNYXRoLmV4cChobCp0KnIpXX07ZWxzZXt2YXIgZD1NYXRoLnNxcnQoaCkscD0oYypjLWEqYStwbCpoKS8oMiphKmRsKmQpLHY9KGMqYy1hKmEtcGwqaCkvKDIqYypkbCpkKSxnPU1hdGgubG9nKE1hdGguc3FydChwKnArMSktcCkseT1NYXRoLmxvZyhNYXRoLnNxcnQodip2KzEpLXYpO3I9KHktZykvaGwsZT1mdW5jdGlvbih0KXt2YXIgbj10KnIsZT15bihnKSx1PWEvKGRsKmQpKihlKmZ1bmN0aW9uKHQpe3JldHVybigodD1NYXRoLmV4cCgyKnQpKS0xKS8odCsxKX0oaGwqbitnKS1mdW5jdGlvbih0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpLTEvdCkvMn0oZykpO3JldHVybltpK3UqcyxvK3UqbCxhKmUveW4oaGwqbitnKV19fXJldHVybiBlLmR1cmF0aW9uPTFlMypyLGV9ZnVuY3Rpb24gYm4odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7dmFyIHI9dCgobj1xdChuKSkuaCwoZT1xdChlKSkuaCksaT1hbihuLnMsZS5zKSxvPWFuKG4ubCxlLmwpLGE9YW4obi5vcGFjaXR5LGUub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuLmg9cih0KSxuLnM9aSh0KSxuLmw9byh0KSxuLm9wYWNpdHk9YSh0KSxuK1wiXCJ9fX1mdW5jdGlvbiBtbih0KXtyZXR1cm4gZnVuY3Rpb24obixlKXt2YXIgcj10KChuPSR0KG4pKS5oLChlPSR0KGUpKS5oKSxpPWFuKG4uYyxlLmMpLG89YW4obi5sLGUubCksYT1hbihuLm9wYWNpdHksZS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG4uaD1yKHQpLG4uYz1pKHQpLG4ubD1vKHQpLG4ub3BhY2l0eT1hKHQpLG4rXCJcIn19fWZ1bmN0aW9uIHhuKHQpe3JldHVybiBmdW5jdGlvbiBuKGUpe2Z1bmN0aW9uIHIobixyKXt2YXIgaT10KChuPVp0KG4pKS5oLChyPVp0KHIpKS5oKSxvPWFuKG4ucyxyLnMpLGE9YW4obi5sLHIubCksdT1hbihuLm9wYWNpdHksci5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG4uaD1pKHQpLG4ucz1vKHQpLG4ubD1hKE1hdGgucG93KHQsZSkpLG4ub3BhY2l0eT11KHQpLG4rXCJcIn19cmV0dXJuIGU9K2Usci5nYW1tYT1uLHJ9KDEpfWZ1bmN0aW9uIHduKCl7cmV0dXJuIFNsfHwoQ2woTW4pLFNsPWtsLm5vdygpK0VsKX1mdW5jdGlvbiBNbigpe1NsPTB9ZnVuY3Rpb24gQW4oKXt0aGlzLl9jYWxsPXRoaXMuX3RpbWU9dGhpcy5fbmV4dD1udWxsfWZ1bmN0aW9uIFRuKHQsbixlKXt2YXIgcj1uZXcgQW47cmV0dXJuIHIucmVzdGFydCh0LG4sZSkscn1mdW5jdGlvbiBObigpe3duKCksKyt3bDtmb3IodmFyIHQsbj1ubDtuOykodD1TbC1uLl90aW1lKT49MCYmbi5fY2FsbC5jYWxsKG51bGwsdCksbj1uLl9uZXh0Oy0td2x9ZnVuY3Rpb24gU24oKXtTbD0oTmw9a2wubm93KCkpK0VsLHdsPU1sPTA7dHJ5e05uKCl9ZmluYWxseXt3bD0wLGZ1bmN0aW9uKCl7dmFyIHQsbixlPW5sLHI9MS8wO2Zvcig7ZTspZS5fY2FsbD8ocj5lLl90aW1lJiYocj1lLl90aW1lKSx0PWUsZT1lLl9uZXh0KToobj1lLl9uZXh0LGUuX25leHQ9bnVsbCxlPXQ/dC5fbmV4dD1uOm5sPW4pO2VsPXQsa24ocil9KCksU2w9MH19ZnVuY3Rpb24gRW4oKXt2YXIgdD1rbC5ub3coKSxuPXQtTmw7bj5UbCYmKEVsLT1uLE5sPXQpfWZ1bmN0aW9uIGtuKHQpe2lmKCF3bCl7TWwmJihNbD1jbGVhclRpbWVvdXQoTWwpKTt0LVNsPjI0Pyh0PDEvMCYmKE1sPXNldFRpbWVvdXQoU24sdC1rbC5ub3coKS1FbCkpLEFsJiYoQWw9Y2xlYXJJbnRlcnZhbChBbCkpKTooQWx8fChObD1rbC5ub3coKSxBbD1zZXRJbnRlcnZhbChFbixUbCkpLHdsPTEsQ2woU24pKX19ZnVuY3Rpb24gQ24odCxuLGUpe3ZhciByPW5ldyBBbjtyZXR1cm4gbj1udWxsPT1uPzA6K24sci5yZXN0YXJ0KGZ1bmN0aW9uKGUpe3Iuc3RvcCgpLHQoZStuKX0sbixlKSxyfWZ1bmN0aW9uIFBuKHQsbixlLHIsaSxvKXt2YXIgYT10Ll9fdHJhbnNpdGlvbjtpZihhKXtpZihlIGluIGEpcmV0dXJufWVsc2UgdC5fX3RyYW5zaXRpb249e307KGZ1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKGYpe3ZhciBjLHMsbCxoO2lmKGUuc3RhdGUhPT1MbClyZXR1cm4gbygpO2ZvcihjIGluIHUpaWYoKGg9dVtjXSkubmFtZT09PWUubmFtZSl7aWYoaC5zdGF0ZT09PVVsKXJldHVybiBDbihyKTtoLnN0YXRlPT09cWw/KGguc3RhdGU9WWwsaC50aW1lci5zdG9wKCksaC5vbi5jYWxsKFwiaW50ZXJydXB0XCIsdCx0Ll9fZGF0YV9fLGguaW5kZXgsaC5ncm91cCksZGVsZXRlIHVbY10pOitjPG4mJihoLnN0YXRlPVlsLGgudGltZXIuc3RvcCgpLGRlbGV0ZSB1W2NdKX1pZihDbihmdW5jdGlvbigpe2Uuc3RhdGU9PT1VbCYmKGUuc3RhdGU9cWwsZS50aW1lci5yZXN0YXJ0KGksZS5kZWxheSxlLnRpbWUpLGkoZikpfSksZS5zdGF0ZT1EbCxlLm9uLmNhbGwoXCJzdGFydFwiLHQsdC5fX2RhdGFfXyxlLmluZGV4LGUuZ3JvdXApLGUuc3RhdGU9PT1EbCl7Zm9yKGUuc3RhdGU9VWwsYT1uZXcgQXJyYXkobD1lLnR3ZWVuLmxlbmd0aCksYz0wLHM9LTE7YzxsOysrYykoaD1lLnR3ZWVuW2NdLnZhbHVlLmNhbGwodCx0Ll9fZGF0YV9fLGUuaW5kZXgsZS5ncm91cCkpJiYoYVsrK3NdPWgpO2EubGVuZ3RoPXMrMX19ZnVuY3Rpb24gaShuKXtmb3IodmFyIHI9bjxlLmR1cmF0aW9uP2UuZWFzZS5jYWxsKG51bGwsbi9lLmR1cmF0aW9uKTooZS50aW1lci5yZXN0YXJ0KG8pLGUuc3RhdGU9T2wsMSksaT0tMSx1PWEubGVuZ3RoOysraTx1OylhW2ldLmNhbGwobnVsbCxyKTtlLnN0YXRlPT09T2wmJihlLm9uLmNhbGwoXCJlbmRcIix0LHQuX19kYXRhX18sZS5pbmRleCxlLmdyb3VwKSxvKCkpfWZ1bmN0aW9uIG8oKXtlLnN0YXRlPVlsLGUudGltZXIuc3RvcCgpLGRlbGV0ZSB1W25dO2Zvcih2YXIgciBpbiB1KXJldHVybjtkZWxldGUgdC5fX3RyYW5zaXRpb259dmFyIGEsdT10Ll9fdHJhbnNpdGlvbjt1W25dPWUsZS50aW1lcj1UbihmdW5jdGlvbih0KXtlLnN0YXRlPUxsLGUudGltZXIucmVzdGFydChyLGUuZGVsYXksZS50aW1lKSxlLmRlbGF5PD10JiZyKHQtZS5kZWxheSl9LDAsZS50aW1lKX0pKHQsZSx7bmFtZTpuLGluZGV4OnIsZ3JvdXA6aSxvbjpQbCx0d2Vlbjp6bCx0aW1lOm8udGltZSxkZWxheTpvLmRlbGF5LGR1cmF0aW9uOm8uZHVyYXRpb24sZWFzZTpvLmVhc2UsdGltZXI6bnVsbCxzdGF0ZTpSbH0pfWZ1bmN0aW9uIHpuKHQsbil7dmFyIGU9TG4odCxuKTtpZihlLnN0YXRlPlJsKXRocm93IG5ldyBFcnJvcihcInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZFwiKTtyZXR1cm4gZX1mdW5jdGlvbiBSbih0LG4pe3ZhciBlPUxuKHQsbik7aWYoZS5zdGF0ZT5EbCl0aHJvdyBuZXcgRXJyb3IoXCJ0b28gbGF0ZTsgYWxyZWFkeSBzdGFydGVkXCIpO3JldHVybiBlfWZ1bmN0aW9uIExuKHQsbil7dmFyIGU9dC5fX3RyYW5zaXRpb247aWYoIWV8fCEoZT1lW25dKSl0aHJvdyBuZXcgRXJyb3IoXCJ0cmFuc2l0aW9uIG5vdCBmb3VuZFwiKTtyZXR1cm4gZX1mdW5jdGlvbiBEbih0LG4pe3ZhciBlLHIsaSxvPXQuX190cmFuc2l0aW9uLGE9ITA7aWYobyl7bj1udWxsPT1uP251bGw6bitcIlwiO2ZvcihpIGluIG8pKGU9b1tpXSkubmFtZT09PW4/KHI9ZS5zdGF0ZT5EbCYmZS5zdGF0ZTxPbCxlLnN0YXRlPVlsLGUudGltZXIuc3RvcCgpLHImJmUub24uY2FsbChcImludGVycnVwdFwiLHQsdC5fX2RhdGFfXyxlLmluZGV4LGUuZ3JvdXApLGRlbGV0ZSBvW2ldKTphPSExO2EmJmRlbGV0ZSB0Ll9fdHJhbnNpdGlvbn19ZnVuY3Rpb24gVW4odCxuLGUpe3ZhciByPXQuX2lkO3JldHVybiB0LmVhY2goZnVuY3Rpb24oKXt2YXIgdD1Sbih0aGlzLHIpOyh0LnZhbHVlfHwodC52YWx1ZT17fSkpW25dPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksZnVuY3Rpb24odCl7cmV0dXJuIExuKHQscikudmFsdWVbbl19fWZ1bmN0aW9uIHFuKHQsbil7dmFyIGU7cmV0dXJuKFwibnVtYmVyXCI9PXR5cGVvZiBuP3NuOm4gaW5zdGFuY2VvZiBrdD9ybDooZT1rdChuKSk/KG49ZSxybCk6aG4pKHQsbil9ZnVuY3Rpb24gT24odCxuLGUscil7dGhpcy5fZ3JvdXBzPXQsdGhpcy5fcGFyZW50cz1uLHRoaXMuX25hbWU9ZSx0aGlzLl9pZD1yfWZ1bmN0aW9uIFluKHQpe3JldHVybiBmdCgpLnRyYW5zaXRpb24odCl9ZnVuY3Rpb24gQm4oKXtyZXR1cm4rK0ZsfWZ1bmN0aW9uIEZuKHQpe3JldHVybigodCo9Mik8PTE/dCp0Oi0tdCooMi10KSsxKS8yfWZ1bmN0aW9uIEluKHQpe3JldHVybigodCo9Mik8PTE/dCp0KnQ6KHQtPTIpKnQqdCsyKS8yfWZ1bmN0aW9uIGpuKHQpe3JldHVybigxLU1hdGguY29zKEdsKnQpKS8yfWZ1bmN0aW9uIEhuKHQpe3JldHVybigodCo9Mik8PTE/TWF0aC5wb3coMiwxMCp0LTEwKToyLU1hdGgucG93KDIsMTAtMTAqdCkpLzJ9ZnVuY3Rpb24gWG4odCl7cmV0dXJuKCh0Kj0yKTw9MT8xLU1hdGguc3FydCgxLXQqdCk6TWF0aC5zcXJ0KDEtKHQtPTIpKnQpKzEpLzJ9ZnVuY3Rpb24gR24odCl7cmV0dXJuKHQ9K3QpPCRsP3JoKnQqdDp0PFpsP3JoKih0LT1XbCkqdCtRbDp0PEtsP3JoKih0LT1KbCkqdCt0aDpyaCoodC09bmgpKnQrZWh9ZnVuY3Rpb24gVm4odCxuKXtmb3IodmFyIGU7IShlPXQuX190cmFuc2l0aW9uKXx8IShlPWVbbl0pOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm4gbGgudGltZT13bigpLGxoO3JldHVybiBlfWZ1bmN0aW9uICRuKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBXbigpe3QuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gWm4oKXt0LmV2ZW50LnByZXZlbnREZWZhdWx0KCksdC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBRbih0KXtyZXR1cm57dHlwZTp0fX1mdW5jdGlvbiBKbigpe3JldHVybiF0LmV2ZW50LmJ1dHRvbn1mdW5jdGlvbiBLbigpe3ZhciB0PXRoaXMub3duZXJTVkdFbGVtZW50fHx0aGlzO3JldHVybltbMCwwXSxbdC53aWR0aC5iYXNlVmFsLnZhbHVlLHQuaGVpZ2h0LmJhc2VWYWwudmFsdWVdXX1mdW5jdGlvbiB0ZSh0KXtmb3IoOyF0Ll9fYnJ1c2g7KWlmKCEodD10LnBhcmVudE5vZGUpKXJldHVybjtyZXR1cm4gdC5fX2JydXNofWZ1bmN0aW9uIG5lKHQpe3JldHVybiB0WzBdWzBdPT09dFsxXVswXXx8dFswXVsxXT09PXRbMV1bMV19ZnVuY3Rpb24gZWUobil7ZnVuY3Rpb24gZSh0KXt2YXIgZT10LnByb3BlcnR5KFwiX19icnVzaFwiLHUpLnNlbGVjdEFsbChcIi5vdmVybGF5XCIpLmRhdGEoW1FuKFwib3ZlcmxheVwiKV0pO2UuZW50ZXIoKS5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJjbGFzc1wiLFwib3ZlcmxheVwiKS5hdHRyKFwicG9pbnRlci1ldmVudHNcIixcImFsbFwiKS5hdHRyKFwiY3Vyc29yXCIsbWgub3ZlcmxheSkubWVyZ2UoZSkuZWFjaChmdW5jdGlvbigpe3ZhciB0PXRlKHRoaXMpLmV4dGVudDtjdCh0aGlzKS5hdHRyKFwieFwiLHRbMF1bMF0pLmF0dHIoXCJ5XCIsdFswXVsxXSkuYXR0cihcIndpZHRoXCIsdFsxXVswXS10WzBdWzBdKS5hdHRyKFwiaGVpZ2h0XCIsdFsxXVsxXS10WzBdWzFdKX0pLHQuc2VsZWN0QWxsKFwiLnNlbGVjdGlvblwiKS5kYXRhKFtRbihcInNlbGVjdGlvblwiKV0pLmVudGVyKCkuYXBwZW5kKFwicmVjdFwiKS5hdHRyKFwiY2xhc3NcIixcInNlbGVjdGlvblwiKS5hdHRyKFwiY3Vyc29yXCIsbWguc2VsZWN0aW9uKS5hdHRyKFwiZmlsbFwiLFwiIzc3N1wiKS5hdHRyKFwiZmlsbC1vcGFjaXR5XCIsLjMpLmF0dHIoXCJzdHJva2VcIixcIiNmZmZcIikuYXR0cihcInNoYXBlLXJlbmRlcmluZ1wiLFwiY3Jpc3BFZGdlc1wiKTt2YXIgaT10LnNlbGVjdEFsbChcIi5oYW5kbGVcIikuZGF0YShuLmhhbmRsZXMsZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZX0pO2kuZXhpdCgpLnJlbW92ZSgpLGkuZW50ZXIoKS5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJjbGFzc1wiLGZ1bmN0aW9uKHQpe3JldHVyblwiaGFuZGxlIGhhbmRsZS0tXCIrdC50eXBlfSkuYXR0cihcImN1cnNvclwiLGZ1bmN0aW9uKHQpe3JldHVybiBtaFt0LnR5cGVdfSksdC5lYWNoKHIpLmF0dHIoXCJmaWxsXCIsXCJub25lXCIpLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLFwiYWxsXCIpLnN0eWxlKFwiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yXCIsXCJyZ2JhKDAsMCwwLDApXCIpLm9uKFwibW91c2Vkb3duLmJydXNoIHRvdWNoc3RhcnQuYnJ1c2hcIixhKX1mdW5jdGlvbiByKCl7dmFyIHQ9Y3QodGhpcyksbj10ZSh0aGlzKS5zZWxlY3Rpb247bj8odC5zZWxlY3RBbGwoXCIuc2VsZWN0aW9uXCIpLnN0eWxlKFwiZGlzcGxheVwiLG51bGwpLmF0dHIoXCJ4XCIsblswXVswXSkuYXR0cihcInlcIixuWzBdWzFdKS5hdHRyKFwid2lkdGhcIixuWzFdWzBdLW5bMF1bMF0pLmF0dHIoXCJoZWlnaHRcIixuWzFdWzFdLW5bMF1bMV0pLHQuc2VsZWN0QWxsKFwiLmhhbmRsZVwiKS5zdHlsZShcImRpc3BsYXlcIixudWxsKS5hdHRyKFwieFwiLGZ1bmN0aW9uKHQpe3JldHVyblwiZVwiPT09dC50eXBlW3QudHlwZS5sZW5ndGgtMV0/blsxXVswXS1oLzI6blswXVswXS1oLzJ9KS5hdHRyKFwieVwiLGZ1bmN0aW9uKHQpe3JldHVyblwic1wiPT09dC50eXBlWzBdP25bMV1bMV0taC8yOm5bMF1bMV0taC8yfSkuYXR0cihcIndpZHRoXCIsZnVuY3Rpb24odCl7cmV0dXJuXCJuXCI9PT10LnR5cGV8fFwic1wiPT09dC50eXBlP25bMV1bMF0tblswXVswXStoOmh9KS5hdHRyKFwiaGVpZ2h0XCIsZnVuY3Rpb24odCl7cmV0dXJuXCJlXCI9PT10LnR5cGV8fFwid1wiPT09dC50eXBlP25bMV1bMV0tblswXVsxXStoOmh9KSk6dC5zZWxlY3RBbGwoXCIuc2VsZWN0aW9uLC5oYW5kbGVcIikuc3R5bGUoXCJkaXNwbGF5XCIsXCJub25lXCIpLmF0dHIoXCJ4XCIsbnVsbCkuYXR0cihcInlcIixudWxsKS5hdHRyKFwid2lkdGhcIixudWxsKS5hdHRyKFwiaGVpZ2h0XCIsbnVsbCl9ZnVuY3Rpb24gaSh0LG4pe3JldHVybiB0Ll9fYnJ1c2guZW1pdHRlcnx8bmV3IG8odCxuKX1mdW5jdGlvbiBvKHQsbil7dGhpcy50aGF0PXQsdGhpcy5hcmdzPW4sdGhpcy5zdGF0ZT10Ll9fYnJ1c2gsdGhpcy5hY3RpdmU9MH1mdW5jdGlvbiBhKCl7ZnVuY3Rpb24gZSgpe3ZhciB0PXB0KHcpOyFMfHxtfHx4fHwoTWF0aC5hYnModFswXS1VWzBdKT5NYXRoLmFicyh0WzFdLVVbMV0pP3g9ITA6bT0hMCksVT10LGI9ITAsWm4oKSxvKCl9ZnVuY3Rpb24gbygpe3ZhciB0O3N3aXRjaCh5PVVbMF0tRFswXSxfPVVbMV0tRFsxXSxBKXtjYXNlIHBoOmNhc2UgZGg6VCYmKHk9TWF0aC5tYXgoQy11LE1hdGgubWluKHotZCx5KSksYz11K3kscD1kK3kpLE4mJihfPU1hdGgubWF4KFAtbCxNYXRoLm1pbihSLXYsXykpLGg9bCtfLGc9ditfKTticmVhaztjYXNlIHZoOlQ8MD8oeT1NYXRoLm1heChDLXUsTWF0aC5taW4oei11LHkpKSxjPXUreSxwPWQpOlQ+MCYmKHk9TWF0aC5tYXgoQy1kLE1hdGgubWluKHotZCx5KSksYz11LHA9ZCt5KSxOPDA/KF89TWF0aC5tYXgoUC1sLE1hdGgubWluKFItbCxfKSksaD1sK18sZz12KTpOPjAmJihfPU1hdGgubWF4KFAtdixNYXRoLm1pbihSLXYsXykpLGg9bCxnPXYrXyk7YnJlYWs7Y2FzZSBnaDpUJiYoYz1NYXRoLm1heChDLE1hdGgubWluKHosdS15KlQpKSxwPU1hdGgubWF4KEMsTWF0aC5taW4oeixkK3kqVCkpKSxOJiYoaD1NYXRoLm1heChQLE1hdGgubWluKFIsbC1fKk4pKSxnPU1hdGgubWF4KFAsTWF0aC5taW4oUix2K18qTikpKX1wPGMmJihUKj0tMSx0PXUsdT1kLGQ9dCx0PWMsYz1wLHA9dCxNIGluIHhoJiZZLmF0dHIoXCJjdXJzb3JcIixtaFtNPXhoW01dXSkpLGc8aCYmKE4qPS0xLHQ9bCxsPXYsdj10LHQ9aCxoPWcsZz10LE0gaW4gd2gmJlkuYXR0cihcImN1cnNvclwiLG1oW009d2hbTV1dKSksUy5zZWxlY3Rpb24mJihrPVMuc2VsZWN0aW9uKSxtJiYoYz1rWzBdWzBdLHA9a1sxXVswXSkseCYmKGg9a1swXVsxXSxnPWtbMV1bMV0pLGtbMF1bMF09PT1jJiZrWzBdWzFdPT09aCYma1sxXVswXT09PXAmJmtbMV1bMV09PT1nfHwoUy5zZWxlY3Rpb249W1tjLGhdLFtwLGddXSxyLmNhbGwodykscS5icnVzaCgpKX1mdW5jdGlvbiBhKCl7aWYoV24oKSx0LmV2ZW50LnRvdWNoZXMpe2lmKHQuZXZlbnQudG91Y2hlcy5sZW5ndGgpcmV0dXJuO2YmJmNsZWFyVGltZW91dChmKSxmPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtmPW51bGx9LDUwMCksTy5vbihcInRvdWNobW92ZS5icnVzaCB0b3VjaGVuZC5icnVzaCB0b3VjaGNhbmNlbC5icnVzaFwiLG51bGwpfWVsc2UgYnQodC5ldmVudC52aWV3LGIpLEIub24oXCJrZXlkb3duLmJydXNoIGtleXVwLmJydXNoIG1vdXNlbW92ZS5icnVzaCBtb3VzZXVwLmJydXNoXCIsbnVsbCk7Ty5hdHRyKFwicG9pbnRlci1ldmVudHNcIixcImFsbFwiKSxZLmF0dHIoXCJjdXJzb3JcIixtaC5vdmVybGF5KSxTLnNlbGVjdGlvbiYmKGs9Uy5zZWxlY3Rpb24pLG5lKGspJiYoUy5zZWxlY3Rpb249bnVsbCxyLmNhbGwodykpLHEuZW5kKCl9aWYodC5ldmVudC50b3VjaGVzKXtpZih0LmV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aDx0LmV2ZW50LnRvdWNoZXMubGVuZ3RoKXJldHVybiBabigpfWVsc2UgaWYoZilyZXR1cm47aWYocy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB1LGMsbCxoLGQscCx2LGcseSxfLGIsbSx4LHc9dGhpcyxNPXQuZXZlbnQudGFyZ2V0Ll9fZGF0YV9fLnR5cGUsQT1cInNlbGVjdGlvblwiPT09KHQuZXZlbnQubWV0YUtleT9NPVwib3ZlcmxheVwiOk0pP2RoOnQuZXZlbnQuYWx0S2V5P2doOnZoLFQ9bj09PV9oP251bGw6TWhbTV0sTj1uPT09eWg/bnVsbDpBaFtNXSxTPXRlKHcpLEU9Uy5leHRlbnQsaz1TLnNlbGVjdGlvbixDPUVbMF1bMF0sUD1FWzBdWzFdLHo9RVsxXVswXSxSPUVbMV1bMV0sTD1UJiZOJiZ0LmV2ZW50LnNoaWZ0S2V5LEQ9cHQodyksVT1ELHE9aSh3LGFyZ3VtZW50cykuYmVmb3Jlc3RhcnQoKTtcIm92ZXJsYXlcIj09PU0/Uy5zZWxlY3Rpb249az1bW3U9bj09PV9oP0M6RFswXSxsPW49PT15aD9QOkRbMV1dLFtkPW49PT1faD96OnUsdj1uPT09eWg/UjpsXV06KHU9a1swXVswXSxsPWtbMF1bMV0sZD1rWzFdWzBdLHY9a1sxXVsxXSksYz11LGg9bCxwPWQsZz12O3ZhciBPPWN0KHcpLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLFwibm9uZVwiKSxZPU8uc2VsZWN0QWxsKFwiLm92ZXJsYXlcIikuYXR0cihcImN1cnNvclwiLG1oW01dKTtpZih0LmV2ZW50LnRvdWNoZXMpTy5vbihcInRvdWNobW92ZS5icnVzaFwiLGUsITApLm9uKFwidG91Y2hlbmQuYnJ1c2ggdG91Y2hjYW5jZWwuYnJ1c2hcIixhLCEwKTtlbHNle3ZhciBCPWN0KHQuZXZlbnQudmlldykub24oXCJrZXlkb3duLmJydXNoXCIsZnVuY3Rpb24oKXtzd2l0Y2godC5ldmVudC5rZXlDb2RlKXtjYXNlIDE2Okw9VCYmTjticmVhaztjYXNlIDE4OkE9PT12aCYmKFQmJihkPXAteSpULHU9Yyt5KlQpLE4mJih2PWctXypOLGw9aCtfKk4pLEE9Z2gsbygpKTticmVhaztjYXNlIDMyOkEhPT12aCYmQSE9PWdofHwoVDwwP2Q9cC15OlQ+MCYmKHU9Yy15KSxOPDA/dj1nLV86Tj4wJiYobD1oLV8pLEE9cGgsWS5hdHRyKFwiY3Vyc29yXCIsbWguc2VsZWN0aW9uKSxvKCkpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufVpuKCl9LCEwKS5vbihcImtleXVwLmJydXNoXCIsZnVuY3Rpb24oKXtzd2l0Y2godC5ldmVudC5rZXlDb2RlKXtjYXNlIDE2OkwmJihtPXg9TD0hMSxvKCkpO2JyZWFrO2Nhc2UgMTg6QT09PWdoJiYoVDwwP2Q9cDpUPjAmJih1PWMpLE48MD92PWc6Tj4wJiYobD1oKSxBPXZoLG8oKSk7YnJlYWs7Y2FzZSAzMjpBPT09cGgmJih0LmV2ZW50LmFsdEtleT8oVCYmKGQ9cC15KlQsdT1jK3kqVCksTiYmKHY9Zy1fKk4sbD1oK18qTiksQT1naCk6KFQ8MD9kPXA6VD4wJiYodT1jKSxOPDA/dj1nOk4+MCYmKGw9aCksQT12aCksWS5hdHRyKFwiY3Vyc29yXCIsbWhbTV0pLG8oKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59Wm4oKX0sITApLm9uKFwibW91c2Vtb3ZlLmJydXNoXCIsZSwhMCkub24oXCJtb3VzZXVwLmJydXNoXCIsYSwhMCk7X3QodC5ldmVudC52aWV3KX1XbigpLERuKHcpLHIuY2FsbCh3KSxxLnN0YXJ0KCl9fWZ1bmN0aW9uIHUoKXt2YXIgdD10aGlzLl9fYnJ1c2h8fHtzZWxlY3Rpb246bnVsbH07cmV0dXJuIHQuZXh0ZW50PWMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHQuZGltPW4sdH12YXIgZixjPUtuLHM9Sm4sbD1OKGUsXCJzdGFydFwiLFwiYnJ1c2hcIixcImVuZFwiKSxoPTY7cmV0dXJuIGUubW92ZT1mdW5jdGlvbih0LGUpe3Quc2VsZWN0aW9uP3Qub24oXCJzdGFydC5icnVzaFwiLGZ1bmN0aW9uKCl7aSh0aGlzLGFyZ3VtZW50cykuYmVmb3Jlc3RhcnQoKS5zdGFydCgpfSkub24oXCJpbnRlcnJ1cHQuYnJ1c2ggZW5kLmJydXNoXCIsZnVuY3Rpb24oKXtpKHRoaXMsYXJndW1lbnRzKS5lbmQoKX0pLnR3ZWVuKFwiYnJ1c2hcIixmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7YS5zZWxlY3Rpb249MT09PXQmJm5lKGMpP251bGw6cyh0KSxyLmNhbGwobyksdS5icnVzaCgpfXZhciBvPXRoaXMsYT1vLl9fYnJ1c2gsdT1pKG8sYXJndW1lbnRzKSxmPWEuc2VsZWN0aW9uLGM9bi5pbnB1dChcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmUsYS5leHRlbnQpLHM9ZG4oZixjKTtyZXR1cm4gZiYmYz90OnQoMSl9KTp0LmVhY2goZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMsbz10aGlzLl9fYnJ1c2gsYT1uLmlucHV0KFwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLHQpOmUsby5leHRlbnQpLHU9aSh0aGlzLHQpLmJlZm9yZXN0YXJ0KCk7RG4odGhpcyksby5zZWxlY3Rpb249bnVsbD09YXx8bmUoYSk/bnVsbDphLHIuY2FsbCh0aGlzKSx1LnN0YXJ0KCkuYnJ1c2goKS5lbmQoKX0pfSxvLnByb3RvdHlwZT17YmVmb3Jlc3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMT09Kyt0aGlzLmFjdGl2ZSYmKHRoaXMuc3RhdGUuZW1pdHRlcj10aGlzLHRoaXMuc3RhcnRpbmc9ITApLHRoaXN9LHN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhcnRpbmcmJih0aGlzLnN0YXJ0aW5nPSExLHRoaXMuZW1pdChcInN0YXJ0XCIpKSx0aGlzfSxicnVzaDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVtaXQoXCJicnVzaFwiKSx0aGlzfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09LS10aGlzLmFjdGl2ZSYmKGRlbGV0ZSB0aGlzLnN0YXRlLmVtaXR0ZXIsdGhpcy5lbWl0KFwiZW5kXCIpKSx0aGlzfSxlbWl0OmZ1bmN0aW9uKHQpe290KG5ldyBmdW5jdGlvbih0LG4sZSl7dGhpcy50YXJnZXQ9dCx0aGlzLnR5cGU9bix0aGlzLnNlbGVjdGlvbj1lfShlLHQsbi5vdXRwdXQodGhpcy5zdGF0ZS5zZWxlY3Rpb24pKSxsLmFwcGx5LGwsW3QsdGhpcy50aGF0LHRoaXMuYXJnc10pfX0sZS5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OiRuKFtbK3RbMF1bMF0sK3RbMF1bMV1dLFsrdFsxXVswXSwrdFsxXVsxXV1dKSxlKTpjfSxlLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6JG4oISF0KSxlKTpzfSxlLmhhbmRsZVNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9K3QsZSk6aH0sZS5vbj1mdW5jdGlvbigpe3ZhciB0PWwub24uYXBwbHkobCxhcmd1bWVudHMpO3JldHVybiB0PT09bD9lOnR9LGV9ZnVuY3Rpb24gcmUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGllKCl7dGhpcy5feDA9dGhpcy5feTA9dGhpcy5feDE9dGhpcy5feTE9bnVsbCx0aGlzLl89XCJcIn1mdW5jdGlvbiBvZSgpe3JldHVybiBuZXcgaWV9ZnVuY3Rpb24gYWUodCl7cmV0dXJuIHQuc291cmNlfWZ1bmN0aW9uIHVlKHQpe3JldHVybiB0LnRhcmdldH1mdW5jdGlvbiBmZSh0KXtyZXR1cm4gdC5yYWRpdXN9ZnVuY3Rpb24gY2UodCl7cmV0dXJuIHQuc3RhcnRBbmdsZX1mdW5jdGlvbiBzZSh0KXtyZXR1cm4gdC5lbmRBbmdsZX1mdW5jdGlvbiBsZSgpe31mdW5jdGlvbiBoZSh0LG4pe3ZhciBlPW5ldyBsZTtpZih0IGluc3RhbmNlb2YgbGUpdC5lYWNoKGZ1bmN0aW9uKHQsbil7ZS5zZXQobix0KX0pO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIHIsaT0tMSxvPXQubGVuZ3RoO2lmKG51bGw9PW4pZm9yKDsrK2k8bzspZS5zZXQoaSx0W2ldKTtlbHNlIGZvcig7KytpPG87KWUuc2V0KG4ocj10W2ldLGksdCkscil9ZWxzZSBpZih0KWZvcih2YXIgYSBpbiB0KWUuc2V0KGEsdFthXSk7cmV0dXJuIGV9ZnVuY3Rpb24gZGUoKXtyZXR1cm57fX1mdW5jdGlvbiBwZSh0LG4sZSl7dFtuXT1lfWZ1bmN0aW9uIHZlKCl7cmV0dXJuIGhlKCl9ZnVuY3Rpb24gZ2UodCxuLGUpe3Quc2V0KG4sZSl9ZnVuY3Rpb24geWUoKXt9ZnVuY3Rpb24gX2UodCxuKXt2YXIgZT1uZXcgeWU7aWYodCBpbnN0YW5jZW9mIHllKXQuZWFjaChmdW5jdGlvbih0KXtlLmFkZCh0KX0pO2Vsc2UgaWYodCl7dmFyIHI9LTEsaT10Lmxlbmd0aDtpZihudWxsPT1uKWZvcig7KytyPGk7KWUuYWRkKHRbcl0pO2Vsc2UgZm9yKDsrK3I8aTspZS5hZGQobih0W3JdLHIsdCkpfXJldHVybiBlfWZ1bmN0aW9uIGJlKHQsbil7cmV0dXJuIHQtbn1mdW5jdGlvbiBtZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24geGUodCxuKXtmb3IodmFyIGUscj0tMSxpPW4ubGVuZ3RoOysrcjxpOylpZihlPWZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPW5bMF0scj1uWzFdLGk9LTEsbz0wLGE9dC5sZW5ndGgsdT1hLTE7bzxhO3U9bysrKXt2YXIgZj10W29dLGM9ZlswXSxzPWZbMV0sbD10W3VdLGg9bFswXSxkPWxbMV07aWYoZnVuY3Rpb24odCxuLGUpe3ZhciByO3JldHVybiBmdW5jdGlvbih0LG4sZSl7cmV0dXJuKG5bMF0tdFswXSkqKGVbMV0tdFsxXSk9PShlWzBdLXRbMF0pKihuWzFdLXRbMV0pfSh0LG4sZSkmJmZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gdDw9biYmbjw9ZXx8ZTw9biYmbjw9dH0odFtyPSsodFswXT09PW5bMF0pXSxlW3JdLG5bcl0pfShmLGwsbikpcmV0dXJuIDA7cz5yIT1kPnImJmU8KGgtYykqKHItcykvKGQtcykrYyYmKGk9LWkpfXJldHVybiBpfSh0LG5bcl0pKXJldHVybiBlO3JldHVybiAwfWZ1bmN0aW9uIHdlKCl7fWZ1bmN0aW9uIE1lKCl7ZnVuY3Rpb24gdCh0KXt2YXIgZT1hKHQpO2lmKEFycmF5LmlzQXJyYXkoZSkpZT1lLnNsaWNlKCkuc29ydChiZSk7ZWxzZXt2YXIgcj11KHQpLGk9clswXSxvPXJbMV07ZT1kKGksbyxlKSxlPXMoTWF0aC5mbG9vcihpL2UpKmUsTWF0aC5mbG9vcihvL2UpKmUsZSl9cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBuKHQsZSl9KX1mdW5jdGlvbiBuKHQsbil7dmFyIHI9W10sYT1bXTtyZXR1cm4gZnVuY3Rpb24odCxuLHIpe2Z1bmN0aW9uIGEodCl7dmFyIG4saSxvPVt0WzBdWzBdK3UsdFswXVsxXStmXSxhPVt0WzFdWzBdK3UsdFsxXVsxXStmXSxjPWUobykscz1lKGEpOyhuPXBbY10pPyhpPWRbc10pPyhkZWxldGUgcFtuLmVuZF0sZGVsZXRlIGRbaS5zdGFydF0sbj09PWk/KG4ucmluZy5wdXNoKGEpLHIobi5yaW5nKSk6ZFtuLnN0YXJ0XT1wW2kuZW5kXT17c3RhcnQ6bi5zdGFydCxlbmQ6aS5lbmQscmluZzpuLnJpbmcuY29uY2F0KGkucmluZyl9KTooZGVsZXRlIHBbbi5lbmRdLG4ucmluZy5wdXNoKGEpLHBbbi5lbmQ9c109bik6KG49ZFtzXSk/KGk9cFtjXSk/KGRlbGV0ZSBkW24uc3RhcnRdLGRlbGV0ZSBwW2kuZW5kXSxuPT09aT8obi5yaW5nLnB1c2goYSkscihuLnJpbmcpKTpkW2kuc3RhcnRdPXBbbi5lbmRdPXtzdGFydDppLnN0YXJ0LGVuZDpuLmVuZCxyaW5nOmkucmluZy5jb25jYXQobi5yaW5nKX0pOihkZWxldGUgZFtuLnN0YXJ0XSxuLnJpbmcudW5zaGlmdChvKSxkW24uc3RhcnQ9Y109bik6ZFtjXT1wW3NdPXtzdGFydDpjLGVuZDpzLHJpbmc6W28sYV19fXZhciB1LGYsYyxzLGwsaCxkPW5ldyBBcnJheSxwPW5ldyBBcnJheTt1PWY9LTEscz10WzBdPj1uLHFoW3M8PDFdLmZvckVhY2goYSk7Zm9yKDsrK3U8aS0xOyljPXMscz10W3UrMV0+PW4scWhbY3xzPDwxXS5mb3JFYWNoKGEpO3FoW3M8PDBdLmZvckVhY2goYSk7Zm9yKDsrK2Y8by0xOyl7Zm9yKHU9LTEscz10W2YqaStpXT49bixsPXRbZippXT49bixxaFtzPDwxfGw8PDJdLmZvckVhY2goYSk7Kyt1PGktMTspYz1zLHM9dFtmKmkraSt1KzFdPj1uLGg9bCxsPXRbZippK3UrMV0+PW4scWhbY3xzPDwxfGw8PDJ8aDw8M10uZm9yRWFjaChhKTtxaFtzfGw8PDNdLmZvckVhY2goYSl9dT0tMSxsPXRbZippXT49bixxaFtsPDwyXS5mb3JFYWNoKGEpO2Zvcig7Kyt1PGktMTspaD1sLGw9dFtmKmkrdSsxXT49bixxaFtsPDwyfGg8PDNdLmZvckVhY2goYSk7cWhbbDw8M10uZm9yRWFjaChhKX0odCxuLGZ1bmN0aW9uKGUpe2YoZSx0LG4pLGZ1bmN0aW9uKHQpe2Zvcih2YXIgbj0wLGU9dC5sZW5ndGgscj10W2UtMV1bMV0qdFswXVswXS10W2UtMV1bMF0qdFswXVsxXTsrK248ZTspcis9dFtuLTFdWzFdKnRbbl1bMF0tdFtuLTFdWzBdKnRbbl1bMV07cmV0dXJuIHJ9KGUpPjA/ci5wdXNoKFtlXSk6YS5wdXNoKGUpfSksYS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlPTAsaT1yLmxlbmd0aDtlPGk7KytlKWlmKC0xIT09eGUoKG49cltlXSlbMF0sdCkpcmV0dXJuIHZvaWQgbi5wdXNoKHQpfSkse3R5cGU6XCJNdWx0aVBvbHlnb25cIix2YWx1ZTpuLGNvb3JkaW5hdGVzOnJ9fWZ1bmN0aW9uIGUodCl7cmV0dXJuIDIqdFswXSt0WzFdKihpKzEpKjR9ZnVuY3Rpb24gcih0LG4sZSl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLGE9dFswXSx1PXRbMV0sZj0wfGEsYz0wfHUscz1uW2MqaStmXTthPjAmJmE8aSYmZj09PWEmJihyPW5bYyppK2YtMV0sdFswXT1hKyhlLXIpLyhzLXIpLS41KSx1PjAmJnU8byYmYz09PXUmJihyPW5bKGMtMSkqaStmXSx0WzFdPXUrKGUtcikvKHMtciktLjUpfSl9dmFyIGk9MSxvPTEsYT1wLGY9cjtyZXR1cm4gdC5jb250b3VyPW4sdC5zaXplPWZ1bmN0aW9uKG4pe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybltpLG9dO3ZhciBlPU1hdGguY2VpbChuWzBdKSxyPU1hdGguY2VpbChuWzFdKTtpZighKGU+MCYmcj4wKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIHNpemVcIik7cmV0dXJuIGk9ZSxvPXIsdH0sdC50aHJlc2hvbGRzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpBcnJheS5pc0FycmF5KG4pP21lKFVoLmNhbGwobikpOm1lKG4pLHQpOmF9LHQuc21vb3RoPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPW4/cjp3ZSx0KTpmPT09cn0sdH1mdW5jdGlvbiBBZSh0LG4sZSl7Zm9yKHZhciByPXQud2lkdGgsaT10LmhlaWdodCxvPTErKGU8PDEpLGE9MDthPGk7KythKWZvcih2YXIgdT0wLGY9MDt1PHIrZTsrK3UpdTxyJiYoZis9dC5kYXRhW3UrYSpyXSksdT49ZSYmKHU+PW8mJihmLT10LmRhdGFbdS1vK2Eqcl0pLG4uZGF0YVt1LWUrYSpyXT1mL01hdGgubWluKHUrMSxyLTErby11LG8pKX1mdW5jdGlvbiBUZSh0LG4sZSl7Zm9yKHZhciByPXQud2lkdGgsaT10LmhlaWdodCxvPTErKGU8PDEpLGE9MDthPHI7KythKWZvcih2YXIgdT0wLGY9MDt1PGkrZTsrK3UpdTxpJiYoZis9dC5kYXRhW2ErdSpyXSksdT49ZSYmKHU+PW8mJihmLT10LmRhdGFbYSsodS1vKSpyXSksbi5kYXRhW2ErKHUtZSkqcl09Zi9NYXRoLm1pbih1KzEsaS0xK28tdSxvKSl9ZnVuY3Rpb24gTmUodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gU2UodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gRWUodCl7cmV0dXJuIG5ldyBGdW5jdGlvbihcImRcIixcInJldHVybiB7XCIrdC5tYXAoZnVuY3Rpb24odCxuKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCkrXCI6IGRbXCIrbitcIl1cIn0pLmpvaW4oXCIsXCIpK1wifVwiKX1mdW5jdGlvbiBrZSh0KXtmdW5jdGlvbiBuKHQsbil7ZnVuY3Rpb24gZSgpe2lmKGMpcmV0dXJuIFloO2lmKHMpcmV0dXJuIHM9ITEsT2g7dmFyIG4sZSxyPXU7aWYodC5jaGFyQ29kZUF0KHIpPT09Qmgpe2Zvcig7dSsrPGEmJnQuY2hhckNvZGVBdCh1KSE9PUJofHx0LmNoYXJDb2RlQXQoKyt1KT09PUJoOyk7cmV0dXJuKG49dSk+PWE/Yz0hMDooZT10LmNoYXJDb2RlQXQodSsrKSk9PT1GaD9zPSEwOmU9PT1JaCYmKHM9ITAsdC5jaGFyQ29kZUF0KHUpPT09RmgmJisrdSksdC5zbGljZShyKzEsbi0xKS5yZXBsYWNlKC9cIlwiL2csJ1wiJyl9Zm9yKDt1PGE7KXtpZigoZT10LmNoYXJDb2RlQXQobj11KyspKT09PUZoKXM9ITA7ZWxzZSBpZihlPT09SWgpcz0hMCx0LmNoYXJDb2RlQXQodSk9PT1GaCYmKyt1O2Vsc2UgaWYoZSE9PW8pY29udGludWU7cmV0dXJuIHQuc2xpY2UocixuKX1yZXR1cm4gYz0hMCx0LnNsaWNlKHIsYSl9dmFyIHIsaT1bXSxhPXQubGVuZ3RoLHU9MCxmPTAsYz1hPD0wLHM9ITE7Zm9yKHQuY2hhckNvZGVBdChhLTEpPT09RmgmJi0tYSx0LmNoYXJDb2RlQXQoYS0xKT09PUloJiYtLWE7KHI9ZSgpKSE9PVloOyl7Zm9yKHZhciBsPVtdO3IhPT1PaCYmciE9PVloOylsLnB1c2gocikscj1lKCk7biYmbnVsbD09KGw9bihsLGYrKykpfHxpLnB1c2gobCl9cmV0dXJuIGl9ZnVuY3Rpb24gZShuKXtyZXR1cm4gbi5tYXAocikuam9pbih0KX1mdW5jdGlvbiByKHQpe3JldHVybiBudWxsPT10P1wiXCI6aS50ZXN0KHQrPVwiXCIpPydcIicrdC5yZXBsYWNlKC9cIi9nLCdcIlwiJykrJ1wiJzp0fXZhciBpPW5ldyBSZWdFeHAoJ1tcIicrdCtcIlxcblxccl1cIiksbz10LmNoYXJDb2RlQXQoMCk7cmV0dXJue3BhcnNlOmZ1bmN0aW9uKHQsZSl7dmFyIHIsaSxvPW4odCxmdW5jdGlvbih0LG4pe2lmKHIpcmV0dXJuIHIodCxuLTEpO2k9dCxyPWU/ZnVuY3Rpb24odCxuKXt2YXIgZT1FZSh0KTtyZXR1cm4gZnVuY3Rpb24ocixpKXtyZXR1cm4gbihlKHIpLGksdCl9fSh0LGUpOkVlKHQpfSk7cmV0dXJuIG8uY29sdW1ucz1pfHxbXSxvfSxwYXJzZVJvd3M6bixmb3JtYXQ6ZnVuY3Rpb24obixlKXtyZXR1cm4gbnVsbD09ZSYmKGU9ZnVuY3Rpb24odCl7dmFyIG49T2JqZWN0LmNyZWF0ZShudWxsKSxlPVtdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCl7Zm9yKHZhciByIGluIHQpciBpbiBufHxlLnB1c2gobltyXT1yKX0pLGV9KG4pKSxbZS5tYXAocikuam9pbih0KV0uY29uY2F0KG4ubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBlLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gcihuW3RdKX0pLmpvaW4odCl9KSkuam9pbihcIlxcblwiKX0sZm9ybWF0Um93czpmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAoZSkuam9pbihcIlxcblwiKX19fWZ1bmN0aW9uIENlKHQpe2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcih0LnN0YXR1cytcIiBcIit0LnN0YXR1c1RleHQpO3JldHVybiB0LmJsb2IoKX1mdW5jdGlvbiBQZSh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrXCIgXCIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC5hcnJheUJ1ZmZlcigpfWZ1bmN0aW9uIHplKHQpe2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcih0LnN0YXR1cytcIiBcIit0LnN0YXR1c1RleHQpO3JldHVybiB0LnRleHQoKX1mdW5jdGlvbiBSZSh0LG4pe3JldHVybiBmZXRjaCh0LG4pLnRoZW4oemUpfWZ1bmN0aW9uIExlKHQpe3JldHVybiBmdW5jdGlvbihuLGUscil7cmV0dXJuIDI9PT1hcmd1bWVudHMubGVuZ3RoJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiYocj1lLGU9dm9pZCAwKSxSZShuLGUpLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIHQobixyKX0pfX1mdW5jdGlvbiBEZSh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrXCIgXCIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC5qc29uKCl9ZnVuY3Rpb24gVWUodCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7cmV0dXJuIFJlKG4sZSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4obmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKG4sdCl9KX19ZnVuY3Rpb24gcWUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIE9lKCl7cmV0dXJuIDFlLTYqKE1hdGgucmFuZG9tKCktLjUpfWZ1bmN0aW9uIFllKHQsbixlLHIpe2lmKGlzTmFOKG4pfHxpc05hTihlKSlyZXR1cm4gdDt2YXIgaSxvLGEsdSxmLGMscyxsLGgsZD10Ll9yb290LHA9e2RhdGE6cn0sdj10Ll94MCxnPXQuX3kwLHk9dC5feDEsXz10Ll95MTtpZighZClyZXR1cm4gdC5fcm9vdD1wLHQ7Zm9yKDtkLmxlbmd0aDspaWYoKGM9bj49KG89KHYreSkvMikpP3Y9bzp5PW8sKHM9ZT49KGE9KGcrXykvMikpP2c9YTpfPWEsaT1kLCEoZD1kW2w9czw8MXxjXSkpcmV0dXJuIGlbbF09cCx0O2lmKHU9K3QuX3guY2FsbChudWxsLGQuZGF0YSksZj0rdC5feS5jYWxsKG51bGwsZC5kYXRhKSxuPT09dSYmZT09PWYpcmV0dXJuIHAubmV4dD1kLGk/aVtsXT1wOnQuX3Jvb3Q9cCx0O2Rve2k9aT9pW2xdPW5ldyBBcnJheSg0KTp0Ll9yb290PW5ldyBBcnJheSg0KSwoYz1uPj0obz0odit5KS8yKSk/dj1vOnk9bywocz1lPj0oYT0oZytfKS8yKSk/Zz1hOl89YX13aGlsZSgobD1zPDwxfGMpPT0oaD0oZj49YSk8PDF8dT49bykpO3JldHVybiBpW2hdPWQsaVtsXT1wLHR9ZnVuY3Rpb24gQmUodCxuLGUscixpKXt0aGlzLm5vZGU9dCx0aGlzLngwPW4sdGhpcy55MD1lLHRoaXMueDE9cix0aGlzLnkxPWl9ZnVuY3Rpb24gRmUodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gSWUodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gamUodCxuLGUpe3ZhciByPW5ldyBIZShudWxsPT1uP0ZlOm4sbnVsbD09ZT9JZTplLE5hTixOYU4sTmFOLE5hTik7cmV0dXJuIG51bGw9PXQ/cjpyLmFkZEFsbCh0KX1mdW5jdGlvbiBIZSh0LG4sZSxyLGksbyl7dGhpcy5feD10LHRoaXMuX3k9bix0aGlzLl94MD1lLHRoaXMuX3kwPXIsdGhpcy5feDE9aSx0aGlzLl95MT1vLHRoaXMuX3Jvb3Q9dm9pZCAwfWZ1bmN0aW9uIFhlKHQpe2Zvcih2YXIgbj17ZGF0YTp0LmRhdGF9LGU9bjt0PXQubmV4dDspZT1lLm5leHQ9e2RhdGE6dC5kYXRhfTtyZXR1cm4gbn1mdW5jdGlvbiBHZSh0KXtyZXR1cm4gdC54K3Qudnh9ZnVuY3Rpb24gVmUodCl7cmV0dXJuIHQueSt0LnZ5fWZ1bmN0aW9uICRlKHQpe3JldHVybiB0LmluZGV4fWZ1bmN0aW9uIFdlKHQsbil7dmFyIGU9dC5nZXQobik7aWYoIWUpdGhyb3cgbmV3IEVycm9yKFwibWlzc2luZzogXCIrbik7cmV0dXJuIGV9ZnVuY3Rpb24gWmUodCl7cmV0dXJuIHQueH1mdW5jdGlvbiBRZSh0KXtyZXR1cm4gdC55fWZ1bmN0aW9uIEplKHQsbil7aWYoKGU9KHQ9bj90LnRvRXhwb25lbnRpYWwobi0xKTp0LnRvRXhwb25lbnRpYWwoKSkuaW5kZXhPZihcImVcIikpPDApcmV0dXJuIG51bGw7dmFyIGUscj10LnNsaWNlKDAsZSk7cmV0dXJuW3IubGVuZ3RoPjE/clswXStyLnNsaWNlKDIpOnIsK3Quc2xpY2UoZSsxKV19ZnVuY3Rpb24gS2UodCl7cmV0dXJuKHQ9SmUoTWF0aC5hYnModCkpKT90WzFdOk5hTn1mdW5jdGlvbiB0cih0KXtyZXR1cm4gbmV3IG5yKHQpfWZ1bmN0aW9uIG5yKHQpe2lmKCEobj11ZC5leGVjKHQpKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGZvcm1hdDogXCIrdCk7dmFyIG47dGhpcy5maWxsPW5bMV18fFwiIFwiLHRoaXMuYWxpZ249blsyXXx8XCI+XCIsdGhpcy5zaWduPW5bM118fFwiLVwiLHRoaXMuc3ltYm9sPW5bNF18fFwiXCIsdGhpcy56ZXJvPSEhbls1XSx0aGlzLndpZHRoPW5bNl0mJituWzZdLHRoaXMuY29tbWE9ISFuWzddLHRoaXMucHJlY2lzaW9uPW5bOF0mJituWzhdLnNsaWNlKDEpLHRoaXMudHJpbT0hIW5bOV0sdGhpcy50eXBlPW5bMTBdfHxcIlwifWZ1bmN0aW9uIGVyKHQsbil7dmFyIGU9SmUodCxuKTtpZighZSlyZXR1cm4gdCtcIlwiO3ZhciByPWVbMF0saT1lWzFdO3JldHVybiBpPDA/XCIwLlwiK25ldyBBcnJheSgtaSkuam9pbihcIjBcIikrcjpyLmxlbmd0aD5pKzE/ci5zbGljZSgwLGkrMSkrXCIuXCIrci5zbGljZShpKzEpOnIrbmV3IEFycmF5KGktci5sZW5ndGgrMikuam9pbihcIjBcIil9ZnVuY3Rpb24gcnIodCl7cmV0dXJuIHR9ZnVuY3Rpb24gaXIodCl7ZnVuY3Rpb24gbih0KXtmdW5jdGlvbiBuKHQpe3ZhciBuLHIsYSxzPXkseD1fO2lmKFwiY1wiPT09Zyl4PWIodCkreCx0PVwiXCI7ZWxzZXt2YXIgdz0odD0rdCk8MDtpZih0PWIoTWF0aC5hYnModCkscCksdiYmKHQ9ZnVuY3Rpb24odCl7dDpmb3IodmFyIG4sZT10Lmxlbmd0aCxyPTEsaT0tMTtyPGU7KytyKXN3aXRjaCh0W3JdKXtjYXNlXCIuXCI6aT1uPXI7YnJlYWs7Y2FzZVwiMFwiOjA9PT1pJiYoaT1yKSxuPXI7YnJlYWs7ZGVmYXVsdDppZihpPjApe2lmKCErdFtyXSlicmVhayB0O2k9MH19cmV0dXJuIGk+MD90LnNsaWNlKDAsaSkrdC5zbGljZShuKzEpOnR9KHQpKSx3JiYwPT0rdCYmKHc9ITEpLHM9KHc/XCIoXCI9PT1jP2M6XCItXCI6XCItXCI9PT1jfHxcIihcIj09PWM/XCJcIjpjKStzLHg9KFwic1wiPT09Zz9sZFs4K2ZkLzNdOlwiXCIpK3grKHcmJlwiKFwiPT09Yz9cIilcIjpcIlwiKSxtKWZvcihuPS0xLHI9dC5sZW5ndGg7KytuPHI7KWlmKDQ4PihhPXQuY2hhckNvZGVBdChuKSl8fGE+NTcpe3g9KDQ2PT09YT9pK3Quc2xpY2UobisxKTp0LnNsaWNlKG4pKSt4LHQ9dC5zbGljZSgwLG4pO2JyZWFrfX1kJiYhbCYmKHQ9ZSh0LDEvMCkpO3ZhciBNPXMubGVuZ3RoK3QubGVuZ3RoK3gubGVuZ3RoLEE9TTxoP25ldyBBcnJheShoLU0rMSkuam9pbih1KTpcIlwiO3N3aXRjaChkJiZsJiYodD1lKEErdCxBLmxlbmd0aD9oLXgubGVuZ3RoOjEvMCksQT1cIlwiKSxmKXtjYXNlXCI8XCI6dD1zK3QreCtBO2JyZWFrO2Nhc2VcIj1cIjp0PXMrQSt0K3g7YnJlYWs7Y2FzZVwiXlwiOnQ9QS5zbGljZSgwLE09QS5sZW5ndGg+PjEpK3MrdCt4K0Euc2xpY2UoTSk7YnJlYWs7ZGVmYXVsdDp0PUErcyt0K3h9cmV0dXJuIG8odCl9dmFyIHU9KHQ9dHIodCkpLmZpbGwsZj10LmFsaWduLGM9dC5zaWduLHM9dC5zeW1ib2wsbD10Lnplcm8saD10LndpZHRoLGQ9dC5jb21tYSxwPXQucHJlY2lzaW9uLHY9dC50cmltLGc9dC50eXBlO1wiblwiPT09Zz8oZD0hMCxnPVwiZ1wiKTpzZFtnXXx8KG51bGw9PXAmJihwPTEyKSx2PSEwLGc9XCJnXCIpLChsfHxcIjBcIj09PXUmJlwiPVwiPT09ZikmJihsPSEwLHU9XCIwXCIsZj1cIj1cIik7dmFyIHk9XCIkXCI9PT1zP3JbMF06XCIjXCI9PT1zJiYvW2JveFhdLy50ZXN0KGcpP1wiMFwiK2cudG9Mb3dlckNhc2UoKTpcIlwiLF89XCIkXCI9PT1zP3JbMV06L1slcF0vLnRlc3QoZyk/YTpcIlwiLGI9c2RbZ10sbT0vW2RlZmdwcnMlXS8udGVzdChnKTtyZXR1cm4gcD1udWxsPT1wPzY6L1tncHJzXS8udGVzdChnKT9NYXRoLm1heCgxLE1hdGgubWluKDIxLHApKTpNYXRoLm1heCgwLE1hdGgubWluKDIwLHApKSxuLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHQrXCJcIn0sbn12YXIgZT10Lmdyb3VwaW5nJiZ0LnRob3VzYW5kcz9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbihlLHIpe2Zvcih2YXIgaT1lLmxlbmd0aCxvPVtdLGE9MCx1PXRbMF0sZj0wO2k+MCYmdT4wJiYoZit1KzE+ciYmKHU9TWF0aC5tYXgoMSxyLWYpKSxvLnB1c2goZS5zdWJzdHJpbmcoaS09dSxpK3UpKSwhKChmKz11KzEpPnIpKTspdT10W2E9KGErMSkldC5sZW5ndGhdO3JldHVybiBvLnJldmVyc2UoKS5qb2luKG4pfX0odC5ncm91cGluZyx0LnRob3VzYW5kcyk6cnIscj10LmN1cnJlbmN5LGk9dC5kZWNpbWFsLG89dC5udW1lcmFscz9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG4ucmVwbGFjZSgvWzAtOV0vZyxmdW5jdGlvbihuKXtyZXR1cm4gdFsrbl19KX19KHQubnVtZXJhbHMpOnJyLGE9dC5wZXJjZW50fHxcIiVcIjtyZXR1cm57Zm9ybWF0Om4sZm9ybWF0UHJlZml4OmZ1bmN0aW9uKHQsZSl7dmFyIHI9bigodD10cih0KSx0LnR5cGU9XCJmXCIsdCkpLGk9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoS2UoZSkvMykpKSxvPU1hdGgucG93KDEwLC1pKSxhPWxkWzgraS8zXTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHIobyp0KSthfX19fWZ1bmN0aW9uIG9yKG4pe3JldHVybiBjZD1pcihuKSx0LmZvcm1hdD1jZC5mb3JtYXQsdC5mb3JtYXRQcmVmaXg9Y2QuZm9ybWF0UHJlZml4LGNkfWZ1bmN0aW9uIGFyKHQpe3JldHVybiBNYXRoLm1heCgwLC1LZShNYXRoLmFicyh0KSkpfWZ1bmN0aW9uIHVyKHQsbil7cmV0dXJuIE1hdGgubWF4KDAsMypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoS2UobikvMykpKS1LZShNYXRoLmFicyh0KSkpfWZ1bmN0aW9uIGZyKHQsbil7cmV0dXJuIHQ9TWF0aC5hYnModCksbj1NYXRoLmFicyhuKS10LE1hdGgubWF4KDAsS2UobiktS2UodCkpKzF9ZnVuY3Rpb24gY3IoKXtyZXR1cm4gbmV3IHNyfWZ1bmN0aW9uIHNyKCl7dGhpcy5yZXNldCgpfWZ1bmN0aW9uIGxyKHQsbixlKXt2YXIgcj10LnM9bitlLGk9ci1uLG89ci1pO3QudD1uLW8rKGUtaSl9ZnVuY3Rpb24gaHIodCl7cmV0dXJuIHQ+MT8wOnQ8LTE/R2Q6TWF0aC5hY29zKHQpfWZ1bmN0aW9uIGRyKHQpe3JldHVybiB0PjE/VmQ6dDwtMT8tVmQ6TWF0aC5hc2luKHQpfWZ1bmN0aW9uIHByKHQpe3JldHVybih0PWFwKHQvMikpKnR9ZnVuY3Rpb24gdnIoKXt9ZnVuY3Rpb24gZ3IodCxuKXt0JiZscC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpJiZscFt0LnR5cGVdKHQsbil9ZnVuY3Rpb24geXIodCxuLGUpe3ZhciByLGk9LTEsbz10Lmxlbmd0aC1lO2ZvcihuLmxpbmVTdGFydCgpOysraTxvOylyPXRbaV0sbi5wb2ludChyWzBdLHJbMV0sclsyXSk7bi5saW5lRW5kKCl9ZnVuY3Rpb24gX3IodCxuKXt2YXIgZT0tMSxyPXQubGVuZ3RoO2ZvcihuLnBvbHlnb25TdGFydCgpOysrZTxyOyl5cih0W2VdLG4sMSk7bi5wb2x5Z29uRW5kKCl9ZnVuY3Rpb24gYnIodCxuKXt0JiZzcC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP3NwW3QudHlwZV0odCxuKTpncih0LG4pfWZ1bmN0aW9uIG1yKCl7cHAucG9pbnQ9d3J9ZnVuY3Rpb24geHIoKXtNcihoZCxkZCl9ZnVuY3Rpb24gd3IodCxuKXtwcC5wb2ludD1NcixoZD10LGRkPW4scGQ9dCo9UWQsdmQ9bnAobj0obio9UWQpLzIrJGQpLGdkPWFwKG4pfWZ1bmN0aW9uIE1yKHQsbil7bj0obio9UWQpLzIrJGQ7dmFyIGU9KHQqPVFkKS1wZCxyPWU+PTA/MTotMSxpPXIqZSxvPW5wKG4pLGE9YXAobiksdT1nZCphLGY9dmQqbyt1Km5wKGkpLGM9dSpyKmFwKGkpO2hwLmFkZCh0cChjLGYpKSxwZD10LHZkPW8sZ2Q9YX1mdW5jdGlvbiBBcih0KXtyZXR1cm5bdHAodFsxXSx0WzBdKSxkcih0WzJdKV19ZnVuY3Rpb24gVHIodCl7dmFyIG49dFswXSxlPXRbMV0scj1ucChlKTtyZXR1cm5bcipucChuKSxyKmFwKG4pLGFwKGUpXX1mdW5jdGlvbiBOcih0LG4pe3JldHVybiB0WzBdKm5bMF0rdFsxXSpuWzFdK3RbMl0qblsyXX1mdW5jdGlvbiBTcih0LG4pe3JldHVyblt0WzFdKm5bMl0tdFsyXSpuWzFdLHRbMl0qblswXS10WzBdKm5bMl0sdFswXSpuWzFdLXRbMV0qblswXV19ZnVuY3Rpb24gRXIodCxuKXt0WzBdKz1uWzBdLHRbMV0rPW5bMV0sdFsyXSs9blsyXX1mdW5jdGlvbiBrcih0LG4pe3JldHVyblt0WzBdKm4sdFsxXSpuLHRbMl0qbl19ZnVuY3Rpb24gQ3IodCl7dmFyIG49ZnAodFswXSp0WzBdK3RbMV0qdFsxXSt0WzJdKnRbMl0pO3RbMF0vPW4sdFsxXS89bix0WzJdLz1ufWZ1bmN0aW9uIFByKHQsbil7VGQucHVzaChOZD1beWQ9dCxiZD10XSksbjxfZCYmKF9kPW4pLG4+bWQmJihtZD1uKX1mdW5jdGlvbiB6cih0LG4pe3ZhciBlPVRyKFt0KlFkLG4qUWRdKTtpZihBZCl7dmFyIHI9U3IoQWQsZSksaT1TcihbclsxXSwtclswXSwwXSxyKTtDcihpKSxpPUFyKGkpO3ZhciBvLGE9dC14ZCx1PWE+MD8xOi0xLGY9aVswXSpaZCp1LGM9SmQoYSk+MTgwO2NeKHUqeGQ8ZiYmZjx1KnQpPyhvPWlbMV0qWmQpPm1kJiYobWQ9byk6KGY9KGYrMzYwKSUzNjAtMTgwLGNeKHUqeGQ8ZiYmZjx1KnQpPyhvPS1pWzFdKlpkKTxfZCYmKF9kPW8pOihuPF9kJiYoX2Q9biksbj5tZCYmKG1kPW4pKSksYz90PHhkP09yKHlkLHQpPk9yKHlkLGJkKSYmKGJkPXQpOk9yKHQsYmQpPk9yKHlkLGJkKSYmKHlkPXQpOmJkPj15ZD8odDx5ZCYmKHlkPXQpLHQ+YmQmJihiZD10KSk6dD54ZD9Pcih5ZCx0KT5Pcih5ZCxiZCkmJihiZD10KTpPcih0LGJkKT5Pcih5ZCxiZCkmJih5ZD10KX1lbHNlIFRkLnB1c2goTmQ9W3lkPXQsYmQ9dF0pO248X2QmJihfZD1uKSxuPm1kJiYobWQ9biksQWQ9ZSx4ZD10fWZ1bmN0aW9uIFJyKCl7Z3AucG9pbnQ9enJ9ZnVuY3Rpb24gTHIoKXtOZFswXT15ZCxOZFsxXT1iZCxncC5wb2ludD1QcixBZD1udWxsfWZ1bmN0aW9uIERyKHQsbil7aWYoQWQpe3ZhciBlPXQteGQ7dnAuYWRkKEpkKGUpPjE4MD9lKyhlPjA/MzYwOi0zNjApOmUpfWVsc2Ugd2Q9dCxNZD1uO3BwLnBvaW50KHQsbiksenIodCxuKX1mdW5jdGlvbiBVcigpe3BwLmxpbmVTdGFydCgpfWZ1bmN0aW9uIHFyKCl7RHIod2QsTWQpLHBwLmxpbmVFbmQoKSxKZCh2cCk+SGQmJih5ZD0tKGJkPTE4MCkpLE5kWzBdPXlkLE5kWzFdPWJkLEFkPW51bGx9ZnVuY3Rpb24gT3IodCxuKXtyZXR1cm4obi09dCk8MD9uKzM2MDpufWZ1bmN0aW9uIFlyKHQsbil7cmV0dXJuIHRbMF0tblswXX1mdW5jdGlvbiBCcih0LG4pe3JldHVybiB0WzBdPD10WzFdP3RbMF08PW4mJm48PXRbMV06bjx0WzBdfHx0WzFdPG59ZnVuY3Rpb24gRnIodCxuKXt0Kj1RZDt2YXIgZT1ucChuKj1RZCk7SXIoZSpucCh0KSxlKmFwKHQpLGFwKG4pKX1mdW5jdGlvbiBJcih0LG4sZSl7a2QrPSh0LWtkKS8rK1NkLENkKz0obi1DZCkvU2QsUGQrPShlLVBkKS9TZH1mdW5jdGlvbiBqcigpe3lwLnBvaW50PUhyfWZ1bmN0aW9uIEhyKHQsbil7dCo9UWQ7dmFyIGU9bnAobio9UWQpO0JkPWUqbnAodCksRmQ9ZSphcCh0KSxJZD1hcChuKSx5cC5wb2ludD1YcixJcihCZCxGZCxJZCl9ZnVuY3Rpb24gWHIodCxuKXt0Kj1RZDt2YXIgZT1ucChuKj1RZCkscj1lKm5wKHQpLGk9ZSphcCh0KSxvPWFwKG4pLGE9dHAoZnAoKGE9RmQqby1JZCppKSphKyhhPUlkKnItQmQqbykqYSsoYT1CZCppLUZkKnIpKmEpLEJkKnIrRmQqaStJZCpvKTtFZCs9YSx6ZCs9YSooQmQrKEJkPXIpKSxSZCs9YSooRmQrKEZkPWkpKSxMZCs9YSooSWQrKElkPW8pKSxJcihCZCxGZCxJZCl9ZnVuY3Rpb24gR3IoKXt5cC5wb2ludD1Gcn1mdW5jdGlvbiBWcigpe3lwLnBvaW50PVdyfWZ1bmN0aW9uICRyKCl7WnIoT2QsWWQpLHlwLnBvaW50PUZyfWZ1bmN0aW9uIFdyKHQsbil7T2Q9dCxZZD1uLHQqPVFkLG4qPVFkLHlwLnBvaW50PVpyO3ZhciBlPW5wKG4pO0JkPWUqbnAodCksRmQ9ZSphcCh0KSxJZD1hcChuKSxJcihCZCxGZCxJZCl9ZnVuY3Rpb24gWnIodCxuKXt0Kj1RZDt2YXIgZT1ucChuKj1RZCkscj1lKm5wKHQpLGk9ZSphcCh0KSxvPWFwKG4pLGE9RmQqby1JZCppLHU9SWQqci1CZCpvLGY9QmQqaS1GZCpyLGM9ZnAoYSphK3UqdStmKmYpLHM9ZHIoYyksbD1jJiYtcy9jO0RkKz1sKmEsVWQrPWwqdSxxZCs9bCpmLEVkKz1zLHpkKz1zKihCZCsoQmQ9cikpLFJkKz1zKihGZCsoRmQ9aSkpLExkKz1zKihJZCsoSWQ9bykpLElyKEJkLEZkLElkKX1mdW5jdGlvbiBRcih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gSnIodCxuKXtmdW5jdGlvbiBlKGUscil7cmV0dXJuIGU9dChlLHIpLG4oZVswXSxlWzFdKX1yZXR1cm4gdC5pbnZlcnQmJm4uaW52ZXJ0JiYoZS5pbnZlcnQ9ZnVuY3Rpb24oZSxyKXtyZXR1cm4oZT1uLmludmVydChlLHIpKSYmdC5pbnZlcnQoZVswXSxlWzFdKX0pLGV9ZnVuY3Rpb24gS3IodCxuKXtyZXR1cm5bdD5HZD90LVdkOnQ8LUdkP3QrV2Q6dCxuXX1mdW5jdGlvbiB0aSh0LG4sZSl7cmV0dXJuKHQlPVdkKT9ufHxlP0pyKGVpKHQpLHJpKG4sZSkpOmVpKHQpOm58fGU/cmkobixlKTpLcn1mdW5jdGlvbiBuaSh0KXtyZXR1cm4gZnVuY3Rpb24obixlKXtyZXR1cm4gbis9dCxbbj5HZD9uLVdkOm48LUdkP24rV2Q6bixlXX19ZnVuY3Rpb24gZWkodCl7dmFyIG49bmkodCk7cmV0dXJuIG4uaW52ZXJ0PW5pKC10KSxufWZ1bmN0aW9uIHJpKHQsbil7ZnVuY3Rpb24gZSh0LG4pe3ZhciBlPW5wKG4pLHU9bnAodCkqZSxmPWFwKHQpKmUsYz1hcChuKSxzPWMqcit1Kmk7cmV0dXJuW3RwKGYqby1zKmEsdSpyLWMqaSksZHIocypvK2YqYSldfXZhciByPW5wKHQpLGk9YXAodCksbz1ucChuKSxhPWFwKG4pO3JldHVybiBlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlPW5wKG4pLHU9bnAodCkqZSxmPWFwKHQpKmUsYz1hcChuKSxzPWMqby1mKmE7cmV0dXJuW3RwKGYqbytjKmEsdSpyK3MqaSksZHIocypyLXUqaSldfSxlfWZ1bmN0aW9uIGlpKHQpe2Z1bmN0aW9uIG4obil7cmV0dXJuIG49dChuWzBdKlFkLG5bMV0qUWQpLG5bMF0qPVpkLG5bMV0qPVpkLG59cmV0dXJuIHQ9dGkodFswXSpRZCx0WzFdKlFkLHQubGVuZ3RoPjI/dFsyXSpRZDowKSxuLmludmVydD1mdW5jdGlvbihuKXtyZXR1cm4gbj10LmludmVydChuWzBdKlFkLG5bMV0qUWQpLG5bMF0qPVpkLG5bMV0qPVpkLG59LG59ZnVuY3Rpb24gb2kodCxuLGUscixpLG8pe2lmKGUpe3ZhciBhPW5wKG4pLHU9YXAobiksZj1yKmU7bnVsbD09aT8oaT1uK3IqV2Qsbz1uLWYvMik6KGk9YWkoYSxpKSxvPWFpKGEsbyksKHI+MD9pPG86aT5vKSYmKGkrPXIqV2QpKTtmb3IodmFyIGMscz1pO3I+MD9zPm86czxvO3MtPWYpYz1BcihbYSwtdSpucChzKSwtdSphcChzKV0pLHQucG9pbnQoY1swXSxjWzFdKX19ZnVuY3Rpb24gYWkodCxuKXsobj1UcihuKSlbMF0tPXQsQ3Iobik7dmFyIGU9aHIoLW5bMV0pO3JldHVybigoLW5bMl08MD8tZTplKStXZC1IZCklV2R9ZnVuY3Rpb24gdWkoKXt2YXIgdCxuPVtdO3JldHVybntwb2ludDpmdW5jdGlvbihuLGUpe3QucHVzaChbbixlXSl9LGxpbmVTdGFydDpmdW5jdGlvbigpe24ucHVzaCh0PVtdKX0sbGluZUVuZDp2cixyZWpvaW46ZnVuY3Rpb24oKXtuLmxlbmd0aD4xJiZuLnB1c2gobi5wb3AoKS5jb25jYXQobi5zaGlmdCgpKSl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciBlPW47cmV0dXJuIG49W10sdD1udWxsLGV9fX1mdW5jdGlvbiBmaSh0LG4pe3JldHVybiBKZCh0WzBdLW5bMF0pPEhkJiZKZCh0WzFdLW5bMV0pPEhkfWZ1bmN0aW9uIGNpKHQsbixlLHIpe3RoaXMueD10LHRoaXMuej1uLHRoaXMubz1lLHRoaXMuZT1yLHRoaXMudj0hMSx0aGlzLm49dGhpcy5wPW51bGx9ZnVuY3Rpb24gc2kodCxuLGUscixpKXt2YXIgbyxhLHU9W10sZj1bXTtpZih0LmZvckVhY2goZnVuY3Rpb24odCl7aWYoISgobj10Lmxlbmd0aC0xKTw9MCkpe3ZhciBuLGUscj10WzBdLGE9dFtuXTtpZihmaShyLGEpKXtmb3IoaS5saW5lU3RhcnQoKSxvPTA7bzxuOysrbylpLnBvaW50KChyPXRbb10pWzBdLHJbMV0pO2kubGluZUVuZCgpfWVsc2UgdS5wdXNoKGU9bmV3IGNpKHIsdCxudWxsLCEwKSksZi5wdXNoKGUubz1uZXcgY2kocixudWxsLGUsITEpKSx1LnB1c2goZT1uZXcgY2koYSx0LG51bGwsITEpKSxmLnB1c2goZS5vPW5ldyBjaShhLG51bGwsZSwhMCkpfX0pLHUubGVuZ3RoKXtmb3IoZi5zb3J0KG4pLGxpKHUpLGxpKGYpLG89MCxhPWYubGVuZ3RoO288YTsrK28pZltvXS5lPWU9IWU7Zm9yKHZhciBjLHMsbD11WzBdOzspe2Zvcih2YXIgaD1sLGQ9ITA7aC52OylpZigoaD1oLm4pPT09bClyZXR1cm47Yz1oLnosaS5saW5lU3RhcnQoKTtkb3tpZihoLnY9aC5vLnY9ITAsaC5lKXtpZihkKWZvcihvPTAsYT1jLmxlbmd0aDtvPGE7KytvKWkucG9pbnQoKHM9Y1tvXSlbMF0sc1sxXSk7ZWxzZSByKGgueCxoLm4ueCwxLGkpO2g9aC5ufWVsc2V7aWYoZClmb3IoYz1oLnAueixvPWMubGVuZ3RoLTE7bz49MDstLW8paS5wb2ludCgocz1jW29dKVswXSxzWzFdKTtlbHNlIHIoaC54LGgucC54LC0xLGkpO2g9aC5wfWM9KGg9aC5vKS56LGQ9IWR9d2hpbGUoIWgudik7aS5saW5lRW5kKCl9fX1mdW5jdGlvbiBsaSh0KXtpZihuPXQubGVuZ3RoKXtmb3IodmFyIG4sZSxyPTAsaT10WzBdOysrcjxuOylpLm49ZT10W3JdLGUucD1pLGk9ZTtpLm49ZT10WzBdLGUucD1pfX1mdW5jdGlvbiBoaSh0LG4pe3ZhciBlPW5bMF0scj1uWzFdLGk9YXAociksbz1bYXAoZSksLW5wKGUpLDBdLGE9MCx1PTA7a3AucmVzZXQoKSwxPT09aT9yPVZkK0hkOi0xPT09aSYmKHI9LVZkLUhkKTtmb3IodmFyIGY9MCxjPXQubGVuZ3RoO2Y8YzsrK2YpaWYobD0ocz10W2ZdKS5sZW5ndGgpZm9yKHZhciBzLGwsaD1zW2wtMV0sZD1oWzBdLHA9aFsxXS8yKyRkLHY9YXAocCksZz1ucChwKSx5PTA7eTxsOysreSxkPWIsdj14LGc9dyxoPV8pe3ZhciBfPXNbeV0sYj1fWzBdLG09X1sxXS8yKyRkLHg9YXAobSksdz1ucChtKSxNPWItZCxBPU0+PTA/MTotMSxUPUEqTSxOPVQ+R2QsUz12Kng7aWYoa3AuYWRkKHRwKFMqQSphcChUKSxnKncrUypucChUKSkpLGErPU4/TStBKldkOk0sTl5kPj1lXmI+PWUpe3ZhciBFPVNyKFRyKGgpLFRyKF8pKTtDcihFKTt2YXIgaz1TcihvLEUpO0NyKGspO3ZhciBDPShOXk0+PTA/LTE6MSkqZHIoa1syXSk7KHI+Q3x8cj09PUMmJihFWzBdfHxFWzFdKSkmJih1Kz1OXk0+PTA/MTotMSl9fXJldHVybihhPC1IZHx8YTxIZCYma3A8LUhkKV4xJnV9ZnVuY3Rpb24gZGkodCxuLGUscil7cmV0dXJuIGZ1bmN0aW9uKGkpe2Z1bmN0aW9uIG8obixlKXt0KG4sZSkmJmkucG9pbnQobixlKX1mdW5jdGlvbiBhKHQsbil7di5wb2ludCh0LG4pfWZ1bmN0aW9uIHUoKXttLnBvaW50PWEsdi5saW5lU3RhcnQoKX1mdW5jdGlvbiBmKCl7bS5wb2ludD1vLHYubGluZUVuZCgpfWZ1bmN0aW9uIGModCxuKXtwLnB1c2goW3Qsbl0pLF8ucG9pbnQodCxuKX1mdW5jdGlvbiBzKCl7Xy5saW5lU3RhcnQoKSxwPVtdfWZ1bmN0aW9uIGwoKXtjKHBbMF1bMF0scFswXVsxXSksXy5saW5lRW5kKCk7dmFyIHQsbixlLHIsbz1fLmNsZWFuKCksYT1nLnJlc3VsdCgpLHU9YS5sZW5ndGg7aWYocC5wb3AoKSxoLnB1c2gocCkscD1udWxsLHUpaWYoMSZvKXtpZihlPWFbMF0sKG49ZS5sZW5ndGgtMSk+MCl7Zm9yKGJ8fChpLnBvbHlnb25TdGFydCgpLGI9ITApLGkubGluZVN0YXJ0KCksdD0wO3Q8bjsrK3QpaS5wb2ludCgocj1lW3RdKVswXSxyWzFdKTtpLmxpbmVFbmQoKX19ZWxzZSB1PjEmJjImbyYmYS5wdXNoKGEucG9wKCkuY29uY2F0KGEuc2hpZnQoKSkpLGQucHVzaChhLmZpbHRlcihwaSkpfXZhciBoLGQscCx2PW4oaSksZz11aSgpLF89bihnKSxiPSExLG09e3BvaW50Om8sbGluZVN0YXJ0OnUsbGluZUVuZDpmLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe20ucG9pbnQ9YyxtLmxpbmVTdGFydD1zLG0ubGluZUVuZD1sLGQ9W10saD1bXX0scG9seWdvbkVuZDpmdW5jdGlvbigpe20ucG9pbnQ9byxtLmxpbmVTdGFydD11LG0ubGluZUVuZD1mLGQ9eShkKTt2YXIgdD1oaShoLHIpO2QubGVuZ3RoPyhifHwoaS5wb2x5Z29uU3RhcnQoKSxiPSEwKSxzaShkLHZpLHQsZSxpKSk6dCYmKGJ8fChpLnBvbHlnb25TdGFydCgpLGI9ITApLGkubGluZVN0YXJ0KCksZShudWxsLG51bGwsMSxpKSxpLmxpbmVFbmQoKSksYiYmKGkucG9seWdvbkVuZCgpLGI9ITEpLGQ9aD1udWxsfSxzcGhlcmU6ZnVuY3Rpb24oKXtpLnBvbHlnb25TdGFydCgpLGkubGluZVN0YXJ0KCksZShudWxsLG51bGwsMSxpKSxpLmxpbmVFbmQoKSxpLnBvbHlnb25FbmQoKX19O3JldHVybiBtfX1mdW5jdGlvbiBwaSh0KXtyZXR1cm4gdC5sZW5ndGg+MX1mdW5jdGlvbiB2aSh0LG4pe3JldHVybigodD10LngpWzBdPDA/dFsxXS1WZC1IZDpWZC10WzFdKS0oKG49bi54KVswXTwwP25bMV0tVmQtSGQ6VmQtblsxXSl9ZnVuY3Rpb24gZ2kodCl7ZnVuY3Rpb24gbih0LG4pe3JldHVybiBucCh0KSpucChuKT5pfWZ1bmN0aW9uIGUodCxuLGUpe3ZhciByPVsxLDAsMF0sbz1TcihUcih0KSxUcihuKSksYT1OcihvLG8pLHU9b1swXSxmPWEtdSp1O2lmKCFmKXJldHVybiFlJiZ0O3ZhciBjPWkqYS9mLHM9LWkqdS9mLGw9U3IocixvKSxoPWtyKHIsYyk7RXIoaCxrcihvLHMpKTt2YXIgZD1sLHA9TnIoaCxkKSx2PU5yKGQsZCksZz1wKnAtdiooTnIoaCxoKS0xKTtpZighKGc8MCkpe3ZhciB5PWZwKGcpLF89a3IoZCwoLXAteSkvdik7aWYoRXIoXyxoKSxfPUFyKF8pLCFlKXJldHVybiBfO3ZhciBiLG09dFswXSx4PW5bMF0sdz10WzFdLE09blsxXTt4PG0mJihiPW0sbT14LHg9Yik7dmFyIEE9eC1tLFQ9SmQoQS1HZCk8SGQ7aWYoIVQmJk08dyYmKGI9dyx3PU0sTT1iKSxUfHxBPEhkP1Q/dytNPjBeX1sxXTwoSmQoX1swXS1tKTxIZD93Ok0pOnc8PV9bMV0mJl9bMV08PU06QT5HZF4obTw9X1swXSYmX1swXTw9eCkpe3ZhciBOPWtyKGQsKC1wK3kpL3YpO3JldHVybiBFcihOLGgpLFtfLEFyKE4pXX19fWZ1bmN0aW9uIHIobixlKXt2YXIgcj1hP3Q6R2QtdCxpPTA7cmV0dXJuIG48LXI/aXw9MTpuPnImJihpfD0yKSxlPC1yP2l8PTQ6ZT5yJiYoaXw9OCksaX12YXIgaT1ucCh0KSxvPTYqUWQsYT1pPjAsdT1KZChpKT5IZDtyZXR1cm4gZGkobixmdW5jdGlvbih0KXt2YXIgaSxvLGYsYyxzO3JldHVybntsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtjPWY9ITEscz0xfSxwb2ludDpmdW5jdGlvbihsLGgpe3ZhciBkLHA9W2wsaF0sdj1uKGwsaCksZz1hP3Y/MDpyKGwsaCk6dj9yKGwrKGw8MD9HZDotR2QpLGgpOjA7aWYoIWkmJihjPWY9dikmJnQubGluZVN0YXJ0KCksdiE9PWYmJighKGQ9ZShpLHApKXx8ZmkoaSxkKXx8ZmkocCxkKSkmJihwWzBdKz1IZCxwWzFdKz1IZCx2PW4ocFswXSxwWzFdKSksdiE9PWYpcz0wLHY/KHQubGluZVN0YXJ0KCksZD1lKHAsaSksdC5wb2ludChkWzBdLGRbMV0pKTooZD1lKGkscCksdC5wb2ludChkWzBdLGRbMV0pLHQubGluZUVuZCgpKSxpPWQ7ZWxzZSBpZih1JiZpJiZhXnYpe3ZhciB5O2cmb3x8ISh5PWUocCxpLCEwKSl8fChzPTAsYT8odC5saW5lU3RhcnQoKSx0LnBvaW50KHlbMF1bMF0seVswXVsxXSksdC5wb2ludCh5WzFdWzBdLHlbMV1bMV0pLHQubGluZUVuZCgpKToodC5wb2ludCh5WzFdWzBdLHlbMV1bMV0pLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludCh5WzBdWzBdLHlbMF1bMV0pKSl9IXZ8fGkmJmZpKGkscCl8fHQucG9pbnQocFswXSxwWzFdKSxpPXAsZj12LG89Z30sbGluZUVuZDpmdW5jdGlvbigpe2YmJnQubGluZUVuZCgpLGk9bnVsbH0sY2xlYW46ZnVuY3Rpb24oKXtyZXR1cm4gc3woYyYmZik8PDF9fX0sZnVuY3Rpb24obixlLHIsaSl7b2koaSx0LG8scixuLGUpfSxhP1swLC10XTpbLUdkLHQtR2RdKX1mdW5jdGlvbiB5aSh0LG4sZSxyKXtmdW5jdGlvbiBpKGksbyl7cmV0dXJuIHQ8PWkmJmk8PWUmJm48PW8mJm88PXJ9ZnVuY3Rpb24gbyhpLG8sdSxjKXt2YXIgcz0wLGw9MDtpZihudWxsPT1pfHwocz1hKGksdSkpIT09KGw9YShvLHUpKXx8ZihpLG8pPDBedT4wKWRve2MucG9pbnQoMD09PXN8fDM9PT1zP3Q6ZSxzPjE/cjpuKX13aGlsZSgocz0ocyt1KzQpJTQpIT09bCk7ZWxzZSBjLnBvaW50KG9bMF0sb1sxXSl9ZnVuY3Rpb24gYShyLGkpe3JldHVybiBKZChyWzBdLXQpPEhkP2k+MD8wOjM6SmQoclswXS1lKTxIZD9pPjA/MjoxOkpkKHJbMV0tbik8SGQ/aT4wPzE6MDppPjA/MzoyfWZ1bmN0aW9uIHUodCxuKXtyZXR1cm4gZih0Lngsbi54KX1mdW5jdGlvbiBmKHQsbil7dmFyIGU9YSh0LDEpLHI9YShuLDEpO3JldHVybiBlIT09cj9lLXI6MD09PWU/blsxXS10WzFdOjE9PT1lP3RbMF0tblswXToyPT09ZT90WzFdLW5bMV06blswXS10WzBdfXJldHVybiBmdW5jdGlvbihhKXtmdW5jdGlvbiBmKHQsbil7aSh0LG4pJiZ3LnBvaW50KHQsbil9ZnVuY3Rpb24gYyhvLGEpe3ZhciB1PWkobyxhKTtpZihsJiZoLnB1c2goW28sYV0pLG0pZD1vLHA9YSx2PXUsbT0hMSx1JiYody5saW5lU3RhcnQoKSx3LnBvaW50KG8sYSkpO2Vsc2UgaWYodSYmYil3LnBvaW50KG8sYSk7ZWxzZXt2YXIgZj1bZz1NYXRoLm1heCh6cCxNYXRoLm1pbihQcCxnKSksXz1NYXRoLm1heCh6cCxNYXRoLm1pbihQcCxfKSldLGM9W289TWF0aC5tYXgoenAsTWF0aC5taW4oUHAsbykpLGE9TWF0aC5tYXgoenAsTWF0aC5taW4oUHAsYSkpXTshZnVuY3Rpb24odCxuLGUscixpLG8pe3ZhciBhLHU9dFswXSxmPXRbMV0sYz0wLHM9MSxsPW5bMF0tdSxoPW5bMV0tZjtpZihhPWUtdSxsfHwhKGE+MCkpe2lmKGEvPWwsbDwwKXtpZihhPGMpcmV0dXJuO2E8cyYmKHM9YSl9ZWxzZSBpZihsPjApe2lmKGE+cylyZXR1cm47YT5jJiYoYz1hKX1pZihhPWktdSxsfHwhKGE8MCkpe2lmKGEvPWwsbDwwKXtpZihhPnMpcmV0dXJuO2E+YyYmKGM9YSl9ZWxzZSBpZihsPjApe2lmKGE8YylyZXR1cm47YTxzJiYocz1hKX1pZihhPXItZixofHwhKGE+MCkpe2lmKGEvPWgsaDwwKXtpZihhPGMpcmV0dXJuO2E8cyYmKHM9YSl9ZWxzZSBpZihoPjApe2lmKGE+cylyZXR1cm47YT5jJiYoYz1hKX1pZihhPW8tZixofHwhKGE8MCkpe2lmKGEvPWgsaDwwKXtpZihhPnMpcmV0dXJuO2E+YyYmKGM9YSl9ZWxzZSBpZihoPjApe2lmKGE8YylyZXR1cm47YTxzJiYocz1hKX1yZXR1cm4gYz4wJiYodFswXT11K2MqbCx0WzFdPWYrYypoKSxzPDEmJihuWzBdPXUrcypsLG5bMV09ZitzKmgpLCEwfX19fX0oZixjLHQsbixlLHIpP3UmJih3LmxpbmVTdGFydCgpLHcucG9pbnQobyxhKSx4PSExKTooYnx8KHcubGluZVN0YXJ0KCksdy5wb2ludChmWzBdLGZbMV0pKSx3LnBvaW50KGNbMF0sY1sxXSksdXx8dy5saW5lRW5kKCkseD0hMSl9Zz1vLF89YSxiPXV9dmFyIHMsbCxoLGQscCx2LGcsXyxiLG0seCx3PWEsTT11aSgpLEE9e3BvaW50OmYsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7QS5wb2ludD1jLGwmJmwucHVzaChoPVtdKSxtPSEwLGI9ITEsZz1fPU5hTn0sbGluZUVuZDpmdW5jdGlvbigpe3MmJihjKGQscCksdiYmYiYmTS5yZWpvaW4oKSxzLnB1c2goTS5yZXN1bHQoKSkpLEEucG9pbnQ9ZixiJiZ3LmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dz1NLHM9W10sbD1bXSx4PSEwfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dmFyIG49ZnVuY3Rpb24oKXtmb3IodmFyIG49MCxlPTAsaT1sLmxlbmd0aDtlPGk7KytlKWZvcih2YXIgbyxhLHU9bFtlXSxmPTEsYz11Lmxlbmd0aCxzPXVbMF0saD1zWzBdLGQ9c1sxXTtmPGM7KytmKW89aCxhPWQsaD0ocz11W2ZdKVswXSxkPXNbMV0sYTw9cj9kPnImJihoLW8pKihyLWEpPihkLWEpKih0LW8pJiYrK246ZDw9ciYmKGgtbykqKHItYSk8KGQtYSkqKHQtbykmJi0tbjtyZXR1cm4gbn0oKSxlPXgmJm4saT0ocz15KHMpKS5sZW5ndGg7KGV8fGkpJiYoYS5wb2x5Z29uU3RhcnQoKSxlJiYoYS5saW5lU3RhcnQoKSxvKG51bGwsbnVsbCwxLGEpLGEubGluZUVuZCgpKSxpJiZzaShzLHUsbixvLGEpLGEucG9seWdvbkVuZCgpKSx3PWEscz1sPWg9bnVsbH19O3JldHVybiBBfX1mdW5jdGlvbiBfaSgpe0xwLnBvaW50PUxwLmxpbmVFbmQ9dnJ9ZnVuY3Rpb24gYmkodCxuKXtfcD10Kj1RZCxicD1hcChuKj1RZCksbXA9bnAobiksTHAucG9pbnQ9bWl9ZnVuY3Rpb24gbWkodCxuKXt0Kj1RZDt2YXIgZT1hcChuKj1RZCkscj1ucChuKSxpPUpkKHQtX3ApLG89bnAoaSksYT1yKmFwKGkpLHU9bXAqZS1icCpyKm8sZj1icCplK21wKnIqbztScC5hZGQodHAoZnAoYSphK3UqdSksZikpLF9wPXQsYnA9ZSxtcD1yfWZ1bmN0aW9uIHhpKHQpe3JldHVybiBScC5yZXNldCgpLGJyKHQsTHApLCtScH1mdW5jdGlvbiB3aSh0LG4pe3JldHVybiBEcFswXT10LERwWzFdPW4seGkoVXApfWZ1bmN0aW9uIE1pKHQsbil7cmV0dXJuISghdHx8IU9wLmhhc093blByb3BlcnR5KHQudHlwZSkpJiZPcFt0LnR5cGVdKHQsbil9ZnVuY3Rpb24gQWkodCxuKXtyZXR1cm4gMD09PXdpKHQsbil9ZnVuY3Rpb24gVGkodCxuKXt2YXIgZT13aSh0WzBdLHRbMV0pO3JldHVybiB3aSh0WzBdLG4pK3dpKG4sdFsxXSk8PWUrSGR9ZnVuY3Rpb24gTmkodCxuKXtyZXR1cm4hIWhpKHQubWFwKFNpKSxFaShuKSl9ZnVuY3Rpb24gU2kodCl7cmV0dXJuKHQ9dC5tYXAoRWkpKS5wb3AoKSx0fWZ1bmN0aW9uIEVpKHQpe3JldHVyblt0WzBdKlFkLHRbMV0qUWRdfWZ1bmN0aW9uIGtpKHQsbixlKXt2YXIgcj1zKHQsbi1IZCxlKS5jb25jYXQobik7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiByLm1hcChmdW5jdGlvbihuKXtyZXR1cm5bdCxuXX0pfX1mdW5jdGlvbiBDaSh0LG4sZSl7dmFyIHI9cyh0LG4tSGQsZSkuY29uY2F0KG4pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gci5tYXAoZnVuY3Rpb24obil7cmV0dXJuW24sdF19KX19ZnVuY3Rpb24gUGkoKXtmdW5jdGlvbiB0KCl7cmV0dXJue3R5cGU6XCJNdWx0aUxpbmVTdHJpbmdcIixjb29yZGluYXRlczpuKCl9fWZ1bmN0aW9uIG4oKXtyZXR1cm4gcyhlcChvL3kpKnksaSx5KS5tYXAoZCkuY29uY2F0KHMoZXAoYy9fKSpfLGYsXykubWFwKHApKS5jb25jYXQocyhlcChyL3YpKnYsZSx2KS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIEpkKHQleSk+SGR9KS5tYXAobCkpLmNvbmNhdChzKGVwKHUvZykqZyxhLGcpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gSmQodCVfKT5IZH0pLm1hcChoKSl9dmFyIGUscixpLG8sYSx1LGYsYyxsLGgsZCxwLHY9MTAsZz12LHk9OTAsXz0zNjAsYj0yLjU7cmV0dXJuIHQubGluZXM9ZnVuY3Rpb24oKXtyZXR1cm4gbigpLm1hcChmdW5jdGlvbih0KXtyZXR1cm57dHlwZTpcIkxpbmVTdHJpbmdcIixjb29yZGluYXRlczp0fX0pfSx0Lm91dGxpbmU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZTpcIlBvbHlnb25cIixjb29yZGluYXRlczpbZChvKS5jb25jYXQocChmKS5zbGljZSgxKSxkKGkpLnJldmVyc2UoKS5zbGljZSgxKSxwKGMpLnJldmVyc2UoKS5zbGljZSgxKSldfX0sdC5leHRlbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dC5leHRlbnRNYWpvcihuKS5leHRlbnRNaW5vcihuKTp0LmV4dGVudE1pbm9yKCl9LHQuZXh0ZW50TWFqb3I9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89K25bMF1bMF0saT0rblsxXVswXSxjPStuWzBdWzFdLGY9K25bMV1bMV0sbz5pJiYobj1vLG89aSxpPW4pLGM+ZiYmKG49YyxjPWYsZj1uKSx0LnByZWNpc2lvbihiKSk6W1tvLGNdLFtpLGZdXX0sdC5leHRlbnRNaW5vcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rblswXVswXSxlPStuWzFdWzBdLHU9K25bMF1bMV0sYT0rblsxXVsxXSxyPmUmJihuPXIscj1lLGU9biksdT5hJiYobj11LHU9YSxhPW4pLHQucHJlY2lzaW9uKGIpKTpbW3IsdV0sW2UsYV1dfSx0LnN0ZXA9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dC5zdGVwTWFqb3Iobikuc3RlcE1pbm9yKG4pOnQuc3RlcE1pbm9yKCl9LHQuc3RlcE1ham9yPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh5PStuWzBdLF89K25bMV0sdCk6W3ksX119LHQuc3RlcE1pbm9yPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh2PStuWzBdLGc9K25bMV0sdCk6W3YsZ119LHQucHJlY2lzaW9uPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPStuLGw9a2kodSxhLDkwKSxoPUNpKHIsZSxiKSxkPWtpKGMsZiw5MCkscD1DaShvLGksYiksdCk6Yn0sdC5leHRlbnRNYWpvcihbWy0xODAsLTkwK0hkXSxbMTgwLDkwLUhkXV0pLmV4dGVudE1pbm9yKFtbLTE4MCwtODAtSGRdLFsxODAsODArSGRdXSl9ZnVuY3Rpb24gemkodCl7cmV0dXJuIHR9ZnVuY3Rpb24gUmkoKXtGcC5wb2ludD1MaX1mdW5jdGlvbiBMaSh0LG4pe0ZwLnBvaW50PURpLHhwPU1wPXQsd3A9QXA9bn1mdW5jdGlvbiBEaSh0LG4pe0JwLmFkZChBcCp0LU1wKm4pLE1wPXQsQXA9bn1mdW5jdGlvbiBVaSgpe0RpKHhwLHdwKX1mdW5jdGlvbiBxaSh0LG4pe1ZwKz10LCRwKz1uLCsrV3B9ZnVuY3Rpb24gT2koKXtldi5wb2ludD1ZaX1mdW5jdGlvbiBZaSh0LG4pe2V2LnBvaW50PUJpLHFpKFNwPXQsRXA9bil9ZnVuY3Rpb24gQmkodCxuKXt2YXIgZT10LVNwLHI9bi1FcCxpPWZwKGUqZStyKnIpO1pwKz1pKihTcCt0KS8yLFFwKz1pKihFcCtuKS8yLEpwKz1pLHFpKFNwPXQsRXA9bil9ZnVuY3Rpb24gRmkoKXtldi5wb2ludD1xaX1mdW5jdGlvbiBJaSgpe2V2LnBvaW50PUhpfWZ1bmN0aW9uIGppKCl7WGkoVHAsTnApfWZ1bmN0aW9uIEhpKHQsbil7ZXYucG9pbnQ9WGkscWkoVHA9U3A9dCxOcD1FcD1uKX1mdW5jdGlvbiBYaSh0LG4pe3ZhciBlPXQtU3Ascj1uLUVwLGk9ZnAoZSplK3Iqcik7WnArPWkqKFNwK3QpLzIsUXArPWkqKEVwK24pLzIsSnArPWksS3ArPShpPUVwKnQtU3AqbikqKFNwK3QpLHR2Kz1pKihFcCtuKSxudis9MyppLHFpKFNwPXQsRXA9bil9ZnVuY3Rpb24gR2kodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIFZpKHQsbil7Y3YucG9pbnQ9JGksaXY9YXY9dCxvdj11dj1ufWZ1bmN0aW9uICRpKHQsbil7YXYtPXQsdXYtPW4sZnYuYWRkKGZwKGF2KmF2K3V2KnV2KSksYXY9dCx1dj1ufWZ1bmN0aW9uIFdpKCl7dGhpcy5fc3RyaW5nPVtdfWZ1bmN0aW9uIFppKHQpe3JldHVyblwibTAsXCIrdCtcImFcIit0K1wiLFwiK3QrXCIgMCAxLDEgMCxcIistMip0K1wiYVwiK3QrXCIsXCIrdCtcIiAwIDEsMSAwLFwiKzIqdCtcInpcIn1mdW5jdGlvbiBRaSh0KXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGU9bmV3IEppO2Zvcih2YXIgciBpbiB0KWVbcl09dFtyXTtyZXR1cm4gZS5zdHJlYW09bixlfX1mdW5jdGlvbiBKaSgpe31mdW5jdGlvbiBLaSh0LG4sZSl7dmFyIHI9dC5jbGlwRXh0ZW50JiZ0LmNsaXBFeHRlbnQoKTtyZXR1cm4gdC5zY2FsZSgxNTApLnRyYW5zbGF0ZShbMCwwXSksbnVsbCE9ciYmdC5jbGlwRXh0ZW50KG51bGwpLGJyKGUsdC5zdHJlYW0oR3ApKSxuKEdwLnJlc3VsdCgpKSxudWxsIT1yJiZ0LmNsaXBFeHRlbnQociksdH1mdW5jdGlvbiB0byh0LG4sZSl7cmV0dXJuIEtpKHQsZnVuY3Rpb24oZSl7dmFyIHI9blsxXVswXS1uWzBdWzBdLGk9blsxXVsxXS1uWzBdWzFdLG89TWF0aC5taW4oci8oZVsxXVswXS1lWzBdWzBdKSxpLyhlWzFdWzFdLWVbMF1bMV0pKSxhPStuWzBdWzBdKyhyLW8qKGVbMV1bMF0rZVswXVswXSkpLzIsdT0rblswXVsxXSsoaS1vKihlWzFdWzFdK2VbMF1bMV0pKS8yO3Quc2NhbGUoMTUwKm8pLnRyYW5zbGF0ZShbYSx1XSl9LGUpfWZ1bmN0aW9uIG5vKHQsbixlKXtyZXR1cm4gdG8odCxbWzAsMF0sbl0sZSl9ZnVuY3Rpb24gZW8odCxuLGUpe3JldHVybiBLaSh0LGZ1bmN0aW9uKGUpe3ZhciByPStuLGk9ci8oZVsxXVswXS1lWzBdWzBdKSxvPShyLWkqKGVbMV1bMF0rZVswXVswXSkpLzIsYT0taSplWzBdWzFdO3Quc2NhbGUoMTUwKmkpLnRyYW5zbGF0ZShbbyxhXSl9LGUpfWZ1bmN0aW9uIHJvKHQsbixlKXtyZXR1cm4gS2kodCxmdW5jdGlvbihlKXt2YXIgcj0rbixpPXIvKGVbMV1bMV0tZVswXVsxXSksbz0taSplWzBdWzBdLGE9KHItaSooZVsxXVsxXStlWzBdWzFdKSkvMjt0LnNjYWxlKDE1MCppKS50cmFuc2xhdGUoW28sYV0pfSxlKX1mdW5jdGlvbiBpbyh0LG4pe3JldHVybituP2Z1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZShyLGksbyxhLHUsZixjLHMsbCxoLGQscCx2LGcpe3ZhciB5PWMtcixfPXMtaSxiPXkqeStfKl87aWYoYj40Km4mJnYtLSl7dmFyIG09YStoLHg9dStkLHc9ZitwLE09ZnAobSptK3gqeCt3KncpLEE9ZHIody89TSksVD1KZChKZCh3KS0xKTxIZHx8SmQoby1sKTxIZD8obytsKS8yOnRwKHgsbSksTj10KFQsQSksUz1OWzBdLEU9TlsxXSxrPVMtcixDPUUtaSxQPV8qay15KkM7KFAqUC9iPm58fEpkKCh5KmsrXypDKS9iLS41KT4uM3x8YSpoK3UqZCtmKnA8bHYpJiYoZShyLGksbyxhLHUsZixTLEUsVCxtLz1NLHgvPU0sdyx2LGcpLGcucG9pbnQoUyxFKSxlKFMsRSxULG0seCx3LGMscyxsLGgsZCxwLHYsZykpfX1yZXR1cm4gZnVuY3Rpb24obil7ZnVuY3Rpb24gcihlLHIpe2U9dChlLHIpLG4ucG9pbnQoZVswXSxlWzFdKX1mdW5jdGlvbiBpKCl7eT1OYU4sdy5wb2ludD1vLG4ubGluZVN0YXJ0KCl9ZnVuY3Rpb24gbyhyLGkpe3ZhciBvPVRyKFtyLGldKSxhPXQocixpKTtlKHksXyxnLGIsbSx4LHk9YVswXSxfPWFbMV0sZz1yLGI9b1swXSxtPW9bMV0seD1vWzJdLHN2LG4pLG4ucG9pbnQoeSxfKX1mdW5jdGlvbiBhKCl7dy5wb2ludD1yLG4ubGluZUVuZCgpfWZ1bmN0aW9uIHUoKXtpKCksdy5wb2ludD1mLHcubGluZUVuZD1jfWZ1bmN0aW9uIGYodCxuKXtvKHM9dCxuKSxsPXksaD1fLGQ9YixwPW0sdj14LHcucG9pbnQ9b31mdW5jdGlvbiBjKCl7ZSh5LF8sZyxiLG0seCxsLGgscyxkLHAsdixzdixuKSx3LmxpbmVFbmQ9YSxhKCl9dmFyIHMsbCxoLGQscCx2LGcseSxfLGIsbSx4LHc9e3BvaW50OnIsbGluZVN0YXJ0OmksbGluZUVuZDphLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe24ucG9seWdvblN0YXJ0KCksdy5saW5lU3RhcnQ9dX0scG9seWdvbkVuZDpmdW5jdGlvbigpe24ucG9seWdvbkVuZCgpLHcubGluZVN0YXJ0PWl9fTtyZXR1cm4gd319KHQsbik6ZnVuY3Rpb24odCl7cmV0dXJuIFFpKHtwb2ludDpmdW5jdGlvbihuLGUpe249dChuLGUpLHRoaXMuc3RyZWFtLnBvaW50KG5bMF0sblsxXSl9fSl9KHQpfWZ1bmN0aW9uIG9vKHQsbixlLHIpe2Z1bmN0aW9uIGkodCxyKXtyZXR1cm5bdSp0LWYqcituLGUtZip0LXUqcl19dmFyIG89bnAociksYT1hcChyKSx1PW8qdCxmPWEqdCxjPW8vdCxzPWEvdCxsPShhKmUtbypuKS90LGg9KGEqbitvKmUpL3Q7cmV0dXJuIGkuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuW2MqdC1zKm4rbCxoLXMqdC1jKm5dfSxpfWZ1bmN0aW9uIGFvKHQpe3JldHVybiB1byhmdW5jdGlvbigpe3JldHVybiB0fSkoKX1mdW5jdGlvbiB1byh0KXtmdW5jdGlvbiBuKHQpe3JldHVybiBsKHRbMF0qUWQsdFsxXSpRZCl9ZnVuY3Rpb24gZSgpe3ZhciB0PW9vKHAsMCwwLHcpLmFwcGx5KG51bGwsaSh5LF8pKSxuPSh3P29vOmZ1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKHIsaSl7cmV0dXJuW24rdCpyLGUtdCppXX1yZXR1cm4gci5pbnZlcnQ9ZnVuY3Rpb24ocixpKXtyZXR1cm5bKHItbikvdCwoZS1pKS90XX0scn0pKHAsdi10WzBdLGctdFsxXSx3KTtyZXR1cm4gbz10aShiLG0seCkscz1KcihpLG4pLGw9SnIobyxzKSxjPWlvKHMsUykscigpfWZ1bmN0aW9uIHIoKXtyZXR1cm4gaD1kPW51bGwsbn12YXIgaSxvLGEsdSxmLGMscyxsLGgsZCxwPTE1MCx2PTQ4MCxnPTI1MCx5PTAsXz0wLGI9MCxtPTAseD0wLHc9MCxNPW51bGwsQT1DcCxUPW51bGwsTj16aSxTPS41O3JldHVybiBuLnN0cmVhbT1mdW5jdGlvbih0KXtyZXR1cm4gaCYmZD09PXQ/aDpoPWh2KGZ1bmN0aW9uKHQpe3JldHVybiBRaSh7cG9pbnQ6ZnVuY3Rpb24obixlKXt2YXIgcj10KG4sZSk7cmV0dXJuIHRoaXMuc3RyZWFtLnBvaW50KHJbMF0sclsxXSl9fSl9KG8pKEEoYyhOKGQ9dCkpKSkpfSxuLnByZWNsaXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEE9dCxNPXZvaWQgMCxyKCkpOkF9LG4ucG9zdGNsaXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KE49dCxUPWE9dT1mPW51bGwscigpKTpOfSxuLmNsaXBBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oQT0rdD9naShNPXQqUWQpOihNPW51bGwsQ3ApLHIoKSk6TSpaZH0sbi5jbGlwRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhOPW51bGw9PXQ/KFQ9YT11PWY9bnVsbCx6aSk6eWkoVD0rdFswXVswXSxhPSt0WzBdWzFdLHU9K3RbMV1bMF0sZj0rdFsxXVsxXSkscigpKTpudWxsPT1UP251bGw6W1tULGFdLFt1LGZdXX0sbi5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD0rdCxlKCkpOnB9LG4udHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh2PSt0WzBdLGc9K3RbMV0sZSgpKTpbdixnXX0sbi5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHk9dFswXSUzNjAqUWQsXz10WzFdJTM2MCpRZCxlKCkpOlt5KlpkLF8qWmRdfSxuLnJvdGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYj10WzBdJTM2MCpRZCxtPXRbMV0lMzYwKlFkLHg9dC5sZW5ndGg+Mj90WzJdJTM2MCpRZDowLGUoKSk6W2IqWmQsbSpaZCx4KlpkXX0sbi5hbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odz10JTM2MCpRZCxlKCkpOncqWmR9LG4ucHJlY2lzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPWlvKHMsUz10KnQpLHIoKSk6ZnAoUyl9LG4uZml0RXh0ZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRvKG4sdCxlKX0sbi5maXRTaXplPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5vKG4sdCxlKX0sbi5maXRXaWR0aD1mdW5jdGlvbih0LGUpe3JldHVybiBlbyhuLHQsZSl9LG4uZml0SGVpZ2h0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJvKG4sdCxlKX0sZnVuY3Rpb24oKXtyZXR1cm4gaT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxuLmludmVydD1pLmludmVydCYmZnVuY3Rpb24odCl7cmV0dXJuKHQ9bC5pbnZlcnQodFswXSx0WzFdKSkmJlt0WzBdKlpkLHRbMV0qWmRdfSxlKCl9fWZ1bmN0aW9uIGZvKHQpe3ZhciBuPTAsZT1HZC8zLHI9dW8odCksaT1yKG4sZSk7cmV0dXJuIGkucGFyYWxsZWxzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3Iobj10WzBdKlFkLGU9dFsxXSpRZCk6W24qWmQsZSpaZF19LGl9ZnVuY3Rpb24gY28odCxuKXtmdW5jdGlvbiBlKHQsbil7dmFyIGU9ZnAoby0yKmkqYXAobikpL2k7cmV0dXJuW2UqYXAodCo9aSksYS1lKm5wKHQpXX12YXIgcj1hcCh0KSxpPShyK2FwKG4pKS8yO2lmKEpkKGkpPEhkKXJldHVybiBmdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQsbil7cmV0dXJuW3QqZSxhcChuKS9lXX12YXIgZT1ucCh0KTtyZXR1cm4gbi5pbnZlcnQ9ZnVuY3Rpb24odCxuKXtyZXR1cm5bdC9lLGRyKG4qZSldfSxufSh0KTt2YXIgbz0xK3IqKDIqaS1yKSxhPWZwKG8pL2k7cmV0dXJuIGUuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7dmFyIGU9YS1uO3JldHVyblt0cCh0LEpkKGUpKS9pKnVwKGUpLGRyKChvLSh0KnQrZSplKSppKmkpLygyKmkpKV19LGV9ZnVuY3Rpb24gc28oKXtyZXR1cm4gZm8oY28pLnNjYWxlKDE1NS40MjQpLmNlbnRlcihbMCwzMy42NDQyXSl9ZnVuY3Rpb24gbG8oKXtyZXR1cm4gc28oKS5wYXJhbGxlbHMoWzI5LjUsNDUuNV0pLnNjYWxlKDEwNzApLnRyYW5zbGF0ZShbNDgwLDI1MF0pLnJvdGF0ZShbOTYsMF0pLmNlbnRlcihbLS42LDM4LjddKX1mdW5jdGlvbiBobyh0KXtyZXR1cm4gZnVuY3Rpb24obixlKXt2YXIgcj1ucChuKSxpPW5wKGUpLG89dChyKmkpO3JldHVybltvKmkqYXAobiksbyphcChlKV19fWZ1bmN0aW9uIHBvKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3ZhciByPWZwKG4qbitlKmUpLGk9dChyKSxvPWFwKGkpLGE9bnAoaSk7cmV0dXJuW3RwKG4qbyxyKmEpLGRyKHImJmUqby9yKV19fWZ1bmN0aW9uIHZvKHQsbil7cmV0dXJuW3QsaXAoY3AoKFZkK24pLzIpKV19ZnVuY3Rpb24gZ28odCl7ZnVuY3Rpb24gbigpe3ZhciBuPUdkKnUoKSxhPW8oaWkoby5yb3RhdGUoKSkuaW52ZXJ0KFswLDBdKSk7cmV0dXJuIGMobnVsbD09cz9bW2FbMF0tbixhWzFdLW5dLFthWzBdK24sYVsxXStuXV06dD09PXZvP1tbTWF0aC5tYXgoYVswXS1uLHMpLGVdLFtNYXRoLm1pbihhWzBdK24sciksaV1dOltbcyxNYXRoLm1heChhWzFdLW4sZSldLFtyLE1hdGgubWluKGFbMV0rbixpKV1dKX12YXIgZSxyLGksbz1hbyh0KSxhPW8uY2VudGVyLHU9by5zY2FsZSxmPW8udHJhbnNsYXRlLGM9by5jbGlwRXh0ZW50LHM9bnVsbDtyZXR1cm4gby5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odSh0KSxuKCkpOnUoKX0sby50cmFuc2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGYodCksbigpKTpmKCl9LG8uY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhKHQpLG4oKSk6YSgpfSxvLmNsaXBFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/cz1lPXI9aT1udWxsOihzPSt0WzBdWzBdLGU9K3RbMF1bMV0scj0rdFsxXVswXSxpPSt0WzFdWzFdKSxuKCkpOm51bGw9PXM/bnVsbDpbW3MsZV0sW3IsaV1dfSxuKCl9ZnVuY3Rpb24geW8odCl7cmV0dXJuIGNwKChWZCt0KS8yKX1mdW5jdGlvbiBfbyh0LG4pe2Z1bmN0aW9uIGUodCxuKXtvPjA/bjwtVmQrSGQmJihuPS1WZCtIZCk6bj5WZC1IZCYmKG49VmQtSGQpO3ZhciBlPW8vb3AoeW8obiksaSk7cmV0dXJuW2UqYXAoaSp0KSxvLWUqbnAoaSp0KV19dmFyIHI9bnAodCksaT10PT09bj9hcCh0KTppcChyL25wKG4pKS9pcCh5byhuKS95byh0KSksbz1yKm9wKHlvKHQpLGkpL2k7cmV0dXJuIGk/KGUuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7dmFyIGU9by1uLHI9dXAoaSkqZnAodCp0K2UqZSk7cmV0dXJuW3RwKHQsSmQoZSkpL2kqdXAoZSksMipLZChvcChvL3IsMS9pKSktVmRdfSxlKTp2b31mdW5jdGlvbiBibyh0LG4pe3JldHVyblt0LG5dfWZ1bmN0aW9uIG1vKHQsbil7ZnVuY3Rpb24gZSh0LG4pe3ZhciBlPW8tbixyPWkqdDtyZXR1cm5bZSphcChyKSxvLWUqbnAocildfXZhciByPW5wKHQpLGk9dD09PW4/YXAodCk6KHItbnAobikpLyhuLXQpLG89ci9pK3Q7cmV0dXJuIEpkKGkpPEhkP2JvOihlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlPW8tbjtyZXR1cm5bdHAodCxKZChlKSkvaSp1cChlKSxvLXVwKGkpKmZwKHQqdCtlKmUpXX0sZSl9ZnVuY3Rpb24geG8odCxuKXt2YXIgZT1ucChuKSxyPW5wKHQpKmU7cmV0dXJuW2UqYXAodCkvcixhcChuKS9yXX1mdW5jdGlvbiB3byh0LG4sZSxyKXtyZXR1cm4gMT09PXQmJjE9PT1uJiYwPT09ZSYmMD09PXI/emk6UWkoe3BvaW50OmZ1bmN0aW9uKGksbyl7dGhpcy5zdHJlYW0ucG9pbnQoaSp0K2UsbypuK3IpfX0pfWZ1bmN0aW9uIE1vKHQsbil7dmFyIGU9bipuLHI9ZSplO3JldHVyblt0KiguODcwNy0uMTMxOTc5KmUrcioociooLjAwMzk3MSplLS4wMDE1MjkqciktLjAxMzc5MSkpLG4qKDEuMDA3MjI2K2UqKC4wMTUwODUrciooLjAyODg3NCplLS4wNDQ0NzUtLjAwNTkxNipyKSkpXX1mdW5jdGlvbiBBbyh0LG4pe3JldHVybltucChuKSphcCh0KSxhcChuKV19ZnVuY3Rpb24gVG8odCxuKXt2YXIgZT1ucChuKSxyPTErbnAodCkqZTtyZXR1cm5bZSphcCh0KS9yLGFwKG4pL3JdfWZ1bmN0aW9uIE5vKHQsbil7cmV0dXJuW2lwKGNwKChWZCtuKS8yKSksLXRdfWZ1bmN0aW9uIFNvKHQsbil7cmV0dXJuIHQucGFyZW50PT09bi5wYXJlbnQ/MToyfWZ1bmN0aW9uIEVvKHQsbil7cmV0dXJuIHQrbi54fWZ1bmN0aW9uIGtvKHQsbil7cmV0dXJuIE1hdGgubWF4KHQsbi55KX1mdW5jdGlvbiBDbyh0KXt2YXIgbj0wLGU9dC5jaGlsZHJlbixyPWUmJmUubGVuZ3RoO2lmKHIpZm9yKDstLXI+PTA7KW4rPWVbcl0udmFsdWU7ZWxzZSBuPTE7dC52YWx1ZT1ufWZ1bmN0aW9uIFBvKHQsbil7dmFyIGUscixpLG8sYSx1PW5ldyBEbyh0KSxmPSt0LnZhbHVlJiYodS52YWx1ZT10LnZhbHVlKSxjPVt1XTtmb3IobnVsbD09biYmKG49em8pO2U9Yy5wb3AoKTspaWYoZiYmKGUudmFsdWU9K2UuZGF0YS52YWx1ZSksKGk9bihlLmRhdGEpKSYmKGE9aS5sZW5ndGgpKWZvcihlLmNoaWxkcmVuPW5ldyBBcnJheShhKSxvPWEtMTtvPj0wOy0tbyljLnB1c2gocj1lLmNoaWxkcmVuW29dPW5ldyBEbyhpW29dKSksci5wYXJlbnQ9ZSxyLmRlcHRoPWUuZGVwdGgrMTtyZXR1cm4gdS5lYWNoQmVmb3JlKExvKX1mdW5jdGlvbiB6byh0KXtyZXR1cm4gdC5jaGlsZHJlbn1mdW5jdGlvbiBSbyh0KXt0LmRhdGE9dC5kYXRhLmRhdGF9ZnVuY3Rpb24gTG8odCl7dmFyIG49MDtkb3t0LmhlaWdodD1ufXdoaWxlKCh0PXQucGFyZW50KSYmdC5oZWlnaHQ8KytuKX1mdW5jdGlvbiBEbyh0KXt0aGlzLmRhdGE9dCx0aGlzLmRlcHRoPXRoaXMuaGVpZ2h0PTAsdGhpcy5wYXJlbnQ9bnVsbH1mdW5jdGlvbiBVbyh0KXtmb3IodmFyIG4sZSxyPTAsaT0odD1mdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyPXQubGVuZ3RoO3I7KWU9TWF0aC5yYW5kb20oKSpyLS18MCxuPXRbcl0sdFtyXT10W2VdLHRbZV09bjtyZXR1cm4gdH0odnYuY2FsbCh0KSkpLmxlbmd0aCxvPVtdO3I8aTspbj10W3JdLGUmJk9vKGUsbik/KytyOihlPWZ1bmN0aW9uKHQpe3N3aXRjaCh0Lmxlbmd0aCl7Y2FzZSAxOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm57eDp0LngseTp0Lnkscjp0LnJ9fSh0WzBdKTtjYXNlIDI6cmV0dXJuIEJvKHRbMF0sdFsxXSk7Y2FzZSAzOnJldHVybiBGbyh0WzBdLHRbMV0sdFsyXSl9fShvPWZ1bmN0aW9uKHQsbil7dmFyIGUscjtpZihZbyhuLHQpKXJldHVybltuXTtmb3IoZT0wO2U8dC5sZW5ndGg7KytlKWlmKHFvKG4sdFtlXSkmJllvKEJvKHRbZV0sbiksdCkpcmV0dXJuW3RbZV0sbl07Zm9yKGU9MDtlPHQubGVuZ3RoLTE7KytlKWZvcihyPWUrMTtyPHQubGVuZ3RoOysrcilpZihxbyhCbyh0W2VdLHRbcl0pLG4pJiZxbyhCbyh0W2VdLG4pLHRbcl0pJiZxbyhCbyh0W3JdLG4pLHRbZV0pJiZZbyhGbyh0W2VdLHRbcl0sbiksdCkpcmV0dXJuW3RbZV0sdFtyXSxuXTt0aHJvdyBuZXcgRXJyb3J9KG8sbikpLHI9MCk7cmV0dXJuIGV9ZnVuY3Rpb24gcW8odCxuKXt2YXIgZT10LnItbi5yLHI9bi54LXQueCxpPW4ueS10Lnk7cmV0dXJuIGU8MHx8ZSplPHIqcitpKml9ZnVuY3Rpb24gT28odCxuKXt2YXIgZT10LnItbi5yKzFlLTYscj1uLngtdC54LGk9bi55LXQueTtyZXR1cm4gZT4wJiZlKmU+cipyK2kqaX1mdW5jdGlvbiBZbyh0LG4pe2Zvcih2YXIgZT0wO2U8bi5sZW5ndGg7KytlKWlmKCFPbyh0LG5bZV0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIEJvKHQsbil7dmFyIGU9dC54LHI9dC55LGk9dC5yLG89bi54LGE9bi55LHU9bi5yLGY9by1lLGM9YS1yLHM9dS1pLGw9TWF0aC5zcXJ0KGYqZitjKmMpO3JldHVybnt4OihlK28rZi9sKnMpLzIseToocithK2MvbCpzKS8yLHI6KGwraSt1KS8yfX1mdW5jdGlvbiBGbyh0LG4sZSl7dmFyIHI9dC54LGk9dC55LG89dC5yLGE9bi54LHU9bi55LGY9bi5yLGM9ZS54LHM9ZS55LGw9ZS5yLGg9ci1hLGQ9ci1jLHA9aS11LHY9aS1zLGc9Zi1vLHk9bC1vLF89cipyK2kqaS1vKm8sYj1fLWEqYS11KnUrZipmLG09Xy1jKmMtcypzK2wqbCx4PWQqcC1oKnYsdz0ocCptLXYqYikvKDIqeCktcixNPSh2KmctcCp5KS94LEE9KGQqYi1oKm0pLygyKngpLWksVD0oaCp5LWQqZykveCxOPU0qTStUKlQtMSxTPTIqKG8rdypNK0EqVCksRT13KncrQSpBLW8qbyxrPS0oTj8oUytNYXRoLnNxcnQoUypTLTQqTipFKSkvKDIqTik6RS9TKTtyZXR1cm57eDpyK3crTSprLHk6aStBK1QqayxyOmt9fWZ1bmN0aW9uIElvKHQsbixlKXt2YXIgcixpLG8sYSx1PXQueC1uLngsZj10Lnktbi55LGM9dSp1K2YqZjtjPyhpPW4ucitlLnIsaSo9aSxhPXQucitlLnIsaT4oYSo9YSk/KHI9KGMrYS1pKS8oMipjKSxvPU1hdGguc3FydChNYXRoLm1heCgwLGEvYy1yKnIpKSxlLng9dC54LXIqdS1vKmYsZS55PXQueS1yKmYrbyp1KToocj0oYytpLWEpLygyKmMpLG89TWF0aC5zcXJ0KE1hdGgubWF4KDAsaS9jLXIqcikpLGUueD1uLngrcip1LW8qZixlLnk9bi55K3IqZitvKnUpKTooZS54PW4ueCtlLnIsZS55PW4ueSl9ZnVuY3Rpb24gam8odCxuKXt2YXIgZT10LnIrbi5yLTFlLTYscj1uLngtdC54LGk9bi55LXQueTtyZXR1cm4gZT4wJiZlKmU+cipyK2kqaX1mdW5jdGlvbiBIbyh0KXt2YXIgbj10Ll8sZT10Lm5leHQuXyxyPW4ucitlLnIsaT0obi54KmUucitlLngqbi5yKS9yLG89KG4ueSplLnIrZS55Km4ucikvcjtyZXR1cm4gaSppK28qb31mdW5jdGlvbiBYbyh0KXt0aGlzLl89dCx0aGlzLm5leHQ9bnVsbCx0aGlzLnByZXZpb3VzPW51bGx9ZnVuY3Rpb24gR28odCl7aWYoIShpPXQubGVuZ3RoKSlyZXR1cm4gMDt2YXIgbixlLHIsaSxvLGEsdSxmLGMscyxsO2lmKG49dFswXSxuLng9MCxuLnk9MCwhKGk+MSkpcmV0dXJuIG4ucjtpZihlPXRbMV0sbi54PS1lLnIsZS54PW4ucixlLnk9MCwhKGk+MikpcmV0dXJuIG4ucitlLnI7SW8oZSxuLHI9dFsyXSksbj1uZXcgWG8obiksZT1uZXcgWG8oZSkscj1uZXcgWG8ociksbi5uZXh0PXIucHJldmlvdXM9ZSxlLm5leHQ9bi5wcmV2aW91cz1yLHIubmV4dD1lLnByZXZpb3VzPW47dDpmb3IodT0zO3U8aTsrK3Upe0lvKG4uXyxlLl8scj10W3VdKSxyPW5ldyBYbyhyKSxmPWUubmV4dCxjPW4ucHJldmlvdXMscz1lLl8ucixsPW4uXy5yO2Rve2lmKHM8PWwpe2lmKGpvKGYuXyxyLl8pKXtlPWYsbi5uZXh0PWUsZS5wcmV2aW91cz1uLC0tdTtjb250aW51ZSB0fXMrPWYuXy5yLGY9Zi5uZXh0fWVsc2V7aWYoam8oYy5fLHIuXykpeyhuPWMpLm5leHQ9ZSxlLnByZXZpb3VzPW4sLS11O2NvbnRpbnVlIHR9bCs9Yy5fLnIsYz1jLnByZXZpb3VzfX13aGlsZShmIT09Yy5uZXh0KTtmb3Ioci5wcmV2aW91cz1uLHIubmV4dD1lLG4ubmV4dD1lLnByZXZpb3VzPWU9cixvPUhvKG4pOyhyPXIubmV4dCkhPT1lOykoYT1IbyhyKSk8byYmKG49cixvPWEpO2U9bi5uZXh0fWZvcihuPVtlLl9dLHI9ZTsocj1yLm5leHQpIT09ZTspbi5wdXNoKHIuXyk7Zm9yKHI9VW8obiksdT0wO3U8aTsrK3Upbj10W3VdLG4ueC09ci54LG4ueS09ci55O3JldHVybiByLnJ9ZnVuY3Rpb24gVm8odCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHR9ZnVuY3Rpb24gJG8oKXtyZXR1cm4gMH1mdW5jdGlvbiBXbyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gWm8odCl7cmV0dXJuIE1hdGguc3FydCh0LnZhbHVlKX1mdW5jdGlvbiBRbyh0KXtyZXR1cm4gZnVuY3Rpb24obil7bi5jaGlsZHJlbnx8KG4ucj1NYXRoLm1heCgwLCt0KG4pfHwwKSl9fWZ1bmN0aW9uIEpvKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKHI9ZS5jaGlsZHJlbil7dmFyIHIsaSxvLGE9ci5sZW5ndGgsdT10KGUpKm58fDA7aWYodSlmb3IoaT0wO2k8YTsrK2kpcltpXS5yKz11O2lmKG89R28ociksdSlmb3IoaT0wO2k8YTsrK2kpcltpXS5yLT11O2Uucj1vK3V9fX1mdW5jdGlvbiBLbyh0KXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGU9bi5wYXJlbnQ7bi5yKj10LGUmJihuLng9ZS54K3Qqbi54LG4ueT1lLnkrdCpuLnkpfX1mdW5jdGlvbiB0YSh0KXt0LngwPU1hdGgucm91bmQodC54MCksdC55MD1NYXRoLnJvdW5kKHQueTApLHQueDE9TWF0aC5yb3VuZCh0LngxKSx0LnkxPU1hdGgucm91bmQodC55MSl9ZnVuY3Rpb24gbmEodCxuLGUscixpKXtmb3IodmFyIG8sYT10LmNoaWxkcmVuLHU9LTEsZj1hLmxlbmd0aCxjPXQudmFsdWUmJihyLW4pL3QudmFsdWU7Kyt1PGY7KShvPWFbdV0pLnkwPWUsby55MT1pLG8ueDA9bixvLngxPW4rPW8udmFsdWUqY31mdW5jdGlvbiBlYSh0KXtyZXR1cm4gdC5pZH1mdW5jdGlvbiByYSh0KXtyZXR1cm4gdC5wYXJlbnRJZH1mdW5jdGlvbiBpYSh0LG4pe3JldHVybiB0LnBhcmVudD09PW4ucGFyZW50PzE6Mn1mdW5jdGlvbiBvYSh0KXt2YXIgbj10LmNoaWxkcmVuO3JldHVybiBuP25bMF06dC50fWZ1bmN0aW9uIGFhKHQpe3ZhciBuPXQuY2hpbGRyZW47cmV0dXJuIG4/bltuLmxlbmd0aC0xXTp0LnR9ZnVuY3Rpb24gdWEodCxuLGUpe3ZhciByPWUvKG4uaS10LmkpO24uYy09cixuLnMrPWUsdC5jKz1yLG4ueis9ZSxuLm0rPWV9ZnVuY3Rpb24gZmEodCxuLGUpe3JldHVybiB0LmEucGFyZW50PT09bi5wYXJlbnQ/dC5hOmV9ZnVuY3Rpb24gY2EodCxuKXt0aGlzLl89dCx0aGlzLnBhcmVudD1udWxsLHRoaXMuY2hpbGRyZW49bnVsbCx0aGlzLkE9bnVsbCx0aGlzLmE9dGhpcyx0aGlzLno9MCx0aGlzLm09MCx0aGlzLmM9MCx0aGlzLnM9MCx0aGlzLnQ9bnVsbCx0aGlzLmk9bn1mdW5jdGlvbiBzYSh0LG4sZSxyLGkpe2Zvcih2YXIgbyxhPXQuY2hpbGRyZW4sdT0tMSxmPWEubGVuZ3RoLGM9dC52YWx1ZSYmKGktZSkvdC52YWx1ZTsrK3U8ZjspKG89YVt1XSkueDA9bixvLngxPXIsby55MD1lLG8ueTE9ZSs9by52YWx1ZSpjfWZ1bmN0aW9uIGxhKHQsbixlLHIsaSxvKXtmb3IodmFyIGEsdSxmLGMscyxsLGgsZCxwLHYsZyx5PVtdLF89bi5jaGlsZHJlbixiPTAsbT0wLHg9Xy5sZW5ndGgsdz1uLnZhbHVlO2I8eDspe2Y9aS1lLGM9by1yO2Rve3M9X1ttKytdLnZhbHVlfXdoaWxlKCFzJiZtPHgpO2ZvcihsPWg9cyxnPXMqcyoodj1NYXRoLm1heChjL2YsZi9jKS8odyp0KSkscD1NYXRoLm1heChoL2csZy9sKTttPHg7KyttKXtpZihzKz11PV9bbV0udmFsdWUsdTxsJiYobD11KSx1PmgmJihoPXUpLGc9cypzKnYsKGQ9TWF0aC5tYXgoaC9nLGcvbCkpPnApe3MtPXU7YnJlYWt9cD1kfXkucHVzaChhPXt2YWx1ZTpzLGRpY2U6ZjxjLGNoaWxkcmVuOl8uc2xpY2UoYixtKX0pLGEuZGljZT9uYShhLGUscixpLHc/cis9YypzL3c6byk6c2EoYSxlLHIsdz9lKz1mKnMvdzppLG8pLHctPXMsYj1tfXJldHVybiB5fWZ1bmN0aW9uIGhhKHQsbixlKXtyZXR1cm4oblswXS10WzBdKSooZVsxXS10WzFdKS0oblsxXS10WzFdKSooZVswXS10WzBdKX1mdW5jdGlvbiBkYSh0LG4pe3JldHVybiB0WzBdLW5bMF18fHRbMV0tblsxXX1mdW5jdGlvbiBwYSh0KXtmb3IodmFyIG49dC5sZW5ndGgsZT1bMCwxXSxyPTIsaT0yO2k8bjsrK2kpe2Zvcig7cj4xJiZoYSh0W2Vbci0yXV0sdFtlW3ItMV1dLHRbaV0pPD0wOyktLXI7ZVtyKytdPWl9cmV0dXJuIGUuc2xpY2UoMCxyKX1mdW5jdGlvbiB2YSgpe3JldHVybiBNYXRoLnJhbmRvbSgpfWZ1bmN0aW9uIGdhKHQpe2Z1bmN0aW9uIG4obil7dmFyIG89bitcIlwiLGE9ZS5nZXQobyk7aWYoIWEpe2lmKGkhPT1QdilyZXR1cm4gaTtlLnNldChvLGE9ci5wdXNoKG4pKX1yZXR1cm4gdFsoYS0xKSV0Lmxlbmd0aF19dmFyIGU9aGUoKSxyPVtdLGk9UHY7cmV0dXJuIHQ9bnVsbD09dD9bXTpDdi5jYWxsKHQpLG4uZG9tYWluPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiByLnNsaWNlKCk7cj1bXSxlPWhlKCk7Zm9yKHZhciBpLG8sYT0tMSx1PXQubGVuZ3RoOysrYTx1OyllLmhhcyhvPShpPXRbYV0pK1wiXCIpfHxlLnNldChvLHIucHVzaChpKSk7cmV0dXJuIG59LG4ucmFuZ2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9Q3YuY2FsbChlKSxuKTp0LnNsaWNlKCl9LG4udW5rbm93bj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10LG4pOml9LG4uY29weT1mdW5jdGlvbigpe3JldHVybiBnYSgpLmRvbWFpbihyKS5yYW5nZSh0KS51bmtub3duKGkpfSxufWZ1bmN0aW9uIHlhKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PWkoKS5sZW5ndGgscj1hWzFdPGFbMF0saD1hW3ItMF0sZD1hWzEtcl07bj0oZC1oKS9NYXRoLm1heCgxLHQtZisyKmMpLHUmJihuPU1hdGguZmxvb3IobikpLGgrPShkLWgtbioodC1mKSkqbCxlPW4qKDEtZiksdSYmKGg9TWF0aC5yb3VuZChoKSxlPU1hdGgucm91bmQoZSkpO3ZhciBwPXModCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBoK24qdH0pO3JldHVybiBvKHI/cC5yZXZlcnNlKCk6cCl9dmFyIG4sZSxyPWdhKCkudW5rbm93bih2b2lkIDApLGk9ci5kb21haW4sbz1yLnJhbmdlLGE9WzAsMV0sdT0hMSxmPTAsYz0wLGw9LjU7cmV0dXJuIGRlbGV0ZSByLnVua25vd24sci5kb21haW49ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGkobiksdCgpKTppKCl9LHIucmFuZ2U9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9WytuWzBdLCtuWzFdXSx0KCkpOmEuc2xpY2UoKX0sci5yYW5nZVJvdW5kPWZ1bmN0aW9uKG4pe3JldHVybiBhPVsrblswXSwrblsxXV0sdT0hMCx0KCl9LHIuYmFuZHdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIGV9LHIuc3RlcD1mdW5jdGlvbigpe3JldHVybiBufSxyLnJvdW5kPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSEhbix0KCkpOnV9LHIucGFkZGluZz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1jPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuKSksdCgpKTpmfSxyLnBhZGRpbmdJbm5lcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1NYXRoLm1heCgwLE1hdGgubWluKDEsbikpLHQoKSk6Zn0sci5wYWRkaW5nT3V0ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4pKSx0KCkpOmN9LHIuYWxpZ249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4pKSx0KCkpOmx9LHIuY29weT1mdW5jdGlvbigpe3JldHVybiB5YSgpLmRvbWFpbihpKCkpLnJhbmdlKGEpLnJvdW5kKHUpLnBhZGRpbmdJbm5lcihmKS5wYWRkaW5nT3V0ZXIoYykuYWxpZ24obCl9LHQoKX1mdW5jdGlvbiBfYSh0KXt2YXIgbj10LmNvcHk7cmV0dXJuIHQucGFkZGluZz10LnBhZGRpbmdPdXRlcixkZWxldGUgdC5wYWRkaW5nSW5uZXIsZGVsZXRlIHQucGFkZGluZ091dGVyLHQuY29weT1mdW5jdGlvbigpe3JldHVybiBfYShuKCkpfSx0fWZ1bmN0aW9uIGJhKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBtYSh0KXtyZXR1cm4rdH1mdW5jdGlvbiB4YSh0LG4pe3JldHVybihuLT10PSt0KT9mdW5jdGlvbihlKXtyZXR1cm4oZS10KS9ufTpiYShuKX1mdW5jdGlvbiB3YSh0LG4sZSxyKXt2YXIgaT10WzBdLG89dFsxXSxhPW5bMF0sdT1uWzFdO3JldHVybiBvPGk/KGk9ZShvLGkpLGE9cih1LGEpKTooaT1lKGksbyksYT1yKGEsdSkpLGZ1bmN0aW9uKHQpe3JldHVybiBhKGkodCkpfX1mdW5jdGlvbiBNYSh0LG4sZSxyKXt2YXIgaT1NYXRoLm1pbih0Lmxlbmd0aCxuLmxlbmd0aCktMSxvPW5ldyBBcnJheShpKSxhPW5ldyBBcnJheShpKSx1PS0xO2Zvcih0W2ldPHRbMF0mJih0PXQuc2xpY2UoKS5yZXZlcnNlKCksbj1uLnNsaWNlKCkucmV2ZXJzZSgpKTsrK3U8aTspb1t1XT1lKHRbdV0sdFt1KzFdKSxhW3VdPXIoblt1XSxuW3UrMV0pO3JldHVybiBmdW5jdGlvbihuKXt2YXIgZT1LYyh0LG4sMSxpKS0xO3JldHVybiBhW2VdKG9bZV0obikpfX1mdW5jdGlvbiBBYSh0LG4pe3JldHVybiBuLmRvbWFpbih0LmRvbWFpbigpKS5yYW5nZSh0LnJhbmdlKCkpLmludGVycG9sYXRlKHQuaW50ZXJwb2xhdGUoKSkuY2xhbXAodC5jbGFtcCgpKX1mdW5jdGlvbiBUYSh0LG4pe2Z1bmN0aW9uIGUoKXtyZXR1cm4gaT1NYXRoLm1pbih1Lmxlbmd0aCxmLmxlbmd0aCk+Mj9NYTp3YSxvPWE9bnVsbCxyfWZ1bmN0aW9uIHIobil7cmV0dXJuKG98fChvPWkodSxmLHM/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7dmFyIHI9dChuPStuLGU9K2UpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gdDw9bj8wOnQ+PWU/MTpyKHQpfX19KHQpOnQsYykpKSgrbil9dmFyIGksbyxhLHU9enYsZj16dixjPWRuLHM9ITE7cmV0dXJuIHIuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybihhfHwoYT1pKGYsdSx4YSxzP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3ZhciByPXQobj0rbixlPStlKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ8PTA/bjp0Pj0xP2U6cih0KX19fShuKTpuKSkpKCt0KX0sci5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9a3YuY2FsbCh0LG1hKSxlKCkpOnUuc2xpY2UoKX0sci5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1Ddi5jYWxsKHQpLGUoKSk6Zi5zbGljZSgpfSxyLnJhbmdlUm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGY9Q3YuY2FsbCh0KSxjPXBuLGUoKX0sci5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0hIXQsZSgpKTpzfSxyLmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPXQsZSgpKTpjfSxlKCl9ZnVuY3Rpb24gTmEobil7dmFyIGU9bi5kb21haW47cmV0dXJuIG4udGlja3M9ZnVuY3Rpb24odCl7dmFyIG49ZSgpO3JldHVybiBsKG5bMF0sbltuLmxlbmd0aC0xXSxudWxsPT10PzEwOnQpfSxuLnRpY2tGb3JtYXQ9ZnVuY3Rpb24obixyKXtyZXR1cm4gZnVuY3Rpb24obixlLHIpe3ZhciBpLG89blswXSxhPW5bbi5sZW5ndGgtMV0sdT1kKG8sYSxudWxsPT1lPzEwOmUpO3N3aXRjaCgocj10cihudWxsPT1yP1wiLGZcIjpyKSkudHlwZSl7Y2FzZVwic1wiOnZhciBmPU1hdGgubWF4KE1hdGguYWJzKG8pLE1hdGguYWJzKGEpKTtyZXR1cm4gbnVsbCE9ci5wcmVjaXNpb258fGlzTmFOKGk9dXIodSxmKSl8fChyLnByZWNpc2lvbj1pKSx0LmZvcm1hdFByZWZpeChyLGYpO2Nhc2VcIlwiOmNhc2VcImVcIjpjYXNlXCJnXCI6Y2FzZVwicFwiOmNhc2VcInJcIjpudWxsIT1yLnByZWNpc2lvbnx8aXNOYU4oaT1mcih1LE1hdGgubWF4KE1hdGguYWJzKG8pLE1hdGguYWJzKGEpKSkpfHwoci5wcmVjaXNpb249aS0oXCJlXCI9PT1yLnR5cGUpKTticmVhaztjYXNlXCJmXCI6Y2FzZVwiJVwiOm51bGwhPXIucHJlY2lzaW9ufHxpc05hTihpPWFyKHUpKXx8KHIucHJlY2lzaW9uPWktMiooXCIlXCI9PT1yLnR5cGUpKX1yZXR1cm4gdC5mb3JtYXQocil9KGUoKSxuLHIpfSxuLm5pY2U9ZnVuY3Rpb24odCl7bnVsbD09dCYmKHQ9MTApO3ZhciByLGk9ZSgpLG89MCxhPWkubGVuZ3RoLTEsdT1pW29dLGY9aVthXTtyZXR1cm4gZjx1JiYocj11LHU9ZixmPXIscj1vLG89YSxhPXIpLChyPWgodSxmLHQpKT4wP3I9aCh1PU1hdGguZmxvb3IodS9yKSpyLGY9TWF0aC5jZWlsKGYvcikqcix0KTpyPDAmJihyPWgodT1NYXRoLmNlaWwodSpyKS9yLGY9TWF0aC5mbG9vcihmKnIpL3IsdCkpLHI+MD8oaVtvXT1NYXRoLmZsb29yKHUvcikqcixpW2FdPU1hdGguY2VpbChmL3IpKnIsZShpKSk6cjwwJiYoaVtvXT1NYXRoLmNlaWwodSpyKS9yLGlbYV09TWF0aC5mbG9vcihmKnIpL3IsZShpKSksbn0sbn1mdW5jdGlvbiBTYSgpe3ZhciB0PVRhKHhhLHNuKTtyZXR1cm4gdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEFhKHQsU2EoKSl9LE5hKHQpfWZ1bmN0aW9uIEVhKCl7ZnVuY3Rpb24gdCh0KXtyZXR1cm4rdH12YXIgbj1bMCwxXTtyZXR1cm4gdC5pbnZlcnQ9dCx0LmRvbWFpbj10LnJhbmdlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWt2LmNhbGwoZSxtYSksdCk6bi5zbGljZSgpfSx0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gRWEoKS5kb21haW4obil9LE5hKHQpfWZ1bmN0aW9uIGthKHQsbil7dmFyIGUscj0wLGk9KHQ9dC5zbGljZSgpKS5sZW5ndGgtMSxvPXRbcl0sYT10W2ldO3JldHVybiBhPG8mJihlPXIscj1pLGk9ZSxlPW8sbz1hLGE9ZSksdFtyXT1uLmZsb29yKG8pLHRbaV09bi5jZWlsKGEpLHR9ZnVuY3Rpb24gQ2EodCxuKXtyZXR1cm4obj1NYXRoLmxvZyhuL3QpKT9mdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZS90KS9ufTpiYShuKX1mdW5jdGlvbiBQYSh0LG4pe3JldHVybiB0PDA/ZnVuY3Rpb24oZSl7cmV0dXJuLU1hdGgucG93KC1uLGUpKk1hdGgucG93KC10LDEtZSl9OmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLnBvdyhuLGUpKk1hdGgucG93KHQsMS1lKX19ZnVuY3Rpb24gemEodCl7cmV0dXJuIGlzRmluaXRlKHQpPysoXCIxZVwiK3QpOnQ8MD8wOnR9ZnVuY3Rpb24gUmEodCl7cmV0dXJuIDEwPT09dD96YTp0PT09TWF0aC5FP01hdGguZXhwOmZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLnBvdyh0LG4pfX1mdW5jdGlvbiBMYSh0KXtyZXR1cm4gdD09PU1hdGguRT9NYXRoLmxvZzoxMD09PXQmJk1hdGgubG9nMTB8fDI9PT10JiZNYXRoLmxvZzJ8fCh0PU1hdGgubG9nKHQpLGZ1bmN0aW9uKG4pe3JldHVybiBNYXRoLmxvZyhuKS90fSl9ZnVuY3Rpb24gRGEodCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybi10KC1uKX19ZnVuY3Rpb24gVWEoKXtmdW5jdGlvbiBuKCl7cmV0dXJuIG89TGEoaSksYT1SYShpKSxyKClbMF08MCYmKG89RGEobyksYT1EYShhKSksZX12YXIgZT1UYShDYSxQYSkuZG9tYWluKFsxLDEwXSkscj1lLmRvbWFpbixpPTEwLG89TGEoMTApLGE9UmEoMTApO3JldHVybiBlLmJhc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K3QsbigpKTppfSxlLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocih0KSxuKCkpOnIoKX0sZS50aWNrcz1mdW5jdGlvbih0KXt2YXIgbixlPXIoKSx1PWVbMF0sZj1lW2UubGVuZ3RoLTFdOyhuPWY8dSkmJihkPXUsdT1mLGY9ZCk7dmFyIGMscyxoLGQ9byh1KSxwPW8oZiksdj1udWxsPT10PzEwOit0LGc9W107aWYoIShpJTEpJiZwLWQ8dil7aWYoZD1NYXRoLnJvdW5kKGQpLTEscD1NYXRoLnJvdW5kKHApKzEsdT4wKXtmb3IoO2Q8cDsrK2QpZm9yKHM9MSxjPWEoZCk7czxpOysrcylpZighKChoPWMqcyk8dSkpe2lmKGg+ZilicmVhaztnLnB1c2goaCl9fWVsc2UgZm9yKDtkPHA7KytkKWZvcihzPWktMSxjPWEoZCk7cz49MTstLXMpaWYoISgoaD1jKnMpPHUpKXtpZihoPmYpYnJlYWs7Zy5wdXNoKGgpfX1lbHNlIGc9bChkLHAsTWF0aC5taW4ocC1kLHYpKS5tYXAoYSk7cmV0dXJuIG4/Zy5yZXZlcnNlKCk6Z30sZS50aWNrRm9ybWF0PWZ1bmN0aW9uKG4scil7aWYobnVsbD09ciYmKHI9MTA9PT1pP1wiLjBlXCI6XCIsXCIpLFwiZnVuY3Rpb25cIiE9dHlwZW9mIHImJihyPXQuZm9ybWF0KHIpKSxuPT09MS8wKXJldHVybiByO251bGw9PW4mJihuPTEwKTt2YXIgdT1NYXRoLm1heCgxLGkqbi9lLnRpY2tzKCkubGVuZ3RoKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49dC9hKE1hdGgucm91bmQobyh0KSkpO3JldHVybiBuKmk8aS0uNSYmKG4qPWkpLG48PXU/cih0KTpcIlwifX0sZS5uaWNlPWZ1bmN0aW9uKCl7cmV0dXJuIHIoa2EocigpLHtmbG9vcjpmdW5jdGlvbih0KXtyZXR1cm4gYShNYXRoLmZsb29yKG8odCkpKX0sY2VpbDpmdW5jdGlvbih0KXtyZXR1cm4gYShNYXRoLmNlaWwobyh0KSkpfX0pKX0sZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEFhKGUsVWEoKS5iYXNlKGkpKX0sZX1mdW5jdGlvbiBxYSh0LG4pe3JldHVybiB0PDA/LU1hdGgucG93KC10LG4pOk1hdGgucG93KHQsbil9ZnVuY3Rpb24gT2EoKXt2YXIgdD0xLG49VGEoZnVuY3Rpb24obixlKXtyZXR1cm4oZT1xYShlLHQpLShuPXFhKG4sdCkpKT9mdW5jdGlvbihyKXtyZXR1cm4ocWEocix0KS1uKS9lfTpiYShlKX0sZnVuY3Rpb24obixlKXtyZXR1cm4gZT1xYShlLHQpLShuPXFhKG4sdCkpLGZ1bmN0aW9uKHIpe3JldHVybiBxYShuK2UqciwxL3QpfX0pLGU9bi5kb21haW47cmV0dXJuIG4uZXhwb25lbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K24sZShlKCkpKTp0fSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQWEobixPYSgpLmV4cG9uZW50KHQpKX0sTmEobil9ZnVuY3Rpb24gWWEoKXtmdW5jdGlvbiB0KCl7dmFyIHQ9MCxuPU1hdGgubWF4KDEsaS5sZW5ndGgpO2ZvcihvPW5ldyBBcnJheShuLTEpOysrdDxuOylvW3QtMV09dihyLHQvbik7cmV0dXJuIGV9ZnVuY3Rpb24gZSh0KXtpZighaXNOYU4odD0rdCkpcmV0dXJuIGlbS2Mobyx0KV19dmFyIHI9W10saT1bXSxvPVtdO3JldHVybiBlLmludmVydEV4dGVudD1mdW5jdGlvbih0KXt2YXIgbj1pLmluZGV4T2YodCk7cmV0dXJuIG48MD9bTmFOLE5hTl06W24+MD9vW24tMV06clswXSxuPG8ubGVuZ3RoP29bbl06cltyLmxlbmd0aC0xXV19LGUuZG9tYWluPWZ1bmN0aW9uKGUpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiByLnNsaWNlKCk7cj1bXTtmb3IodmFyIGksbz0wLGE9ZS5sZW5ndGg7bzxhOysrbyludWxsPT0oaT1lW29dKXx8aXNOYU4oaT0raSl8fHIucHVzaChpKTtyZXR1cm4gci5zb3J0KG4pLHQoKX0sZS5yYW5nZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1Ddi5jYWxsKG4pLHQoKSk6aS5zbGljZSgpfSxlLnF1YW50aWxlcz1mdW5jdGlvbigpe3JldHVybiBvLnNsaWNlKCl9LGUuY29weT1mdW5jdGlvbigpe3JldHVybiBZYSgpLmRvbWFpbihyKS5yYW5nZShpKX0sZX1mdW5jdGlvbiBCYSgpe2Z1bmN0aW9uIHQodCl7aWYodDw9dClyZXR1cm4gYVtLYyhvLHQsMCxpKV19ZnVuY3Rpb24gbigpe3ZhciBuPS0xO2ZvcihvPW5ldyBBcnJheShpKTsrK248aTspb1tuXT0oKG4rMSkqci0obi1pKSplKS8oaSsxKTtyZXR1cm4gdH12YXIgZT0wLHI9MSxpPTEsbz1bLjVdLGE9WzAsMV07cmV0dXJuIHQuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLHI9K3RbMV0sbigpKTpbZSxyXX0sdC5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0oYT1Ddi5jYWxsKHQpKS5sZW5ndGgtMSxuKCkpOmEuc2xpY2UoKX0sdC5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIG49YS5pbmRleE9mKHQpO3JldHVybiBuPDA/W05hTixOYU5dOm48MT9bZSxvWzBdXTpuPj1pP1tvW2ktMV0scl06W29bbi0xXSxvW25dXX0sdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEJhKCkuZG9tYWluKFtlLHJdKS5yYW5nZShhKX0sTmEodCl9ZnVuY3Rpb24gRmEoKXtmdW5jdGlvbiB0KHQpe2lmKHQ8PXQpcmV0dXJuIGVbS2Mobix0LDAscildfXZhciBuPVsuNV0sZT1bMCwxXSxyPTE7cmV0dXJuIHQuZG9tYWluPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPUN2LmNhbGwoaSkscj1NYXRoLm1pbihuLmxlbmd0aCxlLmxlbmd0aC0xKSx0KTpuLnNsaWNlKCl9LHQucmFuZ2U9ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9Q3YuY2FsbChpKSxyPU1hdGgubWluKG4ubGVuZ3RoLGUubGVuZ3RoLTEpLHQpOmUuc2xpY2UoKX0sdC5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIHI9ZS5pbmRleE9mKHQpO3JldHVybltuW3ItMV0sbltyXV19LHQuY29weT1mdW5jdGlvbigpe3JldHVybiBGYSgpLmRvbWFpbihuKS5yYW5nZShlKX0sdH1mdW5jdGlvbiBJYSh0LG4sZSxyKXtmdW5jdGlvbiBpKG4pe3JldHVybiB0KG49bmV3IERhdGUoK24pKSxufXJldHVybiBpLmZsb29yPWksaS5jZWlsPWZ1bmN0aW9uKGUpe3JldHVybiB0KGU9bmV3IERhdGUoZS0xKSksbihlLDEpLHQoZSksZX0saS5yb3VuZD1mdW5jdGlvbih0KXt2YXIgbj1pKHQpLGU9aS5jZWlsKHQpO3JldHVybiB0LW48ZS10P246ZX0saS5vZmZzZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0PW5ldyBEYXRlKCt0KSxudWxsPT1lPzE6TWF0aC5mbG9vcihlKSksdH0saS5yYW5nZT1mdW5jdGlvbihlLHIsbyl7dmFyIGEsdT1bXTtpZihlPWkuY2VpbChlKSxvPW51bGw9PW8/MTpNYXRoLmZsb29yKG8pLCEoZTxyJiZvPjApKXJldHVybiB1O2Rve3UucHVzaChhPW5ldyBEYXRlKCtlKSksbihlLG8pLHQoZSl9d2hpbGUoYTxlJiZlPHIpO3JldHVybiB1fSxpLmZpbHRlcj1mdW5jdGlvbihlKXtyZXR1cm4gSWEoZnVuY3Rpb24obil7aWYobj49bilmb3IoO3QobiksIWUobik7KW4uc2V0VGltZShuLTEpfSxmdW5jdGlvbih0LHIpe2lmKHQ+PXQpaWYocjwwKWZvcig7KytyPD0wOylmb3IoO24odCwtMSksIWUodCk7KTtlbHNlIGZvcig7LS1yPj0wOylmb3IoO24odCwxKSwhZSh0KTspO30pfSxlJiYoaS5jb3VudD1mdW5jdGlvbihuLHIpe3JldHVybiBSdi5zZXRUaW1lKCtuKSxMdi5zZXRUaW1lKCtyKSx0KFJ2KSx0KEx2KSxNYXRoLmZsb29yKGUoUnYsTHYpKX0saS5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP2kuZmlsdGVyKHI/ZnVuY3Rpb24obil7cmV0dXJuIHIobikldD09MH06ZnVuY3Rpb24obil7cmV0dXJuIGkuY291bnQoMCxuKSV0PT0wfSk6aTpudWxsfSksaX1mdW5jdGlvbiBqYSh0KXtyZXR1cm4gSWEoZnVuY3Rpb24obil7bi5zZXREYXRlKG4uZ2V0RGF0ZSgpLShuLmdldERheSgpKzctdCklNyksbi5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldERhdGUodC5nZXREYXRlKCkrNypuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10LShuLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSpxdikvT3Z9KX1mdW5jdGlvbiBIYSh0KXtyZXR1cm4gSWEoZnVuY3Rpb24obil7bi5zZXRVVENEYXRlKG4uZ2V0VVRDRGF0ZSgpLShuLmdldFVUQ0RheSgpKzctdCklNyksbi5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrNypuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS9Pdn0pfWZ1bmN0aW9uIFhhKHQpe2lmKDA8PXQueSYmdC55PDEwMCl7dmFyIG49bmV3IERhdGUoLTEsdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpO3JldHVybiBuLnNldEZ1bGxZZWFyKHQueSksbn1yZXR1cm4gbmV3IERhdGUodC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKX1mdW5jdGlvbiBHYSh0KXtpZigwPD10LnkmJnQueTwxMDApe3ZhciBuPW5ldyBEYXRlKERhdGUuVVRDKC0xLHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSk7cmV0dXJuIG4uc2V0VVRDRnVsbFllYXIodC55KSxufXJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh0LnksdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpKX1mdW5jdGlvbiBWYSh0KXtyZXR1cm57eTp0LG06MCxkOjEsSDowLE06MCxTOjAsTDowfX1mdW5jdGlvbiAkYSh0KXtmdW5jdGlvbiBuKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciByLGksbyxhPVtdLHU9LTEsZj0wLGM9dC5sZW5ndGg7Zm9yKGUgaW5zdGFuY2VvZiBEYXRlfHwoZT1uZXcgRGF0ZSgrZSkpOysrdTxjOykzNz09PXQuY2hhckNvZGVBdCh1KSYmKGEucHVzaCh0LnNsaWNlKGYsdSkpLG51bGwhPShpPVVnW3I9dC5jaGFyQXQoKyt1KV0pP3I9dC5jaGFyQXQoKyt1KTppPVwiZVwiPT09cj9cIiBcIjpcIjBcIiwobz1uW3JdKSYmKHI9byhlLGkpKSxhLnB1c2gociksZj11KzEpO3JldHVybiBhLnB1c2godC5zbGljZShmLHUpKSxhLmpvaW4oXCJcIil9fWZ1bmN0aW9uIGUodCxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGksbyxhPVZhKDE5MDApO2lmKHIoYSx0LGUrPVwiXCIsMCkhPWUubGVuZ3RoKXJldHVybiBudWxsO2lmKFwiUVwiaW4gYSlyZXR1cm4gbmV3IERhdGUoYS5RKTtpZihcInBcImluIGEmJihhLkg9YS5IJTEyKzEyKmEucCksXCJWXCJpbiBhKXtpZihhLlY8MXx8YS5WPjUzKXJldHVybiBudWxsO1wid1wiaW4gYXx8KGEudz0xKSxcIlpcImluIGE/KGk9KG89KGk9R2EoVmEoYS55KSkpLmdldFVUQ0RheSgpKT40fHwwPT09bz9fZy5jZWlsKGkpOl9nKGkpLGk9dmcub2Zmc2V0KGksNyooYS5WLTEpKSxhLnk9aS5nZXRVVENGdWxsWWVhcigpLGEubT1pLmdldFVUQ01vbnRoKCksYS5kPWkuZ2V0VVRDRGF0ZSgpKyhhLncrNiklNyk6KGk9KG89KGk9bihWYShhLnkpKSkuZ2V0RGF5KCkpPjR8fDA9PT1vPyR2LmNlaWwoaSk6JHYoaSksaT1Ydi5vZmZzZXQoaSw3KihhLlYtMSkpLGEueT1pLmdldEZ1bGxZZWFyKCksYS5tPWkuZ2V0TW9udGgoKSxhLmQ9aS5nZXREYXRlKCkrKGEudys2KSU3KX1lbHNlKFwiV1wiaW4gYXx8XCJVXCJpbiBhKSYmKFwid1wiaW4gYXx8KGEudz1cInVcImluIGE/YS51JTc6XCJXXCJpbiBhPzE6MCksbz1cIlpcImluIGE/R2EoVmEoYS55KSkuZ2V0VVRDRGF5KCk6bihWYShhLnkpKS5nZXREYXkoKSxhLm09MCxhLmQ9XCJXXCJpbiBhPyhhLncrNiklNys3KmEuVy0obys1KSU3OmEudys3KmEuVS0obys2KSU3KTtyZXR1cm5cIlpcImluIGE/KGEuSCs9YS5aLzEwMHwwLGEuTSs9YS5aJTEwMCxHYShhKSk6bihhKX19ZnVuY3Rpb24gcih0LG4sZSxyKXtmb3IodmFyIGksbyxhPTAsdT1uLmxlbmd0aCxmPWUubGVuZ3RoO2E8dTspe2lmKHI+PWYpcmV0dXJuLTE7aWYoMzc9PT0oaT1uLmNoYXJDb2RlQXQoYSsrKSkpe2lmKGk9bi5jaGFyQXQoYSsrKSwhKG89QVtpIGluIFVnP24uY2hhckF0KGErKyk6aV0pfHwocj1vKHQsZSxyKSk8MClyZXR1cm4tMX1lbHNlIGlmKGkhPWUuY2hhckNvZGVBdChyKyspKXJldHVybi0xfXJldHVybiByfXZhciBpPXQuZGF0ZVRpbWUsbz10LmRhdGUsYT10LnRpbWUsdT10LnBlcmlvZHMsZj10LmRheXMsYz10LnNob3J0RGF5cyxzPXQubW9udGhzLGw9dC5zaG9ydE1vbnRocyxoPVFhKHUpLGQ9SmEodSkscD1RYShmKSx2PUphKGYpLGc9UWEoYykseT1KYShjKSxfPVFhKHMpLGI9SmEocyksbT1RYShsKSx4PUphKGwpLHc9e2E6ZnVuY3Rpb24odCl7cmV0dXJuIGNbdC5nZXREYXkoKV19LEE6ZnVuY3Rpb24odCl7cmV0dXJuIGZbdC5nZXREYXkoKV19LGI6ZnVuY3Rpb24odCl7cmV0dXJuIGxbdC5nZXRNb250aCgpXX0sQjpmdW5jdGlvbih0KXtyZXR1cm4gc1t0LmdldE1vbnRoKCldfSxjOm51bGwsZDpfdSxlOl91LGY6TXUsSDpidSxJOm11LGo6eHUsTDp3dSxtOkF1LE06VHUscDpmdW5jdGlvbih0KXtyZXR1cm4gdVsrKHQuZ2V0SG91cnMoKT49MTIpXX0sUTpLdSxzOnRmLFM6TnUsdTpTdSxVOkV1LFY6a3UsdzpDdSxXOlB1LHg6bnVsbCxYOm51bGwseTp6dSxZOlJ1LFo6THUsXCIlXCI6SnV9LE09e2E6ZnVuY3Rpb24odCl7cmV0dXJuIGNbdC5nZXRVVENEYXkoKV19LEE6ZnVuY3Rpb24odCl7cmV0dXJuIGZbdC5nZXRVVENEYXkoKV19LGI6ZnVuY3Rpb24odCl7cmV0dXJuIGxbdC5nZXRVVENNb250aCgpXX0sQjpmdW5jdGlvbih0KXtyZXR1cm4gc1t0LmdldFVUQ01vbnRoKCldfSxjOm51bGwsZDpEdSxlOkR1LGY6QnUsSDpVdSxJOnF1LGo6T3UsTDpZdSxtOkZ1LE06SXUscDpmdW5jdGlvbih0KXtyZXR1cm4gdVsrKHQuZ2V0VVRDSG91cnMoKT49MTIpXX0sUTpLdSxzOnRmLFM6anUsdTpIdSxVOlh1LFY6R3UsdzpWdSxXOiR1LHg6bnVsbCxYOm51bGwseTpXdSxZOlp1LFo6UXUsXCIlXCI6SnV9LEE9e2E6ZnVuY3Rpb24odCxuLGUpe3ZhciByPWcuZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC53PXlbclswXS50b0xvd2VyQ2FzZSgpXSxlK3JbMF0ubGVuZ3RoKTotMX0sQTpmdW5jdGlvbih0LG4sZSl7dmFyIHI9cC5leGVjKG4uc2xpY2UoZSkpO3JldHVybiByPyh0Lnc9dltyWzBdLnRvTG93ZXJDYXNlKCldLGUrclswXS5sZW5ndGgpOi0xfSxiOmZ1bmN0aW9uKHQsbixlKXt2YXIgcj1tLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQubT14W3JbMF0udG9Mb3dlckNhc2UoKV0sZStyWzBdLmxlbmd0aCk6LTF9LEI6ZnVuY3Rpb24odCxuLGUpe3ZhciByPV8uZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC5tPWJbclswXS50b0xvd2VyQ2FzZSgpXSxlK3JbMF0ubGVuZ3RoKTotMX0sYzpmdW5jdGlvbih0LG4sZSl7cmV0dXJuIHIodCxpLG4sZSl9LGQ6ZnUsZTpmdSxmOnB1LEg6c3UsSTpzdSxqOmN1LEw6ZHUsbTp1dSxNOmx1LHA6ZnVuY3Rpb24odCxuLGUpe3ZhciByPWguZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC5wPWRbclswXS50b0xvd2VyQ2FzZSgpXSxlK3JbMF0ubGVuZ3RoKTotMX0sUTpndSxzOnl1LFM6aHUsdTp0dSxVOm51LFY6ZXUsdzpLYSxXOnJ1LHg6ZnVuY3Rpb24odCxuLGUpe3JldHVybiByKHQsbyxuLGUpfSxYOmZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gcih0LGEsbixlKX0seTpvdSxZOml1LFo6YXUsXCIlXCI6dnV9O3JldHVybiB3Lng9bihvLHcpLHcuWD1uKGEsdyksdy5jPW4oaSx3KSxNLng9bihvLE0pLE0uWD1uKGEsTSksTS5jPW4oaSxNKSx7Zm9ybWF0OmZ1bmN0aW9uKHQpe3ZhciBlPW4odCs9XCJcIix3KTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgbj1lKHQrPVwiXCIsWGEpO3JldHVybiBuLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LG59LHV0Y0Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1uKHQrPVwiXCIsTSk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX0sdXRjUGFyc2U6ZnVuY3Rpb24odCl7dmFyIG49ZSh0LEdhKTtyZXR1cm4gbi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxufX19ZnVuY3Rpb24gV2EodCxuLGUpe3ZhciByPXQ8MD9cIi1cIjpcIlwiLGk9KHI/LXQ6dCkrXCJcIixvPWkubGVuZ3RoO3JldHVybiByKyhvPGU/bmV3IEFycmF5KGUtbysxKS5qb2luKG4pK2k6aSl9ZnVuY3Rpb24gWmEodCl7cmV0dXJuIHQucmVwbGFjZShZZyxcIlxcXFwkJlwiKX1mdW5jdGlvbiBRYSh0KXtyZXR1cm4gbmV3IFJlZ0V4cChcIl4oPzpcIit0Lm1hcChaYSkuam9pbihcInxcIikrXCIpXCIsXCJpXCIpfWZ1bmN0aW9uIEphKHQpe2Zvcih2YXIgbj17fSxlPS0xLHI9dC5sZW5ndGg7KytlPHI7KW5bdFtlXS50b0xvd2VyQ2FzZSgpXT1lO3JldHVybiBufWZ1bmN0aW9uIEthKHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzEpKTtyZXR1cm4gcj8odC53PStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHR1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzEpKTtyZXR1cm4gcj8odC51PStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG51KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5VPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGV1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5WPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHJ1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5XPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGl1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzQpKTtyZXR1cm4gcj8odC55PStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG91KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC55PStyWzBdKygrclswXT42OD8xOTAwOjJlMyksZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gYXUodCxuLGUpe3ZhciByPS9eKFopfChbKy1dXFxkXFxkKSg/Ojo/KFxcZFxcZCkpPy8uZXhlYyhuLnNsaWNlKGUsZSs2KSk7cmV0dXJuIHI/KHQuWj1yWzFdPzA6LShyWzJdKyhyWzNdfHxcIjAwXCIpKSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB1dSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQubT1yWzBdLTEsZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gZnUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0LmQ9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gY3UodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMykpO3JldHVybiByPyh0Lm09MCx0LmQ9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gc3UodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0Lkg9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0Lk09K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gaHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0LlM9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gZHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMykpO3JldHVybiByPyh0Lkw9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gcHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrNikpO3JldHVybiByPyh0Lkw9TWF0aC5mbG9vcihyWzBdLzFlMyksZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gdnUodCxuLGUpe3ZhciByPU9nLmV4ZWMobi5zbGljZShlLGUrMSkpO3JldHVybiByP2UrclswXS5sZW5ndGg6LTF9ZnVuY3Rpb24gZ3UodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQuUT0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB5dSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC5RPTFlMyorclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBfdSh0LG4pe3JldHVybiBXYSh0LmdldERhdGUoKSxuLDIpfWZ1bmN0aW9uIGJ1KHQsbil7cmV0dXJuIFdhKHQuZ2V0SG91cnMoKSxuLDIpfWZ1bmN0aW9uIG11KHQsbil7cmV0dXJuIFdhKHQuZ2V0SG91cnMoKSUxMnx8MTIsbiwyKX1mdW5jdGlvbiB4dSh0LG4pe3JldHVybiBXYSgxK1h2LmNvdW50KGNnKHQpLHQpLG4sMyl9ZnVuY3Rpb24gd3UodCxuKXtyZXR1cm4gV2EodC5nZXRNaWxsaXNlY29uZHMoKSxuLDMpfWZ1bmN0aW9uIE11KHQsbil7cmV0dXJuIHd1KHQsbikrXCIwMDBcIn1mdW5jdGlvbiBBdSh0LG4pe3JldHVybiBXYSh0LmdldE1vbnRoKCkrMSxuLDIpfWZ1bmN0aW9uIFR1KHQsbil7cmV0dXJuIFdhKHQuZ2V0TWludXRlcygpLG4sMil9ZnVuY3Rpb24gTnUodCxuKXtyZXR1cm4gV2EodC5nZXRTZWNvbmRzKCksbiwyKX1mdW5jdGlvbiBTdSh0KXt2YXIgbj10LmdldERheSgpO3JldHVybiAwPT09bj83Om59ZnVuY3Rpb24gRXUodCxuKXtyZXR1cm4gV2EoVnYuY291bnQoY2codCksdCksbiwyKX1mdW5jdGlvbiBrdSh0LG4pe3ZhciBlPXQuZ2V0RGF5KCk7cmV0dXJuIHQ9ZT49NHx8MD09PWU/UXYodCk6UXYuY2VpbCh0KSxXYShRdi5jb3VudChjZyh0KSx0KSsoND09PWNnKHQpLmdldERheSgpKSxuLDIpfWZ1bmN0aW9uIEN1KHQpe3JldHVybiB0LmdldERheSgpfWZ1bmN0aW9uIFB1KHQsbil7cmV0dXJuIFdhKCR2LmNvdW50KGNnKHQpLHQpLG4sMil9ZnVuY3Rpb24genUodCxuKXtyZXR1cm4gV2EodC5nZXRGdWxsWWVhcigpJTEwMCxuLDIpfWZ1bmN0aW9uIFJ1KHQsbil7cmV0dXJuIFdhKHQuZ2V0RnVsbFllYXIoKSUxZTQsbiw0KX1mdW5jdGlvbiBMdSh0KXt2YXIgbj10LmdldFRpbWV6b25lT2Zmc2V0KCk7cmV0dXJuKG4+MD9cIi1cIjoobio9LTEsXCIrXCIpKStXYShuLzYwfDAsXCIwXCIsMikrV2EobiU2MCxcIjBcIiwyKX1mdW5jdGlvbiBEdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ0RhdGUoKSxuLDIpfWZ1bmN0aW9uIFV1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDSG91cnMoKSxuLDIpfWZ1bmN0aW9uIHF1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDSG91cnMoKSUxMnx8MTIsbiwyKX1mdW5jdGlvbiBPdSh0LG4pe3JldHVybiBXYSgxK3ZnLmNvdW50KFJnKHQpLHQpLG4sMyl9ZnVuY3Rpb24gWXUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENNaWxsaXNlY29uZHMoKSxuLDMpfWZ1bmN0aW9uIEJ1KHQsbil7cmV0dXJuIFl1KHQsbikrXCIwMDBcIn1mdW5jdGlvbiBGdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ01vbnRoKCkrMSxuLDIpfWZ1bmN0aW9uIEl1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDTWludXRlcygpLG4sMil9ZnVuY3Rpb24ganUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENTZWNvbmRzKCksbiwyKX1mdW5jdGlvbiBIdSh0KXt2YXIgbj10LmdldFVUQ0RheSgpO3JldHVybiAwPT09bj83Om59ZnVuY3Rpb24gWHUodCxuKXtyZXR1cm4gV2EoeWcuY291bnQoUmcodCksdCksbiwyKX1mdW5jdGlvbiBHdSh0LG4pe3ZhciBlPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIHQ9ZT49NHx8MD09PWU/eGcodCk6eGcuY2VpbCh0KSxXYSh4Zy5jb3VudChSZyh0KSx0KSsoND09PVJnKHQpLmdldFVUQ0RheSgpKSxuLDIpfWZ1bmN0aW9uIFZ1KHQpe3JldHVybiB0LmdldFVUQ0RheSgpfWZ1bmN0aW9uICR1KHQsbil7cmV0dXJuIFdhKF9nLmNvdW50KFJnKHQpLHQpLG4sMil9ZnVuY3Rpb24gV3UodCxuKXtyZXR1cm4gV2EodC5nZXRVVENGdWxsWWVhcigpJTEwMCxuLDIpfWZ1bmN0aW9uIFp1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDRnVsbFllYXIoKSUxZTQsbiw0KX1mdW5jdGlvbiBRdSgpe3JldHVyblwiKzAwMDBcIn1mdW5jdGlvbiBKdSgpe3JldHVyblwiJVwifWZ1bmN0aW9uIEt1KHQpe3JldHVybit0fWZ1bmN0aW9uIHRmKHQpe3JldHVybiBNYXRoLmZsb29yKCt0LzFlMyl9ZnVuY3Rpb24gbmYobil7cmV0dXJuIExnPSRhKG4pLHQudGltZUZvcm1hdD1MZy5mb3JtYXQsdC50aW1lUGFyc2U9TGcucGFyc2UsdC51dGNGb3JtYXQ9TGcudXRjRm9ybWF0LHQudXRjUGFyc2U9TGcudXRjUGFyc2UsTGd9ZnVuY3Rpb24gZWYodCl7cmV0dXJuIG5ldyBEYXRlKHQpfWZ1bmN0aW9uIHJmKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRGF0ZT8rdDorbmV3IERhdGUoK3QpfWZ1bmN0aW9uIG9mKHQsbixyLGksbyxhLHUsZixjKXtmdW5jdGlvbiBzKGUpe3JldHVybih1KGUpPGU/ZzphKGUpPGU/eTpvKGUpPGU/XzppKGUpPGU/YjpuKGUpPGU/cihlKTxlP206eDp0KGUpPGU/dzpNKShlKX1mdW5jdGlvbiBsKG4scixpLG8pe2lmKG51bGw9PW4mJihuPTEwKSxcIm51bWJlclwiPT10eXBlb2Ygbil7dmFyIGE9TWF0aC5hYnMoaS1yKS9uLHU9ZShmdW5jdGlvbih0KXtyZXR1cm4gdFsyXX0pLnJpZ2h0KEEsYSk7dT09PUEubGVuZ3RoPyhvPWQoci9XZyxpL1dnLG4pLG49dCk6dT8obz0odT1BW2EvQVt1LTFdWzJdPEFbdV1bMl0vYT91LTE6dV0pWzFdLG49dVswXSk6KG89TWF0aC5tYXgoZChyLGksbiksMSksbj1mKX1yZXR1cm4gbnVsbD09bz9uOm4uZXZlcnkobyl9dmFyIGg9VGEoeGEsc24pLHA9aC5pbnZlcnQsdj1oLmRvbWFpbixnPWMoXCIuJUxcIikseT1jKFwiOiVTXCIpLF89YyhcIiVJOiVNXCIpLGI9YyhcIiVJICVwXCIpLG09YyhcIiVhICVkXCIpLHg9YyhcIiViICVkXCIpLHc9YyhcIiVCXCIpLE09YyhcIiVZXCIpLEE9W1t1LDEsamddLFt1LDUsNSpqZ10sW3UsMTUsMTUqamddLFt1LDMwLDMwKmpnXSxbYSwxLEhnXSxbYSw1LDUqSGddLFthLDE1LDE1KkhnXSxbYSwzMCwzMCpIZ10sW28sMSxYZ10sW28sMywzKlhnXSxbbyw2LDYqWGddLFtvLDEyLDEyKlhnXSxbaSwxLEdnXSxbaSwyLDIqR2ddLFtyLDEsVmddLFtuLDEsJGddLFtuLDMsMyokZ10sW3QsMSxXZ11dO3JldHVybiBoLmludmVydD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IERhdGUocCh0KSl9LGguZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3Yoa3YuY2FsbCh0LHJmKSk6digpLm1hcChlZil9LGgudGlja3M9ZnVuY3Rpb24odCxuKXt2YXIgZSxyPXYoKSxpPXJbMF0sbz1yW3IubGVuZ3RoLTFdLGE9bzxpO3JldHVybiBhJiYoZT1pLGk9byxvPWUpLGU9bCh0LGksbyxuKSxlPWU/ZS5yYW5nZShpLG8rMSk6W10sYT9lLnJldmVyc2UoKTplfSxoLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbnVsbD09bj9zOmMobil9LGgubmljZT1mdW5jdGlvbih0LG4pe3ZhciBlPXYoKTtyZXR1cm4odD1sKHQsZVswXSxlW2UubGVuZ3RoLTFdLG4pKT92KGthKGUsdCkpOmh9LGguY29weT1mdW5jdGlvbigpe3JldHVybiBBYShoLG9mKHQsbixyLGksbyxhLHUsZixjKSl9LGh9ZnVuY3Rpb24gYWYodCl7ZnVuY3Rpb24gbihuKXt2YXIgcj0obi1lKSppO3JldHVybiB0KG8/TWF0aC5tYXgoMCxNYXRoLm1pbigxLHIpKTpyKX12YXIgZT0wLHI9MSxpPTEsbz0hMTtyZXR1cm4gbi5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3RbMF0scj0rdFsxXSxpPWU9PT1yPzA6MS8oci1lKSxuKTpbZSxyXX0sbi5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0hIXQsbik6b30sbi5pbnRlcnBvbGF0b3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxuKTp0fSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gYWYodCkuZG9tYWluKFtlLHJdKS5jbGFtcChvKX0sTmEobil9ZnVuY3Rpb24gdWYodCl7ZnVuY3Rpb24gbihuKXt2YXIgZT0uNSsoKG49K24pLXIpKihuPHI/bzphKTtyZXR1cm4gdCh1P01hdGgubWF4KDAsTWF0aC5taW4oMSxlKSk6ZSl9dmFyIGU9MCxyPS41LGk9MSxvPTEsYT0xLHU9ITE7cmV0dXJuIG4uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLHI9K3RbMV0saT0rdFsyXSxvPWU9PT1yPzA6LjUvKHItZSksYT1yPT09aT8wOi41LyhpLXIpLG4pOltlLHIsaV19LG4uY2xhbXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9ISF0LG4pOnV9LG4uaW50ZXJwb2xhdG9yPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsbik6dH0sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHVmKHQpLmRvbWFpbihbZSxyLGldKS5jbGFtcCh1KX0sTmEobil9ZnVuY3Rpb24gZmYodCl7Zm9yKHZhciBuPXQubGVuZ3RoLzZ8MCxlPW5ldyBBcnJheShuKSxyPTA7cjxuOyllW3JdPVwiI1wiK3Quc2xpY2UoNipyLDYqKytyKTtyZXR1cm4gZX1mdW5jdGlvbiBjZih0KXtyZXR1cm4gaWwodFt0Lmxlbmd0aC0xXSl9ZnVuY3Rpb24gc2YodCl7dmFyIG49dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0W01hdGgubWF4KDAsTWF0aC5taW4obi0xLE1hdGguZmxvb3IoZSpuKSkpXX19ZnVuY3Rpb24gbGYodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGhmKHQpe3JldHVybiB0Pj0xP1RfOnQ8PS0xPy1UXzpNYXRoLmFzaW4odCl9ZnVuY3Rpb24gZGYodCl7cmV0dXJuIHQuaW5uZXJSYWRpdXN9ZnVuY3Rpb24gcGYodCl7cmV0dXJuIHQub3V0ZXJSYWRpdXN9ZnVuY3Rpb24gdmYodCl7cmV0dXJuIHQuc3RhcnRBbmdsZX1mdW5jdGlvbiBnZih0KXtyZXR1cm4gdC5lbmRBbmdsZX1mdW5jdGlvbiB5Zih0KXtyZXR1cm4gdCYmdC5wYWRBbmdsZX1mdW5jdGlvbiBfZih0LG4sZSxyLGksbyxhKXt2YXIgdT10LWUsZj1uLXIsYz0oYT9vOi1vKS93Xyh1KnUrZipmKSxzPWMqZixsPS1jKnUsaD10K3MsZD1uK2wscD1lK3Msdj1yK2wsZz0oaCtwKS8yLHk9KGQrdikvMixfPXAtaCxiPXYtZCxtPV8qXytiKmIseD1pLW8sdz1oKnYtcCpkLE09KGI8MD8tMToxKSp3XyhiXygwLHgqeCptLXcqdykpLEE9KHcqYi1fKk0pL20sVD0oLXcqXy1iKk0pL20sTj0odypiK18qTSkvbSxTPSgtdypfK2IqTSkvbSxFPUEtZyxrPVQteSxDPU4tZyxQPVMteTtyZXR1cm4gRSpFK2sqaz5DKkMrUCpQJiYoQT1OLFQ9Uykse2N4OkEsY3k6VCx4MDE6LXMseTAxOi1sLHgxMTpBKihpL3gtMSkseTExOlQqKGkveC0xKX19ZnVuY3Rpb24gYmYodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIG1mKHQpe3JldHVybiBuZXcgYmYodCl9ZnVuY3Rpb24geGYodCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24gd2YodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gTWYoKXtmdW5jdGlvbiB0KHQpe3ZhciB1LGYsYyxzPXQubGVuZ3RoLGw9ITE7Zm9yKG51bGw9PWkmJihhPW8oYz1vZSgpKSksdT0wO3U8PXM7Kyt1KSEodTxzJiZyKGY9dFt1XSx1LHQpKT09PWwmJigobD0hbCk/YS5saW5lU3RhcnQoKTphLmxpbmVFbmQoKSksbCYmYS5wb2ludCgrbihmLHUsdCksK2UoZix1LHQpKTtpZihjKXJldHVybiBhPW51bGwsYytcIlwifHxudWxsfXZhciBuPXhmLGU9d2Yscj1sZighMCksaT1udWxsLG89bWYsYT1udWxsO3JldHVybiB0Lng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKCtlKSx0KTpufSx0Lnk9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTplfSx0LmRlZmluZWQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCEhbiksdCk6cn0sdC5jdXJ2ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1uLG51bGwhPWkmJihhPW8oaSkpLHQpOm99LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09bj9pPWE9bnVsbDphPW8oaT1uKSx0KTppfSx0fWZ1bmN0aW9uIEFmKCl7ZnVuY3Rpb24gdCh0KXt2YXIgbixzLGwsaCxkLHA9dC5sZW5ndGgsdj0hMSxnPW5ldyBBcnJheShwKSx5PW5ldyBBcnJheShwKTtmb3IobnVsbD09dSYmKGM9ZihkPW9lKCkpKSxuPTA7bjw9cDsrK24pe2lmKCEobjxwJiZhKGg9dFtuXSxuLHQpKT09PXYpaWYodj0hdilzPW4sYy5hcmVhU3RhcnQoKSxjLmxpbmVTdGFydCgpO2Vsc2V7Zm9yKGMubGluZUVuZCgpLGMubGluZVN0YXJ0KCksbD1uLTE7bD49czstLWwpYy5wb2ludChnW2xdLHlbbF0pO2MubGluZUVuZCgpLGMuYXJlYUVuZCgpfXYmJihnW25dPStlKGgsbix0KSx5W25dPStpKGgsbix0KSxjLnBvaW50KHI/K3IoaCxuLHQpOmdbbl0sbz8rbyhoLG4sdCk6eVtuXSkpfWlmKGQpcmV0dXJuIGM9bnVsbCxkK1wiXCJ8fG51bGx9ZnVuY3Rpb24gbigpe3JldHVybiBNZigpLmRlZmluZWQoYSkuY3VydmUoZikuY29udGV4dCh1KX12YXIgZT14ZixyPW51bGwsaT1sZigwKSxvPXdmLGE9bGYoITApLHU9bnVsbCxmPW1mLGM9bnVsbDtyZXR1cm4gdC54PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbikscj1udWxsLHQpOmV9LHQueDA9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTplfSx0LngxPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PW4/bnVsbDpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOnJ9LHQueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLG89bnVsbCx0KTppfSx0LnkwPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6aX0sdC55MT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1udWxsPT1uP251bGw6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpvfSx0LmxpbmVYMD10LmxpbmVZMD1mdW5jdGlvbigpe3JldHVybiBuKCkueChlKS55KGkpfSx0LmxpbmVZMT1mdW5jdGlvbigpe3JldHVybiBuKCkueChlKS55KG8pfSx0LmxpbmVYMT1mdW5jdGlvbigpe3JldHVybiBuKCkueChyKS55KGkpfSx0LmRlZmluZWQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCEhbiksdCk6YX0sdC5jdXJ2ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1uLG51bGwhPXUmJihjPWYodSkpLHQpOmZ9LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09bj91PWM9bnVsbDpjPWYodT1uKSx0KTp1fSx0fWZ1bmN0aW9uIFRmKHQsbil7cmV0dXJuIG48dD8tMTpuPnQ/MTpuPj10PzA6TmFOfWZ1bmN0aW9uIE5mKHQpe3JldHVybiB0fWZ1bmN0aW9uIFNmKHQpe3RoaXMuX2N1cnZlPXR9ZnVuY3Rpb24gRWYodCl7ZnVuY3Rpb24gbihuKXtyZXR1cm4gbmV3IFNmKHQobikpfXJldHVybiBuLl9jdXJ2ZT10LG59ZnVuY3Rpb24ga2YodCl7dmFyIG49dC5jdXJ2ZTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0LmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24oRWYodCkpOm4oKS5fY3VydmV9LHR9ZnVuY3Rpb24gQ2YoKXtyZXR1cm4ga2YoTWYoKS5jdXJ2ZShTXykpfWZ1bmN0aW9uIFBmKCl7dmFyIHQ9QWYoKS5jdXJ2ZShTXyksbj10LmN1cnZlLGU9dC5saW5lWDAscj10LmxpbmVYMSxpPXQubGluZVkwLG89dC5saW5lWTE7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5zdGFydEFuZ2xlPXQueDAsZGVsZXRlIHQueDAsdC5lbmRBbmdsZT10LngxLGRlbGV0ZSB0LngxLHQucmFkaXVzPXQueSxkZWxldGUgdC55LHQuaW5uZXJSYWRpdXM9dC55MCxkZWxldGUgdC55MCx0Lm91dGVyUmFkaXVzPXQueTEsZGVsZXRlIHQueTEsdC5saW5lU3RhcnRBbmdsZT1mdW5jdGlvbigpe3JldHVybiBrZihlKCkpfSxkZWxldGUgdC5saW5lWDAsdC5saW5lRW5kQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4ga2YocigpKX0sZGVsZXRlIHQubGluZVgxLHQubGluZUlubmVyUmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIGtmKGkoKSl9LGRlbGV0ZSB0LmxpbmVZMCx0LmxpbmVPdXRlclJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBrZihvKCkpfSxkZWxldGUgdC5saW5lWTEsdC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uKEVmKHQpKTpuKCkuX2N1cnZlfSx0fWZ1bmN0aW9uIHpmKHQsbil7cmV0dXJuWyhuPStuKSpNYXRoLmNvcyh0LT1NYXRoLlBJLzIpLG4qTWF0aC5zaW4odCldfWZ1bmN0aW9uIFJmKHQpe3JldHVybiB0LnNvdXJjZX1mdW5jdGlvbiBMZih0KXtyZXR1cm4gdC50YXJnZXR9ZnVuY3Rpb24gRGYodCl7ZnVuY3Rpb24gbigpe3ZhciBuLHU9RV8uY2FsbChhcmd1bWVudHMpLGY9ZS5hcHBseSh0aGlzLHUpLGM9ci5hcHBseSh0aGlzLHUpO2lmKGF8fChhPW49b2UoKSksdChhLCtpLmFwcGx5KHRoaXMsKHVbMF09Zix1KSksK28uYXBwbHkodGhpcyx1KSwraS5hcHBseSh0aGlzLCh1WzBdPWMsdSkpLCtvLmFwcGx5KHRoaXMsdSkpLG4pcmV0dXJuIGE9bnVsbCxuK1wiXCJ8fG51bGx9dmFyIGU9UmYscj1MZixpPXhmLG89d2YsYT1udWxsO3JldHVybiBuLnNvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LG4pOmV9LG4udGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsbik6cn0sbi54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpsZigrdCksbik6aX0sbi55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpsZigrdCksbik6b30sbi5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPW51bGw9PXQ/bnVsbDp0LG4pOmF9LG59ZnVuY3Rpb24gVWYodCxuLGUscixpKXt0Lm1vdmVUbyhuLGUpLHQuYmV6aWVyQ3VydmVUbyhuPShuK3IpLzIsZSxuLGkscixpKX1mdW5jdGlvbiBxZih0LG4sZSxyLGkpe3QubW92ZVRvKG4sZSksdC5iZXppZXJDdXJ2ZVRvKG4sZT0oZStpKS8yLHIsZSxyLGkpfWZ1bmN0aW9uIE9mKHQsbixlLHIsaSl7dmFyIG89emYobixlKSxhPXpmKG4sZT0oZStpKS8yKSx1PXpmKHIsZSksZj16ZihyLGkpO3QubW92ZVRvKG9bMF0sb1sxXSksdC5iZXppZXJDdXJ2ZVRvKGFbMF0sYVsxXSx1WzBdLHVbMV0sZlswXSxmWzFdKX1mdW5jdGlvbiBZZigpe31mdW5jdGlvbiBCZih0LG4sZSl7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKCgyKnQuX3gwK3QuX3gxKS8zLCgyKnQuX3kwK3QuX3kxKS8zLCh0Ll94MCsyKnQuX3gxKS8zLCh0Ll95MCsyKnQuX3kxKS8zLCh0Ll94MCs0KnQuX3gxK24pLzYsKHQuX3kwKzQqdC5feTErZSkvNil9ZnVuY3Rpb24gRmYodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIElmKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBqZih0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gSGYodCxuKXt0aGlzLl9iYXNpcz1uZXcgRmYodCksdGhpcy5fYmV0YT1ufWZ1bmN0aW9uIFhmKHQsbixlKXt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8odC5feDErdC5fayoodC5feDItdC5feDApLHQuX3kxK3QuX2sqKHQuX3kyLXQuX3kwKSx0Ll94Mit0Ll9rKih0Ll94MS1uKSx0Ll95Mit0Ll9rKih0Ll95MS1lKSx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gR2YodCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1uKS82fWZ1bmN0aW9uIFZmKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtbikvNn1mdW5jdGlvbiAkZih0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9rPSgxLW4pLzZ9ZnVuY3Rpb24gV2YodCxuLGUpe3ZhciByPXQuX3gxLGk9dC5feTEsbz10Ll94MixhPXQuX3kyO2lmKHQuX2wwMV9hPk1fKXt2YXIgdT0yKnQuX2wwMV8yYSszKnQuX2wwMV9hKnQuX2wxMl9hK3QuX2wxMl8yYSxmPTMqdC5fbDAxX2EqKHQuX2wwMV9hK3QuX2wxMl9hKTtyPShyKnUtdC5feDAqdC5fbDEyXzJhK3QuX3gyKnQuX2wwMV8yYSkvZixpPShpKnUtdC5feTAqdC5fbDEyXzJhK3QuX3kyKnQuX2wwMV8yYSkvZn1pZih0Ll9sMjNfYT5NXyl7dmFyIGM9Mip0Ll9sMjNfMmErMyp0Ll9sMjNfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEscz0zKnQuX2wyM19hKih0Ll9sMjNfYSt0Ll9sMTJfYSk7bz0obypjK3QuX3gxKnQuX2wyM18yYS1uKnQuX2wxMl8yYSkvcyxhPShhKmMrdC5feTEqdC5fbDIzXzJhLWUqdC5fbDEyXzJhKS9zfXQuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhyLGksbyxhLHQuX3gyLHQuX3kyKX1mdW5jdGlvbiBaZih0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1ufWZ1bmN0aW9uIFFmKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPW59ZnVuY3Rpb24gSmYodCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9bn1mdW5jdGlvbiBLZih0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gdGModCl7cmV0dXJuIHQ8MD8tMToxfWZ1bmN0aW9uIG5jKHQsbixlKXt2YXIgcj10Ll94MS10Ll94MCxpPW4tdC5feDEsbz0odC5feTEtdC5feTApLyhyfHxpPDAmJi0wKSxhPShlLXQuX3kxKS8oaXx8cjwwJiYtMCksdT0obyppK2EqcikvKHIraSk7cmV0dXJuKHRjKG8pK3RjKGEpKSpNYXRoLm1pbihNYXRoLmFicyhvKSxNYXRoLmFicyhhKSwuNSpNYXRoLmFicyh1KSl8fDB9ZnVuY3Rpb24gZWModCxuKXt2YXIgZT10Ll94MS10Ll94MDtyZXR1cm4gZT8oMyoodC5feTEtdC5feTApL2UtbikvMjpufWZ1bmN0aW9uIHJjKHQsbixlKXt2YXIgcj10Ll94MCxpPXQuX3kwLG89dC5feDEsYT10Ll95MSx1PShvLXIpLzM7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHIrdSxpK3UqbixvLXUsYS11KmUsbyxhKX1mdW5jdGlvbiBpYyh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gb2ModCl7dGhpcy5fY29udGV4dD1uZXcgYWModCl9ZnVuY3Rpb24gYWModCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHVjKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBmYyh0KXt2YXIgbixlLHI9dC5sZW5ndGgtMSxpPW5ldyBBcnJheShyKSxvPW5ldyBBcnJheShyKSxhPW5ldyBBcnJheShyKTtmb3IoaVswXT0wLG9bMF09MixhWzBdPXRbMF0rMip0WzFdLG49MTtuPHItMTsrK24paVtuXT0xLG9bbl09NCxhW25dPTQqdFtuXSsyKnRbbisxXTtmb3IoaVtyLTFdPTIsb1tyLTFdPTcsYVtyLTFdPTgqdFtyLTFdK3Rbcl0sbj0xO248cjsrK24pZT1pW25dL29bbi0xXSxvW25dLT1lLGFbbl0tPWUqYVtuLTFdO2ZvcihpW3ItMV09YVtyLTFdL29bci0xXSxuPXItMjtuPj0wOy0tbilpW25dPShhW25dLWlbbisxXSkvb1tuXTtmb3Iob1tyLTFdPSh0W3JdK2lbci0xXSkvMixuPTA7bjxyLTE7KytuKW9bbl09Mip0W24rMV0taVtuKzFdO3JldHVybltpLG9dfWZ1bmN0aW9uIGNjKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX3Q9bn1mdW5jdGlvbiBzYyh0LG4pe2lmKChpPXQubGVuZ3RoKT4xKWZvcih2YXIgZSxyLGksbz0xLGE9dFtuWzBdXSx1PWEubGVuZ3RoO288aTsrK28pZm9yKHI9YSxhPXRbbltvXV0sZT0wO2U8dTsrK2UpYVtlXVsxXSs9YVtlXVswXT1pc05hTihyW2VdWzFdKT9yW2VdWzBdOnJbZV1bMV19ZnVuY3Rpb24gbGModCl7Zm9yKHZhciBuPXQubGVuZ3RoLGU9bmV3IEFycmF5KG4pOy0tbj49MDspZVtuXT1uO3JldHVybiBlfWZ1bmN0aW9uIGhjKHQsbil7cmV0dXJuIHRbbl19ZnVuY3Rpb24gZGModCl7dmFyIG49dC5tYXAocGMpO3JldHVybiBsYyh0KS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5bdF0tbltlXX0pfWZ1bmN0aW9uIHBjKHQpe2Zvcih2YXIgbixlPTAscj0tMSxpPXQubGVuZ3RoOysrcjxpOykobj0rdFtyXVsxXSkmJihlKz1uKTtyZXR1cm4gZX1mdW5jdGlvbiB2Yyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gZ2ModCl7cmV0dXJuIHRbMF19ZnVuY3Rpb24geWModCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gX2MoKXt0aGlzLl89bnVsbH1mdW5jdGlvbiBiYyh0KXt0LlU9dC5DPXQuTD10LlI9dC5QPXQuTj1udWxsfWZ1bmN0aW9uIG1jKHQsbil7dmFyIGU9bixyPW4uUixpPWUuVTtpP2kuTD09PWU/aS5MPXI6aS5SPXI6dC5fPXIsci5VPWksZS5VPXIsZS5SPXIuTCxlLlImJihlLlIuVT1lKSxyLkw9ZX1mdW5jdGlvbiB4Yyh0LG4pe3ZhciBlPW4scj1uLkwsaT1lLlU7aT9pLkw9PT1lP2kuTD1yOmkuUj1yOnQuXz1yLHIuVT1pLGUuVT1yLGUuTD1yLlIsZS5MJiYoZS5MLlU9ZSksci5SPWV9ZnVuY3Rpb24gd2ModCl7Zm9yKDt0Lkw7KXQ9dC5MO3JldHVybiB0fWZ1bmN0aW9uIE1jKHQsbixlLHIpe3ZhciBpPVtudWxsLG51bGxdLG89cmIucHVzaChpKS0xO3JldHVybiBpLmxlZnQ9dCxpLnJpZ2h0PW4sZSYmVGMoaSx0LG4sZSksciYmVGMoaSxuLHQsciksbmJbdC5pbmRleF0uaGFsZmVkZ2VzLnB1c2gobyksbmJbbi5pbmRleF0uaGFsZmVkZ2VzLnB1c2gobyksaX1mdW5jdGlvbiBBYyh0LG4sZSl7dmFyIHI9W24sZV07cmV0dXJuIHIubGVmdD10LHJ9ZnVuY3Rpb24gVGModCxuLGUscil7dFswXXx8dFsxXT90LmxlZnQ9PT1lP3RbMV09cjp0WzBdPXI6KHRbMF09cix0LmxlZnQ9bix0LnJpZ2h0PWUpfWZ1bmN0aW9uIE5jKHQsbixlLHIsaSl7dmFyIG8sYT10WzBdLHU9dFsxXSxmPWFbMF0sYz1hWzFdLHM9MCxsPTEsaD11WzBdLWYsZD11WzFdLWM7aWYobz1uLWYsaHx8IShvPjApKXtpZihvLz1oLGg8MCl7aWYobzxzKXJldHVybjtvPGwmJihsPW8pfWVsc2UgaWYoaD4wKXtpZihvPmwpcmV0dXJuO28+cyYmKHM9byl9aWYobz1yLWYsaHx8IShvPDApKXtpZihvLz1oLGg8MCl7aWYobz5sKXJldHVybjtvPnMmJihzPW8pfWVsc2UgaWYoaD4wKXtpZihvPHMpcmV0dXJuO288bCYmKGw9byl9aWYobz1lLWMsZHx8IShvPjApKXtpZihvLz1kLGQ8MCl7aWYobzxzKXJldHVybjtvPGwmJihsPW8pfWVsc2UgaWYoZD4wKXtpZihvPmwpcmV0dXJuO28+cyYmKHM9byl9aWYobz1pLWMsZHx8IShvPDApKXtpZihvLz1kLGQ8MCl7aWYobz5sKXJldHVybjtvPnMmJihzPW8pfWVsc2UgaWYoZD4wKXtpZihvPHMpcmV0dXJuO288bCYmKGw9byl9cmV0dXJuIShzPjB8fGw8MSl8fChzPjAmJih0WzBdPVtmK3MqaCxjK3MqZF0pLGw8MSYmKHRbMV09W2YrbCpoLGMrbCpkXSksITApfX19fX1mdW5jdGlvbiBTYyh0LG4sZSxyLGkpe3ZhciBvPXRbMV07aWYobylyZXR1cm4hMDt2YXIgYSx1LGY9dFswXSxjPXQubGVmdCxzPXQucmlnaHQsbD1jWzBdLGg9Y1sxXSxkPXNbMF0scD1zWzFdLHY9KGwrZCkvMixnPShoK3ApLzI7aWYocD09PWgpe2lmKHY8bnx8dj49cilyZXR1cm47aWYobD5kKXtpZihmKXtpZihmWzFdPj1pKXJldHVybn1lbHNlIGY9W3YsZV07bz1bdixpXX1lbHNle2lmKGYpe2lmKGZbMV08ZSlyZXR1cm59ZWxzZSBmPVt2LGldO289W3YsZV19fWVsc2UgaWYoYT0obC1kKS8ocC1oKSx1PWctYSp2LGE8LTF8fGE+MSlpZihsPmQpe2lmKGYpe2lmKGZbMV0+PWkpcmV0dXJufWVsc2UgZj1bKGUtdSkvYSxlXTtvPVsoaS11KS9hLGldfWVsc2V7aWYoZil7aWYoZlsxXTxlKXJldHVybn1lbHNlIGY9WyhpLXUpL2EsaV07bz1bKGUtdSkvYSxlXX1lbHNlIGlmKGg8cCl7aWYoZil7aWYoZlswXT49cilyZXR1cm59ZWxzZSBmPVtuLGEqbit1XTtvPVtyLGEqcit1XX1lbHNle2lmKGYpe2lmKGZbMF08bilyZXR1cm59ZWxzZSBmPVtyLGEqcit1XTtvPVtuLGEqbit1XX1yZXR1cm4gdFswXT1mLHRbMV09bywhMH1mdW5jdGlvbiBFYyh0LG4pe3ZhciBlPXQuc2l0ZSxyPW4ubGVmdCxpPW4ucmlnaHQ7cmV0dXJuIGU9PT1pJiYoaT1yLHI9ZSksaT9NYXRoLmF0YW4yKGlbMV0tclsxXSxpWzBdLXJbMF0pOihlPT09cj8ocj1uWzFdLGk9blswXSk6KHI9blswXSxpPW5bMV0pLE1hdGguYXRhbjIoclswXS1pWzBdLGlbMV0tclsxXSkpfWZ1bmN0aW9uIGtjKHQsbil7cmV0dXJuIG5bKyhuLmxlZnQhPT10LnNpdGUpXX1mdW5jdGlvbiBDYyh0LG4pe3JldHVybiBuWysobi5sZWZ0PT09dC5zaXRlKV19ZnVuY3Rpb24gUGModCl7dmFyIG49dC5QLGU9dC5OO2lmKG4mJmUpe3ZhciByPW4uc2l0ZSxpPXQuc2l0ZSxvPWUuc2l0ZTtpZihyIT09byl7dmFyIGE9aVswXSx1PWlbMV0sZj1yWzBdLWEsYz1yWzFdLXUscz1vWzBdLWEsbD1vWzFdLXUsaD0yKihmKmwtYypzKTtpZighKGg+PS11Yikpe3ZhciBkPWYqZitjKmMscD1zKnMrbCpsLHY9KGwqZC1jKnApL2gsZz0oZipwLXMqZCkvaCx5PWliLnBvcCgpfHxuZXcgZnVuY3Rpb24oKXtiYyh0aGlzKSx0aGlzLng9dGhpcy55PXRoaXMuYXJjPXRoaXMuc2l0ZT10aGlzLmN5PW51bGx9O3kuYXJjPXQseS5zaXRlPWkseS54PXYrYSx5Lnk9KHkuY3k9Zyt1KStNYXRoLnNxcnQodip2K2cqZyksdC5jaXJjbGU9eTtmb3IodmFyIF89bnVsbCxiPWViLl87YjspaWYoeS55PGIueXx8eS55PT09Yi55JiZ5Lng8PWIueCl7aWYoIWIuTCl7Xz1iLlA7YnJlYWt9Yj1iLkx9ZWxzZXtpZighYi5SKXtfPWI7YnJlYWt9Yj1iLlJ9ZWIuaW5zZXJ0KF8seSksX3x8KEtfPXkpfX19fWZ1bmN0aW9uIHpjKHQpe3ZhciBuPXQuY2lyY2xlO24mJihuLlB8fChLXz1uLk4pLGViLnJlbW92ZShuKSxpYi5wdXNoKG4pLGJjKG4pLHQuY2lyY2xlPW51bGwpfWZ1bmN0aW9uIFJjKHQpe3ZhciBuPW9iLnBvcCgpfHxuZXcgZnVuY3Rpb24oKXtiYyh0aGlzKSx0aGlzLmVkZ2U9dGhpcy5zaXRlPXRoaXMuY2lyY2xlPW51bGx9O3JldHVybiBuLnNpdGU9dCxufWZ1bmN0aW9uIExjKHQpe3pjKHQpLHRiLnJlbW92ZSh0KSxvYi5wdXNoKHQpLGJjKHQpfWZ1bmN0aW9uIERjKHQpe3ZhciBuPXQuY2lyY2xlLGU9bi54LHI9bi5jeSxpPVtlLHJdLG89dC5QLGE9dC5OLHU9W3RdO0xjKHQpO2Zvcih2YXIgZj1vO2YuY2lyY2xlJiZNYXRoLmFicyhlLWYuY2lyY2xlLngpPGFiJiZNYXRoLmFicyhyLWYuY2lyY2xlLmN5KTxhYjspbz1mLlAsdS51bnNoaWZ0KGYpLExjKGYpLGY9bzt1LnVuc2hpZnQoZiksemMoZik7Zm9yKHZhciBjPWE7Yy5jaXJjbGUmJk1hdGguYWJzKGUtYy5jaXJjbGUueCk8YWImJk1hdGguYWJzKHItYy5jaXJjbGUuY3kpPGFiOylhPWMuTix1LnB1c2goYyksTGMoYyksYz1hO3UucHVzaChjKSx6YyhjKTt2YXIgcyxsPXUubGVuZ3RoO2ZvcihzPTE7czxsOysrcyljPXVbc10sZj11W3MtMV0sVGMoYy5lZGdlLGYuc2l0ZSxjLnNpdGUsaSk7Zj11WzBdLChjPXVbbC0xXSkuZWRnZT1NYyhmLnNpdGUsYy5zaXRlLG51bGwsaSksUGMoZiksUGMoYyl9ZnVuY3Rpb24gVWModCl7Zm9yKHZhciBuLGUscixpLG89dFswXSxhPXRbMV0sdT10Yi5fO3U7KWlmKChyPXFjKHUsYSktbyk+YWIpdT11Lkw7ZWxzZXtpZighKChpPW8tZnVuY3Rpb24odCxuKXt2YXIgZT10Lk47aWYoZSlyZXR1cm4gcWMoZSxuKTt2YXIgcj10LnNpdGU7cmV0dXJuIHJbMV09PT1uP3JbMF06MS8wfSh1LGEpKT5hYikpe3I+LWFiPyhuPXUuUCxlPXUpOmk+LWFiPyhuPXUsZT11Lk4pOm49ZT11O2JyZWFrfWlmKCF1LlIpe249dTticmVha311PXUuUn0oZnVuY3Rpb24odCl7bmJbdC5pbmRleF09e3NpdGU6dCxoYWxmZWRnZXM6W119fSkodCk7dmFyIGY9UmModCk7aWYodGIuaW5zZXJ0KG4sZiksbnx8ZSl7aWYobj09PWUpcmV0dXJuIHpjKG4pLGU9UmMobi5zaXRlKSx0Yi5pbnNlcnQoZixlKSxmLmVkZ2U9ZS5lZGdlPU1jKG4uc2l0ZSxmLnNpdGUpLFBjKG4pLHZvaWQgUGMoZSk7aWYoZSl7emMobiksemMoZSk7dmFyIGM9bi5zaXRlLHM9Y1swXSxsPWNbMV0saD10WzBdLXMsZD10WzFdLWwscD1lLnNpdGUsdj1wWzBdLXMsZz1wWzFdLWwseT0yKihoKmctZCp2KSxfPWgqaCtkKmQsYj12KnYrZypnLG09WyhnKl8tZCpiKS95K3MsKGgqYi12Kl8pL3krbF07VGMoZS5lZGdlLGMscCxtKSxmLmVkZ2U9TWMoYyx0LG51bGwsbSksZS5lZGdlPU1jKHQscCxudWxsLG0pLFBjKG4pLFBjKGUpfWVsc2UgZi5lZGdlPU1jKG4uc2l0ZSxmLnNpdGUpfX1mdW5jdGlvbiBxYyh0LG4pe3ZhciBlPXQuc2l0ZSxyPWVbMF0saT1lWzFdLG89aS1uO2lmKCFvKXJldHVybiByO3ZhciBhPXQuUDtpZighYSlyZXR1cm4tMS8wO3ZhciB1PShlPWEuc2l0ZSlbMF0sZj1lWzFdLGM9Zi1uO2lmKCFjKXJldHVybiB1O3ZhciBzPXUtcixsPTEvby0xL2MsaD1zL2M7cmV0dXJuIGw/KC1oK01hdGguc3FydChoKmgtMipsKihzKnMvKC0yKmMpLWYrYy8yK2ktby8yKSkpL2wrcjoocit1KS8yfWZ1bmN0aW9uIE9jKHQsbixlKXtyZXR1cm4odFswXS1lWzBdKSooblsxXS10WzFdKS0odFswXS1uWzBdKSooZVsxXS10WzFdKX1mdW5jdGlvbiBZYyh0LG4pe3JldHVybiBuWzFdLXRbMV18fG5bMF0tdFswXX1mdW5jdGlvbiBCYyh0LG4pe3ZhciBlLHIsaSxvPXQuc29ydChZYykucG9wKCk7Zm9yKHJiPVtdLG5iPW5ldyBBcnJheSh0Lmxlbmd0aCksdGI9bmV3IF9jLGViPW5ldyBfYzs7KWlmKGk9S18sbyYmKCFpfHxvWzFdPGkueXx8b1sxXT09PWkueSYmb1swXTxpLngpKW9bMF09PT1lJiZvWzFdPT09cnx8KFVjKG8pLGU9b1swXSxyPW9bMV0pLG89dC5wb3AoKTtlbHNle2lmKCFpKWJyZWFrO0RjKGkuYXJjKX1pZihmdW5jdGlvbigpe2Zvcih2YXIgdCxuLGUscixpPTAsbz1uYi5sZW5ndGg7aTxvOysraSlpZigodD1uYltpXSkmJihyPShuPXQuaGFsZmVkZ2VzKS5sZW5ndGgpKXt2YXIgYT1uZXcgQXJyYXkociksdT1uZXcgQXJyYXkocik7Zm9yKGU9MDtlPHI7KytlKWFbZV09ZSx1W2VdPUVjKHQscmJbbltlXV0pO2ZvcihhLnNvcnQoZnVuY3Rpb24odCxuKXtyZXR1cm4gdVtuXS11W3RdfSksZT0wO2U8cjsrK2UpdVtlXT1uW2FbZV1dO2ZvcihlPTA7ZTxyOysrZSluW2VdPXVbZV19fSgpLG4pe3ZhciBhPStuWzBdWzBdLHU9K25bMF1bMV0sZj0rblsxXVswXSxjPStuWzFdWzFdOyhmdW5jdGlvbih0LG4sZSxyKXtmb3IodmFyIGksbz1yYi5sZW5ndGg7by0tOylTYyhpPXJiW29dLHQsbixlLHIpJiZOYyhpLHQsbixlLHIpJiYoTWF0aC5hYnMoaVswXVswXS1pWzFdWzBdKT5hYnx8TWF0aC5hYnMoaVswXVsxXS1pWzFdWzFdKT5hYil8fGRlbGV0ZSByYltvXX0pKGEsdSxmLGMpLGZ1bmN0aW9uKHQsbixlLHIpe3ZhciBpLG8sYSx1LGYsYyxzLGwsaCxkLHAsdixnPW5iLmxlbmd0aCx5PSEwO2ZvcihpPTA7aTxnOysraSlpZihvPW5iW2ldKXtmb3IoYT1vLnNpdGUsdT0oZj1vLmhhbGZlZGdlcykubGVuZ3RoO3UtLTspcmJbZlt1XV18fGYuc3BsaWNlKHUsMSk7Zm9yKHU9MCxjPWYubGVuZ3RoO3U8YzspcD0oZD1DYyhvLHJiW2ZbdV1dKSlbMF0sdj1kWzFdLGw9KHM9a2MobyxyYltmWysrdSVjXV0pKVswXSxoPXNbMV0sKE1hdGguYWJzKHAtbCk+YWJ8fE1hdGguYWJzKHYtaCk+YWIpJiYoZi5zcGxpY2UodSwwLHJiLnB1c2goQWMoYSxkLE1hdGguYWJzKHAtdCk8YWImJnItdj5hYj9bdCxNYXRoLmFicyhsLXQpPGFiP2g6cl06TWF0aC5hYnModi1yKTxhYiYmZS1wPmFiP1tNYXRoLmFicyhoLXIpPGFiP2w6ZSxyXTpNYXRoLmFicyhwLWUpPGFiJiZ2LW4+YWI/W2UsTWF0aC5hYnMobC1lKTxhYj9oOm5dOk1hdGguYWJzKHYtbik8YWImJnAtdD5hYj9bTWF0aC5hYnMoaC1uKTxhYj9sOnQsbl06bnVsbCkpLTEpLCsrYyk7YyYmKHk9ITEpfWlmKHkpe3ZhciBfLGIsbSx4PTEvMDtmb3IoaT0wLHk9bnVsbDtpPGc7KytpKShvPW5iW2ldKSYmKG09KF89KGE9by5zaXRlKVswXS10KSpfKyhiPWFbMV0tbikqYik8eCYmKHg9bSx5PW8pO2lmKHkpe3ZhciB3PVt0LG5dLE09W3Qscl0sQT1bZSxyXSxUPVtlLG5dO3kuaGFsZmVkZ2VzLnB1c2gocmIucHVzaChBYyhhPXkuc2l0ZSx3LE0pKS0xLHJiLnB1c2goQWMoYSxNLEEpKS0xLHJiLnB1c2goQWMoYSxBLFQpKS0xLHJiLnB1c2goQWMoYSxULHcpKS0xKX19Zm9yKGk9MDtpPGc7KytpKShvPW5iW2ldKSYmKG8uaGFsZmVkZ2VzLmxlbmd0aHx8ZGVsZXRlIG5iW2ldKX0oYSx1LGYsYyl9dGhpcy5lZGdlcz1yYix0aGlzLmNlbGxzPW5iLHRiPWViPXJiPW5iPW51bGx9ZnVuY3Rpb24gRmModCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIEljKHQsbixlKXt0aGlzLms9dCx0aGlzLng9bix0aGlzLnk9ZX1mdW5jdGlvbiBqYyh0KXtyZXR1cm4gdC5fX3pvb218fGZifWZ1bmN0aW9uIEhjKCl7dC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBYYygpe3QuZXZlbnQucHJldmVudERlZmF1bHQoKSx0LmV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIEdjKCl7cmV0dXJuIXQuZXZlbnQuYnV0dG9ufWZ1bmN0aW9uIFZjKCl7dmFyIHQsbixlPXRoaXM7cmV0dXJuIGUgaW5zdGFuY2VvZiBTVkdFbGVtZW50Pyh0PShlPWUub3duZXJTVkdFbGVtZW50fHxlKS53aWR0aC5iYXNlVmFsLnZhbHVlLG49ZS5oZWlnaHQuYmFzZVZhbC52YWx1ZSk6KHQ9ZS5jbGllbnRXaWR0aCxuPWUuY2xpZW50SGVpZ2h0KSxbWzAsMF0sW3Qsbl1dfWZ1bmN0aW9uICRjKCl7cmV0dXJuIHRoaXMuX196b29tfHxmYn1mdW5jdGlvbiBXYygpe3JldHVybi10LmV2ZW50LmRlbHRhWSoodC5ldmVudC5kZWx0YU1vZGU/MTIwOjEpLzUwMH1mdW5jdGlvbiBaYygpe3JldHVyblwib250b3VjaHN0YXJ0XCJpbiB0aGlzfWZ1bmN0aW9uIFFjKHQsbixlKXt2YXIgcj10LmludmVydFgoblswXVswXSktZVswXVswXSxpPXQuaW52ZXJ0WChuWzFdWzBdKS1lWzFdWzBdLG89dC5pbnZlcnRZKG5bMF1bMV0pLWVbMF1bMV0sYT10LmludmVydFkoblsxXVsxXSktZVsxXVsxXTtyZXR1cm4gdC50cmFuc2xhdGUoaT5yPyhyK2kpLzI6TWF0aC5taW4oMCxyKXx8TWF0aC5tYXgoMCxpKSxhPm8/KG8rYSkvMjpNYXRoLm1pbigwLG8pfHxNYXRoLm1heCgwLGEpKX12YXIgSmM9ZShuKSxLYz1KYy5yaWdodCx0cz1KYy5sZWZ0LG5zPUFycmF5LnByb3RvdHlwZSxlcz1ucy5zbGljZSxycz1ucy5tYXAsaXM9TWF0aC5zcXJ0KDUwKSxvcz1NYXRoLnNxcnQoMTApLGFzPU1hdGguc3FydCgyKSx1cz1BcnJheS5wcm90b3R5cGUuc2xpY2UsZnM9MSxjcz0yLHNzPTMsbHM9NCxocz0xZS02LGRzPXt2YWx1ZTpmdW5jdGlvbigpe319O1MucHJvdG90eXBlPU4ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpTLG9uOmZ1bmN0aW9uKHQsbil7dmFyIGUscj10aGlzLl8saT1mdW5jdGlvbih0LG4pe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxcXHMrLykubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPVwiXCIscj10LmluZGV4T2YoXCIuXCIpO2lmKHI+PTAmJihlPXQuc2xpY2UocisxKSx0PXQuc2xpY2UoMCxyKSksdCYmIW4uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biB0eXBlOiBcIit0KTtyZXR1cm57dHlwZTp0LG5hbWU6ZX19KX0odCtcIlwiLHIpLG89LTEsYT1pLmxlbmd0aDt7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1uJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcihcImludmFsaWQgY2FsbGJhY2s6IFwiK24pO2Zvcig7KytvPGE7KWlmKGU9KHQ9aVtvXSkudHlwZSlyW2VdPUUocltlXSx0Lm5hbWUsbik7ZWxzZSBpZihudWxsPT1uKWZvcihlIGluIHIpcltlXT1FKHJbZV0sdC5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytvPGE7KWlmKChlPSh0PWlbb10pLnR5cGUpJiYoZT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZSxyPTAsaT10Lmxlbmd0aDtyPGk7KytyKWlmKChlPXRbcl0pLm5hbWU9PT1uKXJldHVybiBlLnZhbHVlfShyW2VdLHQubmFtZSkpKXJldHVybiBlfX0sY29weTpmdW5jdGlvbigpe3ZhciB0PXt9LG49dGhpcy5fO2Zvcih2YXIgZSBpbiBuKXRbZV09bltlXS5zbGljZSgpO3JldHVybiBuZXcgUyh0KX0sY2FsbDpmdW5jdGlvbih0LG4pe2lmKChlPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIGUscixpPW5ldyBBcnJheShlKSxvPTA7bzxlOysrbylpW29dPWFyZ3VtZW50c1tvKzJdO2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biB0eXBlOiBcIit0KTtmb3Iobz0wLGU9KHI9dGhpcy5fW3RdKS5sZW5ndGg7bzxlOysrbylyW29dLnZhbHVlLmFwcGx5KG4saSl9LGFwcGx5OmZ1bmN0aW9uKHQsbixlKXtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcihcInVua25vd24gdHlwZTogXCIrdCk7Zm9yKHZhciByPXRoaXMuX1t0XSxpPTAsbz1yLmxlbmd0aDtpPG87KytpKXJbaV0udmFsdWUuYXBwbHkobixlKX19O3ZhciBwcz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIix2cz17c3ZnOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIix4aHRtbDpwcyx4bGluazpcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIix4bWw6XCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvXCJ9LGdzPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdGNoZXModCl9fTtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQpe3ZhciB5cz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7aWYoIXlzLm1hdGNoZXMpe3ZhciBfcz15cy53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fHlzLm1zTWF0Y2hlc1NlbGVjdG9yfHx5cy5tb3pNYXRjaGVzU2VsZWN0b3J8fHlzLm9NYXRjaGVzU2VsZWN0b3I7Z3M9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIF9zLmNhbGwodGhpcyx0KX19fX12YXIgYnM9Z3M7VS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlUsYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUodCx0aGlzLl9uZXh0KX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUodCxuKX0scXVlcnlTZWxlY3RvcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3IodCl9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKHQpfX07dmFyIG1zPVwiJFwiO0gucHJvdG90eXBlPXthZGQ6ZnVuY3Rpb24odCl7dGhpcy5fbmFtZXMuaW5kZXhPZih0KTwwJiYodGhpcy5fbmFtZXMucHVzaCh0KSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsdGhpcy5fbmFtZXMuam9pbihcIiBcIikpKX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuX25hbWVzLmluZGV4T2YodCk7bj49MCYmKHRoaXMuX25hbWVzLnNwbGljZShuLDEpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKFwiY2xhc3NcIix0aGlzLl9uYW1lcy5qb2luKFwiIFwiKSkpfSxjb250YWluczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbmFtZXMuaW5kZXhPZih0KT49MH19O3ZhciB4cz17fTtpZih0LmV2ZW50PW51bGwsXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGRvY3VtZW50KXtcIm9ubW91c2VlbnRlclwiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fHwoeHM9e21vdXNlZW50ZXI6XCJtb3VzZW92ZXJcIixtb3VzZWxlYXZlOlwibW91c2VvdXRcIn0pfXZhciB3cz1bbnVsbF07dXQucHJvdG90eXBlPWZ0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6dXQsc2VsZWN0OmZ1bmN0aW9uKHQpe1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXoodCkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT1uLmxlbmd0aCxyPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSlmb3IodmFyIG8sYSx1PW5baV0sZj11Lmxlbmd0aCxjPXJbaV09bmV3IEFycmF5KGYpLHM9MDtzPGY7KytzKShvPXVbc10pJiYoYT10LmNhbGwobyxvLl9fZGF0YV9fLHMsdSkpJiYoXCJfX2RhdGFfX1wiaW4gbyYmKGEuX19kYXRhX189by5fX2RhdGFfXyksY1tzXT1hKTtyZXR1cm4gbmV3IHV0KHIsdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbih0KXtcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1MKHQpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9bi5sZW5ndGgscj1bXSxpPVtdLG89MDtvPGU7KytvKWZvcih2YXIgYSx1PW5bb10sZj11Lmxlbmd0aCxjPTA7YzxmOysrYykoYT11W2NdKSYmKHIucHVzaCh0LmNhbGwoYSxhLl9fZGF0YV9fLGMsdSkpLGkucHVzaChhKSk7cmV0dXJuIG5ldyB1dChyLGkpfSxmaWx0ZXI6ZnVuY3Rpb24odCl7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9YnModCkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT1uLmxlbmd0aCxyPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSlmb3IodmFyIG8sYT1uW2ldLHU9YS5sZW5ndGgsZj1yW2ldPVtdLGM9MDtjPHU7KytjKShvPWFbY10pJiZ0LmNhbGwobyxvLl9fZGF0YV9fLGMsYSkmJmYucHVzaChvKTtyZXR1cm4gbmV3IHV0KHIsdGhpcy5fcGFyZW50cyl9LGRhdGE6ZnVuY3Rpb24odCxuKXtpZighdClyZXR1cm4gZD1uZXcgQXJyYXkodGhpcy5zaXplKCkpLGM9LTEsdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe2RbKytjXT10fSksZDt2YXIgZT1uP086cSxyPXRoaXMuX3BhcmVudHMsaT10aGlzLl9ncm91cHM7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSh0KSk7Zm9yKHZhciBvPWkubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHU9bmV3IEFycmF5KG8pLGY9bmV3IEFycmF5KG8pLGM9MDtjPG87KytjKXt2YXIgcz1yW2NdLGw9aVtjXSxoPWwubGVuZ3RoLGQ9dC5jYWxsKHMscyYmcy5fX2RhdGFfXyxjLHIpLHA9ZC5sZW5ndGgsdj11W2NdPW5ldyBBcnJheShwKSxnPWFbY109bmV3IEFycmF5KHApO2UocyxsLHYsZyxmW2NdPW5ldyBBcnJheShoKSxkLG4pO2Zvcih2YXIgeSxfLGI9MCxtPTA7YjxwOysrYilpZih5PXZbYl0pe2ZvcihiPj1tJiYobT1iKzEpOyEoXz1nW21dKSYmKyttPHA7KTt5Ll9uZXh0PV98fG51bGx9fXJldHVybiBhPW5ldyB1dChhLHIpLGEuX2VudGVyPXUsYS5fZXhpdD1mLGF9LGVudGVyOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB1dCh0aGlzLl9lbnRlcnx8dGhpcy5fZ3JvdXBzLm1hcChEKSx0aGlzLl9wYXJlbnRzKX0sZXhpdDpmdW5jdGlvbigpe3JldHVybiBuZXcgdXQodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChEKSx0aGlzLl9wYXJlbnRzKX0sbWVyZ2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxlPXQuX2dyb3VwcyxyPW4ubGVuZ3RoLGk9ZS5sZW5ndGgsbz1NYXRoLm1pbihyLGkpLGE9bmV3IEFycmF5KHIpLHU9MDt1PG87Kyt1KWZvcih2YXIgZixjPW5bdV0scz1lW3VdLGw9Yy5sZW5ndGgsaD1hW3VdPW5ldyBBcnJheShsKSxkPTA7ZDxsOysrZCkoZj1jW2RdfHxzW2RdKSYmKGhbZF09Zik7Zm9yKDt1PHI7Kyt1KWFbdV09blt1XTtyZXR1cm4gbmV3IHV0KGEsdGhpcy5fcGFyZW50cyl9LG9yZGVyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxuPS0xLGU9dC5sZW5ndGg7KytuPGU7KWZvcih2YXIgcixpPXRbbl0sbz1pLmxlbmd0aC0xLGE9aVtvXTstLW8+PTA7KShyPWlbb10pJiYoYSYmYSE9PXIubmV4dFNpYmxpbmcmJmEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocixhKSxhPXIpO3JldHVybiB0aGlzfSxzb3J0OmZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4obixlKXtyZXR1cm4gbiYmZT90KG4uX19kYXRhX18sZS5fX2RhdGFfXyk6IW4tIWV9dHx8KHQ9WSk7Zm9yKHZhciBlPXRoaXMuX2dyb3VwcyxyPWUubGVuZ3RoLGk9bmV3IEFycmF5KHIpLG89MDtvPHI7KytvKXtmb3IodmFyIGEsdT1lW29dLGY9dS5sZW5ndGgsYz1pW29dPW5ldyBBcnJheShmKSxzPTA7czxmOysrcykoYT11W3NdKSYmKGNbc109YSk7Yy5zb3J0KG4pfXJldHVybiBuZXcgdXQoaSx0aGlzLl9wYXJlbnRzKS5vcmRlcigpfSxjYWxsOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyx0LmFwcGx5KG51bGwsYXJndW1lbnRzKSx0aGlzfSxub2RlczpmdW5jdGlvbigpe3ZhciB0PW5ldyBBcnJheSh0aGlzLnNpemUoKSksbj0tMTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dFsrK25dPXRoaXN9KSx0fSxub2RlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2dyb3VwcyxuPTAsZT10Lmxlbmd0aDtuPGU7KytuKWZvcih2YXIgcj10W25dLGk9MCxvPXIubGVuZ3RoO2k8bzsrK2kpe3ZhciBhPXJbaV07aWYoYSlyZXR1cm4gYX1yZXR1cm4gbnVsbH0sc2l6ZTpmdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpeysrdH0pLHR9LGVtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMubm9kZSgpfSxlYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT0wLHI9bi5sZW5ndGg7ZTxyOysrZSlmb3IodmFyIGksbz1uW2VdLGE9MCx1PW8ubGVuZ3RoO2E8dTsrK2EpKGk9b1thXSkmJnQuY2FsbChpLGkuX19kYXRhX18sYSxvKTtyZXR1cm4gdGhpc30sYXR0cjpmdW5jdGlvbih0LG4pe3ZhciBlPWsodCk7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgcj10aGlzLm5vZGUoKTtyZXR1cm4gZS5sb2NhbD9yLmdldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCk6ci5nZXRBdHRyaWJ1dGUoZSl9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09bj9lLmxvY2FsP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX06XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9lLmxvY2FsP2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09ZT90aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk6dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsZSl9fTpmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWU/dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCk6dGhpcy5zZXRBdHRyaWJ1dGUodCxlKX19OmUubG9jYWw/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxuKX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUodCxuKX19KShlLG4pKX0sc3R5bGU6ZnVuY3Rpb24odCxuLGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1uP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2Z1bmN0aW9uKHQsbixlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1yP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LHIsZSl9fTpmdW5jdGlvbih0LG4sZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4sZSl9fSkodCxuLG51bGw9PWU/XCJcIjplKSk6Rih0aGlzLm5vZGUoKSx0KX0scHJvcGVydHk6ZnVuY3Rpb24odCxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09bj9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtkZWxldGUgdGhpc1t0XX19OlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1lP2RlbGV0ZSB0aGlzW3RdOnRoaXNbdF09ZX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpc1t0XT1ufX0pKHQsbikpOnRoaXMubm9kZSgpW3RdfSxjbGFzc2VkOmZ1bmN0aW9uKHQsbil7dmFyIGU9SSh0K1wiXCIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciByPWoodGhpcy5ub2RlKCkpLGk9LTEsbz1lLmxlbmd0aDsrK2k8bzspaWYoIXIuY29udGFpbnMoZVtpXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIHRoaXMuZWFjaCgoXCJmdW5jdGlvblwiPT10eXBlb2Ygbj9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpeyhuLmFwcGx5KHRoaXMsYXJndW1lbnRzKT9YOkcpKHRoaXMsdCl9fTpuP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe1godGhpcyx0KX19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe0codGhpcyx0KX19KShlLG4pKX0sdGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD9WOihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09bj9cIlwiOm59fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9fSkodCkpOnRoaXMubm9kZSgpLnRleHRDb250ZW50fSxodG1sOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10PyQ6KFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5pbm5lckhUTUw9bnVsbD09bj9cIlwiOm59fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLmlubmVySFRNTD10fX0pKHQpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChXKX0sbG93ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKFopfSxhcHBlbmQ6ZnVuY3Rpb24odCl7dmFyIG49XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkModCk7cmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwZW5kQ2hpbGQobi5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSl9LGluc2VydDpmdW5jdGlvbih0LG4pe3ZhciBlPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpDKHQpLHI9bnVsbD09bj9ROlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjp6KG4pO3JldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpe3JldHVybiB0aGlzLmluc2VydEJlZm9yZShlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxyLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8bnVsbCl9KX0scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChKKX0sY2xvbmU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2VsZWN0KHQ/dHQ6Syl9LGRhdHVtOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoXCJfX2RhdGFfX1wiLHQpOnRoaXMubm9kZSgpLl9fZGF0YV9ffSxvbjpmdW5jdGlvbih0LG4sZSl7dmFyIHIsaSxvPWZ1bmN0aW9uKHQpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxcXHMrLykubWFwKGZ1bmN0aW9uKHQpe3ZhciBuPVwiXCIsZT10LmluZGV4T2YoXCIuXCIpO3JldHVybiBlPj0wJiYobj10LnNsaWNlKGUrMSksdD10LnNsaWNlKDAsZSkpLHt0eXBlOnQsbmFtZTpufX0pfSh0K1wiXCIpLGE9by5sZW5ndGg7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtmb3IodT1uP2l0OnJ0LG51bGw9PWUmJihlPSExKSxyPTA7cjxhOysrcil0aGlzLmVhY2godShvW3JdLG4sZSkpO3JldHVybiB0aGlzfXZhciB1PXRoaXMubm9kZSgpLl9fb247aWYodSlmb3IodmFyIGYsYz0wLHM9dS5sZW5ndGg7YzxzOysrYylmb3Iocj0wLGY9dVtjXTtyPGE7KytyKWlmKChpPW9bcl0pLnR5cGU9PT1mLnR5cGUmJmkubmFtZT09PWYubmFtZSlyZXR1cm4gZi52YWx1ZX0sZGlzcGF0Y2g6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdGhpcy5lYWNoKChcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGF0KHRoaXMsdCxuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fTpmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhdCh0aGlzLHQsbil9fSkodCxuKSl9fTt2YXIgTXM9MDtsdC5wcm90b3R5cGU9c3QucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpsdCxnZXQ6ZnVuY3Rpb24odCl7Zm9yKHZhciBuPXRoaXMuXzshKG4gaW4gdCk7KWlmKCEodD10LnBhcmVudE5vZGUpKXJldHVybjtyZXR1cm4gdFtuXX0sc2V0OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRbdGhpcy5fXT1ufSxyZW1vdmU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuXyBpbiB0JiZkZWxldGUgdFt0aGlzLl9dfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fSx4dC5wcm90b3R5cGUub249ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl8ub24uYXBwbHkodGhpcy5fLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT10aGlzLl8/dGhpczp0fTt2YXIgQXM9XCJcXFxccyooWystXT9cXFxcZCspXFxcXHMqXCIsVHM9XCJcXFxccyooWystXT9cXFxcZCpcXFxcLj9cXFxcZCsoPzpbZUVdWystXT9cXFxcZCspPylcXFxccypcIixOcz1cIlxcXFxzKihbKy1dP1xcXFxkKlxcXFwuP1xcXFxkKyg/OltlRV1bKy1dP1xcXFxkKyk/KSVcXFxccypcIixTcz0vXiMoWzAtOWEtZl17M30pJC8sRXM9L14jKFswLTlhLWZdezZ9KSQvLGtzPW5ldyBSZWdFeHAoXCJecmdiXFxcXChcIitbQXMsQXMsQXNdK1wiXFxcXCkkXCIpLENzPW5ldyBSZWdFeHAoXCJecmdiXFxcXChcIitbTnMsTnMsTnNdK1wiXFxcXCkkXCIpLFBzPW5ldyBSZWdFeHAoXCJecmdiYVxcXFwoXCIrW0FzLEFzLEFzLFRzXStcIlxcXFwpJFwiKSx6cz1uZXcgUmVnRXhwKFwiXnJnYmFcXFxcKFwiK1tOcyxOcyxOcyxUc10rXCJcXFxcKSRcIiksUnM9bmV3IFJlZ0V4cChcIl5oc2xcXFxcKFwiK1tUcyxOcyxOc10rXCJcXFxcKSRcIiksTHM9bmV3IFJlZ0V4cChcIl5oc2xhXFxcXChcIitbVHMsTnMsTnMsVHNdK1wiXFxcXCkkXCIpLERzPXthbGljZWJsdWU6MTU3OTIzODMsYW50aXF1ZXdoaXRlOjE2NDQ0Mzc1LGFxdWE6NjU1MzUsYXF1YW1hcmluZTo4Mzg4NTY0LGF6dXJlOjE1Nzk0MTc1LGJlaWdlOjE2MTE5MjYwLGJpc3F1ZToxNjc3MDI0NCxibGFjazowLGJsYW5jaGVkYWxtb25kOjE2NzcyMDQ1LGJsdWU6MjU1LGJsdWV2aW9sZXQ6OTA1NTIwMixicm93bjoxMDgyNDIzNCxidXJseXdvb2Q6MTQ1OTYyMzEsY2FkZXRibHVlOjYyNjY1MjgsY2hhcnRyZXVzZTo4Mzg4MzUyLGNob2NvbGF0ZToxMzc4OTQ3MCxjb3JhbDoxNjc0NDI3Mixjb3JuZmxvd2VyYmx1ZTo2NTkxOTgxLGNvcm5zaWxrOjE2Nzc1Mzg4LGNyaW1zb246MTQ0MjMxMDAsY3lhbjo2NTUzNSxkYXJrYmx1ZToxMzksZGFya2N5YW46MzU3MjMsZGFya2dvbGRlbnJvZDoxMjA5MjkzOSxkYXJrZ3JheToxMTExOTAxNyxkYXJrZ3JlZW46MjU2MDAsZGFya2dyZXk6MTExMTkwMTcsZGFya2toYWtpOjEyNDMzMjU5LGRhcmttYWdlbnRhOjkxMDk2NDMsZGFya29saXZlZ3JlZW46NTU5Nzk5OSxkYXJrb3JhbmdlOjE2NzQ3NTIwLGRhcmtvcmNoaWQ6MTAwNDAwMTIsZGFya3JlZDo5MTA5NTA0LGRhcmtzYWxtb246MTUzMDg0MTAsZGFya3NlYWdyZWVuOjk0MTk5MTksZGFya3NsYXRlYmx1ZTo0NzM0MzQ3LGRhcmtzbGF0ZWdyYXk6MzEwMDQ5NSxkYXJrc2xhdGVncmV5OjMxMDA0OTUsZGFya3R1cnF1b2lzZTo1Mjk0NSxkYXJrdmlvbGV0Ojk2OTk1MzksZGVlcHBpbms6MTY3MTY5NDcsZGVlcHNreWJsdWU6NDkxNTEsZGltZ3JheTo2OTA4MjY1LGRpbWdyZXk6NjkwODI2NSxkb2RnZXJibHVlOjIwMDMxOTksZmlyZWJyaWNrOjExNjc0MTQ2LGZsb3JhbHdoaXRlOjE2Nzc1OTIwLGZvcmVzdGdyZWVuOjIyNjM4NDIsZnVjaHNpYToxNjcxMTkzNSxnYWluc2Jvcm86MTQ0NzQ0NjAsZ2hvc3R3aGl0ZToxNjMxNjY3MSxnb2xkOjE2NzY2NzIwLGdvbGRlbnJvZDoxNDMyOTEyMCxncmF5Ojg0MjE1MDQsZ3JlZW46MzI3NjgsZ3JlZW55ZWxsb3c6MTE0MDMwNTUsZ3JleTo4NDIxNTA0LGhvbmV5ZGV3OjE1Nzk0MTYwLGhvdHBpbms6MTY3Mzg3NDAsaW5kaWFucmVkOjEzNDU4NTI0LGluZGlnbzo0OTE1MzMwLGl2b3J5OjE2Nzc3MjAwLGtoYWtpOjE1Nzg3NjYwLGxhdmVuZGVyOjE1MTMyNDEwLGxhdmVuZGVyYmx1c2g6MTY3NzMzNjUsbGF3bmdyZWVuOjgxOTA5NzYsbGVtb25jaGlmZm9uOjE2Nzc1ODg1LGxpZ2h0Ymx1ZToxMTM5MzI1NCxsaWdodGNvcmFsOjE1NzYxNTM2LGxpZ2h0Y3lhbjoxNDc0NTU5OSxsaWdodGdvbGRlbnJvZHllbGxvdzoxNjQ0ODIxMCxsaWdodGdyYXk6MTM4ODIzMjMsbGlnaHRncmVlbjo5NDk4MjU2LGxpZ2h0Z3JleToxMzg4MjMyMyxsaWdodHBpbms6MTY3NTg0NjUsbGlnaHRzYWxtb246MTY3NTI3NjIsbGlnaHRzZWFncmVlbjoyMTQyODkwLGxpZ2h0c2t5Ymx1ZTo4OTAwMzQ2LGxpZ2h0c2xhdGVncmF5Ojc4MzM3NTMsbGlnaHRzbGF0ZWdyZXk6NzgzMzc1MyxsaWdodHN0ZWVsYmx1ZToxMTU4NDczNCxsaWdodHllbGxvdzoxNjc3NzE4NCxsaW1lOjY1MjgwLGxpbWVncmVlbjozMzI5MzMwLGxpbmVuOjE2NDQ1NjcwLG1hZ2VudGE6MTY3MTE5MzUsbWFyb29uOjgzODg2MDgsbWVkaXVtYXF1YW1hcmluZTo2NzM3MzIyLG1lZGl1bWJsdWU6MjA1LG1lZGl1bW9yY2hpZDoxMjIxMTY2NyxtZWRpdW1wdXJwbGU6OTY2MjY4MyxtZWRpdW1zZWFncmVlbjozOTc4MDk3LG1lZGl1bXNsYXRlYmx1ZTo4MDg3NzkwLG1lZGl1bXNwcmluZ2dyZWVuOjY0MTU0LG1lZGl1bXR1cnF1b2lzZTo0NzcyMzAwLG1lZGl1bXZpb2xldHJlZDoxMzA0NzE3MyxtaWRuaWdodGJsdWU6MTY0NDkxMixtaW50Y3JlYW06MTYxMjE4NTAsbWlzdHlyb3NlOjE2NzcwMjczLG1vY2Nhc2luOjE2NzcwMjI5LG5hdmFqb3doaXRlOjE2NzY4Njg1LG5hdnk6MTI4LG9sZGxhY2U6MTY2NDM1NTgsb2xpdmU6ODQyMTM3NixvbGl2ZWRyYWI6NzA0ODczOSxvcmFuZ2U6MTY3NTM5MjAsb3JhbmdlcmVkOjE2NzI5MzQ0LG9yY2hpZDoxNDMxNTczNCxwYWxlZ29sZGVucm9kOjE1NjU3MTMwLHBhbGVncmVlbjoxMDAyNTg4MCxwYWxldHVycXVvaXNlOjExNTI5OTY2LHBhbGV2aW9sZXRyZWQ6MTQzODEyMDMscGFwYXlhd2hpcDoxNjc3MzA3NyxwZWFjaHB1ZmY6MTY3Njc2NzMscGVydToxMzQ2ODk5MSxwaW5rOjE2NzYxMDM1LHBsdW06MTQ1MjQ2MzcscG93ZGVyYmx1ZToxMTU5MTkxMCxwdXJwbGU6ODM4ODczNixyZWJlY2NhcHVycGxlOjY2OTc4ODEscmVkOjE2NzExNjgwLHJvc3licm93bjoxMjM1NzUxOSxyb3lhbGJsdWU6NDI4Njk0NSxzYWRkbGVicm93bjo5MTI3MTg3LHNhbG1vbjoxNjQxNjg4MixzYW5keWJyb3duOjE2MDMyODY0LHNlYWdyZWVuOjMwNTAzMjcsc2Vhc2hlbGw6MTY3NzQ2Mzgsc2llbm5hOjEwNTA2Nzk3LHNpbHZlcjoxMjYzMjI1Nixza3libHVlOjg5MDAzMzEsc2xhdGVibHVlOjY5NzAwNjEsc2xhdGVncmF5OjczNzI5NDQsc2xhdGVncmV5OjczNzI5NDQsc25vdzoxNjc3NTkzMCxzcHJpbmdncmVlbjo2NTQwNyxzdGVlbGJsdWU6NDYyMDk4MCx0YW46MTM4MDg3ODAsdGVhbDozMjg5Nix0aGlzdGxlOjE0MjA0ODg4LHRvbWF0bzoxNjczNzA5NSx0dXJxdW9pc2U6NDI1MTg1Nix2aW9sZXQ6MTU2MzEwODYsd2hlYXQ6MTYxMTMzMzEsd2hpdGU6MTY3NzcyMTUsd2hpdGVzbW9rZToxNjExOTI4NSx5ZWxsb3c6MTY3NzY5NjAseWVsbG93Z3JlZW46MTAxNDUwNzR9O050KEV0LGt0LHtkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmhleCgpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpK1wiXCJ9fSksTnQoTHQsUnQsU3QoRXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/MS8uNzpNYXRoLnBvdygxLy43LHQpLG5ldyBMdCh0aGlzLnIqdCx0aGlzLmcqdCx0aGlzLmIqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8uNzpNYXRoLnBvdyguNyx0KSxuZXcgTHQodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIDA8PXRoaXMuciYmdGhpcy5yPD0yNTUmJjA8PXRoaXMuZyYmdGhpcy5nPD0yNTUmJjA8PXRoaXMuYiYmdGhpcy5iPD0yNTUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6ZnVuY3Rpb24oKXtyZXR1cm5cIiNcIitEdCh0aGlzLnIpK0R0KHRoaXMuZykrRHQodGhpcy5iKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpP1wicmdiKFwiOlwicmdiYShcIikrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLnIpfHwwKSkrXCIsIFwiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5nKXx8MCkpK1wiLCBcIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuYil8fDApKSsoMT09PXQ/XCIpXCI6XCIsIFwiK3QrXCIpXCIpfX0pKSxOdChPdCxxdCxTdChFdCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8xLy43Ok1hdGgucG93KDEvLjcsdCksbmV3IE90KHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/Ljc6TWF0aC5wb3coLjcsdCksbmV3IE90KHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5oJTM2MCszNjAqKHRoaXMuaDwwKSxuPWlzTmFOKHQpfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLGU9dGhpcy5sLHI9ZSsoZTwuNT9lOjEtZSkqbixpPTIqZS1yO3JldHVybiBuZXcgTHQoWXQodD49MjQwP3QtMjQwOnQrMTIwLGksciksWXQodCxpLHIpLFl0KHQ8MTIwP3QrMjQwOnQtMTIwLGksciksdGhpcy5vcGFjaXR5KX0sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4oMDw9dGhpcy5zJiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9fSkpO3ZhciBVcz1NYXRoLlBJLzE4MCxxcz0xODAvTWF0aC5QSSxPcz0uOTY0MjIsWXM9MSxCcz0uODI1MjEsRnM9NC8yOSxJcz02LzI5LGpzPTMqSXMqSXMsSHM9SXMqSXMqSXM7TnQoSXQsRnQsU3QoRXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgSXQodGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBJdCh0aGlzLmwtMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLmwrMTYpLzExNixuPWlzTmFOKHRoaXMuYSk/dDp0K3RoaXMuYS81MDAsZT1pc05hTih0aGlzLmIpP3Q6dC10aGlzLmIvMjAwO3JldHVybiBuPU9zKkh0KG4pLHQ9WXMqSHQodCksZT1CcypIdChlKSxuZXcgTHQoWHQoMy4xMzM4NTYxKm4tMS42MTY4NjY3KnQtLjQ5MDYxNDYqZSksWHQoLS45Nzg3Njg0Km4rMS45MTYxNDE1KnQrLjAzMzQ1NCplKSxYdCguMDcxOTQ1MypuLS4yMjg5OTE0KnQrMS40MDUyNDI3KmUpLHRoaXMub3BhY2l0eSl9fSkpLE50KFd0LCR0LFN0KEV0LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFd0KHRoaXMuaCx0aGlzLmMsdGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgV3QodGhpcy5oLHRoaXMuYyx0aGlzLmwtMTgqKG51bGw9PXQ/MTp0KSx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXtyZXR1cm4gQnQodGhpcykucmdiKCl9fSkpO3ZhciBYcz0tLjI5MjI3LEdzPS0uOTA2NDksVnM9MS45NzI5NCwkcz1WcypHcyxXcz0xLjc4Mjc3KlZzLFpzPTEuNzgyNzcqWHMtIC0uMTQ4NjEqR3M7TnQoUXQsWnQsU3QoRXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/MS8uNzpNYXRoLnBvdygxLy43LHQpLG5ldyBRdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10Py43Ok1hdGgucG93KC43LHQpLG5ldyBRdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PWlzTmFOKHRoaXMuaCk/MDoodGhpcy5oKzEyMCkqVXMsbj0rdGhpcy5sLGU9aXNOYU4odGhpcy5zKT8wOnRoaXMucypuKigxLW4pLHI9TWF0aC5jb3ModCksaT1NYXRoLnNpbih0KTtyZXR1cm4gbmV3IEx0KDI1NSoobitlKigtLjE0ODYxKnIrMS43ODI3NyppKSksMjU1KihuK2UqKFhzKnIrR3MqaSkpLDI1NSoobitlKihWcypyKSksdGhpcy5vcGFjaXR5KX19KSk7dmFyIFFzLEpzLEtzLHRsLG5sLGVsLHJsPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0LG4pe3ZhciBlPXIoKHQ9UnQodCkpLnIsKG49UnQobikpLnIpLGk9cih0Lmcsbi5nKSxvPXIodC5iLG4uYiksYT1hbih0Lm9wYWNpdHksbi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQucj1lKG4pLHQuZz1pKG4pLHQuYj1vKG4pLHQub3BhY2l0eT1hKG4pLHQrXCJcIn19dmFyIHI9b24obik7cmV0dXJuIGUuZ2FtbWE9dCxlfSgxKSxpbD11bihLdCksb2w9dW4odG4pLGFsPS9bLStdPyg/OlxcZCtcXC4/XFxkKnxcXC4/XFxkKykoPzpbZUVdWy0rXT9cXGQrKT8vZyx1bD1uZXcgUmVnRXhwKGFsLnNvdXJjZSxcImdcIiksZmw9MTgwL01hdGguUEksY2w9e3RyYW5zbGF0ZVg6MCx0cmFuc2xhdGVZOjAscm90YXRlOjAsc2tld1g6MCxzY2FsZVg6MSxzY2FsZVk6MX0sc2w9Z24oZnVuY3Rpb24odCl7cmV0dXJuXCJub25lXCI9PT10P2NsOihRc3x8KFFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJESVZcIiksSnM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LEtzPWRvY3VtZW50LmRlZmF1bHRWaWV3KSxRcy5zdHlsZS50cmFuc2Zvcm09dCx0PUtzLmdldENvbXB1dGVkU3R5bGUoSnMuYXBwZW5kQ2hpbGQoUXMpLG51bGwpLmdldFByb3BlcnR5VmFsdWUoXCJ0cmFuc2Zvcm1cIiksSnMucmVtb3ZlQ2hpbGQoUXMpLHQ9dC5zbGljZSg3LC0xKS5zcGxpdChcIixcIiksdm4oK3RbMF0sK3RbMV0sK3RbMl0sK3RbM10sK3RbNF0sK3RbNV0pKX0sXCJweCwgXCIsXCJweClcIixcImRlZylcIiksbGw9Z24oZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/Y2w6KHRsfHwodGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcImdcIikpLHRsLnNldEF0dHJpYnV0ZShcInRyYW5zZm9ybVwiLHQpLCh0PXRsLnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCkpPyh0PXQubWF0cml4LHZuKHQuYSx0LmIsdC5jLHQuZCx0LmUsdC5mKSk6Y2wpfSxcIiwgXCIsXCIpXCIsXCIpXCIpLGhsPU1hdGguU1FSVDIsZGw9MixwbD00LHZsPTFlLTEyLGdsPWJuKHJuKSx5bD1ibihhbiksX2w9bW4ocm4pLGJsPW1uKGFuKSxtbD14bihybikseGw9eG4oYW4pLHdsPTAsTWw9MCxBbD0wLFRsPTFlMyxObD0wLFNsPTAsRWw9MCxrbD1cIm9iamVjdFwiPT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLENsPVwib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6ZnVuY3Rpb24odCl7c2V0VGltZW91dCh0LDE3KX07QW4ucHJvdG90eXBlPVRuLnByb3RvdHlwZT17Y29uc3RydWN0b3I6QW4scmVzdGFydDpmdW5jdGlvbih0LG4sZSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb25cIik7ZT0obnVsbD09ZT93bigpOitlKSsobnVsbD09bj8wOituKSx0aGlzLl9uZXh0fHxlbD09PXRoaXN8fChlbD9lbC5fbmV4dD10aGlzOm5sPXRoaXMsZWw9dGhpcyksdGhpcy5fY2FsbD10LHRoaXMuX3RpbWU9ZSxrbigpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5fY2FsbCYmKHRoaXMuX2NhbGw9bnVsbCx0aGlzLl90aW1lPTEvMCxrbigpKX19O3ZhciBQbD1OKFwic3RhcnRcIixcImVuZFwiLFwiaW50ZXJydXB0XCIpLHpsPVtdLFJsPTAsTGw9MSxEbD0yLFVsPTMscWw9NCxPbD01LFlsPTYsQmw9ZnQucHJvdG90eXBlLmNvbnN0cnVjdG9yLEZsPTAsSWw9ZnQucHJvdG90eXBlO09uLnByb3RvdHlwZT1Zbi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOk9uLHNlbGVjdDpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9uYW1lLGU9dGhpcy5faWQ7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9eih0KSk7Zm9yKHZhciByPXRoaXMuX2dyb3VwcyxpPXIubGVuZ3RoLG89bmV3IEFycmF5KGkpLGE9MDthPGk7KythKWZvcih2YXIgdSxmLGM9clthXSxzPWMubGVuZ3RoLGw9b1thXT1uZXcgQXJyYXkocyksaD0wO2g8czsrK2gpKHU9Y1toXSkmJihmPXQuY2FsbCh1LHUuX19kYXRhX18saCxjKSkmJihcIl9fZGF0YV9fXCJpbiB1JiYoZi5fX2RhdGFfXz11Ll9fZGF0YV9fKSxsW2hdPWYsUG4obFtoXSxuLGUsaCxsLExuKHUsZSkpKTtyZXR1cm4gbmV3IE9uKG8sdGhpcy5fcGFyZW50cyxuLGUpfSxzZWxlY3RBbGw6ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5fbmFtZSxlPXRoaXMuX2lkO1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PUwodCkpO2Zvcih2YXIgcj10aGlzLl9ncm91cHMsaT1yLmxlbmd0aCxvPVtdLGE9W10sdT0wO3U8aTsrK3UpZm9yKHZhciBmLGM9clt1XSxzPWMubGVuZ3RoLGw9MDtsPHM7KytsKWlmKGY9Y1tsXSl7Zm9yKHZhciBoLGQ9dC5jYWxsKGYsZi5fX2RhdGFfXyxsLGMpLHA9TG4oZixlKSx2PTAsZz1kLmxlbmd0aDt2PGc7Kyt2KShoPWRbdl0pJiZQbihoLG4sZSx2LGQscCk7by5wdXNoKGQpLGEucHVzaChmKX1yZXR1cm4gbmV3IE9uKG8sYSxuLGUpfSxmaWx0ZXI6ZnVuY3Rpb24odCl7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9YnModCkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT1uLmxlbmd0aCxyPW5ldyBBcnJheShlKSxpPTA7aTxlOysraSlmb3IodmFyIG8sYT1uW2ldLHU9YS5sZW5ndGgsZj1yW2ldPVtdLGM9MDtjPHU7KytjKShvPWFbY10pJiZ0LmNhbGwobyxvLl9fZGF0YV9fLGMsYSkmJmYucHVzaChvKTtyZXR1cm4gbmV3IE9uKHIsdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sbWVyZ2U6ZnVuY3Rpb24odCl7aWYodC5faWQhPT10aGlzLl9pZCl0aHJvdyBuZXcgRXJyb3I7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxlPXQuX2dyb3VwcyxyPW4ubGVuZ3RoLGk9ZS5sZW5ndGgsbz1NYXRoLm1pbihyLGkpLGE9bmV3IEFycmF5KHIpLHU9MDt1PG87Kyt1KWZvcih2YXIgZixjPW5bdV0scz1lW3VdLGw9Yy5sZW5ndGgsaD1hW3VdPW5ldyBBcnJheShsKSxkPTA7ZDxsOysrZCkoZj1jW2RdfHxzW2RdKSYmKGhbZF09Zik7Zm9yKDt1PHI7Kyt1KWFbdV09blt1XTtyZXR1cm4gbmV3IE9uKGEsdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sc2VsZWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBCbCh0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9LHRyYW5zaXRpb246ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fbmFtZSxuPXRoaXMuX2lkLGU9Qm4oKSxyPXRoaXMuX2dyb3VwcyxpPXIubGVuZ3RoLG89MDtvPGk7KytvKWZvcih2YXIgYSx1PXJbb10sZj11Lmxlbmd0aCxjPTA7YzxmOysrYylpZihhPXVbY10pe3ZhciBzPUxuKGEsbik7UG4oYSx0LGUsYyx1LHt0aW1lOnMudGltZStzLmRlbGF5K3MuZHVyYXRpb24sZGVsYXk6MCxkdXJhdGlvbjpzLmR1cmF0aW9uLGVhc2U6cy5lYXNlfSl9cmV0dXJuIG5ldyBPbihyLHRoaXMuX3BhcmVudHMsdCxlKX0sY2FsbDpJbC5jYWxsLG5vZGVzOklsLm5vZGVzLG5vZGU6SWwubm9kZSxzaXplOklsLnNpemUsZW1wdHk6SWwuZW1wdHksZWFjaDpJbC5lYWNoLG9uOmZ1bmN0aW9uKHQsbil7dmFyIGU9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9Mbih0aGlzLm5vZGUoKSxlKS5vbi5vbih0KTp0aGlzLmVhY2goZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbz1mdW5jdGlvbih0KXtyZXR1cm4odCtcIlwiKS50cmltKCkuc3BsaXQoL158XFxzKy8pLmV2ZXJ5KGZ1bmN0aW9uKHQpe3ZhciBuPXQuaW5kZXhPZihcIi5cIik7cmV0dXJuIG4+PTAmJih0PXQuc2xpY2UoMCxuKSksIXR8fFwic3RhcnRcIj09PXR9KX0obik/em46Um47cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9byh0aGlzLHQpLHU9YS5vbjt1IT09ciYmKGk9KHI9dSkuY29weSgpKS5vbihuLGUpLGEub249aX19KGUsdCxuKSl9LGF0dHI6ZnVuY3Rpb24odCxuKXt2YXIgZT1rKHQpLHI9XCJ0cmFuc2Zvcm1cIj09PWU/bGw6cW47cmV0dXJuIHRoaXMuYXR0clR3ZWVuKHQsXCJmdW5jdGlvblwiPT10eXBlb2Ygbj8oZS5sb2NhbD9mdW5jdGlvbih0LG4sZSl7dmFyIHIsaSxvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhLHU9ZSh0aGlzKTtpZihudWxsIT11KXJldHVybihhPXRoaXMuZ2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKSk9PT11P251bGw6YT09PXImJnU9PT1pP286bz1uKHI9YSxpPXUpO3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19OmZ1bmN0aW9uKHQsbixlKXt2YXIgcixpLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGEsdT1lKHRoaXMpO2lmKG51bGwhPXUpcmV0dXJuKGE9dGhpcy5nZXRBdHRyaWJ1dGUodCkpPT09dT9udWxsOmE9PT1yJiZ1PT09aT9vOm89bihyPWEsaT11KTt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19KShlLHIsVW4odGhpcyxcImF0dHIuXCIrdCxuKSk6bnVsbD09bj8oZS5sb2NhbD9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19KShlKTooZS5sb2NhbD9mdW5jdGlvbih0LG4sZSl7dmFyIHIsaTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk7cmV0dXJuIG89PT1lP251bGw6bz09PXI/aTppPW4ocj1vLGUpfX06ZnVuY3Rpb24odCxuLGUpe3ZhciByLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89dGhpcy5nZXRBdHRyaWJ1dGUodCk7cmV0dXJuIG89PT1lP251bGw6bz09PXI/aTppPW4ocj1vLGUpfX0pKGUscixuK1wiXCIpKX0sYXR0clR3ZWVuOmZ1bmN0aW9uKHQsbil7dmFyIGU9XCJhdHRyLlwiK3Q7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihlPXRoaXMudHdlZW4oZSkpJiZlLl92YWx1ZTtpZihudWxsPT1uKXJldHVybiB0aGlzLnR3ZWVuKGUsbnVsbCk7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7dmFyIHI9ayh0KTtyZXR1cm4gdGhpcy50d2VlbihlLChyLmxvY2FsP2Z1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZSgpe3ZhciBlPXRoaXMscj1uLmFwcGx5KGUsYXJndW1lbnRzKTtyZXR1cm4gciYmZnVuY3Rpb24obil7ZS5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwscihuKSl9fXJldHVybiBlLl92YWx1ZT1uLGV9OmZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZSgpe3ZhciBlPXRoaXMscj1uLmFwcGx5KGUsYXJndW1lbnRzKTtyZXR1cm4gciYmZnVuY3Rpb24obil7ZS5zZXRBdHRyaWJ1dGUodCxyKG4pKX19cmV0dXJuIGUuX3ZhbHVlPW4sZX0pKHIsbikpfSxzdHlsZTpmdW5jdGlvbih0LG4sZSl7dmFyIHI9XCJ0cmFuc2Zvcm1cIj09KHQrPVwiXCIpP3NsOnFuO3JldHVybiBudWxsPT1uP3RoaXMuc3R5bGVUd2Vlbih0LGZ1bmN0aW9uKHQsbil7dmFyIGUscixpO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPUYodGhpcyx0KSxhPSh0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLEYodGhpcyx0KSk7cmV0dXJuIG89PT1hP251bGw6bz09PWUmJmE9PT1yP2k6aT1uKGU9byxyPWEpfX0odCxyKSkub24oXCJlbmQuc3R5bGUuXCIrdCxmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX0odCkpOnRoaXMuc3R5bGVUd2Vlbih0LFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1GKHRoaXMsdCksdT1lKHRoaXMpO3JldHVybiBudWxsPT11JiYodGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KSx1PUYodGhpcyx0KSksYT09PXU/bnVsbDphPT09ciYmdT09PWk/bzpvPW4ocj1hLGk9dSl9fSh0LHIsVW4odGhpcyxcInN0eWxlLlwiK3QsbikpOmZ1bmN0aW9uKHQsbixlKXt2YXIgcixpO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPUYodGhpcyx0KTtyZXR1cm4gbz09PWU/bnVsbDpvPT09cj9pOmk9bihyPW8sZSl9fSh0LHIsbitcIlwiKSxlKX0sc3R5bGVUd2VlbjpmdW5jdGlvbih0LG4sZSl7dmFyIHI9XCJzdHlsZS5cIisodCs9XCJcIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihyPXRoaXMudHdlZW4ocikpJiZyLl92YWx1ZTtpZihudWxsPT1uKXJldHVybiB0aGlzLnR3ZWVuKHIsbnVsbCk7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4ocixmdW5jdGlvbih0LG4sZSl7ZnVuY3Rpb24gcigpe3ZhciByPXRoaXMsaT1uLmFwcGx5KHIsYXJndW1lbnRzKTtyZXR1cm4gaSYmZnVuY3Rpb24obil7ci5zdHlsZS5zZXRQcm9wZXJ0eSh0LGkobiksZSl9fXJldHVybiByLl92YWx1ZT1uLHJ9KHQsbixudWxsPT1lP1wiXCI6ZSkpfSx0ZXh0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnR3ZWVuKFwidGV4dFwiLFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dCh0aGlzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PW4/XCJcIjpufX0oVW4odGhpcyxcInRleHRcIix0KSk6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX0obnVsbD09dD9cIlwiOnQrXCJcIikpfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vbihcImVuZC5yZW1vdmVcIixmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10aGlzLnBhcmVudE5vZGU7Zm9yKHZhciBlIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtlIT09dClyZXR1cm47biYmbi5yZW1vdmVDaGlsZCh0aGlzKX19KHRoaXMuX2lkKSl9LHR3ZWVuOmZ1bmN0aW9uKHQsbil7dmFyIGU9dGhpcy5faWQ7aWYodCs9XCJcIixhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgcixpPUxuKHRoaXMubm9kZSgpLGUpLnR3ZWVuLG89MCxhPWkubGVuZ3RoO288YTsrK28paWYoKHI9aVtvXSkubmFtZT09PXQpcmV0dXJuIHIudmFsdWU7cmV0dXJuIG51bGx9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09bj9mdW5jdGlvbih0LG4pe3ZhciBlLHI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGk9Um4odGhpcyx0KSxvPWkudHdlZW47aWYobyE9PWUpZm9yKHZhciBhPTAsdT0ocj1lPW8pLmxlbmd0aDthPHU7KythKWlmKHJbYV0ubmFtZT09PW4peyhyPXIuc2xpY2UoKSkuc3BsaWNlKGEsMSk7YnJlYWt9aS50d2Vlbj1yfX06ZnVuY3Rpb24odCxuLGUpe3ZhciByLGk7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89Um4odGhpcyx0KSxhPW8udHdlZW47aWYoYSE9PXIpe2k9KHI9YSkuc2xpY2UoKTtmb3IodmFyIHU9e25hbWU6bix2YWx1ZTplfSxmPTAsYz1pLmxlbmd0aDtmPGM7KytmKWlmKGlbZl0ubmFtZT09PW4pe2lbZl09dTticmVha31mPT09YyYmaS5wdXNoKHUpfW8udHdlZW49aX19KShlLHQsbikpfSxkZWxheTpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt6bih0aGlzLHQpLmRlbGF5PStuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIG49K24sZnVuY3Rpb24oKXt6bih0aGlzLHQpLmRlbGF5PW59fSkobix0KSk6TG4odGhpcy5ub2RlKCksbikuZGVsYXl9LGR1cmF0aW9uOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgoXCJmdW5jdGlvblwiPT10eXBlb2YgdD9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe1JuKHRoaXMsdCkuZHVyYXRpb249K24uYXBwbHkodGhpcyxhcmd1bWVudHMpfX06ZnVuY3Rpb24odCxuKXtyZXR1cm4gbj0rbixmdW5jdGlvbigpe1JuKHRoaXMsdCkuZHVyYXRpb249bn19KShuLHQpKTpMbih0aGlzLm5vZGUoKSxuKS5kdXJhdGlvbn0sZWFzZTpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goZnVuY3Rpb24odCxuKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXtSbih0aGlzLHQpLmVhc2U9bn19KG4sdCkpOkxuKHRoaXMubm9kZSgpLG4pLmVhc2V9fTt2YXIgamw9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBNYXRoLnBvdyh0LG4pfXJldHVybiBuPStuLGUuZXhwb25lbnQ9dCxlfSgzKSxIbD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIDEtTWF0aC5wb3coMS10LG4pfXJldHVybiBuPStuLGUuZXhwb25lbnQ9dCxlfSgzKSxYbD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuKCh0Kj0yKTw9MT9NYXRoLnBvdyh0LG4pOjItTWF0aC5wb3coMi10LG4pKS8yfXJldHVybiBuPStuLGUuZXhwb25lbnQ9dCxlfSgzKSxHbD1NYXRoLlBJLFZsPUdsLzIsJGw9NC8xMSxXbD02LzExLFpsPTgvMTEsUWw9Ljc1LEpsPTkvMTEsS2w9MTAvMTEsdGg9LjkzNzUsbmg9MjEvMjIsZWg9NjMvNjQscmg9MS8kbC8kbCxpaD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIHQqdCooKG4rMSkqdC1uKX1yZXR1cm4gbj0rbixlLm92ZXJzaG9vdD10LGV9KDEuNzAxNTgpLG9oPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4tLXQqdCooKG4rMSkqdCtuKSsxfXJldHVybiBuPStuLGUub3ZlcnNob290PXQsZX0oMS43MDE1OCksYWg9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybigodCo9Mik8MT90KnQqKChuKzEpKnQtbik6KHQtPTIpKnQqKChuKzEpKnQrbikrMikvMn1yZXR1cm4gbj0rbixlLm92ZXJzaG9vdD10LGV9KDEuNzAxNTgpLHVoPTIqTWF0aC5QSSxmaD1mdW5jdGlvbiB0KG4sZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gbipNYXRoLnBvdygyLDEwKi0tdCkqTWF0aC5zaW4oKGktdCkvZSl9dmFyIGk9TWF0aC5hc2luKDEvKG49TWF0aC5tYXgoMSxuKSkpKihlLz11aCk7cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4sZSp1aCl9LHIucGVyaW9kPWZ1bmN0aW9uKGUpe3JldHVybiB0KG4sZSl9LHJ9KDEsLjMpLGNoPWZ1bmN0aW9uIHQobixlKXtmdW5jdGlvbiByKHQpe3JldHVybiAxLW4qTWF0aC5wb3coMiwtMTAqKHQ9K3QpKSpNYXRoLnNpbigodCtpKS9lKX12YXIgaT1NYXRoLmFzaW4oMS8obj1NYXRoLm1heCgxLG4pKSkqKGUvPXVoKTtyZXR1cm4gci5hbXBsaXR1ZGU9ZnVuY3Rpb24obil7cmV0dXJuIHQobixlKnVoKX0sci5wZXJpb2Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHQobixlKX0scn0oMSwuMyksc2g9ZnVuY3Rpb24gdChuLGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuKCh0PTIqdC0xKTwwP24qTWF0aC5wb3coMiwxMCp0KSpNYXRoLnNpbigoaS10KS9lKToyLW4qTWF0aC5wb3coMiwtMTAqdCkqTWF0aC5zaW4oKGkrdCkvZSkpLzJ9dmFyIGk9TWF0aC5hc2luKDEvKG49TWF0aC5tYXgoMSxuKSkpKihlLz11aCk7cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4sZSp1aCl9LHIucGVyaW9kPWZ1bmN0aW9uKGUpe3JldHVybiB0KG4sZSl9LHJ9KDEsLjMpLGxoPXt0aW1lOm51bGwsZGVsYXk6MCxkdXJhdGlvbjoyNTAsZWFzZTpJbn07ZnQucHJvdG90eXBlLmludGVycnVwdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7RG4odGhpcyx0KX0pfSxmdC5wcm90b3R5cGUudHJhbnNpdGlvbj1mdW5jdGlvbih0KXt2YXIgbixlO3QgaW5zdGFuY2VvZiBPbj8obj10Ll9pZCx0PXQuX25hbWUpOihuPUJuKCksKGU9bGgpLnRpbWU9d24oKSx0PW51bGw9PXQ/bnVsbDp0K1wiXCIpO2Zvcih2YXIgcj10aGlzLl9ncm91cHMsaT1yLmxlbmd0aCxvPTA7bzxpOysrbylmb3IodmFyIGEsdT1yW29dLGY9dS5sZW5ndGgsYz0wO2M8ZjsrK2MpKGE9dVtjXSkmJlBuKGEsdCxuLGMsdSxlfHxWbihhLG4pKTtyZXR1cm4gbmV3IE9uKHIsdGhpcy5fcGFyZW50cyx0LG4pfTt2YXIgaGg9W251bGxdLGRoPXtuYW1lOlwiZHJhZ1wifSxwaD17bmFtZTpcInNwYWNlXCJ9LHZoPXtuYW1lOlwiaGFuZGxlXCJ9LGdoPXtuYW1lOlwiY2VudGVyXCJ9LHloPXtuYW1lOlwieFwiLGhhbmRsZXM6W1wiZVwiLFwid1wiXS5tYXAoUW4pLGlucHV0OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQmJltbdFswXSxuWzBdWzFdXSxbdFsxXSxuWzFdWzFdXV19LG91dHB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdCYmW3RbMF1bMF0sdFsxXVswXV19fSxfaD17bmFtZTpcInlcIixoYW5kbGVzOltcIm5cIixcInNcIl0ubWFwKFFuKSxpbnB1dDpmdW5jdGlvbih0LG4pe3JldHVybiB0JiZbW25bMF1bMF0sdFswXV0sW25bMV1bMF0sdFsxXV1dfSxvdXRwdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlt0WzBdWzFdLHRbMV1bMV1dfX0sYmg9e25hbWU6XCJ4eVwiLGhhbmRsZXM6W1wiblwiLFwiZVwiLFwic1wiLFwid1wiLFwibndcIixcIm5lXCIsXCJzZVwiLFwic3dcIl0ubWFwKFFuKSxpbnB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdH0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0fX0sbWg9e292ZXJsYXk6XCJjcm9zc2hhaXJcIixzZWxlY3Rpb246XCJtb3ZlXCIsbjpcIm5zLXJlc2l6ZVwiLGU6XCJldy1yZXNpemVcIixzOlwibnMtcmVzaXplXCIsdzpcImV3LXJlc2l6ZVwiLG53OlwibndzZS1yZXNpemVcIixuZTpcIm5lc3ctcmVzaXplXCIsc2U6XCJud3NlLXJlc2l6ZVwiLHN3OlwibmVzdy1yZXNpemVcIn0seGg9e2U6XCJ3XCIsdzpcImVcIixudzpcIm5lXCIsbmU6XCJud1wiLHNlOlwic3dcIixzdzpcInNlXCJ9LHdoPXtuOlwic1wiLHM6XCJuXCIsbnc6XCJzd1wiLG5lOlwic2VcIixzZTpcIm5lXCIsc3c6XCJud1wifSxNaD17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46bnVsbCxlOjEsczpudWxsLHc6LTEsbnc6LTEsbmU6MSxzZToxLHN3Oi0xfSxBaD17b3ZlcmxheToxLHNlbGVjdGlvbjoxLG46LTEsZTpudWxsLHM6MSx3Om51bGwsbnc6LTEsbmU6LTEsc2U6MSxzdzoxfSxUaD1NYXRoLmNvcyxOaD1NYXRoLnNpbixTaD1NYXRoLlBJLEVoPVNoLzIsa2g9MipTaCxDaD1NYXRoLm1heCxQaD1BcnJheS5wcm90b3R5cGUuc2xpY2Usemg9TWF0aC5QSSxSaD0yKnpoLExoPVJoLTFlLTY7aWUucHJvdG90eXBlPW9lLnByb3RvdHlwZT17Y29uc3RydWN0b3I6aWUsbW92ZVRvOmZ1bmN0aW9uKHQsbil7dGhpcy5fKz1cIk1cIisodGhpcy5feDA9dGhpcy5feDE9K3QpK1wiLFwiKyh0aGlzLl95MD10aGlzLl95MT0rbil9LGNsb3NlUGF0aDpmdW5jdGlvbigpe251bGwhPT10aGlzLl94MSYmKHRoaXMuX3gxPXRoaXMuX3gwLHRoaXMuX3kxPXRoaXMuX3kwLHRoaXMuXys9XCJaXCIpfSxsaW5lVG86ZnVuY3Rpb24odCxuKXt0aGlzLl8rPVwiTFwiKyh0aGlzLl94MT0rdCkrXCIsXCIrKHRoaXMuX3kxPStuKX0scXVhZHJhdGljQ3VydmVUbzpmdW5jdGlvbih0LG4sZSxyKXt0aGlzLl8rPVwiUVwiKyArdCtcIixcIisgK24rXCIsXCIrKHRoaXMuX3gxPStlKStcIixcIisodGhpcy5feTE9K3IpfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsbixlLHIsaSxvKXt0aGlzLl8rPVwiQ1wiKyArdCtcIixcIisgK24rXCIsXCIrICtlK1wiLFwiKyArcitcIixcIisodGhpcy5feDE9K2kpK1wiLFwiKyh0aGlzLl95MT0rbyl9LGFyY1RvOmZ1bmN0aW9uKHQsbixlLHIsaSl7dD0rdCxuPStuLGU9K2Uscj0rcixpPStpO3ZhciBvPXRoaXMuX3gxLGE9dGhpcy5feTEsdT1lLXQsZj1yLW4sYz1vLXQscz1hLW4sbD1jKmMrcypzO2lmKGk8MCl0aHJvdyBuZXcgRXJyb3IoXCJuZWdhdGl2ZSByYWRpdXM6IFwiK2kpO2lmKG51bGw9PT10aGlzLl94MSl0aGlzLl8rPVwiTVwiKyh0aGlzLl94MT10KStcIixcIisodGhpcy5feTE9bik7ZWxzZSBpZihsPjFlLTYpaWYoTWF0aC5hYnMocyp1LWYqYyk+MWUtNiYmaSl7dmFyIGg9ZS1vLGQ9ci1hLHA9dSp1K2YqZix2PWgqaCtkKmQsZz1NYXRoLnNxcnQocCkseT1NYXRoLnNxcnQobCksXz1pKk1hdGgudGFuKCh6aC1NYXRoLmFjb3MoKHArbC12KS8oMipnKnkpKSkvMiksYj1fL3ksbT1fL2c7TWF0aC5hYnMoYi0xKT4xZS02JiYodGhpcy5fKz1cIkxcIisodCtiKmMpK1wiLFwiKyhuK2IqcykpLHRoaXMuXys9XCJBXCIraStcIixcIitpK1wiLDAsMCxcIisgKyhzKmg+YypkKStcIixcIisodGhpcy5feDE9dCttKnUpK1wiLFwiKyh0aGlzLl95MT1uK20qZil9ZWxzZSB0aGlzLl8rPVwiTFwiKyh0aGlzLl94MT10KStcIixcIisodGhpcy5feTE9bik7ZWxzZTt9LGFyYzpmdW5jdGlvbih0LG4sZSxyLGksbyl7dD0rdCxuPStuO3ZhciBhPShlPStlKSpNYXRoLmNvcyhyKSx1PWUqTWF0aC5zaW4ociksZj10K2EsYz1uK3Uscz0xXm8sbD1vP3ItaTppLXI7aWYoZTwwKXRocm93IG5ldyBFcnJvcihcIm5lZ2F0aXZlIHJhZGl1czogXCIrZSk7bnVsbD09PXRoaXMuX3gxP3RoaXMuXys9XCJNXCIrZitcIixcIitjOihNYXRoLmFicyh0aGlzLl94MS1mKT4xZS02fHxNYXRoLmFicyh0aGlzLl95MS1jKT4xZS02KSYmKHRoaXMuXys9XCJMXCIrZitcIixcIitjKSxlJiYobDwwJiYobD1sJVJoK1JoKSxsPkxoP3RoaXMuXys9XCJBXCIrZStcIixcIitlK1wiLDAsMSxcIitzK1wiLFwiKyh0LWEpK1wiLFwiKyhuLXUpK1wiQVwiK2UrXCIsXCIrZStcIiwwLDEsXCIrcytcIixcIisodGhpcy5feDE9ZikrXCIsXCIrKHRoaXMuX3kxPWMpOmw+MWUtNiYmKHRoaXMuXys9XCJBXCIrZStcIixcIitlK1wiLDAsXCIrICsobD49emgpK1wiLFwiK3MrXCIsXCIrKHRoaXMuX3gxPXQrZSpNYXRoLmNvcyhpKSkrXCIsXCIrKHRoaXMuX3kxPW4rZSpNYXRoLnNpbihpKSkpKX0scmVjdDpmdW5jdGlvbih0LG4sZSxyKXt0aGlzLl8rPVwiTVwiKyh0aGlzLl94MD10aGlzLl94MT0rdCkrXCIsXCIrKHRoaXMuX3kwPXRoaXMuX3kxPStuKStcImhcIisgK2UrXCJ2XCIrICtyK1wiaFwiKy1lK1wiWlwifSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fTtsZS5wcm90b3R5cGU9aGUucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpsZSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuXCIkXCIrdCBpbiB0aGlzfSxnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbXCIkXCIrdF19LHNldDpmdW5jdGlvbih0LG4pe3JldHVybiB0aGlzW1wiJFwiK3RdPW4sdGhpc30scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBuPVwiJFwiK3Q7cmV0dXJuIG4gaW4gdGhpcyYmZGVsZXRlIHRoaXNbbl19LGNsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpXCIkXCI9PT10WzBdJiZkZWxldGUgdGhpc1t0XX0sa2V5czpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgbiBpbiB0aGlzKVwiJFwiPT09blswXSYmdC5wdXNoKG4uc2xpY2UoMSkpO3JldHVybiB0fSx2YWx1ZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJnQucHVzaCh0aGlzW25dKTtyZXR1cm4gdH0sZW50cmllczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgbiBpbiB0aGlzKVwiJFwiPT09blswXSYmdC5wdXNoKHtrZXk6bi5zbGljZSgxKSx2YWx1ZTp0aGlzW25dfSk7cmV0dXJuIHR9LHNpemU6ZnVuY3Rpb24oKXt2YXIgdD0wO2Zvcih2YXIgbiBpbiB0aGlzKVwiJFwiPT09blswXSYmKyt0O3JldHVybiB0fSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzKWlmKFwiJFwiPT09dFswXSlyZXR1cm4hMTtyZXR1cm4hMH0sZWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJnQodGhpc1tuXSxuLnNsaWNlKDEpLHRoaXMpfX07dmFyIERoPWhlLnByb3RvdHlwZTt5ZS5wcm90b3R5cGU9X2UucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp5ZSxoYXM6RGguaGFzLGFkZDpmdW5jdGlvbih0KXtyZXR1cm4gdCs9XCJcIix0aGlzW1wiJFwiK3RdPXQsdGhpc30scmVtb3ZlOkRoLnJlbW92ZSxjbGVhcjpEaC5jbGVhcix2YWx1ZXM6RGgua2V5cyxzaXplOkRoLnNpemUsZW1wdHk6RGguZW1wdHksZWFjaDpEaC5lYWNofTt2YXIgVWg9QXJyYXkucHJvdG90eXBlLnNsaWNlLHFoPVtbXSxbW1sxLDEuNV0sWy41LDFdXV0sW1tbMS41LDFdLFsxLDEuNV1dXSxbW1sxLjUsMV0sWy41LDFdXV0sW1tbMSwuNV0sWzEuNSwxXV1dLFtbWzEsMS41XSxbLjUsMV1dLFtbMSwuNV0sWzEuNSwxXV1dLFtbWzEsLjVdLFsxLDEuNV1dXSxbW1sxLC41XSxbLjUsMV1dXSxbW1suNSwxXSxbMSwuNV1dXSxbW1sxLDEuNV0sWzEsLjVdXV0sW1tbLjUsMV0sWzEsLjVdXSxbWzEuNSwxXSxbMSwxLjVdXV0sW1tbMS41LDFdLFsxLC41XV1dLFtbWy41LDFdLFsxLjUsMV1dXSxbW1sxLDEuNV0sWzEuNSwxXV1dLFtbWy41LDFdLFsxLDEuNV1dXSxbXV0sT2g9e30sWWg9e30sQmg9MzQsRmg9MTAsSWg9MTMsamg9a2UoXCIsXCIpLEhoPWpoLnBhcnNlLFhoPWpoLnBhcnNlUm93cyxHaD1qaC5mb3JtYXQsVmg9amguZm9ybWF0Um93cywkaD1rZShcIlxcdFwiKSxXaD0kaC5wYXJzZSxaaD0kaC5wYXJzZVJvd3MsUWg9JGguZm9ybWF0LEpoPSRoLmZvcm1hdFJvd3MsS2g9TGUoSGgpLHRkPUxlKFdoKSxuZD1VZShcImFwcGxpY2F0aW9uL3htbFwiKSxlZD1VZShcInRleHQvaHRtbFwiKSxyZD1VZShcImltYWdlL3N2Zyt4bWxcIiksaWQ9amUucHJvdG90eXBlPUhlLnByb3RvdHlwZTtpZC5jb3B5PWZ1bmN0aW9uKCl7dmFyIHQsbixlPW5ldyBIZSh0aGlzLl94LHRoaXMuX3ksdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpLHI9dGhpcy5fcm9vdDtpZighcilyZXR1cm4gZTtpZighci5sZW5ndGgpcmV0dXJuIGUuX3Jvb3Q9WGUociksZTtmb3IodD1be3NvdXJjZTpyLHRhcmdldDplLl9yb290PW5ldyBBcnJheSg0KX1dO3I9dC5wb3AoKTspZm9yKHZhciBpPTA7aTw0OysraSkobj1yLnNvdXJjZVtpXSkmJihuLmxlbmd0aD90LnB1c2goe3NvdXJjZTpuLHRhcmdldDpyLnRhcmdldFtpXT1uZXcgQXJyYXkoNCl9KTpyLnRhcmdldFtpXT1YZShuKSk7cmV0dXJuIGV9LGlkLmFkZD1mdW5jdGlvbih0KXt2YXIgbj0rdGhpcy5feC5jYWxsKG51bGwsdCksZT0rdGhpcy5feS5jYWxsKG51bGwsdCk7cmV0dXJuIFllKHRoaXMuY292ZXIobixlKSxuLGUsdCl9LGlkLmFkZEFsbD1mdW5jdGlvbih0KXt2YXIgbixlLHIsaSxvPXQubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHU9bmV3IEFycmF5KG8pLGY9MS8wLGM9MS8wLHM9LTEvMCxsPS0xLzA7Zm9yKGU9MDtlPG87KytlKWlzTmFOKHI9K3RoaXMuX3guY2FsbChudWxsLG49dFtlXSkpfHxpc05hTihpPSt0aGlzLl95LmNhbGwobnVsbCxuKSl8fChhW2VdPXIsdVtlXT1pLHI8ZiYmKGY9cikscj5zJiYocz1yKSxpPGMmJihjPWkpLGk+bCYmKGw9aSkpO2ZvcihzPGYmJihmPXRoaXMuX3gwLHM9dGhpcy5feDEpLGw8YyYmKGM9dGhpcy5feTAsbD10aGlzLl95MSksdGhpcy5jb3ZlcihmLGMpLmNvdmVyKHMsbCksZT0wO2U8bzsrK2UpWWUodGhpcyxhW2VdLHVbZV0sdFtlXSk7cmV0dXJuIHRoaXN9LGlkLmNvdmVyPWZ1bmN0aW9uKHQsbil7aWYoaXNOYU4odD0rdCl8fGlzTmFOKG49K24pKXJldHVybiB0aGlzO3ZhciBlPXRoaXMuX3gwLHI9dGhpcy5feTAsaT10aGlzLl94MSxvPXRoaXMuX3kxO2lmKGlzTmFOKGUpKWk9KGU9TWF0aC5mbG9vcih0KSkrMSxvPShyPU1hdGguZmxvb3IobikpKzE7ZWxzZXtpZighKGU+dHx8dD5pfHxyPm58fG4+bykpcmV0dXJuIHRoaXM7dmFyIGEsdSxmPWktZSxjPXRoaXMuX3Jvb3Q7c3dpdGNoKHU9KG48KHIrbykvMik8PDF8dDwoZStpKS8yKXtjYXNlIDA6ZG97YT1uZXcgQXJyYXkoNCksYVt1XT1jLGM9YX13aGlsZShmKj0yLGk9ZStmLG89citmLHQ+aXx8bj5vKTticmVhaztjYXNlIDE6ZG97YT1uZXcgQXJyYXkoNCksYVt1XT1jLGM9YX13aGlsZShmKj0yLGU9aS1mLG89citmLGU+dHx8bj5vKTticmVhaztjYXNlIDI6ZG97YT1uZXcgQXJyYXkoNCksYVt1XT1jLGM9YX13aGlsZShmKj0yLGk9ZStmLHI9by1mLHQ+aXx8cj5uKTticmVhaztjYXNlIDM6ZG97YT1uZXcgQXJyYXkoNCksYVt1XT1jLGM9YX13aGlsZShmKj0yLGU9aS1mLHI9by1mLGU+dHx8cj5uKX10aGlzLl9yb290JiZ0aGlzLl9yb290Lmxlbmd0aCYmKHRoaXMuX3Jvb3Q9Yyl9cmV0dXJuIHRoaXMuX3gwPWUsdGhpcy5feTA9cix0aGlzLl94MT1pLHRoaXMuX3kxPW8sdGhpc30saWQuZGF0YT1mdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLnZpc2l0KGZ1bmN0aW9uKG4pe2lmKCFuLmxlbmd0aClkb3t0LnB1c2gobi5kYXRhKX13aGlsZShuPW4ubmV4dCl9KSx0fSxpZC5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5jb3ZlcigrdFswXVswXSwrdFswXVsxXSkuY292ZXIoK3RbMV1bMF0sK3RbMV1bMV0pOmlzTmFOKHRoaXMuX3gwKT92b2lkIDA6W1t0aGlzLl94MCx0aGlzLl95MF0sW3RoaXMuX3gxLHRoaXMuX3kxXV19LGlkLmZpbmQ9ZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbyxhLHUsZixjLHM9dGhpcy5feDAsbD10aGlzLl95MCxoPXRoaXMuX3gxLGQ9dGhpcy5feTEscD1bXSx2PXRoaXMuX3Jvb3Q7Zm9yKHYmJnAucHVzaChuZXcgQmUodixzLGwsaCxkKSksbnVsbD09ZT9lPTEvMDoocz10LWUsbD1uLWUsaD10K2UsZD1uK2UsZSo9ZSk7Zj1wLnBvcCgpOylpZighKCEodj1mLm5vZGUpfHwoaT1mLngwKT5ofHwobz1mLnkwKT5kfHwoYT1mLngxKTxzfHwodT1mLnkxKTxsKSlpZih2Lmxlbmd0aCl7dmFyIGc9KGkrYSkvMix5PShvK3UpLzI7cC5wdXNoKG5ldyBCZSh2WzNdLGcseSxhLHUpLG5ldyBCZSh2WzJdLGkseSxnLHUpLG5ldyBCZSh2WzFdLGcsbyxhLHkpLG5ldyBCZSh2WzBdLGksbyxnLHkpKSwoYz0obj49eSk8PDF8dD49ZykmJihmPXBbcC5sZW5ndGgtMV0scFtwLmxlbmd0aC0xXT1wW3AubGVuZ3RoLTEtY10scFtwLmxlbmd0aC0xLWNdPWYpfWVsc2V7dmFyIF89dC0rdGhpcy5feC5jYWxsKG51bGwsdi5kYXRhKSxiPW4tK3RoaXMuX3kuY2FsbChudWxsLHYuZGF0YSksbT1fKl8rYipiO2lmKG08ZSl7dmFyIHg9TWF0aC5zcXJ0KGU9bSk7cz10LXgsbD1uLXgsaD10K3gsZD1uK3gscj12LmRhdGF9fXJldHVybiByfSxpZC5yZW1vdmU9ZnVuY3Rpb24odCl7aWYoaXNOYU4obz0rdGhpcy5feC5jYWxsKG51bGwsdCkpfHxpc05hTihhPSt0aGlzLl95LmNhbGwobnVsbCx0KSkpcmV0dXJuIHRoaXM7dmFyIG4sZSxyLGksbyxhLHUsZixjLHMsbCxoLGQ9dGhpcy5fcm9vdCxwPXRoaXMuX3gwLHY9dGhpcy5feTAsZz10aGlzLl94MSx5PXRoaXMuX3kxO2lmKCFkKXJldHVybiB0aGlzO2lmKGQubGVuZ3RoKWZvcig7Oyl7aWYoKGM9bz49KHU9KHArZykvMikpP3A9dTpnPXUsKHM9YT49KGY9KHYreSkvMikpP3Y9Zjp5PWYsbj1kLCEoZD1kW2w9czw8MXxjXSkpcmV0dXJuIHRoaXM7aWYoIWQubGVuZ3RoKWJyZWFrOyhuW2wrMSYzXXx8bltsKzImM118fG5bbCszJjNdKSYmKGU9bixoPWwpfWZvcig7ZC5kYXRhIT09dDspaWYocj1kLCEoZD1kLm5leHQpKXJldHVybiB0aGlzO3JldHVybihpPWQubmV4dCkmJmRlbGV0ZSBkLm5leHQscj8oaT9yLm5leHQ9aTpkZWxldGUgci5uZXh0LHRoaXMpOm4/KGk/bltsXT1pOmRlbGV0ZSBuW2xdLChkPW5bMF18fG5bMV18fG5bMl18fG5bM10pJiZkPT09KG5bM118fG5bMl18fG5bMV18fG5bMF0pJiYhZC5sZW5ndGgmJihlP2VbaF09ZDp0aGlzLl9yb290PWQpLHRoaXMpOih0aGlzLl9yb290PWksdGhpcyl9LGlkLnJlbW92ZUFsbD1mdW5jdGlvbih0KXtmb3IodmFyIG49MCxlPXQubGVuZ3RoO248ZTsrK24pdGhpcy5yZW1vdmUodFtuXSk7cmV0dXJuIHRoaXN9LGlkLnJvb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm9vdH0saWQuc2l6ZT1mdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIHRoaXMudmlzaXQoZnVuY3Rpb24obil7aWYoIW4ubGVuZ3RoKWRveysrdH13aGlsZShuPW4ubmV4dCl9KSx0fSxpZC52aXNpdD1mdW5jdGlvbih0KXt2YXIgbixlLHIsaSxvLGEsdT1bXSxmPXRoaXMuX3Jvb3Q7Zm9yKGYmJnUucHVzaChuZXcgQmUoZix0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkpO249dS5wb3AoKTspaWYoIXQoZj1uLm5vZGUscj1uLngwLGk9bi55MCxvPW4ueDEsYT1uLnkxKSYmZi5sZW5ndGgpe3ZhciBjPShyK28pLzIscz0oaSthKS8yOyhlPWZbM10pJiZ1LnB1c2gobmV3IEJlKGUsYyxzLG8sYSkpLChlPWZbMl0pJiZ1LnB1c2gobmV3IEJlKGUscixzLGMsYSkpLChlPWZbMV0pJiZ1LnB1c2gobmV3IEJlKGUsYyxpLG8scykpLChlPWZbMF0pJiZ1LnB1c2gobmV3IEJlKGUscixpLGMscykpfXJldHVybiB0aGlzfSxpZC52aXNpdEFmdGVyPWZ1bmN0aW9uKHQpe3ZhciBuLGU9W10scj1bXTtmb3IodGhpcy5fcm9vdCYmZS5wdXNoKG5ldyBCZSh0aGlzLl9yb290LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7bj1lLnBvcCgpOyl7dmFyIGk9bi5ub2RlO2lmKGkubGVuZ3RoKXt2YXIgbyxhPW4ueDAsdT1uLnkwLGY9bi54MSxjPW4ueTEscz0oYStmKS8yLGw9KHUrYykvMjsobz1pWzBdKSYmZS5wdXNoKG5ldyBCZShvLGEsdSxzLGwpKSwobz1pWzFdKSYmZS5wdXNoKG5ldyBCZShvLHMsdSxmLGwpKSwobz1pWzJdKSYmZS5wdXNoKG5ldyBCZShvLGEsbCxzLGMpKSwobz1pWzNdKSYmZS5wdXNoKG5ldyBCZShvLHMsbCxmLGMpKX1yLnB1c2gobil9Zm9yKDtuPXIucG9wKCk7KXQobi5ub2RlLG4ueDAsbi55MCxuLngxLG4ueTEpO3JldHVybiB0aGlzfSxpZC54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl94PXQsdGhpcyk6dGhpcy5feH0saWQueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feT10LHRoaXMpOnRoaXMuX3l9O3ZhciBvZD0xMCxhZD1NYXRoLlBJKigzLU1hdGguc3FydCg1KSksdWQ9L14oPzooLik/KFs8Pj1eXSkpPyhbK1xcLVxcKCBdKT8oWyQjXSk/KDApPyhcXGQrKT8oLCk/KFxcLlxcZCspPyh+KT8oW2EteiVdKT8kL2k7dHIucHJvdG90eXBlPW5yLnByb3RvdHlwZSxuci5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsK3RoaXMuYWxpZ24rdGhpcy5zaWduK3RoaXMuc3ltYm9sKyh0aGlzLnplcm8/XCIwXCI6XCJcIikrKG51bGw9PXRoaXMud2lkdGg/XCJcIjpNYXRoLm1heCgxLDB8dGhpcy53aWR0aCkpKyh0aGlzLmNvbW1hP1wiLFwiOlwiXCIpKyhudWxsPT10aGlzLnByZWNpc2lvbj9cIlwiOlwiLlwiK01hdGgubWF4KDAsMHx0aGlzLnByZWNpc2lvbikpKyh0aGlzLnRyaW0/XCJ+XCI6XCJcIikrdGhpcy50eXBlfTt2YXIgZmQsY2Qsc2Q9e1wiJVwiOmZ1bmN0aW9uKHQsbil7cmV0dXJuKDEwMCp0KS50b0ZpeGVkKG4pfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDIpfSxjOmZ1bmN0aW9uKHQpe3JldHVybiB0K1wiXCJ9LGQ6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTApfSxlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQudG9FeHBvbmVudGlhbChuKX0sZjpmdW5jdGlvbih0LG4pe3JldHVybiB0LnRvRml4ZWQobil9LGc6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC50b1ByZWNpc2lvbihuKX0sbzpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZyg4KX0scDpmdW5jdGlvbih0LG4pe3JldHVybiBlcigxMDAqdCxuKX0scjplcixzOmZ1bmN0aW9uKHQsbil7dmFyIGU9SmUodCxuKTtpZighZSlyZXR1cm4gdCtcIlwiO3ZhciByPWVbMF0saT1lWzFdLG89aS0oZmQ9MypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoaS8zKSkpKSsxLGE9ci5sZW5ndGg7cmV0dXJuIG89PT1hP3I6bz5hP3IrbmV3IEFycmF5KG8tYSsxKS5qb2luKFwiMFwiKTpvPjA/ci5zbGljZSgwLG8pK1wiLlwiK3Iuc2xpY2Uobyk6XCIwLlwiK25ldyBBcnJheSgxLW8pLmpvaW4oXCIwXCIpK0plKHQsTWF0aC5tYXgoMCxuK28tMSkpWzBdfSxYOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSx4OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDE2KX19LGxkPVtcInlcIixcInpcIixcImFcIixcImZcIixcInBcIixcIm5cIixcIsK1XCIsXCJtXCIsXCJcIixcImtcIixcIk1cIixcIkdcIixcIlRcIixcIlBcIixcIkVcIixcIlpcIixcIllcIl07b3Ioe2RlY2ltYWw6XCIuXCIsdGhvdXNhbmRzOlwiLFwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbXCIkXCIsXCJcIl19KSxzci5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnNyLHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5zPXRoaXMudD0wfSxhZGQ6ZnVuY3Rpb24odCl7bHIoamQsdCx0aGlzLnQpLGxyKHRoaXMsamQucyx0aGlzLnMpLHRoaXMucz90aGlzLnQrPWpkLnQ6dGhpcy5zPWpkLnR9LHZhbHVlT2Y6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zfX07dmFyIGhkLGRkLHBkLHZkLGdkLHlkLF9kLGJkLG1kLHhkLHdkLE1kLEFkLFRkLE5kLFNkLEVkLGtkLENkLFBkLHpkLFJkLExkLERkLFVkLHFkLE9kLFlkLEJkLEZkLElkLGpkPW5ldyBzcixIZD0xZS02LFhkPTFlLTEyLEdkPU1hdGguUEksVmQ9R2QvMiwkZD1HZC80LFdkPTIqR2QsWmQ9MTgwL0dkLFFkPUdkLzE4MCxKZD1NYXRoLmFicyxLZD1NYXRoLmF0YW4sdHA9TWF0aC5hdGFuMixucD1NYXRoLmNvcyxlcD1NYXRoLmNlaWwscnA9TWF0aC5leHAsaXA9TWF0aC5sb2csb3A9TWF0aC5wb3csYXA9TWF0aC5zaW4sdXA9TWF0aC5zaWdufHxmdW5jdGlvbih0KXtyZXR1cm4gdD4wPzE6dDwwPy0xOjB9LGZwPU1hdGguc3FydCxjcD1NYXRoLnRhbixzcD17RmVhdHVyZTpmdW5jdGlvbih0LG4pe2dyKHQuZ2VvbWV0cnksbil9LEZlYXR1cmVDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuZmVhdHVyZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylncihlW3JdLmdlb21ldHJ5LG4pfX0sbHA9e1NwaGVyZTpmdW5jdGlvbih0LG4pe24uc3BoZXJlKCl9LFBvaW50OmZ1bmN0aW9uKHQsbil7dD10LmNvb3JkaW5hdGVzLG4ucG9pbnQodFswXSx0WzFdLHRbMl0pfSxNdWx0aVBvaW50OmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOyl0PWVbcl0sbi5wb2ludCh0WzBdLHRbMV0sdFsyXSl9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxuKXt5cih0LmNvb3JkaW5hdGVzLG4sMCl9LE11bHRpTGluZVN0cmluZzpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspeXIoZVtyXSxuLDApfSxQb2x5Z29uOmZ1bmN0aW9uKHQsbil7X3IodC5jb29yZGluYXRlcyxuKX0sTXVsdGlQb2x5Z29uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylfcihlW3JdLG4pfSxHZW9tZXRyeUNvbGxlY3Rpb246ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5nZW9tZXRyaWVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspZ3IoZVtyXSxuKX19LGhwPWNyKCksZHA9Y3IoKSxwcD17cG9pbnQ6dnIsbGluZVN0YXJ0OnZyLGxpbmVFbmQ6dnIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7aHAucmVzZXQoKSxwcC5saW5lU3RhcnQ9bXIscHAubGluZUVuZD14cn0scG9seWdvbkVuZDpmdW5jdGlvbigpe3ZhciB0PStocDtkcC5hZGQodDwwP1dkK3Q6dCksdGhpcy5saW5lU3RhcnQ9dGhpcy5saW5lRW5kPXRoaXMucG9pbnQ9dnJ9LHNwaGVyZTpmdW5jdGlvbigpe2RwLmFkZChXZCl9fSx2cD1jcigpLGdwPXtwb2ludDpQcixsaW5lU3RhcnQ6UnIsbGluZUVuZDpMcixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtncC5wb2ludD1EcixncC5saW5lU3RhcnQ9VXIsZ3AubGluZUVuZD1xcix2cC5yZXNldCgpLHBwLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7cHAucG9seWdvbkVuZCgpLGdwLnBvaW50PVByLGdwLmxpbmVTdGFydD1ScixncC5saW5lRW5kPUxyLGhwPDA/KHlkPS0oYmQ9MTgwKSxfZD0tKG1kPTkwKSk6dnA+SGQ/bWQ9OTA6dnA8LUhkJiYoX2Q9LTkwKSxOZFswXT15ZCxOZFsxXT1iZH19LHlwPXtzcGhlcmU6dnIscG9pbnQ6RnIsbGluZVN0YXJ0OmpyLGxpbmVFbmQ6R3IscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7eXAubGluZVN0YXJ0PVZyLHlwLmxpbmVFbmQ9JHJ9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt5cC5saW5lU3RhcnQ9anIseXAubGluZUVuZD1Hcn19O0tyLmludmVydD1Lcjt2YXIgX3AsYnAsbXAseHAsd3AsTXAsQXAsVHAsTnAsU3AsRXAsa3A9Y3IoKSxDcD1kaShmdW5jdGlvbigpe3JldHVybiEwfSxmdW5jdGlvbih0KXt2YXIgbixlPU5hTixyPU5hTixpPU5hTjtyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dC5saW5lU3RhcnQoKSxuPTF9LHBvaW50OmZ1bmN0aW9uKG8sYSl7dmFyIHU9bz4wP0dkOi1HZCxmPUpkKG8tZSk7SmQoZi1HZCk8SGQ/KHQucG9pbnQoZSxyPShyK2EpLzI+MD9WZDotVmQpLHQucG9pbnQoaSxyKSx0LmxpbmVFbmQoKSx0LmxpbmVTdGFydCgpLHQucG9pbnQodSxyKSx0LnBvaW50KG8sciksbj0wKTppIT09dSYmZj49R2QmJihKZChlLWkpPEhkJiYoZS09aSpIZCksSmQoby11KTxIZCYmKG8tPXUqSGQpLHI9ZnVuY3Rpb24odCxuLGUscil7dmFyIGksbyxhPWFwKHQtZSk7cmV0dXJuIEpkKGEpPkhkP0tkKChhcChuKSoobz1ucChyKSkqYXAoZSktYXAocikqKGk9bnAobikpKmFwKHQpKS8oaSpvKmEpKToobityKS8yfShlLHIsbyxhKSx0LnBvaW50KGksciksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KHUsciksbj0wKSx0LnBvaW50KGU9byxyPWEpLGk9dX0sbGluZUVuZDpmdW5jdGlvbigpe3QubGluZUVuZCgpLGU9cj1OYU59LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIDItbn19fSxmdW5jdGlvbih0LG4sZSxyKXt2YXIgaTtpZihudWxsPT10KWk9ZSpWZCxyLnBvaW50KC1HZCxpKSxyLnBvaW50KDAsaSksci5wb2ludChHZCxpKSxyLnBvaW50KEdkLDApLHIucG9pbnQoR2QsLWkpLHIucG9pbnQoMCwtaSksci5wb2ludCgtR2QsLWkpLHIucG9pbnQoLUdkLDApLHIucG9pbnQoLUdkLGkpO2Vsc2UgaWYoSmQodFswXS1uWzBdKT5IZCl7dmFyIG89dFswXTxuWzBdP0dkOi1HZDtpPWUqby8yLHIucG9pbnQoLW8saSksci5wb2ludCgwLGkpLHIucG9pbnQobyxpKX1lbHNlIHIucG9pbnQoblswXSxuWzFdKX0sWy1HZCwtVmRdKSxQcD0xZTksenA9LVBwLFJwPWNyKCksTHA9e3NwaGVyZTp2cixwb2ludDp2cixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtMcC5wb2ludD1iaSxMcC5saW5lRW5kPV9pfSxsaW5lRW5kOnZyLHBvbHlnb25TdGFydDp2cixwb2x5Z29uRW5kOnZyfSxEcD1bbnVsbCxudWxsXSxVcD17dHlwZTpcIkxpbmVTdHJpbmdcIixjb29yZGluYXRlczpEcH0scXA9e0ZlYXR1cmU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gTWkodC5nZW9tZXRyeSxuKX0sRmVhdHVyZUNvbGxlY3Rpb246ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5mZWF0dXJlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWlmKE1pKGVbcl0uZ2VvbWV0cnksbikpcmV0dXJuITA7cmV0dXJuITF9fSxPcD17U3BoZXJlOmZ1bmN0aW9uKCl7cmV0dXJuITB9LFBvaW50OmZ1bmN0aW9uKHQsbil7cmV0dXJuIEFpKHQuY29vcmRpbmF0ZXMsbil9LE11bHRpUG9pbnQ6ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5jb29yZGluYXRlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWlmKEFpKGVbcl0sbikpcmV0dXJuITA7cmV0dXJuITF9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxuKXtyZXR1cm4gVGkodC5jb29yZGluYXRlcyxuKX0sTXVsdGlMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylpZihUaShlW3JdLG4pKXJldHVybiEwO3JldHVybiExfSxQb2x5Z29uOmZ1bmN0aW9uKHQsbil7cmV0dXJuIE5pKHQuY29vcmRpbmF0ZXMsbil9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspaWYoTmkoZVtyXSxuKSlyZXR1cm4hMDtyZXR1cm4hMX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuZ2VvbWV0cmllcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWlmKE1pKGVbcl0sbikpcmV0dXJuITA7cmV0dXJuITF9fSxZcD1jcigpLEJwPWNyKCksRnA9e3BvaW50OnZyLGxpbmVTdGFydDp2cixsaW5lRW5kOnZyLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe0ZwLmxpbmVTdGFydD1SaSxGcC5saW5lRW5kPVVpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7RnAubGluZVN0YXJ0PUZwLmxpbmVFbmQ9RnAucG9pbnQ9dnIsWXAuYWRkKEpkKEJwKSksQnAucmVzZXQoKX0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9WXAvMjtyZXR1cm4gWXAucmVzZXQoKSx0fX0sSXA9MS8wLGpwPUlwLEhwPS1JcCxYcD1IcCxHcD17cG9pbnQ6ZnVuY3Rpb24odCxuKXt0PElwJiYoSXA9dCksdD5IcCYmKEhwPXQpLG48anAmJihqcD1uKSxuPlhwJiYoWHA9bil9LGxpbmVTdGFydDp2cixsaW5lRW5kOnZyLHBvbHlnb25TdGFydDp2cixwb2x5Z29uRW5kOnZyLHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PVtbSXAsanBdLFtIcCxYcF1dO3JldHVybiBIcD1YcD0tKGpwPUlwPTEvMCksdH19LFZwPTAsJHA9MCxXcD0wLFpwPTAsUXA9MCxKcD0wLEtwPTAsdHY9MCxudj0wLGV2PXtwb2ludDpxaSxsaW5lU3RhcnQ6T2ksbGluZUVuZDpGaSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtldi5saW5lU3RhcnQ9SWksZXYubGluZUVuZD1qaX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2V2LnBvaW50PXFpLGV2LmxpbmVTdGFydD1PaSxldi5saW5lRW5kPUZpfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1udj9bS3AvbnYsdHYvbnZdOkpwP1tacC9KcCxRcC9KcF06V3A/W1ZwL1dwLCRwL1dwXTpbTmFOLE5hTl07cmV0dXJuIFZwPSRwPVdwPVpwPVFwPUpwPUtwPXR2PW52PTAsdH19O0dpLnByb3RvdHlwZT17X3JhZGl1czo0LjUscG9pbnRSYWRpdXM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3JhZGl1cz10LHRoaXN9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7MD09PXRoaXMuX2xpbmUmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fcG9pbnQ9TmFOfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbiksdGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTticmVhaztkZWZhdWx0OnRoaXMuX2NvbnRleHQubW92ZVRvKHQrdGhpcy5fcmFkaXVzLG4pLHRoaXMuX2NvbnRleHQuYXJjKHQsbix0aGlzLl9yYWRpdXMsMCxXZCl9fSxyZXN1bHQ6dnJ9O3ZhciBydixpdixvdixhdix1dixmdj1jcigpLGN2PXtwb2ludDp2cixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtjdi5wb2ludD1WaX0sbGluZUVuZDpmdW5jdGlvbigpe3J2JiYkaShpdixvdiksY3YucG9pbnQ9dnJ9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3J2PSEwfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7cnY9bnVsbH0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9K2Z2O3JldHVybiBmdi5yZXNldCgpLHR9fTtXaS5wcm90b3R5cGU9e19yYWRpdXM6NC41LF9jaXJjbGU6WmkoNC41KSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4odD0rdCkhPT10aGlzLl9yYWRpdXMmJih0aGlzLl9yYWRpdXM9dCx0aGlzLl9jaXJjbGU9bnVsbCksdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPT09dGhpcy5fbGluZSYmdGhpcy5fc3RyaW5nLnB1c2goXCJaXCIpLHRoaXMuX3BvaW50PU5hTn0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9zdHJpbmcucHVzaChcIk1cIix0LFwiLFwiLG4pLHRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3N0cmluZy5wdXNoKFwiTFwiLHQsXCIsXCIsbik7YnJlYWs7ZGVmYXVsdDpudWxsPT10aGlzLl9jaXJjbGUmJih0aGlzLl9jaXJjbGU9WmkodGhpcy5fcmFkaXVzKSksdGhpcy5fc3RyaW5nLnB1c2goXCJNXCIsdCxcIixcIixuLHRoaXMuX2NpcmNsZSl9fSxyZXN1bHQ6ZnVuY3Rpb24oKXtpZih0aGlzLl9zdHJpbmcubGVuZ3RoKXt2YXIgdD10aGlzLl9zdHJpbmcuam9pbihcIlwiKTtyZXR1cm4gdGhpcy5fc3RyaW5nPVtdLHR9cmV0dXJuIG51bGx9fSxKaS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkppLHBvaW50OmZ1bmN0aW9uKHQsbil7dGhpcy5zdHJlYW0ucG9pbnQodCxuKX0sc3BoZXJlOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25FbmQoKX19O3ZhciBzdj0xNixsdj1ucCgzMCpRZCksaHY9UWkoe3BvaW50OmZ1bmN0aW9uKHQsbil7dGhpcy5zdHJlYW0ucG9pbnQodCpRZCxuKlFkKX19KSxkdj1obyhmdW5jdGlvbih0KXtyZXR1cm4gZnAoMi8oMSt0KSl9KTtkdi5pbnZlcnQ9cG8oZnVuY3Rpb24odCl7cmV0dXJuIDIqZHIodC8yKX0pO3ZhciBwdj1obyhmdW5jdGlvbih0KXtyZXR1cm4odD1ocih0KSkmJnQvYXAodCl9KTtwdi5pbnZlcnQ9cG8oZnVuY3Rpb24odCl7cmV0dXJuIHR9KSx2by5pbnZlcnQ9ZnVuY3Rpb24odCxuKXtyZXR1cm5bdCwyKktkKHJwKG4pKS1WZF19LGJvLmludmVydD1ibyx4by5pbnZlcnQ9cG8oS2QpLE1vLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlLHI9bixpPTI1O2Rve3ZhciBvPXIqcixhPW8qbztyLT1lPShyKigxLjAwNzIyNitvKiguMDE1MDg1K2EqKC4wMjg4NzQqby0uMDQ0NDc1LS4wMDU5MTYqYSkpKS1uKS8oMS4wMDcyMjYrbyooLjA0NTI1NSthKiguMjU5ODY2Km8tLjMxMTMyNS0uMDA1OTE2KjExKmEpKSl9d2hpbGUoSmQoZSk+SGQmJi0taT4wKTtyZXR1cm5bdC8oLjg3MDcrKG89cipyKSoobyoobypvKm8qKC4wMDM5NzEtLjAwMTUyOSpvKS0uMDEzNzkxKS0uMTMxOTc5KSkscl19LEFvLmludmVydD1wbyhkciksVG8uaW52ZXJ0PXBvKGZ1bmN0aW9uKHQpe3JldHVybiAyKktkKHQpfSksTm8uaW52ZXJ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuWy1uLDIqS2QocnAodCkpLVZkXX0sRG8ucHJvdG90eXBlPVBvLnByb3RvdHlwZT17Y29uc3RydWN0b3I6RG8sY291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoQWZ0ZXIoQ28pfSxlYWNoOmZ1bmN0aW9uKHQpe3ZhciBuLGUscixpLG89dGhpcyxhPVtvXTtkb3tmb3Iobj1hLnJldmVyc2UoKSxhPVtdO289bi5wb3AoKTspaWYodChvKSxlPW8uY2hpbGRyZW4pZm9yKHI9MCxpPWUubGVuZ3RoO3I8aTsrK3IpYS5wdXNoKGVbcl0pfXdoaWxlKGEubGVuZ3RoKTtyZXR1cm4gdGhpc30sZWFjaEFmdGVyOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlLHIsaT10aGlzLG89W2ldLGE9W107aT1vLnBvcCgpOylpZihhLnB1c2goaSksbj1pLmNoaWxkcmVuKWZvcihlPTAscj1uLmxlbmd0aDtlPHI7KytlKW8ucHVzaChuW2VdKTtmb3IoO2k9YS5wb3AoKTspdChpKTtyZXR1cm4gdGhpc30sZWFjaEJlZm9yZTpmdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyPXRoaXMsaT1bcl07cj1pLnBvcCgpOylpZih0KHIpLG49ci5jaGlsZHJlbilmb3IoZT1uLmxlbmd0aC0xO2U+PTA7LS1lKWkucHVzaChuW2VdKTtyZXR1cm4gdGhpc30sc3VtOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2hBZnRlcihmdW5jdGlvbihuKXtmb3IodmFyIGU9K3Qobi5kYXRhKXx8MCxyPW4uY2hpbGRyZW4saT1yJiZyLmxlbmd0aDstLWk+PTA7KWUrPXJbaV0udmFsdWU7bi52YWx1ZT1lfSl9LHNvcnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaEJlZm9yZShmdW5jdGlvbihuKXtuLmNoaWxkcmVuJiZuLmNoaWxkcmVuLnNvcnQodCl9KX0scGF0aDpmdW5jdGlvbih0KXtmb3IodmFyIG49dGhpcyxlPWZ1bmN0aW9uKHQsbil7aWYodD09PW4pcmV0dXJuIHQ7dmFyIGU9dC5hbmNlc3RvcnMoKSxyPW4uYW5jZXN0b3JzKCksaT1udWxsO2Zvcih0PWUucG9wKCksbj1yLnBvcCgpO3Q9PT1uOylpPXQsdD1lLnBvcCgpLG49ci5wb3AoKTtyZXR1cm4gaX0obix0KSxyPVtuXTtuIT09ZTspbj1uLnBhcmVudCxyLnB1c2gobik7Zm9yKHZhciBpPXIubGVuZ3RoO3QhPT1lOylyLnNwbGljZShpLDAsdCksdD10LnBhcmVudDtyZXR1cm4gcn0sYW5jZXN0b3JzOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsbj1bdF07dD10LnBhcmVudDspbi5wdXNoKHQpO3JldHVybiBufSxkZXNjZW5kYW50czpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24obil7dC5wdXNoKG4pfSksdH0sbGVhdmVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZWFjaEJlZm9yZShmdW5jdGlvbihuKXtuLmNoaWxkcmVufHx0LnB1c2gobil9KSx0fSxsaW5rczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1bXTtyZXR1cm4gdC5lYWNoKGZ1bmN0aW9uKGUpe2UhPT10JiZuLnB1c2goe3NvdXJjZTplLnBhcmVudCx0YXJnZXQ6ZX0pfSksbn0sY29weTpmdW5jdGlvbigpe3JldHVybiBQbyh0aGlzKS5lYWNoQmVmb3JlKFJvKX19O3ZhciB2dj1BcnJheS5wcm90b3R5cGUuc2xpY2UsZ3Y9XCIkXCIseXY9e2RlcHRoOi0xfSxfdj17fTtjYS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShEby5wcm90b3R5cGUpO3ZhciBidj0oMStNYXRoLnNxcnQoNSkpLzIsbXY9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQsZSxyLGksbyl7bGEobix0LGUscixpLG8pfXJldHVybiBlLnJhdGlvPWZ1bmN0aW9uKG4pe3JldHVybiB0KChuPStuKT4xP246MSl9LGV9KGJ2KSx4dj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCxlLHIsaSxvKXtpZigoYT10Ll9zcXVhcmlmeSkmJmEucmF0aW89PT1uKWZvcih2YXIgYSx1LGYsYyxzLGw9LTEsaD1hLmxlbmd0aCxkPXQudmFsdWU7KytsPGg7KXtmb3IoZj0odT1hW2xdKS5jaGlsZHJlbixjPXUudmFsdWU9MCxzPWYubGVuZ3RoO2M8czsrK2MpdS52YWx1ZSs9ZltjXS52YWx1ZTt1LmRpY2U/bmEodSxlLHIsaSxyKz0oby1yKSp1LnZhbHVlL2QpOnNhKHUsZSxyLGUrPShpLWUpKnUudmFsdWUvZCxvKSxkLT11LnZhbHVlfWVsc2UgdC5fc3F1YXJpZnk9YT1sYShuLHQsZSxyLGksbyksYS5yYXRpbz1ufXJldHVybiBlLnJhdGlvPWZ1bmN0aW9uKG4pe3JldHVybiB0KChuPStuKT4xP246MSl9LGV9KGJ2KSx3dj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCxlKXtyZXR1cm4gdD1udWxsPT10PzA6K3QsZT1udWxsPT1lPzE6K2UsMT09PWFyZ3VtZW50cy5sZW5ndGg/KGU9dCx0PTApOmUtPXQsZnVuY3Rpb24oKXtyZXR1cm4gbigpKmUrdH19cmV0dXJuIGUuc291cmNlPXQsZX0odmEpLE12PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0LGUpe3ZhciByLGk7cmV0dXJuIHQ9bnVsbD09dD8wOit0LGU9bnVsbD09ZT8xOitlLGZ1bmN0aW9uKCl7dmFyIG87aWYobnVsbCE9cilvPXIscj1udWxsO2Vsc2UgZG97cj0yKm4oKS0xLG89MipuKCktMSxpPXIqcitvKm99d2hpbGUoIWl8fGk+MSk7cmV0dXJuIHQrZSpvKk1hdGguc3FydCgtMipNYXRoLmxvZyhpKS9pKX19cmV0dXJuIGUuc291cmNlPXQsZX0odmEpLEF2PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSgpe3ZhciB0PU12LnNvdXJjZShuKS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguZXhwKHQoKSl9fXJldHVybiBlLnNvdXJjZT10LGV9KHZhKSxUdj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTAscj0wO3I8dDsrK3IpZSs9bigpO3JldHVybiBlfX1yZXR1cm4gZS5zb3VyY2U9dCxlfSh2YSksTnY9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3ZhciBlPVR2LnNvdXJjZShuKSh0KTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSgpL3R9fXJldHVybiBlLnNvdXJjZT10LGV9KHZhKSxTdj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuLU1hdGgubG9nKDEtbigpKS90fX1yZXR1cm4gZS5zb3VyY2U9dCxlfSh2YSksRXY9QXJyYXkucHJvdG90eXBlLGt2PUV2Lm1hcCxDdj1Fdi5zbGljZSxQdj17bmFtZTpcImltcGxpY2l0XCJ9LHp2PVswLDFdLFJ2PW5ldyBEYXRlLEx2PW5ldyBEYXRlLER2PUlhKGZ1bmN0aW9uKCl7fSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCtuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4gbi10fSk7RHYuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5mbG9vcih0KSxpc0Zpbml0ZSh0KSYmdD4wP3Q+MT9JYShmdW5jdGlvbihuKXtuLnNldFRpbWUoTWF0aC5mbG9vcihuL3QpKnQpfSxmdW5jdGlvbihuLGUpe24uc2V0VGltZSgrbitlKnQpfSxmdW5jdGlvbihuLGUpe3JldHVybihlLW4pL3R9KTpEdjpudWxsfTt2YXIgVXY9RHYucmFuZ2UscXY9NmU0LE92PTYwNDhlNSxZdj1JYShmdW5jdGlvbih0KXt0LnNldFRpbWUoMWUzKk1hdGguZmxvb3IodC8xZTMpKX0sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3QrMWUzKm4pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQpLzFlM30sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDU2Vjb25kcygpfSksQnY9WXYucmFuZ2UsRnY9SWEoZnVuY3Rpb24odCl7dC5zZXRUaW1lKE1hdGguZmxvb3IodC9xdikqcXYpfSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCtuKnF2KX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS9xdn0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TWludXRlcygpfSksSXY9RnYucmFuZ2UsanY9SWEoZnVuY3Rpb24odCl7dmFyIG49dC5nZXRUaW1lem9uZU9mZnNldCgpKnF2JTM2ZTU7bjwwJiYobis9MzZlNSksdC5zZXRUaW1lKDM2ZTUqTWF0aC5mbG9vcigoK3QtbikvMzZlNSkrbil9LGZ1bmN0aW9uKHQsbil7dC5zZXRUaW1lKCt0KzM2ZTUqbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvMzZlNX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0SG91cnMoKX0pLEh2PWp2LnJhbmdlLFh2PUlhKGZ1bmN0aW9uKHQpe3Quc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpK24pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQtKG4uZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKnF2KS84NjRlNX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RGF0ZSgpLTF9KSxHdj1Ydi5yYW5nZSxWdj1qYSgwKSwkdj1qYSgxKSxXdj1qYSgyKSxadj1qYSgzKSxRdj1qYSg0KSxKdj1qYSg1KSxLdj1qYSg2KSx0Zz1Wdi5yYW5nZSxuZz0kdi5yYW5nZSxlZz1Xdi5yYW5nZSxyZz1adi5yYW5nZSxpZz1Rdi5yYW5nZSxvZz1Kdi5yYW5nZSxhZz1Ldi5yYW5nZSx1Zz1JYShmdW5jdGlvbih0KXt0LnNldERhdGUoMSksdC5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldE1vbnRoKHQuZ2V0TW9udGgoKStuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4gbi5nZXRNb250aCgpLXQuZ2V0TW9udGgoKSsxMioobi5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKSl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1vbnRoKCl9KSxmZz11Zy5yYW5nZSxjZz1JYShmdW5jdGlvbih0KXt0LnNldE1vbnRoKDAsMSksdC5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4gbi5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RnVsbFllYXIoKX0pO2NnLmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PU1hdGguZmxvb3IodCkpJiZ0PjA/SWEoZnVuY3Rpb24obil7bi5zZXRGdWxsWWVhcihNYXRoLmZsb29yKG4uZ2V0RnVsbFllYXIoKS90KSp0KSxuLnNldE1vbnRoKDAsMSksbi5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24obixlKXtuLnNldEZ1bGxZZWFyKG4uZ2V0RnVsbFllYXIoKStlKnQpfSk6bnVsbH07dmFyIHNnPWNnLnJhbmdlLGxnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0VVRDU2Vjb25kcygwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCtuKnF2KX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS9xdn0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTWludXRlcygpfSksaGc9bGcucmFuZ2UsZGc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENNaW51dGVzKDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3QrMzZlNSpuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS8zNmU1fSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENIb3VycygpfSkscGc9ZGcucmFuZ2Usdmc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFVUQ0RhdGUodC5nZXRVVENEYXRlKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvODY0ZTV9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0RhdGUoKS0xfSksZ2c9dmcucmFuZ2UseWc9SGEoMCksX2c9SGEoMSksYmc9SGEoMiksbWc9SGEoMykseGc9SGEoNCksd2c9SGEoNSksTWc9SGEoNiksQWc9eWcucmFuZ2UsVGc9X2cucmFuZ2UsTmc9YmcucmFuZ2UsU2c9bWcucmFuZ2UsRWc9eGcucmFuZ2Usa2c9d2cucmFuZ2UsQ2c9TWcucmFuZ2UsUGc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENEYXRlKDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRVVENNb250aCh0LmdldFVUQ01vbnRoKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4uZ2V0VVRDTW9udGgoKS10LmdldFVUQ01vbnRoKCkrMTIqKG4uZ2V0VVRDRnVsbFllYXIoKS10LmdldFVUQ0Z1bGxZZWFyKCkpfSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENNb250aCgpfSksemc9UGcucmFuZ2UsUmc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENNb250aCgwLDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRVVENGdWxsWWVhcih0LmdldFVUQ0Z1bGxZZWFyKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4uZ2V0VVRDRnVsbFllYXIoKS10LmdldFVUQ0Z1bGxZZWFyKCl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0Z1bGxZZWFyKCl9KTtSZy5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP0lhKGZ1bmN0aW9uKG4pe24uc2V0VVRDRnVsbFllYXIoTWF0aC5mbG9vcihuLmdldFVUQ0Z1bGxZZWFyKCkvdCkqdCksbi5zZXRVVENNb250aCgwLDEpLG4uc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKG4sZSl7bi5zZXRVVENGdWxsWWVhcihuLmdldFVUQ0Z1bGxZZWFyKCkrZSp0KX0pOm51bGx9O3ZhciBMZyxEZz1SZy5yYW5nZSxVZz17XCItXCI6XCJcIixfOlwiIFwiLDA6XCIwXCJ9LHFnPS9eXFxzKlxcZCsvLE9nPS9eJS8sWWc9L1tcXFxcXiQqKz98W1xcXSgpLnt9XS9nO25mKHtkYXRlVGltZTpcIiV4LCAlWFwiLGRhdGU6XCIlLW0vJS1kLyVZXCIsdGltZTpcIiUtSTolTTolUyAlcFwiLHBlcmlvZHM6W1wiQU1cIixcIlBNXCJdLGRheXM6W1wiU3VuZGF5XCIsXCJNb25kYXlcIixcIlR1ZXNkYXlcIixcIldlZG5lc2RheVwiLFwiVGh1cnNkYXlcIixcIkZyaWRheVwiLFwiU2F0dXJkYXlcIl0sc2hvcnREYXlzOltcIlN1blwiLFwiTW9uXCIsXCJUdWVcIixcIldlZFwiLFwiVGh1XCIsXCJGcmlcIixcIlNhdFwiXSxtb250aHM6W1wiSmFudWFyeVwiLFwiRmVicnVhcnlcIixcIk1hcmNoXCIsXCJBcHJpbFwiLFwiTWF5XCIsXCJKdW5lXCIsXCJKdWx5XCIsXCJBdWd1c3RcIixcIlNlcHRlbWJlclwiLFwiT2N0b2JlclwiLFwiTm92ZW1iZXJcIixcIkRlY2VtYmVyXCJdLHNob3J0TW9udGhzOltcIkphblwiLFwiRmViXCIsXCJNYXJcIixcIkFwclwiLFwiTWF5XCIsXCJKdW5cIixcIkp1bFwiLFwiQXVnXCIsXCJTZXBcIixcIk9jdFwiLFwiTm92XCIsXCJEZWNcIl19KTt2YXIgQmc9XCIlWS0lbS0lZFQlSDolTTolUy4lTFpcIixGZz1EYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZz9mdW5jdGlvbih0KXtyZXR1cm4gdC50b0lTT1N0cmluZygpfTp0LnV0Y0Zvcm1hdChCZyksSWc9K25ldyBEYXRlKFwiMjAwMC0wMS0wMVQwMDowMDowMC4wMDBaXCIpP2Z1bmN0aW9uKHQpe3ZhciBuPW5ldyBEYXRlKHQpO3JldHVybiBpc05hTihuKT9udWxsOm59OnQudXRjUGFyc2UoQmcpLGpnPTFlMyxIZz02MCpqZyxYZz02MCpIZyxHZz0yNCpYZyxWZz03KkdnLCRnPTMwKkdnLFdnPTM2NSpHZyxaZz1mZihcIjFmNzdiNGZmN2YwZTJjYTAyY2Q2MjcyODk0NjdiZDhjNTY0YmUzNzdjMjdmN2Y3ZmJjYmQyMjE3YmVjZlwiKSxRZz1mZihcIjdmYzk3ZmJlYWVkNGZkYzA4NmZmZmY5OTM4NmNiMGYwMDI3ZmJmNWIxNzY2NjY2NlwiKSxKZz1mZihcIjFiOWU3N2Q5NWYwMjc1NzBiM2U3Mjk4YTY2YTYxZWU2YWIwMmE2NzYxZDY2NjY2NlwiKSxLZz1mZihcImE2Y2VlMzFmNzhiNGIyZGY4YTMzYTAyY2ZiOWE5OWUzMWExY2ZkYmY2ZmZmN2YwMGNhYjJkNjZhM2Q5YWZmZmY5OWIxNTkyOFwiKSx0eT1mZihcImZiYjRhZWIzY2RlM2NjZWJjNWRlY2JlNGZlZDlhNmZmZmZjY2U1ZDhiZGZkZGFlY2YyZjJmMlwiKSxueT1mZihcImIzZTJjZGZkY2RhY2NiZDVlOGY0Y2FlNGU2ZjVjOWZmZjJhZWYxZTJjY2NjY2NjY1wiKSxleT1mZihcImU0MWExYzM3N2ViODRkYWY0YTk4NGVhM2ZmN2YwMGZmZmYzM2E2NTYyOGY3ODFiZjk5OTk5OVwiKSxyeT1mZihcIjY2YzJhNWZjOGQ2MjhkYTBjYmU3OGFjM2E2ZDg1NGZmZDkyZmU1YzQ5NGIzYjNiM1wiKSxpeT1mZihcIjhkZDNjN2ZmZmZiM2JlYmFkYWZiODA3MjgwYjFkM2ZkYjQ2MmIzZGU2OWZjY2RlNWQ5ZDlkOWJjODBiZGNjZWJjNWZmZWQ2ZlwiKSxveT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZDhiMzY1ZjVmNWY1NWFiNGFjXCIsXCJhNjYxMWFkZmMyN2Q4MGNkYzEwMTg1NzFcIixcImE2NjExYWRmYzI3ZGY1ZjVmNTgwY2RjMTAxODU3MVwiLFwiOGM1MTBhZDhiMzY1ZjZlOGMzYzdlYWU1NWFiNGFjMDE2NjVlXCIsXCI4YzUxMGFkOGIzNjVmNmU4YzNmNWY1ZjVjN2VhZTU1YWI0YWMwMTY2NWVcIixcIjhjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2M3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZVwiLFwiOGM1MTBhYmY4MTJkZGZjMjdkZjZlOGMzZjVmNWY1YzdlYWU1ODBjZGMxMzU5NzhmMDE2NjVlXCIsXCI1NDMwMDU4YzUxMGFiZjgxMmRkZmMyN2RmNmU4YzNjN2VhZTU4MGNkYzEzNTk3OGYwMTY2NWUwMDNjMzBcIixcIjU0MzAwNThjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2Y1ZjVmNWM3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZTAwM2MzMFwiKS5tYXAoZmYpLGF5PWNmKG95KSx1eT1uZXcgQXJyYXkoMykuY29uY2F0KFwiYWY4ZGMzZjdmN2Y3N2ZiZjdiXCIsXCI3YjMyOTRjMmE1Y2ZhNmRiYTAwMDg4MzdcIixcIjdiMzI5NGMyYTVjZmY3ZjdmN2E2ZGJhMDAwODgzN1wiLFwiNzYyYTgzYWY4ZGMzZTdkNGU4ZDlmMGQzN2ZiZjdiMWI3ODM3XCIsXCI3NjJhODNhZjhkYzNlN2Q0ZThmN2Y3ZjdkOWYwZDM3ZmJmN2IxYjc4MzdcIixcIjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGQ5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzN1wiLFwiNzYyYTgzOTk3MGFiYzJhNWNmZTdkNGU4ZjdmN2Y3ZDlmMGQzYTZkYmEwNWFhZTYxMWI3ODM3XCIsXCI0MDAwNGI3NjJhODM5OTcwYWJjMmE1Y2ZlN2Q0ZThkOWYwZDNhNmRiYTA1YWFlNjExYjc4MzcwMDQ0MWJcIixcIjQwMDA0Yjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGY3ZjdmN2Q5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNzAwNDQxYlwiKS5tYXAoZmYpLGZ5PWNmKHV5KSxjeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTlhM2M5ZjdmN2Y3YTFkNzZhXCIsXCJkMDFjOGJmMWI2ZGFiOGUxODY0ZGFjMjZcIixcImQwMWM4YmYxYjZkYWY3ZjdmN2I4ZTE4NjRkYWMyNlwiLFwiYzUxYjdkZTlhM2M5ZmRlMGVmZTZmNWQwYTFkNzZhNGQ5MjIxXCIsXCJjNTFiN2RlOWEzYzlmZGUwZWZmN2Y3ZjdlNmY1ZDBhMWQ3NmE0ZDkyMjFcIixcImM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmU2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMVwiLFwiYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZjdmN2Y3ZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxXCIsXCI4ZTAxNTJjNTFiN2RkZTc3YWVmMWI2ZGFmZGUwZWZlNmY1ZDBiOGUxODY3ZmJjNDE0ZDkyMjEyNzY0MTlcIixcIjhlMDE1MmM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmY3ZjdmN2U2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMTI3NjQxOVwiKS5tYXAoZmYpLHN5PWNmKGN5KSxseT1uZXcgQXJyYXkoMykuY29uY2F0KFwiOTk4ZWMzZjdmN2Y3ZjFhMzQwXCIsXCI1ZTNjOTliMmFiZDJmZGI4NjNlNjYxMDFcIixcIjVlM2M5OWIyYWJkMmY3ZjdmN2ZkYjg2M2U2NjEwMVwiLFwiNTQyNzg4OTk4ZWMzZDhkYWViZmVlMGI2ZjFhMzQwYjM1ODA2XCIsXCI1NDI3ODg5OThlYzNkOGRhZWJmN2Y3ZjdmZWUwYjZmMWEzNDBiMzU4MDZcIixcIjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNlwiLFwiNTQyNzg4ODA3M2FjYjJhYmQyZDhkYWViZjdmN2Y3ZmVlMGI2ZmRiODYzZTA4MjE0YjM1ODA2XCIsXCIyZDAwNGI1NDI3ODg4MDczYWNiMmFiZDJkOGRhZWJmZWUwYjZmZGI4NjNlMDgyMTRiMzU4MDY3ZjNiMDhcIixcIjJkMDA0YjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmY3ZjdmN2ZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNjdmM2IwOFwiKS5tYXAoZmYpLGh5PWNmKGx5KSxkeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWY4YTYyZjdmN2Y3NjdhOWNmXCIsXCJjYTAwMjBmNGE1ODI5MmM1ZGUwNTcxYjBcIixcImNhMDAyMGY0YTU4MmY3ZjdmNzkyYzVkZTA1NzFiMFwiLFwiYjIxODJiZWY4YTYyZmRkYmM3ZDFlNWYwNjdhOWNmMjE2NmFjXCIsXCJiMjE4MmJlZjhhNjJmZGRiYzdmN2Y3ZjdkMWU1ZjA2N2E5Y2YyMTY2YWNcIixcImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhY1wiLFwiYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZjdmN2Y3ZDFlNWYwOTJjNWRlNDM5M2MzMjE2NmFjXCIsXCI2NzAwMWZiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdkMWU1ZjA5MmM1ZGU0MzkzYzMyMTY2YWMwNTMwNjFcIixcIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2Y3ZjdmN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYzA1MzA2MVwiKS5tYXAoZmYpLHB5PWNmKGR5KSx2eT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWY4YTYyZmZmZmZmOTk5OTk5XCIsXCJjYTAwMjBmNGE1ODJiYWJhYmE0MDQwNDBcIixcImNhMDAyMGY0YTU4MmZmZmZmZmJhYmFiYTQwNDA0MFwiLFwiYjIxODJiZWY4YTYyZmRkYmM3ZTBlMGUwOTk5OTk5NGQ0ZDRkXCIsXCJiMjE4MmJlZjhhNjJmZGRiYzdmZmZmZmZlMGUwZTA5OTk5OTk0ZDRkNGRcIixcImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2UwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZFwiLFwiYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZmZmZmZmZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkXCIsXCI2NzAwMWZiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdlMGUwZTBiYWJhYmE4Nzg3ODc0ZDRkNGQxYTFhMWFcIixcIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2ZmZmZmZmUwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZDFhMWExYVwiKS5tYXAoZmYpLGd5PWNmKHZ5KSx5eT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmM4ZDU5ZmZmZmJmOTFiZmRiXCIsXCJkNzE5MWNmZGFlNjFhYmQ5ZTkyYzdiYjZcIixcImQ3MTkxY2ZkYWU2MWZmZmZiZmFiZDllOTJjN2JiNlwiLFwiZDczMDI3ZmM4ZDU5ZmVlMDkwZTBmM2Y4OTFiZmRiNDU3NWI0XCIsXCJkNzMwMjdmYzhkNTlmZWUwOTBmZmZmYmZlMGYzZjg5MWJmZGI0NTc1YjRcIixcImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNFwiLFwiZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDkwZmZmZmJmZTBmM2Y4YWJkOWU5NzRhZGQxNDU3NWI0XCIsXCJhNTAwMjZkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOTBlMGYzZjhhYmQ5ZTk3NGFkZDE0NTc1YjQzMTM2OTVcIixcImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGZmZmZiZmUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNDMxMzY5NVwiKS5tYXAoZmYpLF95PWNmKHl5KSxieT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmM4ZDU5ZmZmZmJmOTFjZjYwXCIsXCJkNzE5MWNmZGFlNjFhNmQ5NmExYTk2NDFcIixcImQ3MTkxY2ZkYWU2MWZmZmZiZmE2ZDk2YTFhOTY0MVwiLFwiZDczMDI3ZmM4ZDU5ZmVlMDhiZDllZjhiOTFjZjYwMWE5ODUwXCIsXCJkNzMwMjdmYzhkNTlmZWUwOGJmZmZmYmZkOWVmOGI5MWNmNjAxYTk4NTBcIixcImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MFwiLFwiZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDhiZmZmZmJmZDllZjhiYTZkOTZhNjZiZDYzMWE5ODUwXCIsXCJhNTAwMjZkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOGJkOWVmOGJhNmQ5NmE2NmJkNjMxYTk4NTAwMDY4MzdcIixcImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MDAwNjgzN1wiKS5tYXAoZmYpLG15PWNmKGJ5KSx4eT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmM4ZDU5ZmZmZmJmOTlkNTk0XCIsXCJkNzE5MWNmZGFlNjFhYmRkYTQyYjgzYmFcIixcImQ3MTkxY2ZkYWU2MWZmZmZiZmFiZGRhNDJiODNiYVwiLFwiZDUzZTRmZmM4ZDU5ZmVlMDhiZTZmNTk4OTlkNTk0MzI4OGJkXCIsXCJkNTNlNGZmYzhkNTlmZWUwOGJmZmZmYmZlNmY1OTg5OWQ1OTQzMjg4YmRcIixcImQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZFwiLFwiZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZmZmZmJmZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkXCIsXCI5ZTAxNDJkNTNlNGZmNDZkNDNmZGFlNjFmZWUwOGJlNmY1OThhYmRkYTQ2NmMyYTUzMjg4YmQ1ZTRmYTJcIixcIjllMDE0MmQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZDVlNGZhMlwiKS5tYXAoZmYpLHd5PWNmKHh5KSxNeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTVmNWY5OTlkOGM5MmNhMjVmXCIsXCJlZGY4ZmJiMmUyZTI2NmMyYTQyMzhiNDVcIixcImVkZjhmYmIyZTJlMjY2YzJhNDJjYTI1ZjAwNmQyY1wiLFwiZWRmOGZiY2NlY2U2OTlkOGM5NjZjMmE0MmNhMjVmMDA2ZDJjXCIsXCJlZGY4ZmJjY2VjZTY5OWQ4Yzk2NmMyYTQ0MWFlNzYyMzhiNDUwMDU4MjRcIixcImY3ZmNmZGU1ZjVmOWNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNTgyNFwiLFwiZjdmY2ZkZTVmNWY5Y2NlY2U2OTlkOGM5NjZjMmE0NDFhZTc2MjM4YjQ1MDA2ZDJjMDA0NDFiXCIpLm1hcChmZiksQXk9Y2YoTXkpLFR5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlMGVjZjQ5ZWJjZGE4ODU2YTdcIixcImVkZjhmYmIzY2RlMzhjOTZjNjg4NDE5ZFwiLFwiZWRmOGZiYjNjZGUzOGM5NmM2ODg1NmE3ODEwZjdjXCIsXCJlZGY4ZmJiZmQzZTY5ZWJjZGE4Yzk2YzY4ODU2YTc4MTBmN2NcIixcImVkZjhmYmJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDZlMDE2YlwiLFwiZjdmY2ZkZTBlY2Y0YmZkM2U2OWViY2RhOGM5NmM2OGM2YmIxODg0MTlkNmUwMTZiXCIsXCJmN2ZjZmRlMGVjZjRiZmQzZTY5ZWJjZGE4Yzk2YzY4YzZiYjE4ODQxOWQ4MTBmN2M0ZDAwNGJcIikubWFwKGZmKSxOeT1jZihUeSksU3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImUwZjNkYmE4ZGRiNTQzYTJjYVwiLFwiZjBmOWU4YmFlNGJjN2JjY2M0MmI4Y2JlXCIsXCJmMGY5ZThiYWU0YmM3YmNjYzQ0M2EyY2EwODY4YWNcIixcImYwZjllOGNjZWJjNWE4ZGRiNTdiY2NjNDQzYTJjYTA4NjhhY1wiLFwiZjBmOWU4Y2NlYmM1YThkZGI1N2JjY2M0NGViM2QzMmI4Y2JlMDg1ODllXCIsXCJmN2ZjZjBlMGYzZGJjY2ViYzVhOGRkYjU3YmNjYzQ0ZWIzZDMyYjhjYmUwODU4OWVcIixcImY3ZmNmMGUwZjNkYmNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NjhhYzA4NDA4MVwiKS5tYXAoZmYpLEV5PWNmKFN5KSxreT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmVlOGM4ZmRiYjg0ZTM0YTMzXCIsXCJmZWYwZDlmZGNjOGFmYzhkNTlkNzMwMWZcIixcImZlZjBkOWZkY2M4YWZjOGQ1OWUzNGEzM2IzMDAwMFwiLFwiZmVmMGQ5ZmRkNDllZmRiYjg0ZmM4ZDU5ZTM0YTMzYjMwMDAwXCIsXCJmZWYwZDlmZGQ0OWVmZGJiODRmYzhkNTllZjY1NDhkNzMwMWY5OTAwMDBcIixcImZmZjdlY2ZlZThjOGZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZjk5MDAwMFwiLFwiZmZmN2VjZmVlOGM4ZmRkNDllZmRiYjg0ZmM4ZDU5ZWY2NTQ4ZDczMDFmYjMwMDAwN2YwMDAwXCIpLm1hcChmZiksQ3k9Y2Yoa3kpLFB5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlY2UyZjBhNmJkZGIxYzkwOTlcIixcImY2ZWZmN2JkYzllMTY3YTljZjAyODE4YVwiLFwiZjZlZmY3YmRjOWUxNjdhOWNmMWM5MDk5MDE2YzU5XCIsXCJmNmVmZjdkMGQxZTZhNmJkZGI2N2E5Y2YxYzkwOTkwMTZjNTlcIixcImY2ZWZmN2QwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNjQ1MFwiLFwiZmZmN2ZiZWNlMmYwZDBkMWU2YTZiZGRiNjdhOWNmMzY5MGMwMDI4MThhMDE2NDUwXCIsXCJmZmY3ZmJlY2UyZjBkMGQxZTZhNmJkZGI2N2E5Y2YzNjkwYzAwMjgxOGEwMTZjNTkwMTQ2MzZcIikubWFwKGZmKSx6eT1jZihQeSksUnk9bmV3IEFycmF5KDMpLmNvbmNhdChcImVjZTdmMmE2YmRkYjJiOGNiZVwiLFwiZjFlZWY2YmRjOWUxNzRhOWNmMDU3MGIwXCIsXCJmMWVlZjZiZGM5ZTE3NGE5Y2YyYjhjYmUwNDVhOGRcIixcImYxZWVmNmQwZDFlNmE2YmRkYjc0YTljZjJiOGNiZTA0NWE4ZFwiLFwiZjFlZWY2ZDBkMWU2YTZiZGRiNzRhOWNmMzY5MGMwMDU3MGIwMDM0ZTdiXCIsXCJmZmY3ZmJlY2U3ZjJkMGQxZTZhNmJkZGI3NGE5Y2YzNjkwYzAwNTcwYjAwMzRlN2JcIixcImZmZjdmYmVjZTdmMmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDA0NWE4ZDAyMzg1OFwiKS5tYXAoZmYpLEx5PWNmKFJ5KSxEeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTdlMWVmYzk5NGM3ZGQxYzc3XCIsXCJmMWVlZjZkN2I1ZDhkZjY1YjBjZTEyNTZcIixcImYxZWVmNmQ3YjVkOGRmNjViMGRkMWM3Nzk4MDA0M1wiLFwiZjFlZWY2ZDRiOWRhYzk5NGM3ZGY2NWIwZGQxYzc3OTgwMDQzXCIsXCJmMWVlZjZkNGI5ZGFjOTk0YzdkZjY1YjBlNzI5OGFjZTEyNTY5MTAwM2ZcIixcImY3ZjRmOWU3ZTFlZmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1NjkxMDAzZlwiLFwiZjdmNGY5ZTdlMWVmZDRiOWRhYzk5NGM3ZGY2NWIwZTcyOThhY2UxMjU2OTgwMDQzNjcwMDFmXCIpLm1hcChmZiksVXk9Y2YoRHkpLHF5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZGUwZGRmYTlmYjVjNTFiOGFcIixcImZlZWJlMmZiYjRiOWY3NjhhMWFlMDE3ZVwiLFwiZmVlYmUyZmJiNGI5Zjc2OGExYzUxYjhhN2EwMTc3XCIsXCJmZWViZTJmY2M1YzBmYTlmYjVmNzY4YTFjNTFiOGE3YTAxNzdcIixcImZlZWJlMmZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3N1wiLFwiZmZmN2YzZmRlMGRkZmNjNWMwZmE5ZmI1Zjc2OGExZGQzNDk3YWUwMTdlN2EwMTc3XCIsXCJmZmY3ZjNmZGUwZGRmY2M1YzBmYTlmYjVmNzY4YTFkZDM0OTdhZTAxN2U3YTAxNzc0OTAwNmFcIikubWFwKGZmKSxPeT1jZihxeSksWXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImVkZjhiMTdmY2RiYjJjN2ZiOFwiLFwiZmZmZmNjYTFkYWI0NDFiNmM0MjI1ZWE4XCIsXCJmZmZmY2NhMWRhYjQ0MWI2YzQyYzdmYjgyNTM0OTRcIixcImZmZmZjY2M3ZTliNDdmY2RiYjQxYjZjNDJjN2ZiODI1MzQ5NFwiLFwiZmZmZmNjYzdlOWI0N2ZjZGJiNDFiNmM0MWQ5MWMwMjI1ZWE4MGMyYzg0XCIsXCJmZmZmZDllZGY4YjFjN2U5YjQ3ZmNkYmI0MWI2YzQxZDkxYzAyMjVlYTgwYzJjODRcIixcImZmZmZkOWVkZjhiMWM3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODI1MzQ5NDA4MWQ1OFwiKS5tYXAoZmYpLEJ5PWNmKFl5KSxGeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZjdmY2I5YWRkZDhlMzFhMzU0XCIsXCJmZmZmY2NjMmU2OTk3OGM2NzkyMzg0NDNcIixcImZmZmZjY2MyZTY5OTc4YzY3OTMxYTM1NDAwNjgzN1wiLFwiZmZmZmNjZDlmMGEzYWRkZDhlNzhjNjc5MzFhMzU0MDA2ODM3XCIsXCJmZmZmY2NkOWYwYTNhZGRkOGU3OGM2Nzk0MWFiNWQyMzg0NDMwMDVhMzJcIixcImZmZmZlNWY3ZmNiOWQ5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNWEzMlwiLFwiZmZmZmU1ZjdmY2I5ZDlmMGEzYWRkZDhlNzhjNjc5NDFhYjVkMjM4NDQzMDA2ODM3MDA0NTI5XCIpLm1hcChmZiksSXk9Y2YoRnkpLGp5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZmY3YmNmZWM0NGZkOTVmMGVcIixcImZmZmZkNGZlZDk4ZWZlOTkyOWNjNGMwMlwiLFwiZmZmZmQ0ZmVkOThlZmU5OTI5ZDk1ZjBlOTkzNDA0XCIsXCJmZmZmZDRmZWUzOTFmZWM0NGZmZTk5MjlkOTVmMGU5OTM0MDRcIixcImZmZmZkNGZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjhjMmQwNFwiLFwiZmZmZmU1ZmZmN2JjZmVlMzkxZmVjNDRmZmU5OTI5ZWM3MDE0Y2M0YzAyOGMyZDA0XCIsXCJmZmZmZTVmZmY3YmNmZWUzOTFmZWM0NGZmZTk5MjllYzcwMTRjYzRjMDI5OTM0MDQ2NjI1MDZcIikubWFwKGZmKSxIeT1jZihqeSksWHk9bmV3IEFycmF5KDMpLmNvbmNhdChcImZmZWRhMGZlYjI0Y2YwM2IyMFwiLFwiZmZmZmIyZmVjYzVjZmQ4ZDNjZTMxYTFjXCIsXCJmZmZmYjJmZWNjNWNmZDhkM2NmMDNiMjBiZDAwMjZcIixcImZmZmZiMmZlZDk3NmZlYjI0Y2ZkOGQzY2YwM2IyMGJkMDAyNlwiLFwiZmZmZmIyZmVkOTc2ZmViMjRjZmQ4ZDNjZmM0ZTJhZTMxYTFjYjEwMDI2XCIsXCJmZmZmY2NmZmVkYTBmZWQ5NzZmZWIyNGNmZDhkM2NmYzRlMmFlMzFhMWNiMTAwMjZcIixcImZmZmZjY2ZmZWRhMGZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2JkMDAyNjgwMDAyNlwiKS5tYXAoZmYpLEd5PWNmKFh5KSxWeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZGVlYmY3OWVjYWUxMzE4MmJkXCIsXCJlZmYzZmZiZGQ3ZTc2YmFlZDYyMTcxYjVcIixcImVmZjNmZmJkZDdlNzZiYWVkNjMxODJiZDA4NTE5Y1wiLFwiZWZmM2ZmYzZkYmVmOWVjYWUxNmJhZWQ2MzE4MmJkMDg1MTljXCIsXCJlZmYzZmZjNmRiZWY5ZWNhZTE2YmFlZDY0MjkyYzYyMTcxYjUwODQ1OTRcIixcImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NDU5NFwiLFwiZjdmYmZmZGVlYmY3YzZkYmVmOWVjYWUxNmJhZWQ2NDI5MmM2MjE3MWI1MDg1MTljMDgzMDZiXCIpLm1hcChmZiksJHk9Y2YoVnkpLFd5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlNWY1ZTBhMWQ5OWIzMWEzNTRcIixcImVkZjhlOWJhZTRiMzc0YzQ3NjIzOGI0NVwiLFwiZWRmOGU5YmFlNGIzNzRjNDc2MzFhMzU0MDA2ZDJjXCIsXCJlZGY4ZTljN2U5YzBhMWQ5OWI3NGM0NzYzMWEzNTQwMDZkMmNcIixcImVkZjhlOWM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNWEzMlwiLFwiZjdmY2Y1ZTVmNWUwYzdlOWMwYTFkOTliNzRjNDc2NDFhYjVkMjM4YjQ1MDA1YTMyXCIsXCJmN2ZjZjVlNWY1ZTBjN2U5YzBhMWQ5OWI3NGM0NzY0MWFiNWQyMzhiNDUwMDZkMmMwMDQ0MWJcIikubWFwKGZmKSxaeT1jZihXeSksUXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImYwZjBmMGJkYmRiZDYzNjM2M1wiLFwiZjdmN2Y3Y2NjY2NjOTY5Njk2NTI1MjUyXCIsXCJmN2Y3ZjdjY2NjY2M5Njk2OTY2MzYzNjMyNTI1MjVcIixcImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjYzNjM2MzI1MjUyNVwiLFwiZjdmN2Y3ZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1XCIsXCJmZmZmZmZmMGYwZjBkOWQ5ZDliZGJkYmQ5Njk2OTY3MzczNzM1MjUyNTIyNTI1MjVcIixcImZmZmZmZmYwZjBmMGQ5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNTAwMDAwMFwiKS5tYXAoZmYpLEp5PWNmKFF5KSxLeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWZlZGY1YmNiZGRjNzU2YmIxXCIsXCJmMmYwZjdjYmM5ZTI5ZTlhYzg2YTUxYTNcIixcImYyZjBmN2NiYzllMjllOWFjODc1NmJiMTU0Mjc4ZlwiLFwiZjJmMGY3ZGFkYWViYmNiZGRjOWU5YWM4NzU2YmIxNTQyNzhmXCIsXCJmMmYwZjdkYWRhZWJiY2JkZGM5ZTlhYzg4MDdkYmE2YTUxYTM0YTE0ODZcIixcImZjZmJmZGVmZWRmNWRhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzRhMTQ4NlwiLFwiZmNmYmZkZWZlZGY1ZGFkYWViYmNiZGRjOWU5YWM4ODA3ZGJhNmE1MWEzNTQyNzhmM2YwMDdkXCIpLm1hcChmZiksdF89Y2YoS3kpLG5fPW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZWUwZDJmYzkyNzJkZTJkMjZcIixcImZlZTVkOWZjYWU5MWZiNmE0YWNiMTgxZFwiLFwiZmVlNWQ5ZmNhZTkxZmI2YTRhZGUyZDI2YTUwZjE1XCIsXCJmZWU1ZDlmY2JiYTFmYzkyNzJmYjZhNGFkZTJkMjZhNTBmMTVcIixcImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZFwiLFwiZmZmNWYwZmVlMGQyZmNiYmExZmM5MjcyZmI2YTRhZWYzYjJjY2IxODFkOTkwMDBkXCIsXCJmZmY1ZjBmZWUwZDJmY2JiYTFmYzkyNzJmYjZhNGFlZjNiMmNjYjE4MWRhNTBmMTU2NzAwMGRcIikubWFwKGZmKSxlXz1jZihuXykscl89bmV3IEFycmF5KDMpLmNvbmNhdChcImZlZTZjZWZkYWU2YmU2NTUwZFwiLFwiZmVlZGRlZmRiZTg1ZmQ4ZDNjZDk0NzAxXCIsXCJmZWVkZGVmZGJlODVmZDhkM2NlNjU1MGRhNjM2MDNcIixcImZlZWRkZWZkZDBhMmZkYWU2YmZkOGQzY2U2NTUwZGE2MzYwM1wiLFwiZmVlZGRlZmRkMGEyZmRhZTZiZmQ4ZDNjZjE2OTEzZDk0ODAxOGMyZDA0XCIsXCJmZmY1ZWJmZWU2Y2VmZGQwYTJmZGFlNmJmZDhkM2NmMTY5MTNkOTQ4MDE4YzJkMDRcIixcImZmZjVlYmZlZTZjZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMWE2MzYwMzdmMjcwNFwiKS5tYXAoZmYpLGlfPWNmKHJfKSxvXz14bChadCgzMDAsLjUsMCksWnQoLTI0MCwuNSwxKSksYV89eGwoWnQoLTEwMCwuNzUsLjM1KSxadCg4MCwxLjUsLjgpKSx1Xz14bChadCgyNjAsLjc1LC4zNSksWnQoODAsMS41LC44KSksZl89WnQoKSxjXz1SdCgpLHNfPU1hdGguUEkvMyxsXz0yKk1hdGguUEkvMyxoXz1zZihmZihcIjQ0MDE1NDQ0MDI1NjQ1MDQ1NzQ1MDU1OTQ2MDc1YTQ2MDg1YzQ2MGE1ZDQ2MGI1ZTQ3MGQ2MDQ3MGU2MTQ3MTA2MzQ3MTE2NDQ3MTM2NTQ4MTQ2NzQ4MTY2ODQ4MTc2OTQ4MTg2YTQ4MWE2YzQ4MWI2ZDQ4MWM2ZTQ4MWQ2ZjQ4MWY3MDQ4MjA3MTQ4MjE3MzQ4MjM3NDQ4MjQ3NTQ4MjU3NjQ4MjY3NzQ4Mjg3ODQ4Mjk3OTQ3MmE3YTQ3MmM3YTQ3MmQ3YjQ3MmU3YzQ3MmY3ZDQ2MzA3ZTQ2MzI3ZTQ2MzM3ZjQ2MzQ4MDQ1MzU4MTQ1Mzc4MTQ1Mzg4MjQ0Mzk4MzQ0M2E4MzQ0M2I4NDQzM2Q4NDQzM2U4NTQyM2Y4NTQyNDA4NjQyNDE4NjQxNDI4NzQxNDQ4NzQwNDU4ODQwNDY4ODNmNDc4ODNmNDg4OTNlNDk4OTNlNGE4OTNlNGM4YTNkNGQ4YTNkNGU4YTNjNGY4YTNjNTA4YjNiNTE4YjNiNTI4YjNhNTM4YjNhNTQ4YzM5NTU4YzM5NTY4YzM4NTg4YzM4NTk4YzM3NWE4YzM3NWI4ZDM2NWM4ZDM2NWQ4ZDM1NWU4ZDM1NWY4ZDM0NjA4ZDM0NjE4ZDMzNjI4ZDMzNjM4ZDMyNjQ4ZTMyNjU4ZTMxNjY4ZTMxNjc4ZTMxNjg4ZTMwNjk4ZTMwNmE4ZTJmNmI4ZTJmNmM4ZTJlNmQ4ZTJlNmU4ZTJlNmY4ZTJkNzA4ZTJkNzE4ZTJjNzE4ZTJjNzI4ZTJjNzM4ZTJiNzQ4ZTJiNzU4ZTJhNzY4ZTJhNzc4ZTJhNzg4ZTI5Nzk4ZTI5N2E4ZTI5N2I4ZTI4N2M4ZTI4N2Q4ZTI3N2U4ZTI3N2Y4ZTI3ODA4ZTI2ODE4ZTI2ODI4ZTI2ODI4ZTI1ODM4ZTI1ODQ4ZTI1ODU4ZTI0ODY4ZTI0ODc4ZTIzODg4ZTIzODk4ZTIzOGE4ZDIyOGI4ZDIyOGM4ZDIyOGQ4ZDIxOGU4ZDIxOGY4ZDIxOTA4ZDIxOTE4YzIwOTI4YzIwOTI4YzIwOTM4YzFmOTQ4YzFmOTU4YjFmOTY4YjFmOTc4YjFmOTg4YjFmOTk4YTFmOWE4YTFlOWI4YTFlOWM4OTFlOWQ4OTFmOWU4OTFmOWY4ODFmYTA4ODFmYTE4ODFmYTE4NzFmYTI4NzIwYTM4NjIwYTQ4NjIxYTU4NTIxYTY4NTIyYTc4NTIyYTg4NDIzYTk4MzI0YWE4MzI1YWI4MjI1YWM4MjI2YWQ4MTI3YWQ4MTI4YWU4MDI5YWY3ZjJhYjA3ZjJjYjE3ZTJkYjI3ZDJlYjM3YzJmYjQ3YzMxYjU3YjMyYjY3YTM0YjY3OTM1Yjc3OTM3Yjg3ODM4Yjk3NzNhYmE3NjNiYmI3NTNkYmM3NDNmYmM3MzQwYmQ3MjQyYmU3MTQ0YmY3MDQ2YzA2ZjQ4YzE2ZTRhYzE2ZDRjYzI2YzRlYzM2YjUwYzQ2YTUyYzU2OTU0YzU2ODU2YzY2NzU4Yzc2NTVhYzg2NDVjYzg2MzVlYzk2MjYwY2E2MDYzY2I1ZjY1Y2I1ZTY3Y2M1YzY5Y2Q1YjZjY2Q1YTZlY2U1ODcwY2Y1NzczZDA1Njc1ZDA1NDc3ZDE1MzdhZDE1MTdjZDI1MDdmZDM0ZTgxZDM0ZDg0ZDQ0Yjg2ZDU0OTg5ZDU0ODhiZDY0NjhlZDY0NTkwZDc0MzkzZDc0MTk1ZDg0MDk4ZDgzZTliZDkzYzlkZDkzYmEwZGEzOWEyZGEzN2E1ZGIzNmE4ZGIzNGFhZGMzMmFkZGMzMGIwZGQyZmIyZGQyZGI1ZGUyYmI4ZGUyOWJhZGUyOGJkZGYyNmMwZGYyNWMyZGYyM2M1ZTAyMWM4ZTAyMGNhZTExZmNkZTExZGQwZTExY2QyZTIxYmQ1ZTIxYWQ4ZTIxOWRhZTMxOWRkZTMxOGRmZTMxOGUyZTQxOGU1ZTQxOWU3ZTQxOWVhZTUxYWVjZTUxYmVmZTUxY2YxZTUxZGY0ZTYxZWY2ZTYyMGY4ZTYyMWZiZTcyM2ZkZTcyNVwiKSksZF89c2YoZmYoXCIwMDAwMDQwMTAwMDUwMTAxMDYwMTAxMDgwMjAxMDkwMjAyMGIwMjAyMGQwMzAzMGYwMzAzMTIwNDA0MTQwNTA0MTYwNjA1MTgwNjA1MWEwNzA2MWMwODA3MWUwOTA3MjAwYTA4MjIwYjA5MjQwYzA5MjYwZDBhMjkwZTBiMmIxMDBiMmQxMTBjMmYxMjBkMzExMzBkMzQxNDBlMzYxNTBlMzgxNjBmM2IxODBmM2QxOTEwM2YxYTEwNDIxYzEwNDQxZDExNDcxZTExNDkyMDExNGIyMTExNGUyMjExNTAyNDEyNTMyNTEyNTUyNzEyNTgyOTExNWEyYTExNWMyYzExNWYyZDExNjEyZjExNjMzMTExNjUzMzEwNjczNDEwNjkzNjEwNmIzODEwNmMzOTBmNmUzYjBmNzAzZDBmNzEzZjBmNzI0MDBmNzQ0MjBmNzU0NDBmNzY0NTEwNzc0NzEwNzg0OTEwNzg0YTEwNzk0YzExN2E0ZTExN2I0ZjEyN2I1MTEyN2M1MjEzN2M1NDEzN2Q1NjE0N2Q1NzE1N2U1OTE1N2U1YTE2N2U1YzE2N2Y1ZDE3N2Y1ZjE4N2Y2MDE4ODA2MjE5ODA2NDFhODA2NTFhODA2NzFiODA2ODFjODE2YTFjODE2YjFkODE2ZDFkODE2ZTFlODE3MDFmODE3MjFmODE3MzIwODE3NTIxODE3NjIxODE3ODIyODE3OTIyODI3YjIzODI3YzIzODI3ZTI0ODI4MDI1ODI4MTI1ODE4MzI2ODE4NDI2ODE4NjI3ODE4ODI3ODE4OTI4ODE4YjI5ODE4YzI5ODE4ZTJhODE5MDJhODE5MTJiODE5MzJiODA5NDJjODA5NjJjODA5ODJkODA5OTJkODA5YjJlN2Y5YzJlN2Y5ZTJmN2ZhMDJmN2ZhMTMwN2VhMzMwN2VhNTMxN2VhNjMxN2RhODMyN2RhYTMzN2RhYjMzN2NhZDM0N2NhZTM0N2JiMDM1N2JiMjM1N2JiMzM2N2FiNTM2N2FiNzM3NzliODM3NzliYTM4NzhiYzM5NzhiZDM5NzdiZjNhNzdjMDNhNzZjMjNiNzVjNDNjNzVjNTNjNzRjNzNkNzNjODNlNzNjYTNlNzJjYzNmNzFjZDQwNzFjZjQwNzBkMDQxNmZkMjQyNmZkMzQzNmVkNTQ0NmRkNjQ1NmNkODQ1NmNkOTQ2NmJkYjQ3NmFkYzQ4NjlkZTQ5NjhkZjRhNjhlMDRjNjdlMjRkNjZlMzRlNjVlNDRmNjRlNTUwNjRlNzUyNjNlODUzNjJlOTU0NjJlYTU2NjFlYjU3NjBlYzU4NjBlZDVhNWZlZTViNWVlZjVkNWVmMDVmNWVmMTYwNWRmMjYyNWRmMjY0NWNmMzY1NWNmNDY3NWNmNDY5NWNmNTZiNWNmNjZjNWNmNjZlNWNmNzcwNWNmNzcyNWNmODc0NWNmODc2NWNmOTc4NWRmOTc5NWRmOTdiNWRmYTdkNWVmYTdmNWVmYTgxNWZmYjgzNWZmYjg1NjBmYjg3NjFmYzg5NjFmYzhhNjJmYzhjNjNmYzhlNjRmYzkwNjVmZDkyNjZmZDk0NjdmZDk2NjhmZDk4NjlmZDlhNmFmZDliNmJmZTlkNmNmZTlmNmRmZWExNmVmZWEzNmZmZWE1NzFmZWE3NzJmZWE5NzNmZWFhNzRmZWFjNzZmZWFlNzdmZWIwNzhmZWIyN2FmZWI0N2JmZWI2N2NmZWI3N2VmZWI5N2ZmZWJiODFmZWJkODJmZWJmODRmZWMxODVmZWMyODdmZWM0ODhmZWM2OGFmZWM4OGNmZWNhOGRmZWNjOGZmZWNkOTBmZWNmOTJmZWQxOTRmZWQzOTVmZWQ1OTdmZWQ3OTlmZWQ4OWFmZGRhOWNmZGRjOWVmZGRlYTBmZGUwYTFmZGUyYTNmZGUzYTVmZGU1YTdmZGU3YTlmZGU5YWFmZGViYWNmY2VjYWVmY2VlYjBmY2YwYjJmY2YyYjRmY2Y0YjZmY2Y2YjhmY2Y3YjlmY2Y5YmJmY2ZiYmRmY2ZkYmZcIikpLHBfPXNmKGZmKFwiMDAwMDA0MDEwMDA1MDEwMTA2MDEwMTA4MDIwMTBhMDIwMjBjMDIwMjBlMDMwMjEwMDQwMzEyMDQwMzE0MDUwNDE3MDYwNDE5MDcwNTFiMDgwNTFkMDkwNjFmMGEwNzIyMGIwNzI0MGMwODI2MGQwODI5MGUwOTJiMTAwOTJkMTEwYTMwMTIwYTMyMTQwYjM0MTUwYjM3MTYwYjM5MTgwYzNjMTkwYzNlMWIwYzQxMWMwYzQzMWUwYzQ1MWYwYzQ4MjEwYzRhMjMwYzRjMjQwYzRmMjYwYzUxMjgwYjUzMjkwYjU1MmIwYjU3MmQwYjU5MmYwYTViMzEwYTVjMzIwYTVlMzQwYTVmMzYwOTYxMzgwOTYyMzkwOTYzM2IwOTY0M2QwOTY1M2UwOTY2NDAwYTY3NDIwYTY4NDQwYTY4NDUwYTY5NDcwYjZhNDkwYjZhNGEwYzZiNGMwYzZiNGQwZDZjNGYwZDZjNTEwZTZjNTIwZTZkNTQwZjZkNTUwZjZkNTcxMDZlNTkxMDZlNWExMTZlNWMxMjZlNWQxMjZlNWYxMzZlNjExMzZlNjIxNDZlNjQxNTZlNjUxNTZlNjcxNjZlNjkxNjZlNmExNzZlNmMxODZlNmQxODZlNmYxOTZlNzExOTZlNzIxYTZlNzQxYTZlNzUxYjZlNzcxYzZkNzgxYzZkN2ExZDZkN2MxZDZkN2QxZTZkN2YxZTZjODAxZjZjODIyMDZjODQyMDZiODUyMTZiODcyMTZiODgyMjZhOGEyMjZhOGMyMzY5OGQyMzY5OGYyNDY5OTAyNTY4OTIyNTY4OTMyNjY3OTUyNjY3OTcyNzY2OTgyNzY2OWEyODY1OWIyOTY0OWQyOTY0OWYyYTYzYTAyYTYzYTIyYjYyYTMyYzYxYTUyYzYwYTYyZDYwYTgyZTVmYTkyZTVlYWIyZjVlYWQzMDVkYWUzMDVjYjAzMTViYjEzMjVhYjMzMjVhYjQzMzU5YjYzNDU4YjczNTU3YjkzNTU2YmEzNjU1YmMzNzU0YmQzODUzYmYzOTUyYzAzYTUxYzEzYTUwYzMzYjRmYzQzYzRlYzYzZDRkYzczZTRjYzgzZjRiY2E0MDRhY2I0MTQ5Y2M0MjQ4Y2U0MzQ3Y2Y0NDQ2ZDA0NTQ1ZDI0NjQ0ZDM0NzQzZDQ0ODQyZDU0YTQxZDc0YjNmZDg0YzNlZDk0ZDNkZGE0ZTNjZGI1MDNiZGQ1MTNhZGU1MjM4ZGY1MzM3ZTA1NTM2ZTE1NjM1ZTI1NzM0ZTM1OTMzZTQ1YTMxZTU1YzMwZTY1ZDJmZTc1ZTJlZTg2MDJkZTk2MTJiZWE2MzJhZWI2NDI5ZWI2NjI4ZWM2NzI2ZWQ2OTI1ZWU2YTI0ZWY2YzIzZWY2ZTIxZjA2ZjIwZjE3MTFmZjE3MzFkZjI3NDFjZjM3NjFiZjM3ODE5ZjQ3OTE4ZjU3YjE3ZjU3ZDE1ZjY3ZTE0ZjY4MDEzZjc4MjEyZjc4NDEwZjg4NTBmZjg4NzBlZjg4OTBjZjk4YjBiZjk4YzBhZjk4ZTA5ZmE5MDA4ZmE5MjA3ZmE5NDA3ZmI5NjA2ZmI5NzA2ZmI5OTA2ZmI5YjA2ZmI5ZDA3ZmM5ZjA3ZmNhMTA4ZmNhMzA5ZmNhNTBhZmNhNjBjZmNhODBkZmNhYTBmZmNhYzExZmNhZTEyZmNiMDE0ZmNiMjE2ZmNiNDE4ZmJiNjFhZmJiODFkZmJiYTFmZmJiYzIxZmJiZTIzZmFjMDI2ZmFjMjI4ZmFjNDJhZmFjNjJkZjljNzJmZjljOTMyZjljYjM1ZjhjZDM3ZjhjZjNhZjdkMTNkZjdkMzQwZjZkNTQzZjZkNzQ2ZjVkOTQ5ZjVkYjRjZjRkZDRmZjRkZjUzZjRlMTU2ZjNlMzVhZjNlNTVkZjJlNjYxZjJlODY1ZjJlYTY5ZjFlYzZkZjFlZDcxZjFlZjc1ZjFmMTc5ZjJmMjdkZjJmNDgyZjNmNTg2ZjNmNjhhZjRmODhlZjVmOTkyZjZmYTk2ZjhmYjlhZjlmYzlkZmFmZGExZmNmZmE0XCIpKSx2Xz1zZihmZihcIjBkMDg4NzEwMDc4ODEzMDc4OTE2MDc4YTE5MDY4YzFiMDY4ZDFkMDY4ZTIwMDY4ZjIyMDY5MDI0MDY5MTI2MDU5MTI4MDU5MjJhMDU5MzJjMDU5NDJlMDU5NTJmMDU5NjMxMDU5NzMzMDU5NzM1MDQ5ODM3MDQ5OTM4MDQ5YTNhMDQ5YTNjMDQ5YjNlMDQ5YzNmMDQ5YzQxMDQ5ZDQzMDM5ZTQ0MDM5ZTQ2MDM5ZjQ4MDM5ZjQ5MDNhMDRiMDNhMTRjMDJhMTRlMDJhMjUwMDJhMjUxMDJhMzUzMDJhMzU1MDJhNDU2MDFhNDU4MDFhNDU5MDFhNTViMDFhNTVjMDFhNjVlMDFhNjYwMDFhNjYxMDBhNzYzMDBhNzY0MDBhNzY2MDBhNzY3MDBhODY5MDBhODZhMDBhODZjMDBhODZlMDBhODZmMDBhODcxMDBhODcyMDFhODc0MDFhODc1MDFhODc3MDFhODc4MDFhODdhMDJhODdiMDJhODdkMDNhODdlMDNhODgwMDRhODgxMDRhNzgzMDVhNzg0MDVhNzg2MDZhNjg3MDdhNjg4MDhhNjhhMDlhNThiMGFhNThkMGJhNThlMGNhNDhmMGRhNDkxMGVhMzkyMGZhMzk0MTBhMjk1MTFhMTk2MTNhMTk4MTRhMDk5MTU5ZjlhMTY5ZjljMTc5ZTlkMTg5ZDllMTk5ZGEwMWE5Y2ExMWI5YmEyMWQ5YWEzMWU5YWE1MWY5OWE2MjA5OGE3MjE5N2E4MjI5NmFhMjM5NWFiMjQ5NGFjMjY5NGFkMjc5M2FlMjg5MmIwMjk5MWIxMmE5MGIyMmI4ZmIzMmM4ZWI0MmU4ZGI1MmY4Y2I2MzA4YmI3MzE4YWI4MzI4OWJhMzM4OGJiMzQ4OGJjMzU4N2JkMzc4NmJlMzg4NWJmMzk4NGMwM2E4M2MxM2I4MmMyM2M4MWMzM2Q4MGM0M2U3ZmM1NDA3ZWM2NDE3ZGM3NDI3Y2M4NDM3YmM5NDQ3YWNhNDU3YWNiNDY3OWNjNDc3OGNjNDk3N2NkNGE3NmNlNGI3NWNmNGM3NGQwNGQ3M2QxNGU3MmQyNGY3MWQzNTE3MWQ0NTI3MGQ1NTM2ZmQ1NTQ2ZWQ2NTU2ZGQ3NTY2Y2Q4NTc2YmQ5NTg2YWRhNWE2YWRhNWI2OWRiNWM2OGRjNWQ2N2RkNWU2NmRlNWY2NWRlNjE2NGRmNjI2M2UwNjM2M2UxNjQ2MmUyNjU2MWUyNjY2MGUzNjg1ZmU0Njk1ZWU1NmE1ZGU1NmI1ZGU2NmM1Y2U3NmU1YmU3NmY1YWU4NzA1OWU5NzE1OGU5NzI1N2VhNzQ1N2ViNzU1NmViNzY1NWVjNzc1NGVkNzk1M2VkN2E1MmVlN2I1MWVmN2M1MWVmN2U1MGYwN2Y0ZmYwODA0ZWYxODE0ZGYxODM0Y2YyODQ0YmYzODU0YmYzODc0YWY0ODg0OWY0ODk0OGY1OGI0N2Y1OGM0NmY2OGQ0NWY2OGY0NGY3OTA0NGY3OTE0M2Y3OTM0MmY4OTQ0MWY4OTU0MGY5OTczZmY5OTgzZWY5OWEzZWZhOWIzZGZhOWMzY2ZhOWUzYmZiOWYzYWZiYTEzOWZiYTIzOGZjYTMzOGZjYTUzN2ZjYTYzNmZjYTgzNWZjYTkzNGZkYWIzM2ZkYWMzM2ZkYWUzMmZkYWYzMWZkYjEzMGZkYjIyZmZkYjQyZmZkYjUyZWZlYjcyZGZlYjgyY2ZlYmEyY2ZlYmIyYmZlYmQyYWZlYmUyYWZlYzAyOWZkYzIyOWZkYzMyOGZkYzUyN2ZkYzYyN2ZkYzgyN2ZkY2EyNmZkY2IyNmZjY2QyNWZjY2UyNWZjZDAyNWZjZDIyNWZiZDMyNGZiZDUyNGZiZDcyNGZhZDgyNGZhZGEyNGY5ZGMyNGY5ZGQyNWY4ZGYyNWY4ZTEyNWY3ZTIyNWY3ZTQyNWY2ZTYyNmY2ZTgyNmY1ZTkyNmY1ZWIyN2Y0ZWQyN2YzZWUyN2YzZjAyN2YyZjIyN2YxZjQyNmYxZjUyNWYwZjcyNGYwZjkyMVwiKSksZ189TWF0aC5hYnMseV89TWF0aC5hdGFuMixfXz1NYXRoLmNvcyxiXz1NYXRoLm1heCxtXz1NYXRoLm1pbix4Xz1NYXRoLnNpbix3Xz1NYXRoLnNxcnQsTV89MWUtMTIsQV89TWF0aC5QSSxUXz1BXy8yLE5fPTIqQV87YmYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjtkZWZhdWx0OnRoaXMuX2NvbnRleHQubGluZVRvKHQsbil9fX07dmFyIFNfPUVmKG1mKTtTZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmFyZWFTdGFydCgpfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUuYXJlYUVuZCgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmxpbmVFbmQoKX0scG9pbnQ6ZnVuY3Rpb24odCxuKXt0aGlzLl9jdXJ2ZS5wb2ludChuKk1hdGguc2luKHQpLG4qLU1hdGguY29zKHQpKX19O3ZhciBFXz1BcnJheS5wcm90b3R5cGUuc2xpY2Usa189e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQobi9BXyk7dC5tb3ZlVG8oZSwwKSx0LmFyYygwLDAsZSwwLE5fKX19LENfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KG4vNSkvMjt0Lm1vdmVUbygtMyplLC1lKSx0LmxpbmVUbygtZSwtZSksdC5saW5lVG8oLWUsLTMqZSksdC5saW5lVG8oZSwtMyplKSx0LmxpbmVUbyhlLC1lKSx0LmxpbmVUbygzKmUsLWUpLHQubGluZVRvKDMqZSxlKSx0LmxpbmVUbyhlLGUpLHQubGluZVRvKGUsMyplKSx0LmxpbmVUbygtZSwzKmUpLHQubGluZVRvKC1lLGUpLHQubGluZVRvKC0zKmUsZSksdC5jbG9zZVBhdGgoKX19LFBfPU1hdGguc3FydCgxLzMpLHpfPTIqUF8sUl89e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQobi96Xykscj1lKlBfO3QubW92ZVRvKDAsLWUpLHQubGluZVRvKHIsMCksdC5saW5lVG8oMCxlKSx0LmxpbmVUbygtciwwKSx0LmNsb3NlUGF0aCgpfX0sTF89TWF0aC5zaW4oQV8vMTApL01hdGguc2luKDcqQV8vMTApLERfPU1hdGguc2luKE5fLzEwKSpMXyxVXz0tTWF0aC5jb3MoTl8vMTApKkxfLHFfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KC44OTA4MTMwOTE1MjkyODUyKm4pLHI9RF8qZSxpPVVfKmU7dC5tb3ZlVG8oMCwtZSksdC5saW5lVG8ocixpKTtmb3IodmFyIG89MTtvPDU7KytvKXt2YXIgYT1OXypvLzUsdT1NYXRoLmNvcyhhKSxmPU1hdGguc2luKGEpO3QubGluZVRvKGYqZSwtdSplKSx0LmxpbmVUbyh1KnItZippLGYqcit1KmkpfXQuY2xvc2VQYXRoKCl9fSxPXz17ZHJhdzpmdW5jdGlvbih0LG4pe3ZhciBlPU1hdGguc3FydChuKSxyPS1lLzI7dC5yZWN0KHIscixlLGUpfX0sWV89TWF0aC5zcXJ0KDMpLEJfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9LU1hdGguc3FydChuLygzKllfKSk7dC5tb3ZlVG8oMCwyKmUpLHQubGluZVRvKC1ZXyplLC1lKSx0LmxpbmVUbyhZXyplLC1lKSx0LmNsb3NlUGF0aCgpfX0sRl89TWF0aC5zcXJ0KDMpLzIsSV89MS9NYXRoLnNxcnQoMTIpLGpfPTMqKElfLzIrMSksSF89e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQobi9qXykscj1lLzIsaT1lKklfLG89cixhPWUqSV8rZSx1PS1vLGY9YTt0Lm1vdmVUbyhyLGkpLHQubGluZVRvKG8sYSksdC5saW5lVG8odSxmKSx0LmxpbmVUbygtLjUqci1GXyppLEZfKnIrLS41KmkpLHQubGluZVRvKC0uNSpvLUZfKmEsRl8qbystLjUqYSksdC5saW5lVG8oLS41KnUtRl8qZixGXyp1Ky0uNSpmKSx0LmxpbmVUbygtLjUqcitGXyppLC0uNSppLUZfKnIpLHQubGluZVRvKC0uNSpvK0ZfKmEsLS41KmEtRl8qbyksdC5saW5lVG8oLS41KnUrRl8qZiwtLjUqZi1GXyp1KSx0LmNsb3NlUGF0aCgpfX0sWF89W2tfLENfLFJfLE9fLHFfLEJfLEhfXTtGZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl95MD10aGlzLl95MT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAzOkJmKHRoaXMsdGhpcy5feDEsdGhpcy5feTEpO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2NvbnRleHQubGluZVRvKCg1KnRoaXMuX3gwK3RoaXMuX3gxKS82LCg1KnRoaXMuX3kwK3RoaXMuX3kxKS82KTtkZWZhdWx0OkJmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPW59fSxJZi5wcm90b3R5cGU9e2FyZWFTdGFydDpZZixhcmVhRW5kOllmLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MisyKnRoaXMuX3gzKS8zLCh0aGlzLl95MisyKnRoaXMuX3kzKS8zKSx0aGlzLl9jb250ZXh0LmxpbmVUbygodGhpcy5feDMrMip0aGlzLl94MikvMywodGhpcy5feTMrMip0aGlzLl95MikvMyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95MiksdGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCl9fSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gyPXQsdGhpcy5feTI9bjticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl94Mz10LHRoaXMuX3kzPW47YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDQ9dCx0aGlzLl95ND1uLHRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MCs0KnRoaXMuX3gxK3QpLzYsKHRoaXMuX3kwKzQqdGhpcy5feTErbikvNik7YnJlYWs7ZGVmYXVsdDpCZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1ufX0samYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7dmFyIGU9KHRoaXMuX3gwKzQqdGhpcy5feDErdCkvNixyPSh0aGlzLl95MCs0KnRoaXMuX3kxK24pLzY7dGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyhlLHIpOnRoaXMuX2NvbnRleHQubW92ZVRvKGUscik7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpCZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1ufX0sSGYucHJvdG90eXBlPXtsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PVtdLHRoaXMuX3k9W10sdGhpcy5fYmFzaXMubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl94LG49dGhpcy5feSxlPXQubGVuZ3RoLTE7aWYoZT4wKWZvcih2YXIgcixpPXRbMF0sbz1uWzBdLGE9dFtlXS1pLHU9bltlXS1vLGY9LTE7KytmPD1lOylyPWYvZSx0aGlzLl9iYXNpcy5wb2ludCh0aGlzLl9iZXRhKnRbZl0rKDEtdGhpcy5fYmV0YSkqKGkrciphKSx0aGlzLl9iZXRhKm5bZl0rKDEtdGhpcy5fYmV0YSkqKG8rcip1KSk7dGhpcy5feD10aGlzLl95PW51bGwsdGhpcy5fYmFzaXMubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbih0LG4pe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtuKX19O3ZhciBHXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIDE9PT1uP25ldyBGZih0KTpuZXcgSGYodCxuKX1yZXR1cm4gZS5iZXRhPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oLjg1KTtHZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6WGYodGhpcyx0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX3gxPXQsdGhpcy5feTE9bjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0OlhmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgVl89ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuZXcgR2YodCxuKX1yZXR1cm4gZS50ZW5zaW9uPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oMCk7VmYucHJvdG90eXBlPXthcmVhU3RhcnQ6WWYsYXJlYUVuZDpZZixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl94NT10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND10aGlzLl95NT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCksdGhpcy5wb2ludCh0aGlzLl94NSx0aGlzLl95NSl9fSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPXQsdGhpcy5feTM9bjticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND10LHRoaXMuX3k0PW4pO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PXQsdGhpcy5feTU9bjticmVhaztkZWZhdWx0OlhmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgJF89ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuZXcgVmYodCxuKX1yZXR1cm4gZS50ZW5zaW9uPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oMCk7JGYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6WGYodGhpcyx0LG4pfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9bn19O3ZhciBXXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIG5ldyAkZih0LG4pfXJldHVybiBlLnRlbnNpb249ZnVuY3Rpb24obil7cmV0dXJuIHQoK24pfSxlfSgwKTtaZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95Mil9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe2lmKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7dmFyIGU9dGhpcy5feDItdCxyPXRoaXMuX3kyLW47dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhlKmUrcipyLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0OldmKHRoaXMsdCxuKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyIFpfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbj9uZXcgWmYodCxuKTpuZXcgR2YodCwwKX1yZXR1cm4gZS5hbHBoYT1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KC41KTtRZi5wcm90b3R5cGU9e2FyZWFTdGFydDpZZixhcmVhRW5kOllmLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KX19LHBvaW50OmZ1bmN0aW9uKHQsbil7aWYodD0rdCxuPStuLHRoaXMuX3BvaW50KXt2YXIgZT10aGlzLl94Mi10LHI9dGhpcy5feTItbjt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KGUqZStyKnIsdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gzPXQsdGhpcy5feTM9bjticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94ND10LHRoaXMuX3k0PW4pO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g1PXQsdGhpcy5feTU9bjticmVhaztkZWZhdWx0OldmKHRoaXMsdCxuKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyIFFfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbj9uZXcgUWYodCxuKTpuZXcgVmYodCwwKX1yZXR1cm4gZS5hbHBoYT1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KC41KTtKZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMz09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtpZih0PSt0LG49K24sdGhpcy5fcG9pbnQpe3ZhciBlPXRoaXMuX3gyLXQscj10aGlzLl95Mi1uO3RoaXMuX2wyM19hPU1hdGguc3FydCh0aGlzLl9sMjNfMmE9TWF0aC5wb3coZSplK3Iqcix0aGlzLl9hbHBoYSkpfXN3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6V2YodGhpcyx0LG4pfXRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hLHRoaXMuX2wxMl9hPXRoaXMuX2wyM19hLHRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmEsdGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYSx0aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgSl89ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuP25ldyBKZih0LG4pOm5ldyAkZih0LDApfXJldHVybiBlLmFscGhhPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oLjUpO0tmLnByb3RvdHlwZT17YXJlYVN0YXJ0OllmLGFyZWFFbmQ6WWYsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuX3BvaW50JiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpfSxwb2ludDpmdW5jdGlvbih0LG4pe3Q9K3Qsbj0rbix0aGlzLl9wb2ludD90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOih0aGlzLl9wb2ludD0xLHRoaXMuX2NvbnRleHQubW92ZVRvKHQsbikpfX0saWMucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5fdDA9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSk7YnJlYWs7Y2FzZSAzOnJjKHRoaXMsdGhpcy5fdDAsZWModGhpcyx0aGlzLl90MCkpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXt2YXIgZT1OYU47aWYodD0rdCxuPStuLHQhPT10aGlzLl94MXx8biE9PXRoaXMuX3kxKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHJjKHRoaXMsZWModGhpcyxlPW5jKHRoaXMsdCxuKSksZSk7YnJlYWs7ZGVmYXVsdDpyYyh0aGlzLHRoaXMuX3QwLGU9bmModGhpcyx0LG4pKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPW4sdGhpcy5fdDA9ZX19fSwob2MucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaWMucHJvdG90eXBlKSkucG9pbnQ9ZnVuY3Rpb24odCxuKXtpYy5wcm90b3R5cGUucG9pbnQuY2FsbCh0aGlzLG4sdCl9LGFjLnByb3RvdHlwZT17bW92ZVRvOmZ1bmN0aW9uKHQsbil7dGhpcy5fY29udGV4dC5tb3ZlVG8obix0KX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7dGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKX0sbGluZVRvOmZ1bmN0aW9uKHQsbil7dGhpcy5fY29udGV4dC5saW5lVG8obix0KX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbih0LG4sZSxyLGksbyl7dGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKG4sdCxyLGUsbyxpKX19LHVjLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9W10sdGhpcy5feT1bXX0sbGluZUVuZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3gsbj10aGlzLl95LGU9dC5sZW5ndGg7aWYoZSlpZih0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRbMF0sblswXSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odFswXSxuWzBdKSwyPT09ZSl0aGlzLl9jb250ZXh0LmxpbmVUbyh0WzFdLG5bMV0pO2Vsc2UgZm9yKHZhciByPWZjKHQpLGk9ZmMobiksbz0wLGE9MTthPGU7KytvLCsrYSl0aGlzLl9jb250ZXh0LmJlemllckN1cnZlVG8oclswXVtvXSxpWzBdW29dLHJbMV1bb10saVsxXVtvXSx0W2FdLG5bYV0pOyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PWUpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lLHRoaXMuX3g9dGhpcy5feT1udWxsfSxwb2ludDpmdW5jdGlvbih0LG4pe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtuKX19LGNjLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9dGhpcy5feT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA8dGhpcy5fdCYmdGhpcy5fdDwxJiYyPT09dGhpcy5fcG9pbnQmJnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsdGhpcy5feSksKHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU+PTAmJih0aGlzLl90PTEtdGhpcy5fdCx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSl9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbik7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDppZih0aGlzLl90PD0wKXRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gsbiksdGhpcy5fY29udGV4dC5saW5lVG8odCxuKTtlbHNle3ZhciBlPXRoaXMuX3gqKDEtdGhpcy5fdCkrdCp0aGlzLl90O3RoaXMuX2NvbnRleHQubGluZVRvKGUsdGhpcy5feSksdGhpcy5fY29udGV4dC5saW5lVG8oZSxuKX19dGhpcy5feD10LHRoaXMuX3k9bn19LF9jLnByb3RvdHlwZT17Y29uc3RydWN0b3I6X2MsaW5zZXJ0OmZ1bmN0aW9uKHQsbil7dmFyIGUscixpO2lmKHQpe2lmKG4uUD10LG4uTj10Lk4sdC5OJiYodC5OLlA9biksdC5OPW4sdC5SKXtmb3IodD10LlI7dC5MOyl0PXQuTDt0Lkw9bn1lbHNlIHQuUj1uO2U9dH1lbHNlIHRoaXMuXz8odD13Yyh0aGlzLl8pLG4uUD1udWxsLG4uTj10LHQuUD10Lkw9bixlPXQpOihuLlA9bi5OPW51bGwsdGhpcy5fPW4sZT1udWxsKTtmb3Iobi5MPW4uUj1udWxsLG4uVT1lLG4uQz0hMCx0PW47ZSYmZS5DOyllPT09KHI9ZS5VKS5MPyhpPXIuUikmJmkuQz8oZS5DPWkuQz0hMSxyLkM9ITAsdD1yKToodD09PWUuUiYmKG1jKHRoaXMsZSksZT0odD1lKS5VKSxlLkM9ITEsci5DPSEwLHhjKHRoaXMscikpOihpPXIuTCkmJmkuQz8oZS5DPWkuQz0hMSxyLkM9ITAsdD1yKToodD09PWUuTCYmKHhjKHRoaXMsZSksZT0odD1lKS5VKSxlLkM9ITEsci5DPSEwLG1jKHRoaXMscikpLGU9dC5VO3RoaXMuXy5DPSExfSxyZW1vdmU6ZnVuY3Rpb24odCl7dC5OJiYodC5OLlA9dC5QKSx0LlAmJih0LlAuTj10Lk4pLHQuTj10LlA9bnVsbDt2YXIgbixlLHIsaT10LlUsbz10LkwsYT10LlI7aWYoZT1vP2E/d2MoYSk6bzphLGk/aS5MPT09dD9pLkw9ZTppLlI9ZTp0aGlzLl89ZSxvJiZhPyhyPWUuQyxlLkM9dC5DLGUuTD1vLG8uVT1lLGUhPT1hPyhpPWUuVSxlLlU9dC5VLHQ9ZS5SLGkuTD10LGUuUj1hLGEuVT1lKTooZS5VPWksaT1lLHQ9ZS5SKSk6KHI9dC5DLHQ9ZSksdCYmKHQuVT1pKSwhcilpZih0JiZ0LkMpdC5DPSExO2Vsc2V7ZG97aWYodD09PXRoaXMuXylicmVhaztpZih0PT09aS5MKXtpZigobj1pLlIpLkMmJihuLkM9ITEsaS5DPSEwLG1jKHRoaXMsaSksbj1pLlIpLG4uTCYmbi5MLkN8fG4uUiYmbi5SLkMpe24uUiYmbi5SLkN8fChuLkwuQz0hMSxuLkM9ITAseGModGhpcyxuKSxuPWkuUiksbi5DPWkuQyxpLkM9bi5SLkM9ITEsbWModGhpcyxpKSx0PXRoaXMuXzticmVha319ZWxzZSBpZigobj1pLkwpLkMmJihuLkM9ITEsaS5DPSEwLHhjKHRoaXMsaSksbj1pLkwpLG4uTCYmbi5MLkN8fG4uUiYmbi5SLkMpe24uTCYmbi5MLkN8fChuLlIuQz0hMSxuLkM9ITAsbWModGhpcyxuKSxuPWkuTCksbi5DPWkuQyxpLkM9bi5MLkM9ITEseGModGhpcyxpKSx0PXRoaXMuXzticmVha31uLkM9ITAsdD1pLGk9aS5VfXdoaWxlKCF0LkMpO3QmJih0LkM9ITEpfX19O3ZhciBLXyx0YixuYixlYixyYixpYj1bXSxvYj1bXSxhYj0xZS02LHViPTFlLTEyO0JjLnByb3RvdHlwZT17Y29uc3RydWN0b3I6QmMscG9seWdvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVkZ2VzO3JldHVybiB0aGlzLmNlbGxzLm1hcChmdW5jdGlvbihuKXt2YXIgZT1uLmhhbGZlZGdlcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGtjKG4sdFtlXSl9KTtyZXR1cm4gZS5kYXRhPW4uc2l0ZS5kYXRhLGV9KX0sdHJpYW5nbGVzOmZ1bmN0aW9uKCl7dmFyIHQ9W10sbj10aGlzLmVkZ2VzO3JldHVybiB0aGlzLmNlbGxzLmZvckVhY2goZnVuY3Rpb24oZSxyKXtpZihvPShpPWUuaGFsZmVkZ2VzKS5sZW5ndGgpZm9yKHZhciBpLG8sYSx1PWUuc2l0ZSxmPS0xLGM9bltpW28tMV1dLHM9Yy5sZWZ0PT09dT9jLnJpZ2h0OmMubGVmdDsrK2Y8bzspYT1zLHM9KGM9bltpW2ZdXSkubGVmdD09PXU/Yy5yaWdodDpjLmxlZnQsYSYmcyYmcjxhLmluZGV4JiZyPHMuaW5kZXgmJk9jKHUsYSxzKTwwJiZ0LnB1c2goW3UuZGF0YSxhLmRhdGEscy5kYXRhXSl9KSx0fSxsaW5rczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZ2VzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5yaWdodH0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm57c291cmNlOnQubGVmdC5kYXRhLHRhcmdldDp0LnJpZ2h0LmRhdGF9fSl9LGZpbmQ6ZnVuY3Rpb24odCxuLGUpe2Zvcih2YXIgcixpLG89dGhpcyxhPW8uX2ZvdW5kfHwwLHU9by5jZWxscy5sZW5ndGg7IShpPW8uY2VsbHNbYV0pOylpZigrK2E+PXUpcmV0dXJuIG51bGw7dmFyIGY9dC1pLnNpdGVbMF0sYz1uLWkuc2l0ZVsxXSxzPWYqZitjKmM7ZG97aT1vLmNlbGxzW3I9YV0sYT1udWxsLGkuaGFsZmVkZ2VzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHI9by5lZGdlc1tlXSx1PXIubGVmdDtpZih1IT09aS5zaXRlJiZ1fHwodT1yLnJpZ2h0KSl7dmFyIGY9dC11WzBdLGM9bi11WzFdLGw9ZipmK2MqYztsPHMmJihzPWwsYT11LmluZGV4KX19KX13aGlsZShudWxsIT09YSk7cmV0dXJuIG8uX2ZvdW5kPXIsbnVsbD09ZXx8czw9ZSplP2kuc2l0ZTpudWxsfX0sSWMucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpJYyxzY2FsZTpmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQ/dGhpczpuZXcgSWModGhpcy5rKnQsdGhpcy54LHRoaXMueSl9LHRyYW5zbGF0ZTpmdW5jdGlvbih0LG4pe3JldHVybiAwPT09dCYwPT09bj90aGlzOm5ldyBJYyh0aGlzLmssdGhpcy54K3RoaXMuayp0LHRoaXMueSt0aGlzLmsqbil9LGFwcGx5OmZ1bmN0aW9uKHQpe3JldHVyblt0WzBdKnRoaXMuayt0aGlzLngsdFsxXSp0aGlzLmsrdGhpcy55XX0sYXBwbHlYOmZ1bmN0aW9uKHQpe3JldHVybiB0KnRoaXMuayt0aGlzLnh9LGFwcGx5WTpmdW5jdGlvbih0KXtyZXR1cm4gdCp0aGlzLmsrdGhpcy55fSxpbnZlcnQ6ZnVuY3Rpb24odCl7cmV0dXJuWyh0WzBdLXRoaXMueCkvdGhpcy5rLCh0WzFdLXRoaXMueSkvdGhpcy5rXX0saW52ZXJ0WDpmdW5jdGlvbih0KXtyZXR1cm4odC10aGlzLngpL3RoaXMua30saW52ZXJ0WTpmdW5jdGlvbih0KXtyZXR1cm4odC10aGlzLnkpL3RoaXMua30scmVzY2FsZVg6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weSgpLmRvbWFpbih0LnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WCx0aGlzKS5tYXAodC5pbnZlcnQsdCkpfSxyZXNjYWxlWTpmdW5jdGlvbih0KXtyZXR1cm4gdC5jb3B5KCkuZG9tYWluKHQucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRZLHRoaXMpLm1hcCh0LmludmVydCx0KSl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuXCJ0cmFuc2xhdGUoXCIrdGhpcy54K1wiLFwiK3RoaXMueStcIikgc2NhbGUoXCIrdGhpcy5rK1wiKVwifX07dmFyIGZiPW5ldyBJYygxLDAsMCk7amMucHJvdG90eXBlPUljLnByb3RvdHlwZSx0LnZlcnNpb249XCI1LjUuMFwiLHQuYmlzZWN0PUtjLHQuYmlzZWN0UmlnaHQ9S2MsdC5iaXNlY3RMZWZ0PXRzLHQuYXNjZW5kaW5nPW4sdC5iaXNlY3Rvcj1lLHQuY3Jvc3M9ZnVuY3Rpb24odCxuLGUpe3ZhciBpLG8sYSx1LGY9dC5sZW5ndGgsYz1uLmxlbmd0aCxzPW5ldyBBcnJheShmKmMpO2ZvcihudWxsPT1lJiYoZT1yKSxpPWE9MDtpPGY7KytpKWZvcih1PXRbaV0sbz0wO288YzsrK28sKythKXNbYV09ZSh1LG5bb10pO3JldHVybiBzfSx0LmRlc2NlbmRpbmc9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbjx0Py0xOm4+dD8xOm4+PXQ/MDpOYU59LHQuZGV2aWF0aW9uPWEsdC5leHRlbnQ9dSx0Lmhpc3RvZ3JhbT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGksbyxhPXQubGVuZ3RoLHU9bmV3IEFycmF5KGEpO2ZvcihpPTA7aTxhOysraSl1W2ldPW4odFtpXSxpLHQpO3ZhciBmPWUodSksYz1mWzBdLGw9ZlsxXSxoPXIodSxjLGwpO0FycmF5LmlzQXJyYXkoaCl8fChoPWQoYyxsLGgpLGg9cyhNYXRoLmNlaWwoYy9oKSpoLE1hdGguZmxvb3IobC9oKSpoLGgpKTtmb3IodmFyIHA9aC5sZW5ndGg7aFswXTw9YzspaC5zaGlmdCgpLC0tcDtmb3IoO2hbcC0xXT5sOyloLnBvcCgpLC0tcDt2YXIgdixnPW5ldyBBcnJheShwKzEpO2ZvcihpPTA7aTw9cDsrK2kpKHY9Z1tpXT1bXSkueDA9aT4wP2hbaS0xXTpjLHYueDE9aTxwP2hbaV06bDtmb3IoaT0wO2k8YTsrK2kpYzw9KG89dVtpXSkmJm88PWwmJmdbS2MoaCxvLDAscCldLnB1c2godFtpXSk7cmV0dXJuIGd9dmFyIG49YyxlPXUscj1wO3JldHVybiB0LnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpmKGUpLHQpOm59LHQuZG9tYWluPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpmKFtuWzBdLG5bMV1dKSx0KTplfSx0LnRocmVzaG9sZHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOkFycmF5LmlzQXJyYXkobik/Zihlcy5jYWxsKG4pKTpmKG4pLHQpOnJ9LHR9LHQudGhyZXNob2xkRnJlZWRtYW5EaWFjb25pcz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9cnMuY2FsbCh0LGkpLnNvcnQobiksTWF0aC5jZWlsKChyLWUpLygyKih2KHQsLjc1KS12KHQsLjI1KSkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdC50aHJlc2hvbGRTY290dD1mdW5jdGlvbih0LG4sZSl7cmV0dXJuIE1hdGguY2VpbCgoZS1uKS8oMy41KmEodCkqTWF0aC5wb3codC5sZW5ndGgsLTEvMykpKX0sdC50aHJlc2hvbGRTdHVyZ2VzPXAsdC5tYXg9Zyx0Lm1lYW49ZnVuY3Rpb24odCxuKXt2YXIgZSxyPXQubGVuZ3RoLG89cixhPS0xLHU9MDtpZihudWxsPT1uKWZvcig7KythPHI7KWlzTmFOKGU9aSh0W2FdKSk/LS1vOnUrPWU7ZWxzZSBmb3IoOysrYTxyOylpc05hTihlPWkobih0W2FdLGEsdCkpKT8tLW86dSs9ZTtpZihvKXJldHVybiB1L299LHQubWVkaWFuPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbz10Lmxlbmd0aCxhPS0xLHU9W107aWYobnVsbD09ZSlmb3IoOysrYTxvOylpc05hTihyPWkodFthXSkpfHx1LnB1c2gocik7ZWxzZSBmb3IoOysrYTxvOylpc05hTihyPWkoZSh0W2FdLGEsdCkpKXx8dS5wdXNoKHIpO3JldHVybiB2KHUuc29ydChuKSwuNSl9LHQubWVyZ2U9eSx0Lm1pbj1fLHQucGFpcnM9ZnVuY3Rpb24odCxuKXtudWxsPT1uJiYobj1yKTtmb3IodmFyIGU9MCxpPXQubGVuZ3RoLTEsbz10WzBdLGE9bmV3IEFycmF5KGk8MD8wOmkpO2U8aTspYVtlXT1uKG8sbz10WysrZV0pO3JldHVybiBhfSx0LnBlcm11dGU9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9bi5sZW5ndGgscj1uZXcgQXJyYXkoZSk7ZS0tOylyW2VdPXRbbltlXV07cmV0dXJuIHJ9LHQucXVhbnRpbGU9dix0LnJhbmdlPXMsdC5zY2FuPWZ1bmN0aW9uKHQsZSl7aWYocj10Lmxlbmd0aCl7dmFyIHIsaSxvPTAsYT0wLHU9dFthXTtmb3IobnVsbD09ZSYmKGU9bik7KytvPHI7KShlKGk9dFtvXSx1KTwwfHwwIT09ZSh1LHUpKSYmKHU9aSxhPW8pO3JldHVybiAwPT09ZSh1LHUpP2E6dm9pZCAwfX0sdC5zaHVmZmxlPWZ1bmN0aW9uKHQsbixlKXtmb3IodmFyIHIsaSxvPShudWxsPT1lP3QubGVuZ3RoOmUpLShuPW51bGw9PW4/MDorbik7bzspaT1NYXRoLnJhbmRvbSgpKm8tLXwwLHI9dFtvK25dLHRbbytuXT10W2krbl0sdFtpK25dPXI7cmV0dXJuIHR9LHQuc3VtPWZ1bmN0aW9uKHQsbil7dmFyIGUscj10Lmxlbmd0aCxpPS0xLG89MDtpZihudWxsPT1uKWZvcig7KytpPHI7KShlPSt0W2ldKSYmKG8rPWUpO2Vsc2UgZm9yKDsrK2k8cjspKGU9K24odFtpXSxpLHQpKSYmKG8rPWUpO3JldHVybiBvfSx0LnRpY2tzPWwsdC50aWNrSW5jcmVtZW50PWgsdC50aWNrU3RlcD1kLHQudHJhbnNwb3NlPWIsdC52YXJpYW5jZT1vLHQuemlwPWZ1bmN0aW9uKCl7cmV0dXJuIGIoYXJndW1lbnRzKX0sdC5heGlzVG9wPWZ1bmN0aW9uKHQpe3JldHVybiBUKGZzLHQpfSx0LmF4aXNSaWdodD1mdW5jdGlvbih0KXtyZXR1cm4gVChjcyx0KX0sdC5heGlzQm90dG9tPWZ1bmN0aW9uKHQpe3JldHVybiBUKHNzLHQpfSx0LmF4aXNMZWZ0PWZ1bmN0aW9uKHQpe3JldHVybiBUKGxzLHQpfSx0LmJydXNoPWZ1bmN0aW9uKCl7cmV0dXJuIGVlKGJoKX0sdC5icnVzaFg9ZnVuY3Rpb24oKXtyZXR1cm4gZWUoeWgpfSx0LmJydXNoWT1mdW5jdGlvbigpe3JldHVybiBlZShfaCl9LHQuYnJ1c2hTZWxlY3Rpb249ZnVuY3Rpb24odCl7dmFyIG49dC5fX2JydXNoO3JldHVybiBuP24uZGltLm91dHB1dChuLnNlbGVjdGlvbik6bnVsbH0sdC5jaG9yZD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG8sYSx1LGYsYyxsLGg9dC5sZW5ndGgsZD1bXSxwPXMoaCksdj1bXSxnPVtdLHk9Zy5ncm91cHM9bmV3IEFycmF5KGgpLF89bmV3IEFycmF5KGgqaCk7Zm9yKG89MCxjPS0xOysrYzxoOyl7Zm9yKGE9MCxsPS0xOysrbDxoOylhKz10W2NdW2xdO2QucHVzaChhKSx2LnB1c2gocyhoKSksbys9YX1mb3IoZSYmcC5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUoZFt0XSxkW25dKX0pLHImJnYuZm9yRWFjaChmdW5jdGlvbihuLGUpe24uc29ydChmdW5jdGlvbihuLGkpe3JldHVybiByKHRbZV1bbl0sdFtlXVtpXSl9KX0pLGY9KG89Q2goMCxraC1uKmgpL28pP246a2gvaCxhPTAsYz0tMTsrK2M8aDspe2Zvcih1PWEsbD0tMTsrK2w8aDspe3ZhciBiPXBbY10sbT12W2JdW2xdLHg9dFtiXVttXSx3PWEsTT1hKz14Km87X1ttKmgrYl09e2luZGV4OmIsc3ViaW5kZXg6bSxzdGFydEFuZ2xlOncsZW5kQW5nbGU6TSx2YWx1ZTp4fX15W2JdPXtpbmRleDpiLHN0YXJ0QW5nbGU6dSxlbmRBbmdsZTphLHZhbHVlOmRbYl19LGErPWZ9Zm9yKGM9LTE7KytjPGg7KWZvcihsPWMtMTsrK2w8aDspe3ZhciBBPV9bbCpoK2NdLFQ9X1tjKmgrbF07KEEudmFsdWV8fFQudmFsdWUpJiZnLnB1c2goQS52YWx1ZTxULnZhbHVlP3tzb3VyY2U6VCx0YXJnZXQ6QX06e3NvdXJjZTpBLHRhcmdldDpUfSl9cmV0dXJuIGk/Zy5zb3J0KGkpOmd9dmFyIG49MCxlPW51bGwscj1udWxsLGk9bnVsbDtyZXR1cm4gdC5wYWRBbmdsZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1DaCgwLGUpLHQpOm59LHQuc29ydEdyb3Vwcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1uLHQpOmV9LHQuc29ydFN1Ymdyb3Vwcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1uLHQpOnJ9LHQuc29ydENob3Jkcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09bj9pPW51bGw6KGk9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7cmV0dXJuIHQobi5zb3VyY2UudmFsdWUrbi50YXJnZXQudmFsdWUsZS5zb3VyY2UudmFsdWUrZS50YXJnZXQudmFsdWUpfX0obikpLl89bix0KTppJiZpLl99LHR9LHQucmliYm9uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0LHU9UGguY2FsbChhcmd1bWVudHMpLGY9bi5hcHBseSh0aGlzLHUpLGM9ZS5hcHBseSh0aGlzLHUpLHM9K3IuYXBwbHkodGhpcywodVswXT1mLHUpKSxsPWkuYXBwbHkodGhpcyx1KS1FaCxoPW8uYXBwbHkodGhpcyx1KS1FaCxkPXMqVGgobCkscD1zKk5oKGwpLHY9K3IuYXBwbHkodGhpcywodVswXT1jLHUpKSxnPWkuYXBwbHkodGhpcyx1KS1FaCx5PW8uYXBwbHkodGhpcyx1KS1FaDtpZihhfHwoYT10PW9lKCkpLGEubW92ZVRvKGQscCksYS5hcmMoMCwwLHMsbCxoKSxsPT09ZyYmaD09PXl8fChhLnF1YWRyYXRpY0N1cnZlVG8oMCwwLHYqVGgoZyksdipOaChnKSksYS5hcmMoMCwwLHYsZyx5KSksYS5xdWFkcmF0aWNDdXJ2ZVRvKDAsMCxkLHApLGEuY2xvc2VQYXRoKCksdClyZXR1cm4gYT1udWxsLHQrXCJcInx8bnVsbH12YXIgbj1hZSxlPXVlLHI9ZmUsaT1jZSxvPXNlLGE9bnVsbDtyZXR1cm4gdC5yYWRpdXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOnJlKCtuKSx0KTpyfSx0LnN0YXJ0QW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOnJlKCtuKSx0KTppfSx0LmVuZEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpyZSgrbiksdCk6b30sdC5zb3VyY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ZSx0KTpufSx0LnRhcmdldD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1uLHQpOmV9LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1udWxsPT1uP251bGw6bix0KTphfSx0fSx0Lm5lc3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KG4saSxhLHUpe2lmKGk+PW8ubGVuZ3RoKXJldHVybiBudWxsIT1lJiZuLnNvcnQoZSksbnVsbCE9cj9yKG4pOm47Zm9yKHZhciBmLGMscyxsPS0xLGg9bi5sZW5ndGgsZD1vW2krK10scD1oZSgpLHY9YSgpOysrbDxoOykocz1wLmdldChmPWQoYz1uW2xdKStcIlwiKSk/cy5wdXNoKGMpOnAuc2V0KGYsW2NdKTtyZXR1cm4gcC5lYWNoKGZ1bmN0aW9uKG4sZSl7dSh2LGUsdChuLGksYSx1KSl9KSx2fWZ1bmN0aW9uIG4odCxlKXtpZigrK2U+by5sZW5ndGgpcmV0dXJuIHQ7dmFyIGksdT1hW2UtMV07cmV0dXJuIG51bGwhPXImJmU+PW8ubGVuZ3RoP2k9dC5lbnRyaWVzKCk6KGk9W10sdC5lYWNoKGZ1bmN0aW9uKHQscil7aS5wdXNoKHtrZXk6cix2YWx1ZXM6bih0LGUpfSl9KSksbnVsbCE9dT9pLnNvcnQoZnVuY3Rpb24odCxuKXtyZXR1cm4gdSh0LmtleSxuLmtleSl9KTppfXZhciBlLHIsaSxvPVtdLGE9W107cmV0dXJuIGk9e29iamVjdDpmdW5jdGlvbihuKXtyZXR1cm4gdChuLDAsZGUscGUpfSxtYXA6ZnVuY3Rpb24obil7cmV0dXJuIHQobiwwLHZlLGdlKX0sZW50cmllczpmdW5jdGlvbihlKXtyZXR1cm4gbih0KGUsMCx2ZSxnZSksMCl9LGtleTpmdW5jdGlvbih0KXtyZXR1cm4gby5wdXNoKHQpLGl9LHNvcnRLZXlzOmZ1bmN0aW9uKHQpe3JldHVybiBhW28ubGVuZ3RoLTFdPXQsaX0sc29ydFZhbHVlczpmdW5jdGlvbih0KXtyZXR1cm4gZT10LGl9LHJvbGx1cDpmdW5jdGlvbih0KXtyZXR1cm4gcj10LGl9fX0sdC5zZXQ9X2UsdC5tYXA9aGUsdC5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBuPVtdO2Zvcih2YXIgZSBpbiB0KW4ucHVzaChlKTtyZXR1cm4gbn0sdC52YWx1ZXM9ZnVuY3Rpb24odCl7dmFyIG49W107Zm9yKHZhciBlIGluIHQpbi5wdXNoKHRbZV0pO3JldHVybiBufSx0LmVudHJpZXM9ZnVuY3Rpb24odCl7dmFyIG49W107Zm9yKHZhciBlIGluIHQpbi5wdXNoKHtrZXk6ZSx2YWx1ZTp0W2VdfSk7cmV0dXJuIG59LHQuY29sb3I9a3QsdC5yZ2I9UnQsdC5oc2w9cXQsdC5sYWI9RnQsdC5oY2w9JHQsdC5sY2g9ZnVuY3Rpb24odCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1Z0KHQpOm5ldyBXdChlLG4sdCxudWxsPT1yPzE6cil9LHQuZ3JheT1mdW5jdGlvbih0LG4pe3JldHVybiBuZXcgSXQodCwwLDAsbnVsbD09bj8xOm4pfSx0LmN1YmVoZWxpeD1adCx0LmNvbnRvdXJzPU1lLHQuY29udG91ckRlbnNpdHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBlPW5ldyBGbG9hdDMyQXJyYXkodip5KSxyPW5ldyBGbG9hdDMyQXJyYXkodip5KTt0LmZvckVhY2goZnVuY3Rpb24odCxuLHIpe3ZhciBpPWEodCxuLHIpK3A+Pmgsbz11KHQsbixyKStwPj5oO2k+PTAmJmk8diYmbz49MCYmbzx5JiYrK2VbaStvKnZdfSksQWUoe3dpZHRoOnYsaGVpZ2h0OnksZGF0YTplfSx7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOnJ9LGw+PmgpLFRlKHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6cn0se3dpZHRoOnYsaGVpZ2h0OnksZGF0YTplfSxsPj5oKSxBZSh7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOmV9LHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6cn0sbD4+aCksVGUoe3dpZHRoOnYsaGVpZ2h0OnksZGF0YTpyfSx7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOmV9LGw+PmgpLEFlKHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6ZX0se3dpZHRoOnYsaGVpZ2h0OnksZGF0YTpyfSxsPj5oKSxUZSh7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOnJ9LHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6ZX0sbD4+aCk7dmFyIGk9XyhlKTtpZighQXJyYXkuaXNBcnJheShpKSl7dmFyIG89ZyhlKTtpPWQoMCxvLGkpLChpPXMoMCxNYXRoLmZsb29yKG8vaSkqaSxpKSkuc2hpZnQoKX1yZXR1cm4gTWUoKS50aHJlc2hvbGRzKGkpLnNpemUoW3YseV0pKGUpLm1hcChuKX1mdW5jdGlvbiBuKHQpe3JldHVybiB0LnZhbHVlKj1NYXRoLnBvdygyLC0yKmgpLHQuY29vcmRpbmF0ZXMuZm9yRWFjaChlKSx0fWZ1bmN0aW9uIGUodCl7dC5mb3JFYWNoKHIpfWZ1bmN0aW9uIHIodCl7dC5mb3JFYWNoKGkpfWZ1bmN0aW9uIGkodCl7dFswXT10WzBdKk1hdGgucG93KDIsaCktcCx0WzFdPXRbMV0qTWF0aC5wb3coMixoKS1wfWZ1bmN0aW9uIG8oKXtyZXR1cm4gcD0zKmwsdj1mKzIqcD4+aCx5PWMrMipwPj5oLHR9dmFyIGE9TmUsdT1TZSxmPTk2MCxjPTUwMCxsPTIwLGg9MixwPTMqbCx2PWYrMipwPj5oLHk9YysyKnA+PmgsXz1tZSgyMCk7cmV0dXJuIHQueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bWUoK24pLHQpOmF9LHQueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bWUoK24pLHQpOnV9LHQuc2l6ZT1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm5bZixjXTt2YXIgbj1NYXRoLmNlaWwodFswXSksZT1NYXRoLmNlaWwodFsxXSk7aWYoIShuPj0wfHxuPj0wKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIHNpemVcIik7cmV0dXJuIGY9bixjPWUsbygpfSx0LmNlbGxTaXplPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiAxPDxoO2lmKCEoKHQ9K3QpPj0xKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGNlbGwgc2l6ZVwiKTtyZXR1cm4gaD1NYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGguTE4yKSxvKCl9LHQudGhyZXNob2xkcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oXz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246QXJyYXkuaXNBcnJheShuKT9tZShVaC5jYWxsKG4pKTptZShuKSx0KTpffSx0LmJhbmR3aWR0aD1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gTWF0aC5zcXJ0KGwqKGwrMSkpO2lmKCEoKHQ9K3QpPj0wKSl0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGJhbmR3aWR0aFwiKTtyZXR1cm4gbD1NYXRoLnJvdW5kKChNYXRoLnNxcnQoNCp0KnQrMSktMSkvMiksbygpfSx0fSx0LmRpc3BhdGNoPU4sdC5kcmFnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0KXt0Lm9uKFwibW91c2Vkb3duLmRyYWdcIixlKS5maWx0ZXIoZykub24oXCJ0b3VjaHN0YXJ0LmRyYWdcIixvKS5vbihcInRvdWNobW92ZS5kcmFnXCIsYSkub24oXCJ0b3VjaGVuZC5kcmFnIHRvdWNoY2FuY2VsLmRyYWdcIix1KS5zdHlsZShcInRvdWNoLWFjdGlvblwiLFwibm9uZVwiKS5zdHlsZShcIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvclwiLFwicmdiYSgwLDAsMCwwKVwiKX1mdW5jdGlvbiBlKCl7aWYoIWgmJmQuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgbj1mKFwibW91c2VcIixwLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxwdCx0aGlzLGFyZ3VtZW50cyk7biYmKGN0KHQuZXZlbnQudmlldykub24oXCJtb3VzZW1vdmUuZHJhZ1wiLHIsITApLm9uKFwibW91c2V1cC5kcmFnXCIsaSwhMCksX3QodC5ldmVudC52aWV3KSxndCgpLGw9ITEsYz10LmV2ZW50LmNsaWVudFgscz10LmV2ZW50LmNsaWVudFksbihcInN0YXJ0XCIpKX19ZnVuY3Rpb24gcigpe2lmKHl0KCksIWwpe3ZhciBuPXQuZXZlbnQuY2xpZW50WC1jLGU9dC5ldmVudC5jbGllbnRZLXM7bD1uKm4rZSplPm19eS5tb3VzZShcImRyYWdcIil9ZnVuY3Rpb24gaSgpe2N0KHQuZXZlbnQudmlldykub24oXCJtb3VzZW1vdmUuZHJhZyBtb3VzZXVwLmRyYWdcIixudWxsKSxidCh0LmV2ZW50LnZpZXcsbCkseXQoKSx5Lm1vdXNlKFwiZW5kXCIpfWZ1bmN0aW9uIG8oKXtpZihkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIG4sZSxyPXQuZXZlbnQuY2hhbmdlZFRvdWNoZXMsaT1wLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxvPXIubGVuZ3RoO2ZvcihuPTA7bjxvOysrbikoZT1mKHJbbl0uaWRlbnRpZmllcixpLHZ0LHRoaXMsYXJndW1lbnRzKSkmJihndCgpLGUoXCJzdGFydFwiKSl9fWZ1bmN0aW9uIGEoKXt2YXIgbixlLHI9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxpPXIubGVuZ3RoO2ZvcihuPTA7bjxpOysrbikoZT15W3Jbbl0uaWRlbnRpZmllcl0pJiYoeXQoKSxlKFwiZHJhZ1wiKSl9ZnVuY3Rpb24gdSgpe3ZhciBuLGUscj10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLGk9ci5sZW5ndGg7Zm9yKGgmJmNsZWFyVGltZW91dChoKSxoPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtoPW51bGx9LDUwMCksbj0wO248aTsrK24pKGU9eVtyW25dLmlkZW50aWZpZXJdKSYmKGd0KCksZShcImVuZFwiKSl9ZnVuY3Rpb24gZihlLHIsaSxvLGEpe3ZhciB1LGYsYyxzPWkocixlKSxsPV8uY29weSgpO2lmKG90KG5ldyB4dChuLFwiYmVmb3Jlc3RhcnRcIix1LGUsYixzWzBdLHNbMV0sMCwwLGwpLGZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPSh0LmV2ZW50LnN1YmplY3Q9dT12LmFwcGx5KG8sYSkpJiYoZj11Lngtc1swXXx8MCxjPXUueS1zWzFdfHwwLCEwKX0pKXJldHVybiBmdW5jdGlvbiB0KGgpe3ZhciBkLHA9cztzd2l0Y2goaCl7Y2FzZVwic3RhcnRcIjp5W2VdPXQsZD1iKys7YnJlYWs7Y2FzZVwiZW5kXCI6ZGVsZXRlIHlbZV0sLS1iO2Nhc2VcImRyYWdcIjpzPWkocixlKSxkPWJ9b3QobmV3IHh0KG4saCx1LGUsZCxzWzBdK2Ysc1sxXStjLHNbMF0tcFswXSxzWzFdLXBbMV0sbCksbC5hcHBseSxsLFtoLG8sYV0pfX12YXIgYyxzLGwsaCxkPXd0LHA9TXQsdj1BdCxnPVR0LHk9e30sXz1OKFwic3RhcnRcIixcImRyYWdcIixcImVuZFwiKSxiPTAsbT0wO3JldHVybiBuLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bXQoISF0KSxuKTpkfSxuLmNvbnRhaW5lcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bXQodCksbik6cH0sbi5zdWJqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh2PVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDptdCh0KSxuKTp2fSxuLnRvdWNoYWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bXQoISF0KSxuKTpnfSxuLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9Xy5vbi5hcHBseShfLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1fP246dH0sbi5jbGlja0Rpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhtPSh0PSt0KSp0LG4pOk1hdGguc3FydChtKX0sbn0sdC5kcmFnRGlzYWJsZT1fdCx0LmRyYWdFbmFibGU9YnQsdC5kc3ZGb3JtYXQ9a2UsdC5jc3ZQYXJzZT1IaCx0LmNzdlBhcnNlUm93cz1YaCx0LmNzdkZvcm1hdD1HaCx0LmNzdkZvcm1hdFJvd3M9VmgsdC50c3ZQYXJzZT1XaCx0LnRzdlBhcnNlUm93cz1aaCx0LnRzdkZvcm1hdD1RaCx0LnRzdkZvcm1hdFJvd3M9SmgsdC5lYXNlTGluZWFyPWZ1bmN0aW9uKHQpe3JldHVybit0fSx0LmVhc2VRdWFkPUZuLHQuZWFzZVF1YWRJbj1mdW5jdGlvbih0KXtyZXR1cm4gdCp0fSx0LmVhc2VRdWFkT3V0PWZ1bmN0aW9uKHQpe3JldHVybiB0KigyLXQpfSx0LmVhc2VRdWFkSW5PdXQ9Rm4sdC5lYXNlQ3ViaWM9SW4sdC5lYXNlQ3ViaWNJbj1mdW5jdGlvbih0KXtyZXR1cm4gdCp0KnR9LHQuZWFzZUN1YmljT3V0PWZ1bmN0aW9uKHQpe3JldHVybi0tdCp0KnQrMX0sdC5lYXNlQ3ViaWNJbk91dD1Jbix0LmVhc2VQb2x5PVhsLHQuZWFzZVBvbHlJbj1qbCx0LmVhc2VQb2x5T3V0PUhsLHQuZWFzZVBvbHlJbk91dD1YbCx0LmVhc2VTaW49am4sdC5lYXNlU2luSW49ZnVuY3Rpb24odCl7cmV0dXJuIDEtTWF0aC5jb3ModCpWbCl9LHQuZWFzZVNpbk91dD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zaW4odCpWbCl9LHQuZWFzZVNpbkluT3V0PWpuLHQuZWFzZUV4cD1Ibix0LmVhc2VFeHBJbj1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5wb3coMiwxMCp0LTEwKX0sdC5lYXNlRXhwT3V0PWZ1bmN0aW9uKHQpe3JldHVybiAxLU1hdGgucG93KDIsLTEwKnQpfSx0LmVhc2VFeHBJbk91dD1Ibix0LmVhc2VDaXJjbGU9WG4sdC5lYXNlQ2lyY2xlSW49ZnVuY3Rpb24odCl7cmV0dXJuIDEtTWF0aC5zcXJ0KDEtdCp0KX0sdC5lYXNlQ2lyY2xlT3V0PWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoMS0gLS10KnQpfSx0LmVhc2VDaXJjbGVJbk91dD1Ybix0LmVhc2VCb3VuY2U9R24sdC5lYXNlQm91bmNlSW49ZnVuY3Rpb24odCl7cmV0dXJuIDEtR24oMS10KX0sdC5lYXNlQm91bmNlT3V0PUduLHQuZWFzZUJvdW5jZUluT3V0PWZ1bmN0aW9uKHQpe3JldHVybigodCo9Mik8PTE/MS1HbigxLXQpOkduKHQtMSkrMSkvMn0sdC5lYXNlQmFjaz1haCx0LmVhc2VCYWNrSW49aWgsdC5lYXNlQmFja091dD1vaCx0LmVhc2VCYWNrSW5PdXQ9YWgsdC5lYXNlRWxhc3RpYz1jaCx0LmVhc2VFbGFzdGljSW49ZmgsdC5lYXNlRWxhc3RpY091dD1jaCx0LmVhc2VFbGFzdGljSW5PdXQ9c2gsdC5ibG9iPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGZldGNoKHQsbikudGhlbihDZSl9LHQuYnVmZmVyPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGZldGNoKHQsbikudGhlbihQZSl9LHQuZHN2PWZ1bmN0aW9uKHQsbixlLHIpezM9PT1hcmd1bWVudHMubGVuZ3RoJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiYocj1lLGU9dm9pZCAwKTt2YXIgaT1rZSh0KTtyZXR1cm4gUmUobixlKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBpLnBhcnNlKHQscil9KX0sdC5jc3Y9S2gsdC50c3Y9dGQsdC5pbWFnZT1mdW5jdGlvbih0LG4pe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLHIpe3ZhciBpPW5ldyBJbWFnZTtmb3IodmFyIG8gaW4gbilpW29dPW5bb107aS5vbmVycm9yPXIsaS5vbmxvYWQ9ZnVuY3Rpb24oKXtlKGkpfSxpLnNyYz10fSl9LHQuanNvbj1mdW5jdGlvbih0LG4pe3JldHVybiBmZXRjaCh0LG4pLnRoZW4oRGUpfSx0LnRleHQ9UmUsdC54bWw9bmQsdC5odG1sPWVkLHQuc3ZnPXJkLHQuZm9yY2VDZW50ZXI9ZnVuY3Rpb24odCxuKXtmdW5jdGlvbiBlKCl7dmFyIGUsaSxvPXIubGVuZ3RoLGE9MCx1PTA7Zm9yKGU9MDtlPG87KytlKWErPShpPXJbZV0pLngsdSs9aS55O2ZvcihhPWEvby10LHU9dS9vLW4sZT0wO2U8bzsrK2UpKGk9cltlXSkueC09YSxpLnktPXV9dmFyIHI7cmV0dXJuIG51bGw9PXQmJih0PTApLG51bGw9PW4mJihuPTApLGUuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtyPXR9LGUueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rbixlKTp0fSxlLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3QsZSk6bn0sZX0sdC5mb3JjZUNvbGxpZGU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbigpe2Zvcih2YXIgdCxuLHIsZixjLHMsbCxoPWkubGVuZ3RoLGQ9MDtkPHU7KytkKWZvcihuPWplKGksR2UsVmUpLnZpc2l0QWZ0ZXIoZSksdD0wO3Q8aDsrK3Qpcj1pW3RdLHM9b1tyLmluZGV4XSxsPXMqcyxmPXIueCtyLnZ4LGM9ci55K3Iudnksbi52aXNpdChmdW5jdGlvbih0LG4sZSxpLG8pe3ZhciB1PXQuZGF0YSxoPXQucixkPXMraDtpZighdSlyZXR1cm4gbj5mK2R8fGk8Zi1kfHxlPmMrZHx8bzxjLWQ7aWYodS5pbmRleD5yLmluZGV4KXt2YXIgcD1mLXUueC11LnZ4LHY9Yy11LnktdS52eSxnPXAqcCt2KnY7ZzxkKmQmJigwPT09cCYmKHA9T2UoKSxnKz1wKnApLDA9PT12JiYodj1PZSgpLGcrPXYqdiksZz0oZC0oZz1NYXRoLnNxcnQoZykpKS9nKmEsci52eCs9KHAqPWcpKihkPShoKj1oKS8obCtoKSksci52eSs9KHYqPWcpKmQsdS52eC09cCooZD0xLWQpLHUudnktPXYqZCl9fSl9ZnVuY3Rpb24gZSh0KXtpZih0LmRhdGEpcmV0dXJuIHQucj1vW3QuZGF0YS5pbmRleF07Zm9yKHZhciBuPXQucj0wO248NDsrK24pdFtuXSYmdFtuXS5yPnQuciYmKHQucj10W25dLnIpfWZ1bmN0aW9uIHIoKXtpZihpKXt2YXIgbixlLHI9aS5sZW5ndGg7Zm9yKG89bmV3IEFycmF5KHIpLG49MDtuPHI7KytuKWU9aVtuXSxvW2UuaW5kZXhdPSt0KGUsbixpKX19dmFyIGksbyxhPTEsdT0xO3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXFlKG51bGw9PXQ/MTordCkpLG4uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtpPXQscigpfSxuLml0ZXJhdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9K3Qsbik6dX0sbi5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0rdCxuKTphfSxuLnJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6cWUoK2UpLHIoKSxuKTp0fSxufSx0LmZvcmNlTGluaz1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKG4pe2Zvcih2YXIgZT0wLHI9dC5sZW5ndGg7ZTxkOysrZSlmb3IodmFyIGksdSxmLHMsbCxoLHAsdj0wO3Y8cjsrK3YpdT0oaT10W3ZdKS5zb3VyY2Uscz0oZj1pLnRhcmdldCkueCtmLnZ4LXUueC11LnZ4fHxPZSgpLGw9Zi55K2YudnktdS55LXUudnl8fE9lKCkscyo9aD0oKGg9TWF0aC5zcXJ0KHMqcytsKmwpKS1hW3ZdKS9oKm4qb1t2XSxsKj1oLGYudngtPXMqKHA9Y1t2XSksZi52eS09bCpwLHUudngrPXMqKHA9MS1wKSx1LnZ5Kz1sKnB9ZnVuY3Rpb24gZSgpe2lmKHUpe3ZhciBuLGUsbD11Lmxlbmd0aCxoPXQubGVuZ3RoLGQ9aGUodSxzKTtmb3Iobj0wLGY9bmV3IEFycmF5KGwpO248aDsrK24pKGU9dFtuXSkuaW5kZXg9bixcIm9iamVjdFwiIT10eXBlb2YgZS5zb3VyY2UmJihlLnNvdXJjZT1XZShkLGUuc291cmNlKSksXCJvYmplY3RcIiE9dHlwZW9mIGUudGFyZ2V0JiYoZS50YXJnZXQ9V2UoZCxlLnRhcmdldCkpLGZbZS5zb3VyY2UuaW5kZXhdPShmW2Uuc291cmNlLmluZGV4XXx8MCkrMSxmW2UudGFyZ2V0LmluZGV4XT0oZltlLnRhcmdldC5pbmRleF18fDApKzE7Zm9yKG49MCxjPW5ldyBBcnJheShoKTtuPGg7KytuKWU9dFtuXSxjW25dPWZbZS5zb3VyY2UuaW5kZXhdLyhmW2Uuc291cmNlLmluZGV4XStmW2UudGFyZ2V0LmluZGV4XSk7bz1uZXcgQXJyYXkoaCkscigpLGE9bmV3IEFycmF5KGgpLGkoKX19ZnVuY3Rpb24gcigpe2lmKHUpZm9yKHZhciBuPTAsZT10Lmxlbmd0aDtuPGU7KytuKW9bbl09K2wodFtuXSxuLHQpfWZ1bmN0aW9uIGkoKXtpZih1KWZvcih2YXIgbj0wLGU9dC5sZW5ndGg7bjxlOysrbilhW25dPStoKHRbbl0sbix0KX12YXIgbyxhLHUsZixjLHM9JGUsbD1mdW5jdGlvbih0KXtyZXR1cm4gMS9NYXRoLm1pbihmW3Quc291cmNlLmluZGV4XSxmW3QudGFyZ2V0LmluZGV4XSl9LGg9cWUoMzApLGQ9MTtyZXR1cm4gbnVsbD09dCYmKHQ9W10pLG4uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXt1PXQsZSgpfSxuLmxpbmtzPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PXIsZSgpLG4pOnR9LG4uaWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9dCxuKTpzfSxuLml0ZXJhdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9K3Qsbik6ZH0sbi5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLHIoKSxuKTpsfSxuLmRpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpxZSgrdCksaSgpLG4pOmh9LG59LHQuZm9yY2VNYW55Qm9keT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG4sdT1pLmxlbmd0aCxmPWplKGksWmUsUWUpLnZpc2l0QWZ0ZXIoZSk7Zm9yKGE9dCxuPTA7bjx1OysrbilvPWlbbl0sZi52aXNpdChyKX1mdW5jdGlvbiBuKCl7aWYoaSl7dmFyIHQsbixlPWkubGVuZ3RoO2Zvcih1PW5ldyBBcnJheShlKSx0PTA7dDxlOysrdCluPWlbdF0sdVtuLmluZGV4XT0rZihuLHQsaSl9fWZ1bmN0aW9uIGUodCl7dmFyIG4sZSxyLGksbyxhPTAsZj0wO2lmKHQubGVuZ3RoKXtmb3Iocj1pPW89MDtvPDQ7KytvKShuPXRbb10pJiYoZT1NYXRoLmFicyhuLnZhbHVlKSkmJihhKz1uLnZhbHVlLGYrPWUscis9ZSpuLngsaSs9ZSpuLnkpO3QueD1yL2YsdC55PWkvZn1lbHNleyhuPXQpLng9bi5kYXRhLngsbi55PW4uZGF0YS55O2Rve2ErPXVbbi5kYXRhLmluZGV4XX13aGlsZShuPW4ubmV4dCl9dC52YWx1ZT1hfWZ1bmN0aW9uIHIodCxuLGUscil7aWYoIXQudmFsdWUpcmV0dXJuITA7dmFyIGk9dC54LW8ueCxmPXQueS1vLnksaD1yLW4sZD1pKmkrZipmO2lmKGgqaC9sPGQpcmV0dXJuIGQ8cyYmKDA9PT1pJiYoaT1PZSgpLGQrPWkqaSksMD09PWYmJihmPU9lKCksZCs9ZipmKSxkPGMmJihkPU1hdGguc3FydChjKmQpKSxvLnZ4Kz1pKnQudmFsdWUqYS9kLG8udnkrPWYqdC52YWx1ZSphL2QpLCEwO2lmKCEodC5sZW5ndGh8fGQ+PXMpKXsodC5kYXRhIT09b3x8dC5uZXh0KSYmKDA9PT1pJiYoaT1PZSgpLGQrPWkqaSksMD09PWYmJihmPU9lKCksZCs9ZipmKSxkPGMmJihkPU1hdGguc3FydChjKmQpKSk7ZG97dC5kYXRhIT09byYmKGg9dVt0LmRhdGEuaW5kZXhdKmEvZCxvLnZ4Kz1pKmgsby52eSs9ZipoKX13aGlsZSh0PXQubmV4dCl9fXZhciBpLG8sYSx1LGY9cWUoLTMwKSxjPTEscz0xLzAsbD0uODE7cmV0dXJuIHQuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtpPXQsbigpfSx0LnN0cmVuZ3RoPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpxZSgrZSksbigpLHQpOmZ9LHQuZGlzdGFuY2VNaW49ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9bipuLHQpOk1hdGguc3FydChjKX0sdC5kaXN0YW5jZU1heD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1uKm4sdCk6TWF0aC5zcXJ0KHMpfSx0LnRoZXRhPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPW4qbix0KTpNYXRoLnNxcnQobCl9LHR9LHQuZm9yY2VSYWRpYWw9ZnVuY3Rpb24odCxuLGUpe2Z1bmN0aW9uIHIodCl7Zm9yKHZhciByPTAsaT1vLmxlbmd0aDtyPGk7KytyKXt2YXIgZj1vW3JdLGM9Zi54LW58fDFlLTYscz1mLnktZXx8MWUtNixsPU1hdGguc3FydChjKmMrcypzKSxoPSh1W3JdLWwpKmFbcl0qdC9sO2YudngrPWMqaCxmLnZ5Kz1zKmh9fWZ1bmN0aW9uIGkoKXtpZihvKXt2YXIgbixlPW8ubGVuZ3RoO2ZvcihhPW5ldyBBcnJheShlKSx1PW5ldyBBcnJheShlKSxuPTA7bjxlOysrbil1W25dPSt0KG9bbl0sbixvKSxhW25dPWlzTmFOKHVbbl0pPzA6K2Yob1tuXSxuLG8pfX12YXIgbyxhLHUsZj1xZSguMSk7cmV0dXJuXCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9cWUoK3QpKSxudWxsPT1uJiYobj0wKSxudWxsPT1lJiYoZT0wKSxyLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7bz10LGkoKX0sci5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLGkoKSxyKTpmfSxyLnJhZGl1cz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246cWUoK24pLGkoKSxyKTp0fSxyLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3Qscik6bn0sci55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0LHIpOmV9LHJ9LHQuZm9yY2VTaW11bGF0aW9uPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oKXtlKCksZC5jYWxsKFwidGlja1wiLG8pLGE8dSYmKGguc3RvcCgpLGQuY2FsbChcImVuZFwiLG8pKX1mdW5jdGlvbiBlKCl7dmFyIG4sZSxyPXQubGVuZ3RoO2ZvcihhKz0oYy1hKSpmLGwuZWFjaChmdW5jdGlvbih0KXt0KGEpfSksbj0wO248cjsrK24pbnVsbD09KGU9dFtuXSkuZng/ZS54Kz1lLnZ4Kj1zOihlLng9ZS5meCxlLnZ4PTApLG51bGw9PWUuZnk/ZS55Kz1lLnZ5Kj1zOihlLnk9ZS5meSxlLnZ5PTApfWZ1bmN0aW9uIHIoKXtmb3IodmFyIG4sZT0wLHI9dC5sZW5ndGg7ZTxyOysrZSl7aWYobj10W2VdLG4uaW5kZXg9ZSxpc05hTihuLngpfHxpc05hTihuLnkpKXt2YXIgaT1vZCpNYXRoLnNxcnQoZSksbz1lKmFkO24ueD1pKk1hdGguY29zKG8pLG4ueT1pKk1hdGguc2luKG8pfShpc05hTihuLnZ4KXx8aXNOYU4obi52eSkpJiYobi52eD1uLnZ5PTApfX1mdW5jdGlvbiBpKG4pe3JldHVybiBuLmluaXRpYWxpemUmJm4uaW5pdGlhbGl6ZSh0KSxufXZhciBvLGE9MSx1PS4wMDEsZj0xLU1hdGgucG93KHUsMS8zMDApLGM9MCxzPS42LGw9aGUoKSxoPVRuKG4pLGQ9TihcInRpY2tcIixcImVuZFwiKTtyZXR1cm4gbnVsbD09dCYmKHQ9W10pLHIoKSxvPXt0aWNrOmUscmVzdGFydDpmdW5jdGlvbigpe3JldHVybiBoLnJlc3RhcnQobiksb30sc3RvcDpmdW5jdGlvbigpe3JldHVybiBoLnN0b3AoKSxvfSxub2RlczpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1uLHIoKSxsLmVhY2goaSksbyk6dH0sYWxwaGE6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K3Qsbyk6YX0sYWxwaGFNaW46ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9K3Qsbyk6dX0sYWxwaGFEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj0rdCxvKTorZn0sYWxwaGFUYXJnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9K3Qsbyk6Y30sdmVsb2NpdHlEZWNheTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0xLXQsbyk6MS1zfSxmb3JjZTpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KG51bGw9PW4/bC5yZW1vdmUodCk6bC5zZXQodCxpKG4pKSxvKTpsLmdldCh0KX0sZmluZDpmdW5jdGlvbihuLGUscil7dmFyIGksbyxhLHUsZixjPTAscz10Lmxlbmd0aDtmb3IobnVsbD09cj9yPTEvMDpyKj1yLGM9MDtjPHM7KytjKShhPShpPW4tKHU9dFtjXSkueCkqaSsobz1lLXUueSkqbyk8ciYmKGY9dSxyPWEpO3JldHVybiBmfSxvbjpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/KGQub24odCxuKSxvKTpkLm9uKHQpfX19LHQuZm9yY2VYPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4odCl7Zm9yKHZhciBuLGU9MCxhPXIubGVuZ3RoO2U8YTsrK2UpKG49cltlXSkudngrPShvW2VdLW4ueCkqaVtlXSp0fWZ1bmN0aW9uIGUoKXtpZihyKXt2YXIgbixlPXIubGVuZ3RoO2ZvcihpPW5ldyBBcnJheShlKSxvPW5ldyBBcnJheShlKSxuPTA7bjxlOysrbilpW25dPWlzTmFOKG9bbl09K3QocltuXSxuLHIpKT8wOithKHJbbl0sbixyKX19dmFyIHIsaSxvLGE9cWUoLjEpO3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXFlKG51bGw9PXQ/MDordCkpLG4uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtyPXQsZSgpfSxuLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpxZSgrdCksZSgpLG4pOmF9LG4ueD1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1cImZ1bmN0aW9uXCI9PXR5cGVvZiByP3I6cWUoK3IpLGUoKSxuKTp0fSxufSx0LmZvcmNlWT1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgbixlPTAsYT1yLmxlbmd0aDtlPGE7KytlKShuPXJbZV0pLnZ5Kz0ob1tlXS1uLnkpKmlbZV0qdH1mdW5jdGlvbiBlKCl7aWYocil7dmFyIG4sZT1yLmxlbmd0aDtmb3IoaT1uZXcgQXJyYXkoZSksbz1uZXcgQXJyYXkoZSksbj0wO248ZTsrK24paVtuXT1pc05hTihvW25dPSt0KHJbbl0sbixyKSk/MDorYShyW25dLG4scil9fXZhciByLGksbyxhPXFlKC4xKTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1xZShudWxsPT10PzA6K3QpKSxuLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7cj10LGUoKX0sbi5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLGUoKSxuKTphfSxuLnk9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9XCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yOnFlKCtyKSxlKCksbik6dH0sbn0sdC5mb3JtYXREZWZhdWx0TG9jYWxlPW9yLHQuZm9ybWF0TG9jYWxlPWlyLHQuZm9ybWF0U3BlY2lmaWVyPXRyLHQucHJlY2lzaW9uRml4ZWQ9YXIsdC5wcmVjaXNpb25QcmVmaXg9dXIsdC5wcmVjaXNpb25Sb3VuZD1mcix0Lmdlb0FyZWE9ZnVuY3Rpb24odCl7cmV0dXJuIGRwLnJlc2V0KCksYnIodCxwcCksMipkcH0sdC5nZW9Cb3VuZHM9ZnVuY3Rpb24odCl7dmFyIG4sZSxyLGksbyxhLHU7aWYobWQ9YmQ9LSh5ZD1fZD0xLzApLFRkPVtdLGJyKHQsZ3ApLGU9VGQubGVuZ3RoKXtmb3IoVGQuc29ydChZciksbj0xLG89W3I9VGRbMF1dO248ZTsrK24pQnIociwoaT1UZFtuXSlbMF0pfHxCcihyLGlbMV0pPyhPcihyWzBdLGlbMV0pPk9yKHJbMF0sclsxXSkmJihyWzFdPWlbMV0pLE9yKGlbMF0sclsxXSk+T3IoclswXSxyWzFdKSYmKHJbMF09aVswXSkpOm8ucHVzaChyPWkpO2ZvcihhPS0xLzAsbj0wLHI9b1tlPW8ubGVuZ3RoLTFdO248PWU7cj1pLCsrbilpPW9bbl0sKHU9T3IoclsxXSxpWzBdKSk+YSYmKGE9dSx5ZD1pWzBdLGJkPXJbMV0pfXJldHVybiBUZD1OZD1udWxsLHlkPT09MS8wfHxfZD09PTEvMD9bW05hTixOYU5dLFtOYU4sTmFOXV06W1t5ZCxfZF0sW2JkLG1kXV19LHQuZ2VvQ2VudHJvaWQ9ZnVuY3Rpb24odCl7U2Q9RWQ9a2Q9Q2Q9UGQ9emQ9UmQ9TGQ9RGQ9VWQ9cWQ9MCxicih0LHlwKTt2YXIgbj1EZCxlPVVkLHI9cWQsaT1uKm4rZSplK3IqcjtyZXR1cm4gaTxYZCYmKG49emQsZT1SZCxyPUxkLEVkPEhkJiYobj1rZCxlPUNkLHI9UGQpLChpPW4qbitlKmUrcipyKTxYZCk/W05hTixOYU5dOlt0cChlLG4pKlpkLGRyKHIvZnAoaSkpKlpkXX0sdC5nZW9DaXJjbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIHQ9ci5hcHBseSh0aGlzLGFyZ3VtZW50cyksdT1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKSpRZCxmPW8uYXBwbHkodGhpcyxhcmd1bWVudHMpKlFkO3JldHVybiBuPVtdLGU9dGkoLXRbMF0qUWQsLXRbMV0qUWQsMCkuaW52ZXJ0LG9pKGEsdSxmLDEpLHQ9e3R5cGU6XCJQb2x5Z29uXCIsY29vcmRpbmF0ZXM6W25dfSxuPWU9bnVsbCx0fXZhciBuLGUscj1RcihbMCwwXSksaT1Rcig5MCksbz1Rcig2KSxhPXtwb2ludDpmdW5jdGlvbih0LHIpe24ucHVzaCh0PWUodCxyKSksdFswXSo9WmQsdFsxXSo9WmR9fTtyZXR1cm4gdC5jZW50ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOlFyKFsrblswXSwrblsxXV0pLHQpOnJ9LHQucmFkaXVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpRcigrbiksdCk6aX0sdC5wcmVjaXNpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOlFyKCtuKSx0KTpvfSx0fSx0Lmdlb0NsaXBBbnRpbWVyaWRpYW49Q3AsdC5nZW9DbGlwQ2lyY2xlPWdpLHQuZ2VvQ2xpcEV4dGVudD1mdW5jdGlvbigpe3ZhciB0LG4sZSxyPTAsaT0wLG89OTYwLGE9NTAwO3JldHVybiBlPXtzdHJlYW06ZnVuY3Rpb24oZSl7cmV0dXJuIHQmJm49PT1lP3Q6dD15aShyLGksbyxhKShuPWUpfSxleHRlbnQ6ZnVuY3Rpb24odSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K3VbMF1bMF0saT0rdVswXVsxXSxvPSt1WzFdWzBdLGE9K3VbMV1bMV0sdD1uPW51bGwsZSk6W1tyLGldLFtvLGFdXX19fSx0Lmdlb0NsaXBSZWN0YW5nbGU9eWksdC5nZW9Db250YWlucz1mdW5jdGlvbih0LG4pe3JldHVybih0JiZxcC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP3FwW3QudHlwZV06TWkpKHQsbil9LHQuZ2VvRGlzdGFuY2U9d2ksdC5nZW9HcmF0aWN1bGU9UGksdC5nZW9HcmF0aWN1bGUxMD1mdW5jdGlvbigpe3JldHVybiBQaSgpKCl9LHQuZ2VvSW50ZXJwb2xhdGU9ZnVuY3Rpb24odCxuKXt2YXIgZT10WzBdKlFkLHI9dFsxXSpRZCxpPW5bMF0qUWQsbz1uWzFdKlFkLGE9bnAociksdT1hcChyKSxmPW5wKG8pLGM9YXAobykscz1hKm5wKGUpLGw9YSphcChlKSxoPWYqbnAoaSksZD1mKmFwKGkpLHA9MipkcihmcChwcihvLXIpK2EqZipwcihpLWUpKSksdj1hcChwKSxnPXA/ZnVuY3Rpb24odCl7dmFyIG49YXAodCo9cCkvdixlPWFwKHAtdCkvdixyPWUqcytuKmgsaT1lKmwrbipkLG89ZSp1K24qYztyZXR1cm5bdHAoaSxyKSpaZCx0cChvLGZwKHIqcitpKmkpKSpaZF19OmZ1bmN0aW9uKCl7cmV0dXJuW2UqWmQscipaZF19O3JldHVybiBnLmRpc3RhbmNlPXAsZ30sdC5nZW9MZW5ndGg9eGksdC5nZW9QYXRoPWZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gdCYmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG8mJmkucG9pbnRSYWRpdXMoK28uYXBwbHkodGhpcyxhcmd1bWVudHMpKSxicih0LHIoaSkpKSxpLnJlc3VsdCgpfXZhciByLGksbz00LjU7cmV0dXJuIGUuYXJlYT1mdW5jdGlvbih0KXtyZXR1cm4gYnIodCxyKEZwKSksRnAucmVzdWx0KCl9LGUubWVhc3VyZT1mdW5jdGlvbih0KXtyZXR1cm4gYnIodCxyKGN2KSksY3YucmVzdWx0KCl9LGUuYm91bmRzPWZ1bmN0aW9uKHQpe3JldHVybiBicih0LHIoR3ApKSxHcC5yZXN1bHQoKX0sZS5jZW50cm9pZD1mdW5jdGlvbih0KXtyZXR1cm4gYnIodCxyKGV2KSksZXYucmVzdWx0KCl9LGUucHJvamVjdGlvbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uPyh0PW51bGwsemkpOih0PW4pLnN0cmVhbSxlKTp0fSxlLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD8obj1udWxsLG5ldyBXaSk6bmV3IEdpKG49dCksXCJmdW5jdGlvblwiIT10eXBlb2YgbyYmaS5wb2ludFJhZGl1cyhvKSxlKTpufSxlLnBvaW50UmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDooaS5wb2ludFJhZGl1cygrdCksK3QpLGUpOm99LGUucHJvamVjdGlvbih0KS5jb250ZXh0KG4pfSx0Lmdlb0FsYmVycz1sbyx0Lmdlb0FsYmVyc1VzYT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG49dFswXSxlPXRbMV07cmV0dXJuIHU9bnVsbCxpLnBvaW50KG4sZSksdXx8KG8ucG9pbnQobixlKSx1KXx8KGEucG9pbnQobixlKSx1KX1mdW5jdGlvbiBuKCl7cmV0dXJuIGU9cj1udWxsLHR9dmFyIGUscixpLG8sYSx1LGY9bG8oKSxjPXNvKCkucm90YXRlKFsxNTQsMF0pLmNlbnRlcihbLTIsNTguNV0pLnBhcmFsbGVscyhbNTUsNjVdKSxzPXNvKCkucm90YXRlKFsxNTcsMF0pLmNlbnRlcihbLTMsMTkuOV0pLnBhcmFsbGVscyhbOCwxOF0pLGw9e3BvaW50OmZ1bmN0aW9uKHQsbil7dT1bdCxuXX19O3JldHVybiB0LmludmVydD1mdW5jdGlvbih0KXt2YXIgbj1mLnNjYWxlKCksZT1mLnRyYW5zbGF0ZSgpLHI9KHRbMF0tZVswXSkvbixpPSh0WzFdLWVbMV0pL247cmV0dXJuKGk+PS4xMiYmaTwuMjM0JiZyPj0tLjQyNSYmcjwtLjIxND9jOmk+PS4xNjYmJmk8LjIzNCYmcj49LS4yMTQmJnI8LS4xMTU/czpmKS5pbnZlcnQodCl9LHQuc3RyZWFtPWZ1bmN0aW9uKHQpe3JldHVybiBlJiZyPT09dD9lOmU9ZnVuY3Rpb24odCl7dmFyIG49dC5sZW5ndGg7cmV0dXJue3BvaW50OmZ1bmN0aW9uKGUscil7Zm9yKHZhciBpPS0xOysraTxuOyl0W2ldLnBvaW50KGUscil9LHNwaGVyZTpmdW5jdGlvbigpe2Zvcih2YXIgZT0tMTsrK2U8bjspdFtlXS5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLnBvbHlnb25FbmQoKX19fShbZi5zdHJlYW0ocj10KSxjLnN0cmVhbSh0KSxzLnN0cmVhbSh0KV0pfSx0LnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZi5wcmVjaXNpb24odCksYy5wcmVjaXNpb24odCkscy5wcmVjaXNpb24odCksbigpKTpmLnByZWNpc2lvbigpfSx0LnNjYWxlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmLnNjYWxlKG4pLGMuc2NhbGUoLjM1Km4pLHMuc2NhbGUobiksdC50cmFuc2xhdGUoZi50cmFuc2xhdGUoKSkpOmYuc2NhbGUoKX0sdC50cmFuc2xhdGU9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGYudHJhbnNsYXRlKCk7dmFyIGU9Zi5zY2FsZSgpLHI9K3RbMF0sdT0rdFsxXTtyZXR1cm4gaT1mLnRyYW5zbGF0ZSh0KS5jbGlwRXh0ZW50KFtbci0uNDU1KmUsdS0uMjM4KmVdLFtyKy40NTUqZSx1Ky4yMzgqZV1dKS5zdHJlYW0obCksbz1jLnRyYW5zbGF0ZShbci0uMzA3KmUsdSsuMjAxKmVdKS5jbGlwRXh0ZW50KFtbci0uNDI1KmUrSGQsdSsuMTIqZStIZF0sW3ItLjIxNCplLUhkLHUrLjIzNCplLUhkXV0pLnN0cmVhbShsKSxhPXMudHJhbnNsYXRlKFtyLS4yMDUqZSx1Ky4yMTIqZV0pLmNsaXBFeHRlbnQoW1tyLS4yMTQqZStIZCx1Ky4xNjYqZStIZF0sW3ItLjExNSplLUhkLHUrLjIzNCplLUhkXV0pLnN0cmVhbShsKSxuKCl9LHQuZml0RXh0ZW50PWZ1bmN0aW9uKG4sZSl7cmV0dXJuIHRvKHQsbixlKX0sdC5maXRTaXplPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIG5vKHQsbixlKX0sdC5maXRXaWR0aD1mdW5jdGlvbihuLGUpe3JldHVybiBlbyh0LG4sZSl9LHQuZml0SGVpZ2h0PWZ1bmN0aW9uKG4sZSl7cmV0dXJuIHJvKHQsbixlKX0sdC5zY2FsZSgxMDcwKX0sdC5nZW9BemltdXRoYWxFcXVhbEFyZWE9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oZHYpLnNjYWxlKDEyNC43NSkuY2xpcEFuZ2xlKDE3OS45OTkpfSx0Lmdlb0F6aW11dGhhbEVxdWFsQXJlYVJhdz1kdix0Lmdlb0F6aW11dGhhbEVxdWlkaXN0YW50PWZ1bmN0aW9uKCl7cmV0dXJuIGFvKHB2KS5zY2FsZSg3OS40MTg4KS5jbGlwQW5nbGUoMTc5Ljk5OSl9LHQuZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnRSYXc9cHYsdC5nZW9Db25pY0NvbmZvcm1hbD1mdW5jdGlvbigpe3JldHVybiBmbyhfbykuc2NhbGUoMTA5LjUpLnBhcmFsbGVscyhbMzAsMzBdKX0sdC5nZW9Db25pY0NvbmZvcm1hbFJhdz1fbyx0Lmdlb0NvbmljRXF1YWxBcmVhPXNvLHQuZ2VvQ29uaWNFcXVhbEFyZWFSYXc9Y28sdC5nZW9Db25pY0VxdWlkaXN0YW50PWZ1bmN0aW9uKCl7cmV0dXJuIGZvKG1vKS5zY2FsZSgxMzEuMTU0KS5jZW50ZXIoWzAsMTMuOTM4OV0pfSx0Lmdlb0NvbmljRXF1aWRpc3RhbnRSYXc9bW8sdC5nZW9FcXVpcmVjdGFuZ3VsYXI9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oYm8pLnNjYWxlKDE1Mi42Myl9LHQuZ2VvRXF1aXJlY3Rhbmd1bGFyUmF3PWJvLHQuZ2VvR25vbW9uaWM9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oeG8pLnNjYWxlKDE0NC4wNDkpLmNsaXBBbmdsZSg2MCl9LHQuZ2VvR25vbW9uaWNSYXc9eG8sdC5nZW9JZGVudGl0eT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXtyZXR1cm4gaT1vPW51bGwsYX12YXIgbixlLHIsaSxvLGEsdT0xLGY9MCxjPTAscz0xLGw9MSxoPXppLGQ9bnVsbCxwPXppO3JldHVybiBhPXtzdHJlYW06ZnVuY3Rpb24odCl7cmV0dXJuIGkmJm89PT10P2k6aT1oKHAobz10KSl9LHBvc3RjbGlwOmZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPWksZD1uPWU9cj1udWxsLHQoKSk6cH0sY2xpcEV4dGVudDpmdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD1udWxsPT1pPyhkPW49ZT1yPW51bGwsemkpOnlpKGQ9K2lbMF1bMF0sbj0raVswXVsxXSxlPStpWzFdWzBdLHI9K2lbMV1bMV0pLHQoKSk6bnVsbD09ZD9udWxsOltbZCxuXSxbZSxyXV19LHNjYWxlOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXdvKCh1PStuKSpzLHUqbCxmLGMpLHQoKSk6dX0sdHJhbnNsYXRlOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXdvKHUqcyx1KmwsZj0rblswXSxjPStuWzFdKSx0KCkpOltmLGNdfSxyZWZsZWN0WDpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD13byh1KihzPW4/LTE6MSksdSpsLGYsYyksdCgpKTpzPDB9LHJlZmxlY3RZOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXdvKHUqcyx1KihsPW4/LTE6MSksZixjKSx0KCkpOmw8MH0sZml0RXh0ZW50OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRvKGEsdCxuKX0sZml0U2l6ZTpmdW5jdGlvbih0LG4pe3JldHVybiBubyhhLHQsbil9LGZpdFdpZHRoOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGVvKGEsdCxuKX0sZml0SGVpZ2h0OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHJvKGEsdCxuKX19fSx0Lmdlb1Byb2plY3Rpb249YW8sdC5nZW9Qcm9qZWN0aW9uTXV0YXRvcj11byx0Lmdlb01lcmNhdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGdvKHZvKS5zY2FsZSg5NjEvV2QpfSx0Lmdlb01lcmNhdG9yUmF3PXZvLHQuZ2VvTmF0dXJhbEVhcnRoMT1mdW5jdGlvbigpe3JldHVybiBhbyhNbykuc2NhbGUoMTc1LjI5NSl9LHQuZ2VvTmF0dXJhbEVhcnRoMVJhdz1Nbyx0Lmdlb09ydGhvZ3JhcGhpYz1mdW5jdGlvbigpe3JldHVybiBhbyhBbykuc2NhbGUoMjQ5LjUpLmNsaXBBbmdsZSg5MCtIZCl9LHQuZ2VvT3J0aG9ncmFwaGljUmF3PUFvLHQuZ2VvU3RlcmVvZ3JhcGhpYz1mdW5jdGlvbigpe3JldHVybiBhbyhUbykuc2NhbGUoMjUwKS5jbGlwQW5nbGUoMTQyKX0sdC5nZW9TdGVyZW9ncmFwaGljUmF3PVRvLHQuZ2VvVHJhbnN2ZXJzZU1lcmNhdG9yPWZ1bmN0aW9uKCl7dmFyIHQ9Z28oTm8pLG49dC5jZW50ZXIsZT10LnJvdGF0ZTtyZXR1cm4gdC5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bihbLXRbMV0sdFswXV0pOih0PW4oKSxbdFsxXSwtdFswXV0pfSx0LnJvdGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9lKFt0WzBdLHRbMV0sdC5sZW5ndGg+Mj90WzJdKzkwOjkwXSk6KHQ9ZSgpLFt0WzBdLHRbMV0sdFsyXS05MF0pfSxlKFswLDAsOTBdKS5zY2FsZSgxNTkuMTU1KX0sdC5nZW9UcmFuc3ZlcnNlTWVyY2F0b3JSYXc9Tm8sdC5nZW9Sb3RhdGlvbj1paSx0Lmdlb1N0cmVhbT1icix0Lmdlb1RyYW5zZm9ybT1mdW5jdGlvbih0KXtyZXR1cm57c3RyZWFtOlFpKHQpfX0sdC5jbHVzdGVyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgbyxhPTA7dC5lYWNoQWZ0ZXIoZnVuY3Rpb24odCl7dmFyIGU9dC5jaGlsZHJlbjtlPyh0Lng9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVkdWNlKEVvLDApL3QubGVuZ3RofShlKSx0Lnk9ZnVuY3Rpb24odCl7cmV0dXJuIDErdC5yZWR1Y2Uoa28sMCl9KGUpKToodC54PW8/YSs9bih0LG8pOjAsdC55PTAsbz10KX0pO3ZhciB1PWZ1bmN0aW9uKHQpe2Zvcih2YXIgbjtuPXQuY2hpbGRyZW47KXQ9blswXTtyZXR1cm4gdH0odCksZj1mdW5jdGlvbih0KXtmb3IodmFyIG47bj10LmNoaWxkcmVuOyl0PW5bbi5sZW5ndGgtMV07cmV0dXJuIHR9KHQpLGM9dS54LW4odSxmKS8yLHM9Zi54K24oZix1KS8yO3JldHVybiB0LmVhY2hBZnRlcihpP2Z1bmN0aW9uKG4pe24ueD0obi54LXQueCkqZSxuLnk9KHQueS1uLnkpKnJ9OmZ1bmN0aW9uKG4pe24ueD0obi54LWMpLyhzLWMpKmUsbi55PSgxLSh0Lnk/bi55L3QueToxKSkqcn0pfXZhciBuPVNvLGU9MSxyPTEsaT0hMTtyZXR1cm4gdC5zZXBhcmF0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWUsdCk6bn0sdC5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSExLGU9K25bMF0scj0rblsxXSx0KTppP251bGw6W2Uscl19LHQubm9kZVNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ITAsZT0rblswXSxyPStuWzFdLHQpOmk/W2Uscl06bnVsbH0sdH0sdC5oaWVyYXJjaHk9UG8sdC5wYWNrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXtyZXR1cm4gdC54PWUvMix0Lnk9ci8yLG4/dC5lYWNoQmVmb3JlKFFvKG4pKS5lYWNoQWZ0ZXIoSm8oaSwuNSkpLmVhY2hCZWZvcmUoS28oMSkpOnQuZWFjaEJlZm9yZShRbyhabykpLmVhY2hBZnRlcihKbygkbywxKSkuZWFjaEFmdGVyKEpvKGksdC5yL01hdGgubWluKGUscikpKS5lYWNoQmVmb3JlKEtvKE1hdGgubWluKGUscikvKDIqdC5yKSkpLHR9dmFyIG49bnVsbCxlPTEscj0xLGk9JG87cmV0dXJuIHQucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P251bGw6Vm8odCl9KGUpLHQpOm59LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rblswXSxyPStuWzFdLHQpOltlLHJdfSx0LnBhZGRpbmc9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOldvKCtuKSx0KTppfSx0fSx0LnBhY2tTaWJsaW5ncz1mdW5jdGlvbih0KXtyZXR1cm4gR28odCksdH0sdC5wYWNrRW5jbG9zZT1Vbyx0LnBhcnRpdGlvbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG89dC5oZWlnaHQrMTtyZXR1cm4gdC54MD10LnkwPXIsdC54MT1uLHQueTE9ZS9vLHQuZWFjaEJlZm9yZShmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbihlKXtlLmNoaWxkcmVuJiZuYShlLGUueDAsdCooZS5kZXB0aCsxKS9uLGUueDEsdCooZS5kZXB0aCsyKS9uKTt2YXIgaT1lLngwLG89ZS55MCxhPWUueDEtcix1PWUueTEtcjthPGkmJihpPWE9KGkrYSkvMiksdTxvJiYobz11PShvK3UpLzIpLGUueDA9aSxlLnkwPW8sZS54MT1hLGUueTE9dX19KGUsbykpLGkmJnQuZWFjaEJlZm9yZSh0YSksdH12YXIgbj0xLGU9MSxyPTAsaT0hMTtyZXR1cm4gdC5yb3VuZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hIW4sdCk6aX0sdC5zaXplPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPStyWzBdLGU9K3JbMV0sdCk6W24sZV19LHQucGFkZGluZz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rbix0KTpyfSx0fSx0LnN0cmF0aWZ5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgcixpLG8sYSx1LGYsYyxzPXQubGVuZ3RoLGw9bmV3IEFycmF5KHMpLGg9e307Zm9yKGk9MDtpPHM7KytpKXI9dFtpXSx1PWxbaV09bmV3IERvKHIpLG51bGwhPShmPW4ocixpLHQpKSYmKGYrPVwiXCIpJiYoaFtjPWd2Kyh1LmlkPWYpXT1jIGluIGg/X3Y6dSk7Zm9yKGk9MDtpPHM7KytpKWlmKHU9bFtpXSxudWxsIT0oZj1lKHRbaV0saSx0KSkmJihmKz1cIlwiKSl7aWYoIShhPWhbZ3YrZl0pKXRocm93IG5ldyBFcnJvcihcIm1pc3Npbmc6IFwiK2YpO2lmKGE9PT1fdil0aHJvdyBuZXcgRXJyb3IoXCJhbWJpZ3VvdXM6IFwiK2YpO2EuY2hpbGRyZW4/YS5jaGlsZHJlbi5wdXNoKHUpOmEuY2hpbGRyZW49W3VdLHUucGFyZW50PWF9ZWxzZXtpZihvKXRocm93IG5ldyBFcnJvcihcIm11bHRpcGxlIHJvb3RzXCIpO289dX1pZighbyl0aHJvdyBuZXcgRXJyb3IoXCJubyByb290XCIpO2lmKG8ucGFyZW50PXl2LG8uZWFjaEJlZm9yZShmdW5jdGlvbih0KXt0LmRlcHRoPXQucGFyZW50LmRlcHRoKzEsLS1zfSkuZWFjaEJlZm9yZShMbyksby5wYXJlbnQ9bnVsbCxzPjApdGhyb3cgbmV3IEVycm9yKFwiY3ljbGVcIik7cmV0dXJuIG99dmFyIG49ZWEsZT1yYTtyZXR1cm4gdC5pZD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1WbyhlKSx0KTpufSx0LnBhcmVudElkPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVZvKG4pLHQpOmV9LHR9LHQudHJlZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGY9ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGUscixpLG8sYT1uZXcgY2EodCwwKSx1PVthXTtuPXUucG9wKCk7KWlmKHI9bi5fLmNoaWxkcmVuKWZvcihuLmNoaWxkcmVuPW5ldyBBcnJheShvPXIubGVuZ3RoKSxpPW8tMTtpPj0wOy0taSl1LnB1c2goZT1uLmNoaWxkcmVuW2ldPW5ldyBjYShyW2ldLGkpKSxlLnBhcmVudD1uO3JldHVybihhLnBhcmVudD1uZXcgY2EobnVsbCwwKSkuY2hpbGRyZW49W2FdLGF9KHQpO2lmKGYuZWFjaEFmdGVyKG4pLGYucGFyZW50Lm09LWYueixmLmVhY2hCZWZvcmUoZSksdSl0LmVhY2hCZWZvcmUocik7ZWxzZXt2YXIgYz10LHM9dCxsPXQ7dC5lYWNoQmVmb3JlKGZ1bmN0aW9uKHQpe3QueDxjLngmJihjPXQpLHQueD5zLngmJihzPXQpLHQuZGVwdGg+bC5kZXB0aCYmKGw9dCl9KTt2YXIgaD1jPT09cz8xOmkoYyxzKS8yLGQ9aC1jLngscD1vLyhzLngraCtkKSx2PWEvKGwuZGVwdGh8fDEpO3QuZWFjaEJlZm9yZShmdW5jdGlvbih0KXt0Lng9KHQueCtkKSpwLHQueT10LmRlcHRoKnZ9KX1yZXR1cm4gdH1mdW5jdGlvbiBuKHQpe3ZhciBuPXQuY2hpbGRyZW4sZT10LnBhcmVudC5jaGlsZHJlbixyPXQuaT9lW3QuaS0xXTpudWxsO2lmKG4peyhmdW5jdGlvbih0KXtmb3IodmFyIG4sZT0wLHI9MCxpPXQuY2hpbGRyZW4sbz1pLmxlbmd0aDstLW8+PTA7KShuPWlbb10pLnorPWUsbi5tKz1lLGUrPW4ucysocis9bi5jKX0pKHQpO3ZhciBvPShuWzBdLnorbltuLmxlbmd0aC0xXS56KS8yO3I/KHQuej1yLnoraSh0Ll8sci5fKSx0Lm09dC56LW8pOnQuej1vfWVsc2UgciYmKHQuej1yLnoraSh0Ll8sci5fKSk7dC5wYXJlbnQuQT1mdW5jdGlvbih0LG4sZSl7aWYobil7Zm9yKHZhciByLG89dCxhPXQsdT1uLGY9by5wYXJlbnQuY2hpbGRyZW5bMF0sYz1vLm0scz1hLm0sbD11Lm0saD1mLm07dT1hYSh1KSxvPW9hKG8pLHUmJm87KWY9b2EoZiksKGE9YWEoYSkpLmE9dCwocj11LnorbC1vLnotYytpKHUuXyxvLl8pKT4wJiYodWEoZmEodSx0LGUpLHQsciksYys9cixzKz1yKSxsKz11Lm0sYys9by5tLGgrPWYubSxzKz1hLm07dSYmIWFhKGEpJiYoYS50PXUsYS5tKz1sLXMpLG8mJiFvYShmKSYmKGYudD1vLGYubSs9Yy1oLGU9dCl9cmV0dXJuIGV9KHQscix0LnBhcmVudC5BfHxlWzBdKX1mdW5jdGlvbiBlKHQpe3QuXy54PXQueit0LnBhcmVudC5tLHQubSs9dC5wYXJlbnQubX1mdW5jdGlvbiByKHQpe3QueCo9byx0Lnk9dC5kZXB0aCphfXZhciBpPWlhLG89MSxhPTEsdT1udWxsO3JldHVybiB0LnNlcGFyYXRpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bix0KTppfSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9ITEsbz0rblswXSxhPStuWzFdLHQpOnU/bnVsbDpbbyxhXX0sdC5ub2RlU2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0hMCxvPStuWzBdLGE9K25bMV0sdCk6dT9bbyxhXTpudWxsfSx0fSx0LnRyZWVtYXA9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3JldHVybiB0LngwPXQueTA9MCx0LngxPWksdC55MT1vLHQuZWFjaEJlZm9yZShuKSxhPVswXSxyJiZ0LmVhY2hCZWZvcmUodGEpLHR9ZnVuY3Rpb24gbih0KXt2YXIgbj1hW3QuZGVwdGhdLHI9dC54MCtuLGk9dC55MCtuLG89dC54MS1uLGg9dC55MS1uO288ciYmKHI9bz0ocitvKS8yKSxoPGkmJihpPWg9KGkraCkvMiksdC54MD1yLHQueTA9aSx0LngxPW8sdC55MT1oLHQuY2hpbGRyZW4mJihuPWFbdC5kZXB0aCsxXT11KHQpLzIscis9bCh0KS1uLGkrPWYodCktbixvLT1jKHQpLW4saC09cyh0KS1uLG88ciYmKHI9bz0ocitvKS8yKSxoPGkmJihpPWg9KGkraCkvMiksZSh0LHIsaSxvLGgpKX12YXIgZT1tdixyPSExLGk9MSxvPTEsYT1bMF0sdT0kbyxmPSRvLGM9JG8scz0kbyxsPSRvO3JldHVybiB0LnJvdW5kPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSEhbix0KTpyfSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K25bMF0sbz0rblsxXSx0KTpbaSxvXX0sdC50aWxlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVZvKG4pLHQpOmV9LHQucGFkZGluZz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90LnBhZGRpbmdJbm5lcihuKS5wYWRkaW5nT3V0ZXIobik6dC5wYWRkaW5nSW5uZXIoKX0sdC5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOldvKCtuKSx0KTp1fSx0LnBhZGRpbmdPdXRlcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90LnBhZGRpbmdUb3AobikucGFkZGluZ1JpZ2h0KG4pLnBhZGRpbmdCb3R0b20obikucGFkZGluZ0xlZnQobik6dC5wYWRkaW5nVG9wKCl9LHQucGFkZGluZ1RvcD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246V28oK24pLHQpOmZ9LHQucGFkZGluZ1JpZ2h0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpXbygrbiksdCk6Y30sdC5wYWRkaW5nQm90dG9tPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpXbygrbiksdCk6c30sdC5wYWRkaW5nTGVmdD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246V28oK24pLHQpOmx9LHR9LHQudHJlZW1hcEJpbmFyeT1mdW5jdGlvbih0LG4sZSxyLGkpe2Z1bmN0aW9uIG8odCxuLGUscixpLGEsdSl7aWYodD49bi0xKXt2YXIgYz1mW3RdO3JldHVybiBjLngwPXIsYy55MD1pLGMueDE9YSx2b2lkKGMueTE9dSl9Zm9yKHZhciBsPXNbdF0saD1lLzIrbCxkPXQrMSxwPW4tMTtkPHA7KXt2YXIgdj1kK3A+Pj4xO3Nbdl08aD9kPXYrMTpwPXZ9aC1zW2QtMV08c1tkXS1oJiZ0KzE8ZCYmLS1kO3ZhciBnPXNbZF0tbCx5PWUtZztpZihhLXI+dS1pKXt2YXIgXz0ocip5K2EqZykvZTtvKHQsZCxnLHIsaSxfLHUpLG8oZCxuLHksXyxpLGEsdSl9ZWxzZXt2YXIgYj0oaSp5K3UqZykvZTtvKHQsZCxnLHIsaSxhLGIpLG8oZCxuLHkscixiLGEsdSl9fXZhciBhLHUsZj10LmNoaWxkcmVuLGM9Zi5sZW5ndGgscz1uZXcgQXJyYXkoYysxKTtmb3Ioc1swXT11PWE9MDthPGM7KythKXNbYSsxXT11Kz1mW2FdLnZhbHVlO28oMCxjLHQudmFsdWUsbixlLHIsaSl9LHQudHJlZW1hcERpY2U9bmEsdC50cmVlbWFwU2xpY2U9c2EsdC50cmVlbWFwU2xpY2VEaWNlPWZ1bmN0aW9uKHQsbixlLHIsaSl7KDEmdC5kZXB0aD9zYTpuYSkodCxuLGUscixpKX0sdC50cmVlbWFwU3F1YXJpZnk9bXYsdC50cmVlbWFwUmVzcXVhcmlmeT14dix0LmludGVycG9sYXRlPWRuLHQuaW50ZXJwb2xhdGVBcnJheT1mbix0LmludGVycG9sYXRlQmFzaXM9S3QsdC5pbnRlcnBvbGF0ZUJhc2lzQ2xvc2VkPXRuLHQuaW50ZXJwb2xhdGVEYXRlPWNuLHQuaW50ZXJwb2xhdGVOdW1iZXI9c24sdC5pbnRlcnBvbGF0ZU9iamVjdD1sbix0LmludGVycG9sYXRlUm91bmQ9cG4sdC5pbnRlcnBvbGF0ZVN0cmluZz1obix0LmludGVycG9sYXRlVHJhbnNmb3JtQ3NzPXNsLHQuaW50ZXJwb2xhdGVUcmFuc2Zvcm1Tdmc9bGwsdC5pbnRlcnBvbGF0ZVpvb209X24sdC5pbnRlcnBvbGF0ZVJnYj1ybCx0LmludGVycG9sYXRlUmdiQmFzaXM9aWwsdC5pbnRlcnBvbGF0ZVJnYkJhc2lzQ2xvc2VkPW9sLHQuaW50ZXJwb2xhdGVIc2w9Z2wsdC5pbnRlcnBvbGF0ZUhzbExvbmc9eWwsdC5pbnRlcnBvbGF0ZUxhYj1mdW5jdGlvbih0LG4pe3ZhciBlPWFuKCh0PUZ0KHQpKS5sLChuPUZ0KG4pKS5sKSxyPWFuKHQuYSxuLmEpLGk9YW4odC5iLG4uYiksbz1hbih0Lm9wYWNpdHksbi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQubD1lKG4pLHQuYT1yKG4pLHQuYj1pKG4pLHQub3BhY2l0eT1vKG4pLHQrXCJcIn19LHQuaW50ZXJwb2xhdGVIY2w9X2wsdC5pbnRlcnBvbGF0ZUhjbExvbmc9YmwsdC5pbnRlcnBvbGF0ZUN1YmVoZWxpeD1tbCx0LmludGVycG9sYXRlQ3ViZWhlbGl4TG9uZz14bCx0LnBpZWNld2lzZT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZT0wLHI9bi5sZW5ndGgtMSxpPW5bMF0sbz1uZXcgQXJyYXkocjwwPzA6cik7ZTxyOylvW2VdPXQoaSxpPW5bKytlXSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPU1hdGgubWF4KDAsTWF0aC5taW4oci0xLE1hdGguZmxvb3IodCo9cikpKTtyZXR1cm4gb1tuXSh0LW4pfX0sdC5xdWFudGl6ZT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZT1uZXcgQXJyYXkobikscj0wO3I8bjsrK3IpZVtyXT10KHIvKG4tMSkpO3JldHVybiBlfSx0LnBhdGg9b2UsdC5wb2x5Z29uQXJlYT1mdW5jdGlvbih0KXtmb3IodmFyIG4sZT0tMSxyPXQubGVuZ3RoLGk9dFtyLTFdLG89MDsrK2U8cjspbj1pLGk9dFtlXSxvKz1uWzFdKmlbMF0tblswXSppWzFdO3JldHVybiBvLzJ9LHQucG9seWdvbkNlbnRyb2lkPWZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlLHI9LTEsaT10Lmxlbmd0aCxvPTAsYT0wLHU9dFtpLTFdLGY9MDsrK3I8aTspbj11LHU9dFtyXSxmKz1lPW5bMF0qdVsxXS11WzBdKm5bMV0sbys9KG5bMF0rdVswXSkqZSxhKz0oblsxXSt1WzFdKSplO3JldHVybiBmKj0zLFtvL2YsYS9mXX0sdC5wb2x5Z29uSHVsbD1mdW5jdGlvbih0KXtpZigoZT10Lmxlbmd0aCk8MylyZXR1cm4gbnVsbDt2YXIgbixlLHI9bmV3IEFycmF5KGUpLGk9bmV3IEFycmF5KGUpO2ZvcihuPTA7bjxlOysrbilyW25dPVsrdFtuXVswXSwrdFtuXVsxXSxuXTtmb3Ioci5zb3J0KGRhKSxuPTA7bjxlOysrbilpW25dPVtyW25dWzBdLC1yW25dWzFdXTt2YXIgbz1wYShyKSxhPXBhKGkpLHU9YVswXT09PW9bMF0sZj1hW2EubGVuZ3RoLTFdPT09b1tvLmxlbmd0aC0xXSxjPVtdO2ZvcihuPW8ubGVuZ3RoLTE7bj49MDstLW4pYy5wdXNoKHRbcltvW25dXVsyXV0pO2ZvcihuPSt1O248YS5sZW5ndGgtZjsrK24pYy5wdXNoKHRbclthW25dXVsyXV0pO3JldHVybiBjfSx0LnBvbHlnb25Db250YWlucz1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZSxyLGk9dC5sZW5ndGgsbz10W2ktMV0sYT1uWzBdLHU9blsxXSxmPW9bMF0sYz1vWzFdLHM9ITEsbD0wO2w8aTsrK2wpZT0obz10W2xdKVswXSwocj1vWzFdKT51IT1jPnUmJmE8KGYtZSkqKHUtcikvKGMtcikrZSYmKHM9IXMpLGY9ZSxjPXI7cmV0dXJuIHN9LHQucG9seWdvbkxlbmd0aD1mdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyPS0xLGk9dC5sZW5ndGgsbz10W2ktMV0sYT1vWzBdLHU9b1sxXSxmPTA7KytyPGk7KW49YSxlPXUsbi09YT0obz10W3JdKVswXSxlLT11PW9bMV0sZis9TWF0aC5zcXJ0KG4qbitlKmUpO3JldHVybiBmfSx0LnF1YWR0cmVlPWplLHQucmFuZG9tVW5pZm9ybT13dix0LnJhbmRvbU5vcm1hbD1Ndix0LnJhbmRvbUxvZ05vcm1hbD1Bdix0LnJhbmRvbUJhdGVzPU52LHQucmFuZG9tSXJ3aW5IYWxsPVR2LHQucmFuZG9tRXhwb25lbnRpYWw9U3YsdC5zY2FsZUJhbmQ9eWEsdC5zY2FsZVBvaW50PWZ1bmN0aW9uKCl7cmV0dXJuIF9hKHlhKCkucGFkZGluZ0lubmVyKDEpKX0sdC5zY2FsZUlkZW50aXR5PUVhLHQuc2NhbGVMaW5lYXI9U2EsdC5zY2FsZUxvZz1VYSx0LnNjYWxlT3JkaW5hbD1nYSx0LnNjYWxlSW1wbGljaXQ9UHYsdC5zY2FsZVBvdz1PYSx0LnNjYWxlU3FydD1mdW5jdGlvbigpe3JldHVybiBPYSgpLmV4cG9uZW50KC41KX0sdC5zY2FsZVF1YW50aWxlPVlhLHQuc2NhbGVRdWFudGl6ZT1CYSx0LnNjYWxlVGhyZXNob2xkPUZhLHQuc2NhbGVUaW1lPWZ1bmN0aW9uKCl7cmV0dXJuIG9mKGNnLHVnLFZ2LFh2LGp2LEZ2LFl2LER2LHQudGltZUZvcm1hdCkuZG9tYWluKFtuZXcgRGF0ZSgyZTMsMCwxKSxuZXcgRGF0ZSgyZTMsMCwyKV0pfSx0LnNjYWxlVXRjPWZ1bmN0aW9uKCl7cmV0dXJuIG9mKFJnLFBnLHlnLHZnLGRnLGxnLFl2LER2LHQudXRjRm9ybWF0KS5kb21haW4oW0RhdGUuVVRDKDJlMywwLDEpLERhdGUuVVRDKDJlMywwLDIpXSl9LHQuc2NhbGVTZXF1ZW50aWFsPWFmLHQuc2NhbGVEaXZlcmdpbmc9dWYsdC5zY2hlbWVDYXRlZ29yeTEwPVpnLHQuc2NoZW1lQWNjZW50PVFnLHQuc2NoZW1lRGFyazI9SmcsdC5zY2hlbWVQYWlyZWQ9S2csdC5zY2hlbWVQYXN0ZWwxPXR5LHQuc2NoZW1lUGFzdGVsMj1ueSx0LnNjaGVtZVNldDE9ZXksdC5zY2hlbWVTZXQyPXJ5LHQuc2NoZW1lU2V0Mz1peSx0LmludGVycG9sYXRlQnJCRz1heSx0LnNjaGVtZUJyQkc9b3ksdC5pbnRlcnBvbGF0ZVBSR249ZnksdC5zY2hlbWVQUkduPXV5LHQuaW50ZXJwb2xhdGVQaVlHPXN5LHQuc2NoZW1lUGlZRz1jeSx0LmludGVycG9sYXRlUHVPcj1oeSx0LnNjaGVtZVB1T3I9bHksdC5pbnRlcnBvbGF0ZVJkQnU9cHksdC5zY2hlbWVSZEJ1PWR5LHQuaW50ZXJwb2xhdGVSZEd5PWd5LHQuc2NoZW1lUmRHeT12eSx0LmludGVycG9sYXRlUmRZbEJ1PV95LHQuc2NoZW1lUmRZbEJ1PXl5LHQuaW50ZXJwb2xhdGVSZFlsR249bXksdC5zY2hlbWVSZFlsR249YnksdC5pbnRlcnBvbGF0ZVNwZWN0cmFsPXd5LHQuc2NoZW1lU3BlY3RyYWw9eHksdC5pbnRlcnBvbGF0ZUJ1R249QXksdC5zY2hlbWVCdUduPU15LHQuaW50ZXJwb2xhdGVCdVB1PU55LHQuc2NoZW1lQnVQdT1UeSx0LmludGVycG9sYXRlR25CdT1FeSx0LnNjaGVtZUduQnU9U3ksdC5pbnRlcnBvbGF0ZU9yUmQ9Q3ksdC5zY2hlbWVPclJkPWt5LHQuaW50ZXJwb2xhdGVQdUJ1R249enksdC5zY2hlbWVQdUJ1R249UHksdC5pbnRlcnBvbGF0ZVB1QnU9THksdC5zY2hlbWVQdUJ1PVJ5LHQuaW50ZXJwb2xhdGVQdVJkPVV5LHQuc2NoZW1lUHVSZD1EeSx0LmludGVycG9sYXRlUmRQdT1PeSx0LnNjaGVtZVJkUHU9cXksdC5pbnRlcnBvbGF0ZVlsR25CdT1CeSx0LnNjaGVtZVlsR25CdT1ZeSx0LmludGVycG9sYXRlWWxHbj1JeSx0LnNjaGVtZVlsR249RnksdC5pbnRlcnBvbGF0ZVlsT3JCcj1IeSx0LnNjaGVtZVlsT3JCcj1qeSx0LmludGVycG9sYXRlWWxPclJkPUd5LHQuc2NoZW1lWWxPclJkPVh5LHQuaW50ZXJwb2xhdGVCbHVlcz0keSx0LnNjaGVtZUJsdWVzPVZ5LHQuaW50ZXJwb2xhdGVHcmVlbnM9WnksdC5zY2hlbWVHcmVlbnM9V3ksdC5pbnRlcnBvbGF0ZUdyZXlzPUp5LHQuc2NoZW1lR3JleXM9UXksdC5pbnRlcnBvbGF0ZVB1cnBsZXM9dF8sdC5zY2hlbWVQdXJwbGVzPUt5LHQuaW50ZXJwb2xhdGVSZWRzPWVfLHQuc2NoZW1lUmVkcz1uXyx0LmludGVycG9sYXRlT3Jhbmdlcz1pXyx0LnNjaGVtZU9yYW5nZXM9cl8sdC5pbnRlcnBvbGF0ZUN1YmVoZWxpeERlZmF1bHQ9b18sdC5pbnRlcnBvbGF0ZVJhaW5ib3c9ZnVuY3Rpb24odCl7KHQ8MHx8dD4xKSYmKHQtPU1hdGguZmxvb3IodCkpO3ZhciBuPU1hdGguYWJzKHQtLjUpO3JldHVybiBmXy5oPTM2MCp0LTEwMCxmXy5zPTEuNS0xLjUqbixmXy5sPS44LS45Km4sZl8rXCJcIn0sdC5pbnRlcnBvbGF0ZVdhcm09YV8sdC5pbnRlcnBvbGF0ZUNvb2w9dV8sdC5pbnRlcnBvbGF0ZVNpbmVib3c9ZnVuY3Rpb24odCl7dmFyIG47cmV0dXJuIHQ9KC41LXQpKk1hdGguUEksY18ucj0yNTUqKG49TWF0aC5zaW4odCkpKm4sY18uZz0yNTUqKG49TWF0aC5zaW4odCtzXykpKm4sY18uYj0yNTUqKG49TWF0aC5zaW4odCtsXykpKm4sY18rXCJcIn0sdC5pbnRlcnBvbGF0ZVZpcmlkaXM9aF8sdC5pbnRlcnBvbGF0ZU1hZ21hPWRfLHQuaW50ZXJwb2xhdGVJbmZlcm5vPXBfLHQuaW50ZXJwb2xhdGVQbGFzbWE9dl8sdC5jcmVhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGN0KEModCkuY2FsbChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKX0sdC5jcmVhdG9yPUMsdC5sb2NhbD1zdCx0Lm1hdGNoZXI9YnMsdC5tb3VzZT1wdCx0Lm5hbWVzcGFjZT1rLHQubmFtZXNwYWNlcz12cyx0LmNsaWVudFBvaW50PWR0LHQuc2VsZWN0PWN0LHQuc2VsZWN0QWxsPWZ1bmN0aW9uKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P25ldyB1dChbZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0KV0sW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF0pOm5ldyB1dChbbnVsbD09dD9bXTp0XSx3cyl9LHQuc2VsZWN0aW9uPWZ0LHQuc2VsZWN0b3I9eix0LnNlbGVjdG9yQWxsPUwsdC5zdHlsZT1GLHQudG91Y2g9dnQsdC50b3VjaGVzPWZ1bmN0aW9uKHQsbil7bnVsbD09biYmKG49aHQoKS50b3VjaGVzKTtmb3IodmFyIGU9MCxyPW4/bi5sZW5ndGg6MCxpPW5ldyBBcnJheShyKTtlPHI7KytlKWlbZV09ZHQodCxuW2VdKTtyZXR1cm4gaX0sdC53aW5kb3c9Qix0LmN1c3RvbUV2ZW50PW90LHQuYXJjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0LGMscz0rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyksbD0rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksaD1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1UXyxkPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpLVRfLHA9Z18oZC1oKSx2PWQ+aDtpZihmfHwoZj10PW9lKCkpLGw8cyYmKGM9bCxsPXMscz1jKSxsPk1fKWlmKHA+Tl8tTV8pZi5tb3ZlVG8obCpfXyhoKSxsKnhfKGgpKSxmLmFyYygwLDAsbCxoLGQsIXYpLHM+TV8mJihmLm1vdmVUbyhzKl9fKGQpLHMqeF8oZCkpLGYuYXJjKDAsMCxzLGQsaCx2KSk7ZWxzZXt2YXIgZyx5LF89aCxiPWQsbT1oLHg9ZCx3PXAsTT1wLEE9dS5hcHBseSh0aGlzLGFyZ3VtZW50cykvMixUPUE+TV8mJihpPytpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp3XyhzKnMrbCpsKSksTj1tXyhnXyhsLXMpLzIsK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxTPU4sRT1OO2lmKFQ+TV8pe3ZhciBrPWhmKFQvcyp4XyhBKSksQz1oZihUL2wqeF8oQSkpOyh3LT0yKmspPk1fPyhrKj12PzE6LTEsbSs9ayx4LT1rKToodz0wLG09eD0oaCtkKS8yKSwoTS09MipDKT5NXz8oQyo9dj8xOi0xLF8rPUMsYi09Qyk6KE09MCxfPWI9KGgrZCkvMil9dmFyIFA9bCpfXyhfKSx6PWwqeF8oXyksUj1zKl9fKHgpLEw9cyp4Xyh4KTtpZihOPk1fKXt2YXIgRD1sKl9fKGIpLFU9bCp4XyhiKSxxPXMqX18obSksTz1zKnhfKG0pO2lmKHA8QV8pe3ZhciBZPXc+TV8/ZnVuY3Rpb24odCxuLGUscixpLG8sYSx1KXt2YXIgZj1lLXQsYz1yLW4scz1hLWksbD11LW8saD0ocyoobi1vKS1sKih0LWkpKS8obCpmLXMqYyk7cmV0dXJuW3QraCpmLG4raCpjXX0oUCx6LHEsTyxELFUsUixMKTpbUixMXSxCPVAtWVswXSxGPXotWVsxXSxJPUQtWVswXSxqPVUtWVsxXSxIPTEveF8oZnVuY3Rpb24odCl7cmV0dXJuIHQ+MT8wOnQ8LTE/QV86TWF0aC5hY29zKHQpfSgoQipJK0YqaikvKHdfKEIqQitGKkYpKndfKEkqSStqKmopKSkvMiksWD13XyhZWzBdKllbMF0rWVsxXSpZWzFdKTtTPW1fKE4sKHMtWCkvKEgtMSkpLEU9bV8oTiwobC1YKS8oSCsxKSl9fU0+TV8/RT5NXz8oZz1fZihxLE8sUCx6LGwsRSx2KSx5PV9mKEQsVSxSLEwsbCxFLHYpLGYubW92ZVRvKGcuY3grZy54MDEsZy5jeStnLnkwMSksRTxOP2YuYXJjKGcuY3gsZy5jeSxFLHlfKGcueTAxLGcueDAxKSx5Xyh5LnkwMSx5LngwMSksIXYpOihmLmFyYyhnLmN4LGcuY3ksRSx5XyhnLnkwMSxnLngwMSkseV8oZy55MTEsZy54MTEpLCF2KSxmLmFyYygwLDAsbCx5XyhnLmN5K2cueTExLGcuY3grZy54MTEpLHlfKHkuY3kreS55MTEseS5jeCt5LngxMSksIXYpLGYuYXJjKHkuY3gseS5jeSxFLHlfKHkueTExLHkueDExKSx5Xyh5LnkwMSx5LngwMSksIXYpKSk6KGYubW92ZVRvKFAseiksZi5hcmMoMCwwLGwsXyxiLCF2KSk6Zi5tb3ZlVG8oUCx6KSxzPk1fJiZ3Pk1fP1M+TV8/KGc9X2YoUixMLEQsVSxzLC1TLHYpLHk9X2YoUCx6LHEsTyxzLC1TLHYpLGYubGluZVRvKGcuY3grZy54MDEsZy5jeStnLnkwMSksUzxOP2YuYXJjKGcuY3gsZy5jeSxTLHlfKGcueTAxLGcueDAxKSx5Xyh5LnkwMSx5LngwMSksIXYpOihmLmFyYyhnLmN4LGcuY3ksUyx5XyhnLnkwMSxnLngwMSkseV8oZy55MTEsZy54MTEpLCF2KSxmLmFyYygwLDAscyx5XyhnLmN5K2cueTExLGcuY3grZy54MTEpLHlfKHkuY3kreS55MTEseS5jeCt5LngxMSksdiksZi5hcmMoeS5jeCx5LmN5LFMseV8oeS55MTEseS54MTEpLHlfKHkueTAxLHkueDAxKSwhdikpKTpmLmFyYygwLDAscyx4LG0sdik6Zi5saW5lVG8oUixMKX1lbHNlIGYubW92ZVRvKDAsMCk7aWYoZi5jbG9zZVBhdGgoKSx0KXJldHVybiBmPW51bGwsdCtcIlwifHxudWxsfXZhciBuPWRmLGU9cGYscj1sZigwKSxpPW51bGwsbz12ZixhPWdmLHU9eWYsZj1udWxsO3JldHVybiB0LmNlbnRyb2lkPWZ1bmN0aW9uKCl7dmFyIHQ9KCtuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK2UuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLHI9KCtvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK2EuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLUFfLzI7cmV0dXJuW19fKHIpKnQseF8ocikqdF19LHQuaW5uZXJSYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKCtlKSx0KTpufSx0Lm91dGVyUmFkaXVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6ZX0sdC5jb3JuZXJSYWRpdXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpyfSx0LnBhZFJhZGl1cz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1udWxsPT1uP251bGw6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTppfSx0LnN0YXJ0QW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpvfSx0LmVuZEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6YX0sdC5wYWRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOnV9LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1udWxsPT1uP251bGw6bix0KTpmfSx0fSx0LmFyZWE9QWYsdC5saW5lPU1mLHQucGllPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgdSxmLGMscyxsLGg9dC5sZW5ndGgsZD0wLHA9bmV3IEFycmF5KGgpLHY9bmV3IEFycmF5KGgpLGc9K2kuYXBwbHkodGhpcyxhcmd1bWVudHMpLHk9TWF0aC5taW4oTl8sTWF0aC5tYXgoLU5fLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpLWcpKSxfPU1hdGgubWluKE1hdGguYWJzKHkpL2gsYS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLGI9XyooeTwwPy0xOjEpO2Zvcih1PTA7dTxoOysrdSkobD12W3BbdV09dV09K24odFt1XSx1LHQpKT4wJiYoZCs9bCk7Zm9yKG51bGwhPWU/cC5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUodlt0XSx2W25dKX0pOm51bGwhPXImJnAuc29ydChmdW5jdGlvbihuLGUpe3JldHVybiByKHRbbl0sdFtlXSl9KSx1PTAsYz1kPyh5LWgqYikvZDowO3U8aDsrK3UsZz1zKWY9cFt1XSxzPWcrKChsPXZbZl0pPjA/bCpjOjApK2IsdltmXT17ZGF0YTp0W2ZdLGluZGV4OnUsdmFsdWU6bCxzdGFydEFuZ2xlOmcsZW5kQW5nbGU6cyxwYWRBbmdsZTpffTtyZXR1cm4gdn12YXIgbj1OZixlPVRmLHI9bnVsbCxpPWxmKDApLG89bGYoTl8pLGE9bGYoMCk7cmV0dXJuIHQudmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKCtlKSx0KTpufSx0LnNvcnRWYWx1ZXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bixyPW51bGwsdCk6ZX0sdC5zb3J0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW4sZT1udWxsLHQpOnJ9LHQuc3RhcnRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOml9LHQuZW5kQW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpvfSx0LnBhZEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6YX0sdH0sdC5hcmVhUmFkaWFsPVBmLHQucmFkaWFsQXJlYT1QZix0LmxpbmVSYWRpYWw9Q2YsdC5yYWRpYWxMaW5lPUNmLHQucG9pbnRSYWRpYWw9emYsdC5saW5rSG9yaXpvbnRhbD1mdW5jdGlvbigpe3JldHVybiBEZihVZil9LHQubGlua1ZlcnRpY2FsPWZ1bmN0aW9uKCl7cmV0dXJuIERmKHFmKX0sdC5saW5rUmFkaWFsPWZ1bmN0aW9uKCl7dmFyIHQ9RGYoT2YpO3JldHVybiB0LmFuZ2xlPXQueCxkZWxldGUgdC54LHQucmFkaXVzPXQueSxkZWxldGUgdC55LHR9LHQuc3ltYm9sPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0O2lmKHJ8fChyPXQ9b2UoKSksbi5hcHBseSh0aGlzLGFyZ3VtZW50cykuZHJhdyhyLCtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksdClyZXR1cm4gcj1udWxsLHQrXCJcInx8bnVsbH12YXIgbj1sZihrXyksZT1sZig2NCkscj1udWxsO3JldHVybiB0LnR5cGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKGUpLHQpOm59LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOmV9LHQuY29udGV4dD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uP251bGw6bix0KTpyfSx0fSx0LnN5bWJvbHM9WF8sdC5zeW1ib2xDaXJjbGU9a18sdC5zeW1ib2xDcm9zcz1DXyx0LnN5bWJvbERpYW1vbmQ9Ul8sdC5zeW1ib2xTcXVhcmU9T18sdC5zeW1ib2xTdGFyPXFfLHQuc3ltYm9sVHJpYW5nbGU9Ql8sdC5zeW1ib2xXeWU9SF8sdC5jdXJ2ZUJhc2lzQ2xvc2VkPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgSWYodCl9LHQuY3VydmVCYXNpc09wZW49ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBqZih0KX0sdC5jdXJ2ZUJhc2lzPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRmYodCl9LHQuY3VydmVCdW5kbGU9R18sdC5jdXJ2ZUNhcmRpbmFsQ2xvc2VkPSRfLHQuY3VydmVDYXJkaW5hbE9wZW49V18sdC5jdXJ2ZUNhcmRpbmFsPVZfLHQuY3VydmVDYXRtdWxsUm9tQ2xvc2VkPVFfLHQuY3VydmVDYXRtdWxsUm9tT3Blbj1KXyx0LmN1cnZlQ2F0bXVsbFJvbT1aXyx0LmN1cnZlTGluZWFyQ2xvc2VkPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgS2YodCl9LHQuY3VydmVMaW5lYXI9bWYsdC5jdXJ2ZU1vbm90b25lWD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGljKHQpfSx0LmN1cnZlTW9ub3RvbmVZPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgb2ModCl9LHQuY3VydmVOYXR1cmFsPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdWModCl9LHQuY3VydmVTdGVwPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgY2ModCwuNSl9LHQuY3VydmVTdGVwQWZ0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBjYyh0LDEpfSx0LmN1cnZlU3RlcEJlZm9yZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGNjKHQsMCl9LHQuc3RhY2s9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBvLGEsdT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxmPXQubGVuZ3RoLGM9dS5sZW5ndGgscz1uZXcgQXJyYXkoYyk7Zm9yKG89MDtvPGM7KytvKXtmb3IodmFyIGwsaD11W29dLGQ9c1tvXT1uZXcgQXJyYXkoZikscD0wO3A8ZjsrK3ApZFtwXT1sPVswLCtpKHRbcF0saCxwLHQpXSxsLmRhdGE9dFtwXTtkLmtleT1ofWZvcihvPTAsYT1lKHMpO288YzsrK28pc1thW29dXS5pbmRleD1vO3JldHVybiByKHMsYSksc312YXIgbj1sZihbXSksZT1sYyxyPXNjLGk9aGM7cmV0dXJuIHQua2V5cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6bGYoRV8uY2FsbChlKSksdCk6bn0sdC52YWx1ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOml9LHQub3JkZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bnVsbD09bj9sYzpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoRV8uY2FsbChuKSksdCk6ZX0sdC5vZmZzZXQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj9zYzpuLHQpOnJ9LHR9LHQuc3RhY2tPZmZzZXRFeHBhbmQ9ZnVuY3Rpb24odCxuKXtpZigocj10Lmxlbmd0aCk+MCl7Zm9yKHZhciBlLHIsaSxvPTAsYT10WzBdLmxlbmd0aDtvPGE7KytvKXtmb3IoaT1lPTA7ZTxyOysrZSlpKz10W2VdW29dWzFdfHwwO2lmKGkpZm9yKGU9MDtlPHI7KytlKXRbZV1bb11bMV0vPWl9c2ModCxuKX19LHQuc3RhY2tPZmZzZXREaXZlcmdpbmc9ZnVuY3Rpb24odCxuKXtpZigodT10Lmxlbmd0aCk+MSlmb3IodmFyIGUscixpLG8sYSx1LGY9MCxjPXRbblswXV0ubGVuZ3RoO2Y8YzsrK2YpZm9yKG89YT0wLGU9MDtlPHU7KytlKShpPShyPXRbbltlXV1bZl0pWzFdLXJbMF0pPj0wPyhyWzBdPW8sclsxXT1vKz1pKTppPDA/KHJbMV09YSxyWzBdPWErPWkpOnJbMF09b30sdC5zdGFja09mZnNldE5vbmU9c2MsdC5zdGFja09mZnNldFNpbGhvdWV0dGU9ZnVuY3Rpb24odCxuKXtpZigoZT10Lmxlbmd0aCk+MCl7Zm9yKHZhciBlLHI9MCxpPXRbblswXV0sbz1pLmxlbmd0aDtyPG87KytyKXtmb3IodmFyIGE9MCx1PTA7YTxlOysrYSl1Kz10W2FdW3JdWzFdfHwwO2lbcl1bMV0rPWlbcl1bMF09LXUvMn1zYyh0LG4pfX0sdC5zdGFja09mZnNldFdpZ2dsZT1mdW5jdGlvbih0LG4pe2lmKChpPXQubGVuZ3RoKT4wJiYocj0oZT10W25bMF1dKS5sZW5ndGgpPjApe2Zvcih2YXIgZSxyLGksbz0wLGE9MTthPHI7KythKXtmb3IodmFyIHU9MCxmPTAsYz0wO3U8aTsrK3Upe2Zvcih2YXIgcz10W25bdV1dLGw9c1thXVsxXXx8MCxoPShsLShzW2EtMV1bMV18fDApKS8yLGQ9MDtkPHU7KytkKXt2YXIgcD10W25bZF1dO2grPShwW2FdWzFdfHwwKS0ocFthLTFdWzFdfHwwKX1mKz1sLGMrPWgqbH1lW2EtMV1bMV0rPWVbYS0xXVswXT1vLGYmJihvLT1jL2YpfWVbYS0xXVsxXSs9ZVthLTFdWzBdPW8sc2ModCxuKX19LHQuc3RhY2tPcmRlckFzY2VuZGluZz1kYyx0LnN0YWNrT3JkZXJEZXNjZW5kaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBkYyh0KS5yZXZlcnNlKCl9LHQuc3RhY2tPcmRlckluc2lkZU91dD1mdW5jdGlvbih0KXt2YXIgbixlLHI9dC5sZW5ndGgsaT10Lm1hcChwYyksbz1sYyh0KS5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIGlbbl0taVt0XX0pLGE9MCx1PTAsZj1bXSxjPVtdO2ZvcihuPTA7bjxyOysrbillPW9bbl0sYTx1PyhhKz1pW2VdLGYucHVzaChlKSk6KHUrPWlbZV0sYy5wdXNoKGUpKTtyZXR1cm4gYy5yZXZlcnNlKCkuY29uY2F0KGYpfSx0LnN0YWNrT3JkZXJOb25lPWxjLHQuc3RhY2tPcmRlclJldmVyc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGxjKHQpLnJldmVyc2UoKX0sdC50aW1lSW50ZXJ2YWw9SWEsdC50aW1lTWlsbGlzZWNvbmQ9RHYsdC50aW1lTWlsbGlzZWNvbmRzPVV2LHQudXRjTWlsbGlzZWNvbmQ9RHYsdC51dGNNaWxsaXNlY29uZHM9VXYsdC50aW1lU2Vjb25kPVl2LHQudGltZVNlY29uZHM9QnYsdC51dGNTZWNvbmQ9WXYsdC51dGNTZWNvbmRzPUJ2LHQudGltZU1pbnV0ZT1Gdix0LnRpbWVNaW51dGVzPUl2LHQudGltZUhvdXI9anYsdC50aW1lSG91cnM9SHYsdC50aW1lRGF5PVh2LHQudGltZURheXM9R3YsdC50aW1lV2Vlaz1Wdix0LnRpbWVXZWVrcz10Zyx0LnRpbWVTdW5kYXk9VnYsdC50aW1lU3VuZGF5cz10Zyx0LnRpbWVNb25kYXk9JHYsdC50aW1lTW9uZGF5cz1uZyx0LnRpbWVUdWVzZGF5PVd2LHQudGltZVR1ZXNkYXlzPWVnLHQudGltZVdlZG5lc2RheT1adix0LnRpbWVXZWRuZXNkYXlzPXJnLHQudGltZVRodXJzZGF5PVF2LHQudGltZVRodXJzZGF5cz1pZyx0LnRpbWVGcmlkYXk9SnYsdC50aW1lRnJpZGF5cz1vZyx0LnRpbWVTYXR1cmRheT1Ldix0LnRpbWVTYXR1cmRheXM9YWcsdC50aW1lTW9udGg9dWcsdC50aW1lTW9udGhzPWZnLHQudGltZVllYXI9Y2csdC50aW1lWWVhcnM9c2csdC51dGNNaW51dGU9bGcsdC51dGNNaW51dGVzPWhnLHQudXRjSG91cj1kZyx0LnV0Y0hvdXJzPXBnLHQudXRjRGF5PXZnLHQudXRjRGF5cz1nZyx0LnV0Y1dlZWs9eWcsdC51dGNXZWVrcz1BZyx0LnV0Y1N1bmRheT15Zyx0LnV0Y1N1bmRheXM9QWcsdC51dGNNb25kYXk9X2csdC51dGNNb25kYXlzPVRnLHQudXRjVHVlc2RheT1iZyx0LnV0Y1R1ZXNkYXlzPU5nLHQudXRjV2VkbmVzZGF5PW1nLHQudXRjV2VkbmVzZGF5cz1TZyx0LnV0Y1RodXJzZGF5PXhnLHQudXRjVGh1cnNkYXlzPUVnLHQudXRjRnJpZGF5PXdnLHQudXRjRnJpZGF5cz1rZyx0LnV0Y1NhdHVyZGF5PU1nLHQudXRjU2F0dXJkYXlzPUNnLHQudXRjTW9udGg9UGcsdC51dGNNb250aHM9emcsdC51dGNZZWFyPVJnLHQudXRjWWVhcnM9RGcsdC50aW1lRm9ybWF0RGVmYXVsdExvY2FsZT1uZix0LnRpbWVGb3JtYXRMb2NhbGU9JGEsdC5pc29Gb3JtYXQ9RmcsdC5pc29QYXJzZT1JZyx0Lm5vdz13bix0LnRpbWVyPVRuLHQudGltZXJGbHVzaD1Obix0LnRpbWVvdXQ9Q24sdC5pbnRlcnZhbD1mdW5jdGlvbih0LG4sZSl7dmFyIHI9bmV3IEFuLGk9bjtyZXR1cm4gbnVsbD09bj8oci5yZXN0YXJ0KHQsbixlKSxyKToobj0rbixlPW51bGw9PWU/d24oKTorZSxyLnJlc3RhcnQoZnVuY3Rpb24gbyhhKXthKz1pLHIucmVzdGFydChvLGkrPW4sZSksdChhKX0sbixlKSxyKX0sdC50cmFuc2l0aW9uPVluLHQuYWN0aXZlPWZ1bmN0aW9uKHQsbil7dmFyIGUscixpPXQuX190cmFuc2l0aW9uO2lmKGkpe249bnVsbD09bj9udWxsOm4rXCJcIjtmb3IociBpbiBpKWlmKChlPWlbcl0pLnN0YXRlPkxsJiZlLm5hbWU9PT1uKXJldHVybiBuZXcgT24oW1t0XV0saGgsbiwrcil9cmV0dXJuIG51bGx9LHQuaW50ZXJydXB0PURuLHQudm9yb25vaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIG5ldyBCYyh0Lm1hcChmdW5jdGlvbihyLGkpe3ZhciBvPVtNYXRoLnJvdW5kKG4ocixpLHQpL2FiKSphYixNYXRoLnJvdW5kKGUocixpLHQpL2FiKSphYl07cmV0dXJuIG8uaW5kZXg9aSxvLmRhdGE9cixvfSkscil9dmFyIG49Z2MsZT15YyxyPW51bGw7cmV0dXJuIHQucG9seWdvbnM9ZnVuY3Rpb24obil7cmV0dXJuIHQobikucG9seWdvbnMoKX0sdC5saW5rcz1mdW5jdGlvbihuKXtyZXR1cm4gdChuKS5saW5rcygpfSx0LnRyaWFuZ2xlcz1mdW5jdGlvbihuKXtyZXR1cm4gdChuKS50cmlhbmdsZXMoKX0sdC54PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTp2YygrZSksdCk6bn0sdC55PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjp2YygrbiksdCk6ZX0sdC5leHRlbnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj9udWxsOltbK25bMF1bMF0sK25bMF1bMV1dLFsrblsxXVswXSwrblsxXVsxXV1dLHQpOnImJltbclswXVswXSxyWzBdWzFdXSxbclsxXVswXSxyWzFdWzFdXV19LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uP251bGw6W1swLDBdLFsrblswXSwrblsxXV1dLHQpOnImJltyWzFdWzBdLXJbMF1bMF0sclsxXVsxXS1yWzBdWzFdXX0sdH0sdC56b29tPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0KXt0LnByb3BlcnR5KFwiX196b29tXCIsJGMpLm9uKFwid2hlZWwuem9vbVwiLGYpLm9uKFwibW91c2Vkb3duLnpvb21cIixjKS5vbihcImRibGNsaWNrLnpvb21cIixzKS5maWx0ZXIobSkub24oXCJ0b3VjaHN0YXJ0Lnpvb21cIixsKS5vbihcInRvdWNobW92ZS56b29tXCIsaCkub24oXCJ0b3VjaGVuZC56b29tIHRvdWNoY2FuY2VsLnpvb21cIixkKS5zdHlsZShcInRvdWNoLWFjdGlvblwiLFwibm9uZVwiKS5zdHlsZShcIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvclwiLFwicmdiYSgwLDAsMCwwKVwiKX1mdW5jdGlvbiBlKHQsbil7cmV0dXJuKG49TWF0aC5tYXgoeFswXSxNYXRoLm1pbih4WzFdLG4pKSk9PT10Lms/dDpuZXcgSWMobix0LngsdC55KX1mdW5jdGlvbiByKHQsbixlKXt2YXIgcj1uWzBdLWVbMF0qdC5rLGk9blsxXS1lWzFdKnQuaztyZXR1cm4gcj09PXQueCYmaT09PXQueT90Om5ldyBJYyh0LmsscixpKX1mdW5jdGlvbiBpKHQpe3JldHVyblsoK3RbMF1bMF0rICt0WzFdWzBdKS8yLCgrdFswXVsxXSsgK3RbMV1bMV0pLzJdfWZ1bmN0aW9uIG8odCxuLGUpe3Qub24oXCJzdGFydC56b29tXCIsZnVuY3Rpb24oKXthKHRoaXMsYXJndW1lbnRzKS5zdGFydCgpfSkub24oXCJpbnRlcnJ1cHQuem9vbSBlbmQuem9vbVwiLGZ1bmN0aW9uKCl7YSh0aGlzLGFyZ3VtZW50cykuZW5kKCl9KS50d2VlbihcInpvb21cIixmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cyxyPWEodGhpcyx0KSxvPXkuYXBwbHkodGhpcyx0KSx1PWV8fGkobyksZj1NYXRoLm1heChvWzFdWzBdLW9bMF1bMF0sb1sxXVsxXS1vWzBdWzFdKSxjPXRoaXMuX196b29tLHM9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uLmFwcGx5KHRoaXMsdCk6bixsPUEoYy5pbnZlcnQodSkuY29uY2F0KGYvYy5rKSxzLmludmVydCh1KS5jb25jYXQoZi9zLmspKTtyZXR1cm4gZnVuY3Rpb24odCl7aWYoMT09PXQpdD1zO2Vsc2V7dmFyIG49bCh0KSxlPWYvblsyXTt0PW5ldyBJYyhlLHVbMF0tblswXSplLHVbMV0tblsxXSplKX1yLnpvb20obnVsbCx0KX19KX1mdW5jdGlvbiBhKHQsbil7Zm9yKHZhciBlLHI9MCxpPVQubGVuZ3RoO3I8aTsrK3IpaWYoKGU9VFtyXSkudGhhdD09PXQpcmV0dXJuIGU7cmV0dXJuIG5ldyB1KHQsbil9ZnVuY3Rpb24gdSh0LG4pe3RoaXMudGhhdD10LHRoaXMuYXJncz1uLHRoaXMuaW5kZXg9LTEsdGhpcy5hY3RpdmU9MCx0aGlzLmV4dGVudD15LmFwcGx5KHQsbil9ZnVuY3Rpb24gZigpe2lmKGcuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdD1hKHRoaXMsYXJndW1lbnRzKSxuPXRoaXMuX196b29tLGk9TWF0aC5tYXgoeFswXSxNYXRoLm1pbih4WzFdLG4uaypNYXRoLnBvdygyLGIuYXBwbHkodGhpcyxhcmd1bWVudHMpKSkpLG89cHQodGhpcyk7aWYodC53aGVlbCl0Lm1vdXNlWzBdWzBdPT09b1swXSYmdC5tb3VzZVswXVsxXT09PW9bMV18fCh0Lm1vdXNlWzFdPW4uaW52ZXJ0KHQubW91c2VbMF09bykpLGNsZWFyVGltZW91dCh0LndoZWVsKTtlbHNle2lmKG4uaz09PWkpcmV0dXJuO3QubW91c2U9W28sbi5pbnZlcnQobyldLERuKHRoaXMpLHQuc3RhcnQoKX1YYygpLHQud2hlZWw9c2V0VGltZW91dChmdW5jdGlvbigpe3Qud2hlZWw9bnVsbCx0LmVuZCgpfSxrKSx0Lnpvb20oXCJtb3VzZVwiLF8ocihlKG4saSksdC5tb3VzZVswXSx0Lm1vdXNlWzFdKSx0LmV4dGVudCx3KSl9fWZ1bmN0aW9uIGMoKXtpZighdiYmZy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBuPWEodGhpcyxhcmd1bWVudHMpLGU9Y3QodC5ldmVudC52aWV3KS5vbihcIm1vdXNlbW92ZS56b29tXCIsZnVuY3Rpb24oKXtpZihYYygpLCFuLm1vdmVkKXt2YXIgZT10LmV2ZW50LmNsaWVudFgtbyxpPXQuZXZlbnQuY2xpZW50WS11O24ubW92ZWQ9ZSplK2kqaT5DfW4uem9vbShcIm1vdXNlXCIsXyhyKG4udGhhdC5fX3pvb20sbi5tb3VzZVswXT1wdChuLnRoYXQpLG4ubW91c2VbMV0pLG4uZXh0ZW50LHcpKX0sITApLm9uKFwibW91c2V1cC56b29tXCIsZnVuY3Rpb24oKXtlLm9uKFwibW91c2Vtb3ZlLnpvb20gbW91c2V1cC56b29tXCIsbnVsbCksYnQodC5ldmVudC52aWV3LG4ubW92ZWQpLFhjKCksbi5lbmQoKX0sITApLGk9cHQodGhpcyksbz10LmV2ZW50LmNsaWVudFgsdT10LmV2ZW50LmNsaWVudFk7X3QodC5ldmVudC52aWV3KSxIYygpLG4ubW91c2U9W2ksdGhpcy5fX3pvb20uaW52ZXJ0KGkpXSxEbih0aGlzKSxuLnN0YXJ0KCl9fWZ1bmN0aW9uIHMoKXtpZihnLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIGk9dGhpcy5fX3pvb20sYT1wdCh0aGlzKSx1PWkuaW52ZXJ0KGEpLGY9aS5rKih0LmV2ZW50LnNoaWZ0S2V5Py41OjIpLGM9XyhyKGUoaSxmKSxhLHUpLHkuYXBwbHkodGhpcyxhcmd1bWVudHMpLHcpO1hjKCksTT4wP2N0KHRoaXMpLnRyYW5zaXRpb24oKS5kdXJhdGlvbihNKS5jYWxsKG8sYyxhKTpjdCh0aGlzKS5jYWxsKG4udHJhbnNmb3JtLGMpfX1mdW5jdGlvbiBsKCl7aWYoZy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBuLGUscixpLG89YSh0aGlzLGFyZ3VtZW50cyksdT10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLGY9dS5sZW5ndGg7Zm9yKEhjKCksZT0wO2U8ZjsrK2UpaT1baT12dCh0aGlzLHUsKHI9dVtlXSkuaWRlbnRpZmllciksdGhpcy5fX3pvb20uaW52ZXJ0KGkpLHIuaWRlbnRpZmllcl0sby50b3VjaDA/by50b3VjaDF8fChvLnRvdWNoMT1pKTooby50b3VjaDA9aSxuPSEwKTtpZihwJiYocD1jbGVhclRpbWVvdXQocCksIW8udG91Y2gxKSlyZXR1cm4gby5lbmQoKSx2b2lkKChpPWN0KHRoaXMpLm9uKFwiZGJsY2xpY2suem9vbVwiKSkmJmkuYXBwbHkodGhpcyxhcmd1bWVudHMpKTtuJiYocD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cD1udWxsfSxFKSxEbih0aGlzKSxvLnN0YXJ0KCkpfX1mdW5jdGlvbiBoKCl7dmFyIG4saSxvLHUsZj1hKHRoaXMsYXJndW1lbnRzKSxjPXQuZXZlbnQuY2hhbmdlZFRvdWNoZXMscz1jLmxlbmd0aDtmb3IoWGMoKSxwJiYocD1jbGVhclRpbWVvdXQocCkpLG49MDtuPHM7KytuKW89dnQodGhpcyxjLChpPWNbbl0pLmlkZW50aWZpZXIpLGYudG91Y2gwJiZmLnRvdWNoMFsyXT09PWkuaWRlbnRpZmllcj9mLnRvdWNoMFswXT1vOmYudG91Y2gxJiZmLnRvdWNoMVsyXT09PWkuaWRlbnRpZmllciYmKGYudG91Y2gxWzBdPW8pO2lmKGk9Zi50aGF0Ll9fem9vbSxmLnRvdWNoMSl7dmFyIGw9Zi50b3VjaDBbMF0saD1mLnRvdWNoMFsxXSxkPWYudG91Y2gxWzBdLHY9Zi50b3VjaDFbMV0sZz0oZz1kWzBdLWxbMF0pKmcrKGc9ZFsxXS1sWzFdKSpnLHk9KHk9dlswXS1oWzBdKSp5Kyh5PXZbMV0taFsxXSkqeTtpPWUoaSxNYXRoLnNxcnQoZy95KSksbz1bKGxbMF0rZFswXSkvMiwobFsxXStkWzFdKS8yXSx1PVsoaFswXSt2WzBdKS8yLChoWzFdK3ZbMV0pLzJdfWVsc2V7aWYoIWYudG91Y2gwKXJldHVybjtvPWYudG91Y2gwWzBdLHU9Zi50b3VjaDBbMV19Zi56b29tKFwidG91Y2hcIixfKHIoaSxvLHUpLGYuZXh0ZW50LHcpKX1mdW5jdGlvbiBkKCl7dmFyIG4sZSxyPWEodGhpcyxhcmd1bWVudHMpLGk9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxvPWkubGVuZ3RoO2ZvcihIYygpLHYmJmNsZWFyVGltZW91dCh2KSx2PXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2PW51bGx9LEUpLG49MDtuPG87KytuKWU9aVtuXSxyLnRvdWNoMCYmci50b3VjaDBbMl09PT1lLmlkZW50aWZpZXI/ZGVsZXRlIHIudG91Y2gwOnIudG91Y2gxJiZyLnRvdWNoMVsyXT09PWUuaWRlbnRpZmllciYmZGVsZXRlIHIudG91Y2gxO3IudG91Y2gxJiYhci50b3VjaDAmJihyLnRvdWNoMD1yLnRvdWNoMSxkZWxldGUgci50b3VjaDEpLHIudG91Y2gwP3IudG91Y2gwWzFdPXRoaXMuX196b29tLmludmVydChyLnRvdWNoMFswXSk6ci5lbmQoKX12YXIgcCx2LGc9R2MseT1WYyxfPVFjLGI9V2MsbT1aYyx4PVswLDEvMF0sdz1bWy0xLzAsLTEvMF0sWzEvMCwxLzBdXSxNPTI1MCxBPV9uLFQ9W10sUz1OKFwic3RhcnRcIixcInpvb21cIixcImVuZFwiKSxFPTUwMCxrPTE1MCxDPTA7cmV0dXJuIG4udHJhbnNmb3JtPWZ1bmN0aW9uKHQsbil7dmFyIGU9dC5zZWxlY3Rpb24/dC5zZWxlY3Rpb24oKTp0O2UucHJvcGVydHkoXCJfX3pvb21cIiwkYyksdCE9PWU/byh0LG4pOmUuaW50ZXJydXB0KCkuZWFjaChmdW5jdGlvbigpe2EodGhpcyxhcmd1bWVudHMpLnN0YXJ0KCkuem9vbShudWxsLFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6bikuZW5kKCl9KX0sbi5zY2FsZUJ5PWZ1bmN0aW9uKHQsZSl7bi5zY2FsZVRvKHQsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX3pvb20uayooXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTplKX0pfSxuLnNjYWxlVG89ZnVuY3Rpb24odCxvKXtuLnRyYW5zZm9ybSh0LGZ1bmN0aW9uKCl7dmFyIHQ9eS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj10aGlzLl9fem9vbSxhPWkodCksdT1uLmludmVydChhKSxmPVwiZnVuY3Rpb25cIj09dHlwZW9mIG8/by5hcHBseSh0aGlzLGFyZ3VtZW50cyk6bztyZXR1cm4gXyhyKGUobixmKSxhLHUpLHQsdyl9KX0sbi50cmFuc2xhdGVCeT1mdW5jdGlvbih0LGUscil7bi50cmFuc2Zvcm0odCxmdW5jdGlvbigpe3JldHVybiBfKHRoaXMuX196b29tLnRyYW5zbGF0ZShcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmUsXCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpyKSx5LmFwcGx5KHRoaXMsYXJndW1lbnRzKSx3KX0pfSxuLnRyYW5zbGF0ZVRvPWZ1bmN0aW9uKHQsZSxyKXtuLnRyYW5zZm9ybSh0LGZ1bmN0aW9uKCl7dmFyIHQ9eS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj10aGlzLl9fem9vbSxvPWkodCk7cmV0dXJuIF8oZmIudHJhbnNsYXRlKG9bMF0sb1sxXSkuc2NhbGUobi5rKS50cmFuc2xhdGUoXCJmdW5jdGlvblwiPT10eXBlb2YgZT8tZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6LWUsXCJmdW5jdGlvblwiPT10eXBlb2Ygcj8tci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6LXIpLHQsdyl9KX0sdS5wcm90b3R5cGU9e3N0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIDE9PSsrdGhpcy5hY3RpdmUmJih0aGlzLmluZGV4PVQucHVzaCh0aGlzKS0xLHRoaXMuZW1pdChcInN0YXJ0XCIpKSx0aGlzfSx6b29tOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRoaXMubW91c2UmJlwibW91c2VcIiE9PXQmJih0aGlzLm1vdXNlWzFdPW4uaW52ZXJ0KHRoaXMubW91c2VbMF0pKSx0aGlzLnRvdWNoMCYmXCJ0b3VjaFwiIT09dCYmKHRoaXMudG91Y2gwWzFdPW4uaW52ZXJ0KHRoaXMudG91Y2gwWzBdKSksdGhpcy50b3VjaDEmJlwidG91Y2hcIiE9PXQmJih0aGlzLnRvdWNoMVsxXT1uLmludmVydCh0aGlzLnRvdWNoMVswXSkpLHRoaXMudGhhdC5fX3pvb209bix0aGlzLmVtaXQoXCJ6b29tXCIpLHRoaXN9LGVuZDpmdW5jdGlvbigpe3JldHVybiAwPT0tLXRoaXMuYWN0aXZlJiYoVC5zcGxpY2UodGhpcy5pbmRleCwxKSx0aGlzLmluZGV4PS0xLHRoaXMuZW1pdChcImVuZFwiKSksdGhpc30sZW1pdDpmdW5jdGlvbih0KXtvdChuZXcgZnVuY3Rpb24odCxuLGUpe3RoaXMudGFyZ2V0PXQsdGhpcy50eXBlPW4sdGhpcy50cmFuc2Zvcm09ZX0obix0LHRoaXMudGhhdC5fX3pvb20pLFMuYXBwbHksUyxbdCx0aGlzLnRoYXQsdGhpcy5hcmdzXSl9fSxuLndoZWVsRGVsdGE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGI9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkZjKCt0KSxuKTpifSxuLmZpbHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6RmMoISF0KSxuKTpnfSxuLnRvdWNoYWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6RmMoISF0KSxuKTptfSxuLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6RmMoW1srdFswXVswXSwrdFswXVsxXV0sWyt0WzFdWzBdLCt0WzFdWzFdXV0pLG4pOnl9LG4uc2NhbGVFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHhbMF09K3RbMF0seFsxXT0rdFsxXSxuKTpbeFswXSx4WzFdXX0sbi50cmFuc2xhdGVFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHdbMF1bMF09K3RbMF1bMF0sd1sxXVswXT0rdFsxXVswXSx3WzBdWzFdPSt0WzBdWzFdLHdbMV1bMV09K3RbMV1bMV0sbik6W1t3WzBdWzBdLHdbMF1bMV1dLFt3WzFdWzBdLHdbMV1bMV1dXX0sbi5jb25zdHJhaW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89dCxuKTpffSxuLmR1cmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhNPSt0LG4pOk19LG4uaW50ZXJwb2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEE9dCxuKTpBfSxuLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9Uy5vbi5hcHBseShTLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1TP246dH0sbi5jbGlja0Rpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhDPSh0PSt0KSp0LG4pOk1hdGguc3FydChDKX0sbn0sdC56b29tVHJhbnNmb3JtPWpjLHQuem9vbUlkZW50aXR5PWZiLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pfSk7IiwiLyohXG4gKiBMaWdodGJveCBmb3IgQm9vdHN0cmFwIGJ5IEBhc2hsZXlkd1xuICogaHR0cHM6Ly9naXRodWIuY29tL2FzaGxleWR3L2xpZ2h0Ym94XG4gKlxuICogTGljZW5zZTogaHR0cHM6Ly9naXRodWIuY29tL2FzaGxleWR3L2xpZ2h0Ym94L2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuK2Z1bmN0aW9uICgkKSB7XG5cbid1c2Ugc3RyaWN0JztcblxudmFyIF9jcmVhdGVDbGFzcyA9IChmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSkoKTtcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBMaWdodGJveCA9IChmdW5jdGlvbiAoJCkge1xuXG5cdHZhciBOQU1FID0gJ2Vra29MaWdodGJveCc7XG5cdHZhciBKUVVFUllfTk9fQ09ORkxJQ1QgPSAkLmZuW05BTUVdO1xuXG5cdHZhciBEZWZhdWx0ID0ge1xuXHRcdHRpdGxlOiAnJyxcblx0XHRmb290ZXI6ICcnLFxuXHRcdG1heFdpZHRoOiA5OTk5LFxuXHRcdG1heEhlaWdodDogOTk5OSxcblx0XHRzaG93QXJyb3dzOiB0cnVlLCAvL2Rpc3BsYXkgdGhlIGxlZnQgLyByaWdodCBhcnJvd3Mgb3Igbm90XG5cdFx0d3JhcHBpbmc6IHRydWUsIC8vaWYgdHJ1ZSwgZ2FsbGVyeSBsb29wcyBpbmZpbml0ZWx5XG5cdFx0dHlwZTogbnVsbCwgLy9mb3JjZSB0aGUgbGlnaHRib3ggaW50byBpbWFnZSAvIHlvdXR1YmUgbW9kZS4gaWYgbnVsbCwgb3Igbm90IGltYWdlfHlvdXR1YmV8dmltZW87IGRldGVjdCBpdFxuXHRcdGFsd2F5c1Nob3dDbG9zZTogZmFsc2UsIC8vYWx3YXlzIHNob3cgdGhlIGNsb3NlIGJ1dHRvbiwgZXZlbiBpZiB0aGVyZSBpcyBubyB0aXRsZVxuXHRcdGxvYWRpbmdNZXNzYWdlOiAnPGRpdiBjbGFzcz1cImVra28tbGlnaHRib3gtbG9hZGVyXCI+PGRpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PC9kaXY+JywgLy8gaHR0cDovL3RvYmlhc2FobGluLmNvbS9zcGlua2l0L1xuXHRcdGxlZnRBcnJvdzogJzxzcGFuPiYjMTAwOTQ7PC9zcGFuPicsXG5cdFx0cmlnaHRBcnJvdzogJzxzcGFuPiYjMTAwOTU7PC9zcGFuPicsXG5cdFx0c3RyaW5nczoge1xuXHRcdFx0Y2xvc2U6ICdDbG9zZScsXG5cdFx0XHRmYWlsOiAnRmFpbGVkIHRvIGxvYWQgaW1hZ2U6Jyxcblx0XHRcdHR5cGU6ICdDb3VsZCBub3QgZGV0ZWN0IHJlbW90ZSB0YXJnZXQgdHlwZS4gRm9yY2UgdGhlIHR5cGUgdXNpbmcgZGF0YS10eXBlJ1xuXHRcdH0sXG5cdFx0ZG9jOiBkb2N1bWVudCwgLy8gaWYgaW4gYW4gaWZyYW1lIGNhbiBzcGVjaWZ5IHRvcC5kb2N1bWVudFxuXHRcdG9uU2hvdzogZnVuY3Rpb24gb25TaG93KCkge30sXG5cdFx0b25TaG93bjogZnVuY3Rpb24gb25TaG93bigpIHt9LFxuXHRcdG9uSGlkZTogZnVuY3Rpb24gb25IaWRlKCkge30sXG5cdFx0b25IaWRkZW46IGZ1bmN0aW9uIG9uSGlkZGVuKCkge30sXG5cdFx0b25OYXZpZ2F0ZTogZnVuY3Rpb24gb25OYXZpZ2F0ZSgpIHt9LFxuXHRcdG9uQ29udGVudExvYWRlZDogZnVuY3Rpb24gb25Db250ZW50TG9hZGVkKCkge31cblx0fTtcblxuXHR2YXIgTGlnaHRib3ggPSAoZnVuY3Rpb24gKCkge1xuXHRcdF9jcmVhdGVDbGFzcyhMaWdodGJveCwgbnVsbCwgW3tcblx0XHRcdGtleTogJ0RlZmF1bHQnLFxuXG5cdFx0XHQvKipcbiAgICAgICBDbGFzcyBwcm9wZXJ0aWVzOlxuICAgXHQgXyRlbGVtZW50OiBudWxsIC0+IHRoZSA8YT4gZWxlbWVudCBjdXJyZW50bHkgYmVpbmcgZGlzcGxheWVkXG4gICAgXyRtb2RhbDogVGhlIGJvb3RzdHJhcCBtb2RhbCBnZW5lcmF0ZWRcbiAgICAgICBfJG1vZGFsRGlhbG9nOiBUaGUgLm1vZGFsLWRpYWxvZ1xuICAgICAgIF8kbW9kYWxDb250ZW50OiBUaGUgLm1vZGFsLWNvbnRlbnRcbiAgICAgICBfJG1vZGFsQm9keTogVGhlIC5tb2RhbC1ib2R5XG4gICAgICAgXyRtb2RhbEhlYWRlcjogVGhlIC5tb2RhbC1oZWFkZXJcbiAgICAgICBfJG1vZGFsRm9vdGVyOiBUaGUgLm1vZGFsLWZvb3RlclxuICAgIF8kbGlnaHRib3hDb250YWluZXJPbmU6IENvbnRhaW5lciBvZiB0aGUgZmlyc3QgbGlnaHRib3ggZWxlbWVudFxuICAgIF8kbGlnaHRib3hDb250YWluZXJUd286IENvbnRhaW5lciBvZiB0aGUgc2Vjb25kIGxpZ2h0Ym94IGVsZW1lbnRcbiAgICBfJGxpZ2h0Ym94Qm9keTogRmlyc3QgZWxlbWVudCBpbiB0aGUgY29udGFpbmVyXG4gICAgXyRtb2RhbEFycm93czogVGhlIG92ZXJsYXllZCBhcnJvd3MgY29udGFpbmVyXG4gICBcdCBfJGdhbGxlcnlJdGVtczogT3RoZXIgPGE+J3MgYXZhaWxhYmxlIGZvciB0aGlzIGdhbGxlcnlcbiAgICBfZ2FsbGVyeU5hbWU6IE5hbWUgb2YgdGhlIGN1cnJlbnQgZGF0YSgnZ2FsbGVyeScpIHNob3dpbmdcbiAgICBfZ2FsbGVyeUluZGV4OiBUaGUgY3VycmVudCBpbmRleCBvZiB0aGUgXyRnYWxsZXJ5SXRlbXMgYmVpbmcgc2hvd25cbiAgIFx0IF9jb25maWc6IHt9IHRoZSBvcHRpb25zIGZvciB0aGUgbW9kYWxcbiAgICBfbW9kYWxJZDogdW5pcXVlIGlkIGZvciB0aGUgY3VycmVudCBsaWdodGJveFxuICAgIF9wYWRkaW5nIC8gX2JvcmRlcjogQ1NTIHByb3BlcnRpZXMgZm9yIHRoZSBtb2RhbCBjb250YWluZXI7IHRoZXNlIGFyZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgYXZhaWxhYmxlIHNwYWNlIGZvciB0aGUgY29udGVudFxuICAgXHQgKi9cblxuXHRcdFx0Z2V0OiBmdW5jdGlvbiBnZXQoKSB7XG5cdFx0XHRcdHJldHVybiBEZWZhdWx0O1xuXHRcdFx0fVxuXHRcdH1dKTtcblxuXHRcdGZ1bmN0aW9uIExpZ2h0Ym94KCRlbGVtZW50LCBjb25maWcpIHtcblx0XHRcdHZhciBfdGhpcyA9IHRoaXM7XG5cblx0XHRcdF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMaWdodGJveCk7XG5cblx0XHRcdHRoaXMuX2NvbmZpZyA9ICQuZXh0ZW5kKHt9LCBEZWZhdWx0LCBjb25maWcpO1xuXHRcdFx0dGhpcy5fJG1vZGFsQXJyb3dzID0gbnVsbDtcblx0XHRcdHRoaXMuX2dhbGxlcnlJbmRleCA9IDA7XG5cdFx0XHR0aGlzLl9nYWxsZXJ5TmFtZSA9IG51bGw7XG5cdFx0XHR0aGlzLl9wYWRkaW5nID0gbnVsbDtcblx0XHRcdHRoaXMuX2JvcmRlciA9IG51bGw7XG5cdFx0XHR0aGlzLl90aXRsZUlzU2hvd24gPSBmYWxzZTtcblx0XHRcdHRoaXMuX2Zvb3RlcklzU2hvd24gPSBmYWxzZTtcblx0XHRcdHRoaXMuX3dhbnRlZFdpZHRoID0gMDtcblx0XHRcdHRoaXMuX3dhbnRlZEhlaWdodCA9IDA7XG5cdFx0XHR0aGlzLl90b3VjaHN0YXJ0WCA9IDA7XG5cdFx0XHR0aGlzLl90b3VjaGVuZFggPSAwO1xuXG5cdFx0XHR0aGlzLl9tb2RhbElkID0gJ2Vra29MaWdodGJveC0nICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMCArIDEpO1xuXHRcdFx0dGhpcy5fJGVsZW1lbnQgPSAkZWxlbWVudCBpbnN0YW5jZW9mIGpRdWVyeSA/ICRlbGVtZW50IDogJCgkZWxlbWVudCk7XG5cblx0XHRcdHRoaXMuX2lzQm9vdHN0cmFwMyA9ICQuZm4ubW9kYWwuQ29uc3RydWN0b3IuVkVSU0lPTlswXSA9PSAzO1xuXG5cdFx0XHR2YXIgaDQgPSAnPGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIj4nICsgKHRoaXMuX2NvbmZpZy50aXRsZSB8fCBcIiZuYnNwO1wiKSArICc8L2g0Pic7XG5cdFx0XHR2YXIgYnRuID0gJzxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCInICsgdGhpcy5fY29uZmlnLnN0cmluZ3MuY2xvc2UgKyAnXCI+PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj48L2J1dHRvbj4nO1xuXG5cdFx0XHR2YXIgaGVhZGVyID0gJzxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXInICsgKHRoaXMuX2NvbmZpZy50aXRsZSB8fCB0aGlzLl9jb25maWcuYWx3YXlzU2hvd0Nsb3NlID8gJycgOiAnIGhpZGUnKSArICdcIj4nICsgKHRoaXMuX2lzQm9vdHN0cmFwMyA/IGJ0biArIGg0IDogaDQgKyBidG4pICsgJzwvZGl2Pic7XG5cdFx0XHR2YXIgZm9vdGVyID0gJzxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXInICsgKHRoaXMuX2NvbmZpZy5mb290ZXIgPyAnJyA6ICcgaGlkZScpICsgJ1wiPicgKyAodGhpcy5fY29uZmlnLmZvb3RlciB8fCBcIiZuYnNwO1wiKSArICc8L2Rpdj4nO1xuXHRcdFx0dmFyIGJvZHkgPSAnPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj48ZGl2IGNsYXNzPVwiZWtrby1saWdodGJveC1jb250YWluZXJcIj48ZGl2IGNsYXNzPVwiZWtrby1saWdodGJveC1pdGVtIGZhZGUgaW4gc2hvd1wiPjwvZGl2PjxkaXYgY2xhc3M9XCJla2tvLWxpZ2h0Ym94LWl0ZW0gZmFkZVwiPjwvZGl2PjwvZGl2PjwvZGl2Pic7XG5cdFx0XHR2YXIgZGlhbG9nID0gJzxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2dcIiByb2xlPVwiZG9jdW1lbnRcIj48ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPicgKyBoZWFkZXIgKyBib2R5ICsgZm9vdGVyICsgJzwvZGl2PjwvZGl2Pic7XG5cdFx0XHQkKHRoaXMuX2NvbmZpZy5kb2MuYm9keSkuYXBwZW5kKCc8ZGl2IGlkPVwiJyArIHRoaXMuX21vZGFsSWQgKyAnXCIgY2xhc3M9XCJla2tvLWxpZ2h0Ym94IG1vZGFsIGZhZGVcIiB0YWJpbmRleD1cIi0xXCIgdGFiaW5kZXg9XCItMVwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4nICsgZGlhbG9nICsgJzwvZGl2PicpO1xuXG5cdFx0XHR0aGlzLl8kbW9kYWwgPSAkKCcjJyArIHRoaXMuX21vZGFsSWQsIHRoaXMuX2NvbmZpZy5kb2MpO1xuXHRcdFx0dGhpcy5fJG1vZGFsRGlhbG9nID0gdGhpcy5fJG1vZGFsLmZpbmQoJy5tb2RhbC1kaWFsb2cnKS5maXJzdCgpO1xuXHRcdFx0dGhpcy5fJG1vZGFsQ29udGVudCA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtY29udGVudCcpLmZpcnN0KCk7XG5cdFx0XHR0aGlzLl8kbW9kYWxCb2R5ID0gdGhpcy5fJG1vZGFsLmZpbmQoJy5tb2RhbC1ib2R5JykuZmlyc3QoKTtcblx0XHRcdHRoaXMuXyRtb2RhbEhlYWRlciA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtaGVhZGVyJykuZmlyc3QoKTtcblx0XHRcdHRoaXMuXyRtb2RhbEZvb3RlciA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtZm9vdGVyJykuZmlyc3QoKTtcblxuXHRcdFx0dGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyID0gdGhpcy5fJG1vZGFsQm9keS5maW5kKCcuZWtrby1saWdodGJveC1jb250YWluZXInKS5maXJzdCgpO1xuXHRcdFx0dGhpcy5fJGxpZ2h0Ym94Qm9keU9uZSA9IHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5maW5kKCc+IGRpdjpmaXJzdC1jaGlsZCcpLmZpcnN0KCk7XG5cdFx0XHR0aGlzLl8kbGlnaHRib3hCb2R5VHdvID0gdGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLmZpbmQoJz4gZGl2Omxhc3QtY2hpbGQnKS5maXJzdCgpO1xuXG5cdFx0XHR0aGlzLl9ib3JkZXIgPSB0aGlzLl9jYWxjdWxhdGVCb3JkZXJzKCk7XG5cdFx0XHR0aGlzLl9wYWRkaW5nID0gdGhpcy5fY2FsY3VsYXRlUGFkZGluZygpO1xuXG5cdFx0XHR0aGlzLl9nYWxsZXJ5TmFtZSA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2dhbGxlcnknKTtcblx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5TmFtZSkge1xuXHRcdFx0XHR0aGlzLl8kZ2FsbGVyeUl0ZW1zID0gJChkb2N1bWVudC5ib2R5KS5maW5kKCcqW2RhdGEtZ2FsbGVyeT1cIicgKyB0aGlzLl9nYWxsZXJ5TmFtZSArICdcIl0nKTtcblx0XHRcdFx0dGhpcy5fZ2FsbGVyeUluZGV4ID0gdGhpcy5fJGdhbGxlcnlJdGVtcy5pbmRleCh0aGlzLl8kZWxlbWVudCk7XG5cdFx0XHRcdCQoZG9jdW1lbnQpLm9uKCdrZXlkb3duLmVra29MaWdodGJveCcsIHRoaXMuX25hdmlnYXRpb25hbEJpbmRlci5iaW5kKHRoaXMpKTtcblxuXHRcdFx0XHQvLyBhZGQgdGhlIGRpcmVjdGlvbmFsIGFycm93cyB0byB0aGUgbW9kYWxcblx0XHRcdFx0aWYgKHRoaXMuX2NvbmZpZy5zaG93QXJyb3dzICYmIHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5hcHBlbmQoJzxkaXYgY2xhc3M9XCJla2tvLWxpZ2h0Ym94LW5hdi1vdmVybGF5XCI+PGEgaHJlZj1cIiNcIj4nICsgdGhpcy5fY29uZmlnLmxlZnRBcnJvdyArICc8L2E+PGEgaHJlZj1cIiNcIj4nICsgdGhpcy5fY29uZmlnLnJpZ2h0QXJyb3cgKyAnPC9hPjwvZGl2PicpO1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbEFycm93cyA9IHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5maW5kKCdkaXYuZWtrby1saWdodGJveC1uYXYtb3ZlcmxheScpLmZpcnN0KCk7XG5cdFx0XHRcdFx0dGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLm9uKCdjbGljaycsICdhOmZpcnN0LWNoaWxkJywgZnVuY3Rpb24gKGV2ZW50KSB7XG5cdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzLm5hdmlnYXRlTGVmdCgpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5vbignY2xpY2snLCAnYTpsYXN0LWNoaWxkJywgZnVuY3Rpb24gKGV2ZW50KSB7XG5cdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzLm5hdmlnYXRlUmlnaHQoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZU5hdmlnYXRpb24oKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLl8kbW9kYWwub24oJ3Nob3cuYnMubW9kYWwnLCB0aGlzLl9jb25maWcub25TaG93LmJpbmQodGhpcykpLm9uKCdzaG93bi5icy5tb2RhbCcsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0X3RoaXMuX3RvZ2dsZUxvYWRpbmcodHJ1ZSk7XG5cdFx0XHRcdF90aGlzLl9oYW5kbGUoKTtcblx0XHRcdFx0cmV0dXJuIF90aGlzLl9jb25maWcub25TaG93bi5jYWxsKF90aGlzKTtcblx0XHRcdH0pLm9uKCdoaWRlLmJzLm1vZGFsJywgdGhpcy5fY29uZmlnLm9uSGlkZS5iaW5kKHRoaXMpKS5vbignaGlkZGVuLmJzLm1vZGFsJywgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRpZiAoX3RoaXMuX2dhbGxlcnlOYW1lKSB7XG5cdFx0XHRcdFx0JChkb2N1bWVudCkub2ZmKCdrZXlkb3duLmVra29MaWdodGJveCcpO1xuXHRcdFx0XHRcdCQod2luZG93KS5vZmYoJ3Jlc2l6ZS5la2tvTGlnaHRib3gnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRfdGhpcy5fJG1vZGFsLnJlbW92ZSgpO1xuXHRcdFx0XHRyZXR1cm4gX3RoaXMuX2NvbmZpZy5vbkhpZGRlbi5jYWxsKF90aGlzKTtcblx0XHRcdH0pLm1vZGFsKHRoaXMuX2NvbmZpZyk7XG5cblx0XHRcdCQod2luZG93KS5vbigncmVzaXplLmVra29MaWdodGJveCcsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0X3RoaXMuX3Jlc2l6ZShfdGhpcy5fd2FudGVkV2lkdGgsIF90aGlzLl93YW50ZWRIZWlnaHQpO1xuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLl8kbGlnaHRib3hDb250YWluZXIub24oJ3RvdWNoc3RhcnQnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdF90aGlzLl90b3VjaHN0YXJ0WCA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnNjcmVlblg7XG5cdFx0XHR9KS5vbigndG91Y2hlbmQnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdF90aGlzLl90b3VjaGVuZFggPSBldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5zY3JlZW5YO1xuXHRcdFx0XHRfdGhpcy5fc3dpcGVHZXN1cmUoKTtcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdF9jcmVhdGVDbGFzcyhMaWdodGJveCwgW3tcblx0XHRcdGtleTogJ2VsZW1lbnQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIGVsZW1lbnQoKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLl8kZWxlbWVudDtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdtb2RhbCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gbW9kYWwoKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLl8kbW9kYWw7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnbmF2aWdhdGVUbycsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gbmF2aWdhdGVUbyhpbmRleCkge1xuXG5cdFx0XHRcdGlmIChpbmRleCA8IDAgfHwgaW5kZXggPiB0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCAtIDEpIHJldHVybiB0aGlzO1xuXG5cdFx0XHRcdHRoaXMuX2dhbGxlcnlJbmRleCA9IGluZGV4O1xuXG5cdFx0XHRcdHRoaXMudXBkYXRlTmF2aWdhdGlvbigpO1xuXG5cdFx0XHRcdHRoaXMuXyRlbGVtZW50ID0gJCh0aGlzLl8kZ2FsbGVyeUl0ZW1zLmdldCh0aGlzLl9nYWxsZXJ5SW5kZXgpKTtcblx0XHRcdFx0dGhpcy5faGFuZGxlKCk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnbmF2aWdhdGVMZWZ0Jyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBuYXZpZ2F0ZUxlZnQoKSB7XG5cblx0XHRcdFx0aWYgKCF0aGlzLl8kZ2FsbGVyeUl0ZW1zKSByZXR1cm47XG5cblx0XHRcdFx0aWYgKHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoID09PSAxKSByZXR1cm47XG5cblx0XHRcdFx0aWYgKHRoaXMuX2dhbGxlcnlJbmRleCA9PT0gMCkge1xuXHRcdFx0XHRcdGlmICh0aGlzLl9jb25maWcud3JhcHBpbmcpIHRoaXMuX2dhbGxlcnlJbmRleCA9IHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoIC0gMTtlbHNlIHJldHVybjtcblx0XHRcdFx0fSBlbHNlIC8vY2lyY3VsYXJcblx0XHRcdFx0XHR0aGlzLl9nYWxsZXJ5SW5kZXgtLTtcblxuXHRcdFx0XHR0aGlzLl9jb25maWcub25OYXZpZ2F0ZS5jYWxsKHRoaXMsICdsZWZ0JywgdGhpcy5fZ2FsbGVyeUluZGV4KTtcblx0XHRcdFx0cmV0dXJuIHRoaXMubmF2aWdhdGVUbyh0aGlzLl9nYWxsZXJ5SW5kZXgpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ25hdmlnYXRlUmlnaHQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIG5hdmlnYXRlUmlnaHQoKSB7XG5cblx0XHRcdFx0aWYgKCF0aGlzLl8kZ2FsbGVyeUl0ZW1zKSByZXR1cm47XG5cblx0XHRcdFx0aWYgKHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoID09PSAxKSByZXR1cm47XG5cblx0XHRcdFx0aWYgKHRoaXMuX2dhbGxlcnlJbmRleCA9PT0gdGhpcy5fJGdhbGxlcnlJdGVtcy5sZW5ndGggLSAxKSB7XG5cdFx0XHRcdFx0aWYgKHRoaXMuX2NvbmZpZy53cmFwcGluZykgdGhpcy5fZ2FsbGVyeUluZGV4ID0gMDtlbHNlIHJldHVybjtcblx0XHRcdFx0fSBlbHNlIC8vY2lyY3VsYXJcblx0XHRcdFx0XHR0aGlzLl9nYWxsZXJ5SW5kZXgrKztcblxuXHRcdFx0XHR0aGlzLl9jb25maWcub25OYXZpZ2F0ZS5jYWxsKHRoaXMsICdyaWdodCcsIHRoaXMuX2dhbGxlcnlJbmRleCk7XG5cdFx0XHRcdHJldHVybiB0aGlzLm5hdmlnYXRlVG8odGhpcy5fZ2FsbGVyeUluZGV4KTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICd1cGRhdGVOYXZpZ2F0aW9uJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiB1cGRhdGVOYXZpZ2F0aW9uKCkge1xuXHRcdFx0XHRpZiAoIXRoaXMuX2NvbmZpZy53cmFwcGluZykge1xuXHRcdFx0XHRcdHZhciAkbmF2ID0gdGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLmZpbmQoJ2Rpdi5la2tvLWxpZ2h0Ym94LW5hdi1vdmVybGF5Jyk7XG5cdFx0XHRcdFx0aWYgKHRoaXMuX2dhbGxlcnlJbmRleCA9PT0gMCkgJG5hdi5maW5kKCdhOmZpcnN0LWNoaWxkJykuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7ZWxzZSAkbmF2LmZpbmQoJ2E6Zmlyc3QtY2hpbGQnKS5yZW1vdmVDbGFzcygnZGlzYWJsZWQnKTtcblxuXHRcdFx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5SW5kZXggPT09IHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoIC0gMSkgJG5hdi5maW5kKCdhOmxhc3QtY2hpbGQnKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtlbHNlICRuYXYuZmluZCgnYTpsYXN0LWNoaWxkJykucmVtb3ZlQ2xhc3MoJ2Rpc2FibGVkJyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdjbG9zZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gY2xvc2UoKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLl8kbW9kYWwubW9kYWwoJ2hpZGUnKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gaGVscGVyIHByaXZhdGUgbWV0aG9kc1xuXHRcdH0sIHtcblx0XHRcdGtleTogJ19uYXZpZ2F0aW9uYWxCaW5kZXInLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9uYXZpZ2F0aW9uYWxCaW5kZXIoZXZlbnQpIHtcblx0XHRcdFx0ZXZlbnQgPSBldmVudCB8fCB3aW5kb3cuZXZlbnQ7XG5cdFx0XHRcdGlmIChldmVudC5rZXlDb2RlID09PSAzOSkgcmV0dXJuIHRoaXMubmF2aWdhdGVSaWdodCgpO1xuXHRcdFx0XHRpZiAoZXZlbnQua2V5Q29kZSA9PT0gMzcpIHJldHVybiB0aGlzLm5hdmlnYXRlTGVmdCgpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyB0eXBlIGRldGVjdGlvbiBwcml2YXRlIG1ldGhvZHNcblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfZGV0ZWN0UmVtb3RlVHlwZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2RldGVjdFJlbW90ZVR5cGUoc3JjLCB0eXBlKSB7XG5cblx0XHRcdFx0dHlwZSA9IHR5cGUgfHwgZmFsc2U7XG5cblx0XHRcdFx0aWYgKCF0eXBlICYmIHRoaXMuX2lzSW1hZ2Uoc3JjKSkgdHlwZSA9ICdpbWFnZSc7XG5cdFx0XHRcdGlmICghdHlwZSAmJiB0aGlzLl9nZXRZb3V0dWJlSWQoc3JjKSkgdHlwZSA9ICd5b3V0dWJlJztcblx0XHRcdFx0aWYgKCF0eXBlICYmIHRoaXMuX2dldFZpbWVvSWQoc3JjKSkgdHlwZSA9ICd2aW1lbyc7XG5cdFx0XHRcdGlmICghdHlwZSAmJiB0aGlzLl9nZXRJbnN0YWdyYW1JZChzcmMpKSB0eXBlID0gJ2luc3RhZ3JhbSc7XG5cblx0XHRcdFx0aWYgKCF0eXBlIHx8IFsnaW1hZ2UnLCAneW91dHViZScsICd2aW1lbycsICdpbnN0YWdyYW0nLCAndmlkZW8nLCAndXJsJ10uaW5kZXhPZih0eXBlKSA8IDApIHR5cGUgPSAndXJsJztcblxuXHRcdFx0XHRyZXR1cm4gdHlwZTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfaXNJbWFnZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2lzSW1hZ2Uoc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBzdHJpbmcgJiYgc3RyaW5nLm1hdGNoKC8oXmRhdGE6aW1hZ2VcXC8uKiwpfChcXC4oanAoZXxnfGVnKXxnaWZ8cG5nfGJtcHx3ZWJwfHN2ZykoKFxcP3wjKS4qKT8kKS9pKTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfY29udGFpbmVyVG9Vc2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9jb250YWluZXJUb1VzZSgpIHtcblx0XHRcdFx0dmFyIF90aGlzMiA9IHRoaXM7XG5cblx0XHRcdFx0Ly8gaWYgY3VycmVudGx5IHNob3dpbmcgYW4gaW1hZ2UsIGZhZGUgaXQgb3V0IGFuZCByZW1vdmVcblx0XHRcdFx0dmFyICR0b1VzZSA9IHRoaXMuXyRsaWdodGJveEJvZHlUd287XG5cdFx0XHRcdHZhciAkY3VycmVudCA9IHRoaXMuXyRsaWdodGJveEJvZHlPbmU7XG5cblx0XHRcdFx0aWYgKHRoaXMuXyRsaWdodGJveEJvZHlUd28uaGFzQ2xhc3MoJ2luJykpIHtcblx0XHRcdFx0XHQkdG9Vc2UgPSB0aGlzLl8kbGlnaHRib3hCb2R5T25lO1xuXHRcdFx0XHRcdCRjdXJyZW50ID0gdGhpcy5fJGxpZ2h0Ym94Qm9keVR3bztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCRjdXJyZW50LnJlbW92ZUNsYXNzKCdpbiBzaG93Jyk7XG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdGlmICghX3RoaXMyLl8kbGlnaHRib3hCb2R5VHdvLmhhc0NsYXNzKCdpbicpKSBfdGhpczIuXyRsaWdodGJveEJvZHlUd28uZW1wdHkoKTtcblx0XHRcdFx0XHRpZiAoIV90aGlzMi5fJGxpZ2h0Ym94Qm9keU9uZS5oYXNDbGFzcygnaW4nKSkgX3RoaXMyLl8kbGlnaHRib3hCb2R5T25lLmVtcHR5KCk7XG5cdFx0XHRcdH0sIDUwMCk7XG5cblx0XHRcdFx0JHRvVXNlLmFkZENsYXNzKCdpbiBzaG93Jyk7XG5cdFx0XHRcdHJldHVybiAkdG9Vc2U7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2hhbmRsZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2hhbmRsZSgpIHtcblxuXHRcdFx0XHR2YXIgJHRvVXNlID0gdGhpcy5fY29udGFpbmVyVG9Vc2UoKTtcblx0XHRcdFx0dGhpcy5fdXBkYXRlVGl0bGVBbmRGb290ZXIoKTtcblxuXHRcdFx0XHR2YXIgY3VycmVudFJlbW90ZSA9IHRoaXMuXyRlbGVtZW50LmF0dHIoJ2RhdGEtcmVtb3RlJykgfHwgdGhpcy5fJGVsZW1lbnQuYXR0cignaHJlZicpO1xuXHRcdFx0XHR2YXIgY3VycmVudFR5cGUgPSB0aGlzLl9kZXRlY3RSZW1vdGVUeXBlKGN1cnJlbnRSZW1vdGUsIHRoaXMuXyRlbGVtZW50LmF0dHIoJ2RhdGEtdHlwZScpIHx8IGZhbHNlKTtcblxuXHRcdFx0XHRpZiAoWydpbWFnZScsICd5b3V0dWJlJywgJ3ZpbWVvJywgJ2luc3RhZ3JhbScsICd2aWRlbycsICd1cmwnXS5pbmRleE9mKGN1cnJlbnRUeXBlKSA8IDApIHJldHVybiB0aGlzLl9lcnJvcih0aGlzLl9jb25maWcuc3RyaW5ncy50eXBlKTtcblxuXHRcdFx0XHRzd2l0Y2ggKGN1cnJlbnRUeXBlKSB7XG5cdFx0XHRcdFx0Y2FzZSAnaW1hZ2UnOlxuXHRcdFx0XHRcdFx0dGhpcy5fcHJlbG9hZEltYWdlKGN1cnJlbnRSZW1vdGUsICR0b1VzZSk7XG5cdFx0XHRcdFx0XHR0aGlzLl9wcmVsb2FkSW1hZ2VCeUluZGV4KHRoaXMuX2dhbGxlcnlJbmRleCwgMyk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICd5b3V0dWJlJzpcblx0XHRcdFx0XHRcdHRoaXMuX3Nob3dZb3V0dWJlVmlkZW8oY3VycmVudFJlbW90ZSwgJHRvVXNlKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJ3ZpbWVvJzpcblx0XHRcdFx0XHRcdHRoaXMuX3Nob3dWaW1lb1ZpZGVvKHRoaXMuX2dldFZpbWVvSWQoY3VycmVudFJlbW90ZSksICR0b1VzZSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICdpbnN0YWdyYW0nOlxuXHRcdFx0XHRcdFx0dGhpcy5fc2hvd0luc3RhZ3JhbVZpZGVvKHRoaXMuX2dldEluc3RhZ3JhbUlkKGN1cnJlbnRSZW1vdGUpLCAkdG9Vc2UpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAndmlkZW8nOlxuXHRcdFx0XHRcdFx0dGhpcy5fc2hvd0h0bWw1VmlkZW8oY3VycmVudFJlbW90ZSwgJHRvVXNlKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHQvLyB1cmxcblx0XHRcdFx0XHRcdHRoaXMuX2xvYWRSZW1vdGVDb250ZW50KGN1cnJlbnRSZW1vdGUsICR0b1VzZSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19nZXRZb3V0dWJlSWQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9nZXRZb3V0dWJlSWQoc3RyaW5nKSB7XG5cdFx0XHRcdGlmICghc3RyaW5nKSByZXR1cm4gZmFsc2U7XG5cdFx0XHRcdHZhciBtYXRjaGVzID0gc3RyaW5nLm1hdGNoKC9eLiooeW91dHUuYmVcXC98dlxcL3x1XFwvXFx3XFwvfGVtYmVkXFwvfHdhdGNoXFw/dj18XFwmdj0pKFteI1xcJlxcP10qKS4qLyk7XG5cdFx0XHRcdHJldHVybiBtYXRjaGVzICYmIG1hdGNoZXNbMl0ubGVuZ3RoID09PSAxMSA/IG1hdGNoZXNbMl0gOiBmYWxzZTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfZ2V0VmltZW9JZCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2dldFZpbWVvSWQoc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBzdHJpbmcgJiYgc3RyaW5nLmluZGV4T2YoJ3ZpbWVvJykgPiAwID8gc3RyaW5nIDogZmFsc2U7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2dldEluc3RhZ3JhbUlkJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfZ2V0SW5zdGFncmFtSWQoc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBzdHJpbmcgJiYgc3RyaW5nLmluZGV4T2YoJ2luc3RhZ3JhbScpID4gMCA/IHN0cmluZyA6IGZhbHNlO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBsYXlvdXQgcHJpdmF0ZSBtZXRob2RzXG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3RvZ2dsZUxvYWRpbmcnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF90b2dnbGVMb2FkaW5nKHNob3cpIHtcblx0XHRcdFx0c2hvdyA9IHNob3cgfHwgZmFsc2U7XG5cdFx0XHRcdGlmIChzaG93KSB7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsLnJlbW92ZUNsYXNzKCdpbiBzaG93Jyk7XG5cdFx0XHRcdFx0JCgnLm1vZGFsLWJhY2tkcm9wJykuYXBwZW5kKHRoaXMuX2NvbmZpZy5sb2FkaW5nTWVzc2FnZSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnZGlzcGxheScsICdibG9jaycpO1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbC5hZGRDbGFzcygnaW4gc2hvdycpO1xuXHRcdFx0XHRcdCQoJy5tb2RhbC1iYWNrZHJvcCcpLmZpbmQoJy5la2tvLWxpZ2h0Ym94LWxvYWRlcicpLnJlbW92ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19jYWxjdWxhdGVCb3JkZXJzJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfY2FsY3VsYXRlQm9yZGVycygpIHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHR0b3A6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ2JvcmRlci10b3Atd2lkdGgnKSxcblx0XHRcdFx0XHRyaWdodDogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgnYm9yZGVyLXJpZ2h0LXdpZHRoJyksXG5cdFx0XHRcdFx0Ym90dG9tOiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdib3JkZXItYm90dG9tLXdpZHRoJyksXG5cdFx0XHRcdFx0bGVmdDogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgnYm9yZGVyLWxlZnQtd2lkdGgnKVxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19jYWxjdWxhdGVQYWRkaW5nJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfY2FsY3VsYXRlUGFkZGluZygpIHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHR0b3A6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ3BhZGRpbmctdG9wJyksXG5cdFx0XHRcdFx0cmlnaHQ6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ3BhZGRpbmctcmlnaHQnKSxcblx0XHRcdFx0XHRib3R0b206IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ3BhZGRpbmctYm90dG9tJyksXG5cdFx0XHRcdFx0bGVmdDogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgncGFkZGluZy1sZWZ0Jylcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfdG90YWxDc3NCeUF0dHJpYnV0ZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoYXR0cmlidXRlKSB7XG5cdFx0XHRcdHJldHVybiBwYXJzZUludCh0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKGF0dHJpYnV0ZSksIDEwKSArIHBhcnNlSW50KHRoaXMuXyRtb2RhbENvbnRlbnQuY3NzKGF0dHJpYnV0ZSksIDEwKSArIHBhcnNlSW50KHRoaXMuXyRtb2RhbEJvZHkuY3NzKGF0dHJpYnV0ZSksIDEwKTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfdXBkYXRlVGl0bGVBbmRGb290ZXInLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF91cGRhdGVUaXRsZUFuZEZvb3RlcigpIHtcblx0XHRcdFx0dmFyIHRpdGxlID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgndGl0bGUnKSB8fCBcIlwiO1xuXHRcdFx0XHR2YXIgY2FwdGlvbiA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2Zvb3RlcicpIHx8IFwiXCI7XG5cblx0XHRcdFx0dGhpcy5fdGl0bGVJc1Nob3duID0gZmFsc2U7XG5cdFx0XHRcdGlmICh0aXRsZSB8fCB0aGlzLl9jb25maWcuYWx3YXlzU2hvd0Nsb3NlKSB7XG5cdFx0XHRcdFx0dGhpcy5fdGl0bGVJc1Nob3duID0gdHJ1ZTtcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxIZWFkZXIuY3NzKCdkaXNwbGF5JywgJycpLmZpbmQoJy5tb2RhbC10aXRsZScpLmh0bWwodGl0bGUgfHwgXCImbmJzcDtcIik7XG5cdFx0XHRcdH0gZWxzZSB0aGlzLl8kbW9kYWxIZWFkZXIuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblxuXHRcdFx0XHR0aGlzLl9mb290ZXJJc1Nob3duID0gZmFsc2U7XG5cdFx0XHRcdGlmIChjYXB0aW9uKSB7XG5cdFx0XHRcdFx0dGhpcy5fZm9vdGVySXNTaG93biA9IHRydWU7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsRm9vdGVyLmNzcygnZGlzcGxheScsICcnKS5odG1sKGNhcHRpb24pO1xuXHRcdFx0XHR9IGVsc2UgdGhpcy5fJG1vZGFsRm9vdGVyLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Nob3dZb3V0dWJlVmlkZW8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93WW91dHViZVZpZGVvKHJlbW90ZSwgJGNvbnRhaW5lckZvckVsZW1lbnQpIHtcblx0XHRcdFx0dmFyIGlkID0gdGhpcy5fZ2V0WW91dHViZUlkKHJlbW90ZSk7XG5cdFx0XHRcdHZhciBxdWVyeSA9IHJlbW90ZS5pbmRleE9mKCcmJykgPiAwID8gcmVtb3RlLnN1YnN0cihyZW1vdGUuaW5kZXhPZignJicpKSA6ICcnO1xuXHRcdFx0XHR2YXIgd2lkdGggPSB0aGlzLl8kZWxlbWVudC5kYXRhKCd3aWR0aCcpIHx8IDU2MDtcblx0XHRcdFx0dmFyIGhlaWdodCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2hlaWdodCcpIHx8IHdpZHRoIC8gKDU2MCAvIDMxNSk7XG5cdFx0XHRcdHJldHVybiB0aGlzLl9zaG93VmlkZW9JZnJhbWUoJy8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLycgKyBpZCArICc/YmFkZ2U9MCZhdXRvcGxheT0xJmh0bWw1PTEnICsgcXVlcnksIHdpZHRoLCBoZWlnaHQsICRjb250YWluZXJGb3JFbGVtZW50KTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc2hvd1ZpbWVvVmlkZW8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93VmltZW9WaWRlbyhpZCwgJGNvbnRhaW5lckZvckVsZW1lbnQpIHtcblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA1MDA7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdoZWlnaHQnKSB8fCB3aWR0aCAvICg1NjAgLyAzMTUpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fc2hvd1ZpZGVvSWZyYW1lKGlkICsgJz9hdXRvcGxheT0xJywgd2lkdGgsIGhlaWdodCwgJGNvbnRhaW5lckZvckVsZW1lbnQpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19zaG93SW5zdGFncmFtVmlkZW8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93SW5zdGFncmFtVmlkZW8oaWQsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdC8vIGluc3RhZ3JhbSBsb2FkIHRoZWlyIGNvbnRlbnQgaW50byBpZnJhbWUncyBzbyB0aGlzIGNhbiBiZSBwdXQgc3RyYWlnaHQgaW50byB0aGUgZWxlbWVudFxuXHRcdFx0XHR2YXIgd2lkdGggPSB0aGlzLl8kZWxlbWVudC5kYXRhKCd3aWR0aCcpIHx8IDYxMjtcblx0XHRcdFx0dmFyIGhlaWdodCA9IHdpZHRoICsgODA7XG5cdFx0XHRcdGlkID0gaWQuc3Vic3RyKC0xKSAhPT0gJy8nID8gaWQgKyAnLycgOiBpZDsgLy8gZW5zdXJlIGlkIGhhcyB0cmFpbGluZyBzbGFzaFxuXHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5odG1sKCc8aWZyYW1lIHdpZHRoPVwiJyArIHdpZHRoICsgJ1wiIGhlaWdodD1cIicgKyBoZWlnaHQgKyAnXCIgc3JjPVwiJyArIGlkICsgJ2VtYmVkL1wiIGZyYW1lYm9yZGVyPVwiMFwiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4nKTtcblx0XHRcdFx0dGhpcy5fcmVzaXplKHdpZHRoLCBoZWlnaHQpO1xuXHRcdFx0XHR0aGlzLl9jb25maWcub25Db250ZW50TG9hZGVkLmNhbGwodGhpcyk7XG5cdFx0XHRcdGlmICh0aGlzLl8kbW9kYWxBcnJvd3MpIC8vaGlkZSB0aGUgYXJyb3dzIHdoZW4gc2hvd2luZyB2aWRlb1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbEFycm93cy5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuXHRcdFx0XHR0aGlzLl90b2dnbGVMb2FkaW5nKGZhbHNlKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Nob3dWaWRlb0lmcmFtZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3Nob3dWaWRlb0lmcmFtZSh1cmwsIHdpZHRoLCBoZWlnaHQsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdC8vIHNob3VsZCBiZSB1c2VkIGZvciB2aWRlb3Mgb25seS4gZm9yIHJlbW90ZSBjb250ZW50IHVzZSBsb2FkUmVtb3RlQ29udGVudCAoZGF0YS10eXBlPXVybClcblx0XHRcdFx0aGVpZ2h0ID0gaGVpZ2h0IHx8IHdpZHRoOyAvLyBkZWZhdWx0IHRvIHNxdWFyZVxuXHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5odG1sKCc8ZGl2IGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZSBlbWJlZC1yZXNwb25zaXZlLTE2Ynk5XCI+PGlmcmFtZSB3aWR0aD1cIicgKyB3aWR0aCArICdcIiBoZWlnaHQ9XCInICsgaGVpZ2h0ICsgJ1wiIHNyYz1cIicgKyB1cmwgKyAnXCIgZnJhbWVib3JkZXI9XCIwXCIgYWxsb3dmdWxsc2NyZWVuIGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZS1pdGVtXCI+PC9pZnJhbWU+PC9kaXY+Jyk7XG5cdFx0XHRcdHRoaXMuX3Jlc2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblx0XHRcdFx0dGhpcy5fY29uZmlnLm9uQ29udGVudExvYWRlZC5jYWxsKHRoaXMpO1xuXHRcdFx0XHRpZiAodGhpcy5fJG1vZGFsQXJyb3dzKSB0aGlzLl8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsgLy9oaWRlIHRoZSBhcnJvd3Mgd2hlbiBzaG93aW5nIHZpZGVvXG5cdFx0XHRcdHRoaXMuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc2hvd0h0bWw1VmlkZW8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93SHRtbDVWaWRlbyh1cmwsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdC8vIHNob3VsZCBiZSB1c2VkIGZvciB2aWRlb3Mgb25seS4gZm9yIHJlbW90ZSBjb250ZW50IHVzZSBsb2FkUmVtb3RlQ29udGVudCAoZGF0YS10eXBlPXVybClcblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA1NjA7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdoZWlnaHQnKSB8fCB3aWR0aCAvICg1NjAgLyAzMTUpO1xuXHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5odG1sKCc8ZGl2IGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZSBlbWJlZC1yZXNwb25zaXZlLTE2Ynk5XCI+PHZpZGVvIHdpZHRoPVwiJyArIHdpZHRoICsgJ1wiIGhlaWdodD1cIicgKyBoZWlnaHQgKyAnXCIgc3JjPVwiJyArIHVybCArICdcIiBwcmVsb2FkPVwiYXV0b1wiIGF1dG9wbGF5IGNvbnRyb2xzIGNsYXNzPVwiZW1iZWQtcmVzcG9uc2l2ZS1pdGVtXCI+PC92aWRlbz48L2Rpdj4nKTtcblx0XHRcdFx0dGhpcy5fcmVzaXplKHdpZHRoLCBoZWlnaHQpO1xuXHRcdFx0XHR0aGlzLl9jb25maWcub25Db250ZW50TG9hZGVkLmNhbGwodGhpcyk7XG5cdFx0XHRcdGlmICh0aGlzLl8kbW9kYWxBcnJvd3MpIHRoaXMuXyRtb2RhbEFycm93cy5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpOyAvL2hpZGUgdGhlIGFycm93cyB3aGVuIHNob3dpbmcgdmlkZW9cblx0XHRcdFx0dGhpcy5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19sb2FkUmVtb3RlQ29udGVudCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2xvYWRSZW1vdGVDb250ZW50KHVybCwgJGNvbnRhaW5lckZvckVsZW1lbnQpIHtcblx0XHRcdFx0dmFyIF90aGlzMyA9IHRoaXM7XG5cblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA1NjA7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdoZWlnaHQnKSB8fCA1NjA7XG5cblx0XHRcdFx0dmFyIGRpc2FibGVFeHRlcm5hbENoZWNrID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnZGlzYWJsZUV4dGVybmFsQ2hlY2snKSB8fCBmYWxzZTtcblx0XHRcdFx0dGhpcy5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cblx0XHRcdFx0Ly8gZXh0ZXJuYWwgdXJscyBhcmUgbG9hZGluZyBpbnRvIGFuIGlmcmFtZVxuXHRcdFx0XHQvLyBsb2NhbCBhamF4IGNhbiBiZSBsb2FkZWQgaW50byB0aGUgY29udGFpbmVyIGl0c2VsZlxuXHRcdFx0XHRpZiAoIWRpc2FibGVFeHRlcm5hbENoZWNrICYmICF0aGlzLl9pc0V4dGVybmFsKHVybCkpIHtcblx0XHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5sb2FkKHVybCwgJC5wcm94eShmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gX3RoaXMzLl8kZWxlbWVudC50cmlnZ2VyKCdsb2FkZWQuYnMubW9kYWwnKTtsO1xuXHRcdFx0XHRcdH0pKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQkY29udGFpbmVyRm9yRWxlbWVudC5odG1sKCc8aWZyYW1lIHNyYz1cIicgKyB1cmwgKyAnXCIgZnJhbWVib3JkZXI9XCIwXCIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPicpO1xuXHRcdFx0XHRcdHRoaXMuX2NvbmZpZy5vbkNvbnRlbnRMb2FkZWQuY2FsbCh0aGlzKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICh0aGlzLl8kbW9kYWxBcnJvd3MpIC8vaGlkZSB0aGUgYXJyb3dzIHdoZW4gcmVtb3RlIGNvbnRlbnRcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblxuXHRcdFx0XHR0aGlzLl9yZXNpemUod2lkdGgsIGhlaWdodCk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19pc0V4dGVybmFsJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfaXNFeHRlcm5hbCh1cmwpIHtcblx0XHRcdFx0dmFyIG1hdGNoID0gdXJsLm1hdGNoKC9eKFteOlxcLz8jXSs6KT8oPzpcXC9cXC8oW15cXC8/I10qKSk/KFtePyNdKyk/KFxcP1teI10qKT8oIy4qKT8vKTtcblx0XHRcdFx0aWYgKHR5cGVvZiBtYXRjaFsxXSA9PT0gXCJzdHJpbmdcIiAmJiBtYXRjaFsxXS5sZW5ndGggPiAwICYmIG1hdGNoWzFdLnRvTG93ZXJDYXNlKCkgIT09IGxvY2F0aW9uLnByb3RvY29sKSByZXR1cm4gdHJ1ZTtcblxuXHRcdFx0XHRpZiAodHlwZW9mIG1hdGNoWzJdID09PSBcInN0cmluZ1wiICYmIG1hdGNoWzJdLmxlbmd0aCA+IDAgJiYgbWF0Y2hbMl0ucmVwbGFjZShuZXcgUmVnRXhwKCc6KCcgKyAoe1xuXHRcdFx0XHRcdFwiaHR0cDpcIjogODAsXG5cdFx0XHRcdFx0XCJodHRwczpcIjogNDQzXG5cdFx0XHRcdH0pW2xvY2F0aW9uLnByb3RvY29sXSArICcpPyQnKSwgXCJcIikgIT09IGxvY2F0aW9uLmhvc3QpIHJldHVybiB0cnVlO1xuXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfZXJyb3InLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9lcnJvcihtZXNzYWdlKSB7XG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG5cdFx0XHRcdHRoaXMuX2NvbnRhaW5lclRvVXNlKCkuaHRtbChtZXNzYWdlKTtcblx0XHRcdFx0dGhpcy5fcmVzaXplKDMwMCwgMzAwKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3ByZWxvYWRJbWFnZUJ5SW5kZXgnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9wcmVsb2FkSW1hZ2VCeUluZGV4KHN0YXJ0SW5kZXgsIG51bWJlck9mVGltZXMpIHtcblxuXHRcdFx0XHRpZiAoIXRoaXMuXyRnYWxsZXJ5SXRlbXMpIHJldHVybjtcblxuXHRcdFx0XHR2YXIgbmV4dCA9ICQodGhpcy5fJGdhbGxlcnlJdGVtcy5nZXQoc3RhcnRJbmRleCksIGZhbHNlKTtcblx0XHRcdFx0aWYgKHR5cGVvZiBuZXh0ID09ICd1bmRlZmluZWQnKSByZXR1cm47XG5cblx0XHRcdFx0dmFyIHNyYyA9IG5leHQuYXR0cignZGF0YS1yZW1vdGUnKSB8fCBuZXh0LmF0dHIoJ2hyZWYnKTtcblx0XHRcdFx0aWYgKG5leHQuYXR0cignZGF0YS10eXBlJykgPT09ICdpbWFnZScgfHwgdGhpcy5faXNJbWFnZShzcmMpKSB0aGlzLl9wcmVsb2FkSW1hZ2Uoc3JjLCBmYWxzZSk7XG5cblx0XHRcdFx0aWYgKG51bWJlck9mVGltZXMgPiAwKSByZXR1cm4gdGhpcy5fcHJlbG9hZEltYWdlQnlJbmRleChzdGFydEluZGV4ICsgMSwgbnVtYmVyT2ZUaW1lcyAtIDEpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19wcmVsb2FkSW1hZ2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9wcmVsb2FkSW1hZ2Uoc3JjLCAkY29udGFpbmVyRm9ySW1hZ2UpIHtcblx0XHRcdFx0dmFyIF90aGlzNCA9IHRoaXM7XG5cblx0XHRcdFx0JGNvbnRhaW5lckZvckltYWdlID0gJGNvbnRhaW5lckZvckltYWdlIHx8IGZhbHNlO1xuXG5cdFx0XHRcdHZhciBpbWcgPSBuZXcgSW1hZ2UoKTtcblx0XHRcdFx0aWYgKCRjb250YWluZXJGb3JJbWFnZSkge1xuXHRcdFx0XHRcdChmdW5jdGlvbiAoKSB7XG5cblx0XHRcdFx0XHRcdC8vIGlmIGxvYWRpbmcgdGFrZXMgPiAyMDBtcyBzaG93IGEgbG9hZGVyXG5cdFx0XHRcdFx0XHR2YXIgbG9hZGluZ1RpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0JGNvbnRhaW5lckZvckltYWdlLmFwcGVuZChfdGhpczQuX2NvbmZpZy5sb2FkaW5nTWVzc2FnZSk7XG5cdFx0XHRcdFx0XHR9LCAyMDApO1xuXG5cdFx0XHRcdFx0XHRpbWcub25sb2FkID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRpZiAobG9hZGluZ1RpbWVvdXQpIGNsZWFyVGltZW91dChsb2FkaW5nVGltZW91dCk7XG5cdFx0XHRcdFx0XHRcdGxvYWRpbmdUaW1lb3V0ID0gbnVsbDtcblx0XHRcdFx0XHRcdFx0dmFyIGltYWdlID0gJCgnPGltZyAvPicpO1xuXHRcdFx0XHRcdFx0XHRpbWFnZS5hdHRyKCdzcmMnLCBpbWcuc3JjKTtcblx0XHRcdFx0XHRcdFx0aW1hZ2UuYWRkQ2xhc3MoJ2ltZy1mbHVpZCcpO1xuXG5cdFx0XHRcdFx0XHRcdC8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIGJvb3RzdHJhcCB2M1xuXHRcdFx0XHRcdFx0XHRpbWFnZS5jc3MoJ3dpZHRoJywgJzEwMCUnKTtcblxuXHRcdFx0XHRcdFx0XHQkY29udGFpbmVyRm9ySW1hZ2UuaHRtbChpbWFnZSk7XG5cdFx0XHRcdFx0XHRcdGlmIChfdGhpczQuXyRtb2RhbEFycm93cykgX3RoaXM0Ll8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJycpOyAvLyByZW1vdmUgZGlzcGxheSB0byBkZWZhdWx0IHRvIGNzcyBwcm9wZXJ0eVxuXG5cdFx0XHRcdFx0XHRcdF90aGlzNC5fcmVzaXplKGltZy53aWR0aCwgaW1nLmhlaWdodCk7XG5cdFx0XHRcdFx0XHRcdF90aGlzNC5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBfdGhpczQuX2NvbmZpZy5vbkNvbnRlbnRMb2FkZWQuY2FsbChfdGhpczQpO1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdGltZy5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRfdGhpczQuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gX3RoaXM0Ll9lcnJvcihfdGhpczQuX2NvbmZpZy5zdHJpbmdzLmZhaWwgKyAoJyAgJyArIHNyYykpO1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9KSgpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aW1nLnNyYyA9IHNyYztcblx0XHRcdFx0cmV0dXJuIGltZztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc3dpcGVHZXN1cmUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zd2lwZUdlc3VyZSgpIHtcblx0XHRcdFx0aWYgKHRoaXMuX3RvdWNoZW5kWCA8IHRoaXMuX3RvdWNoc3RhcnRYKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMubmF2aWdhdGVSaWdodCgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLl90b3VjaGVuZFggPiB0aGlzLl90b3VjaHN0YXJ0WCkge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLm5hdmlnYXRlTGVmdCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Jlc2l6ZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3Jlc2l6ZSh3aWR0aCwgaGVpZ2h0KSB7XG5cblx0XHRcdFx0aGVpZ2h0ID0gaGVpZ2h0IHx8IHdpZHRoO1xuXHRcdFx0XHR0aGlzLl93YW50ZWRXaWR0aCA9IHdpZHRoO1xuXHRcdFx0XHR0aGlzLl93YW50ZWRIZWlnaHQgPSBoZWlnaHQ7XG5cblx0XHRcdFx0dmFyIGltYWdlQXNwZWNSYXRpbyA9IHdpZHRoIC8gaGVpZ2h0O1xuXG5cdFx0XHRcdC8vIGlmIHdpZHRoID4gdGhlIGF2YWlsYWJsZSBzcGFjZSwgc2NhbGUgZG93biB0aGUgZXhwZWN0ZWQgd2lkdGggYW5kIGhlaWdodFxuXHRcdFx0XHR2YXIgd2lkdGhCb3JkZXJBbmRQYWRkaW5nID0gdGhpcy5fcGFkZGluZy5sZWZ0ICsgdGhpcy5fcGFkZGluZy5yaWdodCArIHRoaXMuX2JvcmRlci5sZWZ0ICsgdGhpcy5fYm9yZGVyLnJpZ2h0O1xuXG5cdFx0XHRcdC8vIGZvcmNlIDEwcHggbWFyZ2luIGlmIHdpbmRvdyBzaXplID4gNTc1cHhcblx0XHRcdFx0dmFyIGFkZE1hcmdpbiA9IHRoaXMuX2NvbmZpZy5kb2MuYm9keS5jbGllbnRXaWR0aCA+IDU3NSA/IDIwIDogMDtcblx0XHRcdFx0dmFyIGRpc2NvdW50TWFyZ2luID0gdGhpcy5fY29uZmlnLmRvYy5ib2R5LmNsaWVudFdpZHRoID4gNTc1ID8gMCA6IDIwO1xuXG5cdFx0XHRcdHZhciBtYXhXaWR0aCA9IE1hdGgubWluKHdpZHRoICsgd2lkdGhCb3JkZXJBbmRQYWRkaW5nLCB0aGlzLl9jb25maWcuZG9jLmJvZHkuY2xpZW50V2lkdGggLSBhZGRNYXJnaW4sIHRoaXMuX2NvbmZpZy5tYXhXaWR0aCk7XG5cblx0XHRcdFx0aWYgKHdpZHRoICsgd2lkdGhCb3JkZXJBbmRQYWRkaW5nID4gbWF4V2lkdGgpIHtcblx0XHRcdFx0XHRoZWlnaHQgPSAobWF4V2lkdGggLSB3aWR0aEJvcmRlckFuZFBhZGRpbmcgLSBkaXNjb3VudE1hcmdpbikgLyBpbWFnZUFzcGVjUmF0aW87XG5cdFx0XHRcdFx0d2lkdGggPSBtYXhXaWR0aDtcblx0XHRcdFx0fSBlbHNlIHdpZHRoID0gd2lkdGggKyB3aWR0aEJvcmRlckFuZFBhZGRpbmc7XG5cblx0XHRcdFx0dmFyIGhlYWRlckhlaWdodCA9IDAsXG5cdFx0XHRcdCAgICBmb290ZXJIZWlnaHQgPSAwO1xuXG5cdFx0XHRcdC8vIGFzIHRoZSByZXNpemUgaXMgcGVyZm9ybWVkIHRoZSBtb2RhbCBpcyBzaG93LCB0aGUgY2FsY3VsYXRlIG1pZ2h0IGZhaWxcblx0XHRcdFx0Ly8gaWYgc28sIGRlZmF1bHQgdG8gdGhlIGRlZmF1bHQgc2l6ZXNcblx0XHRcdFx0aWYgKHRoaXMuX2Zvb3RlcklzU2hvd24pIGZvb3RlckhlaWdodCA9IHRoaXMuXyRtb2RhbEZvb3Rlci5vdXRlckhlaWdodCh0cnVlKSB8fCA1NTtcblxuXHRcdFx0XHRpZiAodGhpcy5fdGl0bGVJc1Nob3duKSBoZWFkZXJIZWlnaHQgPSB0aGlzLl8kbW9kYWxIZWFkZXIub3V0ZXJIZWlnaHQodHJ1ZSkgfHwgNjc7XG5cblx0XHRcdFx0dmFyIGJvcmRlclBhZGRpbmcgPSB0aGlzLl9wYWRkaW5nLnRvcCArIHRoaXMuX3BhZGRpbmcuYm90dG9tICsgdGhpcy5fYm9yZGVyLmJvdHRvbSArIHRoaXMuX2JvcmRlci50b3A7XG5cblx0XHRcdFx0Ly9jYWxjdWxhdGVkIGVhY2ggdGltZSBhcyByZXNpemluZyB0aGUgd2luZG93IGNhbiBjYXVzZSB0aGVtIHRvIGNoYW5nZSBkdWUgdG8gQm9vdHN0cmFwcyBmbHVpZCBtYXJnaW5zXG5cdFx0XHRcdHZhciBtYXJnaW5zID0gcGFyc2VGbG9hdCh0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKCdtYXJnaW4tdG9wJykpICsgcGFyc2VGbG9hdCh0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKCdtYXJnaW4tYm90dG9tJykpO1xuXG5cdFx0XHRcdHZhciBtYXhIZWlnaHQgPSBNYXRoLm1pbihoZWlnaHQsICQod2luZG93KS5oZWlnaHQoKSAtIGJvcmRlclBhZGRpbmcgLSBtYXJnaW5zIC0gaGVhZGVySGVpZ2h0IC0gZm9vdGVySGVpZ2h0LCB0aGlzLl9jb25maWcubWF4SGVpZ2h0IC0gYm9yZGVyUGFkZGluZyAtIGhlYWRlckhlaWdodCAtIGZvb3RlckhlaWdodCk7XG5cblx0XHRcdFx0aWYgKGhlaWdodCA+IG1heEhlaWdodCkge1xuXHRcdFx0XHRcdC8vIGlmIGhlaWdodCA+IHRoZSBhdmFpbGFibGUgaGVpZ2h0LCBzY2FsZSBkb3duIHRoZSB3aWR0aFxuXHRcdFx0XHRcdHdpZHRoID0gTWF0aC5jZWlsKG1heEhlaWdodCAqIGltYWdlQXNwZWNSYXRpbykgKyB3aWR0aEJvcmRlckFuZFBhZGRpbmc7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0aGlzLl8kbGlnaHRib3hDb250YWluZXIuY3NzKCdoZWlnaHQnLCBtYXhIZWlnaHQpO1xuXHRcdFx0XHR0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKCdmbGV4JywgMSkuY3NzKCdtYXhXaWR0aCcsIHdpZHRoKTtcblxuXHRcdFx0XHR2YXIgbW9kYWwgPSB0aGlzLl8kbW9kYWwuZGF0YSgnYnMubW9kYWwnKTtcblx0XHRcdFx0aWYgKG1vZGFsKSB7XG5cdFx0XHRcdFx0Ly8gdjQgbWV0aG9kIGlzIG1pc3Rha2VubHkgcHJvdGVjdGVkXG5cdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdG1vZGFsLl9oYW5kbGVVcGRhdGUoKTtcblx0XHRcdFx0XHR9IGNhdGNoIChFeGNlcHRpb24pIHtcblx0XHRcdFx0XHRcdG1vZGFsLmhhbmRsZVVwZGF0ZSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9XSwgW3tcblx0XHRcdGtleTogJ19qUXVlcnlJbnRlcmZhY2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9qUXVlcnlJbnRlcmZhY2UoY29uZmlnKSB7XG5cdFx0XHRcdHZhciBfdGhpczUgPSB0aGlzO1xuXG5cdFx0XHRcdGNvbmZpZyA9IGNvbmZpZyB8fCB7fTtcblx0XHRcdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0dmFyICR0aGlzID0gJChfdGhpczUpO1xuXHRcdFx0XHRcdHZhciBfY29uZmlnID0gJC5leHRlbmQoe30sIExpZ2h0Ym94LkRlZmF1bHQsICR0aGlzLmRhdGEoKSwgdHlwZW9mIGNvbmZpZyA9PT0gJ29iamVjdCcgJiYgY29uZmlnKTtcblxuXHRcdFx0XHRcdG5ldyBMaWdodGJveChfdGhpczUsIF9jb25maWcpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XSk7XG5cblx0XHRyZXR1cm4gTGlnaHRib3g7XG5cdH0pKCk7XG5cblx0JC5mbltOQU1FXSA9IExpZ2h0Ym94Ll9qUXVlcnlJbnRlcmZhY2U7XG5cdCQuZm5bTkFNRV0uQ29uc3RydWN0b3IgPSBMaWdodGJveDtcblx0JC5mbltOQU1FXS5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKCkge1xuXHRcdCQuZm5bTkFNRV0gPSBKUVVFUllfTk9fQ09ORkxJQ1Q7XG5cdFx0cmV0dXJuIExpZ2h0Ym94Ll9qUXVlcnlJbnRlcmZhY2U7XG5cdH07XG5cblx0cmV0dXJuIExpZ2h0Ym94O1xufSkoalF1ZXJ5KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVra28tbGlnaHRib3guanMubWFwXG5cbn0oalF1ZXJ5KTtcbiIsIiIsIlxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7XG5cdHZhciBwcmV2aW91cyA9IFwiIFwiO1xuICAgICQoXCIjaW1hZ2VfZ2FsbGVyeVwiKS5jbGljayhmdW5jdGlvbihldmVudCkge1xuICAgICAgICB2YXIgaWRfbmFtZSA9IGV2ZW50LnRhcmdldC5pZDtcbiAgICAgICAgaWRfbmFtZSA9IGlkX25hbWUucmVwbGFjZSgvWzAtOV0vZywgJycpOyAvL3JlZ2V4IGZvciBhbHBoYWJldHMsIG5vIG51bWJlcnNcbiAgICAgICAgdmFyIGlkX3RvZ2dsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkX25hbWUpOyAvL2dldCBJRCBvZiBuYW1lcyB1bmRlciBjbGFzcyBcInRlYW0tYmlvXCJcbiAgICAgICAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRfbmFtZSkpeyAvL2lmIElEIGV4aXN0c1xuXHRcdFx0aWYoKHByZXZpb3VzICE9IGlkX25hbWUpICYmIChwcmV2aW91cyAhPSBcIiBcIikpeyAvL2lmIHlvdSBjbGljayBhIGRpZmYgaW1hZ2Vcblx0XHRcdFx0dmFyIGlkX3ByZXZpb3VzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlvdXMpO1xuXHRcdFx0XHQkKGlkX3ByZXZpb3VzKS50b2dnbGUoXCJoaWRkZW5cIik7XG5cdFx0XHRcdGNvbnNvbGUubG9nKGlkX3ByZXZpb3VzKTtcblxuXHRcdFx0fVxuXHRcdFx0ZWxzZSBpZihwcmV2aW91cyA9PSBpZF9uYW1lKXsgLy9jbGlja2luZyBvbiB0aGUgc2FtZSBpbWFnZVxuXHRcdFx0XHQkKGlkX3RvZ2dsZSkudG9nZ2xlKFwidW5oaWRkZW5cIik7XG5cdFx0XHR9XG5cdFx0XHQkKGlkX3RvZ2dsZSkudG9nZ2xlKFwidW5oaWRkZW5cIik7IC8vdG9nZ2xlcyB0eHRib3ggdG8gYXBwZWFyXG4gICAgICAgIFx0IHByZXZpb3VzID0gaWRfbmFtZTsvL2NoZWNrcyB0byBzZWUgaWYgeW91IGNsaWNrZWQgZGlmZmVyZW50IGltYWdlc1xuICAgICAgICB9XG4gICAgICAgIGVsc2V7XG4gICAgICAgIFx0YWxlcnQoXCJUaGlzIHBlcnNvbiBkb2VzIG5vdCBleGlzdC4gVHJ5IGFnYWluLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB9XG4gICAgKTtcbn0pOyIsIihmdW5jdGlvbigkKSB7XHJcblxyXG4gICAgJC5mbi52aXNpYmxlID0gZnVuY3Rpb24oKSB7XHJcblxyXG4gICAgICAgIHZhciAkdCAgICAgICAgICAgID0gJCh0aGlzKSxcclxuICAgICAgICAgICAgJHcgICAgICAgICAgICA9ICQod2luZG93KSxcclxuICAgICAgICAgICAgd2luZG93SGVpZ2h0ICA9IHdpbmRvdy5pbm5lckhlaWdodCxcclxuICAgICAgICAgICAgd2luZG93VG9wICAgICA9ICR3LnNjcm9sbFRvcCgpLFxyXG4gICAgICAgICAgICB3aW5kb3dCb3R0b20gID0gd2luZG93VG9wICsgd2luZG93SGVpZ2h0LFxyXG4gICAgICAgICAgICBfaGVpZ2h0ICAgICAgID0gJHQub3V0ZXJIZWlnaHQoKSxcclxuICAgICAgICAgICAgX3RvcCAgICAgICAgICA9ICR0Lm9mZnNldCgpLnRvcCxcclxuICAgICAgICAgICAgX2JvdHRvbSAgICAgICA9IF90b3AgKyBfaGVpZ2h0O1xyXG5cclxuICAgICAgICByZXR1cm4gKChfYm90dG9tID49IHdpbmRvd1RvcCkgJiYgKF90b3AgPD0gd2luZG93Qm90dG9tKSk7XHJcbiAgICB9O1xyXG5cclxufSkoalF1ZXJ5KTtcclxuXHJcbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcclxuXHJcblxyXG4gICAgaWYgKCQoXCIuc3ViLXBhZ2VcIikuaXMoXCI6dmlzaWJsZVwiKSA9PT0gZmFsc2Upe1xyXG4gICAgICAgICQoXCIubmF2YmFyXCIpLmFkZENsYXNzKFwiaW52aXNpYmxlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgICQod2luZG93KS5vbihcInNjcm9sbFwiLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKCQod2luZG93KS5zY3JvbGxUb3AoKSA+PSAxMDAgJiYgISQoXCIubmF2YmFyXCIpLmhhc0NsYXNzKFwiZml4ZWRcIikpIHtcclxuICAgICAgICAgICAgJChcIi5uYXZiYXJcIikuYWRkQ2xhc3MoXCJmaXhlZFwiKS5hZGRDbGFzcyhcImZpeGVkLXRvcFwiKS5hbmltYXRlKHtcclxuICAgICAgICAgICAgICAgIHRvcDogMTUsXHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxXHJcbiAgICAgICAgICAgIH0sIDEwMDApO1xyXG5cclxuICAgICAgICAgICAgaWYgKCQoXCIuc3ViLXBhZ2VcIikuaXMoXCI6dmlzaWJsZVwiKSA9PT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgJChcIi5uYXZiYXJcIikucmVtb3ZlQ2xhc3MoXCJpbnZpc2libGVcIik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSBlbHNlIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPD0gNTApIHtcclxuICAgICAgICAgICAgJChcIi5uYXZiYXJcIikuY3NzKFwidG9wXCIsIFwiXCIpLnJlbW92ZUNsYXNzKFwiZml4ZWRcIikucmVtb3ZlQ2xhc3MoXCJmaXhlZC10b3BcIik7XHJcblxyXG4gICAgICAgICAgICBpZiAoJChcIi5zdWItcGFnZVwiKS5pcyhcIjp2aXNpYmxlXCIpID09PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkludmlzaWJsZVwiKTtcclxuICAgICAgICAgICAgICAgICQoXCIubmF2YmFyXCIpLmFkZENsYXNzKFwiaW52aXNpYmxlXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIC8vb24gb3Igc2Nyb2xsLCBkZXRlY3QgZWxlbWVudHMgaW4gdmlld1xyXG4gICAgJCh3aW5kb3cpLm9uKCdzY3JvbGwgcmVzaXplJywgZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgJCgnLmZseS1pbicpLmVhY2goZnVuY3Rpb24gKGksIHZhbCkge1xyXG4gICAgICAgICAgICBpZigkKHZhbCkudmlzaWJsZSgpKXtcclxuICAgICAgICAgICAgICAgICQodmFsKS5hZGRDbGFzcyhcImNvbWUtaW5cIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfSk7XHJcbiAgICAvL3RyaWdnZXIgb3VyIHNjcm9sbCBldmVudCBvbiBpbml0aWFsIGxvYWRcclxuICAgICQod2luZG93KS50cmlnZ2VyKCdzY3JvbGwnKTtcclxuXHJcblxyXG59KTtcclxuXHJcbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcclxuXHJcblxyXG4gICAgbGV0IHdpZHRoUG9sID0gMTkyMCxcclxuICAgICAgICBoZWlnaHRQb2wgPSAxMDA7XHJcblxyXG4gICAgY29uc3QgaGVhZGVyUG9seSA9IFtcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgICAgIHtcInhcIjogd2lkdGhQb2wsIFwieVwiOiAxMDB9LFxyXG4gICAgICAgIHtcInhcIjogd2lkdGhQb2wsIFwieVwiOiAwfSxcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiA1MH0sXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogMTAwfSxcclxuICAgIF07XHJcblxyXG4gICAgbGV0IHdpZHRoSW1nT3ZlcmxheSA9IDE5MjAsXHJcbiAgICAgICAgaGVpZ2h0SW1nT3ZlcmxheSA9IDEwMDtcclxuXHJcblxyXG4gICAgY29uc3QgaW1hZ2VQb2x5VG9wID0gW1xyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDEwMH0sXHJcbiAgICAgICAge1wieFwiOiB3aWR0aEltZ092ZXJsYXksIFwieVwiOiA1MH0sXHJcbiAgICAgICAge1wieFwiOiB3aWR0aEltZ092ZXJsYXksIFwieVwiOiAwfSxcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAwfSxcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgXTtcclxuXHJcbiAgICBjb25zdCBpbWFnZVBvbHlCb3R0b20gPSBbXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogMTAwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoSW1nT3ZlcmxheSwgXCJ5XCI6IDEwMH0sXHJcbiAgICAgICAge1wieFwiOiB3aWR0aEltZ092ZXJsYXksIFwieVwiOiAwfSxcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiA1MH0sXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogMTAwfSxcclxuICAgIF07XHJcblxyXG5cclxuICAgIGxldCBpbWdIZWFkZXJIb2xkZXIgPSBkMy5zZWxlY3QoXCJib2R5XCIpLnNlbGVjdChcIiNib3R0b20tbGFuZGluZy1vdmVybGF5XCIpLnNlbGVjdCgnI2xhbmRpbmctc3ZnJylcclxuICAgICAgICAuYXR0cihcIndpZHRoXCIsIHdpZHRoUG9sKVxyXG4gICAgICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodFBvbCk7XHJcblxyXG4gICAgY29uc29sZS5sb2coZDMuc2VsZWN0KFwiYm9keVwiKSk7XHJcblxyXG4gICAgbGV0IGltZ0JvdHRvbUhvbGRlciA9IGQzLnNlbGVjdChcImJvZHlcIikuc2VsZWN0QWxsKFwiLnN2Zy1pbWFnZS1vdmVybGF5LWJvdHRvbVwiKVxyXG4gICAgICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGhJbWdPdmVybGF5KVxyXG4gICAgICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodEltZ092ZXJsYXkpO1xyXG5cclxuXHJcbiAgICBsZXQgaW1nVG9wSG9sZGVyID0gZDMuc2VsZWN0KFwiYm9keVwiKS5zZWxlY3RBbGwoXCIuc3ZnLWltYWdlLW92ZXJsYXktdG9wXCIpXHJcbiAgICAgICAgLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aEltZ092ZXJsYXkpXHJcbiAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0SW1nT3ZlcmxheSk7XHJcblxyXG4gICAgY3JlYXRlUG9seWdvbihoZWFkZXJQb2x5LCB3aWR0aFBvbCwgaGVpZ2h0UG9sLCBpbWdIZWFkZXJIb2xkZXIpO1xyXG4gICAgY3JlYXRlUG9seWdvbihpbWFnZVBvbHlCb3R0b20sIHdpZHRoSW1nT3ZlcmxheSwgaGVpZ2h0SW1nT3ZlcmxheSwgaW1nQm90dG9tSG9sZGVyKTtcclxuICAgIGNyZWF0ZVBvbHlnb24oaW1hZ2VQb2x5VG9wLCB3aWR0aEltZ092ZXJsYXksIGhlaWdodEltZ092ZXJsYXksIGltZ1RvcEhvbGRlcik7XHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIGNyZWF0ZVBvbHlnb24ocG9seWdvbiwgd2lkdGgsIGhlaWdodCwgdmlzKSB7XHJcblxyXG4gICAgICAgIGxldCBzdmcgPSB2aXMuc2VsZWN0QWxsKFwicGF0aFwiKS5kYXRhKFtwb2x5Z29uXSk7XHJcblxyXG4gICAgICAgIHN2Zy5leGl0KCkucmVtb3ZlKCk7XHJcblxyXG4gICAgICAgIGxldCBsaW5lRnVuY3Rpb24gPSBkMy5saW5lKClcclxuICAgICAgICAgICAgLngoZnVuY3Rpb24gKGQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkLnhcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnkoZnVuY3Rpb24gKGQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkLnlcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHN2Zy5lbnRlcigpLmFwcGVuZChcInBhdGhcIilcclxuICAgICAgICAgICAgLmF0dHIoXCJkXCIsIGxpbmVGdW5jdGlvbihwb2x5Z29uKSlcclxuICAgICAgICAgICAgLmF0dHIoXCJmaWxsXCIsIFwiI2ZmZlwiKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXRvZ2dsZT1cImxpZ2h0Ym94XCJdJywgZnVuY3Rpb24oZXZlbnQpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICQodGhpcykuZWtrb0xpZ2h0Ym94KHtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgJChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgJCgnW2RhdGEtdG9nZ2xlPVwidG9vbHRpcFwiXScpLnRvb2x0aXAoKVxyXG4gICAgfSlcclxuXHJcbn0pOyIsIiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcblxuICAgIGxldCBkdXJhdGlvbiA9IDc1MDtcblxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCcuc3Bpbm5lcicpLmVhY2goZnVuY3Rpb24gKGssdikge1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgJCh2KS5mYWRlSW4oZHVyYXRpb24pLmNzcyhcImRpc3BsYXlcIiwgXCJmbGV4XCIpO1xuICAgICAgICAgICAgICAgICQoe2RlZzogMH0pLmFuaW1hdGUoe1xuICAgICAgICAgICAgICAgICAgICBkZWc6IDM2MFxuICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgc3RlcDogZnVuY3Rpb24gKG5vdywgZngpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQodikuY3NzKHtcInRyYW5zZm9ybVwiOiBcInJvdGF0ZVkoXCIgKyBub3cgKyBcImRlZylcIn0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIGVhc2luZzogJ2xpbmVhcicsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXVlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sICdsaW5lYXInKTtcbiAgICAgICAgICAgIH0sIGsgKiBkdXJhdGlvbioyLzMpO1xuICAgICAgICB9KVxuICAgIH0sIDIwMCk7XG5cbiAgICAkKFwiLm1haW4tYmFja2dyb3VuZFwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJCgnLnNwaW5uZXInKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQodGhpcykuZmFkZUluKCkuY3NzKFwiZGlzcGxheVwiLCBcImZsZXhcIik7XG4gICAgICAgIH0pXG4gICAgfSlcblxufSk7IiwibGV0IG1vZGVsSW5pdERhdGEgPSBbXG4gICAge1xuICAgICAgICB0aW1lOiAwLFxuICAgICAgICBnZnA6IDAsXG4gICAgICAgIHJvZmY6IDAsXG4gICAgICAgIHJvbjogMFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MCxcbiAgICAgICAgZ2ZwOiAwLjUwMzMwOCxcbiAgICAgICAgcm9mZjogMC4wMDUxMTMsXG4gICAgICAgIHJvbjogMC40MjM5MDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwLFxuICAgICAgICBnZnA6IDAuNjkwNTgxLFxuICAgICAgICByb2ZmOiAwLjAwNDkxMzYsXG4gICAgICAgIHJvbjogMC43OTI4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwLFxuICAgICAgICBnZnA6IDAuNzY3NTg2LFxuICAgICAgICByb2ZmOiAwLjAwNDcxNjM3LFxuICAgICAgICByb246IDAuODg5MjA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMCxcbiAgICAgICAgZ2ZwOiAwLjgwMzQzLFxuICAgICAgICByb2ZmOiAwLjAwNDUzNDg1LFxuICAgICAgICByb246IDAuODczMTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MCxcbiAgICAgICAgZ2ZwOiAwLjgyMzUxNixcbiAgICAgICAgcm9mZjogMC4wMDQzNjQ4OCxcbiAgICAgICAgcm9uOiAwLjg0NzI4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDAsXG4gICAgICAgIGdmcDogMC44MzczMTMsXG4gICAgICAgIHJvZmY6IDAuMDA0MjA0NDksXG4gICAgICAgIHJvbjogMC44MjQ4MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwLFxuICAgICAgICBnZnA6IDAuODQ4MzYxLFxuICAgICAgICByb2ZmOiAwLjAwNDA1MjY2LFxuICAgICAgICByb246IDAuODA4MDI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMCxcbiAgICAgICAgZ2ZwOiAwLjg1OCxcbiAgICAgICAgcm9mZjogMC4wMDM5MDg1OSxcbiAgICAgICAgcm9uOiAwLjc5NjY0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAsXG4gICAgICAgIGdmcDogMC44NjY3NTYsXG4gICAgICAgIHJvZmY6IDAuMDAzNzcxNTcsXG4gICAgICAgIHJvbjogMC43ODk1NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAwLFxuICAgICAgICBnZnA6IDAuODc0ODUxLFxuICAgICAgICByb2ZmOiAwLjAwMzY0MTAyLFxuICAgICAgICByb246IDAuNzg1NTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MCxcbiAgICAgICAgZ2ZwOiAwLjg4MjM5MyxcbiAgICAgICAgcm9mZjogMC4wMDM1MTY0NyxcbiAgICAgICAgcm9uOiAwLjc4MzU3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAsXG4gICAgICAgIGdmcDogMC44ODk0NDIsXG4gICAgICAgIHJvZmY6IDAuMDAzMzk3NTMsXG4gICAgICAgIHJvbjogMC43ODI5MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwLFxuICAgICAgICBnZnA6IDAuODk2MDM5LFxuICAgICAgICByb2ZmOiAwLjAwMzI4Mzg4LFxuICAgICAgICByb246IDAuNzgzMDEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMCxcbiAgICAgICAgZ2ZwOiAwLjkwMjIxNCxcbiAgICAgICAgcm9mZjogMC4wMDMxNzUyNSxcbiAgICAgICAgcm9uOiAwLjc4MzUzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTAsXG4gICAgICAgIGdmcDogMC45MDc5OTYsXG4gICAgICAgIHJvZmY6IDAuMDAzMDcxNCxcbiAgICAgICAgcm9uOiAwLjc4NDI3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAsXG4gICAgICAgIGdmcDogMC45MTM0MDcsXG4gICAgICAgIHJvZmY6IDAuMDAyOTcyMTEsXG4gICAgICAgIHJvbjogMC43ODUxMDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODUwLFxuICAgICAgICBnZnA6IDAuOTE4NDY5LFxuICAgICAgICByb2ZmOiAwLjAwMjg3NzE3LFxuICAgICAgICByb246IDAuNzg1OTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwLFxuICAgICAgICBnZnA6IDAuOTIzMjA1LFxuICAgICAgICByb2ZmOiAwLjAwMjc4NjM4LFxuICAgICAgICByb246IDAuNzg2Nzc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MCxcbiAgICAgICAgZ2ZwOiAwLjkyNzYzMyxcbiAgICAgICAgcm9mZjogMC4wMDI2OTk1NyxcbiAgICAgICAgcm9uOiAwLjc4NzU3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAwLFxuICAgICAgICBnZnA6IDAuOTMxNzcyLFxuICAgICAgICByb2ZmOiAwLjAwMjYxNjU3LFxuICAgICAgICByb246IDAuNzg4MzE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAsXG4gICAgICAgIGdmcDogMC45MzU2NDEsXG4gICAgICAgIHJvZmY6IDAuMDAyNTM3MixcbiAgICAgICAgcm9uOiAwLjc4OTAxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwLFxuICAgICAgICBnZnA6IDAuOTM5MjU2LFxuICAgICAgICByb2ZmOiAwLjAwMjQ2MTMxLFxuICAgICAgICByb246IDAuNzg5NjY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTAsXG4gICAgICAgIGdmcDogMC45NDI2MzQsXG4gICAgICAgIHJvZmY6IDAuMDAyMzg4NzUsXG4gICAgICAgIHJvbjogMC43OTAyNzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk0NTc4OSxcbiAgICAgICAgcm9mZjogMC4wMDIzMTkzNyxcbiAgICAgICAgcm9uOiAwLjc5MDgzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwLFxuICAgICAgICBnZnA6IDAuOTQ4NzM2LFxuICAgICAgICByb2ZmOiAwLjAwMjI1MzA0LFxuICAgICAgICByb246IDAuNzkxMzYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAsXG4gICAgICAgIGdmcDogMC45NTE0ODksXG4gICAgICAgIHJvZmY6IDAuMDAyMTg5NjIsXG4gICAgICAgIHJvbjogMC43OTE4NDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk1NDA2MSxcbiAgICAgICAgcm9mZjogMC4wMDIxMjg5OCxcbiAgICAgICAgcm9uOiAwLjc5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk1NjQ2NCxcbiAgICAgICAgcm9mZjogMC4wMDIwNzEwMSxcbiAgICAgICAgcm9uOiAwLjc5MjcyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDUwLFxuICAgICAgICBnZnA6IDAuOTU4NzA5LFxuICAgICAgICByb2ZmOiAwLjAwMjAxNTU5LFxuICAgICAgICByb246IDAuNzkzMTEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDAsXG4gICAgICAgIGdmcDogMC45NjA4MDcsXG4gICAgICAgIHJvZmY6IDAuMDAxOTYyNixcbiAgICAgICAgcm9uOiAwLjc5MzQ3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTUwLFxuICAgICAgICBnZnA6IDAuOTYyNzY4LFxuICAgICAgICByb2ZmOiAwLjAwMTkxMTk0LFxuICAgICAgICByb246IDAuNzkzODE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDAsXG4gICAgICAgIGdmcDogMC45NjQ2MDEsXG4gICAgICAgIHJvZmY6IDAuMDAxODYzNTEsXG4gICAgICAgIHJvbjogMC43OTQxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjUwLFxuICAgICAgICBnZnA6IDAuOTY2MzE0LFxuICAgICAgICByb2ZmOiAwLjAwMTgxNzIxLFxuICAgICAgICByb246IDAuNzk0NDI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDAsXG4gICAgICAgIGdmcDogMC45Njc5MTcsXG4gICAgICAgIHJvZmY6IDAuMDAxNzcyOTUsXG4gICAgICAgIHJvbjogMC43OTQ2OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk2OTQxNixcbiAgICAgICAgcm9mZjogMC4wMDE3MzA2MyxcbiAgICAgICAgcm9uOiAwLjc5NDk1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwLFxuICAgICAgICBnZnA6IDAuOTcwODE5LFxuICAgICAgICByb2ZmOiAwLjAwMTY5MDE4LFxuICAgICAgICByb246IDAuNzk1MTkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAsXG4gICAgICAgIGdmcDogMC45NzIxMzIsXG4gICAgICAgIHJvZmY6IDAuMDAxNjUxNTEsXG4gICAgICAgIHJvbjogMC43OTU0MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk3MzM2MSxcbiAgICAgICAgcm9mZjogMC4wMDE2MTQ1NCxcbiAgICAgICAgcm9uOiAwLjc5NTYyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTUwLFxuICAgICAgICBnZnA6IDAuOTc0NTEyLFxuICAgICAgICByb2ZmOiAwLjAwMTU3OTIxLFxuICAgICAgICByb246IDAuNzk1ODE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDAsXG4gICAgICAgIGdmcDogMC45NzU1OTEsXG4gICAgICAgIHJvZmY6IDAuMDAxNTQ1NDIsXG4gICAgICAgIHJvbjogMC43OTU5OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk3NjYwMixcbiAgICAgICAgcm9mZjogMC4wMDE1MTMxMyxcbiAgICAgICAgcm9uOiAwLjc5NjE2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTAwLFxuICAgICAgICBnZnA6IDAuOTc3NTQ5LFxuICAgICAgICByb2ZmOiAwLjAwMTQ4MjI2LFxuICAgICAgICByb246IDAuNzk2MzI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTAsXG4gICAgICAgIGdmcDogMC45Nzg0MzgsXG4gICAgICAgIHJvZmY6IDAuMDAxNDUyNzUsXG4gICAgICAgIHJvbjogMC43OTY0NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk3OTI3MixcbiAgICAgICAgcm9mZjogMC4wMDE0MjQ1NCxcbiAgICAgICAgcm9uOiAwLjc5NjYxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjUwLFxuICAgICAgICBnZnA6IDAuOTgwMDU1LFxuICAgICAgICByb2ZmOiAwLjAwMTM5NzU3LFxuICAgICAgICByb246IDAuNzk2NzQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDAsXG4gICAgICAgIGdmcDogMC45ODA3OSxcbiAgICAgICAgcm9mZjogMC4wMDEzNzE3OSxcbiAgICAgICAgcm9uOiAwLjc5Njg2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzUwLFxuICAgICAgICBnZnA6IDAuOTgxNDgxLFxuICAgICAgICByb2ZmOiAwLjAwMTM0NzE1LFxuICAgICAgICByb246IDAuNzk2OTgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MDAsXG4gICAgICAgIGdmcDogMC45ODIxMyxcbiAgICAgICAgcm9mZjogMC4wMDEzMjM2LFxuICAgICAgICByb246IDAuNzk3MDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk4Mjc0LFxuICAgICAgICByb2ZmOiAwLjAwMTMwMTA5LFxuICAgICAgICByb246IDAuNzk3MTkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDAsXG4gICAgICAgIGdmcDogMC45ODMzMTQsXG4gICAgICAgIHJvZmY6IDAuMDAxMjc5NTcsXG4gICAgICAgIHJvbjogMC43OTcyODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk4Mzg1MyxcbiAgICAgICAgcm9mZjogMC4wMDEyNTg5OSxcbiAgICAgICAgcm9uOiAwLjc5NzM3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjAwLFxuICAgICAgICBnZnA6IDAuOTg0MzYyLFxuICAgICAgICByb2ZmOiAwLjAwMTIzOTMzLFxuICAgICAgICByb246IDAuNzk3NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NDg0LFxuICAgICAgICByb2ZmOiAwLjAwMTIyMDUzLFxuICAgICAgICByb246IDAuNzk3NTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3MDAsXG4gICAgICAgIGdmcDogMC45ODUyOTEsXG4gICAgICAgIHJvZmY6IDAuMDAxMjAyNTcsXG4gICAgICAgIHJvbjogMC43OTc2MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NTcxNSxcbiAgICAgICAgcm9mZjogMC4wMDExODUzOSxcbiAgICAgICAgcm9uOiAwLjc5NzY4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODAwLFxuICAgICAgICBnZnA6IDAuOTg2MTE2LFxuICAgICAgICByb2ZmOiAwLjAwMTE2ODk4LFxuICAgICAgICByb246IDAuNzk3NzQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI4NTAsXG4gICAgICAgIGdmcDogMC45ODY0OTMsXG4gICAgICAgIHJvZmY6IDAuMDAxMTUzMjksXG4gICAgICAgIHJvbjogMC43OTc4MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk4Njg1LFxuICAgICAgICByb2ZmOiAwLjAwMTEzODI5LFxuICAgICAgICByb246IDAuNzk3ODY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI5NTAsXG4gICAgICAgIGdmcDogMC45ODcxODYsXG4gICAgICAgIHJvZmY6IDAuMDAxMTIzOTUsXG4gICAgICAgIHJvbjogMC43OTc5MjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NzUwMyxcbiAgICAgICAgcm9mZjogMC4wMDExMTAyNSxcbiAgICAgICAgcm9uOiAwLjc5Nzk3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDUwLFxuICAgICAgICBnZnA6IDAuOTg3ODAzLFxuICAgICAgICByb2ZmOiAwLjAwMTA5NzE1LFxuICAgICAgICByb246IDAuNzk4MDI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxMDAsXG4gICAgICAgIGdmcDogMC45ODgwODcsXG4gICAgICAgIHJvZmY6IDAuMDAxMDg0NjMsXG4gICAgICAgIHJvbjogMC43OTgwNzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjk4ODM1NCxcbiAgICAgICAgcm9mZjogMC4wMDEwNzI2NyxcbiAgICAgICAgcm9uOiAwLjc5ODExNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjAwLFxuICAgICAgICBnZnA6IDAuOTg4NjA4LFxuICAgICAgICByb2ZmOiAwLjAwMTA2MTIzLFxuICAgICAgICByb246IDAuNzk4MTU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyNTAsXG4gICAgICAgIGdmcDogMC45ODg4NDcsXG4gICAgICAgIHJvZmY6IDAuMDAxMDUwMyxcbiAgICAgICAgcm9uOiAwLjc5ODE5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzAwLFxuICAgICAgICBnZnA6IDAuOTg5MDc0LFxuICAgICAgICByb2ZmOiAwLjAwMTAzOTg1LFxuICAgICAgICByb246IDAuNzk4MjM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMzNTAsXG4gICAgICAgIGdmcDogMC45ODkyODksXG4gICAgICAgIHJvZmY6IDAuMDAxMDI5ODYsXG4gICAgICAgIHJvbjogMC43OTgyNjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjk4OTQ5MixcbiAgICAgICAgcm9mZjogMC4wMDEwMjAzMSxcbiAgICAgICAgcm9uOiAwLjc5ODMwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNDUwLFxuICAgICAgICBnZnA6IDAuOTg5Njg0LFxuICAgICAgICByb2ZmOiAwLjAwMTAxMTE5LFxuICAgICAgICByb246IDAuNzk4MzM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MDAsXG4gICAgICAgIGdmcDogMC45ODk4NjYsXG4gICAgICAgIHJvZmY6IDAuMDAxMDAyNDcsXG4gICAgICAgIHJvbjogMC43OTgzNjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDAzOSxcbiAgICAgICAgcm9mZjogMC4wMDA5OTQxMyxcbiAgICAgICAgcm9uOiAwLjc5ODM5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjAwLFxuICAgICAgICBnZnA6IDAuOTkwMjAzLFxuICAgICAgICByb2ZmOiAwLjAwMDk4NjE2MixcbiAgICAgICAgcm9uOiAwLjc5ODQxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjUwLFxuICAgICAgICBnZnA6IDAuOTkwMzU4LFxuICAgICAgICByb2ZmOiAwLjAwMDk3ODU0NixcbiAgICAgICAgcm9uOiAwLjc5ODQ0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzAwLFxuICAgICAgICBnZnA6IDAuOTkwNTA2LFxuICAgICAgICByb2ZmOiAwLjAwMDk3MTI2NixcbiAgICAgICAgcm9uOiAwLjc5ODQ2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzUwLFxuICAgICAgICBnZnA6IDAuOTkwNjQ1LFxuICAgICAgICByb2ZmOiAwLjAwMDk2NDMwOCxcbiAgICAgICAgcm9uOiAwLjc5ODQ5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODAwLFxuICAgICAgICBnZnA6IDAuOTkwNzc4LFxuICAgICAgICByb2ZmOiAwLjAwMDk1NzY1NyxcbiAgICAgICAgcm9uOiAwLjc5ODUxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODUwLFxuICAgICAgICBnZnA6IDAuOTkwOTA0LFxuICAgICAgICByb2ZmOiAwLjAwMDk1MTMsXG4gICAgICAgIHJvbjogMC43OTg1MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTAyNCxcbiAgICAgICAgcm9mZjogMC4wMDA5NDUyMjQsXG4gICAgICAgIHJvbjogMC43OTg1NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTEzNyxcbiAgICAgICAgcm9mZjogMC4wMDA5Mzk0MTcsXG4gICAgICAgIHJvbjogMC43OTg1NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTI0NSxcbiAgICAgICAgcm9mZjogMC4wMDA5MzM4NjYsXG4gICAgICAgIHJvbjogMC43OTg1ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTM0OCxcbiAgICAgICAgcm9mZjogMC4wMDA5Mjg1NjEsXG4gICAgICAgIHJvbjogMC43OTg2MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTQ0NSxcbiAgICAgICAgcm9mZjogMC4wMDA5MjM0OSxcbiAgICAgICAgcm9uOiAwLjc5ODYyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MTUwLFxuICAgICAgICBnZnA6IDAuOTkxNTM4LFxuICAgICAgICByb2ZmOiAwLjAwMDkxODY0MyxcbiAgICAgICAgcm9uOiAwLjc5ODYzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MjAwLFxuICAgICAgICBnZnA6IDAuOTkxNjI2LFxuICAgICAgICByb2ZmOiAwLjAwMDkxNDAxMSxcbiAgICAgICAgcm9uOiAwLjc5ODY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyNTAsXG4gICAgICAgIGdmcDogMC45OTE3MSxcbiAgICAgICAgcm9mZjogMC4wMDA5MDk1ODMsXG4gICAgICAgIHJvbjogMC43OTg2NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTc4OSxcbiAgICAgICAgcm9mZjogMC4wMDA5MDUzNTEsXG4gICAgICAgIHJvbjogMC43OTg2NzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTg2NSxcbiAgICAgICAgcm9mZjogMC4wMDA5MDEzMDYsXG4gICAgICAgIHJvbjogMC43OTg2ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTkzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4OTc0NCxcbiAgICAgICAgcm9uOiAwLjc5ODcwMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDUwLFxuICAgICAgICBnZnA6IDAuOTkyMDA2LFxuICAgICAgICByb2ZmOiAwLjAwMDg5Mzc0NSxcbiAgICAgICAgcm9uOiAwLjc5ODcxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAwLFxuICAgICAgICBnZnA6IDAuOTkyMDcxLFxuICAgICAgICByb2ZmOiAwLjAwMDg5MDIxMyxcbiAgICAgICAgcm9uOiAwLjc5ODcyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTUwLFxuICAgICAgICBnZnA6IDAuOTkyMTM0LFxuICAgICAgICByb2ZmOiAwLjAwMDg4NjgzNyxcbiAgICAgICAgcm9uOiAwLjc5ODczM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjAwLFxuICAgICAgICBnZnA6IDAuOTkyMTkzLFxuICAgICAgICByb2ZmOiAwLjAwMDg4MzYxLFxuICAgICAgICByb246IDAuNzk4NzQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2NTAsXG4gICAgICAgIGdmcDogMC45OTIyNDksXG4gICAgICAgIHJvZmY6IDAuMDAwODgwNTI2LFxuICAgICAgICByb246IDAuNzk4NzUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ3MDAsXG4gICAgICAgIGdmcDogMC45OTIzMDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODc3NTc5LFxuICAgICAgICByb246IDAuNzk4NzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjM1NCxcbiAgICAgICAgcm9mZjogMC4wMDA4NzQ3NjEsXG4gICAgICAgIHJvbjogMC43OTg3NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQwMyxcbiAgICAgICAgcm9mZjogMC4wMDA4NzIwNjksXG4gICAgICAgIHJvbjogMC43OTg3NzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQ0OSxcbiAgICAgICAgcm9mZjogMC4wMDA4Njk0OTUsXG4gICAgICAgIHJvbjogMC43OTg3ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQ5NCxcbiAgICAgICAgcm9mZjogMC4wMDA4NjcwMzUsXG4gICAgICAgIHJvbjogMC43OTg3OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjUzNixcbiAgICAgICAgcm9mZjogMC4wMDA4NjQ2ODQsXG4gICAgICAgIHJvbjogMC43OTg3OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjU3NixcbiAgICAgICAgcm9mZjogMC4wMDA4NjI0MzcsXG4gICAgICAgIHJvbjogMC43OTg4MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjYxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4NjAyOSxcbiAgICAgICAgcm9uOiAwLjc5ODgxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTAwLFxuICAgICAgICBnZnA6IDAuOTkyNjUxLFxuICAgICAgICByb2ZmOiAwLjAwMDg1ODIzNyxcbiAgICAgICAgcm9uOiAwLjc5ODgxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTUwLFxuICAgICAgICBnZnA6IDAuOTkyNjg2LFxuICAgICAgICByb2ZmOiAwLjAwMDg1NjI3NSxcbiAgICAgICAgcm9uOiAwLjc5ODgyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjAwLFxuICAgICAgICBnZnA6IDAuOTkyNzE5LFxuICAgICAgICByb2ZmOiAwLjAwMDg1NDQsXG4gICAgICAgIHJvbjogMC43OTg4MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjc1MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTI2MDcsXG4gICAgICAgIHJvbjogMC43OTg4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjc4MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTA4OTQsXG4gICAgICAgIHJvbjogMC43OTg4MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjgxLFxuICAgICAgICByb2ZmOiAwLjAwMDg0OTI1NyxcbiAgICAgICAgcm9uOiAwLjc5ODg0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDAwLFxuICAgICAgICBnZnA6IDAuOTkyODM4LFxuICAgICAgICByb2ZmOiAwLjAwMDg0NzY5MixcbiAgICAgICAgcm9uOiAwLjc5ODg0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDUwLFxuICAgICAgICBnZnA6IDAuOTkyODY0LFxuICAgICAgICByb2ZmOiAwLjAwMDg0NjE5NixcbiAgICAgICAgcm9uOiAwLjc5ODg1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTAwLFxuICAgICAgICBnZnA6IDAuOTkyODg5LFxuICAgICAgICByb2ZmOiAwLjAwMDg0NDc2NixcbiAgICAgICAgcm9uOiAwLjc5ODg1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTUwLFxuICAgICAgICBnZnA6IDAuOTkyOTEzLFxuICAgICAgICByb2ZmOiAwLjAwMDg0MzM5OSxcbiAgICAgICAgcm9uOiAwLjc5ODg1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjAwLFxuICAgICAgICBnZnA6IDAuOTkyOTM2LFxuICAgICAgICByb2ZmOiAwLjAwMDg0MjA5MyxcbiAgICAgICAgcm9uOiAwLjc5ODg2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjUwLFxuICAgICAgICBnZnA6IDAuOTkyOTU3LFxuICAgICAgICByb2ZmOiAwLjAwMDg0MDg0NSxcbiAgICAgICAgcm9uOiAwLjc5ODg2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NzAwLFxuICAgICAgICBnZnA6IDAuOTkyOTc4LFxuICAgICAgICByb2ZmOiAwLjAwMDgzOTY1MixcbiAgICAgICAgcm9uOiAwLjc5ODg3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3NTAsXG4gICAgICAgIGdmcDogMC45OTI5OTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODM4NTEyLFxuICAgICAgICByb246IDAuNzk4ODczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4MDAsXG4gICAgICAgIGdmcDogMC45OTMwMTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODM3NDIyLFxuICAgICAgICByb246IDAuNzk4ODc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4NTAsXG4gICAgICAgIGdmcDogMC45OTMwMzUsXG4gICAgICAgIHJvZmY6IDAuMDAwODM2MzgsXG4gICAgICAgIHJvbjogMC43OTg4NzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA1MixcbiAgICAgICAgcm9mZjogMC4wMDA4MzUzODUsXG4gICAgICAgIHJvbjogMC43OTg4ODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA2OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MzQ0MzMsXG4gICAgICAgIHJvbjogMC43OTg4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA4NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzM1MjQsXG4gICAgICAgIHJvbjogMC43OTg4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA5OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MzI2NTQsXG4gICAgICAgIHJvbjogMC43OTg4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMTE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMTgyNCxcbiAgICAgICAgcm9uOiAwLjc5ODg5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMTI3LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMTAzLFxuICAgICAgICByb246IDAuNzk4ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYyMDAsXG4gICAgICAgIGdmcDogMC45OTMxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzAyNzEsXG4gICAgICAgIHJvbjogMC43OTg4OTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE1MyxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjk1NDUsXG4gICAgICAgIHJvbjogMC43OTg4OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE2NSxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjg4NTIsXG4gICAgICAgIHJvbjogMC43OTg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYzNTAsXG4gICAgICAgIGdmcDogMC45OTMxNzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODI4MTg5LFxuICAgICAgICByb246IDAuNzk4OTAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0MDAsXG4gICAgICAgIGdmcDogMC45OTMxODcsXG4gICAgICAgIHJvZmY6IDAuMDAwODI3NTU1LFxuICAgICAgICByb246IDAuNzk4OTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0NTAsXG4gICAgICAgIGdmcDogMC45OTMxOTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODI2OTUsXG4gICAgICAgIHJvbjogMC43OTg5MDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjYzNzEsXG4gICAgICAgIHJvbjogMC43OTg5MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjU4MTgsXG4gICAgICAgIHJvbjogMC43OTg5MDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIyNixcbiAgICAgICAgcm9mZjogMC4wMDA4MjUyODksXG4gICAgICAgIHJvbjogMC43OTg5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMjM1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNDc4MyxcbiAgICAgICAgcm9uOiAwLjc5ODkxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NzAwLFxuICAgICAgICBnZnA6IDAuOTkzMjQzLFxuICAgICAgICByb2ZmOiAwLjAwMDgyNDMsXG4gICAgICAgIHJvbjogMC43OTg5MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI1MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjM4MzksXG4gICAgICAgIHJvbjogMC43OTg5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI1OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MjMzOTgsXG4gICAgICAgIHJvbjogMC43OTg5MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI2NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjI5NzYsXG4gICAgICAgIHJvbjogMC43OTg5MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI3MixcbiAgICAgICAgcm9mZjogMC4wMDA4MjI1NzMsXG4gICAgICAgIHJvbjogMC43OTg5MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI3OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjIxODgsXG4gICAgICAgIHJvbjogMC43OTg5MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI4NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjE4MixcbiAgICAgICAgcm9uOiAwLjc5ODkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwNTAsXG4gICAgICAgIGdmcDogMC45OTMyOTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxNDY4LFxuICAgICAgICByb246IDAuNzk4OTIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxMDAsXG4gICAgICAgIGdmcDogMC45OTMyOTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxMTMyLFxuICAgICAgICByb246IDAuNzk4OTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxNTAsXG4gICAgICAgIGdmcDogMC45OTMzMDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwODEsXG4gICAgICAgIHJvbjogMC43OTg5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjA1MDMsXG4gICAgICAgIHJvbjogMC43OTg5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MjAyMDksXG4gICAgICAgIHJvbjogMC43OTg5MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTk5MjksXG4gICAgICAgIHJvbjogMC43OTg5MjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMyMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTk2NixcbiAgICAgICAgcm9uOiAwLjc5ODkyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzI2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTQwNCxcbiAgICAgICAgcm9uOiAwLjc5ODkyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE5MTU5LFxuICAgICAgICByb246IDAuNzk4OTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MDAsXG4gICAgICAgIGdmcDogMC45OTMzMzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4OTI1LFxuICAgICAgICByb246IDAuNzk4OTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1NTAsXG4gICAgICAgIGdmcDogMC45OTMzMzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4NzAxLFxuICAgICAgICByb246IDAuNzk4OTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2MDAsXG4gICAgICAgIGdmcDogMC45OTMzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4NDg3LFxuICAgICAgICByb246IDAuNzk4OTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2NTAsXG4gICAgICAgIGdmcDogMC45OTMzNDUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4MjgyLFxuICAgICAgICByb246IDAuNzk4OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM0OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTgwODcsXG4gICAgICAgIHJvbjogMC43OTg5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzUyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzksXG4gICAgICAgIHJvbjogMC43OTg5MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc3MjIsXG4gICAgICAgIHJvbjogMC43OTg5MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc1NTEsXG4gICAgICAgIHJvbjogMC43OTg5MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzM4OCxcbiAgICAgICAgcm9uOiAwLjc5ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzYzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzIzMixcbiAgICAgICAgcm9uOiAwLjc5ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzY1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzA4MyxcbiAgICAgICAgcm9uOiAwLjc5ODkzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzY4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjk0MSxcbiAgICAgICAgcm9uOiAwLjc5ODkzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2ODA0LFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxNTAsXG4gICAgICAgIGdmcDogMC45OTMzNzIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2Njc0LFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyMDAsXG4gICAgICAgIGdmcDogMC45OTMzNzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2NTUsXG4gICAgICAgIHJvbjogMC43OTg5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3NixcbiAgICAgICAgcm9mZjogMC4wMDA4MTY0MzEsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTYzMTgsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjIwOSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzgyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjEwNSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzg0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjAwNixcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzg1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTkxMSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzg3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTgyMSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzg4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTczNCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzksXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NjUxLFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3MDAsXG4gICAgICAgIGdmcDogMC45OTMzOTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NTcyLFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3NTAsXG4gICAgICAgIGdmcDogMC45OTMzOTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NDk3LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4MDAsXG4gICAgICAgIGdmcDogMC45OTMzOTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NDI1LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4NTAsXG4gICAgICAgIGdmcDogMC45OTMzOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MzU2LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5MDAsXG4gICAgICAgIGdmcDogMC45OTMzOTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MjksXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUyMjcsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUxNjYsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUxMDksXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MDU0LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MDAxLFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0OTUxLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0OTAzLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0ODU3LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MDQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0ODEzLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NzcxLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NzMxLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NjkzLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NjU2LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NjIxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1ODcsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDU1NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDksXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NTI1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0OTYsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDY4LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQ0MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDE1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzkxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzY4LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzQ1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzI0LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzA0LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0Mjg0LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjY2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDI0OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyMzEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjE1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE5OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxODQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTU3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE0NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMzEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTA4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA5NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwODcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDc3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNTksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDQyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAzNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMjcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDE5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAxMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMDYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk5NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5ODgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTgyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk3NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NzIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTY3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk2MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NTgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTU0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk0NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NDMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTM5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MzMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTI3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MjEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTE5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTEyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTA0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwMyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODkxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9XG5dXG5sZXQgbW9kZWxPZmZEYXRhID0gW1xuICAgIHtcbiAgICAgICAgdGltZTogMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI4XG4gICAgfVxuXTtcbmxldCBtb2RlbE9mZk9uRGF0YSA9IFtcbiAgICB7XG4gICAgICAgIHRpbWU6IDAsXG4gICAgICAgIGdmcDogMC4wMDAxNjM2OTgsXG4gICAgICAgIHJvZmY6IDAuNjk3NzAxLFxuICAgICAgICByb246IDAuODMyNjc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwLFxuICAgICAgICBnZnA6IDAuMDAwMjExMDc0LFxuICAgICAgICByb2ZmOiAwLjYxMjM2MyxcbiAgICAgICAgcm9uOiAwLjk0ODUyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAsXG4gICAgICAgIGdmcDogMC4wMDAyNjc1MjYsXG4gICAgICAgIHJvZmY6IDAuNTUwNzc3LFxuICAgICAgICByb246IDAuOTE5NjI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDMyOTY3NixcbiAgICAgICAgcm9mZjogMC41MDE1MTYsXG4gICAgICAgIHJvbjogMC44NzA4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMzk3NTg0LFxuICAgICAgICByb2ZmOiAwLjQ2MDMxOSxcbiAgICAgICAgcm9uOiAwLjgwOTk1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAsXG4gICAgICAgIGdmcDogMC4wMDA0NzIwMjgsXG4gICAgICAgIHJvZmY6IDAuNDI0OTQ1LFxuICAgICAgICByb246IDAuNzQ0NDcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDU1Mzk1LFxuICAgICAgICByb2ZmOiAwLjM5NDAxNSxcbiAgICAgICAgcm9uOiAwLjY4MDM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDY0NDM0LFxuICAgICAgICByb2ZmOiAwLjM2NjYxLFxuICAgICAgICByb246IDAuNjIxMDIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDc0NDIyMixcbiAgICAgICAgcm9mZjogMC4zNDIwODIsXG4gICAgICAgIHJvbjogMC41Njc4MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDUwLFxuICAgICAgICBnZnA6IDAuMDAwODU0NjY0LFxuICAgICAgICByb2ZmOiAwLjMxOTk1OCxcbiAgICAgICAgcm9uOiAwLjUyMDc0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDAsXG4gICAgICAgIGdmcDogMC4wMDA5NzY3ODcsXG4gICAgICAgIHJvZmY6IDAuMjk5ODc3LFxuICAgICAgICByb246IDAuNDc5MzI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTExMTc4LFxuICAgICAgICByb2ZmOiAwLjI4MTU1NixcbiAgICAgICAgcm9uOiAwLjQ0MjgxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAsXG4gICAgICAgIGdmcDogMC4wMDEyNjA5MSxcbiAgICAgICAgcm9mZjogMC4yNjQ3NzEsXG4gICAgICAgIHJvbjogMC40MTA1MDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwLFxuICAgICAgICBnZnA6IDAuMDAxNDI1NTIsXG4gICAgICAgIHJvZmY6IDAuMjQ5MzM4LFxuICAgICAgICByb246IDAuMzgxNzUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTYwNzA0LFxuICAgICAgICByb2ZmOiAwLjIzNTEwNixcbiAgICAgICAgcm9uOiAwLjM1NjAxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTAsXG4gICAgICAgIGdmcDogMC4wMDE4MDcsXG4gICAgICAgIHJvZmY6IDAuMjIxOTQ4LFxuICAgICAgICByb246IDAuMzMyODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODAwLFxuICAgICAgICBnZnA6IDAuMDAyMDI3MDEsXG4gICAgICAgIHJvZmY6IDAuMjA5NzU3LFxuICAgICAgICByb246IDAuMzExODc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMjI2ODc0LFxuICAgICAgICByb2ZmOiAwLjE5ODQ0MixcbiAgICAgICAgcm9uOiAwLjI5MjgyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDAsXG4gICAgICAgIGdmcDogMC4wMDI1MzM5NSxcbiAgICAgICAgcm9mZjogMC4xODc5MjUsXG4gICAgICAgIHJvbjogMC4yNzU0MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTUwLFxuICAgICAgICBnZnA6IDAuMDAyODI0NDMsXG4gICAgICAgIHJvZmY6IDAuMTc4MTM3LFxuICAgICAgICByb246IDAuMjU5NTI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDAsXG4gICAgICAgIGdmcDogMC4wMDMxNDIwMyxcbiAgICAgICAgcm9mZjogMC4xNjkwMjEsXG4gICAgICAgIHJvbjogMC4yNDQ5MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMzQ4ODU0LFxuICAgICAgICByb2ZmOiAwLjE2MDUyMyxcbiAgICAgICAgcm9uOiAwLjIzMTQ3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwLFxuICAgICAgICBnZnA6IDAuMDAzODY1NzYsXG4gICAgICAgIHJvZmY6IDAuMTUyNixcbiAgICAgICAgcm9uOiAwLjIxOTA5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTUwLFxuICAgICAgICBnZnA6IDAuMDA0Mjc1MzYsXG4gICAgICAgIHJvZmY6IDAuMTQ1MjEsXG4gICAgICAgIHJvbjogMC4yMDc2NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNDcxODg2LFxuICAgICAgICByb2ZmOiAwLjEzODMxOSxcbiAgICAgICAgcm9uOiAwLjE5NzEwNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwLFxuICAgICAgICBnZnA6IDAuMDA1MTk3NTYsXG4gICAgICAgIHJvZmY6IDAuMTMxODk1LFxuICAgICAgICByb246IDAuMTg3MzQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAsXG4gICAgICAgIGdmcDogMC4wMDU3MTI0MixcbiAgICAgICAgcm9mZjogMC4xMjU5MDksXG4gICAgICAgIHJvbjogMC4xNzgzMjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNjI2NDAxLFxuICAgICAgICByb2ZmOiAwLjEyMDMzNixcbiAgICAgICAgcm9uOiAwLjE2OTk5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDAwLFxuICAgICAgICBnZnA6IDAuMDA2ODUyMzksXG4gICAgICAgIHJvZmY6IDAuMTE1MTU0LFxuICAgICAgICByb246IDAuMTYyMjg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTAsXG4gICAgICAgIGdmcDogMC4wMDc0NzcwNCxcbiAgICAgICAgcm9mZjogMC4xMTAzNDEsXG4gICAgICAgIHJvbjogMC4xNTUxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAwLFxuICAgICAgICBnZnA6IDAuMDA4MTM2NjgsXG4gICAgICAgIHJvZmY6IDAuMTA1ODc4LFxuICAgICAgICByb246IDAuMTQ4NjI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NTAsXG4gICAgICAgIGdmcDogMC4wMDg4MjkyOSxcbiAgICAgICAgcm9mZjogMC4xMDE3NDgsXG4gICAgICAgIHJvbjogMC4xNDI1OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwOTU1MTk4LFxuICAgICAgICByb2ZmOiAwLjA5NzkzMjYsXG4gICAgICAgIHJvbjogMC4xMzcwNDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMDMwMSxcbiAgICAgICAgcm9mZjogMC4wOTQ0MTc0LFxuICAgICAgICByb246IDAuMTMxOTY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDAsXG4gICAgICAgIGdmcDogMC4wMTEwNzE4LFxuICAgICAgICByb2ZmOiAwLjA5MTE4NjYsXG4gICAgICAgIHJvbjogMC4xMjczMTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMTg1ODksXG4gICAgICAgIHJvZmY6IDAuMDg4MjI1MixcbiAgICAgICAgcm9uOiAwLjEyMzA3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwLFxuICAgICAgICBnZnA6IDAuMDEyNjU2NCxcbiAgICAgICAgcm9mZjogMC4wODU1MTg4LFxuICAgICAgICByb246IDAuMTE5MjEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAsXG4gICAgICAgIGdmcDogMC4wMTM0NTc2LFxuICAgICAgICByb2ZmOiAwLjA4MzA1MjgsXG4gICAgICAgIHJvbjogMC4xMTU3MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAxNDI1NTcsXG4gICAgICAgIHJvZmY6IDAuMDgwODEyNyxcbiAgICAgICAgcm9uOiAwLjExMjU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTAsXG4gICAgICAgIGdmcDogMC4wMTUwNDM5LFxuICAgICAgICByb2ZmOiAwLjA3ODc4NDIsXG4gICAgICAgIHJvbjogMC4xMDk3MDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAxNTgxNTYsXG4gICAgICAgIHJvZmY6IDAuMDc2OTUzLFxuICAgICAgICByb246IDAuMTA3MTQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNTAsXG4gICAgICAgIGdmcDogMC4wMTY1NjQ1LFxuICAgICAgICByb2ZmOiAwLjA3NTMwNDksXG4gICAgICAgIHJvbjogMC4xMDQ4NTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAxNzI4NTMsXG4gICAgICAgIHJvZmY6IDAuMDczODI1NyxcbiAgICAgICAgcm9uOiAwLjEwMjgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTAsXG4gICAgICAgIGdmcDogMC4wMTc5NzMzLFxuICAgICAgICByb2ZmOiAwLjA3MjUwMTgsXG4gICAgICAgIHJvbjogMC4xMDEwMTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAxODYyNDgsXG4gICAgICAgIHJvZmY6IDAuMDcxMzE5NixcbiAgICAgICAgcm9uOiAwLjA5OTQxMjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAxOTIzNzMsXG4gICAgICAgIHJvZmY6IDAuMDcwMjY2MyxcbiAgICAgICAgcm9uOiAwLjA5ODAwNDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAxOTgwOTEsXG4gICAgICAgIHJvZmY6IDAuMDY5MzI5NCxcbiAgICAgICAgcm9uOiAwLjA5Njc2ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMDMzOTgsXG4gICAgICAgIHJvZmY6IDAuMDY4NDk3MixcbiAgICAgICAgcm9uOiAwLjA5NTY4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDAwLFxuICAgICAgICBnZnA6IDAuMDIwODI5NixcbiAgICAgICAgcm9mZjogMC4wNjc3NTg3LFxuICAgICAgICByb246IDAuMDk0NzQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NTAsXG4gICAgICAgIGdmcDogMC4wMjEyNzk0LFxuICAgICAgICByb2ZmOiAwLjA2NzEwMzYsXG4gICAgICAgIHJvbjogMC4wOTM5MzM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDAsXG4gICAgICAgIGdmcDogMC4wMjE2OTA5LFxuICAgICAgICByb2ZmOiAwLjA2NjUyMjUsXG4gICAgICAgIHJvbjogMC4wOTMyMzEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTAsXG4gICAgICAgIGdmcDogMC4wMjIwNjYzLFxuICAgICAgICByb2ZmOiAwLjA2NjAwNjYsXG4gICAgICAgIHJvbjogMC4wOTI2Mjg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDAsXG4gICAgICAgIGdmcDogMC4wMjI0MDc4LFxuICAgICAgICByb2ZmOiAwLjA2NTU0OCxcbiAgICAgICAgcm9uOiAwLjA5MjExNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMjcxODMsXG4gICAgICAgIHJvZmY6IDAuMDY1MTM5NSxcbiAgICAgICAgcm9uOiAwLjA5MTY4MDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMzAwMDMsXG4gICAgICAgIHJvZmY6IDAuMDY0Nzc0NixcbiAgICAgICAgcm9uOiAwLjA5MTMxNjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMzI1NjcsXG4gICAgICAgIHJvZmY6IDAuMDY0NDQ3NixcbiAgICAgICAgcm9uOiAwLjA5MTAxMzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMzQ5MDIsXG4gICAgICAgIHJvZmY6IDAuMDY0MTUzMyxcbiAgICAgICAgcm9uOiAwLjA5MDc2NTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMzcwMzMsXG4gICAgICAgIHJvZmY6IDAuMDYzODg3MSxcbiAgICAgICAgcm9uOiAwLjA5MDU2NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMzg5ODYsXG4gICAgICAgIHJvZmY6IDAuMDYzNjQ0OCxcbiAgICAgICAgcm9uOiAwLjA5MDQxMDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNDA3ODMsXG4gICAgICAgIHJvZmY6IDAuMDYzNDIyOSxcbiAgICAgICAgcm9uOiAwLjA5MDI5MjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNDI0NDYsXG4gICAgICAgIHJvZmY6IDAuMDYzMjE4MixcbiAgICAgICAgcm9uOiAwLjA5MDIwODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNDM5OTUsXG4gICAgICAgIHJvZmY6IDAuMDYzMDI3OSxcbiAgICAgICAgcm9uOiAwLjA5MDE1NThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNDU0NDcsXG4gICAgICAgIHJvZmY6IDAuMDYyODQ5NSxcbiAgICAgICAgcm9uOiAwLjA5MDEzMDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNDY4MixcbiAgICAgICAgcm9mZjogMC4wNjI2ODA3LFxuICAgICAgICByb246IDAuMDkwMTI5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjAwLFxuICAgICAgICBnZnA6IDAuMDI0ODEyNyxcbiAgICAgICAgcm9mZjogMC4wNjI1MTk4LFxuICAgICAgICByb246IDAuMDkwMTUwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjUwLFxuICAgICAgICBnZnA6IDAuMDI0OTM4MyxcbiAgICAgICAgcm9mZjogMC4wNjIzNjQ5LFxuICAgICAgICByb246IDAuMDkwMTkyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzAwLFxuICAgICAgICBnZnA6IDAuMDI1MDYsXG4gICAgICAgIHJvZmY6IDAuMDYyMjE0NyxcbiAgICAgICAgcm9uOiAwLjA5MDI1MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNTE3ODcsXG4gICAgICAgIHJvZmY6IDAuMDYyMDY3NyxcbiAgICAgICAgcm9uOiAwLjA5MDMzMDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNTI5NTcsXG4gICAgICAgIHJvZmY6IDAuMDYxOTIyOSxcbiAgICAgICAgcm9uOiAwLjA5MDQyNDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNTQxMTYsXG4gICAgICAgIHJvZmY6IDAuMDYxNzc5MSxcbiAgICAgICAgcm9uOiAwLjA5MDUzNDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNTUyNzQsXG4gICAgICAgIHJvZmY6IDAuMDYxNjM1NCxcbiAgICAgICAgcm9uOiAwLjA5MDY1ODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNTY0MzgsXG4gICAgICAgIHJvZmY6IDAuMDYxNDkxMSxcbiAgICAgICAgcm9uOiAwLjA5MDc5NjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNTc2MTYsXG4gICAgICAgIHJvZmY6IDAuMDYxMzQ1MyxcbiAgICAgICAgcm9uOiAwLjA5MDk0NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNTg4MTIsXG4gICAgICAgIHJvZmY6IDAuMDYxMTk3MyxcbiAgICAgICAgcm9uOiAwLjA5MTExMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzAwLFxuICAgICAgICBnZnA6IDAuMDI2MDAzNSxcbiAgICAgICAgcm9mZjogMC4wNjEwNDY3LFxuICAgICAgICByb246IDAuMDkxMjg5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzUwLFxuICAgICAgICBnZnA6IDAuMDI2MTI4OCxcbiAgICAgICAgcm9mZjogMC4wNjA4OTI3LFxuICAgICAgICByb246IDAuMDkxNDc5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODAwLFxuICAgICAgICBnZnA6IDAuMDI2MjU3OCxcbiAgICAgICAgcm9mZjogMC4wNjA3MzQ4LFxuICAgICAgICByb246IDAuMDkxNjgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODUwLFxuICAgICAgICBnZnA6IDAuMDI2MzkwOSxcbiAgICAgICAgcm9mZjogMC4wNjA1NzI3LFxuICAgICAgICByb246IDAuMDkxODk5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzOTAwLFxuICAgICAgICBnZnA6IDAuMDI2NTI4NyxcbiAgICAgICAgcm9mZjogMC4wNjA0MDU3LFxuICAgICAgICByb246IDAuMDkyMTI4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzOTUwLFxuICAgICAgICBnZnA6IDAuMDI2NjcxNyxcbiAgICAgICAgcm9mZjogMC4wNjAyMzM2LFxuICAgICAgICByb246IDAuMDkyMzcxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDAwLFxuICAgICAgICBnZnA6IDAuMDI2ODIwMyxcbiAgICAgICAgcm9mZjogMC4wNjAwNTU5LFxuICAgICAgICByb246IDAuMDkyNjI3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDUwLFxuICAgICAgICBnZnA6IDAuMDI2OTc1LFxuICAgICAgICByb2ZmOiAwLjA1OTg3MjEsXG4gICAgICAgIHJvbjogMC4wOTI4OTgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxMDAsXG4gICAgICAgIGdmcDogMC4wMjcxMzYzLFxuICAgICAgICByb2ZmOiAwLjA1OTY4MTksXG4gICAgICAgIHJvbjogMC4wOTMxODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxNTAsXG4gICAgICAgIGdmcDogMC4wMjczMDQ3LFxuICAgICAgICByb2ZmOiAwLjA1OTQ4NSxcbiAgICAgICAgcm9uOiAwLjA5MzQ4MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNzQ4MDgsXG4gICAgICAgIHJvZmY6IDAuMDU5MjgxLFxuICAgICAgICByb246IDAuMDkzNzk5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MjUwLFxuICAgICAgICBnZnA6IDAuMDI3NjY1LFxuICAgICAgICByb2ZmOiAwLjA1OTA2OTUsXG4gICAgICAgIHJvbjogMC4wOTQxMzExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQzMDAsXG4gICAgICAgIGdmcDogMC4wMjc4NTc4LFxuICAgICAgICByb2ZmOiAwLjA1ODg1MDMsXG4gICAgICAgIHJvbjogMC4wOTQ0Nzk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQzNTAsXG4gICAgICAgIGdmcDogMC4wMjgwNTk5LFxuICAgICAgICByb2ZmOiAwLjA1ODYyMjksXG4gICAgICAgIHJvbjogMC4wOTQ4NDY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ0MDAsXG4gICAgICAgIGdmcDogMC4wMjgyNzE3LFxuICAgICAgICByb2ZmOiAwLjA1ODM4NyxcbiAgICAgICAgcm9uOiAwLjA5NTIzMTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAyODQ5NCxcbiAgICAgICAgcm9mZjogMC4wNTgxNDIzLFxuICAgICAgICByb246IDAuMDk1NjM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1MDAsXG4gICAgICAgIGdmcDogMC4wMjg3MjczLFxuICAgICAgICByb2ZmOiAwLjA1Nzg4ODUsXG4gICAgICAgIHJvbjogMC4wOTYwNjA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1NTAsXG4gICAgICAgIGdmcDogMC4wMjg5NzI0LFxuICAgICAgICByb2ZmOiAwLjA1NzYyNTIsXG4gICAgICAgIHJvbjogMC4wOTY1MDY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2MDAsXG4gICAgICAgIGdmcDogMC4wMjkyMjk5LFxuICAgICAgICByb2ZmOiAwLjA1NzM1MjIsXG4gICAgICAgIHJvbjogMC4wOTY5NzUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2NTAsXG4gICAgICAgIGdmcDogMC4wMjk1MDA1LFxuICAgICAgICByb2ZmOiAwLjA1NzA2ODksXG4gICAgICAgIHJvbjogMC4wOTc0NjcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ3MDAsXG4gICAgICAgIGdmcDogMC4wMjk3ODUyLFxuICAgICAgICByb2ZmOiAwLjA1Njc3NTMsXG4gICAgICAgIHJvbjogMC4wOTc5ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMDA4NDcsXG4gICAgICAgIHJvZmY6IDAuMDU2NDcwOCxcbiAgICAgICAgcm9uOiAwLjA5ODUyNjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAzMDM5OTksXG4gICAgICAgIHJvZmY6IDAuMDU2MTU1MixcbiAgICAgICAgcm9uOiAwLjA5OTA5NzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMDczMTksXG4gICAgICAgIHJvZmY6IDAuMDU1ODI4MixcbiAgICAgICAgcm9uOiAwLjA5OTY5NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAzMTA4MTYsXG4gICAgICAgIHJvZmY6IDAuMDU1NDg5NCxcbiAgICAgICAgcm9uOiAwLjEwMDMyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0OTUwLFxuICAgICAgICBnZnA6IDAuMDMxNDUwMixcbiAgICAgICAgcm9mZjogMC4wNTUxMzg2LFxuICAgICAgICByb246IDAuMTAwOTg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwMDAsXG4gICAgICAgIGdmcDogMC4wMzE4Mzg3LFxuICAgICAgICByb2ZmOiAwLjA1NDc3NTQsXG4gICAgICAgIHJvbjogMC4xMDE2ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMjI0ODYsXG4gICAgICAgIHJvZmY6IDAuMDU0Mzk5NSxcbiAgICAgICAgcm9uOiAwLjEwMjQxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTAwLFxuICAgICAgICBnZnA6IDAuMDMyNjgxLFxuICAgICAgICByb2ZmOiAwLjA1NDAxMDUsXG4gICAgICAgIHJvbjogMC4xMDMxODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMzEzNzUsXG4gICAgICAgIHJvZmY6IDAuMDUzNjA4MyxcbiAgICAgICAgcm9uOiAwLjEwMzk5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjAwLFxuICAgICAgICBnZnA6IDAuMDMzNjE5NyxcbiAgICAgICAgcm9mZjogMC4wNTMxOTI2LFxuICAgICAgICByb246IDAuMTA0ODUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUyNTAsXG4gICAgICAgIGdmcDogMC4wMzQxMjkxLFxuICAgICAgICByb2ZmOiAwLjA1Mjc2MyxcbiAgICAgICAgcm9uOiAwLjEwNTc1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MzAwLFxuICAgICAgICBnZnA6IDAuMDM0NjY3NyxcbiAgICAgICAgcm9mZjogMC4wNTIzMTkyLFxuICAgICAgICByb246IDAuMTA2Njk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUzNTAsXG4gICAgICAgIGdmcDogMC4wMzUyMzcyLFxuICAgICAgICByb2ZmOiAwLjA1MTg2MTIsXG4gICAgICAgIHJvbjogMC4xMDc2OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAzNTgzOTgsXG4gICAgICAgIHJvZmY6IDAuMDUxMzg4NixcbiAgICAgICAgcm9uOiAwLjEwODc0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDUwLFxuICAgICAgICBnZnA6IDAuMDM2NDc3NyxcbiAgICAgICAgcm9mZjogMC4wNTA5MDEyLFxuICAgICAgICByb246IDAuMTA5ODUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MDAsXG4gICAgICAgIGdmcDogMC4wMzcxNTM0LFxuICAgICAgICByb2ZmOiAwLjA1MDM5ODksXG4gICAgICAgIHJvbjogMC4xMTEwMjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAzNzg2OTMsXG4gICAgICAgIHJvZmY6IDAuMDQ5ODgxNCxcbiAgICAgICAgcm9uOiAwLjExMjI1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjAwLFxuICAgICAgICBnZnA6IDAuMDM4NjI4NCxcbiAgICAgICAgcm9mZjogMC4wNDkzNDg3LFxuICAgICAgICByb246IDAuMTEzNTU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU2NTAsXG4gICAgICAgIGdmcDogMC4wMzk0MzM2LFxuICAgICAgICByb2ZmOiAwLjA0ODgwMDcsXG4gICAgICAgIHJvbjogMC4xMTQ5MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTcwMCxcbiAgICAgICAgZ2ZwOiAwLjA0MDI4ODIsXG4gICAgICAgIHJvZmY6IDAuMDQ4MjM3MixcbiAgICAgICAgcm9uOiAwLjExNjM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3NTAsXG4gICAgICAgIGdmcDogMC4wNDExOTU4LFxuICAgICAgICByb2ZmOiAwLjA0NzY1ODMsXG4gICAgICAgIHJvbjogMC4xMTc5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTgwMCxcbiAgICAgICAgZ2ZwOiAwLjA0MjE2MDEsXG4gICAgICAgIHJvZmY6IDAuMDQ3MDY0LFxuICAgICAgICByb246IDAuMTE5NTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4NTAsXG4gICAgICAgIGdmcDogMC4wNDMxODUyLFxuICAgICAgICByb2ZmOiAwLjA0NjQ1NDIsXG4gICAgICAgIHJvbjogMC4xMjEyNDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjA0NDI3NTYsXG4gICAgICAgIHJvZmY6IDAuMDQ1ODI5MixcbiAgICAgICAgcm9uOiAwLjEyMzA2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1OTUwLFxuICAgICAgICBnZnA6IDAuMDQ1NDM2MixcbiAgICAgICAgcm9mZjogMC4wNDUxODksXG4gICAgICAgIHJvbjogMC4xMjQ5ODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjA0NjY3MjEsXG4gICAgICAgIHJvZmY6IDAuMDQ0NTMzOCxcbiAgICAgICAgcm9uOiAwLjEyNzAxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDUwLFxuICAgICAgICBnZnA6IDAuMDQ3OTg5LFxuICAgICAgICByb2ZmOiAwLjA0Mzg2MzksXG4gICAgICAgIHJvbjogMC4xMjkxNjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjEwMCxcbiAgICAgICAgZ2ZwOiAwLjA0OTM5MjksXG4gICAgICAgIHJvZmY6IDAuMDQzMTc5NSxcbiAgICAgICAgcm9uOiAwLjEzMTQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYxNTAsXG4gICAgICAgIGdmcDogMC4wNTA4OTA2LFxuICAgICAgICByb2ZmOiAwLjA0MjQ4MTEsXG4gICAgICAgIHJvbjogMC4xMzM4NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjA1MjQ4OSxcbiAgICAgICAgcm9mZjogMC4wNDE3NjksXG4gICAgICAgIHJvbjogMC4xMzY0MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjA1NDE5NixcbiAgICAgICAgcm9mZjogMC4wNDEwNDM4LFxuICAgICAgICByb246IDAuMTM5MTU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYzMDAsXG4gICAgICAgIGdmcDogMC4wNTYwMTk4LFxuICAgICAgICByb2ZmOiAwLjA0MDMwNixcbiAgICAgICAgcm9uOiAwLjE0MjA0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MzUwLFxuICAgICAgICBnZnA6IDAuMDU3OTY5NSxcbiAgICAgICAgcm9mZjogMC4wMzk1NTYxLFxuICAgICAgICByb246IDAuMTQ1MTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0MDAsXG4gICAgICAgIGdmcDogMC4wNjAwNTQ3LFxuICAgICAgICByb2ZmOiAwLjAzODc5NSxcbiAgICAgICAgcm9uOiAwLjE0ODM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0NTAsXG4gICAgICAgIGdmcDogMC4wNjIyODYxLFxuICAgICAgICByb2ZmOiAwLjAzODAyMzIsXG4gICAgICAgIHJvbjogMC4xNTE4NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjA2NDY3NDgsXG4gICAgICAgIHJvZmY6IDAuMDM3MjQxNyxcbiAgICAgICAgcm9uOiAwLjE1NTUzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTUwLFxuICAgICAgICBnZnA6IDAuMDY3MjMzMSxcbiAgICAgICAgcm9mZjogMC4wMzY0NTE0LFxuICAgICAgICByb246IDAuMTU5NDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjA2OTk3MzksXG4gICAgICAgIHJvZmY6IDAuMDM1NjUzLFxuICAgICAgICByb246IDAuMTYzNjE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY2NTAsXG4gICAgICAgIGdmcDogMC4wNzI5MTE0LFxuICAgICAgICByb2ZmOiAwLjAzNDg0NzgsXG4gICAgICAgIHJvbjogMC4xNjgwNTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjcwMCxcbiAgICAgICAgZ2ZwOiAwLjA3NjA2MDUsXG4gICAgICAgIHJvZmY6IDAuMDM0MDM2NixcbiAgICAgICAgcm9uOiAwLjE3Mjc3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NzUwLFxuICAgICAgICBnZnA6IDAuMDc5NDM3MixcbiAgICAgICAgcm9mZjogMC4wMzMyMjA3LFxuICAgICAgICByb246IDAuMTc3Nzk2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY4MDAsXG4gICAgICAgIGdmcDogMC4wODMwNTg2LFxuICAgICAgICByb2ZmOiAwLjAzMjQwMTIsXG4gICAgICAgIHJvbjogMC4xODMxNDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjg1MCxcbiAgICAgICAgZ2ZwOiAwLjA4Njk0MyxcbiAgICAgICAgcm9mZjogMC4wMzE1NzkyLFxuICAgICAgICByb246IDAuMTg4ODM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY5MDAsXG4gICAgICAgIGdmcDogMC4wOTExMDk1LFxuICAgICAgICByb2ZmOiAwLjAzMDc1NixcbiAgICAgICAgcm9uOiAwLjE5NDg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2OTUwLFxuICAgICAgICBnZnA6IDAuMDk1NTc4NCxcbiAgICAgICAgcm9mZjogMC4wMjk5MzI5LFxuICAgICAgICByb246IDAuMjAxMzQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMDAsXG4gICAgICAgIGdmcDogMC4xMDAzNzEsXG4gICAgICAgIHJvZmY6IDAuMDI5MTExMSxcbiAgICAgICAgcm9uOiAwLjIwODIwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDUwLFxuICAgICAgICBnZnA6IDAuMTA1NTEsXG4gICAgICAgIHJvZmY6IDAuMDI4MjkyLFxuICAgICAgICByb246IDAuMjE1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MTAwLFxuICAgICAgICBnZnA6IDAuMTExMDE5LFxuICAgICAgICByb2ZmOiAwLjAyNzQ3NjcsXG4gICAgICAgIHJvbjogMC4yMjMyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MTUwLFxuICAgICAgICBnZnA6IDAuMTE2OTIxLFxuICAgICAgICByb2ZmOiAwLjAyNjY2NjUsXG4gICAgICAgIHJvbjogMC4yMzE1MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzIwMCxcbiAgICAgICAgZ2ZwOiAwLjEyMzI0MSxcbiAgICAgICAgcm9mZjogMC4wMjU4NjI4LFxuICAgICAgICByb246IDAuMjQwMjYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcyNTAsXG4gICAgICAgIGdmcDogMC4xMzAwMDUsXG4gICAgICAgIHJvZmY6IDAuMDI1MDY2OCxcbiAgICAgICAgcm9uOiAwLjI0OTU1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MzAwLFxuICAgICAgICBnZnA6IDAuMTM3MjM4LFxuICAgICAgICByb2ZmOiAwLjAyNDI3OTUsXG4gICAgICAgIHJvbjogMC4yNTkzOTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzM1MCxcbiAgICAgICAgZ2ZwOiAwLjE0NDk2NyxcbiAgICAgICAgcm9mZjogMC4wMjM1MDIyLFxuICAgICAgICByb246IDAuMjY5ODI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc0MDAsXG4gICAgICAgIGdmcDogMC4xNTMyMTUsXG4gICAgICAgIHJvZmY6IDAuMDIyNzM1OSxcbiAgICAgICAgcm9uOiAwLjI4MDg0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDUwLFxuICAgICAgICBnZnA6IDAuMTYyMDA5LFxuICAgICAgICByb2ZmOiAwLjAyMTk4MTcsXG4gICAgICAgIHJvbjogMC4yOTI0ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzUwMCxcbiAgICAgICAgZ2ZwOiAwLjE3MTM3MSxcbiAgICAgICAgcm9mZjogMC4wMjEyNDA1LFxuICAgICAgICByb246IDAuMzA0NzQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1NTAsXG4gICAgICAgIGdmcDogMC4xODEzMjUsXG4gICAgICAgIHJvZmY6IDAuMDIwNTEzMixcbiAgICAgICAgcm9uOiAwLjMxNzYzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NjAwLFxuICAgICAgICBnZnA6IDAuMTkxODg5LFxuICAgICAgICByb2ZmOiAwLjAxOTgwMDYsXG4gICAgICAgIHJvbjogMC4zMzExNjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzY1MCxcbiAgICAgICAgZ2ZwOiAwLjIwMzA4MyxcbiAgICAgICAgcm9mZjogMC4wMTkxMDMzLFxuICAgICAgICByb246IDAuMzQ1MzE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc3MDAsXG4gICAgICAgIGdmcDogMC4yMTQ5MjEsXG4gICAgICAgIHJvZmY6IDAuMDE4NDIyMSxcbiAgICAgICAgcm9uOiAwLjM2MDA4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NzUwLFxuICAgICAgICBnZnA6IDAuMjI3NDE0LFxuICAgICAgICByb2ZmOiAwLjAxNzc1NzQsXG4gICAgICAgIHJvbjogMC4zNzU0NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzgwMCxcbiAgICAgICAgZ2ZwOiAwLjI0MDU2OCxcbiAgICAgICAgcm9mZjogMC4wMTcxMDk3LFxuICAgICAgICByb246IDAuMzkxMzU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc4NTAsXG4gICAgICAgIGdmcDogMC4yNTQzODcsXG4gICAgICAgIHJvZmY6IDAuMDE2NDc5MyxcbiAgICAgICAgcm9uOiAwLjQwNzc4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTAwLFxuICAgICAgICBnZnA6IDAuMjY4ODY2LFxuICAgICAgICByb2ZmOiAwLjAxNTg2NjcsXG4gICAgICAgIHJvbjogMC40MjQ2NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzk1MCxcbiAgICAgICAgZ2ZwOiAwLjI4Mzk5NyxcbiAgICAgICAgcm9mZjogMC4wMTUyNzE5LFxuICAgICAgICByb246IDAuNDQxOTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwMDAsXG4gICAgICAgIGdmcDogMC4yOTk3NjUsXG4gICAgICAgIHJvZmY6IDAuMDE0Njk1MSxcbiAgICAgICAgcm9uOiAwLjQ1OTQ5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDUwLFxuICAgICAgICBnZnA6IDAuMzE2MTQ2LFxuICAgICAgICByb2ZmOiAwLjAxNDEzNjMsXG4gICAgICAgIHJvbjogMC40NzcyNTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODEwMCxcbiAgICAgICAgZ2ZwOiAwLjMzMzExMyxcbiAgICAgICAgcm9mZjogMC4wMTM1OTU2LFxuICAgICAgICByb246IDAuNDk1MTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxNTAsXG4gICAgICAgIGdmcDogMC4zNTA2MyxcbiAgICAgICAgcm9mZjogMC4wMTMwNzI5LFxuICAgICAgICByb246IDAuNTEyOTQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyMDAsXG4gICAgICAgIGdmcDogMC4zNjg2NTQsXG4gICAgICAgIHJvZmY6IDAuMDEyNTY4LFxuICAgICAgICByb246IDAuNTMwNjMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyNTAsXG4gICAgICAgIGdmcDogMC4zODcxMzYsXG4gICAgICAgIHJvZmY6IDAuMDEyMDgwOCxcbiAgICAgICAgcm9uOiAwLjU0ODAzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MzAwLFxuICAgICAgICBnZnA6IDAuNDA2MDIxLFxuICAgICAgICByb2ZmOiAwLjAxMTYxMTEsXG4gICAgICAgIHJvbjogMC41NjUwMzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODM1MCxcbiAgICAgICAgZ2ZwOiAwLjQyNTI0OCxcbiAgICAgICAgcm9mZjogMC4wMTExNTg1LFxuICAgICAgICByb246IDAuNTgxNTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0MDAsXG4gICAgICAgIGdmcDogMC40NDQ3NTIsXG4gICAgICAgIHJvZmY6IDAuMDEwNzIyOCxcbiAgICAgICAgcm9uOiAwLjU5NzMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0NTAsXG4gICAgICAgIGdmcDogMC40NjQ0NjQsXG4gICAgICAgIHJvZmY6IDAuMDEwMzAzNixcbiAgICAgICAgcm9uOiAwLjYxMjQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MDAsXG4gICAgICAgIGdmcDogMC40ODQzMSxcbiAgICAgICAgcm9mZjogMC4wMDk5MDA1NCxcbiAgICAgICAgcm9uOiAwLjYyNjY5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTUwLFxuICAgICAgICBnZnA6IDAuNTA0MjE4LFxuICAgICAgICByb2ZmOiAwLjAwOTUxMzI2LFxuICAgICAgICByb246IDAuNjQwMTA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg2MDAsXG4gICAgICAgIGdmcDogMC41MjQxMTQsXG4gICAgICAgIHJvZmY6IDAuMDA5MTQxMzMsXG4gICAgICAgIHJvbjogMC42NTI2MjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODY1MCxcbiAgICAgICAgZ2ZwOiAwLjU0MzkyMyxcbiAgICAgICAgcm9mZjogMC4wMDg3ODQzLFxuICAgICAgICByb246IDAuNjY0MjQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3MDAsXG4gICAgICAgIGdmcDogMC41NjM1NzUsXG4gICAgICAgIHJvZmY6IDAuMDA4NDQxNzMsXG4gICAgICAgIHJvbjogMC42NzQ5NzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODc1MCxcbiAgICAgICAgZ2ZwOiAwLjU4MzAwMSxcbiAgICAgICAgcm9mZjogMC4wMDgxMTMxNixcbiAgICAgICAgcm9uOiAwLjY4NDg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4MDAsXG4gICAgICAgIGdmcDogMC42MDIxMzYsXG4gICAgICAgIHJvZmY6IDAuMDA3Nzk4MTIsXG4gICAgICAgIHJvbjogMC42OTM5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODg1MCxcbiAgICAgICAgZ2ZwOiAwLjYyMDkxOSxcbiAgICAgICAgcm9mZjogMC4wMDc0OTYxNSxcbiAgICAgICAgcm9uOiAwLjcwMjIyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4OTAwLFxuICAgICAgICBnZnA6IDAuNjM5Mjk3LFxuICAgICAgICByb2ZmOiAwLjAwNzIwNjc5LFxuICAgICAgICByb246IDAuNzA5ODI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5NTAsXG4gICAgICAgIGdmcDogMC42NTcyMjEsXG4gICAgICAgIHJvZmY6IDAuMDA2OTI5NTcsXG4gICAgICAgIHJvbjogMC43MTY3ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjY3NDY0NyxcbiAgICAgICAgcm9mZjogMC4wMDY2NjQwMyxcbiAgICAgICAgcm9uOiAwLjcyMzE2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDUwLFxuICAgICAgICBnZnA6IDAuNjkxNTM5LFxuICAgICAgICByb2ZmOiAwLjAwNjQwOTczLFxuICAgICAgICByb246IDAuNzI5MDAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkxMDAsXG4gICAgICAgIGdmcDogMC43MDc4NjYsXG4gICAgICAgIHJvZmY6IDAuMDA2MTY2MjMsXG4gICAgICAgIHJvbjogMC43MzQzNThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTE1MCxcbiAgICAgICAgZ2ZwOiAwLjcyMzYwNCxcbiAgICAgICAgcm9mZjogMC4wMDU5MzMxMSxcbiAgICAgICAgcm9uOiAwLjczOTI3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MjAwLFxuICAgICAgICBnZnA6IDAuNzM4NzM2LFxuICAgICAgICByb2ZmOiAwLjAwNTcwOTk1LFxuICAgICAgICByb246IDAuNzQzNzg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyNTAsXG4gICAgICAgIGdmcDogMC43NTMyNDksXG4gICAgICAgIHJvZmY6IDAuMDA1NDk2MzQsXG4gICAgICAgIHJvbjogMC43NDc5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTMwMCxcbiAgICAgICAgZ2ZwOiAwLjc2NzEzNSxcbiAgICAgICAgcm9mZjogMC4wMDUyOTE5MSxcbiAgICAgICAgcm9uOiAwLjc1MTc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzNTAsXG4gICAgICAgIGdmcDogMC43ODAzOTIsXG4gICAgICAgIHJvZmY6IDAuMDA1MDk2MjYsXG4gICAgICAgIHJvbjogMC43NTUyNjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTQwMCxcbiAgICAgICAgZ2ZwOiAwLjc5MzAyMyxcbiAgICAgICAgcm9mZjogMC4wMDQ5MDkwNCxcbiAgICAgICAgcm9uOiAwLjc1ODQ5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NDUwLFxuICAgICAgICBnZnA6IDAuODA1MDM0LFxuICAgICAgICByb2ZmOiAwLjAwNDcyOTksXG4gICAgICAgIHJvbjogMC43NjE0NzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTUwMCxcbiAgICAgICAgZ2ZwOiAwLjgxNjQzNCxcbiAgICAgICAgcm9mZjogMC4wMDQ1NTg1LFxuICAgICAgICByb246IDAuNzY0MjI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1NTAsXG4gICAgICAgIGdmcDogMC44MjcyMzUsXG4gICAgICAgIHJvZmY6IDAuMDA0Mzk0NTIsXG4gICAgICAgIHJvbjogMC43NjY3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NjAwLFxuICAgICAgICBnZnA6IDAuODM3NDU0LFxuICAgICAgICByb2ZmOiAwLjAwNDIzNzY0LFxuICAgICAgICByb246IDAuNzY5MDk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2NTAsXG4gICAgICAgIGdmcDogMC44NDcxMDgsXG4gICAgICAgIHJvZmY6IDAuMDA0MDg3NTYsXG4gICAgICAgIHJvbjogMC43NzEyNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTcwMCxcbiAgICAgICAgZ2ZwOiAwLjg1NjIxNSxcbiAgICAgICAgcm9mZjogMC4wMDM5NDQsXG4gICAgICAgIHJvbjogMC43NzMyNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTc1MCxcbiAgICAgICAgZ2ZwOiAwLjg2NDc5NSxcbiAgICAgICAgcm9mZjogMC4wMDM4MDY2OCxcbiAgICAgICAgcm9uOiAwLjc3NTA4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5ODAwLFxuICAgICAgICBnZnA6IDAuODcyODcxLFxuICAgICAgICByb2ZmOiAwLjAwMzY3NTM0LFxuICAgICAgICByb246IDAuNzc2NzgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk4NTAsXG4gICAgICAgIGdmcDogMC44ODA0NjIsXG4gICAgICAgIHJvZmY6IDAuMDAzNTQ5NzEsXG4gICAgICAgIHJvbjogMC43NzgzNDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTkwMCxcbiAgICAgICAgZ2ZwOiAwLjg4NzU5MyxcbiAgICAgICAgcm9mZjogMC4wMDM0Mjk1NixcbiAgICAgICAgcm9uOiAwLjc3OTc5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5OTUwLFxuICAgICAgICBnZnA6IDAuODk0Mjg1LFxuICAgICAgICByb2ZmOiAwLjAwMzMxNDY0LFxuICAgICAgICByb246IDAuNzgxMTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDAwLFxuICAgICAgICBnZnA6IDAuOTAwNTYsXG4gICAgICAgIHJvZmY6IDAuMDAzMjA0NzQsXG4gICAgICAgIHJvbjogMC43ODIzNzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwNTAsXG4gICAgICAgIGdmcDogMC45MDY0NDEsXG4gICAgICAgIHJvZmY6IDAuMDAzMDk5NjQsXG4gICAgICAgIHJvbjogMC43ODM1MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxMDAsXG4gICAgICAgIGdmcDogMC45MTE5NDgsXG4gICAgICAgIHJvZmY6IDAuMDAyOTk5MTQsXG4gICAgICAgIHJvbjogMC43ODQ1ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxNTAsXG4gICAgICAgIGdmcDogMC45MTcxMDMsXG4gICAgICAgIHJvZmY6IDAuMDAyOTAzMDIsXG4gICAgICAgIHJvbjogMC43ODU1NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyMDAsXG4gICAgICAgIGdmcDogMC45MjE5MjYsXG4gICAgICAgIHJvZmY6IDAuMDAyODExMTEsXG4gICAgICAgIHJvbjogMC43ODY0NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyNTAsXG4gICAgICAgIGdmcDogMC45MjY0MzcsXG4gICAgICAgIHJvZmY6IDAuMDAyNzIzMjMsXG4gICAgICAgIHJvbjogMC43ODczMTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzMDAsXG4gICAgICAgIGdmcDogMC45MzA2NTQsXG4gICAgICAgIHJvZmY6IDAuMDAyNjM5MTksXG4gICAgICAgIHJvbjogMC43ODgwOTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzNTAsXG4gICAgICAgIGdmcDogMC45MzQ1OTYsXG4gICAgICAgIHJvZmY6IDAuMDAyNTU4ODMsXG4gICAgICAgIHJvbjogMC43ODg4MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0MDAsXG4gICAgICAgIGdmcDogMC45MzgyNzksXG4gICAgICAgIHJvZmY6IDAuMDAyNDgxOTksXG4gICAgICAgIHJvbjogMC43ODk0ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0NTAsXG4gICAgICAgIGdmcDogMC45NDE3MjEsXG4gICAgICAgIHJvZmY6IDAuMDAyNDA4NTIsXG4gICAgICAgIHJvbjogMC43OTAxMDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MDAsXG4gICAgICAgIGdmcDogMC45NDQ5MzYsXG4gICAgICAgIHJvZmY6IDAuMDAyMzM4MjgsXG4gICAgICAgIHJvbjogMC43OTA2ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1NTAsXG4gICAgICAgIGdmcDogMC45NDc5NCxcbiAgICAgICAgcm9mZjogMC4wMDIyNzExMixcbiAgICAgICAgcm9uOiAwLjc5MTIxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDYwMCxcbiAgICAgICAgZ2ZwOiAwLjk1MDc0NSxcbiAgICAgICAgcm9mZjogMC4wMDIyMDY5LFxuICAgICAgICByb246IDAuNzkxNzE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNjUwLFxuICAgICAgICBnZnA6IDAuOTUzMzY2LFxuICAgICAgICByb2ZmOiAwLjAwMjE0NTUxLFxuICAgICAgICByb246IDAuNzkyMTc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzAwLFxuICAgICAgICBnZnA6IDAuOTU1ODE1LFxuICAgICAgICByb2ZmOiAwLjAwMjA4NjgxLFxuICAgICAgICByb246IDAuNzkyNjA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzUwLFxuICAgICAgICBnZnA6IDAuOTU4MTAzLFxuICAgICAgICByb2ZmOiAwLjAwMjAzMDY5LFxuICAgICAgICByb246IDAuNzkzMDA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwODAwLFxuICAgICAgICBnZnA6IDAuOTYwMjQsXG4gICAgICAgIHJvZmY6IDAuMDAxOTc3MDQsXG4gICAgICAgIHJvbjogMC43OTMzNzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4NTAsXG4gICAgICAgIGdmcDogMC45NjIyMzgsXG4gICAgICAgIHJvZmY6IDAuMDAxOTI1NzUsXG4gICAgICAgIHJvbjogMC43OTM3MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA5MDAsXG4gICAgICAgIGdmcDogMC45NjQxMDUsXG4gICAgICAgIHJvZmY6IDAuMDAxODc2NzEsXG4gICAgICAgIHJvbjogMC43OTQwNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA5NTAsXG4gICAgICAgIGdmcDogMC45NjU4NTEsXG4gICAgICAgIHJvZmY6IDAuMDAxODI5ODMsXG4gICAgICAgIHJvbjogMC43OTQzNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMDAsXG4gICAgICAgIGdmcDogMC45Njc0ODQsXG4gICAgICAgIHJvZmY6IDAuMDAxNzg1MDEsXG4gICAgICAgIHJvbjogMC43OTQ2MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwNTAsXG4gICAgICAgIGdmcDogMC45NjkwMTEsXG4gICAgICAgIHJvZmY6IDAuMDAxNzQyMTYsXG4gICAgICAgIHJvbjogMC43OTQ4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExMDAsXG4gICAgICAgIGdmcDogMC45NzA0NCxcbiAgICAgICAgcm9mZjogMC4wMDE3MDEyMSxcbiAgICAgICAgcm9uOiAwLjc5NTEyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk3MTc3NyxcbiAgICAgICAgcm9mZjogMC4wMDE2NjIwNSxcbiAgICAgICAgcm9uOiAwLjc5NTM1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk3MzAyOSxcbiAgICAgICAgcm9mZjogMC4wMDE2MjQ2MixcbiAgICAgICAgcm9uOiAwLjc5NTU2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk3NDIwMSxcbiAgICAgICAgcm9mZjogMC4wMDE1ODg4MyxcbiAgICAgICAgcm9uOiAwLjc5NTc2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk3NTI5OSxcbiAgICAgICAgcm9mZjogMC4wMDE1NTQ2MyxcbiAgICAgICAgcm9uOiAwLjc5NTk0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk3NjMyOCxcbiAgICAgICAgcm9mZjogMC4wMDE1MjE5MyxcbiAgICAgICAgcm9uOiAwLjc5NjEyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk3NzI5MyxcbiAgICAgICAgcm9mZjogMC4wMDE0OTA2NyxcbiAgICAgICAgcm9uOiAwLjc5NjI4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk3ODE5OCxcbiAgICAgICAgcm9mZjogMC4wMDE0NjA3OCxcbiAgICAgICAgcm9uOiAwLjc5NjQzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk3OTA0NyxcbiAgICAgICAgcm9mZjogMC4wMDE0MzIyMixcbiAgICAgICAgcm9uOiAwLjc5NjU3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk3OTg0NCxcbiAgICAgICAgcm9mZjogMC4wMDE0MDQ5MixcbiAgICAgICAgcm9uOiAwLjc5NjcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjAwLFxuICAgICAgICBnZnA6IDAuOTgwNTkyLFxuICAgICAgICByb2ZmOiAwLjAwMTM3ODgyLFxuICAgICAgICByb246IDAuNzk2ODM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjUwLFxuICAgICAgICBnZnA6IDAuOTgxMjk0LFxuICAgICAgICByb2ZmOiAwLjAwMTM1Mzg3LFxuICAgICAgICByb246IDAuNzk2OTUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzAwLFxuICAgICAgICBnZnA6IDAuOTgxOTU0LFxuICAgICAgICByb2ZmOiAwLjAwMTMzMDAyLFxuICAgICAgICByb246IDAuNzk3MDYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzUwLFxuICAgICAgICBnZnA6IDAuOTgyNTc1LFxuICAgICAgICByb2ZmOiAwLjAwMTMwNzIyLFxuICAgICAgICByb246IDAuNzk3MTY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODAwLFxuICAgICAgICBnZnA6IDAuOTgzMTU4LFxuICAgICAgICByb2ZmOiAwLjAwMTI4NTQzLFxuICAgICAgICByb246IDAuNzk3MjYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODUwLFxuICAgICAgICBnZnA6IDAuOTgzNzA3LFxuICAgICAgICByb2ZmOiAwLjAwMTI2NDYsXG4gICAgICAgIHJvbjogMC43OTczNTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5MDAsXG4gICAgICAgIGdmcDogMC45ODQyMjQsXG4gICAgICAgIHJvZmY6IDAuMDAxMjQ0NjksXG4gICAgICAgIHJvbjogMC43OTc0MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5NTAsXG4gICAgICAgIGdmcDogMC45ODQ3MSxcbiAgICAgICAgcm9mZjogMC4wMDEyMjU2NSxcbiAgICAgICAgcm9uOiAwLjc5NzUxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NTE2OCxcbiAgICAgICAgcm9mZjogMC4wMDEyMDc0NixcbiAgICAgICAgcm9uOiAwLjc5NzU5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NTYsXG4gICAgICAgIHJvZmY6IDAuMDAxMTkwMDcsXG4gICAgICAgIHJvbjogMC43OTc2NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxMDAsXG4gICAgICAgIGdmcDogMC45ODYwMDcsXG4gICAgICAgIHJvZmY6IDAuMDAxMTczNDUsXG4gICAgICAgIHJvbjogMC43OTc3MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxNTAsXG4gICAgICAgIGdmcDogMC45ODYzOTEsXG4gICAgICAgIHJvZmY6IDAuMDAxMTU3NTYsXG4gICAgICAgIHJvbjogMC43OTc3OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyMDAsXG4gICAgICAgIGdmcDogMC45ODY3NTMsXG4gICAgICAgIHJvZmY6IDAuMDAxMTQyMzgsXG4gICAgICAgIHJvbjogMC43OTc4NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyNTAsXG4gICAgICAgIGdmcDogMC45ODcwOTUsXG4gICAgICAgIHJvZmY6IDAuMDAxMTI3ODYsXG4gICAgICAgIHJvbjogMC43OTc5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDExMTM5OCxcbiAgICAgICAgcm9uOiAwLjc5Nzk2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NzcyMixcbiAgICAgICAgcm9mZjogMC4wMDExMDA3MixcbiAgICAgICAgcm9uOiAwLjc5ODAxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk4ODAxLFxuICAgICAgICByb2ZmOiAwLjAwMTA4ODA0LFxuICAgICAgICByb246IDAuNzk4MDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI0NTAsXG4gICAgICAgIGdmcDogMC45ODgyODIsXG4gICAgICAgIHJvZmY6IDAuMDAxMDc1OTMsXG4gICAgICAgIHJvbjogMC43OTgxMDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MDAsXG4gICAgICAgIGdmcDogMC45ODg1MzksXG4gICAgICAgIHJvZmY6IDAuMDAxMDY0MzUsXG4gICAgICAgIHJvbjogMC43OTgxNDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1NTAsXG4gICAgICAgIGdmcDogMC45ODg3ODIsXG4gICAgICAgIHJvZmY6IDAuMDAxMDUzMjgsXG4gICAgICAgIHJvbjogMC43OTgxODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2MDAsXG4gICAgICAgIGdmcDogMC45ODkwMTIsXG4gICAgICAgIHJvZmY6IDAuMDAxMDQyNjksXG4gICAgICAgIHJvbjogMC43OTgyMjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2NTAsXG4gICAgICAgIGdmcDogMC45ODkyMyxcbiAgICAgICAgcm9mZjogMC4wMDEwMzI1OCxcbiAgICAgICAgcm9uOiAwLjc5ODI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzAwLFxuICAgICAgICBnZnA6IDAuOTg5NDM3LFxuICAgICAgICByb2ZmOiAwLjAwMTAyMjkxLFxuICAgICAgICByb246IDAuNzk4MjkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzUwLFxuICAgICAgICBnZnA6IDAuOTg5NjMyLFxuICAgICAgICByb2ZmOiAwLjAwMTAxMzY3LFxuICAgICAgICByb246IDAuNzk4MzI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyODAwLFxuICAgICAgICBnZnA6IDAuOTg5ODE3LFxuICAgICAgICByb2ZmOiAwLjAwMTAwNDg0LFxuICAgICAgICByb246IDAuNzk4MzU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyODUwLFxuICAgICAgICBnZnA6IDAuOTg5OTkyLFxuICAgICAgICByb2ZmOiAwLjAwMDk5NjQwMSxcbiAgICAgICAgcm9uOiAwLjc5ODM4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MDE1OCxcbiAgICAgICAgcm9mZjogMC4wMDA5ODgzMzMsXG4gICAgICAgIHJvbjogMC43OTg0MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI5NTAsXG4gICAgICAgIGdmcDogMC45OTAzMTYsXG4gICAgICAgIHJvZmY6IDAuMDAwOTgwNjIxLFxuICAgICAgICByb246IDAuNzk4NDM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAwLFxuICAgICAgICBnZnA6IDAuOTkwNDY2LFxuICAgICAgICByb2ZmOiAwLjAwMDk3MzI0OSxcbiAgICAgICAgcm9uOiAwLjc5ODQ2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDYwNyxcbiAgICAgICAgcm9mZjogMC4wMDA5NjYyMDMsXG4gICAgICAgIHJvbjogMC43OTg0ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxMDAsXG4gICAgICAgIGdmcDogMC45OTA3NDIsXG4gICAgICAgIHJvZmY6IDAuMDAwOTU5NDY5LFxuICAgICAgICByb246IDAuNzk4NTA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMTUwLFxuICAgICAgICBnZnA6IDAuOTkwODcsXG4gICAgICAgIHJvZmY6IDAuMDAwOTUzMDMyLFxuICAgICAgICByb246IDAuNzk4NTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjAwLFxuICAgICAgICBnZnA6IDAuOTkwOTkxLFxuICAgICAgICByb2ZmOiAwLjAwMDk0Njg3OSxcbiAgICAgICAgcm9uOiAwLjc5ODU0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTEwNixcbiAgICAgICAgcm9mZjogMC4wMDA5NDA5OTksXG4gICAgICAgIHJvbjogMC43OTg1NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzMDAsXG4gICAgICAgIGdmcDogMC45OTEyMTYsXG4gICAgICAgIHJvZmY6IDAuMDAwOTM1Mzc4LFxuICAgICAgICByb246IDAuNzk4NTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzUwLFxuICAgICAgICBnZnA6IDAuOTkxMzIsXG4gICAgICAgIHJvZmY6IDAuMDAwOTMwMDA2LFxuICAgICAgICByb246IDAuNzk4NjAxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNDAwLFxuICAgICAgICBnZnA6IDAuOTkxNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDkyNDg3MSxcbiAgICAgICAgcm9uOiAwLjc5ODYxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTUxMyxcbiAgICAgICAgcm9mZjogMC4wMDA5MTk5NjQsXG4gICAgICAgIHJvbjogMC43OTg2MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MDAsXG4gICAgICAgIGdmcDogMC45OTE2MDIsXG4gICAgICAgIHJvZmY6IDAuMDAwOTE1MjczLFxuICAgICAgICByb246IDAuNzk4NjQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTUwLFxuICAgICAgICBnZnA6IDAuOTkxNjg3LFxuICAgICAgICByb2ZmOiAwLjAwMDkxMDc4OSxcbiAgICAgICAgcm9uOiAwLjc5ODY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNjAwLFxuICAgICAgICBnZnA6IDAuOTkxNzY4LFxuICAgICAgICByb2ZmOiAwLjAwMDkwNjUwNCxcbiAgICAgICAgcm9uOiAwLjc5ODY3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTg0NSxcbiAgICAgICAgcm9mZjogMC4wMDA5MDI0MDgsXG4gICAgICAgIHJvbjogMC43OTg2ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM3MDAsXG4gICAgICAgIGdmcDogMC45OTE5MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODk4NDkzLFxuICAgICAgICByb246IDAuNzk4Njk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNzUwLFxuICAgICAgICBnZnA6IDAuOTkxOTg3LFxuICAgICAgICByb2ZmOiAwLjAwMDg5NDc1MSxcbiAgICAgICAgcm9uOiAwLjc5ODcwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjA1NCxcbiAgICAgICAgcm9mZjogMC4wMDA4OTExNzQsXG4gICAgICAgIHJvbjogMC43OTg3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjExNyxcbiAgICAgICAgcm9mZjogMC4wMDA4ODc3NTYsXG4gICAgICAgIHJvbjogMC43OTg3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjE3NyxcbiAgICAgICAgcm9mZjogMC4wMDA4ODQ0ODksXG4gICAgICAgIHJvbjogMC43OTg3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjIzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4ODEzNjYsXG4gICAgICAgIHJvbjogMC43OTg3NDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwMDAsXG4gICAgICAgIGdmcDogMC45OTIyODgsXG4gICAgICAgIHJvZmY6IDAuMDAwODc4MzgxLFxuICAgICAgICByb246IDAuNzk4NzU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MDUwLFxuICAgICAgICBnZnA6IDAuOTkyMzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODc1NTI5LFxuICAgICAgICByb246IDAuNzk4NzY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MTAwLFxuICAgICAgICBnZnA6IDAuOTkyMzksXG4gICAgICAgIHJvZmY6IDAuMDAwODcyODAyLFxuICAgICAgICByb246IDAuNzk4Nzc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MTUwLFxuICAgICAgICBnZnA6IDAuOTkyNDM3LFxuICAgICAgICByb2ZmOiAwLjAwMDg3MDE5NixcbiAgICAgICAgcm9uOiAwLjc5ODc4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQ4MixcbiAgICAgICAgcm9mZjogMC4wMDA4Njc3MDYsXG4gICAgICAgIHJvbjogMC43OTg3ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQyNTAsXG4gICAgICAgIGdmcDogMC45OTI1MjQsXG4gICAgICAgIHJvZmY6IDAuMDAwODY1MzI1LFxuICAgICAgICByb246IDAuNzk4Nzk2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MzAwLFxuICAgICAgICBnZnA6IDAuOTkyNTY1LFxuICAgICAgICByb2ZmOiAwLjAwMDg2MzA1LFxuICAgICAgICByb246IDAuNzk4ODAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MzUwLFxuICAgICAgICBnZnA6IDAuOTkyNjA0LFxuICAgICAgICByb2ZmOiAwLjAwMDg2MDg3NSxcbiAgICAgICAgcm9uOiAwLjc5ODgwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjY0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTg3OTYsXG4gICAgICAgIHJvbjogMC43OTg4MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ0NTAsXG4gICAgICAgIGdmcDogMC45OTI2NzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODU2ODA5LFxuICAgICAgICByb246IDAuNzk4ODIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTAwLFxuICAgICAgICBnZnA6IDAuOTkyNzEsXG4gICAgICAgIHJvZmY6IDAuMDAwODU0OTEsXG4gICAgICAgIHJvbjogMC43OTg4MjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ1NTAsXG4gICAgICAgIGdmcDogMC45OTI3NDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODUzMDk1LFxuICAgICAgICByb246IDAuNzk4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NjAwLFxuICAgICAgICBnZnA6IDAuOTkyNzczLFxuICAgICAgICByb2ZmOiAwLjAwMDg1MTM2MSxcbiAgICAgICAgcm9uOiAwLjc5ODgzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjgwMixcbiAgICAgICAgcm9mZjogMC4wMDA4NDk3MDIsXG4gICAgICAgIHJvbjogMC43OTg4NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ3MDAsXG4gICAgICAgIGdmcDogMC45OTI4MyxcbiAgICAgICAgcm9mZjogMC4wMDA4NDgxMTgsXG4gICAgICAgIHJvbjogMC43OTg4NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ3NTAsXG4gICAgICAgIGdmcDogMC45OTI4NTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ2NjAzLFxuICAgICAgICByb246IDAuNzk4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ4MDAsXG4gICAgICAgIGdmcDogMC45OTI4ODIsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ1MTU1LFxuICAgICAgICByb246IDAuNzk4ODU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0ODUwLFxuICAgICAgICBnZnA6IDAuOTkyOTA2LFxuICAgICAgICByb2ZmOiAwLjAwMDg0Mzc3MixcbiAgICAgICAgcm9uOiAwLjc5ODg1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjkyOSxcbiAgICAgICAgcm9mZjogMC4wMDA4NDI0NDksXG4gICAgICAgIHJvbjogMC43OTg4NjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ5NTAsXG4gICAgICAgIGdmcDogMC45OTI5NTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODQxMTg1LFxuICAgICAgICByb246IDAuNzk4ODY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDAwLFxuICAgICAgICBnZnA6IDAuOTkyOTcyLFxuICAgICAgICByb2ZmOiAwLjAwMDgzOTk3NyxcbiAgICAgICAgcm9uOiAwLjc5ODg2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjk5MyxcbiAgICAgICAgcm9mZjogMC4wMDA4Mzg4MjIsXG4gICAgICAgIHJvbjogMC43OTg4NzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUxMDAsXG4gICAgICAgIGdmcDogMC45OTMwMTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODM3NzE5LFxuICAgICAgICByb246IDAuNzk4ODc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODM2NjY0LFxuICAgICAgICByb246IDAuNzk4ODc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMDQ4LFxuICAgICAgICByb2ZmOiAwLjAwMDgzNTY1NixcbiAgICAgICAgcm9uOiAwLjc5ODg4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA2NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzQ2OTIsXG4gICAgICAgIHJvbjogMC43OTg4ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUzMDAsXG4gICAgICAgIGdmcDogMC45OTMwOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzM3NzEsXG4gICAgICAgIHJvbjogMC43OTg4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUzNTAsXG4gICAgICAgIGdmcDogMC45OTMwOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODMyODkxLFxuICAgICAgICByb246IDAuNzk4ODg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODMyMDQ5LFxuICAgICAgICByb246IDAuNzk4ODkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMTI0LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMTI0NSxcbiAgICAgICAgcm9uOiAwLjc5ODg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzEzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MzA0NzYsXG4gICAgICAgIHJvbjogMC43OTg4OTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1NTAsXG4gICAgICAgIGdmcDogMC45OTMxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjk3NDIsXG4gICAgICAgIHJvbjogMC43OTg4OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU2MDAsXG4gICAgICAgIGdmcDogMC45OTMxNjIsXG4gICAgICAgIHJvZmY6IDAuMDAwODI5MDQsXG4gICAgICAgIHJvbjogMC43OTg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMTczLFxuICAgICAgICByb2ZmOiAwLjAwMDgyODM2OSxcbiAgICAgICAgcm9uOiAwLjc5ODkwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE4NCxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjc3MjcsXG4gICAgICAgIHJvbjogMC43OTg5MDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU3NTAsXG4gICAgICAgIGdmcDogMC45OTMxOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODI3MTE0LFxuICAgICAgICByb246IDAuNzk4OTA1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMjA1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNjUyOCxcbiAgICAgICAgcm9uOiAwLjc5ODkwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MjU5NjgsXG4gICAgICAgIHJvbjogMC43OTg5MDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU5MDAsXG4gICAgICAgIGdmcDogMC45OTMyMjMsXG4gICAgICAgIHJvZmY6IDAuMDAwODI1NDMzLFxuICAgICAgICByb246IDAuNzk4OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU5NTAsXG4gICAgICAgIGdmcDogMC45OTMyMzIsXG4gICAgICAgIHJvZmY6IDAuMDAwODI0OTIxLFxuICAgICAgICByb246IDAuNzk4OTExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMjQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgyNDQzMixcbiAgICAgICAgcm9uOiAwLjc5ODkxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI0OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjM5NjUsXG4gICAgICAgIHJvbjogMC43OTg5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYxMDAsXG4gICAgICAgIGdmcDogMC45OTMyNTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODIzNTE4LFxuICAgICAgICByb246IDAuNzk4OTE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMjYzLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMzA5MSxcbiAgICAgICAgcm9uOiAwLjc5ODkxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMjY4MyxcbiAgICAgICAgcm9uOiAwLjc5ODkxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI3NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjIyOTMsXG4gICAgICAgIHJvbjogMC43OTg5MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYzMDAsXG4gICAgICAgIGdmcDogMC45OTMyODMsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxOTIsXG4gICAgICAgIHJvbjogMC43OTg5MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYzNTAsXG4gICAgICAgIGdmcDogMC45OTMyODksXG4gICAgICAgIHJvZmY6IDAuMDAwODIxNTY0LFxuICAgICAgICByb246IDAuNzk4OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY0MDAsXG4gICAgICAgIGdmcDogMC45OTMyOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxMjI0LFxuICAgICAgICByb246IDAuNzk4OTIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzAxLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMDg5OCxcbiAgICAgICAgcm9uOiAwLjc5ODkyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMwNixcbiAgICAgICAgcm9mZjogMC4wMDA4MjA1ODcsXG4gICAgICAgIHJvbjogMC43OTg5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1NTAsXG4gICAgICAgIGdmcDogMC45OTMzMTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwMjksXG4gICAgICAgIHJvbjogMC43OTg5MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY2MDAsXG4gICAgICAgIGdmcDogMC45OTMzMTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwMDA2LFxuICAgICAgICByb246IDAuNzk4OTI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzIxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTczNCxcbiAgICAgICAgcm9uOiAwLjc5ODkyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMyNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTk0NzQsXG4gICAgICAgIHJvbjogMC43OTg5MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY3NTAsXG4gICAgICAgIGdmcDogMC45OTMzMjksXG4gICAgICAgIHJvZmY6IDAuMDAwODE5MjI2LFxuICAgICAgICByb246IDAuNzk4OTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMzMzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxODk4OSxcbiAgICAgICAgcm9uOiAwLjc5ODkyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTg3NjMsXG4gICAgICAgIHJvbjogMC43OTg5MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY5MDAsXG4gICAgICAgIGdmcDogMC45OTMzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4NTQ2LFxuICAgICAgICByb246IDAuNzk4OTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzQ0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxODMzOSxcbiAgICAgICAgcm9uOiAwLjc5ODkyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM0OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTgxNDEsXG4gICAgICAgIHJvbjogMC43OTg5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc5NTIsXG4gICAgICAgIHJvbjogMC43OTg5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc3NzEsXG4gICAgICAgIHJvbjogMC43OTg5MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcxNTAsXG4gICAgICAgIGdmcDogMC45OTMzNTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3NTk4LFxuICAgICAgICByb246IDAuNzk4OTMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3NDMzLFxuICAgICAgICByb246IDAuNzk4OTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzYyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzI3NixcbiAgICAgICAgcm9uOiAwLjc5ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTcxMjUsXG4gICAgICAgIHJvbjogMC43OTg5MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTczNTAsXG4gICAgICAgIGdmcDogMC45OTMzNjcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2OTgsXG4gICAgICAgIHJvbjogMC43OTg5MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc0MDAsXG4gICAgICAgIGdmcDogMC45OTMzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTY4NDMsXG4gICAgICAgIHJvbjogMC43OTg5MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc0NTAsXG4gICAgICAgIGdmcDogMC45OTMzNzIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2NzExLFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzc0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjU4NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3NixcbiAgICAgICAgcm9mZjogMC4wMDA4MTY0NjUsXG4gICAgICAgIHJvbjogMC43OTg5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc2MDAsXG4gICAgICAgIGdmcDogMC45OTMzNzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MzUsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc2NTAsXG4gICAgICAgIGdmcDogMC45OTMzOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTYyNCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTYxMzUsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc3NTAsXG4gICAgICAgIGdmcDogMC45OTMzODMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MDM0LFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMzg1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTkzOCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4NixcbiAgICAgICAgcm9mZjogMC4wMDA4MTU4NDcsXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc5MDAsXG4gICAgICAgIGdmcDogMC45OTMzODgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NzU5LFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzg5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTY3NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU1OTUsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwNTAsXG4gICAgICAgIGdmcDogMC45OTMzOTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NTE4LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzkzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTQ0NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUzNzUsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgyMDAsXG4gICAgICAgIGdmcDogMC45OTMzOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MzA5LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzk3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTI0NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUxODQsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgzNTAsXG4gICAgICAgIGdmcDogMC45OTMzOTksXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MTI1LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUwNyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MDE2LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDAxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDk2NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ5MTcsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0ODcsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0ODI2LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDc4MyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ3NDMsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NzA0LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDY2NyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ2MzEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1OTcsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1NjUsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1MzQsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1MDQsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQ3NixcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDQ5LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0MjMsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzOTgsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzNzUsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzNTIsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzMzEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDI5LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjcxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjUzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDIzNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyMDQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTg5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5OTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE3NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxNjEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTQ4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDEzNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMjMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTEyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDEwMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwOSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNzEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDYyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA1MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNDQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDM3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAyOSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMjIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDE1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMDIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTk2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk4NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NzksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTc0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk2OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NjQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTU2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk1MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTQ0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzNyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MzQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTMxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MjUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTIyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxNyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTEzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTA0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwMyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODkxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODMsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODczLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODczLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODczLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0ODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0OTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0OTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1ODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1OTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1OTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfVxuXTtcbmxldCBtb2RlbE9uRGF0YSA9IFtcbiAgICB7XG4gICAgICAgIHRpbWU6IDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9XG5dO1xubGV0IG1vZGVsT25PZmZEYXRhID0gW1xuICAgIHtcbiAgICAgICAgdGltZTogMCxcbiAgICAgICAgZ2ZwOiAwLjQwMDMyOSxcbiAgICAgICAgcm9mZjogMC40NjAyOTgsXG4gICAgICAgIHJvbjogMC42ODE2MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAsXG4gICAgICAgIGdmcDogMC4xNDc0OTksXG4gICAgICAgIHJvZmY6IDAuNTU4NjM4LFxuICAgICAgICByb246IDAuNjAxODU5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMCxcbiAgICAgICAgZ2ZwOiAwLjA1NDQ2OTQsXG4gICAgICAgIHJvZmY6IDAuNTM5MTEzLFxuICAgICAgICByb246IDAuNTQyNTE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMDI3NDYsXG4gICAgICAgIHJvZmY6IDAuNDk4NTI1LFxuICAgICAgICByb246IDAuNDk0Njc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNzczNjk0LFxuICAgICAgICByb2ZmOiAwLjQ1OTE0MixcbiAgICAgICAgcm9uOiAwLjQ1NDQ4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAsXG4gICAgICAgIGdmcDogMC4wMDMxNzMzNSxcbiAgICAgICAgcm9mZjogMC40MjQyMDYsXG4gICAgICAgIHJvbjogMC40MTk4NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwLFxuICAgICAgICBnZnA6IDAuMDAxNTQ4OSxcbiAgICAgICAgcm9mZjogMC4zOTM0NDIsXG4gICAgICAgIHJvbjogMC4zODk1MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwLFxuICAgICAgICBnZnA6IDAuMDAxMDExNTQsXG4gICAgICAgIHJvZmY6IDAuMzY2MTU0LFxuICAgICAgICByb246IDAuMzYyNjAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDg4MDQzMSxcbiAgICAgICAgcm9mZjogMC4zNDE3NDQsXG4gICAgICAgIHJvbjogMC4zMzg1MDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDUwLFxuICAgICAgICBnZnA6IDAuMDAwOTA1NzE3LFxuICAgICAgICByb2ZmOiAwLjMxOTc0OCxcbiAgICAgICAgcm9uOiAwLjMxNjc1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDAsXG4gICAgICAgIGdmcDogMC4wMDA5OTYxNDQsXG4gICAgICAgIHJvZmY6IDAuMjk5ODA0LFxuICAgICAgICByb246IDAuMjk3MDIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTExODg1LFxuICAgICAgICByb2ZmOiAwLjI4MTYzMyxcbiAgICAgICAgcm9uOiAwLjI3OTAxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAsXG4gICAgICAgIGdmcDogMC4wMDEyNjI0NyxcbiAgICAgICAgcm9mZjogMC4yNjUwMDksXG4gICAgICAgIHJvbjogMC4yNjI1MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwLFxuICAgICAgICBnZnA6IDAuMDAxNDIzNixcbiAgICAgICAgcm9mZjogMC4yNDk3NDgsXG4gICAgICAgIHJvbjogMC4yNDczNzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwLFxuICAgICAgICBnZnA6IDAuMDAxNjAxNzYsXG4gICAgICAgIHJvZmY6IDAuMjM1NzAxLFxuICAgICAgICByb246IDAuMjMzNDA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTc5NzU5LFxuICAgICAgICByb2ZmOiAwLjIyMjc0MixcbiAgICAgICAgcm9uOiAwLjIyMDUwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAsXG4gICAgICAgIGdmcDogMC4wMDIwMTIxLFxuICAgICAgICByb2ZmOiAwLjIxMDc2NCxcbiAgICAgICAgcm9uOiAwLjIwODU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMjI0NjQ2LFxuICAgICAgICByb2ZmOiAwLjE5OTY3OSxcbiAgICAgICAgcm9uOiAwLjE5NzQ4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDAsXG4gICAgICAgIGdmcDogMC4wMDI1MDE4NCxcbiAgICAgICAgcm9mZjogMC4xODk0MDksXG4gICAgICAgIHJvbjogMC4xODcyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTAsXG4gICAgICAgIGdmcDogMC4wMDI3NzkzNCxcbiAgICAgICAgcm9mZjogMC4xNzk4ODksXG4gICAgICAgIHJvbjogMC4xNzc2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAwLFxuICAgICAgICBnZnA6IDAuMDAzMDc5OTQsXG4gICAgICAgIHJvZmY6IDAuMTcxMDYsXG4gICAgICAgIHJvbjogMC4xNjg3ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMzQwNDQ0LFxuICAgICAgICByb2ZmOiAwLjE2Mjg3MixcbiAgICAgICAgcm9uOiAwLjE2MDUyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwLFxuICAgICAgICBnZnA6IDAuMDAzNzUzMzcsXG4gICAgICAgIHJvZmY6IDAuMTU1MjgzLFxuICAgICAgICByb246IDAuMTUyODM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTAsXG4gICAgICAgIGdmcDogMC4wMDQxMjY5NSxcbiAgICAgICAgcm9mZjogMC4xNDgyNTIsXG4gICAgICAgIHJvbjogMC4xNDU2OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNDUyNDk4LFxuICAgICAgICByb2ZmOiAwLjE0MTc0NyxcbiAgICAgICAgcm9uOiAwLjEzOTA0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwLFxuICAgICAgICBnZnA6IDAuMDA0OTQ2NzYsXG4gICAgICAgIHJvZmY6IDAuMTM1NzM3LFxuICAgICAgICByb246IDAuMTMyODcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAsXG4gICAgICAgIGdmcDogMC4wMDUzOTEwMyxcbiAgICAgICAgcm9mZjogMC4xMzAxOTQsXG4gICAgICAgIHJvbjogMC4xMjcxMzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNTg1NTg3LFxuICAgICAgICByb2ZmOiAwLjEyNTA5MyxcbiAgICAgICAgcm9uOiAwLjEyMTgxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDAwLFxuICAgICAgICBnZnA6IDAuMDA2MzM4NjYsXG4gICAgICAgIHJvZmY6IDAuMTIwNDE0LFxuICAgICAgICByb246IDAuMTE2ODgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTAsXG4gICAgICAgIGdmcDogMC4wMDY4MzYwNSxcbiAgICAgICAgcm9mZjogMC4xMTYxMzMsXG4gICAgICAgIHJvbjogMC4xMTIzMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNzM0Mzk3LFxuICAgICAgICByb2ZmOiAwLjExMjIzMyxcbiAgICAgICAgcm9uOiAwLjEwODA5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTUwLFxuICAgICAgICBnZnA6IDAuMDA3ODU3NjUsXG4gICAgICAgIHJvZmY6IDAuMTA4Njk1LFxuICAgICAgICByb246IDAuMTA0MTk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDAsXG4gICAgICAgIGdmcDogMC4wMDgzNzE3NCxcbiAgICAgICAgcm9mZjogMC4xMDU1MDEsXG4gICAgICAgIHJvbjogMC4xMDA2MDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwODg4MDQsXG4gICAgICAgIHJvZmY6IDAuMTAyNjM0LFxuICAgICAgICByb246IDAuMDk3Mjk4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzAwLFxuICAgICAgICBnZnA6IDAuMDA5Mzc3NTQsXG4gICAgICAgIHJvZmY6IDAuMTAwMDc4LFxuICAgICAgICByb246IDAuMDk0MjU1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzUwLFxuICAgICAgICBnZnA6IDAuMDA5ODU3LFxuICAgICAgICByb2ZmOiAwLjA5NzgxNjQsXG4gICAgICAgIHJvbjogMC4wOTE0NTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MDAsXG4gICAgICAgIGdmcDogMC4wMTAzMTI3LFxuICAgICAgICByb2ZmOiAwLjA5NTgzMzQsXG4gICAgICAgIHJvbjogMC4wODg4ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAsXG4gICAgICAgIGdmcDogMC4wMTA3MzkxLFxuICAgICAgICByb2ZmOiAwLjA5NDExMzUsXG4gICAgICAgIHJvbjogMC4wODY1MjY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MDAsXG4gICAgICAgIGdmcDogMC4wMTExMzEsXG4gICAgICAgIHJvZmY6IDAuMDkyNjQxMyxcbiAgICAgICAgcm9uOiAwLjA4NDM1NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMTQ4NDEsXG4gICAgICAgIHJvZmY6IDAuMDkxNDAxOCxcbiAgICAgICAgcm9uOiAwLjA4MjM1NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMTc5NTEsXG4gICAgICAgIHJvZmY6IDAuMDkwMzgwOSxcbiAgICAgICAgcm9uOiAwLjA4MDUxMjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjA2MTMsXG4gICAgICAgIHJvZmY6IDAuMDg5NTY0NixcbiAgICAgICAgcm9uOiAwLjA3ODgwNjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjI4MTMsXG4gICAgICAgIHJvZmY6IDAuMDg4OTQwMixcbiAgICAgICAgcm9uOiAwLjA3NzIyNDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjQ1NDQsXG4gICAgICAgIHJvZmY6IDAuMDg4NDk1MyxcbiAgICAgICAgcm9uOiAwLjA3NTc0OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjU4MDcsXG4gICAgICAgIHJvZmY6IDAuMDg4MjE4OSxcbiAgICAgICAgcm9uOiAwLjA3NDM2NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjY2MTIsXG4gICAgICAgIHJvZmY6IDAuMDg4MTAwNSxcbiAgICAgICAgcm9uOiAwLjA3MzA2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzAwLFxuICAgICAgICBnZnA6IDAuMDEyNjk3NSxcbiAgICAgICAgcm9mZjogMC4wODgxMzEyLFxuICAgICAgICByb246IDAuMDcxODM0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzUwLFxuICAgICAgICBnZnA6IDAuMDEyNjkxNSxcbiAgICAgICAgcm9mZjogMC4wODgzMDI3LFxuICAgICAgICByb246IDAuMDcwNjYwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDAwLFxuICAgICAgICBnZnA6IDAuMDEyNjQ1NixcbiAgICAgICAgcm9mZjogMC4wODg2MDgyLFxuICAgICAgICByb246IDAuMDY5NTMzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDUwLFxuICAgICAgICBnZnA6IDAuMDEyNTYyMyxcbiAgICAgICAgcm9mZjogMC4wODkwNDE3LFxuICAgICAgICByb246IDAuMDY4NDQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDAsXG4gICAgICAgIGdmcDogMC4wMTI0NDQzLFxuICAgICAgICByb2ZmOiAwLjA4OTU5ODUsXG4gICAgICAgIHJvbjogMC4wNjczODkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTAsXG4gICAgICAgIGdmcDogMC4wMTIyOTQ1LFxuICAgICAgICByb2ZmOiAwLjA5MDI3NDgsXG4gICAgICAgIHJvbjogMC4wNjYzNTYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDAsXG4gICAgICAgIGdmcDogMC4wMTIxMTU1LFxuICAgICAgICByb2ZmOiAwLjA5MTA2ODEsXG4gICAgICAgIHJvbjogMC4wNjUzNDA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NTAsXG4gICAgICAgIGdmcDogMC4wMTE5MTAxLFxuICAgICAgICByb2ZmOiAwLjA5MTk3NjgsXG4gICAgICAgIHJvbjogMC4wNjQzMzc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3MDAsXG4gICAgICAgIGdmcDogMC4wMTE2ODA3LFxuICAgICAgICByb2ZmOiAwLjA5MzAwMDMsXG4gICAgICAgIHJvbjogMC4wNjMzNDI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3NTAsXG4gICAgICAgIGdmcDogMC4wMTE0MyxcbiAgICAgICAgcm9mZjogMC4wOTQxMzg4LFxuICAgICAgICByb246IDAuMDYyMzUwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODAwLFxuICAgICAgICBnZnA6IDAuMDExMTYwMSxcbiAgICAgICAgcm9mZjogMC4wOTUzOTM3LFxuICAgICAgICByb246IDAuMDYxMzU4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODUwLFxuICAgICAgICBnZnA6IDAuMDEwODczMyxcbiAgICAgICAgcm9mZjogMC4wOTY3NjczLFxuICAgICAgICByb246IDAuMDYwMzY0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyOTAwLFxuICAgICAgICBnZnA6IDAuMDEwNTcxOCxcbiAgICAgICAgcm9mZjogMC4wOTgyNjI2LFxuICAgICAgICByb246IDAuMDU5MzY0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyOTUwLFxuICAgICAgICBnZnA6IDAuMDEwMjU3MyxcbiAgICAgICAgcm9mZjogMC4wOTk4ODM5LFxuICAgICAgICByb246IDAuMDU4MzU3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDAwLFxuICAgICAgICBnZnA6IDAuMDA5OTMxODQsXG4gICAgICAgIHJvZmY6IDAuMTAxNjM2LFxuICAgICAgICByb246IDAuMDU3MzQyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDUwLFxuICAgICAgICBnZnA6IDAuMDA5NTk3MDcsXG4gICAgICAgIHJvZmY6IDAuMTAzNTI1LFxuICAgICAgICByb246IDAuMDU2MzE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxMDAsXG4gICAgICAgIGdmcDogMC4wMDkyNTQ2NyxcbiAgICAgICAgcm9mZjogMC4xMDU1NTcsXG4gICAgICAgIHJvbjogMC4wNTUyODEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxNTAsXG4gICAgICAgIGdmcDogMC4wMDg5MDYyMSxcbiAgICAgICAgcm9mZjogMC4xMDc3NDIsXG4gICAgICAgIHJvbjogMC4wNTQyMzQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyMDAsXG4gICAgICAgIGdmcDogMC4wMDg1NTMxOCxcbiAgICAgICAgcm9mZjogMC4xMTAwODYsXG4gICAgICAgIHJvbjogMC4wNTMxNzYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyNTAsXG4gICAgICAgIGdmcDogMC4wMDgxOTcwMyxcbiAgICAgICAgcm9mZjogMC4xMTI2LFxuICAgICAgICByb246IDAuMDUyMTA2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzAwLFxuICAgICAgICBnZnA6IDAuMDA3ODM5MTMsXG4gICAgICAgIHJvZmY6IDAuMTE1Mjk2LFxuICAgICAgICByb246IDAuMDUxMDI2NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzUwLFxuICAgICAgICBnZnA6IDAuMDA3NDgwODQsXG4gICAgICAgIHJvZmY6IDAuMTE4MTg1LFxuICAgICAgICByb246IDAuMDQ5OTM1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNDAwLFxuICAgICAgICBnZnA6IDAuMDA3MTIzNDMsXG4gICAgICAgIHJvZmY6IDAuMTIxMjgsXG4gICAgICAgIHJvbjogMC4wNDg4MzQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM0NTAsXG4gICAgICAgIGdmcDogMC4wMDY3NjgxNSxcbiAgICAgICAgcm9mZjogMC4xMjQ1OTYsXG4gICAgICAgIHJvbjogMC4wNDc3MjQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MDAsXG4gICAgICAgIGdmcDogMC4wMDY0MTYyLFxuICAgICAgICByb2ZmOiAwLjEyODE0OSxcbiAgICAgICAgcm9uOiAwLjA0NjYwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTUwLFxuICAgICAgICBnZnA6IDAuMDA2MDY4NzUsXG4gICAgICAgIHJvZmY6IDAuMTMxOTU1LFxuICAgICAgICByb246IDAuMDQ1NDgyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjAwLFxuICAgICAgICBnZnA6IDAuMDA1NzI2ODgsXG4gICAgICAgIHJvZmY6IDAuMTM2MDMzLFxuICAgICAgICByb246IDAuMDQ0MzUyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjUwLFxuICAgICAgICBnZnA6IDAuMDA1MzkxNjYsXG4gICAgICAgIHJvZmY6IDAuMTQwNDA0LFxuICAgICAgICByb246IDAuMDQzMjE3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzAwLFxuICAgICAgICBnZnA6IDAuMDA1MDY0MDcsXG4gICAgICAgIHJvZmY6IDAuMTQ1MDg4LFxuICAgICAgICByb246IDAuMDQyMDgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM3NTAsXG4gICAgICAgIGdmcDogMC4wMDQ3NDUwNSxcbiAgICAgICAgcm9mZjogMC4xNTAxMDksXG4gICAgICAgIHJvbjogMC4wNDA5NDMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM4MDAsXG4gICAgICAgIGdmcDogMC4wMDQ0MzU0NixcbiAgICAgICAgcm9mZjogMC4xNTU0OSxcbiAgICAgICAgcm9uOiAwLjAzOTgwNjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNDEzNjA5LFxuICAgICAgICByb2ZmOiAwLjE2MTI1OSxcbiAgICAgICAgcm9uOiAwLjAzODY3MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMzg0NzYzLFxuICAgICAgICByb2ZmOiAwLjE2NzQ0NCxcbiAgICAgICAgcm9uOiAwLjAzNzU0MDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMzU3MDcsXG4gICAgICAgIHJvZmY6IDAuMTc0MDcyLFxuICAgICAgICByb246IDAuMDM2NDE2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDAwLFxuICAgICAgICBnZnA6IDAuMDAzMzA1OCxcbiAgICAgICAgcm9mZjogMC4xODExNzYsXG4gICAgICAgIHJvbjogMC4wMzUyOTk1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwNTAsXG4gICAgICAgIGdmcDogMC4wMDMwNTMzNyxcbiAgICAgICAgcm9mZjogMC4xODg3ODcsXG4gICAgICAgIHJvbjogMC4wMzQxOTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxMDAsXG4gICAgICAgIGdmcDogMC4wMDI4MTM3MSxcbiAgICAgICAgcm9mZjogMC4xOTY5MzgsXG4gICAgICAgIHJvbjogMC4wMzMwOTYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxNTAsXG4gICAgICAgIGdmcDogMC4wMDI1ODcwNCxcbiAgICAgICAgcm9mZjogMC4yMDU2NjQsXG4gICAgICAgIHJvbjogMC4wMzIwMTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyMDAsXG4gICAgICAgIGdmcDogMC4wMDIzNzM0NixcbiAgICAgICAgcm9mZjogMC4yMTQ5OTgsXG4gICAgICAgIHJvbjogMC4wMzA5NDQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyNTAsXG4gICAgICAgIGdmcDogMC4wMDIxNzMsXG4gICAgICAgIHJvZmY6IDAuMjI0OTc3LFxuICAgICAgICByb246IDAuMDI5ODkyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MzAwLFxuICAgICAgICBnZnA6IDAuMDAxOTg1NTUsXG4gICAgICAgIHJvZmY6IDAuMjM1NjMyLFxuICAgICAgICByb246IDAuMDI4ODU3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MzUwLFxuICAgICAgICBnZnA6IDAuMDAxODEwOTQsXG4gICAgICAgIHJvZmY6IDAuMjQ2OTk5LFxuICAgICAgICByb246IDAuMDI3ODQxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDAwLFxuICAgICAgICBnZnA6IDAuMDAxNjQ4ODksXG4gICAgICAgIHJvZmY6IDAuMjU5MTA4LFxuICAgICAgICByb246IDAuMDI2ODQ1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDUwLFxuICAgICAgICBnZnA6IDAuMDAxNDk5MDcsXG4gICAgICAgIHJvZmY6IDAuMjcxOTg3LFxuICAgICAgICByb246IDAuMDI1ODcwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAwLFxuICAgICAgICBnZnA6IDAuMDAxMzYxMDYsXG4gICAgICAgIHJvZmY6IDAuMjg1NjYxLFxuICAgICAgICByb246IDAuMDI0OTE4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTUwLFxuICAgICAgICBnZnA6IDAuMDAxMjM0MzgsXG4gICAgICAgIHJvZmY6IDAuMzAwMTQ3LFxuICAgICAgICByb246IDAuMDIzOTg4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjAwLFxuICAgICAgICBnZnA6IDAuMDAxMTE4NTMsXG4gICAgICAgIHJvZmY6IDAuMzE1NDU4LFxuICAgICAgICByb246IDAuMDIzMDgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjUwLFxuICAgICAgICBnZnA6IDAuMDAxMDEyOTMsXG4gICAgICAgIHJvZmY6IDAuMzMxNTk3LFxuICAgICAgICByb246IDAuMDIyMjAxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NzAwLFxuICAgICAgICBnZnA6IDAuMDAwOTE3MDAxLFxuICAgICAgICByb2ZmOiAwLjM0ODU1NyxcbiAgICAgICAgcm9uOiAwLjAyMTM0NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDgzMDE0OSxcbiAgICAgICAgcm9mZjogMC4zNjYzMTcsXG4gICAgICAgIHJvbjogMC4wMjA1MTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ4MDAsXG4gICAgICAgIGdmcDogMC4wMDA3NTE3NjIsXG4gICAgICAgIHJvZmY6IDAuMzg0ODQzLFxuICAgICAgICByb246IDAuMDE5NzA4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0ODUwLFxuICAgICAgICBnZnA6IDAuMDAwNjgxMjM2LFxuICAgICAgICByb2ZmOiAwLjQwNDA4NCxcbiAgICAgICAgcm9uOiAwLjAxODkyNzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDYxNzk3MixcbiAgICAgICAgcm9mZjogMC40MjM5NjksXG4gICAgICAgIHJvbjogMC4wMTgxNzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDU2MTM5MyxcbiAgICAgICAgcm9mZjogMC40NDQ0MDgsXG4gICAgICAgIHJvbjogMC4wMTc0NDM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwMDAsXG4gICAgICAgIGdmcDogMC4wMDA1MTA5NDEsXG4gICAgICAgIHJvZmY6IDAuNDY1Mjg5LFxuICAgICAgICByb246IDAuMDE2NzM5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDUwLFxuICAgICAgICBnZnA6IDAuMDAwNDY2MDg0LFxuICAgICAgICByb2ZmOiAwLjQ4NjQ3OCxcbiAgICAgICAgcm9uOiAwLjAxNjA2MDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDQyNjMxOCxcbiAgICAgICAgcm9mZjogMC41MDc4MixcbiAgICAgICAgcm9uOiAwLjAxNTQwNThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDM5MTE2OCxcbiAgICAgICAgcm9mZjogMC41MjkxNDQsXG4gICAgICAgIHJvbjogMC4wMTQ3NzU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUyMDAsXG4gICAgICAgIGdmcDogMC4wMDAzNjAxOTMsXG4gICAgICAgIHJvZmY6IDAuNTUwMjYxLFxuICAgICAgICByb246IDAuMDE0MTY5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMzMyOTgyLFxuICAgICAgICByb2ZmOiAwLjU3MDk3OCxcbiAgICAgICAgcm9uOiAwLjAxMzU4NjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDMwOTE1MixcbiAgICAgICAgcm9mZjogMC41OTExMDEsXG4gICAgICAgIHJvbjogMC4wMTMwMjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDI4ODM0OSxcbiAgICAgICAgcm9mZjogMC42MTA0NDYsXG4gICAgICAgIHJvbjogMC4wMTI0ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDI3MDI0NixcbiAgICAgICAgcm9mZjogMC42Mjg4NTEsXG4gICAgICAgIHJvbjogMC4wMTE5NzE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU0NTAsXG4gICAgICAgIGdmcDogMC4wMDAyNTQ1MzgsXG4gICAgICAgIHJvZmY6IDAuNjQ2MTg1LFxuICAgICAgICByb246IDAuMDExNDc2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMjQwOTQzLFxuICAgICAgICByb2ZmOiAwLjY2MjM1NyxcbiAgICAgICAgcm9uOiAwLjAxMTAwMThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDIyOTIwMSxcbiAgICAgICAgcm9mZjogMC42NzczMTcsXG4gICAgICAgIHJvbjogMC4wMTA1NDY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU2MDAsXG4gICAgICAgIGdmcDogMC4wMDAyMTkwNzIsXG4gICAgICAgIHJvZmY6IDAuNjkxMDU2LFxuICAgICAgICByb246IDAuMDEwMTEwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMjEwMzM3LFxuICAgICAgICByb2ZmOiAwLjcwMzYwNSxcbiAgICAgICAgcm9uOiAwLjAwOTY5MzI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3MDAsXG4gICAgICAgIGdmcDogMC4wMDAyMDI3OTgsXG4gICAgICAgIHJvZmY6IDAuNzE1MDI0LFxuICAgICAgICByb246IDAuMDA5MjkzNTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE5NjI3OCxcbiAgICAgICAgcm9mZjogMC43MjUzOTUsXG4gICAgICAgIHJvbjogMC4wMDg5MTA4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTkwNjIzLFxuICAgICAgICByb2ZmOiAwLjczNDgwNixcbiAgICAgICAgcm9uOiAwLjAwODU0NDY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxODU2OTgsXG4gICAgICAgIHJvZmY6IDAuNzQzMzUxLFxuICAgICAgICByb246IDAuMDA4MTk0MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE4MTM5LFxuICAgICAgICByb2ZmOiAwLjc1MTExOCxcbiAgICAgICAgcm9uOiAwLjAwNzg1OTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNzc2MDQsXG4gICAgICAgIHJvZmY6IDAuNzU4MTkxLFxuICAgICAgICByb246IDAuMDA3NTM4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE3NDI2MSxcbiAgICAgICAgcm9mZjogMC43NjQ2NDIsXG4gICAgICAgIHJvbjogMC4wMDcyMzE1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTcxMjk1LFxuICAgICAgICByb2ZmOiAwLjc3MDUzNSxcbiAgICAgICAgcm9uOiAwLjAwNjkzODE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNjg2NTMsXG4gICAgICAgIHJvZmY6IDAuNzc1OTI3LFxuICAgICAgICByb246IDAuMDA2NjU3NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE2NjI5LFxuICAgICAgICByb2ZmOiAwLjc4MDg2NixcbiAgICAgICAgcm9uOiAwLjAwNjM4OTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNjQxNyxcbiAgICAgICAgcm9mZjogMC43ODUzOTQsXG4gICAgICAgIHJvbjogMC4wMDYxMzI1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTYyMjYzLFxuICAgICAgICByb2ZmOiAwLjc4OTU1LFxuICAgICAgICByb246IDAuMDA1ODg3MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE2MDU0MixcbiAgICAgICAgcm9mZjogMC43OTMzNjUsXG4gICAgICAgIHJvbjogMC4wMDU2NTI1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTU4OTg3LFxuICAgICAgICByb2ZmOiAwLjc5Njg2OSxcbiAgICAgICAgcm9uOiAwLjAwNTQyODE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNTc1NzksXG4gICAgICAgIHJvZmY6IDAuODAwMDg5LFxuICAgICAgICByb246IDAuMDA1MjEzNjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1NjMwMixcbiAgICAgICAgcm9mZjogMC44MDMwNDksXG4gICAgICAgIHJvbjogMC4wMDUwMDg1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTU1MTQyLFxuICAgICAgICByb2ZmOiAwLjgwNTc3MSxcbiAgICAgICAgcm9uOiAwLjAwNDgxMjUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNTQwODcsXG4gICAgICAgIHJvZmY6IDAuODA4MjczLFxuICAgICAgICByb246IDAuMDA0NjI1MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1MzEyNixcbiAgICAgICAgcm9mZjogMC44MTA1NzUsXG4gICAgICAgIHJvbjogMC4wMDQ0NDU4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTUyMjUxLFxuICAgICAgICByb2ZmOiAwLjgxMjY5MyxcbiAgICAgICAgcm9uOiAwLjAwNDI3NDUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNTE0NTIsXG4gICAgICAgIHJvZmY6IDAuODE0NjQxLFxuICAgICAgICByb246IDAuMDA0MTEwNzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1MDcyMyxcbiAgICAgICAgcm9mZjogMC44MTY0MzQsXG4gICAgICAgIHJvbjogMC4wMDM5NTQxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTUwMDU2LFxuICAgICAgICByb2ZmOiAwLjgxODA4NSxcbiAgICAgICAgcm9uOiAwLjAwMzgwNDQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDk0NDcsXG4gICAgICAgIHJvZmY6IDAuODE5NjA0LFxuICAgICAgICByb246IDAuMDAzNjYxNDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0ODg4OSxcbiAgICAgICAgcm9mZjogMC44MjEwMDMsXG4gICAgICAgIHJvbjogMC4wMDM1MjQ2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ4Mzc4LFxuICAgICAgICByb2ZmOiAwLjgyMjI5MixcbiAgICAgICAgcm9uOiAwLjAwMzM5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NzkxLFxuICAgICAgICByb2ZmOiAwLjgyMzQ3OSxcbiAgICAgICAgcm9uOiAwLjAwMzI2ODkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDc0ODEsXG4gICAgICAgIHJvZmY6IDAuODI0NTcyLFxuICAgICAgICByb246IDAuMDAzMTQ5NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NzA4NyxcbiAgICAgICAgcm9mZjogMC44MjU1OCxcbiAgICAgICAgcm9uOiAwLjAwMzAzNTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDY3MjUsXG4gICAgICAgIHJvZmY6IDAuODI2NTA5LFxuICAgICAgICByb246IDAuMDAyOTI2MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NjM5MyxcbiAgICAgICAgcm9mZjogMC44MjczNjUsXG4gICAgICAgIHJvbjogMC4wMDI4MjE4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ2MDg4LFxuICAgICAgICByb2ZmOiAwLjgyODE1NSxcbiAgICAgICAgcm9uOiAwLjAwMjcyMjExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDczMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDU4MDgsXG4gICAgICAgIHJvZmY6IDAuODI4ODg0LFxuICAgICAgICByb246IDAuMDAyNjI2NzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NTU1LFxuICAgICAgICByb2ZmOiAwLjgyOTU1NixcbiAgICAgICAgcm9uOiAwLjAwMjUzNTY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDUzMTIsXG4gICAgICAgIHJvZmY6IDAuODMwMTc3LFxuICAgICAgICByb246IDAuMDAyNDQ4NjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NTA5MyxcbiAgICAgICAgcm9mZjogMC44MzA3NSxcbiAgICAgICAgcm9uOiAwLjAwMjM2NTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQ4OTIsXG4gICAgICAgIHJvZmY6IDAuODMxMjc5LFxuICAgICAgICByb246IDAuMDAyMjg1ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NDcwNixcbiAgICAgICAgcm9mZjogMC44MzE3NjksXG4gICAgICAgIHJvbjogMC4wMDIyMDk4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ0NTM1LFxuICAgICAgICByb2ZmOiAwLjgzMjIyMSxcbiAgICAgICAgcm9uOiAwLjAwMjEzNzE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQzNzcsXG4gICAgICAgIHJvZmY6IDAuODMyNjM4LFxuICAgICAgICByb246IDAuMDAyMDY3NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NDIzMSxcbiAgICAgICAgcm9mZjogMC44MzMwMjUsXG4gICAgICAgIHJvbjogMC4wMDIwMDEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQwOTYsXG4gICAgICAgIHJvZmY6IDAuODMzMzgzLFxuICAgICAgICByb246IDAuMDAxOTM3ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mzk3MixcbiAgICAgICAgcm9mZjogMC44MzM3MTQsXG4gICAgICAgIHJvbjogMC4wMDE4NzcyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzODU3LFxuICAgICAgICByb2ZmOiAwLjgzNDAyLFxuICAgICAgICByb246IDAuMDAxODE5MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mzc1MSxcbiAgICAgICAgcm9mZjogMC44MzQzMDQsXG4gICAgICAgIHJvbjogMC4wMDE3NjM4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzNjUyLFxuICAgICAgICByb2ZmOiAwLjgzNDU2NyxcbiAgICAgICAgcm9uOiAwLjAwMTcxMDkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDM1NjEsXG4gICAgICAgIHJvZmY6IDAuODM0ODExLFxuICAgICAgICByb246IDAuMDAxNjYwMzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzQ3NyxcbiAgICAgICAgcm9mZjogMC44MzUwMzcsXG4gICAgICAgIHJvbjogMC4wMDE2MTE5NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMzk4LFxuICAgICAgICByb2ZmOiAwLjgzNTI0NyxcbiAgICAgICAgcm9uOiAwLjAwMTU2NTc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMzMjYsXG4gICAgICAgIHJvZmY6IDAuODM1NDQyLFxuICAgICAgICByb246IDAuMDAxNTIxNTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzI1OSxcbiAgICAgICAgcm9mZjogMC44MzU2MjMsXG4gICAgICAgIHJvbjogMC4wMDE0NzkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMTk2LFxuICAgICAgICByb2ZmOiAwLjgzNTc5MSxcbiAgICAgICAgcm9uOiAwLjAwMTQzOTAxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMxMzgsXG4gICAgICAgIHJvZmY6IDAuODM1OTQ4LFxuICAgICAgICByb246IDAuMDAxNDAwNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzA4NCxcbiAgICAgICAgcm9mZjogMC44MzYwOTMsXG4gICAgICAgIHJvbjogMC4wMDEzNjM1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMDM0LFxuICAgICAgICByb2ZmOiAwLjgzNjIyOCxcbiAgICAgICAgcm9uOiAwLjAwMTMyODM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI5ODgsXG4gICAgICAgIHJvZmY6IDAuODM2MzU0LFxuICAgICAgICByb246IDAuMDAxMjk0NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mjk0NCxcbiAgICAgICAgcm9mZjogMC44MzY0NzIsXG4gICAgICAgIHJvbjogMC4wMDEyNjI1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyOTA0LFxuICAgICAgICByb2ZmOiAwLjgzNjU4MSxcbiAgICAgICAgcm9uOiAwLjAwMTIzMTc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI4NjYsXG4gICAgICAgIHJvZmY6IDAuODM2NjgzLFxuICAgICAgICByb246IDAuMDAxMjAyNDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjgzMSxcbiAgICAgICAgcm9mZjogMC44MzY3NzgsXG4gICAgICAgIHJvbjogMC4wMDExNzQzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNzk5LFxuICAgICAgICByb2ZmOiAwLjgzNjg2NyxcbiAgICAgICAgcm9uOiAwLjAwMTE0NzQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI3NjgsXG4gICAgICAgIHJvZmY6IDAuODM2OTUsXG4gICAgICAgIHJvbjogMC4wMDExMjE4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNzQsXG4gICAgICAgIHJvZmY6IDAuODM3MDI3LFxuICAgICAgICByb246IDAuMDAxMDk3MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjcxMyxcbiAgICAgICAgcm9mZjogMC44MzcwOTksXG4gICAgICAgIHJvbjogMC4wMDEwNzM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI2ODksXG4gICAgICAgIHJvZmY6IDAuODM3MTY3LFxuICAgICAgICByb246IDAuMDAxMDUxNTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjY2NSxcbiAgICAgICAgcm9mZjogMC44MzcyMyxcbiAgICAgICAgcm9uOiAwLjAwMTAzMDExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI2NDQsXG4gICAgICAgIHJvZmY6IDAuODM3MjksXG4gICAgICAgIHJvbjogMC4wMDEwMDk2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNjIzLFxuICAgICAgICByb2ZmOiAwLjgzNzM0NSxcbiAgICAgICAgcm9uOiAwLjAwMDk5MDEyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNjA0LFxuICAgICAgICByb2ZmOiAwLjgzNzM5NyxcbiAgICAgICAgcm9uOiAwLjAwMDk3MTQ0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTg3LFxuICAgICAgICByb2ZmOiAwLjgzNzQ0NixcbiAgICAgICAgcm9uOiAwLjAwMDk1MzU5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTcsXG4gICAgICAgIHJvZmY6IDAuODM3NDkyLFxuICAgICAgICByb246IDAuMDAwOTM2NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjU1NCxcbiAgICAgICAgcm9mZjogMC44Mzc1MzUsXG4gICAgICAgIHJvbjogMC4wMDA5MjAyMzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjU0LFxuICAgICAgICByb2ZmOiAwLjgzNzU3NSxcbiAgICAgICAgcm9uOiAwLjAwMDkwNDY1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTI2LFxuICAgICAgICByb2ZmOiAwLjgzNzYxMyxcbiAgICAgICAgcm9uOiAwLjAwMDg4OTc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1MTMsXG4gICAgICAgIHJvZmY6IDAuODM3NjQ4LFxuICAgICAgICByb246IDAuMDAwODc1NTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1MDEsXG4gICAgICAgIHJvZmY6IDAuODM3NjgyLFxuICAgICAgICByb246IDAuMDAwODYxOTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0ODksXG4gICAgICAgIHJvZmY6IDAuODM3NzEzLFxuICAgICAgICByb246IDAuMDAwODQ4OTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NzksXG4gICAgICAgIHJvZmY6IDAuODM3NzQzLFxuICAgICAgICByb246IDAuMDAwODM2NTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NjgsXG4gICAgICAgIHJvZmY6IDAuODM3NzcxLFxuICAgICAgICByb246IDAuMDAwODI0NjU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NTksXG4gICAgICAgIHJvZmY6IDAuODM3Nzk3LFxuICAgICAgICByb246IDAuMDAwODEzMzE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NSxcbiAgICAgICAgcm9mZjogMC44Mzc4MjIsXG4gICAgICAgIHJvbjogMC4wMDA4MDI0NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQ0MixcbiAgICAgICAgcm9mZjogMC44Mzc4NDUsXG4gICAgICAgIHJvbjogMC4wMDA3OTIxMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQzNCxcbiAgICAgICAgcm9mZjogMC44Mzc4NjcsXG4gICAgICAgIHJvbjogMC4wMDA3ODIyMTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQyNixcbiAgICAgICAgcm9mZjogMC44Mzc4ODgsXG4gICAgICAgIHJvbjogMC4wMDA3NzI3NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQxOSxcbiAgICAgICAgcm9mZjogMC44Mzc5MDcsXG4gICAgICAgIHJvbjogMC4wMDA3NjM3MTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQxMixcbiAgICAgICAgcm9mZjogMC44Mzc5MjYsXG4gICAgICAgIHJvbjogMC4wMDA3NTUwNzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0MDYsXG4gICAgICAgIHJvZmY6IDAuODM3OTQzLFxuICAgICAgICByb246IDAuMDAwNzQ2ODEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNCxcbiAgICAgICAgcm9mZjogMC44Mzc5NixcbiAgICAgICAgcm9uOiAwLjAwMDczODkyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM5NCxcbiAgICAgICAgcm9mZjogMC44Mzc5NzYsXG4gICAgICAgIHJvbjogMC4wMDA3MzEzNzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzODksXG4gICAgICAgIHJvZmY6IDAuODM3OTksXG4gICAgICAgIHJvbjogMC4wMDA3MjQxNzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzODQsXG4gICAgICAgIHJvZmY6IDAuODM4MDA0LFxuICAgICAgICByb246IDAuMDAwNzE3MjgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzc5LFxuICAgICAgICByb2ZmOiAwLjgzODAxOCxcbiAgICAgICAgcm9uOiAwLjAwMDcxMDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNzUsXG4gICAgICAgIHJvZmY6IDAuODM4MDMsXG4gICAgICAgIHJvbjogMC4wMDA3MDQ0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM3LFxuICAgICAgICByb2ZmOiAwLjgzODA0MixcbiAgICAgICAgcm9uOiAwLjAwMDY5ODM5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM2NixcbiAgICAgICAgcm9mZjogMC44MzgwNTMsXG4gICAgICAgIHJvbjogMC4wMDA2OTI2NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNjMsXG4gICAgICAgIHJvZmY6IDAuODM4MDY0LFxuICAgICAgICByb246IDAuMDAwNjg3MTYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzU5LFxuICAgICAgICByb2ZmOiAwLjgzODA3NCxcbiAgICAgICAgcm9uOiAwLjAwMDY4MTkxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM1NSxcbiAgICAgICAgcm9mZjogMC44MzgwODQsXG4gICAgICAgIHJvbjogMC4wMDA2NzY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzUyLFxuICAgICAgICByb2ZmOiAwLjgzODA5MyxcbiAgICAgICAgcm9uOiAwLjAwMDY3MjEwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM0OSxcbiAgICAgICAgcm9mZjogMC44MzgxMDEsXG4gICAgICAgIHJvbjogMC4wMDA2Njc1MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNDYsXG4gICAgICAgIHJvZmY6IDAuODM4MTA5LFxuICAgICAgICByb246IDAuMDAwNjYzMTUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzQzLFxuICAgICAgICByb2ZmOiAwLjgzODExNyxcbiAgICAgICAgcm9uOiAwLjAwMDY1ODk2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM0MSxcbiAgICAgICAgcm9mZjogMC44MzgxMjUsXG4gICAgICAgIHJvbjogMC4wMDA2NTQ5NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMzgsXG4gICAgICAgIHJvZmY6IDAuODM4MTMyLFxuICAgICAgICByb246IDAuMDAwNjUxMTUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzM2LFxuICAgICAgICByb2ZmOiAwLjgzODEzOCxcbiAgICAgICAgcm9uOiAwLjAwMDY0NzUwMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMzNCxcbiAgICAgICAgcm9mZjogMC44MzgxNDUsXG4gICAgICAgIHJvbjogMC4wMDA2NDQwMTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMzEsXG4gICAgICAgIHJvZmY6IDAuODM4MTUxLFxuICAgICAgICByb246IDAuMDAwNjQwNjc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzI5LFxuICAgICAgICByb2ZmOiAwLjgzODE1NixcbiAgICAgICAgcm9uOiAwLjAwMDYzNzQ5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMyNyxcbiAgICAgICAgcm9mZjogMC44MzgxNjIsXG4gICAgICAgIHJvbjogMC4wMDA2MzQ0NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMjYsXG4gICAgICAgIHJvZmY6IDAuODM4MTY3LFxuICAgICAgICByb246IDAuMDAwNjMxNTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzI0LFxuICAgICAgICByb2ZmOiAwLjgzODE3MixcbiAgICAgICAgcm9uOiAwLjAwMDYyODc1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMyMixcbiAgICAgICAgcm9mZjogMC44MzgxNzYsXG4gICAgICAgIHJvbjogMC4wMDA2MjYwOTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMjEsXG4gICAgICAgIHJvZmY6IDAuODM4MTgxLFxuICAgICAgICByb246IDAuMDAwNjIzNTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTksXG4gICAgICAgIHJvZmY6IDAuODM4MTg1LFxuICAgICAgICByb246IDAuMDAwNjIxMTMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzE4LFxuICAgICAgICByb2ZmOiAwLjgzODE4OSxcbiAgICAgICAgcm9uOiAwLjAwMDYxODgxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxNixcbiAgICAgICAgcm9mZjogMC44MzgxOTMsXG4gICAgICAgIHJvbjogMC4wMDA2MTY1OTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTUsXG4gICAgICAgIHJvZmY6IDAuODM4MTk3LFxuICAgICAgICByb246IDAuMDAwNjE0NDc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzE0LFxuICAgICAgICByb2ZmOiAwLjgzODIsXG4gICAgICAgIHJvbjogMC4wMDA2MTI0NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjAzLFxuICAgICAgICByb246IDAuMDAwNjEwNTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzExLFxuICAgICAgICByb2ZmOiAwLjgzODIwNyxcbiAgICAgICAgcm9uOiAwLjAwMDYwODY3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxLFxuICAgICAgICByb2ZmOiAwLjgzODIxLFxuICAgICAgICByb246IDAuMDAwNjA2OTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA5LFxuICAgICAgICByb2ZmOiAwLjgzODIxMixcbiAgICAgICAgcm9uOiAwLjAwMDYwNTIxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwOCxcbiAgICAgICAgcm9mZjogMC44MzgyMTUsXG4gICAgICAgIHJvbjogMC4wMDA2MDM2MDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDcsXG4gICAgICAgIHJvZmY6IDAuODM4MjE4LFxuICAgICAgICByb246IDAuMDAwNjAyMDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDYsXG4gICAgICAgIHJvZmY6IDAuODM4MjIsXG4gICAgICAgIHJvbjogMC4wMDA2MDA1ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDYsXG4gICAgICAgIHJvZmY6IDAuODM4MjIzLFxuICAgICAgICByb246IDAuMDAwNTk5MTc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA1LFxuICAgICAgICByb2ZmOiAwLjgzODIyNSxcbiAgICAgICAgcm9uOiAwLjAwMDU5NzgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwNCxcbiAgICAgICAgcm9mZjogMC44MzgyMjcsXG4gICAgICAgIHJvbjogMC4wMDA1OTY1NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDMsXG4gICAgICAgIHJvZmY6IDAuODM4MjI5LFxuICAgICAgICByb246IDAuMDAwNTk1MzE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzAzLFxuICAgICAgICByb2ZmOiAwLjgzODIzMSxcbiAgICAgICAgcm9uOiAwLjAwMDU5NDE0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwMixcbiAgICAgICAgcm9mZjogMC44MzgyMzMsXG4gICAgICAgIHJvbjogMC4wMDA1OTMwMTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDEsXG4gICAgICAgIHJvZmY6IDAuODM4MjM1LFxuICAgICAgICByb246IDAuMDAwNTkxOTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzAxLFxuICAgICAgICByb2ZmOiAwLjgzODIzNixcbiAgICAgICAgcm9uOiAwLjAwMDU5MDkyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMsXG4gICAgICAgIHJvZmY6IDAuODM4MjM4LFxuICAgICAgICByb246IDAuMDAwNTg5OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMyxcbiAgICAgICAgcm9mZjogMC44MzgyNCxcbiAgICAgICAgcm9uOiAwLjAwMDU4OTAwNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5OSxcbiAgICAgICAgcm9mZjogMC44MzgyNDEsXG4gICAgICAgIHJvbjogMC4wMDA1ODgxMTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTksXG4gICAgICAgIHJvZmY6IDAuODM4MjQyLFxuICAgICAgICByb246IDAuMDAwNTg3MjU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk4LFxuICAgICAgICByb2ZmOiAwLjgzODI0NCxcbiAgICAgICAgcm9uOiAwLjAwMDU4NjQzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5OCxcbiAgICAgICAgcm9mZjogMC44MzgyNDUsXG4gICAgICAgIHJvbjogMC4wMDA1ODU2NTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTcsXG4gICAgICAgIHJvZmY6IDAuODM4MjQ2LFxuICAgICAgICByb246IDAuMDAwNTg0OTExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk3LFxuICAgICAgICByb2ZmOiAwLjgzODI0NyxcbiAgICAgICAgcm9uOiAwLjAwMDU4NDE5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NixcbiAgICAgICAgcm9mZjogMC44MzgyNDksXG4gICAgICAgIHJvbjogMC4wMDA1ODM1MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTYsXG4gICAgICAgIHJvZmY6IDAuODM4MjUsXG4gICAgICAgIHJvbjogMC4wMDA1ODI4NjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTYsXG4gICAgICAgIHJvZmY6IDAuODM4MjUxLFxuICAgICAgICByb246IDAuMDAwNTgyMjQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk1LFxuICAgICAgICByb2ZmOiAwLjgzODI1MixcbiAgICAgICAgcm9uOiAwLjAwMDU4MTY0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NSxcbiAgICAgICAgcm9mZjogMC44MzgyNTMsXG4gICAgICAgIHJvbjogMC4wMDA1ODEwNzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTUsXG4gICAgICAgIHJvZmY6IDAuODM4MjUzLFxuICAgICAgICByb246IDAuMDAwNTgwNTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk0LFxuICAgICAgICByb2ZmOiAwLjgzODI1NCxcbiAgICAgICAgcm9uOiAwLjAwMDU4MDAxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NCxcbiAgICAgICAgcm9mZjogMC44MzgyNTUsXG4gICAgICAgIHJvbjogMC4wMDA1Nzk1MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTQsXG4gICAgICAgIHJvZmY6IDAuODM4MjU2LFxuICAgICAgICByb246IDAuMDAwNTc5MDQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk0LFxuICAgICAgICByb2ZmOiAwLjgzODI1NyxcbiAgICAgICAgcm9uOiAwLjAwMDU3ODU5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MyxcbiAgICAgICAgcm9mZjogMC44MzgyNTcsXG4gICAgICAgIHJvbjogMC4wMDA1NzgxNjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTMsXG4gICAgICAgIHJvZmY6IDAuODM4MjU4LFxuICAgICAgICByb246IDAuMDAwNTc3NzQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkzLFxuICAgICAgICByb2ZmOiAwLjgzODI1OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3NzM1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MyxcbiAgICAgICAgcm9mZjogMC44MzgyNTksXG4gICAgICAgIHJvbjogMC4wMDA1NzY5NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzY2MTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzYyNjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjYxLFxuICAgICAgICByb246IDAuMDAwNTc1OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkyLFxuICAgICAgICByb2ZmOiAwLjgzODI2MSxcbiAgICAgICAgcm9uOiAwLjAwMDU3NTYyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MixcbiAgICAgICAgcm9mZjogMC44MzgyNjIsXG4gICAgICAgIHJvbjogMC4wMDA1NzUzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjIsXG4gICAgICAgIHJvbjogMC4wMDA1NzUwMzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjYzLFxuICAgICAgICByb246IDAuMDAwNTc0NzU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2MyxcbiAgICAgICAgcm9uOiAwLjAwMDU3NDQ5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjQsXG4gICAgICAgIHJvbjogMC4wMDA1NzQyNDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjY0LFxuICAgICAgICByb246IDAuMDAwNTc0MDAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzOTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2NCxcbiAgICAgICAgcm9uOiAwLjAwMDU3Mzc3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjUsXG4gICAgICAgIHJvbjogMC4wMDA1NzM1NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjY1LFxuICAgICAgICByb246IDAuMDAwNTczMzQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY1LFxuICAgICAgICByb246IDAuMDAwNTczMTQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY2LFxuICAgICAgICByb246IDAuMDAwNTcyOTUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY2LFxuICAgICAgICByb246IDAuMDAwNTcyNzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzI1OTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzI0MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzIyNjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzIxMTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzE5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY4LFxuICAgICAgICByb246IDAuMDAwNTcxNjk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OCxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OCxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTQ0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjgsXG4gICAgICAgIHJvbjogMC4wMDA1NzEzMzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY4LFxuICAgICAgICByb246IDAuMDAwNTcxMjIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTExNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzEwMTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcwOTE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDgyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzA3MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcwNjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcwNTY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwNDkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwNDE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwMzQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwMjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAyMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAxNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAwOTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAwMzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1Njk5ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1Njk5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5ODg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTgzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk3OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NzA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTYzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk1OTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NTYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTQ5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk0NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NDE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTM4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1NjkzNjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5MzM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTMxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1NjkyOTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5Mjc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTI1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkyMzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MjE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MTgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTE2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkxNTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTEyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkxMTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTA4N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwNzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTczMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTA1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwNDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTAyNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjExMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI4XG4gICAgfVxuXTsiLCJ2YXIgc2l0ZW1hcCA9IHtcclxuICAgICcnOiAnaG9tZScsXHJcbiAgICBcclxuICAgICdPdmVydmlld19Qcm9qZWN0JzogJ3F1b3J1cycsXHJcbiAgICAnRGVzY3JpcHRpb24nOiAncXVvcnVzJyxcclxuICAgICdEZXNpZ24nOiAncXVvcnVzJyxcclxuICAgICdFeHBlcmltZW50cyc6ICdxdW9ydXMnLFxyXG4gICAgJ05vdGVib29rJzogJ3F1b3J1cycsXHJcbiAgICAnSW50ZXJMYWInOiAncXVvcnVzJyxcclxuICAgICdNb2RlbCc6ICdxdW9ydXMnLFxyXG4gICAgJ1Jlc3VsdHMnOiAncXVvcnVzJyxcclxuICAgICdEZW1vbnN0cmF0ZSc6ICdxdW9ydXMnLFxyXG4gICAgJ0ltcHJvdmUnOiAncXVvcnVzJyxcclxuXHJcbiAgICAnUGFydHMnOiAncXVvcnVzJyxcclxuICAgICdCYXNpY19QYXJ0JzogJ3F1b3J1cycsXHJcbiAgICAnQ29tcG9zaXRlX1BhcnQnOiAncXVvcnVzJyxcclxuICAgICdQYXJ0X0NvbGxlY3Rpb24nOiAncXVvcnVzJyxcclxuXHJcbiAgICAnU2FmZXR5JzogJ3F1b3J1cycsXHJcblxyXG4gICAgJ092ZXJ2aWV3X0hQJzogJ2hwJyxcclxuICAgICdIdW1hbl9QcmFjdGljZXMnOiAnaHAnLFxyXG4gICAgJ1B1YmxpY19FbmdhZ2VtZW50JzogJ2hwJyxcclxuXHJcbiAgICAnVGVhbSc6ICd0ZWFtJyxcclxuICAgICdDb2xsYWJvcmF0aW9ucyc6ICd0ZWFtJyxcclxuICAgICdBdHRyaWJ1dGlvbnMnOiAndGVhbScsXHJcblxyXG4gICAgJ0FwcGxpZWRfRGVzaWduJzogJ2NvbXBldGl0aW9uJyxcclxuICAgICdFbnRyZXByZW5ldXJzaGlwJzogJ2NvbXBldGl0aW9uJyxcclxuICAgICdIYXJkd2FyZSc6ICdjb21wZXRpdGlvbicsXHJcbiAgICAnTWVhc3VyZW1lbnQnOiAnY29tcGV0aXRpb24nLFxyXG4gICAgJ01vZGVsJzogJ2NvbXBldGl0aW9uJyxcclxuICAgICdTb2Z0d2FyZSc6ICdjb21wZXRpdGlvbidcclxufVxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtcclxuICAgIHZhciBjdXJuYXZpdGVtID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XHJcbiAgICBpZihjdXJuYXZpdGVtLm1hdGNoKC9pZ2VtXFwub3JnL2kpKSB7IC8vIFdlIGtub3cgd2UncmUgbGl2ZVxyXG4gICAgICAgIGN1cm5hdml0ZW0gPSBjdXJuYXZpdGVtLnJlcGxhY2UoLyhodHRwOlxcL1xcLyk/XFxkezR9XFwuaWdlbVxcLm9yZ1xcLlRlYW06XFx3K1xcLz8vaSwgJycpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgY3VybmF2aXRlbSA9IGN1cm5hdml0ZW0ucmVwbGFjZSgvKGh0dHA6XFwvXFwvKT9sb2NhbGhvc3Q6XFxkK1xcLz8vLCAnJyk7XHJcbiAgICAgICAgY3VybmF2aXRlbSA9IGN1cm5hdml0ZW0ucmVwbGFjZSgvXFwuaHRtbC9pLCAnJyk7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhjdXJuYXZpdGVtKTtcclxuICAgICQoJy4nICsgc2l0ZW1hcFtjdXJuYXZpdGVtXSkuYWRkQ2xhc3MoJ2N1cnJlbnQnKTtcclxufSkiLCIvLyBDb2RlIGNvdXJ0ZXN5IG9mIE1vaGFtZWQgSGFzYW5cclxuLy8gaHR0cHM6Ly9jb2RlcGVuLmlvL01obWRoYXNhbi9wZW4vbUFkYVFFXHJcblxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XHJcbiAgXHJcbiAgJ3VzZSBzdHJpY3QnO1xyXG4gIFxyXG4gICB2YXIgYywgY3VycmVudFNjcm9sbFRvcCA9IDAsXHJcbiAgICAgICBuYXZiYXIgPSAkKCdoZWFkZXInKTtcclxuXHJcbiAgICQod2luZG93KS5zY3JvbGwoZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgYSA9ICQod2luZG93KS5zY3JvbGxUb3AoKTtcclxuICAgICAgdmFyIGIgPSBuYXZiYXIuaGVpZ2h0KCk7XHJcbiAgICAgXHJcbiAgICAgIGN1cnJlbnRTY3JvbGxUb3AgPSBhO1xyXG4gICAgIFxyXG4gICAgICBpZiAoYyA8IGN1cnJlbnRTY3JvbGxUb3AgJiYgYSA+IGIgKyBiKSB7XHJcbiAgICAgICAgbmF2YmFyLmFkZENsYXNzKFwic2Nyb2xsVXBcIik7XHJcbiAgICAgIH0gZWxzZSBpZiAoYyA+IGN1cnJlbnRTY3JvbGxUb3AgJiYgIShhIDw9IGIpKSB7XHJcbiAgICAgICAgbmF2YmFyLnJlbW92ZUNsYXNzKFwic2Nyb2xsVXBcIik7XHJcbiAgICAgIH1cclxuICAgICAgYyA9IGN1cnJlbnRTY3JvbGxUb3A7XHJcbiAgfSk7XHJcbiAgXHJcbn0pOyIsIi8vQ29kZSBjb3VydGVzeSBvZiBodHRwczovL2NvZGVwZW4uaW8va3J1eG9yL3Blbi9Dd3BGcVxuXG4kKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uKCkge1xuICAgIGlmICgkKHRoaXMpLnNjcm9sbFRvcCgpID4gNTAgKSB7XG4gICAgICAgICQoJy5zY3JvbGx0b3A6aGlkZGVuJykuc3RvcCh0cnVlLCB0cnVlKS5mYWRlSW4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAkKCcuc2Nyb2xsdG9wJykuc3RvcCh0cnVlLCB0cnVlKS5mYWRlT3V0KCk7XG4gICAgfVxufSk7XG4kKGZ1bmN0aW9uKCl7JChcIi5zY3JvbGxcIikuY2xpY2soZnVuY3Rpb24oKXskKFwiaHRtbCxib2R5XCIpLmFuaW1hdGUoe3Njcm9sbFRvcDokKFwiI3RvcFwiKS5vZmZzZXQoKS50b3B9LFwiMTAwMFwiKTtyZXR1cm4gZmFsc2V9KX0pOyJdfQ==