Template:BOKU-Vienna/js/wiki

/*

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:'
',trigger:"hover focus",title:"",delay:0,html:!(_e={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(de={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},pe="out",ve={HIDE:"hide"+he,HIDDEN:"hidden"+he,SHOW:(me="show")+he,SHOWN:"shown"+he,INSERTED:"inserted"+he,CLICK:"click"+he,FOCUSIN:"focusin"+he,FOCUSOUT:"focusout"+he,MOUSEENTER:"mouseenter"+he,MOUSELEAVE:"mouseleave"+he},Ee="fade",ye="show",Te=".tooltip-inner",Ce=".arrow",Ie="hover",Ae="focus",De="click",be="manual",Se=function(){function i(t,e){if("undefined"==typeof c)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=oe(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(oe(this.getTipElement()).hasClass(ye))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),oe.removeData(this.element,this.constructor.DATA_KEY),oe(this.element).off(this.constructor.EVENT_KEY),oe(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&oe(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===oe(this.element).css("display"))throw new Error("Please use show on visible elements");var t=oe.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){oe(this.element).trigger(t);var n=oe.contains(this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=Cn.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&oe(i).addClass(Ee);var s="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,o=this._getAttachment(s);this.addAttachmentClass(o);var a=!1===this.config.container?document.body:oe(this.config.container);oe(i).data(this.constructor.DATA_KEY,this),oe.contains(this.element.ownerDocument.documentElement,this.tip)||oe(i).appendTo(a),oe(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new c(this.element,i,{placement:o,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:Ce},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),oe(i).addClass(ye),"ontouchstart"in document.documentElement&&oe(document.body).children().on("mouseover",null,oe.noop);var l=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,oe(e.element).trigger(e.constructor.Event.SHOWN),t===pe&&e._leave(null,e)};if(oe(this.tip).hasClass(Ee)){var h=Cn.getTransitionDurationFromElement(this.tip);oe(this.tip).one(Cn.TRANSITION_END,l).emulateTransitionEnd(h)}else l()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=oe.Event(this.constructor.Event.HIDE),r=function(){e._hoverState!==me&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),oe(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(oe(this.element).trigger(i),!i.isDefaultPrevented()){if(oe(n).removeClass(ye),"ontouchstart"in document.documentElement&&oe(document.body).children().off("mouseover",null,oe.noop),this._activeTrigger[De]=!1,this._activeTrigger[Ae]=!1,this._activeTrigger[Ie]=!1,oe(this.tip).hasClass(Ee)){var s=Cn.getTransitionDurationFromElement(n);oe(n).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){oe(this.getTipElement()).addClass(ue+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||oe(this.config.template)[0],this.tip},t.setContent=function(){var t=oe(this.getTipElement());this.setElementContent(t.find(Te),this.getTitle()),t.removeClass(Ee+" "+ye)},t.setElementContent=function(t,e){var n=this.config.html;"object"==typeof e&&(e.nodeType||e.jquery)?n?oe(e).parent().is(t)||t.empty().append(e):t.text(oe(e).text()):t[n?"html":"text"](e)},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getAttachment=function(t){return _e[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)oe(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==be){var e=t===Ie?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Ie?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;oe(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}oe(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=h({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||oe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Ae:Ie]=!0),oe(e.getTipElement()).hasClass(ye)||e._hoverState===me?e._hoverState=me:(clearTimeout(e._timeout),e._hoverState=me,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===me&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||oe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Ae:Ie]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=pe,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===pe&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){return"number"==typeof(t=h({},this.constructor.Default,oe(this.element).data(),t)).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),Cn.typeCheckConfig(ae,t,this.constructor.DefaultType),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=oe(this.getTipElement()),e=t.attr("class").match(fe);null!==e&&0<e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(oe(t).removeClass(Ee),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=oe(this).data(le),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),oe(this).data(le,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return ge}},{key:"NAME",get:function(){return ae}},{key:"DATA_KEY",get:function(){return le}},{key:"Event",get:function(){return ve}},{key:"EVENT_KEY",get:function(){return he}},{key:"DefaultType",get:function(){return de}}]),i}(),oe.fn[ae]=Se._jQueryInterface,oe.fn[ae].Constructor=Se,oe.fn[ae].noConflict=function(){return oe.fn[ae]=ce,Se._jQueryInterface},Se),On=(Ne="popover",ke="."+(Oe="bs.popover"),Pe=(we=e).fn[Ne],Le="bs-popover",je=new RegExp("(^|\\s)"+Le+"\\S+","g"),Re=h({},Nn.Default,{placement:"right",trigger:"click",content:"",template:'

'}),He=h({},Nn.DefaultType,{content:"(string|element|function)"}),We="fade",xe=".popover-header",Ue=".popover-body",Ke={HIDE:"hide"+ke,HIDDEN:"hidden"+ke,SHOW:(Me="show")+ke,SHOWN:"shown"+ke,INSERTED:"inserted"+ke,CLICK:"click"+ke,FOCUSIN:"focusin"+ke,FOCUSOUT:"focusout"+ke,MOUSEENTER:"mouseenter"+ke,MOUSELEAVE:"mouseleave"+ke},Fe=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){we(this.getTipElement()).addClass(Le+"-"+t)},r.getTipElement=function(){return this.tip=this.tip||we(this.config.template)[0],this.tip},r.setContent=function(){var t=we(this.getTipElement());this.setElementContent(t.find(xe),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(Ue),e),t.removeClass(We+" "+Me)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=we(this.getTipElement()),e=t.attr("class").match(je);null!==e&&0<e.length&&t.removeClass(e.join(""))},i._jQueryInterface=function(n){return this.each(function(){var t=we(this).data(Oe),e="object"==typeof n?n:null;if((t||!/destroy|hide/.test(n))&&(t||(t=new i(this,e),we(this).data(Oe,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Re}},{key:"NAME",get:function(){return Ne}},{key:"DATA_KEY",get:function(){return Oe}},{key:"Event",get:function(){return Ke}},{key:"EVENT_KEY",get:function(){return ke}},{key:"DefaultType",get:function(){return He}}]),i}(Nn),we.fn[Ne]=Fe._jQueryInterface,we.fn[Ne].Constructor=Fe,we.fn[Ne].noConflict=function(){return we.fn[Ne]=Pe,Fe._jQueryInterface},Fe),kn=(Qe="scrollspy",Ye="."+(Be="bs.scrollspy"),Ge=(Ve=e).fn[Qe],qe={offset:10,method:"auto",target:""},ze={offset:"number",method:"string",target:"(string|element)"},Xe={ACTIVATE:"activate"+Ye,SCROLL:"scroll"+Ye,LOAD_DATA_API:"load"+Ye+".data-api"},Je="dropdown-item",Ze="active",$e={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},tn="offset",en="position",nn=function(){function n(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+$e.NAV_LINKS+","+this._config.target+" "+$e.LIST_ITEMS+","+this._config.target+" "+$e.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,Ve(this._scrollElement).on(Xe.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process()}var t=n.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?tn:en,r="auto"===this._config.method?t:this._config.method,s=r===en?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),Ve.makeArray(Ve(this._selector)).map(function(t){var e,n=Cn.getSelectorFromElement(t);if(n&&(e=Ve(n)[0]),e){var i=e.getBoundingClientRect();if(i.width||i.height)return[Ve(e)[r]().top+s,n]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){Ve.removeData(this._element,Be),Ve(this._scrollElement).off(Ye),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(t){if("string"!=typeof(t=h({},qe,t)).target){var e=Ve(t.target).attr("id");e||(e=Cn.getUID(Qe),Ve(t.target).attr("id",e)),t.target="#"+e}return Cn.typeCheckConfig(Qe,t,ze),t},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;){this._activeTarget!==this._targets[r]&&t>=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||t<this._offsets[r+1])&&this._activate(this._targets[r])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",");t=t.map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'});var n=Ve(t.join(","));n.hasClass(Je)?(n.closest($e.DROPDOWN).find($e.DROPDOWN_TOGGLE).addClass(Ze),n.addClass(Ze)):(n.addClass(Ze),n.parents($e.NAV_LIST_GROUP).prev($e.NAV_LINKS+", "+$e.LIST_ITEMS).addClass(Ze),n.parents($e.NAV_LIST_GROUP).prev($e.NAV_ITEMS).children($e.NAV_LINKS).addClass(Ze)),Ve(this._scrollElement).trigger(Xe.ACTIVATE,{relatedTarget:e})},t._clear=function(){Ve(this._selector).filter($e.ACTIVE).removeClass(Ze)},n._jQueryInterface=function(e){return this.each(function(){var t=Ve(this).data(Be);if(t||(t=new n(this,"object"==typeof e&&e),Ve(this).data(Be,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},o(n,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return qe}}]),n}(),Ve(window).on(Xe.LOAD_DATA_API,function(){for(var t=Ve.makeArray(Ve($e.DATA_SPY)),e=t.length;e--;){var n=Ve(t[e]);nn._jQueryInterface.call(n,n.data())}}),Ve.fn[Qe]=nn._jQueryInterface,Ve.fn[Qe].Constructor=nn,Ve.fn[Qe].noConflict=function(){return Ve.fn[Qe]=Ge,nn._jQueryInterface},nn),Pn=(on="."+(sn="bs.tab"),an=(rn=e).fn.tab,ln={HIDE:"hide"+on,HIDDEN:"hidden"+on,SHOW:"show"+on,SHOWN:"shown"+on,CLICK_DATA_API:"click"+on+".data-api"},hn="dropdown-menu",cn="active",un="disabled",fn="fade",dn="show",_n=".dropdown",gn=".nav, .list-group",mn=".active",pn="> li > .active",vn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',En=".dropdown-toggle",yn="> .dropdown-menu .active",Tn=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&rn(this._element).hasClass(cn)||rn(this._element).hasClass(un))){var t,i,e=rn(this._element).closest(gn)[0],r=Cn.getSelectorFromElement(this._element);if(e){var s="UL"===e.nodeName?pn:mn;i=(i=rn.makeArray(rn(e).find(s)))[i.length-1]}var o=rn.Event(ln.HIDE,{relatedTarget:this._element}),a=rn.Event(ln.SHOW,{relatedTarget:i});if(i&&rn(i).trigger(o),rn(this._element).trigger(a),!a.isDefaultPrevented()&&!o.isDefaultPrevented()){r&&(t=rn(r)[0]),this._activate(this._element,e);var l=function(){var t=rn.Event(ln.HIDDEN,{relatedTarget:n._element}),e=rn.Event(ln.SHOWN,{relatedTarget:i});rn(i).trigger(t),rn(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){rn.removeData(this._element,sn),this._element=null},t._activate=function(t,e,n){var i=this,r=("UL"===e.nodeName?rn(e).find(pn):rn(e).children(mn))[0],s=n&&r&&rn(r).hasClass(fn),o=function(){return i._transitionComplete(t,r,n)};if(r&&s){var a=Cn.getTransitionDurationFromElement(r);rn(r).one(Cn.TRANSITION_END,o).emulateTransitionEnd(a)}else o()},t._transitionComplete=function(t,e,n){if(e){rn(e).removeClass(dn+" "+cn);var i=rn(e.parentNode).find(yn)[0];i&&rn(i).removeClass(cn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(rn(t).addClass(cn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),Cn.reflow(t),rn(t).addClass(dn),t.parentNode&&rn(t.parentNode).hasClass(hn)){var r=rn(t).closest(_n)[0];r&&rn(r).find(En).addClass(cn),t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=rn(this),e=t.data(sn);if(e||(e=new i(this),t.data(sn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),i}(),rn(document).on(ln.CLICK_DATA_API,vn,function(t){t.preventDefault(),Tn._jQueryInterface.call(rn(this),"show")}),rn.fn.tab=Tn._jQueryInterface,rn.fn.tab.Constructor=Tn,rn.fn.tab.noConflict=function(){return rn.fn.tab=an,Tn._jQueryInterface},Tn);!function(t){if("undefined"==typeof t)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1===e[0]&&9===e[1]&&e[2]<1||4<=e[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(e),t.Util=Cn,t.Alert=In,t.Button=An,t.Carousel=Dn,t.Collapse=bn,t.Dropdown=Sn,t.Modal=wn,t.Popover=On,t.Scrollspy=kn,t.Tab=Pn,t.Tooltip=Nn,Object.defineProperty(t,"__esModule",{value:!0})});

//# 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: '
', // http://tobiasahlin.com/spinkit/

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 = '';

var btn = '<button type="button" class="close" data-dismiss="modal" aria-label="' + this._config.strings.close + '">×</button>';

var header = ''; var footer = ''; var body = ''; var dialog = ''; $(this._config.doc.body).append('');

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('
<a href="#">' + this._config.leftArrow + '</a><a href="#">' + this._config.rightArrow + '</a>
');

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('
<iframe width="' + width + '" height="' + height + '" src="' + url + '" frameborder="0" allowfullscreen class="embed-responsive-item"></iframe>
');

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('
<video width="' + width + '" height="' + height + '" src="' + url + '" preload="auto" autoplay controls class="embed-responsive-item"></video>
');

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 () {

   $(window).on("scroll", function () {
       if ($(window).scrollTop() >= 100 && !$(".navbar").hasClass("fixed")) {
           $(".navbar").addClass("fixed").addClass("fixed-top").animate({
               top: 15,
               opacity: 1
           }, 1000);


       } else if ($(window).scrollTop() <= 50) {
           $(".navbar").css("top", "").removeClass("fixed").removeClass("fixed-top");
       }
   });
   
   //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()
   });
   // Instantiate the Bootstrap carousel
   $('#theCarousel').carousel({
       interval: false
   });

// for every slide in carousel, copy the next slide's item in the slide. // Do the same for the next, next item.

   $('#theCarousel .item').each(function(){
       var next = $(this).next();
       if (!next.length) {
           next = $(this).siblings(':first');
       }
       next.children(':first-child').clone().appendTo($(this));
       if (next.next().length>0) {
           next.next().children(':first-child').clone().appendTo($(this));
       } else {
           $(this).siblings(':first').children(':first-child').clone().appendTo($(this));
       }
   });

}); $(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');

}) let quotes = [

   {
       quote:"Life isn’t about getting and having, it’s about giving and being.","author":"Kevin Kruse"},
   {
       quote:"Whatever the mind of man can conceive and believe, it can achieve.","author":"Napoleon Hill"},
   {
       quote:"Strive not to be a success, but rather to be of value.","author":"Albert Einstein"},
   {
       quote:"Two roads diverged in a wood, and I—I took the one less traveled by, And that has made all the difference.","author":"Robert Frost"},
   {
       quote:"I attribute my success to this: I never gave or took any excuse.","author":"Florence Nightingale"},
   {
       quote:"You miss 100% of the shots you don’t take.","author":"Wayne Gretzky"},
   {
       quote:"I’ve missed more than 9000 shots in my career. I’ve lost almost 300 games. 26 times I’ve been trusted to take the game winning shot and missed. I’ve failed over and over and over again in my life. And that is why I succeed.","author":"Michael Jordan"},
   {
       quote:"The most difficult thing is the decision to act, the rest is merely tenacity.","author":"Amelia Earhart"},
   {
       quote:"Every strike brings me closer to the next home run.","author":"Babe Ruth"},
   {
       quote:"Definiteness of purpose is the starting point of all achievement.","author":"W. Clement Stone"},
   {
       quote:"We must balance conspicuous consumption with conscious capitalism.","author":"Kevin Kruse"},
   {
       quote:"Life is what happens to you while you’re busy making other plans.","author":"John Lennon"},
   {
       quote:"We become what we think about.","author":"Earl Nightingale"},
   {
       quote:"Twenty years from now you will be more disappointed by the things that you didn’t do than by the ones you did do, so throw off the bowlines, sail away from safe harbor, catch the trade winds in your sails.  Explore, Dream, Discover.","author":"Mark Twain"},
   {
       quote:"Life is 10% what happens to me and 90% of how I react to it.","author":"Charles Swindoll"},
   {
       quote:"The most common way people give up their power is by thinking they don’t have any.","author":"Alice Walker"},
   {
       quote:"The mind is everything. What you think you become.","author":"Buddha"},
   {
       quote:"The best time to plant a tree was 20 years ago. The second best time is now.","author":"Chinese Proverb"},
   {
       quote:"An unexamined life is not worth living.","author":"Socrates"},
   {
       quote:"Eighty percent of success is showing up.","author":"Woody Allen"},
   {
       quote:"Your time is limited, so don’t waste it living someone else’s life.","author":"Steve Jobs"},
   {
       quote:"Winning isn’t everything, but wanting to win is.","author":"Vince Lombardi"},
   {
       quote:"I am not a product of my circumstances. I am a product of my decisions.","author":"Stephen Covey"},
   {
       quote:"Every child is an artist.  The problem is how to remain an artist once he grows up.","author":"Pablo Picasso"},
   {
       quote:"You can never cross the ocean until you have the courage to lose sight of the shore.","author":"Christopher Columbus"},
   {
       quote:"I’ve learned that people will forget what you said, people will forget what you did, but people will never forget how you made them feel.","author":"Maya Angelou"},
   {
       quote:"Either you run the day, or the day runs you.","author":"Jim Rohn"},
   {
       quote:"Whether you think you can or you think you can’t, you’re right.","author":"Henry Ford"},
   {
       quote:"The two most important days in your life are the day you are born and the day you find out why.","author":"Mark Twain"},
   {
       quote:"Whatever you can do, or dream you can, begin it.  Boldness has genius, power and magic in it.","author":"Johann Wolfgang von Goethe"},
   {
       quote:"The best revenge is massive success.","author":"Frank Sinatra"},
   {
       quote:"People often say that motivation doesn’t last. Well, neither does bathing.  That’s why we recommend it daily.","author":"Zig Ziglar"},
   {
       quote:"Life shrinks or expands in proportion to one’s courage.","author":"Anais Nin"},
   {
       quote:"If you hear a voice within you say “you cannot paint,” then by all means paint and that voice will be silenced.","author":"Vincent Van Gogh"},
   {
       quote:"There is only one way to avoid criticism: do nothing, say nothing, and be nothing.","author":"Aristotle"},
   {
       quote:"Ask and it will be given to you; search, and you will find; knock and the door will be opened for you.","author":"Jesus"},
   {
       quote:"The only person you are destined to become is the person you decide to be.","author":"Ralph Waldo Emerson"},
   {
       quote:"Go confidently in the direction of your dreams.  Live the life you have imagined.","author":"Henry David Thoreau"},
   {
       quote:"When I stand before God at the end of my life, I would hope that I would not have a single bit of talent left and could say, I used everything you gave me.","author":"Erma Bombeck"},
   {
       quote:"Few things can help an individual more than to place responsibility on him, and to let him know that you trust him.","author":"Booker T. Washington"},
   {
       quote:"Certain things catch your eye, but pursue only those that capture the heart.","author":" Ancient Indian Proverb"},
   {
       quote:"Believe you can and you’re halfway there.","author":"Theodore Roosevelt"},
   {
       quote:"Everything you’ve ever wanted is on the other side of fear.","author":"George Addair"},
   {
       quote:"We can easily forgive a child who is afraid of the dark; the real tragedy of life is when men are afraid of the light.","author":"Plato"},
   {
       quote:"Teach thy tongue to say, “I do not know,” and thous shalt progress.","author":"Maimonides"},
   {
       quote:"Start where you are. Use what you have.  Do what you can.","author":"Arthur Ashe"},
   {
       quote:"When I was 5 years old, my mother always told me that happiness was the key to life.  When I went to school, they asked me what I wanted to be when I grew up.  I wrote down ‘happy’.  They told me I didn’t understand the assignment, and I told them they didn’t understand life.","author":"John Lennon"},
   {
       quote:"Fall seven times and stand up eight.","author":"Japanese Proverb"},
   {
       quote:"When one door of happiness closes, another opens, but often we look so long at the closed door that we do not see the one that has been opened for us.","author":"Helen Keller"},
   {
       quote:"Everything has beauty, but not everyone can see.","author":"Confucius"},
   {
       quote:"How wonderful it is that nobody need wait a single moment before starting to improve the world.","author":"Anne Frank"},
   {
       quote:"When I let go of what I am, I become what I might be.","author":"Lao Tzu"},
   {
       quote:"Life is not measured by the number of breaths we take, but by the moments that take our breath away.","author":"Maya Angelou"},
   {
       quote:"Happiness is not something readymade.  It comes from your own actions.","author":"Dalai Lama"},
   {
       quote:"If you’re offered a seat on a rocket ship, don’t ask what seat! Just get on.","author":"Sheryl Sandberg"},
   {
       quote:"First, have a definite, clear practical ideal; a goal, an objective. Second, have the necessary means to achieve your ends; wisdom, money, materials, and methods. Third, adjust all your means to that end.","author":"Aristotle"},
   {
       quote:"If the wind will not serve, take to the oars.","author":"Latin Proverb"},
   {
       quote:"You can’t fall if you don’t climb.  But there’s no joy in living your whole life on the ground.","author":"Unknown"},
   {
       quote:"We must believe that we are gifted for something, and that this thing, at whatever cost, must be attained.","author":"Marie Curie"},
   {
       quote:"Too many of us are not living our dreams because we are living our fears.","author":"Les Brown"},
   {
       quote:"Challenges are what make life interesting and overcoming them is what makes life meaningful.","author":"Joshua J. Marine"},
   {
       quote:"If you want to lift yourself up, lift up someone else.","author":"Booker T. Washington"},
   {
       quote:"I have been impressed with the urgency of doing. Knowing is not enough; we must apply. Being willing is not enough; we must do.","author":"Leonardo da Vinci"},
   {
       quote:"Limitations live only in our minds.  But if we use our imaginations, our possibilities become limitless.","author":"Jamie Paolinetti"},
   {
       quote:"You take your life in your own hands, and what happens? A terrible thing, no one to blame.","author":"Erica Jong"},
   {
       quote:"What’s money? A man is a success if he gets up in the morning and goes to bed at night and in between does what he wants to do.","author":"Bob Dylan"},
   {
       quote:"I didn’t fail the test. I just found 100 ways to do it wrong.","author":"Benjamin Franklin"},
   {
       quote:"In order to succeed, your desire for success should be greater than your fear of failure.","author":"Bill Cosby"},
   {
       quote:"A person who never made a mistake never tried anything new.","author":" Albert Einstein"},
   {
       quote:"The person who says it cannot be done should not interrupt the person who is doing it.","author":"Chinese Proverb"},
   {
       quote:"There are no traffic jams along the extra mile.","author":"Roger Staubach"},
   {
       quote:"It is never too late to be what you might have been.","author":"George Eliot"},
   {
       quote:"You become what you believe.","author":"Oprah Winfrey"},
   {
       quote:"I would rather die of passion than of boredom.","author":"Vincent van Gogh"},
   {
       quote:"A truly rich man is one whose children run into his arms when his hands are empty.","author":"Unknown"},
   {
       quote:"It is not what you do for your children, but what you have taught them to do for themselves, that will make them successful human beings.","author":"Ann Landers"},
   {
       quote:"If you want your children to turn out well, spend twice as much time with them, and half as much money.","author":"Abigail Van Buren"},
   {
       quote:"Build your own dreams, or someone else will hire you to build theirs.","author":"Farrah Gray"},
   {
       quote:"The battles that count aren’t the ones for gold medals. The struggles within yourself–the invisible battles inside all of us–that’s where it’s at.","author":"Jesse Owens"},
   {
       quote:"Education costs money.  But then so does ignorance.","author":"Sir Claus Moser"},
   {
       quote:"I have learned over the years that when one’s mind is made up, this diminishes fear.","author":"Rosa Parks"},
   {
       quote:"It does not matter how slowly you go as long as you do not stop.","author":"Confucius"},
   {
       quote:"If you look at what you have in life, you’ll always have more. If you look at what you don’t have in life, you’ll never have enough.","author":"Oprah Winfrey"},
   {
       quote:"Remember that not getting what you want is sometimes a wonderful stroke of luck.","author":"Dalai Lama"},
   {
       quote:"You can’t use up creativity.  The more you use, the more you have.","author":"Maya Angelou"},
   {
       quote:"Dream big and dare to fail.","author":"Norman Vaughan"},
   {
       quote:"Our lives begin to end the day we become silent about things that matter.","author":"Martin Luther King Jr."},
   {
       quote:"Do what you can, where you are, with what you have.","author":"Teddy Roosevelt"},
   {
       quote:"If you do what you’ve always done, you’ll get what you’ve always gotten.","author":"Tony Robbins"},
   {
       quote:"Dreaming, after all, is a form of planning.","author":"Gloria Steinem"},
   {
       quote:"It’s your place in the world; it’s your life. Go on and do all you can with it, and make it the life you want to live.","author":"Mae Jemison"},
   {
       quote:"You may be disappointed if you fail, but you are doomed if you don’t try.","author":"Beverly Sills"},
   {
       quote:"Remember no one can make you feel inferior without your consent.","author":"Eleanor Roosevelt"},
   {
       quote:"Life is what we make it, always has been, always will be.","author":"Grandma Moses"},
   {
       quote:"The question isn’t who is going to let me; it’s who is going to stop me.","author":"Ayn Rand"},
   {
       quote:"When everything seems to be going against you, remember that the airplane takes off against the wind, not with it.","author":"Henry Ford"},
   {
       quote:"It’s not the years in your life that count. It’s the life in your years.","author":"Abraham Lincoln"},
   {
       quote:"Change your thoughts and you change your world.","author":"Norman Vincent Peale"},
   {
       quote:"Either write something worth reading or do something worth writing.","author":"Benjamin Franklin"},
   {
       quote:"Nothing is impossible, the word itself says, “I’m possible!”","author":"–Audrey Hepburn"},
   {
       quote:"The only way to do great work is to love what you do.","author":"Steve Jobs"},
   {
       quote:"If you can dream it, you can achieve it.","author":"Zig Ziglar"}

]; // 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})}); $(document).ready(function () {

   $(".landing-sub-page").on("click", function () {
       let quote = quotes[Math.floor((Math.random() * (quotes.length-1)))];
       console.log("Your Quote:", quote.quote, "Author:", quote.author);
   });

}); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwb3BwZXIubWluLmpzIiwiYm9vdHN0cmFwLm1pbi5qcyIsImQzLm1pbi5qcyIsImVra28tbGlnaHRib3guanMiLCJmb290ZXItaGVhZGVyLXRlbXBsYXRlLmpzIiwiaW1hZ2UtZ2FsbGVyeS5qcyIsImluZGV4LmpzIiwibGFuZGluZy5qcyIsIm1vZGVsLmpzIiwibmF2bGluZS5qcyIsInF1b3Rlcy5qcyIsInNjcm9sbHNlbnNpdGl2ZS5qcyIsInNtb290aHNjcm9sbGJhci5qcyIsInhlYXN0ZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDTkE7QUFDQTtBQ0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQzVwQkE7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDekJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDekpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDOUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDL2pQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDOU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoid2lraS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiBDb3B5cmlnaHQgKEMpIEZlZGVyaWNvIFppdm9sbyAyMDE4XHJcbiBEaXN0cmlidXRlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UgKGxpY2Vuc2UgdGVybXMgYXJlIGF0IGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQpLlxyXG4gKi8oZnVuY3Rpb24oZSx0KXsnb2JqZWN0Jz09dHlwZW9mIGV4cG9ydHMmJid1bmRlZmluZWQnIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKTonZnVuY3Rpb24nPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSh0KTplLlBvcHBlcj10KCl9KSh0aGlzLGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3QnO2Z1bmN0aW9uIGUoZSl7cmV0dXJuIGUmJidbb2JqZWN0IEZ1bmN0aW9uXSc9PT17fS50b1N0cmluZy5jYWxsKGUpfWZ1bmN0aW9uIHQoZSx0KXtpZigxIT09ZS5ub2RlVHlwZSlyZXR1cm5bXTt2YXIgbz1nZXRDb21wdXRlZFN0eWxlKGUsbnVsbCk7cmV0dXJuIHQ/b1t0XTpvfWZ1bmN0aW9uIG8oZSl7cmV0dXJuJ0hUTUwnPT09ZS5ub2RlTmFtZT9lOmUucGFyZW50Tm9kZXx8ZS5ob3N0fWZ1bmN0aW9uIG4oZSl7aWYoIWUpcmV0dXJuIGRvY3VtZW50LmJvZHk7c3dpdGNoKGUubm9kZU5hbWUpe2Nhc2UnSFRNTCc6Y2FzZSdCT0RZJzpyZXR1cm4gZS5vd25lckRvY3VtZW50LmJvZHk7Y2FzZScjZG9jdW1lbnQnOnJldHVybiBlLmJvZHk7fXZhciBpPXQoZSkscj1pLm92ZXJmbG93LHA9aS5vdmVyZmxvd1gscz1pLm92ZXJmbG93WTtyZXR1cm4gLyhhdXRvfHNjcm9sbHxvdmVybGF5KS8udGVzdChyK3MrcCk/ZTpuKG8oZSkpfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIDExPT09ZT9yZToxMD09PWU/cGU6cmV8fHBlfWZ1bmN0aW9uIHAoZSl7aWYoIWUpcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtmb3IodmFyIG89cigxMCk/ZG9jdW1lbnQuYm9keTpudWxsLG49ZS5vZmZzZXRQYXJlbnQ7bj09PW8mJmUubmV4dEVsZW1lbnRTaWJsaW5nOyluPShlPWUubmV4dEVsZW1lbnRTaWJsaW5nKS5vZmZzZXRQYXJlbnQ7dmFyIGk9biYmbi5ub2RlTmFtZTtyZXR1cm4gaSYmJ0JPRFknIT09aSYmJ0hUTUwnIT09aT8tMSE9PVsnVEQnLCdUQUJMRSddLmluZGV4T2Yobi5ub2RlTmFtZSkmJidzdGF0aWMnPT09dChuLCdwb3NpdGlvbicpP3Aobik6bjplP2Uub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fWZ1bmN0aW9uIHMoZSl7dmFyIHQ9ZS5ub2RlTmFtZTtyZXR1cm4nQk9EWSchPT10JiYoJ0hUTUwnPT09dHx8cChlLmZpcnN0RWxlbWVudENoaWxkKT09PWUpfWZ1bmN0aW9uIGQoZSl7cmV0dXJuIG51bGw9PT1lLnBhcmVudE5vZGU/ZTpkKGUucGFyZW50Tm9kZSl9ZnVuY3Rpb24gYShlLHQpe2lmKCFlfHwhZS5ub2RlVHlwZXx8IXR8fCF0Lm5vZGVUeXBlKXJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7dmFyIG89ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0KSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORyxuPW8/ZTp0LGk9bz90OmUscj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Iuc2V0U3RhcnQobiwwKSxyLnNldEVuZChpLDApO3ZhciBsPXIuY29tbW9uQW5jZXN0b3JDb250YWluZXI7aWYoZSE9PWwmJnQhPT1sfHxuLmNvbnRhaW5zKGkpKXJldHVybiBzKGwpP2w6cChsKTt2YXIgZj1kKGUpO3JldHVybiBmLmhvc3Q/YShmLmhvc3QsdCk6YShlLGQodCkuaG9zdCl9ZnVuY3Rpb24gbChlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06J3RvcCcsbz0ndG9wJz09PXQ/J3Njcm9sbFRvcCc6J3Njcm9sbExlZnQnLG49ZS5ub2RlTmFtZTtpZignQk9EWSc9PT1ufHwnSFRNTCc9PT1uKXt2YXIgaT1lLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHI9ZS5vd25lckRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnR8fGk7cmV0dXJuIHJbb119cmV0dXJuIGVbb119ZnVuY3Rpb24gZihlLHQpe3ZhciBvPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sbj1sKHQsJ3RvcCcpLGk9bCh0LCdsZWZ0Jykscj1vPy0xOjE7cmV0dXJuIGUudG9wKz1uKnIsZS5ib3R0b20rPW4qcixlLmxlZnQrPWkqcixlLnJpZ2h0Kz1pKnIsZX1mdW5jdGlvbiBtKGUsdCl7dmFyIG89J3gnPT09dD8nTGVmdCc6J1RvcCcsbj0nTGVmdCc9PW8/J1JpZ2h0JzonQm90dG9tJztyZXR1cm4gcGFyc2VGbG9hdChlWydib3JkZXInK28rJ1dpZHRoJ10sMTApK3BhcnNlRmxvYXQoZVsnYm9yZGVyJytuKydXaWR0aCddLDEwKX1mdW5jdGlvbiBoKGUsdCxvLG4pe3JldHVybiBKKHRbJ29mZnNldCcrZV0sdFsnc2Nyb2xsJytlXSxvWydjbGllbnQnK2VdLG9bJ29mZnNldCcrZV0sb1snc2Nyb2xsJytlXSxyKDEwKT9wYXJzZUludChvWydvZmZzZXQnK2VdKStwYXJzZUludChuWydtYXJnaW4nKygnSGVpZ2h0Jz09PWU/J1RvcCc6J0xlZnQnKV0pK3BhcnNlSW50KG5bJ21hcmdpbicrKCdIZWlnaHQnPT09ZT8nQm90dG9tJzonUmlnaHQnKV0pOjApfWZ1bmN0aW9uIGMoZSl7dmFyIHQ9ZS5ib2R5LG89ZS5kb2N1bWVudEVsZW1lbnQsbj1yKDEwKSYmZ2V0Q29tcHV0ZWRTdHlsZShvKTtyZXR1cm57aGVpZ2h0OmgoJ0hlaWdodCcsdCxvLG4pLHdpZHRoOmgoJ1dpZHRoJyx0LG8sbil9fWZ1bmN0aW9uIGcoZSl7cmV0dXJuIGxlKHt9LGUse3JpZ2h0OmUubGVmdCtlLndpZHRoLGJvdHRvbTplLnRvcCtlLmhlaWdodH0pfWZ1bmN0aW9uIHUoZSl7dmFyIG89e307dHJ5e2lmKHIoMTApKXtvPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIG49bChlLCd0b3AnKSxpPWwoZSwnbGVmdCcpO28udG9wKz1uLG8ubGVmdCs9aSxvLmJvdHRvbSs9bixvLnJpZ2h0Kz1pfWVsc2Ugbz1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWNhdGNoKHQpe312YXIgcD17bGVmdDpvLmxlZnQsdG9wOm8udG9wLHdpZHRoOm8ucmlnaHQtby5sZWZ0LGhlaWdodDpvLmJvdHRvbS1vLnRvcH0scz0nSFRNTCc9PT1lLm5vZGVOYW1lP2MoZS5vd25lckRvY3VtZW50KTp7fSxkPXMud2lkdGh8fGUuY2xpZW50V2lkdGh8fHAucmlnaHQtcC5sZWZ0LGE9cy5oZWlnaHR8fGUuY2xpZW50SGVpZ2h0fHxwLmJvdHRvbS1wLnRvcCxmPWUub2Zmc2V0V2lkdGgtZCxoPWUub2Zmc2V0SGVpZ2h0LWE7aWYoZnx8aCl7dmFyIHU9dChlKTtmLT1tKHUsJ3gnKSxoLT1tKHUsJ3knKSxwLndpZHRoLT1mLHAuaGVpZ2h0LT1ofXJldHVybiBnKHApfWZ1bmN0aW9uIGIoZSxvKXt2YXIgaT0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLHA9cigxMCkscz0nSFRNTCc9PT1vLm5vZGVOYW1lLGQ9dShlKSxhPXUobyksbD1uKGUpLG09dChvKSxoPXBhcnNlRmxvYXQobS5ib3JkZXJUb3BXaWR0aCwxMCksYz1wYXJzZUZsb2F0KG0uYm9yZGVyTGVmdFdpZHRoLDEwKTtpJiZzJiYoYS50b3A9SihhLnRvcCwwKSxhLmxlZnQ9SihhLmxlZnQsMCkpO3ZhciBiPWcoe3RvcDpkLnRvcC1hLnRvcC1oLGxlZnQ6ZC5sZWZ0LWEubGVmdC1jLHdpZHRoOmQud2lkdGgsaGVpZ2h0OmQuaGVpZ2h0fSk7aWYoYi5tYXJnaW5Ub3A9MCxiLm1hcmdpbkxlZnQ9MCwhcCYmcyl7dmFyIHk9cGFyc2VGbG9hdChtLm1hcmdpblRvcCwxMCksdz1wYXJzZUZsb2F0KG0ubWFyZ2luTGVmdCwxMCk7Yi50b3AtPWgteSxiLmJvdHRvbS09aC15LGIubGVmdC09Yy13LGIucmlnaHQtPWMtdyxiLm1hcmdpblRvcD15LGIubWFyZ2luTGVmdD13fXJldHVybihwJiYhaT9vLmNvbnRhaW5zKGwpOm89PT1sJiYnQk9EWSchPT1sLm5vZGVOYW1lKSYmKGI9ZihiLG8pKSxifWZ1bmN0aW9uIHkoZSl7dmFyIHQ9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxvPWUub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbj1iKGUsbyksaT1KKG8uY2xpZW50V2lkdGgsd2luZG93LmlubmVyV2lkdGh8fDApLHI9SihvLmNsaWVudEhlaWdodCx3aW5kb3cuaW5uZXJIZWlnaHR8fDApLHA9dD8wOmwobykscz10PzA6bChvLCdsZWZ0JyksZD17dG9wOnAtbi50b3Arbi5tYXJnaW5Ub3AsbGVmdDpzLW4ubGVmdCtuLm1hcmdpbkxlZnQsd2lkdGg6aSxoZWlnaHQ6cn07cmV0dXJuIGcoZCl9ZnVuY3Rpb24gdyhlKXt2YXIgbj1lLm5vZGVOYW1lO3JldHVybidCT0RZJz09PW58fCdIVE1MJz09PW4/ITE6J2ZpeGVkJz09PXQoZSwncG9zaXRpb24nKXx8dyhvKGUpKX1mdW5jdGlvbiBFKGUpe2lmKCFlfHwhZS5wYXJlbnRFbGVtZW50fHxyKCkpcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtmb3IodmFyIG89ZS5wYXJlbnRFbGVtZW50O28mJidub25lJz09PXQobywndHJhbnNmb3JtJyk7KW89by5wYXJlbnRFbGVtZW50O3JldHVybiBvfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR9ZnVuY3Rpb24gdihlLHQsaSxyKXt2YXIgcD00PGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XSYmYXJndW1lbnRzWzRdLHM9e3RvcDowLGxlZnQ6MH0sZD1wP0UoZSk6YShlLHQpO2lmKCd2aWV3cG9ydCc9PT1yKXM9eShkLHApO2Vsc2V7dmFyIGw7J3Njcm9sbFBhcmVudCc9PT1yPyhsPW4obyh0KSksJ0JPRFknPT09bC5ub2RlTmFtZSYmKGw9ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpOid3aW5kb3cnPT09cj9sPWUub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6bD1yO3ZhciBmPWIobCxkLHApO2lmKCdIVE1MJz09PWwubm9kZU5hbWUmJiF3KGQpKXt2YXIgbT1jKGUub3duZXJEb2N1bWVudCksaD1tLmhlaWdodCxnPW0ud2lkdGg7cy50b3ArPWYudG9wLWYubWFyZ2luVG9wLHMuYm90dG9tPWgrZi50b3Ascy5sZWZ0Kz1mLmxlZnQtZi5tYXJnaW5MZWZ0LHMucmlnaHQ9ZytmLmxlZnR9ZWxzZSBzPWZ9aT1pfHwwO3ZhciB1PSdudW1iZXInPT10eXBlb2YgaTtyZXR1cm4gcy5sZWZ0Kz11P2k6aS5sZWZ0fHwwLHMudG9wKz11P2k6aS50b3B8fDAscy5yaWdodC09dT9pOmkucmlnaHR8fDAscy5ib3R0b20tPXU/aTppLmJvdHRvbXx8MCxzfWZ1bmN0aW9uIHgoZSl7dmFyIHQ9ZS53aWR0aCxvPWUuaGVpZ2h0O3JldHVybiB0Km99ZnVuY3Rpb24gTyhlLHQsbyxuLGkpe3ZhciByPTU8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzVdP2FyZ3VtZW50c1s1XTowO2lmKC0xPT09ZS5pbmRleE9mKCdhdXRvJykpcmV0dXJuIGU7dmFyIHA9dihvLG4scixpKSxzPXt0b3A6e3dpZHRoOnAud2lkdGgsaGVpZ2h0OnQudG9wLXAudG9wfSxyaWdodDp7d2lkdGg6cC5yaWdodC10LnJpZ2h0LGhlaWdodDpwLmhlaWdodH0sYm90dG9tOnt3aWR0aDpwLndpZHRoLGhlaWdodDpwLmJvdHRvbS10LmJvdHRvbX0sbGVmdDp7d2lkdGg6dC5sZWZ0LXAubGVmdCxoZWlnaHQ6cC5oZWlnaHR9fSxkPU9iamVjdC5rZXlzKHMpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbGUoe2tleTplfSxzW2VdLHthcmVhOngoc1tlXSl9KX0pLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5hcmVhLWUuYXJlYX0pLGE9ZC5maWx0ZXIoZnVuY3Rpb24oZSl7dmFyIHQ9ZS53aWR0aCxuPWUuaGVpZ2h0O3JldHVybiB0Pj1vLmNsaWVudFdpZHRoJiZuPj1vLmNsaWVudEhlaWdodH0pLGw9MDxhLmxlbmd0aD9hWzBdLmtleTpkWzBdLmtleSxmPWUuc3BsaXQoJy0nKVsxXTtyZXR1cm4gbCsoZj8nLScrZjonJyl9ZnVuY3Rpb24gTChlLHQsbyl7dmFyIG49Mzxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOm51bGwsaT1uP0UodCk6YSh0LG8pO3JldHVybiBiKG8saSxuKX1mdW5jdGlvbiBTKGUpe3ZhciB0PWdldENvbXB1dGVkU3R5bGUoZSksbz1wYXJzZUZsb2F0KHQubWFyZ2luVG9wKStwYXJzZUZsb2F0KHQubWFyZ2luQm90dG9tKSxuPXBhcnNlRmxvYXQodC5tYXJnaW5MZWZ0KStwYXJzZUZsb2F0KHQubWFyZ2luUmlnaHQpLGk9e3dpZHRoOmUub2Zmc2V0V2lkdGgrbixoZWlnaHQ6ZS5vZmZzZXRIZWlnaHQrb307cmV0dXJuIGl9ZnVuY3Rpb24gVChlKXt2YXIgdD17bGVmdDoncmlnaHQnLHJpZ2h0OidsZWZ0Jyxib3R0b206J3RvcCcsdG9wOidib3R0b20nfTtyZXR1cm4gZS5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZyxmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pfWZ1bmN0aW9uIEQoZSx0LG8pe289by5zcGxpdCgnLScpWzBdO3ZhciBuPVMoZSksaT17d2lkdGg6bi53aWR0aCxoZWlnaHQ6bi5oZWlnaHR9LHI9LTEhPT1bJ3JpZ2h0JywnbGVmdCddLmluZGV4T2YobykscD1yPyd0b3AnOidsZWZ0JyxzPXI/J2xlZnQnOid0b3AnLGQ9cj8naGVpZ2h0Jzond2lkdGgnLGE9cj8nd2lkdGgnOidoZWlnaHQnO3JldHVybiBpW3BdPXRbcF0rdFtkXS8yLW5bZF0vMixpW3NdPW89PT1zP3Rbc10tblthXTp0W1QocyldLGl9ZnVuY3Rpb24gQyhlLHQpe3JldHVybiBBcnJheS5wcm90b3R5cGUuZmluZD9lLmZpbmQodCk6ZS5maWx0ZXIodClbMF19ZnVuY3Rpb24gTihlLHQsbyl7aWYoQXJyYXkucHJvdG90eXBlLmZpbmRJbmRleClyZXR1cm4gZS5maW5kSW5kZXgoZnVuY3Rpb24oZSl7cmV0dXJuIGVbdF09PT1vfSk7dmFyIG49QyhlLGZ1bmN0aW9uKGUpe3JldHVybiBlW3RdPT09b30pO3JldHVybiBlLmluZGV4T2Yobil9ZnVuY3Rpb24gUCh0LG8sbil7dmFyIGk9dm9pZCAwPT09bj90OnQuc2xpY2UoMCxOKHQsJ25hbWUnLG4pKTtyZXR1cm4gaS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3RbJ2Z1bmN0aW9uJ10mJmNvbnNvbGUud2FybignYG1vZGlmaWVyLmZ1bmN0aW9uYCBpcyBkZXByZWNhdGVkLCB1c2UgYG1vZGlmaWVyLmZuYCEnKTt2YXIgbj10WydmdW5jdGlvbiddfHx0LmZuO3QuZW5hYmxlZCYmZShuKSYmKG8ub2Zmc2V0cy5wb3BwZXI9ZyhvLm9mZnNldHMucG9wcGVyKSxvLm9mZnNldHMucmVmZXJlbmNlPWcoby5vZmZzZXRzLnJlZmVyZW5jZSksbz1uKG8sdCkpfSksb31mdW5jdGlvbiBrKCl7aWYoIXRoaXMuc3RhdGUuaXNEZXN0cm95ZWQpe3ZhciBlPXtpbnN0YW5jZTp0aGlzLHN0eWxlczp7fSxhcnJvd1N0eWxlczp7fSxhdHRyaWJ1dGVzOnt9LGZsaXBwZWQ6ITEsb2Zmc2V0czp7fX07ZS5vZmZzZXRzLnJlZmVyZW5jZT1MKHRoaXMuc3RhdGUsdGhpcy5wb3BwZXIsdGhpcy5yZWZlcmVuY2UsdGhpcy5vcHRpb25zLnBvc2l0aW9uRml4ZWQpLGUucGxhY2VtZW50PU8odGhpcy5vcHRpb25zLnBsYWNlbWVudCxlLm9mZnNldHMucmVmZXJlbmNlLHRoaXMucG9wcGVyLHRoaXMucmVmZXJlbmNlLHRoaXMub3B0aW9ucy5tb2RpZmllcnMuZmxpcC5ib3VuZGFyaWVzRWxlbWVudCx0aGlzLm9wdGlvbnMubW9kaWZpZXJzLmZsaXAucGFkZGluZyksZS5vcmlnaW5hbFBsYWNlbWVudD1lLnBsYWNlbWVudCxlLnBvc2l0aW9uRml4ZWQ9dGhpcy5vcHRpb25zLnBvc2l0aW9uRml4ZWQsZS5vZmZzZXRzLnBvcHBlcj1EKHRoaXMucG9wcGVyLGUub2Zmc2V0cy5yZWZlcmVuY2UsZS5wbGFjZW1lbnQpLGUub2Zmc2V0cy5wb3BwZXIucG9zaXRpb249dGhpcy5vcHRpb25zLnBvc2l0aW9uRml4ZWQ/J2ZpeGVkJzonYWJzb2x1dGUnLGU9UCh0aGlzLm1vZGlmaWVycyxlKSx0aGlzLnN0YXRlLmlzQ3JlYXRlZD90aGlzLm9wdGlvbnMub25VcGRhdGUoZSk6KHRoaXMuc3RhdGUuaXNDcmVhdGVkPSEwLHRoaXMub3B0aW9ucy5vbkNyZWF0ZShlKSl9fWZ1bmN0aW9uIFcoZSx0KXtyZXR1cm4gZS5zb21lKGZ1bmN0aW9uKGUpe3ZhciBvPWUubmFtZSxuPWUuZW5hYmxlZDtyZXR1cm4gbiYmbz09PXR9KX1mdW5jdGlvbiBIKGUpe2Zvcih2YXIgdD1bITEsJ21zJywnV2Via2l0JywnTW96JywnTyddLG89ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnNsaWNlKDEpLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXSxyPWk/JycraStvOmU7aWYoJ3VuZGVmaW5lZCchPXR5cGVvZiBkb2N1bWVudC5ib2R5LnN0eWxlW3JdKXJldHVybiByfXJldHVybiBudWxsfWZ1bmN0aW9uIEIoKXtyZXR1cm4gdGhpcy5zdGF0ZS5pc0Rlc3Ryb3llZD0hMCxXKHRoaXMubW9kaWZpZXJzLCdhcHBseVN0eWxlJykmJih0aGlzLnBvcHBlci5yZW1vdmVBdHRyaWJ1dGUoJ3gtcGxhY2VtZW50JyksdGhpcy5wb3BwZXIuc3R5bGUucG9zaXRpb249JycsdGhpcy5wb3BwZXIuc3R5bGUudG9wPScnLHRoaXMucG9wcGVyLnN0eWxlLmxlZnQ9JycsdGhpcy5wb3BwZXIuc3R5bGUucmlnaHQ9JycsdGhpcy5wb3BwZXIuc3R5bGUuYm90dG9tPScnLHRoaXMucG9wcGVyLnN0eWxlLndpbGxDaGFuZ2U9JycsdGhpcy5wb3BwZXIuc3R5bGVbSCgndHJhbnNmb3JtJyldPScnKSx0aGlzLmRpc2FibGVFdmVudExpc3RlbmVycygpLHRoaXMub3B0aW9ucy5yZW1vdmVPbkRlc3Ryb3kmJnRoaXMucG9wcGVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5wb3BwZXIpLHRoaXN9ZnVuY3Rpb24gQShlKXt2YXIgdD1lLm93bmVyRG9jdW1lbnQ7cmV0dXJuIHQ/dC5kZWZhdWx0Vmlldzp3aW5kb3d9ZnVuY3Rpb24gTShlLHQsbyxpKXt2YXIgcj0nQk9EWSc9PT1lLm5vZGVOYW1lLHA9cj9lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc6ZTtwLmFkZEV2ZW50TGlzdGVuZXIodCxvLHtwYXNzaXZlOiEwfSkscnx8TShuKHAucGFyZW50Tm9kZSksdCxvLGkpLGkucHVzaChwKX1mdW5jdGlvbiBGKGUsdCxvLGkpe28udXBkYXRlQm91bmQ9aSxBKGUpLmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsby51cGRhdGVCb3VuZCx7cGFzc2l2ZTohMH0pO3ZhciByPW4oZSk7cmV0dXJuIE0ociwnc2Nyb2xsJyxvLnVwZGF0ZUJvdW5kLG8uc2Nyb2xsUGFyZW50cyksby5zY3JvbGxFbGVtZW50PXIsby5ldmVudHNFbmFibGVkPSEwLG99ZnVuY3Rpb24gSSgpe3RoaXMuc3RhdGUuZXZlbnRzRW5hYmxlZHx8KHRoaXMuc3RhdGU9Rih0aGlzLnJlZmVyZW5jZSx0aGlzLm9wdGlvbnMsdGhpcy5zdGF0ZSx0aGlzLnNjaGVkdWxlVXBkYXRlKSl9ZnVuY3Rpb24gUihlLHQpe3JldHVybiBBKGUpLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsdC51cGRhdGVCb3VuZCksdC5zY3JvbGxQYXJlbnRzLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLHQudXBkYXRlQm91bmQpfSksdC51cGRhdGVCb3VuZD1udWxsLHQuc2Nyb2xsUGFyZW50cz1bXSx0LnNjcm9sbEVsZW1lbnQ9bnVsbCx0LmV2ZW50c0VuYWJsZWQ9ITEsdH1mdW5jdGlvbiBVKCl7dGhpcy5zdGF0ZS5ldmVudHNFbmFibGVkJiYoY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5zY2hlZHVsZVVwZGF0ZSksdGhpcy5zdGF0ZT1SKHRoaXMucmVmZXJlbmNlLHRoaXMuc3RhdGUpKX1mdW5jdGlvbiBZKGUpe3JldHVybicnIT09ZSYmIWlzTmFOKHBhcnNlRmxvYXQoZSkpJiZpc0Zpbml0ZShlKX1mdW5jdGlvbiBqKGUsdCl7T2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihvKXt2YXIgbj0nJzstMSE9PVsnd2lkdGgnLCdoZWlnaHQnLCd0b3AnLCdyaWdodCcsJ2JvdHRvbScsJ2xlZnQnXS5pbmRleE9mKG8pJiZZKHRbb10pJiYobj0ncHgnKSxlLnN0eWxlW29dPXRbb10rbn0pfWZ1bmN0aW9uIEsoZSx0KXtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBuPXRbb107ITE9PT1uP2UucmVtb3ZlQXR0cmlidXRlKG8pOmUuc2V0QXR0cmlidXRlKG8sdFtvXSl9KX1mdW5jdGlvbiBxKGUsdCxvKXt2YXIgbj1DKGUsZnVuY3Rpb24oZSl7dmFyIG89ZS5uYW1lO3JldHVybiBvPT09dH0pLGk9ISFuJiZlLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIGUubmFtZT09PW8mJmUuZW5hYmxlZCYmZS5vcmRlcjxuLm9yZGVyfSk7aWYoIWkpe3ZhciByPSdgJyt0KydgJztjb25zb2xlLndhcm4oJ2AnK28rJ2AnKycgbW9kaWZpZXIgaXMgcmVxdWlyZWQgYnkgJytyKycgbW9kaWZpZXIgaW4gb3JkZXIgdG8gd29yaywgYmUgc3VyZSB0byBpbmNsdWRlIGl0IGJlZm9yZSAnK3IrJyEnKX1yZXR1cm4gaX1mdW5jdGlvbiBHKGUpe3JldHVybidlbmQnPT09ZT8nc3RhcnQnOidzdGFydCc9PT1lPydlbmQnOmV9ZnVuY3Rpb24gVihlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLG89bWUuaW5kZXhPZihlKSxuPW1lLnNsaWNlKG8rMSkuY29uY2F0KG1lLnNsaWNlKDAsbykpO3JldHVybiB0P24ucmV2ZXJzZSgpOm59ZnVuY3Rpb24geihlLHQsbyxuKXt2YXIgaT1lLm1hdGNoKC8oKD86XFwtfFxcKyk/XFxkKlxcLj9cXGQqKSguKikvKSxyPStpWzFdLHA9aVsyXTtpZighcilyZXR1cm4gZTtpZigwPT09cC5pbmRleE9mKCclJykpe3ZhciBzO3N3aXRjaChwKXtjYXNlJyVwJzpzPW87YnJlYWs7Y2FzZSclJzpjYXNlJyVyJzpkZWZhdWx0OnM9bjt9dmFyIGQ9ZyhzKTtyZXR1cm4gZFt0XS8xMDAqcn1pZigndmgnPT09cHx8J3Z3Jz09PXApe3ZhciBhO3JldHVybiBhPSd2aCc9PT1wP0ooZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCx3aW5kb3cuaW5uZXJIZWlnaHR8fDApOkooZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLHdpbmRvdy5pbm5lcldpZHRofHwwKSxhLzEwMCpyfXJldHVybiByfWZ1bmN0aW9uIF8oZSx0LG8sbil7dmFyIGk9WzAsMF0scj0tMSE9PVsncmlnaHQnLCdsZWZ0J10uaW5kZXhPZihuKSxwPWUuc3BsaXQoLyhcXCt8XFwtKS8pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS50cmltKCl9KSxzPXAuaW5kZXhPZihDKHAsZnVuY3Rpb24oZSl7cmV0dXJuLTEhPT1lLnNlYXJjaCgvLHxcXHMvKX0pKTtwW3NdJiYtMT09PXBbc10uaW5kZXhPZignLCcpJiZjb25zb2xlLndhcm4oJ09mZnNldHMgc2VwYXJhdGVkIGJ5IHdoaXRlIHNwYWNlKHMpIGFyZSBkZXByZWNhdGVkLCB1c2UgYSBjb21tYSAoLCkgaW5zdGVhZC4nKTt2YXIgZD0vXFxzKixcXHMqfFxccysvLGE9LTE9PT1zP1twXTpbcC5zbGljZSgwLHMpLmNvbmNhdChbcFtzXS5zcGxpdChkKVswXV0pLFtwW3NdLnNwbGl0KGQpWzFdXS5jb25jYXQocC5zbGljZShzKzEpKV07cmV0dXJuIGE9YS5tYXAoZnVuY3Rpb24oZSxuKXt2YXIgaT0oMT09PW4/IXI6cik/J2hlaWdodCc6J3dpZHRoJyxwPSExO3JldHVybiBlLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybicnPT09ZVtlLmxlbmd0aC0xXSYmLTEhPT1bJysnLCctJ10uaW5kZXhPZih0KT8oZVtlLmxlbmd0aC0xXT10LHA9ITAsZSk6cD8oZVtlLmxlbmd0aC0xXSs9dCxwPSExLGUpOmUuY29uY2F0KHQpfSxbXSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB6KGUsaSx0LG8pfSl9KSxhLmZvckVhY2goZnVuY3Rpb24oZSx0KXtlLmZvckVhY2goZnVuY3Rpb24obyxuKXtZKG8pJiYoaVt0XSs9byooJy0nPT09ZVtuLTFdPy0xOjEpKX0pfSksaX1mdW5jdGlvbiBYKGUsdCl7dmFyIG8sbj10Lm9mZnNldCxpPWUucGxhY2VtZW50LHI9ZS5vZmZzZXRzLHA9ci5wb3BwZXIscz1yLnJlZmVyZW5jZSxkPWkuc3BsaXQoJy0nKVswXTtyZXR1cm4gbz1ZKCtuKT9bK24sMF06XyhuLHAscyxkKSwnbGVmdCc9PT1kPyhwLnRvcCs9b1swXSxwLmxlZnQtPW9bMV0pOidyaWdodCc9PT1kPyhwLnRvcCs9b1swXSxwLmxlZnQrPW9bMV0pOid0b3AnPT09ZD8ocC5sZWZ0Kz1vWzBdLHAudG9wLT1vWzFdKTonYm90dG9tJz09PWQmJihwLmxlZnQrPW9bMF0scC50b3ArPW9bMV0pLGUucG9wcGVyPXAsZX1mb3IodmFyIFE9TWF0aC5taW4sWj1NYXRoLnJvdW5kLCQ9TWF0aC5mbG9vcixKPU1hdGgubWF4LGVlPSd1bmRlZmluZWQnIT10eXBlb2Ygd2luZG93JiYndW5kZWZpbmVkJyE9dHlwZW9mIGRvY3VtZW50LHRlPVsnRWRnZScsJ1RyaWRlbnQnLCdGaXJlZm94J10sb2U9MCxuZT0wO25lPHRlLmxlbmd0aDtuZSs9MSlpZihlZSYmMDw9bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKHRlW25lXSkpe29lPTE7YnJlYWt9dmFyIGk9ZWUmJndpbmRvdy5Qcm9taXNlLGllPWk/ZnVuY3Rpb24oZSl7dmFyIHQ9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7dHx8KHQ9ITAsd2luZG93LlByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXt0PSExLGUoKX0pKX19OmZ1bmN0aW9uKGUpe3ZhciB0PSExO3JldHVybiBmdW5jdGlvbigpe3R8fCh0PSEwLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0PSExLGUoKX0sb2UpKX19LHJlPWVlJiYhISh3aW5kb3cuTVNJbnB1dE1ldGhvZENvbnRleHQmJmRvY3VtZW50LmRvY3VtZW50TW9kZSkscGU9ZWUmJi9NU0lFIDEwLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHNlPWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyl9LGRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQpe2Zvcih2YXIgbyxuPTA7bjx0Lmxlbmd0aDtuKyspbz10W25dLG8uZW51bWVyYWJsZT1vLmVudW1lcmFibGV8fCExLG8uY29uZmlndXJhYmxlPSEwLCd2YWx1ZSdpbiBvJiYoby53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsby5rZXksbyl9cmV0dXJuIGZ1bmN0aW9uKHQsbyxuKXtyZXR1cm4gbyYmZSh0LnByb3RvdHlwZSxvKSxuJiZlKHQsbiksdH19KCksYWU9ZnVuY3Rpb24oZSx0LG8pe3JldHVybiB0IGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6byxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09byxlfSxsZT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQsbz0xO288YXJndW1lbnRzLmxlbmd0aDtvKyspZm9yKHZhciBuIGluIHQ9YXJndW1lbnRzW29dLHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pO3JldHVybiBlfSxmZT1bJ2F1dG8tc3RhcnQnLCdhdXRvJywnYXV0by1lbmQnLCd0b3Atc3RhcnQnLCd0b3AnLCd0b3AtZW5kJywncmlnaHQtc3RhcnQnLCdyaWdodCcsJ3JpZ2h0LWVuZCcsJ2JvdHRvbS1lbmQnLCdib3R0b20nLCdib3R0b20tc3RhcnQnLCdsZWZ0LWVuZCcsJ2xlZnQnLCdsZWZ0LXN0YXJ0J10sbWU9ZmUuc2xpY2UoMyksaGU9e0ZMSVA6J2ZsaXAnLENMT0NLV0lTRTonY2xvY2t3aXNlJyxDT1VOVEVSQ0xPQ0tXSVNFOidjb3VudGVyY2xvY2t3aXNlJ30sY2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KG8sbil7dmFyIGk9dGhpcyxyPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtzZSh0aGlzLHQpLHRoaXMuc2NoZWR1bGVVcGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGkudXBkYXRlKX0sdGhpcy51cGRhdGU9aWUodGhpcy51cGRhdGUuYmluZCh0aGlzKSksdGhpcy5vcHRpb25zPWxlKHt9LHQuRGVmYXVsdHMsciksdGhpcy5zdGF0ZT17aXNEZXN0cm95ZWQ6ITEsaXNDcmVhdGVkOiExLHNjcm9sbFBhcmVudHM6W119LHRoaXMucmVmZXJlbmNlPW8mJm8uanF1ZXJ5P29bMF06byx0aGlzLnBvcHBlcj1uJiZuLmpxdWVyeT9uWzBdOm4sdGhpcy5vcHRpb25zLm1vZGlmaWVycz17fSxPYmplY3Qua2V5cyhsZSh7fSx0LkRlZmF1bHRzLm1vZGlmaWVycyxyLm1vZGlmaWVycykpLmZvckVhY2goZnVuY3Rpb24oZSl7aS5vcHRpb25zLm1vZGlmaWVyc1tlXT1sZSh7fSx0LkRlZmF1bHRzLm1vZGlmaWVyc1tlXXx8e30sci5tb2RpZmllcnM/ci5tb2RpZmllcnNbZV06e30pfSksdGhpcy5tb2RpZmllcnM9T2JqZWN0LmtleXModGhpcy5vcHRpb25zLm1vZGlmaWVycykubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBsZSh7bmFtZTplfSxpLm9wdGlvbnMubW9kaWZpZXJzW2VdKX0pLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5vcmRlci10Lm9yZGVyfSksdGhpcy5tb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmVuYWJsZWQmJmUodC5vbkxvYWQpJiZ0Lm9uTG9hZChpLnJlZmVyZW5jZSxpLnBvcHBlcixpLm9wdGlvbnMsdCxpLnN0YXRlKX0pLHRoaXMudXBkYXRlKCk7dmFyIHA9dGhpcy5vcHRpb25zLmV2ZW50c0VuYWJsZWQ7cCYmdGhpcy5lbmFibGVFdmVudExpc3RlbmVycygpLHRoaXMuc3RhdGUuZXZlbnRzRW5hYmxlZD1wfXJldHVybiBkZSh0LFt7a2V5Oid1cGRhdGUnLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGsuY2FsbCh0aGlzKX19LHtrZXk6J2Rlc3Ryb3knLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEIuY2FsbCh0aGlzKX19LHtrZXk6J2VuYWJsZUV2ZW50TGlzdGVuZXJzJyx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBJLmNhbGwodGhpcyl9fSx7a2V5OidkaXNhYmxlRXZlbnRMaXN0ZW5lcnMnLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFUuY2FsbCh0aGlzKX19XSksdH0oKTtyZXR1cm4gY2UuVXRpbHM9KCd1bmRlZmluZWQnPT10eXBlb2Ygd2luZG93P2dsb2JhbDp3aW5kb3cpLlBvcHBlclV0aWxzLGNlLnBsYWNlbWVudHM9ZmUsY2UuRGVmYXVsdHM9e3BsYWNlbWVudDonYm90dG9tJyxwb3NpdGlvbkZpeGVkOiExLGV2ZW50c0VuYWJsZWQ6ITAscmVtb3ZlT25EZXN0cm95OiExLG9uQ3JlYXRlOmZ1bmN0aW9uKCl7fSxvblVwZGF0ZTpmdW5jdGlvbigpe30sbW9kaWZpZXJzOntzaGlmdDp7b3JkZXI6MTAwLGVuYWJsZWQ6ITAsZm46ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wbGFjZW1lbnQsbz10LnNwbGl0KCctJylbMF0sbj10LnNwbGl0KCctJylbMV07aWYobil7dmFyIGk9ZS5vZmZzZXRzLHI9aS5yZWZlcmVuY2UscD1pLnBvcHBlcixzPS0xIT09Wydib3R0b20nLCd0b3AnXS5pbmRleE9mKG8pLGQ9cz8nbGVmdCc6J3RvcCcsYT1zPyd3aWR0aCc6J2hlaWdodCcsbD17c3RhcnQ6YWUoe30sZCxyW2RdKSxlbmQ6YWUoe30sZCxyW2RdK3JbYV0tcFthXSl9O2Uub2Zmc2V0cy5wb3BwZXI9bGUoe30scCxsW25dKX1yZXR1cm4gZX19LG9mZnNldDp7b3JkZXI6MjAwLGVuYWJsZWQ6ITAsZm46WCxvZmZzZXQ6MH0scHJldmVudE92ZXJmbG93OntvcmRlcjozMDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlLHQpe3ZhciBvPXQuYm91bmRhcmllc0VsZW1lbnR8fHAoZS5pbnN0YW5jZS5wb3BwZXIpO2UuaW5zdGFuY2UucmVmZXJlbmNlPT09byYmKG89cChvKSk7dmFyIG49SCgndHJhbnNmb3JtJyksaT1lLmluc3RhbmNlLnBvcHBlci5zdHlsZSxyPWkudG9wLHM9aS5sZWZ0LGQ9aVtuXTtpLnRvcD0nJyxpLmxlZnQ9JycsaVtuXT0nJzt2YXIgYT12KGUuaW5zdGFuY2UucG9wcGVyLGUuaW5zdGFuY2UucmVmZXJlbmNlLHQucGFkZGluZyxvLGUucG9zaXRpb25GaXhlZCk7aS50b3A9cixpLmxlZnQ9cyxpW25dPWQsdC5ib3VuZGFyaWVzPWE7dmFyIGw9dC5wcmlvcml0eSxmPWUub2Zmc2V0cy5wb3BwZXIsbT17cHJpbWFyeTpmdW5jdGlvbihlKXt2YXIgbz1mW2VdO3JldHVybiBmW2VdPGFbZV0mJiF0LmVzY2FwZVdpdGhSZWZlcmVuY2UmJihvPUooZltlXSxhW2VdKSksYWUoe30sZSxvKX0sc2Vjb25kYXJ5OmZ1bmN0aW9uKGUpe3ZhciBvPSdyaWdodCc9PT1lPydsZWZ0JzondG9wJyxuPWZbb107cmV0dXJuIGZbZV0+YVtlXSYmIXQuZXNjYXBlV2l0aFJlZmVyZW5jZSYmKG49UShmW29dLGFbZV0tKCdyaWdodCc9PT1lP2Yud2lkdGg6Zi5oZWlnaHQpKSksYWUoe30sbyxuKX19O3JldHVybiBsLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9LTE9PT1bJ2xlZnQnLCd0b3AnXS5pbmRleE9mKGUpPydzZWNvbmRhcnknOidwcmltYXJ5JztmPWxlKHt9LGYsbVt0XShlKSl9KSxlLm9mZnNldHMucG9wcGVyPWYsZX0scHJpb3JpdHk6WydsZWZ0JywncmlnaHQnLCd0b3AnLCdib3R0b20nXSxwYWRkaW5nOjUsYm91bmRhcmllc0VsZW1lbnQ6J3Njcm9sbFBhcmVudCd9LGtlZXBUb2dldGhlcjp7b3JkZXI6NDAwLGVuYWJsZWQ6ITAsZm46ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vZmZzZXRzLG89dC5wb3BwZXIsbj10LnJlZmVyZW5jZSxpPWUucGxhY2VtZW50LnNwbGl0KCctJylbMF0scj0kLHA9LTEhPT1bJ3RvcCcsJ2JvdHRvbSddLmluZGV4T2YoaSkscz1wPydyaWdodCc6J2JvdHRvbScsZD1wPydsZWZ0JzondG9wJyxhPXA/J3dpZHRoJzonaGVpZ2h0JztyZXR1cm4gb1tzXTxyKG5bZF0pJiYoZS5vZmZzZXRzLnBvcHBlcltkXT1yKG5bZF0pLW9bYV0pLG9bZF0+cihuW3NdKSYmKGUub2Zmc2V0cy5wb3BwZXJbZF09cihuW3NdKSksZX19LGFycm93OntvcmRlcjo1MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlLG8pe3ZhciBuO2lmKCFxKGUuaW5zdGFuY2UubW9kaWZpZXJzLCdhcnJvdycsJ2tlZXBUb2dldGhlcicpKXJldHVybiBlO3ZhciBpPW8uZWxlbWVudDtpZignc3RyaW5nJz09dHlwZW9mIGkpe2lmKGk9ZS5pbnN0YW5jZS5wb3BwZXIucXVlcnlTZWxlY3RvcihpKSwhaSlyZXR1cm4gZTt9ZWxzZSBpZighZS5pbnN0YW5jZS5wb3BwZXIuY29udGFpbnMoaSkpcmV0dXJuIGNvbnNvbGUud2FybignV0FSTklORzogYGFycm93LmVsZW1lbnRgIG11c3QgYmUgY2hpbGQgb2YgaXRzIHBvcHBlciBlbGVtZW50IScpLGU7dmFyIHI9ZS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXSxwPWUub2Zmc2V0cyxzPXAucG9wcGVyLGQ9cC5yZWZlcmVuY2UsYT0tMSE9PVsnbGVmdCcsJ3JpZ2h0J10uaW5kZXhPZihyKSxsPWE/J2hlaWdodCc6J3dpZHRoJyxmPWE/J1RvcCc6J0xlZnQnLG09Zi50b0xvd2VyQ2FzZSgpLGg9YT8nbGVmdCc6J3RvcCcsYz1hPydib3R0b20nOidyaWdodCcsdT1TKGkpW2xdO2RbY10tdTxzW21dJiYoZS5vZmZzZXRzLnBvcHBlclttXS09c1ttXS0oZFtjXS11KSksZFttXSt1PnNbY10mJihlLm9mZnNldHMucG9wcGVyW21dKz1kW21dK3Utc1tjXSksZS5vZmZzZXRzLnBvcHBlcj1nKGUub2Zmc2V0cy5wb3BwZXIpO3ZhciBiPWRbbV0rZFtsXS8yLXUvMix5PXQoZS5pbnN0YW5jZS5wb3BwZXIpLHc9cGFyc2VGbG9hdCh5WydtYXJnaW4nK2ZdLDEwKSxFPXBhcnNlRmxvYXQoeVsnYm9yZGVyJytmKydXaWR0aCddLDEwKSx2PWItZS5vZmZzZXRzLnBvcHBlclttXS13LUU7cmV0dXJuIHY9SihRKHNbbF0tdSx2KSwwKSxlLmFycm93RWxlbWVudD1pLGUub2Zmc2V0cy5hcnJvdz0obj17fSxhZShuLG0sWih2KSksYWUobixoLCcnKSxuKSxlfSxlbGVtZW50OidbeC1hcnJvd10nfSxmbGlwOntvcmRlcjo2MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlLHQpe2lmKFcoZS5pbnN0YW5jZS5tb2RpZmllcnMsJ2lubmVyJykpcmV0dXJuIGU7aWYoZS5mbGlwcGVkJiZlLnBsYWNlbWVudD09PWUub3JpZ2luYWxQbGFjZW1lbnQpcmV0dXJuIGU7dmFyIG89dihlLmluc3RhbmNlLnBvcHBlcixlLmluc3RhbmNlLnJlZmVyZW5jZSx0LnBhZGRpbmcsdC5ib3VuZGFyaWVzRWxlbWVudCxlLnBvc2l0aW9uRml4ZWQpLG49ZS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXSxpPVQobikscj1lLnBsYWNlbWVudC5zcGxpdCgnLScpWzFdfHwnJyxwPVtdO3N3aXRjaCh0LmJlaGF2aW9yKXtjYXNlIGhlLkZMSVA6cD1bbixpXTticmVhaztjYXNlIGhlLkNMT0NLV0lTRTpwPVYobik7YnJlYWs7Y2FzZSBoZS5DT1VOVEVSQ0xPQ0tXSVNFOnA9VihuLCEwKTticmVhaztkZWZhdWx0OnA9dC5iZWhhdmlvcjt9cmV0dXJuIHAuZm9yRWFjaChmdW5jdGlvbihzLGQpe2lmKG4hPT1zfHxwLmxlbmd0aD09PWQrMSlyZXR1cm4gZTtuPWUucGxhY2VtZW50LnNwbGl0KCctJylbMF0saT1UKG4pO3ZhciBhPWUub2Zmc2V0cy5wb3BwZXIsbD1lLm9mZnNldHMucmVmZXJlbmNlLGY9JCxtPSdsZWZ0Jz09PW4mJmYoYS5yaWdodCk+ZihsLmxlZnQpfHwncmlnaHQnPT09biYmZihhLmxlZnQpPGYobC5yaWdodCl8fCd0b3AnPT09biYmZihhLmJvdHRvbSk+ZihsLnRvcCl8fCdib3R0b20nPT09biYmZihhLnRvcCk8ZihsLmJvdHRvbSksaD1mKGEubGVmdCk8ZihvLmxlZnQpLGM9ZihhLnJpZ2h0KT5mKG8ucmlnaHQpLGc9ZihhLnRvcCk8ZihvLnRvcCksdT1mKGEuYm90dG9tKT5mKG8uYm90dG9tKSxiPSdsZWZ0Jz09PW4mJmh8fCdyaWdodCc9PT1uJiZjfHwndG9wJz09PW4mJmd8fCdib3R0b20nPT09biYmdSx5PS0xIT09Wyd0b3AnLCdib3R0b20nXS5pbmRleE9mKG4pLHc9ISF0LmZsaXBWYXJpYXRpb25zJiYoeSYmJ3N0YXJ0Jz09PXImJmh8fHkmJidlbmQnPT09ciYmY3x8IXkmJidzdGFydCc9PT1yJiZnfHwheSYmJ2VuZCc9PT1yJiZ1KTsobXx8Ynx8dykmJihlLmZsaXBwZWQ9ITAsKG18fGIpJiYobj1wW2QrMV0pLHcmJihyPUcocikpLGUucGxhY2VtZW50PW4rKHI/Jy0nK3I6JycpLGUub2Zmc2V0cy5wb3BwZXI9bGUoe30sZS5vZmZzZXRzLnBvcHBlcixEKGUuaW5zdGFuY2UucG9wcGVyLGUub2Zmc2V0cy5yZWZlcmVuY2UsZS5wbGFjZW1lbnQpKSxlPVAoZS5pbnN0YW5jZS5tb2RpZmllcnMsZSwnZmxpcCcpKX0pLGV9LGJlaGF2aW9yOidmbGlwJyxwYWRkaW5nOjUsYm91bmRhcmllc0VsZW1lbnQ6J3ZpZXdwb3J0J30saW5uZXI6e29yZGVyOjcwMCxlbmFibGVkOiExLGZuOmZ1bmN0aW9uKGUpe3ZhciB0PWUucGxhY2VtZW50LG89dC5zcGxpdCgnLScpWzBdLG49ZS5vZmZzZXRzLGk9bi5wb3BwZXIscj1uLnJlZmVyZW5jZSxwPS0xIT09WydsZWZ0JywncmlnaHQnXS5pbmRleE9mKG8pLHM9LTE9PT1bJ3RvcCcsJ2xlZnQnXS5pbmRleE9mKG8pO3JldHVybiBpW3A/J2xlZnQnOid0b3AnXT1yW29dLShzP2lbcD8nd2lkdGgnOidoZWlnaHQnXTowKSxlLnBsYWNlbWVudD1UKHQpLGUub2Zmc2V0cy5wb3BwZXI9ZyhpKSxlfX0saGlkZTp7b3JkZXI6ODAwLGVuYWJsZWQ6ITAsZm46ZnVuY3Rpb24oZSl7aWYoIXEoZS5pbnN0YW5jZS5tb2RpZmllcnMsJ2hpZGUnLCdwcmV2ZW50T3ZlcmZsb3cnKSlyZXR1cm4gZTt2YXIgdD1lLm9mZnNldHMucmVmZXJlbmNlLG89QyhlLmluc3RhbmNlLm1vZGlmaWVycyxmdW5jdGlvbihlKXtyZXR1cm4ncHJldmVudE92ZXJmbG93Jz09PWUubmFtZX0pLmJvdW5kYXJpZXM7aWYodC5ib3R0b208by50b3B8fHQubGVmdD5vLnJpZ2h0fHx0LnRvcD5vLmJvdHRvbXx8dC5yaWdodDxvLmxlZnQpe2lmKCEwPT09ZS5oaWRlKXJldHVybiBlO2UuaGlkZT0hMCxlLmF0dHJpYnV0ZXNbJ3gtb3V0LW9mLWJvdW5kYXJpZXMnXT0nJ31lbHNle2lmKCExPT09ZS5oaWRlKXJldHVybiBlO2UuaGlkZT0hMSxlLmF0dHJpYnV0ZXNbJ3gtb3V0LW9mLWJvdW5kYXJpZXMnXT0hMX1yZXR1cm4gZX19LGNvbXB1dGVTdHlsZTp7b3JkZXI6ODUwLGVuYWJsZWQ6ITAsZm46ZnVuY3Rpb24oZSx0KXt2YXIgbz10Lngsbj10LnksaT1lLm9mZnNldHMucG9wcGVyLHI9QyhlLmluc3RhbmNlLm1vZGlmaWVycyxmdW5jdGlvbihlKXtyZXR1cm4nYXBwbHlTdHlsZSc9PT1lLm5hbWV9KS5ncHVBY2NlbGVyYXRpb247dm9pZCAwIT09ciYmY29uc29sZS53YXJuKCdXQVJOSU5HOiBgZ3B1QWNjZWxlcmF0aW9uYCBvcHRpb24gbW92ZWQgdG8gYGNvbXB1dGVTdHlsZWAgbW9kaWZpZXIgYW5kIHdpbGwgbm90IGJlIHN1cHBvcnRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgUG9wcGVyLmpzIScpO3ZhciBzLGQsYT12b2lkIDA9PT1yP3QuZ3B1QWNjZWxlcmF0aW9uOnIsbD1wKGUuaW5zdGFuY2UucG9wcGVyKSxmPXUobCksbT17cG9zaXRpb246aS5wb3NpdGlvbn0saD17bGVmdDokKGkubGVmdCksdG9wOlooaS50b3ApLGJvdHRvbTpaKGkuYm90dG9tKSxyaWdodDokKGkucmlnaHQpfSxjPSdib3R0b20nPT09bz8ndG9wJzonYm90dG9tJyxnPSdyaWdodCc9PT1uPydsZWZ0JzoncmlnaHQnLGI9SCgndHJhbnNmb3JtJyk7aWYoZD0nYm90dG9tJz09Yz8nSFRNTCc9PT1sLm5vZGVOYW1lPy1sLmNsaWVudEhlaWdodCtoLmJvdHRvbTotZi5oZWlnaHQraC5ib3R0b206aC50b3Ascz0ncmlnaHQnPT1nPydIVE1MJz09PWwubm9kZU5hbWU/LWwuY2xpZW50V2lkdGgraC5yaWdodDotZi53aWR0aCtoLnJpZ2h0OmgubGVmdCxhJiZiKW1bYl09J3RyYW5zbGF0ZTNkKCcrcysncHgsICcrZCsncHgsIDApJyxtW2NdPTAsbVtnXT0wLG0ud2lsbENoYW5nZT0ndHJhbnNmb3JtJztlbHNle3ZhciB5PSdib3R0b20nPT1jPy0xOjEsdz0ncmlnaHQnPT1nPy0xOjE7bVtjXT1kKnksbVtnXT1zKncsbS53aWxsQ2hhbmdlPWMrJywgJytnfXZhciBFPXtcIngtcGxhY2VtZW50XCI6ZS5wbGFjZW1lbnR9O3JldHVybiBlLmF0dHJpYnV0ZXM9bGUoe30sRSxlLmF0dHJpYnV0ZXMpLGUuc3R5bGVzPWxlKHt9LG0sZS5zdHlsZXMpLGUuYXJyb3dTdHlsZXM9bGUoe30sZS5vZmZzZXRzLmFycm93LGUuYXJyb3dTdHlsZXMpLGV9LGdwdUFjY2VsZXJhdGlvbjohMCx4Oidib3R0b20nLHk6J3JpZ2h0J30sYXBwbHlTdHlsZTp7b3JkZXI6OTAwLGVuYWJsZWQ6ITAsZm46ZnVuY3Rpb24oZSl7cmV0dXJuIGooZS5pbnN0YW5jZS5wb3BwZXIsZS5zdHlsZXMpLEsoZS5pbnN0YW5jZS5wb3BwZXIsZS5hdHRyaWJ1dGVzKSxlLmFycm93RWxlbWVudCYmT2JqZWN0LmtleXMoZS5hcnJvd1N0eWxlcykubGVuZ3RoJiZqKGUuYXJyb3dFbGVtZW50LGUuYXJyb3dTdHlsZXMpLGV9LG9uTG9hZDpmdW5jdGlvbihlLHQsbyxuLGkpe3ZhciByPUwoaSx0LGUsby5wb3NpdGlvbkZpeGVkKSxwPU8oby5wbGFjZW1lbnQscix0LGUsby5tb2RpZmllcnMuZmxpcC5ib3VuZGFyaWVzRWxlbWVudCxvLm1vZGlmaWVycy5mbGlwLnBhZGRpbmcpO3JldHVybiB0LnNldEF0dHJpYnV0ZSgneC1wbGFjZW1lbnQnLHApLGoodCx7cG9zaXRpb246by5wb3NpdGlvbkZpeGVkPydmaXhlZCc6J2Fic29sdXRlJ30pLG99LGdwdUFjY2VsZXJhdGlvbjp2b2lkIDB9fX0sY2V9KTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cG9wcGVyLm1pbi5qcy5tYXAiLCIvKiFcbiAgKiBCb290c3RyYXAgdjQuMS4wIChodHRwczovL2dldGJvb3RzdHJhcC5jb20vKVxuICAqIENvcHlyaWdodCAyMDExLTIwMTggVGhlIEJvb3RzdHJhcCBBdXRob3JzIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvZ3JhcGhzL2NvbnRyaWJ1dG9ycylcbiAgKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxuICAqL1xuIWZ1bmN0aW9uKHQsZSl7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBtb2R1bGU/ZShleHBvcnRzLHJlcXVpcmUoXCJqcXVlcnlcIikscmVxdWlyZShcInBvcHBlci5qc1wiKSk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXCJleHBvcnRzXCIsXCJqcXVlcnlcIixcInBvcHBlci5qc1wiXSxlKTplKHQuYm9vdHN0cmFwPXt9LHQualF1ZXJ5LHQuUG9wcGVyKX0odGhpcyxmdW5jdGlvbih0LGUsYyl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gaSh0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpLmtleSxpKX19ZnVuY3Rpb24gbyh0LGUsbil7cmV0dXJuIGUmJmkodC5wcm90b3R5cGUsZSksbiYmaSh0LG4pLHR9ZnVuY3Rpb24gaChyKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgcz1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LGU9T2JqZWN0LmtleXMocyk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKGU9ZS5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iocyx0KS5lbnVtZXJhYmxlfSkpKSxlLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGUsbixpO2U9cixpPXNbbj10XSxuIGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7dmFsdWU6aSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbbl09aX0pfXJldHVybiByfWU9ZSYmZS5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRcIik/ZS5kZWZhdWx0OmUsYz1jJiZjLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFwiKT9jLmRlZmF1bHQ6Yzt2YXIgcixuLHMsYSxsLHUsZixkLF8sZyxtLHAsdixFLHksVCxDLEksQSxELGIsUyx3LE4sTyxrLFAsTCxqLFIsSCxXLE0seCxVLEssRixWLFEsQixZLEcscSx6LFgsSixaLCQsdHQsZXQsbnQsaXQscnQsc3Qsb3QsYXQsbHQsaHQsY3QsdXQsZnQsZHQsX3QsZ3QsbXQscHQsdnQsRXQseXQsVHQsQ3QsSXQsQXQsRHQsYnQsU3Qsd3QsTnQsT3Qsa3QsUHQsTHQsanQsUnQsSHQsV3QsTXQseHQsVXQsS3QsRnQsVnQsUXQsQnQsWXQsR3QscXQsenQsWHQsSnQsWnQsJHQsdGUsZWUsbmUsaWUscmUsc2Usb2UsYWUsbGUsaGUsY2UsdWUsZmUsZGUsX2UsZ2UsbWUscGUsdmUsRWUseWUsVGUsQ2UsSWUsQWUsRGUsYmUsU2Usd2UsTmUsT2Usa2UsUGUsTGUsamUsUmUsSGUsV2UsTWUseGUsVWUsS2UsRmUsVmUsUWUsQmUsWWUsR2UscWUsemUsWGUsSmUsWmUsJGUsdG4sZW4sbm4scm4sc24sb24sYW4sbG4saG4sY24sdW4sZm4sZG4sX24sZ24sbW4scG4sdm4sRW4seW4sVG4sQ249ZnVuY3Rpb24oaSl7dmFyIGU9XCJ0cmFuc2l0aW9uZW5kXCI7ZnVuY3Rpb24gdCh0KXt2YXIgZT10aGlzLG49ITE7cmV0dXJuIGkodGhpcykub25lKGwuVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24oKXtuPSEwfSksc2V0VGltZW91dChmdW5jdGlvbigpe258fGwudHJpZ2dlclRyYW5zaXRpb25FbmQoZSl9LHQpLHRoaXN9dmFyIGw9e1RSQU5TSVRJT05fRU5EOlwiYnNUcmFuc2l0aW9uRW5kXCIsZ2V0VUlEOmZ1bmN0aW9uKHQpe2Zvcig7dCs9fn4oMWU2Kk1hdGgucmFuZG9tKCkpLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQpOyk7cmV0dXJuIHR9LGdldFNlbGVjdG9yRnJvbUVsZW1lbnQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRBdHRyaWJ1dGUoXCJkYXRhLXRhcmdldFwiKTtlJiZcIiNcIiE9PWV8fChlPXQuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKXx8XCJcIik7dHJ5e3JldHVybiAwPGkoZG9jdW1lbnQpLmZpbmQoZSkubGVuZ3RoP2U6bnVsbH1jYXRjaCh0KXtyZXR1cm4gbnVsbH19LGdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50OmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiAwO3ZhciBlPWkodCkuY3NzKFwidHJhbnNpdGlvbi1kdXJhdGlvblwiKTtyZXR1cm4gcGFyc2VGbG9hdChlKT8oZT1lLnNwbGl0KFwiLFwiKVswXSwxZTMqcGFyc2VGbG9hdChlKSk6MH0scmVmbG93OmZ1bmN0aW9uKHQpe3JldHVybiB0Lm9mZnNldEhlaWdodH0sdHJpZ2dlclRyYW5zaXRpb25FbmQ6ZnVuY3Rpb24odCl7aSh0KS50cmlnZ2VyKGUpfSxzdXBwb3J0c1RyYW5zaXRpb25FbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbihlKX0saXNFbGVtZW50OmZ1bmN0aW9uKHQpe3JldHVybih0WzBdfHx0KS5ub2RlVHlwZX0sdHlwZUNoZWNrQ29uZmlnOmZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGkgaW4gbilpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixpKSl7dmFyIHI9bltpXSxzPWVbaV0sbz1zJiZsLmlzRWxlbWVudChzKT9cImVsZW1lbnRcIjooYT1zLHt9LnRvU3RyaW5nLmNhbGwoYSkubWF0Y2goL1xccyhbYS16XSspL2kpWzFdLnRvTG93ZXJDYXNlKCkpO2lmKCFuZXcgUmVnRXhwKHIpLnRlc3QobykpdGhyb3cgbmV3IEVycm9yKHQudG9VcHBlckNhc2UoKSsnOiBPcHRpb24gXCInK2krJ1wiIHByb3ZpZGVkIHR5cGUgXCInK28rJ1wiIGJ1dCBleHBlY3RlZCB0eXBlIFwiJytyKydcIi4nKX12YXIgYX19O3JldHVybiBpLmZuLmVtdWxhdGVUcmFuc2l0aW9uRW5kPXQsaS5ldmVudC5zcGVjaWFsW2wuVFJBTlNJVElPTl9FTkRdPXtiaW5kVHlwZTplLGRlbGVnYXRlVHlwZTplLGhhbmRsZTpmdW5jdGlvbih0KXtpZihpKHQudGFyZ2V0KS5pcyh0aGlzKSlyZXR1cm4gdC5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxsfShlKSxJbj0obj1cImFsZXJ0XCIsYT1cIi5cIisocz1cImJzLmFsZXJ0XCIpLGw9KHI9ZSkuZm5bbl0sdT17Q0xPU0U6XCJjbG9zZVwiK2EsQ0xPU0VEOlwiY2xvc2VkXCIrYSxDTElDS19EQVRBX0FQSTpcImNsaWNrXCIrYStcIi5kYXRhLWFwaVwifSxmPVwiYWxlcnRcIixkPVwiZmFkZVwiLF89XCJzaG93XCIsZz1mdW5jdGlvbigpe2Z1bmN0aW9uIGkodCl7dGhpcy5fZWxlbWVudD10fXZhciB0PWkucHJvdG90eXBlO3JldHVybiB0LmNsb3NlPWZ1bmN0aW9uKHQpe3Q9dHx8dGhpcy5fZWxlbWVudDt2YXIgZT10aGlzLl9nZXRSb290RWxlbWVudCh0KTt0aGlzLl90cmlnZ2VyQ2xvc2VFdmVudChlKS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8dGhpcy5fcmVtb3ZlRWxlbWVudChlKX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7ci5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQscyksdGhpcy5fZWxlbWVudD1udWxsfSx0Ll9nZXRSb290RWxlbWVudD1mdW5jdGlvbih0KXt2YXIgZT1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHQpLG49ITE7cmV0dXJuIGUmJihuPXIoZSlbMF0pLG58fChuPXIodCkuY2xvc2VzdChcIi5cIitmKVswXSksbn0sdC5fdHJpZ2dlckNsb3NlRXZlbnQ9ZnVuY3Rpb24odCl7dmFyIGU9ci5FdmVudCh1LkNMT1NFKTtyZXR1cm4gcih0KS50cmlnZ2VyKGUpLGV9LHQuX3JlbW92ZUVsZW1lbnQ9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztpZihyKGUpLnJlbW92ZUNsYXNzKF8pLHIoZSkuaGFzQ2xhc3MoZCkpe3ZhciB0PUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KGUpO3IoZSkub25lKENuLlRSQU5TSVRJT05fRU5ELGZ1bmN0aW9uKHQpe3JldHVybiBuLl9kZXN0cm95RWxlbWVudChlLHQpfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQodCl9ZWxzZSB0aGlzLl9kZXN0cm95RWxlbWVudChlKX0sdC5fZGVzdHJveUVsZW1lbnQ9ZnVuY3Rpb24odCl7cih0KS5kZXRhY2goKS50cmlnZ2VyKHUuQ0xPU0VEKS5yZW1vdmUoKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1yKHRoaXMpLGU9dC5kYXRhKHMpO2V8fChlPW5ldyBpKHRoaXMpLHQuZGF0YShzLGUpKSxcImNsb3NlXCI9PT1uJiZlW25dKHRoaXMpfSl9LGkuX2hhbmRsZURpc21pc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3QmJnQucHJldmVudERlZmF1bHQoKSxlLmNsb3NlKHRoaXMpfX0sbyhpLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX1dKSxpfSgpLHIoZG9jdW1lbnQpLm9uKHUuQ0xJQ0tfREFUQV9BUEksJ1tkYXRhLWRpc21pc3M9XCJhbGVydFwiXScsZy5faGFuZGxlRGlzbWlzcyhuZXcgZykpLHIuZm5bbl09Zy5falF1ZXJ5SW50ZXJmYWNlLHIuZm5bbl0uQ29uc3RydWN0b3I9ZyxyLmZuW25dLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gci5mbltuXT1sLGcuX2pRdWVyeUludGVyZmFjZX0sZyksQW49KHA9XCJidXR0b25cIixFPVwiLlwiKyh2PVwiYnMuYnV0dG9uXCIpLHk9XCIuZGF0YS1hcGlcIixUPShtPWUpLmZuW3BdLEM9XCJhY3RpdmVcIixJPVwiYnRuXCIsRD0nW2RhdGEtdG9nZ2xlXj1cImJ1dHRvblwiXScsYj0nW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXScsUz1cImlucHV0XCIsdz1cIi5hY3RpdmVcIixOPVwiLmJ0blwiLE89e0NMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitFK3ksRk9DVVNfQkxVUl9EQVRBX0FQSTooQT1cImZvY3VzXCIpK0UreStcIiBibHVyXCIrRSt5fSxrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0KXt0aGlzLl9lbGVtZW50PXR9dmFyIHQ9bi5wcm90b3R5cGU7cmV0dXJuIHQudG9nZ2xlPWZ1bmN0aW9uKCl7dmFyIHQ9ITAsZT0hMCxuPW0odGhpcy5fZWxlbWVudCkuY2xvc2VzdChiKVswXTtpZihuKXt2YXIgaT1tKHRoaXMuX2VsZW1lbnQpLmZpbmQoUylbMF07aWYoaSl7aWYoXCJyYWRpb1wiPT09aS50eXBlKWlmKGkuY2hlY2tlZCYmbSh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhDKSl0PSExO2Vsc2V7dmFyIHI9bShuKS5maW5kKHcpWzBdO3ImJm0ocikucmVtb3ZlQ2xhc3MoQyl9aWYodCl7aWYoaS5oYXNBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiKXx8bi5oYXNBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiKXx8aS5jbGFzc0xpc3QuY29udGFpbnMoXCJkaXNhYmxlZFwiKXx8bi5jbGFzc0xpc3QuY29udGFpbnMoXCJkaXNhYmxlZFwiKSlyZXR1cm47aS5jaGVja2VkPSFtKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEMpLG0oaSkudHJpZ2dlcihcImNoYW5nZVwiKX1pLmZvY3VzKCksZT0hMX19ZSYmdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLXByZXNzZWRcIiwhbSh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhDKSksdCYmbSh0aGlzLl9lbGVtZW50KS50b2dnbGVDbGFzcyhDKX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7bS5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsdiksdGhpcy5fZWxlbWVudD1udWxsfSxuLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PW0odGhpcykuZGF0YSh2KTt0fHwodD1uZXcgbih0aGlzKSxtKHRoaXMpLmRhdGEodix0KSksXCJ0b2dnbGVcIj09PWUmJnRbZV0oKX0pfSxvKG4sbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fV0pLG59KCksbShkb2N1bWVudCkub24oTy5DTElDS19EQVRBX0FQSSxELGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKTt2YXIgZT10LnRhcmdldDttKGUpLmhhc0NsYXNzKEkpfHwoZT1tKGUpLmNsb3Nlc3QoTikpLGsuX2pRdWVyeUludGVyZmFjZS5jYWxsKG0oZSksXCJ0b2dnbGVcIil9KS5vbihPLkZPQ1VTX0JMVVJfREFUQV9BUEksRCxmdW5jdGlvbih0KXt2YXIgZT1tKHQudGFyZ2V0KS5jbG9zZXN0KE4pWzBdO20oZSkudG9nZ2xlQ2xhc3MoQSwvXmZvY3VzKGluKT8kLy50ZXN0KHQudHlwZSkpfSksbS5mbltwXT1rLl9qUXVlcnlJbnRlcmZhY2UsbS5mbltwXS5Db25zdHJ1Y3Rvcj1rLG0uZm5bcF0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBtLmZuW3BdPVQsay5falF1ZXJ5SW50ZXJmYWNlfSxrKSxEbj0oTD1cImNhcm91c2VsXCIsUj1cIi5cIisoaj1cImJzLmNhcm91c2VsXCIpLEg9XCIuZGF0YS1hcGlcIixXPShQPWUpLmZuW0xdLE09e2ludGVydmFsOjVlMyxrZXlib2FyZDohMCxzbGlkZTohMSxwYXVzZTpcImhvdmVyXCIsd3JhcDohMH0seD17aW50ZXJ2YWw6XCIobnVtYmVyfGJvb2xlYW4pXCIsa2V5Ym9hcmQ6XCJib29sZWFuXCIsc2xpZGU6XCIoYm9vbGVhbnxzdHJpbmcpXCIscGF1c2U6XCIoc3RyaW5nfGJvb2xlYW4pXCIsd3JhcDpcImJvb2xlYW5cIn0sVT1cIm5leHRcIixLPVwicHJldlwiLEY9XCJsZWZ0XCIsVj1cInJpZ2h0XCIsUT17U0xJREU6XCJzbGlkZVwiK1IsU0xJRDpcInNsaWRcIitSLEtFWURPV046XCJrZXlkb3duXCIrUixNT1VTRUVOVEVSOlwibW91c2VlbnRlclwiK1IsTU9VU0VMRUFWRTpcIm1vdXNlbGVhdmVcIitSLFRPVUNIRU5EOlwidG91Y2hlbmRcIitSLExPQURfREFUQV9BUEk6XCJsb2FkXCIrUitILENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitSK0h9LEI9XCJjYXJvdXNlbFwiLFk9XCJhY3RpdmVcIixHPVwic2xpZGVcIixxPVwiY2Fyb3VzZWwtaXRlbS1yaWdodFwiLHo9XCJjYXJvdXNlbC1pdGVtLWxlZnRcIixYPVwiY2Fyb3VzZWwtaXRlbS1uZXh0XCIsSj1cImNhcm91c2VsLWl0ZW0tcHJldlwiLFo9e0FDVElWRTpcIi5hY3RpdmVcIixBQ1RJVkVfSVRFTTpcIi5hY3RpdmUuY2Fyb3VzZWwtaXRlbVwiLElURU06XCIuY2Fyb3VzZWwtaXRlbVwiLE5FWFRfUFJFVjpcIi5jYXJvdXNlbC1pdGVtLW5leHQsIC5jYXJvdXNlbC1pdGVtLXByZXZcIixJTkRJQ0FUT1JTOlwiLmNhcm91c2VsLWluZGljYXRvcnNcIixEQVRBX1NMSURFOlwiW2RhdGEtc2xpZGVdLCBbZGF0YS1zbGlkZS10b11cIixEQVRBX1JJREU6J1tkYXRhLXJpZGU9XCJjYXJvdXNlbFwiXSd9LCQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBzKHQsZSl7dGhpcy5faXRlbXM9bnVsbCx0aGlzLl9pbnRlcnZhbD1udWxsLHRoaXMuX2FjdGl2ZUVsZW1lbnQ9bnVsbCx0aGlzLl9pc1BhdXNlZD0hMSx0aGlzLl9pc1NsaWRpbmc9ITEsdGhpcy50b3VjaFRpbWVvdXQ9bnVsbCx0aGlzLl9jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMuX2VsZW1lbnQ9UCh0KVswXSx0aGlzLl9pbmRpY2F0b3JzRWxlbWVudD1QKHRoaXMuX2VsZW1lbnQpLmZpbmQoWi5JTkRJQ0FUT1JTKVswXSx0aGlzLl9hZGRFdmVudExpc3RlbmVycygpfXZhciB0PXMucHJvdG90eXBlO3JldHVybiB0Lm5leHQ9ZnVuY3Rpb24oKXt0aGlzLl9pc1NsaWRpbmd8fHRoaXMuX3NsaWRlKFUpfSx0Lm5leHRXaGVuVmlzaWJsZT1mdW5jdGlvbigpeyFkb2N1bWVudC5oaWRkZW4mJlAodGhpcy5fZWxlbWVudCkuaXMoXCI6dmlzaWJsZVwiKSYmXCJoaWRkZW5cIiE9PVAodGhpcy5fZWxlbWVudCkuY3NzKFwidmlzaWJpbGl0eVwiKSYmdGhpcy5uZXh0KCl9LHQucHJldj1mdW5jdGlvbigpe3RoaXMuX2lzU2xpZGluZ3x8dGhpcy5fc2xpZGUoSyl9LHQucGF1c2U9ZnVuY3Rpb24odCl7dHx8KHRoaXMuX2lzUGF1c2VkPSEwKSxQKHRoaXMuX2VsZW1lbnQpLmZpbmQoWi5ORVhUX1BSRVYpWzBdJiYoQ24udHJpZ2dlclRyYW5zaXRpb25FbmQodGhpcy5fZWxlbWVudCksdGhpcy5jeWNsZSghMCkpLGNsZWFySW50ZXJ2YWwodGhpcy5faW50ZXJ2YWwpLHRoaXMuX2ludGVydmFsPW51bGx9LHQuY3ljbGU9ZnVuY3Rpb24odCl7dHx8KHRoaXMuX2lzUGF1c2VkPSExKSx0aGlzLl9pbnRlcnZhbCYmKGNsZWFySW50ZXJ2YWwodGhpcy5faW50ZXJ2YWwpLHRoaXMuX2ludGVydmFsPW51bGwpLHRoaXMuX2NvbmZpZy5pbnRlcnZhbCYmIXRoaXMuX2lzUGF1c2VkJiYodGhpcy5faW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT90aGlzLm5leHRXaGVuVmlzaWJsZTp0aGlzLm5leHQpLmJpbmQodGhpcyksdGhpcy5fY29uZmlnLmludGVydmFsKSl9LHQudG89ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9hY3RpdmVFbGVtZW50PVAodGhpcy5fZWxlbWVudCkuZmluZChaLkFDVElWRV9JVEVNKVswXTt2YXIgbj10aGlzLl9nZXRJdGVtSW5kZXgodGhpcy5fYWN0aXZlRWxlbWVudCk7aWYoISh0PnRoaXMuX2l0ZW1zLmxlbmd0aC0xfHx0PDApKWlmKHRoaXMuX2lzU2xpZGluZylQKHRoaXMuX2VsZW1lbnQpLm9uZShRLlNMSUQsZnVuY3Rpb24oKXtyZXR1cm4gZS50byh0KX0pO2Vsc2V7aWYobj09PXQpcmV0dXJuIHRoaXMucGF1c2UoKSx2b2lkIHRoaXMuY3ljbGUoKTt2YXIgaT1uPHQ/VTpLO3RoaXMuX3NsaWRlKGksdGhpcy5faXRlbXNbdF0pfX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7UCh0aGlzLl9lbGVtZW50KS5vZmYoUiksUC5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsaiksdGhpcy5faXRlbXM9bnVsbCx0aGlzLl9jb25maWc9bnVsbCx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5faW50ZXJ2YWw9bnVsbCx0aGlzLl9pc1BhdXNlZD1udWxsLHRoaXMuX2lzU2xpZGluZz1udWxsLHRoaXMuX2FjdGl2ZUVsZW1lbnQ9bnVsbCx0aGlzLl9pbmRpY2F0b3JzRWxlbWVudD1udWxsfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9aCh7fSxNLHQpLENuLnR5cGVDaGVja0NvbmZpZyhMLHQseCksdH0sdC5fYWRkRXZlbnRMaXN0ZW5lcnM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX2NvbmZpZy5rZXlib2FyZCYmUCh0aGlzLl9lbGVtZW50KS5vbihRLktFWURPV04sZnVuY3Rpb24odCl7cmV0dXJuIGUuX2tleWRvd24odCl9KSxcImhvdmVyXCI9PT10aGlzLl9jb25maWcucGF1c2UmJihQKHRoaXMuX2VsZW1lbnQpLm9uKFEuTU9VU0VFTlRFUixmdW5jdGlvbih0KXtyZXR1cm4gZS5wYXVzZSh0KX0pLm9uKFEuTU9VU0VMRUFWRSxmdW5jdGlvbih0KXtyZXR1cm4gZS5jeWNsZSh0KX0pLFwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJlAodGhpcy5fZWxlbWVudCkub24oUS5UT1VDSEVORCxmdW5jdGlvbigpe2UucGF1c2UoKSxlLnRvdWNoVGltZW91dCYmY2xlYXJUaW1lb3V0KGUudG91Y2hUaW1lb3V0KSxlLnRvdWNoVGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKHQpe3JldHVybiBlLmN5Y2xlKHQpfSw1MDArZS5fY29uZmlnLmludGVydmFsKX0pKX0sdC5fa2V5ZG93bj1mdW5jdGlvbih0KXtpZighL2lucHV0fHRleHRhcmVhL2kudGVzdCh0LnRhcmdldC50YWdOYW1lKSlzd2l0Y2godC53aGljaCl7Y2FzZSAzNzp0LnByZXZlbnREZWZhdWx0KCksdGhpcy5wcmV2KCk7YnJlYWs7Y2FzZSAzOTp0LnByZXZlbnREZWZhdWx0KCksdGhpcy5uZXh0KCl9fSx0Ll9nZXRJdGVtSW5kZXg9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2l0ZW1zPVAubWFrZUFycmF5KFAodCkucGFyZW50KCkuZmluZChaLklURU0pKSx0aGlzLl9pdGVtcy5pbmRleE9mKHQpfSx0Ll9nZXRJdGVtQnlEaXJlY3Rpb249ZnVuY3Rpb24odCxlKXt2YXIgbj10PT09VSxpPXQ9PT1LLHI9dGhpcy5fZ2V0SXRlbUluZGV4KGUpLHM9dGhpcy5faXRlbXMubGVuZ3RoLTE7aWYoKGkmJjA9PT1yfHxuJiZyPT09cykmJiF0aGlzLl9jb25maWcud3JhcClyZXR1cm4gZTt2YXIgbz0ocisodD09PUs/LTE6MSkpJXRoaXMuX2l0ZW1zLmxlbmd0aDtyZXR1cm4tMT09PW8/dGhpcy5faXRlbXNbdGhpcy5faXRlbXMubGVuZ3RoLTFdOnRoaXMuX2l0ZW1zW29dfSx0Ll90cmlnZ2VyU2xpZGVFdmVudD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2dldEl0ZW1JbmRleCh0KSxpPXRoaXMuX2dldEl0ZW1JbmRleChQKHRoaXMuX2VsZW1lbnQpLmZpbmQoWi5BQ1RJVkVfSVRFTSlbMF0pLHI9UC5FdmVudChRLlNMSURFLHtyZWxhdGVkVGFyZ2V0OnQsZGlyZWN0aW9uOmUsZnJvbTppLHRvOm59KTtyZXR1cm4gUCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKHIpLHJ9LHQuX3NldEFjdGl2ZUluZGljYXRvckVsZW1lbnQ9ZnVuY3Rpb24odCl7aWYodGhpcy5faW5kaWNhdG9yc0VsZW1lbnQpe1AodGhpcy5faW5kaWNhdG9yc0VsZW1lbnQpLmZpbmQoWi5BQ1RJVkUpLnJlbW92ZUNsYXNzKFkpO3ZhciBlPXRoaXMuX2luZGljYXRvcnNFbGVtZW50LmNoaWxkcmVuW3RoaXMuX2dldEl0ZW1JbmRleCh0KV07ZSYmUChlKS5hZGRDbGFzcyhZKX19LHQuX3NsaWRlPWZ1bmN0aW9uKHQsZSl7dmFyIG4saSxyLHM9dGhpcyxvPVAodGhpcy5fZWxlbWVudCkuZmluZChaLkFDVElWRV9JVEVNKVswXSxhPXRoaXMuX2dldEl0ZW1JbmRleChvKSxsPWV8fG8mJnRoaXMuX2dldEl0ZW1CeURpcmVjdGlvbih0LG8pLGg9dGhpcy5fZ2V0SXRlbUluZGV4KGwpLGM9Qm9vbGVhbih0aGlzLl9pbnRlcnZhbCk7aWYodD09PVU/KG49eixpPVgscj1GKToobj1xLGk9SixyPVYpLGwmJlAobCkuaGFzQ2xhc3MoWSkpdGhpcy5faXNTbGlkaW5nPSExO2Vsc2UgaWYoIXRoaXMuX3RyaWdnZXJTbGlkZUV2ZW50KGwscikuaXNEZWZhdWx0UHJldmVudGVkKCkmJm8mJmwpe3RoaXMuX2lzU2xpZGluZz0hMCxjJiZ0aGlzLnBhdXNlKCksdGhpcy5fc2V0QWN0aXZlSW5kaWNhdG9yRWxlbWVudChsKTt2YXIgdT1QLkV2ZW50KFEuU0xJRCx7cmVsYXRlZFRhcmdldDpsLGRpcmVjdGlvbjpyLGZyb206YSx0bzpofSk7aWYoUCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhHKSl7UChsKS5hZGRDbGFzcyhpKSxDbi5yZWZsb3cobCksUChvKS5hZGRDbGFzcyhuKSxQKGwpLmFkZENsYXNzKG4pO3ZhciBmPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KG8pO1Aobykub25lKENuLlRSQU5TSVRJT05fRU5ELGZ1bmN0aW9uKCl7UChsKS5yZW1vdmVDbGFzcyhuK1wiIFwiK2kpLmFkZENsYXNzKFkpLFAobykucmVtb3ZlQ2xhc3MoWStcIiBcIitpK1wiIFwiK24pLHMuX2lzU2xpZGluZz0hMSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIFAocy5fZWxlbWVudCkudHJpZ2dlcih1KX0sMCl9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChmKX1lbHNlIFAobykucmVtb3ZlQ2xhc3MoWSksUChsKS5hZGRDbGFzcyhZKSx0aGlzLl9pc1NsaWRpbmc9ITEsUCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKHUpO2MmJnRoaXMuY3ljbGUoKX19LHMuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihpKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9UCh0aGlzKS5kYXRhKGopLGU9aCh7fSxNLFAodGhpcykuZGF0YSgpKTtcIm9iamVjdFwiPT10eXBlb2YgaSYmKGU9aCh7fSxlLGkpKTt2YXIgbj1cInN0cmluZ1wiPT10eXBlb2YgaT9pOmUuc2xpZGU7aWYodHx8KHQ9bmV3IHModGhpcyxlKSxQKHRoaXMpLmRhdGEoaix0KSksXCJudW1iZXJcIj09dHlwZW9mIGkpdC50byhpKTtlbHNlIGlmKFwic3RyaW5nXCI9PXR5cGVvZiBuKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK24rJ1wiJyk7dFtuXSgpfWVsc2UgZS5pbnRlcnZhbCYmKHQucGF1c2UoKSx0LmN5Y2xlKCkpfSl9LHMuX2RhdGFBcGlDbGlja0hhbmRsZXI9ZnVuY3Rpb24odCl7dmFyIGU9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0aGlzKTtpZihlKXt2YXIgbj1QKGUpWzBdO2lmKG4mJlAobikuaGFzQ2xhc3MoQikpe3ZhciBpPWgoe30sUChuKS5kYXRhKCksUCh0aGlzKS5kYXRhKCkpLHI9dGhpcy5nZXRBdHRyaWJ1dGUoXCJkYXRhLXNsaWRlLXRvXCIpO3ImJihpLmludGVydmFsPSExKSxzLl9qUXVlcnlJbnRlcmZhY2UuY2FsbChQKG4pLGkpLHImJlAobikuZGF0YShqKS50byhyKSx0LnByZXZlbnREZWZhdWx0KCl9fX0sbyhzLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTX19XSksc30oKSxQKGRvY3VtZW50KS5vbihRLkNMSUNLX0RBVEFfQVBJLFouREFUQV9TTElERSwkLl9kYXRhQXBpQ2xpY2tIYW5kbGVyKSxQKHdpbmRvdykub24oUS5MT0FEX0RBVEFfQVBJLGZ1bmN0aW9uKCl7UChaLkRBVEFfUklERSkuZWFjaChmdW5jdGlvbigpe3ZhciB0PVAodGhpcyk7JC5falF1ZXJ5SW50ZXJmYWNlLmNhbGwodCx0LmRhdGEoKSl9KX0pLFAuZm5bTF09JC5falF1ZXJ5SW50ZXJmYWNlLFAuZm5bTF0uQ29uc3RydWN0b3I9JCxQLmZuW0xdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gUC5mbltMXT1XLCQuX2pRdWVyeUludGVyZmFjZX0sJCksYm49KGV0PVwiY29sbGFwc2VcIixpdD1cIi5cIisobnQ9XCJicy5jb2xsYXBzZVwiKSxydD0odHQ9ZSkuZm5bZXRdLHN0PXt0b2dnbGU6ITAscGFyZW50OlwiXCJ9LG90PXt0b2dnbGU6XCJib29sZWFuXCIscGFyZW50OlwiKHN0cmluZ3xlbGVtZW50KVwifSxhdD17U0hPVzpcInNob3dcIitpdCxTSE9XTjpcInNob3duXCIraXQsSElERTpcImhpZGVcIitpdCxISURERU46XCJoaWRkZW5cIitpdCxDTElDS19EQVRBX0FQSTpcImNsaWNrXCIraXQrXCIuZGF0YS1hcGlcIn0sbHQ9XCJzaG93XCIsaHQ9XCJjb2xsYXBzZVwiLGN0PVwiY29sbGFwc2luZ1wiLHV0PVwiY29sbGFwc2VkXCIsZnQ9XCJ3aWR0aFwiLGR0PVwiaGVpZ2h0XCIsX3Q9e0FDVElWRVM6XCIuc2hvdywgLmNvbGxhcHNpbmdcIixEQVRBX1RPR0dMRTonW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0nfSxndD1mdW5jdGlvbigpe2Z1bmN0aW9uIGEodCxlKXt0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITEsdGhpcy5fZWxlbWVudD10LHRoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fdHJpZ2dlckFycmF5PXR0Lm1ha2VBcnJheSh0dCgnW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl1baHJlZj1cIiMnK3QuaWQrJ1wiXSxbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXVtkYXRhLXRhcmdldD1cIiMnK3QuaWQrJ1wiXScpKTtmb3IodmFyIG49dHQoX3QuREFUQV9UT0dHTEUpLGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIHI9bltpXSxzPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQocik7bnVsbCE9PXMmJjA8dHQocykuZmlsdGVyKHQpLmxlbmd0aCYmKHRoaXMuX3NlbGVjdG9yPXMsdGhpcy5fdHJpZ2dlckFycmF5LnB1c2gocikpfXRoaXMuX3BhcmVudD10aGlzLl9jb25maWcucGFyZW50P3RoaXMuX2dldFBhcmVudCgpOm51bGwsdGhpcy5fY29uZmlnLnBhcmVudHx8dGhpcy5fYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKHRoaXMuX2VsZW1lbnQsdGhpcy5fdHJpZ2dlckFycmF5KSx0aGlzLl9jb25maWcudG9nZ2xlJiZ0aGlzLnRvZ2dsZSgpfXZhciB0PWEucHJvdG90eXBlO3JldHVybiB0LnRvZ2dsZT1mdW5jdGlvbigpe3R0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKGx0KT90aGlzLmhpZGUoKTp0aGlzLnNob3coKX0sdC5zaG93PWZ1bmN0aW9uKCl7dmFyIHQsZSxuPXRoaXM7aWYoIXRoaXMuX2lzVHJhbnNpdGlvbmluZyYmIXR0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKGx0KSYmKHRoaXMuX3BhcmVudCYmMD09PSh0PXR0Lm1ha2VBcnJheSh0dCh0aGlzLl9wYXJlbnQpLmZpbmQoX3QuQUNUSVZFUykuZmlsdGVyKCdbZGF0YS1wYXJlbnQ9XCInK3RoaXMuX2NvbmZpZy5wYXJlbnQrJ1wiXScpKSkubGVuZ3RoJiYodD1udWxsKSwhKHQmJihlPXR0KHQpLm5vdCh0aGlzLl9zZWxlY3RvcikuZGF0YShudCkpJiZlLl9pc1RyYW5zaXRpb25pbmcpKSl7dmFyIGk9dHQuRXZlbnQoYXQuU0hPVyk7aWYodHQodGhpcy5fZWxlbWVudCkudHJpZ2dlcihpKSwhaS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dCYmKGEuX2pRdWVyeUludGVyZmFjZS5jYWxsKHR0KHQpLm5vdCh0aGlzLl9zZWxlY3RvciksXCJoaWRlXCIpLGV8fHR0KHQpLmRhdGEobnQsbnVsbCkpO3ZhciByPXRoaXMuX2dldERpbWVuc2lvbigpO3R0KHRoaXMuX2VsZW1lbnQpLnJlbW92ZUNsYXNzKGh0KS5hZGRDbGFzcyhjdCksKHRoaXMuX2VsZW1lbnQuc3R5bGVbcl09MCk8dGhpcy5fdHJpZ2dlckFycmF5Lmxlbmd0aCYmdHQodGhpcy5fdHJpZ2dlckFycmF5KS5yZW1vdmVDbGFzcyh1dCkuYXR0cihcImFyaWEtZXhwYW5kZWRcIiwhMCksdGhpcy5zZXRUcmFuc2l0aW9uaW5nKCEwKTt2YXIgcz1cInNjcm9sbFwiKyhyWzBdLnRvVXBwZXJDYXNlKCkrci5zbGljZSgxKSksbz1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KTt0dCh0aGlzLl9lbGVtZW50KS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24oKXt0dChuLl9lbGVtZW50KS5yZW1vdmVDbGFzcyhjdCkuYWRkQ2xhc3MoaHQpLmFkZENsYXNzKGx0KSxuLl9lbGVtZW50LnN0eWxlW3JdPVwiXCIsbi5zZXRUcmFuc2l0aW9uaW5nKCExKSx0dChuLl9lbGVtZW50KS50cmlnZ2VyKGF0LlNIT1dOKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKG8pLHRoaXMuX2VsZW1lbnQuc3R5bGVbcl09dGhpcy5fZWxlbWVudFtzXStcInB4XCJ9fX0sdC5oaWRlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZighdGhpcy5faXNUcmFuc2l0aW9uaW5nJiZ0dCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhsdCkpe3ZhciBlPXR0LkV2ZW50KGF0LkhJREUpO2lmKHR0KHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIoZSksIWUuaXNEZWZhdWx0UHJldmVudGVkKCkpe3ZhciBuPXRoaXMuX2dldERpbWVuc2lvbigpO2lmKHRoaXMuX2VsZW1lbnQuc3R5bGVbbl09dGhpcy5fZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVtuXStcInB4XCIsQ24ucmVmbG93KHRoaXMuX2VsZW1lbnQpLHR0KHRoaXMuX2VsZW1lbnQpLmFkZENsYXNzKGN0KS5yZW1vdmVDbGFzcyhodCkucmVtb3ZlQ2xhc3MobHQpLDA8dGhpcy5fdHJpZ2dlckFycmF5Lmxlbmd0aClmb3IodmFyIGk9MDtpPHRoaXMuX3RyaWdnZXJBcnJheS5sZW5ndGg7aSsrKXt2YXIgcj10aGlzLl90cmlnZ2VyQXJyYXlbaV0scz1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHIpO2lmKG51bGwhPT1zKXR0KHMpLmhhc0NsYXNzKGx0KXx8dHQocikuYWRkQ2xhc3ModXQpLmF0dHIoXCJhcmlhLWV4cGFuZGVkXCIsITEpfXRoaXMuc2V0VHJhbnNpdGlvbmluZyghMCk7dGhpcy5fZWxlbWVudC5zdHlsZVtuXT1cIlwiO3ZhciBvPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO3R0KHRoaXMuX2VsZW1lbnQpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbigpe3Quc2V0VHJhbnNpdGlvbmluZyghMSksdHQodC5fZWxlbWVudCkucmVtb3ZlQ2xhc3MoY3QpLmFkZENsYXNzKGh0KS50cmlnZ2VyKGF0LkhJRERFTil9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChvKX19fSx0LnNldFRyYW5zaXRpb25pbmc9ZnVuY3Rpb24odCl7dGhpcy5faXNUcmFuc2l0aW9uaW5nPXR9LHQuZGlzcG9zZT1mdW5jdGlvbigpe3R0LnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxudCksdGhpcy5fY29uZmlnPW51bGwsdGhpcy5fcGFyZW50PW51bGwsdGhpcy5fZWxlbWVudD1udWxsLHRoaXMuX3RyaWdnZXJBcnJheT1udWxsLHRoaXMuX2lzVHJhbnNpdGlvbmluZz1udWxsfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuKHQ9aCh7fSxzdCx0KSkudG9nZ2xlPUJvb2xlYW4odC50b2dnbGUpLENuLnR5cGVDaGVja0NvbmZpZyhldCx0LG90KSx0fSx0Ll9nZXREaW1lbnNpb249ZnVuY3Rpb24oKXtyZXR1cm4gdHQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoZnQpP2Z0OmR0fSx0Ll9nZXRQYXJlbnQ9ZnVuY3Rpb24oKXt2YXIgbj10aGlzLHQ9bnVsbDtDbi5pc0VsZW1lbnQodGhpcy5fY29uZmlnLnBhcmVudCk/KHQ9dGhpcy5fY29uZmlnLnBhcmVudCxcInVuZGVmaW5lZFwiIT10eXBlb2YgdGhpcy5fY29uZmlnLnBhcmVudC5qcXVlcnkmJih0PXRoaXMuX2NvbmZpZy5wYXJlbnRbMF0pKTp0PXR0KHRoaXMuX2NvbmZpZy5wYXJlbnQpWzBdO3ZhciBlPSdbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXVtkYXRhLXBhcmVudD1cIicrdGhpcy5fY29uZmlnLnBhcmVudCsnXCJdJztyZXR1cm4gdHQodCkuZmluZChlKS5lYWNoKGZ1bmN0aW9uKHQsZSl7bi5fYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKGEuX2dldFRhcmdldEZyb21FbGVtZW50KGUpLFtlXSl9KSx0fSx0Ll9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3M9ZnVuY3Rpb24odCxlKXtpZih0KXt2YXIgbj10dCh0KS5oYXNDbGFzcyhsdCk7MDxlLmxlbmd0aCYmdHQoZSkudG9nZ2xlQ2xhc3ModXQsIW4pLmF0dHIoXCJhcmlhLWV4cGFuZGVkXCIsbil9fSxhLl9nZXRUYXJnZXRGcm9tRWxlbWVudD1mdW5jdGlvbih0KXt2YXIgZT1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHQpO3JldHVybiBlP3R0KGUpWzBdOm51bGx9LGEuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihpKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9dHQodGhpcyksZT10LmRhdGEobnQpLG49aCh7fSxzdCx0LmRhdGEoKSxcIm9iamVjdFwiPT10eXBlb2YgaSYmaSk7aWYoIWUmJm4udG9nZ2xlJiYvc2hvd3xoaWRlLy50ZXN0KGkpJiYobi50b2dnbGU9ITEpLGV8fChlPW5ldyBhKHRoaXMsbiksdC5kYXRhKG50LGUpKSxcInN0cmluZ1wiPT10eXBlb2YgaSl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGVbaV0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytpKydcIicpO2VbaV0oKX19KX0sbyhhLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc3R9fV0pLGF9KCksdHQoZG9jdW1lbnQpLm9uKGF0LkNMSUNLX0RBVEFfQVBJLF90LkRBVEFfVE9HR0xFLGZ1bmN0aW9uKHQpe1wiQVwiPT09dC5jdXJyZW50VGFyZ2V0LnRhZ05hbWUmJnQucHJldmVudERlZmF1bHQoKTt2YXIgbj10dCh0aGlzKSxlPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodGhpcyk7dHQoZSkuZWFjaChmdW5jdGlvbigpe3ZhciB0PXR0KHRoaXMpLGU9dC5kYXRhKG50KT9cInRvZ2dsZVwiOm4uZGF0YSgpO2d0Ll9qUXVlcnlJbnRlcmZhY2UuY2FsbCh0LGUpfSl9KSx0dC5mbltldF09Z3QuX2pRdWVyeUludGVyZmFjZSx0dC5mbltldF0uQ29uc3RydWN0b3I9Z3QsdHQuZm5bZXRdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdHQuZm5bZXRdPXJ0LGd0Ll9qUXVlcnlJbnRlcmZhY2V9LGd0KSxTbj0ocHQ9XCJkcm9wZG93blwiLEV0PVwiLlwiKyh2dD1cImJzLmRyb3Bkb3duXCIpLHl0PVwiLmRhdGEtYXBpXCIsVHQ9KG10PWUpLmZuW3B0XSxDdD1uZXcgUmVnRXhwKFwiMzh8NDB8MjdcIiksSXQ9e0hJREU6XCJoaWRlXCIrRXQsSElEREVOOlwiaGlkZGVuXCIrRXQsU0hPVzpcInNob3dcIitFdCxTSE9XTjpcInNob3duXCIrRXQsQ0xJQ0s6XCJjbGlja1wiK0V0LENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitFdCt5dCxLRVlET1dOX0RBVEFfQVBJOlwia2V5ZG93blwiK0V0K3l0LEtFWVVQX0RBVEFfQVBJOlwia2V5dXBcIitFdCt5dH0sQXQ9XCJkaXNhYmxlZFwiLER0PVwic2hvd1wiLGJ0PVwiZHJvcHVwXCIsU3Q9XCJkcm9wcmlnaHRcIix3dD1cImRyb3BsZWZ0XCIsTnQ9XCJkcm9wZG93bi1tZW51LXJpZ2h0XCIsT3Q9XCJwb3NpdGlvbi1zdGF0aWNcIixrdD0nW2RhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIl0nLFB0PVwiLmRyb3Bkb3duIGZvcm1cIixMdD1cIi5kcm9wZG93bi1tZW51XCIsanQ9XCIubmF2YmFyLW5hdlwiLFJ0PVwiLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06bm90KC5kaXNhYmxlZCk6bm90KDpkaXNhYmxlZClcIixIdD1cInRvcC1zdGFydFwiLFd0PVwidG9wLWVuZFwiLE10PVwiYm90dG9tLXN0YXJ0XCIseHQ9XCJib3R0b20tZW5kXCIsVXQ9XCJyaWdodC1zdGFydFwiLEt0PVwibGVmdC1zdGFydFwiLEZ0PXtvZmZzZXQ6MCxmbGlwOiEwLGJvdW5kYXJ5Olwic2Nyb2xsUGFyZW50XCIscmVmZXJlbmNlOlwidG9nZ2xlXCIsZGlzcGxheTpcImR5bmFtaWNcIn0sVnQ9e29mZnNldDpcIihudW1iZXJ8c3RyaW5nfGZ1bmN0aW9uKVwiLGZsaXA6XCJib29sZWFuXCIsYm91bmRhcnk6XCIoc3RyaW5nfGVsZW1lbnQpXCIscmVmZXJlbmNlOlwiKHN0cmluZ3xlbGVtZW50KVwiLGRpc3BsYXk6XCJzdHJpbmdcIn0sUXQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBsKHQsZSl7dGhpcy5fZWxlbWVudD10LHRoaXMuX3BvcHBlcj1udWxsLHRoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fbWVudT10aGlzLl9nZXRNZW51RWxlbWVudCgpLHRoaXMuX2luTmF2YmFyPXRoaXMuX2RldGVjdE5hdmJhcigpLHRoaXMuX2FkZEV2ZW50TGlzdGVuZXJzKCl9dmFyIHQ9bC5wcm90b3R5cGU7cmV0dXJuIHQudG9nZ2xlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2VsZW1lbnQuZGlzYWJsZWQmJiFtdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhBdCkpe3ZhciB0PWwuX2dldFBhcmVudEZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpLGU9bXQodGhpcy5fbWVudSkuaGFzQ2xhc3MoRHQpO2lmKGwuX2NsZWFyTWVudXMoKSwhZSl7dmFyIG49e3JlbGF0ZWRUYXJnZXQ6dGhpcy5fZWxlbWVudH0saT1tdC5FdmVudChJdC5TSE9XLG4pO2lmKG10KHQpLnRyaWdnZXIoaSksIWkuaXNEZWZhdWx0UHJldmVudGVkKCkpe2lmKCF0aGlzLl9pbk5hdmJhcil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGMpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkJvb3RzdHJhcCBkcm9wZG93biByZXF1aXJlIFBvcHBlci5qcyAoaHR0cHM6Ly9wb3BwZXIuanMub3JnKVwiKTt2YXIgcj10aGlzLl9lbGVtZW50O1wicGFyZW50XCI9PT10aGlzLl9jb25maWcucmVmZXJlbmNlP3I9dDpDbi5pc0VsZW1lbnQodGhpcy5fY29uZmlnLnJlZmVyZW5jZSkmJihyPXRoaXMuX2NvbmZpZy5yZWZlcmVuY2UsXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHRoaXMuX2NvbmZpZy5yZWZlcmVuY2UuanF1ZXJ5JiYocj10aGlzLl9jb25maWcucmVmZXJlbmNlWzBdKSksXCJzY3JvbGxQYXJlbnRcIiE9PXRoaXMuX2NvbmZpZy5ib3VuZGFyeSYmbXQodCkuYWRkQ2xhc3MoT3QpLHRoaXMuX3BvcHBlcj1uZXcgYyhyLHRoaXMuX21lbnUsdGhpcy5fZ2V0UG9wcGVyQ29uZmlnKCkpfVwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJjA9PT1tdCh0KS5jbG9zZXN0KGp0KS5sZW5ndGgmJm10KGRvY3VtZW50LmJvZHkpLmNoaWxkcmVuKCkub24oXCJtb3VzZW92ZXJcIixudWxsLG10Lm5vb3ApLHRoaXMuX2VsZW1lbnQuZm9jdXMoKSx0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwhMCksbXQodGhpcy5fbWVudSkudG9nZ2xlQ2xhc3MoRHQpLG10KHQpLnRvZ2dsZUNsYXNzKER0KS50cmlnZ2VyKG10LkV2ZW50KEl0LlNIT1dOLG4pKX19fX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7bXQucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LHZ0KSxtdCh0aGlzLl9lbGVtZW50KS5vZmYoRXQpLHRoaXMuX2VsZW1lbnQ9bnVsbCwodGhpcy5fbWVudT1udWxsKSE9PXRoaXMuX3BvcHBlciYmKHRoaXMuX3BvcHBlci5kZXN0cm95KCksdGhpcy5fcG9wcGVyPW51bGwpfSx0LnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuX2luTmF2YmFyPXRoaXMuX2RldGVjdE5hdmJhcigpLG51bGwhPT10aGlzLl9wb3BwZXImJnRoaXMuX3BvcHBlci5zY2hlZHVsZVVwZGF0ZSgpfSx0Ll9hZGRFdmVudExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7bXQodGhpcy5fZWxlbWVudCkub24oSXQuQ0xJQ0ssZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksZS50b2dnbGUoKX0pfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9aCh7fSx0aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHQsbXQodGhpcy5fZWxlbWVudCkuZGF0YSgpLHQpLENuLnR5cGVDaGVja0NvbmZpZyhwdCx0LHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFR5cGUpLHR9LHQuX2dldE1lbnVFbGVtZW50PWZ1bmN0aW9uKCl7aWYoIXRoaXMuX21lbnUpe3ZhciB0PWwuX2dldFBhcmVudEZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO3RoaXMuX21lbnU9bXQodCkuZmluZChMdClbMF19cmV0dXJuIHRoaXMuX21lbnV9LHQuX2dldFBsYWNlbWVudD1mdW5jdGlvbigpe3ZhciB0PW10KHRoaXMuX2VsZW1lbnQpLnBhcmVudCgpLGU9TXQ7cmV0dXJuIHQuaGFzQ2xhc3MoYnQpPyhlPUh0LG10KHRoaXMuX21lbnUpLmhhc0NsYXNzKE50KSYmKGU9V3QpKTp0Lmhhc0NsYXNzKFN0KT9lPVV0OnQuaGFzQ2xhc3Mod3QpP2U9S3Q6bXQodGhpcy5fbWVudSkuaGFzQ2xhc3MoTnQpJiYoZT14dCksZX0sdC5fZGV0ZWN0TmF2YmFyPWZ1bmN0aW9uKCl7cmV0dXJuIDA8bXQodGhpcy5fZWxlbWVudCkuY2xvc2VzdChcIi5uYXZiYXJcIikubGVuZ3RofSx0Ll9nZXRQb3BwZXJDb25maWc9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9e307XCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy5fY29uZmlnLm9mZnNldD90LmZuPWZ1bmN0aW9uKHQpe3JldHVybiB0Lm9mZnNldHM9aCh7fSx0Lm9mZnNldHMsZS5fY29uZmlnLm9mZnNldCh0Lm9mZnNldHMpfHx7fSksdH06dC5vZmZzZXQ9dGhpcy5fY29uZmlnLm9mZnNldDt2YXIgbj17cGxhY2VtZW50OnRoaXMuX2dldFBsYWNlbWVudCgpLG1vZGlmaWVyczp7b2Zmc2V0OnQsZmxpcDp7ZW5hYmxlZDp0aGlzLl9jb25maWcuZmxpcH0scHJldmVudE92ZXJmbG93Ontib3VuZGFyaWVzRWxlbWVudDp0aGlzLl9jb25maWcuYm91bmRhcnl9fX07cmV0dXJuXCJzdGF0aWNcIj09PXRoaXMuX2NvbmZpZy5kaXNwbGF5JiYobi5tb2RpZmllcnMuYXBwbHlTdHlsZT17ZW5hYmxlZDohMX0pLG59LGwuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bXQodGhpcykuZGF0YSh2dCk7aWYodHx8KHQ9bmV3IGwodGhpcyxcIm9iamVjdFwiPT10eXBlb2YgZT9lOm51bGwpLG10KHRoaXMpLmRhdGEodnQsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBlKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtlXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK2UrJ1wiJyk7dFtlXSgpfX0pfSxsLl9jbGVhck1lbnVzPWZ1bmN0aW9uKHQpe2lmKCF0fHwzIT09dC53aGljaCYmKFwia2V5dXBcIiE9PXQudHlwZXx8OT09PXQud2hpY2gpKWZvcih2YXIgZT1tdC5tYWtlQXJyYXkobXQoa3QpKSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWwuX2dldFBhcmVudEZyb21FbGVtZW50KGVbbl0pLHI9bXQoZVtuXSkuZGF0YSh2dCkscz17cmVsYXRlZFRhcmdldDplW25dfTtpZihyKXt2YXIgbz1yLl9tZW51O2lmKG10KGkpLmhhc0NsYXNzKER0KSYmISh0JiYoXCJjbGlja1wiPT09dC50eXBlJiYvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KHQudGFyZ2V0LnRhZ05hbWUpfHxcImtleXVwXCI9PT10LnR5cGUmJjk9PT10LndoaWNoKSYmbXQuY29udGFpbnMoaSx0LnRhcmdldCkpKXt2YXIgYT1tdC5FdmVudChJdC5ISURFLHMpO210KGkpLnRyaWdnZXIoYSksYS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KFwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJm10KGRvY3VtZW50LmJvZHkpLmNoaWxkcmVuKCkub2ZmKFwibW91c2VvdmVyXCIsbnVsbCxtdC5ub29wKSxlW25dLnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIixcImZhbHNlXCIpLG10KG8pLnJlbW92ZUNsYXNzKER0KSxtdChpKS5yZW1vdmVDbGFzcyhEdCkudHJpZ2dlcihtdC5FdmVudChJdC5ISURERU4scykpKX19fX0sbC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQ9ZnVuY3Rpb24odCl7dmFyIGUsbj1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHQpO3JldHVybiBuJiYoZT1tdChuKVswXSksZXx8dC5wYXJlbnROb2RlfSxsLl9kYXRhQXBpS2V5ZG93bkhhbmRsZXI9ZnVuY3Rpb24odCl7aWYoKC9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QodC50YXJnZXQudGFnTmFtZSk/ISgzMj09PXQud2hpY2h8fDI3IT09dC53aGljaCYmKDQwIT09dC53aGljaCYmMzghPT10LndoaWNofHxtdCh0LnRhcmdldCkuY2xvc2VzdChMdCkubGVuZ3RoKSk6Q3QudGVzdCh0LndoaWNoKSkmJih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSwhdGhpcy5kaXNhYmxlZCYmIW10KHRoaXMpLmhhc0NsYXNzKEF0KSkpe3ZhciBlPWwuX2dldFBhcmVudEZyb21FbGVtZW50KHRoaXMpLG49bXQoZSkuaGFzQ2xhc3MoRHQpO2lmKChufHwyNz09PXQud2hpY2gmJjMyPT09dC53aGljaCkmJighbnx8MjchPT10LndoaWNoJiYzMiE9PXQud2hpY2gpKXt2YXIgaT1tdChlKS5maW5kKFJ0KS5nZXQoKTtpZigwIT09aS5sZW5ndGgpe3ZhciByPWkuaW5kZXhPZih0LnRhcmdldCk7Mzg9PT10LndoaWNoJiYwPHImJnItLSw0MD09PXQud2hpY2gmJnI8aS5sZW5ndGgtMSYmcisrLHI8MCYmKHI9MCksaVtyXS5mb2N1cygpfX1lbHNle2lmKDI3PT09dC53aGljaCl7dmFyIHM9bXQoZSkuZmluZChrdClbMF07bXQocykudHJpZ2dlcihcImZvY3VzXCIpfW10KHRoaXMpLnRyaWdnZXIoXCJjbGlja1wiKX19fSxvKGwsbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBGdH19LHtrZXk6XCJEZWZhdWx0VHlwZVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBWdH19XSksbH0oKSxtdChkb2N1bWVudCkub24oSXQuS0VZRE9XTl9EQVRBX0FQSSxrdCxRdC5fZGF0YUFwaUtleWRvd25IYW5kbGVyKS5vbihJdC5LRVlET1dOX0RBVEFfQVBJLEx0LFF0Ll9kYXRhQXBpS2V5ZG93bkhhbmRsZXIpLm9uKEl0LkNMSUNLX0RBVEFfQVBJK1wiIFwiK0l0LktFWVVQX0RBVEFfQVBJLFF0Ll9jbGVhck1lbnVzKS5vbihJdC5DTElDS19EQVRBX0FQSSxrdCxmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxRdC5falF1ZXJ5SW50ZXJmYWNlLmNhbGwobXQodGhpcyksXCJ0b2dnbGVcIil9KS5vbihJdC5DTElDS19EQVRBX0FQSSxQdCxmdW5jdGlvbih0KXt0LnN0b3BQcm9wYWdhdGlvbigpfSksbXQuZm5bcHRdPVF0Ll9qUXVlcnlJbnRlcmZhY2UsbXQuZm5bcHRdLkNvbnN0cnVjdG9yPVF0LG10LmZuW3B0XS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG10LmZuW3B0XT1UdCxRdC5falF1ZXJ5SW50ZXJmYWNlfSxRdCksd249KFl0PVwibW9kYWxcIixxdD1cIi5cIisoR3Q9XCJicy5tb2RhbFwiKSx6dD0oQnQ9ZSkuZm5bWXRdLFh0PXtiYWNrZHJvcDohMCxrZXlib2FyZDohMCxmb2N1czohMCxzaG93OiEwfSxKdD17YmFja2Ryb3A6XCIoYm9vbGVhbnxzdHJpbmcpXCIsa2V5Ym9hcmQ6XCJib29sZWFuXCIsZm9jdXM6XCJib29sZWFuXCIsc2hvdzpcImJvb2xlYW5cIn0sWnQ9e0hJREU6XCJoaWRlXCIrcXQsSElEREVOOlwiaGlkZGVuXCIrcXQsU0hPVzpcInNob3dcIitxdCxTSE9XTjpcInNob3duXCIrcXQsRk9DVVNJTjpcImZvY3VzaW5cIitxdCxSRVNJWkU6XCJyZXNpemVcIitxdCxDTElDS19ESVNNSVNTOlwiY2xpY2suZGlzbWlzc1wiK3F0LEtFWURPV05fRElTTUlTUzpcImtleWRvd24uZGlzbWlzc1wiK3F0LE1PVVNFVVBfRElTTUlTUzpcIm1vdXNldXAuZGlzbWlzc1wiK3F0LE1PVVNFRE9XTl9ESVNNSVNTOlwibW91c2Vkb3duLmRpc21pc3NcIitxdCxDTElDS19EQVRBX0FQSTpcImNsaWNrXCIrcXQrXCIuZGF0YS1hcGlcIn0sJHQ9XCJtb2RhbC1zY3JvbGxiYXItbWVhc3VyZVwiLHRlPVwibW9kYWwtYmFja2Ryb3BcIixlZT1cIm1vZGFsLW9wZW5cIixuZT1cImZhZGVcIixpZT1cInNob3dcIixyZT17RElBTE9HOlwiLm1vZGFsLWRpYWxvZ1wiLERBVEFfVE9HR0xFOidbZGF0YS10b2dnbGU9XCJtb2RhbFwiXScsREFUQV9ESVNNSVNTOidbZGF0YS1kaXNtaXNzPVwibW9kYWxcIl0nLEZJWEVEX0NPTlRFTlQ6XCIuZml4ZWQtdG9wLCAuZml4ZWQtYm90dG9tLCAuaXMtZml4ZWQsIC5zdGlja3ktdG9wXCIsU1RJQ0tZX0NPTlRFTlQ6XCIuc3RpY2t5LXRvcFwiLE5BVkJBUl9UT0dHTEVSOlwiLm5hdmJhci10b2dnbGVyXCJ9LHNlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0LGUpe3RoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fZWxlbWVudD10LHRoaXMuX2RpYWxvZz1CdCh0KS5maW5kKHJlLkRJQUxPRylbMF0sdGhpcy5fYmFja2Ryb3A9bnVsbCx0aGlzLl9pc1Nob3duPSExLHRoaXMuX2lzQm9keU92ZXJmbG93aW5nPSExLHRoaXMuX2lnbm9yZUJhY2tkcm9wQ2xpY2s9ITEsdGhpcy5fc2Nyb2xsYmFyV2lkdGg9MH12YXIgdD1yLnByb3RvdHlwZTtyZXR1cm4gdC50b2dnbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2lzU2hvd24/dGhpcy5oaWRlKCk6dGhpcy5zaG93KHQpfSx0LnNob3c9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZighdGhpcy5faXNUcmFuc2l0aW9uaW5nJiYhdGhpcy5faXNTaG93bil7QnQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobmUpJiYodGhpcy5faXNUcmFuc2l0aW9uaW5nPSEwKTt2YXIgbj1CdC5FdmVudChadC5TSE9XLHtyZWxhdGVkVGFyZ2V0OnR9KTtCdCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKG4pLHRoaXMuX2lzU2hvd258fG4uaXNEZWZhdWx0UHJldmVudGVkKCl8fCh0aGlzLl9pc1Nob3duPSEwLHRoaXMuX2NoZWNrU2Nyb2xsYmFyKCksdGhpcy5fc2V0U2Nyb2xsYmFyKCksdGhpcy5fYWRqdXN0RGlhbG9nKCksQnQoZG9jdW1lbnQuYm9keSkuYWRkQ2xhc3MoZWUpLHRoaXMuX3NldEVzY2FwZUV2ZW50KCksdGhpcy5fc2V0UmVzaXplRXZlbnQoKSxCdCh0aGlzLl9lbGVtZW50KS5vbihadC5DTElDS19ESVNNSVNTLHJlLkRBVEFfRElTTUlTUyxmdW5jdGlvbih0KXtyZXR1cm4gZS5oaWRlKHQpfSksQnQodGhpcy5fZGlhbG9nKS5vbihadC5NT1VTRURPV05fRElTTUlTUyxmdW5jdGlvbigpe0J0KGUuX2VsZW1lbnQpLm9uZShadC5NT1VTRVVQX0RJU01JU1MsZnVuY3Rpb24odCl7QnQodC50YXJnZXQpLmlzKGUuX2VsZW1lbnQpJiYoZS5faWdub3JlQmFja2Ryb3BDbGljaz0hMCl9KX0pLHRoaXMuX3Nob3dCYWNrZHJvcChmdW5jdGlvbigpe3JldHVybiBlLl9zaG93RWxlbWVudCh0KX0pKX19LHQuaGlkZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKHQmJnQucHJldmVudERlZmF1bHQoKSwhdGhpcy5faXNUcmFuc2l0aW9uaW5nJiZ0aGlzLl9pc1Nob3duKXt2YXIgbj1CdC5FdmVudChadC5ISURFKTtpZihCdCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKG4pLHRoaXMuX2lzU2hvd24mJiFuLmlzRGVmYXVsdFByZXZlbnRlZCgpKXt0aGlzLl9pc1Nob3duPSExO3ZhciBpPUJ0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKG5lKTtpZihpJiYodGhpcy5faXNUcmFuc2l0aW9uaW5nPSEwKSx0aGlzLl9zZXRFc2NhcGVFdmVudCgpLHRoaXMuX3NldFJlc2l6ZUV2ZW50KCksQnQoZG9jdW1lbnQpLm9mZihadC5GT0NVU0lOKSxCdCh0aGlzLl9lbGVtZW50KS5yZW1vdmVDbGFzcyhpZSksQnQodGhpcy5fZWxlbWVudCkub2ZmKFp0LkNMSUNLX0RJU01JU1MpLEJ0KHRoaXMuX2RpYWxvZykub2ZmKFp0Lk1PVVNFRE9XTl9ESVNNSVNTKSxpKXt2YXIgcj1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KTtCdCh0aGlzLl9lbGVtZW50KS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24odCl7cmV0dXJuIGUuX2hpZGVNb2RhbCh0KX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKHIpfWVsc2UgdGhpcy5faGlkZU1vZGFsKCl9fX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7QnQucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LEd0KSxCdCh3aW5kb3csZG9jdW1lbnQsdGhpcy5fZWxlbWVudCx0aGlzLl9iYWNrZHJvcCkub2ZmKHF0KSx0aGlzLl9jb25maWc9bnVsbCx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5fZGlhbG9nPW51bGwsdGhpcy5fYmFja2Ryb3A9bnVsbCx0aGlzLl9pc1Nob3duPW51bGwsdGhpcy5faXNCb2R5T3ZlcmZsb3dpbmc9bnVsbCx0aGlzLl9pZ25vcmVCYWNrZHJvcENsaWNrPW51bGwsdGhpcy5fc2Nyb2xsYmFyV2lkdGg9bnVsbH0sdC5oYW5kbGVVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl9hZGp1c3REaWFsb2coKX0sdC5fZ2V0Q29uZmlnPWZ1bmN0aW9uKHQpe3JldHVybiB0PWgoe30sWHQsdCksQ24udHlwZUNoZWNrQ29uZmlnKFl0LHQsSnQpLHR9LHQuX3Nob3dFbGVtZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1CdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhuZSk7dGhpcy5fZWxlbWVudC5wYXJlbnROb2RlJiZ0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERXx8ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50KSx0aGlzLl9lbGVtZW50LnN0eWxlLmRpc3BsYXk9XCJibG9ja1wiLHRoaXMuX2VsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIiksdGhpcy5fZWxlbWVudC5zY3JvbGxUb3A9MCxuJiZDbi5yZWZsb3codGhpcy5fZWxlbWVudCksQnQodGhpcy5fZWxlbWVudCkuYWRkQ2xhc3MoaWUpLHRoaXMuX2NvbmZpZy5mb2N1cyYmdGhpcy5fZW5mb3JjZUZvY3VzKCk7dmFyIGk9QnQuRXZlbnQoWnQuU0hPV04se3JlbGF0ZWRUYXJnZXQ6dH0pLHI9ZnVuY3Rpb24oKXtlLl9jb25maWcuZm9jdXMmJmUuX2VsZW1lbnQuZm9jdXMoKSxlLl9pc1RyYW5zaXRpb25pbmc9ITEsQnQoZS5fZWxlbWVudCkudHJpZ2dlcihpKX07aWYobil7dmFyIHM9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7QnQodGhpcy5fZGlhbG9nKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQscikuZW11bGF0ZVRyYW5zaXRpb25FbmQocyl9ZWxzZSByKCl9LHQuX2VuZm9yY2VGb2N1cz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7QnQoZG9jdW1lbnQpLm9mZihadC5GT0NVU0lOKS5vbihadC5GT0NVU0lOLGZ1bmN0aW9uKHQpe2RvY3VtZW50IT09dC50YXJnZXQmJmUuX2VsZW1lbnQhPT10LnRhcmdldCYmMD09PUJ0KGUuX2VsZW1lbnQpLmhhcyh0LnRhcmdldCkubGVuZ3RoJiZlLl9lbGVtZW50LmZvY3VzKCl9KX0sdC5fc2V0RXNjYXBlRXZlbnQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX2lzU2hvd24mJnRoaXMuX2NvbmZpZy5rZXlib2FyZD9CdCh0aGlzLl9lbGVtZW50KS5vbihadC5LRVlET1dOX0RJU01JU1MsZnVuY3Rpb24odCl7Mjc9PT10LndoaWNoJiYodC5wcmV2ZW50RGVmYXVsdCgpLGUuaGlkZSgpKX0pOnRoaXMuX2lzU2hvd258fEJ0KHRoaXMuX2VsZW1lbnQpLm9mZihadC5LRVlET1dOX0RJU01JU1MpfSx0Ll9zZXRSZXNpemVFdmVudD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5faXNTaG93bj9CdCh3aW5kb3cpLm9uKFp0LlJFU0laRSxmdW5jdGlvbih0KXtyZXR1cm4gZS5oYW5kbGVVcGRhdGUodCl9KTpCdCh3aW5kb3cpLm9mZihadC5SRVNJWkUpfSx0Ll9oaWRlTW9kYWw9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2VsZW1lbnQuc3R5bGUuZGlzcGxheT1cIm5vbmVcIix0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtaGlkZGVuXCIsITApLHRoaXMuX2lzVHJhbnNpdGlvbmluZz0hMSx0aGlzLl9zaG93QmFja2Ryb3AoZnVuY3Rpb24oKXtCdChkb2N1bWVudC5ib2R5KS5yZW1vdmVDbGFzcyhlZSksdC5fcmVzZXRBZGp1c3RtZW50cygpLHQuX3Jlc2V0U2Nyb2xsYmFyKCksQnQodC5fZWxlbWVudCkudHJpZ2dlcihadC5ISURERU4pfSl9LHQuX3JlbW92ZUJhY2tkcm9wPWZ1bmN0aW9uKCl7dGhpcy5fYmFja2Ryb3AmJihCdCh0aGlzLl9iYWNrZHJvcCkucmVtb3ZlKCksdGhpcy5fYmFja2Ryb3A9bnVsbCl9LHQuX3Nob3dCYWNrZHJvcD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49QnQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobmUpP25lOlwiXCI7aWYodGhpcy5faXNTaG93biYmdGhpcy5fY29uZmlnLmJhY2tkcm9wKXtpZih0aGlzLl9iYWNrZHJvcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLHRoaXMuX2JhY2tkcm9wLmNsYXNzTmFtZT10ZSxuJiZCdCh0aGlzLl9iYWNrZHJvcCkuYWRkQ2xhc3MobiksQnQodGhpcy5fYmFja2Ryb3ApLmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpLEJ0KHRoaXMuX2VsZW1lbnQpLm9uKFp0LkNMSUNLX0RJU01JU1MsZnVuY3Rpb24odCl7ZS5faWdub3JlQmFja2Ryb3BDbGljaz9lLl9pZ25vcmVCYWNrZHJvcENsaWNrPSExOnQudGFyZ2V0PT09dC5jdXJyZW50VGFyZ2V0JiYoXCJzdGF0aWNcIj09PWUuX2NvbmZpZy5iYWNrZHJvcD9lLl9lbGVtZW50LmZvY3VzKCk6ZS5oaWRlKCkpfSksbiYmQ24ucmVmbG93KHRoaXMuX2JhY2tkcm9wKSxCdCh0aGlzLl9iYWNrZHJvcCkuYWRkQ2xhc3MoaWUpLCF0KXJldHVybjtpZighbilyZXR1cm4gdm9pZCB0KCk7dmFyIGk9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy5fYmFja2Ryb3ApO0J0KHRoaXMuX2JhY2tkcm9wKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsdCkuZW11bGF0ZVRyYW5zaXRpb25FbmQoaSl9ZWxzZSBpZighdGhpcy5faXNTaG93biYmdGhpcy5fYmFja2Ryb3Ape0J0KHRoaXMuX2JhY2tkcm9wKS5yZW1vdmVDbGFzcyhpZSk7dmFyIHI9ZnVuY3Rpb24oKXtlLl9yZW1vdmVCYWNrZHJvcCgpLHQmJnQoKX07aWYoQnQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobmUpKXt2YXIgcz1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9iYWNrZHJvcCk7QnQodGhpcy5fYmFja2Ryb3ApLm9uZShDbi5UUkFOU0lUSU9OX0VORCxyKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChzKX1lbHNlIHIoKX1lbHNlIHQmJnQoKX0sdC5fYWRqdXN0RGlhbG9nPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZWxlbWVudC5zY3JvbGxIZWlnaHQ+ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDshdGhpcy5faXNCb2R5T3ZlcmZsb3dpbmcmJnQmJih0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdMZWZ0PXRoaXMuX3Njcm9sbGJhcldpZHRoK1wicHhcIiksdGhpcy5faXNCb2R5T3ZlcmZsb3dpbmcmJiF0JiYodGhpcy5fZWxlbWVudC5zdHlsZS5wYWRkaW5nUmlnaHQ9dGhpcy5fc2Nyb2xsYmFyV2lkdGgrXCJweFwiKX0sdC5fcmVzZXRBZGp1c3RtZW50cz1mdW5jdGlvbigpe3RoaXMuX2VsZW1lbnQuc3R5bGUucGFkZGluZ0xlZnQ9XCJcIix0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdSaWdodD1cIlwifSx0Ll9jaGVja1Njcm9sbGJhcj1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5faXNCb2R5T3ZlcmZsb3dpbmc9dC5sZWZ0K3QucmlnaHQ8d2luZG93LmlubmVyV2lkdGgsdGhpcy5fc2Nyb2xsYmFyV2lkdGg9dGhpcy5fZ2V0U2Nyb2xsYmFyV2lkdGgoKX0sdC5fc2V0U2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcztpZih0aGlzLl9pc0JvZHlPdmVyZmxvd2luZyl7QnQocmUuRklYRURfQ09OVEVOVCkuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpWzBdLnN0eWxlLnBhZGRpbmdSaWdodCxpPUJ0KGUpLmNzcyhcInBhZGRpbmctcmlnaHRcIik7QnQoZSkuZGF0YShcInBhZGRpbmctcmlnaHRcIixuKS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIscGFyc2VGbG9hdChpKStyLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfSksQnQocmUuU1RJQ0tZX0NPTlRFTlQpLmVhY2goZnVuY3Rpb24odCxlKXt2YXIgbj1CdChlKVswXS5zdHlsZS5tYXJnaW5SaWdodCxpPUJ0KGUpLmNzcyhcIm1hcmdpbi1yaWdodFwiKTtCdChlKS5kYXRhKFwibWFyZ2luLXJpZ2h0XCIsbikuY3NzKFwibWFyZ2luLXJpZ2h0XCIscGFyc2VGbG9hdChpKS1yLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfSksQnQocmUuTkFWQkFSX1RPR0dMRVIpLmVhY2goZnVuY3Rpb24odCxlKXt2YXIgbj1CdChlKVswXS5zdHlsZS5tYXJnaW5SaWdodCxpPUJ0KGUpLmNzcyhcIm1hcmdpbi1yaWdodFwiKTtCdChlKS5kYXRhKFwibWFyZ2luLXJpZ2h0XCIsbikuY3NzKFwibWFyZ2luLXJpZ2h0XCIscGFyc2VGbG9hdChpKStyLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfSk7dmFyIHQ9ZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQsZT1CdChkb2N1bWVudC5ib2R5KS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIpO0J0KGRvY3VtZW50LmJvZHkpLmRhdGEoXCJwYWRkaW5nLXJpZ2h0XCIsdCkuY3NzKFwicGFkZGluZy1yaWdodFwiLHBhcnNlRmxvYXQoZSkrdGhpcy5fc2Nyb2xsYmFyV2lkdGgrXCJweFwiKX19LHQuX3Jlc2V0U2Nyb2xsYmFyPWZ1bmN0aW9uKCl7QnQocmUuRklYRURfQ09OVEVOVCkuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpLmRhdGEoXCJwYWRkaW5nLXJpZ2h0XCIpO1widW5kZWZpbmVkXCIhPXR5cGVvZiBuJiZCdChlKS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIsbikucmVtb3ZlRGF0YShcInBhZGRpbmctcmlnaHRcIil9KSxCdChyZS5TVElDS1lfQ09OVEVOVCtcIiwgXCIrcmUuTkFWQkFSX1RPR0dMRVIpLmVhY2goZnVuY3Rpb24odCxlKXt2YXIgbj1CdChlKS5kYXRhKFwibWFyZ2luLXJpZ2h0XCIpO1widW5kZWZpbmVkXCIhPXR5cGVvZiBuJiZCdChlKS5jc3MoXCJtYXJnaW4tcmlnaHRcIixuKS5yZW1vdmVEYXRhKFwibWFyZ2luLXJpZ2h0XCIpfSk7dmFyIHQ9QnQoZG9jdW1lbnQuYm9keSkuZGF0YShcInBhZGRpbmctcmlnaHRcIik7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHQmJkJ0KGRvY3VtZW50LmJvZHkpLmNzcyhcInBhZGRpbmctcmlnaHRcIix0KS5yZW1vdmVEYXRhKFwicGFkZGluZy1yaWdodFwiKX0sdC5fZ2V0U2Nyb2xsYmFyV2lkdGg9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO3QuY2xhc3NOYW1lPSR0LGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCk7dmFyIGU9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aC10LmNsaWVudFdpZHRoO3JldHVybiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHQpLGV9LHIuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihuLGkpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1CdCh0aGlzKS5kYXRhKEd0KSxlPWgoe30sci5EZWZhdWx0LEJ0KHRoaXMpLmRhdGEoKSxcIm9iamVjdFwiPT10eXBlb2YgbiYmbik7aWYodHx8KHQ9bmV3IHIodGhpcyxlKSxCdCh0aGlzKS5kYXRhKEd0LHQpKSxcInN0cmluZ1wiPT10eXBlb2Ygbil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRbbl0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytuKydcIicpO3Rbbl0oaSl9ZWxzZSBlLnNob3cmJnQuc2hvdyhpKX0pfSxvKHIsbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBYdH19XSkscn0oKSxCdChkb2N1bWVudCkub24oWnQuQ0xJQ0tfREFUQV9BUEkscmUuREFUQV9UT0dHTEUsZnVuY3Rpb24odCl7dmFyIGUsbj10aGlzLGk9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0aGlzKTtpJiYoZT1CdChpKVswXSk7dmFyIHI9QnQoZSkuZGF0YShHdCk/XCJ0b2dnbGVcIjpoKHt9LEJ0KGUpLmRhdGEoKSxCdCh0aGlzKS5kYXRhKCkpO1wiQVwiIT09dGhpcy50YWdOYW1lJiZcIkFSRUFcIiE9PXRoaXMudGFnTmFtZXx8dC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBzPUJ0KGUpLm9uZShadC5TSE9XLGZ1bmN0aW9uKHQpe3QuaXNEZWZhdWx0UHJldmVudGVkKCl8fHMub25lKFp0LkhJRERFTixmdW5jdGlvbigpe0J0KG4pLmlzKFwiOnZpc2libGVcIikmJm4uZm9jdXMoKX0pfSk7c2UuX2pRdWVyeUludGVyZmFjZS5jYWxsKEJ0KGUpLHIsdGhpcyl9KSxCdC5mbltZdF09c2UuX2pRdWVyeUludGVyZmFjZSxCdC5mbltZdF0uQ29uc3RydWN0b3I9c2UsQnQuZm5bWXRdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gQnQuZm5bWXRdPXp0LHNlLl9qUXVlcnlJbnRlcmZhY2V9LHNlKSxObj0oYWU9XCJ0b29sdGlwXCIsaGU9XCIuXCIrKGxlPVwiYnMudG9vbHRpcFwiKSxjZT0ob2U9ZSkuZm5bYWVdLHVlPVwiYnMtdG9vbHRpcFwiLGZlPW5ldyBSZWdFeHAoXCIoXnxcXFxccylcIit1ZStcIlxcXFxTK1wiLFwiZ1wiKSxnZT17YW5pbWF0aW9uOiEwLHRlbXBsYXRlOic8ZGl2IGNsYXNzPVwidG9vbHRpcFwiIHJvbGU9XCJ0b29sdGlwXCI+PGRpdiBjbGFzcz1cImFycm93XCI+PC9kaXY+PGRpdiBjbGFzcz1cInRvb2x0aXAtaW5uZXJcIj48L2Rpdj48L2Rpdj4nLHRyaWdnZXI6XCJob3ZlciBmb2N1c1wiLHRpdGxlOlwiXCIsZGVsYXk6MCxodG1sOiEoX2U9e0FVVE86XCJhdXRvXCIsVE9QOlwidG9wXCIsUklHSFQ6XCJyaWdodFwiLEJPVFRPTTpcImJvdHRvbVwiLExFRlQ6XCJsZWZ0XCJ9KSxzZWxlY3RvcjohKGRlPXthbmltYXRpb246XCJib29sZWFuXCIsdGVtcGxhdGU6XCJzdHJpbmdcIix0aXRsZTpcIihzdHJpbmd8ZWxlbWVudHxmdW5jdGlvbilcIix0cmlnZ2VyOlwic3RyaW5nXCIsZGVsYXk6XCIobnVtYmVyfG9iamVjdClcIixodG1sOlwiYm9vbGVhblwiLHNlbGVjdG9yOlwiKHN0cmluZ3xib29sZWFuKVwiLHBsYWNlbWVudDpcIihzdHJpbmd8ZnVuY3Rpb24pXCIsb2Zmc2V0OlwiKG51bWJlcnxzdHJpbmcpXCIsY29udGFpbmVyOlwiKHN0cmluZ3xlbGVtZW50fGJvb2xlYW4pXCIsZmFsbGJhY2tQbGFjZW1lbnQ6XCIoc3RyaW5nfGFycmF5KVwiLGJvdW5kYXJ5OlwiKHN0cmluZ3xlbGVtZW50KVwifSkscGxhY2VtZW50OlwidG9wXCIsb2Zmc2V0OjAsY29udGFpbmVyOiExLGZhbGxiYWNrUGxhY2VtZW50OlwiZmxpcFwiLGJvdW5kYXJ5Olwic2Nyb2xsUGFyZW50XCJ9LHBlPVwib3V0XCIsdmU9e0hJREU6XCJoaWRlXCIraGUsSElEREVOOlwiaGlkZGVuXCIraGUsU0hPVzoobWU9XCJzaG93XCIpK2hlLFNIT1dOOlwic2hvd25cIitoZSxJTlNFUlRFRDpcImluc2VydGVkXCIraGUsQ0xJQ0s6XCJjbGlja1wiK2hlLEZPQ1VTSU46XCJmb2N1c2luXCIraGUsRk9DVVNPVVQ6XCJmb2N1c291dFwiK2hlLE1PVVNFRU5URVI6XCJtb3VzZWVudGVyXCIraGUsTU9VU0VMRUFWRTpcIm1vdXNlbGVhdmVcIitoZX0sRWU9XCJmYWRlXCIseWU9XCJzaG93XCIsVGU9XCIudG9vbHRpcC1pbm5lclwiLENlPVwiLmFycm93XCIsSWU9XCJob3ZlclwiLEFlPVwiZm9jdXNcIixEZT1cImNsaWNrXCIsYmU9XCJtYW51YWxcIixTZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGkodCxlKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgYyl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQm9vdHN0cmFwIHRvb2x0aXBzIHJlcXVpcmUgUG9wcGVyLmpzIChodHRwczovL3BvcHBlci5qcy5vcmcpXCIpO3RoaXMuX2lzRW5hYmxlZD0hMCx0aGlzLl90aW1lb3V0PTAsdGhpcy5faG92ZXJTdGF0ZT1cIlwiLHRoaXMuX2FjdGl2ZVRyaWdnZXI9e30sdGhpcy5fcG9wcGVyPW51bGwsdGhpcy5lbGVtZW50PXQsdGhpcy5jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMudGlwPW51bGwsdGhpcy5fc2V0TGlzdGVuZXJzKCl9dmFyIHQ9aS5wcm90b3R5cGU7cmV0dXJuIHQuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5faXNFbmFibGVkPSEwfSx0LmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLl9pc0VuYWJsZWQ9ITF9LHQudG9nZ2xlRW5hYmxlZD1mdW5jdGlvbigpe3RoaXMuX2lzRW5hYmxlZD0hdGhpcy5faXNFbmFibGVkfSx0LnRvZ2dsZT1mdW5jdGlvbih0KXtpZih0aGlzLl9pc0VuYWJsZWQpaWYodCl7dmFyIGU9dGhpcy5jb25zdHJ1Y3Rvci5EQVRBX0tFWSxuPW9lKHQuY3VycmVudFRhcmdldCkuZGF0YShlKTtufHwobj1uZXcgdGhpcy5jb25zdHJ1Y3Rvcih0LmN1cnJlbnRUYXJnZXQsdGhpcy5fZ2V0RGVsZWdhdGVDb25maWcoKSksb2UodC5jdXJyZW50VGFyZ2V0KS5kYXRhKGUsbikpLG4uX2FjdGl2ZVRyaWdnZXIuY2xpY2s9IW4uX2FjdGl2ZVRyaWdnZXIuY2xpY2ssbi5faXNXaXRoQWN0aXZlVHJpZ2dlcigpP24uX2VudGVyKG51bGwsbik6bi5fbGVhdmUobnVsbCxuKX1lbHNle2lmKG9lKHRoaXMuZ2V0VGlwRWxlbWVudCgpKS5oYXNDbGFzcyh5ZSkpcmV0dXJuIHZvaWQgdGhpcy5fbGVhdmUobnVsbCx0aGlzKTt0aGlzLl9lbnRlcihudWxsLHRoaXMpfX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpLG9lLnJlbW92ZURhdGEodGhpcy5lbGVtZW50LHRoaXMuY29uc3RydWN0b3IuREFUQV9LRVkpLG9lKHRoaXMuZWxlbWVudCkub2ZmKHRoaXMuY29uc3RydWN0b3IuRVZFTlRfS0VZKSxvZSh0aGlzLmVsZW1lbnQpLmNsb3Nlc3QoXCIubW9kYWxcIikub2ZmKFwiaGlkZS5icy5tb2RhbFwiKSx0aGlzLnRpcCYmb2UodGhpcy50aXApLnJlbW92ZSgpLHRoaXMuX2lzRW5hYmxlZD1udWxsLHRoaXMuX3RpbWVvdXQ9bnVsbCx0aGlzLl9ob3ZlclN0YXRlPW51bGwsKHRoaXMuX2FjdGl2ZVRyaWdnZXI9bnVsbCkhPT10aGlzLl9wb3BwZXImJnRoaXMuX3BvcHBlci5kZXN0cm95KCksdGhpcy5fcG9wcGVyPW51bGwsdGhpcy5lbGVtZW50PW51bGwsdGhpcy5jb25maWc9bnVsbCx0aGlzLnRpcD1udWxsfSx0LnNob3c9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKFwibm9uZVwiPT09b2UodGhpcy5lbGVtZW50KS5jc3MoXCJkaXNwbGF5XCIpKXRocm93IG5ldyBFcnJvcihcIlBsZWFzZSB1c2Ugc2hvdyBvbiB2aXNpYmxlIGVsZW1lbnRzXCIpO3ZhciB0PW9lLkV2ZW50KHRoaXMuY29uc3RydWN0b3IuRXZlbnQuU0hPVyk7aWYodGhpcy5pc1dpdGhDb250ZW50KCkmJnRoaXMuX2lzRW5hYmxlZCl7b2UodGhpcy5lbGVtZW50KS50cmlnZ2VyKHQpO3ZhciBuPW9lLmNvbnRhaW5zKHRoaXMuZWxlbWVudC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0aGlzLmVsZW1lbnQpO2lmKHQuaXNEZWZhdWx0UHJldmVudGVkKCl8fCFuKXJldHVybjt2YXIgaT10aGlzLmdldFRpcEVsZW1lbnQoKSxyPUNuLmdldFVJRCh0aGlzLmNvbnN0cnVjdG9yLk5BTUUpO2kuc2V0QXR0cmlidXRlKFwiaWRcIixyKSx0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1kZXNjcmliZWRieVwiLHIpLHRoaXMuc2V0Q29udGVudCgpLHRoaXMuY29uZmlnLmFuaW1hdGlvbiYmb2UoaSkuYWRkQ2xhc3MoRWUpO3ZhciBzPVwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMuY29uZmlnLnBsYWNlbWVudD90aGlzLmNvbmZpZy5wbGFjZW1lbnQuY2FsbCh0aGlzLGksdGhpcy5lbGVtZW50KTp0aGlzLmNvbmZpZy5wbGFjZW1lbnQsbz10aGlzLl9nZXRBdHRhY2htZW50KHMpO3RoaXMuYWRkQXR0YWNobWVudENsYXNzKG8pO3ZhciBhPSExPT09dGhpcy5jb25maWcuY29udGFpbmVyP2RvY3VtZW50LmJvZHk6b2UodGhpcy5jb25maWcuY29udGFpbmVyKTtvZShpKS5kYXRhKHRoaXMuY29uc3RydWN0b3IuREFUQV9LRVksdGhpcyksb2UuY29udGFpbnModGhpcy5lbGVtZW50Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHRoaXMudGlwKXx8b2UoaSkuYXBwZW5kVG8oYSksb2UodGhpcy5lbGVtZW50KS50cmlnZ2VyKHRoaXMuY29uc3RydWN0b3IuRXZlbnQuSU5TRVJURUQpLHRoaXMuX3BvcHBlcj1uZXcgYyh0aGlzLmVsZW1lbnQsaSx7cGxhY2VtZW50Om8sbW9kaWZpZXJzOntvZmZzZXQ6e29mZnNldDp0aGlzLmNvbmZpZy5vZmZzZXR9LGZsaXA6e2JlaGF2aW9yOnRoaXMuY29uZmlnLmZhbGxiYWNrUGxhY2VtZW50fSxhcnJvdzp7ZWxlbWVudDpDZX0scHJldmVudE92ZXJmbG93Ontib3VuZGFyaWVzRWxlbWVudDp0aGlzLmNvbmZpZy5ib3VuZGFyeX19LG9uQ3JlYXRlOmZ1bmN0aW9uKHQpe3Qub3JpZ2luYWxQbGFjZW1lbnQhPT10LnBsYWNlbWVudCYmZS5faGFuZGxlUG9wcGVyUGxhY2VtZW50Q2hhbmdlKHQpfSxvblVwZGF0ZTpmdW5jdGlvbih0KXtlLl9oYW5kbGVQb3BwZXJQbGFjZW1lbnRDaGFuZ2UodCl9fSksb2UoaSkuYWRkQ2xhc3MoeWUpLFwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJm9lKGRvY3VtZW50LmJvZHkpLmNoaWxkcmVuKCkub24oXCJtb3VzZW92ZXJcIixudWxsLG9lLm5vb3ApO3ZhciBsPWZ1bmN0aW9uKCl7ZS5jb25maWcuYW5pbWF0aW9uJiZlLl9maXhUcmFuc2l0aW9uKCk7dmFyIHQ9ZS5faG92ZXJTdGF0ZTtlLl9ob3ZlclN0YXRlPW51bGwsb2UoZS5lbGVtZW50KS50cmlnZ2VyKGUuY29uc3RydWN0b3IuRXZlbnQuU0hPV04pLHQ9PT1wZSYmZS5fbGVhdmUobnVsbCxlKX07aWYob2UodGhpcy50aXApLmhhc0NsYXNzKEVlKSl7dmFyIGg9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy50aXApO29lKHRoaXMudGlwKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsbCkuZW11bGF0ZVRyYW5zaXRpb25FbmQoaCl9ZWxzZSBsKCl9fSx0LmhpZGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMuZ2V0VGlwRWxlbWVudCgpLGk9b2UuRXZlbnQodGhpcy5jb25zdHJ1Y3Rvci5FdmVudC5ISURFKSxyPWZ1bmN0aW9uKCl7ZS5faG92ZXJTdGF0ZSE9PW1lJiZuLnBhcmVudE5vZGUmJm4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKSxlLl9jbGVhblRpcENsYXNzKCksZS5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcImFyaWEtZGVzY3JpYmVkYnlcIiksb2UoZS5lbGVtZW50KS50cmlnZ2VyKGUuY29uc3RydWN0b3IuRXZlbnQuSElEREVOKSxudWxsIT09ZS5fcG9wcGVyJiZlLl9wb3BwZXIuZGVzdHJveSgpLHQmJnQoKX07aWYob2UodGhpcy5lbGVtZW50KS50cmlnZ2VyKGkpLCFpLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtpZihvZShuKS5yZW1vdmVDbGFzcyh5ZSksXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmb2UoZG9jdW1lbnQuYm9keSkuY2hpbGRyZW4oKS5vZmYoXCJtb3VzZW92ZXJcIixudWxsLG9lLm5vb3ApLHRoaXMuX2FjdGl2ZVRyaWdnZXJbRGVdPSExLHRoaXMuX2FjdGl2ZVRyaWdnZXJbQWVdPSExLHRoaXMuX2FjdGl2ZVRyaWdnZXJbSWVdPSExLG9lKHRoaXMudGlwKS5oYXNDbGFzcyhFZSkpe3ZhciBzPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KG4pO29lKG4pLm9uZShDbi5UUkFOU0lUSU9OX0VORCxyKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChzKX1lbHNlIHIoKTt0aGlzLl9ob3ZlclN0YXRlPVwiXCJ9fSx0LnVwZGF0ZT1mdW5jdGlvbigpe251bGwhPT10aGlzLl9wb3BwZXImJnRoaXMuX3BvcHBlci5zY2hlZHVsZVVwZGF0ZSgpfSx0LmlzV2l0aENvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbih0aGlzLmdldFRpdGxlKCkpfSx0LmFkZEF0dGFjaG1lbnRDbGFzcz1mdW5jdGlvbih0KXtvZSh0aGlzLmdldFRpcEVsZW1lbnQoKSkuYWRkQ2xhc3ModWUrXCItXCIrdCl9LHQuZ2V0VGlwRWxlbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRpcD10aGlzLnRpcHx8b2UodGhpcy5jb25maWcudGVtcGxhdGUpWzBdLHRoaXMudGlwfSx0LnNldENvbnRlbnQ9ZnVuY3Rpb24oKXt2YXIgdD1vZSh0aGlzLmdldFRpcEVsZW1lbnQoKSk7dGhpcy5zZXRFbGVtZW50Q29udGVudCh0LmZpbmQoVGUpLHRoaXMuZ2V0VGl0bGUoKSksdC5yZW1vdmVDbGFzcyhFZStcIiBcIit5ZSl9LHQuc2V0RWxlbWVudENvbnRlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmNvbmZpZy5odG1sO1wib2JqZWN0XCI9PXR5cGVvZiBlJiYoZS5ub2RlVHlwZXx8ZS5qcXVlcnkpP24/b2UoZSkucGFyZW50KCkuaXModCl8fHQuZW1wdHkoKS5hcHBlbmQoZSk6dC50ZXh0KG9lKGUpLnRleHQoKSk6dFtuP1wiaHRtbFwiOlwidGV4dFwiXShlKX0sdC5nZXRUaXRsZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkYXRhLW9yaWdpbmFsLXRpdGxlXCIpO3JldHVybiB0fHwodD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzLmNvbmZpZy50aXRsZT90aGlzLmNvbmZpZy50aXRsZS5jYWxsKHRoaXMuZWxlbWVudCk6dGhpcy5jb25maWcudGl0bGUpLHR9LHQuX2dldEF0dGFjaG1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIF9lW3QudG9VcHBlckNhc2UoKV19LHQuX3NldExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciBpPXRoaXM7dGhpcy5jb25maWcudHJpZ2dlci5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbih0KXtpZihcImNsaWNrXCI9PT10KW9lKGkuZWxlbWVudCkub24oaS5jb25zdHJ1Y3Rvci5FdmVudC5DTElDSyxpLmNvbmZpZy5zZWxlY3RvcixmdW5jdGlvbih0KXtyZXR1cm4gaS50b2dnbGUodCl9KTtlbHNlIGlmKHQhPT1iZSl7dmFyIGU9dD09PUllP2kuY29uc3RydWN0b3IuRXZlbnQuTU9VU0VFTlRFUjppLmNvbnN0cnVjdG9yLkV2ZW50LkZPQ1VTSU4sbj10PT09SWU/aS5jb25zdHJ1Y3Rvci5FdmVudC5NT1VTRUxFQVZFOmkuY29uc3RydWN0b3IuRXZlbnQuRk9DVVNPVVQ7b2UoaS5lbGVtZW50KS5vbihlLGkuY29uZmlnLnNlbGVjdG9yLGZ1bmN0aW9uKHQpe3JldHVybiBpLl9lbnRlcih0KX0pLm9uKG4saS5jb25maWcuc2VsZWN0b3IsZnVuY3Rpb24odCl7cmV0dXJuIGkuX2xlYXZlKHQpfSl9b2UoaS5lbGVtZW50KS5jbG9zZXN0KFwiLm1vZGFsXCIpLm9uKFwiaGlkZS5icy5tb2RhbFwiLGZ1bmN0aW9uKCl7cmV0dXJuIGkuaGlkZSgpfSl9KSx0aGlzLmNvbmZpZy5zZWxlY3Rvcj90aGlzLmNvbmZpZz1oKHt9LHRoaXMuY29uZmlnLHt0cmlnZ2VyOlwibWFudWFsXCIsc2VsZWN0b3I6XCJcIn0pOnRoaXMuX2ZpeFRpdGxlKCl9LHQuX2ZpeFRpdGxlPWZ1bmN0aW9uKCl7dmFyIHQ9dHlwZW9mIHRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkYXRhLW9yaWdpbmFsLXRpdGxlXCIpOyh0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKFwidGl0bGVcIil8fFwic3RyaW5nXCIhPT10KSYmKHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkYXRhLW9yaWdpbmFsLXRpdGxlXCIsdGhpcy5lbGVtZW50LmdldEF0dHJpYnV0ZShcInRpdGxlXCIpfHxcIlwiKSx0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKFwidGl0bGVcIixcIlwiKSl9LHQuX2VudGVyPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5jb25zdHJ1Y3Rvci5EQVRBX0tFWTsoZT1lfHxvZSh0LmN1cnJlbnRUYXJnZXQpLmRhdGEobikpfHwoZT1uZXcgdGhpcy5jb25zdHJ1Y3Rvcih0LmN1cnJlbnRUYXJnZXQsdGhpcy5fZ2V0RGVsZWdhdGVDb25maWcoKSksb2UodC5jdXJyZW50VGFyZ2V0KS5kYXRhKG4sZSkpLHQmJihlLl9hY3RpdmVUcmlnZ2VyW1wiZm9jdXNpblwiPT09dC50eXBlP0FlOkllXT0hMCksb2UoZS5nZXRUaXBFbGVtZW50KCkpLmhhc0NsYXNzKHllKXx8ZS5faG92ZXJTdGF0ZT09PW1lP2UuX2hvdmVyU3RhdGU9bWU6KGNsZWFyVGltZW91dChlLl90aW1lb3V0KSxlLl9ob3ZlclN0YXRlPW1lLGUuY29uZmlnLmRlbGF5JiZlLmNvbmZpZy5kZWxheS5zaG93P2UuX3RpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe2UuX2hvdmVyU3RhdGU9PT1tZSYmZS5zaG93KCl9LGUuY29uZmlnLmRlbGF5LnNob3cpOmUuc2hvdygpKX0sdC5fbGVhdmU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmNvbnN0cnVjdG9yLkRBVEFfS0VZOyhlPWV8fG9lKHQuY3VycmVudFRhcmdldCkuZGF0YShuKSl8fChlPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHQuY3VycmVudFRhcmdldCx0aGlzLl9nZXREZWxlZ2F0ZUNvbmZpZygpKSxvZSh0LmN1cnJlbnRUYXJnZXQpLmRhdGEobixlKSksdCYmKGUuX2FjdGl2ZVRyaWdnZXJbXCJmb2N1c291dFwiPT09dC50eXBlP0FlOkllXT0hMSksZS5faXNXaXRoQWN0aXZlVHJpZ2dlcigpfHwoY2xlYXJUaW1lb3V0KGUuX3RpbWVvdXQpLGUuX2hvdmVyU3RhdGU9cGUsZS5jb25maWcuZGVsYXkmJmUuY29uZmlnLmRlbGF5LmhpZGU/ZS5fdGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5faG92ZXJTdGF0ZT09PXBlJiZlLmhpZGUoKX0sZS5jb25maWcuZGVsYXkuaGlkZSk6ZS5oaWRlKCkpfSx0Ll9pc1dpdGhBY3RpdmVUcmlnZ2VyPWZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMuX2FjdGl2ZVRyaWdnZXIpaWYodGhpcy5fYWN0aXZlVHJpZ2dlclt0XSlyZXR1cm4hMDtyZXR1cm4hMX0sdC5fZ2V0Q29uZmlnPWZ1bmN0aW9uKHQpe3JldHVyblwibnVtYmVyXCI9PXR5cGVvZih0PWgoe30sdGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0LG9lKHRoaXMuZWxlbWVudCkuZGF0YSgpLHQpKS5kZWxheSYmKHQuZGVsYXk9e3Nob3c6dC5kZWxheSxoaWRlOnQuZGVsYXl9KSxcIm51bWJlclwiPT10eXBlb2YgdC50aXRsZSYmKHQudGl0bGU9dC50aXRsZS50b1N0cmluZygpKSxcIm51bWJlclwiPT10eXBlb2YgdC5jb250ZW50JiYodC5jb250ZW50PXQuY29udGVudC50b1N0cmluZygpKSxDbi50eXBlQ2hlY2tDb25maWcoYWUsdCx0aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHRUeXBlKSx0fSx0Ll9nZXREZWxlZ2F0ZUNvbmZpZz1mdW5jdGlvbigpe3ZhciB0PXt9O2lmKHRoaXMuY29uZmlnKWZvcih2YXIgZSBpbiB0aGlzLmNvbmZpZyl0aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHRbZV0hPT10aGlzLmNvbmZpZ1tlXSYmKHRbZV09dGhpcy5jb25maWdbZV0pO3JldHVybiB0fSx0Ll9jbGVhblRpcENsYXNzPWZ1bmN0aW9uKCl7dmFyIHQ9b2UodGhpcy5nZXRUaXBFbGVtZW50KCkpLGU9dC5hdHRyKFwiY2xhc3NcIikubWF0Y2goZmUpO251bGwhPT1lJiYwPGUubGVuZ3RoJiZ0LnJlbW92ZUNsYXNzKGUuam9pbihcIlwiKSl9LHQuX2hhbmRsZVBvcHBlclBsYWNlbWVudENoYW5nZT1mdW5jdGlvbih0KXt0aGlzLl9jbGVhblRpcENsYXNzKCksdGhpcy5hZGRBdHRhY2htZW50Q2xhc3ModGhpcy5fZ2V0QXR0YWNobWVudCh0LnBsYWNlbWVudCkpfSx0Ll9maXhUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXRUaXBFbGVtZW50KCksZT10aGlzLmNvbmZpZy5hbmltYXRpb247bnVsbD09PXQuZ2V0QXR0cmlidXRlKFwieC1wbGFjZW1lbnRcIikmJihvZSh0KS5yZW1vdmVDbGFzcyhFZSksdGhpcy5jb25maWcuYW5pbWF0aW9uPSExLHRoaXMuaGlkZSgpLHRoaXMuc2hvdygpLHRoaXMuY29uZmlnLmFuaW1hdGlvbj1lKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1vZSh0aGlzKS5kYXRhKGxlKSxlPVwib2JqZWN0XCI9PXR5cGVvZiBuJiZuO2lmKCh0fHwhL2Rpc3Bvc2V8aGlkZS8udGVzdChuKSkmJih0fHwodD1uZXcgaSh0aGlzLGUpLG9lKHRoaXMpLmRhdGEobGUsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBuKSl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRbbl0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytuKydcIicpO3Rbbl0oKX19KX0sbyhpLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V9fSx7a2V5OlwiTkFNRVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBhZX19LHtrZXk6XCJEQVRBX0tFWVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBsZX19LHtrZXk6XCJFdmVudFwiLGdldDpmdW5jdGlvbigpe3JldHVybiB2ZX19LHtrZXk6XCJFVkVOVF9LRVlcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaGV9fSx7a2V5OlwiRGVmYXVsdFR5cGVcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZGV9fV0pLGl9KCksb2UuZm5bYWVdPVNlLl9qUXVlcnlJbnRlcmZhY2Usb2UuZm5bYWVdLkNvbnN0cnVjdG9yPVNlLG9lLmZuW2FlXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG9lLmZuW2FlXT1jZSxTZS5falF1ZXJ5SW50ZXJmYWNlfSxTZSksT249KE5lPVwicG9wb3ZlclwiLGtlPVwiLlwiKyhPZT1cImJzLnBvcG92ZXJcIiksUGU9KHdlPWUpLmZuW05lXSxMZT1cImJzLXBvcG92ZXJcIixqZT1uZXcgUmVnRXhwKFwiKF58XFxcXHMpXCIrTGUrXCJcXFxcUytcIixcImdcIiksUmU9aCh7fSxObi5EZWZhdWx0LHtwbGFjZW1lbnQ6XCJyaWdodFwiLHRyaWdnZXI6XCJjbGlja1wiLGNvbnRlbnQ6XCJcIix0ZW1wbGF0ZTonPGRpdiBjbGFzcz1cInBvcG92ZXJcIiByb2xlPVwidG9vbHRpcFwiPjxkaXYgY2xhc3M9XCJhcnJvd1wiPjwvZGl2PjxoMyBjbGFzcz1cInBvcG92ZXItaGVhZGVyXCI+PC9oMz48ZGl2IGNsYXNzPVwicG9wb3Zlci1ib2R5XCI+PC9kaXY+PC9kaXY+J30pLEhlPWgoe30sTm4uRGVmYXVsdFR5cGUse2NvbnRlbnQ6XCIoc3RyaW5nfGVsZW1lbnR8ZnVuY3Rpb24pXCJ9KSxXZT1cImZhZGVcIix4ZT1cIi5wb3BvdmVyLWhlYWRlclwiLFVlPVwiLnBvcG92ZXItYm9keVwiLEtlPXtISURFOlwiaGlkZVwiK2tlLEhJRERFTjpcImhpZGRlblwiK2tlLFNIT1c6KE1lPVwic2hvd1wiKStrZSxTSE9XTjpcInNob3duXCIra2UsSU5TRVJURUQ6XCJpbnNlcnRlZFwiK2tlLENMSUNLOlwiY2xpY2tcIitrZSxGT0NVU0lOOlwiZm9jdXNpblwiK2tlLEZPQ1VTT1VUOlwiZm9jdXNvdXRcIitrZSxNT1VTRUVOVEVSOlwibW91c2VlbnRlclwiK2tlLE1PVVNFTEVBVkU6XCJtb3VzZWxlYXZlXCIra2V9LEZlPWZ1bmN0aW9uKHQpe3ZhciBlLG47ZnVuY3Rpb24gaSgpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31uPXQsKGU9aSkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobi5wcm90b3R5cGUpLChlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lKS5fX3Byb3RvX189bjt2YXIgcj1pLnByb3RvdHlwZTtyZXR1cm4gci5pc1dpdGhDb250ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VGl0bGUoKXx8dGhpcy5fZ2V0Q29udGVudCgpfSxyLmFkZEF0dGFjaG1lbnRDbGFzcz1mdW5jdGlvbih0KXt3ZSh0aGlzLmdldFRpcEVsZW1lbnQoKSkuYWRkQ2xhc3MoTGUrXCItXCIrdCl9LHIuZ2V0VGlwRWxlbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRpcD10aGlzLnRpcHx8d2UodGhpcy5jb25maWcudGVtcGxhdGUpWzBdLHRoaXMudGlwfSxyLnNldENvbnRlbnQ9ZnVuY3Rpb24oKXt2YXIgdD13ZSh0aGlzLmdldFRpcEVsZW1lbnQoKSk7dGhpcy5zZXRFbGVtZW50Q29udGVudCh0LmZpbmQoeGUpLHRoaXMuZ2V0VGl0bGUoKSk7dmFyIGU9dGhpcy5fZ2V0Q29udGVudCgpO1wiZnVuY3Rpb25cIj09dHlwZW9mIGUmJihlPWUuY2FsbCh0aGlzLmVsZW1lbnQpKSx0aGlzLnNldEVsZW1lbnRDb250ZW50KHQuZmluZChVZSksZSksdC5yZW1vdmVDbGFzcyhXZStcIiBcIitNZSl9LHIuX2dldENvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtY29udGVudFwiKXx8dGhpcy5jb25maWcuY29udGVudH0sci5fY2xlYW5UaXBDbGFzcz1mdW5jdGlvbigpe3ZhciB0PXdlKHRoaXMuZ2V0VGlwRWxlbWVudCgpKSxlPXQuYXR0cihcImNsYXNzXCIpLm1hdGNoKGplKTtudWxsIT09ZSYmMDxlLmxlbmd0aCYmdC5yZW1vdmVDbGFzcyhlLmpvaW4oXCJcIikpfSxpLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXdlKHRoaXMpLmRhdGEoT2UpLGU9XCJvYmplY3RcIj09dHlwZW9mIG4/bjpudWxsO2lmKCh0fHwhL2Rlc3Ryb3l8aGlkZS8udGVzdChuKSkmJih0fHwodD1uZXcgaSh0aGlzLGUpLHdlKHRoaXMpLmRhdGEoT2UsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBuKSl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRbbl0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytuKydcIicpO3Rbbl0oKX19KX0sbyhpLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUmV9fSx7a2V5OlwiTkFNRVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBOZX19LHtrZXk6XCJEQVRBX0tFWVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBPZX19LHtrZXk6XCJFdmVudFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBLZX19LHtrZXk6XCJFVkVOVF9LRVlcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4ga2V9fSx7a2V5OlwiRGVmYXVsdFR5cGVcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGV9fV0pLGl9KE5uKSx3ZS5mbltOZV09RmUuX2pRdWVyeUludGVyZmFjZSx3ZS5mbltOZV0uQ29uc3RydWN0b3I9RmUsd2UuZm5bTmVdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gd2UuZm5bTmVdPVBlLEZlLl9qUXVlcnlJbnRlcmZhY2V9LEZlKSxrbj0oUWU9XCJzY3JvbGxzcHlcIixZZT1cIi5cIisoQmU9XCJicy5zY3JvbGxzcHlcIiksR2U9KFZlPWUpLmZuW1FlXSxxZT17b2Zmc2V0OjEwLG1ldGhvZDpcImF1dG9cIix0YXJnZXQ6XCJcIn0semU9e29mZnNldDpcIm51bWJlclwiLG1ldGhvZDpcInN0cmluZ1wiLHRhcmdldDpcIihzdHJpbmd8ZWxlbWVudClcIn0sWGU9e0FDVElWQVRFOlwiYWN0aXZhdGVcIitZZSxTQ1JPTEw6XCJzY3JvbGxcIitZZSxMT0FEX0RBVEFfQVBJOlwibG9hZFwiK1llK1wiLmRhdGEtYXBpXCJ9LEplPVwiZHJvcGRvd24taXRlbVwiLFplPVwiYWN0aXZlXCIsJGU9e0RBVEFfU1BZOidbZGF0YS1zcHk9XCJzY3JvbGxcIl0nLEFDVElWRTpcIi5hY3RpdmVcIixOQVZfTElTVF9HUk9VUDpcIi5uYXYsIC5saXN0LWdyb3VwXCIsTkFWX0xJTktTOlwiLm5hdi1saW5rXCIsTkFWX0lURU1TOlwiLm5hdi1pdGVtXCIsTElTVF9JVEVNUzpcIi5saXN0LWdyb3VwLWl0ZW1cIixEUk9QRE9XTjpcIi5kcm9wZG93blwiLERST1BET1dOX0lURU1TOlwiLmRyb3Bkb3duLWl0ZW1cIixEUk9QRE9XTl9UT0dHTEU6XCIuZHJvcGRvd24tdG9nZ2xlXCJ9LHRuPVwib2Zmc2V0XCIsZW49XCJwb3NpdGlvblwiLG5uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0LGUpe3ZhciBuPXRoaXM7dGhpcy5fZWxlbWVudD10LHRoaXMuX3Njcm9sbEVsZW1lbnQ9XCJCT0RZXCI9PT10LnRhZ05hbWU/d2luZG93OnQsdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl9zZWxlY3Rvcj10aGlzLl9jb25maWcudGFyZ2V0K1wiIFwiKyRlLk5BVl9MSU5LUytcIixcIit0aGlzLl9jb25maWcudGFyZ2V0K1wiIFwiKyRlLkxJU1RfSVRFTVMrXCIsXCIrdGhpcy5fY29uZmlnLnRhcmdldCtcIiBcIiskZS5EUk9QRE9XTl9JVEVNUyx0aGlzLl9vZmZzZXRzPVtdLHRoaXMuX3RhcmdldHM9W10sdGhpcy5fYWN0aXZlVGFyZ2V0PW51bGwsdGhpcy5fc2Nyb2xsSGVpZ2h0PTAsVmUodGhpcy5fc2Nyb2xsRWxlbWVudCkub24oWGUuU0NST0xMLGZ1bmN0aW9uKHQpe3JldHVybiBuLl9wcm9jZXNzKHQpfSksdGhpcy5yZWZyZXNoKCksdGhpcy5fcHJvY2VzcygpfXZhciB0PW4ucHJvdG90eXBlO3JldHVybiB0LnJlZnJlc2g9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5fc2Nyb2xsRWxlbWVudD09PXRoaXMuX3Njcm9sbEVsZW1lbnQud2luZG93P3RuOmVuLHI9XCJhdXRvXCI9PT10aGlzLl9jb25maWcubWV0aG9kP3Q6dGhpcy5fY29uZmlnLm1ldGhvZCxzPXI9PT1lbj90aGlzLl9nZXRTY3JvbGxUb3AoKTowO3RoaXMuX29mZnNldHM9W10sdGhpcy5fdGFyZ2V0cz1bXSx0aGlzLl9zY3JvbGxIZWlnaHQ9dGhpcy5fZ2V0U2Nyb2xsSGVpZ2h0KCksVmUubWFrZUFycmF5KFZlKHRoaXMuX3NlbGVjdG9yKSkubWFwKGZ1bmN0aW9uKHQpe3ZhciBlLG49Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0KTtpZihuJiYoZT1WZShuKVswXSksZSl7dmFyIGk9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihpLndpZHRofHxpLmhlaWdodClyZXR1cm5bVmUoZSlbcl0oKS50b3ArcyxuXX1yZXR1cm4gbnVsbH0pLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdH0pLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXS1lWzBdfSkuZm9yRWFjaChmdW5jdGlvbih0KXtlLl9vZmZzZXRzLnB1c2godFswXSksZS5fdGFyZ2V0cy5wdXNoKHRbMV0pfSl9LHQuZGlzcG9zZT1mdW5jdGlvbigpe1ZlLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxCZSksVmUodGhpcy5fc2Nyb2xsRWxlbWVudCkub2ZmKFllKSx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5fc2Nyb2xsRWxlbWVudD1udWxsLHRoaXMuX2NvbmZpZz1udWxsLHRoaXMuX3NlbGVjdG9yPW51bGwsdGhpcy5fb2Zmc2V0cz1udWxsLHRoaXMuX3RhcmdldHM9bnVsbCx0aGlzLl9hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLl9zY3JvbGxIZWlnaHQ9bnVsbH0sdC5fZ2V0Q29uZmlnPWZ1bmN0aW9uKHQpe2lmKFwic3RyaW5nXCIhPXR5cGVvZih0PWgoe30scWUsdCkpLnRhcmdldCl7dmFyIGU9VmUodC50YXJnZXQpLmF0dHIoXCJpZFwiKTtlfHwoZT1Dbi5nZXRVSUQoUWUpLFZlKHQudGFyZ2V0KS5hdHRyKFwiaWRcIixlKSksdC50YXJnZXQ9XCIjXCIrZX1yZXR1cm4gQ24udHlwZUNoZWNrQ29uZmlnKFFlLHQsemUpLHR9LHQuX2dldFNjcm9sbFRvcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zY3JvbGxFbGVtZW50PT09d2luZG93P3RoaXMuX3Njcm9sbEVsZW1lbnQucGFnZVlPZmZzZXQ6dGhpcy5fc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3B9LHQuX2dldFNjcm9sbEhlaWdodD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zY3JvbGxFbGVtZW50LnNjcm9sbEhlaWdodHx8TWF0aC5tYXgoZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCl9LHQuX2dldE9mZnNldEhlaWdodD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zY3JvbGxFbGVtZW50PT09d2luZG93P3dpbmRvdy5pbm5lckhlaWdodDp0aGlzLl9zY3JvbGxFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodH0sdC5fcHJvY2Vzcz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2dldFNjcm9sbFRvcCgpK3RoaXMuX2NvbmZpZy5vZmZzZXQsZT10aGlzLl9nZXRTY3JvbGxIZWlnaHQoKSxuPXRoaXMuX2NvbmZpZy5vZmZzZXQrZS10aGlzLl9nZXRPZmZzZXRIZWlnaHQoKTtpZih0aGlzLl9zY3JvbGxIZWlnaHQhPT1lJiZ0aGlzLnJlZnJlc2goKSxuPD10KXt2YXIgaT10aGlzLl90YXJnZXRzW3RoaXMuX3RhcmdldHMubGVuZ3RoLTFdO3RoaXMuX2FjdGl2ZVRhcmdldCE9PWkmJnRoaXMuX2FjdGl2YXRlKGkpfWVsc2V7aWYodGhpcy5fYWN0aXZlVGFyZ2V0JiZ0PHRoaXMuX29mZnNldHNbMF0mJjA8dGhpcy5fb2Zmc2V0c1swXSlyZXR1cm4gdGhpcy5fYWN0aXZlVGFyZ2V0PW51bGwsdm9pZCB0aGlzLl9jbGVhcigpO2Zvcih2YXIgcj10aGlzLl9vZmZzZXRzLmxlbmd0aDtyLS07KXt0aGlzLl9hY3RpdmVUYXJnZXQhPT10aGlzLl90YXJnZXRzW3JdJiZ0Pj10aGlzLl9vZmZzZXRzW3JdJiYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRoaXMuX29mZnNldHNbcisxXXx8dDx0aGlzLl9vZmZzZXRzW3IrMV0pJiZ0aGlzLl9hY3RpdmF0ZSh0aGlzLl90YXJnZXRzW3JdKX19fSx0Ll9hY3RpdmF0ZT1mdW5jdGlvbihlKXt0aGlzLl9hY3RpdmVUYXJnZXQ9ZSx0aGlzLl9jbGVhcigpO3ZhciB0PXRoaXMuX3NlbGVjdG9yLnNwbGl0KFwiLFwiKTt0PXQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0KydbZGF0YS10YXJnZXQ9XCInK2UrJ1wiXSwnK3QrJ1tocmVmPVwiJytlKydcIl0nfSk7dmFyIG49VmUodC5qb2luKFwiLFwiKSk7bi5oYXNDbGFzcyhKZSk/KG4uY2xvc2VzdCgkZS5EUk9QRE9XTikuZmluZCgkZS5EUk9QRE9XTl9UT0dHTEUpLmFkZENsYXNzKFplKSxuLmFkZENsYXNzKFplKSk6KG4uYWRkQ2xhc3MoWmUpLG4ucGFyZW50cygkZS5OQVZfTElTVF9HUk9VUCkucHJldigkZS5OQVZfTElOS1MrXCIsIFwiKyRlLkxJU1RfSVRFTVMpLmFkZENsYXNzKFplKSxuLnBhcmVudHMoJGUuTkFWX0xJU1RfR1JPVVApLnByZXYoJGUuTkFWX0lURU1TKS5jaGlsZHJlbigkZS5OQVZfTElOS1MpLmFkZENsYXNzKFplKSksVmUodGhpcy5fc2Nyb2xsRWxlbWVudCkudHJpZ2dlcihYZS5BQ1RJVkFURSx7cmVsYXRlZFRhcmdldDplfSl9LHQuX2NsZWFyPWZ1bmN0aW9uKCl7VmUodGhpcy5fc2VsZWN0b3IpLmZpbHRlcigkZS5BQ1RJVkUpLnJlbW92ZUNsYXNzKFplKX0sbi5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1WZSh0aGlzKS5kYXRhKEJlKTtpZih0fHwodD1uZXcgbih0aGlzLFwib2JqZWN0XCI9PXR5cGVvZiBlJiZlKSxWZSh0aGlzKS5kYXRhKEJlLHQpKSxcInN0cmluZ1wiPT10eXBlb2YgZSl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRbZV0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytlKydcIicpO3RbZV0oKX19KX0sbyhuLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcWV9fV0pLG59KCksVmUod2luZG93KS5vbihYZS5MT0FEX0RBVEFfQVBJLGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVZlLm1ha2VBcnJheShWZSgkZS5EQVRBX1NQWSkpLGU9dC5sZW5ndGg7ZS0tOyl7dmFyIG49VmUodFtlXSk7bm4uX2pRdWVyeUludGVyZmFjZS5jYWxsKG4sbi5kYXRhKCkpfX0pLFZlLmZuW1FlXT1ubi5falF1ZXJ5SW50ZXJmYWNlLFZlLmZuW1FlXS5Db25zdHJ1Y3Rvcj1ubixWZS5mbltRZV0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBWZS5mbltRZV09R2Usbm4uX2pRdWVyeUludGVyZmFjZX0sbm4pLFBuPShvbj1cIi5cIisoc249XCJicy50YWJcIiksYW49KHJuPWUpLmZuLnRhYixsbj17SElERTpcImhpZGVcIitvbixISURERU46XCJoaWRkZW5cIitvbixTSE9XOlwic2hvd1wiK29uLFNIT1dOOlwic2hvd25cIitvbixDTElDS19EQVRBX0FQSTpcImNsaWNrXCIrb24rXCIuZGF0YS1hcGlcIn0saG49XCJkcm9wZG93bi1tZW51XCIsY249XCJhY3RpdmVcIix1bj1cImRpc2FibGVkXCIsZm49XCJmYWRlXCIsZG49XCJzaG93XCIsX249XCIuZHJvcGRvd25cIixnbj1cIi5uYXYsIC5saXN0LWdyb3VwXCIsbW49XCIuYWN0aXZlXCIscG49XCI+IGxpID4gLmFjdGl2ZVwiLHZuPSdbZGF0YS10b2dnbGU9XCJ0YWJcIl0sIFtkYXRhLXRvZ2dsZT1cInBpbGxcIl0sIFtkYXRhLXRvZ2dsZT1cImxpc3RcIl0nLEVuPVwiLmRyb3Bkb3duLXRvZ2dsZVwiLHluPVwiPiAuZHJvcGRvd24tbWVudSAuYWN0aXZlXCIsVG49ZnVuY3Rpb24oKXtmdW5jdGlvbiBpKHQpe3RoaXMuX2VsZW1lbnQ9dH12YXIgdD1pLnByb3RvdHlwZTtyZXR1cm4gdC5zaG93PWZ1bmN0aW9uKCl7dmFyIG49dGhpcztpZighKHRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZSYmdGhpcy5fZWxlbWVudC5wYXJlbnROb2RlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJnJuKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKGNuKXx8cm4odGhpcy5fZWxlbWVudCkuaGFzQ2xhc3ModW4pKSl7dmFyIHQsaSxlPXJuKHRoaXMuX2VsZW1lbnQpLmNsb3Nlc3QoZ24pWzBdLHI9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KTtpZihlKXt2YXIgcz1cIlVMXCI9PT1lLm5vZGVOYW1lP3BuOm1uO2k9KGk9cm4ubWFrZUFycmF5KHJuKGUpLmZpbmQocykpKVtpLmxlbmd0aC0xXX12YXIgbz1ybi5FdmVudChsbi5ISURFLHtyZWxhdGVkVGFyZ2V0OnRoaXMuX2VsZW1lbnR9KSxhPXJuLkV2ZW50KGxuLlNIT1cse3JlbGF0ZWRUYXJnZXQ6aX0pO2lmKGkmJnJuKGkpLnRyaWdnZXIobykscm4odGhpcy5fZWxlbWVudCkudHJpZ2dlcihhKSwhYS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmIW8uaXNEZWZhdWx0UHJldmVudGVkKCkpe3ImJih0PXJuKHIpWzBdKSx0aGlzLl9hY3RpdmF0ZSh0aGlzLl9lbGVtZW50LGUpO3ZhciBsPWZ1bmN0aW9uKCl7dmFyIHQ9cm4uRXZlbnQobG4uSElEREVOLHtyZWxhdGVkVGFyZ2V0Om4uX2VsZW1lbnR9KSxlPXJuLkV2ZW50KGxuLlNIT1dOLHtyZWxhdGVkVGFyZ2V0Oml9KTtybihpKS50cmlnZ2VyKHQpLHJuKG4uX2VsZW1lbnQpLnRyaWdnZXIoZSl9O3Q/dGhpcy5fYWN0aXZhdGUodCx0LnBhcmVudE5vZGUsbCk6bCgpfX19LHQuZGlzcG9zZT1mdW5jdGlvbigpe3JuLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxzbiksdGhpcy5fZWxlbWVudD1udWxsfSx0Ll9hY3RpdmF0ZT1mdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcyxyPShcIlVMXCI9PT1lLm5vZGVOYW1lP3JuKGUpLmZpbmQocG4pOnJuKGUpLmNoaWxkcmVuKG1uKSlbMF0scz1uJiZyJiZybihyKS5oYXNDbGFzcyhmbiksbz1mdW5jdGlvbigpe3JldHVybiBpLl90cmFuc2l0aW9uQ29tcGxldGUodCxyLG4pfTtpZihyJiZzKXt2YXIgYT1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudChyKTtybihyKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsbykuZW11bGF0ZVRyYW5zaXRpb25FbmQoYSl9ZWxzZSBvKCl9LHQuX3RyYW5zaXRpb25Db21wbGV0ZT1mdW5jdGlvbih0LGUsbil7aWYoZSl7cm4oZSkucmVtb3ZlQ2xhc3MoZG4rXCIgXCIrY24pO3ZhciBpPXJuKGUucGFyZW50Tm9kZSkuZmluZCh5bilbMF07aSYmcm4oaSkucmVtb3ZlQ2xhc3MoY24pLFwidGFiXCI9PT1lLmdldEF0dHJpYnV0ZShcInJvbGVcIikmJmUuc2V0QXR0cmlidXRlKFwiYXJpYS1zZWxlY3RlZFwiLCExKX1pZihybih0KS5hZGRDbGFzcyhjbiksXCJ0YWJcIj09PXQuZ2V0QXR0cmlidXRlKFwicm9sZVwiKSYmdC5zZXRBdHRyaWJ1dGUoXCJhcmlhLXNlbGVjdGVkXCIsITApLENuLnJlZmxvdyh0KSxybih0KS5hZGRDbGFzcyhkbiksdC5wYXJlbnROb2RlJiZybih0LnBhcmVudE5vZGUpLmhhc0NsYXNzKGhuKSl7dmFyIHI9cm4odCkuY2xvc2VzdChfbilbMF07ciYmcm4ocikuZmluZChFbikuYWRkQ2xhc3MoY24pLHQuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCEwKX1uJiZuKCl9LGkuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9cm4odGhpcyksZT10LmRhdGEoc24pO2lmKGV8fChlPW5ldyBpKHRoaXMpLHQuZGF0YShzbixlKSksXCJzdHJpbmdcIj09dHlwZW9mIG4pe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBlW25dKXRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG1ldGhvZCBuYW1lZCBcIicrbisnXCInKTtlW25dKCl9fSl9LG8oaSxudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19XSksaX0oKSxybihkb2N1bWVudCkub24obG4uQ0xJQ0tfREFUQV9BUEksdm4sZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLFRuLl9qUXVlcnlJbnRlcmZhY2UuY2FsbChybih0aGlzKSxcInNob3dcIil9KSxybi5mbi50YWI9VG4uX2pRdWVyeUludGVyZmFjZSxybi5mbi50YWIuQ29uc3RydWN0b3I9VG4scm4uZm4udGFiLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gcm4uZm4udGFiPWFuLFRuLl9qUXVlcnlJbnRlcmZhY2V9LFRuKTshZnVuY3Rpb24odCl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5LiBqUXVlcnkgbXVzdCBiZSBpbmNsdWRlZCBiZWZvcmUgQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdC5cIik7dmFyIGU9dC5mbi5qcXVlcnkuc3BsaXQoXCIgXCIpWzBdLnNwbGl0KFwiLlwiKTtpZihlWzBdPDImJmVbMV08OXx8MT09PWVbMF0mJjk9PT1lWzFdJiZlWzJdPDF8fDQ8PWVbMF0pdGhyb3cgbmV3IEVycm9yKFwiQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBhdCBsZWFzdCBqUXVlcnkgdjEuOS4xIGJ1dCBsZXNzIHRoYW4gdjQuMC4wXCIpfShlKSx0LlV0aWw9Q24sdC5BbGVydD1Jbix0LkJ1dHRvbj1Bbix0LkNhcm91c2VsPURuLHQuQ29sbGFwc2U9Ym4sdC5Ecm9wZG93bj1Tbix0Lk1vZGFsPXduLHQuUG9wb3Zlcj1Pbix0LlNjcm9sbHNweT1rbix0LlRhYj1Qbix0LlRvb2x0aXA9Tm4sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJvb3RzdHJhcC5taW4uanMubWFwIiwiLy8gaHR0cHM6Ly9kM2pzLm9yZyBWZXJzaW9uIDUuNS4wLiBDb3B5cmlnaHQgMjAxOCBNaWtlIEJvc3RvY2suXG4oZnVuY3Rpb24odCxuKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9uKGV4cG9ydHMpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW1wiZXhwb3J0c1wiXSxuKTpuKHQuZDM9dC5kM3x8e30pfSkodGhpcyxmdW5jdGlvbih0KXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBuKHQsbil7cmV0dXJuIHQ8bj8tMTp0Pm4/MTp0Pj1uPzA6TmFOfWZ1bmN0aW9uIGUodCl7cmV0dXJuIDE9PT10Lmxlbmd0aCYmKHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7cmV0dXJuIG4odChlKSxyKX19KHQpKSx7bGVmdDpmdW5jdGlvbihuLGUscixpKXtmb3IobnVsbD09ciYmKHI9MCksbnVsbD09aSYmKGk9bi5sZW5ndGgpO3I8aTspe3ZhciBvPXIraT4+PjE7dChuW29dLGUpPDA/cj1vKzE6aT1vfXJldHVybiByfSxyaWdodDpmdW5jdGlvbihuLGUscixpKXtmb3IobnVsbD09ciYmKHI9MCksbnVsbD09aSYmKGk9bi5sZW5ndGgpO3I8aTspe3ZhciBvPXIraT4+PjE7dChuW29dLGUpPjA/aT1vOnI9bysxfXJldHVybiByfX19ZnVuY3Rpb24gcih0LG4pe3JldHVyblt0LG5dfWZ1bmN0aW9uIGkodCl7cmV0dXJuIG51bGw9PT10P05hTjordH1mdW5jdGlvbiBvKHQsbil7dmFyIGUscixvPXQubGVuZ3RoLGE9MCx1PS0xLGY9MCxjPTA7aWYobnVsbD09bilmb3IoOysrdTxvOylpc05hTihlPWkodFt1XSkpfHwoYys9KHI9ZS1mKSooZS0oZis9ci8rK2EpKSk7ZWxzZSBmb3IoOysrdTxvOylpc05hTihlPWkobih0W3VdLHUsdCkpKXx8KGMrPShyPWUtZikqKGUtKGYrPXIvKythKSkpO2lmKGE+MSlyZXR1cm4gYy8oYS0xKX1mdW5jdGlvbiBhKHQsbil7dmFyIGU9byh0LG4pO3JldHVybiBlP01hdGguc3FydChlKTplfWZ1bmN0aW9uIHUodCxuKXt2YXIgZSxyLGksbz10Lmxlbmd0aCxhPS0xO2lmKG51bGw9PW4pe2Zvcig7KythPG87KWlmKG51bGwhPShlPXRbYV0pJiZlPj1lKWZvcihyPWk9ZTsrK2E8bzspbnVsbCE9KGU9dFthXSkmJihyPmUmJihyPWUpLGk8ZSYmKGk9ZSkpfWVsc2UgZm9yKDsrK2E8bzspaWYobnVsbCE9KGU9bih0W2FdLGEsdCkpJiZlPj1lKWZvcihyPWk9ZTsrK2E8bzspbnVsbCE9KGU9bih0W2FdLGEsdCkpJiYocj5lJiYocj1lKSxpPGUmJihpPWUpKTtyZXR1cm5bcixpXX1mdW5jdGlvbiBmKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBjKHQpe3JldHVybiB0fWZ1bmN0aW9uIHModCxuLGUpe3Q9K3Qsbj0rbixlPShpPWFyZ3VtZW50cy5sZW5ndGgpPDI/KG49dCx0PTAsMSk6aTwzPzE6K2U7Zm9yKHZhciByPS0xLGk9MHxNYXRoLm1heCgwLE1hdGguY2VpbCgobi10KS9lKSksbz1uZXcgQXJyYXkoaSk7KytyPGk7KW9bcl09dCtyKmU7cmV0dXJuIG99ZnVuY3Rpb24gbCh0LG4sZSl7dmFyIHIsaSxvLGEsdT0tMTtpZihuPStuLHQ9K3QsZT0rZSx0PT09biYmZT4wKXJldHVyblt0XTtpZigocj1uPHQpJiYoaT10LHQ9bixuPWkpLDA9PT0oYT1oKHQsbixlKSl8fCFpc0Zpbml0ZShhKSlyZXR1cm5bXTtpZihhPjApZm9yKHQ9TWF0aC5jZWlsKHQvYSksbj1NYXRoLmZsb29yKG4vYSksbz1uZXcgQXJyYXkoaT1NYXRoLmNlaWwobi10KzEpKTsrK3U8aTspb1t1XT0odCt1KSphO2Vsc2UgZm9yKHQ9TWF0aC5mbG9vcih0KmEpLG49TWF0aC5jZWlsKG4qYSksbz1uZXcgQXJyYXkoaT1NYXRoLmNlaWwodC1uKzEpKTsrK3U8aTspb1t1XT0odC11KS9hO3JldHVybiByJiZvLnJldmVyc2UoKSxvfWZ1bmN0aW9uIGgodCxuLGUpe3ZhciByPShuLXQpL01hdGgubWF4KDAsZSksaT1NYXRoLmZsb29yKE1hdGgubG9nKHIpL01hdGguTE4xMCksbz1yL01hdGgucG93KDEwLGkpO3JldHVybiBpPj0wPyhvPj1pcz8xMDpvPj1vcz81Om8+PWFzPzI6MSkqTWF0aC5wb3coMTAsaSk6LU1hdGgucG93KDEwLC1pKS8obz49aXM/MTA6bz49b3M/NTpvPj1hcz8yOjEpfWZ1bmN0aW9uIGQodCxuLGUpe3ZhciByPU1hdGguYWJzKG4tdCkvTWF0aC5tYXgoMCxlKSxpPU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2cocikvTWF0aC5MTjEwKSksbz1yL2k7cmV0dXJuIG8+PWlzP2kqPTEwOm8+PW9zP2kqPTU6bz49YXMmJihpKj0yKSxuPHQ/LWk6aX1mdW5jdGlvbiBwKHQpe3JldHVybiBNYXRoLmNlaWwoTWF0aC5sb2codC5sZW5ndGgpL01hdGguTE4yKSsxfWZ1bmN0aW9uIHYodCxuLGUpe2lmKG51bGw9PWUmJihlPWkpLHI9dC5sZW5ndGgpe2lmKChuPStuKTw9MHx8cjwyKXJldHVybitlKHRbMF0sMCx0KTtpZihuPj0xKXJldHVybitlKHRbci0xXSxyLTEsdCk7dmFyIHIsbz0oci0xKSpuLGE9TWF0aC5mbG9vcihvKSx1PStlKHRbYV0sYSx0KTtyZXR1cm4gdSsoK2UodFthKzFdLGErMSx0KS11KSooby1hKX19ZnVuY3Rpb24gZyh0LG4pe3ZhciBlLHIsaT10Lmxlbmd0aCxvPS0xO2lmKG51bGw9PW4pe2Zvcig7KytvPGk7KWlmKG51bGwhPShlPXRbb10pJiZlPj1lKWZvcihyPWU7KytvPGk7KW51bGwhPShlPXRbb10pJiZlPnImJihyPWUpfWVsc2UgZm9yKDsrK288aTspaWYobnVsbCE9KGU9bih0W29dLG8sdCkpJiZlPj1lKWZvcihyPWU7KytvPGk7KW51bGwhPShlPW4odFtvXSxvLHQpKSYmZT5yJiYocj1lKTtyZXR1cm4gcn1mdW5jdGlvbiB5KHQpe2Zvcih2YXIgbixlLHIsaT10Lmxlbmd0aCxvPS0xLGE9MDsrK288aTspYSs9dFtvXS5sZW5ndGg7Zm9yKGU9bmV3IEFycmF5KGEpOy0taT49MDspZm9yKG49KHI9dFtpXSkubGVuZ3RoOy0tbj49MDspZVstLWFdPXJbbl07cmV0dXJuIGV9ZnVuY3Rpb24gXyh0LG4pe3ZhciBlLHIsaT10Lmxlbmd0aCxvPS0xO2lmKG51bGw9PW4pe2Zvcig7KytvPGk7KWlmKG51bGwhPShlPXRbb10pJiZlPj1lKWZvcihyPWU7KytvPGk7KW51bGwhPShlPXRbb10pJiZyPmUmJihyPWUpfWVsc2UgZm9yKDsrK288aTspaWYobnVsbCE9KGU9bih0W29dLG8sdCkpJiZlPj1lKWZvcihyPWU7KytvPGk7KW51bGwhPShlPW4odFtvXSxvLHQpKSYmcj5lJiYocj1lKTtyZXR1cm4gcn1mdW5jdGlvbiBiKHQpe2lmKCEoaT10Lmxlbmd0aCkpcmV0dXJuW107Zm9yKHZhciBuPS0xLGU9Xyh0LG0pLHI9bmV3IEFycmF5KGUpOysrbjxlOylmb3IodmFyIGksbz0tMSxhPXJbbl09bmV3IEFycmF5KGkpOysrbzxpOylhW29dPXRbb11bbl07cmV0dXJuIHJ9ZnVuY3Rpb24gbSh0KXtyZXR1cm4gdC5sZW5ndGh9ZnVuY3Rpb24geCh0KXtyZXR1cm4gdH1mdW5jdGlvbiB3KHQpe3JldHVyblwidHJhbnNsYXRlKFwiKyh0Ky41KStcIiwwKVwifWZ1bmN0aW9uIE0odCl7cmV0dXJuXCJ0cmFuc2xhdGUoMCxcIisodCsuNSkrXCIpXCJ9ZnVuY3Rpb24gQSgpe3JldHVybiF0aGlzLl9fYXhpc31mdW5jdGlvbiBUKHQsbil7ZnVuY3Rpb24gZShlKXt2YXIgaD1udWxsPT1pP24udGlja3M/bi50aWNrcy5hcHBseShuLHIpOm4uZG9tYWluKCk6aSxkPW51bGw9PW8/bi50aWNrRm9ybWF0P24udGlja0Zvcm1hdC5hcHBseShuLHIpOng6byxwPU1hdGgubWF4KGEsMCkrZix2PW4ucmFuZ2UoKSxnPSt2WzBdKy41LHk9K3Zbdi5sZW5ndGgtMV0rLjUsXz0obi5iYW5kd2lkdGg/ZnVuY3Rpb24odCl7dmFyIG49TWF0aC5tYXgoMCx0LmJhbmR3aWR0aCgpLTEpLzI7cmV0dXJuIHQucm91bmQoKSYmKG49TWF0aC5yb3VuZChuKSksZnVuY3Rpb24oZSl7cmV0dXJuK3QoZSkrbn19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4rdChuKX19KShuLmNvcHkoKSksYj1lLnNlbGVjdGlvbj9lLnNlbGVjdGlvbigpOmUsbT1iLnNlbGVjdEFsbChcIi5kb21haW5cIikuZGF0YShbbnVsbF0pLHc9Yi5zZWxlY3RBbGwoXCIudGlja1wiKS5kYXRhKGgsbikub3JkZXIoKSxNPXcuZXhpdCgpLFQ9dy5lbnRlcigpLmFwcGVuZChcImdcIikuYXR0cihcImNsYXNzXCIsXCJ0aWNrXCIpLE49dy5zZWxlY3QoXCJsaW5lXCIpLFM9dy5zZWxlY3QoXCJ0ZXh0XCIpO209bS5tZXJnZShtLmVudGVyKCkuaW5zZXJ0KFwicGF0aFwiLFwiLnRpY2tcIikuYXR0cihcImNsYXNzXCIsXCJkb21haW5cIikuYXR0cihcInN0cm9rZVwiLFwiIzAwMFwiKSksdz13Lm1lcmdlKFQpLE49Ti5tZXJnZShULmFwcGVuZChcImxpbmVcIikuYXR0cihcInN0cm9rZVwiLFwiIzAwMFwiKS5hdHRyKHMrXCIyXCIsYyphKSksUz1TLm1lcmdlKFQuYXBwZW5kKFwidGV4dFwiKS5hdHRyKFwiZmlsbFwiLFwiIzAwMFwiKS5hdHRyKHMsYypwKS5hdHRyKFwiZHlcIix0PT09ZnM/XCIwZW1cIjp0PT09c3M/XCIwLjcxZW1cIjpcIjAuMzJlbVwiKSksZSE9PWImJihtPW0udHJhbnNpdGlvbihlKSx3PXcudHJhbnNpdGlvbihlKSxOPU4udHJhbnNpdGlvbihlKSxTPVMudHJhbnNpdGlvbihlKSxNPU0udHJhbnNpdGlvbihlKS5hdHRyKFwib3BhY2l0eVwiLGhzKS5hdHRyKFwidHJhbnNmb3JtXCIsZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9Xyh0KSk/bCh0KTp0aGlzLmdldEF0dHJpYnV0ZShcInRyYW5zZm9ybVwiKX0pLFQuYXR0cihcIm9wYWNpdHlcIixocykuYXR0cihcInRyYW5zZm9ybVwiLGZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMucGFyZW50Tm9kZS5fX2F4aXM7cmV0dXJuIGwobiYmaXNGaW5pdGUobj1uKHQpKT9uOl8odCkpfSkpLE0ucmVtb3ZlKCksbS5hdHRyKFwiZFwiLHQ9PT1sc3x8dD09Y3M/XCJNXCIrYyp1K1wiLFwiK2crXCJIMC41VlwiK3krXCJIXCIrYyp1OlwiTVwiK2crXCIsXCIrYyp1K1wiVjAuNUhcIit5K1wiVlwiK2MqdSksdy5hdHRyKFwib3BhY2l0eVwiLDEpLmF0dHIoXCJ0cmFuc2Zvcm1cIixmdW5jdGlvbih0KXtyZXR1cm4gbChfKHQpKX0pLE4uYXR0cihzK1wiMlwiLGMqYSksUy5hdHRyKHMsYypwKS50ZXh0KGQpLGIuZmlsdGVyKEEpLmF0dHIoXCJmaWxsXCIsXCJub25lXCIpLmF0dHIoXCJmb250LXNpemVcIiwxMCkuYXR0cihcImZvbnQtZmFtaWx5XCIsXCJzYW5zLXNlcmlmXCIpLmF0dHIoXCJ0ZXh0LWFuY2hvclwiLHQ9PT1jcz9cInN0YXJ0XCI6dD09PWxzP1wiZW5kXCI6XCJtaWRkbGVcIiksYi5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5fX2F4aXM9X30pfXZhciByPVtdLGk9bnVsbCxvPW51bGwsYT02LHU9NixmPTMsYz10PT09ZnN8fHQ9PT1scz8tMToxLHM9dD09PWxzfHx0PT09Y3M/XCJ4XCI6XCJ5XCIsbD10PT09ZnN8fHQ9PT1zcz93Ok07cmV0dXJuIGUuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxlKTpufSxlLnRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHI9dXMuY2FsbChhcmd1bWVudHMpLGV9LGUudGlja0FyZ3VtZW50cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT10P1tdOnVzLmNhbGwodCksZSk6ci5zbGljZSgpfSxlLnRpY2tWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD9udWxsOnVzLmNhbGwodCksZSk6aSYmaS5zbGljZSgpfSxlLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89dCxlKTpvfSxlLnRpY2tTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXU9K3QsZSk6YX0sZS50aWNrU2l6ZUlubmVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSt0LGUpOmF9LGUudGlja1NpemVPdXRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0rdCxlKTp1fSxlLnRpY2tQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPSt0LGUpOmZ9LGV9ZnVuY3Rpb24gTigpe2Zvcih2YXIgdCxuPTAsZT1hcmd1bWVudHMubGVuZ3RoLHI9e307bjxlOysrbil7aWYoISh0PWFyZ3VtZW50c1tuXStcIlwiKXx8dCBpbiByKXRocm93IG5ldyBFcnJvcihcImlsbGVnYWwgdHlwZTogXCIrdCk7clt0XT1bXX1yZXR1cm4gbmV3IFMocil9ZnVuY3Rpb24gUyh0KXt0aGlzLl89dH1mdW5jdGlvbiBFKHQsbixlKXtmb3IodmFyIHI9MCxpPXQubGVuZ3RoO3I8aTsrK3IpaWYodFtyXS5uYW1lPT09bil7dFtyXT1kcyx0PXQuc2xpY2UoMCxyKS5jb25jYXQodC5zbGljZShyKzEpKTticmVha31yZXR1cm4gbnVsbCE9ZSYmdC5wdXNoKHtuYW1lOm4sdmFsdWU6ZX0pLHR9ZnVuY3Rpb24gayh0KXt2YXIgbj10Kz1cIlwiLGU9bi5pbmRleE9mKFwiOlwiKTtyZXR1cm4gZT49MCYmXCJ4bWxuc1wiIT09KG49dC5zbGljZSgwLGUpKSYmKHQ9dC5zbGljZShlKzEpKSx2cy5oYXNPd25Qcm9wZXJ0eShuKT97c3BhY2U6dnNbbl0sbG9jYWw6dH06dH1mdW5jdGlvbiBDKHQpe3ZhciBuPWsodCk7cmV0dXJuKG4ubG9jYWw/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlModC5zcGFjZSx0LmxvY2FsKX19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXRoaXMub3duZXJEb2N1bWVudCxlPXRoaXMubmFtZXNwYWNlVVJJO3JldHVybiBlPT09cHMmJm4uZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PXBzP24uY3JlYXRlRWxlbWVudCh0KTpuLmNyZWF0ZUVsZW1lbnROUyhlLHQpfX0pKG4pfWZ1bmN0aW9uIFAoKXt9ZnVuY3Rpb24geih0KXtyZXR1cm4gbnVsbD09dD9QOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3Rvcih0KX19ZnVuY3Rpb24gUigpe3JldHVybltdfWZ1bmN0aW9uIEwodCl7cmV0dXJuIG51bGw9PXQ/UjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwodCl9fWZ1bmN0aW9uIEQodCl7cmV0dXJuIG5ldyBBcnJheSh0Lmxlbmd0aCl9ZnVuY3Rpb24gVSh0LG4pe3RoaXMub3duZXJEb2N1bWVudD10Lm93bmVyRG9jdW1lbnQsdGhpcy5uYW1lc3BhY2VVUkk9dC5uYW1lc3BhY2VVUkksdGhpcy5fbmV4dD1udWxsLHRoaXMuX3BhcmVudD10LHRoaXMuX19kYXRhX189bn1mdW5jdGlvbiBxKHQsbixlLHIsaSxvKXtmb3IodmFyIGEsdT0wLGY9bi5sZW5ndGgsYz1vLmxlbmd0aDt1PGM7Kyt1KShhPW5bdV0pPyhhLl9fZGF0YV9fPW9bdV0sclt1XT1hKTplW3VdPW5ldyBVKHQsb1t1XSk7Zm9yKDt1PGY7Kyt1KShhPW5bdV0pJiYoaVt1XT1hKX1mdW5jdGlvbiBPKHQsbixlLHIsaSxvLGEpe3ZhciB1LGYsYyxzPXt9LGw9bi5sZW5ndGgsaD1vLmxlbmd0aCxkPW5ldyBBcnJheShsKTtmb3IodT0wO3U8bDsrK3UpKGY9blt1XSkmJihkW3VdPWM9bXMrYS5jYWxsKGYsZi5fX2RhdGFfXyx1LG4pLGMgaW4gcz9pW3VdPWY6c1tjXT1mKTtmb3IodT0wO3U8aDsrK3UpKGY9c1tjPW1zK2EuY2FsbCh0LG9bdV0sdSxvKV0pPyhyW3VdPWYsZi5fX2RhdGFfXz1vW3VdLHNbY109bnVsbCk6ZVt1XT1uZXcgVSh0LG9bdV0pO2Zvcih1PTA7dTxsOysrdSkoZj1uW3VdKSYmc1tkW3VdXT09PWYmJihpW3VdPWYpfWZ1bmN0aW9uIFkodCxuKXtyZXR1cm4gdDxuPy0xOnQ+bj8xOnQ+PW4/MDpOYU59ZnVuY3Rpb24gQih0KXtyZXR1cm4gdC5vd25lckRvY3VtZW50JiZ0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHQuZG9jdW1lbnQmJnR8fHQuZGVmYXVsdFZpZXd9ZnVuY3Rpb24gRih0LG4pe3JldHVybiB0LnN0eWxlLmdldFByb3BlcnR5VmFsdWUobil8fEIodCkuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpLmdldFByb3BlcnR5VmFsdWUobil9ZnVuY3Rpb24gSSh0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XFxzKy8pfWZ1bmN0aW9uIGoodCl7cmV0dXJuIHQuY2xhc3NMaXN0fHxuZXcgSCh0KX1mdW5jdGlvbiBIKHQpe3RoaXMuX25vZGU9dCx0aGlzLl9uYW1lcz1JKHQuZ2V0QXR0cmlidXRlKFwiY2xhc3NcIil8fFwiXCIpfWZ1bmN0aW9uIFgodCxuKXtmb3IodmFyIGU9aih0KSxyPS0xLGk9bi5sZW5ndGg7KytyPGk7KWUuYWRkKG5bcl0pfWZ1bmN0aW9uIEcodCxuKXtmb3IodmFyIGU9aih0KSxyPS0xLGk9bi5sZW5ndGg7KytyPGk7KWUucmVtb3ZlKG5bcl0pfWZ1bmN0aW9uIFYoKXt0aGlzLnRleHRDb250ZW50PVwiXCJ9ZnVuY3Rpb24gJCgpe3RoaXMuaW5uZXJIVE1MPVwiXCJ9ZnVuY3Rpb24gVygpe3RoaXMubmV4dFNpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGlzKX1mdW5jdGlvbiBaKCl7dGhpcy5wcmV2aW91c1NpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcyx0aGlzLnBhcmVudE5vZGUuZmlyc3RDaGlsZCl9ZnVuY3Rpb24gUSgpe3JldHVybiBudWxsfWZ1bmN0aW9uIEooKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX1mdW5jdGlvbiBLKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5jbG9uZU5vZGUoITEpLHRoaXMubmV4dFNpYmxpbmcpfWZ1bmN0aW9uIHR0KCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5jbG9uZU5vZGUoITApLHRoaXMubmV4dFNpYmxpbmcpfWZ1bmN0aW9uIG50KHQsbixlKXtyZXR1cm4gdD1ldCh0LG4sZSksZnVuY3Rpb24obil7dmFyIGU9bi5yZWxhdGVkVGFyZ2V0O2UmJihlPT09dGhpc3x8OCZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHRoaXMpKXx8dC5jYWxsKHRoaXMsbil9fWZ1bmN0aW9uIGV0KG4sZSxyKXtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIG89dC5ldmVudDt0LmV2ZW50PWk7dHJ5e24uY2FsbCh0aGlzLHRoaXMuX19kYXRhX18sZSxyKX1maW5hbGx5e3QuZXZlbnQ9b319fWZ1bmN0aW9uIHJ0KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXRoaXMuX19vbjtpZihuKXtmb3IodmFyIGUscj0wLGk9LTEsbz1uLmxlbmd0aDtyPG87KytyKWU9bltyXSx0LnR5cGUmJmUudHlwZSE9PXQudHlwZXx8ZS5uYW1lIT09dC5uYW1lP25bKytpXT1lOnRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLnR5cGUsZS5saXN0ZW5lcixlLmNhcHR1cmUpOysraT9uLmxlbmd0aD1pOmRlbGV0ZSB0aGlzLl9fb259fX1mdW5jdGlvbiBpdCh0LG4sZSl7dmFyIHI9eHMuaGFzT3duUHJvcGVydHkodC50eXBlKT9udDpldDtyZXR1cm4gZnVuY3Rpb24oaSxvLGEpe3ZhciB1LGY9dGhpcy5fX29uLGM9cihuLG8sYSk7aWYoZilmb3IodmFyIHM9MCxsPWYubGVuZ3RoO3M8bDsrK3MpaWYoKHU9ZltzXSkudHlwZT09PXQudHlwZSYmdS5uYW1lPT09dC5uYW1lKXJldHVybiB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIodS50eXBlLHUubGlzdGVuZXIsdS5jYXB0dXJlKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIodS50eXBlLHUubGlzdGVuZXI9Yyx1LmNhcHR1cmU9ZSksdm9pZCh1LnZhbHVlPW4pO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcih0LnR5cGUsYyxlKSx1PXt0eXBlOnQudHlwZSxuYW1lOnQubmFtZSx2YWx1ZTpuLGxpc3RlbmVyOmMsY2FwdHVyZTplfSxmP2YucHVzaCh1KTp0aGlzLl9fb249W3VdfX1mdW5jdGlvbiBvdChuLGUscixpKXt2YXIgbz10LmV2ZW50O24uc291cmNlRXZlbnQ9dC5ldmVudCx0LmV2ZW50PW47dHJ5e3JldHVybiBlLmFwcGx5KHIsaSl9ZmluYWxseXt0LmV2ZW50PW99fWZ1bmN0aW9uIGF0KHQsbixlKXt2YXIgcj1CKHQpLGk9ci5DdXN0b21FdmVudDtcImZ1bmN0aW9uXCI9PXR5cGVvZiBpP2k9bmV3IGkobixlKTooaT1yLmRvY3VtZW50LmNyZWF0ZUV2ZW50KFwiRXZlbnRcIiksZT8oaS5pbml0RXZlbnQobixlLmJ1YmJsZXMsZS5jYW5jZWxhYmxlKSxpLmRldGFpbD1lLmRldGFpbCk6aS5pbml0RXZlbnQobiwhMSwhMSkpLHQuZGlzcGF0Y2hFdmVudChpKX1mdW5jdGlvbiB1dCh0LG4pe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9bn1mdW5jdGlvbiBmdCgpe3JldHVybiBuZXcgdXQoW1tkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdXSx3cyl9ZnVuY3Rpb24gY3QodCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/bmV3IHV0KFtbZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0KV1dLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgdXQoW1t0XV0sd3MpfWZ1bmN0aW9uIHN0KCl7cmV0dXJuIG5ldyBsdH1mdW5jdGlvbiBsdCgpe3RoaXMuXz1cIkBcIisoKytNcykudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIGh0KCl7Zm9yKHZhciBuLGU9dC5ldmVudDtuPWUuc291cmNlRXZlbnQ7KWU9bjtyZXR1cm4gZX1mdW5jdGlvbiBkdCh0LG4pe3ZhciBlPXQub3duZXJTVkdFbGVtZW50fHx0O2lmKGUuY3JlYXRlU1ZHUG9pbnQpe3ZhciByPWUuY3JlYXRlU1ZHUG9pbnQoKTtyZXR1cm4gci54PW4uY2xpZW50WCxyLnk9bi5jbGllbnRZLHI9ci5tYXRyaXhUcmFuc2Zvcm0odC5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkpLFtyLngsci55XX12YXIgaT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybltuLmNsaWVudFgtaS5sZWZ0LXQuY2xpZW50TGVmdCxuLmNsaWVudFktaS50b3AtdC5jbGllbnRUb3BdfWZ1bmN0aW9uIHB0KHQpe3ZhciBuPWh0KCk7cmV0dXJuIG4uY2hhbmdlZFRvdWNoZXMmJihuPW4uY2hhbmdlZFRvdWNoZXNbMF0pLGR0KHQsbil9ZnVuY3Rpb24gdnQodCxuLGUpe2FyZ3VtZW50cy5sZW5ndGg8MyYmKGU9bixuPWh0KCkuY2hhbmdlZFRvdWNoZXMpO2Zvcih2YXIgcixpPTAsbz1uP24ubGVuZ3RoOjA7aTxvOysraSlpZigocj1uW2ldKS5pZGVudGlmaWVyPT09ZSlyZXR1cm4gZHQodCxyKTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBndCgpe3QuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24geXQoKXt0LmV2ZW50LnByZXZlbnREZWZhdWx0KCksdC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBfdCh0KXt2YXIgbj10LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxlPWN0KHQpLm9uKFwiZHJhZ3N0YXJ0LmRyYWdcIix5dCwhMCk7XCJvbnNlbGVjdHN0YXJ0XCJpbiBuP2Uub24oXCJzZWxlY3RzdGFydC5kcmFnXCIseXQsITApOihuLl9fbm9zZWxlY3Q9bi5zdHlsZS5Nb3pVc2VyU2VsZWN0LG4uc3R5bGUuTW96VXNlclNlbGVjdD1cIm5vbmVcIil9ZnVuY3Rpb24gYnQodCxuKXt2YXIgZT10LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxyPWN0KHQpLm9uKFwiZHJhZ3N0YXJ0LmRyYWdcIixudWxsKTtuJiYoci5vbihcImNsaWNrLmRyYWdcIix5dCwhMCksc2V0VGltZW91dChmdW5jdGlvbigpe3Iub24oXCJjbGljay5kcmFnXCIsbnVsbCl9LDApKSxcIm9uc2VsZWN0c3RhcnRcImluIGU/ci5vbihcInNlbGVjdHN0YXJ0LmRyYWdcIixudWxsKTooZS5zdHlsZS5Nb3pVc2VyU2VsZWN0PWUuX19ub3NlbGVjdCxkZWxldGUgZS5fX25vc2VsZWN0KX1mdW5jdGlvbiBtdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24geHQodCxuLGUscixpLG8sYSx1LGYsYyl7dGhpcy50YXJnZXQ9dCx0aGlzLnR5cGU9bix0aGlzLnN1YmplY3Q9ZSx0aGlzLmlkZW50aWZpZXI9cix0aGlzLmFjdGl2ZT1pLHRoaXMueD1vLHRoaXMueT1hLHRoaXMuZHg9dSx0aGlzLmR5PWYsdGhpcy5fPWN9ZnVuY3Rpb24gd3QoKXtyZXR1cm4hdC5ldmVudC5idXR0b259ZnVuY3Rpb24gTXQoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlfWZ1bmN0aW9uIEF0KG4pe3JldHVybiBudWxsPT1uP3t4OnQuZXZlbnQueCx5OnQuZXZlbnQueX06bn1mdW5jdGlvbiBUdCgpe3JldHVyblwib250b3VjaHN0YXJ0XCJpbiB0aGlzfWZ1bmN0aW9uIE50KHQsbixlKXt0LnByb3RvdHlwZT1uLnByb3RvdHlwZT1lLGUuY29uc3RydWN0b3I9dH1mdW5jdGlvbiBTdCh0LG4pe3ZhciBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUpO2Zvcih2YXIgciBpbiBuKWVbcl09bltyXTtyZXR1cm4gZX1mdW5jdGlvbiBFdCgpe31mdW5jdGlvbiBrdCh0KXt2YXIgbjtyZXR1cm4gdD0odCtcIlwiKS50cmltKCkudG9Mb3dlckNhc2UoKSwobj1Tcy5leGVjKHQpKT8obj1wYXJzZUludChuWzFdLDE2KSxuZXcgTHQobj4+OCYxNXxuPj40JjI0MCxuPj40JjE1fDI0MCZuLCgxNSZuKTw8NHwxNSZuLDEpKToobj1Fcy5leGVjKHQpKT9DdChwYXJzZUludChuWzFdLDE2KSk6KG49a3MuZXhlYyh0KSk/bmV3IEx0KG5bMV0sblsyXSxuWzNdLDEpOihuPUNzLmV4ZWModCkpP25ldyBMdCgyNTUqblsxXS8xMDAsMjU1Km5bMl0vMTAwLDI1NSpuWzNdLzEwMCwxKToobj1Qcy5leGVjKHQpKT9QdChuWzFdLG5bMl0sblszXSxuWzRdKToobj16cy5leGVjKHQpKT9QdCgyNTUqblsxXS8xMDAsMjU1Km5bMl0vMTAwLDI1NSpuWzNdLzEwMCxuWzRdKToobj1Scy5leGVjKHQpKT9VdChuWzFdLG5bMl0vMTAwLG5bM10vMTAwLDEpOihuPUxzLmV4ZWModCkpP1V0KG5bMV0sblsyXS8xMDAsblszXS8xMDAsbls0XSk6RHMuaGFzT3duUHJvcGVydHkodCk/Q3QoRHNbdF0pOlwidHJhbnNwYXJlbnRcIj09PXQ/bmV3IEx0KE5hTixOYU4sTmFOLDApOm51bGx9ZnVuY3Rpb24gQ3QodCl7cmV0dXJuIG5ldyBMdCh0Pj4xNiYyNTUsdD4+OCYyNTUsMjU1JnQsMSl9ZnVuY3Rpb24gUHQodCxuLGUscil7cmV0dXJuIHI8PTAmJih0PW49ZT1OYU4pLG5ldyBMdCh0LG4sZSxyKX1mdW5jdGlvbiB6dCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEV0fHwodD1rdCh0KSksdD8odD10LnJnYigpLG5ldyBMdCh0LnIsdC5nLHQuYix0Lm9wYWNpdHkpKTpuZXcgTHR9ZnVuY3Rpb24gUnQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3p0KHQpOm5ldyBMdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gTHQodCxuLGUscil7dGhpcy5yPSt0LHRoaXMuZz0rbix0aGlzLmI9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIER0KHQpe3JldHVybigodD1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHQpfHwwKSkpPDE2P1wiMFwiOlwiXCIpK3QudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIFV0KHQsbixlLHIpe3JldHVybiByPD0wP3Q9bj1lPU5hTjplPD0wfHxlPj0xP3Q9bj1OYU46bjw9MCYmKHQ9TmFOKSxuZXcgT3QodCxuLGUscil9ZnVuY3Rpb24gcXQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2Z1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBPdClyZXR1cm4gbmV3IE90KHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIEV0fHwodD1rdCh0KSksIXQpcmV0dXJuIG5ldyBPdDtpZih0IGluc3RhbmNlb2YgT3QpcmV0dXJuIHQ7dmFyIG49KHQ9dC5yZ2IoKSkuci8yNTUsZT10LmcvMjU1LHI9dC5iLzI1NSxpPU1hdGgubWluKG4sZSxyKSxvPU1hdGgubWF4KG4sZSxyKSxhPU5hTix1PW8taSxmPShvK2kpLzI7cmV0dXJuIHU/KGE9bj09PW8/KGUtcikvdSs2KihlPHIpOmU9PT1vPyhyLW4pL3UrMjoobi1lKS91KzQsdS89ZjwuNT9vK2k6Mi1vLWksYSo9NjApOnU9Zj4wJiZmPDE/MDphLG5ldyBPdChhLHUsZix0Lm9wYWNpdHkpfSh0KTpuZXcgT3QodCxuLGUsbnVsbD09cj8xOnIpfWZ1bmN0aW9uIE90KHQsbixlLHIpe3RoaXMuaD0rdCx0aGlzLnM9K24sdGhpcy5sPStlLHRoaXMub3BhY2l0eT0rcn1mdW5jdGlvbiBZdCh0LG4sZSl7cmV0dXJuIDI1NSoodDw2MD9uKyhlLW4pKnQvNjA6dDwxODA/ZTp0PDI0MD9uKyhlLW4pKigyNDAtdCkvNjA6bil9ZnVuY3Rpb24gQnQodCl7aWYodCBpbnN0YW5jZW9mIEl0KXJldHVybiBuZXcgSXQodC5sLHQuYSx0LmIsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgV3Qpe2lmKGlzTmFOKHQuaCkpcmV0dXJuIG5ldyBJdCh0LmwsMCwwLHQub3BhY2l0eSk7dmFyIG49dC5oKlVzO3JldHVybiBuZXcgSXQodC5sLE1hdGguY29zKG4pKnQuYyxNYXRoLnNpbihuKSp0LmMsdC5vcGFjaXR5KX10IGluc3RhbmNlb2YgTHR8fCh0PXp0KHQpKTt2YXIgZSxyLGk9R3QodC5yKSxvPUd0KHQuZyksYT1HdCh0LmIpLHU9anQoKC4yMjI1MDQ1KmkrLjcxNjg3ODYqbysuMDYwNjE2OSphKS9Zcyk7cmV0dXJuIGk9PT1vJiZvPT09YT9lPXI9dTooZT1qdCgoLjQzNjA3NDcqaSsuMzg1MDY0OSpvKy4xNDMwODA0KmEpL09zKSxyPWp0KCguMDEzOTMyMippKy4wOTcxMDQ1Km8rLjcxNDE3MzMqYSkvQnMpKSxuZXcgSXQoMTE2KnUtMTYsNTAwKihlLXUpLDIwMCoodS1yKSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIEZ0KHQsbixlLHIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9CdCh0KTpuZXcgSXQodCxuLGUsbnVsbD09cj8xOnIpfWZ1bmN0aW9uIEl0KHQsbixlLHIpe3RoaXMubD0rdCx0aGlzLmE9K24sdGhpcy5iPStlLHRoaXMub3BhY2l0eT0rcn1mdW5jdGlvbiBqdCh0KXtyZXR1cm4gdD5Icz9NYXRoLnBvdyh0LDEvMyk6dC9qcytGc31mdW5jdGlvbiBIdCh0KXtyZXR1cm4gdD5Jcz90KnQqdDpqcyoodC1Gcyl9ZnVuY3Rpb24gWHQodCl7cmV0dXJuIDI1NSoodDw9LjAwMzEzMDg/MTIuOTIqdDoxLjA1NSpNYXRoLnBvdyh0LDEvMi40KS0uMDU1KX1mdW5jdGlvbiBHdCh0KXtyZXR1cm4odC89MjU1KTw9LjA0MDQ1P3QvMTIuOTI6TWF0aC5wb3coKHQrLjA1NSkvMS4wNTUsMi40KX1mdW5jdGlvbiBWdCh0KXtpZih0IGluc3RhbmNlb2YgV3QpcmV0dXJuIG5ldyBXdCh0LmgsdC5jLHQubCx0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBJdHx8KHQ9QnQodCkpLDA9PT10LmEmJjA9PT10LmIpcmV0dXJuIG5ldyBXdChOYU4sMCx0LmwsdC5vcGFjaXR5KTt2YXIgbj1NYXRoLmF0YW4yKHQuYix0LmEpKnFzO3JldHVybiBuZXcgV3QobjwwP24rMzYwOm4sTWF0aC5zcXJ0KHQuYSp0LmErdC5iKnQuYiksdC5sLHQub3BhY2l0eSl9ZnVuY3Rpb24gJHQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1Z0KHQpOm5ldyBXdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gV3QodCxuLGUscil7dGhpcy5oPSt0LHRoaXMuYz0rbix0aGlzLmw9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIFp0KHQsbixlLHIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9mdW5jdGlvbih0KXtpZih0IGluc3RhbmNlb2YgUXQpcmV0dXJuIG5ldyBRdCh0LmgsdC5zLHQubCx0Lm9wYWNpdHkpO3QgaW5zdGFuY2VvZiBMdHx8KHQ9enQodCkpO3ZhciBuPXQuci8yNTUsZT10LmcvMjU1LHI9dC5iLzI1NSxpPShacypyKyRzKm4tV3MqZSkvKFpzKyRzLVdzKSxvPXItaSxhPShWcyooZS1pKS1YcypvKS9Hcyx1PU1hdGguc3FydChhKmErbypvKS8oVnMqaSooMS1pKSksZj11P01hdGguYXRhbjIoYSxvKSpxcy0xMjA6TmFOO3JldHVybiBuZXcgUXQoZjwwP2YrMzYwOmYsdSxpLHQub3BhY2l0eSl9KHQpOm5ldyBRdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gUXQodCxuLGUscil7dGhpcy5oPSt0LHRoaXMucz0rbix0aGlzLmw9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIEp0KHQsbixlLHIsaSl7dmFyIG89dCp0LGE9byp0O3JldHVybigoMS0zKnQrMypvLWEpKm4rKDQtNipvKzMqYSkqZSsoMSszKnQrMypvLTMqYSkqcithKmkpLzZ9ZnVuY3Rpb24gS3QodCl7dmFyIG49dC5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI9ZTw9MD9lPTA6ZT49MT8oZT0xLG4tMSk6TWF0aC5mbG9vcihlKm4pLGk9dFtyXSxvPXRbcisxXSxhPXI+MD90W3ItMV06MippLW8sdT1yPG4tMT90W3IrMl06MipvLWk7cmV0dXJuIEp0KChlLXIvbikqbixhLGksbyx1KX19ZnVuY3Rpb24gdG4odCl7dmFyIG49dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciByPU1hdGguZmxvb3IoKChlJT0xKTwwPysrZTplKSpuKSxpPXRbKHIrbi0xKSVuXSxvPXRbciVuXSxhPXRbKHIrMSklbl0sdT10WyhyKzIpJW5dO3JldHVybiBKdCgoZS1yL24pKm4saSxvLGEsdSl9fWZ1bmN0aW9uIG5uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBlbih0LG4pe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdCtlKm59fWZ1bmN0aW9uIHJuKHQsbil7dmFyIGU9bi10O3JldHVybiBlP2VuKHQsZT4xODB8fGU8LTE4MD9lLTM2MCpNYXRoLnJvdW5kKGUvMzYwKTplKTpubihpc05hTih0KT9uOnQpfWZ1bmN0aW9uIG9uKHQpe3JldHVybiAxPT0odD0rdCk/YW46ZnVuY3Rpb24obixlKXtyZXR1cm4gZS1uP2Z1bmN0aW9uKHQsbixlKXtyZXR1cm4gdD1NYXRoLnBvdyh0LGUpLG49TWF0aC5wb3cobixlKS10LGU9MS9lLGZ1bmN0aW9uKHIpe3JldHVybiBNYXRoLnBvdyh0K3IqbixlKX19KG4sZSx0KTpubihpc05hTihuKT9lOm4pfX1mdW5jdGlvbiBhbih0LG4pe3ZhciBlPW4tdDtyZXR1cm4gZT9lbih0LGUpOm5uKGlzTmFOKHQpP246dCl9ZnVuY3Rpb24gdW4odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBlLHIsaT1uLmxlbmd0aCxvPW5ldyBBcnJheShpKSxhPW5ldyBBcnJheShpKSx1PW5ldyBBcnJheShpKTtmb3IoZT0wO2U8aTsrK2Upcj1SdChuW2VdKSxvW2VdPXIucnx8MCxhW2VdPXIuZ3x8MCx1W2VdPXIuYnx8MDtyZXR1cm4gbz10KG8pLGE9dChhKSx1PXQodSksci5vcGFjaXR5PTEsZnVuY3Rpb24odCl7cmV0dXJuIHIucj1vKHQpLHIuZz1hKHQpLHIuYj11KHQpLHIrXCJcIn19fWZ1bmN0aW9uIGZuKHQsbil7dmFyIGUscj1uP24ubGVuZ3RoOjAsaT10P01hdGgubWluKHIsdC5sZW5ndGgpOjAsbz1uZXcgQXJyYXkoaSksYT1uZXcgQXJyYXkocik7Zm9yKGU9MDtlPGk7KytlKW9bZV09ZG4odFtlXSxuW2VdKTtmb3IoO2U8cjsrK2UpYVtlXT1uW2VdO3JldHVybiBmdW5jdGlvbih0KXtmb3IoZT0wO2U8aTsrK2UpYVtlXT1vW2VdKHQpO3JldHVybiBhfX1mdW5jdGlvbiBjbih0LG4pe3ZhciBlPW5ldyBEYXRlO3JldHVybiB0PSt0LG4tPXQsZnVuY3Rpb24ocil7cmV0dXJuIGUuc2V0VGltZSh0K24qciksZX19ZnVuY3Rpb24gc24odCxuKXtyZXR1cm4gdD0rdCxuLT10LGZ1bmN0aW9uKGUpe3JldHVybiB0K24qZX19ZnVuY3Rpb24gbG4odCxuKXt2YXIgZSxyPXt9LGk9e307bnVsbCE9PXQmJlwib2JqZWN0XCI9PXR5cGVvZiB0fHwodD17fSksbnVsbCE9PW4mJlwib2JqZWN0XCI9PXR5cGVvZiBufHwobj17fSk7Zm9yKGUgaW4gbillIGluIHQ/cltlXT1kbih0W2VdLG5bZV0pOmlbZV09bltlXTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKGUgaW4gcilpW2VdPXJbZV0odCk7cmV0dXJuIGl9fWZ1bmN0aW9uIGhuKHQsbil7dmFyIGUscixpLG89YWwubGFzdEluZGV4PXVsLmxhc3RJbmRleD0wLGE9LTEsdT1bXSxmPVtdO2Zvcih0Kz1cIlwiLG4rPVwiXCI7KGU9YWwuZXhlYyh0KSkmJihyPXVsLmV4ZWMobikpOykoaT1yLmluZGV4KT5vJiYoaT1uLnNsaWNlKG8saSksdVthXT91W2FdKz1pOnVbKythXT1pKSwoZT1lWzBdKT09PShyPXJbMF0pP3VbYV0/dVthXSs9cjp1WysrYV09cjoodVsrK2FdPW51bGwsZi5wdXNoKHtpOmEseDpzbihlLHIpfSkpLG89dWwubGFzdEluZGV4O3JldHVybiBvPG4ubGVuZ3RoJiYoaT1uLnNsaWNlKG8pLHVbYV0/dVthXSs9aTp1WysrYV09aSksdS5sZW5ndGg8Mj9mWzBdP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdChuKStcIlwifX0oZlswXS54KTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KG4pOihuPWYubGVuZ3RoLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPTA7cjxuOysrcil1WyhlPWZbcl0pLmldPWUueCh0KTtyZXR1cm4gdS5qb2luKFwiXCIpfSl9ZnVuY3Rpb24gZG4odCxuKXt2YXIgZSxyPXR5cGVvZiBuO3JldHVybiBudWxsPT1ufHxcImJvb2xlYW5cIj09PXI/bm4obik6KFwibnVtYmVyXCI9PT1yP3NuOlwic3RyaW5nXCI9PT1yPyhlPWt0KG4pKT8obj1lLHJsKTpobjpuIGluc3RhbmNlb2Yga3Q/cmw6biBpbnN0YW5jZW9mIERhdGU/Y246QXJyYXkuaXNBcnJheShuKT9mbjpcImZ1bmN0aW9uXCIhPXR5cGVvZiBuLnZhbHVlT2YmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIG4udG9TdHJpbmd8fGlzTmFOKG4pP2xuOnNuKSh0LG4pfWZ1bmN0aW9uIHBuKHQsbil7cmV0dXJuIHQ9K3Qsbi09dCxmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5yb3VuZCh0K24qZSl9fWZ1bmN0aW9uIHZuKHQsbixlLHIsaSxvKXt2YXIgYSx1LGY7cmV0dXJuKGE9TWF0aC5zcXJ0KHQqdCtuKm4pKSYmKHQvPWEsbi89YSksKGY9dCplK24qcikmJihlLT10KmYsci09bipmKSwodT1NYXRoLnNxcnQoZSplK3IqcikpJiYoZS89dSxyLz11LGYvPXUpLHQqcjxuKmUmJih0PS10LG49LW4sZj0tZixhPS1hKSx7dHJhbnNsYXRlWDppLHRyYW5zbGF0ZVk6byxyb3RhdGU6TWF0aC5hdGFuMihuLHQpKmZsLHNrZXdYOk1hdGguYXRhbihmKSpmbCxzY2FsZVg6YSxzY2FsZVk6dX19ZnVuY3Rpb24gZ24odCxuLGUscil7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5sZW5ndGg/dC5wb3AoKStcIiBcIjpcIlwifXJldHVybiBmdW5jdGlvbihvLGEpe3ZhciB1PVtdLGY9W107cmV0dXJuIG89dChvKSxhPXQoYSksZnVuY3Rpb24odCxyLGksbyxhLHUpe2lmKHQhPT1pfHxyIT09byl7dmFyIGY9YS5wdXNoKFwidHJhbnNsYXRlKFwiLG51bGwsbixudWxsLGUpO3UucHVzaCh7aTpmLTQseDpzbih0LGkpfSx7aTpmLTIseDpzbihyLG8pfSl9ZWxzZShpfHxvKSYmYS5wdXNoKFwidHJhbnNsYXRlKFwiK2krbitvK2UpfShvLnRyYW5zbGF0ZVgsby50cmFuc2xhdGVZLGEudHJhbnNsYXRlWCxhLnRyYW5zbGF0ZVksdSxmKSxmdW5jdGlvbih0LG4sZSxvKXt0IT09bj8odC1uPjE4MD9uKz0zNjA6bi10PjE4MCYmKHQrPTM2MCksby5wdXNoKHtpOmUucHVzaChpKGUpK1wicm90YXRlKFwiLG51bGwsciktMix4OnNuKHQsbil9KSk6biYmZS5wdXNoKGkoZSkrXCJyb3RhdGUoXCIrbityKX0oby5yb3RhdGUsYS5yb3RhdGUsdSxmKSxmdW5jdGlvbih0LG4sZSxvKXt0IT09bj9vLnB1c2goe2k6ZS5wdXNoKGkoZSkrXCJza2V3WChcIixudWxsLHIpLTIseDpzbih0LG4pfSk6biYmZS5wdXNoKGkoZSkrXCJza2V3WChcIituK3IpfShvLnNrZXdYLGEuc2tld1gsdSxmKSxmdW5jdGlvbih0LG4sZSxyLG8sYSl7aWYodCE9PWV8fG4hPT1yKXt2YXIgdT1vLnB1c2goaShvKStcInNjYWxlKFwiLG51bGwsXCIsXCIsbnVsbCxcIilcIik7YS5wdXNoKHtpOnUtNCx4OnNuKHQsZSl9LHtpOnUtMix4OnNuKG4scil9KX1lbHNlIDE9PT1lJiYxPT09cnx8by5wdXNoKGkobykrXCJzY2FsZShcIitlK1wiLFwiK3IrXCIpXCIpfShvLnNjYWxlWCxvLnNjYWxlWSxhLnNjYWxlWCxhLnNjYWxlWSx1LGYpLG89YT1udWxsLGZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlPS0xLHI9Zi5sZW5ndGg7KytlPHI7KXVbKG49ZltlXSkuaV09bi54KHQpO3JldHVybiB1LmpvaW4oXCJcIil9fX1mdW5jdGlvbiB5bih0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpKzEvdCkvMn1mdW5jdGlvbiBfbih0LG4pe3ZhciBlLHIsaT10WzBdLG89dFsxXSxhPXRbMl0sdT1uWzBdLGY9blsxXSxjPW5bMl0scz11LWksbD1mLW8saD1zKnMrbCpsO2lmKGg8dmwpcj1NYXRoLmxvZyhjL2EpL2hsLGU9ZnVuY3Rpb24odCl7cmV0dXJuW2krdCpzLG8rdCpsLGEqTWF0aC5leHAoaGwqdCpyKV19O2Vsc2V7dmFyIGQ9TWF0aC5zcXJ0KGgpLHA9KGMqYy1hKmErcGwqaCkvKDIqYSpkbCpkKSx2PShjKmMtYSphLXBsKmgpLygyKmMqZGwqZCksZz1NYXRoLmxvZyhNYXRoLnNxcnQocCpwKzEpLXApLHk9TWF0aC5sb2coTWF0aC5zcXJ0KHYqdisxKS12KTtyPSh5LWcpL2hsLGU9ZnVuY3Rpb24odCl7dmFyIG49dCpyLGU9eW4oZyksdT1hLyhkbCpkKSooZSpmdW5jdGlvbih0KXtyZXR1cm4oKHQ9TWF0aC5leHAoMip0KSktMSkvKHQrMSl9KGhsKm4rZyktZnVuY3Rpb24odCl7cmV0dXJuKCh0PU1hdGguZXhwKHQpKS0xL3QpLzJ9KGcpKTtyZXR1cm5baSt1KnMsbyt1KmwsYSplL3luKGhsKm4rZyldfX1yZXR1cm4gZS5kdXJhdGlvbj0xZTMqcixlfWZ1bmN0aW9uIGJuKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3ZhciByPXQoKG49cXQobikpLmgsKGU9cXQoZSkpLmgpLGk9YW4obi5zLGUucyksbz1hbihuLmwsZS5sKSxhPWFuKG4ub3BhY2l0eSxlLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbi5oPXIodCksbi5zPWkodCksbi5sPW8odCksbi5vcGFjaXR5PWEodCksbitcIlwifX19ZnVuY3Rpb24gbW4odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7dmFyIHI9dCgobj0kdChuKSkuaCwoZT0kdChlKSkuaCksaT1hbihuLmMsZS5jKSxvPWFuKG4ubCxlLmwpLGE9YW4obi5vcGFjaXR5LGUub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuLmg9cih0KSxuLmM9aSh0KSxuLmw9byh0KSxuLm9wYWNpdHk9YSh0KSxuK1wiXCJ9fX1mdW5jdGlvbiB4bih0KXtyZXR1cm4gZnVuY3Rpb24gbihlKXtmdW5jdGlvbiByKG4scil7dmFyIGk9dCgobj1adChuKSkuaCwocj1adChyKSkuaCksbz1hbihuLnMsci5zKSxhPWFuKG4ubCxyLmwpLHU9YW4obi5vcGFjaXR5LHIub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuLmg9aSh0KSxuLnM9byh0KSxuLmw9YShNYXRoLnBvdyh0LGUpKSxuLm9wYWNpdHk9dSh0KSxuK1wiXCJ9fXJldHVybiBlPStlLHIuZ2FtbWE9bixyfSgxKX1mdW5jdGlvbiB3bigpe3JldHVybiBTbHx8KENsKE1uKSxTbD1rbC5ub3coKStFbCl9ZnVuY3Rpb24gTW4oKXtTbD0wfWZ1bmN0aW9uIEFuKCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiBUbih0LG4sZSl7dmFyIHI9bmV3IEFuO3JldHVybiByLnJlc3RhcnQodCxuLGUpLHJ9ZnVuY3Rpb24gTm4oKXt3bigpLCsrd2w7Zm9yKHZhciB0LG49bmw7bjspKHQ9U2wtbi5fdGltZSk+PTAmJm4uX2NhbGwuY2FsbChudWxsLHQpLG49bi5fbmV4dDstLXdsfWZ1bmN0aW9uIFNuKCl7U2w9KE5sPWtsLm5vdygpKStFbCx3bD1NbD0wO3RyeXtObigpfWZpbmFsbHl7d2w9MCxmdW5jdGlvbigpe3ZhciB0LG4sZT1ubCxyPTEvMDtmb3IoO2U7KWUuX2NhbGw/KHI+ZS5fdGltZSYmKHI9ZS5fdGltZSksdD1lLGU9ZS5fbmV4dCk6KG49ZS5fbmV4dCxlLl9uZXh0PW51bGwsZT10P3QuX25leHQ9bjpubD1uKTtlbD10LGtuKHIpfSgpLFNsPTB9fWZ1bmN0aW9uIEVuKCl7dmFyIHQ9a2wubm93KCksbj10LU5sO24+VGwmJihFbC09bixObD10KX1mdW5jdGlvbiBrbih0KXtpZighd2wpe01sJiYoTWw9Y2xlYXJUaW1lb3V0KE1sKSk7dC1TbD4yND8odDwxLzAmJihNbD1zZXRUaW1lb3V0KFNuLHQta2wubm93KCktRWwpKSxBbCYmKEFsPWNsZWFySW50ZXJ2YWwoQWwpKSk6KEFsfHwoTmw9a2wubm93KCksQWw9c2V0SW50ZXJ2YWwoRW4sVGwpKSx3bD0xLENsKFNuKSl9fWZ1bmN0aW9uIENuKHQsbixlKXt2YXIgcj1uZXcgQW47cmV0dXJuIG49bnVsbD09bj8wOituLHIucmVzdGFydChmdW5jdGlvbihlKXtyLnN0b3AoKSx0KGUrbil9LG4sZSkscn1mdW5jdGlvbiBQbih0LG4sZSxyLGksbyl7dmFyIGE9dC5fX3RyYW5zaXRpb247aWYoYSl7aWYoZSBpbiBhKXJldHVybn1lbHNlIHQuX190cmFuc2l0aW9uPXt9OyhmdW5jdGlvbih0LG4sZSl7ZnVuY3Rpb24gcihmKXt2YXIgYyxzLGwsaDtpZihlLnN0YXRlIT09TGwpcmV0dXJuIG8oKTtmb3IoYyBpbiB1KWlmKChoPXVbY10pLm5hbWU9PT1lLm5hbWUpe2lmKGguc3RhdGU9PT1VbClyZXR1cm4gQ24ocik7aC5zdGF0ZT09PXFsPyhoLnN0YXRlPVlsLGgudGltZXIuc3RvcCgpLGgub24uY2FsbChcImludGVycnVwdFwiLHQsdC5fX2RhdGFfXyxoLmluZGV4LGguZ3JvdXApLGRlbGV0ZSB1W2NdKTorYzxuJiYoaC5zdGF0ZT1ZbCxoLnRpbWVyLnN0b3AoKSxkZWxldGUgdVtjXSl9aWYoQ24oZnVuY3Rpb24oKXtlLnN0YXRlPT09VWwmJihlLnN0YXRlPXFsLGUudGltZXIucmVzdGFydChpLGUuZGVsYXksZS50aW1lKSxpKGYpKX0pLGUuc3RhdGU9RGwsZS5vbi5jYWxsKFwic3RhcnRcIix0LHQuX19kYXRhX18sZS5pbmRleCxlLmdyb3VwKSxlLnN0YXRlPT09RGwpe2ZvcihlLnN0YXRlPVVsLGE9bmV3IEFycmF5KGw9ZS50d2Vlbi5sZW5ndGgpLGM9MCxzPS0xO2M8bDsrK2MpKGg9ZS50d2VlbltjXS52YWx1ZS5jYWxsKHQsdC5fX2RhdGFfXyxlLmluZGV4LGUuZ3JvdXApKSYmKGFbKytzXT1oKTthLmxlbmd0aD1zKzF9fWZ1bmN0aW9uIGkobil7Zm9yKHZhciByPW48ZS5kdXJhdGlvbj9lLmVhc2UuY2FsbChudWxsLG4vZS5kdXJhdGlvbik6KGUudGltZXIucmVzdGFydChvKSxlLnN0YXRlPU9sLDEpLGk9LTEsdT1hLmxlbmd0aDsrK2k8dTspYVtpXS5jYWxsKG51bGwscik7ZS5zdGF0ZT09PU9sJiYoZS5vbi5jYWxsKFwiZW5kXCIsdCx0Ll9fZGF0YV9fLGUuaW5kZXgsZS5ncm91cCksbygpKX1mdW5jdGlvbiBvKCl7ZS5zdGF0ZT1ZbCxlLnRpbWVyLnN0b3AoKSxkZWxldGUgdVtuXTtmb3IodmFyIHIgaW4gdSlyZXR1cm47ZGVsZXRlIHQuX190cmFuc2l0aW9ufXZhciBhLHU9dC5fX3RyYW5zaXRpb247dVtuXT1lLGUudGltZXI9VG4oZnVuY3Rpb24odCl7ZS5zdGF0ZT1MbCxlLnRpbWVyLnJlc3RhcnQocixlLmRlbGF5LGUudGltZSksZS5kZWxheTw9dCYmcih0LWUuZGVsYXkpfSwwLGUudGltZSl9KSh0LGUse25hbWU6bixpbmRleDpyLGdyb3VwOmksb246UGwsdHdlZW46emwsdGltZTpvLnRpbWUsZGVsYXk6by5kZWxheSxkdXJhdGlvbjpvLmR1cmF0aW9uLGVhc2U6by5lYXNlLHRpbWVyOm51bGwsc3RhdGU6Umx9KX1mdW5jdGlvbiB6bih0LG4pe3ZhciBlPUxuKHQsbik7aWYoZS5zdGF0ZT5SbCl0aHJvdyBuZXcgRXJyb3IoXCJ0b28gbGF0ZTsgYWxyZWFkeSBzY2hlZHVsZWRcIik7cmV0dXJuIGV9ZnVuY3Rpb24gUm4odCxuKXt2YXIgZT1Mbih0LG4pO2lmKGUuc3RhdGU+RGwpdGhyb3cgbmV3IEVycm9yKFwidG9vIGxhdGU7IGFscmVhZHkgc3RhcnRlZFwiKTtyZXR1cm4gZX1mdW5jdGlvbiBMbih0LG4pe3ZhciBlPXQuX190cmFuc2l0aW9uO2lmKCFlfHwhKGU9ZVtuXSkpdGhyb3cgbmV3IEVycm9yKFwidHJhbnNpdGlvbiBub3QgZm91bmRcIik7cmV0dXJuIGV9ZnVuY3Rpb24gRG4odCxuKXt2YXIgZSxyLGksbz10Ll9fdHJhbnNpdGlvbixhPSEwO2lmKG8pe249bnVsbD09bj9udWxsOm4rXCJcIjtmb3IoaSBpbiBvKShlPW9baV0pLm5hbWU9PT1uPyhyPWUuc3RhdGU+RGwmJmUuc3RhdGU8T2wsZS5zdGF0ZT1ZbCxlLnRpbWVyLnN0b3AoKSxyJiZlLm9uLmNhbGwoXCJpbnRlcnJ1cHRcIix0LHQuX19kYXRhX18sZS5pbmRleCxlLmdyb3VwKSxkZWxldGUgb1tpXSk6YT0hMTthJiZkZWxldGUgdC5fX3RyYW5zaXRpb259fWZ1bmN0aW9uIFVuKHQsbixlKXt2YXIgcj10Ll9pZDtyZXR1cm4gdC5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9Um4odGhpcyxyKTsodC52YWx1ZXx8KHQudmFsdWU9e30pKVtuXT1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLGZ1bmN0aW9uKHQpe3JldHVybiBMbih0LHIpLnZhbHVlW25dfX1mdW5jdGlvbiBxbih0LG4pe3ZhciBlO3JldHVybihcIm51bWJlclwiPT10eXBlb2Ygbj9zbjpuIGluc3RhbmNlb2Yga3Q/cmw6KGU9a3QobikpPyhuPWUscmwpOmhuKSh0LG4pfWZ1bmN0aW9uIE9uKHQsbixlLHIpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9bix0aGlzLl9uYW1lPWUsdGhpcy5faWQ9cn1mdW5jdGlvbiBZbih0KXtyZXR1cm4gZnQoKS50cmFuc2l0aW9uKHQpfWZ1bmN0aW9uIEJuKCl7cmV0dXJuKytGbH1mdW5jdGlvbiBGbih0KXtyZXR1cm4oKHQqPTIpPD0xP3QqdDotLXQqKDItdCkrMSkvMn1mdW5jdGlvbiBJbih0KXtyZXR1cm4oKHQqPTIpPD0xP3QqdCp0Oih0LT0yKSp0KnQrMikvMn1mdW5jdGlvbiBqbih0KXtyZXR1cm4oMS1NYXRoLmNvcyhHbCp0KSkvMn1mdW5jdGlvbiBIbih0KXtyZXR1cm4oKHQqPTIpPD0xP01hdGgucG93KDIsMTAqdC0xMCk6Mi1NYXRoLnBvdygyLDEwLTEwKnQpKS8yfWZ1bmN0aW9uIFhuKHQpe3JldHVybigodCo9Mik8PTE/MS1NYXRoLnNxcnQoMS10KnQpOk1hdGguc3FydCgxLSh0LT0yKSp0KSsxKS8yfWZ1bmN0aW9uIEduKHQpe3JldHVybih0PSt0KTwkbD9yaCp0KnQ6dDxabD9yaCoodC09V2wpKnQrUWw6dDxLbD9yaCoodC09SmwpKnQrdGg6cmgqKHQtPW5oKSp0K2VofWZ1bmN0aW9uIFZuKHQsbil7Zm9yKHZhciBlOyEoZT10Ll9fdHJhbnNpdGlvbil8fCEoZT1lW25dKTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuIGxoLnRpbWU9d24oKSxsaDtyZXR1cm4gZX1mdW5jdGlvbiAkbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gV24oKXt0LmV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIFpuKCl7dC5ldmVudC5wcmV2ZW50RGVmYXVsdCgpLHQuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gUW4odCl7cmV0dXJue3R5cGU6dH19ZnVuY3Rpb24gSm4oKXtyZXR1cm4hdC5ldmVudC5idXR0b259ZnVuY3Rpb24gS24oKXt2YXIgdD10aGlzLm93bmVyU1ZHRWxlbWVudHx8dGhpcztyZXR1cm5bWzAsMF0sW3Qud2lkdGguYmFzZVZhbC52YWx1ZSx0LmhlaWdodC5iYXNlVmFsLnZhbHVlXV19ZnVuY3Rpb24gdGUodCl7Zm9yKDshdC5fX2JydXNoOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIHQuX19icnVzaH1mdW5jdGlvbiBuZSh0KXtyZXR1cm4gdFswXVswXT09PXRbMV1bMF18fHRbMF1bMV09PT10WzFdWzFdfWZ1bmN0aW9uIGVlKG4pe2Z1bmN0aW9uIGUodCl7dmFyIGU9dC5wcm9wZXJ0eShcIl9fYnJ1c2hcIix1KS5zZWxlY3RBbGwoXCIub3ZlcmxheVwiKS5kYXRhKFtRbihcIm92ZXJsYXlcIildKTtlLmVudGVyKCkuYXBwZW5kKFwicmVjdFwiKS5hdHRyKFwiY2xhc3NcIixcIm92ZXJsYXlcIikuYXR0cihcInBvaW50ZXItZXZlbnRzXCIsXCJhbGxcIikuYXR0cihcImN1cnNvclwiLG1oLm92ZXJsYXkpLm1lcmdlKGUpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD10ZSh0aGlzKS5leHRlbnQ7Y3QodGhpcykuYXR0cihcInhcIix0WzBdWzBdKS5hdHRyKFwieVwiLHRbMF1bMV0pLmF0dHIoXCJ3aWR0aFwiLHRbMV1bMF0tdFswXVswXSkuYXR0cihcImhlaWdodFwiLHRbMV1bMV0tdFswXVsxXSl9KSx0LnNlbGVjdEFsbChcIi5zZWxlY3Rpb25cIikuZGF0YShbUW4oXCJzZWxlY3Rpb25cIildKS5lbnRlcigpLmFwcGVuZChcInJlY3RcIikuYXR0cihcImNsYXNzXCIsXCJzZWxlY3Rpb25cIikuYXR0cihcImN1cnNvclwiLG1oLnNlbGVjdGlvbikuYXR0cihcImZpbGxcIixcIiM3NzdcIikuYXR0cihcImZpbGwtb3BhY2l0eVwiLC4zKS5hdHRyKFwic3Ryb2tlXCIsXCIjZmZmXCIpLmF0dHIoXCJzaGFwZS1yZW5kZXJpbmdcIixcImNyaXNwRWRnZXNcIik7dmFyIGk9dC5zZWxlY3RBbGwoXCIuaGFuZGxlXCIpLmRhdGEobi5oYW5kbGVzLGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KTtpLmV4aXQoKS5yZW1vdmUoKSxpLmVudGVyKCkuYXBwZW5kKFwicmVjdFwiKS5hdHRyKFwiY2xhc3NcIixmdW5jdGlvbih0KXtyZXR1cm5cImhhbmRsZSBoYW5kbGUtLVwiK3QudHlwZX0pLmF0dHIoXCJjdXJzb3JcIixmdW5jdGlvbih0KXtyZXR1cm4gbWhbdC50eXBlXX0pLHQuZWFjaChyKS5hdHRyKFwiZmlsbFwiLFwibm9uZVwiKS5hdHRyKFwicG9pbnRlci1ldmVudHNcIixcImFsbFwiKS5zdHlsZShcIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvclwiLFwicmdiYSgwLDAsMCwwKVwiKS5vbihcIm1vdXNlZG93bi5icnVzaCB0b3VjaHN0YXJ0LmJydXNoXCIsYSl9ZnVuY3Rpb24gcigpe3ZhciB0PWN0KHRoaXMpLG49dGUodGhpcykuc2VsZWN0aW9uO24/KHQuc2VsZWN0QWxsKFwiLnNlbGVjdGlvblwiKS5zdHlsZShcImRpc3BsYXlcIixudWxsKS5hdHRyKFwieFwiLG5bMF1bMF0pLmF0dHIoXCJ5XCIsblswXVsxXSkuYXR0cihcIndpZHRoXCIsblsxXVswXS1uWzBdWzBdKS5hdHRyKFwiaGVpZ2h0XCIsblsxXVsxXS1uWzBdWzFdKSx0LnNlbGVjdEFsbChcIi5oYW5kbGVcIikuc3R5bGUoXCJkaXNwbGF5XCIsbnVsbCkuYXR0cihcInhcIixmdW5jdGlvbih0KXtyZXR1cm5cImVcIj09PXQudHlwZVt0LnR5cGUubGVuZ3RoLTFdP25bMV1bMF0taC8yOm5bMF1bMF0taC8yfSkuYXR0cihcInlcIixmdW5jdGlvbih0KXtyZXR1cm5cInNcIj09PXQudHlwZVswXT9uWzFdWzFdLWgvMjpuWzBdWzFdLWgvMn0pLmF0dHIoXCJ3aWR0aFwiLGZ1bmN0aW9uKHQpe3JldHVyblwiblwiPT09dC50eXBlfHxcInNcIj09PXQudHlwZT9uWzFdWzBdLW5bMF1bMF0raDpofSkuYXR0cihcImhlaWdodFwiLGZ1bmN0aW9uKHQpe3JldHVyblwiZVwiPT09dC50eXBlfHxcIndcIj09PXQudHlwZT9uWzFdWzFdLW5bMF1bMV0raDpofSkpOnQuc2VsZWN0QWxsKFwiLnNlbGVjdGlvbiwuaGFuZGxlXCIpLnN0eWxlKFwiZGlzcGxheVwiLFwibm9uZVwiKS5hdHRyKFwieFwiLG51bGwpLmF0dHIoXCJ5XCIsbnVsbCkuYXR0cihcIndpZHRoXCIsbnVsbCkuYXR0cihcImhlaWdodFwiLG51bGwpfWZ1bmN0aW9uIGkodCxuKXtyZXR1cm4gdC5fX2JydXNoLmVtaXR0ZXJ8fG5ldyBvKHQsbil9ZnVuY3Rpb24gbyh0LG4pe3RoaXMudGhhdD10LHRoaXMuYXJncz1uLHRoaXMuc3RhdGU9dC5fX2JydXNoLHRoaXMuYWN0aXZlPTB9ZnVuY3Rpb24gYSgpe2Z1bmN0aW9uIGUoKXt2YXIgdD1wdCh3KTshTHx8bXx8eHx8KE1hdGguYWJzKHRbMF0tVVswXSk+TWF0aC5hYnModFsxXS1VWzFdKT94PSEwOm09ITApLFU9dCxiPSEwLFpuKCksbygpfWZ1bmN0aW9uIG8oKXt2YXIgdDtzd2l0Y2goeT1VWzBdLURbMF0sXz1VWzFdLURbMV0sQSl7Y2FzZSBwaDpjYXNlIGRoOlQmJih5PU1hdGgubWF4KEMtdSxNYXRoLm1pbih6LWQseSkpLGM9dSt5LHA9ZCt5KSxOJiYoXz1NYXRoLm1heChQLWwsTWF0aC5taW4oUi12LF8pKSxoPWwrXyxnPXYrXyk7YnJlYWs7Y2FzZSB2aDpUPDA/KHk9TWF0aC5tYXgoQy11LE1hdGgubWluKHotdSx5KSksYz11K3kscD1kKTpUPjAmJih5PU1hdGgubWF4KEMtZCxNYXRoLm1pbih6LWQseSkpLGM9dSxwPWQreSksTjwwPyhfPU1hdGgubWF4KFAtbCxNYXRoLm1pbihSLWwsXykpLGg9bCtfLGc9dik6Tj4wJiYoXz1NYXRoLm1heChQLXYsTWF0aC5taW4oUi12LF8pKSxoPWwsZz12K18pO2JyZWFrO2Nhc2UgZ2g6VCYmKGM9TWF0aC5tYXgoQyxNYXRoLm1pbih6LHUteSpUKSkscD1NYXRoLm1heChDLE1hdGgubWluKHosZCt5KlQpKSksTiYmKGg9TWF0aC5tYXgoUCxNYXRoLm1pbihSLGwtXypOKSksZz1NYXRoLm1heChQLE1hdGgubWluKFIsditfKk4pKSl9cDxjJiYoVCo9LTEsdD11LHU9ZCxkPXQsdD1jLGM9cCxwPXQsTSBpbiB4aCYmWS5hdHRyKFwiY3Vyc29yXCIsbWhbTT14aFtNXV0pKSxnPGgmJihOKj0tMSx0PWwsbD12LHY9dCx0PWgsaD1nLGc9dCxNIGluIHdoJiZZLmF0dHIoXCJjdXJzb3JcIixtaFtNPXdoW01dXSkpLFMuc2VsZWN0aW9uJiYoaz1TLnNlbGVjdGlvbiksbSYmKGM9a1swXVswXSxwPWtbMV1bMF0pLHgmJihoPWtbMF1bMV0sZz1rWzFdWzFdKSxrWzBdWzBdPT09YyYma1swXVsxXT09PWgmJmtbMV1bMF09PT1wJiZrWzFdWzFdPT09Z3x8KFMuc2VsZWN0aW9uPVtbYyxoXSxbcCxnXV0sci5jYWxsKHcpLHEuYnJ1c2goKSl9ZnVuY3Rpb24gYSgpe2lmKFduKCksdC5ldmVudC50b3VjaGVzKXtpZih0LmV2ZW50LnRvdWNoZXMubGVuZ3RoKXJldHVybjtmJiZjbGVhclRpbWVvdXQoZiksZj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zj1udWxsfSw1MDApLE8ub24oXCJ0b3VjaG1vdmUuYnJ1c2ggdG91Y2hlbmQuYnJ1c2ggdG91Y2hjYW5jZWwuYnJ1c2hcIixudWxsKX1lbHNlIGJ0KHQuZXZlbnQudmlldyxiKSxCLm9uKFwia2V5ZG93bi5icnVzaCBrZXl1cC5icnVzaCBtb3VzZW1vdmUuYnJ1c2ggbW91c2V1cC5icnVzaFwiLG51bGwpO08uYXR0cihcInBvaW50ZXItZXZlbnRzXCIsXCJhbGxcIiksWS5hdHRyKFwiY3Vyc29yXCIsbWgub3ZlcmxheSksUy5zZWxlY3Rpb24mJihrPVMuc2VsZWN0aW9uKSxuZShrKSYmKFMuc2VsZWN0aW9uPW51bGwsci5jYWxsKHcpKSxxLmVuZCgpfWlmKHQuZXZlbnQudG91Y2hlcyl7aWYodC5ldmVudC5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg8dC5ldmVudC50b3VjaGVzLmxlbmd0aClyZXR1cm4gWm4oKX1lbHNlIGlmKGYpcmV0dXJuO2lmKHMuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdSxjLGwsaCxkLHAsdixnLHksXyxiLG0seCx3PXRoaXMsTT10LmV2ZW50LnRhcmdldC5fX2RhdGFfXy50eXBlLEE9XCJzZWxlY3Rpb25cIj09PSh0LmV2ZW50Lm1ldGFLZXk/TT1cIm92ZXJsYXlcIjpNKT9kaDp0LmV2ZW50LmFsdEtleT9naDp2aCxUPW49PT1faD9udWxsOk1oW01dLE49bj09PXloP251bGw6QWhbTV0sUz10ZSh3KSxFPVMuZXh0ZW50LGs9Uy5zZWxlY3Rpb24sQz1FWzBdWzBdLFA9RVswXVsxXSx6PUVbMV1bMF0sUj1FWzFdWzFdLEw9VCYmTiYmdC5ldmVudC5zaGlmdEtleSxEPXB0KHcpLFU9RCxxPWkodyxhcmd1bWVudHMpLmJlZm9yZXN0YXJ0KCk7XCJvdmVybGF5XCI9PT1NP1Muc2VsZWN0aW9uPWs9W1t1PW49PT1faD9DOkRbMF0sbD1uPT09eWg/UDpEWzFdXSxbZD1uPT09X2g/ejp1LHY9bj09PXloP1I6bF1dOih1PWtbMF1bMF0sbD1rWzBdWzFdLGQ9a1sxXVswXSx2PWtbMV1bMV0pLGM9dSxoPWwscD1kLGc9djt2YXIgTz1jdCh3KS5hdHRyKFwicG9pbnRlci1ldmVudHNcIixcIm5vbmVcIiksWT1PLnNlbGVjdEFsbChcIi5vdmVybGF5XCIpLmF0dHIoXCJjdXJzb3JcIixtaFtNXSk7aWYodC5ldmVudC50b3VjaGVzKU8ub24oXCJ0b3VjaG1vdmUuYnJ1c2hcIixlLCEwKS5vbihcInRvdWNoZW5kLmJydXNoIHRvdWNoY2FuY2VsLmJydXNoXCIsYSwhMCk7ZWxzZXt2YXIgQj1jdCh0LmV2ZW50LnZpZXcpLm9uKFwia2V5ZG93bi5icnVzaFwiLGZ1bmN0aW9uKCl7c3dpdGNoKHQuZXZlbnQua2V5Q29kZSl7Y2FzZSAxNjpMPVQmJk47YnJlYWs7Y2FzZSAxODpBPT09dmgmJihUJiYoZD1wLXkqVCx1PWMreSpUKSxOJiYodj1nLV8qTixsPWgrXypOKSxBPWdoLG8oKSk7YnJlYWs7Y2FzZSAzMjpBIT09dmgmJkEhPT1naHx8KFQ8MD9kPXAteTpUPjAmJih1PWMteSksTjwwP3Y9Zy1fOk4+MCYmKGw9aC1fKSxBPXBoLFkuYXR0cihcImN1cnNvclwiLG1oLnNlbGVjdGlvbiksbygpKTticmVhaztkZWZhdWx0OnJldHVybn1abigpfSwhMCkub24oXCJrZXl1cC5icnVzaFwiLGZ1bmN0aW9uKCl7c3dpdGNoKHQuZXZlbnQua2V5Q29kZSl7Y2FzZSAxNjpMJiYobT14PUw9ITEsbygpKTticmVhaztjYXNlIDE4OkE9PT1naCYmKFQ8MD9kPXA6VD4wJiYodT1jKSxOPDA/dj1nOk4+MCYmKGw9aCksQT12aCxvKCkpO2JyZWFrO2Nhc2UgMzI6QT09PXBoJiYodC5ldmVudC5hbHRLZXk/KFQmJihkPXAteSpULHU9Yyt5KlQpLE4mJih2PWctXypOLGw9aCtfKk4pLEE9Z2gpOihUPDA/ZD1wOlQ+MCYmKHU9YyksTjwwP3Y9ZzpOPjAmJihsPWgpLEE9dmgpLFkuYXR0cihcImN1cnNvclwiLG1oW01dKSxvKCkpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufVpuKCl9LCEwKS5vbihcIm1vdXNlbW92ZS5icnVzaFwiLGUsITApLm9uKFwibW91c2V1cC5icnVzaFwiLGEsITApO190KHQuZXZlbnQudmlldyl9V24oKSxEbih3KSxyLmNhbGwodykscS5zdGFydCgpfX1mdW5jdGlvbiB1KCl7dmFyIHQ9dGhpcy5fX2JydXNofHx7c2VsZWN0aW9uOm51bGx9O3JldHVybiB0LmV4dGVudD1jLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0LmRpbT1uLHR9dmFyIGYsYz1LbixzPUpuLGw9TihlLFwic3RhcnRcIixcImJydXNoXCIsXCJlbmRcIiksaD02O3JldHVybiBlLm1vdmU9ZnVuY3Rpb24odCxlKXt0LnNlbGVjdGlvbj90Lm9uKFwic3RhcnQuYnJ1c2hcIixmdW5jdGlvbigpe2kodGhpcyxhcmd1bWVudHMpLmJlZm9yZXN0YXJ0KCkuc3RhcnQoKX0pLm9uKFwiaW50ZXJydXB0LmJydXNoIGVuZC5icnVzaFwiLGZ1bmN0aW9uKCl7aSh0aGlzLGFyZ3VtZW50cykuZW5kKCl9KS50d2VlbihcImJydXNoXCIsZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe2Euc2VsZWN0aW9uPTE9PT10JiZuZShjKT9udWxsOnModCksci5jYWxsKG8pLHUuYnJ1c2goKX12YXIgbz10aGlzLGE9by5fX2JydXNoLHU9aShvLGFyZ3VtZW50cyksZj1hLnNlbGVjdGlvbixjPW4uaW5wdXQoXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTplLGEuZXh0ZW50KSxzPWRuKGYsYyk7cmV0dXJuIGYmJmM/dDp0KDEpfSk6dC5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLG89dGhpcy5fX2JydXNoLGE9bi5pbnB1dChcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyx0KTplLG8uZXh0ZW50KSx1PWkodGhpcyx0KS5iZWZvcmVzdGFydCgpO0RuKHRoaXMpLG8uc2VsZWN0aW9uPW51bGw9PWF8fG5lKGEpP251bGw6YSxyLmNhbGwodGhpcyksdS5zdGFydCgpLmJydXNoKCkuZW5kKCl9KX0sby5wcm90b3R5cGU9e2JlZm9yZXN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIDE9PSsrdGhpcy5hY3RpdmUmJih0aGlzLnN0YXRlLmVtaXR0ZXI9dGhpcyx0aGlzLnN0YXJ0aW5nPSEwKSx0aGlzfSxzdGFydDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0aW5nJiYodGhpcy5zdGFydGluZz0hMSx0aGlzLmVtaXQoXCJzdGFydFwiKSksdGhpc30sYnJ1c2g6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbWl0KFwiYnJ1c2hcIiksdGhpc30sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PS0tdGhpcy5hY3RpdmUmJihkZWxldGUgdGhpcy5zdGF0ZS5lbWl0dGVyLHRoaXMuZW1pdChcImVuZFwiKSksdGhpc30sZW1pdDpmdW5jdGlvbih0KXtvdChuZXcgZnVuY3Rpb24odCxuLGUpe3RoaXMudGFyZ2V0PXQsdGhpcy50eXBlPW4sdGhpcy5zZWxlY3Rpb249ZX0oZSx0LG4ub3V0cHV0KHRoaXMuc3RhdGUuc2VsZWN0aW9uKSksbC5hcHBseSxsLFt0LHRoaXMudGhhdCx0aGlzLmFyZ3NdKX19LGUuZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDokbihbWyt0WzBdWzBdLCt0WzBdWzFdXSxbK3RbMV1bMF0sK3RbMV1bMV1dXSksZSk6Y30sZS5maWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OiRuKCEhdCksZSk6c30sZS5oYW5kbGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPSt0LGUpOmh9LGUub249ZnVuY3Rpb24oKXt2YXIgdD1sLm9uLmFwcGx5KGwsYXJndW1lbnRzKTtyZXR1cm4gdD09PWw/ZTp0fSxlfWZ1bmN0aW9uIHJlKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBpZSgpe3RoaXMuX3gwPXRoaXMuX3kwPXRoaXMuX3gxPXRoaXMuX3kxPW51bGwsdGhpcy5fPVwiXCJ9ZnVuY3Rpb24gb2UoKXtyZXR1cm4gbmV3IGllfWZ1bmN0aW9uIGFlKHQpe3JldHVybiB0LnNvdXJjZX1mdW5jdGlvbiB1ZSh0KXtyZXR1cm4gdC50YXJnZXR9ZnVuY3Rpb24gZmUodCl7cmV0dXJuIHQucmFkaXVzfWZ1bmN0aW9uIGNlKHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9ZnVuY3Rpb24gc2UodCl7cmV0dXJuIHQuZW5kQW5nbGV9ZnVuY3Rpb24gbGUoKXt9ZnVuY3Rpb24gaGUodCxuKXt2YXIgZT1uZXcgbGU7aWYodCBpbnN0YW5jZW9mIGxlKXQuZWFjaChmdW5jdGlvbih0LG4pe2Uuc2V0KG4sdCl9KTtlbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpe3ZhciByLGk9LTEsbz10Lmxlbmd0aDtpZihudWxsPT1uKWZvcig7KytpPG87KWUuc2V0KGksdFtpXSk7ZWxzZSBmb3IoOysraTxvOyllLnNldChuKHI9dFtpXSxpLHQpLHIpfWVsc2UgaWYodClmb3IodmFyIGEgaW4gdCllLnNldChhLHRbYV0pO3JldHVybiBlfWZ1bmN0aW9uIGRlKCl7cmV0dXJue319ZnVuY3Rpb24gcGUodCxuLGUpe3Rbbl09ZX1mdW5jdGlvbiB2ZSgpe3JldHVybiBoZSgpfWZ1bmN0aW9uIGdlKHQsbixlKXt0LnNldChuLGUpfWZ1bmN0aW9uIHllKCl7fWZ1bmN0aW9uIF9lKHQsbil7dmFyIGU9bmV3IHllO2lmKHQgaW5zdGFuY2VvZiB5ZSl0LmVhY2goZnVuY3Rpb24odCl7ZS5hZGQodCl9KTtlbHNlIGlmKHQpe3ZhciByPS0xLGk9dC5sZW5ndGg7aWYobnVsbD09bilmb3IoOysrcjxpOyllLmFkZCh0W3JdKTtlbHNlIGZvcig7KytyPGk7KWUuYWRkKG4odFtyXSxyLHQpKX1yZXR1cm4gZX1mdW5jdGlvbiBiZSh0LG4pe3JldHVybiB0LW59ZnVuY3Rpb24gbWUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIHhlKHQsbil7Zm9yKHZhciBlLHI9LTEsaT1uLmxlbmd0aDsrK3I8aTspaWYoZT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZT1uWzBdLHI9blsxXSxpPS0xLG89MCxhPXQubGVuZ3RoLHU9YS0xO288YTt1PW8rKyl7dmFyIGY9dFtvXSxjPWZbMF0scz1mWzFdLGw9dFt1XSxoPWxbMF0sZD1sWzFdO2lmKGZ1bmN0aW9uKHQsbixlKXt2YXIgcjtyZXR1cm4gZnVuY3Rpb24odCxuLGUpe3JldHVybihuWzBdLXRbMF0pKihlWzFdLXRbMV0pPT0oZVswXS10WzBdKSooblsxXS10WzFdKX0odCxuLGUpJiZmdW5jdGlvbih0LG4sZSl7cmV0dXJuIHQ8PW4mJm48PWV8fGU8PW4mJm48PXR9KHRbcj0rKHRbMF09PT1uWzBdKV0sZVtyXSxuW3JdKX0oZixsLG4pKXJldHVybiAwO3M+ciE9ZD5yJiZlPChoLWMpKihyLXMpLyhkLXMpK2MmJihpPS1pKX1yZXR1cm4gaX0odCxuW3JdKSlyZXR1cm4gZTtyZXR1cm4gMH1mdW5jdGlvbiB3ZSgpe31mdW5jdGlvbiBNZSgpe2Z1bmN0aW9uIHQodCl7dmFyIGU9YSh0KTtpZihBcnJheS5pc0FycmF5KGUpKWU9ZS5zbGljZSgpLnNvcnQoYmUpO2Vsc2V7dmFyIHI9dSh0KSxpPXJbMF0sbz1yWzFdO2U9ZChpLG8sZSksZT1zKE1hdGguZmxvb3IoaS9lKSplLE1hdGguZmxvb3Ioby9lKSplLGUpfXJldHVybiBlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbih0LGUpfSl9ZnVuY3Rpb24gbih0LG4pe3ZhciByPVtdLGE9W107cmV0dXJuIGZ1bmN0aW9uKHQsbixyKXtmdW5jdGlvbiBhKHQpe3ZhciBuLGksbz1bdFswXVswXSt1LHRbMF1bMV0rZl0sYT1bdFsxXVswXSt1LHRbMV1bMV0rZl0sYz1lKG8pLHM9ZShhKTsobj1wW2NdKT8oaT1kW3NdKT8oZGVsZXRlIHBbbi5lbmRdLGRlbGV0ZSBkW2kuc3RhcnRdLG49PT1pPyhuLnJpbmcucHVzaChhKSxyKG4ucmluZykpOmRbbi5zdGFydF09cFtpLmVuZF09e3N0YXJ0Om4uc3RhcnQsZW5kOmkuZW5kLHJpbmc6bi5yaW5nLmNvbmNhdChpLnJpbmcpfSk6KGRlbGV0ZSBwW24uZW5kXSxuLnJpbmcucHVzaChhKSxwW24uZW5kPXNdPW4pOihuPWRbc10pPyhpPXBbY10pPyhkZWxldGUgZFtuLnN0YXJ0XSxkZWxldGUgcFtpLmVuZF0sbj09PWk/KG4ucmluZy5wdXNoKGEpLHIobi5yaW5nKSk6ZFtpLnN0YXJ0XT1wW24uZW5kXT17c3RhcnQ6aS5zdGFydCxlbmQ6bi5lbmQscmluZzppLnJpbmcuY29uY2F0KG4ucmluZyl9KTooZGVsZXRlIGRbbi5zdGFydF0sbi5yaW5nLnVuc2hpZnQobyksZFtuLnN0YXJ0PWNdPW4pOmRbY109cFtzXT17c3RhcnQ6YyxlbmQ6cyxyaW5nOltvLGFdfX12YXIgdSxmLGMscyxsLGgsZD1uZXcgQXJyYXkscD1uZXcgQXJyYXk7dT1mPS0xLHM9dFswXT49bixxaFtzPDwxXS5mb3JFYWNoKGEpO2Zvcig7Kyt1PGktMTspYz1zLHM9dFt1KzFdPj1uLHFoW2N8czw8MV0uZm9yRWFjaChhKTtxaFtzPDwwXS5mb3JFYWNoKGEpO2Zvcig7KytmPG8tMTspe2Zvcih1PS0xLHM9dFtmKmkraV0+PW4sbD10W2YqaV0+PW4scWhbczw8MXxsPDwyXS5mb3JFYWNoKGEpOysrdTxpLTE7KWM9cyxzPXRbZippK2krdSsxXT49bixoPWwsbD10W2YqaSt1KzFdPj1uLHFoW2N8czw8MXxsPDwyfGg8PDNdLmZvckVhY2goYSk7cWhbc3xsPDwzXS5mb3JFYWNoKGEpfXU9LTEsbD10W2YqaV0+PW4scWhbbDw8Ml0uZm9yRWFjaChhKTtmb3IoOysrdTxpLTE7KWg9bCxsPXRbZippK3UrMV0+PW4scWhbbDw8MnxoPDwzXS5mb3JFYWNoKGEpO3FoW2w8PDNdLmZvckVhY2goYSl9KHQsbixmdW5jdGlvbihlKXtmKGUsdCxuKSxmdW5jdGlvbih0KXtmb3IodmFyIG49MCxlPXQubGVuZ3RoLHI9dFtlLTFdWzFdKnRbMF1bMF0tdFtlLTFdWzBdKnRbMF1bMV07KytuPGU7KXIrPXRbbi0xXVsxXSp0W25dWzBdLXRbbi0xXVswXSp0W25dWzFdO3JldHVybiByfShlKT4wP3IucHVzaChbZV0pOmEucHVzaChlKX0pLGEuZm9yRWFjaChmdW5jdGlvbih0KXtmb3IodmFyIG4sZT0wLGk9ci5sZW5ndGg7ZTxpOysrZSlpZigtMSE9PXhlKChuPXJbZV0pWzBdLHQpKXJldHVybiB2b2lkIG4ucHVzaCh0KX0pLHt0eXBlOlwiTXVsdGlQb2x5Z29uXCIsdmFsdWU6bixjb29yZGluYXRlczpyfX1mdW5jdGlvbiBlKHQpe3JldHVybiAyKnRbMF0rdFsxXSooaSsxKSo0fWZ1bmN0aW9uIHIodCxuLGUpe3QuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixhPXRbMF0sdT10WzFdLGY9MHxhLGM9MHx1LHM9bltjKmkrZl07YT4wJiZhPGkmJmY9PT1hJiYocj1uW2MqaStmLTFdLHRbMF09YSsoZS1yKS8ocy1yKS0uNSksdT4wJiZ1PG8mJmM9PT11JiYocj1uWyhjLTEpKmkrZl0sdFsxXT11KyhlLXIpLyhzLXIpLS41KX0pfXZhciBpPTEsbz0xLGE9cCxmPXI7cmV0dXJuIHQuY29udG91cj1uLHQuc2l6ZT1mdW5jdGlvbihuKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm5baSxvXTt2YXIgZT1NYXRoLmNlaWwoblswXSkscj1NYXRoLmNlaWwoblsxXSk7aWYoIShlPjAmJnI+MCkpdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBzaXplXCIpO3JldHVybiBpPWUsbz1yLHR9LHQudGhyZXNob2xkcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246QXJyYXkuaXNBcnJheShuKT9tZShVaC5jYWxsKG4pKTptZShuKSx0KTphfSx0LnNtb290aD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1uP3I6d2UsdCk6Zj09PXJ9LHR9ZnVuY3Rpb24gQWUodCxuLGUpe2Zvcih2YXIgcj10LndpZHRoLGk9dC5oZWlnaHQsbz0xKyhlPDwxKSxhPTA7YTxpOysrYSlmb3IodmFyIHU9MCxmPTA7dTxyK2U7Kyt1KXU8ciYmKGYrPXQuZGF0YVt1K2Eqcl0pLHU+PWUmJih1Pj1vJiYoZi09dC5kYXRhW3UtbythKnJdKSxuLmRhdGFbdS1lK2Eqcl09Zi9NYXRoLm1pbih1KzEsci0xK28tdSxvKSl9ZnVuY3Rpb24gVGUodCxuLGUpe2Zvcih2YXIgcj10LndpZHRoLGk9dC5oZWlnaHQsbz0xKyhlPDwxKSxhPTA7YTxyOysrYSlmb3IodmFyIHU9MCxmPTA7dTxpK2U7Kyt1KXU8aSYmKGYrPXQuZGF0YVthK3Uqcl0pLHU+PWUmJih1Pj1vJiYoZi09dC5kYXRhW2ErKHUtbykqcl0pLG4uZGF0YVthKyh1LWUpKnJdPWYvTWF0aC5taW4odSsxLGktMStvLXUsbykpfWZ1bmN0aW9uIE5lKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIFNlKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIEVlKHQpe3JldHVybiBuZXcgRnVuY3Rpb24oXCJkXCIsXCJyZXR1cm4ge1wiK3QubWFwKGZ1bmN0aW9uKHQsbil7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpK1wiOiBkW1wiK24rXCJdXCJ9KS5qb2luKFwiLFwiKStcIn1cIil9ZnVuY3Rpb24ga2UodCl7ZnVuY3Rpb24gbih0LG4pe2Z1bmN0aW9uIGUoKXtpZihjKXJldHVybiBZaDtpZihzKXJldHVybiBzPSExLE9oO3ZhciBuLGUscj11O2lmKHQuY2hhckNvZGVBdChyKT09PUJoKXtmb3IoO3UrKzxhJiZ0LmNoYXJDb2RlQXQodSkhPT1CaHx8dC5jaGFyQ29kZUF0KCsrdSk9PT1CaDspO3JldHVybihuPXUpPj1hP2M9ITA6KGU9dC5jaGFyQ29kZUF0KHUrKykpPT09Rmg/cz0hMDplPT09SWgmJihzPSEwLHQuY2hhckNvZGVBdCh1KT09PUZoJiYrK3UpLHQuc2xpY2UocisxLG4tMSkucmVwbGFjZSgvXCJcIi9nLCdcIicpfWZvcig7dTxhOyl7aWYoKGU9dC5jaGFyQ29kZUF0KG49dSsrKSk9PT1GaClzPSEwO2Vsc2UgaWYoZT09PUloKXM9ITAsdC5jaGFyQ29kZUF0KHUpPT09RmgmJisrdTtlbHNlIGlmKGUhPT1vKWNvbnRpbnVlO3JldHVybiB0LnNsaWNlKHIsbil9cmV0dXJuIGM9ITAsdC5zbGljZShyLGEpfXZhciByLGk9W10sYT10Lmxlbmd0aCx1PTAsZj0wLGM9YTw9MCxzPSExO2Zvcih0LmNoYXJDb2RlQXQoYS0xKT09PUZoJiYtLWEsdC5jaGFyQ29kZUF0KGEtMSk9PT1JaCYmLS1hOyhyPWUoKSkhPT1ZaDspe2Zvcih2YXIgbD1bXTtyIT09T2gmJnIhPT1ZaDspbC5wdXNoKHIpLHI9ZSgpO24mJm51bGw9PShsPW4obCxmKyspKXx8aS5wdXNoKGwpfXJldHVybiBpfWZ1bmN0aW9uIGUobil7cmV0dXJuIG4ubWFwKHIpLmpvaW4odCl9ZnVuY3Rpb24gcih0KXtyZXR1cm4gbnVsbD09dD9cIlwiOmkudGVzdCh0Kz1cIlwiKT8nXCInK3QucmVwbGFjZSgvXCIvZywnXCJcIicpKydcIic6dH12YXIgaT1uZXcgUmVnRXhwKCdbXCInK3QrXCJcXG5cXHJdXCIpLG89dC5jaGFyQ29kZUF0KDApO3JldHVybntwYXJzZTpmdW5jdGlvbih0LGUpe3ZhciByLGksbz1uKHQsZnVuY3Rpb24odCxuKXtpZihyKXJldHVybiByKHQsbi0xKTtpPXQscj1lP2Z1bmN0aW9uKHQsbil7dmFyIGU9RWUodCk7cmV0dXJuIGZ1bmN0aW9uKHIsaSl7cmV0dXJuIG4oZShyKSxpLHQpfX0odCxlKTpFZSh0KX0pO3JldHVybiBvLmNvbHVtbnM9aXx8W10sb30scGFyc2VSb3dzOm4sZm9ybWF0OmZ1bmN0aW9uKG4sZSl7cmV0dXJuIG51bGw9PWUmJihlPWZ1bmN0aW9uKHQpe3ZhciBuPU9iamVjdC5jcmVhdGUobnVsbCksZT1bXTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgciBpbiB0KXIgaW4gbnx8ZS5wdXNoKG5bcl09cil9KSxlfShuKSksW2UubWFwKHIpLmpvaW4odCldLmNvbmNhdChuLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHIoblt0XSl9KS5qb2luKHQpfSkpLmpvaW4oXCJcXG5cIil9LGZvcm1hdFJvd3M6ZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKGUpLmpvaW4oXCJcXG5cIil9fX1mdW5jdGlvbiBDZSh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrXCIgXCIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC5ibG9iKCl9ZnVuY3Rpb24gUGUodCl7aWYoIXQub2spdGhyb3cgbmV3IEVycm9yKHQuc3RhdHVzK1wiIFwiK3Quc3RhdHVzVGV4dCk7cmV0dXJuIHQuYXJyYXlCdWZmZXIoKX1mdW5jdGlvbiB6ZSh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrXCIgXCIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC50ZXh0KCl9ZnVuY3Rpb24gUmUodCxuKXtyZXR1cm4gZmV0Y2godCxuKS50aGVuKHplKX1mdW5jdGlvbiBMZSh0KXtyZXR1cm4gZnVuY3Rpb24obixlLHIpe3JldHVybiAyPT09YXJndW1lbnRzLmxlbmd0aCYmXCJmdW5jdGlvblwiPT10eXBlb2YgZSYmKHI9ZSxlPXZvaWQgMCksUmUobixlKS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiB0KG4scil9KX19ZnVuY3Rpb24gRGUodCl7aWYoIXQub2spdGhyb3cgbmV3IEVycm9yKHQuc3RhdHVzK1wiIFwiK3Quc3RhdHVzVGV4dCk7cmV0dXJuIHQuanNvbigpfWZ1bmN0aW9uIFVlKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3JldHVybiBSZShuLGUpLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuKG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhuLHQpfSl9fWZ1bmN0aW9uIHFlKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBPZSgpe3JldHVybiAxZS02KihNYXRoLnJhbmRvbSgpLS41KX1mdW5jdGlvbiBZZSh0LG4sZSxyKXtpZihpc05hTihuKXx8aXNOYU4oZSkpcmV0dXJuIHQ7dmFyIGksbyxhLHUsZixjLHMsbCxoLGQ9dC5fcm9vdCxwPXtkYXRhOnJ9LHY9dC5feDAsZz10Ll95MCx5PXQuX3gxLF89dC5feTE7aWYoIWQpcmV0dXJuIHQuX3Jvb3Q9cCx0O2Zvcig7ZC5sZW5ndGg7KWlmKChjPW4+PShvPSh2K3kpLzIpKT92PW86eT1vLChzPWU+PShhPShnK18pLzIpKT9nPWE6Xz1hLGk9ZCwhKGQ9ZFtsPXM8PDF8Y10pKXJldHVybiBpW2xdPXAsdDtpZih1PSt0Ll94LmNhbGwobnVsbCxkLmRhdGEpLGY9K3QuX3kuY2FsbChudWxsLGQuZGF0YSksbj09PXUmJmU9PT1mKXJldHVybiBwLm5leHQ9ZCxpP2lbbF09cDp0Ll9yb290PXAsdDtkb3tpPWk/aVtsXT1uZXcgQXJyYXkoNCk6dC5fcm9vdD1uZXcgQXJyYXkoNCksKGM9bj49KG89KHYreSkvMikpP3Y9bzp5PW8sKHM9ZT49KGE9KGcrXykvMikpP2c9YTpfPWF9d2hpbGUoKGw9czw8MXxjKT09KGg9KGY+PWEpPDwxfHU+PW8pKTtyZXR1cm4gaVtoXT1kLGlbbF09cCx0fWZ1bmN0aW9uIEJlKHQsbixlLHIsaSl7dGhpcy5ub2RlPXQsdGhpcy54MD1uLHRoaXMueTA9ZSx0aGlzLngxPXIsdGhpcy55MT1pfWZ1bmN0aW9uIEZlKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIEllKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIGplKHQsbixlKXt2YXIgcj1uZXcgSGUobnVsbD09bj9GZTpuLG51bGw9PWU/SWU6ZSxOYU4sTmFOLE5hTixOYU4pO3JldHVybiBudWxsPT10P3I6ci5hZGRBbGwodCl9ZnVuY3Rpb24gSGUodCxuLGUscixpLG8pe3RoaXMuX3g9dCx0aGlzLl95PW4sdGhpcy5feDA9ZSx0aGlzLl95MD1yLHRoaXMuX3gxPWksdGhpcy5feTE9byx0aGlzLl9yb290PXZvaWQgMH1mdW5jdGlvbiBYZSh0KXtmb3IodmFyIG49e2RhdGE6dC5kYXRhfSxlPW47dD10Lm5leHQ7KWU9ZS5uZXh0PXtkYXRhOnQuZGF0YX07cmV0dXJuIG59ZnVuY3Rpb24gR2UodCl7cmV0dXJuIHQueCt0LnZ4fWZ1bmN0aW9uIFZlKHQpe3JldHVybiB0LnkrdC52eX1mdW5jdGlvbiAkZSh0KXtyZXR1cm4gdC5pbmRleH1mdW5jdGlvbiBXZSh0LG4pe3ZhciBlPXQuZ2V0KG4pO2lmKCFlKXRocm93IG5ldyBFcnJvcihcIm1pc3Npbmc6IFwiK24pO3JldHVybiBlfWZ1bmN0aW9uIFplKHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gUWUodCl7cmV0dXJuIHQueX1mdW5jdGlvbiBKZSh0LG4pe2lmKChlPSh0PW4/dC50b0V4cG9uZW50aWFsKG4tMSk6dC50b0V4cG9uZW50aWFsKCkpLmluZGV4T2YoXCJlXCIpKTwwKXJldHVybiBudWxsO3ZhciBlLHI9dC5zbGljZSgwLGUpO3JldHVybltyLmxlbmd0aD4xP3JbMF0rci5zbGljZSgyKTpyLCt0LnNsaWNlKGUrMSldfWZ1bmN0aW9uIEtlKHQpe3JldHVybih0PUplKE1hdGguYWJzKHQpKSk/dFsxXTpOYU59ZnVuY3Rpb24gdHIodCl7cmV0dXJuIG5ldyBucih0KX1mdW5jdGlvbiBucih0KXtpZighKG49dWQuZXhlYyh0KSkpdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBmb3JtYXQ6IFwiK3QpO3ZhciBuO3RoaXMuZmlsbD1uWzFdfHxcIiBcIix0aGlzLmFsaWduPW5bMl18fFwiPlwiLHRoaXMuc2lnbj1uWzNdfHxcIi1cIix0aGlzLnN5bWJvbD1uWzRdfHxcIlwiLHRoaXMuemVybz0hIW5bNV0sdGhpcy53aWR0aD1uWzZdJiYrbls2XSx0aGlzLmNvbW1hPSEhbls3XSx0aGlzLnByZWNpc2lvbj1uWzhdJiYrbls4XS5zbGljZSgxKSx0aGlzLnRyaW09ISFuWzldLHRoaXMudHlwZT1uWzEwXXx8XCJcIn1mdW5jdGlvbiBlcih0LG4pe3ZhciBlPUplKHQsbik7aWYoIWUpcmV0dXJuIHQrXCJcIjt2YXIgcj1lWzBdLGk9ZVsxXTtyZXR1cm4gaTwwP1wiMC5cIituZXcgQXJyYXkoLWkpLmpvaW4oXCIwXCIpK3I6ci5sZW5ndGg+aSsxP3Iuc2xpY2UoMCxpKzEpK1wiLlwiK3Iuc2xpY2UoaSsxKTpyK25ldyBBcnJheShpLXIubGVuZ3RoKzIpLmpvaW4oXCIwXCIpfWZ1bmN0aW9uIHJyKHQpe3JldHVybiB0fWZ1bmN0aW9uIGlyKHQpe2Z1bmN0aW9uIG4odCl7ZnVuY3Rpb24gbih0KXt2YXIgbixyLGEscz15LHg9XztpZihcImNcIj09PWcpeD1iKHQpK3gsdD1cIlwiO2Vsc2V7dmFyIHc9KHQ9K3QpPDA7aWYodD1iKE1hdGguYWJzKHQpLHApLHYmJih0PWZ1bmN0aW9uKHQpe3Q6Zm9yKHZhciBuLGU9dC5sZW5ndGgscj0xLGk9LTE7cjxlOysrcilzd2l0Y2godFtyXSl7Y2FzZVwiLlwiOmk9bj1yO2JyZWFrO2Nhc2VcIjBcIjowPT09aSYmKGk9ciksbj1yO2JyZWFrO2RlZmF1bHQ6aWYoaT4wKXtpZighK3Rbcl0pYnJlYWsgdDtpPTB9fXJldHVybiBpPjA/dC5zbGljZSgwLGkpK3Quc2xpY2UobisxKTp0fSh0KSksdyYmMD09K3QmJih3PSExKSxzPSh3P1wiKFwiPT09Yz9jOlwiLVwiOlwiLVwiPT09Y3x8XCIoXCI9PT1jP1wiXCI6Yykrcyx4PShcInNcIj09PWc/bGRbOCtmZC8zXTpcIlwiKSt4Kyh3JiZcIihcIj09PWM/XCIpXCI6XCJcIiksbSlmb3Iobj0tMSxyPXQubGVuZ3RoOysrbjxyOylpZig0OD4oYT10LmNoYXJDb2RlQXQobikpfHxhPjU3KXt4PSg0Nj09PWE/aSt0LnNsaWNlKG4rMSk6dC5zbGljZShuKSkreCx0PXQuc2xpY2UoMCxuKTticmVha319ZCYmIWwmJih0PWUodCwxLzApKTt2YXIgTT1zLmxlbmd0aCt0Lmxlbmd0aCt4Lmxlbmd0aCxBPU08aD9uZXcgQXJyYXkoaC1NKzEpLmpvaW4odSk6XCJcIjtzd2l0Y2goZCYmbCYmKHQ9ZShBK3QsQS5sZW5ndGg/aC14Lmxlbmd0aDoxLzApLEE9XCJcIiksZil7Y2FzZVwiPFwiOnQ9cyt0K3grQTticmVhaztjYXNlXCI9XCI6dD1zK0ErdCt4O2JyZWFrO2Nhc2VcIl5cIjp0PUEuc2xpY2UoMCxNPUEubGVuZ3RoPj4xKStzK3QreCtBLnNsaWNlKE0pO2JyZWFrO2RlZmF1bHQ6dD1BK3MrdCt4fXJldHVybiBvKHQpfXZhciB1PSh0PXRyKHQpKS5maWxsLGY9dC5hbGlnbixjPXQuc2lnbixzPXQuc3ltYm9sLGw9dC56ZXJvLGg9dC53aWR0aCxkPXQuY29tbWEscD10LnByZWNpc2lvbix2PXQudHJpbSxnPXQudHlwZTtcIm5cIj09PWc/KGQ9ITAsZz1cImdcIik6c2RbZ118fChudWxsPT1wJiYocD0xMiksdj0hMCxnPVwiZ1wiKSwobHx8XCIwXCI9PT11JiZcIj1cIj09PWYpJiYobD0hMCx1PVwiMFwiLGY9XCI9XCIpO3ZhciB5PVwiJFwiPT09cz9yWzBdOlwiI1wiPT09cyYmL1tib3hYXS8udGVzdChnKT9cIjBcIitnLnRvTG93ZXJDYXNlKCk6XCJcIixfPVwiJFwiPT09cz9yWzFdOi9bJXBdLy50ZXN0KGcpP2E6XCJcIixiPXNkW2ddLG09L1tkZWZncHJzJV0vLnRlc3QoZyk7cmV0dXJuIHA9bnVsbD09cD82Oi9bZ3Byc10vLnRlc3QoZyk/TWF0aC5tYXgoMSxNYXRoLm1pbigyMSxwKSk6TWF0aC5tYXgoMCxNYXRoLm1pbigyMCxwKSksbi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0K1wiXCJ9LG59dmFyIGU9dC5ncm91cGluZyYmdC50aG91c2FuZHM/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtmb3IodmFyIGk9ZS5sZW5ndGgsbz1bXSxhPTAsdT10WzBdLGY9MDtpPjAmJnU+MCYmKGYrdSsxPnImJih1PU1hdGgubWF4KDEsci1mKSksby5wdXNoKGUuc3Vic3RyaW5nKGktPXUsaSt1KSksISgoZis9dSsxKT5yKSk7KXU9dFthPShhKzEpJXQubGVuZ3RoXTtyZXR1cm4gby5yZXZlcnNlKCkuam9pbihuKX19KHQuZ3JvdXBpbmcsdC50aG91c2FuZHMpOnJyLHI9dC5jdXJyZW5jeSxpPXQuZGVjaW1hbCxvPXQubnVtZXJhbHM/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlcGxhY2UoL1swLTldL2csZnVuY3Rpb24obil7cmV0dXJuIHRbK25dfSl9fSh0Lm51bWVyYWxzKTpycixhPXQucGVyY2VudHx8XCIlXCI7cmV0dXJue2Zvcm1hdDpuLGZvcm1hdFByZWZpeDpmdW5jdGlvbih0LGUpe3ZhciByPW4oKHQ9dHIodCksdC50eXBlPVwiZlwiLHQpKSxpPTMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKEtlKGUpLzMpKSksbz1NYXRoLnBvdygxMCwtaSksYT1sZFs4K2kvM107cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiByKG8qdCkrYX19fX1mdW5jdGlvbiBvcihuKXtyZXR1cm4gY2Q9aXIobiksdC5mb3JtYXQ9Y2QuZm9ybWF0LHQuZm9ybWF0UHJlZml4PWNkLmZvcm1hdFByZWZpeCxjZH1mdW5jdGlvbiBhcih0KXtyZXR1cm4gTWF0aC5tYXgoMCwtS2UoTWF0aC5hYnModCkpKX1mdW5jdGlvbiB1cih0LG4pe3JldHVybiBNYXRoLm1heCgwLDMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKEtlKG4pLzMpKSktS2UoTWF0aC5hYnModCkpKX1mdW5jdGlvbiBmcih0LG4pe3JldHVybiB0PU1hdGguYWJzKHQpLG49TWF0aC5hYnMobiktdCxNYXRoLm1heCgwLEtlKG4pLUtlKHQpKSsxfWZ1bmN0aW9uIGNyKCl7cmV0dXJuIG5ldyBzcn1mdW5jdGlvbiBzcigpe3RoaXMucmVzZXQoKX1mdW5jdGlvbiBscih0LG4sZSl7dmFyIHI9dC5zPW4rZSxpPXItbixvPXItaTt0LnQ9bi1vKyhlLWkpfWZ1bmN0aW9uIGhyKHQpe3JldHVybiB0PjE/MDp0PC0xP0dkOk1hdGguYWNvcyh0KX1mdW5jdGlvbiBkcih0KXtyZXR1cm4gdD4xP1ZkOnQ8LTE/LVZkOk1hdGguYXNpbih0KX1mdW5jdGlvbiBwcih0KXtyZXR1cm4odD1hcCh0LzIpKSp0fWZ1bmN0aW9uIHZyKCl7fWZ1bmN0aW9uIGdyKHQsbil7dCYmbHAuaGFzT3duUHJvcGVydHkodC50eXBlKSYmbHBbdC50eXBlXSh0LG4pfWZ1bmN0aW9uIHlyKHQsbixlKXt2YXIgcixpPS0xLG89dC5sZW5ndGgtZTtmb3Iobi5saW5lU3RhcnQoKTsrK2k8bzspcj10W2ldLG4ucG9pbnQoclswXSxyWzFdLHJbMl0pO24ubGluZUVuZCgpfWZ1bmN0aW9uIF9yKHQsbil7dmFyIGU9LTEscj10Lmxlbmd0aDtmb3Iobi5wb2x5Z29uU3RhcnQoKTsrK2U8cjspeXIodFtlXSxuLDEpO24ucG9seWdvbkVuZCgpfWZ1bmN0aW9uIGJyKHQsbil7dCYmc3AuaGFzT3duUHJvcGVydHkodC50eXBlKT9zcFt0LnR5cGVdKHQsbik6Z3IodCxuKX1mdW5jdGlvbiBtcigpe3BwLnBvaW50PXdyfWZ1bmN0aW9uIHhyKCl7TXIoaGQsZGQpfWZ1bmN0aW9uIHdyKHQsbil7cHAucG9pbnQ9TXIsaGQ9dCxkZD1uLHBkPXQqPVFkLHZkPW5wKG49KG4qPVFkKS8yKyRkKSxnZD1hcChuKX1mdW5jdGlvbiBNcih0LG4pe249KG4qPVFkKS8yKyRkO3ZhciBlPSh0Kj1RZCktcGQscj1lPj0wPzE6LTEsaT1yKmUsbz1ucChuKSxhPWFwKG4pLHU9Z2QqYSxmPXZkKm8rdSpucChpKSxjPXUqciphcChpKTtocC5hZGQodHAoYyxmKSkscGQ9dCx2ZD1vLGdkPWF9ZnVuY3Rpb24gQXIodCl7cmV0dXJuW3RwKHRbMV0sdFswXSksZHIodFsyXSldfWZ1bmN0aW9uIFRyKHQpe3ZhciBuPXRbMF0sZT10WzFdLHI9bnAoZSk7cmV0dXJuW3IqbnAobiksciphcChuKSxhcChlKV19ZnVuY3Rpb24gTnIodCxuKXtyZXR1cm4gdFswXSpuWzBdK3RbMV0qblsxXSt0WzJdKm5bMl19ZnVuY3Rpb24gU3IodCxuKXtyZXR1cm5bdFsxXSpuWzJdLXRbMl0qblsxXSx0WzJdKm5bMF0tdFswXSpuWzJdLHRbMF0qblsxXS10WzFdKm5bMF1dfWZ1bmN0aW9uIEVyKHQsbil7dFswXSs9blswXSx0WzFdKz1uWzFdLHRbMl0rPW5bMl19ZnVuY3Rpb24ga3IodCxuKXtyZXR1cm5bdFswXSpuLHRbMV0qbix0WzJdKm5dfWZ1bmN0aW9uIENyKHQpe3ZhciBuPWZwKHRbMF0qdFswXSt0WzFdKnRbMV0rdFsyXSp0WzJdKTt0WzBdLz1uLHRbMV0vPW4sdFsyXS89bn1mdW5jdGlvbiBQcih0LG4pe1RkLnB1c2goTmQ9W3lkPXQsYmQ9dF0pLG48X2QmJihfZD1uKSxuPm1kJiYobWQ9bil9ZnVuY3Rpb24genIodCxuKXt2YXIgZT1UcihbdCpRZCxuKlFkXSk7aWYoQWQpe3ZhciByPVNyKEFkLGUpLGk9U3IoW3JbMV0sLXJbMF0sMF0scik7Q3IoaSksaT1BcihpKTt2YXIgbyxhPXQteGQsdT1hPjA/MTotMSxmPWlbMF0qWmQqdSxjPUpkKGEpPjE4MDtjXih1KnhkPGYmJmY8dSp0KT8obz1pWzFdKlpkKT5tZCYmKG1kPW8pOihmPShmKzM2MCklMzYwLTE4MCxjXih1KnhkPGYmJmY8dSp0KT8obz0taVsxXSpaZCk8X2QmJihfZD1vKToobjxfZCYmKF9kPW4pLG4+bWQmJihtZD1uKSkpLGM/dDx4ZD9Pcih5ZCx0KT5Pcih5ZCxiZCkmJihiZD10KTpPcih0LGJkKT5Pcih5ZCxiZCkmJih5ZD10KTpiZD49eWQ/KHQ8eWQmJih5ZD10KSx0PmJkJiYoYmQ9dCkpOnQ+eGQ/T3IoeWQsdCk+T3IoeWQsYmQpJiYoYmQ9dCk6T3IodCxiZCk+T3IoeWQsYmQpJiYoeWQ9dCl9ZWxzZSBUZC5wdXNoKE5kPVt5ZD10LGJkPXRdKTtuPF9kJiYoX2Q9biksbj5tZCYmKG1kPW4pLEFkPWUseGQ9dH1mdW5jdGlvbiBScigpe2dwLnBvaW50PXpyfWZ1bmN0aW9uIExyKCl7TmRbMF09eWQsTmRbMV09YmQsZ3AucG9pbnQ9UHIsQWQ9bnVsbH1mdW5jdGlvbiBEcih0LG4pe2lmKEFkKXt2YXIgZT10LXhkO3ZwLmFkZChKZChlKT4xODA/ZSsoZT4wPzM2MDotMzYwKTplKX1lbHNlIHdkPXQsTWQ9bjtwcC5wb2ludCh0LG4pLHpyKHQsbil9ZnVuY3Rpb24gVXIoKXtwcC5saW5lU3RhcnQoKX1mdW5jdGlvbiBxcigpe0RyKHdkLE1kKSxwcC5saW5lRW5kKCksSmQodnApPkhkJiYoeWQ9LShiZD0xODApKSxOZFswXT15ZCxOZFsxXT1iZCxBZD1udWxsfWZ1bmN0aW9uIE9yKHQsbil7cmV0dXJuKG4tPXQpPDA/biszNjA6bn1mdW5jdGlvbiBZcih0LG4pe3JldHVybiB0WzBdLW5bMF19ZnVuY3Rpb24gQnIodCxuKXtyZXR1cm4gdFswXTw9dFsxXT90WzBdPD1uJiZuPD10WzFdOm48dFswXXx8dFsxXTxufWZ1bmN0aW9uIEZyKHQsbil7dCo9UWQ7dmFyIGU9bnAobio9UWQpO0lyKGUqbnAodCksZSphcCh0KSxhcChuKSl9ZnVuY3Rpb24gSXIodCxuLGUpe2tkKz0odC1rZCkvKytTZCxDZCs9KG4tQ2QpL1NkLFBkKz0oZS1QZCkvU2R9ZnVuY3Rpb24ganIoKXt5cC5wb2ludD1Icn1mdW5jdGlvbiBIcih0LG4pe3QqPVFkO3ZhciBlPW5wKG4qPVFkKTtCZD1lKm5wKHQpLEZkPWUqYXAodCksSWQ9YXAobikseXAucG9pbnQ9WHIsSXIoQmQsRmQsSWQpfWZ1bmN0aW9uIFhyKHQsbil7dCo9UWQ7dmFyIGU9bnAobio9UWQpLHI9ZSpucCh0KSxpPWUqYXAodCksbz1hcChuKSxhPXRwKGZwKChhPUZkKm8tSWQqaSkqYSsoYT1JZCpyLUJkKm8pKmErKGE9QmQqaS1GZCpyKSphKSxCZCpyK0ZkKmkrSWQqbyk7RWQrPWEsemQrPWEqKEJkKyhCZD1yKSksUmQrPWEqKEZkKyhGZD1pKSksTGQrPWEqKElkKyhJZD1vKSksSXIoQmQsRmQsSWQpfWZ1bmN0aW9uIEdyKCl7eXAucG9pbnQ9RnJ9ZnVuY3Rpb24gVnIoKXt5cC5wb2ludD1Xcn1mdW5jdGlvbiAkcigpe1pyKE9kLFlkKSx5cC5wb2ludD1Gcn1mdW5jdGlvbiBXcih0LG4pe09kPXQsWWQ9bix0Kj1RZCxuKj1RZCx5cC5wb2ludD1acjt2YXIgZT1ucChuKTtCZD1lKm5wKHQpLEZkPWUqYXAodCksSWQ9YXAobiksSXIoQmQsRmQsSWQpfWZ1bmN0aW9uIFpyKHQsbil7dCo9UWQ7dmFyIGU9bnAobio9UWQpLHI9ZSpucCh0KSxpPWUqYXAodCksbz1hcChuKSxhPUZkKm8tSWQqaSx1PUlkKnItQmQqbyxmPUJkKmktRmQqcixjPWZwKGEqYSt1KnUrZipmKSxzPWRyKGMpLGw9YyYmLXMvYztEZCs9bCphLFVkKz1sKnUscWQrPWwqZixFZCs9cyx6ZCs9cyooQmQrKEJkPXIpKSxSZCs9cyooRmQrKEZkPWkpKSxMZCs9cyooSWQrKElkPW8pKSxJcihCZCxGZCxJZCl9ZnVuY3Rpb24gUXIodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIEpyKHQsbil7ZnVuY3Rpb24gZShlLHIpe3JldHVybiBlPXQoZSxyKSxuKGVbMF0sZVsxXSl9cmV0dXJuIHQuaW52ZXJ0JiZuLmludmVydCYmKGUuaW52ZXJ0PWZ1bmN0aW9uKGUscil7cmV0dXJuKGU9bi5pbnZlcnQoZSxyKSkmJnQuaW52ZXJ0KGVbMF0sZVsxXSl9KSxlfWZ1bmN0aW9uIEtyKHQsbil7cmV0dXJuW3Q+R2Q/dC1XZDp0PC1HZD90K1dkOnQsbl19ZnVuY3Rpb24gdGkodCxuLGUpe3JldHVybih0JT1XZCk/bnx8ZT9KcihlaSh0KSxyaShuLGUpKTplaSh0KTpufHxlP3JpKG4sZSk6S3J9ZnVuY3Rpb24gbmkodCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7cmV0dXJuIG4rPXQsW24+R2Q/bi1XZDpuPC1HZD9uK1dkOm4sZV19fWZ1bmN0aW9uIGVpKHQpe3ZhciBuPW5pKHQpO3JldHVybiBuLmludmVydD1uaSgtdCksbn1mdW5jdGlvbiByaSh0LG4pe2Z1bmN0aW9uIGUodCxuKXt2YXIgZT1ucChuKSx1PW5wKHQpKmUsZj1hcCh0KSplLGM9YXAobikscz1jKnIrdSppO3JldHVyblt0cChmKm8tcyphLHUqci1jKmkpLGRyKHMqbytmKmEpXX12YXIgcj1ucCh0KSxpPWFwKHQpLG89bnAobiksYT1hcChuKTtyZXR1cm4gZS5pbnZlcnQ9ZnVuY3Rpb24odCxuKXt2YXIgZT1ucChuKSx1PW5wKHQpKmUsZj1hcCh0KSplLGM9YXAobikscz1jKm8tZiphO3JldHVyblt0cChmKm8rYyphLHUqcitzKmkpLGRyKHMqci11KmkpXX0sZX1mdW5jdGlvbiBpaSh0KXtmdW5jdGlvbiBuKG4pe3JldHVybiBuPXQoblswXSpRZCxuWzFdKlFkKSxuWzBdKj1aZCxuWzFdKj1aZCxufXJldHVybiB0PXRpKHRbMF0qUWQsdFsxXSpRZCx0Lmxlbmd0aD4yP3RbMl0qUWQ6MCksbi5pbnZlcnQ9ZnVuY3Rpb24obil7cmV0dXJuIG49dC5pbnZlcnQoblswXSpRZCxuWzFdKlFkKSxuWzBdKj1aZCxuWzFdKj1aZCxufSxufWZ1bmN0aW9uIG9pKHQsbixlLHIsaSxvKXtpZihlKXt2YXIgYT1ucChuKSx1PWFwKG4pLGY9ciplO251bGw9PWk/KGk9bityKldkLG89bi1mLzIpOihpPWFpKGEsaSksbz1haShhLG8pLChyPjA/aTxvOmk+bykmJihpKz1yKldkKSk7Zm9yKHZhciBjLHM9aTtyPjA/cz5vOnM8bztzLT1mKWM9QXIoW2EsLXUqbnAocyksLXUqYXAocyldKSx0LnBvaW50KGNbMF0sY1sxXSl9fWZ1bmN0aW9uIGFpKHQsbil7KG49VHIobikpWzBdLT10LENyKG4pO3ZhciBlPWhyKC1uWzFdKTtyZXR1cm4oKC1uWzJdPDA/LWU6ZSkrV2QtSGQpJVdkfWZ1bmN0aW9uIHVpKCl7dmFyIHQsbj1bXTtyZXR1cm57cG9pbnQ6ZnVuY3Rpb24obixlKXt0LnB1c2goW24sZV0pfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtuLnB1c2godD1bXSl9LGxpbmVFbmQ6dnIscmVqb2luOmZ1bmN0aW9uKCl7bi5sZW5ndGg+MSYmbi5wdXNoKG4ucG9wKCkuY29uY2F0KG4uc2hpZnQoKSkpfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgZT1uO3JldHVybiBuPVtdLHQ9bnVsbCxlfX19ZnVuY3Rpb24gZmkodCxuKXtyZXR1cm4gSmQodFswXS1uWzBdKTxIZCYmSmQodFsxXS1uWzFdKTxIZH1mdW5jdGlvbiBjaSh0LG4sZSxyKXt0aGlzLng9dCx0aGlzLno9bix0aGlzLm89ZSx0aGlzLmU9cix0aGlzLnY9ITEsdGhpcy5uPXRoaXMucD1udWxsfWZ1bmN0aW9uIHNpKHQsbixlLHIsaSl7dmFyIG8sYSx1PVtdLGY9W107aWYodC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKCEoKG49dC5sZW5ndGgtMSk8PTApKXt2YXIgbixlLHI9dFswXSxhPXRbbl07aWYoZmkocixhKSl7Zm9yKGkubGluZVN0YXJ0KCksbz0wO288bjsrK28paS5wb2ludCgocj10W29dKVswXSxyWzFdKTtpLmxpbmVFbmQoKX1lbHNlIHUucHVzaChlPW5ldyBjaShyLHQsbnVsbCwhMCkpLGYucHVzaChlLm89bmV3IGNpKHIsbnVsbCxlLCExKSksdS5wdXNoKGU9bmV3IGNpKGEsdCxudWxsLCExKSksZi5wdXNoKGUubz1uZXcgY2koYSxudWxsLGUsITApKX19KSx1Lmxlbmd0aCl7Zm9yKGYuc29ydChuKSxsaSh1KSxsaShmKSxvPTAsYT1mLmxlbmd0aDtvPGE7KytvKWZbb10uZT1lPSFlO2Zvcih2YXIgYyxzLGw9dVswXTs7KXtmb3IodmFyIGg9bCxkPSEwO2gudjspaWYoKGg9aC5uKT09PWwpcmV0dXJuO2M9aC56LGkubGluZVN0YXJ0KCk7ZG97aWYoaC52PWguby52PSEwLGguZSl7aWYoZClmb3Iobz0wLGE9Yy5sZW5ndGg7bzxhOysrbylpLnBvaW50KChzPWNbb10pWzBdLHNbMV0pO2Vsc2UgcihoLngsaC5uLngsMSxpKTtoPWgubn1lbHNle2lmKGQpZm9yKGM9aC5wLnosbz1jLmxlbmd0aC0xO28+PTA7LS1vKWkucG9pbnQoKHM9Y1tvXSlbMF0sc1sxXSk7ZWxzZSByKGgueCxoLnAueCwtMSxpKTtoPWgucH1jPShoPWgubykueixkPSFkfXdoaWxlKCFoLnYpO2kubGluZUVuZCgpfX19ZnVuY3Rpb24gbGkodCl7aWYobj10Lmxlbmd0aCl7Zm9yKHZhciBuLGUscj0wLGk9dFswXTsrK3I8bjspaS5uPWU9dFtyXSxlLnA9aSxpPWU7aS5uPWU9dFswXSxlLnA9aX19ZnVuY3Rpb24gaGkodCxuKXt2YXIgZT1uWzBdLHI9blsxXSxpPWFwKHIpLG89W2FwKGUpLC1ucChlKSwwXSxhPTAsdT0wO2twLnJlc2V0KCksMT09PWk/cj1WZCtIZDotMT09PWkmJihyPS1WZC1IZCk7Zm9yKHZhciBmPTAsYz10Lmxlbmd0aDtmPGM7KytmKWlmKGw9KHM9dFtmXSkubGVuZ3RoKWZvcih2YXIgcyxsLGg9c1tsLTFdLGQ9aFswXSxwPWhbMV0vMiskZCx2PWFwKHApLGc9bnAocCkseT0wO3k8bDsrK3ksZD1iLHY9eCxnPXcsaD1fKXt2YXIgXz1zW3ldLGI9X1swXSxtPV9bMV0vMiskZCx4PWFwKG0pLHc9bnAobSksTT1iLWQsQT1NPj0wPzE6LTEsVD1BKk0sTj1UPkdkLFM9dip4O2lmKGtwLmFkZCh0cChTKkEqYXAoVCksZyp3K1MqbnAoVCkpKSxhKz1OP00rQSpXZDpNLE5eZD49ZV5iPj1lKXt2YXIgRT1TcihUcihoKSxUcihfKSk7Q3IoRSk7dmFyIGs9U3IobyxFKTtDcihrKTt2YXIgQz0oTl5NPj0wPy0xOjEpKmRyKGtbMl0pOyhyPkN8fHI9PT1DJiYoRVswXXx8RVsxXSkpJiYodSs9Tl5NPj0wPzE6LTEpfX1yZXR1cm4oYTwtSGR8fGE8SGQmJmtwPC1IZCleMSZ1fWZ1bmN0aW9uIGRpKHQsbixlLHIpe3JldHVybiBmdW5jdGlvbihpKXtmdW5jdGlvbiBvKG4sZSl7dChuLGUpJiZpLnBvaW50KG4sZSl9ZnVuY3Rpb24gYSh0LG4pe3YucG9pbnQodCxuKX1mdW5jdGlvbiB1KCl7bS5wb2ludD1hLHYubGluZVN0YXJ0KCl9ZnVuY3Rpb24gZigpe20ucG9pbnQ9byx2LmxpbmVFbmQoKX1mdW5jdGlvbiBjKHQsbil7cC5wdXNoKFt0LG5dKSxfLnBvaW50KHQsbil9ZnVuY3Rpb24gcygpe18ubGluZVN0YXJ0KCkscD1bXX1mdW5jdGlvbiBsKCl7YyhwWzBdWzBdLHBbMF1bMV0pLF8ubGluZUVuZCgpO3ZhciB0LG4sZSxyLG89Xy5jbGVhbigpLGE9Zy5yZXN1bHQoKSx1PWEubGVuZ3RoO2lmKHAucG9wKCksaC5wdXNoKHApLHA9bnVsbCx1KWlmKDEmbyl7aWYoZT1hWzBdLChuPWUubGVuZ3RoLTEpPjApe2ZvcihifHwoaS5wb2x5Z29uU3RhcnQoKSxiPSEwKSxpLmxpbmVTdGFydCgpLHQ9MDt0PG47Kyt0KWkucG9pbnQoKHI9ZVt0XSlbMF0sclsxXSk7aS5saW5lRW5kKCl9fWVsc2UgdT4xJiYyJm8mJmEucHVzaChhLnBvcCgpLmNvbmNhdChhLnNoaWZ0KCkpKSxkLnB1c2goYS5maWx0ZXIocGkpKX12YXIgaCxkLHAsdj1uKGkpLGc9dWkoKSxfPW4oZyksYj0hMSxtPXtwb2ludDpvLGxpbmVTdGFydDp1LGxpbmVFbmQ6Zixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXttLnBvaW50PWMsbS5saW5lU3RhcnQ9cyxtLmxpbmVFbmQ9bCxkPVtdLGg9W119LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXttLnBvaW50PW8sbS5saW5lU3RhcnQ9dSxtLmxpbmVFbmQ9ZixkPXkoZCk7dmFyIHQ9aGkoaCxyKTtkLmxlbmd0aD8oYnx8KGkucG9seWdvblN0YXJ0KCksYj0hMCksc2koZCx2aSx0LGUsaSkpOnQmJihifHwoaS5wb2x5Z29uU3RhcnQoKSxiPSEwKSxpLmxpbmVTdGFydCgpLGUobnVsbCxudWxsLDEsaSksaS5saW5lRW5kKCkpLGImJihpLnBvbHlnb25FbmQoKSxiPSExKSxkPWg9bnVsbH0sc3BoZXJlOmZ1bmN0aW9uKCl7aS5wb2x5Z29uU3RhcnQoKSxpLmxpbmVTdGFydCgpLGUobnVsbCxudWxsLDEsaSksaS5saW5lRW5kKCksaS5wb2x5Z29uRW5kKCl9fTtyZXR1cm4gbX19ZnVuY3Rpb24gcGkodCl7cmV0dXJuIHQubGVuZ3RoPjF9ZnVuY3Rpb24gdmkodCxuKXtyZXR1cm4oKHQ9dC54KVswXTwwP3RbMV0tVmQtSGQ6VmQtdFsxXSktKChuPW4ueClbMF08MD9uWzFdLVZkLUhkOlZkLW5bMV0pfWZ1bmN0aW9uIGdpKHQpe2Z1bmN0aW9uIG4odCxuKXtyZXR1cm4gbnAodCkqbnAobik+aX1mdW5jdGlvbiBlKHQsbixlKXt2YXIgcj1bMSwwLDBdLG89U3IoVHIodCksVHIobikpLGE9TnIobyxvKSx1PW9bMF0sZj1hLXUqdTtpZighZilyZXR1cm4hZSYmdDt2YXIgYz1pKmEvZixzPS1pKnUvZixsPVNyKHIsbyksaD1rcihyLGMpO0VyKGgsa3IobyxzKSk7dmFyIGQ9bCxwPU5yKGgsZCksdj1OcihkLGQpLGc9cCpwLXYqKE5yKGgsaCktMSk7aWYoIShnPDApKXt2YXIgeT1mcChnKSxfPWtyKGQsKC1wLXkpL3YpO2lmKEVyKF8saCksXz1BcihfKSwhZSlyZXR1cm4gXzt2YXIgYixtPXRbMF0seD1uWzBdLHc9dFsxXSxNPW5bMV07eDxtJiYoYj1tLG09eCx4PWIpO3ZhciBBPXgtbSxUPUpkKEEtR2QpPEhkO2lmKCFUJiZNPHcmJihiPXcsdz1NLE09YiksVHx8QTxIZD9UP3crTT4wXl9bMV08KEpkKF9bMF0tbSk8SGQ/dzpNKTp3PD1fWzFdJiZfWzFdPD1NOkE+R2ReKG08PV9bMF0mJl9bMF08PXgpKXt2YXIgTj1rcihkLCgtcCt5KS92KTtyZXR1cm4gRXIoTixoKSxbXyxBcihOKV19fX1mdW5jdGlvbiByKG4sZSl7dmFyIHI9YT90OkdkLXQsaT0wO3JldHVybiBuPC1yP2l8PTE6bj5yJiYoaXw9MiksZTwtcj9pfD00OmU+ciYmKGl8PTgpLGl9dmFyIGk9bnAodCksbz02KlFkLGE9aT4wLHU9SmQoaSk+SGQ7cmV0dXJuIGRpKG4sZnVuY3Rpb24odCl7dmFyIGksbyxmLGMscztyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7Yz1mPSExLHM9MX0scG9pbnQ6ZnVuY3Rpb24obCxoKXt2YXIgZCxwPVtsLGhdLHY9bihsLGgpLGc9YT92PzA6cihsLGgpOnY/cihsKyhsPDA/R2Q6LUdkKSxoKTowO2lmKCFpJiYoYz1mPXYpJiZ0LmxpbmVTdGFydCgpLHYhPT1mJiYoIShkPWUoaSxwKSl8fGZpKGksZCl8fGZpKHAsZCkpJiYocFswXSs9SGQscFsxXSs9SGQsdj1uKHBbMF0scFsxXSkpLHYhPT1mKXM9MCx2Pyh0LmxpbmVTdGFydCgpLGQ9ZShwLGkpLHQucG9pbnQoZFswXSxkWzFdKSk6KGQ9ZShpLHApLHQucG9pbnQoZFswXSxkWzFdKSx0LmxpbmVFbmQoKSksaT1kO2Vsc2UgaWYodSYmaSYmYV52KXt2YXIgeTtnJm98fCEoeT1lKHAsaSwhMCkpfHwocz0wLGE/KHQubGluZVN0YXJ0KCksdC5wb2ludCh5WzBdWzBdLHlbMF1bMV0pLHQucG9pbnQoeVsxXVswXSx5WzFdWzFdKSx0LmxpbmVFbmQoKSk6KHQucG9pbnQoeVsxXVswXSx5WzFdWzFdKSx0LmxpbmVFbmQoKSx0LmxpbmVTdGFydCgpLHQucG9pbnQoeVswXVswXSx5WzBdWzFdKSkpfSF2fHxpJiZmaShpLHApfHx0LnBvaW50KHBbMF0scFsxXSksaT1wLGY9dixvPWd9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtmJiZ0LmxpbmVFbmQoKSxpPW51bGx9LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIHN8KGMmJmYpPDwxfX19LGZ1bmN0aW9uKG4sZSxyLGkpe29pKGksdCxvLHIsbixlKX0sYT9bMCwtdF06Wy1HZCx0LUdkXSl9ZnVuY3Rpb24geWkodCxuLGUscil7ZnVuY3Rpb24gaShpLG8pe3JldHVybiB0PD1pJiZpPD1lJiZuPD1vJiZvPD1yfWZ1bmN0aW9uIG8oaSxvLHUsYyl7dmFyIHM9MCxsPTA7aWYobnVsbD09aXx8KHM9YShpLHUpKSE9PShsPWEobyx1KSl8fGYoaSxvKTwwXnU+MClkb3tjLnBvaW50KDA9PT1zfHwzPT09cz90OmUscz4xP3I6bil9d2hpbGUoKHM9KHMrdSs0KSU0KSE9PWwpO2Vsc2UgYy5wb2ludChvWzBdLG9bMV0pfWZ1bmN0aW9uIGEocixpKXtyZXR1cm4gSmQoclswXS10KTxIZD9pPjA/MDozOkpkKHJbMF0tZSk8SGQ/aT4wPzI6MTpKZChyWzFdLW4pPEhkP2k+MD8xOjA6aT4wPzM6Mn1mdW5jdGlvbiB1KHQsbil7cmV0dXJuIGYodC54LG4ueCl9ZnVuY3Rpb24gZih0LG4pe3ZhciBlPWEodCwxKSxyPWEobiwxKTtyZXR1cm4gZSE9PXI/ZS1yOjA9PT1lP25bMV0tdFsxXToxPT09ZT90WzBdLW5bMF06Mj09PWU/dFsxXS1uWzFdOm5bMF0tdFswXX1yZXR1cm4gZnVuY3Rpb24oYSl7ZnVuY3Rpb24gZih0LG4pe2kodCxuKSYmdy5wb2ludCh0LG4pfWZ1bmN0aW9uIGMobyxhKXt2YXIgdT1pKG8sYSk7aWYobCYmaC5wdXNoKFtvLGFdKSxtKWQ9byxwPWEsdj11LG09ITEsdSYmKHcubGluZVN0YXJ0KCksdy5wb2ludChvLGEpKTtlbHNlIGlmKHUmJmIpdy5wb2ludChvLGEpO2Vsc2V7dmFyIGY9W2c9TWF0aC5tYXgoenAsTWF0aC5taW4oUHAsZykpLF89TWF0aC5tYXgoenAsTWF0aC5taW4oUHAsXykpXSxjPVtvPU1hdGgubWF4KHpwLE1hdGgubWluKFBwLG8pKSxhPU1hdGgubWF4KHpwLE1hdGgubWluKFBwLGEpKV07IWZ1bmN0aW9uKHQsbixlLHIsaSxvKXt2YXIgYSx1PXRbMF0sZj10WzFdLGM9MCxzPTEsbD1uWzBdLXUsaD1uWzFdLWY7aWYoYT1lLXUsbHx8IShhPjApKXtpZihhLz1sLGw8MCl7aWYoYTxjKXJldHVybjthPHMmJihzPWEpfWVsc2UgaWYobD4wKXtpZihhPnMpcmV0dXJuO2E+YyYmKGM9YSl9aWYoYT1pLXUsbHx8IShhPDApKXtpZihhLz1sLGw8MCl7aWYoYT5zKXJldHVybjthPmMmJihjPWEpfWVsc2UgaWYobD4wKXtpZihhPGMpcmV0dXJuO2E8cyYmKHM9YSl9aWYoYT1yLWYsaHx8IShhPjApKXtpZihhLz1oLGg8MCl7aWYoYTxjKXJldHVybjthPHMmJihzPWEpfWVsc2UgaWYoaD4wKXtpZihhPnMpcmV0dXJuO2E+YyYmKGM9YSl9aWYoYT1vLWYsaHx8IShhPDApKXtpZihhLz1oLGg8MCl7aWYoYT5zKXJldHVybjthPmMmJihjPWEpfWVsc2UgaWYoaD4wKXtpZihhPGMpcmV0dXJuO2E8cyYmKHM9YSl9cmV0dXJuIGM+MCYmKHRbMF09dStjKmwsdFsxXT1mK2MqaCksczwxJiYoblswXT11K3MqbCxuWzFdPWYrcypoKSwhMH19fX19KGYsYyx0LG4sZSxyKT91JiYody5saW5lU3RhcnQoKSx3LnBvaW50KG8sYSkseD0hMSk6KGJ8fCh3LmxpbmVTdGFydCgpLHcucG9pbnQoZlswXSxmWzFdKSksdy5wb2ludChjWzBdLGNbMV0pLHV8fHcubGluZUVuZCgpLHg9ITEpfWc9byxfPWEsYj11fXZhciBzLGwsaCxkLHAsdixnLF8sYixtLHgsdz1hLE09dWkoKSxBPXtwb2ludDpmLGxpbmVTdGFydDpmdW5jdGlvbigpe0EucG9pbnQ9YyxsJiZsLnB1c2goaD1bXSksbT0hMCxiPSExLGc9Xz1OYU59LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzJiYoYyhkLHApLHYmJmImJk0ucmVqb2luKCkscy5wdXNoKE0ucmVzdWx0KCkpKSxBLnBvaW50PWYsYiYmdy5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3c9TSxzPVtdLGw9W10seD0hMH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3ZhciBuPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPTAsZT0wLGk9bC5sZW5ndGg7ZTxpOysrZSlmb3IodmFyIG8sYSx1PWxbZV0sZj0xLGM9dS5sZW5ndGgscz11WzBdLGg9c1swXSxkPXNbMV07ZjxjOysrZilvPWgsYT1kLGg9KHM9dVtmXSlbMF0sZD1zWzFdLGE8PXI/ZD5yJiYoaC1vKSooci1hKT4oZC1hKSoodC1vKSYmKytuOmQ8PXImJihoLW8pKihyLWEpPChkLWEpKih0LW8pJiYtLW47cmV0dXJuIG59KCksZT14JiZuLGk9KHM9eShzKSkubGVuZ3RoOyhlfHxpKSYmKGEucG9seWdvblN0YXJ0KCksZSYmKGEubGluZVN0YXJ0KCksbyhudWxsLG51bGwsMSxhKSxhLmxpbmVFbmQoKSksaSYmc2kocyx1LG4sbyxhKSxhLnBvbHlnb25FbmQoKSksdz1hLHM9bD1oPW51bGx9fTtyZXR1cm4gQX19ZnVuY3Rpb24gX2koKXtMcC5wb2ludD1McC5saW5lRW5kPXZyfWZ1bmN0aW9uIGJpKHQsbil7X3A9dCo9UWQsYnA9YXAobio9UWQpLG1wPW5wKG4pLExwLnBvaW50PW1pfWZ1bmN0aW9uIG1pKHQsbil7dCo9UWQ7dmFyIGU9YXAobio9UWQpLHI9bnAobiksaT1KZCh0LV9wKSxvPW5wKGkpLGE9ciphcChpKSx1PW1wKmUtYnAqcipvLGY9YnAqZSttcCpyKm87UnAuYWRkKHRwKGZwKGEqYSt1KnUpLGYpKSxfcD10LGJwPWUsbXA9cn1mdW5jdGlvbiB4aSh0KXtyZXR1cm4gUnAucmVzZXQoKSxicih0LExwKSwrUnB9ZnVuY3Rpb24gd2kodCxuKXtyZXR1cm4gRHBbMF09dCxEcFsxXT1uLHhpKFVwKX1mdW5jdGlvbiBNaSh0LG4pe3JldHVybiEoIXR8fCFPcC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpKSYmT3BbdC50eXBlXSh0LG4pfWZ1bmN0aW9uIEFpKHQsbil7cmV0dXJuIDA9PT13aSh0LG4pfWZ1bmN0aW9uIFRpKHQsbil7dmFyIGU9d2kodFswXSx0WzFdKTtyZXR1cm4gd2kodFswXSxuKSt3aShuLHRbMV0pPD1lK0hkfWZ1bmN0aW9uIE5pKHQsbil7cmV0dXJuISFoaSh0Lm1hcChTaSksRWkobikpfWZ1bmN0aW9uIFNpKHQpe3JldHVybih0PXQubWFwKEVpKSkucG9wKCksdH1mdW5jdGlvbiBFaSh0KXtyZXR1cm5bdFswXSpRZCx0WzFdKlFkXX1mdW5jdGlvbiBraSh0LG4sZSl7dmFyIHI9cyh0LG4tSGQsZSkuY29uY2F0KG4pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gci5tYXAoZnVuY3Rpb24obil7cmV0dXJuW3Qsbl19KX19ZnVuY3Rpb24gQ2kodCxuLGUpe3ZhciByPXModCxuLUhkLGUpLmNvbmNhdChuKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHIubWFwKGZ1bmN0aW9uKG4pe3JldHVybltuLHRdfSl9fWZ1bmN0aW9uIFBpKCl7ZnVuY3Rpb24gdCgpe3JldHVybnt0eXBlOlwiTXVsdGlMaW5lU3RyaW5nXCIsY29vcmRpbmF0ZXM6bigpfX1mdW5jdGlvbiBuKCl7cmV0dXJuIHMoZXAoby95KSp5LGkseSkubWFwKGQpLmNvbmNhdChzKGVwKGMvXykqXyxmLF8pLm1hcChwKSkuY29uY2F0KHMoZXAoci92KSp2LGUsdikuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBKZCh0JXkpPkhkfSkubWFwKGwpKS5jb25jYXQocyhlcCh1L2cpKmcsYSxnKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIEpkKHQlXyk+SGR9KS5tYXAoaCkpfXZhciBlLHIsaSxvLGEsdSxmLGMsbCxoLGQscCx2PTEwLGc9dix5PTkwLF89MzYwLGI9Mi41O3JldHVybiB0LmxpbmVzPWZ1bmN0aW9uKCl7cmV0dXJuIG4oKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6XCJMaW5lU3RyaW5nXCIsY29vcmRpbmF0ZXM6dH19KX0sdC5vdXRsaW5lPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6XCJQb2x5Z29uXCIsY29vcmRpbmF0ZXM6W2QobykuY29uY2F0KHAoZikuc2xpY2UoMSksZChpKS5yZXZlcnNlKCkuc2xpY2UoMSkscChjKS5yZXZlcnNlKCkuc2xpY2UoMSkpXX19LHQuZXh0ZW50PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3QuZXh0ZW50TWFqb3IobikuZXh0ZW50TWlub3Iobik6dC5leHRlbnRNaW5vcigpfSx0LmV4dGVudE1ham9yPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPStuWzBdWzBdLGk9K25bMV1bMF0sYz0rblswXVsxXSxmPStuWzFdWzFdLG8+aSYmKG49byxvPWksaT1uKSxjPmYmJihuPWMsYz1mLGY9biksdC5wcmVjaXNpb24oYikpOltbbyxjXSxbaSxmXV19LHQuZXh0ZW50TWlub3I9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K25bMF1bMF0sZT0rblsxXVswXSx1PStuWzBdWzFdLGE9K25bMV1bMV0scj5lJiYobj1yLHI9ZSxlPW4pLHU+YSYmKG49dSx1PWEsYT1uKSx0LnByZWNpc2lvbihiKSk6W1tyLHVdLFtlLGFdXX0sdC5zdGVwPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3Quc3RlcE1ham9yKG4pLnN0ZXBNaW5vcihuKTp0LnN0ZXBNaW5vcigpfSx0LnN0ZXBNYWpvcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeT0rblswXSxfPStuWzFdLHQpOlt5LF9dfSx0LnN0ZXBNaW5vcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odj0rblswXSxnPStuWzFdLHQpOlt2LGddfSx0LnByZWNpc2lvbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYj0rbixsPWtpKHUsYSw5MCksaD1DaShyLGUsYiksZD1raShjLGYsOTApLHA9Q2kobyxpLGIpLHQpOmJ9LHQuZXh0ZW50TWFqb3IoW1stMTgwLC05MCtIZF0sWzE4MCw5MC1IZF1dKS5leHRlbnRNaW5vcihbWy0xODAsLTgwLUhkXSxbMTgwLDgwK0hkXV0pfWZ1bmN0aW9uIHppKHQpe3JldHVybiB0fWZ1bmN0aW9uIFJpKCl7RnAucG9pbnQ9TGl9ZnVuY3Rpb24gTGkodCxuKXtGcC5wb2ludD1EaSx4cD1NcD10LHdwPUFwPW59ZnVuY3Rpb24gRGkodCxuKXtCcC5hZGQoQXAqdC1NcCpuKSxNcD10LEFwPW59ZnVuY3Rpb24gVWkoKXtEaSh4cCx3cCl9ZnVuY3Rpb24gcWkodCxuKXtWcCs9dCwkcCs9biwrK1dwfWZ1bmN0aW9uIE9pKCl7ZXYucG9pbnQ9WWl9ZnVuY3Rpb24gWWkodCxuKXtldi5wb2ludD1CaSxxaShTcD10LEVwPW4pfWZ1bmN0aW9uIEJpKHQsbil7dmFyIGU9dC1TcCxyPW4tRXAsaT1mcChlKmUrcipyKTtacCs9aSooU3ArdCkvMixRcCs9aSooRXArbikvMixKcCs9aSxxaShTcD10LEVwPW4pfWZ1bmN0aW9uIEZpKCl7ZXYucG9pbnQ9cWl9ZnVuY3Rpb24gSWkoKXtldi5wb2ludD1IaX1mdW5jdGlvbiBqaSgpe1hpKFRwLE5wKX1mdW5jdGlvbiBIaSh0LG4pe2V2LnBvaW50PVhpLHFpKFRwPVNwPXQsTnA9RXA9bil9ZnVuY3Rpb24gWGkodCxuKXt2YXIgZT10LVNwLHI9bi1FcCxpPWZwKGUqZStyKnIpO1pwKz1pKihTcCt0KS8yLFFwKz1pKihFcCtuKS8yLEpwKz1pLEtwKz0oaT1FcCp0LVNwKm4pKihTcCt0KSx0dis9aSooRXArbiksbnYrPTMqaSxxaShTcD10LEVwPW4pfWZ1bmN0aW9uIEdpKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBWaSh0LG4pe2N2LnBvaW50PSRpLGl2PWF2PXQsb3Y9dXY9bn1mdW5jdGlvbiAkaSh0LG4pe2F2LT10LHV2LT1uLGZ2LmFkZChmcChhdiphdit1dip1dikpLGF2PXQsdXY9bn1mdW5jdGlvbiBXaSgpe3RoaXMuX3N0cmluZz1bXX1mdW5jdGlvbiBaaSh0KXtyZXR1cm5cIm0wLFwiK3QrXCJhXCIrdCtcIixcIit0K1wiIDAgMSwxIDAsXCIrLTIqdCtcImFcIit0K1wiLFwiK3QrXCIgMCAxLDEgMCxcIisyKnQrXCJ6XCJ9ZnVuY3Rpb24gUWkodCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBlPW5ldyBKaTtmb3IodmFyIHIgaW4gdCllW3JdPXRbcl07cmV0dXJuIGUuc3RyZWFtPW4sZX19ZnVuY3Rpb24gSmkoKXt9ZnVuY3Rpb24gS2kodCxuLGUpe3ZhciByPXQuY2xpcEV4dGVudCYmdC5jbGlwRXh0ZW50KCk7cmV0dXJuIHQuc2NhbGUoMTUwKS50cmFuc2xhdGUoWzAsMF0pLG51bGwhPXImJnQuY2xpcEV4dGVudChudWxsKSxicihlLHQuc3RyZWFtKEdwKSksbihHcC5yZXN1bHQoKSksbnVsbCE9ciYmdC5jbGlwRXh0ZW50KHIpLHR9ZnVuY3Rpb24gdG8odCxuLGUpe3JldHVybiBLaSh0LGZ1bmN0aW9uKGUpe3ZhciByPW5bMV1bMF0tblswXVswXSxpPW5bMV1bMV0tblswXVsxXSxvPU1hdGgubWluKHIvKGVbMV1bMF0tZVswXVswXSksaS8oZVsxXVsxXS1lWzBdWzFdKSksYT0rblswXVswXSsoci1vKihlWzFdWzBdK2VbMF1bMF0pKS8yLHU9K25bMF1bMV0rKGktbyooZVsxXVsxXStlWzBdWzFdKSkvMjt0LnNjYWxlKDE1MCpvKS50cmFuc2xhdGUoW2EsdV0pfSxlKX1mdW5jdGlvbiBubyh0LG4sZSl7cmV0dXJuIHRvKHQsW1swLDBdLG5dLGUpfWZ1bmN0aW9uIGVvKHQsbixlKXtyZXR1cm4gS2kodCxmdW5jdGlvbihlKXt2YXIgcj0rbixpPXIvKGVbMV1bMF0tZVswXVswXSksbz0oci1pKihlWzFdWzBdK2VbMF1bMF0pKS8yLGE9LWkqZVswXVsxXTt0LnNjYWxlKDE1MCppKS50cmFuc2xhdGUoW28sYV0pfSxlKX1mdW5jdGlvbiBybyh0LG4sZSl7cmV0dXJuIEtpKHQsZnVuY3Rpb24oZSl7dmFyIHI9K24saT1yLyhlWzFdWzFdLWVbMF1bMV0pLG89LWkqZVswXVswXSxhPShyLWkqKGVbMV1bMV0rZVswXVsxXSkpLzI7dC5zY2FsZSgxNTAqaSkudHJhbnNsYXRlKFtvLGFdKX0sZSl9ZnVuY3Rpb24gaW8odCxuKXtyZXR1cm4rbj9mdW5jdGlvbih0LG4pe2Z1bmN0aW9uIGUocixpLG8sYSx1LGYsYyxzLGwsaCxkLHAsdixnKXt2YXIgeT1jLXIsXz1zLWksYj15KnkrXypfO2lmKGI+NCpuJiZ2LS0pe3ZhciBtPWEraCx4PXUrZCx3PWYrcCxNPWZwKG0qbSt4Kngrdyp3KSxBPWRyKHcvPU0pLFQ9SmQoSmQodyktMSk8SGR8fEpkKG8tbCk8SGQ/KG8rbCkvMjp0cCh4LG0pLE49dChULEEpLFM9TlswXSxFPU5bMV0saz1TLXIsQz1FLWksUD1fKmsteSpDOyhQKlAvYj5ufHxKZCgoeSprK18qQykvYi0uNSk+LjN8fGEqaCt1KmQrZipwPGx2KSYmKGUocixpLG8sYSx1LGYsUyxFLFQsbS89TSx4Lz1NLHcsdixnKSxnLnBvaW50KFMsRSksZShTLEUsVCxtLHgsdyxjLHMsbCxoLGQscCx2LGcpKX19cmV0dXJuIGZ1bmN0aW9uKG4pe2Z1bmN0aW9uIHIoZSxyKXtlPXQoZSxyKSxuLnBvaW50KGVbMF0sZVsxXSl9ZnVuY3Rpb24gaSgpe3k9TmFOLHcucG9pbnQ9byxuLmxpbmVTdGFydCgpfWZ1bmN0aW9uIG8ocixpKXt2YXIgbz1UcihbcixpXSksYT10KHIsaSk7ZSh5LF8sZyxiLG0seCx5PWFbMF0sXz1hWzFdLGc9cixiPW9bMF0sbT1vWzFdLHg9b1syXSxzdixuKSxuLnBvaW50KHksXyl9ZnVuY3Rpb24gYSgpe3cucG9pbnQ9cixuLmxpbmVFbmQoKX1mdW5jdGlvbiB1KCl7aSgpLHcucG9pbnQ9Zix3LmxpbmVFbmQ9Y31mdW5jdGlvbiBmKHQsbil7byhzPXQsbiksbD15LGg9XyxkPWIscD1tLHY9eCx3LnBvaW50PW99ZnVuY3Rpb24gYygpe2UoeSxfLGcsYixtLHgsbCxoLHMsZCxwLHYsc3Ysbiksdy5saW5lRW5kPWEsYSgpfXZhciBzLGwsaCxkLHAsdixnLHksXyxiLG0seCx3PXtwb2ludDpyLGxpbmVTdGFydDppLGxpbmVFbmQ6YSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtuLnBvbHlnb25TdGFydCgpLHcubGluZVN0YXJ0PXV9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtuLnBvbHlnb25FbmQoKSx3LmxpbmVTdGFydD1pfX07cmV0dXJuIHd9fSh0LG4pOmZ1bmN0aW9uKHQpe3JldHVybiBRaSh7cG9pbnQ6ZnVuY3Rpb24obixlKXtuPXQobixlKSx0aGlzLnN0cmVhbS5wb2ludChuWzBdLG5bMV0pfX0pfSh0KX1mdW5jdGlvbiBvbyh0LG4sZSxyKXtmdW5jdGlvbiBpKHQscil7cmV0dXJuW3UqdC1mKnIrbixlLWYqdC11KnJdfXZhciBvPW5wKHIpLGE9YXAociksdT1vKnQsZj1hKnQsYz1vL3Qscz1hL3QsbD0oYSplLW8qbikvdCxoPShhKm4rbyplKS90O3JldHVybiBpLmludmVydD1mdW5jdGlvbih0LG4pe3JldHVybltjKnQtcypuK2wsaC1zKnQtYypuXX0saX1mdW5jdGlvbiBhbyh0KXtyZXR1cm4gdW8oZnVuY3Rpb24oKXtyZXR1cm4gdH0pKCl9ZnVuY3Rpb24gdW8odCl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gbCh0WzBdKlFkLHRbMV0qUWQpfWZ1bmN0aW9uIGUoKXt2YXIgdD1vbyhwLDAsMCx3KS5hcHBseShudWxsLGkoeSxfKSksbj0odz9vbzpmdW5jdGlvbih0LG4sZSl7ZnVuY3Rpb24gcihyLGkpe3JldHVybltuK3QqcixlLXQqaV19cmV0dXJuIHIuaW52ZXJ0PWZ1bmN0aW9uKHIsaSl7cmV0dXJuWyhyLW4pL3QsKGUtaSkvdF19LHJ9KShwLHYtdFswXSxnLXRbMV0sdyk7cmV0dXJuIG89dGkoYixtLHgpLHM9SnIoaSxuKSxsPUpyKG8scyksYz1pbyhzLFMpLHIoKX1mdW5jdGlvbiByKCl7cmV0dXJuIGg9ZD1udWxsLG59dmFyIGksbyxhLHUsZixjLHMsbCxoLGQscD0xNTAsdj00ODAsZz0yNTAseT0wLF89MCxiPTAsbT0wLHg9MCx3PTAsTT1udWxsLEE9Q3AsVD1udWxsLE49emksUz0uNTtyZXR1cm4gbi5zdHJlYW09ZnVuY3Rpb24odCl7cmV0dXJuIGgmJmQ9PT10P2g6aD1odihmdW5jdGlvbih0KXtyZXR1cm4gUWkoe3BvaW50OmZ1bmN0aW9uKG4sZSl7dmFyIHI9dChuLGUpO3JldHVybiB0aGlzLnN0cmVhbS5wb2ludChyWzBdLHJbMV0pfX0pfShvKShBKGMoTihkPXQpKSkpKX0sbi5wcmVjbGlwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhBPXQsTT12b2lkIDAscigpKTpBfSxuLnBvc3RjbGlwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhOPXQsVD1hPXU9Zj1udWxsLHIoKSk6Tn0sbi5jbGlwQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEE9K3Q/Z2koTT10KlFkKTooTT1udWxsLENwKSxyKCkpOk0qWmR9LG4uY2xpcEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oTj1udWxsPT10PyhUPWE9dT1mPW51bGwsemkpOnlpKFQ9K3RbMF1bMF0sYT0rdFswXVsxXSx1PSt0WzFdWzBdLGY9K3RbMV1bMV0pLHIoKSk6bnVsbD09VD9udWxsOltbVCxhXSxbdSxmXV19LG4uc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9K3QsZSgpKTpwfSxuLnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odj0rdFswXSxnPSt0WzFdLGUoKSk6W3YsZ119LG4uY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh5PXRbMF0lMzYwKlFkLF89dFsxXSUzNjAqUWQsZSgpKTpbeSpaZCxfKlpkXX0sbi5yb3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGI9dFswXSUzNjAqUWQsbT10WzFdJTM2MCpRZCx4PXQubGVuZ3RoPjI/dFsyXSUzNjAqUWQ6MCxlKCkpOltiKlpkLG0qWmQseCpaZF19LG4uYW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHc9dCUzNjAqUWQsZSgpKTp3KlpkfSxuLnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1pbyhzLFM9dCp0KSxyKCkpOmZwKFMpfSxuLmZpdEV4dGVudD1mdW5jdGlvbih0LGUpe3JldHVybiB0byhuLHQsZSl9LG4uZml0U2l6ZT1mdW5jdGlvbih0LGUpe3JldHVybiBubyhuLHQsZSl9LG4uZml0V2lkdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZW8obix0LGUpfSxuLmZpdEhlaWdodD1mdW5jdGlvbih0LGUpe3JldHVybiBybyhuLHQsZSl9LGZ1bmN0aW9uKCl7cmV0dXJuIGk9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbi5pbnZlcnQ9aS5pbnZlcnQmJmZ1bmN0aW9uKHQpe3JldHVybih0PWwuaW52ZXJ0KHRbMF0sdFsxXSkpJiZbdFswXSpaZCx0WzFdKlpkXX0sZSgpfX1mdW5jdGlvbiBmbyh0KXt2YXIgbj0wLGU9R2QvMyxyPXVvKHQpLGk9cihuLGUpO3JldHVybiBpLnBhcmFsbGVscz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9yKG49dFswXSpRZCxlPXRbMV0qUWQpOltuKlpkLGUqWmRdfSxpfWZ1bmN0aW9uIGNvKHQsbil7ZnVuY3Rpb24gZSh0LG4pe3ZhciBlPWZwKG8tMippKmFwKG4pKS9pO3JldHVybltlKmFwKHQqPWkpLGEtZSpucCh0KV19dmFyIHI9YXAodCksaT0ocithcChuKSkvMjtpZihKZChpKTxIZClyZXR1cm4gZnVuY3Rpb24odCl7ZnVuY3Rpb24gbih0LG4pe3JldHVyblt0KmUsYXAobikvZV19dmFyIGU9bnAodCk7cmV0dXJuIG4uaW52ZXJ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuW3QvZSxkcihuKmUpXX0sbn0odCk7dmFyIG89MStyKigyKmktciksYT1mcChvKS9pO3JldHVybiBlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlPWEtbjtyZXR1cm5bdHAodCxKZChlKSkvaSp1cChlKSxkcigoby0odCp0K2UqZSkqaSppKS8oMippKSldfSxlfWZ1bmN0aW9uIHNvKCl7cmV0dXJuIGZvKGNvKS5zY2FsZSgxNTUuNDI0KS5jZW50ZXIoWzAsMzMuNjQ0Ml0pfWZ1bmN0aW9uIGxvKCl7cmV0dXJuIHNvKCkucGFyYWxsZWxzKFsyOS41LDQ1LjVdKS5zY2FsZSgxMDcwKS50cmFuc2xhdGUoWzQ4MCwyNTBdKS5yb3RhdGUoWzk2LDBdKS5jZW50ZXIoWy0uNiwzOC43XSl9ZnVuY3Rpb24gaG8odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7dmFyIHI9bnAobiksaT1ucChlKSxvPXQocippKTtyZXR1cm5bbyppKmFwKG4pLG8qYXAoZSldfX1mdW5jdGlvbiBwbyh0KXtyZXR1cm4gZnVuY3Rpb24obixlKXt2YXIgcj1mcChuKm4rZSplKSxpPXQociksbz1hcChpKSxhPW5wKGkpO3JldHVyblt0cChuKm8sciphKSxkcihyJiZlKm8vcildfX1mdW5jdGlvbiB2byh0LG4pe3JldHVyblt0LGlwKGNwKChWZCtuKS8yKSldfWZ1bmN0aW9uIGdvKHQpe2Z1bmN0aW9uIG4oKXt2YXIgbj1HZCp1KCksYT1vKGlpKG8ucm90YXRlKCkpLmludmVydChbMCwwXSkpO3JldHVybiBjKG51bGw9PXM/W1thWzBdLW4sYVsxXS1uXSxbYVswXStuLGFbMV0rbl1dOnQ9PT12bz9bW01hdGgubWF4KGFbMF0tbixzKSxlXSxbTWF0aC5taW4oYVswXStuLHIpLGldXTpbW3MsTWF0aC5tYXgoYVsxXS1uLGUpXSxbcixNYXRoLm1pbihhWzFdK24saSldXSl9dmFyIGUscixpLG89YW8odCksYT1vLmNlbnRlcix1PW8uc2NhbGUsZj1vLnRyYW5zbGF0ZSxjPW8uY2xpcEV4dGVudCxzPW51bGw7cmV0dXJuIG8uc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHUodCksbigpKTp1KCl9LG8udHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmKHQpLG4oKSk6ZigpfSxvLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYSh0KSxuKCkpOmEoKX0sby5jbGlwRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P3M9ZT1yPWk9bnVsbDoocz0rdFswXVswXSxlPSt0WzBdWzFdLHI9K3RbMV1bMF0saT0rdFsxXVsxXSksbigpKTpudWxsPT1zP251bGw6W1tzLGVdLFtyLGldXX0sbigpfWZ1bmN0aW9uIHlvKHQpe3JldHVybiBjcCgoVmQrdCkvMil9ZnVuY3Rpb24gX28odCxuKXtmdW5jdGlvbiBlKHQsbil7bz4wP248LVZkK0hkJiYobj0tVmQrSGQpOm4+VmQtSGQmJihuPVZkLUhkKTt2YXIgZT1vL29wKHlvKG4pLGkpO3JldHVybltlKmFwKGkqdCksby1lKm5wKGkqdCldfXZhciByPW5wKHQpLGk9dD09PW4/YXAodCk6aXAoci9ucChuKSkvaXAoeW8obikveW8odCkpLG89cipvcCh5byh0KSxpKS9pO3JldHVybiBpPyhlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlPW8tbixyPXVwKGkpKmZwKHQqdCtlKmUpO3JldHVyblt0cCh0LEpkKGUpKS9pKnVwKGUpLDIqS2Qob3Aoby9yLDEvaSkpLVZkXX0sZSk6dm99ZnVuY3Rpb24gYm8odCxuKXtyZXR1cm5bdCxuXX1mdW5jdGlvbiBtbyh0LG4pe2Z1bmN0aW9uIGUodCxuKXt2YXIgZT1vLW4scj1pKnQ7cmV0dXJuW2UqYXAociksby1lKm5wKHIpXX12YXIgcj1ucCh0KSxpPXQ9PT1uP2FwKHQpOihyLW5wKG4pKS8obi10KSxvPXIvaSt0O3JldHVybiBKZChpKTxIZD9ibzooZS5pbnZlcnQ9ZnVuY3Rpb24odCxuKXt2YXIgZT1vLW47cmV0dXJuW3RwKHQsSmQoZSkpL2kqdXAoZSksby11cChpKSpmcCh0KnQrZSplKV19LGUpfWZ1bmN0aW9uIHhvKHQsbil7dmFyIGU9bnAobikscj1ucCh0KSplO3JldHVybltlKmFwKHQpL3IsYXAobikvcl19ZnVuY3Rpb24gd28odCxuLGUscil7cmV0dXJuIDE9PT10JiYxPT09biYmMD09PWUmJjA9PT1yP3ppOlFpKHtwb2ludDpmdW5jdGlvbihpLG8pe3RoaXMuc3RyZWFtLnBvaW50KGkqdCtlLG8qbityKX19KX1mdW5jdGlvbiBNbyh0LG4pe3ZhciBlPW4qbixyPWUqZTtyZXR1cm5bdCooLjg3MDctLjEzMTk3OSplK3IqKHIqKC4wMDM5NzEqZS0uMDAxNTI5KnIpLS4wMTM3OTEpKSxuKigxLjAwNzIyNitlKiguMDE1MDg1K3IqKC4wMjg4NzQqZS0uMDQ0NDc1LS4wMDU5MTYqcikpKV19ZnVuY3Rpb24gQW8odCxuKXtyZXR1cm5bbnAobikqYXAodCksYXAobildfWZ1bmN0aW9uIFRvKHQsbil7dmFyIGU9bnAobikscj0xK25wKHQpKmU7cmV0dXJuW2UqYXAodCkvcixhcChuKS9yXX1mdW5jdGlvbiBObyh0LG4pe3JldHVybltpcChjcCgoVmQrbikvMikpLC10XX1mdW5jdGlvbiBTbyh0LG4pe3JldHVybiB0LnBhcmVudD09PW4ucGFyZW50PzE6Mn1mdW5jdGlvbiBFbyh0LG4pe3JldHVybiB0K24ueH1mdW5jdGlvbiBrbyh0LG4pe3JldHVybiBNYXRoLm1heCh0LG4ueSl9ZnVuY3Rpb24gQ28odCl7dmFyIG49MCxlPXQuY2hpbGRyZW4scj1lJiZlLmxlbmd0aDtpZihyKWZvcig7LS1yPj0wOyluKz1lW3JdLnZhbHVlO2Vsc2Ugbj0xO3QudmFsdWU9bn1mdW5jdGlvbiBQbyh0LG4pe3ZhciBlLHIsaSxvLGEsdT1uZXcgRG8odCksZj0rdC52YWx1ZSYmKHUudmFsdWU9dC52YWx1ZSksYz1bdV07Zm9yKG51bGw9PW4mJihuPXpvKTtlPWMucG9wKCk7KWlmKGYmJihlLnZhbHVlPStlLmRhdGEudmFsdWUpLChpPW4oZS5kYXRhKSkmJihhPWkubGVuZ3RoKSlmb3IoZS5jaGlsZHJlbj1uZXcgQXJyYXkoYSksbz1hLTE7bz49MDstLW8pYy5wdXNoKHI9ZS5jaGlsZHJlbltvXT1uZXcgRG8oaVtvXSkpLHIucGFyZW50PWUsci5kZXB0aD1lLmRlcHRoKzE7cmV0dXJuIHUuZWFjaEJlZm9yZShMbyl9ZnVuY3Rpb24gem8odCl7cmV0dXJuIHQuY2hpbGRyZW59ZnVuY3Rpb24gUm8odCl7dC5kYXRhPXQuZGF0YS5kYXRhfWZ1bmN0aW9uIExvKHQpe3ZhciBuPTA7ZG97dC5oZWlnaHQ9bn13aGlsZSgodD10LnBhcmVudCkmJnQuaGVpZ2h0PCsrbil9ZnVuY3Rpb24gRG8odCl7dGhpcy5kYXRhPXQsdGhpcy5kZXB0aD10aGlzLmhlaWdodD0wLHRoaXMucGFyZW50PW51bGx9ZnVuY3Rpb24gVW8odCl7Zm9yKHZhciBuLGUscj0wLGk9KHQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGUscj10Lmxlbmd0aDtyOyllPU1hdGgucmFuZG9tKCkqci0tfDAsbj10W3JdLHRbcl09dFtlXSx0W2VdPW47cmV0dXJuIHR9KHZ2LmNhbGwodCkpKS5sZW5ndGgsbz1bXTtyPGk7KW49dFtyXSxlJiZPbyhlLG4pPysrcjooZT1mdW5jdGlvbih0KXtzd2l0Y2godC5sZW5ndGgpe2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJue3g6dC54LHk6dC55LHI6dC5yfX0odFswXSk7Y2FzZSAyOnJldHVybiBCbyh0WzBdLHRbMV0pO2Nhc2UgMzpyZXR1cm4gRm8odFswXSx0WzFdLHRbMl0pfX0obz1mdW5jdGlvbih0LG4pe3ZhciBlLHI7aWYoWW8obix0KSlyZXR1cm5bbl07Zm9yKGU9MDtlPHQubGVuZ3RoOysrZSlpZihxbyhuLHRbZV0pJiZZbyhCbyh0W2VdLG4pLHQpKXJldHVyblt0W2VdLG5dO2ZvcihlPTA7ZTx0Lmxlbmd0aC0xOysrZSlmb3Iocj1lKzE7cjx0Lmxlbmd0aDsrK3IpaWYocW8oQm8odFtlXSx0W3JdKSxuKSYmcW8oQm8odFtlXSxuKSx0W3JdKSYmcW8oQm8odFtyXSxuKSx0W2VdKSYmWW8oRm8odFtlXSx0W3JdLG4pLHQpKXJldHVyblt0W2VdLHRbcl0sbl07dGhyb3cgbmV3IEVycm9yfShvLG4pKSxyPTApO3JldHVybiBlfWZ1bmN0aW9uIHFvKHQsbil7dmFyIGU9dC5yLW4ucixyPW4ueC10LngsaT1uLnktdC55O3JldHVybiBlPDB8fGUqZTxyKnIraSppfWZ1bmN0aW9uIE9vKHQsbil7dmFyIGU9dC5yLW4ucisxZS02LHI9bi54LXQueCxpPW4ueS10Lnk7cmV0dXJuIGU+MCYmZSplPnIqcitpKml9ZnVuY3Rpb24gWW8odCxuKXtmb3IodmFyIGU9MDtlPG4ubGVuZ3RoOysrZSlpZighT28odCxuW2VdKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBCbyh0LG4pe3ZhciBlPXQueCxyPXQueSxpPXQucixvPW4ueCxhPW4ueSx1PW4ucixmPW8tZSxjPWEtcixzPXUtaSxsPU1hdGguc3FydChmKmYrYypjKTtyZXR1cm57eDooZStvK2YvbCpzKS8yLHk6KHIrYStjL2wqcykvMixyOihsK2krdSkvMn19ZnVuY3Rpb24gRm8odCxuLGUpe3ZhciByPXQueCxpPXQueSxvPXQucixhPW4ueCx1PW4ueSxmPW4ucixjPWUueCxzPWUueSxsPWUucixoPXItYSxkPXItYyxwPWktdSx2PWktcyxnPWYtbyx5PWwtbyxfPXIqcitpKmktbypvLGI9Xy1hKmEtdSp1K2YqZixtPV8tYypjLXMqcytsKmwseD1kKnAtaCp2LHc9KHAqbS12KmIpLygyKngpLXIsTT0odipnLXAqeSkveCxBPShkKmItaCptKS8oMip4KS1pLFQ9KGgqeS1kKmcpL3gsTj1NKk0rVCpULTEsUz0yKihvK3cqTStBKlQpLEU9dyp3K0EqQS1vKm8saz0tKE4/KFMrTWF0aC5zcXJ0KFMqUy00Kk4qRSkpLygyKk4pOkUvUyk7cmV0dXJue3g6cit3K00qayx5OmkrQStUKmsscjprfX1mdW5jdGlvbiBJbyh0LG4sZSl7dmFyIHIsaSxvLGEsdT10Lngtbi54LGY9dC55LW4ueSxjPXUqdStmKmY7Yz8oaT1uLnIrZS5yLGkqPWksYT10LnIrZS5yLGk+KGEqPWEpPyhyPShjK2EtaSkvKDIqYyksbz1NYXRoLnNxcnQoTWF0aC5tYXgoMCxhL2MtcipyKSksZS54PXQueC1yKnUtbypmLGUueT10LnktcipmK28qdSk6KHI9KGMraS1hKS8oMipjKSxvPU1hdGguc3FydChNYXRoLm1heCgwLGkvYy1yKnIpKSxlLng9bi54K3IqdS1vKmYsZS55PW4ueStyKmYrbyp1KSk6KGUueD1uLngrZS5yLGUueT1uLnkpfWZ1bmN0aW9uIGpvKHQsbil7dmFyIGU9dC5yK24uci0xZS02LHI9bi54LXQueCxpPW4ueS10Lnk7cmV0dXJuIGU+MCYmZSplPnIqcitpKml9ZnVuY3Rpb24gSG8odCl7dmFyIG49dC5fLGU9dC5uZXh0Ll8scj1uLnIrZS5yLGk9KG4ueCplLnIrZS54Km4ucikvcixvPShuLnkqZS5yK2UueSpuLnIpL3I7cmV0dXJuIGkqaStvKm99ZnVuY3Rpb24gWG8odCl7dGhpcy5fPXQsdGhpcy5uZXh0PW51bGwsdGhpcy5wcmV2aW91cz1udWxsfWZ1bmN0aW9uIEdvKHQpe2lmKCEoaT10Lmxlbmd0aCkpcmV0dXJuIDA7dmFyIG4sZSxyLGksbyxhLHUsZixjLHMsbDtpZihuPXRbMF0sbi54PTAsbi55PTAsIShpPjEpKXJldHVybiBuLnI7aWYoZT10WzFdLG4ueD0tZS5yLGUueD1uLnIsZS55PTAsIShpPjIpKXJldHVybiBuLnIrZS5yO0lvKGUsbixyPXRbMl0pLG49bmV3IFhvKG4pLGU9bmV3IFhvKGUpLHI9bmV3IFhvKHIpLG4ubmV4dD1yLnByZXZpb3VzPWUsZS5uZXh0PW4ucHJldmlvdXM9cixyLm5leHQ9ZS5wcmV2aW91cz1uO3Q6Zm9yKHU9Mzt1PGk7Kyt1KXtJbyhuLl8sZS5fLHI9dFt1XSkscj1uZXcgWG8ociksZj1lLm5leHQsYz1uLnByZXZpb3VzLHM9ZS5fLnIsbD1uLl8ucjtkb3tpZihzPD1sKXtpZihqbyhmLl8sci5fKSl7ZT1mLG4ubmV4dD1lLGUucHJldmlvdXM9biwtLXU7Y29udGludWUgdH1zKz1mLl8ucixmPWYubmV4dH1lbHNle2lmKGpvKGMuXyxyLl8pKXsobj1jKS5uZXh0PWUsZS5wcmV2aW91cz1uLC0tdTtjb250aW51ZSB0fWwrPWMuXy5yLGM9Yy5wcmV2aW91c319d2hpbGUoZiE9PWMubmV4dCk7Zm9yKHIucHJldmlvdXM9bixyLm5leHQ9ZSxuLm5leHQ9ZS5wcmV2aW91cz1lPXIsbz1IbyhuKTsocj1yLm5leHQpIT09ZTspKGE9SG8ocikpPG8mJihuPXIsbz1hKTtlPW4ubmV4dH1mb3Iobj1bZS5fXSxyPWU7KHI9ci5uZXh0KSE9PWU7KW4ucHVzaChyLl8pO2ZvcihyPVVvKG4pLHU9MDt1PGk7Kyt1KW49dFt1XSxuLngtPXIueCxuLnktPXIueTtyZXR1cm4gci5yfWZ1bmN0aW9uIFZvKHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0fWZ1bmN0aW9uICRvKCl7cmV0dXJuIDB9ZnVuY3Rpb24gV28odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIFpvKHQpe3JldHVybiBNYXRoLnNxcnQodC52YWx1ZSl9ZnVuY3Rpb24gUW8odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe24uY2hpbGRyZW58fChuLnI9TWF0aC5tYXgoMCwrdChuKXx8MCkpfX1mdW5jdGlvbiBKbyh0LG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihyPWUuY2hpbGRyZW4pe3ZhciByLGksbyxhPXIubGVuZ3RoLHU9dChlKSpufHwwO2lmKHUpZm9yKGk9MDtpPGE7KytpKXJbaV0ucis9dTtpZihvPUdvKHIpLHUpZm9yKGk9MDtpPGE7KytpKXJbaV0uci09dTtlLnI9byt1fX19ZnVuY3Rpb24gS28odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBlPW4ucGFyZW50O24ucio9dCxlJiYobi54PWUueCt0Km4ueCxuLnk9ZS55K3Qqbi55KX19ZnVuY3Rpb24gdGEodCl7dC54MD1NYXRoLnJvdW5kKHQueDApLHQueTA9TWF0aC5yb3VuZCh0LnkwKSx0LngxPU1hdGgucm91bmQodC54MSksdC55MT1NYXRoLnJvdW5kKHQueTEpfWZ1bmN0aW9uIG5hKHQsbixlLHIsaSl7Zm9yKHZhciBvLGE9dC5jaGlsZHJlbix1PS0xLGY9YS5sZW5ndGgsYz10LnZhbHVlJiYoci1uKS90LnZhbHVlOysrdTxmOykobz1hW3VdKS55MD1lLG8ueTE9aSxvLngwPW4sby54MT1uKz1vLnZhbHVlKmN9ZnVuY3Rpb24gZWEodCl7cmV0dXJuIHQuaWR9ZnVuY3Rpb24gcmEodCl7cmV0dXJuIHQucGFyZW50SWR9ZnVuY3Rpb24gaWEodCxuKXtyZXR1cm4gdC5wYXJlbnQ9PT1uLnBhcmVudD8xOjJ9ZnVuY3Rpb24gb2EodCl7dmFyIG49dC5jaGlsZHJlbjtyZXR1cm4gbj9uWzBdOnQudH1mdW5jdGlvbiBhYSh0KXt2YXIgbj10LmNoaWxkcmVuO3JldHVybiBuP25bbi5sZW5ndGgtMV06dC50fWZ1bmN0aW9uIHVhKHQsbixlKXt2YXIgcj1lLyhuLmktdC5pKTtuLmMtPXIsbi5zKz1lLHQuYys9cixuLnorPWUsbi5tKz1lfWZ1bmN0aW9uIGZhKHQsbixlKXtyZXR1cm4gdC5hLnBhcmVudD09PW4ucGFyZW50P3QuYTplfWZ1bmN0aW9uIGNhKHQsbil7dGhpcy5fPXQsdGhpcy5wYXJlbnQ9bnVsbCx0aGlzLmNoaWxkcmVuPW51bGwsdGhpcy5BPW51bGwsdGhpcy5hPXRoaXMsdGhpcy56PTAsdGhpcy5tPTAsdGhpcy5jPTAsdGhpcy5zPTAsdGhpcy50PW51bGwsdGhpcy5pPW59ZnVuY3Rpb24gc2EodCxuLGUscixpKXtmb3IodmFyIG8sYT10LmNoaWxkcmVuLHU9LTEsZj1hLmxlbmd0aCxjPXQudmFsdWUmJihpLWUpL3QudmFsdWU7Kyt1PGY7KShvPWFbdV0pLngwPW4sby54MT1yLG8ueTA9ZSxvLnkxPWUrPW8udmFsdWUqY31mdW5jdGlvbiBsYSh0LG4sZSxyLGksbyl7Zm9yKHZhciBhLHUsZixjLHMsbCxoLGQscCx2LGcseT1bXSxfPW4uY2hpbGRyZW4sYj0wLG09MCx4PV8ubGVuZ3RoLHc9bi52YWx1ZTtiPHg7KXtmPWktZSxjPW8tcjtkb3tzPV9bbSsrXS52YWx1ZX13aGlsZSghcyYmbTx4KTtmb3IobD1oPXMsZz1zKnMqKHY9TWF0aC5tYXgoYy9mLGYvYykvKHcqdCkpLHA9TWF0aC5tYXgoaC9nLGcvbCk7bTx4OysrbSl7aWYocys9dT1fW21dLnZhbHVlLHU8bCYmKGw9dSksdT5oJiYoaD11KSxnPXMqcyp2LChkPU1hdGgubWF4KGgvZyxnL2wpKT5wKXtzLT11O2JyZWFrfXA9ZH15LnB1c2goYT17dmFsdWU6cyxkaWNlOmY8YyxjaGlsZHJlbjpfLnNsaWNlKGIsbSl9KSxhLmRpY2U/bmEoYSxlLHIsaSx3P3IrPWMqcy93Om8pOnNhKGEsZSxyLHc/ZSs9ZipzL3c6aSxvKSx3LT1zLGI9bX1yZXR1cm4geX1mdW5jdGlvbiBoYSh0LG4sZSl7cmV0dXJuKG5bMF0tdFswXSkqKGVbMV0tdFsxXSktKG5bMV0tdFsxXSkqKGVbMF0tdFswXSl9ZnVuY3Rpb24gZGEodCxuKXtyZXR1cm4gdFswXS1uWzBdfHx0WzFdLW5bMV19ZnVuY3Rpb24gcGEodCl7Zm9yKHZhciBuPXQubGVuZ3RoLGU9WzAsMV0scj0yLGk9MjtpPG47KytpKXtmb3IoO3I+MSYmaGEodFtlW3ItMl1dLHRbZVtyLTFdXSx0W2ldKTw9MDspLS1yO2VbcisrXT1pfXJldHVybiBlLnNsaWNlKDAscil9ZnVuY3Rpb24gdmEoKXtyZXR1cm4gTWF0aC5yYW5kb20oKX1mdW5jdGlvbiBnYSh0KXtmdW5jdGlvbiBuKG4pe3ZhciBvPW4rXCJcIixhPWUuZ2V0KG8pO2lmKCFhKXtpZihpIT09UHYpcmV0dXJuIGk7ZS5zZXQobyxhPXIucHVzaChuKSl9cmV0dXJuIHRbKGEtMSkldC5sZW5ndGhdfXZhciBlPWhlKCkscj1bXSxpPVB2O3JldHVybiB0PW51bGw9PXQ/W106Q3YuY2FsbCh0KSxuLmRvbWFpbj1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gci5zbGljZSgpO3I9W10sZT1oZSgpO2Zvcih2YXIgaSxvLGE9LTEsdT10Lmxlbmd0aDsrK2E8dTspZS5oYXMobz0oaT10W2FdKStcIlwiKXx8ZS5zZXQobyxyLnB1c2goaSkpO3JldHVybiBufSxuLnJhbmdlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PUN2LmNhbGwoZSksbik6dC5zbGljZSgpfSxuLnVua25vd249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dCxuKTppfSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gZ2EoKS5kb21haW4ocikucmFuZ2UodCkudW5rbm93bihpKX0sbn1mdW5jdGlvbiB5YSgpe2Z1bmN0aW9uIHQoKXt2YXIgdD1pKCkubGVuZ3RoLHI9YVsxXTxhWzBdLGg9YVtyLTBdLGQ9YVsxLXJdO249KGQtaCkvTWF0aC5tYXgoMSx0LWYrMipjKSx1JiYobj1NYXRoLmZsb29yKG4pKSxoKz0oZC1oLW4qKHQtZikpKmwsZT1uKigxLWYpLHUmJihoPU1hdGgucm91bmQoaCksZT1NYXRoLnJvdW5kKGUpKTt2YXIgcD1zKHQpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gaCtuKnR9KTtyZXR1cm4gbyhyP3AucmV2ZXJzZSgpOnApfXZhciBuLGUscj1nYSgpLnVua25vd24odm9pZCAwKSxpPXIuZG9tYWluLG89ci5yYW5nZSxhPVswLDFdLHU9ITEsZj0wLGM9MCxsPS41O3JldHVybiBkZWxldGUgci51bmtub3duLHIuZG9tYWluPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpKG4pLHQoKSk6aSgpfSxyLnJhbmdlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVsrblswXSwrblsxXV0sdCgpKTphLnNsaWNlKCl9LHIucmFuZ2VSb3VuZD1mdW5jdGlvbihuKXtyZXR1cm4gYT1bK25bMF0sK25bMV1dLHU9ITAsdCgpfSxyLmJhbmR3aWR0aD1mdW5jdGlvbigpe3JldHVybiBlfSxyLnN0ZXA9ZnVuY3Rpb24oKXtyZXR1cm4gbn0sci5yb3VuZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0hIW4sdCgpKTp1fSxyLnBhZGRpbmc9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9Yz1NYXRoLm1heCgwLE1hdGgubWluKDEsbikpLHQoKSk6Zn0sci5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4pKSx0KCkpOmZ9LHIucGFkZGluZ091dGVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuKSksdCgpKTpjfSxyLmFsaWduPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuKSksdCgpKTpsfSxyLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4geWEoKS5kb21haW4oaSgpKS5yYW5nZShhKS5yb3VuZCh1KS5wYWRkaW5nSW5uZXIoZikucGFkZGluZ091dGVyKGMpLmFsaWduKGwpfSx0KCl9ZnVuY3Rpb24gX2EodCl7dmFyIG49dC5jb3B5O3JldHVybiB0LnBhZGRpbmc9dC5wYWRkaW5nT3V0ZXIsZGVsZXRlIHQucGFkZGluZ0lubmVyLGRlbGV0ZSB0LnBhZGRpbmdPdXRlcix0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gX2EobigpKX0sdH1mdW5jdGlvbiBiYSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gbWEodCl7cmV0dXJuK3R9ZnVuY3Rpb24geGEodCxuKXtyZXR1cm4obi09dD0rdCk/ZnVuY3Rpb24oZSl7cmV0dXJuKGUtdCkvbn06YmEobil9ZnVuY3Rpb24gd2EodCxuLGUscil7dmFyIGk9dFswXSxvPXRbMV0sYT1uWzBdLHU9blsxXTtyZXR1cm4gbzxpPyhpPWUobyxpKSxhPXIodSxhKSk6KGk9ZShpLG8pLGE9cihhLHUpKSxmdW5jdGlvbih0KXtyZXR1cm4gYShpKHQpKX19ZnVuY3Rpb24gTWEodCxuLGUscil7dmFyIGk9TWF0aC5taW4odC5sZW5ndGgsbi5sZW5ndGgpLTEsbz1uZXcgQXJyYXkoaSksYT1uZXcgQXJyYXkoaSksdT0tMTtmb3IodFtpXTx0WzBdJiYodD10LnNsaWNlKCkucmV2ZXJzZSgpLG49bi5zbGljZSgpLnJldmVyc2UoKSk7Kyt1PGk7KW9bdV09ZSh0W3VdLHRbdSsxXSksYVt1XT1yKG5bdV0sblt1KzFdKTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGU9S2ModCxuLDEsaSktMTtyZXR1cm4gYVtlXShvW2VdKG4pKX19ZnVuY3Rpb24gQWEodCxuKXtyZXR1cm4gbi5kb21haW4odC5kb21haW4oKSkucmFuZ2UodC5yYW5nZSgpKS5pbnRlcnBvbGF0ZSh0LmludGVycG9sYXRlKCkpLmNsYW1wKHQuY2xhbXAoKSl9ZnVuY3Rpb24gVGEodCxuKXtmdW5jdGlvbiBlKCl7cmV0dXJuIGk9TWF0aC5taW4odS5sZW5ndGgsZi5sZW5ndGgpPjI/TWE6d2Esbz1hPW51bGwscn1mdW5jdGlvbiByKG4pe3JldHVybihvfHwobz1pKHUsZixzP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3ZhciByPXQobj0rbixlPStlKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ8PW4/MDp0Pj1lPzE6cih0KX19fSh0KTp0LGMpKSkoK24pfXZhciBpLG8sYSx1PXp2LGY9enYsYz1kbixzPSExO3JldHVybiByLmludmVydD1mdW5jdGlvbih0KXtyZXR1cm4oYXx8KGE9aShmLHUseGEscz9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obixlKXt2YXIgcj10KG49K24sZT0rZSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB0PD0wP246dD49MT9lOnIodCl9fX0obik6bikpKSgrdCl9LHIuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PWt2LmNhbGwodCxtYSksZSgpKTp1LnNsaWNlKCl9LHIucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9Q3YuY2FsbCh0KSxlKCkpOmYuc2xpY2UoKX0sci5yYW5nZVJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBmPUN2LmNhbGwodCksYz1wbixlKCl9LHIuY2xhbXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9ISF0LGUoKSk6c30sci5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz10LGUoKSk6Y30sZSgpfWZ1bmN0aW9uIE5hKG4pe3ZhciBlPW4uZG9tYWluO3JldHVybiBuLnRpY2tzPWZ1bmN0aW9uKHQpe3ZhciBuPWUoKTtyZXR1cm4gbChuWzBdLG5bbi5sZW5ndGgtMV0sbnVsbD09dD8xMDp0KX0sbi50aWNrRm9ybWF0PWZ1bmN0aW9uKG4scil7cmV0dXJuIGZ1bmN0aW9uKG4sZSxyKXt2YXIgaSxvPW5bMF0sYT1uW24ubGVuZ3RoLTFdLHU9ZChvLGEsbnVsbD09ZT8xMDplKTtzd2l0Y2goKHI9dHIobnVsbD09cj9cIixmXCI6cikpLnR5cGUpe2Nhc2VcInNcIjp2YXIgZj1NYXRoLm1heChNYXRoLmFicyhvKSxNYXRoLmFicyhhKSk7cmV0dXJuIG51bGwhPXIucHJlY2lzaW9ufHxpc05hTihpPXVyKHUsZikpfHwoci5wcmVjaXNpb249aSksdC5mb3JtYXRQcmVmaXgocixmKTtjYXNlXCJcIjpjYXNlXCJlXCI6Y2FzZVwiZ1wiOmNhc2VcInBcIjpjYXNlXCJyXCI6bnVsbCE9ci5wcmVjaXNpb258fGlzTmFOKGk9ZnIodSxNYXRoLm1heChNYXRoLmFicyhvKSxNYXRoLmFicyhhKSkpKXx8KHIucHJlY2lzaW9uPWktKFwiZVwiPT09ci50eXBlKSk7YnJlYWs7Y2FzZVwiZlwiOmNhc2VcIiVcIjpudWxsIT1yLnByZWNpc2lvbnx8aXNOYU4oaT1hcih1KSl8fChyLnByZWNpc2lvbj1pLTIqKFwiJVwiPT09ci50eXBlKSl9cmV0dXJuIHQuZm9ybWF0KHIpfShlKCksbixyKX0sbi5uaWNlPWZ1bmN0aW9uKHQpe251bGw9PXQmJih0PTEwKTt2YXIgcixpPWUoKSxvPTAsYT1pLmxlbmd0aC0xLHU9aVtvXSxmPWlbYV07cmV0dXJuIGY8dSYmKHI9dSx1PWYsZj1yLHI9byxvPWEsYT1yKSwocj1oKHUsZix0KSk+MD9yPWgodT1NYXRoLmZsb29yKHUvcikqcixmPU1hdGguY2VpbChmL3IpKnIsdCk6cjwwJiYocj1oKHU9TWF0aC5jZWlsKHUqcikvcixmPU1hdGguZmxvb3IoZipyKS9yLHQpKSxyPjA/KGlbb109TWF0aC5mbG9vcih1L3IpKnIsaVthXT1NYXRoLmNlaWwoZi9yKSpyLGUoaSkpOnI8MCYmKGlbb109TWF0aC5jZWlsKHUqcikvcixpW2FdPU1hdGguZmxvb3IoZipyKS9yLGUoaSkpLG59LG59ZnVuY3Rpb24gU2EoKXt2YXIgdD1UYSh4YSxzbik7cmV0dXJuIHQuY29weT1mdW5jdGlvbigpe3JldHVybiBBYSh0LFNhKCkpfSxOYSh0KX1mdW5jdGlvbiBFYSgpe2Z1bmN0aW9uIHQodCl7cmV0dXJuK3R9dmFyIG49WzAsMV07cmV0dXJuIHQuaW52ZXJ0PXQsdC5kb21haW49dC5yYW5nZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1rdi5jYWxsKGUsbWEpLHQpOm4uc2xpY2UoKX0sdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEVhKCkuZG9tYWluKG4pfSxOYSh0KX1mdW5jdGlvbiBrYSh0LG4pe3ZhciBlLHI9MCxpPSh0PXQuc2xpY2UoKSkubGVuZ3RoLTEsbz10W3JdLGE9dFtpXTtyZXR1cm4gYTxvJiYoZT1yLHI9aSxpPWUsZT1vLG89YSxhPWUpLHRbcl09bi5mbG9vcihvKSx0W2ldPW4uY2VpbChhKSx0fWZ1bmN0aW9uIENhKHQsbil7cmV0dXJuKG49TWF0aC5sb2cobi90KSk/ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgubG9nKGUvdCkvbn06YmEobil9ZnVuY3Rpb24gUGEodCxuKXtyZXR1cm4gdDwwP2Z1bmN0aW9uKGUpe3JldHVybi1NYXRoLnBvdygtbixlKSpNYXRoLnBvdygtdCwxLWUpfTpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3cobixlKSpNYXRoLnBvdyh0LDEtZSl9fWZ1bmN0aW9uIHphKHQpe3JldHVybiBpc0Zpbml0ZSh0KT8rKFwiMWVcIit0KTp0PDA/MDp0fWZ1bmN0aW9uIFJhKHQpe3JldHVybiAxMD09PXQ/emE6dD09PU1hdGguRT9NYXRoLmV4cDpmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5wb3codCxuKX19ZnVuY3Rpb24gTGEodCl7cmV0dXJuIHQ9PT1NYXRoLkU/TWF0aC5sb2c6MTA9PT10JiZNYXRoLmxvZzEwfHwyPT09dCYmTWF0aC5sb2cyfHwodD1NYXRoLmxvZyh0KSxmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5sb2cobikvdH0pfWZ1bmN0aW9uIERhKHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4tdCgtbil9fWZ1bmN0aW9uIFVhKCl7ZnVuY3Rpb24gbigpe3JldHVybiBvPUxhKGkpLGE9UmEoaSkscigpWzBdPDAmJihvPURhKG8pLGE9RGEoYSkpLGV9dmFyIGU9VGEoQ2EsUGEpLmRvbWFpbihbMSwxMF0pLHI9ZS5kb21haW4saT0xMCxvPUxhKDEwKSxhPVJhKDEwKTtyZXR1cm4gZS5iYXNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSt0LG4oKSk6aX0sZS5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHIodCksbigpKTpyKCl9LGUudGlja3M9ZnVuY3Rpb24odCl7dmFyIG4sZT1yKCksdT1lWzBdLGY9ZVtlLmxlbmd0aC0xXTsobj1mPHUpJiYoZD11LHU9ZixmPWQpO3ZhciBjLHMsaCxkPW8odSkscD1vKGYpLHY9bnVsbD09dD8xMDordCxnPVtdO2lmKCEoaSUxKSYmcC1kPHYpe2lmKGQ9TWF0aC5yb3VuZChkKS0xLHA9TWF0aC5yb3VuZChwKSsxLHU+MCl7Zm9yKDtkPHA7KytkKWZvcihzPTEsYz1hKGQpO3M8aTsrK3MpaWYoISgoaD1jKnMpPHUpKXtpZihoPmYpYnJlYWs7Zy5wdXNoKGgpfX1lbHNlIGZvcig7ZDxwOysrZClmb3Iocz1pLTEsYz1hKGQpO3M+PTE7LS1zKWlmKCEoKGg9YypzKTx1KSl7aWYoaD5mKWJyZWFrO2cucHVzaChoKX19ZWxzZSBnPWwoZCxwLE1hdGgubWluKHAtZCx2KSkubWFwKGEpO3JldHVybiBuP2cucmV2ZXJzZSgpOmd9LGUudGlja0Zvcm1hdD1mdW5jdGlvbihuLHIpe2lmKG51bGw9PXImJihyPTEwPT09aT9cIi4wZVwiOlwiLFwiKSxcImZ1bmN0aW9uXCIhPXR5cGVvZiByJiYocj10LmZvcm1hdChyKSksbj09PTEvMClyZXR1cm4gcjtudWxsPT1uJiYobj0xMCk7dmFyIHU9TWF0aC5tYXgoMSxpKm4vZS50aWNrcygpLmxlbmd0aCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPXQvYShNYXRoLnJvdW5kKG8odCkpKTtyZXR1cm4gbippPGktLjUmJihuKj1pKSxuPD11P3IodCk6XCJcIn19LGUubmljZT1mdW5jdGlvbigpe3JldHVybiByKGthKHIoKSx7Zmxvb3I6ZnVuY3Rpb24odCl7cmV0dXJuIGEoTWF0aC5mbG9vcihvKHQpKSl9LGNlaWw6ZnVuY3Rpb24odCl7cmV0dXJuIGEoTWF0aC5jZWlsKG8odCkpKX19KSl9LGUuY29weT1mdW5jdGlvbigpe3JldHVybiBBYShlLFVhKCkuYmFzZShpKSl9LGV9ZnVuY3Rpb24gcWEodCxuKXtyZXR1cm4gdDwwPy1NYXRoLnBvdygtdCxuKTpNYXRoLnBvdyh0LG4pfWZ1bmN0aW9uIE9hKCl7dmFyIHQ9MSxuPVRhKGZ1bmN0aW9uKG4sZSl7cmV0dXJuKGU9cWEoZSx0KS0obj1xYShuLHQpKSk/ZnVuY3Rpb24ocil7cmV0dXJuKHFhKHIsdCktbikvZX06YmEoZSl9LGZ1bmN0aW9uKG4sZSl7cmV0dXJuIGU9cWEoZSx0KS0obj1xYShuLHQpKSxmdW5jdGlvbihyKXtyZXR1cm4gcWEobitlKnIsMS90KX19KSxlPW4uZG9tYWluO3JldHVybiBuLmV4cG9uZW50PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PStuLGUoZSgpKSk6dH0sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEFhKG4sT2EoKS5leHBvbmVudCh0KSl9LE5hKG4pfWZ1bmN0aW9uIFlhKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PTAsbj1NYXRoLm1heCgxLGkubGVuZ3RoKTtmb3Iobz1uZXcgQXJyYXkobi0xKTsrK3Q8bjspb1t0LTFdPXYocix0L24pO3JldHVybiBlfWZ1bmN0aW9uIGUodCl7aWYoIWlzTmFOKHQ9K3QpKXJldHVybiBpW0tjKG8sdCldfXZhciByPVtdLGk9W10sbz1bXTtyZXR1cm4gZS5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIG49aS5pbmRleE9mKHQpO3JldHVybiBuPDA/W05hTixOYU5dOltuPjA/b1tuLTFdOnJbMF0sbjxvLmxlbmd0aD9vW25dOnJbci5sZW5ndGgtMV1dfSxlLmRvbWFpbj1mdW5jdGlvbihlKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gci5zbGljZSgpO3I9W107Zm9yKHZhciBpLG89MCxhPWUubGVuZ3RoO288YTsrK28pbnVsbD09KGk9ZVtvXSl8fGlzTmFOKGk9K2kpfHxyLnB1c2goaSk7cmV0dXJuIHIuc29ydChuKSx0KCl9LGUucmFuZ2U9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9Q3YuY2FsbChuKSx0KCkpOmkuc2xpY2UoKX0sZS5xdWFudGlsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gby5zbGljZSgpfSxlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gWWEoKS5kb21haW4ocikucmFuZ2UoaSl9LGV9ZnVuY3Rpb24gQmEoKXtmdW5jdGlvbiB0KHQpe2lmKHQ8PXQpcmV0dXJuIGFbS2Mobyx0LDAsaSldfWZ1bmN0aW9uIG4oKXt2YXIgbj0tMTtmb3Iobz1uZXcgQXJyYXkoaSk7KytuPGk7KW9bbl09KChuKzEpKnItKG4taSkqZSkvKGkrMSk7cmV0dXJuIHR9dmFyIGU9MCxyPTEsaT0xLG89Wy41XSxhPVswLDFdO3JldHVybiB0LmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdFswXSxyPSt0WzFdLG4oKSk6W2Uscl19LHQucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9KGE9Q3YuY2FsbCh0KSkubGVuZ3RoLTEsbigpKTphLnNsaWNlKCl9LHQuaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKHQpe3ZhciBuPWEuaW5kZXhPZih0KTtyZXR1cm4gbjwwP1tOYU4sTmFOXTpuPDE/W2Usb1swXV06bj49aT9bb1tpLTFdLHJdOltvW24tMV0sb1tuXV19LHQuY29weT1mdW5jdGlvbigpe3JldHVybiBCYSgpLmRvbWFpbihbZSxyXSkucmFuZ2UoYSl9LE5hKHQpfWZ1bmN0aW9uIEZhKCl7ZnVuY3Rpb24gdCh0KXtpZih0PD10KXJldHVybiBlW0tjKG4sdCwwLHIpXX12YXIgbj1bLjVdLGU9WzAsMV0scj0xO3JldHVybiB0LmRvbWFpbj1mdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1Ddi5jYWxsKGkpLHI9TWF0aC5taW4obi5sZW5ndGgsZS5sZW5ndGgtMSksdCk6bi5zbGljZSgpfSx0LnJhbmdlPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPUN2LmNhbGwoaSkscj1NYXRoLm1pbihuLmxlbmd0aCxlLmxlbmd0aC0xKSx0KTplLnNsaWNlKCl9LHQuaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKHQpe3ZhciByPWUuaW5kZXhPZih0KTtyZXR1cm5bbltyLTFdLG5bcl1dfSx0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gRmEoKS5kb21haW4obikucmFuZ2UoZSl9LHR9ZnVuY3Rpb24gSWEodCxuLGUscil7ZnVuY3Rpb24gaShuKXtyZXR1cm4gdChuPW5ldyBEYXRlKCtuKSksbn1yZXR1cm4gaS5mbG9vcj1pLGkuY2VpbD1mdW5jdGlvbihlKXtyZXR1cm4gdChlPW5ldyBEYXRlKGUtMSkpLG4oZSwxKSx0KGUpLGV9LGkucm91bmQ9ZnVuY3Rpb24odCl7dmFyIG49aSh0KSxlPWkuY2VpbCh0KTtyZXR1cm4gdC1uPGUtdD9uOmV9LGkub2Zmc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odD1uZXcgRGF0ZSgrdCksbnVsbD09ZT8xOk1hdGguZmxvb3IoZSkpLHR9LGkucmFuZ2U9ZnVuY3Rpb24oZSxyLG8pe3ZhciBhLHU9W107aWYoZT1pLmNlaWwoZSksbz1udWxsPT1vPzE6TWF0aC5mbG9vcihvKSwhKGU8ciYmbz4wKSlyZXR1cm4gdTtkb3t1LnB1c2goYT1uZXcgRGF0ZSgrZSkpLG4oZSxvKSx0KGUpfXdoaWxlKGE8ZSYmZTxyKTtyZXR1cm4gdX0saS5maWx0ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIElhKGZ1bmN0aW9uKG4pe2lmKG4+PW4pZm9yKDt0KG4pLCFlKG4pOyluLnNldFRpbWUobi0xKX0sZnVuY3Rpb24odCxyKXtpZih0Pj10KWlmKHI8MClmb3IoOysrcjw9MDspZm9yKDtuKHQsLTEpLCFlKHQpOyk7ZWxzZSBmb3IoOy0tcj49MDspZm9yKDtuKHQsMSksIWUodCk7KTt9KX0sZSYmKGkuY291bnQ9ZnVuY3Rpb24obixyKXtyZXR1cm4gUnYuc2V0VGltZSgrbiksTHYuc2V0VGltZSgrciksdChSdiksdChMdiksTWF0aC5mbG9vcihlKFJ2LEx2KSl9LGkuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5mbG9vcih0KSxpc0Zpbml0ZSh0KSYmdD4wP3Q+MT9pLmZpbHRlcihyP2Z1bmN0aW9uKG4pe3JldHVybiByKG4pJXQ9PTB9OmZ1bmN0aW9uKG4pe3JldHVybiBpLmNvdW50KDAsbikldD09MH0pOmk6bnVsbH0pLGl9ZnVuY3Rpb24gamEodCl7cmV0dXJuIElhKGZ1bmN0aW9uKG4pe24uc2V0RGF0ZShuLmdldERhdGUoKS0obi5nZXREYXkoKSs3LXQpJTcpLG4uc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpKzcqbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdC0obi5nZXRUaW1lem9uZU9mZnNldCgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSkqcXYpL092fSl9ZnVuY3Rpb24gSGEodCl7cmV0dXJuIElhKGZ1bmN0aW9uKG4pe24uc2V0VVRDRGF0ZShuLmdldFVUQ0RhdGUoKS0obi5nZXRVVENEYXkoKSs3LXQpJTcpLG4uc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpKzcqbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvT3Z9KX1mdW5jdGlvbiBYYSh0KXtpZigwPD10LnkmJnQueTwxMDApe3ZhciBuPW5ldyBEYXRlKC0xLHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKTtyZXR1cm4gbi5zZXRGdWxsWWVhcih0LnkpLG59cmV0dXJuIG5ldyBEYXRlKHQueSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCl9ZnVuY3Rpb24gR2EodCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgbj1uZXcgRGF0ZShEYXRlLlVUQygtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCkpO3JldHVybiBuLnNldFVUQ0Z1bGxZZWFyKHQueSksbn1yZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEModC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSl9ZnVuY3Rpb24gVmEodCl7cmV0dXJue3k6dCxtOjAsZDoxLEg6MCxNOjAsUzowLEw6MH19ZnVuY3Rpb24gJGEodCl7ZnVuY3Rpb24gbih0LG4pe3JldHVybiBmdW5jdGlvbihlKXt2YXIgcixpLG8sYT1bXSx1PS0xLGY9MCxjPXQubGVuZ3RoO2ZvcihlIGluc3RhbmNlb2YgRGF0ZXx8KGU9bmV3IERhdGUoK2UpKTsrK3U8YzspMzc9PT10LmNoYXJDb2RlQXQodSkmJihhLnB1c2godC5zbGljZShmLHUpKSxudWxsIT0oaT1VZ1tyPXQuY2hhckF0KCsrdSldKT9yPXQuY2hhckF0KCsrdSk6aT1cImVcIj09PXI/XCIgXCI6XCIwXCIsKG89bltyXSkmJihyPW8oZSxpKSksYS5wdXNoKHIpLGY9dSsxKTtyZXR1cm4gYS5wdXNoKHQuc2xpY2UoZix1KSksYS5qb2luKFwiXCIpfX1mdW5jdGlvbiBlKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBpLG8sYT1WYSgxOTAwKTtpZihyKGEsdCxlKz1cIlwiLDApIT1lLmxlbmd0aClyZXR1cm4gbnVsbDtpZihcIlFcImluIGEpcmV0dXJuIG5ldyBEYXRlKGEuUSk7aWYoXCJwXCJpbiBhJiYoYS5IPWEuSCUxMisxMiphLnApLFwiVlwiaW4gYSl7aWYoYS5WPDF8fGEuVj41MylyZXR1cm4gbnVsbDtcIndcImluIGF8fChhLnc9MSksXCJaXCJpbiBhPyhpPShvPShpPUdhKFZhKGEueSkpKS5nZXRVVENEYXkoKSk+NHx8MD09PW8/X2cuY2VpbChpKTpfZyhpKSxpPXZnLm9mZnNldChpLDcqKGEuVi0xKSksYS55PWkuZ2V0VVRDRnVsbFllYXIoKSxhLm09aS5nZXRVVENNb250aCgpLGEuZD1pLmdldFVUQ0RhdGUoKSsoYS53KzYpJTcpOihpPShvPShpPW4oVmEoYS55KSkpLmdldERheSgpKT40fHwwPT09bz8kdi5jZWlsKGkpOiR2KGkpLGk9WHYub2Zmc2V0KGksNyooYS5WLTEpKSxhLnk9aS5nZXRGdWxsWWVhcigpLGEubT1pLmdldE1vbnRoKCksYS5kPWkuZ2V0RGF0ZSgpKyhhLncrNiklNyl9ZWxzZShcIldcImluIGF8fFwiVVwiaW4gYSkmJihcIndcImluIGF8fChhLnc9XCJ1XCJpbiBhP2EudSU3OlwiV1wiaW4gYT8xOjApLG89XCJaXCJpbiBhP0dhKFZhKGEueSkpLmdldFVUQ0RheSgpOm4oVmEoYS55KSkuZ2V0RGF5KCksYS5tPTAsYS5kPVwiV1wiaW4gYT8oYS53KzYpJTcrNyphLlctKG8rNSklNzphLncrNyphLlUtKG8rNiklNyk7cmV0dXJuXCJaXCJpbiBhPyhhLkgrPWEuWi8xMDB8MCxhLk0rPWEuWiUxMDAsR2EoYSkpOm4oYSl9fWZ1bmN0aW9uIHIodCxuLGUscil7Zm9yKHZhciBpLG8sYT0wLHU9bi5sZW5ndGgsZj1lLmxlbmd0aDthPHU7KXtpZihyPj1mKXJldHVybi0xO2lmKDM3PT09KGk9bi5jaGFyQ29kZUF0KGErKykpKXtpZihpPW4uY2hhckF0KGErKyksIShvPUFbaSBpbiBVZz9uLmNoYXJBdChhKyspOmldKXx8KHI9byh0LGUscikpPDApcmV0dXJuLTF9ZWxzZSBpZihpIT1lLmNoYXJDb2RlQXQocisrKSlyZXR1cm4tMX1yZXR1cm4gcn12YXIgaT10LmRhdGVUaW1lLG89dC5kYXRlLGE9dC50aW1lLHU9dC5wZXJpb2RzLGY9dC5kYXlzLGM9dC5zaG9ydERheXMscz10Lm1vbnRocyxsPXQuc2hvcnRNb250aHMsaD1RYSh1KSxkPUphKHUpLHA9UWEoZiksdj1KYShmKSxnPVFhKGMpLHk9SmEoYyksXz1RYShzKSxiPUphKHMpLG09UWEobCkseD1KYShsKSx3PXthOmZ1bmN0aW9uKHQpe3JldHVybiBjW3QuZ2V0RGF5KCldfSxBOmZ1bmN0aW9uKHQpe3JldHVybiBmW3QuZ2V0RGF5KCldfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBsW3QuZ2V0TW9udGgoKV19LEI6ZnVuY3Rpb24odCl7cmV0dXJuIHNbdC5nZXRNb250aCgpXX0sYzpudWxsLGQ6X3UsZTpfdSxmOk11LEg6YnUsSTptdSxqOnh1LEw6d3UsbTpBdSxNOlR1LHA6ZnVuY3Rpb24odCl7cmV0dXJuIHVbKyh0LmdldEhvdXJzKCk+PTEyKV19LFE6S3Usczp0ZixTOk51LHU6U3UsVTpFdSxWOmt1LHc6Q3UsVzpQdSx4Om51bGwsWDpudWxsLHk6enUsWTpSdSxaOkx1LFwiJVwiOkp1fSxNPXthOmZ1bmN0aW9uKHQpe3JldHVybiBjW3QuZ2V0VVRDRGF5KCldfSxBOmZ1bmN0aW9uKHQpe3JldHVybiBmW3QuZ2V0VVRDRGF5KCldfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBsW3QuZ2V0VVRDTW9udGgoKV19LEI6ZnVuY3Rpb24odCl7cmV0dXJuIHNbdC5nZXRVVENNb250aCgpXX0sYzpudWxsLGQ6RHUsZTpEdSxmOkJ1LEg6VXUsSTpxdSxqOk91LEw6WXUsbTpGdSxNOkl1LHA6ZnVuY3Rpb24odCl7cmV0dXJuIHVbKyh0LmdldFVUQ0hvdXJzKCk+PTEyKV19LFE6S3Usczp0ZixTOmp1LHU6SHUsVTpYdSxWOkd1LHc6VnUsVzokdSx4Om51bGwsWDpudWxsLHk6V3UsWTpadSxaOlF1LFwiJVwiOkp1fSxBPXthOmZ1bmN0aW9uKHQsbixlKXt2YXIgcj1nLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQudz15W3JbMF0udG9Mb3dlckNhc2UoKV0sZStyWzBdLmxlbmd0aCk6LTF9LEE6ZnVuY3Rpb24odCxuLGUpe3ZhciByPXAuZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC53PXZbclswXS50b0xvd2VyQ2FzZSgpXSxlK3JbMF0ubGVuZ3RoKTotMX0sYjpmdW5jdGlvbih0LG4sZSl7dmFyIHI9bS5leGVjKG4uc2xpY2UoZSkpO3JldHVybiByPyh0Lm09eFtyWzBdLnRvTG93ZXJDYXNlKCldLGUrclswXS5sZW5ndGgpOi0xfSxCOmZ1bmN0aW9uKHQsbixlKXt2YXIgcj1fLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQubT1iW3JbMF0udG9Mb3dlckNhc2UoKV0sZStyWzBdLmxlbmd0aCk6LTF9LGM6ZnVuY3Rpb24odCxuLGUpe3JldHVybiByKHQsaSxuLGUpfSxkOmZ1LGU6ZnUsZjpwdSxIOnN1LEk6c3UsajpjdSxMOmR1LG06dXUsTTpsdSxwOmZ1bmN0aW9uKHQsbixlKXt2YXIgcj1oLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQucD1kW3JbMF0udG9Mb3dlckNhc2UoKV0sZStyWzBdLmxlbmd0aCk6LTF9LFE6Z3Usczp5dSxTOmh1LHU6dHUsVTpudSxWOmV1LHc6S2EsVzpydSx4OmZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gcih0LG8sbixlKX0sWDpmdW5jdGlvbih0LG4sZSl7cmV0dXJuIHIodCxhLG4sZSl9LHk6b3UsWTppdSxaOmF1LFwiJVwiOnZ1fTtyZXR1cm4gdy54PW4obyx3KSx3Llg9bihhLHcpLHcuYz1uKGksdyksTS54PW4obyxNKSxNLlg9bihhLE0pLE0uYz1uKGksTSkse2Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1uKHQrPVwiXCIsdyk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIG49ZSh0Kz1cIlwiLFhhKTtyZXR1cm4gbi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxufSx1dGNGb3JtYXQ6ZnVuY3Rpb24odCl7dmFyIGU9bih0Kz1cIlwiLE0pO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y1BhcnNlOmZ1bmN0aW9uKHQpe3ZhciBuPWUodCxHYSk7cmV0dXJuIG4udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sbn19fWZ1bmN0aW9uIFdhKHQsbixlKXt2YXIgcj10PDA/XCItXCI6XCJcIixpPShyPy10OnQpK1wiXCIsbz1pLmxlbmd0aDtyZXR1cm4gcisobzxlP25ldyBBcnJheShlLW8rMSkuam9pbihuKStpOmkpfWZ1bmN0aW9uIFphKHQpe3JldHVybiB0LnJlcGxhY2UoWWcsXCJcXFxcJCZcIil9ZnVuY3Rpb24gUWEodCl7cmV0dXJuIG5ldyBSZWdFeHAoXCJeKD86XCIrdC5tYXAoWmEpLmpvaW4oXCJ8XCIpK1wiKVwiLFwiaVwiKX1mdW5jdGlvbiBKYSh0KXtmb3IodmFyIG49e30sZT0tMSxyPXQubGVuZ3RoOysrZTxyOyluW3RbZV0udG9Mb3dlckNhc2UoKV09ZTtyZXR1cm4gbn1mdW5jdGlvbiBLYSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsxKSk7cmV0dXJuIHI/KHQudz0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB0dSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsxKSk7cmV0dXJuIHI/KHQudT0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBudSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQuVT0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBldSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQuVj0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBydSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQuVz0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBpdSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSs0KSk7cmV0dXJuIHI/KHQueT0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBvdSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQueT0rclswXSsoK3JbMF0+Njg/MTkwMDoyZTMpLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGF1KHQsbixlKXt2YXIgcj0vXihaKXwoWystXVxcZFxcZCkoPzo6PyhcXGRcXGQpKT8vLmV4ZWMobi5zbGljZShlLGUrNikpO3JldHVybiByPyh0Llo9clsxXT8wOi0oclsyXSsoclszXXx8XCIwMFwiKSksZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gdXUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0Lm09clswXS0xLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGZ1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5kPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGN1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzMpKTtyZXR1cm4gcj8odC5tPTAsdC5kPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHN1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5IPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGx1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5NPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGh1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5TPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGR1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzMpKTtyZXR1cm4gcj8odC5MPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHB1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzYpKTtyZXR1cm4gcj8odC5MPU1hdGguZmxvb3IoclswXS8xZTMpLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHZ1KHQsbixlKXt2YXIgcj1PZy5leGVjKG4uc2xpY2UoZSxlKzEpKTtyZXR1cm4gcj9lK3JbMF0ubGVuZ3RoOi0xfWZ1bmN0aW9uIGd1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSkpO3JldHVybiByPyh0LlE9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24geXUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQuUT0xZTMqK3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gX3UodCxuKXtyZXR1cm4gV2EodC5nZXREYXRlKCksbiwyKX1mdW5jdGlvbiBidSh0LG4pe3JldHVybiBXYSh0LmdldEhvdXJzKCksbiwyKX1mdW5jdGlvbiBtdSh0LG4pe3JldHVybiBXYSh0LmdldEhvdXJzKCklMTJ8fDEyLG4sMil9ZnVuY3Rpb24geHUodCxuKXtyZXR1cm4gV2EoMStYdi5jb3VudChjZyh0KSx0KSxuLDMpfWZ1bmN0aW9uIHd1KHQsbil7cmV0dXJuIFdhKHQuZ2V0TWlsbGlzZWNvbmRzKCksbiwzKX1mdW5jdGlvbiBNdSh0LG4pe3JldHVybiB3dSh0LG4pK1wiMDAwXCJ9ZnVuY3Rpb24gQXUodCxuKXtyZXR1cm4gV2EodC5nZXRNb250aCgpKzEsbiwyKX1mdW5jdGlvbiBUdSh0LG4pe3JldHVybiBXYSh0LmdldE1pbnV0ZXMoKSxuLDIpfWZ1bmN0aW9uIE51KHQsbil7cmV0dXJuIFdhKHQuZ2V0U2Vjb25kcygpLG4sMil9ZnVuY3Rpb24gU3UodCl7dmFyIG49dC5nZXREYXkoKTtyZXR1cm4gMD09PW4/NzpufWZ1bmN0aW9uIEV1KHQsbil7cmV0dXJuIFdhKFZ2LmNvdW50KGNnKHQpLHQpLG4sMil9ZnVuY3Rpb24ga3UodCxuKXt2YXIgZT10LmdldERheSgpO3JldHVybiB0PWU+PTR8fDA9PT1lP1F2KHQpOlF2LmNlaWwodCksV2EoUXYuY291bnQoY2codCksdCkrKDQ9PT1jZyh0KS5nZXREYXkoKSksbiwyKX1mdW5jdGlvbiBDdSh0KXtyZXR1cm4gdC5nZXREYXkoKX1mdW5jdGlvbiBQdSh0LG4pe3JldHVybiBXYSgkdi5jb3VudChjZyh0KSx0KSxuLDIpfWZ1bmN0aW9uIHp1KHQsbil7cmV0dXJuIFdhKHQuZ2V0RnVsbFllYXIoKSUxMDAsbiwyKX1mdW5jdGlvbiBSdSh0LG4pe3JldHVybiBXYSh0LmdldEZ1bGxZZWFyKCklMWU0LG4sNCl9ZnVuY3Rpb24gTHUodCl7dmFyIG49dC5nZXRUaW1lem9uZU9mZnNldCgpO3JldHVybihuPjA/XCItXCI6KG4qPS0xLFwiK1wiKSkrV2Eobi82MHwwLFwiMFwiLDIpK1dhKG4lNjAsXCIwXCIsMil9ZnVuY3Rpb24gRHUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENEYXRlKCksbiwyKX1mdW5jdGlvbiBVdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ0hvdXJzKCksbiwyKX1mdW5jdGlvbiBxdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ0hvdXJzKCklMTJ8fDEyLG4sMil9ZnVuY3Rpb24gT3UodCxuKXtyZXR1cm4gV2EoMSt2Zy5jb3VudChSZyh0KSx0KSxuLDMpfWZ1bmN0aW9uIFl1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDTWlsbGlzZWNvbmRzKCksbiwzKX1mdW5jdGlvbiBCdSh0LG4pe3JldHVybiBZdSh0LG4pK1wiMDAwXCJ9ZnVuY3Rpb24gRnUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENNb250aCgpKzEsbiwyKX1mdW5jdGlvbiBJdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ01pbnV0ZXMoKSxuLDIpfWZ1bmN0aW9uIGp1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDU2Vjb25kcygpLG4sMil9ZnVuY3Rpb24gSHUodCl7dmFyIG49dC5nZXRVVENEYXkoKTtyZXR1cm4gMD09PW4/NzpufWZ1bmN0aW9uIFh1KHQsbil7cmV0dXJuIFdhKHlnLmNvdW50KFJnKHQpLHQpLG4sMil9ZnVuY3Rpb24gR3UodCxuKXt2YXIgZT10LmdldFVUQ0RheSgpO3JldHVybiB0PWU+PTR8fDA9PT1lP3hnKHQpOnhnLmNlaWwodCksV2EoeGcuY291bnQoUmcodCksdCkrKDQ9PT1SZyh0KS5nZXRVVENEYXkoKSksbiwyKX1mdW5jdGlvbiBWdSh0KXtyZXR1cm4gdC5nZXRVVENEYXkoKX1mdW5jdGlvbiAkdSh0LG4pe3JldHVybiBXYShfZy5jb3VudChSZyh0KSx0KSxuLDIpfWZ1bmN0aW9uIFd1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDRnVsbFllYXIoKSUxMDAsbiwyKX1mdW5jdGlvbiBadSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ0Z1bGxZZWFyKCklMWU0LG4sNCl9ZnVuY3Rpb24gUXUoKXtyZXR1cm5cIiswMDAwXCJ9ZnVuY3Rpb24gSnUoKXtyZXR1cm5cIiVcIn1mdW5jdGlvbiBLdSh0KXtyZXR1cm4rdH1mdW5jdGlvbiB0Zih0KXtyZXR1cm4gTWF0aC5mbG9vcigrdC8xZTMpfWZ1bmN0aW9uIG5mKG4pe3JldHVybiBMZz0kYShuKSx0LnRpbWVGb3JtYXQ9TGcuZm9ybWF0LHQudGltZVBhcnNlPUxnLnBhcnNlLHQudXRjRm9ybWF0PUxnLnV0Y0Zvcm1hdCx0LnV0Y1BhcnNlPUxnLnV0Y1BhcnNlLExnfWZ1bmN0aW9uIGVmKHQpe3JldHVybiBuZXcgRGF0ZSh0KX1mdW5jdGlvbiByZih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIERhdGU/K3Q6K25ldyBEYXRlKCt0KX1mdW5jdGlvbiBvZih0LG4scixpLG8sYSx1LGYsYyl7ZnVuY3Rpb24gcyhlKXtyZXR1cm4odShlKTxlP2c6YShlKTxlP3k6byhlKTxlP186aShlKTxlP2I6bihlKTxlP3IoZSk8ZT9tOng6dChlKTxlP3c6TSkoZSl9ZnVuY3Rpb24gbChuLHIsaSxvKXtpZihudWxsPT1uJiYobj0xMCksXCJudW1iZXJcIj09dHlwZW9mIG4pe3ZhciBhPU1hdGguYWJzKGktcikvbix1PWUoZnVuY3Rpb24odCl7cmV0dXJuIHRbMl19KS5yaWdodChBLGEpO3U9PT1BLmxlbmd0aD8obz1kKHIvV2csaS9XZyxuKSxuPXQpOnU/KG89KHU9QVthL0FbdS0xXVsyXTxBW3VdWzJdL2E/dS0xOnVdKVsxXSxuPXVbMF0pOihvPU1hdGgubWF4KGQocixpLG4pLDEpLG49Zil9cmV0dXJuIG51bGw9PW8/bjpuLmV2ZXJ5KG8pfXZhciBoPVRhKHhhLHNuKSxwPWguaW52ZXJ0LHY9aC5kb21haW4sZz1jKFwiLiVMXCIpLHk9YyhcIjolU1wiKSxfPWMoXCIlSTolTVwiKSxiPWMoXCIlSSAlcFwiKSxtPWMoXCIlYSAlZFwiKSx4PWMoXCIlYiAlZFwiKSx3PWMoXCIlQlwiKSxNPWMoXCIlWVwiKSxBPVtbdSwxLGpnXSxbdSw1LDUqamddLFt1LDE1LDE1KmpnXSxbdSwzMCwzMCpqZ10sW2EsMSxIZ10sW2EsNSw1KkhnXSxbYSwxNSwxNSpIZ10sW2EsMzAsMzAqSGddLFtvLDEsWGddLFtvLDMsMypYZ10sW28sNiw2KlhnXSxbbywxMiwxMipYZ10sW2ksMSxHZ10sW2ksMiwyKkdnXSxbciwxLFZnXSxbbiwxLCRnXSxbbiwzLDMqJGddLFt0LDEsV2ddXTtyZXR1cm4gaC5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBEYXRlKHAodCkpfSxoLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD92KGt2LmNhbGwodCxyZikpOnYoKS5tYXAoZWYpfSxoLnRpY2tzPWZ1bmN0aW9uKHQsbil7dmFyIGUscj12KCksaT1yWzBdLG89cltyLmxlbmd0aC0xXSxhPW88aTtyZXR1cm4gYSYmKGU9aSxpPW8sbz1lKSxlPWwodCxpLG8sbiksZT1lP2UucmFuZ2UoaSxvKzEpOltdLGE/ZS5yZXZlcnNlKCk6ZX0saC50aWNrRm9ybWF0PWZ1bmN0aW9uKHQsbil7cmV0dXJuIG51bGw9PW4/czpjKG4pfSxoLm5pY2U9ZnVuY3Rpb24odCxuKXt2YXIgZT12KCk7cmV0dXJuKHQ9bCh0LGVbMF0sZVtlLmxlbmd0aC0xXSxuKSk/dihrYShlLHQpKTpofSxoLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQWEoaCxvZih0LG4scixpLG8sYSx1LGYsYykpfSxofWZ1bmN0aW9uIGFmKHQpe2Z1bmN0aW9uIG4obil7dmFyIHI9KG4tZSkqaTtyZXR1cm4gdChvP01hdGgubWF4KDAsTWF0aC5taW4oMSxyKSk6cil9dmFyIGU9MCxyPTEsaT0xLG89ITE7cmV0dXJuIG4uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLHI9K3RbMV0saT1lPT09cj8wOjEvKHItZSksbik6W2Uscl19LG4uY2xhbXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ISF0LG4pOm99LG4uaW50ZXJwb2xhdG9yPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsbik6dH0sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGFmKHQpLmRvbWFpbihbZSxyXSkuY2xhbXAobyl9LE5hKG4pfWZ1bmN0aW9uIHVmKHQpe2Z1bmN0aW9uIG4obil7dmFyIGU9LjUrKChuPStuKS1yKSoobjxyP286YSk7cmV0dXJuIHQodT9NYXRoLm1heCgwLE1hdGgubWluKDEsZSkpOmUpfXZhciBlPTAscj0uNSxpPTEsbz0xLGE9MSx1PSExO3JldHVybiBuLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdFswXSxyPSt0WzFdLGk9K3RbMl0sbz1lPT09cj8wOi41LyhyLWUpLGE9cj09PWk/MDouNS8oaS1yKSxuKTpbZSxyLGldfSxuLmNsYW1wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSEhdCxuKTp1fSxuLmludGVycG9sYXRvcj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLG4pOnR9LG4uY29weT1mdW5jdGlvbigpe3JldHVybiB1Zih0KS5kb21haW4oW2UscixpXSkuY2xhbXAodSl9LE5hKG4pfWZ1bmN0aW9uIGZmKHQpe2Zvcih2YXIgbj10Lmxlbmd0aC82fDAsZT1uZXcgQXJyYXkobikscj0wO3I8bjspZVtyXT1cIiNcIit0LnNsaWNlKDYqciw2Kisrcik7cmV0dXJuIGV9ZnVuY3Rpb24gY2YodCl7cmV0dXJuIGlsKHRbdC5sZW5ndGgtMV0pfWZ1bmN0aW9uIHNmKHQpe3ZhciBuPXQubGVuZ3RoO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdFtNYXRoLm1heCgwLE1hdGgubWluKG4tMSxNYXRoLmZsb29yKGUqbikpKV19fWZ1bmN0aW9uIGxmKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBoZih0KXtyZXR1cm4gdD49MT9UXzp0PD0tMT8tVF86TWF0aC5hc2luKHQpfWZ1bmN0aW9uIGRmKHQpe3JldHVybiB0LmlubmVyUmFkaXVzfWZ1bmN0aW9uIHBmKHQpe3JldHVybiB0Lm91dGVyUmFkaXVzfWZ1bmN0aW9uIHZmKHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9ZnVuY3Rpb24gZ2YodCl7cmV0dXJuIHQuZW5kQW5nbGV9ZnVuY3Rpb24geWYodCl7cmV0dXJuIHQmJnQucGFkQW5nbGV9ZnVuY3Rpb24gX2YodCxuLGUscixpLG8sYSl7dmFyIHU9dC1lLGY9bi1yLGM9KGE/bzotbykvd18odSp1K2YqZikscz1jKmYsbD0tYyp1LGg9dCtzLGQ9bitsLHA9ZStzLHY9citsLGc9KGgrcCkvMix5PShkK3YpLzIsXz1wLWgsYj12LWQsbT1fKl8rYipiLHg9aS1vLHc9aCp2LXAqZCxNPShiPDA/LTE6MSkqd18oYl8oMCx4KngqbS13KncpKSxBPSh3KmItXypNKS9tLFQ9KC13Kl8tYipNKS9tLE49KHcqYitfKk0pL20sUz0oLXcqXytiKk0pL20sRT1BLWcsaz1ULXksQz1OLWcsUD1TLXk7cmV0dXJuIEUqRStrKms+QypDK1AqUCYmKEE9TixUPVMpLHtjeDpBLGN5OlQseDAxOi1zLHkwMTotbCx4MTE6QSooaS94LTEpLHkxMTpUKihpL3gtMSl9fWZ1bmN0aW9uIGJmKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBtZih0KXtyZXR1cm4gbmV3IGJmKHQpfWZ1bmN0aW9uIHhmKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIHdmKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIE1mKCl7ZnVuY3Rpb24gdCh0KXt2YXIgdSxmLGMscz10Lmxlbmd0aCxsPSExO2ZvcihudWxsPT1pJiYoYT1vKGM9b2UoKSkpLHU9MDt1PD1zOysrdSkhKHU8cyYmcihmPXRbdV0sdSx0KSk9PT1sJiYoKGw9IWwpP2EubGluZVN0YXJ0KCk6YS5saW5lRW5kKCkpLGwmJmEucG9pbnQoK24oZix1LHQpLCtlKGYsdSx0KSk7aWYoYylyZXR1cm4gYT1udWxsLGMrXCJcInx8bnVsbH12YXIgbj14ZixlPXdmLHI9bGYoITApLGk9bnVsbCxvPW1mLGE9bnVsbDtyZXR1cm4gdC54PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpsZigrZSksdCk6bn0sdC55PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6ZX0sdC5kZWZpbmVkPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZighIW4pLHQpOnJ9LHQuY3VydmU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89bixudWxsIT1pJiYoYT1vKGkpKSx0KTpvfSx0LmNvbnRleHQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PW4/aT1hPW51bGw6YT1vKGk9biksdCk6aX0sdH1mdW5jdGlvbiBBZigpe2Z1bmN0aW9uIHQodCl7dmFyIG4scyxsLGgsZCxwPXQubGVuZ3RoLHY9ITEsZz1uZXcgQXJyYXkocCkseT1uZXcgQXJyYXkocCk7Zm9yKG51bGw9PXUmJihjPWYoZD1vZSgpKSksbj0wO248PXA7KytuKXtpZighKG48cCYmYShoPXRbbl0sbix0KSk9PT12KWlmKHY9IXYpcz1uLGMuYXJlYVN0YXJ0KCksYy5saW5lU3RhcnQoKTtlbHNle2ZvcihjLmxpbmVFbmQoKSxjLmxpbmVTdGFydCgpLGw9bi0xO2w+PXM7LS1sKWMucG9pbnQoZ1tsXSx5W2xdKTtjLmxpbmVFbmQoKSxjLmFyZWFFbmQoKX12JiYoZ1tuXT0rZShoLG4sdCkseVtuXT0raShoLG4sdCksYy5wb2ludChyPytyKGgsbix0KTpnW25dLG8/K28oaCxuLHQpOnlbbl0pKX1pZihkKXJldHVybiBjPW51bGwsZCtcIlwifHxudWxsfWZ1bmN0aW9uIG4oKXtyZXR1cm4gTWYoKS5kZWZpbmVkKGEpLmN1cnZlKGYpLmNvbnRleHQodSl9dmFyIGU9eGYscj1udWxsLGk9bGYoMCksbz13ZixhPWxmKCEwKSx1PW51bGwsZj1tZixjPW51bGw7cmV0dXJuIHQueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHI9bnVsbCx0KTplfSx0LngwPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6ZX0sdC54MT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uP251bGw6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpyfSx0Lnk9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSxvPW51bGwsdCk6aX0sdC55MD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOml9LHQueTE9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89bnVsbD09bj9udWxsOlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6b30sdC5saW5lWDA9dC5saW5lWTA9ZnVuY3Rpb24oKXtyZXR1cm4gbigpLngoZSkueShpKX0sdC5saW5lWTE9ZnVuY3Rpb24oKXtyZXR1cm4gbigpLngoZSkueShvKX0sdC5saW5lWDE9ZnVuY3Rpb24oKXtyZXR1cm4gbigpLngocikueShpKX0sdC5kZWZpbmVkPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZighIW4pLHQpOmF9LHQuY3VydmU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9bixudWxsIT11JiYoYz1mKHUpKSx0KTpmfSx0LmNvbnRleHQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PW4/dT1jPW51bGw6Yz1mKHU9biksdCk6dX0sdH1mdW5jdGlvbiBUZih0LG4pe3JldHVybiBuPHQ/LTE6bj50PzE6bj49dD8wOk5hTn1mdW5jdGlvbiBOZih0KXtyZXR1cm4gdH1mdW5jdGlvbiBTZih0KXt0aGlzLl9jdXJ2ZT10fWZ1bmN0aW9uIEVmKHQpe2Z1bmN0aW9uIG4obil7cmV0dXJuIG5ldyBTZih0KG4pKX1yZXR1cm4gbi5fY3VydmU9dCxufWZ1bmN0aW9uIGtmKHQpe3ZhciBuPXQuY3VydmU7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5yYWRpdXM9dC55LGRlbGV0ZSB0LnksdC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uKEVmKHQpKTpuKCkuX2N1cnZlfSx0fWZ1bmN0aW9uIENmKCl7cmV0dXJuIGtmKE1mKCkuY3VydmUoU18pKX1mdW5jdGlvbiBQZigpe3ZhciB0PUFmKCkuY3VydmUoU18pLG49dC5jdXJ2ZSxlPXQubGluZVgwLHI9dC5saW5lWDEsaT10LmxpbmVZMCxvPXQubGluZVkxO3JldHVybiB0LmFuZ2xlPXQueCxkZWxldGUgdC54LHQuc3RhcnRBbmdsZT10LngwLGRlbGV0ZSB0LngwLHQuZW5kQW5nbGU9dC54MSxkZWxldGUgdC54MSx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0LmlubmVyUmFkaXVzPXQueTAsZGVsZXRlIHQueTAsdC5vdXRlclJhZGl1cz10LnkxLGRlbGV0ZSB0LnkxLHQubGluZVN0YXJ0QW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4ga2YoZSgpKX0sZGVsZXRlIHQubGluZVgwLHQubGluZUVuZEFuZ2xlPWZ1bmN0aW9uKCl7cmV0dXJuIGtmKHIoKSl9LGRlbGV0ZSB0LmxpbmVYMSx0LmxpbmVJbm5lclJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBrZihpKCkpfSxkZWxldGUgdC5saW5lWTAsdC5saW5lT3V0ZXJSYWRpdXM9ZnVuY3Rpb24oKXtyZXR1cm4ga2YobygpKX0sZGVsZXRlIHQubGluZVkxLHQuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bihFZih0KSk6bigpLl9jdXJ2ZX0sdH1mdW5jdGlvbiB6Zih0LG4pe3JldHVyblsobj0rbikqTWF0aC5jb3ModC09TWF0aC5QSS8yKSxuKk1hdGguc2luKHQpXX1mdW5jdGlvbiBSZih0KXtyZXR1cm4gdC5zb3VyY2V9ZnVuY3Rpb24gTGYodCl7cmV0dXJuIHQudGFyZ2V0fWZ1bmN0aW9uIERmKHQpe2Z1bmN0aW9uIG4oKXt2YXIgbix1PUVfLmNhbGwoYXJndW1lbnRzKSxmPWUuYXBwbHkodGhpcyx1KSxjPXIuYXBwbHkodGhpcyx1KTtpZihhfHwoYT1uPW9lKCkpLHQoYSwraS5hcHBseSh0aGlzLCh1WzBdPWYsdSkpLCtvLmFwcGx5KHRoaXMsdSksK2kuYXBwbHkodGhpcywodVswXT1jLHUpKSwrby5hcHBseSh0aGlzLHUpKSxuKXJldHVybiBhPW51bGwsbitcIlwifHxudWxsfXZhciBlPVJmLHI9TGYsaT14ZixvPXdmLGE9bnVsbDtyZXR1cm4gbi5zb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxuKTplfSxuLnRhcmdldD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LG4pOnJ9LG4ueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bGYoK3QpLG4pOml9LG4ueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bGYoK3QpLG4pOm99LG4uY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1udWxsPT10P251bGw6dCxuKTphfSxufWZ1bmN0aW9uIFVmKHQsbixlLHIsaSl7dC5tb3ZlVG8obixlKSx0LmJlemllckN1cnZlVG8obj0obityKS8yLGUsbixpLHIsaSl9ZnVuY3Rpb24gcWYodCxuLGUscixpKXt0Lm1vdmVUbyhuLGUpLHQuYmV6aWVyQ3VydmVUbyhuLGU9KGUraSkvMixyLGUscixpKX1mdW5jdGlvbiBPZih0LG4sZSxyLGkpe3ZhciBvPXpmKG4sZSksYT16ZihuLGU9KGUraSkvMiksdT16ZihyLGUpLGY9emYocixpKTt0Lm1vdmVUbyhvWzBdLG9bMV0pLHQuYmV6aWVyQ3VydmVUbyhhWzBdLGFbMV0sdVswXSx1WzFdLGZbMF0sZlsxXSl9ZnVuY3Rpb24gWWYoKXt9ZnVuY3Rpb24gQmYodCxuLGUpe3QuX2NvbnRleHQuYmV6aWVyQ3VydmVUbygoMip0Ll94MCt0Ll94MSkvMywoMip0Ll95MCt0Ll95MSkvMywodC5feDArMip0Ll94MSkvMywodC5feTArMip0Ll95MSkvMywodC5feDArNCp0Ll94MStuKS82LCh0Ll95MCs0KnQuX3kxK2UpLzYpfWZ1bmN0aW9uIEZmKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBJZih0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gamYodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIEhmKHQsbil7dGhpcy5fYmFzaXM9bmV3IEZmKHQpLHRoaXMuX2JldGE9bn1mdW5jdGlvbiBYZih0LG4sZSl7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHQuX3gxK3QuX2sqKHQuX3gyLXQuX3gwKSx0Ll95MSt0Ll9rKih0Ll95Mi10Ll95MCksdC5feDIrdC5fayoodC5feDEtbiksdC5feTIrdC5fayoodC5feTEtZSksdC5feDIsdC5feTIpfWZ1bmN0aW9uIEdmKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtbikvNn1mdW5jdGlvbiBWZih0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9rPSgxLW4pLzZ9ZnVuY3Rpb24gJGYodCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1uKS82fWZ1bmN0aW9uIFdmKHQsbixlKXt2YXIgcj10Ll94MSxpPXQuX3kxLG89dC5feDIsYT10Ll95MjtpZih0Ll9sMDFfYT5NXyl7dmFyIHU9Mip0Ll9sMDFfMmErMyp0Ll9sMDFfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEsZj0zKnQuX2wwMV9hKih0Ll9sMDFfYSt0Ll9sMTJfYSk7cj0ocip1LXQuX3gwKnQuX2wxMl8yYSt0Ll94Mip0Ll9sMDFfMmEpL2YsaT0oaSp1LXQuX3kwKnQuX2wxMl8yYSt0Ll95Mip0Ll9sMDFfMmEpL2Z9aWYodC5fbDIzX2E+TV8pe3ZhciBjPTIqdC5fbDIzXzJhKzMqdC5fbDIzX2EqdC5fbDEyX2ErdC5fbDEyXzJhLHM9Myp0Ll9sMjNfYSoodC5fbDIzX2ErdC5fbDEyX2EpO289KG8qYyt0Ll94MSp0Ll9sMjNfMmEtbip0Ll9sMTJfMmEpL3MsYT0oYSpjK3QuX3kxKnQuX2wyM18yYS1lKnQuX2wxMl8yYSkvc310Ll9jb250ZXh0LmJlemllckN1cnZlVG8ocixpLG8sYSx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gWmYodCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9bn1mdW5jdGlvbiBRZih0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1ufWZ1bmN0aW9uIEpmKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPW59ZnVuY3Rpb24gS2YodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHRjKHQpe3JldHVybiB0PDA/LTE6MX1mdW5jdGlvbiBuYyh0LG4sZSl7dmFyIHI9dC5feDEtdC5feDAsaT1uLXQuX3gxLG89KHQuX3kxLXQuX3kwKS8ocnx8aTwwJiYtMCksYT0oZS10Ll95MSkvKGl8fHI8MCYmLTApLHU9KG8qaSthKnIpLyhyK2kpO3JldHVybih0YyhvKSt0YyhhKSkqTWF0aC5taW4oTWF0aC5hYnMobyksTWF0aC5hYnMoYSksLjUqTWF0aC5hYnModSkpfHwwfWZ1bmN0aW9uIGVjKHQsbil7dmFyIGU9dC5feDEtdC5feDA7cmV0dXJuIGU/KDMqKHQuX3kxLXQuX3kwKS9lLW4pLzI6bn1mdW5jdGlvbiByYyh0LG4sZSl7dmFyIHI9dC5feDAsaT10Ll95MCxvPXQuX3gxLGE9dC5feTEsdT0oby1yKS8zO3QuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhyK3UsaSt1Km4sby11LGEtdSplLG8sYSl9ZnVuY3Rpb24gaWModCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIG9jKHQpe3RoaXMuX2NvbnRleHQ9bmV3IGFjKHQpfWZ1bmN0aW9uIGFjKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiB1Yyh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gZmModCl7dmFyIG4sZSxyPXQubGVuZ3RoLTEsaT1uZXcgQXJyYXkociksbz1uZXcgQXJyYXkociksYT1uZXcgQXJyYXkocik7Zm9yKGlbMF09MCxvWzBdPTIsYVswXT10WzBdKzIqdFsxXSxuPTE7bjxyLTE7KytuKWlbbl09MSxvW25dPTQsYVtuXT00KnRbbl0rMip0W24rMV07Zm9yKGlbci0xXT0yLG9bci0xXT03LGFbci0xXT04KnRbci0xXSt0W3JdLG49MTtuPHI7KytuKWU9aVtuXS9vW24tMV0sb1tuXS09ZSxhW25dLT1lKmFbbi0xXTtmb3IoaVtyLTFdPWFbci0xXS9vW3ItMV0sbj1yLTI7bj49MDstLW4paVtuXT0oYVtuXS1pW24rMV0pL29bbl07Zm9yKG9bci0xXT0odFtyXStpW3ItMV0pLzIsbj0wO248ci0xOysrbilvW25dPTIqdFtuKzFdLWlbbisxXTtyZXR1cm5baSxvXX1mdW5jdGlvbiBjYyh0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl90PW59ZnVuY3Rpb24gc2ModCxuKXtpZigoaT10Lmxlbmd0aCk+MSlmb3IodmFyIGUscixpLG89MSxhPXRbblswXV0sdT1hLmxlbmd0aDtvPGk7KytvKWZvcihyPWEsYT10W25bb11dLGU9MDtlPHU7KytlKWFbZV1bMV0rPWFbZV1bMF09aXNOYU4ocltlXVsxXSk/cltlXVswXTpyW2VdWzFdfWZ1bmN0aW9uIGxjKHQpe2Zvcih2YXIgbj10Lmxlbmd0aCxlPW5ldyBBcnJheShuKTstLW4+PTA7KWVbbl09bjtyZXR1cm4gZX1mdW5jdGlvbiBoYyh0LG4pe3JldHVybiB0W25dfWZ1bmN0aW9uIGRjKHQpe3ZhciBuPXQubWFwKHBjKTtyZXR1cm4gbGModCkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiBuW3RdLW5bZV19KX1mdW5jdGlvbiBwYyh0KXtmb3IodmFyIG4sZT0wLHI9LTEsaT10Lmxlbmd0aDsrK3I8aTspKG49K3Rbcl1bMV0pJiYoZSs9bik7cmV0dXJuIGV9ZnVuY3Rpb24gdmModCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGdjKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIHljKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIF9jKCl7dGhpcy5fPW51bGx9ZnVuY3Rpb24gYmModCl7dC5VPXQuQz10Lkw9dC5SPXQuUD10Lk49bnVsbH1mdW5jdGlvbiBtYyh0LG4pe3ZhciBlPW4scj1uLlIsaT1lLlU7aT9pLkw9PT1lP2kuTD1yOmkuUj1yOnQuXz1yLHIuVT1pLGUuVT1yLGUuUj1yLkwsZS5SJiYoZS5SLlU9ZSksci5MPWV9ZnVuY3Rpb24geGModCxuKXt2YXIgZT1uLHI9bi5MLGk9ZS5VO2k/aS5MPT09ZT9pLkw9cjppLlI9cjp0Ll89cixyLlU9aSxlLlU9cixlLkw9ci5SLGUuTCYmKGUuTC5VPWUpLHIuUj1lfWZ1bmN0aW9uIHdjKHQpe2Zvcig7dC5MOyl0PXQuTDtyZXR1cm4gdH1mdW5jdGlvbiBNYyh0LG4sZSxyKXt2YXIgaT1bbnVsbCxudWxsXSxvPXJiLnB1c2goaSktMTtyZXR1cm4gaS5sZWZ0PXQsaS5yaWdodD1uLGUmJlRjKGksdCxuLGUpLHImJlRjKGksbix0LHIpLG5iW3QuaW5kZXhdLmhhbGZlZGdlcy5wdXNoKG8pLG5iW24uaW5kZXhdLmhhbGZlZGdlcy5wdXNoKG8pLGl9ZnVuY3Rpb24gQWModCxuLGUpe3ZhciByPVtuLGVdO3JldHVybiByLmxlZnQ9dCxyfWZ1bmN0aW9uIFRjKHQsbixlLHIpe3RbMF18fHRbMV0/dC5sZWZ0PT09ZT90WzFdPXI6dFswXT1yOih0WzBdPXIsdC5sZWZ0PW4sdC5yaWdodD1lKX1mdW5jdGlvbiBOYyh0LG4sZSxyLGkpe3ZhciBvLGE9dFswXSx1PXRbMV0sZj1hWzBdLGM9YVsxXSxzPTAsbD0xLGg9dVswXS1mLGQ9dVsxXS1jO2lmKG89bi1mLGh8fCEobz4wKSl7aWYoby89aCxoPDApe2lmKG88cylyZXR1cm47bzxsJiYobD1vKX1lbHNlIGlmKGg+MCl7aWYobz5sKXJldHVybjtvPnMmJihzPW8pfWlmKG89ci1mLGh8fCEobzwwKSl7aWYoby89aCxoPDApe2lmKG8+bClyZXR1cm47bz5zJiYocz1vKX1lbHNlIGlmKGg+MCl7aWYobzxzKXJldHVybjtvPGwmJihsPW8pfWlmKG89ZS1jLGR8fCEobz4wKSl7aWYoby89ZCxkPDApe2lmKG88cylyZXR1cm47bzxsJiYobD1vKX1lbHNlIGlmKGQ+MCl7aWYobz5sKXJldHVybjtvPnMmJihzPW8pfWlmKG89aS1jLGR8fCEobzwwKSl7aWYoby89ZCxkPDApe2lmKG8+bClyZXR1cm47bz5zJiYocz1vKX1lbHNlIGlmKGQ+MCl7aWYobzxzKXJldHVybjtvPGwmJihsPW8pfXJldHVybiEocz4wfHxsPDEpfHwocz4wJiYodFswXT1bZitzKmgsYytzKmRdKSxsPDEmJih0WzFdPVtmK2wqaCxjK2wqZF0pLCEwKX19fX19ZnVuY3Rpb24gU2ModCxuLGUscixpKXt2YXIgbz10WzFdO2lmKG8pcmV0dXJuITA7dmFyIGEsdSxmPXRbMF0sYz10LmxlZnQscz10LnJpZ2h0LGw9Y1swXSxoPWNbMV0sZD1zWzBdLHA9c1sxXSx2PShsK2QpLzIsZz0oaCtwKS8yO2lmKHA9PT1oKXtpZih2PG58fHY+PXIpcmV0dXJuO2lmKGw+ZCl7aWYoZil7aWYoZlsxXT49aSlyZXR1cm59ZWxzZSBmPVt2LGVdO289W3YsaV19ZWxzZXtpZihmKXtpZihmWzFdPGUpcmV0dXJufWVsc2UgZj1bdixpXTtvPVt2LGVdfX1lbHNlIGlmKGE9KGwtZCkvKHAtaCksdT1nLWEqdixhPC0xfHxhPjEpaWYobD5kKXtpZihmKXtpZihmWzFdPj1pKXJldHVybn1lbHNlIGY9WyhlLXUpL2EsZV07bz1bKGktdSkvYSxpXX1lbHNle2lmKGYpe2lmKGZbMV08ZSlyZXR1cm59ZWxzZSBmPVsoaS11KS9hLGldO289WyhlLXUpL2EsZV19ZWxzZSBpZihoPHApe2lmKGYpe2lmKGZbMF0+PXIpcmV0dXJufWVsc2UgZj1bbixhKm4rdV07bz1bcixhKnIrdV19ZWxzZXtpZihmKXtpZihmWzBdPG4pcmV0dXJufWVsc2UgZj1bcixhKnIrdV07bz1bbixhKm4rdV19cmV0dXJuIHRbMF09Zix0WzFdPW8sITB9ZnVuY3Rpb24gRWModCxuKXt2YXIgZT10LnNpdGUscj1uLmxlZnQsaT1uLnJpZ2h0O3JldHVybiBlPT09aSYmKGk9cixyPWUpLGk/TWF0aC5hdGFuMihpWzFdLXJbMV0saVswXS1yWzBdKTooZT09PXI/KHI9blsxXSxpPW5bMF0pOihyPW5bMF0saT1uWzFdKSxNYXRoLmF0YW4yKHJbMF0taVswXSxpWzFdLXJbMV0pKX1mdW5jdGlvbiBrYyh0LG4pe3JldHVybiBuWysobi5sZWZ0IT09dC5zaXRlKV19ZnVuY3Rpb24gQ2ModCxuKXtyZXR1cm4gblsrKG4ubGVmdD09PXQuc2l0ZSldfWZ1bmN0aW9uIFBjKHQpe3ZhciBuPXQuUCxlPXQuTjtpZihuJiZlKXt2YXIgcj1uLnNpdGUsaT10LnNpdGUsbz1lLnNpdGU7aWYociE9PW8pe3ZhciBhPWlbMF0sdT1pWzFdLGY9clswXS1hLGM9clsxXS11LHM9b1swXS1hLGw9b1sxXS11LGg9MiooZipsLWMqcyk7aWYoIShoPj0tdWIpKXt2YXIgZD1mKmYrYypjLHA9cypzK2wqbCx2PShsKmQtYypwKS9oLGc9KGYqcC1zKmQpL2gseT1pYi5wb3AoKXx8bmV3IGZ1bmN0aW9uKCl7YmModGhpcyksdGhpcy54PXRoaXMueT10aGlzLmFyYz10aGlzLnNpdGU9dGhpcy5jeT1udWxsfTt5LmFyYz10LHkuc2l0ZT1pLHkueD12K2EseS55PSh5LmN5PWcrdSkrTWF0aC5zcXJ0KHYqditnKmcpLHQuY2lyY2xlPXk7Zm9yKHZhciBfPW51bGwsYj1lYi5fO2I7KWlmKHkueTxiLnl8fHkueT09PWIueSYmeS54PD1iLngpe2lmKCFiLkwpe189Yi5QO2JyZWFrfWI9Yi5MfWVsc2V7aWYoIWIuUil7Xz1iO2JyZWFrfWI9Yi5SfWViLmluc2VydChfLHkpLF98fChLXz15KX19fX1mdW5jdGlvbiB6Yyh0KXt2YXIgbj10LmNpcmNsZTtuJiYobi5QfHwoS189bi5OKSxlYi5yZW1vdmUobiksaWIucHVzaChuKSxiYyhuKSx0LmNpcmNsZT1udWxsKX1mdW5jdGlvbiBSYyh0KXt2YXIgbj1vYi5wb3AoKXx8bmV3IGZ1bmN0aW9uKCl7YmModGhpcyksdGhpcy5lZGdlPXRoaXMuc2l0ZT10aGlzLmNpcmNsZT1udWxsfTtyZXR1cm4gbi5zaXRlPXQsbn1mdW5jdGlvbiBMYyh0KXt6Yyh0KSx0Yi5yZW1vdmUodCksb2IucHVzaCh0KSxiYyh0KX1mdW5jdGlvbiBEYyh0KXt2YXIgbj10LmNpcmNsZSxlPW4ueCxyPW4uY3ksaT1bZSxyXSxvPXQuUCxhPXQuTix1PVt0XTtMYyh0KTtmb3IodmFyIGY9bztmLmNpcmNsZSYmTWF0aC5hYnMoZS1mLmNpcmNsZS54KTxhYiYmTWF0aC5hYnMoci1mLmNpcmNsZS5jeSk8YWI7KW89Zi5QLHUudW5zaGlmdChmKSxMYyhmKSxmPW87dS51bnNoaWZ0KGYpLHpjKGYpO2Zvcih2YXIgYz1hO2MuY2lyY2xlJiZNYXRoLmFicyhlLWMuY2lyY2xlLngpPGFiJiZNYXRoLmFicyhyLWMuY2lyY2xlLmN5KTxhYjspYT1jLk4sdS5wdXNoKGMpLExjKGMpLGM9YTt1LnB1c2goYyksemMoYyk7dmFyIHMsbD11Lmxlbmd0aDtmb3Iocz0xO3M8bDsrK3MpYz11W3NdLGY9dVtzLTFdLFRjKGMuZWRnZSxmLnNpdGUsYy5zaXRlLGkpO2Y9dVswXSwoYz11W2wtMV0pLmVkZ2U9TWMoZi5zaXRlLGMuc2l0ZSxudWxsLGkpLFBjKGYpLFBjKGMpfWZ1bmN0aW9uIFVjKHQpe2Zvcih2YXIgbixlLHIsaSxvPXRbMF0sYT10WzFdLHU9dGIuXzt1OylpZigocj1xYyh1LGEpLW8pPmFiKXU9dS5MO2Vsc2V7aWYoISgoaT1vLWZ1bmN0aW9uKHQsbil7dmFyIGU9dC5OO2lmKGUpcmV0dXJuIHFjKGUsbik7dmFyIHI9dC5zaXRlO3JldHVybiByWzFdPT09bj9yWzBdOjEvMH0odSxhKSk+YWIpKXtyPi1hYj8obj11LlAsZT11KTppPi1hYj8obj11LGU9dS5OKTpuPWU9dTticmVha31pZighdS5SKXtuPXU7YnJlYWt9dT11LlJ9KGZ1bmN0aW9uKHQpe25iW3QuaW5kZXhdPXtzaXRlOnQsaGFsZmVkZ2VzOltdfX0pKHQpO3ZhciBmPVJjKHQpO2lmKHRiLmluc2VydChuLGYpLG58fGUpe2lmKG49PT1lKXJldHVybiB6YyhuKSxlPVJjKG4uc2l0ZSksdGIuaW5zZXJ0KGYsZSksZi5lZGdlPWUuZWRnZT1NYyhuLnNpdGUsZi5zaXRlKSxQYyhuKSx2b2lkIFBjKGUpO2lmKGUpe3pjKG4pLHpjKGUpO3ZhciBjPW4uc2l0ZSxzPWNbMF0sbD1jWzFdLGg9dFswXS1zLGQ9dFsxXS1sLHA9ZS5zaXRlLHY9cFswXS1zLGc9cFsxXS1sLHk9MiooaCpnLWQqdiksXz1oKmgrZCpkLGI9dip2K2cqZyxtPVsoZypfLWQqYikveStzLChoKmItdipfKS95K2xdO1RjKGUuZWRnZSxjLHAsbSksZi5lZGdlPU1jKGMsdCxudWxsLG0pLGUuZWRnZT1NYyh0LHAsbnVsbCxtKSxQYyhuKSxQYyhlKX1lbHNlIGYuZWRnZT1NYyhuLnNpdGUsZi5zaXRlKX19ZnVuY3Rpb24gcWModCxuKXt2YXIgZT10LnNpdGUscj1lWzBdLGk9ZVsxXSxvPWktbjtpZighbylyZXR1cm4gcjt2YXIgYT10LlA7aWYoIWEpcmV0dXJuLTEvMDt2YXIgdT0oZT1hLnNpdGUpWzBdLGY9ZVsxXSxjPWYtbjtpZighYylyZXR1cm4gdTt2YXIgcz11LXIsbD0xL28tMS9jLGg9cy9jO3JldHVybiBsPygtaCtNYXRoLnNxcnQoaCpoLTIqbCoocypzLygtMipjKS1mK2MvMitpLW8vMikpKS9sK3I6KHIrdSkvMn1mdW5jdGlvbiBPYyh0LG4sZSl7cmV0dXJuKHRbMF0tZVswXSkqKG5bMV0tdFsxXSktKHRbMF0tblswXSkqKGVbMV0tdFsxXSl9ZnVuY3Rpb24gWWModCxuKXtyZXR1cm4gblsxXS10WzFdfHxuWzBdLXRbMF19ZnVuY3Rpb24gQmModCxuKXt2YXIgZSxyLGksbz10LnNvcnQoWWMpLnBvcCgpO2ZvcihyYj1bXSxuYj1uZXcgQXJyYXkodC5sZW5ndGgpLHRiPW5ldyBfYyxlYj1uZXcgX2M7OylpZihpPUtfLG8mJighaXx8b1sxXTxpLnl8fG9bMV09PT1pLnkmJm9bMF08aS54KSlvWzBdPT09ZSYmb1sxXT09PXJ8fChVYyhvKSxlPW9bMF0scj1vWzFdKSxvPXQucG9wKCk7ZWxzZXtpZighaSlicmVhaztEYyhpLmFyYyl9aWYoZnVuY3Rpb24oKXtmb3IodmFyIHQsbixlLHIsaT0wLG89bmIubGVuZ3RoO2k8bzsrK2kpaWYoKHQ9bmJbaV0pJiYocj0obj10LmhhbGZlZGdlcykubGVuZ3RoKSl7dmFyIGE9bmV3IEFycmF5KHIpLHU9bmV3IEFycmF5KHIpO2ZvcihlPTA7ZTxyOysrZSlhW2VdPWUsdVtlXT1FYyh0LHJiW25bZV1dKTtmb3IoYS5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIHVbbl0tdVt0XX0pLGU9MDtlPHI7KytlKXVbZV09blthW2VdXTtmb3IoZT0wO2U8cjsrK2UpbltlXT11W2VdfX0oKSxuKXt2YXIgYT0rblswXVswXSx1PStuWzBdWzFdLGY9K25bMV1bMF0sYz0rblsxXVsxXTsoZnVuY3Rpb24odCxuLGUscil7Zm9yKHZhciBpLG89cmIubGVuZ3RoO28tLTspU2MoaT1yYltvXSx0LG4sZSxyKSYmTmMoaSx0LG4sZSxyKSYmKE1hdGguYWJzKGlbMF1bMF0taVsxXVswXSk+YWJ8fE1hdGguYWJzKGlbMF1bMV0taVsxXVsxXSk+YWIpfHxkZWxldGUgcmJbb119KShhLHUsZixjKSxmdW5jdGlvbih0LG4sZSxyKXt2YXIgaSxvLGEsdSxmLGMscyxsLGgsZCxwLHYsZz1uYi5sZW5ndGgseT0hMDtmb3IoaT0wO2k8ZzsrK2kpaWYobz1uYltpXSl7Zm9yKGE9by5zaXRlLHU9KGY9by5oYWxmZWRnZXMpLmxlbmd0aDt1LS07KXJiW2ZbdV1dfHxmLnNwbGljZSh1LDEpO2Zvcih1PTAsYz1mLmxlbmd0aDt1PGM7KXA9KGQ9Q2MobyxyYltmW3VdXSkpWzBdLHY9ZFsxXSxsPShzPWtjKG8scmJbZlsrK3UlY11dKSlbMF0saD1zWzFdLChNYXRoLmFicyhwLWwpPmFifHxNYXRoLmFicyh2LWgpPmFiKSYmKGYuc3BsaWNlKHUsMCxyYi5wdXNoKEFjKGEsZCxNYXRoLmFicyhwLXQpPGFiJiZyLXY+YWI/W3QsTWF0aC5hYnMobC10KTxhYj9oOnJdOk1hdGguYWJzKHYtcik8YWImJmUtcD5hYj9bTWF0aC5hYnMoaC1yKTxhYj9sOmUscl06TWF0aC5hYnMocC1lKTxhYiYmdi1uPmFiP1tlLE1hdGguYWJzKGwtZSk8YWI/aDpuXTpNYXRoLmFicyh2LW4pPGFiJiZwLXQ+YWI/W01hdGguYWJzKGgtbik8YWI/bDp0LG5dOm51bGwpKS0xKSwrK2MpO2MmJih5PSExKX1pZih5KXt2YXIgXyxiLG0seD0xLzA7Zm9yKGk9MCx5PW51bGw7aTxnOysraSkobz1uYltpXSkmJihtPShfPShhPW8uc2l0ZSlbMF0tdCkqXysoYj1hWzFdLW4pKmIpPHgmJih4PW0seT1vKTtpZih5KXt2YXIgdz1bdCxuXSxNPVt0LHJdLEE9W2Uscl0sVD1bZSxuXTt5LmhhbGZlZGdlcy5wdXNoKHJiLnB1c2goQWMoYT15LnNpdGUsdyxNKSktMSxyYi5wdXNoKEFjKGEsTSxBKSktMSxyYi5wdXNoKEFjKGEsQSxUKSktMSxyYi5wdXNoKEFjKGEsVCx3KSktMSl9fWZvcihpPTA7aTxnOysraSkobz1uYltpXSkmJihvLmhhbGZlZGdlcy5sZW5ndGh8fGRlbGV0ZSBuYltpXSl9KGEsdSxmLGMpfXRoaXMuZWRnZXM9cmIsdGhpcy5jZWxscz1uYix0Yj1lYj1yYj1uYj1udWxsfWZ1bmN0aW9uIEZjKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBJYyh0LG4sZSl7dGhpcy5rPXQsdGhpcy54PW4sdGhpcy55PWV9ZnVuY3Rpb24gamModCl7cmV0dXJuIHQuX196b29tfHxmYn1mdW5jdGlvbiBIYygpe3QuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gWGMoKXt0LmV2ZW50LnByZXZlbnREZWZhdWx0KCksdC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBHYygpe3JldHVybiF0LmV2ZW50LmJ1dHRvbn1mdW5jdGlvbiBWYygpe3ZhciB0LG4sZT10aGlzO3JldHVybiBlIGluc3RhbmNlb2YgU1ZHRWxlbWVudD8odD0oZT1lLm93bmVyU1ZHRWxlbWVudHx8ZSkud2lkdGguYmFzZVZhbC52YWx1ZSxuPWUuaGVpZ2h0LmJhc2VWYWwudmFsdWUpOih0PWUuY2xpZW50V2lkdGgsbj1lLmNsaWVudEhlaWdodCksW1swLDBdLFt0LG5dXX1mdW5jdGlvbiAkYygpe3JldHVybiB0aGlzLl9fem9vbXx8ZmJ9ZnVuY3Rpb24gV2MoKXtyZXR1cm4tdC5ldmVudC5kZWx0YVkqKHQuZXZlbnQuZGVsdGFNb2RlPzEyMDoxKS81MDB9ZnVuY3Rpb24gWmMoKXtyZXR1cm5cIm9udG91Y2hzdGFydFwiaW4gdGhpc31mdW5jdGlvbiBRYyh0LG4sZSl7dmFyIHI9dC5pbnZlcnRYKG5bMF1bMF0pLWVbMF1bMF0saT10LmludmVydFgoblsxXVswXSktZVsxXVswXSxvPXQuaW52ZXJ0WShuWzBdWzFdKS1lWzBdWzFdLGE9dC5pbnZlcnRZKG5bMV1bMV0pLWVbMV1bMV07cmV0dXJuIHQudHJhbnNsYXRlKGk+cj8ocitpKS8yOk1hdGgubWluKDAscil8fE1hdGgubWF4KDAsaSksYT5vPyhvK2EpLzI6TWF0aC5taW4oMCxvKXx8TWF0aC5tYXgoMCxhKSl9dmFyIEpjPWUobiksS2M9SmMucmlnaHQsdHM9SmMubGVmdCxucz1BcnJheS5wcm90b3R5cGUsZXM9bnMuc2xpY2UscnM9bnMubWFwLGlzPU1hdGguc3FydCg1MCksb3M9TWF0aC5zcXJ0KDEwKSxhcz1NYXRoLnNxcnQoMiksdXM9QXJyYXkucHJvdG90eXBlLnNsaWNlLGZzPTEsY3M9Mixzcz0zLGxzPTQsaHM9MWUtNixkcz17dmFsdWU6ZnVuY3Rpb24oKXt9fTtTLnByb3RvdHlwZT1OLnByb3RvdHlwZT17Y29uc3RydWN0b3I6UyxvbjpmdW5jdGlvbih0LG4pe3ZhciBlLHI9dGhpcy5fLGk9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XFxzKy8pLm1hcChmdW5jdGlvbih0KXt2YXIgZT1cIlwiLHI9dC5pbmRleE9mKFwiLlwiKTtpZihyPj0wJiYoZT10LnNsaWNlKHIrMSksdD10LnNsaWNlKDAscikpLHQmJiFuLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcihcInVua25vd24gdHlwZTogXCIrdCk7cmV0dXJue3R5cGU6dCxuYW1lOmV9fSl9KHQrXCJcIixyKSxvPS0xLGE9aS5sZW5ndGg7e2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7aWYobnVsbCE9biYmXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGNhbGxiYWNrOiBcIituKTtmb3IoOysrbzxhOylpZihlPSh0PWlbb10pLnR5cGUpcltlXT1FKHJbZV0sdC5uYW1lLG4pO2Vsc2UgaWYobnVsbD09bilmb3IoZSBpbiByKXJbZV09RShyW2VdLHQubmFtZSxudWxsKTtyZXR1cm4gdGhpc31mb3IoOysrbzxhOylpZigoZT0odD1pW29dKS50eXBlKSYmKGU9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGUscj0wLGk9dC5sZW5ndGg7cjxpOysrcilpZigoZT10W3JdKS5uYW1lPT09bilyZXR1cm4gZS52YWx1ZX0ocltlXSx0Lm5hbWUpKSlyZXR1cm4gZX19LGNvcHk6ZnVuY3Rpb24oKXt2YXIgdD17fSxuPXRoaXMuXztmb3IodmFyIGUgaW4gbil0W2VdPW5bZV0uc2xpY2UoKTtyZXR1cm4gbmV3IFModCl9LGNhbGw6ZnVuY3Rpb24odCxuKXtpZigoZT1hcmd1bWVudHMubGVuZ3RoLTIpPjApZm9yKHZhciBlLHIsaT1uZXcgQXJyYXkoZSksbz0wO288ZTsrK28paVtvXT1hcmd1bWVudHNbbysyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcihcInVua25vd24gdHlwZTogXCIrdCk7Zm9yKG89MCxlPShyPXRoaXMuX1t0XSkubGVuZ3RoO288ZTsrK28pcltvXS52YWx1ZS5hcHBseShuLGkpfSxhcHBseTpmdW5jdGlvbih0LG4sZSl7aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoXCJ1bmtub3duIHR5cGU6IFwiK3QpO2Zvcih2YXIgcj10aGlzLl9bdF0saT0wLG89ci5sZW5ndGg7aTxvOysraSlyW2ldLnZhbHVlLmFwcGx5KG4sZSl9fTt2YXIgcHM9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCIsdnM9e3N2ZzpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIseGh0bWw6cHMseGxpbms6XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIseG1sOlwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zL1wifSxncz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaGVzKHQpfX07aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGRvY3VtZW50KXt2YXIgeXM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2lmKCF5cy5tYXRjaGVzKXt2YXIgX3M9eXMud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHx5cy5tc01hdGNoZXNTZWxlY3Rvcnx8eXMubW96TWF0Y2hlc1NlbGVjdG9yfHx5cy5vTWF0Y2hlc1NlbGVjdG9yO2dzPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBfcy5jYWxsKHRoaXMsdCl9fX19dmFyIGJzPWdzO1UucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpVLGFwcGVuZENoaWxkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsdGhpcy5fbmV4dCl9LGluc2VydEJlZm9yZTpmdW5jdGlvbih0LG4pe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsbil9LHF1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yKHQpfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvckFsbCh0KX19O3ZhciBtcz1cIiRcIjtILnByb3RvdHlwZT17YWRkOmZ1bmN0aW9uKHQpe3RoaXMuX25hbWVzLmluZGV4T2YodCk8MCYmKHRoaXMuX25hbWVzLnB1c2godCksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLHRoaXMuX25hbWVzLmpvaW4oXCIgXCIpKSl9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9uYW1lcy5pbmRleE9mKHQpO24+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UobiwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsdGhpcy5fbmFtZXMuam9pbihcIiBcIikpKX0sY29udGFpbnM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2YodCk+PTB9fTt2YXIgeHM9e307aWYodC5ldmVudD1udWxsLFwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudCl7XCJvbm1vdXNlZW50ZXJcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8KHhzPXttb3VzZWVudGVyOlwibW91c2VvdmVyXCIsbW91c2VsZWF2ZTpcIm1vdXNlb3V0XCJ9KX12YXIgd3M9W251bGxdO3V0LnByb3RvdHlwZT1mdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnV0LHNlbGVjdDpmdW5jdGlvbih0KXtcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD16KHQpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9bi5sZW5ndGgscj1uZXcgQXJyYXkoZSksaT0wO2k8ZTsrK2kpZm9yKHZhciBvLGEsdT1uW2ldLGY9dS5sZW5ndGgsYz1yW2ldPW5ldyBBcnJheShmKSxzPTA7czxmOysrcykobz11W3NdKSYmKGE9dC5jYWxsKG8sby5fX2RhdGFfXyxzLHUpKSYmKFwiX19kYXRhX19cImluIG8mJihhLl9fZGF0YV9fPW8uX19kYXRhX18pLGNbc109YSk7cmV0dXJuIG5ldyB1dChyLHRoaXMuX3BhcmVudHMpfSxzZWxlY3RBbGw6ZnVuY3Rpb24odCl7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9TCh0KSk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxlPW4ubGVuZ3RoLHI9W10saT1bXSxvPTA7bzxlOysrbylmb3IodmFyIGEsdT1uW29dLGY9dS5sZW5ndGgsYz0wO2M8ZjsrK2MpKGE9dVtjXSkmJihyLnB1c2godC5jYWxsKGEsYS5fX2RhdGFfXyxjLHUpKSxpLnB1c2goYSkpO3JldHVybiBuZXcgdXQocixpKX0sZmlsdGVyOmZ1bmN0aW9uKHQpe1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PWJzKHQpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9bi5sZW5ndGgscj1uZXcgQXJyYXkoZSksaT0wO2k8ZTsrK2kpZm9yKHZhciBvLGE9bltpXSx1PWEubGVuZ3RoLGY9cltpXT1bXSxjPTA7Yzx1OysrYykobz1hW2NdKSYmdC5jYWxsKG8sby5fX2RhdGFfXyxjLGEpJiZmLnB1c2gobyk7cmV0dXJuIG5ldyB1dChyLHRoaXMuX3BhcmVudHMpfSxkYXRhOmZ1bmN0aW9uKHQsbil7aWYoIXQpcmV0dXJuIGQ9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxjPS0xLHRoaXMuZWFjaChmdW5jdGlvbih0KXtkWysrY109dH0pLGQ7dmFyIGU9bj9POnEscj10aGlzLl9wYXJlbnRzLGk9dGhpcy5fZ3JvdXBzO1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0odCkpO2Zvcih2YXIgbz1pLmxlbmd0aCxhPW5ldyBBcnJheShvKSx1PW5ldyBBcnJheShvKSxmPW5ldyBBcnJheShvKSxjPTA7YzxvOysrYyl7dmFyIHM9cltjXSxsPWlbY10saD1sLmxlbmd0aCxkPXQuY2FsbChzLHMmJnMuX19kYXRhX18sYyxyKSxwPWQubGVuZ3RoLHY9dVtjXT1uZXcgQXJyYXkocCksZz1hW2NdPW5ldyBBcnJheShwKTtlKHMsbCx2LGcsZltjXT1uZXcgQXJyYXkoaCksZCxuKTtmb3IodmFyIHksXyxiPTAsbT0wO2I8cDsrK2IpaWYoeT12W2JdKXtmb3IoYj49bSYmKG09YisxKTshKF89Z1ttXSkmJisrbTxwOyk7eS5fbmV4dD1ffHxudWxsfX1yZXR1cm4gYT1uZXcgdXQoYSxyKSxhLl9lbnRlcj11LGEuX2V4aXQ9ZixhfSxlbnRlcjpmdW5jdGlvbigpe3JldHVybiBuZXcgdXQodGhpcy5fZW50ZXJ8fHRoaXMuX2dyb3Vwcy5tYXAoRCksdGhpcy5fcGFyZW50cyl9LGV4aXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHV0KHRoaXMuX2V4aXR8fHRoaXMuX2dyb3Vwcy5tYXAoRCksdGhpcy5fcGFyZW50cyl9LG1lcmdlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT10Ll9ncm91cHMscj1uLmxlbmd0aCxpPWUubGVuZ3RoLG89TWF0aC5taW4ocixpKSxhPW5ldyBBcnJheShyKSx1PTA7dTxvOysrdSlmb3IodmFyIGYsYz1uW3VdLHM9ZVt1XSxsPWMubGVuZ3RoLGg9YVt1XT1uZXcgQXJyYXkobCksZD0wO2Q8bDsrK2QpKGY9Y1tkXXx8c1tkXSkmJihoW2RdPWYpO2Zvcig7dTxyOysrdSlhW3VdPW5bdV07cmV0dXJuIG5ldyB1dChhLHRoaXMuX3BhcmVudHMpfSxvcmRlcjpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMsbj0tMSxlPXQubGVuZ3RoOysrbjxlOylmb3IodmFyIHIsaT10W25dLG89aS5sZW5ndGgtMSxhPWlbb107LS1vPj0wOykocj1pW29dKSYmKGEmJmEhPT1yLm5leHRTaWJsaW5nJiZhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHIsYSksYT1yKTtyZXR1cm4gdGhpc30sc29ydDpmdW5jdGlvbih0KXtmdW5jdGlvbiBuKG4sZSl7cmV0dXJuIG4mJmU/dChuLl9fZGF0YV9fLGUuX19kYXRhX18pOiFuLSFlfXR8fCh0PVkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMscj1lLmxlbmd0aCxpPW5ldyBBcnJheShyKSxvPTA7bzxyOysrbyl7Zm9yKHZhciBhLHU9ZVtvXSxmPXUubGVuZ3RoLGM9aVtvXT1uZXcgQXJyYXkoZikscz0wO3M8ZjsrK3MpKGE9dVtzXSkmJihjW3NdPWEpO2Muc29ydChuKX1yZXR1cm4gbmV3IHV0KGksdGhpcy5fcGFyZW50cykub3JkZXIoKX0sY2FsbDpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50c1swXTtyZXR1cm4gYXJndW1lbnRzWzBdPXRoaXMsdC5hcHBseShudWxsLGFyZ3VtZW50cyksdGhpc30sbm9kZXM6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgQXJyYXkodGhpcy5zaXplKCkpLG49LTE7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3RbKytuXT10aGlzfSksdH0sbm9kZTpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMsbj0wLGU9dC5sZW5ndGg7bjxlOysrbilmb3IodmFyIHI9dFtuXSxpPTAsbz1yLmxlbmd0aDtpPG87KytpKXt2YXIgYT1yW2ldO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9LHNpemU6ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsrK3R9KSx0fSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiF0aGlzLm5vZGUoKX0sZWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9MCxyPW4ubGVuZ3RoO2U8cjsrK2UpZm9yKHZhciBpLG89bltlXSxhPTAsdT1vLmxlbmd0aDthPHU7KythKShpPW9bYV0pJiZ0LmNhbGwoaSxpLl9fZGF0YV9fLGEsbyk7cmV0dXJuIHRoaXN9LGF0dHI6ZnVuY3Rpb24odCxuKXt2YXIgZT1rKHQpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7dmFyIHI9dGhpcy5ub2RlKCk7cmV0dXJuIGUubG9jYWw/ci5nZXRBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpOnIuZ2V0QXR0cmlidXRlKGUpfXJldHVybiB0aGlzLmVhY2goKG51bGw9PW4/ZS5sb2NhbD9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19OlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZS5sb2NhbD9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWU/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGUpfX06ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1lP3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpOnRoaXMuc2V0QXR0cmlidXRlKHQsZSl9fTplLmxvY2FsP2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsbil9fTpmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKHQsbil9fSkoZSxuKSl9LHN0eWxlOmZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09bj9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX06XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9mdW5jdGlvbih0LG4sZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09cj90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxyLGUpfX06ZnVuY3Rpb24odCxuLGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxuLGUpfX0pKHQsbixudWxsPT1lP1wiXCI6ZSkpOkYodGhpcy5ub2RlKCksdCl9LHByb3BlcnR5OmZ1bmN0aW9uKHQsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PW4/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbdF19fTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09ZT9kZWxldGUgdGhpc1t0XTp0aGlzW3RdPWV9fTpmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXNbdF09bn19KSh0LG4pKTp0aGlzLm5vZGUoKVt0XX0sY2xhc3NlZDpmdW5jdGlvbih0LG4pe3ZhciBlPUkodCtcIlwiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgcj1qKHRoaXMubm9kZSgpKSxpPS0xLG89ZS5sZW5ndGg7KytpPG87KWlmKCFyLmNvbnRhaW5zKGVbaV0pKXJldHVybiExO3JldHVybiEwfXJldHVybiB0aGlzLmVhY2goKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXsobi5hcHBseSh0aGlzLGFyZ3VtZW50cyk/WDpHKSh0aGlzLHQpfX06bj9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtYKHRoaXMsdCl9fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtHKHRoaXMsdCl9fSkoZSxuKSl9LHRleHQ6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PXQ/VjooXCJmdW5jdGlvblwiPT10eXBlb2YgdD9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PW4/XCJcIjpufX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX0pKHQpKTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH0saHRtbDpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD8kOihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPW51bGw9PW4/XCJcIjpufX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9dH19KSh0KSk6dGhpcy5ub2RlKCkuaW5uZXJIVE1MfSxyYWlzZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goVyl9LGxvd2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChaKX0sYXBwZW5kOmZ1bmN0aW9uKHQpe3ZhciBuPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpDKHQpO3JldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpe3JldHVybiB0aGlzLmFwcGVuZENoaWxkKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pfSxpbnNlcnQ6ZnVuY3Rpb24odCxuKXt2YXIgZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6Qyh0KSxyPW51bGw9PW4/UTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246eihuKTtyZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUoZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksci5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSl9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goSil9LGNsb25lOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlbGVjdCh0P3R0OkspfSxkYXR1bTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KFwiX19kYXRhX19cIix0KTp0aGlzLm5vZGUoKS5fX2RhdGFfX30sb246ZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbz1mdW5jdGlvbih0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XFxzKy8pLm1hcChmdW5jdGlvbih0KXt2YXIgbj1cIlwiLGU9dC5pbmRleE9mKFwiLlwiKTtyZXR1cm4gZT49MCYmKG49dC5zbGljZShlKzEpLHQ9dC5zbGljZSgwLGUpKSx7dHlwZTp0LG5hbWU6bn19KX0odCtcIlwiKSxhPW8ubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Zm9yKHU9bj9pdDpydCxudWxsPT1lJiYoZT0hMSkscj0wO3I8YTsrK3IpdGhpcy5lYWNoKHUob1tyXSxuLGUpKTtyZXR1cm4gdGhpc312YXIgdT10aGlzLm5vZGUoKS5fX29uO2lmKHUpZm9yKHZhciBmLGM9MCxzPXUubGVuZ3RoO2M8czsrK2MpZm9yKHI9MCxmPXVbY107cjxhOysrcilpZigoaT1vW3JdKS50eXBlPT09Zi50eXBlJiZpLm5hbWU9PT1mLm5hbWUpcmV0dXJuIGYudmFsdWV9LGRpc3BhdGNoOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRoaXMuZWFjaCgoXCJmdW5jdGlvblwiPT10eXBlb2Ygbj9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhdCh0aGlzLHQsbi5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX06ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYXQodGhpcyx0LG4pfX0pKHQsbikpfX07dmFyIE1zPTA7bHQucHJvdG90eXBlPXN0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6bHQsZ2V0OmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj10aGlzLl87IShuIGluIHQpOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIHRbbl19LHNldDpmdW5jdGlvbih0LG4pe3JldHVybiB0W3RoaXMuX109bn0scmVtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl8gaW4gdCYmZGVsZXRlIHRbdGhpcy5fXX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX0seHQucHJvdG90eXBlLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fLm9uLmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpO3JldHVybiB0PT09dGhpcy5fP3RoaXM6dH07dmFyIEFzPVwiXFxcXHMqKFsrLV0/XFxcXGQrKVxcXFxzKlwiLFRzPVwiXFxcXHMqKFsrLV0/XFxcXGQqXFxcXC4/XFxcXGQrKD86W2VFXVsrLV0/XFxcXGQrKT8pXFxcXHMqXCIsTnM9XCJcXFxccyooWystXT9cXFxcZCpcXFxcLj9cXFxcZCsoPzpbZUVdWystXT9cXFxcZCspPyklXFxcXHMqXCIsU3M9L14jKFswLTlhLWZdezN9KSQvLEVzPS9eIyhbMC05YS1mXXs2fSkkLyxrcz1uZXcgUmVnRXhwKFwiXnJnYlxcXFwoXCIrW0FzLEFzLEFzXStcIlxcXFwpJFwiKSxDcz1uZXcgUmVnRXhwKFwiXnJnYlxcXFwoXCIrW05zLE5zLE5zXStcIlxcXFwpJFwiKSxQcz1uZXcgUmVnRXhwKFwiXnJnYmFcXFxcKFwiK1tBcyxBcyxBcyxUc10rXCJcXFxcKSRcIiksenM9bmV3IFJlZ0V4cChcIl5yZ2JhXFxcXChcIitbTnMsTnMsTnMsVHNdK1wiXFxcXCkkXCIpLFJzPW5ldyBSZWdFeHAoXCJeaHNsXFxcXChcIitbVHMsTnMsTnNdK1wiXFxcXCkkXCIpLExzPW5ldyBSZWdFeHAoXCJeaHNsYVxcXFwoXCIrW1RzLE5zLE5zLFRzXStcIlxcXFwpJFwiKSxEcz17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtOdChFdCxrdCx7ZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKS5kaXNwbGF5YWJsZSgpfSxoZXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKS5oZXgoKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKStcIlwifX0pLE50KEx0LFJ0LFN0KEV0LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10PzEvLjc6TWF0aC5wb3coMS8uNyx0KSxuZXcgTHQodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/Ljc6TWF0aC5wb3coLjcsdCksbmV3IEx0KHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiAwPD10aGlzLnImJnRoaXMucjw9MjU1JiYwPD10aGlzLmcmJnRoaXMuZzw9MjU1JiYwPD10aGlzLmImJnRoaXMuYjw9MjU1JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0saGV4OmZ1bmN0aW9uKCl7cmV0dXJuXCIjXCIrRHQodGhpcy5yKStEdCh0aGlzLmcpK0R0KHRoaXMuYil9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT9cInJnYihcIjpcInJnYmEoXCIpK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5yKXx8MCkpK1wiLCBcIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuZyl8fDApKStcIiwgXCIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10P1wiKVwiOlwiLCBcIit0K1wiKVwiKX19KSksTnQoT3QscXQsU3QoRXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/MS8uNzpNYXRoLnBvdygxLy43LHQpLG5ldyBPdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10Py43Ok1hdGgucG93KC43LHQpLG5ldyBPdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuaCUzNjArMzYwKih0aGlzLmg8MCksbj1pc05hTih0KXx8aXNOYU4odGhpcy5zKT8wOnRoaXMucyxlPXRoaXMubCxyPWUrKGU8LjU/ZToxLWUpKm4saT0yKmUtcjtyZXR1cm4gbmV3IEx0KFl0KHQ+PTI0MD90LTI0MDp0KzEyMCxpLHIpLFl0KHQsaSxyKSxZdCh0PDEyMD90KzI0MDp0LTEyMCxpLHIpLHRoaXMub3BhY2l0eSl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuKDA8PXRoaXMucyYmdGhpcy5zPD0xfHxpc05hTih0aGlzLnMpKSYmMDw9dGhpcy5sJiZ0aGlzLmw8PTEmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfX0pKTt2YXIgVXM9TWF0aC5QSS8xODAscXM9MTgwL01hdGguUEksT3M9Ljk2NDIyLFlzPTEsQnM9LjgyNTIxLEZzPTQvMjksSXM9Ni8yOSxqcz0zKklzKklzLEhzPUlzKklzKklzO050KEl0LEZ0LFN0KEV0LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IEl0KHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgSXQodGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD0odGhpcy5sKzE2KS8xMTYsbj1pc05hTih0aGlzLmEpP3Q6dCt0aGlzLmEvNTAwLGU9aXNOYU4odGhpcy5iKT90OnQtdGhpcy5iLzIwMDtyZXR1cm4gbj1PcypIdChuKSx0PVlzKkh0KHQpLGU9QnMqSHQoZSksbmV3IEx0KFh0KDMuMTMzODU2MSpuLTEuNjE2ODY2Nyp0LS40OTA2MTQ2KmUpLFh0KC0uOTc4NzY4NCpuKzEuOTE2MTQxNSp0Ky4wMzM0NTQqZSksWHQoLjA3MTk0NTMqbi0uMjI4OTkxNCp0KzEuNDA1MjQyNyplKSx0aGlzLm9wYWNpdHkpfX0pKSxOdChXdCwkdCxTdChFdCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBXdCh0aGlzLmgsdGhpcy5jLHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFd0KHRoaXMuaCx0aGlzLmMsdGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIEJ0KHRoaXMpLnJnYigpfX0pKTt2YXIgWHM9LS4yOTIyNyxHcz0tLjkwNjQ5LFZzPTEuOTcyOTQsJHM9VnMqR3MsV3M9MS43ODI3NypWcyxacz0xLjc4Mjc3KlhzLSAtLjE0ODYxKkdzO050KFF0LFp0LFN0KEV0LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10PzEvLjc6TWF0aC5wb3coMS8uNyx0KSxuZXcgUXQodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8uNzpNYXRoLnBvdyguNyx0KSxuZXcgUXQodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD1pc05hTih0aGlzLmgpPzA6KHRoaXMuaCsxMjApKlVzLG49K3RoaXMubCxlPWlzTmFOKHRoaXMucyk/MDp0aGlzLnMqbiooMS1uKSxyPU1hdGguY29zKHQpLGk9TWF0aC5zaW4odCk7cmV0dXJuIG5ldyBMdCgyNTUqKG4rZSooLS4xNDg2MSpyKzEuNzgyNzcqaSkpLDI1NSoobitlKihYcypyK0dzKmkpKSwyNTUqKG4rZSooVnMqcikpLHRoaXMub3BhY2l0eSl9fSkpO3ZhciBRcyxKcyxLcyx0bCxubCxlbCxybD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCxuKXt2YXIgZT1yKCh0PVJ0KHQpKS5yLChuPVJ0KG4pKS5yKSxpPXIodC5nLG4uZyksbz1yKHQuYixuLmIpLGE9YW4odC5vcGFjaXR5LG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0LnI9ZShuKSx0Lmc9aShuKSx0LmI9byhuKSx0Lm9wYWNpdHk9YShuKSx0K1wiXCJ9fXZhciByPW9uKG4pO3JldHVybiBlLmdhbW1hPXQsZX0oMSksaWw9dW4oS3QpLG9sPXVuKHRuKSxhbD0vWy0rXT8oPzpcXGQrXFwuP1xcZCp8XFwuP1xcZCspKD86W2VFXVstK10/XFxkKyk/L2csdWw9bmV3IFJlZ0V4cChhbC5zb3VyY2UsXCJnXCIpLGZsPTE4MC9NYXRoLlBJLGNsPXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9LHNsPWduKGZ1bmN0aW9uKHQpe3JldHVyblwibm9uZVwiPT09dD9jbDooUXN8fChRcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiRElWXCIpLEpzPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxLcz1kb2N1bWVudC5kZWZhdWx0VmlldyksUXMuc3R5bGUudHJhbnNmb3JtPXQsdD1Lcy5nZXRDb21wdXRlZFN0eWxlKEpzLmFwcGVuZENoaWxkKFFzKSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKFwidHJhbnNmb3JtXCIpLEpzLnJlbW92ZUNoaWxkKFFzKSx0PXQuc2xpY2UoNywtMSkuc3BsaXQoXCIsXCIpLHZuKCt0WzBdLCt0WzFdLCt0WzJdLCt0WzNdLCt0WzRdLCt0WzVdKSl9LFwicHgsIFwiLFwicHgpXCIsXCJkZWcpXCIpLGxsPWduKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P2NsOih0bHx8KHRsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXCJnXCIpKSx0bC5zZXRBdHRyaWJ1dGUoXCJ0cmFuc2Zvcm1cIix0KSwodD10bC50cmFuc2Zvcm0uYmFzZVZhbC5jb25zb2xpZGF0ZSgpKT8odD10Lm1hdHJpeCx2bih0LmEsdC5iLHQuYyx0LmQsdC5lLHQuZikpOmNsKX0sXCIsIFwiLFwiKVwiLFwiKVwiKSxobD1NYXRoLlNRUlQyLGRsPTIscGw9NCx2bD0xZS0xMixnbD1ibihybikseWw9Ym4oYW4pLF9sPW1uKHJuKSxibD1tbihhbiksbWw9eG4ocm4pLHhsPXhuKGFuKSx3bD0wLE1sPTAsQWw9MCxUbD0xZTMsTmw9MCxTbD0wLEVsPTAsa2w9XCJvYmplY3RcIj09dHlwZW9mIHBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2U6RGF0ZSxDbD1cIm9iamVjdFwiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCwxNyl9O0FuLnByb3RvdHlwZT1Ubi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkFuLHJlc3RhcnQ6ZnVuY3Rpb24odCxuLGUpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcImNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uXCIpO2U9KG51bGw9PWU/d24oKTorZSkrKG51bGw9PW4/MDorbiksdGhpcy5fbmV4dHx8ZWw9PT10aGlzfHwoZWw/ZWwuX25leHQ9dGhpczpubD10aGlzLGVsPXRoaXMpLHRoaXMuX2NhbGw9dCx0aGlzLl90aW1lPWUsa24oKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAsa24oKSl9fTt2YXIgUGw9TihcInN0YXJ0XCIsXCJlbmRcIixcImludGVycnVwdFwiKSx6bD1bXSxSbD0wLExsPTEsRGw9MixVbD0zLHFsPTQsT2w9NSxZbD02LEJsPWZ0LnByb3RvdHlwZS5jb25zdHJ1Y3RvcixGbD0wLElsPWZ0LnByb3RvdHlwZTtPbi5wcm90b3R5cGU9WW4ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpPbixzZWxlY3Q6ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5fbmFtZSxlPXRoaXMuX2lkO1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXoodCkpO2Zvcih2YXIgcj10aGlzLl9ncm91cHMsaT1yLmxlbmd0aCxvPW5ldyBBcnJheShpKSxhPTA7YTxpOysrYSlmb3IodmFyIHUsZixjPXJbYV0scz1jLmxlbmd0aCxsPW9bYV09bmV3IEFycmF5KHMpLGg9MDtoPHM7KytoKSh1PWNbaF0pJiYoZj10LmNhbGwodSx1Ll9fZGF0YV9fLGgsYykpJiYoXCJfX2RhdGFfX1wiaW4gdSYmKGYuX19kYXRhX189dS5fX2RhdGFfXyksbFtoXT1mLFBuKGxbaF0sbixlLGgsbCxMbih1LGUpKSk7cmV0dXJuIG5ldyBPbihvLHRoaXMuX3BhcmVudHMsbixlKX0sc2VsZWN0QWxsOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuX25hbWUsZT10aGlzLl9pZDtcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1MKHQpKTtmb3IodmFyIHI9dGhpcy5fZ3JvdXBzLGk9ci5sZW5ndGgsbz1bXSxhPVtdLHU9MDt1PGk7Kyt1KWZvcih2YXIgZixjPXJbdV0scz1jLmxlbmd0aCxsPTA7bDxzOysrbClpZihmPWNbbF0pe2Zvcih2YXIgaCxkPXQuY2FsbChmLGYuX19kYXRhX18sbCxjKSxwPUxuKGYsZSksdj0wLGc9ZC5sZW5ndGg7djxnOysrdikoaD1kW3ZdKSYmUG4oaCxuLGUsdixkLHApO28ucHVzaChkKSxhLnB1c2goZil9cmV0dXJuIG5ldyBPbihvLGEsbixlKX0sZmlsdGVyOmZ1bmN0aW9uKHQpe1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PWJzKHQpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9bi5sZW5ndGgscj1uZXcgQXJyYXkoZSksaT0wO2k8ZTsrK2kpZm9yKHZhciBvLGE9bltpXSx1PWEubGVuZ3RoLGY9cltpXT1bXSxjPTA7Yzx1OysrYykobz1hW2NdKSYmdC5jYWxsKG8sby5fX2RhdGFfXyxjLGEpJiZmLnB1c2gobyk7cmV0dXJuIG5ldyBPbihyLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LG1lcmdlOmZ1bmN0aW9uKHQpe2lmKHQuX2lkIT09dGhpcy5faWQpdGhyb3cgbmV3IEVycm9yO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT10Ll9ncm91cHMscj1uLmxlbmd0aCxpPWUubGVuZ3RoLG89TWF0aC5taW4ocixpKSxhPW5ldyBBcnJheShyKSx1PTA7dTxvOysrdSlmb3IodmFyIGYsYz1uW3VdLHM9ZVt1XSxsPWMubGVuZ3RoLGg9YVt1XT1uZXcgQXJyYXkobCksZD0wO2Q8bDsrK2QpKGY9Y1tkXXx8c1tkXSkmJihoW2RdPWYpO2Zvcig7dTxyOysrdSlhW3VdPW5bdV07cmV0dXJuIG5ldyBPbihhLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LHNlbGVjdGlvbjpmdW5jdGlvbigpe3JldHVybiBuZXcgQmwodGhpcy5fZ3JvdXBzLHRoaXMuX3BhcmVudHMpfSx0cmFuc2l0aW9uOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX25hbWUsbj10aGlzLl9pZCxlPUJuKCkscj10aGlzLl9ncm91cHMsaT1yLmxlbmd0aCxvPTA7bzxpOysrbylmb3IodmFyIGEsdT1yW29dLGY9dS5sZW5ndGgsYz0wO2M8ZjsrK2MpaWYoYT11W2NdKXt2YXIgcz1MbihhLG4pO1BuKGEsdCxlLGMsdSx7dGltZTpzLnRpbWUrcy5kZWxheStzLmR1cmF0aW9uLGRlbGF5OjAsZHVyYXRpb246cy5kdXJhdGlvbixlYXNlOnMuZWFzZX0pfXJldHVybiBuZXcgT24ocix0aGlzLl9wYXJlbnRzLHQsZSl9LGNhbGw6SWwuY2FsbCxub2RlczpJbC5ub2Rlcyxub2RlOklsLm5vZGUsc2l6ZTpJbC5zaXplLGVtcHR5OklsLmVtcHR5LGVhY2g6SWwuZWFjaCxvbjpmdW5jdGlvbih0LG4pe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/TG4odGhpcy5ub2RlKCksZSkub24ub24odCk6dGhpcy5lYWNoKGZ1bmN0aW9uKHQsbixlKXt2YXIgcixpLG89ZnVuY3Rpb24odCl7cmV0dXJuKHQrXCJcIikudHJpbSgpLnNwbGl0KC9efFxccysvKS5ldmVyeShmdW5jdGlvbih0KXt2YXIgbj10LmluZGV4T2YoXCIuXCIpO3JldHVybiBuPj0wJiYodD10LnNsaWNlKDAsbikpLCF0fHxcInN0YXJ0XCI9PT10fSl9KG4pP3puOlJuO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPW8odGhpcyx0KSx1PWEub247dSE9PXImJihpPShyPXUpLmNvcHkoKSkub24obixlKSxhLm9uPWl9fShlLHQsbikpfSxhdHRyOmZ1bmN0aW9uKHQsbil7dmFyIGU9ayh0KSxyPVwidHJhbnNmb3JtXCI9PT1lP2xsOnFuO3JldHVybiB0aGlzLmF0dHJUd2Vlbih0LFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/KGUubG9jYWw/ZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSx1PWUodGhpcyk7aWYobnVsbCE9dSlyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCkpPT09dT9udWxsOmE9PT1yJiZ1PT09aT9vOm89bihyPWEsaT11KTt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fTpmdW5jdGlvbih0LG4sZSl7dmFyIHIsaSxvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhLHU9ZSh0aGlzKTtpZihudWxsIT11KXJldHVybihhPXRoaXMuZ2V0QXR0cmlidXRlKHQpKT09PXU/bnVsbDphPT09ciYmdT09PWk/bzpvPW4ocj1hLGk9dSk7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fSkoZSxyLFVuKHRoaXMsXCJhdHRyLlwiK3QsbikpOm51bGw9PW4/KGUubG9jYWw/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fSkoZSk6KGUubG9jYWw/ZnVuY3Rpb24odCxuLGUpe3ZhciByLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89dGhpcy5nZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpO3JldHVybiBvPT09ZT9udWxsOm89PT1yP2k6aT1uKHI9byxlKX19OmZ1bmN0aW9uKHQsbixlKXt2YXIgcixpO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPXRoaXMuZ2V0QXR0cmlidXRlKHQpO3JldHVybiBvPT09ZT9udWxsOm89PT1yP2k6aT1uKHI9byxlKX19KShlLHIsbitcIlwiKSl9LGF0dHJUd2VlbjpmdW5jdGlvbih0LG4pe3ZhciBlPVwiYXR0ci5cIit0O2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4oZT10aGlzLnR3ZWVuKGUpKSYmZS5fdmFsdWU7aWYobnVsbD09bilyZXR1cm4gdGhpcy50d2VlbihlLG51bGwpO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yO3ZhciByPWsodCk7cmV0dXJuIHRoaXMudHdlZW4oZSwoci5sb2NhbD9mdW5jdGlvbih0LG4pe2Z1bmN0aW9uIGUoKXt2YXIgZT10aGlzLHI9bi5hcHBseShlLGFyZ3VtZW50cyk7cmV0dXJuIHImJmZ1bmN0aW9uKG4pe2Uuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLHIobikpfX1yZXR1cm4gZS5fdmFsdWU9bixlfTpmdW5jdGlvbih0LG4pe2Z1bmN0aW9uIGUoKXt2YXIgZT10aGlzLHI9bi5hcHBseShlLGFyZ3VtZW50cyk7cmV0dXJuIHImJmZ1bmN0aW9uKG4pe2Uuc2V0QXR0cmlidXRlKHQscihuKSl9fXJldHVybiBlLl92YWx1ZT1uLGV9KShyLG4pKX0sc3R5bGU6ZnVuY3Rpb24odCxuLGUpe3ZhciByPVwidHJhbnNmb3JtXCI9PSh0Kz1cIlwiKT9zbDpxbjtyZXR1cm4gbnVsbD09bj90aGlzLnN0eWxlVHdlZW4odCxmdW5jdGlvbih0LG4pe3ZhciBlLHIsaTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1GKHRoaXMsdCksYT0odGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KSxGKHRoaXMsdCkpO3JldHVybiBvPT09YT9udWxsOm89PT1lJiZhPT09cj9pOmk9bihlPW8scj1hKX19KHQscikpLm9uKFwiZW5kLnN0eWxlLlwiK3QsZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX19KHQpKTp0aGlzLnN0eWxlVHdlZW4odCxcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2Z1bmN0aW9uKHQsbixlKXt2YXIgcixpLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9Rih0aGlzLHQpLHU9ZSh0aGlzKTtyZXR1cm4gbnVsbD09dSYmKHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCksdT1GKHRoaXMsdCkpLGE9PT11P251bGw6YT09PXImJnU9PT1pP286bz1uKHI9YSxpPXUpfX0odCxyLFVuKHRoaXMsXCJzdHlsZS5cIit0LG4pKTpmdW5jdGlvbih0LG4sZSl7dmFyIHIsaTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1GKHRoaXMsdCk7cmV0dXJuIG89PT1lP251bGw6bz09PXI/aTppPW4ocj1vLGUpfX0odCxyLG4rXCJcIiksZSl9LHN0eWxlVHdlZW46ZnVuY3Rpb24odCxuLGUpe3ZhciByPVwic3R5bGUuXCIrKHQrPVwiXCIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4ocj10aGlzLnR3ZWVuKHIpKSYmci5fdmFsdWU7aWYobnVsbD09bilyZXR1cm4gdGhpcy50d2VlbihyLG51bGwpO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yO3JldHVybiB0aGlzLnR3ZWVuKHIsZnVuY3Rpb24odCxuLGUpe2Z1bmN0aW9uIHIoKXt2YXIgcj10aGlzLGk9bi5hcHBseShyLGFyZ3VtZW50cyk7cmV0dXJuIGkmJmZ1bmN0aW9uKG4pe3Iuc3R5bGUuc2V0UHJvcGVydHkodCxpKG4pLGUpfX1yZXR1cm4gci5fdmFsdWU9bixyfSh0LG4sbnVsbD09ZT9cIlwiOmUpKX0sdGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50d2VlbihcInRleHRcIixcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXQodGhpcyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1uP1wiXCI6bn19KFVuKHRoaXMsXCJ0ZXh0XCIsdCkpOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19KG51bGw9PXQ/XCJcIjp0K1wiXCIpKX0scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub24oXCJlbmQucmVtb3ZlXCIsZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcy5wYXJlbnROb2RlO2Zvcih2YXIgZSBpbiB0aGlzLl9fdHJhbnNpdGlvbilpZigrZSE9PXQpcmV0dXJuO24mJm4ucmVtb3ZlQ2hpbGQodGhpcyl9fSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbih0LG4pe3ZhciBlPXRoaXMuX2lkO2lmKHQrPVwiXCIsYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodmFyIHIsaT1Mbih0aGlzLm5vZGUoKSxlKS50d2VlbixvPTAsYT1pLmxlbmd0aDtvPGE7KytvKWlmKChyPWlbb10pLm5hbWU9PT10KXJldHVybiByLnZhbHVlO3JldHVybiBudWxsfXJldHVybiB0aGlzLmVhY2goKG51bGw9PW4/ZnVuY3Rpb24odCxuKXt2YXIgZSxyO3JldHVybiBmdW5jdGlvbigpe3ZhciBpPVJuKHRoaXMsdCksbz1pLnR3ZWVuO2lmKG8hPT1lKWZvcih2YXIgYT0wLHU9KHI9ZT1vKS5sZW5ndGg7YTx1OysrYSlpZihyW2FdLm5hbWU9PT1uKXsocj1yLnNsaWNlKCkpLnNwbGljZShhLDEpO2JyZWFrfWkudHdlZW49cn19OmZ1bmN0aW9uKHQsbixlKXt2YXIgcixpO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPVJuKHRoaXMsdCksYT1vLnR3ZWVuO2lmKGEhPT1yKXtpPShyPWEpLnNsaWNlKCk7Zm9yKHZhciB1PXtuYW1lOm4sdmFsdWU6ZX0sZj0wLGM9aS5sZW5ndGg7ZjxjOysrZilpZihpW2ZdLm5hbWU9PT1uKXtpW2ZdPXU7YnJlYWt9Zj09PWMmJmkucHVzaCh1KX1vLnR3ZWVuPWl9fSkoZSx0LG4pKX0sZGVsYXk6ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKChcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7em4odGhpcyx0KS5kZWxheT0rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fTpmdW5jdGlvbih0LG4pe3JldHVybiBuPStuLGZ1bmN0aW9uKCl7em4odGhpcyx0KS5kZWxheT1ufX0pKG4sdCkpOkxuKHRoaXMubm9kZSgpLG4pLmRlbGF5fSxkdXJhdGlvbjpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXtSbih0aGlzLHQpLmR1cmF0aW9uPStuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIG49K24sZnVuY3Rpb24oKXtSbih0aGlzLHQpLmR1cmF0aW9uPW59fSkobix0KSk6TG4odGhpcy5ub2RlKCksbikuZHVyYXRpb259LGVhc2U6ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKGZ1bmN0aW9uKHQsbil7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7Um4odGhpcyx0KS5lYXNlPW59fShuLHQpKTpMbih0aGlzLm5vZGUoKSxuKS5lYXNlfX07dmFyIGpsPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gTWF0aC5wb3codCxuKX1yZXR1cm4gbj0rbixlLmV4cG9uZW50PXQsZX0oMyksSGw9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiAxLU1hdGgucG93KDEtdCxuKX1yZXR1cm4gbj0rbixlLmV4cG9uZW50PXQsZX0oMyksWGw9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybigodCo9Mik8PTE/TWF0aC5wb3codCxuKToyLU1hdGgucG93KDItdCxuKSkvMn1yZXR1cm4gbj0rbixlLmV4cG9uZW50PXQsZX0oMyksR2w9TWF0aC5QSSxWbD1HbC8yLCRsPTQvMTEsV2w9Ni8xMSxabD04LzExLFFsPS43NSxKbD05LzExLEtsPTEwLzExLHRoPS45Mzc1LG5oPTIxLzIyLGVoPTYzLzY0LHJoPTEvJGwvJGwsaWg9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiB0KnQqKChuKzEpKnQtbil9cmV0dXJuIG49K24sZS5vdmVyc2hvb3Q9dCxlfSgxLjcwMTU4KSxvaD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuLS10KnQqKChuKzEpKnQrbikrMX1yZXR1cm4gbj0rbixlLm92ZXJzaG9vdD10LGV9KDEuNzAxNTgpLGFoPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4oKHQqPTIpPDE/dCp0KigobisxKSp0LW4pOih0LT0yKSp0KigobisxKSp0K24pKzIpLzJ9cmV0dXJuIG49K24sZS5vdmVyc2hvb3Q9dCxlfSgxLjcwMTU4KSx1aD0yKk1hdGguUEksZmg9ZnVuY3Rpb24gdChuLGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIG4qTWF0aC5wb3coMiwxMCotLXQpKk1hdGguc2luKChpLXQpL2UpfXZhciBpPU1hdGguYXNpbigxLyhuPU1hdGgubWF4KDEsbikpKSooZS89dWgpO3JldHVybiByLmFtcGxpdHVkZT1mdW5jdGlvbihuKXtyZXR1cm4gdChuLGUqdWgpfSxyLnBlcmlvZD1mdW5jdGlvbihlKXtyZXR1cm4gdChuLGUpfSxyfSgxLC4zKSxjaD1mdW5jdGlvbiB0KG4sZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gMS1uKk1hdGgucG93KDIsLTEwKih0PSt0KSkqTWF0aC5zaW4oKHQraSkvZSl9dmFyIGk9TWF0aC5hc2luKDEvKG49TWF0aC5tYXgoMSxuKSkpKihlLz11aCk7cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4sZSp1aCl9LHIucGVyaW9kPWZ1bmN0aW9uKGUpe3JldHVybiB0KG4sZSl9LHJ9KDEsLjMpLHNoPWZ1bmN0aW9uIHQobixlKXtmdW5jdGlvbiByKHQpe3JldHVybigodD0yKnQtMSk8MD9uKk1hdGgucG93KDIsMTAqdCkqTWF0aC5zaW4oKGktdCkvZSk6Mi1uKk1hdGgucG93KDIsLTEwKnQpKk1hdGguc2luKChpK3QpL2UpKS8yfXZhciBpPU1hdGguYXNpbigxLyhuPU1hdGgubWF4KDEsbikpKSooZS89dWgpO3JldHVybiByLmFtcGxpdHVkZT1mdW5jdGlvbihuKXtyZXR1cm4gdChuLGUqdWgpfSxyLnBlcmlvZD1mdW5jdGlvbihlKXtyZXR1cm4gdChuLGUpfSxyfSgxLC4zKSxsaD17dGltZTpudWxsLGRlbGF5OjAsZHVyYXRpb246MjUwLGVhc2U6SW59O2Z0LnByb3RvdHlwZS5pbnRlcnJ1cHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe0RuKHRoaXMsdCl9KX0sZnQucHJvdG90eXBlLnRyYW5zaXRpb249ZnVuY3Rpb24odCl7dmFyIG4sZTt0IGluc3RhbmNlb2YgT24/KG49dC5faWQsdD10Ll9uYW1lKToobj1CbigpLChlPWxoKS50aW1lPXduKCksdD1udWxsPT10P251bGw6dCtcIlwiKTtmb3IodmFyIHI9dGhpcy5fZ3JvdXBzLGk9ci5sZW5ndGgsbz0wO288aTsrK28pZm9yKHZhciBhLHU9cltvXSxmPXUubGVuZ3RoLGM9MDtjPGY7KytjKShhPXVbY10pJiZQbihhLHQsbixjLHUsZXx8Vm4oYSxuKSk7cmV0dXJuIG5ldyBPbihyLHRoaXMuX3BhcmVudHMsdCxuKX07dmFyIGhoPVtudWxsXSxkaD17bmFtZTpcImRyYWdcIn0scGg9e25hbWU6XCJzcGFjZVwifSx2aD17bmFtZTpcImhhbmRsZVwifSxnaD17bmFtZTpcImNlbnRlclwifSx5aD17bmFtZTpcInhcIixoYW5kbGVzOltcImVcIixcIndcIl0ubWFwKFFuKSxpbnB1dDpmdW5jdGlvbih0LG4pe3JldHVybiB0JiZbW3RbMF0sblswXVsxXV0sW3RbMV0sblsxXVsxXV1dfSxvdXRwdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlt0WzBdWzBdLHRbMV1bMF1dfX0sX2g9e25hbWU6XCJ5XCIsaGFuZGxlczpbXCJuXCIsXCJzXCJdLm1hcChRbiksaW5wdXQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdCYmW1tuWzBdWzBdLHRbMF1dLFtuWzFdWzBdLHRbMV1dXX0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZbdFswXVsxXSx0WzFdWzFdXX19LGJoPXtuYW1lOlwieHlcIixoYW5kbGVzOltcIm5cIixcImVcIixcInNcIixcIndcIixcIm53XCIsXCJuZVwiLFwic2VcIixcInN3XCJdLm1hcChRbiksaW5wdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR9LG91dHB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdH19LG1oPXtvdmVybGF5OlwiY3Jvc3NoYWlyXCIsc2VsZWN0aW9uOlwibW92ZVwiLG46XCJucy1yZXNpemVcIixlOlwiZXctcmVzaXplXCIsczpcIm5zLXJlc2l6ZVwiLHc6XCJldy1yZXNpemVcIixudzpcIm53c2UtcmVzaXplXCIsbmU6XCJuZXN3LXJlc2l6ZVwiLHNlOlwibndzZS1yZXNpemVcIixzdzpcIm5lc3ctcmVzaXplXCJ9LHhoPXtlOlwid1wiLHc6XCJlXCIsbnc6XCJuZVwiLG5lOlwibndcIixzZTpcInN3XCIsc3c6XCJzZVwifSx3aD17bjpcInNcIixzOlwiblwiLG53Olwic3dcIixuZTpcInNlXCIsc2U6XCJuZVwiLHN3OlwibndcIn0sTWg9e292ZXJsYXk6MSxzZWxlY3Rpb246MSxuOm51bGwsZToxLHM6bnVsbCx3Oi0xLG53Oi0xLG5lOjEsc2U6MSxzdzotMX0sQWg9e292ZXJsYXk6MSxzZWxlY3Rpb246MSxuOi0xLGU6bnVsbCxzOjEsdzpudWxsLG53Oi0xLG5lOi0xLHNlOjEsc3c6MX0sVGg9TWF0aC5jb3MsTmg9TWF0aC5zaW4sU2g9TWF0aC5QSSxFaD1TaC8yLGtoPTIqU2gsQ2g9TWF0aC5tYXgsUGg9QXJyYXkucHJvdG90eXBlLnNsaWNlLHpoPU1hdGguUEksUmg9Mip6aCxMaD1SaC0xZS02O2llLnByb3RvdHlwZT1vZS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmllLG1vdmVUbzpmdW5jdGlvbih0LG4pe3RoaXMuXys9XCJNXCIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KStcIixcIisodGhpcy5feTA9dGhpcy5feTE9K24pfSxjbG9zZVBhdGg6ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5feDEmJih0aGlzLl94MT10aGlzLl94MCx0aGlzLl95MT10aGlzLl95MCx0aGlzLl8rPVwiWlwiKX0sbGluZVRvOmZ1bmN0aW9uKHQsbil7dGhpcy5fKz1cIkxcIisodGhpcy5feDE9K3QpK1wiLFwiKyh0aGlzLl95MT0rbil9LHF1YWRyYXRpY0N1cnZlVG86ZnVuY3Rpb24odCxuLGUscil7dGhpcy5fKz1cIlFcIisgK3QrXCIsXCIrICtuK1wiLFwiKyh0aGlzLl94MT0rZSkrXCIsXCIrKHRoaXMuX3kxPStyKX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbih0LG4sZSxyLGksbyl7dGhpcy5fKz1cIkNcIisgK3QrXCIsXCIrICtuK1wiLFwiKyArZStcIixcIisgK3IrXCIsXCIrKHRoaXMuX3gxPStpKStcIixcIisodGhpcy5feTE9K28pfSxhcmNUbzpmdW5jdGlvbih0LG4sZSxyLGkpe3Q9K3Qsbj0rbixlPStlLHI9K3IsaT0raTt2YXIgbz10aGlzLl94MSxhPXRoaXMuX3kxLHU9ZS10LGY9ci1uLGM9by10LHM9YS1uLGw9YypjK3MqcztpZihpPDApdGhyb3cgbmV3IEVycm9yKFwibmVnYXRpdmUgcmFkaXVzOiBcIitpKTtpZihudWxsPT09dGhpcy5feDEpdGhpcy5fKz1cIk1cIisodGhpcy5feDE9dCkrXCIsXCIrKHRoaXMuX3kxPW4pO2Vsc2UgaWYobD4xZS02KWlmKE1hdGguYWJzKHMqdS1mKmMpPjFlLTYmJmkpe3ZhciBoPWUtbyxkPXItYSxwPXUqdStmKmYsdj1oKmgrZCpkLGc9TWF0aC5zcXJ0KHApLHk9TWF0aC5zcXJ0KGwpLF89aSpNYXRoLnRhbigoemgtTWF0aC5hY29zKChwK2wtdikvKDIqZyp5KSkpLzIpLGI9Xy95LG09Xy9nO01hdGguYWJzKGItMSk+MWUtNiYmKHRoaXMuXys9XCJMXCIrKHQrYipjKStcIixcIisobitiKnMpKSx0aGlzLl8rPVwiQVwiK2krXCIsXCIraStcIiwwLDAsXCIrICsocypoPmMqZCkrXCIsXCIrKHRoaXMuX3gxPXQrbSp1KStcIixcIisodGhpcy5feTE9bittKmYpfWVsc2UgdGhpcy5fKz1cIkxcIisodGhpcy5feDE9dCkrXCIsXCIrKHRoaXMuX3kxPW4pO2Vsc2U7fSxhcmM6ZnVuY3Rpb24odCxuLGUscixpLG8pe3Q9K3Qsbj0rbjt2YXIgYT0oZT0rZSkqTWF0aC5jb3MociksdT1lKk1hdGguc2luKHIpLGY9dCthLGM9bit1LHM9MV5vLGw9bz9yLWk6aS1yO2lmKGU8MCl0aHJvdyBuZXcgRXJyb3IoXCJuZWdhdGl2ZSByYWRpdXM6IFwiK2UpO251bGw9PT10aGlzLl94MT90aGlzLl8rPVwiTVwiK2YrXCIsXCIrYzooTWF0aC5hYnModGhpcy5feDEtZik+MWUtNnx8TWF0aC5hYnModGhpcy5feTEtYyk+MWUtNikmJih0aGlzLl8rPVwiTFwiK2YrXCIsXCIrYyksZSYmKGw8MCYmKGw9bCVSaCtSaCksbD5MaD90aGlzLl8rPVwiQVwiK2UrXCIsXCIrZStcIiwwLDEsXCIrcytcIixcIisodC1hKStcIixcIisobi11KStcIkFcIitlK1wiLFwiK2UrXCIsMCwxLFwiK3MrXCIsXCIrKHRoaXMuX3gxPWYpK1wiLFwiKyh0aGlzLl95MT1jKTpsPjFlLTYmJih0aGlzLl8rPVwiQVwiK2UrXCIsXCIrZStcIiwwLFwiKyArKGw+PXpoKStcIixcIitzK1wiLFwiKyh0aGlzLl94MT10K2UqTWF0aC5jb3MoaSkpK1wiLFwiKyh0aGlzLl95MT1uK2UqTWF0aC5zaW4oaSkpKSl9LHJlY3Q6ZnVuY3Rpb24odCxuLGUscil7dGhpcy5fKz1cIk1cIisodGhpcy5feDA9dGhpcy5feDE9K3QpK1wiLFwiKyh0aGlzLl95MD10aGlzLl95MT0rbikrXCJoXCIrICtlK1widlwiKyArcitcImhcIistZStcIlpcIn0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX07bGUucHJvdG90eXBlPWhlLnByb3RvdHlwZT17Y29uc3RydWN0b3I6bGUsaGFzOmZ1bmN0aW9uKHQpe3JldHVyblwiJFwiK3QgaW4gdGhpc30sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzW1wiJFwiK3RdfSxzZXQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdGhpc1tcIiRcIit0XT1uLHRoaXN9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgbj1cIiRcIit0O3JldHVybiBuIGluIHRoaXMmJmRlbGV0ZSB0aGlzW25dfSxjbGVhcjpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzKVwiJFwiPT09dFswXSYmZGVsZXRlIHRoaXNbdF19LGtleXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJnQucHVzaChuLnNsaWNlKDEpKTtyZXR1cm4gdH0sdmFsdWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBuIGluIHRoaXMpXCIkXCI9PT1uWzBdJiZ0LnB1c2godGhpc1tuXSk7cmV0dXJuIHR9LGVudHJpZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJnQucHVzaCh7a2V5Om4uc2xpY2UoMSksdmFsdWU6dGhpc1tuXX0pO3JldHVybiB0fSxzaXplOmZ1bmN0aW9uKCl7dmFyIHQ9MDtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJisrdDtyZXR1cm4gdH0sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcylpZihcIiRcIj09PXRbMF0pcmV0dXJuITE7cmV0dXJuITB9LGVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBuIGluIHRoaXMpXCIkXCI9PT1uWzBdJiZ0KHRoaXNbbl0sbi5zbGljZSgxKSx0aGlzKX19O3ZhciBEaD1oZS5wcm90b3R5cGU7eWUucHJvdG90eXBlPV9lLnByb3RvdHlwZT17Y29uc3RydWN0b3I6eWUsaGFzOkRoLmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQrPVwiXCIsdGhpc1tcIiRcIit0XT10LHRoaXN9LHJlbW92ZTpEaC5yZW1vdmUsY2xlYXI6RGguY2xlYXIsdmFsdWVzOkRoLmtleXMsc2l6ZTpEaC5zaXplLGVtcHR5OkRoLmVtcHR5LGVhY2g6RGguZWFjaH07dmFyIFVoPUFycmF5LnByb3RvdHlwZS5zbGljZSxxaD1bW10sW1tbMSwxLjVdLFsuNSwxXV1dLFtbWzEuNSwxXSxbMSwxLjVdXV0sW1tbMS41LDFdLFsuNSwxXV1dLFtbWzEsLjVdLFsxLjUsMV1dXSxbW1sxLDEuNV0sWy41LDFdXSxbWzEsLjVdLFsxLjUsMV1dXSxbW1sxLC41XSxbMSwxLjVdXV0sW1tbMSwuNV0sWy41LDFdXV0sW1tbLjUsMV0sWzEsLjVdXV0sW1tbMSwxLjVdLFsxLC41XV1dLFtbWy41LDFdLFsxLC41XV0sW1sxLjUsMV0sWzEsMS41XV1dLFtbWzEuNSwxXSxbMSwuNV1dXSxbW1suNSwxXSxbMS41LDFdXV0sW1tbMSwxLjVdLFsxLjUsMV1dXSxbW1suNSwxXSxbMSwxLjVdXV0sW11dLE9oPXt9LFloPXt9LEJoPTM0LEZoPTEwLEloPTEzLGpoPWtlKFwiLFwiKSxIaD1qaC5wYXJzZSxYaD1qaC5wYXJzZVJvd3MsR2g9amguZm9ybWF0LFZoPWpoLmZvcm1hdFJvd3MsJGg9a2UoXCJcXHRcIiksV2g9JGgucGFyc2UsWmg9JGgucGFyc2VSb3dzLFFoPSRoLmZvcm1hdCxKaD0kaC5mb3JtYXRSb3dzLEtoPUxlKEhoKSx0ZD1MZShXaCksbmQ9VWUoXCJhcHBsaWNhdGlvbi94bWxcIiksZWQ9VWUoXCJ0ZXh0L2h0bWxcIikscmQ9VWUoXCJpbWFnZS9zdmcreG1sXCIpLGlkPWplLnByb3RvdHlwZT1IZS5wcm90b3R5cGU7aWQuY29weT1mdW5jdGlvbigpe3ZhciB0LG4sZT1uZXcgSGUodGhpcy5feCx0aGlzLl95LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSxyPXRoaXMuX3Jvb3Q7aWYoIXIpcmV0dXJuIGU7aWYoIXIubGVuZ3RoKXJldHVybiBlLl9yb290PVhlKHIpLGU7Zm9yKHQ9W3tzb3VyY2U6cix0YXJnZXQ6ZS5fcm9vdD1uZXcgQXJyYXkoNCl9XTtyPXQucG9wKCk7KWZvcih2YXIgaT0wO2k8NDsrK2kpKG49ci5zb3VyY2VbaV0pJiYobi5sZW5ndGg/dC5wdXNoKHtzb3VyY2U6bix0YXJnZXQ6ci50YXJnZXRbaV09bmV3IEFycmF5KDQpfSk6ci50YXJnZXRbaV09WGUobikpO3JldHVybiBlfSxpZC5hZGQ9ZnVuY3Rpb24odCl7dmFyIG49K3RoaXMuX3guY2FsbChudWxsLHQpLGU9K3RoaXMuX3kuY2FsbChudWxsLHQpO3JldHVybiBZZSh0aGlzLmNvdmVyKG4sZSksbixlLHQpfSxpZC5hZGRBbGw9ZnVuY3Rpb24odCl7dmFyIG4sZSxyLGksbz10Lmxlbmd0aCxhPW5ldyBBcnJheShvKSx1PW5ldyBBcnJheShvKSxmPTEvMCxjPTEvMCxzPS0xLzAsbD0tMS8wO2ZvcihlPTA7ZTxvOysrZSlpc05hTihyPSt0aGlzLl94LmNhbGwobnVsbCxuPXRbZV0pKXx8aXNOYU4oaT0rdGhpcy5feS5jYWxsKG51bGwsbikpfHwoYVtlXT1yLHVbZV09aSxyPGYmJihmPXIpLHI+cyYmKHM9ciksaTxjJiYoYz1pKSxpPmwmJihsPWkpKTtmb3IoczxmJiYoZj10aGlzLl94MCxzPXRoaXMuX3gxKSxsPGMmJihjPXRoaXMuX3kwLGw9dGhpcy5feTEpLHRoaXMuY292ZXIoZixjKS5jb3ZlcihzLGwpLGU9MDtlPG87KytlKVllKHRoaXMsYVtlXSx1W2VdLHRbZV0pO3JldHVybiB0aGlzfSxpZC5jb3Zlcj1mdW5jdGlvbih0LG4pe2lmKGlzTmFOKHQ9K3QpfHxpc05hTihuPStuKSlyZXR1cm4gdGhpczt2YXIgZT10aGlzLl94MCxyPXRoaXMuX3kwLGk9dGhpcy5feDEsbz10aGlzLl95MTtpZihpc05hTihlKSlpPShlPU1hdGguZmxvb3IodCkpKzEsbz0ocj1NYXRoLmZsb29yKG4pKSsxO2Vsc2V7aWYoIShlPnR8fHQ+aXx8cj5ufHxuPm8pKXJldHVybiB0aGlzO3ZhciBhLHUsZj1pLWUsYz10aGlzLl9yb290O3N3aXRjaCh1PShuPChyK28pLzIpPDwxfHQ8KGUraSkvMil7Y2FzZSAwOmRve2E9bmV3IEFycmF5KDQpLGFbdV09YyxjPWF9d2hpbGUoZio9MixpPWUrZixvPXIrZix0Pml8fG4+byk7YnJlYWs7Y2FzZSAxOmRve2E9bmV3IEFycmF5KDQpLGFbdV09YyxjPWF9d2hpbGUoZio9MixlPWktZixvPXIrZixlPnR8fG4+byk7YnJlYWs7Y2FzZSAyOmRve2E9bmV3IEFycmF5KDQpLGFbdV09YyxjPWF9d2hpbGUoZio9MixpPWUrZixyPW8tZix0Pml8fHI+bik7YnJlYWs7Y2FzZSAzOmRve2E9bmV3IEFycmF5KDQpLGFbdV09YyxjPWF9d2hpbGUoZio9MixlPWktZixyPW8tZixlPnR8fHI+bil9dGhpcy5fcm9vdCYmdGhpcy5fcm9vdC5sZW5ndGgmJih0aGlzLl9yb290PWMpfXJldHVybiB0aGlzLl94MD1lLHRoaXMuX3kwPXIsdGhpcy5feDE9aSx0aGlzLl95MT1vLHRoaXN9LGlkLmRhdGE9ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy52aXNpdChmdW5jdGlvbihuKXtpZighbi5sZW5ndGgpZG97dC5wdXNoKG4uZGF0YSl9d2hpbGUobj1uLm5leHQpfSksdH0saWQuZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuY292ZXIoK3RbMF1bMF0sK3RbMF1bMV0pLmNvdmVyKCt0WzFdWzBdLCt0WzFdWzFdKTppc05hTih0aGlzLl94MCk/dm9pZCAwOltbdGhpcy5feDAsdGhpcy5feTBdLFt0aGlzLl94MSx0aGlzLl95MV1dfSxpZC5maW5kPWZ1bmN0aW9uKHQsbixlKXt2YXIgcixpLG8sYSx1LGYsYyxzPXRoaXMuX3gwLGw9dGhpcy5feTAsaD10aGlzLl94MSxkPXRoaXMuX3kxLHA9W10sdj10aGlzLl9yb290O2Zvcih2JiZwLnB1c2gobmV3IEJlKHYscyxsLGgsZCkpLG51bGw9PWU/ZT0xLzA6KHM9dC1lLGw9bi1lLGg9dCtlLGQ9bitlLGUqPWUpO2Y9cC5wb3AoKTspaWYoISghKHY9Zi5ub2RlKXx8KGk9Zi54MCk+aHx8KG89Zi55MCk+ZHx8KGE9Zi54MSk8c3x8KHU9Zi55MSk8bCkpaWYodi5sZW5ndGgpe3ZhciBnPShpK2EpLzIseT0obyt1KS8yO3AucHVzaChuZXcgQmUodlszXSxnLHksYSx1KSxuZXcgQmUodlsyXSxpLHksZyx1KSxuZXcgQmUodlsxXSxnLG8sYSx5KSxuZXcgQmUodlswXSxpLG8sZyx5KSksKGM9KG4+PXkpPDwxfHQ+PWcpJiYoZj1wW3AubGVuZ3RoLTFdLHBbcC5sZW5ndGgtMV09cFtwLmxlbmd0aC0xLWNdLHBbcC5sZW5ndGgtMS1jXT1mKX1lbHNle3ZhciBfPXQtK3RoaXMuX3guY2FsbChudWxsLHYuZGF0YSksYj1uLSt0aGlzLl95LmNhbGwobnVsbCx2LmRhdGEpLG09XypfK2IqYjtpZihtPGUpe3ZhciB4PU1hdGguc3FydChlPW0pO3M9dC14LGw9bi14LGg9dCt4LGQ9bit4LHI9di5kYXRhfX1yZXR1cm4gcn0saWQucmVtb3ZlPWZ1bmN0aW9uKHQpe2lmKGlzTmFOKG89K3RoaXMuX3guY2FsbChudWxsLHQpKXx8aXNOYU4oYT0rdGhpcy5feS5jYWxsKG51bGwsdCkpKXJldHVybiB0aGlzO3ZhciBuLGUscixpLG8sYSx1LGYsYyxzLGwsaCxkPXRoaXMuX3Jvb3QscD10aGlzLl94MCx2PXRoaXMuX3kwLGc9dGhpcy5feDEseT10aGlzLl95MTtpZighZClyZXR1cm4gdGhpcztpZihkLmxlbmd0aClmb3IoOzspe2lmKChjPW8+PSh1PShwK2cpLzIpKT9wPXU6Zz11LChzPWE+PShmPSh2K3kpLzIpKT92PWY6eT1mLG49ZCwhKGQ9ZFtsPXM8PDF8Y10pKXJldHVybiB0aGlzO2lmKCFkLmxlbmd0aClicmVhazsobltsKzEmM118fG5bbCsyJjNdfHxuW2wrMyYzXSkmJihlPW4saD1sKX1mb3IoO2QuZGF0YSE9PXQ7KWlmKHI9ZCwhKGQ9ZC5uZXh0KSlyZXR1cm4gdGhpcztyZXR1cm4oaT1kLm5leHQpJiZkZWxldGUgZC5uZXh0LHI/KGk/ci5uZXh0PWk6ZGVsZXRlIHIubmV4dCx0aGlzKTpuPyhpP25bbF09aTpkZWxldGUgbltsXSwoZD1uWzBdfHxuWzFdfHxuWzJdfHxuWzNdKSYmZD09PShuWzNdfHxuWzJdfHxuWzFdfHxuWzBdKSYmIWQubGVuZ3RoJiYoZT9lW2hdPWQ6dGhpcy5fcm9vdD1kKSx0aGlzKToodGhpcy5fcm9vdD1pLHRoaXMpfSxpZC5yZW1vdmVBbGw9ZnVuY3Rpb24odCl7Zm9yKHZhciBuPTAsZT10Lmxlbmd0aDtuPGU7KytuKXRoaXMucmVtb3ZlKHRbbl0pO3JldHVybiB0aGlzfSxpZC5yb290PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jvb3R9LGlkLnNpemU9ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiB0aGlzLnZpc2l0KGZ1bmN0aW9uKG4pe2lmKCFuLmxlbmd0aClkb3srK3R9d2hpbGUobj1uLm5leHQpfSksdH0saWQudmlzaXQ9ZnVuY3Rpb24odCl7dmFyIG4sZSxyLGksbyxhLHU9W10sZj10aGlzLl9yb290O2ZvcihmJiZ1LnB1c2gobmV3IEJlKGYsdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpKTtuPXUucG9wKCk7KWlmKCF0KGY9bi5ub2RlLHI9bi54MCxpPW4ueTAsbz1uLngxLGE9bi55MSkmJmYubGVuZ3RoKXt2YXIgYz0ocitvKS8yLHM9KGkrYSkvMjsoZT1mWzNdKSYmdS5wdXNoKG5ldyBCZShlLGMscyxvLGEpKSwoZT1mWzJdKSYmdS5wdXNoKG5ldyBCZShlLHIscyxjLGEpKSwoZT1mWzFdKSYmdS5wdXNoKG5ldyBCZShlLGMsaSxvLHMpKSwoZT1mWzBdKSYmdS5wdXNoKG5ldyBCZShlLHIsaSxjLHMpKX1yZXR1cm4gdGhpc30saWQudmlzaXRBZnRlcj1mdW5jdGlvbih0KXt2YXIgbixlPVtdLHI9W107Zm9yKHRoaXMuX3Jvb3QmJmUucHVzaChuZXcgQmUodGhpcy5fcm9vdCx0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkpO249ZS5wb3AoKTspe3ZhciBpPW4ubm9kZTtpZihpLmxlbmd0aCl7dmFyIG8sYT1uLngwLHU9bi55MCxmPW4ueDEsYz1uLnkxLHM9KGErZikvMixsPSh1K2MpLzI7KG89aVswXSkmJmUucHVzaChuZXcgQmUobyxhLHUscyxsKSksKG89aVsxXSkmJmUucHVzaChuZXcgQmUobyxzLHUsZixsKSksKG89aVsyXSkmJmUucHVzaChuZXcgQmUobyxhLGwscyxjKSksKG89aVszXSkmJmUucHVzaChuZXcgQmUobyxzLGwsZixjKSl9ci5wdXNoKG4pfWZvcig7bj1yLnBvcCgpOyl0KG4ubm9kZSxuLngwLG4ueTAsbi54MSxuLnkxKTtyZXR1cm4gdGhpc30saWQueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feD10LHRoaXMpOnRoaXMuX3h9LGlkLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3k9dCx0aGlzKTp0aGlzLl95fTt2YXIgb2Q9MTAsYWQ9TWF0aC5QSSooMy1NYXRoLnNxcnQoNSkpLHVkPS9eKD86KC4pPyhbPD49Xl0pKT8oWytcXC1cXCggXSk/KFskI10pPygwKT8oXFxkKyk/KCwpPyhcXC5cXGQrKT8ofik/KFthLXolXSk/JC9pO3RyLnByb3RvdHlwZT1uci5wcm90b3R5cGUsbnIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsbCt0aGlzLmFsaWduK3RoaXMuc2lnbit0aGlzLnN5bWJvbCsodGhpcy56ZXJvP1wiMFwiOlwiXCIpKyhudWxsPT10aGlzLndpZHRoP1wiXCI6TWF0aC5tYXgoMSwwfHRoaXMud2lkdGgpKSsodGhpcy5jb21tYT9cIixcIjpcIlwiKSsobnVsbD09dGhpcy5wcmVjaXNpb24/XCJcIjpcIi5cIitNYXRoLm1heCgwLDB8dGhpcy5wcmVjaXNpb24pKSsodGhpcy50cmltP1wiflwiOlwiXCIpK3RoaXMudHlwZX07dmFyIGZkLGNkLHNkPXtcIiVcIjpmdW5jdGlvbih0LG4pe3JldHVybigxMDAqdCkudG9GaXhlZChuKX0sYjpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygyKX0sYzpmdW5jdGlvbih0KXtyZXR1cm4gdCtcIlwifSxkOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDEwKX0sZTpmdW5jdGlvbih0LG4pe3JldHVybiB0LnRvRXhwb25lbnRpYWwobil9LGY6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC50b0ZpeGVkKG4pfSxnOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQudG9QcmVjaXNpb24obil9LG86ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoOCl9LHA6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZXIoMTAwKnQsbil9LHI6ZXIsczpmdW5jdGlvbih0LG4pe3ZhciBlPUplKHQsbik7aWYoIWUpcmV0dXJuIHQrXCJcIjt2YXIgcj1lWzBdLGk9ZVsxXSxvPWktKGZkPTMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKGkvMykpKSkrMSxhPXIubGVuZ3RoO3JldHVybiBvPT09YT9yOm8+YT9yK25ldyBBcnJheShvLWErMSkuam9pbihcIjBcIik6bz4wP3Iuc2xpY2UoMCxvKStcIi5cIityLnNsaWNlKG8pOlwiMC5cIituZXcgQXJyYXkoMS1vKS5qb2luKFwiMFwiKStKZSh0LE1hdGgubWF4KDAsbitvLTEpKVswXX0sWDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX0seDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygxNil9fSxsZD1bXCJ5XCIsXCJ6XCIsXCJhXCIsXCJmXCIsXCJwXCIsXCJuXCIsXCLCtVwiLFwibVwiLFwiXCIsXCJrXCIsXCJNXCIsXCJHXCIsXCJUXCIsXCJQXCIsXCJFXCIsXCJaXCIsXCJZXCJdO29yKHtkZWNpbWFsOlwiLlwiLHRob3VzYW5kczpcIixcIixncm91cGluZzpbM10sY3VycmVuY3k6W1wiJFwiLFwiXCJdfSksc3IucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpzcixyZXNldDpmdW5jdGlvbigpe3RoaXMucz10aGlzLnQ9MH0sYWRkOmZ1bmN0aW9uKHQpe2xyKGpkLHQsdGhpcy50KSxscih0aGlzLGpkLnMsdGhpcy5zKSx0aGlzLnM/dGhpcy50Kz1qZC50OnRoaXMucz1qZC50fSx2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc319O3ZhciBoZCxkZCxwZCx2ZCxnZCx5ZCxfZCxiZCxtZCx4ZCx3ZCxNZCxBZCxUZCxOZCxTZCxFZCxrZCxDZCxQZCx6ZCxSZCxMZCxEZCxVZCxxZCxPZCxZZCxCZCxGZCxJZCxqZD1uZXcgc3IsSGQ9MWUtNixYZD0xZS0xMixHZD1NYXRoLlBJLFZkPUdkLzIsJGQ9R2QvNCxXZD0yKkdkLFpkPTE4MC9HZCxRZD1HZC8xODAsSmQ9TWF0aC5hYnMsS2Q9TWF0aC5hdGFuLHRwPU1hdGguYXRhbjIsbnA9TWF0aC5jb3MsZXA9TWF0aC5jZWlsLHJwPU1hdGguZXhwLGlwPU1hdGgubG9nLG9wPU1hdGgucG93LGFwPU1hdGguc2luLHVwPU1hdGguc2lnbnx8ZnVuY3Rpb24odCl7cmV0dXJuIHQ+MD8xOnQ8MD8tMTowfSxmcD1NYXRoLnNxcnQsY3A9TWF0aC50YW4sc3A9e0ZlYXR1cmU6ZnVuY3Rpb24odCxuKXtncih0Lmdlb21ldHJ5LG4pfSxGZWF0dXJlQ29sbGVjdGlvbjpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmZlYXR1cmVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspZ3IoZVtyXS5nZW9tZXRyeSxuKX19LGxwPXtTcGhlcmU6ZnVuY3Rpb24odCxuKXtuLnNwaGVyZSgpfSxQb2ludDpmdW5jdGlvbih0LG4pe3Q9dC5jb29yZGluYXRlcyxuLnBvaW50KHRbMF0sdFsxXSx0WzJdKX0sTXVsdGlQb2ludDpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspdD1lW3JdLG4ucG9pbnQodFswXSx0WzFdLHRbMl0pfSxMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsbil7eXIodC5jb29yZGluYXRlcyxuLDApfSxNdWx0aUxpbmVTdHJpbmc6ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5jb29yZGluYXRlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KXlyKGVbcl0sbiwwKX0sUG9seWdvbjpmdW5jdGlvbih0LG4pe19yKHQuY29vcmRpbmF0ZXMsbil9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspX3IoZVtyXSxuKX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuZ2VvbWV0cmllcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWdyKGVbcl0sbil9fSxocD1jcigpLGRwPWNyKCkscHA9e3BvaW50OnZyLGxpbmVTdGFydDp2cixsaW5lRW5kOnZyLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2hwLnJlc2V0KCkscHAubGluZVN0YXJ0PW1yLHBwLmxpbmVFbmQ9eHJ9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt2YXIgdD0raHA7ZHAuYWRkKHQ8MD9XZCt0OnQpLHRoaXMubGluZVN0YXJ0PXRoaXMubGluZUVuZD10aGlzLnBvaW50PXZyfSxzcGhlcmU6ZnVuY3Rpb24oKXtkcC5hZGQoV2QpfX0sdnA9Y3IoKSxncD17cG9pbnQ6UHIsbGluZVN0YXJ0OlJyLGxpbmVFbmQ6THIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7Z3AucG9pbnQ9RHIsZ3AubGluZVN0YXJ0PVVyLGdwLmxpbmVFbmQ9cXIsdnAucmVzZXQoKSxwcC5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3BwLnBvbHlnb25FbmQoKSxncC5wb2ludD1QcixncC5saW5lU3RhcnQ9UnIsZ3AubGluZUVuZD1McixocDwwPyh5ZD0tKGJkPTE4MCksX2Q9LShtZD05MCkpOnZwPkhkP21kPTkwOnZwPC1IZCYmKF9kPS05MCksTmRbMF09eWQsTmRbMV09YmR9fSx5cD17c3BoZXJlOnZyLHBvaW50OkZyLGxpbmVTdGFydDpqcixsaW5lRW5kOkdyLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3lwLmxpbmVTdGFydD1Wcix5cC5saW5lRW5kPSRyfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7eXAubGluZVN0YXJ0PWpyLHlwLmxpbmVFbmQ9R3J9fTtLci5pbnZlcnQ9S3I7dmFyIF9wLGJwLG1wLHhwLHdwLE1wLEFwLFRwLE5wLFNwLEVwLGtwPWNyKCksQ3A9ZGkoZnVuY3Rpb24oKXtyZXR1cm4hMH0sZnVuY3Rpb24odCl7dmFyIG4sZT1OYU4scj1OYU4saT1OYU47cmV0dXJue2xpbmVTdGFydDpmdW5jdGlvbigpe3QubGluZVN0YXJ0KCksbj0xfSxwb2ludDpmdW5jdGlvbihvLGEpe3ZhciB1PW8+MD9HZDotR2QsZj1KZChvLWUpO0pkKGYtR2QpPEhkPyh0LnBvaW50KGUscj0ocithKS8yPjA/VmQ6LVZkKSx0LnBvaW50KGksciksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KHUsciksdC5wb2ludChvLHIpLG49MCk6aSE9PXUmJmY+PUdkJiYoSmQoZS1pKTxIZCYmKGUtPWkqSGQpLEpkKG8tdSk8SGQmJihvLT11KkhkKSxyPWZ1bmN0aW9uKHQsbixlLHIpe3ZhciBpLG8sYT1hcCh0LWUpO3JldHVybiBKZChhKT5IZD9LZCgoYXAobikqKG89bnAocikpKmFwKGUpLWFwKHIpKihpPW5wKG4pKSphcCh0KSkvKGkqbyphKSk6KG4rcikvMn0oZSxyLG8sYSksdC5wb2ludChpLHIpLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludCh1LHIpLG49MCksdC5wb2ludChlPW8scj1hKSxpPXV9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0LmxpbmVFbmQoKSxlPXI9TmFOfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiAyLW59fX0sZnVuY3Rpb24odCxuLGUscil7dmFyIGk7aWYobnVsbD09dClpPWUqVmQsci5wb2ludCgtR2QsaSksci5wb2ludCgwLGkpLHIucG9pbnQoR2QsaSksci5wb2ludChHZCwwKSxyLnBvaW50KEdkLC1pKSxyLnBvaW50KDAsLWkpLHIucG9pbnQoLUdkLC1pKSxyLnBvaW50KC1HZCwwKSxyLnBvaW50KC1HZCxpKTtlbHNlIGlmKEpkKHRbMF0tblswXSk+SGQpe3ZhciBvPXRbMF08blswXT9HZDotR2Q7aT1lKm8vMixyLnBvaW50KC1vLGkpLHIucG9pbnQoMCxpKSxyLnBvaW50KG8saSl9ZWxzZSByLnBvaW50KG5bMF0sblsxXSl9LFstR2QsLVZkXSksUHA9MWU5LHpwPS1QcCxScD1jcigpLExwPXtzcGhlcmU6dnIscG9pbnQ6dnIsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7THAucG9pbnQ9YmksTHAubGluZUVuZD1faX0sbGluZUVuZDp2cixwb2x5Z29uU3RhcnQ6dnIscG9seWdvbkVuZDp2cn0sRHA9W251bGwsbnVsbF0sVXA9e3R5cGU6XCJMaW5lU3RyaW5nXCIsY29vcmRpbmF0ZXM6RHB9LHFwPXtGZWF0dXJlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIE1pKHQuZ2VvbWV0cnksbil9LEZlYXR1cmVDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuZmVhdHVyZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylpZihNaShlW3JdLmdlb21ldHJ5LG4pKXJldHVybiEwO3JldHVybiExfX0sT3A9e1NwaGVyZTpmdW5jdGlvbigpe3JldHVybiEwfSxQb2ludDpmdW5jdGlvbih0LG4pe3JldHVybiBBaSh0LmNvb3JkaW5hdGVzLG4pfSxNdWx0aVBvaW50OmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylpZihBaShlW3JdLG4pKXJldHVybiEwO3JldHVybiExfSxMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsbil7cmV0dXJuIFRpKHQuY29vcmRpbmF0ZXMsbil9LE11bHRpTGluZVN0cmluZzpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspaWYoVGkoZVtyXSxuKSlyZXR1cm4hMDtyZXR1cm4hMX0sUG9seWdvbjpmdW5jdGlvbih0LG4pe3JldHVybiBOaSh0LmNvb3JkaW5hdGVzLG4pfSxNdWx0aVBvbHlnb246ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5jb29yZGluYXRlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWlmKE5pKGVbcl0sbikpcmV0dXJuITA7cmV0dXJuITF9LEdlb21ldHJ5Q29sbGVjdGlvbjpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10Lmdlb21ldHJpZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylpZihNaShlW3JdLG4pKXJldHVybiEwO3JldHVybiExfX0sWXA9Y3IoKSxCcD1jcigpLEZwPXtwb2ludDp2cixsaW5lU3RhcnQ6dnIsbGluZUVuZDp2cixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtGcC5saW5lU3RhcnQ9UmksRnAubGluZUVuZD1VaX0scG9seWdvbkVuZDpmdW5jdGlvbigpe0ZwLmxpbmVTdGFydD1GcC5saW5lRW5kPUZwLnBvaW50PXZyLFlwLmFkZChKZChCcCkpLEJwLnJlc2V0KCl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PVlwLzI7cmV0dXJuIFlwLnJlc2V0KCksdH19LElwPTEvMCxqcD1JcCxIcD0tSXAsWHA9SHAsR3A9e3BvaW50OmZ1bmN0aW9uKHQsbil7dDxJcCYmKElwPXQpLHQ+SHAmJihIcD10KSxuPGpwJiYoanA9biksbj5YcCYmKFhwPW4pfSxsaW5lU3RhcnQ6dnIsbGluZUVuZDp2cixwb2x5Z29uU3RhcnQ6dnIscG9seWdvbkVuZDp2cixyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1bW0lwLGpwXSxbSHAsWHBdXTtyZXR1cm4gSHA9WHA9LShqcD1JcD0xLzApLHR9fSxWcD0wLCRwPTAsV3A9MCxacD0wLFFwPTAsSnA9MCxLcD0wLHR2PTAsbnY9MCxldj17cG9pbnQ6cWksbGluZVN0YXJ0Ok9pLGxpbmVFbmQ6RmkscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7ZXYubGluZVN0YXJ0PUlpLGV2LmxpbmVFbmQ9aml9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtldi5wb2ludD1xaSxldi5saW5lU3RhcnQ9T2ksZXYubGluZUVuZD1GaX0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9bnY/W0twL252LHR2L252XTpKcD9bWnAvSnAsUXAvSnBdOldwP1tWcC9XcCwkcC9XcF06W05hTixOYU5dO3JldHVybiBWcD0kcD1XcD1acD1RcD1KcD1LcD10dj1udj0wLHR9fTtHaS5wcm90b3R5cGU9e19yYWRpdXM6NC41LHBvaW50UmFkaXVzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yYWRpdXM9dCx0aGlzfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA9PT10aGlzLl9saW5lJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX3BvaW50PU5hTn0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pLHRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX2NvbnRleHQubGluZVRvKHQsbik7YnJlYWs7ZGVmYXVsdDp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0K3RoaXMuX3JhZGl1cyxuKSx0aGlzLl9jb250ZXh0LmFyYyh0LG4sdGhpcy5fcmFkaXVzLDAsV2QpfX0scmVzdWx0OnZyfTt2YXIgcnYsaXYsb3YsYXYsdXYsZnY9Y3IoKSxjdj17cG9pbnQ6dnIsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7Y3YucG9pbnQ9Vml9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtydiYmJGkoaXYsb3YpLGN2LnBvaW50PXZyfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtydj0hMH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3J2PW51bGx9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PStmdjtyZXR1cm4gZnYucmVzZXQoKSx0fX07V2kucHJvdG90eXBlPXtfcmFkaXVzOjQuNSxfY2lyY2xlOlppKDQuNSkscG9pbnRSYWRpdXM6ZnVuY3Rpb24odCl7cmV0dXJuKHQ9K3QpIT09dGhpcy5fcmFkaXVzJiYodGhpcy5fcmFkaXVzPXQsdGhpcy5fY2lyY2xlPW51bGwpLHRoaXN9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7MD09PXRoaXMuX2xpbmUmJnRoaXMuX3N0cmluZy5wdXNoKFwiWlwiKSx0aGlzLl9wb2ludD1OYU59LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fc3RyaW5nLnB1c2goXCJNXCIsdCxcIixcIixuKSx0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9zdHJpbmcucHVzaChcIkxcIix0LFwiLFwiLG4pO2JyZWFrO2RlZmF1bHQ6bnVsbD09dGhpcy5fY2lyY2xlJiYodGhpcy5fY2lyY2xlPVppKHRoaXMuX3JhZGl1cykpLHRoaXMuX3N0cmluZy5wdXNoKFwiTVwiLHQsXCIsXCIsbix0aGlzLl9jaXJjbGUpfX0scmVzdWx0OmZ1bmN0aW9uKCl7aWYodGhpcy5fc3RyaW5nLmxlbmd0aCl7dmFyIHQ9dGhpcy5fc3RyaW5nLmpvaW4oXCJcIik7cmV0dXJuIHRoaXMuX3N0cmluZz1bXSx0fXJldHVybiBudWxsfX0sSmkucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpKaSxwb2ludDpmdW5jdGlvbih0LG4pe3RoaXMuc3RyZWFtLnBvaW50KHQsbil9LHNwaGVyZTpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnNwaGVyZSgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5wb2x5Z29uRW5kKCl9fTt2YXIgc3Y9MTYsbHY9bnAoMzAqUWQpLGh2PVFpKHtwb2ludDpmdW5jdGlvbih0LG4pe3RoaXMuc3RyZWFtLnBvaW50KHQqUWQsbipRZCl9fSksZHY9aG8oZnVuY3Rpb24odCl7cmV0dXJuIGZwKDIvKDErdCkpfSk7ZHYuaW52ZXJ0PXBvKGZ1bmN0aW9uKHQpe3JldHVybiAyKmRyKHQvMil9KTt2YXIgcHY9aG8oZnVuY3Rpb24odCl7cmV0dXJuKHQ9aHIodCkpJiZ0L2FwKHQpfSk7cHYuaW52ZXJ0PXBvKGZ1bmN0aW9uKHQpe3JldHVybiB0fSksdm8uaW52ZXJ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuW3QsMipLZChycChuKSktVmRdfSxiby5pbnZlcnQ9Ym8seG8uaW52ZXJ0PXBvKEtkKSxNby5pbnZlcnQ9ZnVuY3Rpb24odCxuKXt2YXIgZSxyPW4saT0yNTtkb3t2YXIgbz1yKnIsYT1vKm87ci09ZT0ociooMS4wMDcyMjYrbyooLjAxNTA4NSthKiguMDI4ODc0Km8tLjA0NDQ3NS0uMDA1OTE2KmEpKSktbikvKDEuMDA3MjI2K28qKC4wNDUyNTUrYSooLjI1OTg2NipvLS4zMTEzMjUtLjAwNTkxNioxMSphKSkpfXdoaWxlKEpkKGUpPkhkJiYtLWk+MCk7cmV0dXJuW3QvKC44NzA3KyhvPXIqcikqKG8qKG8qbypvKiguMDAzOTcxLS4wMDE1MjkqbyktLjAxMzc5MSktLjEzMTk3OSkpLHJdfSxBby5pbnZlcnQ9cG8oZHIpLFRvLmludmVydD1wbyhmdW5jdGlvbih0KXtyZXR1cm4gMipLZCh0KX0pLE5vLmludmVydD1mdW5jdGlvbih0LG4pe3JldHVyblstbiwyKktkKHJwKHQpKS1WZF19LERvLnByb3RvdHlwZT1Qby5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkRvLGNvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaEFmdGVyKENvKX0sZWFjaDpmdW5jdGlvbih0KXt2YXIgbixlLHIsaSxvPXRoaXMsYT1bb107ZG97Zm9yKG49YS5yZXZlcnNlKCksYT1bXTtvPW4ucG9wKCk7KWlmKHQobyksZT1vLmNoaWxkcmVuKWZvcihyPTAsaT1lLmxlbmd0aDtyPGk7KytyKWEucHVzaChlW3JdKX13aGlsZShhLmxlbmd0aCk7cmV0dXJuIHRoaXN9LGVhY2hBZnRlcjpmdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyLGk9dGhpcyxvPVtpXSxhPVtdO2k9by5wb3AoKTspaWYoYS5wdXNoKGkpLG49aS5jaGlsZHJlbilmb3IoZT0wLHI9bi5sZW5ndGg7ZTxyOysrZSlvLnB1c2gobltlXSk7Zm9yKDtpPWEucG9wKCk7KXQoaSk7cmV0dXJuIHRoaXN9LGVhY2hCZWZvcmU6ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGUscj10aGlzLGk9W3JdO3I9aS5wb3AoKTspaWYodChyKSxuPXIuY2hpbGRyZW4pZm9yKGU9bi5sZW5ndGgtMTtlPj0wOy0tZSlpLnB1c2gobltlXSk7cmV0dXJuIHRoaXN9LHN1bTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lYWNoQWZ0ZXIoZnVuY3Rpb24obil7Zm9yKHZhciBlPSt0KG4uZGF0YSl8fDAscj1uLmNoaWxkcmVuLGk9ciYmci5sZW5ndGg7LS1pPj0wOyllKz1yW2ldLnZhbHVlO24udmFsdWU9ZX0pfSxzb3J0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2hCZWZvcmUoZnVuY3Rpb24obil7bi5jaGlsZHJlbiYmbi5jaGlsZHJlbi5zb3J0KHQpfSl9LHBhdGg6ZnVuY3Rpb24odCl7Zm9yKHZhciBuPXRoaXMsZT1mdW5jdGlvbih0LG4pe2lmKHQ9PT1uKXJldHVybiB0O3ZhciBlPXQuYW5jZXN0b3JzKCkscj1uLmFuY2VzdG9ycygpLGk9bnVsbDtmb3IodD1lLnBvcCgpLG49ci5wb3AoKTt0PT09bjspaT10LHQ9ZS5wb3AoKSxuPXIucG9wKCk7cmV0dXJuIGl9KG4sdCkscj1bbl07biE9PWU7KW49bi5wYXJlbnQsci5wdXNoKG4pO2Zvcih2YXIgaT1yLmxlbmd0aDt0IT09ZTspci5zcGxpY2UoaSwwLHQpLHQ9dC5wYXJlbnQ7cmV0dXJuIHJ9LGFuY2VzdG9yczpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLG49W3RdO3Q9dC5wYXJlbnQ7KW4ucHVzaCh0KTtyZXR1cm4gbn0sZGVzY2VuZGFudHM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKG4pe3QucHVzaChuKX0pLHR9LGxlYXZlczpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmVhY2hCZWZvcmUoZnVuY3Rpb24obil7bi5jaGlsZHJlbnx8dC5wdXNoKG4pfSksdH0sbGlua3M6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49W107cmV0dXJuIHQuZWFjaChmdW5jdGlvbihlKXtlIT09dCYmbi5wdXNoKHtzb3VyY2U6ZS5wYXJlbnQsdGFyZ2V0OmV9KX0pLG59LGNvcHk6ZnVuY3Rpb24oKXtyZXR1cm4gUG8odGhpcykuZWFjaEJlZm9yZShSbyl9fTt2YXIgdnY9QXJyYXkucHJvdG90eXBlLnNsaWNlLGd2PVwiJFwiLHl2PXtkZXB0aDotMX0sX3Y9e307Y2EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRG8ucHJvdG90eXBlKTt2YXIgYnY9KDErTWF0aC5zcXJ0KDUpKS8yLG12PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0LGUscixpLG8pe2xhKG4sdCxlLHIsaSxvKX1yZXR1cm4gZS5yYXRpbz1mdW5jdGlvbihuKXtyZXR1cm4gdCgobj0rbik+MT9uOjEpfSxlfShidikseHY9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQsZSxyLGksbyl7aWYoKGE9dC5fc3F1YXJpZnkpJiZhLnJhdGlvPT09bilmb3IodmFyIGEsdSxmLGMscyxsPS0xLGg9YS5sZW5ndGgsZD10LnZhbHVlOysrbDxoOyl7Zm9yKGY9KHU9YVtsXSkuY2hpbGRyZW4sYz11LnZhbHVlPTAscz1mLmxlbmd0aDtjPHM7KytjKXUudmFsdWUrPWZbY10udmFsdWU7dS5kaWNlP25hKHUsZSxyLGkscis9KG8tcikqdS52YWx1ZS9kKTpzYSh1LGUscixlKz0oaS1lKSp1LnZhbHVlL2QsbyksZC09dS52YWx1ZX1lbHNlIHQuX3NxdWFyaWZ5PWE9bGEobix0LGUscixpLG8pLGEucmF0aW89bn1yZXR1cm4gZS5yYXRpbz1mdW5jdGlvbihuKXtyZXR1cm4gdCgobj0rbik+MT9uOjEpfSxlfShidiksd3Y9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQsZSl7cmV0dXJuIHQ9bnVsbD09dD8wOit0LGU9bnVsbD09ZT8xOitlLDE9PT1hcmd1bWVudHMubGVuZ3RoPyhlPXQsdD0wKTplLT10LGZ1bmN0aW9uKCl7cmV0dXJuIG4oKSplK3R9fXJldHVybiBlLnNvdXJjZT10LGV9KHZhKSxNdj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCxlKXt2YXIgcixpO3JldHVybiB0PW51bGw9PXQ/MDordCxlPW51bGw9PWU/MTorZSxmdW5jdGlvbigpe3ZhciBvO2lmKG51bGwhPXIpbz1yLHI9bnVsbDtlbHNlIGRve3I9MipuKCktMSxvPTIqbigpLTEsaT1yKnIrbypvfXdoaWxlKCFpfHxpPjEpO3JldHVybiB0K2UqbypNYXRoLnNxcnQoLTIqTWF0aC5sb2coaSkvaSl9fXJldHVybiBlLnNvdXJjZT10LGV9KHZhKSxBdj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUoKXt2YXIgdD1Ndi5zb3VyY2UobikuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBNYXRoLmV4cCh0KCkpfX1yZXR1cm4gZS5zb3VyY2U9dCxlfSh2YSksVHY9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT0wLHI9MDtyPHQ7KytyKWUrPW4oKTtyZXR1cm4gZX19cmV0dXJuIGUuc291cmNlPXQsZX0odmEpLE52PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXt2YXIgZT1Udi5zb3VyY2UobikodCk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUoKS90fX1yZXR1cm4gZS5zb3VyY2U9dCxlfSh2YSksU3Y9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybi1NYXRoLmxvZygxLW4oKSkvdH19cmV0dXJuIGUuc291cmNlPXQsZX0odmEpLEV2PUFycmF5LnByb3RvdHlwZSxrdj1Fdi5tYXAsQ3Y9RXYuc2xpY2UsUHY9e25hbWU6XCJpbXBsaWNpdFwifSx6dj1bMCwxXSxSdj1uZXcgRGF0ZSxMdj1uZXcgRGF0ZSxEdj1JYShmdW5jdGlvbigpe30sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3Qrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4tdH0pO0R2LmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiB0PU1hdGguZmxvb3IodCksaXNGaW5pdGUodCkmJnQ+MD90PjE/SWEoZnVuY3Rpb24obil7bi5zZXRUaW1lKE1hdGguZmxvb3Iobi90KSp0KX0sZnVuY3Rpb24obixlKXtuLnNldFRpbWUoK24rZSp0KX0sZnVuY3Rpb24obixlKXtyZXR1cm4oZS1uKS90fSk6RHY6bnVsbH07dmFyIFV2PUR2LnJhbmdlLHF2PTZlNCxPdj02MDQ4ZTUsWXY9SWEoZnVuY3Rpb24odCl7dC5zZXRUaW1lKDFlMypNYXRoLmZsb29yKHQvMWUzKSl9LGZ1bmN0aW9uKHQsbil7dC5zZXRUaW1lKCt0KzFlMypuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS8xZTN9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ1NlY29uZHMoKX0pLEJ2PVl2LnJhbmdlLEZ2PUlhKGZ1bmN0aW9uKHQpe3Quc2V0VGltZShNYXRoLmZsb29yKHQvcXYpKnF2KX0sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3Qrbipxdil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvcXZ9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbnV0ZXMoKX0pLEl2PUZ2LnJhbmdlLGp2PUlhKGZ1bmN0aW9uKHQpe3ZhciBuPXQuZ2V0VGltZXpvbmVPZmZzZXQoKSpxdiUzNmU1O248MCYmKG4rPTM2ZTUpLHQuc2V0VGltZSgzNmU1Kk1hdGguZmxvb3IoKCt0LW4pLzM2ZTUpK24pfSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCszNmU1Km4pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQpLzM2ZTV9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEhvdXJzKCl9KSxIdj1qdi5yYW5nZSxYdj1JYShmdW5jdGlvbih0KXt0LnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0RGF0ZSh0LmdldERhdGUoKStuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10LShuLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSpxdikvODY0ZTV9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldERhdGUoKS0xfSksR3Y9WHYucmFuZ2UsVnY9amEoMCksJHY9amEoMSksV3Y9amEoMiksWnY9amEoMyksUXY9amEoNCksSnY9amEoNSksS3Y9amEoNiksdGc9VnYucmFuZ2Usbmc9JHYucmFuZ2UsZWc9V3YucmFuZ2Uscmc9WnYucmFuZ2UsaWc9UXYucmFuZ2Usb2c9SnYucmFuZ2UsYWc9S3YucmFuZ2UsdWc9SWEoZnVuY3Rpb24odCl7dC5zZXREYXRlKDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRNb250aCh0LmdldE1vbnRoKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4uZ2V0TW9udGgoKS10LmdldE1vbnRoKCkrMTIqKG4uZ2V0RnVsbFllYXIoKS10LmdldEZ1bGxZZWFyKCkpfSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNb250aCgpfSksZmc9dWcucmFuZ2UsY2c9SWEoZnVuY3Rpb24odCl7dC5zZXRNb250aCgwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4uZ2V0RnVsbFllYXIoKS10LmdldEZ1bGxZZWFyKCl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEZ1bGxZZWFyKCl9KTtjZy5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP0lhKGZ1bmN0aW9uKG4pe24uc2V0RnVsbFllYXIoTWF0aC5mbG9vcihuLmdldEZ1bGxZZWFyKCkvdCkqdCksbi5zZXRNb250aCgwLDEpLG4uc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKG4sZSl7bi5zZXRGdWxsWWVhcihuLmdldEZ1bGxZZWFyKCkrZSp0KX0pOm51bGx9O3ZhciBzZz1jZy5yYW5nZSxsZz1JYShmdW5jdGlvbih0KXt0LnNldFVUQ1NlY29uZHMoMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3Qrbipxdil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvcXZ9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01pbnV0ZXMoKX0pLGhnPWxnLnJhbmdlLGRnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0VVRDTWludXRlcygwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRUaW1lKCt0KzM2ZTUqbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvMzZlNX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDSG91cnMoKX0pLHBnPWRnLnJhbmdlLHZnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpK24pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQpLzg2NGU1fSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENEYXRlKCktMX0pLGdnPXZnLnJhbmdlLHlnPUhhKDApLF9nPUhhKDEpLGJnPUhhKDIpLG1nPUhhKDMpLHhnPUhhKDQpLHdnPUhhKDUpLE1nPUhhKDYpLEFnPXlnLnJhbmdlLFRnPV9nLnJhbmdlLE5nPWJnLnJhbmdlLFNnPW1nLnJhbmdlLEVnPXhnLnJhbmdlLGtnPXdnLnJhbmdlLENnPU1nLnJhbmdlLFBnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0VVRDRGF0ZSgxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0VVRDTW9udGgodC5nZXRVVENNb250aCgpK24pfSxmdW5jdGlvbih0LG4pe3JldHVybiBuLmdldFVUQ01vbnRoKCktdC5nZXRVVENNb250aCgpKzEyKihuLmdldFVUQ0Z1bGxZZWFyKCktdC5nZXRVVENGdWxsWWVhcigpKX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTW9udGgoKX0pLHpnPVBnLnJhbmdlLFJnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0VVRDTW9udGgoMCwxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0VVRDRnVsbFllYXIodC5nZXRVVENGdWxsWWVhcigpK24pfSxmdW5jdGlvbih0LG4pe3JldHVybiBuLmdldFVUQ0Z1bGxZZWFyKCktdC5nZXRVVENGdWxsWWVhcigpfSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENGdWxsWWVhcigpfSk7UmcuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9TWF0aC5mbG9vcih0KSkmJnQ+MD9JYShmdW5jdGlvbihuKXtuLnNldFVUQ0Z1bGxZZWFyKE1hdGguZmxvb3Iobi5nZXRVVENGdWxsWWVhcigpL3QpKnQpLG4uc2V0VVRDTW9udGgoMCwxKSxuLnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbihuLGUpe24uc2V0VVRDRnVsbFllYXIobi5nZXRVVENGdWxsWWVhcigpK2UqdCl9KTpudWxsfTt2YXIgTGcsRGc9UmcucmFuZ2UsVWc9e1wiLVwiOlwiXCIsXzpcIiBcIiwwOlwiMFwifSxxZz0vXlxccypcXGQrLyxPZz0vXiUvLFlnPS9bXFxcXF4kKis/fFtcXF0oKS57fV0vZztuZih7ZGF0ZVRpbWU6XCIleCwgJVhcIixkYXRlOlwiJS1tLyUtZC8lWVwiLHRpbWU6XCIlLUk6JU06JVMgJXBcIixwZXJpb2RzOltcIkFNXCIsXCJQTVwiXSxkYXlzOltcIlN1bmRheVwiLFwiTW9uZGF5XCIsXCJUdWVzZGF5XCIsXCJXZWRuZXNkYXlcIixcIlRodXJzZGF5XCIsXCJGcmlkYXlcIixcIlNhdHVyZGF5XCJdLHNob3J0RGF5czpbXCJTdW5cIixcIk1vblwiLFwiVHVlXCIsXCJXZWRcIixcIlRodVwiLFwiRnJpXCIsXCJTYXRcIl0sbW9udGhzOltcIkphbnVhcnlcIixcIkZlYnJ1YXJ5XCIsXCJNYXJjaFwiLFwiQXByaWxcIixcIk1heVwiLFwiSnVuZVwiLFwiSnVseVwiLFwiQXVndXN0XCIsXCJTZXB0ZW1iZXJcIixcIk9jdG9iZXJcIixcIk5vdmVtYmVyXCIsXCJEZWNlbWJlclwiXSxzaG9ydE1vbnRoczpbXCJKYW5cIixcIkZlYlwiLFwiTWFyXCIsXCJBcHJcIixcIk1heVwiLFwiSnVuXCIsXCJKdWxcIixcIkF1Z1wiLFwiU2VwXCIsXCJPY3RcIixcIk5vdlwiLFwiRGVjXCJdfSk7dmFyIEJnPVwiJVktJW0tJWRUJUg6JU06JVMuJUxaXCIsRmc9RGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmc/ZnVuY3Rpb24odCl7cmV0dXJuIHQudG9JU09TdHJpbmcoKX06dC51dGNGb3JtYXQoQmcpLElnPStuZXcgRGF0ZShcIjIwMDAtMDEtMDFUMDA6MDA6MDAuMDAwWlwiKT9mdW5jdGlvbih0KXt2YXIgbj1uZXcgRGF0ZSh0KTtyZXR1cm4gaXNOYU4obik/bnVsbDpufTp0LnV0Y1BhcnNlKEJnKSxqZz0xZTMsSGc9NjAqamcsWGc9NjAqSGcsR2c9MjQqWGcsVmc9NypHZywkZz0zMCpHZyxXZz0zNjUqR2csWmc9ZmYoXCIxZjc3YjRmZjdmMGUyY2EwMmNkNjI3Mjg5NDY3YmQ4YzU2NGJlMzc3YzI3ZjdmN2ZiY2JkMjIxN2JlY2ZcIiksUWc9ZmYoXCI3ZmM5N2ZiZWFlZDRmZGMwODZmZmZmOTkzODZjYjBmMDAyN2ZiZjViMTc2NjY2NjZcIiksSmc9ZmYoXCIxYjllNzdkOTVmMDI3NTcwYjNlNzI5OGE2NmE2MWVlNmFiMDJhNjc2MWQ2NjY2NjZcIiksS2c9ZmYoXCJhNmNlZTMxZjc4YjRiMmRmOGEzM2EwMmNmYjlhOTllMzFhMWNmZGJmNmZmZjdmMDBjYWIyZDY2YTNkOWFmZmZmOTliMTU5MjhcIiksdHk9ZmYoXCJmYmI0YWViM2NkZTNjY2ViYzVkZWNiZTRmZWQ5YTZmZmZmY2NlNWQ4YmRmZGRhZWNmMmYyZjJcIiksbnk9ZmYoXCJiM2UyY2RmZGNkYWNjYmQ1ZThmNGNhZTRlNmY1YzlmZmYyYWVmMWUyY2NjY2NjY2NcIiksZXk9ZmYoXCJlNDFhMWMzNzdlYjg0ZGFmNGE5ODRlYTNmZjdmMDBmZmZmMzNhNjU2MjhmNzgxYmY5OTk5OTlcIikscnk9ZmYoXCI2NmMyYTVmYzhkNjI4ZGEwY2JlNzhhYzNhNmQ4NTRmZmQ5MmZlNWM0OTRiM2IzYjNcIiksaXk9ZmYoXCI4ZGQzYzdmZmZmYjNiZWJhZGFmYjgwNzI4MGIxZDNmZGI0NjJiM2RlNjlmY2NkZTVkOWQ5ZDliYzgwYmRjY2ViYzVmZmVkNmZcIiksb3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImQ4YjM2NWY1ZjVmNTVhYjRhY1wiLFwiYTY2MTFhZGZjMjdkODBjZGMxMDE4NTcxXCIsXCJhNjYxMWFkZmMyN2RmNWY1ZjU4MGNkYzEwMTg1NzFcIixcIjhjNTEwYWQ4YjM2NWY2ZThjM2M3ZWFlNTVhYjRhYzAxNjY1ZVwiLFwiOGM1MTBhZDhiMzY1ZjZlOGMzZjVmNWY1YzdlYWU1NWFiNGFjMDE2NjVlXCIsXCI4YzUxMGFiZjgxMmRkZmMyN2RmNmU4YzNjN2VhZTU4MGNkYzEzNTk3OGYwMTY2NWVcIixcIjhjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2Y1ZjVmNWM3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZVwiLFwiNTQzMDA1OGM1MTBhYmY4MTJkZGZjMjdkZjZlOGMzYzdlYWU1ODBjZGMxMzU5NzhmMDE2NjVlMDAzYzMwXCIsXCI1NDMwMDU4YzUxMGFiZjgxMmRkZmMyN2RmNmU4YzNmNWY1ZjVjN2VhZTU4MGNkYzEzNTk3OGYwMTY2NWUwMDNjMzBcIikubWFwKGZmKSxheT1jZihveSksdXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImFmOGRjM2Y3ZjdmNzdmYmY3YlwiLFwiN2IzMjk0YzJhNWNmYTZkYmEwMDA4ODM3XCIsXCI3YjMyOTRjMmE1Y2ZmN2Y3ZjdhNmRiYTAwMDg4MzdcIixcIjc2MmE4M2FmOGRjM2U3ZDRlOGQ5ZjBkMzdmYmY3YjFiNzgzN1wiLFwiNzYyYTgzYWY4ZGMzZTdkNGU4ZjdmN2Y3ZDlmMGQzN2ZiZjdiMWI3ODM3XCIsXCI3NjJhODM5OTcwYWJjMmE1Y2ZlN2Q0ZThkOWYwZDNhNmRiYTA1YWFlNjExYjc4MzdcIixcIjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGY3ZjdmN2Q5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzN1wiLFwiNDAwMDRiNzYyYTgzOTk3MGFiYzJhNWNmZTdkNGU4ZDlmMGQzYTZkYmEwNWFhZTYxMWI3ODM3MDA0NDFiXCIsXCI0MDAwNGI3NjJhODM5OTcwYWJjMmE1Y2ZlN2Q0ZThmN2Y3ZjdkOWYwZDNhNmRiYTA1YWFlNjExYjc4MzcwMDQ0MWJcIikubWFwKGZmKSxmeT1jZih1eSksY3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImU5YTNjOWY3ZjdmN2ExZDc2YVwiLFwiZDAxYzhiZjFiNmRhYjhlMTg2NGRhYzI2XCIsXCJkMDFjOGJmMWI2ZGFmN2Y3ZjdiOGUxODY0ZGFjMjZcIixcImM1MWI3ZGU5YTNjOWZkZTBlZmU2ZjVkMGExZDc2YTRkOTIyMVwiLFwiYzUxYjdkZTlhM2M5ZmRlMGVmZjdmN2Y3ZTZmNWQwYTFkNzZhNGQ5MjIxXCIsXCJjNTFiN2RkZTc3YWVmMWI2ZGFmZGUwZWZlNmY1ZDBiOGUxODY3ZmJjNDE0ZDkyMjFcIixcImM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmY3ZjdmN2U2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMVwiLFwiOGUwMTUyYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxMjc2NDE5XCIsXCI4ZTAxNTJjNTFiN2RkZTc3YWVmMWI2ZGFmZGUwZWZmN2Y3ZjdlNmY1ZDBiOGUxODY3ZmJjNDE0ZDkyMjEyNzY0MTlcIikubWFwKGZmKSxzeT1jZihjeSksbHk9bmV3IEFycmF5KDMpLmNvbmNhdChcIjk5OGVjM2Y3ZjdmN2YxYTM0MFwiLFwiNWUzYzk5YjJhYmQyZmRiODYzZTY2MTAxXCIsXCI1ZTNjOTliMmFiZDJmN2Y3ZjdmZGI4NjNlNjYxMDFcIixcIjU0Mjc4ODk5OGVjM2Q4ZGFlYmZlZTBiNmYxYTM0MGIzNTgwNlwiLFwiNTQyNzg4OTk4ZWMzZDhkYWViZjdmN2Y3ZmVlMGI2ZjFhMzQwYjM1ODA2XCIsXCI1NDI3ODg4MDczYWNiMmFiZDJkOGRhZWJmZWUwYjZmZGI4NjNlMDgyMTRiMzU4MDZcIixcIjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmY3ZjdmN2ZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNlwiLFwiMmQwMDRiNTQyNzg4ODA3M2FjYjJhYmQyZDhkYWViZmVlMGI2ZmRiODYzZTA4MjE0YjM1ODA2N2YzYjA4XCIsXCIyZDAwNGI1NDI3ODg4MDczYWNiMmFiZDJkOGRhZWJmN2Y3ZjdmZWUwYjZmZGI4NjNlMDgyMTRiMzU4MDY3ZjNiMDhcIikubWFwKGZmKSxoeT1jZihseSksZHk9bmV3IEFycmF5KDMpLmNvbmNhdChcImVmOGE2MmY3ZjdmNzY3YTljZlwiLFwiY2EwMDIwZjRhNTgyOTJjNWRlMDU3MWIwXCIsXCJjYTAwMjBmNGE1ODJmN2Y3Zjc5MmM1ZGUwNTcxYjBcIixcImIyMTgyYmVmOGE2MmZkZGJjN2QxZTVmMDY3YTljZjIxNjZhY1wiLFwiYjIxODJiZWY4YTYyZmRkYmM3ZjdmN2Y3ZDFlNWYwNjdhOWNmMjE2NmFjXCIsXCJiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdkMWU1ZjA5MmM1ZGU0MzkzYzMyMTY2YWNcIixcImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2Y3ZjdmN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhY1wiLFwiNjcwMDFmYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZDFlNWYwOTJjNWRlNDM5M2MzMjE2NmFjMDUzMDYxXCIsXCI2NzAwMWZiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdmN2Y3ZjdkMWU1ZjA5MmM1ZGU0MzkzYzMyMTY2YWMwNTMwNjFcIikubWFwKGZmKSxweT1jZihkeSksdnk9bmV3IEFycmF5KDMpLmNvbmNhdChcImVmOGE2MmZmZmZmZjk5OTk5OVwiLFwiY2EwMDIwZjRhNTgyYmFiYWJhNDA0MDQwXCIsXCJjYTAwMjBmNGE1ODJmZmZmZmZiYWJhYmE0MDQwNDBcIixcImIyMTgyYmVmOGE2MmZkZGJjN2UwZTBlMDk5OTk5OTRkNGQ0ZFwiLFwiYjIxODJiZWY4YTYyZmRkYmM3ZmZmZmZmZTBlMGUwOTk5OTk5NGQ0ZDRkXCIsXCJiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdlMGUwZTBiYWJhYmE4Nzg3ODc0ZDRkNGRcIixcImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2ZmZmZmZmUwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZFwiLFwiNjcwMDFmYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkMWExYTFhXCIsXCI2NzAwMWZiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdmZmZmZmZlMGUwZTBiYWJhYmE4Nzg3ODc0ZDRkNGQxYTFhMWFcIikubWFwKGZmKSxneT1jZih2eSkseXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImZjOGQ1OWZmZmZiZjkxYmZkYlwiLFwiZDcxOTFjZmRhZTYxYWJkOWU5MmM3YmI2XCIsXCJkNzE5MWNmZGFlNjFmZmZmYmZhYmQ5ZTkyYzdiYjZcIixcImQ3MzAyN2ZjOGQ1OWZlZTA5MGUwZjNmODkxYmZkYjQ1NzViNFwiLFwiZDczMDI3ZmM4ZDU5ZmVlMDkwZmZmZmJmZTBmM2Y4OTFiZmRiNDU3NWI0XCIsXCJkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOTBlMGYzZjhhYmQ5ZTk3NGFkZDE0NTc1YjRcIixcImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGZmZmZiZmUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNFwiLFwiYTUwMDI2ZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDkwZTBmM2Y4YWJkOWU5NzRhZGQxNDU3NWI0MzEzNjk1XCIsXCJhNTAwMjZkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOTBmZmZmYmZlMGYzZjhhYmQ5ZTk3NGFkZDE0NTc1YjQzMTM2OTVcIikubWFwKGZmKSxfeT1jZih5eSksYnk9bmV3IEFycmF5KDMpLmNvbmNhdChcImZjOGQ1OWZmZmZiZjkxY2Y2MFwiLFwiZDcxOTFjZmRhZTYxYTZkOTZhMWE5NjQxXCIsXCJkNzE5MWNmZGFlNjFmZmZmYmZhNmQ5NmExYTk2NDFcIixcImQ3MzAyN2ZjOGQ1OWZlZTA4YmQ5ZWY4YjkxY2Y2MDFhOTg1MFwiLFwiZDczMDI3ZmM4ZDU5ZmVlMDhiZmZmZmJmZDllZjhiOTFjZjYwMWE5ODUwXCIsXCJkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOGJkOWVmOGJhNmQ5NmE2NmJkNjMxYTk4NTBcIixcImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MFwiLFwiYTUwMDI2ZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDhiZDllZjhiYTZkOTZhNjZiZDYzMWE5ODUwMDA2ODM3XCIsXCJhNTAwMjZkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOGJmZmZmYmZkOWVmOGJhNmQ5NmE2NmJkNjMxYTk4NTAwMDY4MzdcIikubWFwKGZmKSxteT1jZihieSkseHk9bmV3IEFycmF5KDMpLmNvbmNhdChcImZjOGQ1OWZmZmZiZjk5ZDU5NFwiLFwiZDcxOTFjZmRhZTYxYWJkZGE0MmI4M2JhXCIsXCJkNzE5MWNmZGFlNjFmZmZmYmZhYmRkYTQyYjgzYmFcIixcImQ1M2U0ZmZjOGQ1OWZlZTA4YmU2ZjU5ODk5ZDU5NDMyODhiZFwiLFwiZDUzZTRmZmM4ZDU5ZmVlMDhiZmZmZmJmZTZmNTk4OTlkNTk0MzI4OGJkXCIsXCJkNTNlNGZmNDZkNDNmZGFlNjFmZWUwOGJlNmY1OThhYmRkYTQ2NmMyYTUzMjg4YmRcIixcImQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZFwiLFwiOWUwMTQyZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkNWU0ZmEyXCIsXCI5ZTAxNDJkNTNlNGZmNDZkNDNmZGFlNjFmZWUwOGJmZmZmYmZlNmY1OThhYmRkYTQ2NmMyYTUzMjg4YmQ1ZTRmYTJcIikubWFwKGZmKSx3eT1jZih4eSksTXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImU1ZjVmOTk5ZDhjOTJjYTI1ZlwiLFwiZWRmOGZiYjJlMmUyNjZjMmE0MjM4YjQ1XCIsXCJlZGY4ZmJiMmUyZTI2NmMyYTQyY2EyNWYwMDZkMmNcIixcImVkZjhmYmNjZWNlNjk5ZDhjOTY2YzJhNDJjYTI1ZjAwNmQyY1wiLFwiZWRmOGZiY2NlY2U2OTlkOGM5NjZjMmE0NDFhZTc2MjM4YjQ1MDA1ODI0XCIsXCJmN2ZjZmRlNWY1ZjljY2VjZTY5OWQ4Yzk2NmMyYTQ0MWFlNzYyMzhiNDUwMDU4MjRcIixcImY3ZmNmZGU1ZjVmOWNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNmQyYzAwNDQxYlwiKS5tYXAoZmYpLEF5PWNmKE15KSxUeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTBlY2Y0OWViY2RhODg1NmE3XCIsXCJlZGY4ZmJiM2NkZTM4Yzk2YzY4ODQxOWRcIixcImVkZjhmYmIzY2RlMzhjOTZjNjg4NTZhNzgxMGY3Y1wiLFwiZWRmOGZiYmZkM2U2OWViY2RhOGM5NmM2ODg1NmE3ODEwZjdjXCIsXCJlZGY4ZmJiZmQzZTY5ZWJjZGE4Yzk2YzY4YzZiYjE4ODQxOWQ2ZTAxNmJcIixcImY3ZmNmZGUwZWNmNGJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDZlMDE2YlwiLFwiZjdmY2ZkZTBlY2Y0YmZkM2U2OWViY2RhOGM5NmM2OGM2YmIxODg0MTlkODEwZjdjNGQwMDRiXCIpLm1hcChmZiksTnk9Y2YoVHkpLFN5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlMGYzZGJhOGRkYjU0M2EyY2FcIixcImYwZjllOGJhZTRiYzdiY2NjNDJiOGNiZVwiLFwiZjBmOWU4YmFlNGJjN2JjY2M0NDNhMmNhMDg2OGFjXCIsXCJmMGY5ZThjY2ViYzVhOGRkYjU3YmNjYzQ0M2EyY2EwODY4YWNcIixcImYwZjllOGNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NTg5ZVwiLFwiZjdmY2YwZTBmM2RiY2NlYmM1YThkZGI1N2JjY2M0NGViM2QzMmI4Y2JlMDg1ODllXCIsXCJmN2ZjZjBlMGYzZGJjY2ViYzVhOGRkYjU3YmNjYzQ0ZWIzZDMyYjhjYmUwODY4YWMwODQwODFcIikubWFwKGZmKSxFeT1jZihTeSksa3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImZlZThjOGZkYmI4NGUzNGEzM1wiLFwiZmVmMGQ5ZmRjYzhhZmM4ZDU5ZDczMDFmXCIsXCJmZWYwZDlmZGNjOGFmYzhkNTllMzRhMzNiMzAwMDBcIixcImZlZjBkOWZkZDQ5ZWZkYmI4NGZjOGQ1OWUzNGEzM2IzMDAwMFwiLFwiZmVmMGQ5ZmRkNDllZmRiYjg0ZmM4ZDU5ZWY2NTQ4ZDczMDFmOTkwMDAwXCIsXCJmZmY3ZWNmZWU4YzhmZGQ0OWVmZGJiODRmYzhkNTllZjY1NDhkNzMwMWY5OTAwMDBcIixcImZmZjdlY2ZlZThjOGZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZmIzMDAwMDdmMDAwMFwiKS5tYXAoZmYpLEN5PWNmKGt5KSxQeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWNlMmYwYTZiZGRiMWM5MDk5XCIsXCJmNmVmZjdiZGM5ZTE2N2E5Y2YwMjgxOGFcIixcImY2ZWZmN2JkYzllMTY3YTljZjFjOTA5OTAxNmM1OVwiLFwiZjZlZmY3ZDBkMWU2YTZiZGRiNjdhOWNmMWM5MDk5MDE2YzU5XCIsXCJmNmVmZjdkMGQxZTZhNmJkZGI2N2E5Y2YzNjkwYzAwMjgxOGEwMTY0NTBcIixcImZmZjdmYmVjZTJmMGQwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNjQ1MFwiLFwiZmZmN2ZiZWNlMmYwZDBkMWU2YTZiZGRiNjdhOWNmMzY5MGMwMDI4MThhMDE2YzU5MDE0NjM2XCIpLm1hcChmZiksenk9Y2YoUHkpLFJ5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlY2U3ZjJhNmJkZGIyYjhjYmVcIixcImYxZWVmNmJkYzllMTc0YTljZjA1NzBiMFwiLFwiZjFlZWY2YmRjOWUxNzRhOWNmMmI4Y2JlMDQ1YThkXCIsXCJmMWVlZjZkMGQxZTZhNmJkZGI3NGE5Y2YyYjhjYmUwNDVhOGRcIixcImYxZWVmNmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDAzNGU3YlwiLFwiZmZmN2ZiZWNlN2YyZDBkMWU2YTZiZGRiNzRhOWNmMzY5MGMwMDU3MGIwMDM0ZTdiXCIsXCJmZmY3ZmJlY2U3ZjJkMGQxZTZhNmJkZGI3NGE5Y2YzNjkwYzAwNTcwYjAwNDVhOGQwMjM4NThcIikubWFwKGZmKSxMeT1jZihSeSksRHk9bmV3IEFycmF5KDMpLmNvbmNhdChcImU3ZTFlZmM5OTRjN2RkMWM3N1wiLFwiZjFlZWY2ZDdiNWQ4ZGY2NWIwY2UxMjU2XCIsXCJmMWVlZjZkN2I1ZDhkZjY1YjBkZDFjNzc5ODAwNDNcIixcImYxZWVmNmQ0YjlkYWM5OTRjN2RmNjViMGRkMWM3Nzk4MDA0M1wiLFwiZjFlZWY2ZDRiOWRhYzk5NGM3ZGY2NWIwZTcyOThhY2UxMjU2OTEwMDNmXCIsXCJmN2Y0ZjllN2UxZWZkNGI5ZGFjOTk0YzdkZjY1YjBlNzI5OGFjZTEyNTY5MTAwM2ZcIixcImY3ZjRmOWU3ZTFlZmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1Njk4MDA0MzY3MDAxZlwiKS5tYXAoZmYpLFV5PWNmKER5KSxxeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmRlMGRkZmE5ZmI1YzUxYjhhXCIsXCJmZWViZTJmYmI0YjlmNzY4YTFhZTAxN2VcIixcImZlZWJlMmZiYjRiOWY3NjhhMWM1MWI4YTdhMDE3N1wiLFwiZmVlYmUyZmNjNWMwZmE5ZmI1Zjc2OGExYzUxYjhhN2EwMTc3XCIsXCJmZWViZTJmY2M1YzBmYTlmYjVmNzY4YTFkZDM0OTdhZTAxN2U3YTAxNzdcIixcImZmZjdmM2ZkZTBkZGZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3N1wiLFwiZmZmN2YzZmRlMGRkZmNjNWMwZmE5ZmI1Zjc2OGExZGQzNDk3YWUwMTdlN2EwMTc3NDkwMDZhXCIpLm1hcChmZiksT3k9Y2YocXkpLFl5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlZGY4YjE3ZmNkYmIyYzdmYjhcIixcImZmZmZjY2ExZGFiNDQxYjZjNDIyNWVhOFwiLFwiZmZmZmNjYTFkYWI0NDFiNmM0MmM3ZmI4MjUzNDk0XCIsXCJmZmZmY2NjN2U5YjQ3ZmNkYmI0MWI2YzQyYzdmYjgyNTM0OTRcIixcImZmZmZjY2M3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODBjMmM4NFwiLFwiZmZmZmQ5ZWRmOGIxYzdlOWI0N2ZjZGJiNDFiNmM0MWQ5MWMwMjI1ZWE4MGMyYzg0XCIsXCJmZmZmZDllZGY4YjFjN2U5YjQ3ZmNkYmI0MWI2YzQxZDkxYzAyMjVlYTgyNTM0OTQwODFkNThcIikubWFwKGZmKSxCeT1jZihZeSksRnk9bmV3IEFycmF5KDMpLmNvbmNhdChcImY3ZmNiOWFkZGQ4ZTMxYTM1NFwiLFwiZmZmZmNjYzJlNjk5NzhjNjc5MjM4NDQzXCIsXCJmZmZmY2NjMmU2OTk3OGM2NzkzMWEzNTQwMDY4MzdcIixcImZmZmZjY2Q5ZjBhM2FkZGQ4ZTc4YzY3OTMxYTM1NDAwNjgzN1wiLFwiZmZmZmNjZDlmMGEzYWRkZDhlNzhjNjc5NDFhYjVkMjM4NDQzMDA1YTMyXCIsXCJmZmZmZTVmN2ZjYjlkOWYwYTNhZGRkOGU3OGM2Nzk0MWFiNWQyMzg0NDMwMDVhMzJcIixcImZmZmZlNWY3ZmNiOWQ5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNjgzNzAwNDUyOVwiKS5tYXAoZmYpLEl5PWNmKEZ5KSxqeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmZmN2JjZmVjNDRmZDk1ZjBlXCIsXCJmZmZmZDRmZWQ5OGVmZTk5MjljYzRjMDJcIixcImZmZmZkNGZlZDk4ZWZlOTkyOWQ5NWYwZTk5MzQwNFwiLFwiZmZmZmQ0ZmVlMzkxZmVjNDRmZmU5OTI5ZDk1ZjBlOTkzNDA0XCIsXCJmZmZmZDRmZWUzOTFmZWM0NGZmZTk5MjllYzcwMTRjYzRjMDI4YzJkMDRcIixcImZmZmZlNWZmZjdiY2ZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjhjMmQwNFwiLFwiZmZmZmU1ZmZmN2JjZmVlMzkxZmVjNDRmZmU5OTI5ZWM3MDE0Y2M0YzAyOTkzNDA0NjYyNTA2XCIpLm1hcChmZiksSHk9Y2YoankpLFh5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZmVkYTBmZWIyNGNmMDNiMjBcIixcImZmZmZiMmZlY2M1Y2ZkOGQzY2UzMWExY1wiLFwiZmZmZmIyZmVjYzVjZmQ4ZDNjZjAzYjIwYmQwMDI2XCIsXCJmZmZmYjJmZWQ5NzZmZWIyNGNmZDhkM2NmMDNiMjBiZDAwMjZcIixcImZmZmZiMmZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2IxMDAyNlwiLFwiZmZmZmNjZmZlZGEwZmVkOTc2ZmViMjRjZmQ4ZDNjZmM0ZTJhZTMxYTFjYjEwMDI2XCIsXCJmZmZmY2NmZmVkYTBmZWQ5NzZmZWIyNGNmZDhkM2NmYzRlMmFlMzFhMWNiZDAwMjY4MDAwMjZcIikubWFwKGZmKSxHeT1jZihYeSksVnk9bmV3IEFycmF5KDMpLmNvbmNhdChcImRlZWJmNzllY2FlMTMxODJiZFwiLFwiZWZmM2ZmYmRkN2U3NmJhZWQ2MjE3MWI1XCIsXCJlZmYzZmZiZGQ3ZTc2YmFlZDYzMTgyYmQwODUxOWNcIixcImVmZjNmZmM2ZGJlZjllY2FlMTZiYWVkNjMxODJiZDA4NTE5Y1wiLFwiZWZmM2ZmYzZkYmVmOWVjYWUxNmJhZWQ2NDI5MmM2MjE3MWI1MDg0NTk0XCIsXCJmN2ZiZmZkZWViZjdjNmRiZWY5ZWNhZTE2YmFlZDY0MjkyYzYyMTcxYjUwODQ1OTRcIixcImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NTE5YzA4MzA2YlwiKS5tYXAoZmYpLCR5PWNmKFZ5KSxXeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTVmNWUwYTFkOTliMzFhMzU0XCIsXCJlZGY4ZTliYWU0YjM3NGM0NzYyMzhiNDVcIixcImVkZjhlOWJhZTRiMzc0YzQ3NjMxYTM1NDAwNmQyY1wiLFwiZWRmOGU5YzdlOWMwYTFkOTliNzRjNDc2MzFhMzU0MDA2ZDJjXCIsXCJlZGY4ZTljN2U5YzBhMWQ5OWI3NGM0NzY0MWFiNWQyMzhiNDUwMDVhMzJcIixcImY3ZmNmNWU1ZjVlMGM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNWEzMlwiLFwiZjdmY2Y1ZTVmNWUwYzdlOWMwYTFkOTliNzRjNDc2NDFhYjVkMjM4YjQ1MDA2ZDJjMDA0NDFiXCIpLm1hcChmZiksWnk9Y2YoV3kpLFF5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmMGYwZjBiZGJkYmQ2MzYzNjNcIixcImY3ZjdmN2NjY2NjYzk2OTY5NjUyNTI1MlwiLFwiZjdmN2Y3Y2NjY2NjOTY5Njk2NjM2MzYzMjUyNTI1XCIsXCJmN2Y3ZjdkOWQ5ZDliZGJkYmQ5Njk2OTY2MzYzNjMyNTI1MjVcIixcImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNVwiLFwiZmZmZmZmZjBmMGYwZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1XCIsXCJmZmZmZmZmMGYwZjBkOWQ5ZDliZGJkYmQ5Njk2OTY3MzczNzM1MjUyNTIyNTI1MjUwMDAwMDBcIikubWFwKGZmKSxKeT1jZihReSksS3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImVmZWRmNWJjYmRkYzc1NmJiMVwiLFwiZjJmMGY3Y2JjOWUyOWU5YWM4NmE1MWEzXCIsXCJmMmYwZjdjYmM5ZTI5ZTlhYzg3NTZiYjE1NDI3OGZcIixcImYyZjBmN2RhZGFlYmJjYmRkYzllOWFjODc1NmJiMTU0Mjc4ZlwiLFwiZjJmMGY3ZGFkYWViYmNiZGRjOWU5YWM4ODA3ZGJhNmE1MWEzNGExNDg2XCIsXCJmY2ZiZmRlZmVkZjVkYWRhZWJiY2JkZGM5ZTlhYzg4MDdkYmE2YTUxYTM0YTE0ODZcIixcImZjZmJmZGVmZWRmNWRhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzU0Mjc4ZjNmMDA3ZFwiKS5tYXAoZmYpLHRfPWNmKEt5KSxuXz1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmVlMGQyZmM5MjcyZGUyZDI2XCIsXCJmZWU1ZDlmY2FlOTFmYjZhNGFjYjE4MWRcIixcImZlZTVkOWZjYWU5MWZiNmE0YWRlMmQyNmE1MGYxNVwiLFwiZmVlNWQ5ZmNiYmExZmM5MjcyZmI2YTRhZGUyZDI2YTUwZjE1XCIsXCJmZWU1ZDlmY2JiYTFmYzkyNzJmYjZhNGFlZjNiMmNjYjE4MWQ5OTAwMGRcIixcImZmZjVmMGZlZTBkMmZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZFwiLFwiZmZmNWYwZmVlMGQyZmNiYmExZmM5MjcyZmI2YTRhZWYzYjJjY2IxODFkYTUwZjE1NjcwMDBkXCIpLm1hcChmZiksZV89Y2Yobl8pLHJfPW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZWU2Y2VmZGFlNmJlNjU1MGRcIixcImZlZWRkZWZkYmU4NWZkOGQzY2Q5NDcwMVwiLFwiZmVlZGRlZmRiZTg1ZmQ4ZDNjZTY1NTBkYTYzNjAzXCIsXCJmZWVkZGVmZGQwYTJmZGFlNmJmZDhkM2NlNjU1MGRhNjM2MDNcIixcImZlZWRkZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMThjMmQwNFwiLFwiZmZmNWViZmVlNmNlZmRkMGEyZmRhZTZiZmQ4ZDNjZjE2OTEzZDk0ODAxOGMyZDA0XCIsXCJmZmY1ZWJmZWU2Y2VmZGQwYTJmZGFlNmJmZDhkM2NmMTY5MTNkOTQ4MDFhNjM2MDM3ZjI3MDRcIikubWFwKGZmKSxpXz1jZihyXyksb189eGwoWnQoMzAwLC41LDApLFp0KC0yNDAsLjUsMSkpLGFfPXhsKFp0KC0xMDAsLjc1LC4zNSksWnQoODAsMS41LC44KSksdV89eGwoWnQoMjYwLC43NSwuMzUpLFp0KDgwLDEuNSwuOCkpLGZfPVp0KCksY189UnQoKSxzXz1NYXRoLlBJLzMsbF89MipNYXRoLlBJLzMsaF89c2YoZmYoXCI0NDAxNTQ0NDAyNTY0NTA0NTc0NTA1NTk0NjA3NWE0NjA4NWM0NjBhNWQ0NjBiNWU0NzBkNjA0NzBlNjE0NzEwNjM0NzExNjQ0NzEzNjU0ODE0Njc0ODE2Njg0ODE3Njk0ODE4NmE0ODFhNmM0ODFiNmQ0ODFjNmU0ODFkNmY0ODFmNzA0ODIwNzE0ODIxNzM0ODIzNzQ0ODI0NzU0ODI1NzY0ODI2Nzc0ODI4Nzg0ODI5Nzk0NzJhN2E0NzJjN2E0NzJkN2I0NzJlN2M0NzJmN2Q0NjMwN2U0NjMyN2U0NjMzN2Y0NjM0ODA0NTM1ODE0NTM3ODE0NTM4ODI0NDM5ODM0NDNhODM0NDNiODQ0MzNkODQ0MzNlODU0MjNmODU0MjQwODY0MjQxODY0MTQyODc0MTQ0ODc0MDQ1ODg0MDQ2ODgzZjQ3ODgzZjQ4ODkzZTQ5ODkzZTRhODkzZTRjOGEzZDRkOGEzZDRlOGEzYzRmOGEzYzUwOGIzYjUxOGIzYjUyOGIzYTUzOGIzYTU0OGMzOTU1OGMzOTU2OGMzODU4OGMzODU5OGMzNzVhOGMzNzViOGQzNjVjOGQzNjVkOGQzNTVlOGQzNTVmOGQzNDYwOGQzNDYxOGQzMzYyOGQzMzYzOGQzMjY0OGUzMjY1OGUzMTY2OGUzMTY3OGUzMTY4OGUzMDY5OGUzMDZhOGUyZjZiOGUyZjZjOGUyZTZkOGUyZTZlOGUyZTZmOGUyZDcwOGUyZDcxOGUyYzcxOGUyYzcyOGUyYzczOGUyYjc0OGUyYjc1OGUyYTc2OGUyYTc3OGUyYTc4OGUyOTc5OGUyOTdhOGUyOTdiOGUyODdjOGUyODdkOGUyNzdlOGUyNzdmOGUyNzgwOGUyNjgxOGUyNjgyOGUyNjgyOGUyNTgzOGUyNTg0OGUyNTg1OGUyNDg2OGUyNDg3OGUyMzg4OGUyMzg5OGUyMzhhOGQyMjhiOGQyMjhjOGQyMjhkOGQyMThlOGQyMThmOGQyMTkwOGQyMTkxOGMyMDkyOGMyMDkyOGMyMDkzOGMxZjk0OGMxZjk1OGIxZjk2OGIxZjk3OGIxZjk4OGIxZjk5OGExZjlhOGExZTliOGExZTljODkxZTlkODkxZjllODkxZjlmODgxZmEwODgxZmExODgxZmExODcxZmEyODcyMGEzODYyMGE0ODYyMWE1ODUyMWE2ODUyMmE3ODUyMmE4ODQyM2E5ODMyNGFhODMyNWFiODIyNWFjODIyNmFkODEyN2FkODEyOGFlODAyOWFmN2YyYWIwN2YyY2IxN2UyZGIyN2QyZWIzN2MyZmI0N2MzMWI1N2IzMmI2N2EzNGI2NzkzNWI3NzkzN2I4NzgzOGI5NzczYWJhNzYzYmJiNzUzZGJjNzQzZmJjNzM0MGJkNzI0MmJlNzE0NGJmNzA0NmMwNmY0OGMxNmU0YWMxNmQ0Y2MyNmM0ZWMzNmI1MGM0NmE1MmM1Njk1NGM1Njg1NmM2Njc1OGM3NjU1YWM4NjQ1Y2M4NjM1ZWM5NjI2MGNhNjA2M2NiNWY2NWNiNWU2N2NjNWM2OWNkNWI2Y2NkNWE2ZWNlNTg3MGNmNTc3M2QwNTY3NWQwNTQ3N2QxNTM3YWQxNTE3Y2QyNTA3ZmQzNGU4MWQzNGQ4NGQ0NGI4NmQ1NDk4OWQ1NDg4YmQ2NDY4ZWQ2NDU5MGQ3NDM5M2Q3NDE5NWQ4NDA5OGQ4M2U5YmQ5M2M5ZGQ5M2JhMGRhMzlhMmRhMzdhNWRiMzZhOGRiMzRhYWRjMzJhZGRjMzBiMGRkMmZiMmRkMmRiNWRlMmJiOGRlMjliYWRlMjhiZGRmMjZjMGRmMjVjMmRmMjNjNWUwMjFjOGUwMjBjYWUxMWZjZGUxMWRkMGUxMWNkMmUyMWJkNWUyMWFkOGUyMTlkYWUzMTlkZGUzMThkZmUzMThlMmU0MThlNWU0MTllN2U0MTllYWU1MWFlY2U1MWJlZmU1MWNmMWU1MWRmNGU2MWVmNmU2MjBmOGU2MjFmYmU3MjNmZGU3MjVcIikpLGRfPXNmKGZmKFwiMDAwMDA0MDEwMDA1MDEwMTA2MDEwMTA4MDIwMTA5MDIwMjBiMDIwMjBkMDMwMzBmMDMwMzEyMDQwNDE0MDUwNDE2MDYwNTE4MDYwNTFhMDcwNjFjMDgwNzFlMDkwNzIwMGEwODIyMGIwOTI0MGMwOTI2MGQwYTI5MGUwYjJiMTAwYjJkMTEwYzJmMTIwZDMxMTMwZDM0MTQwZTM2MTUwZTM4MTYwZjNiMTgwZjNkMTkxMDNmMWExMDQyMWMxMDQ0MWQxMTQ3MWUxMTQ5MjAxMTRiMjExMTRlMjIxMTUwMjQxMjUzMjUxMjU1MjcxMjU4MjkxMTVhMmExMTVjMmMxMTVmMmQxMTYxMmYxMTYzMzExMTY1MzMxMDY3MzQxMDY5MzYxMDZiMzgxMDZjMzkwZjZlM2IwZjcwM2QwZjcxM2YwZjcyNDAwZjc0NDIwZjc1NDQwZjc2NDUxMDc3NDcxMDc4NDkxMDc4NGExMDc5NGMxMTdhNGUxMTdiNGYxMjdiNTExMjdjNTIxMzdjNTQxMzdkNTYxNDdkNTcxNTdlNTkxNTdlNWExNjdlNWMxNjdmNWQxNzdmNWYxODdmNjAxODgwNjIxOTgwNjQxYTgwNjUxYTgwNjcxYjgwNjgxYzgxNmExYzgxNmIxZDgxNmQxZDgxNmUxZTgxNzAxZjgxNzIxZjgxNzMyMDgxNzUyMTgxNzYyMTgxNzgyMjgxNzkyMjgyN2IyMzgyN2MyMzgyN2UyNDgyODAyNTgyODEyNTgxODMyNjgxODQyNjgxODYyNzgxODgyNzgxODkyODgxOGIyOTgxOGMyOTgxOGUyYTgxOTAyYTgxOTEyYjgxOTMyYjgwOTQyYzgwOTYyYzgwOTgyZDgwOTkyZDgwOWIyZTdmOWMyZTdmOWUyZjdmYTAyZjdmYTEzMDdlYTMzMDdlYTUzMTdlYTYzMTdkYTgzMjdkYWEzMzdkYWIzMzdjYWQzNDdjYWUzNDdiYjAzNTdiYjIzNTdiYjMzNjdhYjUzNjdhYjczNzc5YjgzNzc5YmEzODc4YmMzOTc4YmQzOTc3YmYzYTc3YzAzYTc2YzIzYjc1YzQzYzc1YzUzYzc0YzczZDczYzgzZTczY2EzZTcyY2MzZjcxY2Q0MDcxY2Y0MDcwZDA0MTZmZDI0MjZmZDM0MzZlZDU0NDZkZDY0NTZjZDg0NTZjZDk0NjZiZGI0NzZhZGM0ODY5ZGU0OTY4ZGY0YTY4ZTA0YzY3ZTI0ZDY2ZTM0ZTY1ZTQ0ZjY0ZTU1MDY0ZTc1MjYzZTg1MzYyZTk1NDYyZWE1NjYxZWI1NzYwZWM1ODYwZWQ1YTVmZWU1YjVlZWY1ZDVlZjA1ZjVlZjE2MDVkZjI2MjVkZjI2NDVjZjM2NTVjZjQ2NzVjZjQ2OTVjZjU2YjVjZjY2YzVjZjY2ZTVjZjc3MDVjZjc3MjVjZjg3NDVjZjg3NjVjZjk3ODVkZjk3OTVkZjk3YjVkZmE3ZDVlZmE3ZjVlZmE4MTVmZmI4MzVmZmI4NTYwZmI4NzYxZmM4OTYxZmM4YTYyZmM4YzYzZmM4ZTY0ZmM5MDY1ZmQ5MjY2ZmQ5NDY3ZmQ5NjY4ZmQ5ODY5ZmQ5YTZhZmQ5YjZiZmU5ZDZjZmU5ZjZkZmVhMTZlZmVhMzZmZmVhNTcxZmVhNzcyZmVhOTczZmVhYTc0ZmVhYzc2ZmVhZTc3ZmViMDc4ZmViMjdhZmViNDdiZmViNjdjZmViNzdlZmViOTdmZmViYjgxZmViZDgyZmViZjg0ZmVjMTg1ZmVjMjg3ZmVjNDg4ZmVjNjhhZmVjODhjZmVjYThkZmVjYzhmZmVjZDkwZmVjZjkyZmVkMTk0ZmVkMzk1ZmVkNTk3ZmVkNzk5ZmVkODlhZmRkYTljZmRkYzllZmRkZWEwZmRlMGExZmRlMmEzZmRlM2E1ZmRlNWE3ZmRlN2E5ZmRlOWFhZmRlYmFjZmNlY2FlZmNlZWIwZmNmMGIyZmNmMmI0ZmNmNGI2ZmNmNmI4ZmNmN2I5ZmNmOWJiZmNmYmJkZmNmZGJmXCIpKSxwXz1zZihmZihcIjAwMDAwNDAxMDAwNTAxMDEwNjAxMDEwODAyMDEwYTAyMDIwYzAyMDIwZTAzMDIxMDA0MDMxMjA0MDMxNDA1MDQxNzA2MDQxOTA3MDUxYjA4MDUxZDA5MDYxZjBhMDcyMjBiMDcyNDBjMDgyNjBkMDgyOTBlMDkyYjEwMDkyZDExMGEzMDEyMGEzMjE0MGIzNDE1MGIzNzE2MGIzOTE4MGMzYzE5MGMzZTFiMGM0MTFjMGM0MzFlMGM0NTFmMGM0ODIxMGM0YTIzMGM0YzI0MGM0ZjI2MGM1MTI4MGI1MzI5MGI1NTJiMGI1NzJkMGI1OTJmMGE1YjMxMGE1YzMyMGE1ZTM0MGE1ZjM2MDk2MTM4MDk2MjM5MDk2MzNiMDk2NDNkMDk2NTNlMDk2NjQwMGE2NzQyMGE2ODQ0MGE2ODQ1MGE2OTQ3MGI2YTQ5MGI2YTRhMGM2YjRjMGM2YjRkMGQ2YzRmMGQ2YzUxMGU2YzUyMGU2ZDU0MGY2ZDU1MGY2ZDU3MTA2ZTU5MTA2ZTVhMTE2ZTVjMTI2ZTVkMTI2ZTVmMTM2ZTYxMTM2ZTYyMTQ2ZTY0MTU2ZTY1MTU2ZTY3MTY2ZTY5MTY2ZTZhMTc2ZTZjMTg2ZTZkMTg2ZTZmMTk2ZTcxMTk2ZTcyMWE2ZTc0MWE2ZTc1MWI2ZTc3MWM2ZDc4MWM2ZDdhMWQ2ZDdjMWQ2ZDdkMWU2ZDdmMWU2YzgwMWY2YzgyMjA2Yzg0MjA2Yjg1MjE2Yjg3MjE2Yjg4MjI2YThhMjI2YThjMjM2OThkMjM2OThmMjQ2OTkwMjU2ODkyMjU2ODkzMjY2Nzk1MjY2Nzk3Mjc2Njk4Mjc2NjlhMjg2NTliMjk2NDlkMjk2NDlmMmE2M2EwMmE2M2EyMmI2MmEzMmM2MWE1MmM2MGE2MmQ2MGE4MmU1ZmE5MmU1ZWFiMmY1ZWFkMzA1ZGFlMzA1Y2IwMzE1YmIxMzI1YWIzMzI1YWI0MzM1OWI2MzQ1OGI3MzU1N2I5MzU1NmJhMzY1NWJjMzc1NGJkMzg1M2JmMzk1MmMwM2E1MWMxM2E1MGMzM2I0ZmM0M2M0ZWM2M2Q0ZGM3M2U0Y2M4M2Y0YmNhNDA0YWNiNDE0OWNjNDI0OGNlNDM0N2NmNDQ0NmQwNDU0NWQyNDY0NGQzNDc0M2Q0NDg0MmQ1NGE0MWQ3NGIzZmQ4NGMzZWQ5NGQzZGRhNGUzY2RiNTAzYmRkNTEzYWRlNTIzOGRmNTMzN2UwNTUzNmUxNTYzNWUyNTczNGUzNTkzM2U0NWEzMWU1NWMzMGU2NWQyZmU3NWUyZWU4NjAyZGU5NjEyYmVhNjMyYWViNjQyOWViNjYyOGVjNjcyNmVkNjkyNWVlNmEyNGVmNmMyM2VmNmUyMWYwNmYyMGYxNzExZmYxNzMxZGYyNzQxY2YzNzYxYmYzNzgxOWY0NzkxOGY1N2IxN2Y1N2QxNWY2N2UxNGY2ODAxM2Y3ODIxMmY3ODQxMGY4ODUwZmY4ODcwZWY4ODkwY2Y5OGIwYmY5OGMwYWY5OGUwOWZhOTAwOGZhOTIwN2ZhOTQwN2ZiOTYwNmZiOTcwNmZiOTkwNmZiOWIwNmZiOWQwN2ZjOWYwN2ZjYTEwOGZjYTMwOWZjYTUwYWZjYTYwY2ZjYTgwZGZjYWEwZmZjYWMxMWZjYWUxMmZjYjAxNGZjYjIxNmZjYjQxOGZiYjYxYWZiYjgxZGZiYmExZmZiYmMyMWZiYmUyM2ZhYzAyNmZhYzIyOGZhYzQyYWZhYzYyZGY5YzcyZmY5YzkzMmY5Y2IzNWY4Y2QzN2Y4Y2YzYWY3ZDEzZGY3ZDM0MGY2ZDU0M2Y2ZDc0NmY1ZDk0OWY1ZGI0Y2Y0ZGQ0ZmY0ZGY1M2Y0ZTE1NmYzZTM1YWYzZTU1ZGYyZTY2MWYyZTg2NWYyZWE2OWYxZWM2ZGYxZWQ3MWYxZWY3NWYxZjE3OWYyZjI3ZGYyZjQ4MmYzZjU4NmYzZjY4YWY0Zjg4ZWY1Zjk5MmY2ZmE5NmY4ZmI5YWY5ZmM5ZGZhZmRhMWZjZmZhNFwiKSksdl89c2YoZmYoXCIwZDA4ODcxMDA3ODgxMzA3ODkxNjA3OGExOTA2OGMxYjA2OGQxZDA2OGUyMDA2OGYyMjA2OTAyNDA2OTEyNjA1OTEyODA1OTIyYTA1OTMyYzA1OTQyZTA1OTUyZjA1OTYzMTA1OTczMzA1OTczNTA0OTgzNzA0OTkzODA0OWEzYTA0OWEzYzA0OWIzZTA0OWMzZjA0OWM0MTA0OWQ0MzAzOWU0NDAzOWU0NjAzOWY0ODAzOWY0OTAzYTA0YjAzYTE0YzAyYTE0ZTAyYTI1MDAyYTI1MTAyYTM1MzAyYTM1NTAyYTQ1NjAxYTQ1ODAxYTQ1OTAxYTU1YjAxYTU1YzAxYTY1ZTAxYTY2MDAxYTY2MTAwYTc2MzAwYTc2NDAwYTc2NjAwYTc2NzAwYTg2OTAwYTg2YTAwYTg2YzAwYTg2ZTAwYTg2ZjAwYTg3MTAwYTg3MjAxYTg3NDAxYTg3NTAxYTg3NzAxYTg3ODAxYTg3YTAyYTg3YjAyYTg3ZDAzYTg3ZTAzYTg4MDA0YTg4MTA0YTc4MzA1YTc4NDA1YTc4NjA2YTY4NzA3YTY4ODA4YTY4YTA5YTU4YjBhYTU4ZDBiYTU4ZTBjYTQ4ZjBkYTQ5MTBlYTM5MjBmYTM5NDEwYTI5NTExYTE5NjEzYTE5ODE0YTA5OTE1OWY5YTE2OWY5YzE3OWU5ZDE4OWQ5ZTE5OWRhMDFhOWNhMTFiOWJhMjFkOWFhMzFlOWFhNTFmOTlhNjIwOThhNzIxOTdhODIyOTZhYTIzOTVhYjI0OTRhYzI2OTRhZDI3OTNhZTI4OTJiMDI5OTFiMTJhOTBiMjJiOGZiMzJjOGViNDJlOGRiNTJmOGNiNjMwOGJiNzMxOGFiODMyODliYTMzODhiYjM0ODhiYzM1ODdiZDM3ODZiZTM4ODViZjM5ODRjMDNhODNjMTNiODJjMjNjODFjMzNkODBjNDNlN2ZjNTQwN2VjNjQxN2RjNzQyN2NjODQzN2JjOTQ0N2FjYTQ1N2FjYjQ2NzljYzQ3NzhjYzQ5NzdjZDRhNzZjZTRiNzVjZjRjNzRkMDRkNzNkMTRlNzJkMjRmNzFkMzUxNzFkNDUyNzBkNTUzNmZkNTU0NmVkNjU1NmRkNzU2NmNkODU3NmJkOTU4NmFkYTVhNmFkYTViNjlkYjVjNjhkYzVkNjdkZDVlNjZkZTVmNjVkZTYxNjRkZjYyNjNlMDYzNjNlMTY0NjJlMjY1NjFlMjY2NjBlMzY4NWZlNDY5NWVlNTZhNWRlNTZiNWRlNjZjNWNlNzZlNWJlNzZmNWFlODcwNTllOTcxNThlOTcyNTdlYTc0NTdlYjc1NTZlYjc2NTVlYzc3NTRlZDc5NTNlZDdhNTJlZTdiNTFlZjdjNTFlZjdlNTBmMDdmNGZmMDgwNGVmMTgxNGRmMTgzNGNmMjg0NGJmMzg1NGJmMzg3NGFmNDg4NDlmNDg5NDhmNThiNDdmNThjNDZmNjhkNDVmNjhmNDRmNzkwNDRmNzkxNDNmNzkzNDJmODk0NDFmODk1NDBmOTk3M2ZmOTk4M2VmOTlhM2VmYTliM2RmYTljM2NmYTllM2JmYjlmM2FmYmExMzlmYmEyMzhmY2EzMzhmY2E1MzdmY2E2MzZmY2E4MzVmY2E5MzRmZGFiMzNmZGFjMzNmZGFlMzJmZGFmMzFmZGIxMzBmZGIyMmZmZGI0MmZmZGI1MmVmZWI3MmRmZWI4MmNmZWJhMmNmZWJiMmJmZWJkMmFmZWJlMmFmZWMwMjlmZGMyMjlmZGMzMjhmZGM1MjdmZGM2MjdmZGM4MjdmZGNhMjZmZGNiMjZmY2NkMjVmY2NlMjVmY2QwMjVmY2QyMjVmYmQzMjRmYmQ1MjRmYmQ3MjRmYWQ4MjRmYWRhMjRmOWRjMjRmOWRkMjVmOGRmMjVmOGUxMjVmN2UyMjVmN2U0MjVmNmU2MjZmNmU4MjZmNWU5MjZmNWViMjdmNGVkMjdmM2VlMjdmM2YwMjdmMmYyMjdmMWY0MjZmMWY1MjVmMGY3MjRmMGY5MjFcIikpLGdfPU1hdGguYWJzLHlfPU1hdGguYXRhbjIsX189TWF0aC5jb3MsYl89TWF0aC5tYXgsbV89TWF0aC5taW4seF89TWF0aC5zaW4sd189TWF0aC5zcXJ0LE1fPTFlLTEyLEFfPU1hdGguUEksVF89QV8vMixOXz0yKkFfO2JmLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbik7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDp0aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pfX19O3ZhciBTXz1FZihtZik7U2YucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5hcmVhU3RhcnQoKX0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmFyZWFFbmQoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5saW5lRW5kKCl9LHBvaW50OmZ1bmN0aW9uKHQsbil7dGhpcy5fY3VydmUucG9pbnQobipNYXRoLnNpbih0KSxuKi1NYXRoLmNvcyh0KSl9fTt2YXIgRV89QXJyYXkucHJvdG90eXBlLnNsaWNlLGtfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KG4vQV8pO3QubW92ZVRvKGUsMCksdC5hcmMoMCwwLGUsMCxOXyl9fSxDXz17ZHJhdzpmdW5jdGlvbih0LG4pe3ZhciBlPU1hdGguc3FydChuLzUpLzI7dC5tb3ZlVG8oLTMqZSwtZSksdC5saW5lVG8oLWUsLWUpLHQubGluZVRvKC1lLC0zKmUpLHQubGluZVRvKGUsLTMqZSksdC5saW5lVG8oZSwtZSksdC5saW5lVG8oMyplLC1lKSx0LmxpbmVUbygzKmUsZSksdC5saW5lVG8oZSxlKSx0LmxpbmVUbyhlLDMqZSksdC5saW5lVG8oLWUsMyplKSx0LmxpbmVUbygtZSxlKSx0LmxpbmVUbygtMyplLGUpLHQuY2xvc2VQYXRoKCl9fSxQXz1NYXRoLnNxcnQoMS8zKSx6Xz0yKlBfLFJfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KG4vel8pLHI9ZSpQXzt0Lm1vdmVUbygwLC1lKSx0LmxpbmVUbyhyLDApLHQubGluZVRvKDAsZSksdC5saW5lVG8oLXIsMCksdC5jbG9zZVBhdGgoKX19LExfPU1hdGguc2luKEFfLzEwKS9NYXRoLnNpbig3KkFfLzEwKSxEXz1NYXRoLnNpbihOXy8xMCkqTF8sVV89LU1hdGguY29zKE5fLzEwKSpMXyxxXz17ZHJhdzpmdW5jdGlvbih0LG4pe3ZhciBlPU1hdGguc3FydCguODkwODEzMDkxNTI5Mjg1MipuKSxyPURfKmUsaT1VXyplO3QubW92ZVRvKDAsLWUpLHQubGluZVRvKHIsaSk7Zm9yKHZhciBvPTE7bzw1Oysrbyl7dmFyIGE9Tl8qby81LHU9TWF0aC5jb3MoYSksZj1NYXRoLnNpbihhKTt0LmxpbmVUbyhmKmUsLXUqZSksdC5saW5lVG8odSpyLWYqaSxmKnIrdSppKX10LmNsb3NlUGF0aCgpfX0sT189e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQobikscj0tZS8yO3QucmVjdChyLHIsZSxlKX19LFlfPU1hdGguc3FydCgzKSxCXz17ZHJhdzpmdW5jdGlvbih0LG4pe3ZhciBlPS1NYXRoLnNxcnQobi8oMypZXykpO3QubW92ZVRvKDAsMiplKSx0LmxpbmVUbygtWV8qZSwtZSksdC5saW5lVG8oWV8qZSwtZSksdC5jbG9zZVBhdGgoKX19LEZfPU1hdGguc3FydCgzKS8yLElfPTEvTWF0aC5zcXJ0KDEyKSxqXz0zKihJXy8yKzEpLEhfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KG4val8pLHI9ZS8yLGk9ZSpJXyxvPXIsYT1lKklfK2UsdT0tbyxmPWE7dC5tb3ZlVG8ocixpKSx0LmxpbmVUbyhvLGEpLHQubGluZVRvKHUsZiksdC5saW5lVG8oLS41KnItRl8qaSxGXypyKy0uNSppKSx0LmxpbmVUbygtLjUqby1GXyphLEZfKm8rLS41KmEpLHQubGluZVRvKC0uNSp1LUZfKmYsRl8qdSstLjUqZiksdC5saW5lVG8oLS41KnIrRl8qaSwtLjUqaS1GXypyKSx0LmxpbmVUbygtLjUqbytGXyphLC0uNSphLUZfKm8pLHQubGluZVRvKC0uNSp1K0ZfKmYsLS41KmYtRl8qdSksdC5jbG9zZVBhdGgoKX19LFhfPVtrXyxDXyxSXyxPXyxxXyxCXyxIX107RmYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMzpCZih0aGlzLHRoaXMuX3gxLHRoaXMuX3kxKTtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDEsdGhpcy5feTEpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl9jb250ZXh0LmxpbmVUbygoNSp0aGlzLl94MCt0aGlzLl94MSkvNiwoNSp0aGlzLl95MCt0aGlzLl95MSkvNik7ZGVmYXVsdDpCZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1ufX0sSWYucHJvdG90eXBlPXthcmVhU3RhcnQ6WWYsYXJlYUVuZDpZZixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0Lm1vdmVUbygodGhpcy5feDIrMip0aGlzLl94MykvMywodGhpcy5feTIrMip0aGlzLl95MykvMyksdGhpcy5fY29udGV4dC5saW5lVG8oKHRoaXMuX3gzKzIqdGhpcy5feDIpLzMsKHRoaXMuX3kzKzIqdGhpcy5feTIpLzMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAzOnRoaXMucG9pbnQodGhpcy5feDIsdGhpcy5feTIpLHRoaXMucG9pbnQodGhpcy5feDMsdGhpcy5feTMpLHRoaXMucG9pbnQodGhpcy5feDQsdGhpcy5feTQpfX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mj10LHRoaXMuX3kyPW47YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5feDM9dCx0aGlzLl95Mz1uO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g0PXQsdGhpcy5feTQ9bix0aGlzLl9jb250ZXh0Lm1vdmVUbygodGhpcy5feDArNCp0aGlzLl94MSt0KS82LCh0aGlzLl95MCs0KnRoaXMuX3kxK24pLzYpO2JyZWFrO2RlZmF1bHQ6QmYodGhpcyx0LG4pfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9bn19LGpmLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3kwPXRoaXMuX3kxPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYzPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO3ZhciBlPSh0aGlzLl94MCs0KnRoaXMuX3gxK3QpLzYscj0odGhpcy5feTArNCp0aGlzLl95MStuKS82O3RoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8oZSxyKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyhlLHIpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6QmYodGhpcyx0LG4pfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9bn19LEhmLnByb3RvdHlwZT17bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feD1bXSx0aGlzLl95PVtdLHRoaXMuX2Jhc2lzLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5feCxuPXRoaXMuX3ksZT10Lmxlbmd0aC0xO2lmKGU+MClmb3IodmFyIHIsaT10WzBdLG89blswXSxhPXRbZV0taSx1PW5bZV0tbyxmPS0xOysrZjw9ZTspcj1mL2UsdGhpcy5fYmFzaXMucG9pbnQodGhpcy5fYmV0YSp0W2ZdKygxLXRoaXMuX2JldGEpKihpK3IqYSksdGhpcy5fYmV0YSpuW2ZdKygxLXRoaXMuX2JldGEpKihvK3IqdSkpO3RoaXMuX3g9dGhpcy5feT1udWxsLHRoaXMuX2Jhc2lzLmxpbmVFbmQoKX0scG9pbnQ6ZnVuY3Rpb24odCxuKXt0aGlzLl94LnB1c2goK3QpLHRoaXMuX3kucHVzaCgrbil9fTt2YXIgR189ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiAxPT09bj9uZXcgRmYodCk6bmV3IEhmKHQsbil9cmV0dXJuIGUuYmV0YT1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KC44NSk7R2YucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWs7Y2FzZSAzOlhmKHRoaXMsdGhpcy5feDEsdGhpcy5feTEpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl94MT10LHRoaXMuX3kxPW47YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7ZGVmYXVsdDpYZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyIFZfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbmV3IEdmKHQsbil9cmV0dXJuIGUudGVuc2lvbj1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KDApO1ZmLnByb3RvdHlwZT17YXJlYVN0YXJ0OllmLGFyZWFFbmQ6WWYsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feDM9dGhpcy5feDQ9dGhpcy5feDU9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9dGhpcy5feTM9dGhpcy5feTQ9dGhpcy5feTU9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAzOnRoaXMucG9pbnQodGhpcy5feDMsdGhpcy5feTMpLHRoaXMucG9pbnQodGhpcy5feDQsdGhpcy5feTQpLHRoaXMucG9pbnQodGhpcy5feDUsdGhpcy5feTUpfX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mz10LHRoaXMuX3kzPW47YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDQ9dCx0aGlzLl95ND1uKTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94NT10LHRoaXMuX3k1PW47YnJlYWs7ZGVmYXVsdDpYZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyICRfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbmV3IFZmKHQsbil9cmV0dXJuIGUudGVuc2lvbj1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KDApOyRmLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYzPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0OlhmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgV189ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuZXcgJGYodCxuKX1yZXR1cm4gZS50ZW5zaW9uPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oMCk7WmYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWs7Y2FzZSAzOnRoaXMucG9pbnQodGhpcy5feDIsdGhpcy5feTIpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtpZih0PSt0LG49K24sdGhpcy5fcG9pbnQpe3ZhciBlPXRoaXMuX3gyLXQscj10aGlzLl95Mi1uO3RoaXMuX2wyM19hPU1hdGguc3FydCh0aGlzLl9sMjNfMmE9TWF0aC5wb3coZSplK3Iqcix0aGlzLl9hbHBoYSkpfXN3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbik7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7ZGVmYXVsdDpXZih0aGlzLHQsbil9dGhpcy5fbDAxX2E9dGhpcy5fbDEyX2EsdGhpcy5fbDEyX2E9dGhpcy5fbDIzX2EsdGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYSx0aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhLHRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9bn19O3ZhciBaXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIG4/bmV3IFpmKHQsbik6bmV3IEdmKHQsMCl9cmV0dXJuIGUuYWxwaGE9ZnVuY3Rpb24obil7cmV0dXJuIHQoK24pfSxlfSguNSk7UWYucHJvdG90eXBlPXthcmVhU3RhcnQ6WWYsYXJlYUVuZDpZZixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl94NT10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND10aGlzLl95NT1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCksdGhpcy5wb2ludCh0aGlzLl94NSx0aGlzLl95NSl9fSxwb2ludDpmdW5jdGlvbih0LG4pe2lmKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7dmFyIGU9dGhpcy5feDItdCxyPXRoaXMuX3kyLW47dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhlKmUrcipyLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mz10LHRoaXMuX3kzPW47YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDQ9dCx0aGlzLl95ND1uKTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94NT10LHRoaXMuX3k1PW47YnJlYWs7ZGVmYXVsdDpXZih0aGlzLHQsbil9dGhpcy5fbDAxX2E9dGhpcy5fbDEyX2EsdGhpcy5fbDEyX2E9dGhpcy5fbDIzX2EsdGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYSx0aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhLHRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9bn19O3ZhciBRXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIG4/bmV3IFFmKHQsbik6bmV3IFZmKHQsMCl9cmV0dXJuIGUuYWxwaGE9ZnVuY3Rpb24obil7cmV0dXJuIHQoK24pfSxlfSguNSk7SmYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7aWYodD0rdCxuPStuLHRoaXMuX3BvaW50KXt2YXIgZT10aGlzLl94Mi10LHI9dGhpcy5feTItbjt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KGUqZStyKnIsdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0OldmKHRoaXMsdCxuKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyIEpfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbj9uZXcgSmYodCxuKTpuZXcgJGYodCwwKX1yZXR1cm4gZS5hbHBoYT1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KC41KTtLZi5wcm90b3R5cGU9e2FyZWFTdGFydDpZZixhcmVhRW5kOllmLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludCYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKX0scG9pbnQ6ZnVuY3Rpb24odCxuKXt0PSt0LG49K24sdGhpcy5fcG9pbnQ/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKToodGhpcy5fcG9pbnQ9MSx0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pKX19LGljLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3QwPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDEsdGhpcy5feTEpO2JyZWFrO2Nhc2UgMzpyYyh0aGlzLHRoaXMuX3QwLGVjKHRoaXMsdGhpcy5fdDApKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7dmFyIGU9TmFOO2lmKHQ9K3Qsbj0rbix0IT09dGhpcy5feDF8fG4hPT10aGlzLl95MSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MyxyYyh0aGlzLGVjKHRoaXMsZT1uYyh0aGlzLHQsbikpLGUpO2JyZWFrO2RlZmF1bHQ6cmModGhpcyx0aGlzLl90MCxlPW5jKHRoaXMsdCxuKSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1uLHRoaXMuX3QwPWV9fX0sKG9jLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGljLnByb3RvdHlwZSkpLnBvaW50PWZ1bmN0aW9uKHQsbil7aWMucHJvdG90eXBlLnBvaW50LmNhbGwodGhpcyxuLHQpfSxhYy5wcm90b3R5cGU9e21vdmVUbzpmdW5jdGlvbih0LG4pe3RoaXMuX2NvbnRleHQubW92ZVRvKG4sdCl9LGNsb3NlUGF0aDpmdW5jdGlvbigpe3RoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCl9LGxpbmVUbzpmdW5jdGlvbih0LG4pe3RoaXMuX2NvbnRleHQubGluZVRvKG4sdCl9LGJlemllckN1cnZlVG86ZnVuY3Rpb24odCxuLGUscixpLG8pe3RoaXMuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhuLHQscixlLG8saSl9fSx1Yy5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PVtdLHRoaXMuX3k9W119LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl94LG49dGhpcy5feSxlPXQubGVuZ3RoO2lmKGUpaWYodGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0WzBdLG5bMF0pOnRoaXMuX2NvbnRleHQubW92ZVRvKHRbMF0sblswXSksMj09PWUpdGhpcy5fY29udGV4dC5saW5lVG8odFsxXSxuWzFdKTtlbHNlIGZvcih2YXIgcj1mYyh0KSxpPWZjKG4pLG89MCxhPTE7YTxlOysrbywrK2EpdGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHJbMF1bb10saVswXVtvXSxyWzFdW29dLGlbMV1bb10sdFthXSxuW2FdKTsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT1lKSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSx0aGlzLl94PXRoaXMuX3k9bnVsbH0scG9pbnQ6ZnVuY3Rpb24odCxuKXt0aGlzLl94LnB1c2goK3QpLHRoaXMuX3kucHVzaCgrbil9fSxjYy5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PXRoaXMuX3k9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPHRoaXMuX3QmJnRoaXMuX3Q8MSYmMj09PXRoaXMuX3BvaW50JiZ0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94LHRoaXMuX3kpLCh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPj0wJiYodGhpcy5fdD0xLXRoaXMuX3QsdGhpcy5fbGluZT0xLXRoaXMuX2xpbmUpfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2RlZmF1bHQ6aWYodGhpcy5fdDw9MCl0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94LG4pLHRoaXMuX2NvbnRleHQubGluZVRvKHQsbik7ZWxzZXt2YXIgZT10aGlzLl94KigxLXRoaXMuX3QpK3QqdGhpcy5fdDt0aGlzLl9jb250ZXh0LmxpbmVUbyhlLHRoaXMuX3kpLHRoaXMuX2NvbnRleHQubGluZVRvKGUsbil9fXRoaXMuX3g9dCx0aGlzLl95PW59fSxfYy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOl9jLGluc2VydDpmdW5jdGlvbih0LG4pe3ZhciBlLHIsaTtpZih0KXtpZihuLlA9dCxuLk49dC5OLHQuTiYmKHQuTi5QPW4pLHQuTj1uLHQuUil7Zm9yKHQ9dC5SO3QuTDspdD10Lkw7dC5MPW59ZWxzZSB0LlI9bjtlPXR9ZWxzZSB0aGlzLl8/KHQ9d2ModGhpcy5fKSxuLlA9bnVsbCxuLk49dCx0LlA9dC5MPW4sZT10KToobi5QPW4uTj1udWxsLHRoaXMuXz1uLGU9bnVsbCk7Zm9yKG4uTD1uLlI9bnVsbCxuLlU9ZSxuLkM9ITAsdD1uO2UmJmUuQzspZT09PShyPWUuVSkuTD8oaT1yLlIpJiZpLkM/KGUuQz1pLkM9ITEsci5DPSEwLHQ9cik6KHQ9PT1lLlImJihtYyh0aGlzLGUpLGU9KHQ9ZSkuVSksZS5DPSExLHIuQz0hMCx4Yyh0aGlzLHIpKTooaT1yLkwpJiZpLkM/KGUuQz1pLkM9ITEsci5DPSEwLHQ9cik6KHQ9PT1lLkwmJih4Yyh0aGlzLGUpLGU9KHQ9ZSkuVSksZS5DPSExLHIuQz0hMCxtYyh0aGlzLHIpKSxlPXQuVTt0aGlzLl8uQz0hMX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3QuTiYmKHQuTi5QPXQuUCksdC5QJiYodC5QLk49dC5OKSx0Lk49dC5QPW51bGw7dmFyIG4sZSxyLGk9dC5VLG89dC5MLGE9dC5SO2lmKGU9bz9hP3djKGEpOm86YSxpP2kuTD09PXQ/aS5MPWU6aS5SPWU6dGhpcy5fPWUsbyYmYT8ocj1lLkMsZS5DPXQuQyxlLkw9byxvLlU9ZSxlIT09YT8oaT1lLlUsZS5VPXQuVSx0PWUuUixpLkw9dCxlLlI9YSxhLlU9ZSk6KGUuVT1pLGk9ZSx0PWUuUikpOihyPXQuQyx0PWUpLHQmJih0LlU9aSksIXIpaWYodCYmdC5DKXQuQz0hMTtlbHNle2Rve2lmKHQ9PT10aGlzLl8pYnJlYWs7aWYodD09PWkuTCl7aWYoKG49aS5SKS5DJiYobi5DPSExLGkuQz0hMCxtYyh0aGlzLGkpLG49aS5SKSxuLkwmJm4uTC5DfHxuLlImJm4uUi5DKXtuLlImJm4uUi5DfHwobi5MLkM9ITEsbi5DPSEwLHhjKHRoaXMsbiksbj1pLlIpLG4uQz1pLkMsaS5DPW4uUi5DPSExLG1jKHRoaXMsaSksdD10aGlzLl87YnJlYWt9fWVsc2UgaWYoKG49aS5MKS5DJiYobi5DPSExLGkuQz0hMCx4Yyh0aGlzLGkpLG49aS5MKSxuLkwmJm4uTC5DfHxuLlImJm4uUi5DKXtuLkwmJm4uTC5DfHwobi5SLkM9ITEsbi5DPSEwLG1jKHRoaXMsbiksbj1pLkwpLG4uQz1pLkMsaS5DPW4uTC5DPSExLHhjKHRoaXMsaSksdD10aGlzLl87YnJlYWt9bi5DPSEwLHQ9aSxpPWkuVX13aGlsZSghdC5DKTt0JiYodC5DPSExKX19fTt2YXIgS18sdGIsbmIsZWIscmIsaWI9W10sb2I9W10sYWI9MWUtNix1Yj0xZS0xMjtCYy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkJjLHBvbHlnb25zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lZGdlcztyZXR1cm4gdGhpcy5jZWxscy5tYXAoZnVuY3Rpb24obil7dmFyIGU9bi5oYWxmZWRnZXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBrYyhuLHRbZV0pfSk7cmV0dXJuIGUuZGF0YT1uLnNpdGUuZGF0YSxlfSl9LHRyaWFuZ2xlczpmdW5jdGlvbigpe3ZhciB0PVtdLG49dGhpcy5lZGdlcztyZXR1cm4gdGhpcy5jZWxscy5mb3JFYWNoKGZ1bmN0aW9uKGUscil7aWYobz0oaT1lLmhhbGZlZGdlcykubGVuZ3RoKWZvcih2YXIgaSxvLGEsdT1lLnNpdGUsZj0tMSxjPW5baVtvLTFdXSxzPWMubGVmdD09PXU/Yy5yaWdodDpjLmxlZnQ7KytmPG87KWE9cyxzPShjPW5baVtmXV0pLmxlZnQ9PT11P2MucmlnaHQ6Yy5sZWZ0LGEmJnMmJnI8YS5pbmRleCYmcjxzLmluZGV4JiZPYyh1LGEscyk8MCYmdC5wdXNoKFt1LmRhdGEsYS5kYXRhLHMuZGF0YV0pfSksdH0sbGlua3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGdlcy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQucmlnaHR9KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue3NvdXJjZTp0LmxlZnQuZGF0YSx0YXJnZXQ6dC5yaWdodC5kYXRhfX0pfSxmaW5kOmZ1bmN0aW9uKHQsbixlKXtmb3IodmFyIHIsaSxvPXRoaXMsYT1vLl9mb3VuZHx8MCx1PW8uY2VsbHMubGVuZ3RoOyEoaT1vLmNlbGxzW2FdKTspaWYoKythPj11KXJldHVybiBudWxsO3ZhciBmPXQtaS5zaXRlWzBdLGM9bi1pLnNpdGVbMV0scz1mKmYrYypjO2Rve2k9by5jZWxsc1tyPWFdLGE9bnVsbCxpLmhhbGZlZGdlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciByPW8uZWRnZXNbZV0sdT1yLmxlZnQ7aWYodSE9PWkuc2l0ZSYmdXx8KHU9ci5yaWdodCkpe3ZhciBmPXQtdVswXSxjPW4tdVsxXSxsPWYqZitjKmM7bDxzJiYocz1sLGE9dS5pbmRleCl9fSl9d2hpbGUobnVsbCE9PWEpO3JldHVybiBvLl9mb3VuZD1yLG51bGw9PWV8fHM8PWUqZT9pLnNpdGU6bnVsbH19LEljLnByb3RvdHlwZT17Y29uc3RydWN0b3I6SWMsc2NhbGU6ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10P3RoaXM6bmV3IEljKHRoaXMuayp0LHRoaXMueCx0aGlzLnkpfSx0cmFuc2xhdGU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gMD09PXQmMD09PW4/dGhpczpuZXcgSWModGhpcy5rLHRoaXMueCt0aGlzLmsqdCx0aGlzLnkrdGhpcy5rKm4pfSxhcHBseTpmdW5jdGlvbih0KXtyZXR1cm5bdFswXSp0aGlzLmsrdGhpcy54LHRbMV0qdGhpcy5rK3RoaXMueV19LGFwcGx5WDpmdW5jdGlvbih0KXtyZXR1cm4gdCp0aGlzLmsrdGhpcy54fSxhcHBseVk6ZnVuY3Rpb24odCl7cmV0dXJuIHQqdGhpcy5rK3RoaXMueX0saW52ZXJ0OmZ1bmN0aW9uKHQpe3JldHVyblsodFswXS10aGlzLngpL3RoaXMuaywodFsxXS10aGlzLnkpL3RoaXMua119LGludmVydFg6ZnVuY3Rpb24odCl7cmV0dXJuKHQtdGhpcy54KS90aGlzLmt9LGludmVydFk6ZnVuY3Rpb24odCl7cmV0dXJuKHQtdGhpcy55KS90aGlzLmt9LHJlc2NhbGVYOmZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkoKS5kb21haW4odC5yYW5nZSgpLm1hcCh0aGlzLmludmVydFgsdGhpcykubWFwKHQuaW52ZXJ0LHQpKX0scmVzY2FsZVk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weSgpLmRvbWFpbih0LnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WSx0aGlzKS5tYXAodC5pbnZlcnQsdCkpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVyblwidHJhbnNsYXRlKFwiK3RoaXMueCtcIixcIit0aGlzLnkrXCIpIHNjYWxlKFwiK3RoaXMuaytcIilcIn19O3ZhciBmYj1uZXcgSWMoMSwwLDApO2pjLnByb3RvdHlwZT1JYy5wcm90b3R5cGUsdC52ZXJzaW9uPVwiNS41LjBcIix0LmJpc2VjdD1LYyx0LmJpc2VjdFJpZ2h0PUtjLHQuYmlzZWN0TGVmdD10cyx0LmFzY2VuZGluZz1uLHQuYmlzZWN0b3I9ZSx0LmNyb3NzPWZ1bmN0aW9uKHQsbixlKXt2YXIgaSxvLGEsdSxmPXQubGVuZ3RoLGM9bi5sZW5ndGgscz1uZXcgQXJyYXkoZipjKTtmb3IobnVsbD09ZSYmKGU9ciksaT1hPTA7aTxmOysraSlmb3IodT10W2ldLG89MDtvPGM7KytvLCsrYSlzW2FdPWUodSxuW29dKTtyZXR1cm4gc30sdC5kZXNjZW5kaW5nPWZ1bmN0aW9uKHQsbil7cmV0dXJuIG48dD8tMTpuPnQ/MTpuPj10PzA6TmFOfSx0LmRldmlhdGlvbj1hLHQuZXh0ZW50PXUsdC5oaXN0b2dyYW09ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBpLG8sYT10Lmxlbmd0aCx1PW5ldyBBcnJheShhKTtmb3IoaT0wO2k8YTsrK2kpdVtpXT1uKHRbaV0saSx0KTt2YXIgZj1lKHUpLGM9ZlswXSxsPWZbMV0saD1yKHUsYyxsKTtBcnJheS5pc0FycmF5KGgpfHwoaD1kKGMsbCxoKSxoPXMoTWF0aC5jZWlsKGMvaCkqaCxNYXRoLmZsb29yKGwvaCkqaCxoKSk7Zm9yKHZhciBwPWgubGVuZ3RoO2hbMF08PWM7KWguc2hpZnQoKSwtLXA7Zm9yKDtoW3AtMV0+bDspaC5wb3AoKSwtLXA7dmFyIHYsZz1uZXcgQXJyYXkocCsxKTtmb3IoaT0wO2k8PXA7KytpKSh2PWdbaV09W10pLngwPWk+MD9oW2ktMV06Yyx2LngxPWk8cD9oW2ldOmw7Zm9yKGk9MDtpPGE7KytpKWM8PShvPXVbaV0pJiZvPD1sJiZnW0tjKGgsbywwLHApXS5wdXNoKHRbaV0pO3JldHVybiBnfXZhciBuPWMsZT11LHI9cDtyZXR1cm4gdC52YWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6ZihlKSx0KTpufSx0LmRvbWFpbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246ZihbblswXSxuWzFdXSksdCk6ZX0sdC50aHJlc2hvbGRzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpBcnJheS5pc0FycmF5KG4pP2YoZXMuY2FsbChuKSk6ZihuKSx0KTpyfSx0fSx0LnRocmVzaG9sZEZyZWVkbWFuRGlhY29uaXM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PXJzLmNhbGwodCxpKS5zb3J0KG4pLE1hdGguY2VpbCgoci1lKS8oMioodih0LC43NSktdih0LC4yNSkpKk1hdGgucG93KHQubGVuZ3RoLC0xLzMpKSl9LHQudGhyZXNob2xkU2NvdHQ9ZnVuY3Rpb24odCxuLGUpe3JldHVybiBNYXRoLmNlaWwoKGUtbikvKDMuNSphKHQpKk1hdGgucG93KHQubGVuZ3RoLC0xLzMpKSl9LHQudGhyZXNob2xkU3R1cmdlcz1wLHQubWF4PWcsdC5tZWFuPWZ1bmN0aW9uKHQsbil7dmFyIGUscj10Lmxlbmd0aCxvPXIsYT0tMSx1PTA7aWYobnVsbD09bilmb3IoOysrYTxyOylpc05hTihlPWkodFthXSkpPy0tbzp1Kz1lO2Vsc2UgZm9yKDsrK2E8cjspaXNOYU4oZT1pKG4odFthXSxhLHQpKSk/LS1vOnUrPWU7aWYobylyZXR1cm4gdS9vfSx0Lm1lZGlhbj1mdW5jdGlvbih0LGUpe3ZhciByLG89dC5sZW5ndGgsYT0tMSx1PVtdO2lmKG51bGw9PWUpZm9yKDsrK2E8bzspaXNOYU4ocj1pKHRbYV0pKXx8dS5wdXNoKHIpO2Vsc2UgZm9yKDsrK2E8bzspaXNOYU4ocj1pKGUodFthXSxhLHQpKSl8fHUucHVzaChyKTtyZXR1cm4gdih1LnNvcnQobiksLjUpfSx0Lm1lcmdlPXksdC5taW49Xyx0LnBhaXJzPWZ1bmN0aW9uKHQsbil7bnVsbD09biYmKG49cik7Zm9yKHZhciBlPTAsaT10Lmxlbmd0aC0xLG89dFswXSxhPW5ldyBBcnJheShpPDA/MDppKTtlPGk7KWFbZV09bihvLG89dFsrK2VdKTtyZXR1cm4gYX0sdC5wZXJtdXRlPWZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGUpO2UtLTspcltlXT10W25bZV1dO3JldHVybiByfSx0LnF1YW50aWxlPXYsdC5yYW5nZT1zLHQuc2Nhbj1mdW5jdGlvbih0LGUpe2lmKHI9dC5sZW5ndGgpe3ZhciByLGksbz0wLGE9MCx1PXRbYV07Zm9yKG51bGw9PWUmJihlPW4pOysrbzxyOykoZShpPXRbb10sdSk8MHx8MCE9PWUodSx1KSkmJih1PWksYT1vKTtyZXR1cm4gMD09PWUodSx1KT9hOnZvaWQgMH19LHQuc2h1ZmZsZT1mdW5jdGlvbih0LG4sZSl7Zm9yKHZhciByLGksbz0obnVsbD09ZT90Lmxlbmd0aDplKS0obj1udWxsPT1uPzA6K24pO287KWk9TWF0aC5yYW5kb20oKSpvLS18MCxyPXRbbytuXSx0W28rbl09dFtpK25dLHRbaStuXT1yO3JldHVybiB0fSx0LnN1bT1mdW5jdGlvbih0LG4pe3ZhciBlLHI9dC5sZW5ndGgsaT0tMSxvPTA7aWYobnVsbD09bilmb3IoOysraTxyOykoZT0rdFtpXSkmJihvKz1lKTtlbHNlIGZvcig7KytpPHI7KShlPStuKHRbaV0saSx0KSkmJihvKz1lKTtyZXR1cm4gb30sdC50aWNrcz1sLHQudGlja0luY3JlbWVudD1oLHQudGlja1N0ZXA9ZCx0LnRyYW5zcG9zZT1iLHQudmFyaWFuY2U9byx0LnppcD1mdW5jdGlvbigpe3JldHVybiBiKGFyZ3VtZW50cyl9LHQuYXhpc1RvcD1mdW5jdGlvbih0KXtyZXR1cm4gVChmcyx0KX0sdC5heGlzUmlnaHQ9ZnVuY3Rpb24odCl7cmV0dXJuIFQoY3MsdCl9LHQuYXhpc0JvdHRvbT1mdW5jdGlvbih0KXtyZXR1cm4gVChzcyx0KX0sdC5heGlzTGVmdD1mdW5jdGlvbih0KXtyZXR1cm4gVChscyx0KX0sdC5icnVzaD1mdW5jdGlvbigpe3JldHVybiBlZShiaCl9LHQuYnJ1c2hYPWZ1bmN0aW9uKCl7cmV0dXJuIGVlKHloKX0sdC5icnVzaFk9ZnVuY3Rpb24oKXtyZXR1cm4gZWUoX2gpfSx0LmJydXNoU2VsZWN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBuPXQuX19icnVzaDtyZXR1cm4gbj9uLmRpbS5vdXRwdXQobi5zZWxlY3Rpb24pOm51bGx9LHQuY2hvcmQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBvLGEsdSxmLGMsbCxoPXQubGVuZ3RoLGQ9W10scD1zKGgpLHY9W10sZz1bXSx5PWcuZ3JvdXBzPW5ldyBBcnJheShoKSxfPW5ldyBBcnJheShoKmgpO2ZvcihvPTAsYz0tMTsrK2M8aDspe2ZvcihhPTAsbD0tMTsrK2w8aDspYSs9dFtjXVtsXTtkLnB1c2goYSksdi5wdXNoKHMoaCkpLG8rPWF9Zm9yKGUmJnAuc29ydChmdW5jdGlvbih0LG4pe3JldHVybiBlKGRbdF0sZFtuXSl9KSxyJiZ2LmZvckVhY2goZnVuY3Rpb24obixlKXtuLnNvcnQoZnVuY3Rpb24obixpKXtyZXR1cm4gcih0W2VdW25dLHRbZV1baV0pfSl9KSxmPShvPUNoKDAsa2gtbipoKS9vKT9uOmtoL2gsYT0wLGM9LTE7KytjPGg7KXtmb3IodT1hLGw9LTE7KytsPGg7KXt2YXIgYj1wW2NdLG09dltiXVtsXSx4PXRbYl1bbV0sdz1hLE09YSs9eCpvO19bbSpoK2JdPXtpbmRleDpiLHN1YmluZGV4Om0sc3RhcnRBbmdsZTp3LGVuZEFuZ2xlOk0sdmFsdWU6eH19eVtiXT17aW5kZXg6YixzdGFydEFuZ2xlOnUsZW5kQW5nbGU6YSx2YWx1ZTpkW2JdfSxhKz1mfWZvcihjPS0xOysrYzxoOylmb3IobD1jLTE7KytsPGg7KXt2YXIgQT1fW2wqaCtjXSxUPV9bYypoK2xdOyhBLnZhbHVlfHxULnZhbHVlKSYmZy5wdXNoKEEudmFsdWU8VC52YWx1ZT97c291cmNlOlQsdGFyZ2V0OkF9Ontzb3VyY2U6QSx0YXJnZXQ6VH0pfXJldHVybiBpP2cuc29ydChpKTpnfXZhciBuPTAsZT1udWxsLHI9bnVsbCxpPW51bGw7cmV0dXJuIHQucGFkQW5nbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49Q2goMCxlKSx0KTpufSx0LnNvcnRHcm91cHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bix0KTplfSx0LnNvcnRTdWJncm91cHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bix0KTpyfSx0LnNvcnRDaG9yZHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PW4/aT1udWxsOihpPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3JldHVybiB0KG4uc291cmNlLnZhbHVlK24udGFyZ2V0LnZhbHVlLGUuc291cmNlLnZhbHVlK2UudGFyZ2V0LnZhbHVlKX19KG4pKS5fPW4sdCk6aSYmaS5ffSx0fSx0LnJpYmJvbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgdCx1PVBoLmNhbGwoYXJndW1lbnRzKSxmPW4uYXBwbHkodGhpcyx1KSxjPWUuYXBwbHkodGhpcyx1KSxzPStyLmFwcGx5KHRoaXMsKHVbMF09Zix1KSksbD1pLmFwcGx5KHRoaXMsdSktRWgsaD1vLmFwcGx5KHRoaXMsdSktRWgsZD1zKlRoKGwpLHA9cypOaChsKSx2PStyLmFwcGx5KHRoaXMsKHVbMF09Yyx1KSksZz1pLmFwcGx5KHRoaXMsdSktRWgseT1vLmFwcGx5KHRoaXMsdSktRWg7aWYoYXx8KGE9dD1vZSgpKSxhLm1vdmVUbyhkLHApLGEuYXJjKDAsMCxzLGwsaCksbD09PWcmJmg9PT15fHwoYS5xdWFkcmF0aWNDdXJ2ZVRvKDAsMCx2KlRoKGcpLHYqTmgoZykpLGEuYXJjKDAsMCx2LGcseSkpLGEucXVhZHJhdGljQ3VydmVUbygwLDAsZCxwKSxhLmNsb3NlUGF0aCgpLHQpcmV0dXJuIGE9bnVsbCx0K1wiXCJ8fG51bGx9dmFyIG49YWUsZT11ZSxyPWZlLGk9Y2Usbz1zZSxhPW51bGw7cmV0dXJuIHQucmFkaXVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpyZSgrbiksdCk6cn0sdC5zdGFydEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpyZSgrbiksdCk6aX0sdC5lbmRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246cmUoK24pLHQpOm99LHQuc291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWUsdCk6bn0sdC50YXJnZXQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bix0KTplfSx0LmNvbnRleHQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9bnVsbD09bj9udWxsOm4sdCk6YX0sdH0sdC5uZXN0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChuLGksYSx1KXtpZihpPj1vLmxlbmd0aClyZXR1cm4gbnVsbCE9ZSYmbi5zb3J0KGUpLG51bGwhPXI/cihuKTpuO2Zvcih2YXIgZixjLHMsbD0tMSxoPW4ubGVuZ3RoLGQ9b1tpKytdLHA9aGUoKSx2PWEoKTsrK2w8aDspKHM9cC5nZXQoZj1kKGM9bltsXSkrXCJcIikpP3MucHVzaChjKTpwLnNldChmLFtjXSk7cmV0dXJuIHAuZWFjaChmdW5jdGlvbihuLGUpe3UodixlLHQobixpLGEsdSkpfSksdn1mdW5jdGlvbiBuKHQsZSl7aWYoKytlPm8ubGVuZ3RoKXJldHVybiB0O3ZhciBpLHU9YVtlLTFdO3JldHVybiBudWxsIT1yJiZlPj1vLmxlbmd0aD9pPXQuZW50cmllcygpOihpPVtdLHQuZWFjaChmdW5jdGlvbih0LHIpe2kucHVzaCh7a2V5OnIsdmFsdWVzOm4odCxlKX0pfSkpLG51bGwhPXU/aS5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIHUodC5rZXksbi5rZXkpfSk6aX12YXIgZSxyLGksbz1bXSxhPVtdO3JldHVybiBpPXtvYmplY3Q6ZnVuY3Rpb24obil7cmV0dXJuIHQobiwwLGRlLHBlKX0sbWFwOmZ1bmN0aW9uKG4pe3JldHVybiB0KG4sMCx2ZSxnZSl9LGVudHJpZXM6ZnVuY3Rpb24oZSl7cmV0dXJuIG4odChlLDAsdmUsZ2UpLDApfSxrZXk6ZnVuY3Rpb24odCl7cmV0dXJuIG8ucHVzaCh0KSxpfSxzb3J0S2V5czpmdW5jdGlvbih0KXtyZXR1cm4gYVtvLmxlbmd0aC0xXT10LGl9LHNvcnRWYWx1ZXM6ZnVuY3Rpb24odCl7cmV0dXJuIGU9dCxpfSxyb2xsdXA6ZnVuY3Rpb24odCl7cmV0dXJuIHI9dCxpfX19LHQuc2V0PV9lLHQubWFwPWhlLHQua2V5cz1mdW5jdGlvbih0KXt2YXIgbj1bXTtmb3IodmFyIGUgaW4gdCluLnB1c2goZSk7cmV0dXJuIG59LHQudmFsdWVzPWZ1bmN0aW9uKHQpe3ZhciBuPVtdO2Zvcih2YXIgZSBpbiB0KW4ucHVzaCh0W2VdKTtyZXR1cm4gbn0sdC5lbnRyaWVzPWZ1bmN0aW9uKHQpe3ZhciBuPVtdO2Zvcih2YXIgZSBpbiB0KW4ucHVzaCh7a2V5OmUsdmFsdWU6dFtlXX0pO3JldHVybiBufSx0LmNvbG9yPWt0LHQucmdiPVJ0LHQuaHNsPXF0LHQubGFiPUZ0LHQuaGNsPSR0LHQubGNoPWZ1bmN0aW9uKHQsbixlLHIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9WdCh0KTpuZXcgV3QoZSxuLHQsbnVsbD09cj8xOnIpfSx0LmdyYXk9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbmV3IEl0KHQsMCwwLG51bGw9PW4/MTpuKX0sdC5jdWJlaGVsaXg9WnQsdC5jb250b3Vycz1NZSx0LmNvbnRvdXJEZW5zaXR5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgZT1uZXcgRmxvYXQzMkFycmF5KHYqeSkscj1uZXcgRmxvYXQzMkFycmF5KHYqeSk7dC5mb3JFYWNoKGZ1bmN0aW9uKHQsbixyKXt2YXIgaT1hKHQsbixyKStwPj5oLG89dSh0LG4scikrcD4+aDtpPj0wJiZpPHYmJm8+PTAmJm88eSYmKytlW2krbyp2XX0pLEFlKHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6ZX0se3dpZHRoOnYsaGVpZ2h0OnksZGF0YTpyfSxsPj5oKSxUZSh7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOnJ9LHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6ZX0sbD4+aCksQWUoe3dpZHRoOnYsaGVpZ2h0OnksZGF0YTplfSx7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOnJ9LGw+PmgpLFRlKHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6cn0se3dpZHRoOnYsaGVpZ2h0OnksZGF0YTplfSxsPj5oKSxBZSh7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOmV9LHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6cn0sbD4+aCksVGUoe3dpZHRoOnYsaGVpZ2h0OnksZGF0YTpyfSx7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOmV9LGw+PmgpO3ZhciBpPV8oZSk7aWYoIUFycmF5LmlzQXJyYXkoaSkpe3ZhciBvPWcoZSk7aT1kKDAsbyxpKSwoaT1zKDAsTWF0aC5mbG9vcihvL2kpKmksaSkpLnNoaWZ0KCl9cmV0dXJuIE1lKCkudGhyZXNob2xkcyhpKS5zaXplKFt2LHldKShlKS5tYXAobil9ZnVuY3Rpb24gbih0KXtyZXR1cm4gdC52YWx1ZSo9TWF0aC5wb3coMiwtMipoKSx0LmNvb3JkaW5hdGVzLmZvckVhY2goZSksdH1mdW5jdGlvbiBlKHQpe3QuZm9yRWFjaChyKX1mdW5jdGlvbiByKHQpe3QuZm9yRWFjaChpKX1mdW5jdGlvbiBpKHQpe3RbMF09dFswXSpNYXRoLnBvdygyLGgpLXAsdFsxXT10WzFdKk1hdGgucG93KDIsaCktcH1mdW5jdGlvbiBvKCl7cmV0dXJuIHA9MypsLHY9ZisyKnA+PmgseT1jKzIqcD4+aCx0fXZhciBhPU5lLHU9U2UsZj05NjAsYz01MDAsbD0yMCxoPTIscD0zKmwsdj1mKzIqcD4+aCx5PWMrMipwPj5oLF89bWUoMjApO3JldHVybiB0Lng9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOm1lKCtuKSx0KTphfSx0Lnk9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOm1lKCtuKSx0KTp1fSx0LnNpemU9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuW2YsY107dmFyIG49TWF0aC5jZWlsKHRbMF0pLGU9TWF0aC5jZWlsKHRbMV0pO2lmKCEobj49MHx8bj49MCkpdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBzaXplXCIpO3JldHVybiBmPW4sYz1lLG8oKX0sdC5jZWxsU2l6ZT1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gMTw8aDtpZighKCh0PSt0KT49MSkpdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBjZWxsIHNpemVcIik7cmV0dXJuIGg9TWF0aC5mbG9vcihNYXRoLmxvZyh0KS9NYXRoLkxOMiksbygpfSx0LnRocmVzaG9sZHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOkFycmF5LmlzQXJyYXkobik/bWUoVWguY2FsbChuKSk6bWUobiksdCk6X30sdC5iYW5kd2lkdGg9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIE1hdGguc3FydChsKihsKzEpKTtpZighKCh0PSt0KT49MCkpdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBiYW5kd2lkdGhcIik7cmV0dXJuIGw9TWF0aC5yb3VuZCgoTWF0aC5zcXJ0KDQqdCp0KzEpLTEpLzIpLG8oKX0sdH0sdC5kaXNwYXRjaD1OLHQuZHJhZz1mdW5jdGlvbigpe2Z1bmN0aW9uIG4odCl7dC5vbihcIm1vdXNlZG93bi5kcmFnXCIsZSkuZmlsdGVyKGcpLm9uKFwidG91Y2hzdGFydC5kcmFnXCIsbykub24oXCJ0b3VjaG1vdmUuZHJhZ1wiLGEpLm9uKFwidG91Y2hlbmQuZHJhZyB0b3VjaGNhbmNlbC5kcmFnXCIsdSkuc3R5bGUoXCJ0b3VjaC1hY3Rpb25cIixcIm5vbmVcIikuc3R5bGUoXCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3JcIixcInJnYmEoMCwwLDAsMClcIil9ZnVuY3Rpb24gZSgpe2lmKCFoJiZkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIG49ZihcIm1vdXNlXCIscC5hcHBseSh0aGlzLGFyZ3VtZW50cykscHQsdGhpcyxhcmd1bWVudHMpO24mJihjdCh0LmV2ZW50LnZpZXcpLm9uKFwibW91c2Vtb3ZlLmRyYWdcIixyLCEwKS5vbihcIm1vdXNldXAuZHJhZ1wiLGksITApLF90KHQuZXZlbnQudmlldyksZ3QoKSxsPSExLGM9dC5ldmVudC5jbGllbnRYLHM9dC5ldmVudC5jbGllbnRZLG4oXCJzdGFydFwiKSl9fWZ1bmN0aW9uIHIoKXtpZih5dCgpLCFsKXt2YXIgbj10LmV2ZW50LmNsaWVudFgtYyxlPXQuZXZlbnQuY2xpZW50WS1zO2w9bipuK2UqZT5tfXkubW91c2UoXCJkcmFnXCIpfWZ1bmN0aW9uIGkoKXtjdCh0LmV2ZW50LnZpZXcpLm9uKFwibW91c2Vtb3ZlLmRyYWcgbW91c2V1cC5kcmFnXCIsbnVsbCksYnQodC5ldmVudC52aWV3LGwpLHl0KCkseS5tb3VzZShcImVuZFwiKX1mdW5jdGlvbiBvKCl7aWYoZC5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBuLGUscj10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLGk9cC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbz1yLmxlbmd0aDtmb3Iobj0wO248bzsrK24pKGU9ZihyW25dLmlkZW50aWZpZXIsaSx2dCx0aGlzLGFyZ3VtZW50cykpJiYoZ3QoKSxlKFwic3RhcnRcIikpfX1mdW5jdGlvbiBhKCl7dmFyIG4sZSxyPXQuZXZlbnQuY2hhbmdlZFRvdWNoZXMsaT1yLmxlbmd0aDtmb3Iobj0wO248aTsrK24pKGU9eVtyW25dLmlkZW50aWZpZXJdKSYmKHl0KCksZShcImRyYWdcIikpfWZ1bmN0aW9uIHUoKXt2YXIgbixlLHI9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxpPXIubGVuZ3RoO2ZvcihoJiZjbGVhclRpbWVvdXQoaCksaD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aD1udWxsfSw1MDApLG49MDtuPGk7KytuKShlPXlbcltuXS5pZGVudGlmaWVyXSkmJihndCgpLGUoXCJlbmRcIikpfWZ1bmN0aW9uIGYoZSxyLGksbyxhKXt2YXIgdSxmLGMscz1pKHIsZSksbD1fLmNvcHkoKTtpZihvdChuZXcgeHQobixcImJlZm9yZXN0YXJ0XCIsdSxlLGIsc1swXSxzWzFdLDAsMCxsKSxmdW5jdGlvbigpe3JldHVybiBudWxsIT0odC5ldmVudC5zdWJqZWN0PXU9di5hcHBseShvLGEpKSYmKGY9dS54LXNbMF18fDAsYz11Lnktc1sxXXx8MCwhMCl9KSlyZXR1cm4gZnVuY3Rpb24gdChoKXt2YXIgZCxwPXM7c3dpdGNoKGgpe2Nhc2VcInN0YXJ0XCI6eVtlXT10LGQ9YisrO2JyZWFrO2Nhc2VcImVuZFwiOmRlbGV0ZSB5W2VdLC0tYjtjYXNlXCJkcmFnXCI6cz1pKHIsZSksZD1ifW90KG5ldyB4dChuLGgsdSxlLGQsc1swXStmLHNbMV0rYyxzWzBdLXBbMF0sc1sxXS1wWzFdLGwpLGwuYXBwbHksbCxbaCxvLGFdKX19dmFyIGMscyxsLGgsZD13dCxwPU10LHY9QXQsZz1UdCx5PXt9LF89TihcInN0YXJ0XCIsXCJkcmFnXCIsXCJlbmRcIiksYj0wLG09MDtyZXR1cm4gbi5maWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90Om10KCEhdCksbik6ZH0sbi5jb250YWluZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90Om10KHQpLG4pOnB9LG4uc3ViamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odj1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bXQodCksbik6dn0sbi50b3VjaGFibGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGc9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90Om10KCEhdCksbik6Z30sbi5vbj1mdW5jdGlvbigpe3ZhciB0PV8ub24uYXBwbHkoXyxhcmd1bWVudHMpO3JldHVybiB0PT09Xz9uOnR9LG4uY2xpY2tEaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obT0odD0rdCkqdCxuKTpNYXRoLnNxcnQobSl9LG59LHQuZHJhZ0Rpc2FibGU9X3QsdC5kcmFnRW5hYmxlPWJ0LHQuZHN2Rm9ybWF0PWtlLHQuY3N2UGFyc2U9SGgsdC5jc3ZQYXJzZVJvd3M9WGgsdC5jc3ZGb3JtYXQ9R2gsdC5jc3ZGb3JtYXRSb3dzPVZoLHQudHN2UGFyc2U9V2gsdC50c3ZQYXJzZVJvd3M9WmgsdC50c3ZGb3JtYXQ9UWgsdC50c3ZGb3JtYXRSb3dzPUpoLHQuZWFzZUxpbmVhcj1mdW5jdGlvbih0KXtyZXR1cm4rdH0sdC5lYXNlUXVhZD1Gbix0LmVhc2VRdWFkSW49ZnVuY3Rpb24odCl7cmV0dXJuIHQqdH0sdC5lYXNlUXVhZE91dD1mdW5jdGlvbih0KXtyZXR1cm4gdCooMi10KX0sdC5lYXNlUXVhZEluT3V0PUZuLHQuZWFzZUN1YmljPUluLHQuZWFzZUN1YmljSW49ZnVuY3Rpb24odCl7cmV0dXJuIHQqdCp0fSx0LmVhc2VDdWJpY091dD1mdW5jdGlvbih0KXtyZXR1cm4tLXQqdCp0KzF9LHQuZWFzZUN1YmljSW5PdXQ9SW4sdC5lYXNlUG9seT1YbCx0LmVhc2VQb2x5SW49amwsdC5lYXNlUG9seU91dD1IbCx0LmVhc2VQb2x5SW5PdXQ9WGwsdC5lYXNlU2luPWpuLHQuZWFzZVNpbkluPWZ1bmN0aW9uKHQpe3JldHVybiAxLU1hdGguY29zKHQqVmwpfSx0LmVhc2VTaW5PdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc2luKHQqVmwpfSx0LmVhc2VTaW5Jbk91dD1qbix0LmVhc2VFeHA9SG4sdC5lYXNlRXhwSW49ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucG93KDIsMTAqdC0xMCl9LHQuZWFzZUV4cE91dD1mdW5jdGlvbih0KXtyZXR1cm4gMS1NYXRoLnBvdygyLC0xMCp0KX0sdC5lYXNlRXhwSW5PdXQ9SG4sdC5lYXNlQ2lyY2xlPVhuLHQuZWFzZUNpcmNsZUluPWZ1bmN0aW9uKHQpe3JldHVybiAxLU1hdGguc3FydCgxLXQqdCl9LHQuZWFzZUNpcmNsZU91dD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KDEtIC0tdCp0KX0sdC5lYXNlQ2lyY2xlSW5PdXQ9WG4sdC5lYXNlQm91bmNlPUduLHQuZWFzZUJvdW5jZUluPWZ1bmN0aW9uKHQpe3JldHVybiAxLUduKDEtdCl9LHQuZWFzZUJvdW5jZU91dD1Hbix0LmVhc2VCb3VuY2VJbk91dD1mdW5jdGlvbih0KXtyZXR1cm4oKHQqPTIpPD0xPzEtR24oMS10KTpHbih0LTEpKzEpLzJ9LHQuZWFzZUJhY2s9YWgsdC5lYXNlQmFja0luPWloLHQuZWFzZUJhY2tPdXQ9b2gsdC5lYXNlQmFja0luT3V0PWFoLHQuZWFzZUVsYXN0aWM9Y2gsdC5lYXNlRWxhc3RpY0luPWZoLHQuZWFzZUVsYXN0aWNPdXQ9Y2gsdC5lYXNlRWxhc3RpY0luT3V0PXNoLHQuYmxvYj1mdW5jdGlvbih0LG4pe3JldHVybiBmZXRjaCh0LG4pLnRoZW4oQ2UpfSx0LmJ1ZmZlcj1mdW5jdGlvbih0LG4pe3JldHVybiBmZXRjaCh0LG4pLnRoZW4oUGUpfSx0LmRzdj1mdW5jdGlvbih0LG4sZSxyKXszPT09YXJndW1lbnRzLmxlbmd0aCYmXCJmdW5jdGlvblwiPT10eXBlb2YgZSYmKHI9ZSxlPXZvaWQgMCk7dmFyIGk9a2UodCk7cmV0dXJuIFJlKG4sZSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gaS5wYXJzZSh0LHIpfSl9LHQuY3N2PUtoLHQudHN2PXRkLHQuaW1hZ2U9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxyKXt2YXIgaT1uZXcgSW1hZ2U7Zm9yKHZhciBvIGluIG4paVtvXT1uW29dO2kub25lcnJvcj1yLGkub25sb2FkPWZ1bmN0aW9uKCl7ZShpKX0saS5zcmM9dH0pfSx0Lmpzb249ZnVuY3Rpb24odCxuKXtyZXR1cm4gZmV0Y2godCxuKS50aGVuKERlKX0sdC50ZXh0PVJlLHQueG1sPW5kLHQuaHRtbD1lZCx0LnN2Zz1yZCx0LmZvcmNlQ2VudGVyPWZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZSgpe3ZhciBlLGksbz1yLmxlbmd0aCxhPTAsdT0wO2ZvcihlPTA7ZTxvOysrZSlhKz0oaT1yW2VdKS54LHUrPWkueTtmb3IoYT1hL28tdCx1PXUvby1uLGU9MDtlPG87KytlKShpPXJbZV0pLngtPWEsaS55LT11fXZhciByO3JldHVybiBudWxsPT10JiYodD0wKSxudWxsPT1uJiYobj0wKSxlLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7cj10fSxlLng9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K24sZSk6dH0sZS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSt0LGUpOm59LGV9LHQuZm9yY2VDb2xsaWRlPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oKXtmb3IodmFyIHQsbixyLGYsYyxzLGwsaD1pLmxlbmd0aCxkPTA7ZDx1OysrZClmb3Iobj1qZShpLEdlLFZlKS52aXNpdEFmdGVyKGUpLHQ9MDt0PGg7Kyt0KXI9aVt0XSxzPW9bci5pbmRleF0sbD1zKnMsZj1yLngrci52eCxjPXIueStyLnZ5LG4udmlzaXQoZnVuY3Rpb24odCxuLGUsaSxvKXt2YXIgdT10LmRhdGEsaD10LnIsZD1zK2g7aWYoIXUpcmV0dXJuIG4+ZitkfHxpPGYtZHx8ZT5jK2R8fG88Yy1kO2lmKHUuaW5kZXg+ci5pbmRleCl7dmFyIHA9Zi11LngtdS52eCx2PWMtdS55LXUudnksZz1wKnArdip2O2c8ZCpkJiYoMD09PXAmJihwPU9lKCksZys9cCpwKSwwPT09diYmKHY9T2UoKSxnKz12KnYpLGc9KGQtKGc9TWF0aC5zcXJ0KGcpKSkvZyphLHIudngrPShwKj1nKSooZD0oaCo9aCkvKGwraCkpLHIudnkrPSh2Kj1nKSpkLHUudngtPXAqKGQ9MS1kKSx1LnZ5LT12KmQpfX0pfWZ1bmN0aW9uIGUodCl7aWYodC5kYXRhKXJldHVybiB0LnI9b1t0LmRhdGEuaW5kZXhdO2Zvcih2YXIgbj10LnI9MDtuPDQ7KytuKXRbbl0mJnRbbl0ucj50LnImJih0LnI9dFtuXS5yKX1mdW5jdGlvbiByKCl7aWYoaSl7dmFyIG4sZSxyPWkubGVuZ3RoO2ZvcihvPW5ldyBBcnJheShyKSxuPTA7bjxyOysrbillPWlbbl0sb1tlLmluZGV4XT0rdChlLG4saSl9fXZhciBpLG8sYT0xLHU9MTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1xZShudWxsPT10PzE6K3QpKSxuLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7aT10LHIoKX0sbi5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSt0LG4pOnV9LG4uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K3Qsbik6YX0sbi5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOnFlKCtlKSxyKCksbik6dH0sbn0sdC5mb3JjZUxpbms9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihuKXtmb3IodmFyIGU9MCxyPXQubGVuZ3RoO2U8ZDsrK2UpZm9yKHZhciBpLHUsZixzLGwsaCxwLHY9MDt2PHI7Kyt2KXU9KGk9dFt2XSkuc291cmNlLHM9KGY9aS50YXJnZXQpLngrZi52eC11LngtdS52eHx8T2UoKSxsPWYueStmLnZ5LXUueS11LnZ5fHxPZSgpLHMqPWg9KChoPU1hdGguc3FydChzKnMrbCpsKSktYVt2XSkvaCpuKm9bdl0sbCo9aCxmLnZ4LT1zKihwPWNbdl0pLGYudnktPWwqcCx1LnZ4Kz1zKihwPTEtcCksdS52eSs9bCpwfWZ1bmN0aW9uIGUoKXtpZih1KXt2YXIgbixlLGw9dS5sZW5ndGgsaD10Lmxlbmd0aCxkPWhlKHUscyk7Zm9yKG49MCxmPW5ldyBBcnJheShsKTtuPGg7KytuKShlPXRbbl0pLmluZGV4PW4sXCJvYmplY3RcIiE9dHlwZW9mIGUuc291cmNlJiYoZS5zb3VyY2U9V2UoZCxlLnNvdXJjZSkpLFwib2JqZWN0XCIhPXR5cGVvZiBlLnRhcmdldCYmKGUudGFyZ2V0PVdlKGQsZS50YXJnZXQpKSxmW2Uuc291cmNlLmluZGV4XT0oZltlLnNvdXJjZS5pbmRleF18fDApKzEsZltlLnRhcmdldC5pbmRleF09KGZbZS50YXJnZXQuaW5kZXhdfHwwKSsxO2ZvcihuPTAsYz1uZXcgQXJyYXkoaCk7bjxoOysrbillPXRbbl0sY1tuXT1mW2Uuc291cmNlLmluZGV4XS8oZltlLnNvdXJjZS5pbmRleF0rZltlLnRhcmdldC5pbmRleF0pO289bmV3IEFycmF5KGgpLHIoKSxhPW5ldyBBcnJheShoKSxpKCl9fWZ1bmN0aW9uIHIoKXtpZih1KWZvcih2YXIgbj0wLGU9dC5sZW5ndGg7bjxlOysrbilvW25dPStsKHRbbl0sbix0KX1mdW5jdGlvbiBpKCl7aWYodSlmb3IodmFyIG49MCxlPXQubGVuZ3RoO248ZTsrK24pYVtuXT0raCh0W25dLG4sdCl9dmFyIG8sYSx1LGYsYyxzPSRlLGw9ZnVuY3Rpb24odCl7cmV0dXJuIDEvTWF0aC5taW4oZlt0LnNvdXJjZS5pbmRleF0sZlt0LnRhcmdldC5pbmRleF0pfSxoPXFlKDMwKSxkPTE7cmV0dXJuIG51bGw9PXQmJih0PVtdKSxuLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7dT10LGUoKX0sbi5saW5rcz1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1yLGUoKSxuKTp0fSxuLmlkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPXQsbik6c30sbi5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhkPSt0LG4pOmR9LG4uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OnFlKCt0KSxyKCksbik6bH0sbi5kaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLGkoKSxuKTpofSxufSx0LmZvcmNlTWFueUJvZHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBuLHU9aS5sZW5ndGgsZj1qZShpLFplLFFlKS52aXNpdEFmdGVyKGUpO2ZvcihhPXQsbj0wO248dTsrK24pbz1pW25dLGYudmlzaXQocil9ZnVuY3Rpb24gbigpe2lmKGkpe3ZhciB0LG4sZT1pLmxlbmd0aDtmb3IodT1uZXcgQXJyYXkoZSksdD0wO3Q8ZTsrK3Qpbj1pW3RdLHVbbi5pbmRleF09K2Yobix0LGkpfX1mdW5jdGlvbiBlKHQpe3ZhciBuLGUscixpLG8sYT0wLGY9MDtpZih0Lmxlbmd0aCl7Zm9yKHI9aT1vPTA7bzw0Oysrbykobj10W29dKSYmKGU9TWF0aC5hYnMobi52YWx1ZSkpJiYoYSs9bi52YWx1ZSxmKz1lLHIrPWUqbi54LGkrPWUqbi55KTt0Lng9ci9mLHQueT1pL2Z9ZWxzZXsobj10KS54PW4uZGF0YS54LG4ueT1uLmRhdGEueTtkb3thKz11W24uZGF0YS5pbmRleF19d2hpbGUobj1uLm5leHQpfXQudmFsdWU9YX1mdW5jdGlvbiByKHQsbixlLHIpe2lmKCF0LnZhbHVlKXJldHVybiEwO3ZhciBpPXQueC1vLngsZj10Lnktby55LGg9ci1uLGQ9aSppK2YqZjtpZihoKmgvbDxkKXJldHVybiBkPHMmJigwPT09aSYmKGk9T2UoKSxkKz1pKmkpLDA9PT1mJiYoZj1PZSgpLGQrPWYqZiksZDxjJiYoZD1NYXRoLnNxcnQoYypkKSksby52eCs9aSp0LnZhbHVlKmEvZCxvLnZ5Kz1mKnQudmFsdWUqYS9kKSwhMDtpZighKHQubGVuZ3RofHxkPj1zKSl7KHQuZGF0YSE9PW98fHQubmV4dCkmJigwPT09aSYmKGk9T2UoKSxkKz1pKmkpLDA9PT1mJiYoZj1PZSgpLGQrPWYqZiksZDxjJiYoZD1NYXRoLnNxcnQoYypkKSkpO2Rve3QuZGF0YSE9PW8mJihoPXVbdC5kYXRhLmluZGV4XSphL2Qsby52eCs9aSpoLG8udnkrPWYqaCl9d2hpbGUodD10Lm5leHQpfX12YXIgaSxvLGEsdSxmPXFlKC0zMCksYz0xLHM9MS8wLGw9LjgxO3JldHVybiB0LmluaXRpYWxpemU9ZnVuY3Rpb24odCl7aT10LG4oKX0sdC5zdHJlbmd0aD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6cWUoK2UpLG4oKSx0KTpmfSx0LmRpc3RhbmNlTWluPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPW4qbix0KTpNYXRoLnNxcnQoYyl9LHQuZGlzdGFuY2VNYXg9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9bipuLHQpOk1hdGguc3FydChzKX0sdC50aGV0YT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1uKm4sdCk6TWF0aC5zcXJ0KGwpfSx0fSx0LmZvcmNlUmFkaWFsPWZ1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKHQpe2Zvcih2YXIgcj0wLGk9by5sZW5ndGg7cjxpOysrcil7dmFyIGY9b1tyXSxjPWYueC1ufHwxZS02LHM9Zi55LWV8fDFlLTYsbD1NYXRoLnNxcnQoYypjK3MqcyksaD0odVtyXS1sKSphW3JdKnQvbDtmLnZ4Kz1jKmgsZi52eSs9cypofX1mdW5jdGlvbiBpKCl7aWYobyl7dmFyIG4sZT1vLmxlbmd0aDtmb3IoYT1uZXcgQXJyYXkoZSksdT1uZXcgQXJyYXkoZSksbj0wO248ZTsrK24pdVtuXT0rdChvW25dLG4sbyksYVtuXT1pc05hTih1W25dKT8wOitmKG9bbl0sbixvKX19dmFyIG8sYSx1LGY9cWUoLjEpO3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXFlKCt0KSksbnVsbD09biYmKG49MCksbnVsbD09ZSYmKGU9MCksci5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe289dCxpKCl9LHIuc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OnFlKCt0KSxpKCkscik6Zn0sci5yYWRpdXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOnFlKCtuKSxpKCkscik6dH0sci54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSt0LHIpOm59LHIueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdCxyKTplfSxyfSx0LmZvcmNlU2ltdWxhdGlvbj1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKCl7ZSgpLGQuY2FsbChcInRpY2tcIixvKSxhPHUmJihoLnN0b3AoKSxkLmNhbGwoXCJlbmRcIixvKSl9ZnVuY3Rpb24gZSgpe3ZhciBuLGUscj10Lmxlbmd0aDtmb3IoYSs9KGMtYSkqZixsLmVhY2goZnVuY3Rpb24odCl7dChhKX0pLG49MDtuPHI7KytuKW51bGw9PShlPXRbbl0pLmZ4P2UueCs9ZS52eCo9czooZS54PWUuZngsZS52eD0wKSxudWxsPT1lLmZ5P2UueSs9ZS52eSo9czooZS55PWUuZnksZS52eT0wKX1mdW5jdGlvbiByKCl7Zm9yKHZhciBuLGU9MCxyPXQubGVuZ3RoO2U8cjsrK2Upe2lmKG49dFtlXSxuLmluZGV4PWUsaXNOYU4obi54KXx8aXNOYU4obi55KSl7dmFyIGk9b2QqTWF0aC5zcXJ0KGUpLG89ZSphZDtuLng9aSpNYXRoLmNvcyhvKSxuLnk9aSpNYXRoLnNpbihvKX0oaXNOYU4obi52eCl8fGlzTmFOKG4udnkpKSYmKG4udng9bi52eT0wKX19ZnVuY3Rpb24gaShuKXtyZXR1cm4gbi5pbml0aWFsaXplJiZuLmluaXRpYWxpemUodCksbn12YXIgbyxhPTEsdT0uMDAxLGY9MS1NYXRoLnBvdyh1LDEvMzAwKSxjPTAscz0uNixsPWhlKCksaD1UbihuKSxkPU4oXCJ0aWNrXCIsXCJlbmRcIik7cmV0dXJuIG51bGw9PXQmJih0PVtdKSxyKCksbz17dGljazplLHJlc3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gaC5yZXN0YXJ0KG4pLG99LHN0b3A6ZnVuY3Rpb24oKXtyZXR1cm4gaC5zdG9wKCksb30sbm9kZXM6ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9bixyKCksbC5lYWNoKGkpLG8pOnR9LGFscGhhOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSt0LG8pOmF9LGFscGhhTWluOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSt0LG8pOnV9LGFscGhhRGVjYXk6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9K3Qsbyk6K2Z9LGFscGhhVGFyZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPSt0LG8pOmN9LHZlbG9jaXR5RGVjYXk6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9MS10LG8pOjEtc30sZm9yY2U6ZnVuY3Rpb24odCxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xPyhudWxsPT1uP2wucmVtb3ZlKHQpOmwuc2V0KHQsaShuKSksbyk6bC5nZXQodCl9LGZpbmQ6ZnVuY3Rpb24obixlLHIpe3ZhciBpLG8sYSx1LGYsYz0wLHM9dC5sZW5ndGg7Zm9yKG51bGw9PXI/cj0xLzA6cio9cixjPTA7YzxzOysrYykoYT0oaT1uLSh1PXRbY10pLngpKmkrKG89ZS11LnkpKm8pPHImJihmPXUscj1hKTtyZXR1cm4gZn0sb246ZnVuY3Rpb24odCxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xPyhkLm9uKHQsbiksbyk6ZC5vbih0KX19fSx0LmZvcmNlWD1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgbixlPTAsYT1yLmxlbmd0aDtlPGE7KytlKShuPXJbZV0pLnZ4Kz0ob1tlXS1uLngpKmlbZV0qdH1mdW5jdGlvbiBlKCl7aWYocil7dmFyIG4sZT1yLmxlbmd0aDtmb3IoaT1uZXcgQXJyYXkoZSksbz1uZXcgQXJyYXkoZSksbj0wO248ZTsrK24paVtuXT1pc05hTihvW25dPSt0KHJbbl0sbixyKSk/MDorYShyW25dLG4scil9fXZhciByLGksbyxhPXFlKC4xKTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1xZShudWxsPT10PzA6K3QpKSxuLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7cj10LGUoKX0sbi5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLGUoKSxuKTphfSxuLng9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9XCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yOnFlKCtyKSxlKCksbik6dH0sbn0sdC5mb3JjZVk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbih0KXtmb3IodmFyIG4sZT0wLGE9ci5sZW5ndGg7ZTxhOysrZSkobj1yW2VdKS52eSs9KG9bZV0tbi55KSppW2VdKnR9ZnVuY3Rpb24gZSgpe2lmKHIpe3ZhciBuLGU9ci5sZW5ndGg7Zm9yKGk9bmV3IEFycmF5KGUpLG89bmV3IEFycmF5KGUpLG49MDtuPGU7KytuKWlbbl09aXNOYU4ob1tuXT0rdChyW25dLG4scikpPzA6K2EocltuXSxuLHIpfX12YXIgcixpLG8sYT1xZSguMSk7cmV0dXJuXCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9cWUobnVsbD09dD8wOit0KSksbi5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe3I9dCxlKCl9LG4uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OnFlKCt0KSxlKCksbik6YX0sbi55PWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PVwiZnVuY3Rpb25cIj09dHlwZW9mIHI/cjpxZSgrciksZSgpLG4pOnR9LG59LHQuZm9ybWF0RGVmYXVsdExvY2FsZT1vcix0LmZvcm1hdExvY2FsZT1pcix0LmZvcm1hdFNwZWNpZmllcj10cix0LnByZWNpc2lvbkZpeGVkPWFyLHQucHJlY2lzaW9uUHJlZml4PXVyLHQucHJlY2lzaW9uUm91bmQ9ZnIsdC5nZW9BcmVhPWZ1bmN0aW9uKHQpe3JldHVybiBkcC5yZXNldCgpLGJyKHQscHApLDIqZHB9LHQuZ2VvQm91bmRzPWZ1bmN0aW9uKHQpe3ZhciBuLGUscixpLG8sYSx1O2lmKG1kPWJkPS0oeWQ9X2Q9MS8wKSxUZD1bXSxicih0LGdwKSxlPVRkLmxlbmd0aCl7Zm9yKFRkLnNvcnQoWXIpLG49MSxvPVtyPVRkWzBdXTtuPGU7KytuKUJyKHIsKGk9VGRbbl0pWzBdKXx8QnIocixpWzFdKT8oT3IoclswXSxpWzFdKT5PcihyWzBdLHJbMV0pJiYoclsxXT1pWzFdKSxPcihpWzBdLHJbMV0pPk9yKHJbMF0sclsxXSkmJihyWzBdPWlbMF0pKTpvLnB1c2gocj1pKTtmb3IoYT0tMS8wLG49MCxyPW9bZT1vLmxlbmd0aC0xXTtuPD1lO3I9aSwrK24paT1vW25dLCh1PU9yKHJbMV0saVswXSkpPmEmJihhPXUseWQ9aVswXSxiZD1yWzFdKX1yZXR1cm4gVGQ9TmQ9bnVsbCx5ZD09PTEvMHx8X2Q9PT0xLzA/W1tOYU4sTmFOXSxbTmFOLE5hTl1dOltbeWQsX2RdLFtiZCxtZF1dfSx0Lmdlb0NlbnRyb2lkPWZ1bmN0aW9uKHQpe1NkPUVkPWtkPUNkPVBkPXpkPVJkPUxkPURkPVVkPXFkPTAsYnIodCx5cCk7dmFyIG49RGQsZT1VZCxyPXFkLGk9bipuK2UqZStyKnI7cmV0dXJuIGk8WGQmJihuPXpkLGU9UmQscj1MZCxFZDxIZCYmKG49a2QsZT1DZCxyPVBkKSwoaT1uKm4rZSplK3Iqcik8WGQpP1tOYU4sTmFOXTpbdHAoZSxuKSpaZCxkcihyL2ZwKGkpKSpaZF19LHQuZ2VvQ2lyY2xlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHU9aS5hcHBseSh0aGlzLGFyZ3VtZW50cykqUWQsZj1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKSpRZDtyZXR1cm4gbj1bXSxlPXRpKC10WzBdKlFkLC10WzFdKlFkLDApLmludmVydCxvaShhLHUsZiwxKSx0PXt0eXBlOlwiUG9seWdvblwiLGNvb3JkaW5hdGVzOltuXX0sbj1lPW51bGwsdH12YXIgbixlLHI9UXIoWzAsMF0pLGk9UXIoOTApLG89UXIoNiksYT17cG9pbnQ6ZnVuY3Rpb24odCxyKXtuLnB1c2godD1lKHQscikpLHRbMF0qPVpkLHRbMV0qPVpkfX07cmV0dXJuIHQuY2VudGVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpRcihbK25bMF0sK25bMV1dKSx0KTpyfSx0LnJhZGl1cz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246UXIoK24pLHQpOml9LHQucHJlY2lzaW9uPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpRcigrbiksdCk6b30sdH0sdC5nZW9DbGlwQW50aW1lcmlkaWFuPUNwLHQuZ2VvQ2xpcENpcmNsZT1naSx0Lmdlb0NsaXBFeHRlbnQ9ZnVuY3Rpb24oKXt2YXIgdCxuLGUscj0wLGk9MCxvPTk2MCxhPTUwMDtyZXR1cm4gZT17c3RyZWFtOmZ1bmN0aW9uKGUpe3JldHVybiB0JiZuPT09ZT90OnQ9eWkocixpLG8sYSkobj1lKX0sZXh0ZW50OmZ1bmN0aW9uKHUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt1WzBdWzBdLGk9K3VbMF1bMV0sbz0rdVsxXVswXSxhPSt1WzFdWzFdLHQ9bj1udWxsLGUpOltbcixpXSxbbyxhXV19fX0sdC5nZW9DbGlwUmVjdGFuZ2xlPXlpLHQuZ2VvQ29udGFpbnM9ZnVuY3Rpb24odCxuKXtyZXR1cm4odCYmcXAuaGFzT3duUHJvcGVydHkodC50eXBlKT9xcFt0LnR5cGVdOk1pKSh0LG4pfSx0Lmdlb0Rpc3RhbmNlPXdpLHQuZ2VvR3JhdGljdWxlPVBpLHQuZ2VvR3JhdGljdWxlMTA9ZnVuY3Rpb24oKXtyZXR1cm4gUGkoKSgpfSx0Lmdlb0ludGVycG9sYXRlPWZ1bmN0aW9uKHQsbil7dmFyIGU9dFswXSpRZCxyPXRbMV0qUWQsaT1uWzBdKlFkLG89blsxXSpRZCxhPW5wKHIpLHU9YXAociksZj1ucChvKSxjPWFwKG8pLHM9YSpucChlKSxsPWEqYXAoZSksaD1mKm5wKGkpLGQ9ZiphcChpKSxwPTIqZHIoZnAocHIoby1yKSthKmYqcHIoaS1lKSkpLHY9YXAocCksZz1wP2Z1bmN0aW9uKHQpe3ZhciBuPWFwKHQqPXApL3YsZT1hcChwLXQpL3Yscj1lKnMrbipoLGk9ZSpsK24qZCxvPWUqdStuKmM7cmV0dXJuW3RwKGkscikqWmQsdHAobyxmcChyKnIraSppKSkqWmRdfTpmdW5jdGlvbigpe3JldHVybltlKlpkLHIqWmRdfTtyZXR1cm4gZy5kaXN0YW5jZT1wLGd9LHQuZ2VvTGVuZ3RoPXhpLHQuZ2VvUGF0aD1mdW5jdGlvbih0LG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIHQmJihcImZ1bmN0aW9uXCI9PXR5cGVvZiBvJiZpLnBvaW50UmFkaXVzKCtvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksYnIodCxyKGkpKSksaS5yZXN1bHQoKX12YXIgcixpLG89NC41O3JldHVybiBlLmFyZWE9ZnVuY3Rpb24odCl7cmV0dXJuIGJyKHQscihGcCkpLEZwLnJlc3VsdCgpfSxlLm1lYXN1cmU9ZnVuY3Rpb24odCl7cmV0dXJuIGJyKHQscihjdikpLGN2LnJlc3VsdCgpfSxlLmJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gYnIodCxyKEdwKSksR3AucmVzdWx0KCl9LGUuY2VudHJvaWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGJyKHQscihldikpLGV2LnJlc3VsdCgpfSxlLnByb2plY3Rpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj8odD1udWxsLHppKToodD1uKS5zdHJlYW0sZSk6dH0sZS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/KG49bnVsbCxuZXcgV2kpOm5ldyBHaShuPXQpLFwiZnVuY3Rpb25cIiE9dHlwZW9mIG8mJmkucG9pbnRSYWRpdXMobyksZSk6bn0sZS5wb2ludFJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6KGkucG9pbnRSYWRpdXMoK3QpLCt0KSxlKTpvfSxlLnByb2plY3Rpb24odCkuY29udGV4dChuKX0sdC5nZW9BbGJlcnM9bG8sdC5nZW9BbGJlcnNVc2E9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBuPXRbMF0sZT10WzFdO3JldHVybiB1PW51bGwsaS5wb2ludChuLGUpLHV8fChvLnBvaW50KG4sZSksdSl8fChhLnBvaW50KG4sZSksdSl9ZnVuY3Rpb24gbigpe3JldHVybiBlPXI9bnVsbCx0fXZhciBlLHIsaSxvLGEsdSxmPWxvKCksYz1zbygpLnJvdGF0ZShbMTU0LDBdKS5jZW50ZXIoWy0yLDU4LjVdKS5wYXJhbGxlbHMoWzU1LDY1XSkscz1zbygpLnJvdGF0ZShbMTU3LDBdKS5jZW50ZXIoWy0zLDE5LjldKS5wYXJhbGxlbHMoWzgsMThdKSxsPXtwb2ludDpmdW5jdGlvbih0LG4pe3U9W3Qsbl19fTtyZXR1cm4gdC5pbnZlcnQ9ZnVuY3Rpb24odCl7dmFyIG49Zi5zY2FsZSgpLGU9Zi50cmFuc2xhdGUoKSxyPSh0WzBdLWVbMF0pL24saT0odFsxXS1lWzFdKS9uO3JldHVybihpPj0uMTImJmk8LjIzNCYmcj49LS40MjUmJnI8LS4yMTQ/YzppPj0uMTY2JiZpPC4yMzQmJnI+PS0uMjE0JiZyPC0uMTE1P3M6ZikuaW52ZXJ0KHQpfSx0LnN0cmVhbT1mdW5jdGlvbih0KXtyZXR1cm4gZSYmcj09PXQ/ZTplPWZ1bmN0aW9uKHQpe3ZhciBuPXQubGVuZ3RoO3JldHVybntwb2ludDpmdW5jdGlvbihlLHIpe2Zvcih2YXIgaT0tMTsrK2k8bjspdFtpXS5wb2ludChlLHIpfSxzcGhlcmU6ZnVuY3Rpb24oKXtmb3IodmFyIGU9LTE7KytlPG47KXRbZV0uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe2Zvcih2YXIgZT0tMTsrK2U8bjspdFtlXS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe2Zvcih2YXIgZT0tMTsrK2U8bjspdFtlXS5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2Zvcih2YXIgZT0tMTsrK2U8bjspdFtlXS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2Zvcih2YXIgZT0tMTsrK2U8bjspdFtlXS5wb2x5Z29uRW5kKCl9fX0oW2Yuc3RyZWFtKHI9dCksYy5zdHJlYW0odCkscy5zdHJlYW0odCldKX0sdC5wcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGYucHJlY2lzaW9uKHQpLGMucHJlY2lzaW9uKHQpLHMucHJlY2lzaW9uKHQpLG4oKSk6Zi5wcmVjaXNpb24oKX0sdC5zY2FsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZi5zY2FsZShuKSxjLnNjYWxlKC4zNSpuKSxzLnNjYWxlKG4pLHQudHJhbnNsYXRlKGYudHJhbnNsYXRlKCkpKTpmLnNjYWxlKCl9LHQudHJhbnNsYXRlPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBmLnRyYW5zbGF0ZSgpO3ZhciBlPWYuc2NhbGUoKSxyPSt0WzBdLHU9K3RbMV07cmV0dXJuIGk9Zi50cmFuc2xhdGUodCkuY2xpcEV4dGVudChbW3ItLjQ1NSplLHUtLjIzOCplXSxbcisuNDU1KmUsdSsuMjM4KmVdXSkuc3RyZWFtKGwpLG89Yy50cmFuc2xhdGUoW3ItLjMwNyplLHUrLjIwMSplXSkuY2xpcEV4dGVudChbW3ItLjQyNSplK0hkLHUrLjEyKmUrSGRdLFtyLS4yMTQqZS1IZCx1Ky4yMzQqZS1IZF1dKS5zdHJlYW0obCksYT1zLnRyYW5zbGF0ZShbci0uMjA1KmUsdSsuMjEyKmVdKS5jbGlwRXh0ZW50KFtbci0uMjE0KmUrSGQsdSsuMTY2KmUrSGRdLFtyLS4xMTUqZS1IZCx1Ky4yMzQqZS1IZF1dKS5zdHJlYW0obCksbigpfSx0LmZpdEV4dGVudD1mdW5jdGlvbihuLGUpe3JldHVybiB0byh0LG4sZSl9LHQuZml0U2l6ZT1mdW5jdGlvbihuLGUpe3JldHVybiBubyh0LG4sZSl9LHQuZml0V2lkdGg9ZnVuY3Rpb24obixlKXtyZXR1cm4gZW8odCxuLGUpfSx0LmZpdEhlaWdodD1mdW5jdGlvbihuLGUpe3JldHVybiBybyh0LG4sZSl9LHQuc2NhbGUoMTA3MCl9LHQuZ2VvQXppbXV0aGFsRXF1YWxBcmVhPWZ1bmN0aW9uKCl7cmV0dXJuIGFvKGR2KS5zY2FsZSgxMjQuNzUpLmNsaXBBbmdsZSgxNzkuOTk5KX0sdC5nZW9BemltdXRoYWxFcXVhbEFyZWFSYXc9ZHYsdC5nZW9BemltdXRoYWxFcXVpZGlzdGFudD1mdW5jdGlvbigpe3JldHVybiBhbyhwdikuc2NhbGUoNzkuNDE4OCkuY2xpcEFuZ2xlKDE3OS45OTkpfSx0Lmdlb0F6aW11dGhhbEVxdWlkaXN0YW50UmF3PXB2LHQuZ2VvQ29uaWNDb25mb3JtYWw9ZnVuY3Rpb24oKXtyZXR1cm4gZm8oX28pLnNjYWxlKDEwOS41KS5wYXJhbGxlbHMoWzMwLDMwXSl9LHQuZ2VvQ29uaWNDb25mb3JtYWxSYXc9X28sdC5nZW9Db25pY0VxdWFsQXJlYT1zbyx0Lmdlb0NvbmljRXF1YWxBcmVhUmF3PWNvLHQuZ2VvQ29uaWNFcXVpZGlzdGFudD1mdW5jdGlvbigpe3JldHVybiBmbyhtbykuc2NhbGUoMTMxLjE1NCkuY2VudGVyKFswLDEzLjkzODldKX0sdC5nZW9Db25pY0VxdWlkaXN0YW50UmF3PW1vLHQuZ2VvRXF1aXJlY3Rhbmd1bGFyPWZ1bmN0aW9uKCl7cmV0dXJuIGFvKGJvKS5zY2FsZSgxNTIuNjMpfSx0Lmdlb0VxdWlyZWN0YW5ndWxhclJhdz1ibyx0Lmdlb0dub21vbmljPWZ1bmN0aW9uKCl7cmV0dXJuIGFvKHhvKS5zY2FsZSgxNDQuMDQ5KS5jbGlwQW5nbGUoNjApfSx0Lmdlb0dub21vbmljUmF3PXhvLHQuZ2VvSWRlbnRpdHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7cmV0dXJuIGk9bz1udWxsLGF9dmFyIG4sZSxyLGksbyxhLHU9MSxmPTAsYz0wLHM9MSxsPTEsaD16aSxkPW51bGwscD16aTtyZXR1cm4gYT17c3RyZWFtOmZ1bmN0aW9uKHQpe3JldHVybiBpJiZvPT09dD9pOmk9aChwKG89dCkpfSxwb3N0Y2xpcDpmdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD1pLGQ9bj1lPXI9bnVsbCx0KCkpOnB9LGNsaXBFeHRlbnQ6ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9bnVsbD09aT8oZD1uPWU9cj1udWxsLHppKTp5aShkPStpWzBdWzBdLG49K2lbMF1bMV0sZT0raVsxXVswXSxyPStpWzFdWzFdKSx0KCkpOm51bGw9PWQ/bnVsbDpbW2Qsbl0sW2Uscl1dfSxzY2FsZTpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD13bygodT0rbikqcyx1KmwsZixjKSx0KCkpOnV9LHRyYW5zbGF0ZTpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD13byh1KnMsdSpsLGY9K25bMF0sYz0rblsxXSksdCgpKTpbZixjXX0scmVmbGVjdFg6ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9d28odSoocz1uPy0xOjEpLHUqbCxmLGMpLHQoKSk6czwwfSxyZWZsZWN0WTpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD13byh1KnMsdSoobD1uPy0xOjEpLGYsYyksdCgpKTpsPDB9LGZpdEV4dGVudDpmdW5jdGlvbih0LG4pe3JldHVybiB0byhhLHQsbil9LGZpdFNpemU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gbm8oYSx0LG4pfSxmaXRXaWR0aDpmdW5jdGlvbih0LG4pe3JldHVybiBlbyhhLHQsbil9LGZpdEhlaWdodDpmdW5jdGlvbih0LG4pe3JldHVybiBybyhhLHQsbil9fX0sdC5nZW9Qcm9qZWN0aW9uPWFvLHQuZ2VvUHJvamVjdGlvbk11dGF0b3I9dW8sdC5nZW9NZXJjYXRvcj1mdW5jdGlvbigpe3JldHVybiBnbyh2bykuc2NhbGUoOTYxL1dkKX0sdC5nZW9NZXJjYXRvclJhdz12byx0Lmdlb05hdHVyYWxFYXJ0aDE9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oTW8pLnNjYWxlKDE3NS4yOTUpfSx0Lmdlb05hdHVyYWxFYXJ0aDFSYXc9TW8sdC5nZW9PcnRob2dyYXBoaWM9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oQW8pLnNjYWxlKDI0OS41KS5jbGlwQW5nbGUoOTArSGQpfSx0Lmdlb09ydGhvZ3JhcGhpY1Jhdz1Bbyx0Lmdlb1N0ZXJlb2dyYXBoaWM9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oVG8pLnNjYWxlKDI1MCkuY2xpcEFuZ2xlKDE0Mil9LHQuZ2VvU3RlcmVvZ3JhcGhpY1Jhdz1Ubyx0Lmdlb1RyYW5zdmVyc2VNZXJjYXRvcj1mdW5jdGlvbigpe3ZhciB0PWdvKE5vKSxuPXQuY2VudGVyLGU9dC5yb3RhdGU7cmV0dXJuIHQuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24oWy10WzFdLHRbMF1dKToodD1uKCksW3RbMV0sLXRbMF1dKX0sdC5yb3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/ZShbdFswXSx0WzFdLHQubGVuZ3RoPjI/dFsyXSs5MDo5MF0pOih0PWUoKSxbdFswXSx0WzFdLHRbMl0tOTBdKX0sZShbMCwwLDkwXSkuc2NhbGUoMTU5LjE1NSl9LHQuZ2VvVHJhbnN2ZXJzZU1lcmNhdG9yUmF3PU5vLHQuZ2VvUm90YXRpb249aWksdC5nZW9TdHJlYW09YnIsdC5nZW9UcmFuc2Zvcm09ZnVuY3Rpb24odCl7cmV0dXJue3N0cmVhbTpRaSh0KX19LHQuY2x1c3Rlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG8sYT0wO3QuZWFjaEFmdGVyKGZ1bmN0aW9uKHQpe3ZhciBlPXQuY2hpbGRyZW47ZT8odC54PWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlZHVjZShFbywwKS90Lmxlbmd0aH0oZSksdC55PWZ1bmN0aW9uKHQpe3JldHVybiAxK3QucmVkdWNlKGtvLDApfShlKSk6KHQueD1vP2ErPW4odCxvKTowLHQueT0wLG89dCl9KTt2YXIgdT1mdW5jdGlvbih0KXtmb3IodmFyIG47bj10LmNoaWxkcmVuOyl0PW5bMF07cmV0dXJuIHR9KHQpLGY9ZnVuY3Rpb24odCl7Zm9yKHZhciBuO249dC5jaGlsZHJlbjspdD1uW24ubGVuZ3RoLTFdO3JldHVybiB0fSh0KSxjPXUueC1uKHUsZikvMixzPWYueCtuKGYsdSkvMjtyZXR1cm4gdC5lYWNoQWZ0ZXIoaT9mdW5jdGlvbihuKXtuLng9KG4ueC10LngpKmUsbi55PSh0Lnktbi55KSpyfTpmdW5jdGlvbihuKXtuLng9KG4ueC1jKS8ocy1jKSplLG4ueT0oMS0odC55P24ueS90Lnk6MSkpKnJ9KX12YXIgbj1TbyxlPTEscj0xLGk9ITE7cmV0dXJuIHQuc2VwYXJhdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1lLHQpOm59LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hMSxlPStuWzBdLHI9K25bMV0sdCk6aT9udWxsOltlLHJdfSx0Lm5vZGVTaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSEwLGU9K25bMF0scj0rblsxXSx0KTppP1tlLHJdOm51bGx9LHR9LHQuaGllcmFyY2h5PVBvLHQucGFjaz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIHQueD1lLzIsdC55PXIvMixuP3QuZWFjaEJlZm9yZShRbyhuKSkuZWFjaEFmdGVyKEpvKGksLjUpKS5lYWNoQmVmb3JlKEtvKDEpKTp0LmVhY2hCZWZvcmUoUW8oWm8pKS5lYWNoQWZ0ZXIoSm8oJG8sMSkpLmVhY2hBZnRlcihKbyhpLHQuci9NYXRoLm1pbihlLHIpKSkuZWFjaEJlZm9yZShLbyhNYXRoLm1pbihlLHIpLygyKnQucikpKSx0fXZhciBuPW51bGwsZT0xLHI9MSxpPSRvO3JldHVybiB0LnJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9udWxsOlZvKHQpfShlKSx0KTpufSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K25bMF0scj0rblsxXSx0KTpbZSxyXX0sdC5wYWRkaW5nPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpXbygrbiksdCk6aX0sdH0sdC5wYWNrU2libGluZ3M9ZnVuY3Rpb24odCl7cmV0dXJuIEdvKHQpLHR9LHQucGFja0VuY2xvc2U9VW8sdC5wYXJ0aXRpb249ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBvPXQuaGVpZ2h0KzE7cmV0dXJuIHQueDA9dC55MD1yLHQueDE9bix0LnkxPWUvbyx0LmVhY2hCZWZvcmUoZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7ZS5jaGlsZHJlbiYmbmEoZSxlLngwLHQqKGUuZGVwdGgrMSkvbixlLngxLHQqKGUuZGVwdGgrMikvbik7dmFyIGk9ZS54MCxvPWUueTAsYT1lLngxLXIsdT1lLnkxLXI7YTxpJiYoaT1hPShpK2EpLzIpLHU8byYmKG89dT0obyt1KS8yKSxlLngwPWksZS55MD1vLGUueDE9YSxlLnkxPXV9fShlLG8pKSxpJiZ0LmVhY2hCZWZvcmUodGEpLHR9dmFyIG49MSxlPTEscj0wLGk9ITE7cmV0dXJuIHQucm91bmQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ISFuLHQpOml9LHQuc2l6ZT1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rclswXSxlPStyWzFdLHQpOltuLGVdfSx0LnBhZGRpbmc9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K24sdCk6cn0sdH0sdC5zdHJhdGlmeT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIHIsaSxvLGEsdSxmLGMscz10Lmxlbmd0aCxsPW5ldyBBcnJheShzKSxoPXt9O2ZvcihpPTA7aTxzOysraSlyPXRbaV0sdT1sW2ldPW5ldyBEbyhyKSxudWxsIT0oZj1uKHIsaSx0KSkmJihmKz1cIlwiKSYmKGhbYz1ndisodS5pZD1mKV09YyBpbiBoP192OnUpO2ZvcihpPTA7aTxzOysraSlpZih1PWxbaV0sbnVsbCE9KGY9ZSh0W2ldLGksdCkpJiYoZis9XCJcIikpe2lmKCEoYT1oW2d2K2ZdKSl0aHJvdyBuZXcgRXJyb3IoXCJtaXNzaW5nOiBcIitmKTtpZihhPT09X3YpdGhyb3cgbmV3IEVycm9yKFwiYW1iaWd1b3VzOiBcIitmKTthLmNoaWxkcmVuP2EuY2hpbGRyZW4ucHVzaCh1KTphLmNoaWxkcmVuPVt1XSx1LnBhcmVudD1hfWVsc2V7aWYobyl0aHJvdyBuZXcgRXJyb3IoXCJtdWx0aXBsZSByb290c1wiKTtvPXV9aWYoIW8pdGhyb3cgbmV3IEVycm9yKFwibm8gcm9vdFwiKTtpZihvLnBhcmVudD15dixvLmVhY2hCZWZvcmUoZnVuY3Rpb24odCl7dC5kZXB0aD10LnBhcmVudC5kZXB0aCsxLC0tc30pLmVhY2hCZWZvcmUoTG8pLG8ucGFyZW50PW51bGwscz4wKXRocm93IG5ldyBFcnJvcihcImN5Y2xlXCIpO3JldHVybiBvfXZhciBuPWVhLGU9cmE7cmV0dXJuIHQuaWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49Vm8oZSksdCk6bn0sdC5wYXJlbnRJZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1WbyhuKSx0KTplfSx0fSx0LnRyZWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBmPWZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlLHIsaSxvLGE9bmV3IGNhKHQsMCksdT1bYV07bj11LnBvcCgpOylpZihyPW4uXy5jaGlsZHJlbilmb3Iobi5jaGlsZHJlbj1uZXcgQXJyYXkobz1yLmxlbmd0aCksaT1vLTE7aT49MDstLWkpdS5wdXNoKGU9bi5jaGlsZHJlbltpXT1uZXcgY2EocltpXSxpKSksZS5wYXJlbnQ9bjtyZXR1cm4oYS5wYXJlbnQ9bmV3IGNhKG51bGwsMCkpLmNoaWxkcmVuPVthXSxhfSh0KTtpZihmLmVhY2hBZnRlcihuKSxmLnBhcmVudC5tPS1mLnosZi5lYWNoQmVmb3JlKGUpLHUpdC5lYWNoQmVmb3JlKHIpO2Vsc2V7dmFyIGM9dCxzPXQsbD10O3QuZWFjaEJlZm9yZShmdW5jdGlvbih0KXt0Lng8Yy54JiYoYz10KSx0Lng+cy54JiYocz10KSx0LmRlcHRoPmwuZGVwdGgmJihsPXQpfSk7dmFyIGg9Yz09PXM/MTppKGMscykvMixkPWgtYy54LHA9by8ocy54K2grZCksdj1hLyhsLmRlcHRofHwxKTt0LmVhY2hCZWZvcmUoZnVuY3Rpb24odCl7dC54PSh0LngrZCkqcCx0Lnk9dC5kZXB0aCp2fSl9cmV0dXJuIHR9ZnVuY3Rpb24gbih0KXt2YXIgbj10LmNoaWxkcmVuLGU9dC5wYXJlbnQuY2hpbGRyZW4scj10Lmk/ZVt0LmktMV06bnVsbDtpZihuKXsoZnVuY3Rpb24odCl7Zm9yKHZhciBuLGU9MCxyPTAsaT10LmNoaWxkcmVuLG89aS5sZW5ndGg7LS1vPj0wOykobj1pW29dKS56Kz1lLG4ubSs9ZSxlKz1uLnMrKHIrPW4uYyl9KSh0KTt2YXIgbz0oblswXS56K25bbi5sZW5ndGgtMV0ueikvMjtyPyh0Lno9ci56K2kodC5fLHIuXyksdC5tPXQuei1vKTp0Lno9b31lbHNlIHImJih0Lno9ci56K2kodC5fLHIuXykpO3QucGFyZW50LkE9ZnVuY3Rpb24odCxuLGUpe2lmKG4pe2Zvcih2YXIgcixvPXQsYT10LHU9bixmPW8ucGFyZW50LmNoaWxkcmVuWzBdLGM9by5tLHM9YS5tLGw9dS5tLGg9Zi5tO3U9YWEodSksbz1vYShvKSx1JiZvOylmPW9hKGYpLChhPWFhKGEpKS5hPXQsKHI9dS56K2wtby56LWMraSh1Ll8sby5fKSk+MCYmKHVhKGZhKHUsdCxlKSx0LHIpLGMrPXIscys9ciksbCs9dS5tLGMrPW8ubSxoKz1mLm0scys9YS5tO3UmJiFhYShhKSYmKGEudD11LGEubSs9bC1zKSxvJiYhb2EoZikmJihmLnQ9byxmLm0rPWMtaCxlPXQpfXJldHVybiBlfSh0LHIsdC5wYXJlbnQuQXx8ZVswXSl9ZnVuY3Rpb24gZSh0KXt0Ll8ueD10LnordC5wYXJlbnQubSx0Lm0rPXQucGFyZW50Lm19ZnVuY3Rpb24gcih0KXt0LngqPW8sdC55PXQuZGVwdGgqYX12YXIgaT1pYSxvPTEsYT0xLHU9bnVsbDtyZXR1cm4gdC5zZXBhcmF0aW9uPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW4sdCk6aX0sdC5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSExLG89K25bMF0sYT0rblsxXSx0KTp1P251bGw6W28sYV19LHQubm9kZVNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9ITAsbz0rblswXSxhPStuWzFdLHQpOnU/W28sYV06bnVsbH0sdH0sdC50cmVlbWFwPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXtyZXR1cm4gdC54MD10LnkwPTAsdC54MT1pLHQueTE9byx0LmVhY2hCZWZvcmUobiksYT1bMF0sciYmdC5lYWNoQmVmb3JlKHRhKSx0fWZ1bmN0aW9uIG4odCl7dmFyIG49YVt0LmRlcHRoXSxyPXQueDArbixpPXQueTArbixvPXQueDEtbixoPXQueTEtbjtvPHImJihyPW89KHIrbykvMiksaDxpJiYoaT1oPShpK2gpLzIpLHQueDA9cix0LnkwPWksdC54MT1vLHQueTE9aCx0LmNoaWxkcmVuJiYobj1hW3QuZGVwdGgrMV09dSh0KS8yLHIrPWwodCktbixpKz1mKHQpLW4sby09Yyh0KS1uLGgtPXModCktbixvPHImJihyPW89KHIrbykvMiksaDxpJiYoaT1oPShpK2gpLzIpLGUodCxyLGksbyxoKSl9dmFyIGU9bXYscj0hMSxpPTEsbz0xLGE9WzBdLHU9JG8sZj0kbyxjPSRvLHM9JG8sbD0kbztyZXR1cm4gdC5yb3VuZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0hIW4sdCk6cn0sdC5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPStuWzBdLG89K25bMV0sdCk6W2ksb119LHQudGlsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1WbyhuKSx0KTplfSx0LnBhZGRpbmc9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dC5wYWRkaW5nSW5uZXIobikucGFkZGluZ091dGVyKG4pOnQucGFkZGluZ0lubmVyKCl9LHQucGFkZGluZ0lubmVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpXbygrbiksdCk6dX0sdC5wYWRkaW5nT3V0ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dC5wYWRkaW5nVG9wKG4pLnBhZGRpbmdSaWdodChuKS5wYWRkaW5nQm90dG9tKG4pLnBhZGRpbmdMZWZ0KG4pOnQucGFkZGluZ1RvcCgpfSx0LnBhZGRpbmdUb3A9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOldvKCtuKSx0KTpmfSx0LnBhZGRpbmdSaWdodD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246V28oK24pLHQpOmN9LHQucGFkZGluZ0JvdHRvbT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246V28oK24pLHQpOnN9LHQucGFkZGluZ0xlZnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOldvKCtuKSx0KTpsfSx0fSx0LnRyZWVtYXBCaW5hcnk9ZnVuY3Rpb24odCxuLGUscixpKXtmdW5jdGlvbiBvKHQsbixlLHIsaSxhLHUpe2lmKHQ+PW4tMSl7dmFyIGM9Zlt0XTtyZXR1cm4gYy54MD1yLGMueTA9aSxjLngxPWEsdm9pZChjLnkxPXUpfWZvcih2YXIgbD1zW3RdLGg9ZS8yK2wsZD10KzEscD1uLTE7ZDxwOyl7dmFyIHY9ZCtwPj4+MTtzW3ZdPGg/ZD12KzE6cD12fWgtc1tkLTFdPHNbZF0taCYmdCsxPGQmJi0tZDt2YXIgZz1zW2RdLWwseT1lLWc7aWYoYS1yPnUtaSl7dmFyIF89KHIqeSthKmcpL2U7byh0LGQsZyxyLGksXyx1KSxvKGQsbix5LF8saSxhLHUpfWVsc2V7dmFyIGI9KGkqeSt1KmcpL2U7byh0LGQsZyxyLGksYSxiKSxvKGQsbix5LHIsYixhLHUpfX12YXIgYSx1LGY9dC5jaGlsZHJlbixjPWYubGVuZ3RoLHM9bmV3IEFycmF5KGMrMSk7Zm9yKHNbMF09dT1hPTA7YTxjOysrYSlzW2ErMV09dSs9ZlthXS52YWx1ZTtvKDAsYyx0LnZhbHVlLG4sZSxyLGkpfSx0LnRyZWVtYXBEaWNlPW5hLHQudHJlZW1hcFNsaWNlPXNhLHQudHJlZW1hcFNsaWNlRGljZT1mdW5jdGlvbih0LG4sZSxyLGkpeygxJnQuZGVwdGg/c2E6bmEpKHQsbixlLHIsaSl9LHQudHJlZW1hcFNxdWFyaWZ5PW12LHQudHJlZW1hcFJlc3F1YXJpZnk9eHYsdC5pbnRlcnBvbGF0ZT1kbix0LmludGVycG9sYXRlQXJyYXk9Zm4sdC5pbnRlcnBvbGF0ZUJhc2lzPUt0LHQuaW50ZXJwb2xhdGVCYXNpc0Nsb3NlZD10bix0LmludGVycG9sYXRlRGF0ZT1jbix0LmludGVycG9sYXRlTnVtYmVyPXNuLHQuaW50ZXJwb2xhdGVPYmplY3Q9bG4sdC5pbnRlcnBvbGF0ZVJvdW5kPXBuLHQuaW50ZXJwb2xhdGVTdHJpbmc9aG4sdC5pbnRlcnBvbGF0ZVRyYW5zZm9ybUNzcz1zbCx0LmludGVycG9sYXRlVHJhbnNmb3JtU3ZnPWxsLHQuaW50ZXJwb2xhdGVab29tPV9uLHQuaW50ZXJwb2xhdGVSZ2I9cmwsdC5pbnRlcnBvbGF0ZVJnYkJhc2lzPWlsLHQuaW50ZXJwb2xhdGVSZ2JCYXNpc0Nsb3NlZD1vbCx0LmludGVycG9sYXRlSHNsPWdsLHQuaW50ZXJwb2xhdGVIc2xMb25nPXlsLHQuaW50ZXJwb2xhdGVMYWI9ZnVuY3Rpb24odCxuKXt2YXIgZT1hbigodD1GdCh0KSkubCwobj1GdChuKSkubCkscj1hbih0LmEsbi5hKSxpPWFuKHQuYixuLmIpLG89YW4odC5vcGFjaXR5LG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0Lmw9ZShuKSx0LmE9cihuKSx0LmI9aShuKSx0Lm9wYWNpdHk9byhuKSx0K1wiXCJ9fSx0LmludGVycG9sYXRlSGNsPV9sLHQuaW50ZXJwb2xhdGVIY2xMb25nPWJsLHQuaW50ZXJwb2xhdGVDdWJlaGVsaXg9bWwsdC5pbnRlcnBvbGF0ZUN1YmVoZWxpeExvbmc9eGwsdC5waWVjZXdpc2U9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9MCxyPW4ubGVuZ3RoLTEsaT1uWzBdLG89bmV3IEFycmF5KHI8MD8wOnIpO2U8cjspb1tlXT10KGksaT1uWysrZV0pO3JldHVybiBmdW5jdGlvbih0KXt2YXIgbj1NYXRoLm1heCgwLE1hdGgubWluKHItMSxNYXRoLmZsb29yKHQqPXIpKSk7cmV0dXJuIG9bbl0odC1uKX19LHQucXVhbnRpemU9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWVbcl09dChyLyhuLTEpKTtyZXR1cm4gZX0sdC5wYXRoPW9lLHQucG9seWdvbkFyZWE9ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGU9LTEscj10Lmxlbmd0aCxpPXRbci0xXSxvPTA7KytlPHI7KW49aSxpPXRbZV0sbys9blsxXSppWzBdLW5bMF0qaVsxXTtyZXR1cm4gby8yfSx0LnBvbHlnb25DZW50cm9pZD1mdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyPS0xLGk9dC5sZW5ndGgsbz0wLGE9MCx1PXRbaS0xXSxmPTA7KytyPGk7KW49dSx1PXRbcl0sZis9ZT1uWzBdKnVbMV0tdVswXSpuWzFdLG8rPShuWzBdK3VbMF0pKmUsYSs9KG5bMV0rdVsxXSkqZTtyZXR1cm4gZio9Myxbby9mLGEvZl19LHQucG9seWdvbkh1bGw9ZnVuY3Rpb24odCl7aWYoKGU9dC5sZW5ndGgpPDMpcmV0dXJuIG51bGw7dmFyIG4sZSxyPW5ldyBBcnJheShlKSxpPW5ldyBBcnJheShlKTtmb3Iobj0wO248ZTsrK24pcltuXT1bK3Rbbl1bMF0sK3Rbbl1bMV0sbl07Zm9yKHIuc29ydChkYSksbj0wO248ZTsrK24paVtuXT1bcltuXVswXSwtcltuXVsxXV07dmFyIG89cGEociksYT1wYShpKSx1PWFbMF09PT1vWzBdLGY9YVthLmxlbmd0aC0xXT09PW9bby5sZW5ndGgtMV0sYz1bXTtmb3Iobj1vLmxlbmd0aC0xO24+PTA7LS1uKWMucHVzaCh0W3Jbb1tuXV1bMl1dKTtmb3Iobj0rdTtuPGEubGVuZ3RoLWY7KytuKWMucHVzaCh0W3JbYVtuXV1bMl1dKTtyZXR1cm4gY30sdC5wb2x5Z29uQ29udGFpbnM9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGUscixpPXQubGVuZ3RoLG89dFtpLTFdLGE9blswXSx1PW5bMV0sZj1vWzBdLGM9b1sxXSxzPSExLGw9MDtsPGk7KytsKWU9KG89dFtsXSlbMF0sKHI9b1sxXSk+dSE9Yz51JiZhPChmLWUpKih1LXIpLyhjLXIpK2UmJihzPSFzKSxmPWUsYz1yO3JldHVybiBzfSx0LnBvbHlnb25MZW5ndGg9ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGUscj0tMSxpPXQubGVuZ3RoLG89dFtpLTFdLGE9b1swXSx1PW9bMV0sZj0wOysrcjxpOyluPWEsZT11LG4tPWE9KG89dFtyXSlbMF0sZS09dT1vWzFdLGYrPU1hdGguc3FydChuKm4rZSplKTtyZXR1cm4gZn0sdC5xdWFkdHJlZT1qZSx0LnJhbmRvbVVuaWZvcm09d3YsdC5yYW5kb21Ob3JtYWw9TXYsdC5yYW5kb21Mb2dOb3JtYWw9QXYsdC5yYW5kb21CYXRlcz1Odix0LnJhbmRvbUlyd2luSGFsbD1Udix0LnJhbmRvbUV4cG9uZW50aWFsPVN2LHQuc2NhbGVCYW5kPXlhLHQuc2NhbGVQb2ludD1mdW5jdGlvbigpe3JldHVybiBfYSh5YSgpLnBhZGRpbmdJbm5lcigxKSl9LHQuc2NhbGVJZGVudGl0eT1FYSx0LnNjYWxlTGluZWFyPVNhLHQuc2NhbGVMb2c9VWEsdC5zY2FsZU9yZGluYWw9Z2EsdC5zY2FsZUltcGxpY2l0PVB2LHQuc2NhbGVQb3c9T2EsdC5zY2FsZVNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2EoKS5leHBvbmVudCguNSl9LHQuc2NhbGVRdWFudGlsZT1ZYSx0LnNjYWxlUXVhbnRpemU9QmEsdC5zY2FsZVRocmVzaG9sZD1GYSx0LnNjYWxlVGltZT1mdW5jdGlvbigpe3JldHVybiBvZihjZyx1ZyxWdixYdixqdixGdixZdixEdix0LnRpbWVGb3JtYXQpLmRvbWFpbihbbmV3IERhdGUoMmUzLDAsMSksbmV3IERhdGUoMmUzLDAsMildKX0sdC5zY2FsZVV0Yz1mdW5jdGlvbigpe3JldHVybiBvZihSZyxQZyx5Zyx2ZyxkZyxsZyxZdixEdix0LnV0Y0Zvcm1hdCkuZG9tYWluKFtEYXRlLlVUQygyZTMsMCwxKSxEYXRlLlVUQygyZTMsMCwyKV0pfSx0LnNjYWxlU2VxdWVudGlhbD1hZix0LnNjYWxlRGl2ZXJnaW5nPXVmLHQuc2NoZW1lQ2F0ZWdvcnkxMD1aZyx0LnNjaGVtZUFjY2VudD1RZyx0LnNjaGVtZURhcmsyPUpnLHQuc2NoZW1lUGFpcmVkPUtnLHQuc2NoZW1lUGFzdGVsMT10eSx0LnNjaGVtZVBhc3RlbDI9bnksdC5zY2hlbWVTZXQxPWV5LHQuc2NoZW1lU2V0Mj1yeSx0LnNjaGVtZVNldDM9aXksdC5pbnRlcnBvbGF0ZUJyQkc9YXksdC5zY2hlbWVCckJHPW95LHQuaW50ZXJwb2xhdGVQUkduPWZ5LHQuc2NoZW1lUFJHbj11eSx0LmludGVycG9sYXRlUGlZRz1zeSx0LnNjaGVtZVBpWUc9Y3ksdC5pbnRlcnBvbGF0ZVB1T3I9aHksdC5zY2hlbWVQdU9yPWx5LHQuaW50ZXJwb2xhdGVSZEJ1PXB5LHQuc2NoZW1lUmRCdT1keSx0LmludGVycG9sYXRlUmRHeT1neSx0LnNjaGVtZVJkR3k9dnksdC5pbnRlcnBvbGF0ZVJkWWxCdT1feSx0LnNjaGVtZVJkWWxCdT15eSx0LmludGVycG9sYXRlUmRZbEduPW15LHQuc2NoZW1lUmRZbEduPWJ5LHQuaW50ZXJwb2xhdGVTcGVjdHJhbD13eSx0LnNjaGVtZVNwZWN0cmFsPXh5LHQuaW50ZXJwb2xhdGVCdUduPUF5LHQuc2NoZW1lQnVHbj1NeSx0LmludGVycG9sYXRlQnVQdT1OeSx0LnNjaGVtZUJ1UHU9VHksdC5pbnRlcnBvbGF0ZUduQnU9RXksdC5zY2hlbWVHbkJ1PVN5LHQuaW50ZXJwb2xhdGVPclJkPUN5LHQuc2NoZW1lT3JSZD1reSx0LmludGVycG9sYXRlUHVCdUduPXp5LHQuc2NoZW1lUHVCdUduPVB5LHQuaW50ZXJwb2xhdGVQdUJ1PUx5LHQuc2NoZW1lUHVCdT1SeSx0LmludGVycG9sYXRlUHVSZD1VeSx0LnNjaGVtZVB1UmQ9RHksdC5pbnRlcnBvbGF0ZVJkUHU9T3ksdC5zY2hlbWVSZFB1PXF5LHQuaW50ZXJwb2xhdGVZbEduQnU9QnksdC5zY2hlbWVZbEduQnU9WXksdC5pbnRlcnBvbGF0ZVlsR249SXksdC5zY2hlbWVZbEduPUZ5LHQuaW50ZXJwb2xhdGVZbE9yQnI9SHksdC5zY2hlbWVZbE9yQnI9anksdC5pbnRlcnBvbGF0ZVlsT3JSZD1HeSx0LnNjaGVtZVlsT3JSZD1YeSx0LmludGVycG9sYXRlQmx1ZXM9JHksdC5zY2hlbWVCbHVlcz1WeSx0LmludGVycG9sYXRlR3JlZW5zPVp5LHQuc2NoZW1lR3JlZW5zPVd5LHQuaW50ZXJwb2xhdGVHcmV5cz1KeSx0LnNjaGVtZUdyZXlzPVF5LHQuaW50ZXJwb2xhdGVQdXJwbGVzPXRfLHQuc2NoZW1lUHVycGxlcz1LeSx0LmludGVycG9sYXRlUmVkcz1lXyx0LnNjaGVtZVJlZHM9bl8sdC5pbnRlcnBvbGF0ZU9yYW5nZXM9aV8sdC5zY2hlbWVPcmFuZ2VzPXJfLHQuaW50ZXJwb2xhdGVDdWJlaGVsaXhEZWZhdWx0PW9fLHQuaW50ZXJwb2xhdGVSYWluYm93PWZ1bmN0aW9uKHQpeyh0PDB8fHQ+MSkmJih0LT1NYXRoLmZsb29yKHQpKTt2YXIgbj1NYXRoLmFicyh0LS41KTtyZXR1cm4gZl8uaD0zNjAqdC0xMDAsZl8ucz0xLjUtMS41Km4sZl8ubD0uOC0uOSpuLGZfK1wiXCJ9LHQuaW50ZXJwb2xhdGVXYXJtPWFfLHQuaW50ZXJwb2xhdGVDb29sPXVfLHQuaW50ZXJwb2xhdGVTaW5lYm93PWZ1bmN0aW9uKHQpe3ZhciBuO3JldHVybiB0PSguNS10KSpNYXRoLlBJLGNfLnI9MjU1KihuPU1hdGguc2luKHQpKSpuLGNfLmc9MjU1KihuPU1hdGguc2luKHQrc18pKSpuLGNfLmI9MjU1KihuPU1hdGguc2luKHQrbF8pKSpuLGNfK1wiXCJ9LHQuaW50ZXJwb2xhdGVWaXJpZGlzPWhfLHQuaW50ZXJwb2xhdGVNYWdtYT1kXyx0LmludGVycG9sYXRlSW5mZXJubz1wXyx0LmludGVycG9sYXRlUGxhc21hPXZfLHQuY3JlYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBjdChDKHQpLmNhbGwoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSl9LHQuY3JlYXRvcj1DLHQubG9jYWw9c3QsdC5tYXRjaGVyPWJzLHQubW91c2U9cHQsdC5uYW1lc3BhY2U9ayx0Lm5hbWVzcGFjZXM9dnMsdC5jbGllbnRQb2ludD1kdCx0LnNlbGVjdD1jdCx0LnNlbGVjdEFsbD1mdW5jdGlvbih0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD9uZXcgdXQoW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCldLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgdXQoW251bGw9PXQ/W106dF0sd3MpfSx0LnNlbGVjdGlvbj1mdCx0LnNlbGVjdG9yPXosdC5zZWxlY3RvckFsbD1MLHQuc3R5bGU9Rix0LnRvdWNoPXZ0LHQudG91Y2hlcz1mdW5jdGlvbih0LG4pe251bGw9PW4mJihuPWh0KCkudG91Y2hlcyk7Zm9yKHZhciBlPTAscj1uP24ubGVuZ3RoOjAsaT1uZXcgQXJyYXkocik7ZTxyOysrZSlpW2VdPWR0KHQsbltlXSk7cmV0dXJuIGl9LHQud2luZG93PUIsdC5jdXN0b21FdmVudD1vdCx0LmFyYz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgdCxjLHM9K24uYXBwbHkodGhpcyxhcmd1bWVudHMpLGw9K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLGg9by5hcHBseSh0aGlzLGFyZ3VtZW50cyktVF8sZD1hLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1UXyxwPWdfKGQtaCksdj1kPmg7aWYoZnx8KGY9dD1vZSgpKSxsPHMmJihjPWwsbD1zLHM9YyksbD5NXylpZihwPk5fLU1fKWYubW92ZVRvKGwqX18oaCksbCp4XyhoKSksZi5hcmMoMCwwLGwsaCxkLCF2KSxzPk1fJiYoZi5tb3ZlVG8ocypfXyhkKSxzKnhfKGQpKSxmLmFyYygwLDAscyxkLGgsdikpO2Vsc2V7dmFyIGcseSxfPWgsYj1kLG09aCx4PWQsdz1wLE09cCxBPXUuYXBwbHkodGhpcyxhcmd1bWVudHMpLzIsVD1BPk1fJiYoaT8raS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6d18ocypzK2wqbCkpLE49bV8oZ18obC1zKS8yLCtyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksUz1OLEU9TjtpZihUPk1fKXt2YXIgaz1oZihUL3MqeF8oQSkpLEM9aGYoVC9sKnhfKEEpKTsody09MiprKT5NXz8oayo9dj8xOi0xLG0rPWsseC09ayk6KHc9MCxtPXg9KGgrZCkvMiksKE0tPTIqQyk+TV8/KEMqPXY/MTotMSxfKz1DLGItPUMpOihNPTAsXz1iPShoK2QpLzIpfXZhciBQPWwqX18oXyksej1sKnhfKF8pLFI9cypfXyh4KSxMPXMqeF8oeCk7aWYoTj5NXyl7dmFyIEQ9bCpfXyhiKSxVPWwqeF8oYikscT1zKl9fKG0pLE89cyp4XyhtKTtpZihwPEFfKXt2YXIgWT13Pk1fP2Z1bmN0aW9uKHQsbixlLHIsaSxvLGEsdSl7dmFyIGY9ZS10LGM9ci1uLHM9YS1pLGw9dS1vLGg9KHMqKG4tbyktbCoodC1pKSkvKGwqZi1zKmMpO3JldHVyblt0K2gqZixuK2gqY119KFAseixxLE8sRCxVLFIsTCk6W1IsTF0sQj1QLVlbMF0sRj16LVlbMV0sST1ELVlbMF0saj1VLVlbMV0sSD0xL3hfKGZ1bmN0aW9uKHQpe3JldHVybiB0PjE/MDp0PC0xP0FfOk1hdGguYWNvcyh0KX0oKEIqSStGKmopLyh3XyhCKkIrRipGKSp3XyhJKkkraipqKSkpLzIpLFg9d18oWVswXSpZWzBdK1lbMV0qWVsxXSk7Uz1tXyhOLChzLVgpLyhILTEpKSxFPW1fKE4sKGwtWCkvKEgrMSkpfX1NPk1fP0U+TV8/KGc9X2YocSxPLFAseixsLEUsdikseT1fZihELFUsUixMLGwsRSx2KSxmLm1vdmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLEU8Tj9mLmFyYyhnLmN4LGcuY3ksRSx5XyhnLnkwMSxnLngwMSkseV8oeS55MDEseS54MDEpLCF2KTooZi5hcmMoZy5jeCxnLmN5LEUseV8oZy55MDEsZy54MDEpLHlfKGcueTExLGcueDExKSwhdiksZi5hcmMoMCwwLGwseV8oZy5jeStnLnkxMSxnLmN4K2cueDExKSx5Xyh5LmN5K3kueTExLHkuY3greS54MTEpLCF2KSxmLmFyYyh5LmN4LHkuY3ksRSx5Xyh5LnkxMSx5LngxMSkseV8oeS55MDEseS54MDEpLCF2KSkpOihmLm1vdmVUbyhQLHopLGYuYXJjKDAsMCxsLF8sYiwhdikpOmYubW92ZVRvKFAseikscz5NXyYmdz5NXz9TPk1fPyhnPV9mKFIsTCxELFUscywtUyx2KSx5PV9mKFAseixxLE8scywtUyx2KSxmLmxpbmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLFM8Tj9mLmFyYyhnLmN4LGcuY3ksUyx5XyhnLnkwMSxnLngwMSkseV8oeS55MDEseS54MDEpLCF2KTooZi5hcmMoZy5jeCxnLmN5LFMseV8oZy55MDEsZy54MDEpLHlfKGcueTExLGcueDExKSwhdiksZi5hcmMoMCwwLHMseV8oZy5jeStnLnkxMSxnLmN4K2cueDExKSx5Xyh5LmN5K3kueTExLHkuY3greS54MTEpLHYpLGYuYXJjKHkuY3gseS5jeSxTLHlfKHkueTExLHkueDExKSx5Xyh5LnkwMSx5LngwMSksIXYpKSk6Zi5hcmMoMCwwLHMseCxtLHYpOmYubGluZVRvKFIsTCl9ZWxzZSBmLm1vdmVUbygwLDApO2lmKGYuY2xvc2VQYXRoKCksdClyZXR1cm4gZj1udWxsLHQrXCJcInx8bnVsbH12YXIgbj1kZixlPXBmLHI9bGYoMCksaT1udWxsLG89dmYsYT1nZix1PXlmLGY9bnVsbDtyZXR1cm4gdC5jZW50cm9pZD1mdW5jdGlvbigpe3ZhciB0PSgrbi5hcHBseSh0aGlzLGFyZ3VtZW50cykrICtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkvMixyPSgrby5hcHBseSh0aGlzLGFyZ3VtZW50cykrICthLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkvMi1BXy8yO3JldHVybltfXyhyKSp0LHhfKHIpKnRdfSx0LmlubmVyUmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpsZigrZSksdCk6bn0sdC5vdXRlclJhZGl1cz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOmV9LHQuY29ybmVyUmFkaXVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6cn0sdC5wYWRSYWRpdXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09bj9udWxsOlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6aX0sdC5zdGFydEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6b30sdC5lbmRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOmF9LHQucGFkQW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTp1fSx0LmNvbnRleHQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9bnVsbD09bj9udWxsOm4sdCk6Zn0sdH0sdC5hcmVhPUFmLHQubGluZT1NZix0LnBpZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIHUsZixjLHMsbCxoPXQubGVuZ3RoLGQ9MCxwPW5ldyBBcnJheShoKSx2PW5ldyBBcnJheShoKSxnPStpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx5PU1hdGgubWluKE5fLE1hdGgubWF4KC1OXyxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1nKSksXz1NYXRoLm1pbihNYXRoLmFicyh5KS9oLGEuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxiPV8qKHk8MD8tMToxKTtmb3IodT0wO3U8aDsrK3UpKGw9dltwW3VdPXVdPStuKHRbdV0sdSx0KSk+MCYmKGQrPWwpO2ZvcihudWxsIT1lP3Auc29ydChmdW5jdGlvbih0LG4pe3JldHVybiBlKHZbdF0sdltuXSl9KTpudWxsIT1yJiZwLnNvcnQoZnVuY3Rpb24obixlKXtyZXR1cm4gcih0W25dLHRbZV0pfSksdT0wLGM9ZD8oeS1oKmIpL2Q6MDt1PGg7Kyt1LGc9cylmPXBbdV0scz1nKygobD12W2ZdKT4wP2wqYzowKStiLHZbZl09e2RhdGE6dFtmXSxpbmRleDp1LHZhbHVlOmwsc3RhcnRBbmdsZTpnLGVuZEFuZ2xlOnMscGFkQW5nbGU6X307cmV0dXJuIHZ9dmFyIG49TmYsZT1UZixyPW51bGwsaT1sZigwKSxvPWxmKE5fKSxhPWxmKDApO3JldHVybiB0LnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpsZigrZSksdCk6bn0sdC5zb3J0VmFsdWVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW4scj1udWxsLHQpOmV9LHQuc29ydD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1uLGU9bnVsbCx0KTpyfSx0LnN0YXJ0QW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTppfSx0LmVuZEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6b30sdC5wYWRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOmF9LHR9LHQuYXJlYVJhZGlhbD1QZix0LnJhZGlhbEFyZWE9UGYsdC5saW5lUmFkaWFsPUNmLHQucmFkaWFsTGluZT1DZix0LnBvaW50UmFkaWFsPXpmLHQubGlua0hvcml6b250YWw9ZnVuY3Rpb24oKXtyZXR1cm4gRGYoVWYpfSx0LmxpbmtWZXJ0aWNhbD1mdW5jdGlvbigpe3JldHVybiBEZihxZil9LHQubGlua1JhZGlhbD1mdW5jdGlvbigpe3ZhciB0PURmKE9mKTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0fSx0LnN5bWJvbD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgdDtpZihyfHwocj10PW9lKCkpLG4uYXBwbHkodGhpcyxhcmd1bWVudHMpLmRyYXcociwrZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLHQpcmV0dXJuIHI9bnVsbCx0K1wiXCJ8fG51bGx9dmFyIG49bGYoa18pLGU9bGYoNjQpLHI9bnVsbDtyZXR1cm4gdC50eXBlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpsZihlKSx0KTpufSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTplfSx0LmNvbnRleHQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj9udWxsOm4sdCk6cn0sdH0sdC5zeW1ib2xzPVhfLHQuc3ltYm9sQ2lyY2xlPWtfLHQuc3ltYm9sQ3Jvc3M9Q18sdC5zeW1ib2xEaWFtb25kPVJfLHQuc3ltYm9sU3F1YXJlPU9fLHQuc3ltYm9sU3Rhcj1xXyx0LnN5bWJvbFRyaWFuZ2xlPUJfLHQuc3ltYm9sV3llPUhfLHQuY3VydmVCYXNpc0Nsb3NlZD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IElmKHQpfSx0LmN1cnZlQmFzaXNPcGVuPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgamYodCl9LHQuY3VydmVCYXNpcz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEZmKHQpfSx0LmN1cnZlQnVuZGxlPUdfLHQuY3VydmVDYXJkaW5hbENsb3NlZD0kXyx0LmN1cnZlQ2FyZGluYWxPcGVuPVdfLHQuY3VydmVDYXJkaW5hbD1WXyx0LmN1cnZlQ2F0bXVsbFJvbUNsb3NlZD1RXyx0LmN1cnZlQ2F0bXVsbFJvbU9wZW49Sl8sdC5jdXJ2ZUNhdG11bGxSb209Wl8sdC5jdXJ2ZUxpbmVhckNsb3NlZD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEtmKHQpfSx0LmN1cnZlTGluZWFyPW1mLHQuY3VydmVNb25vdG9uZVg9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBpYyh0KX0sdC5jdXJ2ZU1vbm90b25lWT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG9jKHQpfSx0LmN1cnZlTmF0dXJhbD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHVjKHQpfSx0LmN1cnZlU3RlcD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGNjKHQsLjUpfSx0LmN1cnZlU3RlcEFmdGVyPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgY2ModCwxKX0sdC5jdXJ2ZVN0ZXBCZWZvcmU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBjYyh0LDApfSx0LnN0YWNrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgbyxhLHU9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyksZj10Lmxlbmd0aCxjPXUubGVuZ3RoLHM9bmV3IEFycmF5KGMpO2ZvcihvPTA7bzxjOysrbyl7Zm9yKHZhciBsLGg9dVtvXSxkPXNbb109bmV3IEFycmF5KGYpLHA9MDtwPGY7KytwKWRbcF09bD1bMCwraSh0W3BdLGgscCx0KV0sbC5kYXRhPXRbcF07ZC5rZXk9aH1mb3Iobz0wLGE9ZShzKTtvPGM7KytvKXNbYVtvXV0uaW5kZXg9bztyZXR1cm4gcihzLGEpLHN9dmFyIG49bGYoW10pLGU9bGMscj1zYyxpPWhjO3JldHVybiB0LmtleXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKEVfLmNhbGwoZSkpLHQpOm59LHQudmFsdWU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTppfSx0Lm9yZGVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW51bGw9PW4/bGM6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKEVfLmNhbGwobikpLHQpOmV9LHQub2Zmc2V0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PW4/c2M6bix0KTpyfSx0fSx0LnN0YWNrT2Zmc2V0RXhwYW5kPWZ1bmN0aW9uKHQsbil7aWYoKHI9dC5sZW5ndGgpPjApe2Zvcih2YXIgZSxyLGksbz0wLGE9dFswXS5sZW5ndGg7bzxhOysrbyl7Zm9yKGk9ZT0wO2U8cjsrK2UpaSs9dFtlXVtvXVsxXXx8MDtpZihpKWZvcihlPTA7ZTxyOysrZSl0W2VdW29dWzFdLz1pfXNjKHQsbil9fSx0LnN0YWNrT2Zmc2V0RGl2ZXJnaW5nPWZ1bmN0aW9uKHQsbil7aWYoKHU9dC5sZW5ndGgpPjEpZm9yKHZhciBlLHIsaSxvLGEsdSxmPTAsYz10W25bMF1dLmxlbmd0aDtmPGM7KytmKWZvcihvPWE9MCxlPTA7ZTx1OysrZSkoaT0ocj10W25bZV1dW2ZdKVsxXS1yWzBdKT49MD8oclswXT1vLHJbMV09bys9aSk6aTwwPyhyWzFdPWEsclswXT1hKz1pKTpyWzBdPW99LHQuc3RhY2tPZmZzZXROb25lPXNjLHQuc3RhY2tPZmZzZXRTaWxob3VldHRlPWZ1bmN0aW9uKHQsbil7aWYoKGU9dC5sZW5ndGgpPjApe2Zvcih2YXIgZSxyPTAsaT10W25bMF1dLG89aS5sZW5ndGg7cjxvOysrcil7Zm9yKHZhciBhPTAsdT0wO2E8ZTsrK2EpdSs9dFthXVtyXVsxXXx8MDtpW3JdWzFdKz1pW3JdWzBdPS11LzJ9c2ModCxuKX19LHQuc3RhY2tPZmZzZXRXaWdnbGU9ZnVuY3Rpb24odCxuKXtpZigoaT10Lmxlbmd0aCk+MCYmKHI9KGU9dFtuWzBdXSkubGVuZ3RoKT4wKXtmb3IodmFyIGUscixpLG89MCxhPTE7YTxyOysrYSl7Zm9yKHZhciB1PTAsZj0wLGM9MDt1PGk7Kyt1KXtmb3IodmFyIHM9dFtuW3VdXSxsPXNbYV1bMV18fDAsaD0obC0oc1thLTFdWzFdfHwwKSkvMixkPTA7ZDx1OysrZCl7dmFyIHA9dFtuW2RdXTtoKz0ocFthXVsxXXx8MCktKHBbYS0xXVsxXXx8MCl9Zis9bCxjKz1oKmx9ZVthLTFdWzFdKz1lW2EtMV1bMF09byxmJiYoby09Yy9mKX1lW2EtMV1bMV0rPWVbYS0xXVswXT1vLHNjKHQsbil9fSx0LnN0YWNrT3JkZXJBc2NlbmRpbmc9ZGMsdC5zdGFja09yZGVyRGVzY2VuZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gZGModCkucmV2ZXJzZSgpfSx0LnN0YWNrT3JkZXJJbnNpZGVPdXQ9ZnVuY3Rpb24odCl7dmFyIG4sZSxyPXQubGVuZ3RoLGk9dC5tYXAocGMpLG89bGModCkuc29ydChmdW5jdGlvbih0LG4pe3JldHVybiBpW25dLWlbdF19KSxhPTAsdT0wLGY9W10sYz1bXTtmb3Iobj0wO248cjsrK24pZT1vW25dLGE8dT8oYSs9aVtlXSxmLnB1c2goZSkpOih1Kz1pW2VdLGMucHVzaChlKSk7cmV0dXJuIGMucmV2ZXJzZSgpLmNvbmNhdChmKX0sdC5zdGFja09yZGVyTm9uZT1sYyx0LnN0YWNrT3JkZXJSZXZlcnNlPWZ1bmN0aW9uKHQpe3JldHVybiBsYyh0KS5yZXZlcnNlKCl9LHQudGltZUludGVydmFsPUlhLHQudGltZU1pbGxpc2Vjb25kPUR2LHQudGltZU1pbGxpc2Vjb25kcz1Vdix0LnV0Y01pbGxpc2Vjb25kPUR2LHQudXRjTWlsbGlzZWNvbmRzPVV2LHQudGltZVNlY29uZD1Zdix0LnRpbWVTZWNvbmRzPUJ2LHQudXRjU2Vjb25kPVl2LHQudXRjU2Vjb25kcz1Cdix0LnRpbWVNaW51dGU9RnYsdC50aW1lTWludXRlcz1Jdix0LnRpbWVIb3VyPWp2LHQudGltZUhvdXJzPUh2LHQudGltZURheT1Ydix0LnRpbWVEYXlzPUd2LHQudGltZVdlZWs9VnYsdC50aW1lV2Vla3M9dGcsdC50aW1lU3VuZGF5PVZ2LHQudGltZVN1bmRheXM9dGcsdC50aW1lTW9uZGF5PSR2LHQudGltZU1vbmRheXM9bmcsdC50aW1lVHVlc2RheT1Xdix0LnRpbWVUdWVzZGF5cz1lZyx0LnRpbWVXZWRuZXNkYXk9WnYsdC50aW1lV2VkbmVzZGF5cz1yZyx0LnRpbWVUaHVyc2RheT1Rdix0LnRpbWVUaHVyc2RheXM9aWcsdC50aW1lRnJpZGF5PUp2LHQudGltZUZyaWRheXM9b2csdC50aW1lU2F0dXJkYXk9S3YsdC50aW1lU2F0dXJkYXlzPWFnLHQudGltZU1vbnRoPXVnLHQudGltZU1vbnRocz1mZyx0LnRpbWVZZWFyPWNnLHQudGltZVllYXJzPXNnLHQudXRjTWludXRlPWxnLHQudXRjTWludXRlcz1oZyx0LnV0Y0hvdXI9ZGcsdC51dGNIb3Vycz1wZyx0LnV0Y0RheT12Zyx0LnV0Y0RheXM9Z2csdC51dGNXZWVrPXlnLHQudXRjV2Vla3M9QWcsdC51dGNTdW5kYXk9eWcsdC51dGNTdW5kYXlzPUFnLHQudXRjTW9uZGF5PV9nLHQudXRjTW9uZGF5cz1UZyx0LnV0Y1R1ZXNkYXk9YmcsdC51dGNUdWVzZGF5cz1OZyx0LnV0Y1dlZG5lc2RheT1tZyx0LnV0Y1dlZG5lc2RheXM9U2csdC51dGNUaHVyc2RheT14Zyx0LnV0Y1RodXJzZGF5cz1FZyx0LnV0Y0ZyaWRheT13Zyx0LnV0Y0ZyaWRheXM9a2csdC51dGNTYXR1cmRheT1NZyx0LnV0Y1NhdHVyZGF5cz1DZyx0LnV0Y01vbnRoPVBnLHQudXRjTW9udGhzPXpnLHQudXRjWWVhcj1SZyx0LnV0Y1llYXJzPURnLHQudGltZUZvcm1hdERlZmF1bHRMb2NhbGU9bmYsdC50aW1lRm9ybWF0TG9jYWxlPSRhLHQuaXNvRm9ybWF0PUZnLHQuaXNvUGFyc2U9SWcsdC5ub3c9d24sdC50aW1lcj1Ubix0LnRpbWVyRmx1c2g9Tm4sdC50aW1lb3V0PUNuLHQuaW50ZXJ2YWw9ZnVuY3Rpb24odCxuLGUpe3ZhciByPW5ldyBBbixpPW47cmV0dXJuIG51bGw9PW4/KHIucmVzdGFydCh0LG4sZSkscik6KG49K24sZT1udWxsPT1lP3duKCk6K2Usci5yZXN0YXJ0KGZ1bmN0aW9uIG8oYSl7YSs9aSxyLnJlc3RhcnQobyxpKz1uLGUpLHQoYSl9LG4sZSkscil9LHQudHJhbnNpdGlvbj1Zbix0LmFjdGl2ZT1mdW5jdGlvbih0LG4pe3ZhciBlLHIsaT10Ll9fdHJhbnNpdGlvbjtpZihpKXtuPW51bGw9PW4/bnVsbDpuK1wiXCI7Zm9yKHIgaW4gaSlpZigoZT1pW3JdKS5zdGF0ZT5MbCYmZS5uYW1lPT09bilyZXR1cm4gbmV3IE9uKFtbdF1dLGhoLG4sK3IpfXJldHVybiBudWxsfSx0LmludGVycnVwdD1Ebix0LnZvcm9ub2k9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3JldHVybiBuZXcgQmModC5tYXAoZnVuY3Rpb24ocixpKXt2YXIgbz1bTWF0aC5yb3VuZChuKHIsaSx0KS9hYikqYWIsTWF0aC5yb3VuZChlKHIsaSx0KS9hYikqYWJdO3JldHVybiBvLmluZGV4PWksby5kYXRhPXIsb30pLHIpfXZhciBuPWdjLGU9eWMscj1udWxsO3JldHVybiB0LnBvbHlnb25zPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4pLnBvbHlnb25zKCl9LHQubGlua3M9ZnVuY3Rpb24obil7cmV0dXJuIHQobikubGlua3MoKX0sdC50cmlhbmdsZXM9ZnVuY3Rpb24obil7cmV0dXJuIHQobikudHJpYW5nbGVzKCl9LHQueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6dmMoK2UpLHQpOm59LHQueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246dmMoK24pLHQpOmV9LHQuZXh0ZW50PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PW4/bnVsbDpbWytuWzBdWzBdLCtuWzBdWzFdXSxbK25bMV1bMF0sK25bMV1bMV1dXSx0KTpyJiZbW3JbMF1bMF0sclswXVsxXV0sW3JbMV1bMF0sclsxXVsxXV1dfSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj9udWxsOltbMCwwXSxbK25bMF0sK25bMV1dXSx0KTpyJiZbclsxXVswXS1yWzBdWzBdLHJbMV1bMV0tclswXVsxXV19LHR9LHQuem9vbT1mdW5jdGlvbigpe2Z1bmN0aW9uIG4odCl7dC5wcm9wZXJ0eShcIl9fem9vbVwiLCRjKS5vbihcIndoZWVsLnpvb21cIixmKS5vbihcIm1vdXNlZG93bi56b29tXCIsYykub24oXCJkYmxjbGljay56b29tXCIscykuZmlsdGVyKG0pLm9uKFwidG91Y2hzdGFydC56b29tXCIsbCkub24oXCJ0b3VjaG1vdmUuem9vbVwiLGgpLm9uKFwidG91Y2hlbmQuem9vbSB0b3VjaGNhbmNlbC56b29tXCIsZCkuc3R5bGUoXCJ0b3VjaC1hY3Rpb25cIixcIm5vbmVcIikuc3R5bGUoXCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3JcIixcInJnYmEoMCwwLDAsMClcIil9ZnVuY3Rpb24gZSh0LG4pe3JldHVybihuPU1hdGgubWF4KHhbMF0sTWF0aC5taW4oeFsxXSxuKSkpPT09dC5rP3Q6bmV3IEljKG4sdC54LHQueSl9ZnVuY3Rpb24gcih0LG4sZSl7dmFyIHI9blswXS1lWzBdKnQuayxpPW5bMV0tZVsxXSp0Lms7cmV0dXJuIHI9PT10LngmJmk9PT10Lnk/dDpuZXcgSWModC5rLHIsaSl9ZnVuY3Rpb24gaSh0KXtyZXR1cm5bKCt0WzBdWzBdKyArdFsxXVswXSkvMiwoK3RbMF1bMV0rICt0WzFdWzFdKS8yXX1mdW5jdGlvbiBvKHQsbixlKXt0Lm9uKFwic3RhcnQuem9vbVwiLGZ1bmN0aW9uKCl7YSh0aGlzLGFyZ3VtZW50cykuc3RhcnQoKX0pLm9uKFwiaW50ZXJydXB0Lnpvb20gZW5kLnpvb21cIixmdW5jdGlvbigpe2EodGhpcyxhcmd1bWVudHMpLmVuZCgpfSkudHdlZW4oXCJ6b29tXCIsZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMscj1hKHRoaXMsdCksbz15LmFwcGx5KHRoaXMsdCksdT1lfHxpKG8pLGY9TWF0aC5tYXgob1sxXVswXS1vWzBdWzBdLG9bMV1bMV0tb1swXVsxXSksYz10aGlzLl9fem9vbSxzPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bi5hcHBseSh0aGlzLHQpOm4sbD1BKGMuaW52ZXJ0KHUpLmNvbmNhdChmL2Muaykscy5pbnZlcnQodSkuY29uY2F0KGYvcy5rKSk7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKDE9PT10KXQ9cztlbHNle3ZhciBuPWwodCksZT1mL25bMl07dD1uZXcgSWMoZSx1WzBdLW5bMF0qZSx1WzFdLW5bMV0qZSl9ci56b29tKG51bGwsdCl9fSl9ZnVuY3Rpb24gYSh0LG4pe2Zvcih2YXIgZSxyPTAsaT1ULmxlbmd0aDtyPGk7KytyKWlmKChlPVRbcl0pLnRoYXQ9PT10KXJldHVybiBlO3JldHVybiBuZXcgdSh0LG4pfWZ1bmN0aW9uIHUodCxuKXt0aGlzLnRoYXQ9dCx0aGlzLmFyZ3M9bix0aGlzLmluZGV4PS0xLHRoaXMuYWN0aXZlPTAsdGhpcy5leHRlbnQ9eS5hcHBseSh0LG4pfWZ1bmN0aW9uIGYoKXtpZihnLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIHQ9YSh0aGlzLGFyZ3VtZW50cyksbj10aGlzLl9fem9vbSxpPU1hdGgubWF4KHhbMF0sTWF0aC5taW4oeFsxXSxuLmsqTWF0aC5wb3coMixiLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkpKSxvPXB0KHRoaXMpO2lmKHQud2hlZWwpdC5tb3VzZVswXVswXT09PW9bMF0mJnQubW91c2VbMF1bMV09PT1vWzFdfHwodC5tb3VzZVsxXT1uLmludmVydCh0Lm1vdXNlWzBdPW8pKSxjbGVhclRpbWVvdXQodC53aGVlbCk7ZWxzZXtpZihuLms9PT1pKXJldHVybjt0Lm1vdXNlPVtvLG4uaW52ZXJ0KG8pXSxEbih0aGlzKSx0LnN0YXJ0KCl9WGMoKSx0LndoZWVsPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LndoZWVsPW51bGwsdC5lbmQoKX0sayksdC56b29tKFwibW91c2VcIixfKHIoZShuLGkpLHQubW91c2VbMF0sdC5tb3VzZVsxXSksdC5leHRlbnQsdykpfX1mdW5jdGlvbiBjKCl7aWYoIXYmJmcuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgbj1hKHRoaXMsYXJndW1lbnRzKSxlPWN0KHQuZXZlbnQudmlldykub24oXCJtb3VzZW1vdmUuem9vbVwiLGZ1bmN0aW9uKCl7aWYoWGMoKSwhbi5tb3ZlZCl7dmFyIGU9dC5ldmVudC5jbGllbnRYLW8saT10LmV2ZW50LmNsaWVudFktdTtuLm1vdmVkPWUqZStpKmk+Q31uLnpvb20oXCJtb3VzZVwiLF8ocihuLnRoYXQuX196b29tLG4ubW91c2VbMF09cHQobi50aGF0KSxuLm1vdXNlWzFdKSxuLmV4dGVudCx3KSl9LCEwKS5vbihcIm1vdXNldXAuem9vbVwiLGZ1bmN0aW9uKCl7ZS5vbihcIm1vdXNlbW92ZS56b29tIG1vdXNldXAuem9vbVwiLG51bGwpLGJ0KHQuZXZlbnQudmlldyxuLm1vdmVkKSxYYygpLG4uZW5kKCl9LCEwKSxpPXB0KHRoaXMpLG89dC5ldmVudC5jbGllbnRYLHU9dC5ldmVudC5jbGllbnRZO190KHQuZXZlbnQudmlldyksSGMoKSxuLm1vdXNlPVtpLHRoaXMuX196b29tLmludmVydChpKV0sRG4odGhpcyksbi5zdGFydCgpfX1mdW5jdGlvbiBzKCl7aWYoZy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBpPXRoaXMuX196b29tLGE9cHQodGhpcyksdT1pLmludmVydChhKSxmPWkuayoodC5ldmVudC5zaGlmdEtleT8uNToyKSxjPV8ocihlKGksZiksYSx1KSx5LmFwcGx5KHRoaXMsYXJndW1lbnRzKSx3KTtYYygpLE0+MD9jdCh0aGlzKS50cmFuc2l0aW9uKCkuZHVyYXRpb24oTSkuY2FsbChvLGMsYSk6Y3QodGhpcykuY2FsbChuLnRyYW5zZm9ybSxjKX19ZnVuY3Rpb24gbCgpe2lmKGcuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgbixlLHIsaSxvPWEodGhpcyxhcmd1bWVudHMpLHU9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxmPXUubGVuZ3RoO2ZvcihIYygpLGU9MDtlPGY7KytlKWk9W2k9dnQodGhpcyx1LChyPXVbZV0pLmlkZW50aWZpZXIpLHRoaXMuX196b29tLmludmVydChpKSxyLmlkZW50aWZpZXJdLG8udG91Y2gwP28udG91Y2gxfHwoby50b3VjaDE9aSk6KG8udG91Y2gwPWksbj0hMCk7aWYocCYmKHA9Y2xlYXJUaW1lb3V0KHApLCFvLnRvdWNoMSkpcmV0dXJuIG8uZW5kKCksdm9pZCgoaT1jdCh0aGlzKS5vbihcImRibGNsaWNrLnpvb21cIikpJiZpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSk7biYmKHA9c2V0VGltZW91dChmdW5jdGlvbigpe3A9bnVsbH0sRSksRG4odGhpcyksby5zdGFydCgpKX19ZnVuY3Rpb24gaCgpe3ZhciBuLGksbyx1LGY9YSh0aGlzLGFyZ3VtZW50cyksYz10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLHM9Yy5sZW5ndGg7Zm9yKFhjKCkscCYmKHA9Y2xlYXJUaW1lb3V0KHApKSxuPTA7bjxzOysrbilvPXZ0KHRoaXMsYywoaT1jW25dKS5pZGVudGlmaWVyKSxmLnRvdWNoMCYmZi50b3VjaDBbMl09PT1pLmlkZW50aWZpZXI/Zi50b3VjaDBbMF09bzpmLnRvdWNoMSYmZi50b3VjaDFbMl09PT1pLmlkZW50aWZpZXImJihmLnRvdWNoMVswXT1vKTtpZihpPWYudGhhdC5fX3pvb20sZi50b3VjaDEpe3ZhciBsPWYudG91Y2gwWzBdLGg9Zi50b3VjaDBbMV0sZD1mLnRvdWNoMVswXSx2PWYudG91Y2gxWzFdLGc9KGc9ZFswXS1sWzBdKSpnKyhnPWRbMV0tbFsxXSkqZyx5PSh5PXZbMF0taFswXSkqeSsoeT12WzFdLWhbMV0pKnk7aT1lKGksTWF0aC5zcXJ0KGcveSkpLG89WyhsWzBdK2RbMF0pLzIsKGxbMV0rZFsxXSkvMl0sdT1bKGhbMF0rdlswXSkvMiwoaFsxXSt2WzFdKS8yXX1lbHNle2lmKCFmLnRvdWNoMClyZXR1cm47bz1mLnRvdWNoMFswXSx1PWYudG91Y2gwWzFdfWYuem9vbShcInRvdWNoXCIsXyhyKGksbyx1KSxmLmV4dGVudCx3KSl9ZnVuY3Rpb24gZCgpe3ZhciBuLGUscj1hKHRoaXMsYXJndW1lbnRzKSxpPXQuZXZlbnQuY2hhbmdlZFRvdWNoZXMsbz1pLmxlbmd0aDtmb3IoSGMoKSx2JiZjbGVhclRpbWVvdXQodiksdj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dj1udWxsfSxFKSxuPTA7bjxvOysrbillPWlbbl0sci50b3VjaDAmJnIudG91Y2gwWzJdPT09ZS5pZGVudGlmaWVyP2RlbGV0ZSByLnRvdWNoMDpyLnRvdWNoMSYmci50b3VjaDFbMl09PT1lLmlkZW50aWZpZXImJmRlbGV0ZSByLnRvdWNoMTtyLnRvdWNoMSYmIXIudG91Y2gwJiYoci50b3VjaDA9ci50b3VjaDEsZGVsZXRlIHIudG91Y2gxKSxyLnRvdWNoMD9yLnRvdWNoMFsxXT10aGlzLl9fem9vbS5pbnZlcnQoci50b3VjaDBbMF0pOnIuZW5kKCl9dmFyIHAsdixnPUdjLHk9VmMsXz1RYyxiPVdjLG09WmMseD1bMCwxLzBdLHc9W1stMS8wLC0xLzBdLFsxLzAsMS8wXV0sTT0yNTAsQT1fbixUPVtdLFM9TihcInN0YXJ0XCIsXCJ6b29tXCIsXCJlbmRcIiksRT01MDAsaz0xNTAsQz0wO3JldHVybiBuLnRyYW5zZm9ybT1mdW5jdGlvbih0LG4pe3ZhciBlPXQuc2VsZWN0aW9uP3Quc2VsZWN0aW9uKCk6dDtlLnByb3BlcnR5KFwiX196b29tXCIsJGMpLHQhPT1lP28odCxuKTplLmludGVycnVwdCgpLmVhY2goZnVuY3Rpb24oKXthKHRoaXMsYXJndW1lbnRzKS5zdGFydCgpLnpvb20obnVsbCxcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP24uYXBwbHkodGhpcyxhcmd1bWVudHMpOm4pLmVuZCgpfSl9LG4uc2NhbGVCeT1mdW5jdGlvbih0LGUpe24uc2NhbGVUbyh0LGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX196b29tLmsqKFwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ZSl9KX0sbi5zY2FsZVRvPWZ1bmN0aW9uKHQsbyl7bi50cmFuc2Zvcm0odCxmdW5jdGlvbigpe3ZhciB0PXkuYXBwbHkodGhpcyxhcmd1bWVudHMpLG49dGhpcy5fX3pvb20sYT1pKHQpLHU9bi5pbnZlcnQoYSksZj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBvP28uYXBwbHkodGhpcyxhcmd1bWVudHMpOm87cmV0dXJuIF8ocihlKG4sZiksYSx1KSx0LHcpfSl9LG4udHJhbnNsYXRlQnk9ZnVuY3Rpb24odCxlLHIpe24udHJhbnNmb3JtKHQsZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzLl9fem9vbS50cmFuc2xhdGUoXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTplLFwiZnVuY3Rpb25cIj09dHlwZW9mIHI/ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6cikseS5hcHBseSh0aGlzLGFyZ3VtZW50cyksdyl9KX0sbi50cmFuc2xhdGVUbz1mdW5jdGlvbih0LGUscil7bi50cmFuc2Zvcm0odCxmdW5jdGlvbigpe3ZhciB0PXkuYXBwbHkodGhpcyxhcmd1bWVudHMpLG49dGhpcy5fX3pvb20sbz1pKHQpO3JldHVybiBfKGZiLnRyYW5zbGF0ZShvWzBdLG9bMV0pLnNjYWxlKG4uaykudHJhbnNsYXRlKFwiZnVuY3Rpb25cIj09dHlwZW9mIGU/LWUuYXBwbHkodGhpcyxhcmd1bWVudHMpOi1lLFwiZnVuY3Rpb25cIj09dHlwZW9mIHI/LXIuYXBwbHkodGhpcyxhcmd1bWVudHMpOi1yKSx0LHcpfSl9LHUucHJvdG90eXBlPXtzdGFydDpmdW5jdGlvbigpe3JldHVybiAxPT0rK3RoaXMuYWN0aXZlJiYodGhpcy5pbmRleD1ULnB1c2godGhpcyktMSx0aGlzLmVtaXQoXCJzdGFydFwiKSksdGhpc30sem9vbTpmdW5jdGlvbih0LG4pe3JldHVybiB0aGlzLm1vdXNlJiZcIm1vdXNlXCIhPT10JiYodGhpcy5tb3VzZVsxXT1uLmludmVydCh0aGlzLm1vdXNlWzBdKSksdGhpcy50b3VjaDAmJlwidG91Y2hcIiE9PXQmJih0aGlzLnRvdWNoMFsxXT1uLmludmVydCh0aGlzLnRvdWNoMFswXSkpLHRoaXMudG91Y2gxJiZcInRvdWNoXCIhPT10JiYodGhpcy50b3VjaDFbMV09bi5pbnZlcnQodGhpcy50b3VjaDFbMF0pKSx0aGlzLnRoYXQuX196b29tPW4sdGhpcy5lbWl0KFwiem9vbVwiKSx0aGlzfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09LS10aGlzLmFjdGl2ZSYmKFQuc3BsaWNlKHRoaXMuaW5kZXgsMSksdGhpcy5pbmRleD0tMSx0aGlzLmVtaXQoXCJlbmRcIikpLHRoaXN9LGVtaXQ6ZnVuY3Rpb24odCl7b3QobmV3IGZ1bmN0aW9uKHQsbixlKXt0aGlzLnRhcmdldD10LHRoaXMudHlwZT1uLHRoaXMudHJhbnNmb3JtPWV9KG4sdCx0aGlzLnRoYXQuX196b29tKSxTLmFwcGx5LFMsW3QsdGhpcy50aGF0LHRoaXMuYXJnc10pfX0sbi53aGVlbERlbHRhPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpGYygrdCksbik6Yn0sbi5maWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGc9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkZjKCEhdCksbik6Z30sbi50b3VjaGFibGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG09XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkZjKCEhdCksbik6bX0sbi5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHk9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkZjKFtbK3RbMF1bMF0sK3RbMF1bMV1dLFsrdFsxXVswXSwrdFsxXVsxXV1dKSxuKTp5fSxuLnNjYWxlRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh4WzBdPSt0WzBdLHhbMV09K3RbMV0sbik6W3hbMF0seFsxXV19LG4udHJhbnNsYXRlRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh3WzBdWzBdPSt0WzBdWzBdLHdbMV1bMF09K3RbMV1bMF0sd1swXVsxXT0rdFswXVsxXSx3WzFdWzFdPSt0WzFdWzFdLG4pOltbd1swXVswXSx3WzBdWzFdXSxbd1sxXVswXSx3WzFdWzFdXV19LG4uY29uc3RyYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhfPXQsbik6X30sbi5kdXJhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oTT0rdCxuKTpNfSxuLmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhBPXQsbik6QX0sbi5vbj1mdW5jdGlvbigpe3ZhciB0PVMub24uYXBwbHkoUyxhcmd1bWVudHMpO3JldHVybiB0PT09Uz9uOnR9LG4uY2xpY2tEaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oQz0odD0rdCkqdCxuKTpNYXRoLnNxcnQoQyl9LG59LHQuem9vbVRyYW5zZm9ybT1qYyx0Lnpvb21JZGVudGl0eT1mYixPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0pOyIsIi8qIVxuICogTGlnaHRib3ggZm9yIEJvb3RzdHJhcCBieSBAYXNobGV5ZHdcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2hsZXlkdy9saWdodGJveFxuICpcbiAqIExpY2Vuc2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9hc2hsZXlkdy9saWdodGJveC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cbitmdW5jdGlvbiAoJCkge1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSAoZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKCd2YWx1ZScgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0pKCk7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgTGlnaHRib3ggPSAoZnVuY3Rpb24gKCQpIHtcblxuXHR2YXIgTkFNRSA9ICdla2tvTGlnaHRib3gnO1xuXHR2YXIgSlFVRVJZX05PX0NPTkZMSUNUID0gJC5mbltOQU1FXTtcblxuXHR2YXIgRGVmYXVsdCA9IHtcblx0XHR0aXRsZTogJycsXG5cdFx0Zm9vdGVyOiAnJyxcblx0XHRtYXhXaWR0aDogOTk5OSxcblx0XHRtYXhIZWlnaHQ6IDk5OTksXG5cdFx0c2hvd0Fycm93czogdHJ1ZSwgLy9kaXNwbGF5IHRoZSBsZWZ0IC8gcmlnaHQgYXJyb3dzIG9yIG5vdFxuXHRcdHdyYXBwaW5nOiB0cnVlLCAvL2lmIHRydWUsIGdhbGxlcnkgbG9vcHMgaW5maW5pdGVseVxuXHRcdHR5cGU6IG51bGwsIC8vZm9yY2UgdGhlIGxpZ2h0Ym94IGludG8gaW1hZ2UgLyB5b3V0dWJlIG1vZGUuIGlmIG51bGwsIG9yIG5vdCBpbWFnZXx5b3V0dWJlfHZpbWVvOyBkZXRlY3QgaXRcblx0XHRhbHdheXNTaG93Q2xvc2U6IGZhbHNlLCAvL2Fsd2F5cyBzaG93IHRoZSBjbG9zZSBidXR0b24sIGV2ZW4gaWYgdGhlcmUgaXMgbm8gdGl0bGVcblx0XHRsb2FkaW5nTWVzc2FnZTogJzxkaXYgY2xhc3M9XCJla2tvLWxpZ2h0Ym94LWxvYWRlclwiPjxkaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjwvZGl2PjwvZGl2PicsIC8vIGh0dHA6Ly90b2JpYXNhaGxpbi5jb20vc3BpbmtpdC9cblx0XHRsZWZ0QXJyb3c6ICc8c3Bhbj4mIzEwMDk0Ozwvc3Bhbj4nLFxuXHRcdHJpZ2h0QXJyb3c6ICc8c3Bhbj4mIzEwMDk1Ozwvc3Bhbj4nLFxuXHRcdHN0cmluZ3M6IHtcblx0XHRcdGNsb3NlOiAnQ2xvc2UnLFxuXHRcdFx0ZmFpbDogJ0ZhaWxlZCB0byBsb2FkIGltYWdlOicsXG5cdFx0XHR0eXBlOiAnQ291bGQgbm90IGRldGVjdCByZW1vdGUgdGFyZ2V0IHR5cGUuIEZvcmNlIHRoZSB0eXBlIHVzaW5nIGRhdGEtdHlwZSdcblx0XHR9LFxuXHRcdGRvYzogZG9jdW1lbnQsIC8vIGlmIGluIGFuIGlmcmFtZSBjYW4gc3BlY2lmeSB0b3AuZG9jdW1lbnRcblx0XHRvblNob3c6IGZ1bmN0aW9uIG9uU2hvdygpIHt9LFxuXHRcdG9uU2hvd246IGZ1bmN0aW9uIG9uU2hvd24oKSB7fSxcblx0XHRvbkhpZGU6IGZ1bmN0aW9uIG9uSGlkZSgpIHt9LFxuXHRcdG9uSGlkZGVuOiBmdW5jdGlvbiBvbkhpZGRlbigpIHt9LFxuXHRcdG9uTmF2aWdhdGU6IGZ1bmN0aW9uIG9uTmF2aWdhdGUoKSB7fSxcblx0XHRvbkNvbnRlbnRMb2FkZWQ6IGZ1bmN0aW9uIG9uQ29udGVudExvYWRlZCgpIHt9XG5cdH07XG5cblx0dmFyIExpZ2h0Ym94ID0gKGZ1bmN0aW9uICgpIHtcblx0XHRfY3JlYXRlQ2xhc3MoTGlnaHRib3gsIG51bGwsIFt7XG5cdFx0XHRrZXk6ICdEZWZhdWx0JyxcblxuXHRcdFx0LyoqXG4gICAgICAgQ2xhc3MgcHJvcGVydGllczpcbiAgIFx0IF8kZWxlbWVudDogbnVsbCAtPiB0aGUgPGE+IGVsZW1lbnQgY3VycmVudGx5IGJlaW5nIGRpc3BsYXllZFxuICAgIF8kbW9kYWw6IFRoZSBib290c3RyYXAgbW9kYWwgZ2VuZXJhdGVkXG4gICAgICAgXyRtb2RhbERpYWxvZzogVGhlIC5tb2RhbC1kaWFsb2dcbiAgICAgICBfJG1vZGFsQ29udGVudDogVGhlIC5tb2RhbC1jb250ZW50XG4gICAgICAgXyRtb2RhbEJvZHk6IFRoZSAubW9kYWwtYm9keVxuICAgICAgIF8kbW9kYWxIZWFkZXI6IFRoZSAubW9kYWwtaGVhZGVyXG4gICAgICAgXyRtb2RhbEZvb3RlcjogVGhlIC5tb2RhbC1mb290ZXJcbiAgICBfJGxpZ2h0Ym94Q29udGFpbmVyT25lOiBDb250YWluZXIgb2YgdGhlIGZpcnN0IGxpZ2h0Ym94IGVsZW1lbnRcbiAgICBfJGxpZ2h0Ym94Q29udGFpbmVyVHdvOiBDb250YWluZXIgb2YgdGhlIHNlY29uZCBsaWdodGJveCBlbGVtZW50XG4gICAgXyRsaWdodGJveEJvZHk6IEZpcnN0IGVsZW1lbnQgaW4gdGhlIGNvbnRhaW5lclxuICAgIF8kbW9kYWxBcnJvd3M6IFRoZSBvdmVybGF5ZWQgYXJyb3dzIGNvbnRhaW5lclxuICAgXHQgXyRnYWxsZXJ5SXRlbXM6IE90aGVyIDxhPidzIGF2YWlsYWJsZSBmb3IgdGhpcyBnYWxsZXJ5XG4gICAgX2dhbGxlcnlOYW1lOiBOYW1lIG9mIHRoZSBjdXJyZW50IGRhdGEoJ2dhbGxlcnknKSBzaG93aW5nXG4gICAgX2dhbGxlcnlJbmRleDogVGhlIGN1cnJlbnQgaW5kZXggb2YgdGhlIF8kZ2FsbGVyeUl0ZW1zIGJlaW5nIHNob3duXG4gICBcdCBfY29uZmlnOiB7fSB0aGUgb3B0aW9ucyBmb3IgdGhlIG1vZGFsXG4gICAgX21vZGFsSWQ6IHVuaXF1ZSBpZCBmb3IgdGhlIGN1cnJlbnQgbGlnaHRib3hcbiAgICBfcGFkZGluZyAvIF9ib3JkZXI6IENTUyBwcm9wZXJ0aWVzIGZvciB0aGUgbW9kYWwgY29udGFpbmVyOyB0aGVzZSBhcmUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIGF2YWlsYWJsZSBzcGFjZSBmb3IgdGhlIGNvbnRlbnRcbiAgIFx0ICovXG5cblx0XHRcdGdldDogZnVuY3Rpb24gZ2V0KCkge1xuXHRcdFx0XHRyZXR1cm4gRGVmYXVsdDtcblx0XHRcdH1cblx0XHR9XSk7XG5cblx0XHRmdW5jdGlvbiBMaWdodGJveCgkZWxlbWVudCwgY29uZmlnKSB7XG5cdFx0XHR2YXIgX3RoaXMgPSB0aGlzO1xuXG5cdFx0XHRfY2xhc3NDYWxsQ2hlY2sodGhpcywgTGlnaHRib3gpO1xuXG5cdFx0XHR0aGlzLl9jb25maWcgPSAkLmV4dGVuZCh7fSwgRGVmYXVsdCwgY29uZmlnKTtcblx0XHRcdHRoaXMuXyRtb2RhbEFycm93cyA9IG51bGw7XG5cdFx0XHR0aGlzLl9nYWxsZXJ5SW5kZXggPSAwO1xuXHRcdFx0dGhpcy5fZ2FsbGVyeU5hbWUgPSBudWxsO1xuXHRcdFx0dGhpcy5fcGFkZGluZyA9IG51bGw7XG5cdFx0XHR0aGlzLl9ib3JkZXIgPSBudWxsO1xuXHRcdFx0dGhpcy5fdGl0bGVJc1Nob3duID0gZmFsc2U7XG5cdFx0XHR0aGlzLl9mb290ZXJJc1Nob3duID0gZmFsc2U7XG5cdFx0XHR0aGlzLl93YW50ZWRXaWR0aCA9IDA7XG5cdFx0XHR0aGlzLl93YW50ZWRIZWlnaHQgPSAwO1xuXHRcdFx0dGhpcy5fdG91Y2hzdGFydFggPSAwO1xuXHRcdFx0dGhpcy5fdG91Y2hlbmRYID0gMDtcblxuXHRcdFx0dGhpcy5fbW9kYWxJZCA9ICdla2tvTGlnaHRib3gtJyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAgKyAxKTtcblx0XHRcdHRoaXMuXyRlbGVtZW50ID0gJGVsZW1lbnQgaW5zdGFuY2VvZiBqUXVlcnkgPyAkZWxlbWVudCA6ICQoJGVsZW1lbnQpO1xuXG5cdFx0XHR0aGlzLl9pc0Jvb3RzdHJhcDMgPSAkLmZuLm1vZGFsLkNvbnN0cnVjdG9yLlZFUlNJT05bMF0gPT0gMztcblxuXHRcdFx0dmFyIGg0ID0gJzxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+JyArICh0aGlzLl9jb25maWcudGl0bGUgfHwgXCImbmJzcDtcIikgKyAnPC9oND4nO1xuXHRcdFx0dmFyIGJ0biA9ICc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiJyArIHRoaXMuX2NvbmZpZy5zdHJpbmdzLmNsb3NlICsgJ1wiPjxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+PC9idXR0b24+JztcblxuXHRcdFx0dmFyIGhlYWRlciA9ICc8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyJyArICh0aGlzLl9jb25maWcudGl0bGUgfHwgdGhpcy5fY29uZmlnLmFsd2F5c1Nob3dDbG9zZSA/ICcnIDogJyBoaWRlJykgKyAnXCI+JyArICh0aGlzLl9pc0Jvb3RzdHJhcDMgPyBidG4gKyBoNCA6IGg0ICsgYnRuKSArICc8L2Rpdj4nO1xuXHRcdFx0dmFyIGZvb3RlciA9ICc8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyJyArICh0aGlzLl9jb25maWcuZm9vdGVyID8gJycgOiAnIGhpZGUnKSArICdcIj4nICsgKHRoaXMuX2NvbmZpZy5mb290ZXIgfHwgXCImbmJzcDtcIikgKyAnPC9kaXY+Jztcblx0XHRcdHZhciBib2R5ID0gJzxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+PGRpdiBjbGFzcz1cImVra28tbGlnaHRib3gtY29udGFpbmVyXCI+PGRpdiBjbGFzcz1cImVra28tbGlnaHRib3gtaXRlbSBmYWRlIGluIHNob3dcIj48L2Rpdj48ZGl2IGNsYXNzPVwiZWtrby1saWdodGJveC1pdGVtIGZhZGVcIj48L2Rpdj48L2Rpdj48L2Rpdj4nO1xuXHRcdFx0dmFyIGRpYWxvZyA9ICc8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nXCIgcm9sZT1cImRvY3VtZW50XCI+PGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj4nICsgaGVhZGVyICsgYm9keSArIGZvb3RlciArICc8L2Rpdj48L2Rpdj4nO1xuXHRcdFx0JCh0aGlzLl9jb25maWcuZG9jLmJvZHkpLmFwcGVuZCgnPGRpdiBpZD1cIicgKyB0aGlzLl9tb2RhbElkICsgJ1wiIGNsYXNzPVwiZWtrby1saWdodGJveCBtb2RhbCBmYWRlXCIgdGFiaW5kZXg9XCItMVwiIHRhYmluZGV4PVwiLTFcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+JyArIGRpYWxvZyArICc8L2Rpdj4nKTtcblxuXHRcdFx0dGhpcy5fJG1vZGFsID0gJCgnIycgKyB0aGlzLl9tb2RhbElkLCB0aGlzLl9jb25maWcuZG9jKTtcblx0XHRcdHRoaXMuXyRtb2RhbERpYWxvZyA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtZGlhbG9nJykuZmlyc3QoKTtcblx0XHRcdHRoaXMuXyRtb2RhbENvbnRlbnQgPSB0aGlzLl8kbW9kYWwuZmluZCgnLm1vZGFsLWNvbnRlbnQnKS5maXJzdCgpO1xuXHRcdFx0dGhpcy5fJG1vZGFsQm9keSA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtYm9keScpLmZpcnN0KCk7XG5cdFx0XHR0aGlzLl8kbW9kYWxIZWFkZXIgPSB0aGlzLl8kbW9kYWwuZmluZCgnLm1vZGFsLWhlYWRlcicpLmZpcnN0KCk7XG5cdFx0XHR0aGlzLl8kbW9kYWxGb290ZXIgPSB0aGlzLl8kbW9kYWwuZmluZCgnLm1vZGFsLWZvb3RlcicpLmZpcnN0KCk7XG5cblx0XHRcdHRoaXMuXyRsaWdodGJveENvbnRhaW5lciA9IHRoaXMuXyRtb2RhbEJvZHkuZmluZCgnLmVra28tbGlnaHRib3gtY29udGFpbmVyJykuZmlyc3QoKTtcblx0XHRcdHRoaXMuXyRsaWdodGJveEJvZHlPbmUgPSB0aGlzLl8kbGlnaHRib3hDb250YWluZXIuZmluZCgnPiBkaXY6Zmlyc3QtY2hpbGQnKS5maXJzdCgpO1xuXHRcdFx0dGhpcy5fJGxpZ2h0Ym94Qm9keVR3byA9IHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5maW5kKCc+IGRpdjpsYXN0LWNoaWxkJykuZmlyc3QoKTtcblxuXHRcdFx0dGhpcy5fYm9yZGVyID0gdGhpcy5fY2FsY3VsYXRlQm9yZGVycygpO1xuXHRcdFx0dGhpcy5fcGFkZGluZyA9IHRoaXMuX2NhbGN1bGF0ZVBhZGRpbmcoKTtcblxuXHRcdFx0dGhpcy5fZ2FsbGVyeU5hbWUgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdnYWxsZXJ5Jyk7XG5cdFx0XHRpZiAodGhpcy5fZ2FsbGVyeU5hbWUpIHtcblx0XHRcdFx0dGhpcy5fJGdhbGxlcnlJdGVtcyA9ICQoZG9jdW1lbnQuYm9keSkuZmluZCgnKltkYXRhLWdhbGxlcnk9XCInICsgdGhpcy5fZ2FsbGVyeU5hbWUgKyAnXCJdJyk7XG5cdFx0XHRcdHRoaXMuX2dhbGxlcnlJbmRleCA9IHRoaXMuXyRnYWxsZXJ5SXRlbXMuaW5kZXgodGhpcy5fJGVsZW1lbnQpO1xuXHRcdFx0XHQkKGRvY3VtZW50KS5vbigna2V5ZG93bi5la2tvTGlnaHRib3gnLCB0aGlzLl9uYXZpZ2F0aW9uYWxCaW5kZXIuYmluZCh0aGlzKSk7XG5cblx0XHRcdFx0Ly8gYWRkIHRoZSBkaXJlY3Rpb25hbCBhcnJvd3MgdG8gdGhlIG1vZGFsXG5cdFx0XHRcdGlmICh0aGlzLl9jb25maWcuc2hvd0Fycm93cyAmJiB0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCA+IDEpIHtcblx0XHRcdFx0XHR0aGlzLl8kbGlnaHRib3hDb250YWluZXIuYXBwZW5kKCc8ZGl2IGNsYXNzPVwiZWtrby1saWdodGJveC1uYXYtb3ZlcmxheVwiPjxhIGhyZWY9XCIjXCI+JyArIHRoaXMuX2NvbmZpZy5sZWZ0QXJyb3cgKyAnPC9hPjxhIGhyZWY9XCIjXCI+JyArIHRoaXMuX2NvbmZpZy5yaWdodEFycm93ICsgJzwvYT48L2Rpdj4nKTtcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxBcnJvd3MgPSB0aGlzLl8kbGlnaHRib3hDb250YWluZXIuZmluZCgnZGl2LmVra28tbGlnaHRib3gtbmF2LW92ZXJsYXknKS5maXJzdCgpO1xuXHRcdFx0XHRcdHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5vbignY2xpY2snLCAnYTpmaXJzdC1jaGlsZCcsIGZ1bmN0aW9uIChldmVudCkge1xuXHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0XHRcdHJldHVybiBfdGhpcy5uYXZpZ2F0ZUxlZnQoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR0aGlzLl8kbGlnaHRib3hDb250YWluZXIub24oJ2NsaWNrJywgJ2E6bGFzdC1jaGlsZCcsIGZ1bmN0aW9uIChldmVudCkge1xuXHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0XHRcdHJldHVybiBfdGhpcy5uYXZpZ2F0ZVJpZ2h0KCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0dGhpcy51cGRhdGVOYXZpZ2F0aW9uKCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0dGhpcy5fJG1vZGFsLm9uKCdzaG93LmJzLm1vZGFsJywgdGhpcy5fY29uZmlnLm9uU2hvdy5iaW5kKHRoaXMpKS5vbignc2hvd24uYnMubW9kYWwnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdF90aGlzLl90b2dnbGVMb2FkaW5nKHRydWUpO1xuXHRcdFx0XHRfdGhpcy5faGFuZGxlKCk7XG5cdFx0XHRcdHJldHVybiBfdGhpcy5fY29uZmlnLm9uU2hvd24uY2FsbChfdGhpcyk7XG5cdFx0XHR9KS5vbignaGlkZS5icy5tb2RhbCcsIHRoaXMuX2NvbmZpZy5vbkhpZGUuYmluZCh0aGlzKSkub24oJ2hpZGRlbi5icy5tb2RhbCcsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0aWYgKF90aGlzLl9nYWxsZXJ5TmFtZSkge1xuXHRcdFx0XHRcdCQoZG9jdW1lbnQpLm9mZigna2V5ZG93bi5la2tvTGlnaHRib3gnKTtcblx0XHRcdFx0XHQkKHdpbmRvdykub2ZmKCdyZXNpemUuZWtrb0xpZ2h0Ym94Jyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0X3RoaXMuXyRtb2RhbC5yZW1vdmUoKTtcblx0XHRcdFx0cmV0dXJuIF90aGlzLl9jb25maWcub25IaWRkZW4uY2FsbChfdGhpcyk7XG5cdFx0XHR9KS5tb2RhbCh0aGlzLl9jb25maWcpO1xuXG5cdFx0XHQkKHdpbmRvdykub24oJ3Jlc2l6ZS5la2tvTGlnaHRib3gnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdF90aGlzLl9yZXNpemUoX3RoaXMuX3dhbnRlZFdpZHRoLCBfdGhpcy5fd2FudGVkSGVpZ2h0KTtcblx0XHRcdH0pO1xuXHRcdFx0dGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLm9uKCd0b3VjaHN0YXJ0JywgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRfdGhpcy5fdG91Y2hzdGFydFggPSBldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5zY3JlZW5YO1xuXHRcdFx0fSkub24oJ3RvdWNoZW5kJywgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRfdGhpcy5fdG91Y2hlbmRYID0gZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uc2NyZWVuWDtcblx0XHRcdFx0X3RoaXMuX3N3aXBlR2VzdXJlKCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRfY3JlYXRlQ2xhc3MoTGlnaHRib3gsIFt7XG5cdFx0XHRrZXk6ICdlbGVtZW50Jyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBlbGVtZW50KCkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fJGVsZW1lbnQ7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnbW9kYWwnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIG1vZGFsKCkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fJG1vZGFsO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ25hdmlnYXRlVG8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIG5hdmlnYXRlVG8oaW5kZXgpIHtcblxuXHRcdFx0XHRpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGhpcy5fJGdhbGxlcnlJdGVtcy5sZW5ndGggLSAxKSByZXR1cm4gdGhpcztcblxuXHRcdFx0XHR0aGlzLl9nYWxsZXJ5SW5kZXggPSBpbmRleDtcblxuXHRcdFx0XHR0aGlzLnVwZGF0ZU5hdmlnYXRpb24oKTtcblxuXHRcdFx0XHR0aGlzLl8kZWxlbWVudCA9ICQodGhpcy5fJGdhbGxlcnlJdGVtcy5nZXQodGhpcy5fZ2FsbGVyeUluZGV4KSk7XG5cdFx0XHRcdHRoaXMuX2hhbmRsZSgpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ25hdmlnYXRlTGVmdCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gbmF2aWdhdGVMZWZ0KCkge1xuXG5cdFx0XHRcdGlmICghdGhpcy5fJGdhbGxlcnlJdGVtcykgcmV0dXJuO1xuXG5cdFx0XHRcdGlmICh0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCA9PT0gMSkgcmV0dXJuO1xuXG5cdFx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5SW5kZXggPT09IDApIHtcblx0XHRcdFx0XHRpZiAodGhpcy5fY29uZmlnLndyYXBwaW5nKSB0aGlzLl9nYWxsZXJ5SW5kZXggPSB0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCAtIDE7ZWxzZSByZXR1cm47XG5cdFx0XHRcdH0gZWxzZSAvL2NpcmN1bGFyXG5cdFx0XHRcdFx0dGhpcy5fZ2FsbGVyeUluZGV4LS07XG5cblx0XHRcdFx0dGhpcy5fY29uZmlnLm9uTmF2aWdhdGUuY2FsbCh0aGlzLCAnbGVmdCcsIHRoaXMuX2dhbGxlcnlJbmRleCk7XG5cdFx0XHRcdHJldHVybiB0aGlzLm5hdmlnYXRlVG8odGhpcy5fZ2FsbGVyeUluZGV4KTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICduYXZpZ2F0ZVJpZ2h0Jyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBuYXZpZ2F0ZVJpZ2h0KCkge1xuXG5cdFx0XHRcdGlmICghdGhpcy5fJGdhbGxlcnlJdGVtcykgcmV0dXJuO1xuXG5cdFx0XHRcdGlmICh0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCA9PT0gMSkgcmV0dXJuO1xuXG5cdFx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5SW5kZXggPT09IHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoIC0gMSkge1xuXHRcdFx0XHRcdGlmICh0aGlzLl9jb25maWcud3JhcHBpbmcpIHRoaXMuX2dhbGxlcnlJbmRleCA9IDA7ZWxzZSByZXR1cm47XG5cdFx0XHRcdH0gZWxzZSAvL2NpcmN1bGFyXG5cdFx0XHRcdFx0dGhpcy5fZ2FsbGVyeUluZGV4Kys7XG5cblx0XHRcdFx0dGhpcy5fY29uZmlnLm9uTmF2aWdhdGUuY2FsbCh0aGlzLCAncmlnaHQnLCB0aGlzLl9nYWxsZXJ5SW5kZXgpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5uYXZpZ2F0ZVRvKHRoaXMuX2dhbGxlcnlJbmRleCk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAndXBkYXRlTmF2aWdhdGlvbicsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gdXBkYXRlTmF2aWdhdGlvbigpIHtcblx0XHRcdFx0aWYgKCF0aGlzLl9jb25maWcud3JhcHBpbmcpIHtcblx0XHRcdFx0XHR2YXIgJG5hdiA9IHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5maW5kKCdkaXYuZWtrby1saWdodGJveC1uYXYtb3ZlcmxheScpO1xuXHRcdFx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5SW5kZXggPT09IDApICRuYXYuZmluZCgnYTpmaXJzdC1jaGlsZCcpLmFkZENsYXNzKCdkaXNhYmxlZCcpO2Vsc2UgJG5hdi5maW5kKCdhOmZpcnN0LWNoaWxkJykucmVtb3ZlQ2xhc3MoJ2Rpc2FibGVkJyk7XG5cblx0XHRcdFx0XHRpZiAodGhpcy5fZ2FsbGVyeUluZGV4ID09PSB0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCAtIDEpICRuYXYuZmluZCgnYTpsYXN0LWNoaWxkJykuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7ZWxzZSAkbmF2LmZpbmQoJ2E6bGFzdC1jaGlsZCcpLnJlbW92ZUNsYXNzKCdkaXNhYmxlZCcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnY2xvc2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIGNsb3NlKCkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fJG1vZGFsLm1vZGFsKCdoaWRlJyk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIGhlbHBlciBwcml2YXRlIG1ldGhvZHNcblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfbmF2aWdhdGlvbmFsQmluZGVyJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfbmF2aWdhdGlvbmFsQmluZGVyKGV2ZW50KSB7XG5cdFx0XHRcdGV2ZW50ID0gZXZlbnQgfHwgd2luZG93LmV2ZW50O1xuXHRcdFx0XHRpZiAoZXZlbnQua2V5Q29kZSA9PT0gMzkpIHJldHVybiB0aGlzLm5hdmlnYXRlUmlnaHQoKTtcblx0XHRcdFx0aWYgKGV2ZW50LmtleUNvZGUgPT09IDM3KSByZXR1cm4gdGhpcy5uYXZpZ2F0ZUxlZnQoKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gdHlwZSBkZXRlY3Rpb24gcHJpdmF0ZSBtZXRob2RzXG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2RldGVjdFJlbW90ZVR5cGUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9kZXRlY3RSZW1vdGVUeXBlKHNyYywgdHlwZSkge1xuXG5cdFx0XHRcdHR5cGUgPSB0eXBlIHx8IGZhbHNlO1xuXG5cdFx0XHRcdGlmICghdHlwZSAmJiB0aGlzLl9pc0ltYWdlKHNyYykpIHR5cGUgPSAnaW1hZ2UnO1xuXHRcdFx0XHRpZiAoIXR5cGUgJiYgdGhpcy5fZ2V0WW91dHViZUlkKHNyYykpIHR5cGUgPSAneW91dHViZSc7XG5cdFx0XHRcdGlmICghdHlwZSAmJiB0aGlzLl9nZXRWaW1lb0lkKHNyYykpIHR5cGUgPSAndmltZW8nO1xuXHRcdFx0XHRpZiAoIXR5cGUgJiYgdGhpcy5fZ2V0SW5zdGFncmFtSWQoc3JjKSkgdHlwZSA9ICdpbnN0YWdyYW0nO1xuXG5cdFx0XHRcdGlmICghdHlwZSB8fCBbJ2ltYWdlJywgJ3lvdXR1YmUnLCAndmltZW8nLCAnaW5zdGFncmFtJywgJ3ZpZGVvJywgJ3VybCddLmluZGV4T2YodHlwZSkgPCAwKSB0eXBlID0gJ3VybCc7XG5cblx0XHRcdFx0cmV0dXJuIHR5cGU7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2lzSW1hZ2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9pc0ltYWdlKHN0cmluZykge1xuXHRcdFx0XHRyZXR1cm4gc3RyaW5nICYmIHN0cmluZy5tYXRjaCgvKF5kYXRhOmltYWdlXFwvLiosKXwoXFwuKGpwKGV8Z3xlZyl8Z2lmfHBuZ3xibXB8d2VicHxzdmcpKChcXD98IykuKik/JCkvaSk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2NvbnRhaW5lclRvVXNlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfY29udGFpbmVyVG9Vc2UoKSB7XG5cdFx0XHRcdHZhciBfdGhpczIgPSB0aGlzO1xuXG5cdFx0XHRcdC8vIGlmIGN1cnJlbnRseSBzaG93aW5nIGFuIGltYWdlLCBmYWRlIGl0IG91dCBhbmQgcmVtb3ZlXG5cdFx0XHRcdHZhciAkdG9Vc2UgPSB0aGlzLl8kbGlnaHRib3hCb2R5VHdvO1xuXHRcdFx0XHR2YXIgJGN1cnJlbnQgPSB0aGlzLl8kbGlnaHRib3hCb2R5T25lO1xuXG5cdFx0XHRcdGlmICh0aGlzLl8kbGlnaHRib3hCb2R5VHdvLmhhc0NsYXNzKCdpbicpKSB7XG5cdFx0XHRcdFx0JHRvVXNlID0gdGhpcy5fJGxpZ2h0Ym94Qm9keU9uZTtcblx0XHRcdFx0XHQkY3VycmVudCA9IHRoaXMuXyRsaWdodGJveEJvZHlUd287XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQkY3VycmVudC5yZW1vdmVDbGFzcygnaW4gc2hvdycpO1xuXHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRpZiAoIV90aGlzMi5fJGxpZ2h0Ym94Qm9keVR3by5oYXNDbGFzcygnaW4nKSkgX3RoaXMyLl8kbGlnaHRib3hCb2R5VHdvLmVtcHR5KCk7XG5cdFx0XHRcdFx0aWYgKCFfdGhpczIuXyRsaWdodGJveEJvZHlPbmUuaGFzQ2xhc3MoJ2luJykpIF90aGlzMi5fJGxpZ2h0Ym94Qm9keU9uZS5lbXB0eSgpO1xuXHRcdFx0XHR9LCA1MDApO1xuXG5cdFx0XHRcdCR0b1VzZS5hZGRDbGFzcygnaW4gc2hvdycpO1xuXHRcdFx0XHRyZXR1cm4gJHRvVXNlO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19oYW5kbGUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9oYW5kbGUoKSB7XG5cblx0XHRcdFx0dmFyICR0b1VzZSA9IHRoaXMuX2NvbnRhaW5lclRvVXNlKCk7XG5cdFx0XHRcdHRoaXMuX3VwZGF0ZVRpdGxlQW5kRm9vdGVyKCk7XG5cblx0XHRcdFx0dmFyIGN1cnJlbnRSZW1vdGUgPSB0aGlzLl8kZWxlbWVudC5hdHRyKCdkYXRhLXJlbW90ZScpIHx8IHRoaXMuXyRlbGVtZW50LmF0dHIoJ2hyZWYnKTtcblx0XHRcdFx0dmFyIGN1cnJlbnRUeXBlID0gdGhpcy5fZGV0ZWN0UmVtb3RlVHlwZShjdXJyZW50UmVtb3RlLCB0aGlzLl8kZWxlbWVudC5hdHRyKCdkYXRhLXR5cGUnKSB8fCBmYWxzZSk7XG5cblx0XHRcdFx0aWYgKFsnaW1hZ2UnLCAneW91dHViZScsICd2aW1lbycsICdpbnN0YWdyYW0nLCAndmlkZW8nLCAndXJsJ10uaW5kZXhPZihjdXJyZW50VHlwZSkgPCAwKSByZXR1cm4gdGhpcy5fZXJyb3IodGhpcy5fY29uZmlnLnN0cmluZ3MudHlwZSk7XG5cblx0XHRcdFx0c3dpdGNoIChjdXJyZW50VHlwZSkge1xuXHRcdFx0XHRcdGNhc2UgJ2ltYWdlJzpcblx0XHRcdFx0XHRcdHRoaXMuX3ByZWxvYWRJbWFnZShjdXJyZW50UmVtb3RlLCAkdG9Vc2UpO1xuXHRcdFx0XHRcdFx0dGhpcy5fcHJlbG9hZEltYWdlQnlJbmRleCh0aGlzLl9nYWxsZXJ5SW5kZXgsIDMpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAneW91dHViZSc6XG5cdFx0XHRcdFx0XHR0aGlzLl9zaG93WW91dHViZVZpZGVvKGN1cnJlbnRSZW1vdGUsICR0b1VzZSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICd2aW1lbyc6XG5cdFx0XHRcdFx0XHR0aGlzLl9zaG93VmltZW9WaWRlbyh0aGlzLl9nZXRWaW1lb0lkKGN1cnJlbnRSZW1vdGUpLCAkdG9Vc2UpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAnaW5zdGFncmFtJzpcblx0XHRcdFx0XHRcdHRoaXMuX3Nob3dJbnN0YWdyYW1WaWRlbyh0aGlzLl9nZXRJbnN0YWdyYW1JZChjdXJyZW50UmVtb3RlKSwgJHRvVXNlKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJ3ZpZGVvJzpcblx0XHRcdFx0XHRcdHRoaXMuX3Nob3dIdG1sNVZpZGVvKGN1cnJlbnRSZW1vdGUsICR0b1VzZSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0Ly8gdXJsXG5cdFx0XHRcdFx0XHR0aGlzLl9sb2FkUmVtb3RlQ29udGVudChjdXJyZW50UmVtb3RlLCAkdG9Vc2UpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfZ2V0WW91dHViZUlkJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfZ2V0WW91dHViZUlkKHN0cmluZykge1xuXHRcdFx0XHRpZiAoIXN0cmluZykgcmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR2YXIgbWF0Y2hlcyA9IHN0cmluZy5tYXRjaCgvXi4qKHlvdXR1LmJlXFwvfHZcXC98dVxcL1xcd1xcL3xlbWJlZFxcL3x3YXRjaFxcP3Y9fFxcJnY9KShbXiNcXCZcXD9dKikuKi8pO1xuXHRcdFx0XHRyZXR1cm4gbWF0Y2hlcyAmJiBtYXRjaGVzWzJdLmxlbmd0aCA9PT0gMTEgPyBtYXRjaGVzWzJdIDogZmFsc2U7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2dldFZpbWVvSWQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9nZXRWaW1lb0lkKHN0cmluZykge1xuXHRcdFx0XHRyZXR1cm4gc3RyaW5nICYmIHN0cmluZy5pbmRleE9mKCd2aW1lbycpID4gMCA/IHN0cmluZyA6IGZhbHNlO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19nZXRJbnN0YWdyYW1JZCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2dldEluc3RhZ3JhbUlkKHN0cmluZykge1xuXHRcdFx0XHRyZXR1cm4gc3RyaW5nICYmIHN0cmluZy5pbmRleE9mKCdpbnN0YWdyYW0nKSA+IDAgPyBzdHJpbmcgOiBmYWxzZTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gbGF5b3V0IHByaXZhdGUgbWV0aG9kc1xuXHRcdH0sIHtcblx0XHRcdGtleTogJ190b2dnbGVMb2FkaW5nJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfdG9nZ2xlTG9hZGluZyhzaG93KSB7XG5cdFx0XHRcdHNob3cgPSBzaG93IHx8IGZhbHNlO1xuXHRcdFx0XHRpZiAoc2hvdykge1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbERpYWxvZy5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbC5yZW1vdmVDbGFzcygnaW4gc2hvdycpO1xuXHRcdFx0XHRcdCQoJy5tb2RhbC1iYWNrZHJvcCcpLmFwcGVuZCh0aGlzLl9jb25maWcubG9hZGluZ01lc3NhZ2UpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbERpYWxvZy5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKTtcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWwuYWRkQ2xhc3MoJ2luIHNob3cnKTtcblx0XHRcdFx0XHQkKCcubW9kYWwtYmFja2Ryb3AnKS5maW5kKCcuZWtrby1saWdodGJveC1sb2FkZXInKS5yZW1vdmUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfY2FsY3VsYXRlQm9yZGVycycsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2NhbGN1bGF0ZUJvcmRlcnMoKSB7XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0dG9wOiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdib3JkZXItdG9wLXdpZHRoJyksXG5cdFx0XHRcdFx0cmlnaHQ6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ2JvcmRlci1yaWdodC13aWR0aCcpLFxuXHRcdFx0XHRcdGJvdHRvbTogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgnYm9yZGVyLWJvdHRvbS13aWR0aCcpLFxuXHRcdFx0XHRcdGxlZnQ6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ2JvcmRlci1sZWZ0LXdpZHRoJylcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfY2FsY3VsYXRlUGFkZGluZycsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2NhbGN1bGF0ZVBhZGRpbmcoKSB7XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0dG9wOiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdwYWRkaW5nLXRvcCcpLFxuXHRcdFx0XHRcdHJpZ2h0OiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdwYWRkaW5nLXJpZ2h0JyksXG5cdFx0XHRcdFx0Ym90dG9tOiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdwYWRkaW5nLWJvdHRvbScpLFxuXHRcdFx0XHRcdGxlZnQ6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ3BhZGRpbmctbGVmdCcpXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3RvdGFsQ3NzQnlBdHRyaWJ1dGUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF90b3RhbENzc0J5QXR0cmlidXRlKGF0dHJpYnV0ZSkge1xuXHRcdFx0XHRyZXR1cm4gcGFyc2VJbnQodGhpcy5fJG1vZGFsRGlhbG9nLmNzcyhhdHRyaWJ1dGUpLCAxMCkgKyBwYXJzZUludCh0aGlzLl8kbW9kYWxDb250ZW50LmNzcyhhdHRyaWJ1dGUpLCAxMCkgKyBwYXJzZUludCh0aGlzLl8kbW9kYWxCb2R5LmNzcyhhdHRyaWJ1dGUpLCAxMCk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3VwZGF0ZVRpdGxlQW5kRm9vdGVyJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfdXBkYXRlVGl0bGVBbmRGb290ZXIoKSB7XG5cdFx0XHRcdHZhciB0aXRsZSA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ3RpdGxlJykgfHwgXCJcIjtcblx0XHRcdFx0dmFyIGNhcHRpb24gPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdmb290ZXInKSB8fCBcIlwiO1xuXG5cdFx0XHRcdHRoaXMuX3RpdGxlSXNTaG93biA9IGZhbHNlO1xuXHRcdFx0XHRpZiAodGl0bGUgfHwgdGhpcy5fY29uZmlnLmFsd2F5c1Nob3dDbG9zZSkge1xuXHRcdFx0XHRcdHRoaXMuX3RpdGxlSXNTaG93biA9IHRydWU7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsSGVhZGVyLmNzcygnZGlzcGxheScsICcnKS5maW5kKCcubW9kYWwtdGl0bGUnKS5odG1sKHRpdGxlIHx8IFwiJm5ic3A7XCIpO1xuXHRcdFx0XHR9IGVsc2UgdGhpcy5fJG1vZGFsSGVhZGVyLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cblx0XHRcdFx0dGhpcy5fZm9vdGVySXNTaG93biA9IGZhbHNlO1xuXHRcdFx0XHRpZiAoY2FwdGlvbikge1xuXHRcdFx0XHRcdHRoaXMuX2Zvb3RlcklzU2hvd24gPSB0cnVlO1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbEZvb3Rlci5jc3MoJ2Rpc3BsYXknLCAnJykuaHRtbChjYXB0aW9uKTtcblx0XHRcdFx0fSBlbHNlIHRoaXMuXyRtb2RhbEZvb3Rlci5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuXG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19zaG93WW91dHViZVZpZGVvJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfc2hvd1lvdXR1YmVWaWRlbyhyZW1vdGUsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdHZhciBpZCA9IHRoaXMuX2dldFlvdXR1YmVJZChyZW1vdGUpO1xuXHRcdFx0XHR2YXIgcXVlcnkgPSByZW1vdGUuaW5kZXhPZignJicpID4gMCA/IHJlbW90ZS5zdWJzdHIocmVtb3RlLmluZGV4T2YoJyYnKSkgOiAnJztcblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA1NjA7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdoZWlnaHQnKSB8fCB3aWR0aCAvICg1NjAgLyAzMTUpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fc2hvd1ZpZGVvSWZyYW1lKCcvL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8nICsgaWQgKyAnP2JhZGdlPTAmYXV0b3BsYXk9MSZodG1sNT0xJyArIHF1ZXJ5LCB3aWR0aCwgaGVpZ2h0LCAkY29udGFpbmVyRm9yRWxlbWVudCk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Nob3dWaW1lb1ZpZGVvJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfc2hvd1ZpbWVvVmlkZW8oaWQsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdHZhciB3aWR0aCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ3dpZHRoJykgfHwgNTAwO1xuXHRcdFx0XHR2YXIgaGVpZ2h0ID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnaGVpZ2h0JykgfHwgd2lkdGggLyAoNTYwIC8gMzE1KTtcblx0XHRcdFx0cmV0dXJuIHRoaXMuX3Nob3dWaWRlb0lmcmFtZShpZCArICc/YXV0b3BsYXk9MScsIHdpZHRoLCBoZWlnaHQsICRjb250YWluZXJGb3JFbGVtZW50KTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc2hvd0luc3RhZ3JhbVZpZGVvJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfc2hvd0luc3RhZ3JhbVZpZGVvKGlkLCAkY29udGFpbmVyRm9yRWxlbWVudCkge1xuXHRcdFx0XHQvLyBpbnN0YWdyYW0gbG9hZCB0aGVpciBjb250ZW50IGludG8gaWZyYW1lJ3Mgc28gdGhpcyBjYW4gYmUgcHV0IHN0cmFpZ2h0IGludG8gdGhlIGVsZW1lbnRcblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA2MTI7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB3aWR0aCArIDgwO1xuXHRcdFx0XHRpZCA9IGlkLnN1YnN0cigtMSkgIT09ICcvJyA/IGlkICsgJy8nIDogaWQ7IC8vIGVuc3VyZSBpZCBoYXMgdHJhaWxpbmcgc2xhc2hcblx0XHRcdFx0JGNvbnRhaW5lckZvckVsZW1lbnQuaHRtbCgnPGlmcmFtZSB3aWR0aD1cIicgKyB3aWR0aCArICdcIiBoZWlnaHQ9XCInICsgaGVpZ2h0ICsgJ1wiIHNyYz1cIicgKyBpZCArICdlbWJlZC9cIiBmcmFtZWJvcmRlcj1cIjBcIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+Jyk7XG5cdFx0XHRcdHRoaXMuX3Jlc2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblx0XHRcdFx0dGhpcy5fY29uZmlnLm9uQ29udGVudExvYWRlZC5jYWxsKHRoaXMpO1xuXHRcdFx0XHRpZiAodGhpcy5fJG1vZGFsQXJyb3dzKSAvL2hpZGUgdGhlIGFycm93cyB3aGVuIHNob3dpbmcgdmlkZW9cblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblx0XHRcdFx0dGhpcy5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19zaG93VmlkZW9JZnJhbWUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93VmlkZW9JZnJhbWUodXJsLCB3aWR0aCwgaGVpZ2h0LCAkY29udGFpbmVyRm9yRWxlbWVudCkge1xuXHRcdFx0XHQvLyBzaG91bGQgYmUgdXNlZCBmb3IgdmlkZW9zIG9ubHkuIGZvciByZW1vdGUgY29udGVudCB1c2UgbG9hZFJlbW90ZUNvbnRlbnQgKGRhdGEtdHlwZT11cmwpXG5cdFx0XHRcdGhlaWdodCA9IGhlaWdodCB8fCB3aWR0aDsgLy8gZGVmYXVsdCB0byBzcXVhcmVcblx0XHRcdFx0JGNvbnRhaW5lckZvckVsZW1lbnQuaHRtbCgnPGRpdiBjbGFzcz1cImVtYmVkLXJlc3BvbnNpdmUgZW1iZWQtcmVzcG9uc2l2ZS0xNmJ5OVwiPjxpZnJhbWUgd2lkdGg9XCInICsgd2lkdGggKyAnXCIgaGVpZ2h0PVwiJyArIGhlaWdodCArICdcIiBzcmM9XCInICsgdXJsICsgJ1wiIGZyYW1lYm9yZGVyPVwiMFwiIGFsbG93ZnVsbHNjcmVlbiBjbGFzcz1cImVtYmVkLXJlc3BvbnNpdmUtaXRlbVwiPjwvaWZyYW1lPjwvZGl2PicpO1xuXHRcdFx0XHR0aGlzLl9yZXNpemUod2lkdGgsIGhlaWdodCk7XG5cdFx0XHRcdHRoaXMuX2NvbmZpZy5vbkNvbnRlbnRMb2FkZWQuY2FsbCh0aGlzKTtcblx0XHRcdFx0aWYgKHRoaXMuXyRtb2RhbEFycm93cykgdGhpcy5fJG1vZGFsQXJyb3dzLmNzcygnZGlzcGxheScsICdub25lJyk7IC8vaGlkZSB0aGUgYXJyb3dzIHdoZW4gc2hvd2luZyB2aWRlb1xuXHRcdFx0XHR0aGlzLl90b2dnbGVMb2FkaW5nKGZhbHNlKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Nob3dIdG1sNVZpZGVvJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfc2hvd0h0bWw1VmlkZW8odXJsLCAkY29udGFpbmVyRm9yRWxlbWVudCkge1xuXHRcdFx0XHQvLyBzaG91bGQgYmUgdXNlZCBmb3IgdmlkZW9zIG9ubHkuIGZvciByZW1vdGUgY29udGVudCB1c2UgbG9hZFJlbW90ZUNvbnRlbnQgKGRhdGEtdHlwZT11cmwpXG5cdFx0XHRcdHZhciB3aWR0aCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ3dpZHRoJykgfHwgNTYwO1xuXHRcdFx0XHR2YXIgaGVpZ2h0ID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnaGVpZ2h0JykgfHwgd2lkdGggLyAoNTYwIC8gMzE1KTtcblx0XHRcdFx0JGNvbnRhaW5lckZvckVsZW1lbnQuaHRtbCgnPGRpdiBjbGFzcz1cImVtYmVkLXJlc3BvbnNpdmUgZW1iZWQtcmVzcG9uc2l2ZS0xNmJ5OVwiPjx2aWRlbyB3aWR0aD1cIicgKyB3aWR0aCArICdcIiBoZWlnaHQ9XCInICsgaGVpZ2h0ICsgJ1wiIHNyYz1cIicgKyB1cmwgKyAnXCIgcHJlbG9hZD1cImF1dG9cIiBhdXRvcGxheSBjb250cm9scyBjbGFzcz1cImVtYmVkLXJlc3BvbnNpdmUtaXRlbVwiPjwvdmlkZW8+PC9kaXY+Jyk7XG5cdFx0XHRcdHRoaXMuX3Jlc2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblx0XHRcdFx0dGhpcy5fY29uZmlnLm9uQ29udGVudExvYWRlZC5jYWxsKHRoaXMpO1xuXHRcdFx0XHRpZiAodGhpcy5fJG1vZGFsQXJyb3dzKSB0aGlzLl8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsgLy9oaWRlIHRoZSBhcnJvd3Mgd2hlbiBzaG93aW5nIHZpZGVvXG5cdFx0XHRcdHRoaXMuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfbG9hZFJlbW90ZUNvbnRlbnQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9sb2FkUmVtb3RlQ29udGVudCh1cmwsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdHZhciBfdGhpczMgPSB0aGlzO1xuXG5cdFx0XHRcdHZhciB3aWR0aCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ3dpZHRoJykgfHwgNTYwO1xuXHRcdFx0XHR2YXIgaGVpZ2h0ID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnaGVpZ2h0JykgfHwgNTYwO1xuXG5cdFx0XHRcdHZhciBkaXNhYmxlRXh0ZXJuYWxDaGVjayA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2Rpc2FibGVFeHRlcm5hbENoZWNrJykgfHwgZmFsc2U7XG5cdFx0XHRcdHRoaXMuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXG5cdFx0XHRcdC8vIGV4dGVybmFsIHVybHMgYXJlIGxvYWRpbmcgaW50byBhbiBpZnJhbWVcblx0XHRcdFx0Ly8gbG9jYWwgYWpheCBjYW4gYmUgbG9hZGVkIGludG8gdGhlIGNvbnRhaW5lciBpdHNlbGZcblx0XHRcdFx0aWYgKCFkaXNhYmxlRXh0ZXJuYWxDaGVjayAmJiAhdGhpcy5faXNFeHRlcm5hbCh1cmwpKSB7XG5cdFx0XHRcdFx0JGNvbnRhaW5lckZvckVsZW1lbnQubG9hZCh1cmwsICQucHJveHkoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzMy5fJGVsZW1lbnQudHJpZ2dlcignbG9hZGVkLmJzLm1vZGFsJyk7bDtcblx0XHRcdFx0XHR9KSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0JGNvbnRhaW5lckZvckVsZW1lbnQuaHRtbCgnPGlmcmFtZSBzcmM9XCInICsgdXJsICsgJ1wiIGZyYW1lYm9yZGVyPVwiMFwiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4nKTtcblx0XHRcdFx0XHR0aGlzLl9jb25maWcub25Db250ZW50TG9hZGVkLmNhbGwodGhpcyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAodGhpcy5fJG1vZGFsQXJyb3dzKSAvL2hpZGUgdGhlIGFycm93cyB3aGVuIHJlbW90ZSBjb250ZW50XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsQXJyb3dzLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cblx0XHRcdFx0dGhpcy5fcmVzaXplKHdpZHRoLCBoZWlnaHQpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfaXNFeHRlcm5hbCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2lzRXh0ZXJuYWwodXJsKSB7XG5cdFx0XHRcdHZhciBtYXRjaCA9IHVybC5tYXRjaCgvXihbXjpcXC8/I10rOik/KD86XFwvXFwvKFteXFwvPyNdKikpPyhbXj8jXSspPyhcXD9bXiNdKik/KCMuKik/Lyk7XG5cdFx0XHRcdGlmICh0eXBlb2YgbWF0Y2hbMV0gPT09IFwic3RyaW5nXCIgJiYgbWF0Y2hbMV0ubGVuZ3RoID4gMCAmJiBtYXRjaFsxXS50b0xvd2VyQ2FzZSgpICE9PSBsb2NhdGlvbi5wcm90b2NvbCkgcmV0dXJuIHRydWU7XG5cblx0XHRcdFx0aWYgKHR5cGVvZiBtYXRjaFsyXSA9PT0gXCJzdHJpbmdcIiAmJiBtYXRjaFsyXS5sZW5ndGggPiAwICYmIG1hdGNoWzJdLnJlcGxhY2UobmV3IFJlZ0V4cCgnOignICsgKHtcblx0XHRcdFx0XHRcImh0dHA6XCI6IDgwLFxuXHRcdFx0XHRcdFwiaHR0cHM6XCI6IDQ0M1xuXHRcdFx0XHR9KVtsb2NhdGlvbi5wcm90b2NvbF0gKyAnKT8kJyksIFwiXCIpICE9PSBsb2NhdGlvbi5ob3N0KSByZXR1cm4gdHJ1ZTtcblxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2Vycm9yJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfZXJyb3IobWVzc2FnZSkge1xuXHRcdFx0XHRjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuXHRcdFx0XHR0aGlzLl9jb250YWluZXJUb1VzZSgpLmh0bWwobWVzc2FnZSk7XG5cdFx0XHRcdHRoaXMuX3Jlc2l6ZSgzMDAsIDMwMCk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19wcmVsb2FkSW1hZ2VCeUluZGV4Jyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfcHJlbG9hZEltYWdlQnlJbmRleChzdGFydEluZGV4LCBudW1iZXJPZlRpbWVzKSB7XG5cblx0XHRcdFx0aWYgKCF0aGlzLl8kZ2FsbGVyeUl0ZW1zKSByZXR1cm47XG5cblx0XHRcdFx0dmFyIG5leHQgPSAkKHRoaXMuXyRnYWxsZXJ5SXRlbXMuZ2V0KHN0YXJ0SW5kZXgpLCBmYWxzZSk7XG5cdFx0XHRcdGlmICh0eXBlb2YgbmV4dCA9PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuXG5cdFx0XHRcdHZhciBzcmMgPSBuZXh0LmF0dHIoJ2RhdGEtcmVtb3RlJykgfHwgbmV4dC5hdHRyKCdocmVmJyk7XG5cdFx0XHRcdGlmIChuZXh0LmF0dHIoJ2RhdGEtdHlwZScpID09PSAnaW1hZ2UnIHx8IHRoaXMuX2lzSW1hZ2Uoc3JjKSkgdGhpcy5fcHJlbG9hZEltYWdlKHNyYywgZmFsc2UpO1xuXG5cdFx0XHRcdGlmIChudW1iZXJPZlRpbWVzID4gMCkgcmV0dXJuIHRoaXMuX3ByZWxvYWRJbWFnZUJ5SW5kZXgoc3RhcnRJbmRleCArIDEsIG51bWJlck9mVGltZXMgLSAxKTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfcHJlbG9hZEltYWdlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfcHJlbG9hZEltYWdlKHNyYywgJGNvbnRhaW5lckZvckltYWdlKSB7XG5cdFx0XHRcdHZhciBfdGhpczQgPSB0aGlzO1xuXG5cdFx0XHRcdCRjb250YWluZXJGb3JJbWFnZSA9ICRjb250YWluZXJGb3JJbWFnZSB8fCBmYWxzZTtcblxuXHRcdFx0XHR2YXIgaW1nID0gbmV3IEltYWdlKCk7XG5cdFx0XHRcdGlmICgkY29udGFpbmVyRm9ySW1hZ2UpIHtcblx0XHRcdFx0XHQoZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRcdFx0XHQvLyBpZiBsb2FkaW5nIHRha2VzID4gMjAwbXMgc2hvdyBhIGxvYWRlclxuXHRcdFx0XHRcdFx0dmFyIGxvYWRpbmdUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdCRjb250YWluZXJGb3JJbWFnZS5hcHBlbmQoX3RoaXM0Ll9jb25maWcubG9hZGluZ01lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0fSwgMjAwKTtcblxuXHRcdFx0XHRcdFx0aW1nLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0aWYgKGxvYWRpbmdUaW1lb3V0KSBjbGVhclRpbWVvdXQobG9hZGluZ1RpbWVvdXQpO1xuXHRcdFx0XHRcdFx0XHRsb2FkaW5nVGltZW91dCA9IG51bGw7XG5cdFx0XHRcdFx0XHRcdHZhciBpbWFnZSA9ICQoJzxpbWcgLz4nKTtcblx0XHRcdFx0XHRcdFx0aW1hZ2UuYXR0cignc3JjJywgaW1nLnNyYyk7XG5cdFx0XHRcdFx0XHRcdGltYWdlLmFkZENsYXNzKCdpbWctZmx1aWQnKTtcblxuXHRcdFx0XHRcdFx0XHQvLyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBib290c3RyYXAgdjNcblx0XHRcdFx0XHRcdFx0aW1hZ2UuY3NzKCd3aWR0aCcsICcxMDAlJyk7XG5cblx0XHRcdFx0XHRcdFx0JGNvbnRhaW5lckZvckltYWdlLmh0bWwoaW1hZ2UpO1xuXHRcdFx0XHRcdFx0XHRpZiAoX3RoaXM0Ll8kbW9kYWxBcnJvd3MpIF90aGlzNC5fJG1vZGFsQXJyb3dzLmNzcygnZGlzcGxheScsICcnKTsgLy8gcmVtb3ZlIGRpc3BsYXkgdG8gZGVmYXVsdCB0byBjc3MgcHJvcGVydHlcblxuXHRcdFx0XHRcdFx0XHRfdGhpczQuX3Jlc2l6ZShpbWcud2lkdGgsIGltZy5oZWlnaHQpO1xuXHRcdFx0XHRcdFx0XHRfdGhpczQuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gX3RoaXM0Ll9jb25maWcub25Db250ZW50TG9hZGVkLmNhbGwoX3RoaXM0KTtcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRpbWcub25lcnJvciA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0X3RoaXM0Ll90b2dnbGVMb2FkaW5nKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzNC5fZXJyb3IoX3RoaXM0Ll9jb25maWcuc3RyaW5ncy5mYWlsICsgKCcgICcgKyBzcmMpKTtcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fSkoKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGltZy5zcmMgPSBzcmM7XG5cdFx0XHRcdHJldHVybiBpbWc7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3N3aXBlR2VzdXJlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfc3dpcGVHZXN1cmUoKSB7XG5cdFx0XHRcdGlmICh0aGlzLl90b3VjaGVuZFggPCB0aGlzLl90b3VjaHN0YXJ0WCkge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLm5hdmlnYXRlUmlnaHQoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGhpcy5fdG91Y2hlbmRYID4gdGhpcy5fdG91Y2hzdGFydFgpIHtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5uYXZpZ2F0ZUxlZnQoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19yZXNpemUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9yZXNpemUod2lkdGgsIGhlaWdodCkge1xuXG5cdFx0XHRcdGhlaWdodCA9IGhlaWdodCB8fCB3aWR0aDtcblx0XHRcdFx0dGhpcy5fd2FudGVkV2lkdGggPSB3aWR0aDtcblx0XHRcdFx0dGhpcy5fd2FudGVkSGVpZ2h0ID0gaGVpZ2h0O1xuXG5cdFx0XHRcdHZhciBpbWFnZUFzcGVjUmF0aW8gPSB3aWR0aCAvIGhlaWdodDtcblxuXHRcdFx0XHQvLyBpZiB3aWR0aCA+IHRoZSBhdmFpbGFibGUgc3BhY2UsIHNjYWxlIGRvd24gdGhlIGV4cGVjdGVkIHdpZHRoIGFuZCBoZWlnaHRcblx0XHRcdFx0dmFyIHdpZHRoQm9yZGVyQW5kUGFkZGluZyA9IHRoaXMuX3BhZGRpbmcubGVmdCArIHRoaXMuX3BhZGRpbmcucmlnaHQgKyB0aGlzLl9ib3JkZXIubGVmdCArIHRoaXMuX2JvcmRlci5yaWdodDtcblxuXHRcdFx0XHQvLyBmb3JjZSAxMHB4IG1hcmdpbiBpZiB3aW5kb3cgc2l6ZSA+IDU3NXB4XG5cdFx0XHRcdHZhciBhZGRNYXJnaW4gPSB0aGlzLl9jb25maWcuZG9jLmJvZHkuY2xpZW50V2lkdGggPiA1NzUgPyAyMCA6IDA7XG5cdFx0XHRcdHZhciBkaXNjb3VudE1hcmdpbiA9IHRoaXMuX2NvbmZpZy5kb2MuYm9keS5jbGllbnRXaWR0aCA+IDU3NSA/IDAgOiAyMDtcblxuXHRcdFx0XHR2YXIgbWF4V2lkdGggPSBNYXRoLm1pbih3aWR0aCArIHdpZHRoQm9yZGVyQW5kUGFkZGluZywgdGhpcy5fY29uZmlnLmRvYy5ib2R5LmNsaWVudFdpZHRoIC0gYWRkTWFyZ2luLCB0aGlzLl9jb25maWcubWF4V2lkdGgpO1xuXG5cdFx0XHRcdGlmICh3aWR0aCArIHdpZHRoQm9yZGVyQW5kUGFkZGluZyA+IG1heFdpZHRoKSB7XG5cdFx0XHRcdFx0aGVpZ2h0ID0gKG1heFdpZHRoIC0gd2lkdGhCb3JkZXJBbmRQYWRkaW5nIC0gZGlzY291bnRNYXJnaW4pIC8gaW1hZ2VBc3BlY1JhdGlvO1xuXHRcdFx0XHRcdHdpZHRoID0gbWF4V2lkdGg7XG5cdFx0XHRcdH0gZWxzZSB3aWR0aCA9IHdpZHRoICsgd2lkdGhCb3JkZXJBbmRQYWRkaW5nO1xuXG5cdFx0XHRcdHZhciBoZWFkZXJIZWlnaHQgPSAwLFxuXHRcdFx0XHQgICAgZm9vdGVySGVpZ2h0ID0gMDtcblxuXHRcdFx0XHQvLyBhcyB0aGUgcmVzaXplIGlzIHBlcmZvcm1lZCB0aGUgbW9kYWwgaXMgc2hvdywgdGhlIGNhbGN1bGF0ZSBtaWdodCBmYWlsXG5cdFx0XHRcdC8vIGlmIHNvLCBkZWZhdWx0IHRvIHRoZSBkZWZhdWx0IHNpemVzXG5cdFx0XHRcdGlmICh0aGlzLl9mb290ZXJJc1Nob3duKSBmb290ZXJIZWlnaHQgPSB0aGlzLl8kbW9kYWxGb290ZXIub3V0ZXJIZWlnaHQodHJ1ZSkgfHwgNTU7XG5cblx0XHRcdFx0aWYgKHRoaXMuX3RpdGxlSXNTaG93bikgaGVhZGVySGVpZ2h0ID0gdGhpcy5fJG1vZGFsSGVhZGVyLm91dGVySGVpZ2h0KHRydWUpIHx8IDY3O1xuXG5cdFx0XHRcdHZhciBib3JkZXJQYWRkaW5nID0gdGhpcy5fcGFkZGluZy50b3AgKyB0aGlzLl9wYWRkaW5nLmJvdHRvbSArIHRoaXMuX2JvcmRlci5ib3R0b20gKyB0aGlzLl9ib3JkZXIudG9wO1xuXG5cdFx0XHRcdC8vY2FsY3VsYXRlZCBlYWNoIHRpbWUgYXMgcmVzaXppbmcgdGhlIHdpbmRvdyBjYW4gY2F1c2UgdGhlbSB0byBjaGFuZ2UgZHVlIHRvIEJvb3RzdHJhcHMgZmx1aWQgbWFyZ2luc1xuXHRcdFx0XHR2YXIgbWFyZ2lucyA9IHBhcnNlRmxvYXQodGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnbWFyZ2luLXRvcCcpKSArIHBhcnNlRmxvYXQodGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnbWFyZ2luLWJvdHRvbScpKTtcblxuXHRcdFx0XHR2YXIgbWF4SGVpZ2h0ID0gTWF0aC5taW4oaGVpZ2h0LCAkKHdpbmRvdykuaGVpZ2h0KCkgLSBib3JkZXJQYWRkaW5nIC0gbWFyZ2lucyAtIGhlYWRlckhlaWdodCAtIGZvb3RlckhlaWdodCwgdGhpcy5fY29uZmlnLm1heEhlaWdodCAtIGJvcmRlclBhZGRpbmcgLSBoZWFkZXJIZWlnaHQgLSBmb290ZXJIZWlnaHQpO1xuXG5cdFx0XHRcdGlmIChoZWlnaHQgPiBtYXhIZWlnaHQpIHtcblx0XHRcdFx0XHQvLyBpZiBoZWlnaHQgPiB0aGUgYXZhaWxhYmxlIGhlaWdodCwgc2NhbGUgZG93biB0aGUgd2lkdGhcblx0XHRcdFx0XHR3aWR0aCA9IE1hdGguY2VpbChtYXhIZWlnaHQgKiBpbWFnZUFzcGVjUmF0aW8pICsgd2lkdGhCb3JkZXJBbmRQYWRkaW5nO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLmNzcygnaGVpZ2h0JywgbWF4SGVpZ2h0KTtcblx0XHRcdFx0dGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnZmxleCcsIDEpLmNzcygnbWF4V2lkdGgnLCB3aWR0aCk7XG5cblx0XHRcdFx0dmFyIG1vZGFsID0gdGhpcy5fJG1vZGFsLmRhdGEoJ2JzLm1vZGFsJyk7XG5cdFx0XHRcdGlmIChtb2RhbCkge1xuXHRcdFx0XHRcdC8vIHY0IG1ldGhvZCBpcyBtaXN0YWtlbmx5IHByb3RlY3RlZFxuXHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRtb2RhbC5faGFuZGxlVXBkYXRlKCk7XG5cdFx0XHRcdFx0fSBjYXRjaCAoRXhjZXB0aW9uKSB7XG5cdFx0XHRcdFx0XHRtb2RhbC5oYW5kbGVVcGRhdGUoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fV0sIFt7XG5cdFx0XHRrZXk6ICdfalF1ZXJ5SW50ZXJmYWNlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfalF1ZXJ5SW50ZXJmYWNlKGNvbmZpZykge1xuXHRcdFx0XHR2YXIgX3RoaXM1ID0gdGhpcztcblxuXHRcdFx0XHRjb25maWcgPSBjb25maWcgfHwge307XG5cdFx0XHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdHZhciAkdGhpcyA9ICQoX3RoaXM1KTtcblx0XHRcdFx0XHR2YXIgX2NvbmZpZyA9ICQuZXh0ZW5kKHt9LCBMaWdodGJveC5EZWZhdWx0LCAkdGhpcy5kYXRhKCksIHR5cGVvZiBjb25maWcgPT09ICdvYmplY3QnICYmIGNvbmZpZyk7XG5cblx0XHRcdFx0XHRuZXcgTGlnaHRib3goX3RoaXM1LCBfY29uZmlnKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fV0pO1xuXG5cdFx0cmV0dXJuIExpZ2h0Ym94O1xuXHR9KSgpO1xuXG5cdCQuZm5bTkFNRV0gPSBMaWdodGJveC5falF1ZXJ5SW50ZXJmYWNlO1xuXHQkLmZuW05BTUVdLkNvbnN0cnVjdG9yID0gTGlnaHRib3g7XG5cdCQuZm5bTkFNRV0ubm9Db25mbGljdCA9IGZ1bmN0aW9uICgpIHtcblx0XHQkLmZuW05BTUVdID0gSlFVRVJZX05PX0NPTkZMSUNUO1xuXHRcdHJldHVybiBMaWdodGJveC5falF1ZXJ5SW50ZXJmYWNlO1xuXHR9O1xuXG5cdHJldHVybiBMaWdodGJveDtcbn0pKGpRdWVyeSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1la2tvLWxpZ2h0Ym94LmpzLm1hcFxuXG59KGpRdWVyeSk7XG4iLCIiLCJcbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkge1xuXHR2YXIgcHJldmlvdXMgPSBcIiBcIjtcbiAgICAkKFwiI2ltYWdlX2dhbGxlcnlcIikuY2xpY2soZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgdmFyIGlkX25hbWUgPSBldmVudC50YXJnZXQuaWQ7XG4gICAgICAgIGlkX25hbWUgPSBpZF9uYW1lLnJlcGxhY2UoL1swLTldL2csICcnKTsgLy9yZWdleCBmb3IgYWxwaGFiZXRzLCBubyBudW1iZXJzXG4gICAgICAgIHZhciBpZF90b2dnbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZF9uYW1lKTsgLy9nZXQgSUQgb2YgbmFtZXMgdW5kZXIgY2xhc3MgXCJ0ZWFtLWJpb1wiXG4gICAgICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkX25hbWUpKXsgLy9pZiBJRCBleGlzdHNcblx0XHRcdGlmKChwcmV2aW91cyAhPSBpZF9uYW1lKSAmJiAocHJldmlvdXMgIT0gXCIgXCIpKXsgLy9pZiB5b3UgY2xpY2sgYSBkaWZmIGltYWdlXG5cdFx0XHRcdHZhciBpZF9wcmV2aW91cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpb3VzKTtcblx0XHRcdFx0JChpZF9wcmV2aW91cykudG9nZ2xlKFwiaGlkZGVuXCIpO1xuXHRcdFx0XHRjb25zb2xlLmxvZyhpZF9wcmV2aW91cyk7XG5cblx0XHRcdH1cblx0XHRcdGVsc2UgaWYocHJldmlvdXMgPT0gaWRfbmFtZSl7IC8vY2xpY2tpbmcgb24gdGhlIHNhbWUgaW1hZ2Vcblx0XHRcdFx0JChpZF90b2dnbGUpLnRvZ2dsZShcInVuaGlkZGVuXCIpO1xuXHRcdFx0fVxuXHRcdFx0JChpZF90b2dnbGUpLnRvZ2dsZShcInVuaGlkZGVuXCIpOyAvL3RvZ2dsZXMgdHh0Ym94IHRvIGFwcGVhclxuICAgICAgICBcdCBwcmV2aW91cyA9IGlkX25hbWU7Ly9jaGVja3MgdG8gc2VlIGlmIHlvdSBjbGlja2VkIGRpZmZlcmVudCBpbWFnZXNcbiAgICAgICAgfVxuICAgICAgICBlbHNle1xuICAgICAgICBcdGFsZXJ0KFwiVGhpcyBwZXJzb24gZG9lcyBub3QgZXhpc3QuIFRyeSBhZ2Fpbi5cIik7XG4gICAgICAgIH1cbiAgICAgICAgfVxuICAgICk7XG59KTsiLCIoZnVuY3Rpb24oJCkge1xyXG5cclxuICAgICQuZm4udmlzaWJsZSA9IGZ1bmN0aW9uKCkge1xyXG5cclxuICAgICAgICB2YXIgJHQgICAgICAgICAgICA9ICQodGhpcyksXHJcbiAgICAgICAgICAgICR3ICAgICAgICAgICAgPSAkKHdpbmRvdyksXHJcbiAgICAgICAgICAgIHdpbmRvd0hlaWdodCAgPSB3aW5kb3cuaW5uZXJIZWlnaHQsXHJcbiAgICAgICAgICAgIHdpbmRvd1RvcCAgICAgPSAkdy5zY3JvbGxUb3AoKSxcclxuICAgICAgICAgICAgd2luZG93Qm90dG9tICA9IHdpbmRvd1RvcCArIHdpbmRvd0hlaWdodCxcclxuICAgICAgICAgICAgX2hlaWdodCAgICAgICA9ICR0Lm91dGVySGVpZ2h0KCksXHJcbiAgICAgICAgICAgIF90b3AgICAgICAgICAgPSAkdC5vZmZzZXQoKS50b3AsXHJcbiAgICAgICAgICAgIF9ib3R0b20gICAgICAgPSBfdG9wICsgX2hlaWdodDtcclxuXHJcbiAgICAgICAgcmV0dXJuICgoX2JvdHRvbSA+PSB3aW5kb3dUb3ApICYmIChfdG9wIDw9IHdpbmRvd0JvdHRvbSkpO1xyXG4gICAgfTtcclxuXHJcbn0pKGpRdWVyeSk7XHJcblxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XHJcblxyXG4gICAgJCh3aW5kb3cpLm9uKFwic2Nyb2xsXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBpZiAoJCh3aW5kb3cpLnNjcm9sbFRvcCgpID49IDEwMCAmJiAhJChcIi5uYXZiYXJcIikuaGFzQ2xhc3MoXCJmaXhlZFwiKSkge1xyXG4gICAgICAgICAgICAkKFwiLm5hdmJhclwiKS5hZGRDbGFzcyhcImZpeGVkXCIpLmFkZENsYXNzKFwiZml4ZWQtdG9wXCIpLmFuaW1hdGUoe1xyXG4gICAgICAgICAgICAgICAgdG9wOiAxNSxcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDFcclxuICAgICAgICAgICAgfSwgMTAwMCk7XHJcblxyXG5cclxuICAgICAgICB9IGVsc2UgaWYgKCQod2luZG93KS5zY3JvbGxUb3AoKSA8PSA1MCkge1xyXG4gICAgICAgICAgICAkKFwiLm5hdmJhclwiKS5jc3MoXCJ0b3BcIiwgXCJcIikucmVtb3ZlQ2xhc3MoXCJmaXhlZFwiKS5yZW1vdmVDbGFzcyhcImZpeGVkLXRvcFwiKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIC8vb24gb3Igc2Nyb2xsLCBkZXRlY3QgZWxlbWVudHMgaW4gdmlld1xyXG4gICAgJCh3aW5kb3cpLm9uKCdzY3JvbGwgcmVzaXplJywgZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgJCgnLmZseS1pbicpLmVhY2goZnVuY3Rpb24gKGksIHZhbCkge1xyXG4gICAgICAgICAgICBpZigkKHZhbCkudmlzaWJsZSgpKXtcclxuICAgICAgICAgICAgICAgICQodmFsKS5hZGRDbGFzcyhcImNvbWUtaW5cIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfSk7XHJcbiAgICAvL3RyaWdnZXIgb3VyIHNjcm9sbCBldmVudCBvbiBpbml0aWFsIGxvYWRcclxuICAgICQod2luZG93KS50cmlnZ2VyKCdzY3JvbGwnKTtcclxuXHJcblxyXG59KTtcclxuXHJcbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcclxuXHJcblxyXG4gICAgbGV0IHdpZHRoUG9sID0gMTkyMCxcclxuICAgICAgICBoZWlnaHRQb2wgPSAxMDA7XHJcblxyXG4gICAgY29uc3QgaGVhZGVyUG9seSA9IFtcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgICAgIHtcInhcIjogd2lkdGhQb2wsIFwieVwiOiAxMDB9LFxyXG4gICAgICAgIHtcInhcIjogd2lkdGhQb2wsIFwieVwiOiAwfSxcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiA1MH0sXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogMTAwfSxcclxuICAgIF07XHJcblxyXG4gICAgbGV0IHdpZHRoSW1nT3ZlcmxheSA9IDE5MjAsXHJcbiAgICAgICAgaGVpZ2h0SW1nT3ZlcmxheSA9IDEwMDtcclxuXHJcblxyXG4gICAgY29uc3QgaW1hZ2VQb2x5VG9wID0gW1xyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDEwMH0sXHJcbiAgICAgICAge1wieFwiOiB3aWR0aEltZ092ZXJsYXksIFwieVwiOiA1MH0sXHJcbiAgICAgICAge1wieFwiOiB3aWR0aEltZ092ZXJsYXksIFwieVwiOiAwfSxcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAwfSxcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgXTtcclxuXHJcbiAgICBjb25zdCBpbWFnZVBvbHlCb3R0b20gPSBbXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogMTAwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoSW1nT3ZlcmxheSwgXCJ5XCI6IDEwMH0sXHJcbiAgICAgICAge1wieFwiOiB3aWR0aEltZ092ZXJsYXksIFwieVwiOiAwfSxcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiA1MH0sXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogMTAwfSxcclxuICAgIF07XHJcblxyXG5cclxuICAgIGxldCBpbWdIZWFkZXJIb2xkZXIgPSBkMy5zZWxlY3QoXCJib2R5XCIpLnNlbGVjdChcIiNib3R0b20tbGFuZGluZy1vdmVybGF5XCIpLnNlbGVjdCgnI2xhbmRpbmctc3ZnJylcclxuICAgICAgICAuYXR0cihcIndpZHRoXCIsIHdpZHRoUG9sKVxyXG4gICAgICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodFBvbCk7XHJcblxyXG4gICAgY29uc29sZS5sb2coZDMuc2VsZWN0KFwiYm9keVwiKSk7XHJcblxyXG4gICAgbGV0IGltZ0JvdHRvbUhvbGRlciA9IGQzLnNlbGVjdChcImJvZHlcIikuc2VsZWN0QWxsKFwiLnN2Zy1pbWFnZS1vdmVybGF5LWJvdHRvbVwiKVxyXG4gICAgICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGhJbWdPdmVybGF5KVxyXG4gICAgICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodEltZ092ZXJsYXkpO1xyXG5cclxuXHJcbiAgICBsZXQgaW1nVG9wSG9sZGVyID0gZDMuc2VsZWN0KFwiYm9keVwiKS5zZWxlY3RBbGwoXCIuc3ZnLWltYWdlLW92ZXJsYXktdG9wXCIpXHJcbiAgICAgICAgLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aEltZ092ZXJsYXkpXHJcbiAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0SW1nT3ZlcmxheSk7XHJcblxyXG4gICAgY3JlYXRlUG9seWdvbihoZWFkZXJQb2x5LCB3aWR0aFBvbCwgaGVpZ2h0UG9sLCBpbWdIZWFkZXJIb2xkZXIpO1xyXG4gICAgY3JlYXRlUG9seWdvbihpbWFnZVBvbHlCb3R0b20sIHdpZHRoSW1nT3ZlcmxheSwgaGVpZ2h0SW1nT3ZlcmxheSwgaW1nQm90dG9tSG9sZGVyKTtcclxuICAgIGNyZWF0ZVBvbHlnb24oaW1hZ2VQb2x5VG9wLCB3aWR0aEltZ092ZXJsYXksIGhlaWdodEltZ092ZXJsYXksIGltZ1RvcEhvbGRlcik7XHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIGNyZWF0ZVBvbHlnb24ocG9seWdvbiwgd2lkdGgsIGhlaWdodCwgdmlzKSB7XHJcblxyXG4gICAgICAgIGxldCBzdmcgPSB2aXMuc2VsZWN0QWxsKFwicGF0aFwiKS5kYXRhKFtwb2x5Z29uXSk7XHJcblxyXG4gICAgICAgIHN2Zy5leGl0KCkucmVtb3ZlKCk7XHJcblxyXG4gICAgICAgIGxldCBsaW5lRnVuY3Rpb24gPSBkMy5saW5lKClcclxuICAgICAgICAgICAgLngoZnVuY3Rpb24gKGQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkLnhcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnkoZnVuY3Rpb24gKGQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkLnlcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHN2Zy5lbnRlcigpLmFwcGVuZChcInBhdGhcIilcclxuICAgICAgICAgICAgLmF0dHIoXCJkXCIsIGxpbmVGdW5jdGlvbihwb2x5Z29uKSlcclxuICAgICAgICAgICAgLmF0dHIoXCJmaWxsXCIsIFwiI2ZmZlwiKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXRvZ2dsZT1cImxpZ2h0Ym94XCJdJywgZnVuY3Rpb24oZXZlbnQpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICQodGhpcykuZWtrb0xpZ2h0Ym94KHtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgJChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgJCgnW2RhdGEtdG9nZ2xlPVwidG9vbHRpcFwiXScpLnRvb2x0aXAoKVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gSW5zdGFudGlhdGUgdGhlIEJvb3RzdHJhcCBjYXJvdXNlbFxyXG4gICAgJCgnI3RoZUNhcm91c2VsJykuY2Fyb3VzZWwoe1xyXG4gICAgICAgIGludGVydmFsOiBmYWxzZVxyXG4gICAgfSk7XHJcblxyXG4vLyBmb3IgZXZlcnkgc2xpZGUgaW4gY2Fyb3VzZWwsIGNvcHkgdGhlIG5leHQgc2xpZGUncyBpdGVtIGluIHRoZSBzbGlkZS5cclxuLy8gRG8gdGhlIHNhbWUgZm9yIHRoZSBuZXh0LCBuZXh0IGl0ZW0uXHJcbiAgICAkKCcjdGhlQ2Fyb3VzZWwgLml0ZW0nKS5lYWNoKGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgdmFyIG5leHQgPSAkKHRoaXMpLm5leHQoKTtcclxuICAgICAgICBpZiAoIW5leHQubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIG5leHQgPSAkKHRoaXMpLnNpYmxpbmdzKCc6Zmlyc3QnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbmV4dC5jaGlsZHJlbignOmZpcnN0LWNoaWxkJykuY2xvbmUoKS5hcHBlbmRUbygkKHRoaXMpKTtcclxuXHJcbiAgICAgICAgaWYgKG5leHQubmV4dCgpLmxlbmd0aD4wKSB7XHJcbiAgICAgICAgICAgIG5leHQubmV4dCgpLmNoaWxkcmVuKCc6Zmlyc3QtY2hpbGQnKS5jbG9uZSgpLmFwcGVuZFRvKCQodGhpcykpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICQodGhpcykuc2libGluZ3MoJzpmaXJzdCcpLmNoaWxkcmVuKCc6Zmlyc3QtY2hpbGQnKS5jbG9uZSgpLmFwcGVuZFRvKCQodGhpcykpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG5cclxufSk7IiwiJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuXG4gICAgbGV0IGR1cmF0aW9uID0gNzUwO1xuXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoJy5zcGlubmVyJykuZWFjaChmdW5jdGlvbiAoayx2KSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAkKHYpLmZhZGVJbihkdXJhdGlvbikuY3NzKFwiZGlzcGxheVwiLCBcImZsZXhcIik7XG4gICAgICAgICAgICAgICAgJCh7ZGVnOiAwfSkuYW5pbWF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGRlZzogMzYwXG4gICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICBzdGVwOiBmdW5jdGlvbiAobm93LCBmeCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJCh2KS5jc3Moe1widHJhbnNmb3JtXCI6IFwicm90YXRlWShcIiArIG5vdyArIFwiZGVnKVwifSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgZWFzaW5nOiAnbGluZWFyJyxcbiAgICAgICAgICAgICAgICAgICAgcXVldWU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgJ2xpbmVhcicpO1xuICAgICAgICAgICAgfSwgayAqIGR1cmF0aW9uKjIvMyk7XG4gICAgICAgIH0pXG4gICAgfSwgMjAwKTtcblxuICAgICQoXCIubWFpbi1iYWNrZ3JvdW5kXCIpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCcuc3Bpbm5lcicpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJCh0aGlzKS5mYWRlSW4oKS5jc3MoXCJkaXNwbGF5XCIsIFwiZmxleFwiKTtcbiAgICAgICAgfSlcbiAgICB9KVxuXG59KTsiLCJsZXQgbW9kZWxJbml0RGF0YSA9IFtcbiAgICB7XG4gICAgICAgIHRpbWU6IDAsXG4gICAgICAgIGdmcDogMCxcbiAgICAgICAgcm9mZjogMCxcbiAgICAgICAgcm9uOiAwXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwLFxuICAgICAgICBnZnA6IDAuNTAzMzA4LFxuICAgICAgICByb2ZmOiAwLjAwNTExMyxcbiAgICAgICAgcm9uOiAwLjQyMzkwM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAsXG4gICAgICAgIGdmcDogMC42OTA1ODEsXG4gICAgICAgIHJvZmY6IDAuMDA0OTEzNixcbiAgICAgICAgcm9uOiAwLjc5Mjg4N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAsXG4gICAgICAgIGdmcDogMC43Njc1ODYsXG4gICAgICAgIHJvZmY6IDAuMDA0NzE2MzcsXG4gICAgICAgIHJvbjogMC44ODkyMDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwLFxuICAgICAgICBnZnA6IDAuODAzNDMsXG4gICAgICAgIHJvZmY6IDAuMDA0NTM0ODUsXG4gICAgICAgIHJvbjogMC44NzMxMjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUwLFxuICAgICAgICBnZnA6IDAuODIzNTE2LFxuICAgICAgICByb2ZmOiAwLjAwNDM2NDg4LFxuICAgICAgICByb246IDAuODQ3Mjg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwMCxcbiAgICAgICAgZ2ZwOiAwLjgzNzMxMyxcbiAgICAgICAgcm9mZjogMC4wMDQyMDQ0OSxcbiAgICAgICAgcm9uOiAwLjgyNDgwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTAsXG4gICAgICAgIGdmcDogMC44NDgzNjEsXG4gICAgICAgIHJvZmY6IDAuMDA0MDUyNjYsXG4gICAgICAgIHJvbjogMC44MDgwMjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDAwLFxuICAgICAgICBnZnA6IDAuODU4LFxuICAgICAgICByb2ZmOiAwLjAwMzkwODU5LFxuICAgICAgICByb246IDAuNzk2NjQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjg2Njc1NixcbiAgICAgICAgcm9mZjogMC4wMDM3NzE1NyxcbiAgICAgICAgcm9uOiAwLjc4OTU1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDAsXG4gICAgICAgIGdmcDogMC44NzQ4NTEsXG4gICAgICAgIHJvZmY6IDAuMDAzNjQxMDIsXG4gICAgICAgIHJvbjogMC43ODU1MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTUwLFxuICAgICAgICBnZnA6IDAuODgyMzkzLFxuICAgICAgICByb2ZmOiAwLjAwMzUxNjQ3LFxuICAgICAgICByb246IDAuNzgzNTc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwMCxcbiAgICAgICAgZ2ZwOiAwLjg4OTQ0MixcbiAgICAgICAgcm9mZjogMC4wMDMzOTc1MyxcbiAgICAgICAgcm9uOiAwLjc4MjkxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTAsXG4gICAgICAgIGdmcDogMC44OTYwMzksXG4gICAgICAgIHJvZmY6IDAuMDAzMjgzODgsXG4gICAgICAgIHJvbjogMC43ODMwMTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwLFxuICAgICAgICBnZnA6IDAuOTAyMjE0LFxuICAgICAgICByb2ZmOiAwLjAwMzE3NTI1LFxuICAgICAgICByb246IDAuNzgzNTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MCxcbiAgICAgICAgZ2ZwOiAwLjkwNzk5NixcbiAgICAgICAgcm9mZjogMC4wMDMwNzE0LFxuICAgICAgICByb246IDAuNzg0Mjc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwMCxcbiAgICAgICAgZ2ZwOiAwLjkxMzQwNyxcbiAgICAgICAgcm9mZjogMC4wMDI5NzIxMSxcbiAgICAgICAgcm9uOiAwLjc4NTEwM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTAsXG4gICAgICAgIGdmcDogMC45MTg0NjksXG4gICAgICAgIHJvZmY6IDAuMDAyODc3MTcsXG4gICAgICAgIHJvbjogMC43ODU5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDAsXG4gICAgICAgIGdmcDogMC45MjMyMDUsXG4gICAgICAgIHJvZmY6IDAuMDAyNzg2MzgsXG4gICAgICAgIHJvbjogMC43ODY3NzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTUwLFxuICAgICAgICBnZnA6IDAuOTI3NjMzLFxuICAgICAgICByb2ZmOiAwLjAwMjY5OTU3LFxuICAgICAgICByb246IDAuNzg3NTcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDAsXG4gICAgICAgIGdmcDogMC45MzE3NzIsXG4gICAgICAgIHJvZmY6IDAuMDAyNjE2NTcsXG4gICAgICAgIHJvbjogMC43ODgzMTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjkzNTY0MSxcbiAgICAgICAgcm9mZjogMC4wMDI1MzcyLFxuICAgICAgICByb246IDAuNzg5MDE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDAsXG4gICAgICAgIGdmcDogMC45MzkyNTYsXG4gICAgICAgIHJvZmY6IDAuMDAyNDYxMzEsXG4gICAgICAgIHJvbjogMC43ODk2NjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk0MjYzNCxcbiAgICAgICAgcm9mZjogMC4wMDIzODg3NSxcbiAgICAgICAgcm9uOiAwLjc5MDI3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjAwLFxuICAgICAgICBnZnA6IDAuOTQ1Nzg5LFxuICAgICAgICByb2ZmOiAwLjAwMjMxOTM3LFxuICAgICAgICByb246IDAuNzkwODM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTAsXG4gICAgICAgIGdmcDogMC45NDg3MzYsXG4gICAgICAgIHJvZmY6IDAuMDAyMjUzMDQsXG4gICAgICAgIHJvbjogMC43OTEzNjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk1MTQ4OSxcbiAgICAgICAgcm9mZjogMC4wMDIxODk2MixcbiAgICAgICAgcm9uOiAwLjc5MTg0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzUwLFxuICAgICAgICBnZnA6IDAuOTU0MDYxLFxuICAgICAgICByb2ZmOiAwLjAwMjEyODk4LFxuICAgICAgICByb246IDAuNzkyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDAwLFxuICAgICAgICBnZnA6IDAuOTU2NDY0LFxuICAgICAgICByb2ZmOiAwLjAwMjA3MTAxLFxuICAgICAgICByb246IDAuNzkyNzIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTAsXG4gICAgICAgIGdmcDogMC45NTg3MDksXG4gICAgICAgIHJvZmY6IDAuMDAyMDE1NTksXG4gICAgICAgIHJvbjogMC43OTMxMTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk2MDgwNyxcbiAgICAgICAgcm9mZjogMC4wMDE5NjI2LFxuICAgICAgICByb246IDAuNzkzNDc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NTAsXG4gICAgICAgIGdmcDogMC45NjI3NjgsXG4gICAgICAgIHJvZmY6IDAuMDAxOTExOTQsXG4gICAgICAgIHJvbjogMC43OTM4MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk2NDYwMSxcbiAgICAgICAgcm9mZjogMC4wMDE4NjM1MSxcbiAgICAgICAgcm9uOiAwLjc5NDEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NTAsXG4gICAgICAgIGdmcDogMC45NjYzMTQsXG4gICAgICAgIHJvZmY6IDAuMDAxODE3MjEsXG4gICAgICAgIHJvbjogMC43OTQ0MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk2NzkxNyxcbiAgICAgICAgcm9mZjogMC4wMDE3NzI5NSxcbiAgICAgICAgcm9uOiAwLjc5NDY5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzUwLFxuICAgICAgICBnZnA6IDAuOTY5NDE2LFxuICAgICAgICByb2ZmOiAwLjAwMTczMDYzLFxuICAgICAgICByb246IDAuNzk0OTU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MDAsXG4gICAgICAgIGdmcDogMC45NzA4MTksXG4gICAgICAgIHJvZmY6IDAuMDAxNjkwMTgsXG4gICAgICAgIHJvbjogMC43OTUxOTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk3MjEzMixcbiAgICAgICAgcm9mZjogMC4wMDE2NTE1MSxcbiAgICAgICAgcm9uOiAwLjc5NTQxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTAwLFxuICAgICAgICBnZnA6IDAuOTczMzYxLFxuICAgICAgICByb2ZmOiAwLjAwMTYxNDU0LFxuICAgICAgICByb246IDAuNzk1NjIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTAsXG4gICAgICAgIGdmcDogMC45NzQ1MTIsXG4gICAgICAgIHJvZmY6IDAuMDAxNTc5MjEsXG4gICAgICAgIHJvbjogMC43OTU4MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk3NTU5MSxcbiAgICAgICAgcm9mZjogMC4wMDE1NDU0MixcbiAgICAgICAgcm9uOiAwLjc5NTk5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDUwLFxuICAgICAgICBnZnA6IDAuOTc2NjAyLFxuICAgICAgICByb2ZmOiAwLjAwMTUxMzEzLFxuICAgICAgICByb246IDAuNzk2MTY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMDAsXG4gICAgICAgIGdmcDogMC45Nzc1NDksXG4gICAgICAgIHJvZmY6IDAuMDAxNDgyMjYsXG4gICAgICAgIHJvbjogMC43OTYzMjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjk3ODQzOCxcbiAgICAgICAgcm9mZjogMC4wMDE0NTI3NSxcbiAgICAgICAgcm9uOiAwLjc5NjQ3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjAwLFxuICAgICAgICBnZnA6IDAuOTc5MjcyLFxuICAgICAgICByb2ZmOiAwLjAwMTQyNDU0LFxuICAgICAgICByb246IDAuNzk2NjE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNTAsXG4gICAgICAgIGdmcDogMC45ODAwNTUsXG4gICAgICAgIHJvZmY6IDAuMDAxMzk3NTcsXG4gICAgICAgIHJvbjogMC43OTY3NDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk4MDc5LFxuICAgICAgICByb2ZmOiAwLjAwMTM3MTc5LFxuICAgICAgICByb246IDAuNzk2ODY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTAsXG4gICAgICAgIGdmcDogMC45ODE0ODEsXG4gICAgICAgIHJvZmY6IDAuMDAxMzQ3MTUsXG4gICAgICAgIHJvbjogMC43OTY5ODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk4MjEzLFxuICAgICAgICByb2ZmOiAwLjAwMTMyMzYsXG4gICAgICAgIHJvbjogMC43OTcwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDUwLFxuICAgICAgICBnZnA6IDAuOTgyNzQsXG4gICAgICAgIHJvZmY6IDAuMDAxMzAxMDksXG4gICAgICAgIHJvbjogMC43OTcxOTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk4MzMxNCxcbiAgICAgICAgcm9mZjogMC4wMDEyNzk1NyxcbiAgICAgICAgcm9uOiAwLjc5NzI4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTUwLFxuICAgICAgICBnZnA6IDAuOTgzODUzLFxuICAgICAgICByb2ZmOiAwLjAwMTI1ODk5LFxuICAgICAgICByb246IDAuNzk3Mzc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDAsXG4gICAgICAgIGdmcDogMC45ODQzNjIsXG4gICAgICAgIHJvZmY6IDAuMDAxMjM5MzMsXG4gICAgICAgIHJvbjogMC43OTc0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjUwLFxuICAgICAgICBnZnA6IDAuOTg0ODQsXG4gICAgICAgIHJvZmY6IDAuMDAxMjIwNTMsXG4gICAgICAgIHJvbjogMC43OTc1MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NTI5MSxcbiAgICAgICAgcm9mZjogMC4wMDEyMDI1NyxcbiAgICAgICAgcm9uOiAwLjc5NzYxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNzUwLFxuICAgICAgICBnZnA6IDAuOTg1NzE1LFxuICAgICAgICByb2ZmOiAwLjAwMTE4NTM5LFxuICAgICAgICByb246IDAuNzk3NjgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI4MDAsXG4gICAgICAgIGdmcDogMC45ODYxMTYsXG4gICAgICAgIHJvZmY6IDAuMDAxMTY4OTgsXG4gICAgICAgIHJvbjogMC43OTc3NDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NjQ5MyxcbiAgICAgICAgcm9mZjogMC4wMDExNTMyOSxcbiAgICAgICAgcm9uOiAwLjc5NzgxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyOTAwLFxuICAgICAgICBnZnA6IDAuOTg2ODUsXG4gICAgICAgIHJvZmY6IDAuMDAxMTM4MjksXG4gICAgICAgIHJvbjogMC43OTc4NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NzE4NixcbiAgICAgICAgcm9mZjogMC4wMDExMjM5NSxcbiAgICAgICAgcm9uOiAwLjc5NzkyNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDAwLFxuICAgICAgICBnZnA6IDAuOTg3NTAzLFxuICAgICAgICByb2ZmOiAwLjAwMTExMDI1LFxuICAgICAgICByb246IDAuNzk3OTc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwNTAsXG4gICAgICAgIGdmcDogMC45ODc4MDMsXG4gICAgICAgIHJvZmY6IDAuMDAxMDk3MTUsXG4gICAgICAgIHJvbjogMC43OTgwMjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjk4ODA4NyxcbiAgICAgICAgcm9mZjogMC4wMDEwODQ2MyxcbiAgICAgICAgcm9uOiAwLjc5ODA3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMTUwLFxuICAgICAgICBnZnA6IDAuOTg4MzU0LFxuICAgICAgICByb2ZmOiAwLjAwMTA3MjY3LFxuICAgICAgICByb246IDAuNzk4MTE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyMDAsXG4gICAgICAgIGdmcDogMC45ODg2MDgsXG4gICAgICAgIHJvZmY6IDAuMDAxMDYxMjMsXG4gICAgICAgIHJvbjogMC43OTgxNThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk4ODg0NyxcbiAgICAgICAgcm9mZjogMC4wMDEwNTAzLFxuICAgICAgICByb246IDAuNzk4MTk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMzMDAsXG4gICAgICAgIGdmcDogMC45ODkwNzQsXG4gICAgICAgIHJvZmY6IDAuMDAxMDM5ODUsXG4gICAgICAgIHJvbjogMC43OTgyMzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjk4OTI4OSxcbiAgICAgICAgcm9mZjogMC4wMDEwMjk4NixcbiAgICAgICAgcm9uOiAwLjc5ODI2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNDAwLFxuICAgICAgICBnZnA6IDAuOTg5NDkyLFxuICAgICAgICByb2ZmOiAwLjAwMTAyMDMxLFxuICAgICAgICByb246IDAuNzk4MzAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM0NTAsXG4gICAgICAgIGdmcDogMC45ODk2ODQsXG4gICAgICAgIHJvZmY6IDAuMDAxMDExMTksXG4gICAgICAgIHJvbjogMC43OTgzMzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjk4OTg2NixcbiAgICAgICAgcm9mZjogMC4wMDEwMDI0NyxcbiAgICAgICAgcm9uOiAwLjc5ODM2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTUwLFxuICAgICAgICBnZnA6IDAuOTkwMDM5LFxuICAgICAgICByb2ZmOiAwLjAwMDk5NDEzLFxuICAgICAgICByb246IDAuNzk4MzkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM2MDAsXG4gICAgICAgIGdmcDogMC45OTAyMDMsXG4gICAgICAgIHJvZmY6IDAuMDAwOTg2MTYyLFxuICAgICAgICByb246IDAuNzk4NDE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM2NTAsXG4gICAgICAgIGdmcDogMC45OTAzNTgsXG4gICAgICAgIHJvZmY6IDAuMDAwOTc4NTQ2LFxuICAgICAgICByb246IDAuNzk4NDQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM3MDAsXG4gICAgICAgIGdmcDogMC45OTA1MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwOTcxMjY2LFxuICAgICAgICByb246IDAuNzk4NDY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM3NTAsXG4gICAgICAgIGdmcDogMC45OTA2NDUsXG4gICAgICAgIHJvZmY6IDAuMDAwOTY0MzA4LFxuICAgICAgICByb246IDAuNzk4NDkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM4MDAsXG4gICAgICAgIGdmcDogMC45OTA3NzgsXG4gICAgICAgIHJvZmY6IDAuMDAwOTU3NjU3LFxuICAgICAgICByb246IDAuNzk4NTEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM4NTAsXG4gICAgICAgIGdmcDogMC45OTA5MDQsXG4gICAgICAgIHJvZmY6IDAuMDAwOTUxMyxcbiAgICAgICAgcm9uOiAwLjc5ODUzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzOTAwLFxuICAgICAgICBnZnA6IDAuOTkxMDI0LFxuICAgICAgICByb2ZmOiAwLjAwMDk0NTIyNCxcbiAgICAgICAgcm9uOiAwLjc5ODU1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzOTUwLFxuICAgICAgICBnZnA6IDAuOTkxMTM3LFxuICAgICAgICByb2ZmOiAwLjAwMDkzOTQxNyxcbiAgICAgICAgcm9uOiAwLjc5ODU3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDAwLFxuICAgICAgICBnZnA6IDAuOTkxMjQ1LFxuICAgICAgICByb2ZmOiAwLjAwMDkzMzg2NixcbiAgICAgICAgcm9uOiAwLjc5ODU4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDUwLFxuICAgICAgICBnZnA6IDAuOTkxMzQ4LFxuICAgICAgICByb2ZmOiAwLjAwMDkyODU2MSxcbiAgICAgICAgcm9uOiAwLjc5ODYwNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MTAwLFxuICAgICAgICBnZnA6IDAuOTkxNDQ1LFxuICAgICAgICByb2ZmOiAwLjAwMDkyMzQ5LFxuICAgICAgICByb246IDAuNzk4NjIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxNTAsXG4gICAgICAgIGdmcDogMC45OTE1MzgsXG4gICAgICAgIHJvZmY6IDAuMDAwOTE4NjQzLFxuICAgICAgICByb246IDAuNzk4NjM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyMDAsXG4gICAgICAgIGdmcDogMC45OTE2MjYsXG4gICAgICAgIHJvZmY6IDAuMDAwOTE0MDExLFxuICAgICAgICByb246IDAuNzk4NjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTcxLFxuICAgICAgICByb2ZmOiAwLjAwMDkwOTU4MyxcbiAgICAgICAgcm9uOiAwLjc5ODY2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MzAwLFxuICAgICAgICBnZnA6IDAuOTkxNzg5LFxuICAgICAgICByb2ZmOiAwLjAwMDkwNTM1MSxcbiAgICAgICAgcm9uOiAwLjc5ODY3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MzUwLFxuICAgICAgICBnZnA6IDAuOTkxODY1LFxuICAgICAgICByb2ZmOiAwLjAwMDkwMTMwNixcbiAgICAgICAgcm9uOiAwLjc5ODY4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDAwLFxuICAgICAgICBnZnA6IDAuOTkxOTM3LFxuICAgICAgICByb2ZmOiAwLjAwMDg5NzQ0LFxuICAgICAgICByb246IDAuNzk4NzAxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ0NTAsXG4gICAgICAgIGdmcDogMC45OTIwMDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODkzNzQ1LFxuICAgICAgICByb246IDAuNzk4NzEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1MDAsXG4gICAgICAgIGdmcDogMC45OTIwNzEsXG4gICAgICAgIHJvZmY6IDAuMDAwODkwMjEzLFxuICAgICAgICByb246IDAuNzk4NzIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1NTAsXG4gICAgICAgIGdmcDogMC45OTIxMzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODg2ODM3LFxuICAgICAgICByb246IDAuNzk4NzMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2MDAsXG4gICAgICAgIGdmcDogMC45OTIxOTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODgzNjEsXG4gICAgICAgIHJvbjogMC43OTg3NDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjI0OSxcbiAgICAgICAgcm9mZjogMC4wMDA4ODA1MjYsXG4gICAgICAgIHJvbjogMC43OTg3NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjMwMyxcbiAgICAgICAgcm9mZjogMC4wMDA4Nzc1NzksXG4gICAgICAgIHJvbjogMC43OTg3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NzUwLFxuICAgICAgICBnZnA6IDAuOTkyMzU0LFxuICAgICAgICByb2ZmOiAwLjAwMDg3NDc2MSxcbiAgICAgICAgcm9uOiAwLjc5ODc2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0ODAwLFxuICAgICAgICBnZnA6IDAuOTkyNDAzLFxuICAgICAgICByb2ZmOiAwLjAwMDg3MjA2OSxcbiAgICAgICAgcm9uOiAwLjc5ODc3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0ODUwLFxuICAgICAgICBnZnA6IDAuOTkyNDQ5LFxuICAgICAgICByb2ZmOiAwLjAwMDg2OTQ5NSxcbiAgICAgICAgcm9uOiAwLjc5ODc4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0OTAwLFxuICAgICAgICBnZnA6IDAuOTkyNDk0LFxuICAgICAgICByb2ZmOiAwLjAwMDg2NzAzNSxcbiAgICAgICAgcm9uOiAwLjc5ODc5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0OTUwLFxuICAgICAgICBnZnA6IDAuOTkyNTM2LFxuICAgICAgICByb2ZmOiAwLjAwMDg2NDY4NCxcbiAgICAgICAgcm9uOiAwLjc5ODc5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDAwLFxuICAgICAgICBnZnA6IDAuOTkyNTc2LFxuICAgICAgICByb2ZmOiAwLjAwMDg2MjQzNyxcbiAgICAgICAgcm9uOiAwLjc5ODgwNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDUwLFxuICAgICAgICBnZnA6IDAuOTkyNjE1LFxuICAgICAgICByb2ZmOiAwLjAwMDg2MDI5LFxuICAgICAgICByb246IDAuNzk4ODExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUxMDAsXG4gICAgICAgIGdmcDogMC45OTI2NTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODU4MjM3LFxuICAgICAgICByb246IDAuNzk4ODE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUxNTAsXG4gICAgICAgIGdmcDogMC45OTI2ODYsXG4gICAgICAgIHJvZmY6IDAuMDAwODU2Mjc1LFxuICAgICAgICByb246IDAuNzk4ODIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUyMDAsXG4gICAgICAgIGdmcDogMC45OTI3MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODU0NCxcbiAgICAgICAgcm9uOiAwLjc5ODgyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjUwLFxuICAgICAgICBnZnA6IDAuOTkyNzUxLFxuICAgICAgICByb2ZmOiAwLjAwMDg1MjYwNyxcbiAgICAgICAgcm9uOiAwLjc5ODgzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MzAwLFxuICAgICAgICBnZnA6IDAuOTkyNzgxLFxuICAgICAgICByb2ZmOiAwLjAwMDg1MDg5NCxcbiAgICAgICAgcm9uOiAwLjc5ODgzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MzUwLFxuICAgICAgICBnZnA6IDAuOTkyODEsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ5MjU3LFxuICAgICAgICByb246IDAuNzk4ODQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU0MDAsXG4gICAgICAgIGdmcDogMC45OTI4MzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ3NjkyLFxuICAgICAgICByb246IDAuNzk4ODQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU0NTAsXG4gICAgICAgIGdmcDogMC45OTI4NjQsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ2MTk2LFxuICAgICAgICByb246IDAuNzk4ODUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MDAsXG4gICAgICAgIGdmcDogMC45OTI4ODksXG4gICAgICAgIHJvZmY6IDAuMDAwODQ0NzY2LFxuICAgICAgICByb246IDAuNzk4ODU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1NTAsXG4gICAgICAgIGdmcDogMC45OTI5MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODQzMzk5LFxuICAgICAgICByb246IDAuNzk4ODU5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU2MDAsXG4gICAgICAgIGdmcDogMC45OTI5MzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODQyMDkzLFxuICAgICAgICByb246IDAuNzk4ODYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU2NTAsXG4gICAgICAgIGdmcDogMC45OTI5NTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODQwODQ1LFxuICAgICAgICByb246IDAuNzk4ODY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3MDAsXG4gICAgICAgIGdmcDogMC45OTI5NzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODM5NjUyLFxuICAgICAgICByb246IDAuNzk4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjk5OCxcbiAgICAgICAgcm9mZjogMC4wMDA4Mzg1MTIsXG4gICAgICAgIHJvbjogMC43OTg4NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzAxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4Mzc0MjIsXG4gICAgICAgIHJvbjogMC43OTg4NzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzAzNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MzYzOCxcbiAgICAgICAgcm9uOiAwLjc5ODg3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1OTAwLFxuICAgICAgICBnZnA6IDAuOTkzMDUyLFxuICAgICAgICByb2ZmOiAwLjAwMDgzNTM4NSxcbiAgICAgICAgcm9uOiAwLjc5ODg4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMDY5LFxuICAgICAgICByb2ZmOiAwLjAwMDgzNDQzMyxcbiAgICAgICAgcm9uOiAwLjc5ODg4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMDg0LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMzUyNCxcbiAgICAgICAgcm9uOiAwLjc5ODg4N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDUwLFxuICAgICAgICBnZnA6IDAuOTkzMDk5LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMjY1NCxcbiAgICAgICAgcm9uOiAwLjc5ODg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYxMDAsXG4gICAgICAgIGdmcDogMC45OTMxMTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODMxODI0LFxuICAgICAgICByb246IDAuNzk4ODkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYxNTAsXG4gICAgICAgIGdmcDogMC45OTMxMjcsXG4gICAgICAgIHJvZmY6IDAuMDAwODMxMDMsXG4gICAgICAgIHJvbjogMC43OTg4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMDI3MSxcbiAgICAgICAgcm9uOiAwLjc5ODg5NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMTUzLFxuICAgICAgICByb2ZmOiAwLjAwMDgyOTU0NSxcbiAgICAgICAgcm9uOiAwLjc5ODg5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MzAwLFxuICAgICAgICBnZnA6IDAuOTkzMTY1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyODg1MixcbiAgICAgICAgcm9uOiAwLjc5ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE3NixcbiAgICAgICAgcm9mZjogMC4wMDA4MjgxODksXG4gICAgICAgIHJvbjogMC43OTg5MDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE4NyxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjc1NTUsXG4gICAgICAgIHJvbjogMC43OTg5MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE5NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjY5NSxcbiAgICAgICAgcm9uOiAwLjc5ODkwNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTAwLFxuICAgICAgICBnZnA6IDAuOTkzMjA3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNjM3MSxcbiAgICAgICAgcm9uOiAwLjc5ODkwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTUwLFxuICAgICAgICBnZnA6IDAuOTkzMjE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNTgxOCxcbiAgICAgICAgcm9uOiAwLjc5ODkwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NjAwLFxuICAgICAgICBnZnA6IDAuOTkzMjI2LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNTI4OSxcbiAgICAgICAgcm9uOiAwLjc5ODkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY2NTAsXG4gICAgICAgIGdmcDogMC45OTMyMzUsXG4gICAgICAgIHJvZmY6IDAuMDAwODI0NzgzLFxuICAgICAgICByb246IDAuNzk4OTEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY3MDAsXG4gICAgICAgIGdmcDogMC45OTMyNDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODI0MyxcbiAgICAgICAgcm9uOiAwLjc5ODkxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NzUwLFxuICAgICAgICBnZnA6IDAuOTkzMjUxLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMzgzOSxcbiAgICAgICAgcm9uOiAwLjc5ODkxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMjU4LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMzM5OCxcbiAgICAgICAgcm9uOiAwLjc5ODkxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2ODUwLFxuICAgICAgICBnZnA6IDAuOTkzMjY1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMjk3NixcbiAgICAgICAgcm9uOiAwLjc5ODkxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2OTAwLFxuICAgICAgICBnZnA6IDAuOTkzMjcyLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMjU3MyxcbiAgICAgICAgcm9uOiAwLjc5ODkxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMjc5LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMjE4OCxcbiAgICAgICAgcm9uOiAwLjc5ODkxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMjg1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMTgyLFxuICAgICAgICByb246IDAuNzk4OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI5MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjE0NjgsXG4gICAgICAgIHJvbjogMC43OTg5MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI5NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjExMzIsXG4gICAgICAgIHJvbjogMC43OTg5MjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMwMixcbiAgICAgICAgcm9mZjogMC4wMDA4MjA4MSxcbiAgICAgICAgcm9uOiAwLjc5ODkyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzA3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMDUwMyxcbiAgICAgICAgcm9uOiAwLjc5ODkyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzEyLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMDIwOSxcbiAgICAgICAgcm9uOiAwLjc5ODkyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MzAwLFxuICAgICAgICBnZnA6IDAuOTkzMzE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTkyOSxcbiAgICAgICAgcm9uOiAwLjc5ODkyNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzIyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTY2LFxuICAgICAgICByb246IDAuNzk4OTI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc0MDAsXG4gICAgICAgIGdmcDogMC45OTMzMjYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE5NDA0LFxuICAgICAgICByb246IDAuNzk4OTI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc0NTAsXG4gICAgICAgIGdmcDogMC45OTMzMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTkxNTksXG4gICAgICAgIHJvbjogMC43OTg5MjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTg5MjUsXG4gICAgICAgIHJvbjogMC43OTg5MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMzOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTg3MDEsXG4gICAgICAgIHJvbjogMC43OTg5MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTg0ODcsXG4gICAgICAgIHJvbjogMC43OTg5MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM0NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTgyODIsXG4gICAgICAgIHJvbjogMC43OTg5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NzAwLFxuICAgICAgICBnZnA6IDAuOTkzMzQ4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxODA4NyxcbiAgICAgICAgcm9uOiAwLjc5ODkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc3NTAsXG4gICAgICAgIGdmcDogMC45OTMzNTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3OSxcbiAgICAgICAgcm9uOiAwLjc5ODkzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMzU1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzcyMixcbiAgICAgICAgcm9uOiAwLjc5ODkzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3ODUwLFxuICAgICAgICBnZnA6IDAuOTkzMzU4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzU1MSxcbiAgICAgICAgcm9uOiAwLjc5ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3Mzg4LFxuICAgICAgICByb246IDAuNzk4OTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc5NTAsXG4gICAgICAgIGdmcDogMC45OTMzNjMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3MjMyLFxuICAgICAgICByb246IDAuNzk4OTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwMDAsXG4gICAgICAgIGdmcDogMC45OTMzNjUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3MDgzLFxuICAgICAgICByb246IDAuNzk4OTMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwNTAsXG4gICAgICAgIGdmcDogMC45OTMzNjgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2OTQxLFxuICAgICAgICByb246IDAuNzk4OTMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxMDAsXG4gICAgICAgIGdmcDogMC45OTMzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTY4MDQsXG4gICAgICAgIHJvbjogMC43OTg5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTY2NzQsXG4gICAgICAgIHJvbjogMC43OTg5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTY1NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzc2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjQzMSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MzAwLFxuICAgICAgICBnZnA6IDAuOTkzMzc4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjMxOCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MjA5LFxuICAgICAgICByb246IDAuNzk4OTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0MDAsXG4gICAgICAgIGdmcDogMC45OTMzODIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MTA1LFxuICAgICAgICByb246IDAuNzk4OTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0NTAsXG4gICAgICAgIGdmcDogMC45OTMzODQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MDA2LFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MDAsXG4gICAgICAgIGdmcDogMC45OTMzODUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1OTExLFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1NTAsXG4gICAgICAgIGdmcDogMC45OTMzODcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1ODIxLFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg2MDAsXG4gICAgICAgIGdmcDogMC45OTMzODgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NzM0LFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg2NTAsXG4gICAgICAgIGdmcDogMC45OTMzOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU2NTEsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU1NzIsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTU0OTcsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU0MjUsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUzNTYsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NixcbiAgICAgICAgcm9mZjogMC4wMDA4MTUyOSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzk3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTIyNyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzk4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTE2NixcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzk5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTEwOSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MTAwLFxuICAgICAgICBnZnA6IDAuOTkzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUwNTQsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUwMDEsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ5NTEsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ5MDMsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ4NTcsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ4MTMsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ3NzEsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ3MzEsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ2OTMsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ2NTYsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ2MjEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDU4NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NTU1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1MjUsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5ODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQ5NixcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0NjgsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5OTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDQxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0MTUsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzOTEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzNjgsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzNDUsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzMjQsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzMDQsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyODQsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyNjYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjQ4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDIzMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyMTUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTk5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE4NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxNyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxNTcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTQ0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDEzMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDk3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA4NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNzcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDY4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA1OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNDIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDM0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAyNyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMTksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDEyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAwNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTk0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk4OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5ODIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTc3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk3MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NjcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTYzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk1OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NTQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTQ2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk0MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MzksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTM2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzMyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MjcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTI0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTE2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTA4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTAzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODkzLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH1cbl1cbmxldCBtb2RlbE9mZkRhdGEgPSBbXG4gICAge1xuICAgICAgICB0aW1lOiAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjhcbiAgICB9XG5dO1xubGV0IG1vZGVsT2ZmT25EYXRhID0gW1xuICAgIHtcbiAgICAgICAgdGltZTogMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE2MzY5OCxcbiAgICAgICAgcm9mZjogMC42OTc3MDEsXG4gICAgICAgIHJvbjogMC44MzI2NzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAsXG4gICAgICAgIGdmcDogMC4wMDAyMTEwNzQsXG4gICAgICAgIHJvZmY6IDAuNjEyMzYzLFxuICAgICAgICByb246IDAuOTQ4NTIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDI2NzUyNixcbiAgICAgICAgcm9mZjogMC41NTA3NzcsXG4gICAgICAgIHJvbjogMC45MTk2MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMzI5Njc2LFxuICAgICAgICByb2ZmOiAwLjUwMTUxNixcbiAgICAgICAgcm9uOiAwLjg3MDgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDAsXG4gICAgICAgIGdmcDogMC4wMDAzOTc1ODQsXG4gICAgICAgIHJvZmY6IDAuNDYwMzE5LFxuICAgICAgICByb246IDAuODA5OTU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDQ3MjAyOCxcbiAgICAgICAgcm9mZjogMC40MjQ5NDUsXG4gICAgICAgIHJvbjogMC43NDQ0NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwLFxuICAgICAgICBnZnA6IDAuMDAwNTUzOTUsXG4gICAgICAgIHJvZmY6IDAuMzk0MDE1LFxuICAgICAgICByb246IDAuNjgwMzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwLFxuICAgICAgICBnZnA6IDAuMDAwNjQ0MzQsXG4gICAgICAgIHJvZmY6IDAuMzY2NjEsXG4gICAgICAgIHJvbjogMC42MjEwMjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDAwLFxuICAgICAgICBnZnA6IDAuMDAwNzQ0MjIyLFxuICAgICAgICByb2ZmOiAwLjM0MjA4MixcbiAgICAgICAgcm9uOiAwLjU2NzgwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAsXG4gICAgICAgIGdmcDogMC4wMDA4NTQ2NjQsXG4gICAgICAgIHJvZmY6IDAuMzE5OTU4LFxuICAgICAgICByb246IDAuNTIwNzQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDk3Njc4NyxcbiAgICAgICAgcm9mZjogMC4yOTk4NzcsXG4gICAgICAgIHJvbjogMC40NzkzMjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTUwLFxuICAgICAgICBnZnA6IDAuMDAxMTExNzgsXG4gICAgICAgIHJvZmY6IDAuMjgxNTU2LFxuICAgICAgICByb246IDAuNDQyODE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTI2MDkxLFxuICAgICAgICByb2ZmOiAwLjI2NDc3MSxcbiAgICAgICAgcm9uOiAwLjQxMDUwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTAsXG4gICAgICAgIGdmcDogMC4wMDE0MjU1MixcbiAgICAgICAgcm9mZjogMC4yNDkzMzgsXG4gICAgICAgIHJvbjogMC4zODE3NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwLFxuICAgICAgICBnZnA6IDAuMDAxNjA3MDQsXG4gICAgICAgIHJvZmY6IDAuMjM1MTA2LFxuICAgICAgICByb246IDAuMzU2MDExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTgwNyxcbiAgICAgICAgcm9mZjogMC4yMjE5NDgsXG4gICAgICAgIHJvbjogMC4zMzI4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAsXG4gICAgICAgIGdmcDogMC4wMDIwMjcwMSxcbiAgICAgICAgcm9mZjogMC4yMDk3NTcsXG4gICAgICAgIHJvbjogMC4zMTE4NzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODUwLFxuICAgICAgICBnZnA6IDAuMDAyMjY4NzQsXG4gICAgICAgIHJvZmY6IDAuMTk4NDQyLFxuICAgICAgICByb246IDAuMjkyODIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMjUzMzk1LFxuICAgICAgICByb2ZmOiAwLjE4NzkyNSxcbiAgICAgICAgcm9uOiAwLjI3NTQzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTAsXG4gICAgICAgIGdmcDogMC4wMDI4MjQ0MyxcbiAgICAgICAgcm9mZjogMC4xNzgxMzcsXG4gICAgICAgIHJvbjogMC4yNTk1MjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMzE0MjAzLFxuICAgICAgICByb2ZmOiAwLjE2OTAyMSxcbiAgICAgICAgcm9uOiAwLjI0NDkxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDUwLFxuICAgICAgICBnZnA6IDAuMDAzNDg4NTQsXG4gICAgICAgIHJvZmY6IDAuMTYwNTIzLFxuICAgICAgICByb246IDAuMjMxNDc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDAsXG4gICAgICAgIGdmcDogMC4wMDM4NjU3NixcbiAgICAgICAgcm9mZjogMC4xNTI2LFxuICAgICAgICByb246IDAuMjE5MDk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTAsXG4gICAgICAgIGdmcDogMC4wMDQyNzUzNixcbiAgICAgICAgcm9mZjogMC4xNDUyMSxcbiAgICAgICAgcm9uOiAwLjIwNzY2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjAwLFxuICAgICAgICBnZnA6IDAuMDA0NzE4ODYsXG4gICAgICAgIHJvZmY6IDAuMTM4MzE5LFxuICAgICAgICByb246IDAuMTk3MTA2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTAsXG4gICAgICAgIGdmcDogMC4wMDUxOTc1NixcbiAgICAgICAgcm9mZjogMC4xMzE4OTUsXG4gICAgICAgIHJvbjogMC4xODczNDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNTcxMjQyLFxuICAgICAgICByb2ZmOiAwLjEyNTkwOSxcbiAgICAgICAgcm9uOiAwLjE3ODMyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzUwLFxuICAgICAgICBnZnA6IDAuMDA2MjY0MDEsXG4gICAgICAgIHJvZmY6IDAuMTIwMzM2LFxuICAgICAgICByb246IDAuMTY5OTkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MDAsXG4gICAgICAgIGdmcDogMC4wMDY4NTIzOSxcbiAgICAgICAgcm9mZjogMC4xMTUxNTQsXG4gICAgICAgIHJvbjogMC4xNjIyODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNzQ3NzA0LFxuICAgICAgICByb2ZmOiAwLjExMDM0MSxcbiAgICAgICAgcm9uOiAwLjE1NTE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDAsXG4gICAgICAgIGdmcDogMC4wMDgxMzY2OCxcbiAgICAgICAgcm9mZjogMC4xMDU4NzgsXG4gICAgICAgIHJvbjogMC4xNDg2MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwODgyOTI5LFxuICAgICAgICByb2ZmOiAwLjEwMTc0OCxcbiAgICAgICAgcm9uOiAwLjE0MjU5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjAwLFxuICAgICAgICBnZnA6IDAuMDA5NTUxOTgsXG4gICAgICAgIHJvZmY6IDAuMDk3OTMyNixcbiAgICAgICAgcm9uOiAwLjEzNzA0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjUwLFxuICAgICAgICBnZnA6IDAuMDEwMzAxLFxuICAgICAgICByb2ZmOiAwLjA5NDQxNzQsXG4gICAgICAgIHJvbjogMC4xMzE5NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMTA3MTgsXG4gICAgICAgIHJvZmY6IDAuMDkxMTg2NixcbiAgICAgICAgcm9uOiAwLjEyNzMxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzUwLFxuICAgICAgICBnZnA6IDAuMDExODU4OSxcbiAgICAgICAgcm9mZjogMC4wODgyMjUyLFxuICAgICAgICByb246IDAuMTIzMDcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MDAsXG4gICAgICAgIGdmcDogMC4wMTI2NTY0LFxuICAgICAgICByb2ZmOiAwLjA4NTUxODgsXG4gICAgICAgIHJvbjogMC4xMTkyMTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMzQ1NzYsXG4gICAgICAgIHJvZmY6IDAuMDgzMDUyOCxcbiAgICAgICAgcm9uOiAwLjExNTcxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTAwLFxuICAgICAgICBnZnA6IDAuMDE0MjU1NyxcbiAgICAgICAgcm9mZjogMC4wODA4MTI3LFxuICAgICAgICByb246IDAuMTEyNTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAxNTA0MzksXG4gICAgICAgIHJvZmY6IDAuMDc4Nzg0MixcbiAgICAgICAgcm9uOiAwLjEwOTcwMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDAwLFxuICAgICAgICBnZnA6IDAuMDE1ODE1NixcbiAgICAgICAgcm9mZjogMC4wNzY5NTMsXG4gICAgICAgIHJvbjogMC4xMDcxNDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjAxNjU2NDUsXG4gICAgICAgIHJvZmY6IDAuMDc1MzA0OSxcbiAgICAgICAgcm9uOiAwLjEwNDg1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTAwLFxuICAgICAgICBnZnA6IDAuMDE3Mjg1MyxcbiAgICAgICAgcm9mZjogMC4wNzM4MjU3LFxuICAgICAgICByb246IDAuMTAyODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjAxNzk3MzMsXG4gICAgICAgIHJvZmY6IDAuMDcyNTAxOCxcbiAgICAgICAgcm9uOiAwLjEwMTAxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjAwLFxuICAgICAgICBnZnA6IDAuMDE4NjI0OCxcbiAgICAgICAgcm9mZjogMC4wNzEzMTk2LFxuICAgICAgICByb246IDAuMDk5NDEyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjUwLFxuICAgICAgICBnZnA6IDAuMDE5MjM3MyxcbiAgICAgICAgcm9mZjogMC4wNzAyNjYzLFxuICAgICAgICByb246IDAuMDk4MDA0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzAwLFxuICAgICAgICBnZnA6IDAuMDE5ODA5MSxcbiAgICAgICAgcm9mZjogMC4wNjkzMjk0LFxuICAgICAgICByb246IDAuMDk2NzY4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzUwLFxuICAgICAgICBnZnA6IDAuMDIwMzM5OCxcbiAgICAgICAgcm9mZjogMC4wNjg0OTcyLFxuICAgICAgICByb246IDAuMDk1Njg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MDAsXG4gICAgICAgIGdmcDogMC4wMjA4Mjk2LFxuICAgICAgICByb2ZmOiAwLjA2Nzc1ODcsXG4gICAgICAgIHJvbjogMC4wOTQ3NDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMTI3OTQsXG4gICAgICAgIHJvZmY6IDAuMDY3MTAzNixcbiAgICAgICAgcm9uOiAwLjA5MzkzMzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMTY5MDksXG4gICAgICAgIHJvZmY6IDAuMDY2NTIyNSxcbiAgICAgICAgcm9uOiAwLjA5MzIzMTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMjA2NjMsXG4gICAgICAgIHJvZmY6IDAuMDY2MDA2NixcbiAgICAgICAgcm9uOiAwLjA5MjYyODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMjQwNzgsXG4gICAgICAgIHJvZmY6IDAuMDY1NTQ4LFxuICAgICAgICByb246IDAuMDkyMTE1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjUwLFxuICAgICAgICBnZnA6IDAuMDIyNzE4MyxcbiAgICAgICAgcm9mZjogMC4wNjUxMzk1LFxuICAgICAgICByb246IDAuMDkxNjgwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNzAwLFxuICAgICAgICBnZnA6IDAuMDIzMDAwMyxcbiAgICAgICAgcm9mZjogMC4wNjQ3NzQ2LFxuICAgICAgICByb246IDAuMDkxMzE2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNzUwLFxuICAgICAgICBnZnA6IDAuMDIzMjU2NyxcbiAgICAgICAgcm9mZjogMC4wNjQ0NDc2LFxuICAgICAgICByb246IDAuMDkxMDEzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODAwLFxuICAgICAgICBnZnA6IDAuMDIzNDkwMixcbiAgICAgICAgcm9mZjogMC4wNjQxNTMzLFxuICAgICAgICByb246IDAuMDkwNzY1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODUwLFxuICAgICAgICBnZnA6IDAuMDIzNzAzMyxcbiAgICAgICAgcm9mZjogMC4wNjM4ODcxLFxuICAgICAgICByb246IDAuMDkwNTY2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyOTAwLFxuICAgICAgICBnZnA6IDAuMDIzODk4NixcbiAgICAgICAgcm9mZjogMC4wNjM2NDQ4LFxuICAgICAgICByb246IDAuMDkwNDEwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyOTUwLFxuICAgICAgICBnZnA6IDAuMDI0MDc4MyxcbiAgICAgICAgcm9mZjogMC4wNjM0MjI5LFxuICAgICAgICByb246IDAuMDkwMjkyNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDAwLFxuICAgICAgICBnZnA6IDAuMDI0MjQ0NixcbiAgICAgICAgcm9mZjogMC4wNjMyMTgyLFxuICAgICAgICByb246IDAuMDkwMjA4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDUwLFxuICAgICAgICBnZnA6IDAuMDI0Mzk5NSxcbiAgICAgICAgcm9mZjogMC4wNjMwMjc5LFxuICAgICAgICByb246IDAuMDkwMTU1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMTAwLFxuICAgICAgICBnZnA6IDAuMDI0NTQ0NyxcbiAgICAgICAgcm9mZjogMC4wNjI4NDk1LFxuICAgICAgICByb246IDAuMDkwMTMwMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMTUwLFxuICAgICAgICBnZnA6IDAuMDI0NjgyLFxuICAgICAgICByb2ZmOiAwLjA2MjY4MDcsXG4gICAgICAgIHJvbjogMC4wOTAxMjkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyMDAsXG4gICAgICAgIGdmcDogMC4wMjQ4MTI3LFxuICAgICAgICByb2ZmOiAwLjA2MjUxOTgsXG4gICAgICAgIHJvbjogMC4wOTAxNTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyNTAsXG4gICAgICAgIGdmcDogMC4wMjQ5MzgzLFxuICAgICAgICByb2ZmOiAwLjA2MjM2NDksXG4gICAgICAgIHJvbjogMC4wOTAxOTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMzMDAsXG4gICAgICAgIGdmcDogMC4wMjUwNixcbiAgICAgICAgcm9mZjogMC4wNjIyMTQ3LFxuICAgICAgICByb246IDAuMDkwMjUyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzUwLFxuICAgICAgICBnZnA6IDAuMDI1MTc4NyxcbiAgICAgICAgcm9mZjogMC4wNjIwNjc3LFxuICAgICAgICByb246IDAuMDkwMzMwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNDAwLFxuICAgICAgICBnZnA6IDAuMDI1Mjk1NyxcbiAgICAgICAgcm9mZjogMC4wNjE5MjI5LFxuICAgICAgICByb246IDAuMDkwNDI0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNDUwLFxuICAgICAgICBnZnA6IDAuMDI1NDExNixcbiAgICAgICAgcm9mZjogMC4wNjE3NzkxLFxuICAgICAgICByb246IDAuMDkwNTM0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTAwLFxuICAgICAgICBnZnA6IDAuMDI1NTI3NCxcbiAgICAgICAgcm9mZjogMC4wNjE2MzU0LFxuICAgICAgICByb246IDAuMDkwNjU4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTUwLFxuICAgICAgICBnZnA6IDAuMDI1NjQzOCxcbiAgICAgICAgcm9mZjogMC4wNjE0OTExLFxuICAgICAgICByb246IDAuMDkwNzk2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjAwLFxuICAgICAgICBnZnA6IDAuMDI1NzYxNixcbiAgICAgICAgcm9mZjogMC4wNjEzNDUzLFxuICAgICAgICByb246IDAuMDkwOTQ3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjUwLFxuICAgICAgICBnZnA6IDAuMDI1ODgxMixcbiAgICAgICAgcm9mZjogMC4wNjExOTczLFxuICAgICAgICByb246IDAuMDkxMTEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM3MDAsXG4gICAgICAgIGdmcDogMC4wMjYwMDM1LFxuICAgICAgICByb2ZmOiAwLjA2MTA0NjcsXG4gICAgICAgIHJvbjogMC4wOTEyODk1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM3NTAsXG4gICAgICAgIGdmcDogMC4wMjYxMjg4LFxuICAgICAgICByb2ZmOiAwLjA2MDg5MjcsXG4gICAgICAgIHJvbjogMC4wOTE0Nzk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM4MDAsXG4gICAgICAgIGdmcDogMC4wMjYyNTc4LFxuICAgICAgICByb2ZmOiAwLjA2MDczNDgsXG4gICAgICAgIHJvbjogMC4wOTE2ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM4NTAsXG4gICAgICAgIGdmcDogMC4wMjYzOTA5LFxuICAgICAgICByb2ZmOiAwLjA2MDU3MjcsXG4gICAgICAgIHJvbjogMC4wOTE4OTkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM5MDAsXG4gICAgICAgIGdmcDogMC4wMjY1Mjg3LFxuICAgICAgICByb2ZmOiAwLjA2MDQwNTcsXG4gICAgICAgIHJvbjogMC4wOTIxMjg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM5NTAsXG4gICAgICAgIGdmcDogMC4wMjY2NzE3LFxuICAgICAgICByb2ZmOiAwLjA2MDIzMzYsXG4gICAgICAgIHJvbjogMC4wOTIzNzE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMDAsXG4gICAgICAgIGdmcDogMC4wMjY4MjAzLFxuICAgICAgICByb2ZmOiAwLjA2MDA1NTksXG4gICAgICAgIHJvbjogMC4wOTI2Mjc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwNTAsXG4gICAgICAgIGdmcDogMC4wMjY5NzUsXG4gICAgICAgIHJvZmY6IDAuMDU5ODcyMSxcbiAgICAgICAgcm9uOiAwLjA5Mjg5ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDEwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNzEzNjMsXG4gICAgICAgIHJvZmY6IDAuMDU5NjgxOSxcbiAgICAgICAgcm9uOiAwLjA5MzE4MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNzMwNDcsXG4gICAgICAgIHJvZmY6IDAuMDU5NDg1LFxuICAgICAgICByb246IDAuMDkzNDgzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MjAwLFxuICAgICAgICBnZnA6IDAuMDI3NDgwOCxcbiAgICAgICAgcm9mZjogMC4wNTkyODEsXG4gICAgICAgIHJvbjogMC4wOTM3OTkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyNTAsXG4gICAgICAgIGdmcDogMC4wMjc2NjUsXG4gICAgICAgIHJvZmY6IDAuMDU5MDY5NSxcbiAgICAgICAgcm9uOiAwLjA5NDEzMTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDMwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNzg1NzgsXG4gICAgICAgIHJvZmY6IDAuMDU4ODUwMyxcbiAgICAgICAgcm9uOiAwLjA5NDQ3OTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAyODA1OTksXG4gICAgICAgIHJvZmY6IDAuMDU4NjIyOSxcbiAgICAgICAgcm9uOiAwLjA5NDg0NjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAyODI3MTcsXG4gICAgICAgIHJvZmY6IDAuMDU4Mzg3LFxuICAgICAgICByb246IDAuMDk1MjMxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDUwLFxuICAgICAgICBnZnA6IDAuMDI4NDk0LFxuICAgICAgICByb2ZmOiAwLjA1ODE0MjMsXG4gICAgICAgIHJvbjogMC4wOTU2MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAyODcyNzMsXG4gICAgICAgIHJvZmY6IDAuMDU3ODg4NSxcbiAgICAgICAgcm9uOiAwLjA5NjA2MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAyODk3MjQsXG4gICAgICAgIHJvZmY6IDAuMDU3NjI1MixcbiAgICAgICAgcm9uOiAwLjA5NjUwNjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDYwMCxcbiAgICAgICAgZ2ZwOiAwLjAyOTIyOTksXG4gICAgICAgIHJvZmY6IDAuMDU3MzUyMixcbiAgICAgICAgcm9uOiAwLjA5Njk3NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDY1MCxcbiAgICAgICAgZ2ZwOiAwLjAyOTUwMDUsXG4gICAgICAgIHJvZmY6IDAuMDU3MDY4OSxcbiAgICAgICAgcm9uOiAwLjA5NzQ2NzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAyOTc4NTIsXG4gICAgICAgIHJvZmY6IDAuMDU2Nzc1MyxcbiAgICAgICAgcm9uOiAwLjA5Nzk4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NzUwLFxuICAgICAgICBnZnA6IDAuMDMwMDg0NyxcbiAgICAgICAgcm9mZjogMC4wNTY0NzA4LFxuICAgICAgICByb246IDAuMDk4NTI2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0ODAwLFxuICAgICAgICBnZnA6IDAuMDMwMzk5OSxcbiAgICAgICAgcm9mZjogMC4wNTYxNTUyLFxuICAgICAgICByb246IDAuMDk5MDk3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0ODUwLFxuICAgICAgICBnZnA6IDAuMDMwNzMxOSxcbiAgICAgICAgcm9mZjogMC4wNTU4MjgyLFxuICAgICAgICByb246IDAuMDk5Njk2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0OTAwLFxuICAgICAgICBnZnA6IDAuMDMxMDgxNixcbiAgICAgICAgcm9mZjogMC4wNTU0ODk0LFxuICAgICAgICByb246IDAuMTAwMzI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ5NTAsXG4gICAgICAgIGdmcDogMC4wMzE0NTAyLFxuICAgICAgICByb2ZmOiAwLjA1NTEzODYsXG4gICAgICAgIHJvbjogMC4xMDA5ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAzMTgzODcsXG4gICAgICAgIHJvZmY6IDAuMDU0Nzc1NCxcbiAgICAgICAgcm9uOiAwLjEwMTY4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDUwLFxuICAgICAgICBnZnA6IDAuMDMyMjQ4NixcbiAgICAgICAgcm9mZjogMC4wNTQzOTk1LFxuICAgICAgICByb246IDAuMTAyNDE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUxMDAsXG4gICAgICAgIGdmcDogMC4wMzI2ODEsXG4gICAgICAgIHJvZmY6IDAuMDU0MDEwNSxcbiAgICAgICAgcm9uOiAwLjEwMzE4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTUwLFxuICAgICAgICBnZnA6IDAuMDMzMTM3NSxcbiAgICAgICAgcm9mZjogMC4wNTM2MDgzLFxuICAgICAgICByb246IDAuMTAzOTk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUyMDAsXG4gICAgICAgIGdmcDogMC4wMzM2MTk3LFxuICAgICAgICByb2ZmOiAwLjA1MzE5MjYsXG4gICAgICAgIHJvbjogMC4xMDQ4NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAzNDEyOTEsXG4gICAgICAgIHJvZmY6IDAuMDUyNzYzLFxuICAgICAgICByb246IDAuMTA1NzUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUzMDAsXG4gICAgICAgIGdmcDogMC4wMzQ2Njc3LFxuICAgICAgICByb2ZmOiAwLjA1MjMxOTIsXG4gICAgICAgIHJvbjogMC4xMDY2OTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAzNTIzNzIsXG4gICAgICAgIHJvZmY6IDAuMDUxODYxMixcbiAgICAgICAgcm9uOiAwLjEwNzY5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDAwLFxuICAgICAgICBnZnA6IDAuMDM1ODM5OCxcbiAgICAgICAgcm9mZjogMC4wNTEzODg2LFxuICAgICAgICByb246IDAuMTA4NzQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU0NTAsXG4gICAgICAgIGdmcDogMC4wMzY0Nzc3LFxuICAgICAgICByb2ZmOiAwLjA1MDkwMTIsXG4gICAgICAgIHJvbjogMC4xMDk4NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAzNzE1MzQsXG4gICAgICAgIHJvZmY6IDAuMDUwMzk4OSxcbiAgICAgICAgcm9uOiAwLjExMTAyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTUwLFxuICAgICAgICBnZnA6IDAuMDM3ODY5MyxcbiAgICAgICAgcm9mZjogMC4wNDk4ODE0LFxuICAgICAgICByb246IDAuMTEyMjU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU2MDAsXG4gICAgICAgIGdmcDogMC4wMzg2Mjg0LFxuICAgICAgICByb2ZmOiAwLjA0OTM0ODcsXG4gICAgICAgIHJvbjogMC4xMTM1NTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAzOTQzMzYsXG4gICAgICAgIHJvZmY6IDAuMDQ4ODAwNyxcbiAgICAgICAgcm9uOiAwLjExNDkyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NzAwLFxuICAgICAgICBnZnA6IDAuMDQwMjg4MixcbiAgICAgICAgcm9mZjogMC4wNDgyMzcyLFxuICAgICAgICByb246IDAuMTE2MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTc1MCxcbiAgICAgICAgZ2ZwOiAwLjA0MTE5NTgsXG4gICAgICAgIHJvZmY6IDAuMDQ3NjU4MyxcbiAgICAgICAgcm9uOiAwLjExNzkxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1ODAwLFxuICAgICAgICBnZnA6IDAuMDQyMTYwMSxcbiAgICAgICAgcm9mZjogMC4wNDcwNjQsXG4gICAgICAgIHJvbjogMC4xMTk1MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTg1MCxcbiAgICAgICAgZ2ZwOiAwLjA0MzE4NTIsXG4gICAgICAgIHJvZmY6IDAuMDQ2NDU0MixcbiAgICAgICAgcm9uOiAwLjEyMTI0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1OTAwLFxuICAgICAgICBnZnA6IDAuMDQ0Mjc1NixcbiAgICAgICAgcm9mZjogMC4wNDU4MjkyLFxuICAgICAgICByb246IDAuMTIzMDYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU5NTAsXG4gICAgICAgIGdmcDogMC4wNDU0MzYyLFxuICAgICAgICByb2ZmOiAwLjA0NTE4OSxcbiAgICAgICAgcm9uOiAwLjEyNDk4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAwLFxuICAgICAgICBnZnA6IDAuMDQ2NjcyMSxcbiAgICAgICAgcm9mZjogMC4wNDQ1MzM4LFxuICAgICAgICByb246IDAuMTI3MDE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwNTAsXG4gICAgICAgIGdmcDogMC4wNDc5ODksXG4gICAgICAgIHJvZmY6IDAuMDQzODYzOSxcbiAgICAgICAgcm9uOiAwLjEyOTE2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MTAwLFxuICAgICAgICBnZnA6IDAuMDQ5MzkyOSxcbiAgICAgICAgcm9mZjogMC4wNDMxNzk1LFxuICAgICAgICByb246IDAuMTMxNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjE1MCxcbiAgICAgICAgZ2ZwOiAwLjA1MDg5MDYsXG4gICAgICAgIHJvZmY6IDAuMDQyNDgxMSxcbiAgICAgICAgcm9uOiAwLjEzMzg2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MjAwLFxuICAgICAgICBnZnA6IDAuMDUyNDg5LFxuICAgICAgICByb2ZmOiAwLjA0MTc2OSxcbiAgICAgICAgcm9uOiAwLjEzNjQzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MjUwLFxuICAgICAgICBnZnA6IDAuMDU0MTk2LFxuICAgICAgICByb2ZmOiAwLjA0MTA0MzgsXG4gICAgICAgIHJvbjogMC4xMzkxNThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjMwMCxcbiAgICAgICAgZ2ZwOiAwLjA1NjAxOTgsXG4gICAgICAgIHJvZmY6IDAuMDQwMzA2LFxuICAgICAgICByb246IDAuMTQyMDQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYzNTAsXG4gICAgICAgIGdmcDogMC4wNTc5Njk1LFxuICAgICAgICByb2ZmOiAwLjAzOTU1NjEsXG4gICAgICAgIHJvbjogMC4xNDUxMTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjQwMCxcbiAgICAgICAgZ2ZwOiAwLjA2MDA1NDcsXG4gICAgICAgIHJvZmY6IDAuMDM4Nzk1LFxuICAgICAgICByb246IDAuMTQ4MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjA2MjI4NjEsXG4gICAgICAgIHJvZmY6IDAuMDM4MDIzMixcbiAgICAgICAgcm9uOiAwLjE1MTg0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTAwLFxuICAgICAgICBnZnA6IDAuMDY0Njc0OCxcbiAgICAgICAgcm9mZjogMC4wMzcyNDE3LFxuICAgICAgICByb246IDAuMTU1NTMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1NTAsXG4gICAgICAgIGdmcDogMC4wNjcyMzMxLFxuICAgICAgICByb2ZmOiAwLjAzNjQ1MTQsXG4gICAgICAgIHJvbjogMC4xNTk0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NjAwLFxuICAgICAgICBnZnA6IDAuMDY5OTczOSxcbiAgICAgICAgcm9mZjogMC4wMzU2NTMsXG4gICAgICAgIHJvbjogMC4xNjM2MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjY1MCxcbiAgICAgICAgZ2ZwOiAwLjA3MjkxMTQsXG4gICAgICAgIHJvZmY6IDAuMDM0ODQ3OCxcbiAgICAgICAgcm9uOiAwLjE2ODA1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NzAwLFxuICAgICAgICBnZnA6IDAuMDc2MDYwNSxcbiAgICAgICAgcm9mZjogMC4wMzQwMzY2LFxuICAgICAgICByb246IDAuMTcyNzczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY3NTAsXG4gICAgICAgIGdmcDogMC4wNzk0MzcyLFxuICAgICAgICByb2ZmOiAwLjAzMzIyMDcsXG4gICAgICAgIHJvbjogMC4xNzc3OTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjgwMCxcbiAgICAgICAgZ2ZwOiAwLjA4MzA1ODYsXG4gICAgICAgIHJvZmY6IDAuMDMyNDAxMixcbiAgICAgICAgcm9uOiAwLjE4MzE0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2ODUwLFxuICAgICAgICBnZnA6IDAuMDg2OTQzLFxuICAgICAgICByb2ZmOiAwLjAzMTU3OTIsXG4gICAgICAgIHJvbjogMC4xODg4MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjkwMCxcbiAgICAgICAgZ2ZwOiAwLjA5MTEwOTUsXG4gICAgICAgIHJvZmY6IDAuMDMwNzU2LFxuICAgICAgICByb246IDAuMTk0ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY5NTAsXG4gICAgICAgIGdmcDogMC4wOTU1Nzg0LFxuICAgICAgICByb2ZmOiAwLjAyOTkzMjksXG4gICAgICAgIHJvbjogMC4yMDEzNDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwMCxcbiAgICAgICAgZ2ZwOiAwLjEwMDM3MSxcbiAgICAgICAgcm9mZjogMC4wMjkxMTExLFxuICAgICAgICByb246IDAuMjA4MjAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwNTAsXG4gICAgICAgIGdmcDogMC4xMDU1MSxcbiAgICAgICAgcm9mZjogMC4wMjgyOTIsXG4gICAgICAgIHJvbjogMC4yMTU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxMDAsXG4gICAgICAgIGdmcDogMC4xMTEwMTksXG4gICAgICAgIHJvZmY6IDAuMDI3NDc2NyxcbiAgICAgICAgcm9uOiAwLjIyMzI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxNTAsXG4gICAgICAgIGdmcDogMC4xMTY5MjEsXG4gICAgICAgIHJvZmY6IDAuMDI2NjY2NSxcbiAgICAgICAgcm9uOiAwLjIzMTUwNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MjAwLFxuICAgICAgICBnZnA6IDAuMTIzMjQxLFxuICAgICAgICByb2ZmOiAwLjAyNTg2MjgsXG4gICAgICAgIHJvbjogMC4yNDAyNjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzI1MCxcbiAgICAgICAgZ2ZwOiAwLjEzMDAwNSxcbiAgICAgICAgcm9mZjogMC4wMjUwNjY4LFxuICAgICAgICByb246IDAuMjQ5NTUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDczMDAsXG4gICAgICAgIGdmcDogMC4xMzcyMzgsXG4gICAgICAgIHJvZmY6IDAuMDI0Mjc5NSxcbiAgICAgICAgcm9uOiAwLjI1OTM5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MzUwLFxuICAgICAgICBnZnA6IDAuMTQ0OTY3LFxuICAgICAgICByb2ZmOiAwLjAyMzUwMjIsXG4gICAgICAgIHJvbjogMC4yNjk4MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzQwMCxcbiAgICAgICAgZ2ZwOiAwLjE1MzIxNSxcbiAgICAgICAgcm9mZjogMC4wMjI3MzU5LFxuICAgICAgICByb246IDAuMjgwODQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc0NTAsXG4gICAgICAgIGdmcDogMC4xNjIwMDksXG4gICAgICAgIHJvZmY6IDAuMDIxOTgxNyxcbiAgICAgICAgcm9uOiAwLjI5MjQ4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTAwLFxuICAgICAgICBnZnA6IDAuMTcxMzcxLFxuICAgICAgICByb2ZmOiAwLjAyMTI0MDUsXG4gICAgICAgIHJvbjogMC4zMDQ3NDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzU1MCxcbiAgICAgICAgZ2ZwOiAwLjE4MTMyNSxcbiAgICAgICAgcm9mZjogMC4wMjA1MTMyLFxuICAgICAgICByb246IDAuMzE3NjM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2MDAsXG4gICAgICAgIGdmcDogMC4xOTE4ODksXG4gICAgICAgIHJvZmY6IDAuMDE5ODAwNixcbiAgICAgICAgcm9uOiAwLjMzMTE2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NjUwLFxuICAgICAgICBnZnA6IDAuMjAzMDgzLFxuICAgICAgICByb2ZmOiAwLjAxOTEwMzMsXG4gICAgICAgIHJvbjogMC4zNDUzMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjIxNDkyMSxcbiAgICAgICAgcm9mZjogMC4wMTg0MjIxLFxuICAgICAgICByb246IDAuMzYwMDg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc3NTAsXG4gICAgICAgIGdmcDogMC4yMjc0MTQsXG4gICAgICAgIHJvZmY6IDAuMDE3NzU3NCxcbiAgICAgICAgcm9uOiAwLjM3NTQ0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3ODAwLFxuICAgICAgICBnZnA6IDAuMjQwNTY4LFxuICAgICAgICByb2ZmOiAwLjAxNzEwOTcsXG4gICAgICAgIHJvbjogMC4zOTEzNTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzg1MCxcbiAgICAgICAgZ2ZwOiAwLjI1NDM4NyxcbiAgICAgICAgcm9mZjogMC4wMTY0NzkzLFxuICAgICAgICByb246IDAuNDA3Nzg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc5MDAsXG4gICAgICAgIGdmcDogMC4yNjg4NjYsXG4gICAgICAgIHJvZmY6IDAuMDE1ODY2NyxcbiAgICAgICAgcm9uOiAwLjQyNDY2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTUwLFxuICAgICAgICBnZnA6IDAuMjgzOTk3LFxuICAgICAgICByb2ZmOiAwLjAxNTI3MTksXG4gICAgICAgIHJvbjogMC40NDE5MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODAwMCxcbiAgICAgICAgZ2ZwOiAwLjI5OTc2NSxcbiAgICAgICAgcm9mZjogMC4wMTQ2OTUxLFxuICAgICAgICByb246IDAuNDU5NDkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwNTAsXG4gICAgICAgIGdmcDogMC4zMTYxNDYsXG4gICAgICAgIHJvZmY6IDAuMDE0MTM2MyxcbiAgICAgICAgcm9uOiAwLjQ3NzI1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MTAwLFxuICAgICAgICBnZnA6IDAuMzMzMTEzLFxuICAgICAgICByb2ZmOiAwLjAxMzU5NTYsXG4gICAgICAgIHJvbjogMC40OTUxMTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODE1MCxcbiAgICAgICAgZ2ZwOiAwLjM1MDYzLFxuICAgICAgICByb2ZmOiAwLjAxMzA3MjksXG4gICAgICAgIHJvbjogMC41MTI5NDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODIwMCxcbiAgICAgICAgZ2ZwOiAwLjM2ODY1NCxcbiAgICAgICAgcm9mZjogMC4wMTI1NjgsXG4gICAgICAgIHJvbjogMC41MzA2MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODI1MCxcbiAgICAgICAgZ2ZwOiAwLjM4NzEzNixcbiAgICAgICAgcm9mZjogMC4wMTIwODA4LFxuICAgICAgICByb246IDAuNTQ4MDM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgzMDAsXG4gICAgICAgIGdmcDogMC40MDYwMjEsXG4gICAgICAgIHJvZmY6IDAuMDExNjExMSxcbiAgICAgICAgcm9uOiAwLjU2NTAzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MzUwLFxuICAgICAgICBnZnA6IDAuNDI1MjQ4LFxuICAgICAgICByb2ZmOiAwLjAxMTE1ODUsXG4gICAgICAgIHJvbjogMC41ODE1MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODQwMCxcbiAgICAgICAgZ2ZwOiAwLjQ0NDc1MixcbiAgICAgICAgcm9mZjogMC4wMTA3MjI4LFxuICAgICAgICByb246IDAuNTk3MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODQ1MCxcbiAgICAgICAgZ2ZwOiAwLjQ2NDQ2NCxcbiAgICAgICAgcm9mZjogMC4wMTAzMDM2LFxuICAgICAgICByb246IDAuNjEyNDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODUwMCxcbiAgICAgICAgZ2ZwOiAwLjQ4NDMxLFxuICAgICAgICByb2ZmOiAwLjAwOTkwMDU0LFxuICAgICAgICByb246IDAuNjI2Njk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1NTAsXG4gICAgICAgIGdmcDogMC41MDQyMTgsXG4gICAgICAgIHJvZmY6IDAuMDA5NTEzMjYsXG4gICAgICAgIHJvbjogMC42NDAxMDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODYwMCxcbiAgICAgICAgZ2ZwOiAwLjUyNDExNCxcbiAgICAgICAgcm9mZjogMC4wMDkxNDEzMyxcbiAgICAgICAgcm9uOiAwLjY1MjYyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NjUwLFxuICAgICAgICBnZnA6IDAuNTQzOTIzLFxuICAgICAgICByb2ZmOiAwLjAwODc4NDMsXG4gICAgICAgIHJvbjogMC42NjQyNDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODcwMCxcbiAgICAgICAgZ2ZwOiAwLjU2MzU3NSxcbiAgICAgICAgcm9mZjogMC4wMDg0NDE3MyxcbiAgICAgICAgcm9uOiAwLjY3NDk3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NzUwLFxuICAgICAgICBnZnA6IDAuNTgzMDAxLFxuICAgICAgICByb2ZmOiAwLjAwODExMzE2LFxuICAgICAgICByb246IDAuNjg0ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODgwMCxcbiAgICAgICAgZ2ZwOiAwLjYwMjEzNixcbiAgICAgICAgcm9mZjogMC4wMDc3OTgxMixcbiAgICAgICAgcm9uOiAwLjY5MzkxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4ODUwLFxuICAgICAgICBnZnA6IDAuNjIwOTE5LFxuICAgICAgICByb2ZmOiAwLjAwNzQ5NjE1LFxuICAgICAgICByb246IDAuNzAyMjIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5MDAsXG4gICAgICAgIGdmcDogMC42MzkyOTcsXG4gICAgICAgIHJvZmY6IDAuMDA3MjA2NzksXG4gICAgICAgIHJvbjogMC43MDk4MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODk1MCxcbiAgICAgICAgZ2ZwOiAwLjY1NzIyMSxcbiAgICAgICAgcm9mZjogMC4wMDY5Mjk1NyxcbiAgICAgICAgcm9uOiAwLjcxNjc4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDAwLFxuICAgICAgICBnZnA6IDAuNjc0NjQ3LFxuICAgICAgICByb2ZmOiAwLjAwNjY2NDAzLFxuICAgICAgICByb246IDAuNzIzMTYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwNTAsXG4gICAgICAgIGdmcDogMC42OTE1MzksXG4gICAgICAgIHJvZmY6IDAuMDA2NDA5NzMsXG4gICAgICAgIHJvbjogMC43MjkwMDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTEwMCxcbiAgICAgICAgZ2ZwOiAwLjcwNzg2NixcbiAgICAgICAgcm9mZjogMC4wMDYxNjYyMyxcbiAgICAgICAgcm9uOiAwLjczNDM1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MTUwLFxuICAgICAgICBnZnA6IDAuNzIzNjA0LFxuICAgICAgICByb2ZmOiAwLjAwNTkzMzExLFxuICAgICAgICByb246IDAuNzM5MjcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyMDAsXG4gICAgICAgIGdmcDogMC43Mzg3MzYsXG4gICAgICAgIHJvZmY6IDAuMDA1NzA5OTUsXG4gICAgICAgIHJvbjogMC43NDM3ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTI1MCxcbiAgICAgICAgZ2ZwOiAwLjc1MzI0OSxcbiAgICAgICAgcm9mZjogMC4wMDU0OTYzNCxcbiAgICAgICAgcm9uOiAwLjc0NzkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MzAwLFxuICAgICAgICBnZnA6IDAuNzY3MTM1LFxuICAgICAgICByb2ZmOiAwLjAwNTI5MTkxLFxuICAgICAgICByb246IDAuNzUxNzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTM1MCxcbiAgICAgICAgZ2ZwOiAwLjc4MDM5MixcbiAgICAgICAgcm9mZjogMC4wMDUwOTYyNixcbiAgICAgICAgcm9uOiAwLjc1NTI2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NDAwLFxuICAgICAgICBnZnA6IDAuNzkzMDIzLFxuICAgICAgICByb2ZmOiAwLjAwNDkwOTA0LFxuICAgICAgICByb246IDAuNzU4NDk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0NTAsXG4gICAgICAgIGdmcDogMC44MDUwMzQsXG4gICAgICAgIHJvZmY6IDAuMDA0NzI5OSxcbiAgICAgICAgcm9uOiAwLjc2MTQ3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTAwLFxuICAgICAgICBnZnA6IDAuODE2NDM0LFxuICAgICAgICByb2ZmOiAwLjAwNDU1ODUsXG4gICAgICAgIHJvbjogMC43NjQyMjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTU1MCxcbiAgICAgICAgZ2ZwOiAwLjgyNzIzNSxcbiAgICAgICAgcm9mZjogMC4wMDQzOTQ1MixcbiAgICAgICAgcm9uOiAwLjc2Njc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2MDAsXG4gICAgICAgIGdmcDogMC44Mzc0NTQsXG4gICAgICAgIHJvZmY6IDAuMDA0MjM3NjQsXG4gICAgICAgIHJvbjogMC43NjkwOThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTY1MCxcbiAgICAgICAgZ2ZwOiAwLjg0NzEwOCxcbiAgICAgICAgcm9mZjogMC4wMDQwODc1NixcbiAgICAgICAgcm9uOiAwLjc3MTI1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NzAwLFxuICAgICAgICBnZnA6IDAuODU2MjE1LFxuICAgICAgICByb2ZmOiAwLjAwMzk0NCxcbiAgICAgICAgcm9uOiAwLjc3MzI0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NzUwLFxuICAgICAgICBnZnA6IDAuODY0Nzk1LFxuICAgICAgICByb2ZmOiAwLjAwMzgwNjY4LFxuICAgICAgICByb246IDAuNzc1MDgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk4MDAsXG4gICAgICAgIGdmcDogMC44NzI4NzEsXG4gICAgICAgIHJvZmY6IDAuMDAzNjc1MzQsXG4gICAgICAgIHJvbjogMC43NzY3ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTg1MCxcbiAgICAgICAgZ2ZwOiAwLjg4MDQ2MixcbiAgICAgICAgcm9mZjogMC4wMDM1NDk3MSxcbiAgICAgICAgcm9uOiAwLjc3ODM0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5OTAwLFxuICAgICAgICBnZnA6IDAuODg3NTkzLFxuICAgICAgICByb2ZmOiAwLjAwMzQyOTU2LFxuICAgICAgICByb246IDAuNzc5Nzk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk5NTAsXG4gICAgICAgIGdmcDogMC44OTQyODUsXG4gICAgICAgIHJvZmY6IDAuMDAzMzE0NjQsXG4gICAgICAgIHJvbjogMC43ODExMzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwMDAsXG4gICAgICAgIGdmcDogMC45MDA1NixcbiAgICAgICAgcm9mZjogMC4wMDMyMDQ3NCxcbiAgICAgICAgcm9uOiAwLjc4MjM3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDA1MCxcbiAgICAgICAgZ2ZwOiAwLjkwNjQ0MSxcbiAgICAgICAgcm9mZjogMC4wMDMwOTk2NCxcbiAgICAgICAgcm9uOiAwLjc4MzUyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDEwMCxcbiAgICAgICAgZ2ZwOiAwLjkxMTk0OCxcbiAgICAgICAgcm9mZjogMC4wMDI5OTkxNCxcbiAgICAgICAgcm9uOiAwLjc4NDU4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDE1MCxcbiAgICAgICAgZ2ZwOiAwLjkxNzEwMyxcbiAgICAgICAgcm9mZjogMC4wMDI5MDMwMixcbiAgICAgICAgcm9uOiAwLjc4NTU2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDIwMCxcbiAgICAgICAgZ2ZwOiAwLjkyMTkyNixcbiAgICAgICAgcm9mZjogMC4wMDI4MTExMSxcbiAgICAgICAgcm9uOiAwLjc4NjQ3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDI1MCxcbiAgICAgICAgZ2ZwOiAwLjkyNjQzNyxcbiAgICAgICAgcm9mZjogMC4wMDI3MjMyMyxcbiAgICAgICAgcm9uOiAwLjc4NzMxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDMwMCxcbiAgICAgICAgZ2ZwOiAwLjkzMDY1NCxcbiAgICAgICAgcm9mZjogMC4wMDI2MzkxOSxcbiAgICAgICAgcm9uOiAwLjc4ODA5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDM1MCxcbiAgICAgICAgZ2ZwOiAwLjkzNDU5NixcbiAgICAgICAgcm9mZjogMC4wMDI1NTg4MyxcbiAgICAgICAgcm9uOiAwLjc4ODgxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDQwMCxcbiAgICAgICAgZ2ZwOiAwLjkzODI3OSxcbiAgICAgICAgcm9mZjogMC4wMDI0ODE5OSxcbiAgICAgICAgcm9uOiAwLjc4OTQ4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk0MTcyMSxcbiAgICAgICAgcm9mZjogMC4wMDI0MDg1MixcbiAgICAgICAgcm9uOiAwLjc5MDEwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDUwMCxcbiAgICAgICAgZ2ZwOiAwLjk0NDkzNixcbiAgICAgICAgcm9mZjogMC4wMDIzMzgyOCxcbiAgICAgICAgcm9uOiAwLjc5MDY4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDU1MCxcbiAgICAgICAgZ2ZwOiAwLjk0Nzk0LFxuICAgICAgICByb2ZmOiAwLjAwMjI3MTEyLFxuICAgICAgICByb246IDAuNzkxMjE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNjAwLFxuICAgICAgICBnZnA6IDAuOTUwNzQ1LFxuICAgICAgICByb2ZmOiAwLjAwMjIwNjksXG4gICAgICAgIHJvbjogMC43OTE3MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA2NTAsXG4gICAgICAgIGdmcDogMC45NTMzNjYsXG4gICAgICAgIHJvZmY6IDAuMDAyMTQ1NTEsXG4gICAgICAgIHJvbjogMC43OTIxNzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA3MDAsXG4gICAgICAgIGdmcDogMC45NTU4MTUsXG4gICAgICAgIHJvZmY6IDAuMDAyMDg2ODEsXG4gICAgICAgIHJvbjogMC43OTI2MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA3NTAsXG4gICAgICAgIGdmcDogMC45NTgxMDMsXG4gICAgICAgIHJvZmY6IDAuMDAyMDMwNjksXG4gICAgICAgIHJvbjogMC43OTMwMDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4MDAsXG4gICAgICAgIGdmcDogMC45NjAyNCxcbiAgICAgICAgcm9mZjogMC4wMDE5NzcwNCxcbiAgICAgICAgcm9uOiAwLjc5MzM3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDg1MCxcbiAgICAgICAgZ2ZwOiAwLjk2MjIzOCxcbiAgICAgICAgcm9mZjogMC4wMDE5MjU3NSxcbiAgICAgICAgcm9uOiAwLjc5MzcyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDkwMCxcbiAgICAgICAgZ2ZwOiAwLjk2NDEwNSxcbiAgICAgICAgcm9mZjogMC4wMDE4NzY3MSxcbiAgICAgICAgcm9uOiAwLjc5NDA0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDk1MCxcbiAgICAgICAgZ2ZwOiAwLjk2NTg1MSxcbiAgICAgICAgcm9mZjogMC4wMDE4Mjk4MyxcbiAgICAgICAgcm9uOiAwLjc5NDM0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk2NzQ4NCxcbiAgICAgICAgcm9mZjogMC4wMDE3ODUwMSxcbiAgICAgICAgcm9uOiAwLjc5NDYyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk2OTAxMSxcbiAgICAgICAgcm9mZjogMC4wMDE3NDIxNixcbiAgICAgICAgcm9uOiAwLjc5NDg4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk3MDQ0LFxuICAgICAgICByb2ZmOiAwLjAwMTcwMTIxLFxuICAgICAgICByb246IDAuNzk1MTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMTUwLFxuICAgICAgICBnZnA6IDAuOTcxNzc3LFxuICAgICAgICByb2ZmOiAwLjAwMTY2MjA1LFxuICAgICAgICByb246IDAuNzk1MzU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMjAwLFxuICAgICAgICBnZnA6IDAuOTczMDI5LFxuICAgICAgICByb2ZmOiAwLjAwMTYyNDYyLFxuICAgICAgICByb246IDAuNzk1NTY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMjUwLFxuICAgICAgICBnZnA6IDAuOTc0MjAxLFxuICAgICAgICByb2ZmOiAwLjAwMTU4ODgzLFxuICAgICAgICByb246IDAuNzk1NzY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMzAwLFxuICAgICAgICBnZnA6IDAuOTc1Mjk5LFxuICAgICAgICByb2ZmOiAwLjAwMTU1NDYzLFxuICAgICAgICByb246IDAuNzk1OTQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMzUwLFxuICAgICAgICBnZnA6IDAuOTc2MzI4LFxuICAgICAgICByb2ZmOiAwLjAwMTUyMTkzLFxuICAgICAgICByb246IDAuNzk2MTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNDAwLFxuICAgICAgICBnZnA6IDAuOTc3MjkzLFxuICAgICAgICByb2ZmOiAwLjAwMTQ5MDY3LFxuICAgICAgICByb246IDAuNzk2Mjg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNDUwLFxuICAgICAgICBnZnA6IDAuOTc4MTk4LFxuICAgICAgICByb2ZmOiAwLjAwMTQ2MDc4LFxuICAgICAgICByb246IDAuNzk2NDM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTAwLFxuICAgICAgICBnZnA6IDAuOTc5MDQ3LFxuICAgICAgICByb2ZmOiAwLjAwMTQzMjIyLFxuICAgICAgICByb246IDAuNzk2NTc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTUwLFxuICAgICAgICBnZnA6IDAuOTc5ODQ0LFxuICAgICAgICByb2ZmOiAwLjAwMTQwNDkyLFxuICAgICAgICByb246IDAuNzk2NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE2MDAsXG4gICAgICAgIGdmcDogMC45ODA1OTIsXG4gICAgICAgIHJvZmY6IDAuMDAxMzc4ODIsXG4gICAgICAgIHJvbjogMC43OTY4MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE2NTAsXG4gICAgICAgIGdmcDogMC45ODEyOTQsXG4gICAgICAgIHJvZmY6IDAuMDAxMzUzODcsXG4gICAgICAgIHJvbjogMC43OTY5NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE3MDAsXG4gICAgICAgIGdmcDogMC45ODE5NTQsXG4gICAgICAgIHJvZmY6IDAuMDAxMzMwMDIsXG4gICAgICAgIHJvbjogMC43OTcwNjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE3NTAsXG4gICAgICAgIGdmcDogMC45ODI1NzUsXG4gICAgICAgIHJvZmY6IDAuMDAxMzA3MjIsXG4gICAgICAgIHJvbjogMC43OTcxNjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE4MDAsXG4gICAgICAgIGdmcDogMC45ODMxNTgsXG4gICAgICAgIHJvZmY6IDAuMDAxMjg1NDMsXG4gICAgICAgIHJvbjogMC43OTcyNjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE4NTAsXG4gICAgICAgIGdmcDogMC45ODM3MDcsXG4gICAgICAgIHJvZmY6IDAuMDAxMjY0NixcbiAgICAgICAgcm9uOiAwLjc5NzM1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NDIyNCxcbiAgICAgICAgcm9mZjogMC4wMDEyNDQ2OSxcbiAgICAgICAgcm9uOiAwLjc5NzQzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NDcxLFxuICAgICAgICByb2ZmOiAwLjAwMTIyNTY1LFxuICAgICAgICByb246IDAuNzk3NTE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDAwLFxuICAgICAgICBnZnA6IDAuOTg1MTY4LFxuICAgICAgICByb2ZmOiAwLjAwMTIwNzQ2LFxuICAgICAgICByb246IDAuNzk3NTkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDUwLFxuICAgICAgICBnZnA6IDAuOTg1NixcbiAgICAgICAgcm9mZjogMC4wMDExOTAwNyxcbiAgICAgICAgcm9uOiAwLjc5NzY2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NjAwNyxcbiAgICAgICAgcm9mZjogMC4wMDExNzM0NSxcbiAgICAgICAgcm9uOiAwLjc5NzczMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NjM5MSxcbiAgICAgICAgcm9mZjogMC4wMDExNTc1NixcbiAgICAgICAgcm9uOiAwLjc5Nzc5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk4Njc1MyxcbiAgICAgICAgcm9mZjogMC4wMDExNDIzOCxcbiAgICAgICAgcm9uOiAwLjc5Nzg1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NzA5NSxcbiAgICAgICAgcm9mZjogMC4wMDExMjc4NixcbiAgICAgICAgcm9uOiAwLjc5NzkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMzAwLFxuICAgICAgICBnZnA6IDAuOTg3NDE3LFxuICAgICAgICByb2ZmOiAwLjAwMTExMzk4LFxuICAgICAgICByb246IDAuNzk3OTYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMzUwLFxuICAgICAgICBnZnA6IDAuOTg3NzIyLFxuICAgICAgICByb2ZmOiAwLjAwMTEwMDcyLFxuICAgICAgICByb246IDAuNzk4MDEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNDAwLFxuICAgICAgICBnZnA6IDAuOTg4MDEsXG4gICAgICAgIHJvZmY6IDAuMDAxMDg4MDQsXG4gICAgICAgIHJvbjogMC43OTgwNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk4ODI4MixcbiAgICAgICAgcm9mZjogMC4wMDEwNzU5MyxcbiAgICAgICAgcm9uOiAwLjc5ODEwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk4ODUzOSxcbiAgICAgICAgcm9mZjogMC4wMDEwNjQzNSxcbiAgICAgICAgcm9uOiAwLjc5ODE0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk4ODc4MixcbiAgICAgICAgcm9mZjogMC4wMDEwNTMyOCxcbiAgICAgICAgcm9uOiAwLjc5ODE4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk4OTAxMixcbiAgICAgICAgcm9mZjogMC4wMDEwNDI2OSxcbiAgICAgICAgcm9uOiAwLjc5ODIyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjk4OTIzLFxuICAgICAgICByb2ZmOiAwLjAwMTAzMjU4LFxuICAgICAgICByb246IDAuNzk4MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI3MDAsXG4gICAgICAgIGdmcDogMC45ODk0MzcsXG4gICAgICAgIHJvZmY6IDAuMDAxMDIyOTEsXG4gICAgICAgIHJvbjogMC43OTgyOTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI3NTAsXG4gICAgICAgIGdmcDogMC45ODk2MzIsXG4gICAgICAgIHJvZmY6IDAuMDAxMDEzNjcsXG4gICAgICAgIHJvbjogMC43OTgzMjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4MDAsXG4gICAgICAgIGdmcDogMC45ODk4MTcsXG4gICAgICAgIHJvZmY6IDAuMDAxMDA0ODQsXG4gICAgICAgIHJvbjogMC43OTgzNTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4NTAsXG4gICAgICAgIGdmcDogMC45ODk5OTIsXG4gICAgICAgIHJvZmY6IDAuMDAwOTk2NDAxLFxuICAgICAgICByb246IDAuNzk4Mzg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyOTAwLFxuICAgICAgICBnZnA6IDAuOTkwMTU4LFxuICAgICAgICByb2ZmOiAwLjAwMDk4ODMzMyxcbiAgICAgICAgcm9uOiAwLjc5ODQxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDMxNixcbiAgICAgICAgcm9mZjogMC4wMDA5ODA2MjEsXG4gICAgICAgIHJvbjogMC43OTg0MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwMDAsXG4gICAgICAgIGdmcDogMC45OTA0NjYsXG4gICAgICAgIHJvZmY6IDAuMDAwOTczMjQ5LFxuICAgICAgICByb246IDAuNzk4NDYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDUwLFxuICAgICAgICBnZnA6IDAuOTkwNjA3LFxuICAgICAgICByb2ZmOiAwLjAwMDk2NjIwMyxcbiAgICAgICAgcm9uOiAwLjc5ODQ4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MDc0MixcbiAgICAgICAgcm9mZjogMC4wMDA5NTk0NjksXG4gICAgICAgIHJvbjogMC43OTg1MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxNTAsXG4gICAgICAgIGdmcDogMC45OTA4NyxcbiAgICAgICAgcm9mZjogMC4wMDA5NTMwMzIsXG4gICAgICAgIHJvbjogMC43OTg1MjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMyMDAsXG4gICAgICAgIGdmcDogMC45OTA5OTEsXG4gICAgICAgIHJvZmY6IDAuMDAwOTQ2ODc5LFxuICAgICAgICByb246IDAuNzk4NTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjUwLFxuICAgICAgICBnZnA6IDAuOTkxMTA2LFxuICAgICAgICByb2ZmOiAwLjAwMDk0MDk5OSxcbiAgICAgICAgcm9uOiAwLjc5ODU2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTIxNixcbiAgICAgICAgcm9mZjogMC4wMDA5MzUzNzgsXG4gICAgICAgIHJvbjogMC43OTg1ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzNTAsXG4gICAgICAgIGdmcDogMC45OTEzMixcbiAgICAgICAgcm9mZjogMC4wMDA5MzAwMDYsXG4gICAgICAgIHJvbjogMC43OTg2MDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM0MDAsXG4gICAgICAgIGdmcDogMC45OTE0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwOTI0ODcxLFxuICAgICAgICByb246IDAuNzk4NjE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNDUwLFxuICAgICAgICBnZnA6IDAuOTkxNTEzLFxuICAgICAgICByb2ZmOiAwLjAwMDkxOTk2NCxcbiAgICAgICAgcm9uOiAwLjc5ODYzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTYwMixcbiAgICAgICAgcm9mZjogMC4wMDA5MTUyNzMsXG4gICAgICAgIHJvbjogMC43OTg2NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1NTAsXG4gICAgICAgIGdmcDogMC45OTE2ODcsXG4gICAgICAgIHJvZmY6IDAuMDAwOTEwNzg5LFxuICAgICAgICByb246IDAuNzk4NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM2MDAsXG4gICAgICAgIGdmcDogMC45OTE3NjgsXG4gICAgICAgIHJvZmY6IDAuMDAwOTA2NTA0LFxuICAgICAgICByb246IDAuNzk4NjczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNjUwLFxuICAgICAgICBnZnA6IDAuOTkxODQ1LFxuICAgICAgICByb2ZmOiAwLjAwMDkwMjQwOCxcbiAgICAgICAgcm9uOiAwLjc5ODY4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTkxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4OTg0OTMsXG4gICAgICAgIHJvbjogMC43OTg2OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM3NTAsXG4gICAgICAgIGdmcDogMC45OTE5ODcsXG4gICAgICAgIHJvZmY6IDAuMDAwODk0NzUxLFxuICAgICAgICByb246IDAuNzk4NzA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzODAwLFxuICAgICAgICBnZnA6IDAuOTkyMDU0LFxuICAgICAgICByb2ZmOiAwLjAwMDg5MTE3NCxcbiAgICAgICAgcm9uOiAwLjc5ODcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzODUwLFxuICAgICAgICBnZnA6IDAuOTkyMTE3LFxuICAgICAgICByb2ZmOiAwLjAwMDg4Nzc1NixcbiAgICAgICAgcm9uOiAwLjc5ODczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzOTAwLFxuICAgICAgICBnZnA6IDAuOTkyMTc3LFxuICAgICAgICByb2ZmOiAwLjAwMDg4NDQ4OSxcbiAgICAgICAgcm9uOiAwLjc5ODc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzOTUwLFxuICAgICAgICBnZnA6IDAuOTkyMjM0LFxuICAgICAgICByb2ZmOiAwLjAwMDg4MTM2NixcbiAgICAgICAgcm9uOiAwLjc5ODc0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjI4OCxcbiAgICAgICAgcm9mZjogMC4wMDA4NzgzODEsXG4gICAgICAgIHJvbjogMC43OTg3NThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwNTAsXG4gICAgICAgIGdmcDogMC45OTIzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4NzU1MjksXG4gICAgICAgIHJvbjogMC43OTg3NjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQxMDAsXG4gICAgICAgIGdmcDogMC45OTIzOSxcbiAgICAgICAgcm9mZjogMC4wMDA4NzI4MDIsXG4gICAgICAgIHJvbjogMC43OTg3NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQxNTAsXG4gICAgICAgIGdmcDogMC45OTI0MzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODcwMTk2LFxuICAgICAgICByb246IDAuNzk4NzgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MjAwLFxuICAgICAgICBnZnA6IDAuOTkyNDgyLFxuICAgICAgICByb2ZmOiAwLjAwMDg2NzcwNixcbiAgICAgICAgcm9uOiAwLjc5ODc4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjUyNCxcbiAgICAgICAgcm9mZjogMC4wMDA4NjUzMjUsXG4gICAgICAgIHJvbjogMC43OTg3OTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQzMDAsXG4gICAgICAgIGdmcDogMC45OTI1NjUsXG4gICAgICAgIHJvZmY6IDAuMDAwODYzMDUsXG4gICAgICAgIHJvbjogMC43OTg4MDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQzNTAsXG4gICAgICAgIGdmcDogMC45OTI2MDQsXG4gICAgICAgIHJvZmY6IDAuMDAwODYwODc1LFxuICAgICAgICByb246IDAuNzk4ODA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NDAwLFxuICAgICAgICBnZnA6IDAuOTkyNjQxLFxuICAgICAgICByb2ZmOiAwLjAwMDg1ODc5NixcbiAgICAgICAgcm9uOiAwLjc5ODgxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjY3NixcbiAgICAgICAgcm9mZjogMC4wMDA4NTY4MDksXG4gICAgICAgIHJvbjogMC43OTg4MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ1MDAsXG4gICAgICAgIGdmcDogMC45OTI3MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTQ5MSxcbiAgICAgICAgcm9uOiAwLjc5ODgyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjc0MixcbiAgICAgICAgcm9mZjogMC4wMDA4NTMwOTUsXG4gICAgICAgIHJvbjogMC43OTg4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ2MDAsXG4gICAgICAgIGdmcDogMC45OTI3NzMsXG4gICAgICAgIHJvZmY6IDAuMDAwODUxMzYxLFxuICAgICAgICByb246IDAuNzk4ODM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NjUwLFxuICAgICAgICBnZnA6IDAuOTkyODAyLFxuICAgICAgICByb2ZmOiAwLjAwMDg0OTcwMixcbiAgICAgICAgcm9uOiAwLjc5ODg0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjgzLFxuICAgICAgICByb2ZmOiAwLjAwMDg0ODExOCxcbiAgICAgICAgcm9uOiAwLjc5ODg0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjg1NyxcbiAgICAgICAgcm9mZjogMC4wMDA4NDY2MDMsXG4gICAgICAgIHJvbjogMC43OTg4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjg4MixcbiAgICAgICAgcm9mZjogMC4wMDA4NDUxNTUsXG4gICAgICAgIHJvbjogMC43OTg4NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ4NTAsXG4gICAgICAgIGdmcDogMC45OTI5MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODQzNzcyLFxuICAgICAgICByb246IDAuNzk4ODU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0OTAwLFxuICAgICAgICBnZnA6IDAuOTkyOTI5LFxuICAgICAgICByb2ZmOiAwLjAwMDg0MjQ0OSxcbiAgICAgICAgcm9uOiAwLjc5ODg2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjk1MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NDExODUsXG4gICAgICAgIHJvbjogMC43OTg4NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwMDAsXG4gICAgICAgIGdmcDogMC45OTI5NzIsXG4gICAgICAgIHJvZmY6IDAuMDAwODM5OTc3LFxuICAgICAgICByb246IDAuNzk4ODY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDUwLFxuICAgICAgICBnZnA6IDAuOTkyOTkzLFxuICAgICAgICByb2ZmOiAwLjAwMDgzODgyMixcbiAgICAgICAgcm9uOiAwLjc5ODg3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzAxMixcbiAgICAgICAgcm9mZjogMC4wMDA4Mzc3MTksXG4gICAgICAgIHJvbjogMC43OTg4NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUxNTAsXG4gICAgICAgIGdmcDogMC45OTMwMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MzY2NjQsXG4gICAgICAgIHJvbjogMC43OTg4NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUyMDAsXG4gICAgICAgIGdmcDogMC45OTMwNDgsXG4gICAgICAgIHJvZmY6IDAuMDAwODM1NjU2LFxuICAgICAgICByb246IDAuNzk4ODgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMDY0LFxuICAgICAgICByb2ZmOiAwLjAwMDgzNDY5MixcbiAgICAgICAgcm9uOiAwLjc5ODg4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA4LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMzc3MSxcbiAgICAgICAgcm9uOiAwLjc5ODg4N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA5NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MzI4OTEsXG4gICAgICAgIHJvbjogMC43OTg4ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU0MDAsXG4gICAgICAgIGdmcDogMC45OTMxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MzIwNDksXG4gICAgICAgIHJvbjogMC43OTg4OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU0NTAsXG4gICAgICAgIGdmcDogMC45OTMxMjQsXG4gICAgICAgIHJvZmY6IDAuMDAwODMxMjQ1LFxuICAgICAgICByb246IDAuNzk4ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NTAwLFxuICAgICAgICBnZnA6IDAuOTkzMTM3LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMDQ3NixcbiAgICAgICAgcm9uOiAwLjc5ODg5NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyOTc0MixcbiAgICAgICAgcm9uOiAwLjc5ODg5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE2MixcbiAgICAgICAgcm9mZjogMC4wMDA4MjkwNCxcbiAgICAgICAgcm9uOiAwLjc5ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU2NTAsXG4gICAgICAgIGdmcDogMC45OTMxNzMsXG4gICAgICAgIHJvZmY6IDAuMDAwODI4MzY5LFxuICAgICAgICByb246IDAuNzk4OTAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NzAwLFxuICAgICAgICBnZnA6IDAuOTkzMTg0LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNzcyNyxcbiAgICAgICAgcm9uOiAwLjc5ODkwM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE5NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjcxMTQsXG4gICAgICAgIHJvbjogMC43OTg5MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU4MDAsXG4gICAgICAgIGdmcDogMC45OTMyMDUsXG4gICAgICAgIHJvZmY6IDAuMDAwODI2NTI4LFxuICAgICAgICByb246IDAuNzk4OTA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1ODUwLFxuICAgICAgICBnZnA6IDAuOTkzMjE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNTk2OCxcbiAgICAgICAgcm9uOiAwLjc5ODkwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIyMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjU0MzMsXG4gICAgICAgIHJvbjogMC43OTg5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIzMixcbiAgICAgICAgcm9mZjogMC4wMDA4MjQ5MjEsXG4gICAgICAgIHJvbjogMC43OTg5MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwMDAsXG4gICAgICAgIGdmcDogMC45OTMyNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODI0NDMyLFxuICAgICAgICByb246IDAuNzk4OTEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDUwLFxuICAgICAgICBnZnA6IDAuOTkzMjQ5LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMzk2NSxcbiAgICAgICAgcm9uOiAwLjc5ODkxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI1NixcbiAgICAgICAgcm9mZjogMC4wMDA4MjM1MTgsXG4gICAgICAgIHJvbjogMC43OTg5MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYxNTAsXG4gICAgICAgIGdmcDogMC45OTMyNjMsXG4gICAgICAgIHJvZmY6IDAuMDAwODIzMDkxLFxuICAgICAgICByb246IDAuNzk4OTE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMjcsXG4gICAgICAgIHJvZmY6IDAuMDAwODIyNjgzLFxuICAgICAgICByb246IDAuNzk4OTE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMjc3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMjI5MyxcbiAgICAgICAgcm9uOiAwLjc5ODkxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI4MyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjE5MixcbiAgICAgICAgcm9uOiAwLjc5ODkxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI4OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjE1NjQsXG4gICAgICAgIHJvbjogMC43OTg5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI5NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjEyMjQsXG4gICAgICAgIHJvbjogMC43OTg5MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY0NTAsXG4gICAgICAgIGdmcDogMC45OTMzMDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwODk4LFxuICAgICAgICByb246IDAuNzk4OTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzA2LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMDU4NyxcbiAgICAgICAgcm9uOiAwLjc5ODkyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjAyOSxcbiAgICAgICAgcm9uOiAwLjc5ODkyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MjAwMDYsXG4gICAgICAgIHJvbjogMC43OTg5MjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY2NTAsXG4gICAgICAgIGdmcDogMC45OTMzMjEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE5NzM0LFxuICAgICAgICByb246IDAuNzk4OTI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NzAwLFxuICAgICAgICBnZnA6IDAuOTkzMzI1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTQ3NCxcbiAgICAgICAgcm9uOiAwLjc5ODkyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMyOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTkyMjYsXG4gICAgICAgIHJvbjogMC43OTg5MjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY4MDAsXG4gICAgICAgIGdmcDogMC45OTMzMzMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4OTg5LFxuICAgICAgICByb246IDAuNzk4OTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2ODUwLFxuICAgICAgICBnZnA6IDAuOTkzMzM3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxODc2MyxcbiAgICAgICAgcm9uOiAwLjc5ODkyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTg1NDYsXG4gICAgICAgIHJvbjogMC43OTg5MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY5NTAsXG4gICAgICAgIGdmcDogMC45OTMzNDQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4MzM5LFxuICAgICAgICByb246IDAuNzk4OTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzQ4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxODE0MSxcbiAgICAgICAgcm9uOiAwLjc5ODkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzUxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzk1MixcbiAgICAgICAgcm9uOiAwLjc5ODkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzU0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzc3MSxcbiAgICAgICAgcm9uOiAwLjc5ODkzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc1OTgsXG4gICAgICAgIHJvbjogMC43OTg5MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcyMDAsXG4gICAgICAgIGdmcDogMC45OTMzNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTc0MzMsXG4gICAgICAgIHJvbjogMC43OTg5MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcyNTAsXG4gICAgICAgIGdmcDogMC45OTMzNjIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3Mjc2LFxuICAgICAgICByb246IDAuNzk4OTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MzAwLFxuICAgICAgICBnZnA6IDAuOTkzMzY1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzEyNSxcbiAgICAgICAgcm9uOiAwLjc5ODkzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTY5OCxcbiAgICAgICAgcm9uOiAwLjc5ODkzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjg0MyxcbiAgICAgICAgcm9uOiAwLjc5ODkzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTY3MTEsXG4gICAgICAgIHJvbjogMC43OTg5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1MDAsXG4gICAgICAgIGdmcDogMC45OTMzNzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2NTg1LFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzc2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjQ2NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTYzNSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjI0LFxuICAgICAgICByb246IDAuNzk4OTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NzAwLFxuICAgICAgICBnZnA6IDAuOTkzMzgyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjEzNSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4MyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTYwMzQsXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc4MDAsXG4gICAgICAgIGdmcDogMC45OTMzODUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1OTM4LFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3ODUwLFxuICAgICAgICBnZnA6IDAuOTkzMzg2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTg0NyxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU3NTksXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc5NTAsXG4gICAgICAgIGdmcDogMC45OTMzODksXG4gICAgICAgIHJvZmY6IDAuMDAwODE1Njc1LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzkxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTU5NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTU1MTgsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgxMDAsXG4gICAgICAgIGdmcDogMC45OTMzOTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NDQ1LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzk0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTM3NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUzMDksXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgyNTAsXG4gICAgICAgIGdmcDogMC45OTMzOTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MjQ1LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MzAwLFxuICAgICAgICBnZnA6IDAuOTkzMzk4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTE4NCxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUxMjUsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg0MDAsXG4gICAgICAgIGdmcDogMC45OTM0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTA3LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUwMTYsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0OTY1LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDAyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDkxNyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ4NyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ4MjYsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NzgzLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDc0MyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ3MDQsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NjY3LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4OTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDYzMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4OTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDU5NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDU2NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDUzNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDUwNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDc2LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0NDksXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQyMyxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDExLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDM5OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDExLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDM3NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDM1MixcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDMzMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDMxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjksXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyNzEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyNTMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjM2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDIyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5ODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDIwNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxODksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTc0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5OTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE2MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxNDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTM1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDEyMyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMTIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTAxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA3MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNjIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDUzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA0NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMzcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDI5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAyMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMTUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDA4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAwMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5OTYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTg0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk3OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NzQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjExMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTY5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk2NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NTYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTUyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk0OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NDQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTM3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MzEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTI4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MjIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTE3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTA4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTAzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODkzLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzMsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzMsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzMsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NzEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjksXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU5MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NjQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9XG5dO1xubGV0IG1vZGVsT25EYXRhID0gW1xuICAgIHtcbiAgICAgICAgdGltZTogMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH1cbl07XG5sZXQgbW9kZWxPbk9mZkRhdGEgPSBbXG4gICAge1xuICAgICAgICB0aW1lOiAwLFxuICAgICAgICBnZnA6IDAuNDAwMzI5LFxuICAgICAgICByb2ZmOiAwLjQ2MDI5OCxcbiAgICAgICAgcm9uOiAwLjY4MTYzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MCxcbiAgICAgICAgZ2ZwOiAwLjE0NzQ5OSxcbiAgICAgICAgcm9mZjogMC41NTg2MzgsXG4gICAgICAgIHJvbjogMC42MDE4NTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwLFxuICAgICAgICBnZnA6IDAuMDU0NDY5NCxcbiAgICAgICAgcm9mZjogMC41MzkxMTMsXG4gICAgICAgIHJvbjogMC41NDI1MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwLFxuICAgICAgICBnZnA6IDAuMDIwMjc0NixcbiAgICAgICAgcm9mZjogMC40OTg1MjUsXG4gICAgICAgIHJvbjogMC40OTQ2NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwLFxuICAgICAgICBnZnA6IDAuMDA3NzM2OTQsXG4gICAgICAgIHJvZmY6IDAuNDU5MTQyLFxuICAgICAgICByb246IDAuNDU0NDgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMzE3MzM1LFxuICAgICAgICByb2ZmOiAwLjQyNDIwNixcbiAgICAgICAgcm9uOiAwLjQxOTg1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDAsXG4gICAgICAgIGdmcDogMC4wMDE1NDg5LFxuICAgICAgICByb2ZmOiAwLjM5MzQ0MixcbiAgICAgICAgcm9uOiAwLjM4OTUxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTAsXG4gICAgICAgIGdmcDogMC4wMDEwMTE1NCxcbiAgICAgICAgcm9mZjogMC4zNjYxNTQsXG4gICAgICAgIHJvbjogMC4zNjI2MDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDAwLFxuICAgICAgICBnZnA6IDAuMDAwODgwNDMxLFxuICAgICAgICByb2ZmOiAwLjM0MTc0NCxcbiAgICAgICAgcm9uOiAwLjMzODUwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAsXG4gICAgICAgIGdmcDogMC4wMDA5MDU3MTcsXG4gICAgICAgIHJvZmY6IDAuMzE5NzQ4LFxuICAgICAgICByb246IDAuMzE2NzU5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDk5NjE0NCxcbiAgICAgICAgcm9mZjogMC4yOTk4MDQsXG4gICAgICAgIHJvbjogMC4yOTcwMjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTUwLFxuICAgICAgICBnZnA6IDAuMDAxMTE4ODUsXG4gICAgICAgIHJvZmY6IDAuMjgxNjMzLFxuICAgICAgICByb246IDAuMjc5MDE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTI2MjQ3LFxuICAgICAgICByb2ZmOiAwLjI2NTAwOSxcbiAgICAgICAgcm9uOiAwLjI2MjUyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTAsXG4gICAgICAgIGdmcDogMC4wMDE0MjM2LFxuICAgICAgICByb2ZmOiAwLjI0OTc0OCxcbiAgICAgICAgcm9uOiAwLjI0NzM3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDAsXG4gICAgICAgIGdmcDogMC4wMDE2MDE3NixcbiAgICAgICAgcm9mZjogMC4yMzU3MDEsXG4gICAgICAgIHJvbjogMC4yMzM0MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzUwLFxuICAgICAgICBnZnA6IDAuMDAxNzk3NTksXG4gICAgICAgIHJvZmY6IDAuMjIyNzQyLFxuICAgICAgICByb246IDAuMjIwNTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMjAxMjEsXG4gICAgICAgIHJvZmY6IDAuMjEwNzY0LFxuICAgICAgICByb246IDAuMjA4NTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODUwLFxuICAgICAgICBnZnA6IDAuMDAyMjQ2NDYsXG4gICAgICAgIHJvZmY6IDAuMTk5Njc5LFxuICAgICAgICByb246IDAuMTk3NDg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMjUwMTg0LFxuICAgICAgICByb2ZmOiAwLjE4OTQwOSxcbiAgICAgICAgcm9uOiAwLjE4NzIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMjc3OTM0LFxuICAgICAgICByb2ZmOiAwLjE3OTg4OSxcbiAgICAgICAgcm9uOiAwLjE3NzY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDAsXG4gICAgICAgIGdmcDogMC4wMDMwNzk5NCxcbiAgICAgICAgcm9mZjogMC4xNzEwNixcbiAgICAgICAgcm9uOiAwLjE2ODc4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDUwLFxuICAgICAgICBnZnA6IDAuMDAzNDA0NDQsXG4gICAgICAgIHJvZmY6IDAuMTYyODcyLFxuICAgICAgICByb246IDAuMTYwNTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDAsXG4gICAgICAgIGdmcDogMC4wMDM3NTMzNyxcbiAgICAgICAgcm9mZjogMC4xNTUyODMsXG4gICAgICAgIHJvbjogMC4xNTI4MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNDEyNjk1LFxuICAgICAgICByb2ZmOiAwLjE0ODI1MixcbiAgICAgICAgcm9uOiAwLjE0NTY5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjAwLFxuICAgICAgICBnZnA6IDAuMDA0NTI0OTgsXG4gICAgICAgIHJvZmY6IDAuMTQxNzQ3LFxuICAgICAgICByb246IDAuMTM5MDQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTAsXG4gICAgICAgIGdmcDogMC4wMDQ5NDY3NixcbiAgICAgICAgcm9mZjogMC4xMzU3MzcsXG4gICAgICAgIHJvbjogMC4xMzI4NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNTM5MTAzLFxuICAgICAgICByb2ZmOiAwLjEzMDE5NCxcbiAgICAgICAgcm9uOiAwLjEyNzEzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzUwLFxuICAgICAgICBnZnA6IDAuMDA1ODU1ODcsXG4gICAgICAgIHJvZmY6IDAuMTI1MDkzLFxuICAgICAgICByb246IDAuMTIxODEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MDAsXG4gICAgICAgIGdmcDogMC4wMDYzMzg2NixcbiAgICAgICAgcm9mZjogMC4xMjA0MTQsXG4gICAgICAgIHJvbjogMC4xMTY4ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNjgzNjA1LFxuICAgICAgICByb2ZmOiAwLjExNjEzMyxcbiAgICAgICAgcm9uOiAwLjExMjMxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAwLFxuICAgICAgICBnZnA6IDAuMDA3MzQzOTcsXG4gICAgICAgIHJvZmY6IDAuMTEyMjMzLFxuICAgICAgICByb246IDAuMTA4MDk1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NTAsXG4gICAgICAgIGdmcDogMC4wMDc4NTc2NSxcbiAgICAgICAgcm9mZjogMC4xMDg2OTUsXG4gICAgICAgIHJvbjogMC4xMDQxOTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwODM3MTc0LFxuICAgICAgICByb2ZmOiAwLjEwNTUwMSxcbiAgICAgICAgcm9uOiAwLjEwMDYwNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjUwLFxuICAgICAgICBnZnA6IDAuMDA4ODgwNCxcbiAgICAgICAgcm9mZjogMC4xMDI2MzQsXG4gICAgICAgIHJvbjogMC4wOTcyOTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDAsXG4gICAgICAgIGdmcDogMC4wMDkzNzc1NCxcbiAgICAgICAgcm9mZjogMC4xMDAwNzgsXG4gICAgICAgIHJvbjogMC4wOTQyNTU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTAsXG4gICAgICAgIGdmcDogMC4wMDk4NTcsXG4gICAgICAgIHJvZmY6IDAuMDk3ODE2NCxcbiAgICAgICAgcm9uOiAwLjA5MTQ1ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMDMxMjcsXG4gICAgICAgIHJvZmY6IDAuMDk1ODMzNCxcbiAgICAgICAgcm9uOiAwLjA4ODg4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMDczOTEsXG4gICAgICAgIHJvZmY6IDAuMDk0MTEzNSxcbiAgICAgICAgcm9uOiAwLjA4NjUyNjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMTEzMSxcbiAgICAgICAgcm9mZjogMC4wOTI2NDEzLFxuICAgICAgICByb246IDAuMDg0MzU1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTUwLFxuICAgICAgICBnZnA6IDAuMDExNDg0MSxcbiAgICAgICAgcm9mZjogMC4wOTE0MDE4LFxuICAgICAgICByb246IDAuMDgyMzU2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDAwLFxuICAgICAgICBnZnA6IDAuMDExNzk1MSxcbiAgICAgICAgcm9mZjogMC4wOTAzODA5LFxuICAgICAgICByb246IDAuMDgwNTEyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDUwLFxuICAgICAgICBnZnA6IDAuMDEyMDYxMyxcbiAgICAgICAgcm9mZjogMC4wODk1NjQ2LFxuICAgICAgICByb246IDAuMDc4ODA2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTAwLFxuICAgICAgICBnZnA6IDAuMDEyMjgxMyxcbiAgICAgICAgcm9mZjogMC4wODg5NDAyLFxuICAgICAgICByb246IDAuMDc3MjI0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTUwLFxuICAgICAgICBnZnA6IDAuMDEyNDU0NCxcbiAgICAgICAgcm9mZjogMC4wODg0OTUzLFxuICAgICAgICByb246IDAuMDc1NzQ5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjAwLFxuICAgICAgICBnZnA6IDAuMDEyNTgwNyxcbiAgICAgICAgcm9mZjogMC4wODgyMTg5LFxuICAgICAgICByb246IDAuMDc0MzY3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjUwLFxuICAgICAgICBnZnA6IDAuMDEyNjYxMixcbiAgICAgICAgcm9mZjogMC4wODgxMDA1LFxuICAgICAgICByb246IDAuMDczMDY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDAsXG4gICAgICAgIGdmcDogMC4wMTI2OTc1LFxuICAgICAgICByb2ZmOiAwLjA4ODEzMTIsXG4gICAgICAgIHJvbjogMC4wNzE4MzQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTAsXG4gICAgICAgIGdmcDogMC4wMTI2OTE1LFxuICAgICAgICByb2ZmOiAwLjA4ODMwMjcsXG4gICAgICAgIHJvbjogMC4wNzA2NjA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MDAsXG4gICAgICAgIGdmcDogMC4wMTI2NDU2LFxuICAgICAgICByb2ZmOiAwLjA4ODYwODIsXG4gICAgICAgIHJvbjogMC4wNjk1MzM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NTAsXG4gICAgICAgIGdmcDogMC4wMTI1NjIzLFxuICAgICAgICByb2ZmOiAwLjA4OTA0MTcsXG4gICAgICAgIHJvbjogMC4wNjg0NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjQ0NDMsXG4gICAgICAgIHJvZmY6IDAuMDg5NTk4NSxcbiAgICAgICAgcm9uOiAwLjA2NzM4OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjI5NDUsXG4gICAgICAgIHJvZmY6IDAuMDkwMjc0OCxcbiAgICAgICAgcm9uOiAwLjA2NjM1NjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjExNTUsXG4gICAgICAgIHJvZmY6IDAuMDkxMDY4MSxcbiAgICAgICAgcm9uOiAwLjA2NTM0MDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMTkxMDEsXG4gICAgICAgIHJvZmY6IDAuMDkxOTc2OCxcbiAgICAgICAgcm9uOiAwLjA2NDMzNzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMTY4MDcsXG4gICAgICAgIHJvZmY6IDAuMDkzMDAwMyxcbiAgICAgICAgcm9uOiAwLjA2MzM0MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMTQzLFxuICAgICAgICByb2ZmOiAwLjA5NDEzODgsXG4gICAgICAgIHJvbjogMC4wNjIzNTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI4MDAsXG4gICAgICAgIGdmcDogMC4wMTExNjAxLFxuICAgICAgICByb2ZmOiAwLjA5NTM5MzcsXG4gICAgICAgIHJvbjogMC4wNjEzNTg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI4NTAsXG4gICAgICAgIGdmcDogMC4wMTA4NzMzLFxuICAgICAgICByb2ZmOiAwLjA5Njc2NzMsXG4gICAgICAgIHJvbjogMC4wNjAzNjQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI5MDAsXG4gICAgICAgIGdmcDogMC4wMTA1NzE4LFxuICAgICAgICByb2ZmOiAwLjA5ODI2MjYsXG4gICAgICAgIHJvbjogMC4wNTkzNjQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI5NTAsXG4gICAgICAgIGdmcDogMC4wMTAyNTczLFxuICAgICAgICByb2ZmOiAwLjA5OTg4MzksXG4gICAgICAgIHJvbjogMC4wNTgzNTc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwMDAsXG4gICAgICAgIGdmcDogMC4wMDk5MzE4NCxcbiAgICAgICAgcm9mZjogMC4xMDE2MzYsXG4gICAgICAgIHJvbjogMC4wNTczNDIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwNTAsXG4gICAgICAgIGdmcDogMC4wMDk1OTcwNyxcbiAgICAgICAgcm9mZjogMC4xMDM1MjUsXG4gICAgICAgIHJvbjogMC4wNTYzMTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwOTI1NDY3LFxuICAgICAgICByb2ZmOiAwLjEwNTU1NyxcbiAgICAgICAgcm9uOiAwLjA1NTI4MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwODkwNjIxLFxuICAgICAgICByb2ZmOiAwLjEwNzc0MixcbiAgICAgICAgcm9uOiAwLjA1NDIzNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwODU1MzE4LFxuICAgICAgICByb2ZmOiAwLjExMDA4NixcbiAgICAgICAgcm9uOiAwLjA1MzE3NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwODE5NzAzLFxuICAgICAgICByb2ZmOiAwLjExMjYsXG4gICAgICAgIHJvbjogMC4wNTIxMDY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMzMDAsXG4gICAgICAgIGdmcDogMC4wMDc4MzkxMyxcbiAgICAgICAgcm9mZjogMC4xMTUyOTYsXG4gICAgICAgIHJvbjogMC4wNTEwMjY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMzNTAsXG4gICAgICAgIGdmcDogMC4wMDc0ODA4NCxcbiAgICAgICAgcm9mZjogMC4xMTgxODUsXG4gICAgICAgIHJvbjogMC4wNDk5MzU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM0MDAsXG4gICAgICAgIGdmcDogMC4wMDcxMjM0MyxcbiAgICAgICAgcm9mZjogMC4xMjEyOCxcbiAgICAgICAgcm9uOiAwLjA0ODgzNDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNjc2ODE1LFxuICAgICAgICByb2ZmOiAwLjEyNDU5NixcbiAgICAgICAgcm9uOiAwLjA0NzcyNDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNjQxNjIsXG4gICAgICAgIHJvZmY6IDAuMTI4MTQ5LFxuICAgICAgICByb246IDAuMDQ2NjA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1NTAsXG4gICAgICAgIGdmcDogMC4wMDYwNjg3NSxcbiAgICAgICAgcm9mZjogMC4xMzE5NTUsXG4gICAgICAgIHJvbjogMC4wNDU0ODI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM2MDAsXG4gICAgICAgIGdmcDogMC4wMDU3MjY4OCxcbiAgICAgICAgcm9mZjogMC4xMzYwMzMsXG4gICAgICAgIHJvbjogMC4wNDQzNTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM2NTAsXG4gICAgICAgIGdmcDogMC4wMDUzOTE2NixcbiAgICAgICAgcm9mZjogMC4xNDA0MDQsXG4gICAgICAgIHJvbjogMC4wNDMyMTc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM3MDAsXG4gICAgICAgIGdmcDogMC4wMDUwNjQwNyxcbiAgICAgICAgcm9mZjogMC4xNDUwODgsXG4gICAgICAgIHJvbjogMC4wNDIwODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNDc0NTA1LFxuICAgICAgICByb2ZmOiAwLjE1MDEwOSxcbiAgICAgICAgcm9uOiAwLjA0MDk0MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNDQzNTQ2LFxuICAgICAgICByb2ZmOiAwLjE1NTQ5LFxuICAgICAgICByb246IDAuMDM5ODA2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODUwLFxuICAgICAgICBnZnA6IDAuMDA0MTM2MDksXG4gICAgICAgIHJvZmY6IDAuMTYxMjU5LFxuICAgICAgICByb246IDAuMDM4NjcxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzOTAwLFxuICAgICAgICBnZnA6IDAuMDAzODQ3NjMsXG4gICAgICAgIHJvZmY6IDAuMTY3NDQ0LFxuICAgICAgICByb246IDAuMDM3NTQwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzOTUwLFxuICAgICAgICBnZnA6IDAuMDAzNTcwNyxcbiAgICAgICAgcm9mZjogMC4xNzQwNzIsXG4gICAgICAgIHJvbjogMC4wMzY0MTYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMDAsXG4gICAgICAgIGdmcDogMC4wMDMzMDU4LFxuICAgICAgICByb2ZmOiAwLjE4MTE3NixcbiAgICAgICAgcm9uOiAwLjAzNTI5OTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMzA1MzM3LFxuICAgICAgICByb2ZmOiAwLjE4ODc4NyxcbiAgICAgICAgcm9uOiAwLjAzNDE5MjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMjgxMzcxLFxuICAgICAgICByb2ZmOiAwLjE5NjkzOCxcbiAgICAgICAgcm9uOiAwLjAzMzA5NjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMjU4NzA0LFxuICAgICAgICByb2ZmOiAwLjIwNTY2NCxcbiAgICAgICAgcm9uOiAwLjAzMjAxMzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMjM3MzQ2LFxuICAgICAgICByb2ZmOiAwLjIxNDk5OCxcbiAgICAgICAgcm9uOiAwLjAzMDk0NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMjE3MyxcbiAgICAgICAgcm9mZjogMC4yMjQ5NzcsXG4gICAgICAgIHJvbjogMC4wMjk4OTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQzMDAsXG4gICAgICAgIGdmcDogMC4wMDE5ODU1NSxcbiAgICAgICAgcm9mZjogMC4yMzU2MzIsXG4gICAgICAgIHJvbjogMC4wMjg4NTczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQzNTAsXG4gICAgICAgIGdmcDogMC4wMDE4MTA5NCxcbiAgICAgICAgcm9mZjogMC4yNDY5OTksXG4gICAgICAgIHJvbjogMC4wMjc4NDEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ0MDAsXG4gICAgICAgIGdmcDogMC4wMDE2NDg4OSxcbiAgICAgICAgcm9mZjogMC4yNTkxMDgsXG4gICAgICAgIHJvbjogMC4wMjY4NDU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ0NTAsXG4gICAgICAgIGdmcDogMC4wMDE0OTkwNyxcbiAgICAgICAgcm9mZjogMC4yNzE5ODcsXG4gICAgICAgIHJvbjogMC4wMjU4NzA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1MDAsXG4gICAgICAgIGdmcDogMC4wMDEzNjEwNixcbiAgICAgICAgcm9mZjogMC4yODU2NjEsXG4gICAgICAgIHJvbjogMC4wMjQ5MTgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1NTAsXG4gICAgICAgIGdmcDogMC4wMDEyMzQzOCxcbiAgICAgICAgcm9mZjogMC4zMDAxNDcsXG4gICAgICAgIHJvbjogMC4wMjM5ODg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2MDAsXG4gICAgICAgIGdmcDogMC4wMDExMTg1MyxcbiAgICAgICAgcm9mZjogMC4zMTU0NTgsXG4gICAgICAgIHJvbjogMC4wMjMwODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2NTAsXG4gICAgICAgIGdmcDogMC4wMDEwMTI5MyxcbiAgICAgICAgcm9mZjogMC4zMzE1OTcsXG4gICAgICAgIHJvbjogMC4wMjIyMDE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ3MDAsXG4gICAgICAgIGdmcDogMC4wMDA5MTcwMDEsXG4gICAgICAgIHJvZmY6IDAuMzQ4NTU3LFxuICAgICAgICByb246IDAuMDIxMzQ1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NzUwLFxuICAgICAgICBnZnA6IDAuMDAwODMwMTQ5LFxuICAgICAgICByb2ZmOiAwLjM2NjMxNyxcbiAgICAgICAgcm9uOiAwLjAyMDUxNDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDc1MTc2MixcbiAgICAgICAgcm9mZjogMC4zODQ4NDMsXG4gICAgICAgIHJvbjogMC4wMTk3MDgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ4NTAsXG4gICAgICAgIGdmcDogMC4wMDA2ODEyMzYsXG4gICAgICAgIHJvZmY6IDAuNDA0MDg0LFxuICAgICAgICByb246IDAuMDE4OTI3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0OTAwLFxuICAgICAgICBnZnA6IDAuMDAwNjE3OTcyLFxuICAgICAgICByb2ZmOiAwLjQyMzk2OSxcbiAgICAgICAgcm9uOiAwLjAxODE3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0OTUwLFxuICAgICAgICBnZnA6IDAuMDAwNTYxMzkzLFxuICAgICAgICByb2ZmOiAwLjQ0NDQwOCxcbiAgICAgICAgcm9uOiAwLjAxNzQ0MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDUxMDk0MSxcbiAgICAgICAgcm9mZjogMC40NjUyODksXG4gICAgICAgIHJvbjogMC4wMTY3Mzk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwNTAsXG4gICAgICAgIGdmcDogMC4wMDA0NjYwODQsXG4gICAgICAgIHJvZmY6IDAuNDg2NDc4LFxuICAgICAgICByb246IDAuMDE2MDYwM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTAwLFxuICAgICAgICBnZnA6IDAuMDAwNDI2MzE4LFxuICAgICAgICByb2ZmOiAwLjUwNzgyLFxuICAgICAgICByb246IDAuMDE1NDA1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMzkxMTY4LFxuICAgICAgICByb2ZmOiAwLjUyOTE0NCxcbiAgICAgICAgcm9uOiAwLjAxNDc3NTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDM2MDE5MyxcbiAgICAgICAgcm9mZjogMC41NTAyNjEsXG4gICAgICAgIHJvbjogMC4wMTQxNjkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUyNTAsXG4gICAgICAgIGdmcDogMC4wMDAzMzI5ODIsXG4gICAgICAgIHJvZmY6IDAuNTcwOTc4LFxuICAgICAgICByb246IDAuMDEzNTg2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMzA5MTUyLFxuICAgICAgICByb2ZmOiAwLjU5MTEwMSxcbiAgICAgICAgcm9uOiAwLjAxMzAyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMjg4MzQ5LFxuICAgICAgICByb2ZmOiAwLjYxMDQ0NixcbiAgICAgICAgcm9uOiAwLjAxMjQ4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMjcwMjQ2LFxuICAgICAgICByb2ZmOiAwLjYyODg1MSxcbiAgICAgICAgcm9uOiAwLjAxMTk3MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDI1NDUzOCxcbiAgICAgICAgcm9mZjogMC42NDYxODUsXG4gICAgICAgIHJvbjogMC4wMTE0NzY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MDAsXG4gICAgICAgIGdmcDogMC4wMDAyNDA5NDMsXG4gICAgICAgIHJvZmY6IDAuNjYyMzU3LFxuICAgICAgICByb246IDAuMDExMDAxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMjI5MjAxLFxuICAgICAgICByb2ZmOiAwLjY3NzMxNyxcbiAgICAgICAgcm9uOiAwLjAxMDU0NjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDIxOTA3MixcbiAgICAgICAgcm9mZjogMC42OTEwNTYsXG4gICAgICAgIHJvbjogMC4wMTAxMTA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU2NTAsXG4gICAgICAgIGdmcDogMC4wMDAyMTAzMzcsXG4gICAgICAgIHJvZmY6IDAuNzAzNjA1LFxuICAgICAgICByb246IDAuMDA5NjkzMjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDIwMjc5OCxcbiAgICAgICAgcm9mZjogMC43MTUwMjQsXG4gICAgICAgIHJvbjogMC4wMDkyOTM1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTk2Mjc4LFxuICAgICAgICByb2ZmOiAwLjcyNTM5NSxcbiAgICAgICAgcm9uOiAwLjAwODkxMDg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxOTA2MjMsXG4gICAgICAgIHJvZmY6IDAuNzM0ODA2LFxuICAgICAgICByb246IDAuMDA4NTQ0NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE4NTY5OCxcbiAgICAgICAgcm9mZjogMC43NDMzNTEsXG4gICAgICAgIHJvbjogMC4wMDgxOTQyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTgxMzksXG4gICAgICAgIHJvZmY6IDAuNzUxMTE4LFxuICAgICAgICByb246IDAuMDA3ODU5MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE3NzYwNCxcbiAgICAgICAgcm9mZjogMC43NTgxOTEsXG4gICAgICAgIHJvbjogMC4wMDc1MzgzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTc0MjYxLFxuICAgICAgICByb2ZmOiAwLjc2NDY0MixcbiAgICAgICAgcm9uOiAwLjAwNzIzMTU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNzEyOTUsXG4gICAgICAgIHJvZmY6IDAuNzcwNTM1LFxuICAgICAgICByb246IDAuMDA2OTM4MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE2ODY1MyxcbiAgICAgICAgcm9mZjogMC43NzU5MjcsXG4gICAgICAgIHJvbjogMC4wMDY2NTc1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTY2MjksXG4gICAgICAgIHJvZmY6IDAuNzgwODY2LFxuICAgICAgICByb246IDAuMDA2Mzg5MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE2NDE3LFxuICAgICAgICByb2ZmOiAwLjc4NTM5NCxcbiAgICAgICAgcm9uOiAwLjAwNjEzMjU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNjIyNjMsXG4gICAgICAgIHJvZmY6IDAuNzg5NTUsXG4gICAgICAgIHJvbjogMC4wMDU4ODcxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTYwNTQyLFxuICAgICAgICByb2ZmOiAwLjc5MzM2NSxcbiAgICAgICAgcm9uOiAwLjAwNTY1MjUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNTg5ODcsXG4gICAgICAgIHJvZmY6IDAuNzk2ODY5LFxuICAgICAgICByb246IDAuMDA1NDI4MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1NzU3OSxcbiAgICAgICAgcm9mZjogMC44MDAwODksXG4gICAgICAgIHJvbjogMC4wMDUyMTM2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTU2MzAyLFxuICAgICAgICByb2ZmOiAwLjgwMzA0OSxcbiAgICAgICAgcm9uOiAwLjAwNTAwODU5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNTUxNDIsXG4gICAgICAgIHJvZmY6IDAuODA1NzcxLFxuICAgICAgICByb246IDAuMDA0ODEyNTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1NDA4NyxcbiAgICAgICAgcm9mZjogMC44MDgyNzMsXG4gICAgICAgIHJvbjogMC4wMDQ2MjUwNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTUzMTI2LFxuICAgICAgICByb2ZmOiAwLjgxMDU3NSxcbiAgICAgICAgcm9uOiAwLjAwNDQ0NTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNTIyNTEsXG4gICAgICAgIHJvZmY6IDAuODEyNjkzLFxuICAgICAgICByb246IDAuMDA0Mjc0NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1MTQ1MixcbiAgICAgICAgcm9mZjogMC44MTQ2NDEsXG4gICAgICAgIHJvbjogMC4wMDQxMTA3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTUwNzIzLFxuICAgICAgICByb2ZmOiAwLjgxNjQzNCxcbiAgICAgICAgcm9uOiAwLjAwMzk1NDE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNTAwNTYsXG4gICAgICAgIHJvZmY6IDAuODE4MDg1LFxuICAgICAgICByb246IDAuMDAzODA0NDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0OTQ0NyxcbiAgICAgICAgcm9mZjogMC44MTk2MDQsXG4gICAgICAgIHJvbjogMC4wMDM2NjE0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ4ODg5LFxuICAgICAgICByb2ZmOiAwLjgyMTAwMyxcbiAgICAgICAgcm9uOiAwLjAwMzUyNDY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDgzNzgsXG4gICAgICAgIHJvZmY6IDAuODIyMjkyLFxuICAgICAgICByb246IDAuMDAzMzkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ3OTEsXG4gICAgICAgIHJvZmY6IDAuODIzNDc5LFxuICAgICAgICByb246IDAuMDAzMjY4OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NzQ4MSxcbiAgICAgICAgcm9mZjogMC44MjQ1NzIsXG4gICAgICAgIHJvbjogMC4wMDMxNDk0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ3MDg3LFxuICAgICAgICByb2ZmOiAwLjgyNTU4LFxuICAgICAgICByb246IDAuMDAzMDM1MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NjcyNSxcbiAgICAgICAgcm9mZjogMC44MjY1MDksXG4gICAgICAgIHJvbjogMC4wMDI5MjYxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ2MzkzLFxuICAgICAgICByb2ZmOiAwLjgyNzM2NSxcbiAgICAgICAgcm9uOiAwLjAwMjgyMTgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDYwODgsXG4gICAgICAgIHJvZmY6IDAuODI4MTU1LFxuICAgICAgICByb246IDAuMDAyNzIyMTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NTgwOCxcbiAgICAgICAgcm9mZjogMC44Mjg4ODQsXG4gICAgICAgIHJvbjogMC4wMDI2MjY3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ1NTUsXG4gICAgICAgIHJvZmY6IDAuODI5NTU2LFxuICAgICAgICByb246IDAuMDAyNTM1NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NTMxMixcbiAgICAgICAgcm9mZjogMC44MzAxNzcsXG4gICAgICAgIHJvbjogMC4wMDI0NDg2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ1MDkzLFxuICAgICAgICByb2ZmOiAwLjgzMDc1LFxuICAgICAgICByb246IDAuMDAyMzY1MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NDg5MixcbiAgICAgICAgcm9mZjogMC44MzEyNzksXG4gICAgICAgIHJvbjogMC4wMDIyODU4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ0NzA2LFxuICAgICAgICByb2ZmOiAwLjgzMTc2OSxcbiAgICAgICAgcm9uOiAwLjAwMjIwOTgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQ1MzUsXG4gICAgICAgIHJvZmY6IDAuODMyMjIxLFxuICAgICAgICByb246IDAuMDAyMTM3MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NDM3NyxcbiAgICAgICAgcm9mZjogMC44MzI2MzgsXG4gICAgICAgIHJvbjogMC4wMDIwNjc2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ0MjMxLFxuICAgICAgICByb2ZmOiAwLjgzMzAyNSxcbiAgICAgICAgcm9uOiAwLjAwMjAwMTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NDA5NixcbiAgICAgICAgcm9mZjogMC44MzMzODMsXG4gICAgICAgIHJvbjogMC4wMDE5Mzc4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzOTcyLFxuICAgICAgICByb2ZmOiAwLjgzMzcxNCxcbiAgICAgICAgcm9uOiAwLjAwMTg3NzIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDM4NTcsXG4gICAgICAgIHJvZmY6IDAuODM0MDIsXG4gICAgICAgIHJvbjogMC4wMDE4MTkyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzNzUxLFxuICAgICAgICByb2ZmOiAwLjgzNDMwNCxcbiAgICAgICAgcm9uOiAwLjAwMTc2Mzg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDM2NTIsXG4gICAgICAgIHJvZmY6IDAuODM0NTY3LFxuICAgICAgICByb246IDAuMDAxNzEwOTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzU2MSxcbiAgICAgICAgcm9mZjogMC44MzQ4MTEsXG4gICAgICAgIHJvbjogMC4wMDE2NjAzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzNDc3LFxuICAgICAgICByb2ZmOiAwLjgzNTAzNyxcbiAgICAgICAgcm9uOiAwLjAwMTYxMTk2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMzOTgsXG4gICAgICAgIHJvZmY6IDAuODM1MjQ3LFxuICAgICAgICByb246IDAuMDAxNTY1NzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzMyNixcbiAgICAgICAgcm9mZjogMC44MzU0NDIsXG4gICAgICAgIHJvbjogMC4wMDE1MjE1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMjU5LFxuICAgICAgICByb2ZmOiAwLjgzNTYyMyxcbiAgICAgICAgcm9uOiAwLjAwMTQ3OTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMxOTYsXG4gICAgICAgIHJvZmY6IDAuODM1NzkxLFxuICAgICAgICByb246IDAuMDAxNDM5MDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzEzOCxcbiAgICAgICAgcm9mZjogMC44MzU5NDgsXG4gICAgICAgIHJvbjogMC4wMDE0MDA0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMDg0LFxuICAgICAgICByb2ZmOiAwLjgzNjA5MyxcbiAgICAgICAgcm9uOiAwLjAwMTM2MzU5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMwMzQsXG4gICAgICAgIHJvZmY6IDAuODM2MjI4LFxuICAgICAgICByb246IDAuMDAxMzI4MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mjk4OCxcbiAgICAgICAgcm9mZjogMC44MzYzNTQsXG4gICAgICAgIHJvbjogMC4wMDEyOTQ3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyOTQ0LFxuICAgICAgICByb2ZmOiAwLjgzNjQ3MixcbiAgICAgICAgcm9uOiAwLjAwMTI2MjU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI5MDQsXG4gICAgICAgIHJvZmY6IDAuODM2NTgxLFxuICAgICAgICByb246IDAuMDAxMjMxNzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mjg2NixcbiAgICAgICAgcm9mZjogMC44MzY2ODMsXG4gICAgICAgIHJvbjogMC4wMDEyMDI0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyODMxLFxuICAgICAgICByb2ZmOiAwLjgzNjc3OCxcbiAgICAgICAgcm9uOiAwLjAwMTE3NDMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI3OTksXG4gICAgICAgIHJvZmY6IDAuODM2ODY3LFxuICAgICAgICByb246IDAuMDAxMTQ3NDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mjc2OCxcbiAgICAgICAgcm9mZjogMC44MzY5NSxcbiAgICAgICAgcm9uOiAwLjAwMTEyMTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI3NCxcbiAgICAgICAgcm9mZjogMC44MzcwMjcsXG4gICAgICAgIHJvbjogMC4wMDEwOTczM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNzEzLFxuICAgICAgICByb2ZmOiAwLjgzNzA5OSxcbiAgICAgICAgcm9uOiAwLjAwMTA3MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjY4OSxcbiAgICAgICAgcm9mZjogMC44MzcxNjcsXG4gICAgICAgIHJvbjogMC4wMDEwNTE1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNjY1LFxuICAgICAgICByb2ZmOiAwLjgzNzIzLFxuICAgICAgICByb246IDAuMDAxMDMwMTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjY0NCxcbiAgICAgICAgcm9mZjogMC44MzcyOSxcbiAgICAgICAgcm9uOiAwLjAwMTAwOTY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI2MjMsXG4gICAgICAgIHJvZmY6IDAuODM3MzQ1LFxuICAgICAgICByb246IDAuMDAwOTkwMTIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI2MDQsXG4gICAgICAgIHJvZmY6IDAuODM3Mzk3LFxuICAgICAgICByb246IDAuMDAwOTcxNDQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1ODcsXG4gICAgICAgIHJvZmY6IDAuODM3NDQ2LFxuICAgICAgICByb246IDAuMDAwOTUzNTk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1NyxcbiAgICAgICAgcm9mZjogMC44Mzc0OTIsXG4gICAgICAgIHJvbjogMC4wMDA5MzY1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTU0LFxuICAgICAgICByb2ZmOiAwLjgzNzUzNSxcbiAgICAgICAgcm9uOiAwLjAwMDkyMDIzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTQsXG4gICAgICAgIHJvZmY6IDAuODM3NTc1LFxuICAgICAgICByb246IDAuMDAwOTA0NjU5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1MjYsXG4gICAgICAgIHJvZmY6IDAuODM3NjEzLFxuICAgICAgICByb246IDAuMDAwODg5NzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjUxMyxcbiAgICAgICAgcm9mZjogMC44Mzc2NDgsXG4gICAgICAgIHJvbjogMC4wMDA4NzU1NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjUwMSxcbiAgICAgICAgcm9mZjogMC44Mzc2ODIsXG4gICAgICAgIHJvbjogMC4wMDA4NjE5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQ4OSxcbiAgICAgICAgcm9mZjogMC44Mzc3MTMsXG4gICAgICAgIHJvbjogMC4wMDA4NDg5NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQ3OSxcbiAgICAgICAgcm9mZjogMC44Mzc3NDMsXG4gICAgICAgIHJvbjogMC4wMDA4MzY1MjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQ2OCxcbiAgICAgICAgcm9mZjogMC44Mzc3NzEsXG4gICAgICAgIHJvbjogMC4wMDA4MjQ2NThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQ1OSxcbiAgICAgICAgcm9mZjogMC44Mzc3OTcsXG4gICAgICAgIHJvbjogMC4wMDA4MTMzMTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQ1LFxuICAgICAgICByb2ZmOiAwLjgzNzgyMixcbiAgICAgICAgcm9uOiAwLjAwMDgwMjQ3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDQyLFxuICAgICAgICByb2ZmOiAwLjgzNzg0NSxcbiAgICAgICAgcm9uOiAwLjAwMDc5MjExNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDM0LFxuICAgICAgICByb2ZmOiAwLjgzNzg2NyxcbiAgICAgICAgcm9uOiAwLjAwMDc4MjIxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDI2LFxuICAgICAgICByb2ZmOiAwLjgzNzg4OCxcbiAgICAgICAgcm9uOiAwLjAwMDc3Mjc1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDE5LFxuICAgICAgICByb2ZmOiAwLjgzNzkwNyxcbiAgICAgICAgcm9uOiAwLjAwMDc2MzcxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNDEyLFxuICAgICAgICByb2ZmOiAwLjgzNzkyNixcbiAgICAgICAgcm9uOiAwLjAwMDc1NTA3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQwNixcbiAgICAgICAgcm9mZjogMC44Mzc5NDMsXG4gICAgICAgIHJvbjogMC4wMDA3NDY4MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0LFxuICAgICAgICByb2ZmOiAwLjgzNzk2LFxuICAgICAgICByb246IDAuMDAwNzM4OTIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzk0LFxuICAgICAgICByb2ZmOiAwLjgzNzk3NixcbiAgICAgICAgcm9uOiAwLjAwMDczMTM3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM4OSxcbiAgICAgICAgcm9mZjogMC44Mzc5OSxcbiAgICAgICAgcm9uOiAwLjAwMDcyNDE3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM4NCxcbiAgICAgICAgcm9mZjogMC44MzgwMDQsXG4gICAgICAgIHJvbjogMC4wMDA3MTcyODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNzksXG4gICAgICAgIHJvZmY6IDAuODM4MDE4LFxuICAgICAgICByb246IDAuMDAwNzEwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM3NSxcbiAgICAgICAgcm9mZjogMC44MzgwMyxcbiAgICAgICAgcm9uOiAwLjAwMDcwNDQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzcsXG4gICAgICAgIHJvZmY6IDAuODM4MDQyLFxuICAgICAgICByb246IDAuMDAwNjk4Mzk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzY2LFxuICAgICAgICByb2ZmOiAwLjgzODA1MyxcbiAgICAgICAgcm9uOiAwLjAwMDY5MjY1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM2MyxcbiAgICAgICAgcm9mZjogMC44MzgwNjQsXG4gICAgICAgIHJvbjogMC4wMDA2ODcxNjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNTksXG4gICAgICAgIHJvZmY6IDAuODM4MDc0LFxuICAgICAgICByb246IDAuMDAwNjgxOTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzU1LFxuICAgICAgICByb2ZmOiAwLjgzODA4NCxcbiAgICAgICAgcm9uOiAwLjAwMDY3NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNTIsXG4gICAgICAgIHJvZmY6IDAuODM4MDkzLFxuICAgICAgICByb246IDAuMDAwNjcyMTA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzQ5LFxuICAgICAgICByb2ZmOiAwLjgzODEwMSxcbiAgICAgICAgcm9uOiAwLjAwMDY2NzUyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM0NixcbiAgICAgICAgcm9mZjogMC44MzgxMDksXG4gICAgICAgIHJvbjogMC4wMDA2NjMxNTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNDMsXG4gICAgICAgIHJvZmY6IDAuODM4MTE3LFxuICAgICAgICByb246IDAuMDAwNjU4OTY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzQxLFxuICAgICAgICByb2ZmOiAwLjgzODEyNSxcbiAgICAgICAgcm9uOiAwLjAwMDY1NDk3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMzOCxcbiAgICAgICAgcm9mZjogMC44MzgxMzIsXG4gICAgICAgIHJvbjogMC4wMDA2NTExNTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMzYsXG4gICAgICAgIHJvZmY6IDAuODM4MTM4LFxuICAgICAgICByb246IDAuMDAwNjQ3NTAxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwOTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzM0LFxuICAgICAgICByb2ZmOiAwLjgzODE0NSxcbiAgICAgICAgcm9uOiAwLjAwMDY0NDAxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMzMSxcbiAgICAgICAgcm9mZjogMC44MzgxNTEsXG4gICAgICAgIHJvbjogMC4wMDA2NDA2NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMjksXG4gICAgICAgIHJvZmY6IDAuODM4MTU2LFxuICAgICAgICByb246IDAuMDAwNjM3NDkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzI3LFxuICAgICAgICByb2ZmOiAwLjgzODE2MixcbiAgICAgICAgcm9uOiAwLjAwMDYzNDQ0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMyNixcbiAgICAgICAgcm9mZjogMC44MzgxNjcsXG4gICAgICAgIHJvbjogMC4wMDA2MzE1MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMjQsXG4gICAgICAgIHJvZmY6IDAuODM4MTcyLFxuICAgICAgICByb246IDAuMDAwNjI4NzU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzIyLFxuICAgICAgICByb2ZmOiAwLjgzODE3NixcbiAgICAgICAgcm9uOiAwLjAwMDYyNjA5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMyMSxcbiAgICAgICAgcm9mZjogMC44MzgxODEsXG4gICAgICAgIHJvbjogMC4wMDA2MjM1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxOSxcbiAgICAgICAgcm9mZjogMC44MzgxODUsXG4gICAgICAgIHJvbjogMC4wMDA2MjExMzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTgsXG4gICAgICAgIHJvZmY6IDAuODM4MTg5LFxuICAgICAgICByb246IDAuMDAwNjE4ODEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzE2LFxuICAgICAgICByb2ZmOiAwLjgzODE5MyxcbiAgICAgICAgcm9uOiAwLjAwMDYxNjU5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxNSxcbiAgICAgICAgcm9mZjogMC44MzgxOTcsXG4gICAgICAgIHJvbjogMC4wMDA2MTQ0NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTQsXG4gICAgICAgIHJvZmY6IDAuODM4MixcbiAgICAgICAgcm9uOiAwLjAwMDYxMjQ1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxMixcbiAgICAgICAgcm9mZjogMC44MzgyMDMsXG4gICAgICAgIHJvbjogMC4wMDA2MTA1MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjA3LFxuICAgICAgICByb246IDAuMDAwNjA4NjcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzEsXG4gICAgICAgIHJvZmY6IDAuODM4MjEsXG4gICAgICAgIHJvbjogMC4wMDA2MDY5MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDksXG4gICAgICAgIHJvZmY6IDAuODM4MjEyLFxuICAgICAgICByb246IDAuMDAwNjA1MjE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA4LFxuICAgICAgICByb2ZmOiAwLjgzODIxNSxcbiAgICAgICAgcm9uOiAwLjAwMDYwMzYwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwNyxcbiAgICAgICAgcm9mZjogMC44MzgyMTgsXG4gICAgICAgIHJvbjogMC4wMDA2MDIwNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwNixcbiAgICAgICAgcm9mZjogMC44MzgyMixcbiAgICAgICAgcm9uOiAwLjAwMDYwMDU4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwNixcbiAgICAgICAgcm9mZjogMC44MzgyMjMsXG4gICAgICAgIHJvbjogMC4wMDA1OTkxNzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDUsXG4gICAgICAgIHJvZmY6IDAuODM4MjI1LFxuICAgICAgICByb246IDAuMDAwNTk3ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA0LFxuICAgICAgICByb2ZmOiAwLjgzODIyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU5NjU0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwMyxcbiAgICAgICAgcm9mZjogMC44MzgyMjksXG4gICAgICAgIHJvbjogMC4wMDA1OTUzMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDMsXG4gICAgICAgIHJvZmY6IDAuODM4MjMxLFxuICAgICAgICByb246IDAuMDAwNTk0MTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzAyLFxuICAgICAgICByb2ZmOiAwLjgzODIzMyxcbiAgICAgICAgcm9uOiAwLjAwMDU5MzAxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwMSxcbiAgICAgICAgcm9mZjogMC44MzgyMzUsXG4gICAgICAgIHJvbjogMC4wMDA1OTE5NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDEsXG4gICAgICAgIHJvZmY6IDAuODM4MjM2LFxuICAgICAgICByb246IDAuMDAwNTkwOTIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMyxcbiAgICAgICAgcm9mZjogMC44MzgyMzgsXG4gICAgICAgIHJvbjogMC4wMDA1ODk5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzLFxuICAgICAgICByb2ZmOiAwLjgzODI0LFxuICAgICAgICByb246IDAuMDAwNTg5MDA1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk5LFxuICAgICAgICByb2ZmOiAwLjgzODI0MSxcbiAgICAgICAgcm9uOiAwLjAwMDU4ODExMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5OSxcbiAgICAgICAgcm9mZjogMC44MzgyNDIsXG4gICAgICAgIHJvbjogMC4wMDA1ODcyNTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTgsXG4gICAgICAgIHJvZmY6IDAuODM4MjQ0LFxuICAgICAgICByb246IDAuMDAwNTg2NDM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk4LFxuICAgICAgICByb2ZmOiAwLjgzODI0NSxcbiAgICAgICAgcm9uOiAwLjAwMDU4NTY1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NyxcbiAgICAgICAgcm9mZjogMC44MzgyNDYsXG4gICAgICAgIHJvbjogMC4wMDA1ODQ5MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTcsXG4gICAgICAgIHJvZmY6IDAuODM4MjQ3LFxuICAgICAgICByb246IDAuMDAwNTg0MTk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk2LFxuICAgICAgICByb2ZmOiAwLjgzODI0OSxcbiAgICAgICAgcm9uOiAwLjAwMDU4MzUxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NixcbiAgICAgICAgcm9mZjogMC44MzgyNSxcbiAgICAgICAgcm9uOiAwLjAwMDU4Mjg2NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NixcbiAgICAgICAgcm9mZjogMC44MzgyNTEsXG4gICAgICAgIHJvbjogMC4wMDA1ODIyNDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTUsXG4gICAgICAgIHJvZmY6IDAuODM4MjUyLFxuICAgICAgICByb246IDAuMDAwNTgxNjQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyOTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk1LFxuICAgICAgICByb2ZmOiAwLjgzODI1MyxcbiAgICAgICAgcm9uOiAwLjAwMDU4MTA3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NSxcbiAgICAgICAgcm9mZjogMC44MzgyNTMsXG4gICAgICAgIHJvbjogMC4wMDA1ODA1MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTQsXG4gICAgICAgIHJvZmY6IDAuODM4MjU0LFxuICAgICAgICByb246IDAuMDAwNTgwMDE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk0LFxuICAgICAgICByb2ZmOiAwLjgzODI1NSxcbiAgICAgICAgcm9uOiAwLjAwMDU3OTUyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NCxcbiAgICAgICAgcm9mZjogMC44MzgyNTYsXG4gICAgICAgIHJvbjogMC4wMDA1NzkwNDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTQsXG4gICAgICAgIHJvZmY6IDAuODM4MjU3LFxuICAgICAgICByb246IDAuMDAwNTc4NTk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkzLFxuICAgICAgICByb2ZmOiAwLjgzODI1NyxcbiAgICAgICAgcm9uOiAwLjAwMDU3ODE2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MyxcbiAgICAgICAgcm9mZjogMC44MzgyNTgsXG4gICAgICAgIHJvbjogMC4wMDA1Nzc3NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTMsXG4gICAgICAgIHJvZmY6IDAuODM4MjU5LFxuICAgICAgICByb246IDAuMDAwNTc3MzUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkzLFxuICAgICAgICByb2ZmOiAwLjgzODI1OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3Njk3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MixcbiAgICAgICAgcm9mZjogMC44MzgyNixcbiAgICAgICAgcm9uOiAwLjAwMDU3NjYxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MixcbiAgICAgICAgcm9mZjogMC44MzgyNixcbiAgICAgICAgcm9uOiAwLjAwMDU3NjI2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MixcbiAgICAgICAgcm9mZjogMC44MzgyNjEsXG4gICAgICAgIHJvbjogMC4wMDA1NzU5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjYxLFxuICAgICAgICByb246IDAuMDAwNTc1NjIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkyLFxuICAgICAgICByb2ZmOiAwLjgzODI2MixcbiAgICAgICAgcm9uOiAwLjAwMDU3NTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2MixcbiAgICAgICAgcm9uOiAwLjAwMDU3NTAzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjMsXG4gICAgICAgIHJvbjogMC4wMDA1NzQ3NTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjYzLFxuICAgICAgICByb246IDAuMDAwNTc0NDk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2NCxcbiAgICAgICAgcm9uOiAwLjAwMDU3NDI0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjQsXG4gICAgICAgIHJvbjogMC4wMDA1NzQwMDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjY0LFxuICAgICAgICByb246IDAuMDAwNTczNzczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2NSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MzU1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjUsXG4gICAgICAgIHJvbjogMC4wMDA1NzMzNDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjUsXG4gICAgICAgIHJvbjogMC4wMDA1NzMxNDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzI5NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzI3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NixcbiAgICAgICAgcm9uOiAwLjAwMDU3MjU5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NixcbiAgICAgICAgcm9uOiAwLjAwMDU3MjQyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MjI2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MjExNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY3LFxuICAgICAgICByb246IDAuMDAwNTcxODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjgsXG4gICAgICAgIHJvbjogMC4wMDA1NzE2OTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY4LFxuICAgICAgICByb246IDAuMDAwNTcxNTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY4LFxuICAgICAgICByb246IDAuMDAwNTcxNDQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OCxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTMzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjgsXG4gICAgICAgIHJvbjogMC4wMDA1NzEyMjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcxMTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTAxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzA5MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcwODIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDczNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzA2NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzA1NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzA0OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzA0MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAzNDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDIxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDE1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDA5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDAzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTk4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNyxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5ODM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTc5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk3MDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NjMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTU5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk1NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NDk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTQ0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk0MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5Mzg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTM2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1NjkzMzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5MzE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTI5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1NjkyNzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MjU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTIzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkyMTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkxODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MTY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTE1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkxMzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MTI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTExMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwOTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDg3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTA3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwNjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTczNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTA0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwMzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTAxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwMDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTU5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODg4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjExNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxOTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyOTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjhcbiAgICB9XG5dOyIsInZhciBzaXRlbWFwID0ge1xyXG4gICAgJyc6ICdob21lJyxcclxuICAgIFxyXG4gICAgJ092ZXJ2aWV3X1Byb2plY3QnOiAncXVvcnVzJyxcclxuICAgICdEZXNjcmlwdGlvbic6ICdxdW9ydXMnLFxyXG4gICAgJ0Rlc2lnbic6ICdxdW9ydXMnLFxyXG4gICAgJ0V4cGVyaW1lbnRzJzogJ3F1b3J1cycsXHJcbiAgICAnTm90ZWJvb2snOiAncXVvcnVzJyxcclxuICAgICdJbnRlckxhYic6ICdxdW9ydXMnLFxyXG4gICAgJ01vZGVsJzogJ3F1b3J1cycsXHJcbiAgICAnUmVzdWx0cyc6ICdxdW9ydXMnLFxyXG4gICAgJ0RlbW9uc3RyYXRlJzogJ3F1b3J1cycsXHJcbiAgICAnSW1wcm92ZSc6ICdxdW9ydXMnLFxyXG5cclxuICAgICdQYXJ0cyc6ICdxdW9ydXMnLFxyXG4gICAgJ0Jhc2ljX1BhcnQnOiAncXVvcnVzJyxcclxuICAgICdDb21wb3NpdGVfUGFydCc6ICdxdW9ydXMnLFxyXG4gICAgJ1BhcnRfQ29sbGVjdGlvbic6ICdxdW9ydXMnLFxyXG5cclxuICAgICdTYWZldHknOiAncXVvcnVzJyxcclxuXHJcbiAgICAnT3ZlcnZpZXdfSFAnOiAnaHAnLFxyXG4gICAgJ0h1bWFuX1ByYWN0aWNlcyc6ICdocCcsXHJcbiAgICAnUHVibGljX0VuZ2FnZW1lbnQnOiAnaHAnLFxyXG5cclxuICAgICdUZWFtJzogJ3RlYW0nLFxyXG4gICAgJ0NvbGxhYm9yYXRpb25zJzogJ3RlYW0nLFxyXG4gICAgJ0F0dHJpYnV0aW9ucyc6ICd0ZWFtJyxcclxuXHJcbiAgICAnQXBwbGllZF9EZXNpZ24nOiAnY29tcGV0aXRpb24nLFxyXG4gICAgJ0VudHJlcHJlbmV1cnNoaXAnOiAnY29tcGV0aXRpb24nLFxyXG4gICAgJ0hhcmR3YXJlJzogJ2NvbXBldGl0aW9uJyxcclxuICAgICdNZWFzdXJlbWVudCc6ICdjb21wZXRpdGlvbicsXHJcbiAgICAnTW9kZWwnOiAnY29tcGV0aXRpb24nLFxyXG4gICAgJ1NvZnR3YXJlJzogJ2NvbXBldGl0aW9uJ1xyXG59XHJcbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkge1xyXG4gICAgdmFyIGN1cm5hdml0ZW0gPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcclxuICAgIGlmKGN1cm5hdml0ZW0ubWF0Y2goL2lnZW1cXC5vcmcvaSkpIHsgLy8gV2Uga25vdyB3ZSdyZSBsaXZlXHJcbiAgICAgICAgY3VybmF2aXRlbSA9IGN1cm5hdml0ZW0ucmVwbGFjZSgvKGh0dHA6XFwvXFwvKT9cXGR7NH1cXC5pZ2VtXFwub3JnXFwuVGVhbTpcXHcrXFwvPy9pLCAnJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBjdXJuYXZpdGVtID0gY3VybmF2aXRlbS5yZXBsYWNlKC8oaHR0cDpcXC9cXC8pP2xvY2FsaG9zdDpcXGQrXFwvPy8sICcnKTtcclxuICAgICAgICBjdXJuYXZpdGVtID0gY3VybmF2aXRlbS5yZXBsYWNlKC9cXC5odG1sL2ksICcnKTtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKGN1cm5hdml0ZW0pO1xyXG4gICAgJCgnLicgKyBzaXRlbWFwW2N1cm5hdml0ZW1dKS5hZGRDbGFzcygnY3VycmVudCcpO1xyXG59KSIsImxldCBxdW90ZXMgPSBbXHJcblxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiTGlmZSBpc27igJl0IGFib3V0IGdldHRpbmcgYW5kIGhhdmluZywgaXTigJlzIGFib3V0IGdpdmluZyBhbmQgYmVpbmcuXCIsXCJhdXRob3JcIjpcIktldmluIEtydXNlXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiV2hhdGV2ZXIgdGhlIG1pbmQgb2YgbWFuIGNhbiBjb25jZWl2ZSBhbmQgYmVsaWV2ZSwgaXQgY2FuIGFjaGlldmUuXCIsXCJhdXRob3JcIjpcIk5hcG9sZW9uIEhpbGxcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJTdHJpdmUgbm90IHRvIGJlIGEgc3VjY2VzcywgYnV0IHJhdGhlciB0byBiZSBvZiB2YWx1ZS5cIixcImF1dGhvclwiOlwiQWxiZXJ0IEVpbnN0ZWluXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiVHdvIHJvYWRzIGRpdmVyZ2VkIGluIGEgd29vZCwgYW5kIEnigJRJIHRvb2sgdGhlIG9uZSBsZXNzIHRyYXZlbGVkIGJ5LCBBbmQgdGhhdCBoYXMgbWFkZSBhbGwgdGhlIGRpZmZlcmVuY2UuXCIsXCJhdXRob3JcIjpcIlJvYmVydCBGcm9zdFwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIkkgYXR0cmlidXRlIG15IHN1Y2Nlc3MgdG8gdGhpczogSSBuZXZlciBnYXZlIG9yIHRvb2sgYW55IGV4Y3VzZS5cIixcImF1dGhvclwiOlwiRmxvcmVuY2UgTmlnaHRpbmdhbGVcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJZb3UgbWlzcyAxMDAlIG9mIHRoZSBzaG90cyB5b3UgZG9u4oCZdCB0YWtlLlwiLFwiYXV0aG9yXCI6XCJXYXluZSBHcmV0emt5XCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiSeKAmXZlIG1pc3NlZCBtb3JlIHRoYW4gOTAwMCBzaG90cyBpbiBteSBjYXJlZXIuIEnigJl2ZSBsb3N0IGFsbW9zdCAzMDAgZ2FtZXMuIDI2IHRpbWVzIEnigJl2ZSBiZWVuIHRydXN0ZWQgdG8gdGFrZSB0aGUgZ2FtZSB3aW5uaW5nIHNob3QgYW5kIG1pc3NlZC4gSeKAmXZlIGZhaWxlZCBvdmVyIGFuZCBvdmVyIGFuZCBvdmVyIGFnYWluIGluIG15IGxpZmUuIEFuZCB0aGF0IGlzIHdoeSBJIHN1Y2NlZWQuXCIsXCJhdXRob3JcIjpcIk1pY2hhZWwgSm9yZGFuXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiVGhlIG1vc3QgZGlmZmljdWx0IHRoaW5nIGlzIHRoZSBkZWNpc2lvbiB0byBhY3QsIHRoZSByZXN0IGlzIG1lcmVseSB0ZW5hY2l0eS5cIixcImF1dGhvclwiOlwiQW1lbGlhIEVhcmhhcnRcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJFdmVyeSBzdHJpa2UgYnJpbmdzIG1lIGNsb3NlciB0byB0aGUgbmV4dCBob21lIHJ1bi5cIixcImF1dGhvclwiOlwiQmFiZSBSdXRoXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiRGVmaW5pdGVuZXNzIG9mIHB1cnBvc2UgaXMgdGhlIHN0YXJ0aW5nIHBvaW50IG9mIGFsbCBhY2hpZXZlbWVudC5cIixcImF1dGhvclwiOlwiVy4gQ2xlbWVudCBTdG9uZVwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIldlIG11c3QgYmFsYW5jZSBjb25zcGljdW91cyBjb25zdW1wdGlvbiB3aXRoIGNvbnNjaW91cyBjYXBpdGFsaXNtLlwiLFwiYXV0aG9yXCI6XCJLZXZpbiBLcnVzZVwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIkxpZmUgaXMgd2hhdCBoYXBwZW5zIHRvIHlvdSB3aGlsZSB5b3XigJlyZSBidXN5IG1ha2luZyBvdGhlciBwbGFucy5cIixcImF1dGhvclwiOlwiSm9obiBMZW5ub25cIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJXZSBiZWNvbWUgd2hhdCB3ZSB0aGluayBhYm91dC5cIixcImF1dGhvclwiOlwiRWFybCBOaWdodGluZ2FsZVwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIlR3ZW50eSB5ZWFycyBmcm9tIG5vdyB5b3Ugd2lsbCBiZSBtb3JlIGRpc2FwcG9pbnRlZCBieSB0aGUgdGhpbmdzIHRoYXQgeW91IGRpZG7igJl0IGRvIHRoYW4gYnkgdGhlIG9uZXMgeW91IGRpZCBkbywgc28gdGhyb3cgb2ZmIHRoZSBib3dsaW5lcywgc2FpbCBhd2F5IGZyb20gc2FmZSBoYXJib3IsIGNhdGNoIHRoZSB0cmFkZSB3aW5kcyBpbiB5b3VyIHNhaWxzLiAgRXhwbG9yZSwgRHJlYW0sIERpc2NvdmVyLlwiLFwiYXV0aG9yXCI6XCJNYXJrIFR3YWluXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiTGlmZSBpcyAxMCUgd2hhdCBoYXBwZW5zIHRvIG1lIGFuZCA5MCUgb2YgaG93IEkgcmVhY3QgdG8gaXQuXCIsXCJhdXRob3JcIjpcIkNoYXJsZXMgU3dpbmRvbGxcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJUaGUgbW9zdCBjb21tb24gd2F5IHBlb3BsZSBnaXZlIHVwIHRoZWlyIHBvd2VyIGlzIGJ5IHRoaW5raW5nIHRoZXkgZG9u4oCZdCBoYXZlIGFueS5cIixcImF1dGhvclwiOlwiQWxpY2UgV2Fsa2VyXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiVGhlIG1pbmQgaXMgZXZlcnl0aGluZy4gV2hhdCB5b3UgdGhpbmsgeW91IGJlY29tZS5cIixcImF1dGhvclwiOlwiQnVkZGhhXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiVGhlIGJlc3QgdGltZSB0byBwbGFudCBhIHRyZWUgd2FzIDIwIHllYXJzIGFnby4gVGhlIHNlY29uZCBiZXN0IHRpbWUgaXMgbm93LlwiLFwiYXV0aG9yXCI6XCJDaGluZXNlIFByb3ZlcmJcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJBbiB1bmV4YW1pbmVkIGxpZmUgaXMgbm90IHdvcnRoIGxpdmluZy5cIixcImF1dGhvclwiOlwiU29jcmF0ZXNcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJFaWdodHkgcGVyY2VudCBvZiBzdWNjZXNzIGlzIHNob3dpbmcgdXAuXCIsXCJhdXRob3JcIjpcIldvb2R5IEFsbGVuXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiWW91ciB0aW1lIGlzIGxpbWl0ZWQsIHNvIGRvbuKAmXQgd2FzdGUgaXQgbGl2aW5nIHNvbWVvbmUgZWxzZeKAmXMgbGlmZS5cIixcImF1dGhvclwiOlwiU3RldmUgSm9ic1wifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIldpbm5pbmcgaXNu4oCZdCBldmVyeXRoaW5nLCBidXQgd2FudGluZyB0byB3aW4gaXMuXCIsXCJhdXRob3JcIjpcIlZpbmNlIExvbWJhcmRpXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiSSBhbSBub3QgYSBwcm9kdWN0IG9mIG15IGNpcmN1bXN0YW5jZXMuIEkgYW0gYSBwcm9kdWN0IG9mIG15IGRlY2lzaW9ucy5cIixcImF1dGhvclwiOlwiU3RlcGhlbiBDb3ZleVwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIkV2ZXJ5IGNoaWxkIGlzIGFuIGFydGlzdC4gIFRoZSBwcm9ibGVtIGlzIGhvdyB0byByZW1haW4gYW4gYXJ0aXN0IG9uY2UgaGUgZ3Jvd3MgdXAuXCIsXCJhdXRob3JcIjpcIlBhYmxvIFBpY2Fzc29cIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJZb3UgY2FuIG5ldmVyIGNyb3NzIHRoZSBvY2VhbiB1bnRpbCB5b3UgaGF2ZSB0aGUgY291cmFnZSB0byBsb3NlIHNpZ2h0IG9mIHRoZSBzaG9yZS5cIixcImF1dGhvclwiOlwiQ2hyaXN0b3BoZXIgQ29sdW1idXNcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJJ4oCZdmUgbGVhcm5lZCB0aGF0IHBlb3BsZSB3aWxsIGZvcmdldCB3aGF0IHlvdSBzYWlkLCBwZW9wbGUgd2lsbCBmb3JnZXQgd2hhdCB5b3UgZGlkLCBidXQgcGVvcGxlIHdpbGwgbmV2ZXIgZm9yZ2V0IGhvdyB5b3UgbWFkZSB0aGVtIGZlZWwuXCIsXCJhdXRob3JcIjpcIk1heWEgQW5nZWxvdVwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIkVpdGhlciB5b3UgcnVuIHRoZSBkYXksIG9yIHRoZSBkYXkgcnVucyB5b3UuXCIsXCJhdXRob3JcIjpcIkppbSBSb2huXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiV2hldGhlciB5b3UgdGhpbmsgeW91IGNhbiBvciB5b3UgdGhpbmsgeW91IGNhbuKAmXQsIHlvdeKAmXJlIHJpZ2h0LlwiLFwiYXV0aG9yXCI6XCJIZW5yeSBGb3JkXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiVGhlIHR3byBtb3N0IGltcG9ydGFudCBkYXlzIGluIHlvdXIgbGlmZSBhcmUgdGhlIGRheSB5b3UgYXJlIGJvcm4gYW5kIHRoZSBkYXkgeW91IGZpbmQgb3V0IHdoeS5cIixcImF1dGhvclwiOlwiTWFyayBUd2FpblwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIldoYXRldmVyIHlvdSBjYW4gZG8sIG9yIGRyZWFtIHlvdSBjYW4sIGJlZ2luIGl0LiAgQm9sZG5lc3MgaGFzIGdlbml1cywgcG93ZXIgYW5kIG1hZ2ljIGluIGl0LlwiLFwiYXV0aG9yXCI6XCJKb2hhbm4gV29sZmdhbmcgdm9uIEdvZXRoZVwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIlRoZSBiZXN0IHJldmVuZ2UgaXMgbWFzc2l2ZSBzdWNjZXNzLlwiLFwiYXV0aG9yXCI6XCJGcmFuayBTaW5hdHJhXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiUGVvcGxlIG9mdGVuIHNheSB0aGF0IG1vdGl2YXRpb24gZG9lc27igJl0IGxhc3QuIFdlbGwsIG5laXRoZXIgZG9lcyBiYXRoaW5nLiAgVGhhdOKAmXMgd2h5IHdlIHJlY29tbWVuZCBpdCBkYWlseS5cIixcImF1dGhvclwiOlwiWmlnIFppZ2xhclwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIkxpZmUgc2hyaW5rcyBvciBleHBhbmRzIGluIHByb3BvcnRpb24gdG8gb25l4oCZcyBjb3VyYWdlLlwiLFwiYXV0aG9yXCI6XCJBbmFpcyBOaW5cIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJJZiB5b3UgaGVhciBhIHZvaWNlIHdpdGhpbiB5b3Ugc2F5IOKAnHlvdSBjYW5ub3QgcGFpbnQs4oCdIHRoZW4gYnkgYWxsIG1lYW5zIHBhaW50IGFuZCB0aGF0IHZvaWNlIHdpbGwgYmUgc2lsZW5jZWQuXCIsXCJhdXRob3JcIjpcIlZpbmNlbnQgVmFuIEdvZ2hcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJUaGVyZSBpcyBvbmx5IG9uZSB3YXkgdG8gYXZvaWQgY3JpdGljaXNtOiBkbyBub3RoaW5nLCBzYXkgbm90aGluZywgYW5kIGJlIG5vdGhpbmcuXCIsXCJhdXRob3JcIjpcIkFyaXN0b3RsZVwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIkFzayBhbmQgaXQgd2lsbCBiZSBnaXZlbiB0byB5b3U7IHNlYXJjaCwgYW5kIHlvdSB3aWxsIGZpbmQ7IGtub2NrIGFuZCB0aGUgZG9vciB3aWxsIGJlIG9wZW5lZCBmb3IgeW91LlwiLFwiYXV0aG9yXCI6XCJKZXN1c1wifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIlRoZSBvbmx5IHBlcnNvbiB5b3UgYXJlIGRlc3RpbmVkIHRvIGJlY29tZSBpcyB0aGUgcGVyc29uIHlvdSBkZWNpZGUgdG8gYmUuXCIsXCJhdXRob3JcIjpcIlJhbHBoIFdhbGRvIEVtZXJzb25cIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJHbyBjb25maWRlbnRseSBpbiB0aGUgZGlyZWN0aW9uIG9mIHlvdXIgZHJlYW1zLiAgTGl2ZSB0aGUgbGlmZSB5b3UgaGF2ZSBpbWFnaW5lZC5cIixcImF1dGhvclwiOlwiSGVucnkgRGF2aWQgVGhvcmVhdVwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIldoZW4gSSBzdGFuZCBiZWZvcmUgR29kIGF0IHRoZSBlbmQgb2YgbXkgbGlmZSwgSSB3b3VsZCBob3BlIHRoYXQgSSB3b3VsZCBub3QgaGF2ZSBhIHNpbmdsZSBiaXQgb2YgdGFsZW50IGxlZnQgYW5kIGNvdWxkIHNheSwgSSB1c2VkIGV2ZXJ5dGhpbmcgeW91IGdhdmUgbWUuXCIsXCJhdXRob3JcIjpcIkVybWEgQm9tYmVja1wifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIkZldyB0aGluZ3MgY2FuIGhlbHAgYW4gaW5kaXZpZHVhbCBtb3JlIHRoYW4gdG8gcGxhY2UgcmVzcG9uc2liaWxpdHkgb24gaGltLCBhbmQgdG8gbGV0IGhpbSBrbm93IHRoYXQgeW91IHRydXN0IGhpbS5cIixcImF1dGhvclwiOlwiQm9va2VyIFQuIFdhc2hpbmd0b25cIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJDZXJ0YWluIHRoaW5ncyBjYXRjaCB5b3VyIGV5ZSwgYnV0IHB1cnN1ZSBvbmx5IHRob3NlIHRoYXQgY2FwdHVyZSB0aGUgaGVhcnQuXCIsXCJhdXRob3JcIjpcIiBBbmNpZW50IEluZGlhbiBQcm92ZXJiXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiQmVsaWV2ZSB5b3UgY2FuIGFuZCB5b3XigJlyZSBoYWxmd2F5IHRoZXJlLlwiLFwiYXV0aG9yXCI6XCJUaGVvZG9yZSBSb29zZXZlbHRcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJFdmVyeXRoaW5nIHlvdeKAmXZlIGV2ZXIgd2FudGVkIGlzIG9uIHRoZSBvdGhlciBzaWRlIG9mIGZlYXIuXCIsXCJhdXRob3JcIjpcIkdlb3JnZSBBZGRhaXJcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJXZSBjYW4gZWFzaWx5IGZvcmdpdmUgYSBjaGlsZCB3aG8gaXMgYWZyYWlkIG9mIHRoZSBkYXJrOyB0aGUgcmVhbCB0cmFnZWR5IG9mIGxpZmUgaXMgd2hlbiBtZW4gYXJlIGFmcmFpZCBvZiB0aGUgbGlnaHQuXCIsXCJhdXRob3JcIjpcIlBsYXRvXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiVGVhY2ggdGh5IHRvbmd1ZSB0byBzYXksIOKAnEkgZG8gbm90IGtub3cs4oCdIGFuZCB0aG91cyBzaGFsdCBwcm9ncmVzcy5cIixcImF1dGhvclwiOlwiTWFpbW9uaWRlc1wifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIlN0YXJ0IHdoZXJlIHlvdSBhcmUuIFVzZSB3aGF0IHlvdSBoYXZlLiAgRG8gd2hhdCB5b3UgY2FuLlwiLFwiYXV0aG9yXCI6XCJBcnRodXIgQXNoZVwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIldoZW4gSSB3YXMgNSB5ZWFycyBvbGQsIG15IG1vdGhlciBhbHdheXMgdG9sZCBtZSB0aGF0IGhhcHBpbmVzcyB3YXMgdGhlIGtleSB0byBsaWZlLiAgV2hlbiBJIHdlbnQgdG8gc2Nob29sLCB0aGV5IGFza2VkIG1lIHdoYXQgSSB3YW50ZWQgdG8gYmUgd2hlbiBJIGdyZXcgdXAuICBJIHdyb3RlIGRvd24g4oCYaGFwcHnigJkuICBUaGV5IHRvbGQgbWUgSSBkaWRu4oCZdCB1bmRlcnN0YW5kIHRoZSBhc3NpZ25tZW50LCBhbmQgSSB0b2xkIHRoZW0gdGhleSBkaWRu4oCZdCB1bmRlcnN0YW5kIGxpZmUuXCIsXCJhdXRob3JcIjpcIkpvaG4gTGVubm9uXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiRmFsbCBzZXZlbiB0aW1lcyBhbmQgc3RhbmQgdXAgZWlnaHQuXCIsXCJhdXRob3JcIjpcIkphcGFuZXNlIFByb3ZlcmJcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJXaGVuIG9uZSBkb29yIG9mIGhhcHBpbmVzcyBjbG9zZXMsIGFub3RoZXIgb3BlbnMsIGJ1dCBvZnRlbiB3ZSBsb29rIHNvIGxvbmcgYXQgdGhlIGNsb3NlZCBkb29yIHRoYXQgd2UgZG8gbm90IHNlZSB0aGUgb25lIHRoYXQgaGFzIGJlZW4gb3BlbmVkIGZvciB1cy5cIixcImF1dGhvclwiOlwiSGVsZW4gS2VsbGVyXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiRXZlcnl0aGluZyBoYXMgYmVhdXR5LCBidXQgbm90IGV2ZXJ5b25lIGNhbiBzZWUuXCIsXCJhdXRob3JcIjpcIkNvbmZ1Y2l1c1wifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIkhvdyB3b25kZXJmdWwgaXQgaXMgdGhhdCBub2JvZHkgbmVlZCB3YWl0IGEgc2luZ2xlIG1vbWVudCBiZWZvcmUgc3RhcnRpbmcgdG8gaW1wcm92ZSB0aGUgd29ybGQuXCIsXCJhdXRob3JcIjpcIkFubmUgRnJhbmtcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJXaGVuIEkgbGV0IGdvIG9mIHdoYXQgSSBhbSwgSSBiZWNvbWUgd2hhdCBJIG1pZ2h0IGJlLlwiLFwiYXV0aG9yXCI6XCJMYW8gVHp1XCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiTGlmZSBpcyBub3QgbWVhc3VyZWQgYnkgdGhlIG51bWJlciBvZiBicmVhdGhzIHdlIHRha2UsIGJ1dCBieSB0aGUgbW9tZW50cyB0aGF0IHRha2Ugb3VyIGJyZWF0aCBhd2F5LlwiLFwiYXV0aG9yXCI6XCJNYXlhIEFuZ2Vsb3VcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJIYXBwaW5lc3MgaXMgbm90IHNvbWV0aGluZyByZWFkeW1hZGUuICBJdCBjb21lcyBmcm9tIHlvdXIgb3duIGFjdGlvbnMuXCIsXCJhdXRob3JcIjpcIkRhbGFpIExhbWFcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJJZiB5b3XigJlyZSBvZmZlcmVkIGEgc2VhdCBvbiBhIHJvY2tldCBzaGlwLCBkb27igJl0IGFzayB3aGF0IHNlYXQhIEp1c3QgZ2V0IG9uLlwiLFwiYXV0aG9yXCI6XCJTaGVyeWwgU2FuZGJlcmdcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJGaXJzdCwgaGF2ZSBhIGRlZmluaXRlLCBjbGVhciBwcmFjdGljYWwgaWRlYWw7IGEgZ29hbCwgYW4gb2JqZWN0aXZlLiBTZWNvbmQsIGhhdmUgdGhlIG5lY2Vzc2FyeSBtZWFucyB0byBhY2hpZXZlIHlvdXIgZW5kczsgd2lzZG9tLCBtb25leSwgbWF0ZXJpYWxzLCBhbmQgbWV0aG9kcy4gVGhpcmQsIGFkanVzdCBhbGwgeW91ciBtZWFucyB0byB0aGF0IGVuZC5cIixcImF1dGhvclwiOlwiQXJpc3RvdGxlXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiSWYgdGhlIHdpbmQgd2lsbCBub3Qgc2VydmUsIHRha2UgdG8gdGhlIG9hcnMuXCIsXCJhdXRob3JcIjpcIkxhdGluIFByb3ZlcmJcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJZb3UgY2Fu4oCZdCBmYWxsIGlmIHlvdSBkb27igJl0IGNsaW1iLiAgQnV0IHRoZXJl4oCZcyBubyBqb3kgaW4gbGl2aW5nIHlvdXIgd2hvbGUgbGlmZSBvbiB0aGUgZ3JvdW5kLlwiLFwiYXV0aG9yXCI6XCJVbmtub3duXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiV2UgbXVzdCBiZWxpZXZlIHRoYXQgd2UgYXJlIGdpZnRlZCBmb3Igc29tZXRoaW5nLCBhbmQgdGhhdCB0aGlzIHRoaW5nLCBhdCB3aGF0ZXZlciBjb3N0LCBtdXN0IGJlIGF0dGFpbmVkLlwiLFwiYXV0aG9yXCI6XCJNYXJpZSBDdXJpZVwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIlRvbyBtYW55IG9mIHVzIGFyZSBub3QgbGl2aW5nIG91ciBkcmVhbXMgYmVjYXVzZSB3ZSBhcmUgbGl2aW5nIG91ciBmZWFycy5cIixcImF1dGhvclwiOlwiTGVzIEJyb3duXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiQ2hhbGxlbmdlcyBhcmUgd2hhdCBtYWtlIGxpZmUgaW50ZXJlc3RpbmcgYW5kIG92ZXJjb21pbmcgdGhlbSBpcyB3aGF0IG1ha2VzIGxpZmUgbWVhbmluZ2Z1bC5cIixcImF1dGhvclwiOlwiSm9zaHVhIEouIE1hcmluZVwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIklmIHlvdSB3YW50IHRvIGxpZnQgeW91cnNlbGYgdXAsIGxpZnQgdXAgc29tZW9uZSBlbHNlLlwiLFwiYXV0aG9yXCI6XCJCb29rZXIgVC4gV2FzaGluZ3RvblwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIkkgaGF2ZSBiZWVuIGltcHJlc3NlZCB3aXRoIHRoZSB1cmdlbmN5IG9mIGRvaW5nLiBLbm93aW5nIGlzIG5vdCBlbm91Z2g7IHdlIG11c3QgYXBwbHkuIEJlaW5nIHdpbGxpbmcgaXMgbm90IGVub3VnaDsgd2UgbXVzdCBkby5cIixcImF1dGhvclwiOlwiTGVvbmFyZG8gZGEgVmluY2lcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJMaW1pdGF0aW9ucyBsaXZlIG9ubHkgaW4gb3VyIG1pbmRzLiAgQnV0IGlmIHdlIHVzZSBvdXIgaW1hZ2luYXRpb25zLCBvdXIgcG9zc2liaWxpdGllcyBiZWNvbWUgbGltaXRsZXNzLlwiLFwiYXV0aG9yXCI6XCJKYW1pZSBQYW9saW5ldHRpXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiWW91IHRha2UgeW91ciBsaWZlIGluIHlvdXIgb3duIGhhbmRzLCBhbmQgd2hhdCBoYXBwZW5zPyBBIHRlcnJpYmxlIHRoaW5nLCBubyBvbmUgdG8gYmxhbWUuXCIsXCJhdXRob3JcIjpcIkVyaWNhIEpvbmdcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJXaGF04oCZcyBtb25leT8gQSBtYW4gaXMgYSBzdWNjZXNzIGlmIGhlIGdldHMgdXAgaW4gdGhlIG1vcm5pbmcgYW5kIGdvZXMgdG8gYmVkIGF0IG5pZ2h0IGFuZCBpbiBiZXR3ZWVuIGRvZXMgd2hhdCBoZSB3YW50cyB0byBkby5cIixcImF1dGhvclwiOlwiQm9iIER5bGFuXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiSSBkaWRu4oCZdCBmYWlsIHRoZSB0ZXN0LiBJIGp1c3QgZm91bmQgMTAwIHdheXMgdG8gZG8gaXQgd3JvbmcuXCIsXCJhdXRob3JcIjpcIkJlbmphbWluIEZyYW5rbGluXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiSW4gb3JkZXIgdG8gc3VjY2VlZCwgeW91ciBkZXNpcmUgZm9yIHN1Y2Nlc3Mgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiB5b3VyIGZlYXIgb2YgZmFpbHVyZS5cIixcImF1dGhvclwiOlwiQmlsbCBDb3NieVwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIkEgcGVyc29uIHdobyBuZXZlciBtYWRlIGEgbWlzdGFrZSBuZXZlciB0cmllZCBhbnl0aGluZyBuZXcuXCIsXCJhdXRob3JcIjpcIiBBbGJlcnQgRWluc3RlaW5cIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJUaGUgcGVyc29uIHdobyBzYXlzIGl0IGNhbm5vdCBiZSBkb25lIHNob3VsZCBub3QgaW50ZXJydXB0IHRoZSBwZXJzb24gd2hvIGlzIGRvaW5nIGl0LlwiLFwiYXV0aG9yXCI6XCJDaGluZXNlIFByb3ZlcmJcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJUaGVyZSBhcmUgbm8gdHJhZmZpYyBqYW1zIGFsb25nIHRoZSBleHRyYSBtaWxlLlwiLFwiYXV0aG9yXCI6XCJSb2dlciBTdGF1YmFjaFwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIkl0IGlzIG5ldmVyIHRvbyBsYXRlIHRvIGJlIHdoYXQgeW91IG1pZ2h0IGhhdmUgYmVlbi5cIixcImF1dGhvclwiOlwiR2VvcmdlIEVsaW90XCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiWW91IGJlY29tZSB3aGF0IHlvdSBiZWxpZXZlLlwiLFwiYXV0aG9yXCI6XCJPcHJhaCBXaW5mcmV5XCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiSSB3b3VsZCByYXRoZXIgZGllIG9mIHBhc3Npb24gdGhhbiBvZiBib3JlZG9tLlwiLFwiYXV0aG9yXCI6XCJWaW5jZW50IHZhbiBHb2doXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiQSB0cnVseSByaWNoIG1hbiBpcyBvbmUgd2hvc2UgY2hpbGRyZW4gcnVuIGludG8gaGlzIGFybXMgd2hlbiBoaXMgaGFuZHMgYXJlIGVtcHR5LlwiLFwiYXV0aG9yXCI6XCJVbmtub3duXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiSXQgaXMgbm90IHdoYXQgeW91IGRvIGZvciB5b3VyIGNoaWxkcmVuLCBidXQgd2hhdCB5b3UgaGF2ZSB0YXVnaHQgdGhlbSB0byBkbyBmb3IgdGhlbXNlbHZlcywgdGhhdCB3aWxsIG1ha2UgdGhlbSBzdWNjZXNzZnVsIGh1bWFuIGJlaW5ncy5cIixcImF1dGhvclwiOlwiQW5uIExhbmRlcnNcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJJZiB5b3Ugd2FudCB5b3VyIGNoaWxkcmVuIHRvIHR1cm4gb3V0IHdlbGwsIHNwZW5kIHR3aWNlIGFzIG11Y2ggdGltZSB3aXRoIHRoZW0sIGFuZCBoYWxmIGFzIG11Y2ggbW9uZXkuXCIsXCJhdXRob3JcIjpcIkFiaWdhaWwgVmFuIEJ1cmVuXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiQnVpbGQgeW91ciBvd24gZHJlYW1zLCBvciBzb21lb25lIGVsc2Ugd2lsbCBoaXJlIHlvdSB0byBidWlsZCB0aGVpcnMuXCIsXCJhdXRob3JcIjpcIkZhcnJhaCBHcmF5XCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiVGhlIGJhdHRsZXMgdGhhdCBjb3VudCBhcmVu4oCZdCB0aGUgb25lcyBmb3IgZ29sZCBtZWRhbHMuIFRoZSBzdHJ1Z2dsZXMgd2l0aGluIHlvdXJzZWxm4oCTdGhlIGludmlzaWJsZSBiYXR0bGVzIGluc2lkZSBhbGwgb2YgdXPigJN0aGF04oCZcyB3aGVyZSBpdOKAmXMgYXQuXCIsXCJhdXRob3JcIjpcIkplc3NlIE93ZW5zXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiRWR1Y2F0aW9uIGNvc3RzIG1vbmV5LiAgQnV0IHRoZW4gc28gZG9lcyBpZ25vcmFuY2UuXCIsXCJhdXRob3JcIjpcIlNpciBDbGF1cyBNb3NlclwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIkkgaGF2ZSBsZWFybmVkIG92ZXIgdGhlIHllYXJzIHRoYXQgd2hlbiBvbmXigJlzIG1pbmQgaXMgbWFkZSB1cCwgdGhpcyBkaW1pbmlzaGVzIGZlYXIuXCIsXCJhdXRob3JcIjpcIlJvc2EgUGFya3NcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJJdCBkb2VzIG5vdCBtYXR0ZXIgaG93IHNsb3dseSB5b3UgZ28gYXMgbG9uZyBhcyB5b3UgZG8gbm90IHN0b3AuXCIsXCJhdXRob3JcIjpcIkNvbmZ1Y2l1c1wifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIklmIHlvdSBsb29rIGF0IHdoYXQgeW91IGhhdmUgaW4gbGlmZSwgeW914oCZbGwgYWx3YXlzIGhhdmUgbW9yZS4gSWYgeW91IGxvb2sgYXQgd2hhdCB5b3UgZG9u4oCZdCBoYXZlIGluIGxpZmUsIHlvdeKAmWxsIG5ldmVyIGhhdmUgZW5vdWdoLlwiLFwiYXV0aG9yXCI6XCJPcHJhaCBXaW5mcmV5XCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiUmVtZW1iZXIgdGhhdCBub3QgZ2V0dGluZyB3aGF0IHlvdSB3YW50IGlzIHNvbWV0aW1lcyBhIHdvbmRlcmZ1bCBzdHJva2Ugb2YgbHVjay5cIixcImF1dGhvclwiOlwiRGFsYWkgTGFtYVwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIllvdSBjYW7igJl0IHVzZSB1cCBjcmVhdGl2aXR5LiAgVGhlIG1vcmUgeW91IHVzZSwgdGhlIG1vcmUgeW91IGhhdmUuXCIsXCJhdXRob3JcIjpcIk1heWEgQW5nZWxvdVwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIkRyZWFtIGJpZyBhbmQgZGFyZSB0byBmYWlsLlwiLFwiYXV0aG9yXCI6XCJOb3JtYW4gVmF1Z2hhblwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIk91ciBsaXZlcyBiZWdpbiB0byBlbmQgdGhlIGRheSB3ZSBiZWNvbWUgc2lsZW50IGFib3V0IHRoaW5ncyB0aGF0IG1hdHRlci5cIixcImF1dGhvclwiOlwiTWFydGluIEx1dGhlciBLaW5nIEpyLlwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIkRvIHdoYXQgeW91IGNhbiwgd2hlcmUgeW91IGFyZSwgd2l0aCB3aGF0IHlvdSBoYXZlLlwiLFwiYXV0aG9yXCI6XCJUZWRkeSBSb29zZXZlbHRcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJJZiB5b3UgZG8gd2hhdCB5b3XigJl2ZSBhbHdheXMgZG9uZSwgeW914oCZbGwgZ2V0IHdoYXQgeW914oCZdmUgYWx3YXlzIGdvdHRlbi5cIixcImF1dGhvclwiOlwiVG9ueSBSb2JiaW5zXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiRHJlYW1pbmcsIGFmdGVyIGFsbCwgaXMgYSBmb3JtIG9mIHBsYW5uaW5nLlwiLFwiYXV0aG9yXCI6XCJHbG9yaWEgU3RlaW5lbVwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIkl04oCZcyB5b3VyIHBsYWNlIGluIHRoZSB3b3JsZDsgaXTigJlzIHlvdXIgbGlmZS4gR28gb24gYW5kIGRvIGFsbCB5b3UgY2FuIHdpdGggaXQsIGFuZCBtYWtlIGl0IHRoZSBsaWZlIHlvdSB3YW50IHRvIGxpdmUuXCIsXCJhdXRob3JcIjpcIk1hZSBKZW1pc29uXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiWW91IG1heSBiZSBkaXNhcHBvaW50ZWQgaWYgeW91IGZhaWwsIGJ1dCB5b3UgYXJlIGRvb21lZCBpZiB5b3UgZG9u4oCZdCB0cnkuXCIsXCJhdXRob3JcIjpcIkJldmVybHkgU2lsbHNcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJSZW1lbWJlciBubyBvbmUgY2FuIG1ha2UgeW91IGZlZWwgaW5mZXJpb3Igd2l0aG91dCB5b3VyIGNvbnNlbnQuXCIsXCJhdXRob3JcIjpcIkVsZWFub3IgUm9vc2V2ZWx0XCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiTGlmZSBpcyB3aGF0IHdlIG1ha2UgaXQsIGFsd2F5cyBoYXMgYmVlbiwgYWx3YXlzIHdpbGwgYmUuXCIsXCJhdXRob3JcIjpcIkdyYW5kbWEgTW9zZXNcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJUaGUgcXVlc3Rpb24gaXNu4oCZdCB3aG8gaXMgZ29pbmcgdG8gbGV0IG1lOyBpdOKAmXMgd2hvIGlzIGdvaW5nIHRvIHN0b3AgbWUuXCIsXCJhdXRob3JcIjpcIkF5biBSYW5kXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiV2hlbiBldmVyeXRoaW5nIHNlZW1zIHRvIGJlIGdvaW5nIGFnYWluc3QgeW91LCByZW1lbWJlciB0aGF0IHRoZSBhaXJwbGFuZSB0YWtlcyBvZmYgYWdhaW5zdCB0aGUgd2luZCwgbm90IHdpdGggaXQuXCIsXCJhdXRob3JcIjpcIkhlbnJ5IEZvcmRcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJJdOKAmXMgbm90IHRoZSB5ZWFycyBpbiB5b3VyIGxpZmUgdGhhdCBjb3VudC4gSXTigJlzIHRoZSBsaWZlIGluIHlvdXIgeWVhcnMuXCIsXCJhdXRob3JcIjpcIkFicmFoYW0gTGluY29sblwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIkNoYW5nZSB5b3VyIHRob3VnaHRzIGFuZCB5b3UgY2hhbmdlIHlvdXIgd29ybGQuXCIsXCJhdXRob3JcIjpcIk5vcm1hbiBWaW5jZW50IFBlYWxlXCJ9LFxyXG4gICAge1xyXG4gICAgICAgIHF1b3RlOlwiRWl0aGVyIHdyaXRlIHNvbWV0aGluZyB3b3J0aCByZWFkaW5nIG9yIGRvIHNvbWV0aGluZyB3b3J0aCB3cml0aW5nLlwiLFwiYXV0aG9yXCI6XCJCZW5qYW1pbiBGcmFua2xpblwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIk5vdGhpbmcgaXMgaW1wb3NzaWJsZSwgdGhlIHdvcmQgaXRzZWxmIHNheXMsIOKAnEnigJltIHBvc3NpYmxlIeKAnVwiLFwiYXV0aG9yXCI6XCLigJNBdWRyZXkgSGVwYnVyblwifSxcclxuICAgIHtcclxuICAgICAgICBxdW90ZTpcIlRoZSBvbmx5IHdheSB0byBkbyBncmVhdCB3b3JrIGlzIHRvIGxvdmUgd2hhdCB5b3UgZG8uXCIsXCJhdXRob3JcIjpcIlN0ZXZlIEpvYnNcIn0sXHJcbiAgICB7XHJcbiAgICAgICAgcXVvdGU6XCJJZiB5b3UgY2FuIGRyZWFtIGl0LCB5b3UgY2FuIGFjaGlldmUgaXQuXCIsXCJhdXRob3JcIjpcIlppZyBaaWdsYXJcIn1cclxuXTsiLCIvLyBDb2RlIGNvdXJ0ZXN5IG9mIE1vaGFtZWQgSGFzYW5cclxuLy8gaHR0cHM6Ly9jb2RlcGVuLmlvL01obWRoYXNhbi9wZW4vbUFkYVFFXHJcblxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XHJcbiAgXHJcbiAgJ3VzZSBzdHJpY3QnO1xyXG4gIFxyXG4gICB2YXIgYywgY3VycmVudFNjcm9sbFRvcCA9IDAsXHJcbiAgICAgICBuYXZiYXIgPSAkKCdoZWFkZXInKTtcclxuXHJcbiAgICQod2luZG93KS5zY3JvbGwoZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgYSA9ICQod2luZG93KS5zY3JvbGxUb3AoKTtcclxuICAgICAgdmFyIGIgPSBuYXZiYXIuaGVpZ2h0KCk7XHJcbiAgICAgXHJcbiAgICAgIGN1cnJlbnRTY3JvbGxUb3AgPSBhO1xyXG4gICAgIFxyXG4gICAgICBpZiAoYyA8IGN1cnJlbnRTY3JvbGxUb3AgJiYgYSA+IGIgKyBiKSB7XHJcbiAgICAgICAgbmF2YmFyLmFkZENsYXNzKFwic2Nyb2xsVXBcIik7XHJcbiAgICAgIH0gZWxzZSBpZiAoYyA+IGN1cnJlbnRTY3JvbGxUb3AgJiYgIShhIDw9IGIpKSB7XHJcbiAgICAgICAgbmF2YmFyLnJlbW92ZUNsYXNzKFwic2Nyb2xsVXBcIik7XHJcbiAgICAgIH1cclxuICAgICAgYyA9IGN1cnJlbnRTY3JvbGxUb3A7XHJcbiAgfSk7XHJcbiAgXHJcbn0pOyIsIi8vQ29kZSBjb3VydGVzeSBvZiBodHRwczovL2NvZGVwZW4uaW8va3J1eG9yL3Blbi9Dd3BGcVxuXG4kKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uKCkge1xuICAgIGlmICgkKHRoaXMpLnNjcm9sbFRvcCgpID4gNTAgKSB7XG4gICAgICAgICQoJy5zY3JvbGx0b3A6aGlkZGVuJykuc3RvcCh0cnVlLCB0cnVlKS5mYWRlSW4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAkKCcuc2Nyb2xsdG9wJykuc3RvcCh0cnVlLCB0cnVlKS5mYWRlT3V0KCk7XG4gICAgfVxufSk7XG4kKGZ1bmN0aW9uKCl7JChcIi5zY3JvbGxcIikuY2xpY2soZnVuY3Rpb24oKXskKFwiaHRtbCxib2R5XCIpLmFuaW1hdGUoe3Njcm9sbFRvcDokKFwiI3RvcFwiKS5vZmZzZXQoKS50b3B9LFwiMTAwMFwiKTtyZXR1cm4gZmFsc2V9KX0pOyIsIiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcclxuICAgICQoXCIubGFuZGluZy1zdWItcGFnZVwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBsZXQgcXVvdGUgPSBxdW90ZXNbTWF0aC5mbG9vcigoTWF0aC5yYW5kb20oKSAqIChxdW90ZXMubGVuZ3RoLTEpKSldO1xyXG5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIllvdXIgUXVvdGU6XCIsIHF1b3RlLnF1b3RlLCBcIkF1dGhvcjpcIiwgcXVvdGUuYXV0aG9yKTtcclxuICAgIH0pO1xyXG59KTsiXX0=