audio-mixer-ui 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,20 +1,20 @@
1
- (function($,E){typeof exports=="object"&&typeof module<"u"?E(exports,require("vue"),require("pinia")):typeof define=="function"&&define.amd?define(["exports","vue","pinia"],E):($=typeof globalThis<"u"?globalThis:$||self,E($.AudioMixerUI={},$.Vue,$.Pinia))})(this,function($,E,ee){"use strict";var ws=Object.defineProperty;var Fs=($,E,ee)=>E in $?ws($,E,{enumerable:!0,configurable:!0,writable:!0,value:ee}):$[E]=ee;var h=($,E,ee)=>Fs($,typeof E!="symbol"?E+"":E,ee);var YA,_A;var zt=function(){if(typeof Map<"u")return Map;function n(A,e){var t=-1;return A.some(function(i,a){return i[0]===e?(t=a,!0):!1}),t}return function(){function A(){this.__entries__=[]}return Object.defineProperty(A.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),A.prototype.get=function(e){var t=n(this.__entries__,e),i=this.__entries__[t];return i&&i[1]},A.prototype.set=function(e,t){var i=n(this.__entries__,e);~i?this.__entries__[i][1]=t:this.__entries__.push([e,t])},A.prototype.delete=function(e){var t=this.__entries__,i=n(t,e);~i&&t.splice(i,1)},A.prototype.has=function(e){return!!~n(this.__entries__,e)},A.prototype.clear=function(){this.__entries__.splice(0)},A.prototype.forEach=function(e,t){t===void 0&&(t=null);for(var i=0,a=this.__entries__;i<a.length;i++){var s=a[i];e.call(t,s[1],s[0])}},A}()}(),ht=typeof window<"u"&&typeof document<"u"&&window.document===document,Ze=function(){return typeof global<"u"&&global.Math===Math?global:typeof self<"u"&&self.Math===Math?self:typeof window<"u"&&window.Math===Math?window:Function("return this")()}(),ai=function(){return typeof requestAnimationFrame=="function"?requestAnimationFrame.bind(Ze):function(n){return setTimeout(function(){return n(Date.now())},1e3/60)}}(),si=2;function oi(n,A){var e=!1,t=!1,i=0;function a(){e&&(e=!1,n()),t&&g()}function s(){ai(a)}function g(){var I=Date.now();if(e){if(I-i<si)return;t=!0}else e=!0,t=!1,setTimeout(s,A);i=I}return g}var ri=20,Ii=["top","right","bottom","left","width","height","size","weight"],gi=typeof MutationObserver<"u",Ei=function(){function n(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=oi(this.refresh.bind(this),ri)}return n.prototype.addObserver=function(A){~this.observers_.indexOf(A)||this.observers_.push(A),this.connected_||this.connect_()},n.prototype.removeObserver=function(A){var e=this.observers_,t=e.indexOf(A);~t&&e.splice(t,1),!e.length&&this.connected_&&this.disconnect_()},n.prototype.refresh=function(){var A=this.updateObservers_();A&&this.refresh()},n.prototype.updateObservers_=function(){var A=this.observers_.filter(function(e){return e.gatherActive(),e.hasActive()});return A.forEach(function(e){return e.broadcastActive()}),A.length>0},n.prototype.connect_=function(){!ht||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),gi?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},n.prototype.disconnect_=function(){!ht||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},n.prototype.onTransitionEnd_=function(A){var e=A.propertyName,t=e===void 0?"":e,i=Ii.some(function(a){return!!~t.indexOf(a)});i&&this.refresh()},n.getInstance=function(){return this.instance_||(this.instance_=new n),this.instance_},n.instance_=null,n}(),_t=function(n,A){for(var e=0,t=Object.keys(A);e<t.length;e++){var i=t[e];Object.defineProperty(n,i,{value:A[i],enumerable:!1,writable:!1,configurable:!0})}return n},me=function(n){var A=n&&n.ownerDocument&&n.ownerDocument.defaultView;return A||Ze},$t=Xe(0,0,0,0);function We(n){return parseFloat(n)||0}function An(n){for(var A=[],e=1;e<arguments.length;e++)A[e-1]=arguments[e];return A.reduce(function(t,i){var a=n["border-"+i+"-width"];return t+We(a)},0)}function li(n){for(var A=["top","right","bottom","left"],e={},t=0,i=A;t<i.length;t++){var a=i[t],s=n["padding-"+a];e[a]=We(s)}return e}function Bi(n){var A=n.getBBox();return Xe(0,0,A.width,A.height)}function Ci(n){var A=n.clientWidth,e=n.clientHeight;if(!A&&!e)return $t;var t=me(n).getComputedStyle(n),i=li(t),a=i.left+i.right,s=i.top+i.bottom,g=We(t.width),I=We(t.height);if(t.boxSizing==="border-box"&&(Math.round(g+a)!==A&&(g-=An(t,"left","right")+a),Math.round(I+s)!==e&&(I-=An(t,"top","bottom")+s)),!ci(n)){var o=Math.round(g+a)-A,B=Math.round(I+s)-e;Math.abs(o)!==1&&(g-=o),Math.abs(B)!==1&&(I-=B)}return Xe(i.left,i.top,g,I)}var hi=function(){return typeof SVGGraphicsElement<"u"?function(n){return n instanceof me(n).SVGGraphicsElement}:function(n){return n instanceof me(n).SVGElement&&typeof n.getBBox=="function"}}();function ci(n){return n===me(n).document.documentElement}function Qi(n){return ht?hi(n)?Bi(n):Ci(n):$t}function di(n){var A=n.x,e=n.y,t=n.width,i=n.height,a=typeof DOMRectReadOnly<"u"?DOMRectReadOnly:Object,s=Object.create(a.prototype);return _t(s,{x:A,y:e,width:t,height:i,top:e,right:A+t,bottom:i+e,left:A}),s}function Xe(n,A,e,t){return{x:n,y:A,width:e,height:t}}var ui=function(){function n(A){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=Xe(0,0,0,0),this.target=A}return n.prototype.isActive=function(){var A=Qi(this.target);return this.contentRect_=A,A.width!==this.broadcastWidth||A.height!==this.broadcastHeight},n.prototype.broadcastRect=function(){var A=this.contentRect_;return this.broadcastWidth=A.width,this.broadcastHeight=A.height,A},n}(),mi=function(){function n(A,e){var t=di(e);_t(this,{target:A,contentRect:t})}return n}(),fi=function(){function n(A,e,t){if(this.activeObservations_=[],this.observations_=new zt,typeof A!="function")throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=A,this.controller_=e,this.callbackCtx_=t}return n.prototype.observe=function(A){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(A instanceof me(A).Element))throw new TypeError('parameter 1 is not of type "Element".');var e=this.observations_;e.has(A)||(e.set(A,new ui(A)),this.controller_.addObserver(this),this.controller_.refresh())}},n.prototype.unobserve=function(A){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(A instanceof me(A).Element))throw new TypeError('parameter 1 is not of type "Element".');var e=this.observations_;e.has(A)&&(e.delete(A),e.size||this.controller_.removeObserver(this))}},n.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},n.prototype.gatherActive=function(){var A=this;this.clearActive(),this.observations_.forEach(function(e){e.isActive()&&A.activeObservations_.push(e)})},n.prototype.broadcastActive=function(){if(this.hasActive()){var A=this.callbackCtx_,e=this.activeObservations_.map(function(t){return new mi(t.target,t.broadcastRect())});this.callback_.call(A,e,A),this.clearActive()}},n.prototype.clearActive=function(){this.activeObservations_.splice(0)},n.prototype.hasActive=function(){return this.activeObservations_.length>0},n}(),en=typeof WeakMap<"u"?new WeakMap:new zt,tn=function(){function n(A){if(!(this instanceof n))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var e=Ei.getInstance(),t=new fi(A,e,this);en.set(this,t)}return n}();["observe","unobserve","disconnect"].forEach(function(n){tn.prototype[n]=function(){var A;return(A=en.get(this))[n].apply(A,arguments)}});var pi=function(){return typeof Ze.ResizeObserver<"u"?Ze.ResizeObserver:tn}();function te(n){const A=E.ref(0),e=E.ref(0);let t=null;const i=()=>{t&&(t.disconnect(),t=null)},a=()=>{i();const s=E.unref(n);if(!s)return;t=new pi(I=>{const o=I[0];o&&(A.value=o.contentRect.width,e.value=o.contentRect.height)}),t.observe(s);const g=s.getBoundingClientRect();A.value=g.width,e.value=g.height};return E.watch(()=>E.unref(n),a,{immediate:!0}),E.onScopeDispose(i),{width:E.readonly(A),height:E.readonly(e)}}const VA=(n,A)=>{const e=n.__vccOpts||n;for(const[t,i]of A)e[t]=i;return e},yi={key:0,class:"level"},Ue=VA({__name:"AudioSlider",props:E.mergeModels({min:{type:Number,default:0},max:{type:Number,default:1},step:{type:Number,default:.01},colour:{type:String,default:"grey"},style:{type:String,default:"volume"},thumbLength:{type:Number,default:1},showLevel:{type:Boolean,default:!1},level:{type:Number,default:.5}},{value:{default:.75},valueModifiers:{}}),emits:["update:value"],setup(n){E.useCssVars(Y=>({"083f3e45":c.value,d4833630:Q.value,d6eaa016:F.value,12894835:r.value,"3e9a6a44":m.value}));const A=n,e=E.useTemplateRef("root"),{width:t,height:i}=te(e),a=E.computed(()=>Math.min(t.value,i.value)),s=E.computed(()=>Math.max(t.value,i.value)),g=E.computed(()=>t.value>i.value),I=E.computed(()=>g.value?"h-slide":"v-slide"),o=E.useModel(n,"value"),B=E.computed(()=>a.value*.8),C=E.computed(()=>a.value*A.thumbLength*.8),Q=E.computed(()=>(g.value?C:B).value+"px"),c=E.computed(()=>(g.value?B:C).value+"px"),r=E.computed(()=>a.value*.1+"px"),m=E.computed(()=>(s.value-C.value)*(o.value-A.min)/(A.max-A.min)+"px"),F=E.computed(()=>g.value?"90deg":"0deg"),k=E.ref(!1),R=E.ref(0),b=Y=>{if(!e.value)return o.value;const j=e.value.getBoundingClientRect(),H=Y.touches?Y.touches[0].clientX:Y.clientX,K=Y.touches?Y.touches[0].clientY:Y.clientY;let W;if(g.value){const D=H-j.left-B.value/2,x=j.width-B.value;W=Math.max(0,Math.min(1,D/x))}else{const D=j.bottom-K-B.value/2,x=j.height-B.value;W=Math.max(0,Math.min(1,D/x))}const M=A.min+W*(A.max-A.min);return A.step>0?Math.round(M/A.step)*A.step:M},q=Y=>{Y.preventDefault(),k.value=!0,R.value=o.value,o.value=b(Y),e.value&&e.value.setPointerCapture&&e.value.setPointerCapture(Y.pointerId),document.addEventListener("mousemove",w),document.addEventListener("mouseup",N)},w=Y=>{k.value&&(Y.preventDefault(),o.value=b(Y))},N=Y=>{if(k.value){if(Y.preventDefault(),k.value=!1,e.value&&e.value.releasePointerCapture)try{e.value.releasePointerCapture(Y.pointerId)}catch{}document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",N)}},P=Y=>{Y.preventDefault(),Y.touches.length===1&&(k.value=!0,R.value=o.value,o.value=b(Y),document.addEventListener("touchmove",cA,{passive:!1}),document.addEventListener("touchend",CA),document.addEventListener("touchcancel",CA))},cA=Y=>{k.value&&(Y.preventDefault(),Y.touches.length===1&&(o.value=b(Y)))},CA=Y=>{k.value&&(Y.preventDefault(),k.value=!1,document.removeEventListener("touchmove",cA),document.removeEventListener("touchend",CA),document.removeEventListener("touchcancel",CA))},IA=Y=>Math.min(1,Math.max(0,A.level*10-Y+1));return(Y,j)=>(E.openBlock(),E.createElementBlock("div",{class:E.normalizeClass(I.value),ref_key:"root",ref:e,onMousedown:q,onTouchstart:P,style:{userSelect:"none",touchAction:"none"}},[j[0]||(j[0]=E.createElementVNode("div",{class:"track"},null,-1)),n.showLevel?(E.openBlock(),E.createElementBlock("div",yi,[(E.openBlock(),E.createElementBlock(E.Fragment,null,E.renderList(10,H=>E.createElementVNode("div",{class:E.normalizeClass(["led","led"+H])},[E.createElementVNode("div",{class:"on",style:E.normalizeStyle({opacity:IA(H)})},null,4)],2)),64))])):E.createCommentVNode("",!0),E.createElementVNode("div",{class:E.normalizeClass(["thumb",{dragging:k.value,[n.colour]:!0,[n.style]:!0}])},null,2)],34))}},[["__scopeId","data-v-ab2e7b69"]]),ct=VA({__name:"TitleText",props:{align:{type:String,default:"left"}},setup(n){E.useCssVars(g=>({"5fddb56d":s.value}));const A=E.useTemplateRef("el"),{width:e,height:t}=te(A),i=E.computed(()=>Math.min(e.value,t.value)),a=E.computed(()=>e.value>t.value?"h-text":"v-text"),s=E.computed(()=>i.value*3/4+"px");return(g,I)=>(E.openBlock(),E.createElementBlock("div",{ref_key:"el",ref:A,class:"outer"},[E.createElementVNode("div",{class:E.normalizeClass({[a.value]:!0,[n.align]:!0})},[E.renderSlot(g.$slots,"default",{},void 0,!0)],2)],512))}},[["__scopeId","data-v-3ce29e77"]]),nn=VA({__name:"TriState",props:{mute:{default:!1},muteModifiers:{},solo:{default:!1},soloModifiers:{}},emits:["update:mute","update:solo"],setup(n){const A=E.useModel(n,"mute"),e=E.useModel(n,"solo"),t=E.useTemplateRef("outer"),{width:i,height:a}=te(t),s=E.computed(()=>i.value>a.value*1.9);function g(){A.value=!A.value,e.value=!1}function I(){e.value=!e.value,A.value=!1}return(o,B)=>(E.openBlock(),E.createElementBlock("div",{class:"outer",ref_key:"outer",ref:t},[E.createElementVNode("div",{class:E.normalizeClass(["solo",{on:e.value}]),onClick:I},null,2),E.createElementVNode("div",{class:"s-label",onClick:I},E.toDisplayString(s.value?"SOLO":"S"),1),E.createElementVNode("div",{class:E.normalizeClass(["mute",{on:A.value}]),onClick:g},null,2),E.createElementVNode("div",{class:"m-label",onClick:g},E.toDisplayString(s.value?"MUTE":"M"),1)],512))}},[["__scopeId","data-v-143eade0"]]),je={enabled:!1,features:{beatAnimation:!0,randomLevelIndicators:!0,debugMode:!1}},Si=()=>je.enabled,Qt=n=>je.enabled&&je.features[n],ne=ee.defineStore("audioState",{state:()=>({isPlaying:!1,currentTime:0,playbackSpeed:1,currentBar:1,currentBeat:1,currentRepeat:0,masterVolume:.75,metronomeVolume:.7,partVolumes:{},partMuted:{},partSolo:{},isLeadInActive:!1,isStartingNotesActive:!1,leadInBars:1,metronomeEnabled:!1,leadInEnabled:!0,isLoaded:!1}),getters:{formattedTime:n=>{const A=Math.floor(n.currentTime/60),e=Math.floor(n.currentTime%60);return`${A}:${e.toString().padStart(2,"0")}`},getPartVolume:n=>A=>n.partVolumes[A]??.75,isPartMuted:n=>A=>n.partMuted[A]??!1,isPartSolo:n=>A=>n.partSolo[A]??!1,isAnySolo:n=>Object.values(n.partSolo).some(A=>A===!0),currentPosition:n=>{let A=`${n.currentBar}.${n.currentBeat}`;return n.currentRepeat>0&&(A+=` (R${n.currentRepeat})`),A}},actions:{setPlaybackState(n){this.isPlaying=n},setCurrentTime(n){this.currentTime=n},setPlaybackSpeed(n){this.playbackSpeed=n},setCurrentBar(n,A=1,e=0){typeof n=="number"&&(this.currentBar=n),typeof A=="number"&&(this.currentBeat=A),typeof e=="number"&&(this.currentRepeat=e)},setMasterVolume(n){this.masterVolume=Math.max(0,Math.min(1,n))},setMetronomeVolume(n){this.metronomeVolume=Math.max(0,Math.min(1,n))},setPartVolume(n,A){this.partVolumes[n]=Math.max(0,Math.min(1,A))},setPartMuted(n,A){this.partMuted[n]=A},setPartSolo(n,A){this.partSolo[n]=A},setLeadInActive(n,A=1){this.isLeadInActive=n,this.leadInBars=A},setStartingNotesActive(n){this.isStartingNotesActive=n},setMetronomeEnabled(n){this.metronomeEnabled=n},setLeadInEnabled(n){this.leadInEnabled=n},initializeParts(n){this.partVolumes={},this.partMuted={},this.partSolo={},n.forEach(A=>{this.partVolumes[A.name]=A.volume||.75,this.partMuted[A.name]=!1,this.partSolo[A.name]=!1})},setLoaded(n){this.isLoaded=n}}}),fe=ee.defineStore("musicData",{state:()=>({beats:[],practiceMarks:{},parts:[],title:"",totalDuration:0,maxBar:0,timeSignature:4,baseTempo:80}),getters:{practiceMarkLetters:n=>Object.keys(n.practiceMarks).sort(),getBarForMark:n=>A=>n.practiceMarks[A],allBars:n=>{const A=new Set;return n.beats.forEach(e=>{e.beat===1&&A.add(e.bar)}),Array.from(A).sort((e,t)=>e-t)},hasRepeats:n=>A=>n.beats.some(e=>e.bar===A&&e.repeat>0),getRepeatCountForBar:n=>A=>{const e=new Set;return n.beats.forEach(t=>{t.bar===A&&e.add(t.repeat)}),e.size}},actions:{loadMusicData(n){this.title=n.title||"Untitled",this.beats=n.beats||[],this.practiceMarks=n.practiceMarks||n.marks||{},this.parts=(n.parts||[]).map(A=>({...A,solo:A.solo||!1,mute:A.mute||!1})),this.calculateDuration(),this.calculateMaxBar(),this.extractTimeSignature()},calculateDuration(){this.beats.length>0&&(this.totalDuration=Math.max(...this.beats.map(n=>n.time)))},calculateMaxBar(){this.beats.length>0&&(this.maxBar=Math.max(...this.beats.map(n=>n.bar)))},extractTimeSignature(){this.beats.length>0&&this.beats[0].timeSig&&(this.timeSignature=this.beats[0].timeSig),this.beats.length>0&&this.beats[0].tempo&&(this.baseTempo=this.beats[0].tempo)},setPracticeMark(n,A){this.practiceMarks[n]=A},removePracticeMark(n){delete this.practiceMarks[n]},updateBeats(n){console.log("Updating beats in music data store"),this.beats=n,this.calculateDuration(),this.calculateMaxBar(),this.extractTimeSignature()},setTotalDuration(n){console.log("Setting total duration in music data store to:",n),this.totalDuration=n},isValidBar(n,A=0){return this.beats.some(e=>e.bar===n&&e.repeat===A)},setParts(n){this.parts=n.map(A=>({name:A.name,volume:A.volume||.75,solo:A.solo||!1,mute:A.mute||!1}))}}}),an=ee.defineStore("playbackState",{state:()=>({transportState:"stopped",autoPlay:!1,loopEnabled:!1,loopStart:1,loopEnd:null,leadInEnabled:!0,leadInBars:1,startingNotesEnabled:!0,startingNotesSequential:!0,metronomeEnabled:!1,metronomeVolume:.5,showTransportControls:!0,showPartControls:!0,showNavigationControls:!0,lastBarPosition:1,lastPracticeMarkUsed:null}),getters:{isPlaying:n=>n.transportState==="playing",isPaused:n=>n.transportState==="paused",isStopped:n=>n.transportState==="stopped",isLoopConfigured:n=>n.loopEnabled&&n.loopStart&&n.loopEnd&&n.loopEnd>n.loopStart,loopRange:n=>!n.loopEnabled||!n.loopStart||!n.loopEnd?null:`${n.loopStart}-${n.loopEnd}`},actions:{setTransportState(n){["stopped","playing","paused"].includes(n)&&(this.transportState=n)},play(){this.setTransportState("playing")},pause(){this.setTransportState("paused")},stop(){this.setTransportState("stopped")},setAutoPlay(n){this.autoPlay=n},setLoop(n,A=null,e=null){this.loopEnabled=n,A!==null&&(this.loopStart=A),e!==null&&(this.loopEnd=e)},setLoopStart(n){this.loopStart=n,this.loopEnd&&this.loopEnd<=n&&(this.loopEnd=n+4)},setLoopEnd(n){this.loopEnd=n,this.loopStart&&this.loopStart>=n&&(this.loopStart=Math.max(1,n-4))},setLeadInEnabled(n){this.leadInEnabled=n},setLeadInBars(n){this.leadInBars=Math.max(1,Math.min(4,n))},setStartingNotesEnabled(n){this.startingNotesEnabled=n},setStartingNotesSequential(n){this.startingNotesSequential=n},setMetronomeEnabled(n){this.metronomeEnabled=n},setMetronomeVolume(n){this.metronomeVolume=Math.max(0,Math.min(1,n))},setTransportControlsVisible(n){this.showTransportControls=n},setPartControlsVisible(n){this.showPartControls=n},setNavigationControlsVisible(n){this.showNavigationControls=n},updateLastBarPosition(n){this.lastBarPosition=n},updateLastPracticeMarkUsed(n){this.lastPracticeMarkUsed=n},resetToDefaults(){this.transportState="stopped",this.autoPlay=!1,this.loopEnabled=!1,this.loopStart=1,this.loopEnd=null,this.leadInEnabled=!0,this.leadInBars=1,this.startingNotesEnabled=!0,this.startingNotesSequential=!0,this.metronomeEnabled=!1,this.metronomeVolume=.5}}});function ze(n){return{all:n=n||new Map,on:function(A,e){var t=n.get(A);t?t.push(e):n.set(A,[e])},off:function(A,e){var t=n.get(A);t&&(e?t.splice(t.indexOf(e)>>>0,1):n.set(A,[]))},emit:function(A,e){var t=n.get(A);t&&t.slice().map(function(i){i(e)}),(t=n.get("*"))&&t.slice().map(function(i){i(A,e)})}}}const qi="data:audio/mpeg;base64,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",ki="data:audio/mpeg;base64,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qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//tkxPIADij5M+wwzYmAm6X9hJmwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//s0xPaAClDTI6OxLwCwkeLoEJkoqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//sUxNoDwAAB/gAAACAAADSAAAAEqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq";class dt{constructor(A,e={}){if(new.target===dt)throw new Error("AudioEngine is abstract and cannot be instantiated directly");this.audioContext=A,this.options=e,this.isInitialized=!1,this.channels=new WeakMap,this.activeChannels=new Set}async initialize(A){throw new Error("initialize() must be implemented by subclass")}createChannel(A,e={}){throw new Error("createChannel() must be implemented by subclass")}allSoundsOff(){throw new Error("allSoundsOff() must be implemented by subclass")}async playMetronomeTick(A,e,t){try{await this._ensureMetronomeBuffersLoaded();const i=e?this.accentTickBuffer:this.regularTickBuffer;if(!i){console.warn("Metronome buffer not available");return}const a=this.audioContext.createBufferSource();a.buffer=i;const s=this.audioContext.createGain();s.gain.value=t,a.connect(s);const g=this.getMetronomeOutput();g?s.connect(g):s.connect(this.audioContext.destination);const I=Math.max(A,this.audioContext.currentTime);a.start(I)}catch(i){console.warn("Buffer metronome playback failed:",i)}}getMetronomeOutput(){return this._metronomeOutput||(this._metronomeOutput=this.audioContext.createGain(),this._metronomeOutput.gain.value=1,this._metronomeOutput.connect(this.audioContext.destination)),this._metronomeOutput}async _ensureMetronomeBuffersLoaded(){if(!(this.regularTickBuffer&&this.accentTickBuffer)){try{if(typeof fetch<"u"){const[A,e]=await Promise.all([fetch(qi),fetch(ki)]),[t,i]=await Promise.all([A.arrayBuffer(),e.arrayBuffer()]),[a,s]=await Promise.all([this.audioContext.decodeAudioData(t),this.audioContext.decodeAudioData(i)]);this.regularTickBuffer=a,this.accentTickBuffer=s;return}}catch(A){console.warn("Failed to load metronome sounds:",A)}this.regularTickBuffer=this.audioContext.createBuffer(2,1024,this.audioContext.sampleRate),this.accentTickBuffer=this.audioContext.createBuffer(2,1024,this.audioContext.sampleRate)}}getActiveChannels(){return Array.from(this.activeChannels)}destroy(){this.allSoundsOff(),this._metronomeOutput&&(this._metronomeOutput.disconnect(),this._metronomeOutput=null),this.regularTickBuffer=null,this.accentTickBuffer=null,this.activeChannels.clear(),this.isInitialized=!1}_validateInitialized(){if(!this.isInitialized)throw new Error("AudioEngine not initialized. Call initialize() first.")}_registerChannel(A){this.activeChannels.add(A)}_unregisterChannel(A){this.activeChannels.delete(A),this.channels.delete(A)}}class ut{constructor(A,e,t={}){if(new.target===ut)throw new Error("ChannelHandle is abstract and cannot be instantiated directly");this.engine=A,this.partId=e,this.options={initialVolume:1,...t},this.isDestroyed=!1,this.noteRefCounts=new Map,this.scheduledEvents=new Map,this.activeNotes=new Set}getOutputNode(){throw new Error("getOutputNode() must be implemented by subclass")}noteOn(A,e){this._validateActive();const t=this.noteRefCounts.get(A)||0;this.noteRefCounts.set(A,t+1),this._actualNoteOn(A,e),t===0&&this.activeNotes.add(A)}noteOff(A){this._validateActive();const e=this.noteRefCounts.get(A)||0;if(e<=0)return;const t=e-1;this.noteRefCounts.set(A,t),t===0&&(this._actualNoteOff(A),this.activeNotes.delete(A),this.noteRefCounts.delete(A))}playNote(A,e,t,i){this._validateActive();const a=this.engine.audioContext.currentTime,s=`${this.partId}_${A}_${e}_${Date.now()}`;let g=A,I=i;if(A<a){const c=a-A;g=a,I=Math.max(0,i-c)}if(I<=0)return s;const o=Math.max(0,(g-a)*1e3),B=setTimeout(()=>{this.noteOn(e,t),this.scheduledEvents.delete(`${s}_on`)},o),C=o+I*1e3,Q=setTimeout(()=>{this.noteOff(e),this.scheduledEvents.delete(`${s}_off`)},C);return this.scheduledEvents.set(`${s}_on`,B),this.scheduledEvents.set(`${s}_off`,Q),s}playPreviewNote(A,e={}){this._validateActive();const t=e.startTime??this.engine.audioContext.currentTime+.01,i=e.duration??.5,a=e.velocity??100;let s=null;e.instrument!==void 0&&(s=this.getInstrument(),this.setInstrument(e.instrument)),this.playNote(t,A,a,i),s!==null&&setTimeout(()=>{this.isDestroyed||this.setInstrument(s)},(i+.1)*1e3)}allNotesOff(){this._validateActive(),this.scheduledEvents.forEach(A=>{clearTimeout(A)}),this.scheduledEvents.clear(),this.activeNotes.forEach(A=>{this._actualNoteOff(A)}),this.noteRefCounts.clear(),this.activeNotes.clear()}_actualNoteOn(A,e){throw new Error("_actualNoteOn() must be implemented by subclass")}_actualNoteOff(A){throw new Error("_actualNoteOff() must be implemented by subclass")}async setInstrument(A){throw new Error("setInstrument() must be implemented by subclass")}getInstrument(){throw new Error("getInstrument() must be implemented by subclass")}setVolume(A){throw new Error("setVolume() must be implemented by subclass")}getVolume(){throw new Error("getVolume() must be implemented by subclass")}getPartId(){return this.partId}isActive(){return!this.isDestroyed&&this.engine.isInitialized&&this.engine.activeChannels.has(this)}destroy(){if(!this.isDestroyed){this.allNotesOff();const A=this.getOutputNode();A&&A.disconnect(),this.noteRefCounts.clear(),this.scheduledEvents.clear(),this.activeNotes.clear(),this.engine._unregisterChannel(this),this.isDestroyed=!0}}_validateActive(){if(this.isDestroyed)throw new Error("Channel has been destroyed");if(!this.engine.isInitialized)throw new Error("AudioEngine is not initialized")}}const sn={piano:0,bright_piano:1,electric_grand:2,honky_tonk:3,electric_piano_1:4,electric_piano_2:5,harpsichord:6,clavinet:7,celesta:8,glockenspiel:9,music_box:10,vibraphone:11,marimba:12,xylophone:13,tubular_bells:14,dulcimer:15,drawbar_organ:16,percussive_organ:17,rock_organ:18,church_organ:19,reed_organ:20,accordion:21,harmonica:22,tango_accordion:23,organ:19,nylon_guitar:24,steel_guitar:25,electric_guitar_jazz:26,electric_guitar_clean:27,electric_guitar_muted:28,overdriven_guitar:29,distortion_guitar:30,guitar_harmonics:31,guitar:24,acoustic_bass:32,electric_bass_finger:33,electric_bass_pick:34,fretless_bass:35,slap_bass_1:36,slap_bass_2:37,synth_bass_1:38,synth_bass_2:39,bass:32,violin:40,viola:41,cello:42,contrabass:43,tremolo_strings:44,pizzicato_strings:45,orchestral_harp:46,timpani:47,strings:48,strings_ensemble:48,slow_strings:49,synth_strings_1:50,synth_strings_2:51,choir_aahs:52,voice_oohs:53,synth_voice:54,orchestra_hit:55,trumpet:56,trombone:57,tuba:58,muted_trumpet:59,french_horn:60,brass_section:61,synth_brass_1:62,synth_brass_2:63,soprano_sax:64,alto_sax:65,tenor_sax:66,baritone_sax:67,oboe:68,english_horn:69,bassoon:70,clarinet:71,saxophone:64,piccolo:72,flute:73,recorder:74,pan_flute:75,blown_bottle:76,shakuhachi:77,whistle:78,ocarina:79,lead_1_square:80,lead_2_sawtooth:81,lead_3_calliope:82,lead_4_chiff:83,lead_5_charang:84,lead_6_voice:85,lead_7_fifths:86,lead_8_bass:87,pad_1_new_age:88,pad_2_warm:89,pad_3_polysynth:90,pad_4_choir:91,pad_5_bowed:92,pad_6_metallic:93,pad_7_halo:94,pad_8_sweep:95,fx_1_rain:96,fx_2_soundtrack:97,fx_3_crystal:98,fx_4_atmosphere:99,fx_5_brightness:100,fx_6_goblins:101,fx_7_echoes:102,fx_8_sci_fi:103,sitar:104,banjo:105,shamisen:106,koto:107,kalimba:108,bag_pipe:109,fiddle:110,shanai:111,tinkle_bell:112,agogo:113,steel_drums:114,woodblock:115,taiko_drum:116,melodic_tom:117,synth_drum:118,reverse_cymbal:119,guitar_fret_noise:120,breath_noise:121,seashore:122,bird_tweet:123,telephone_ring:124,helicopter:125,applause:126,gunshot:127},wi=Object.entries(sn).reduce((n,[A,e])=>(n[e]=A,n),{});class Fi{static getInstrumentProgram(A){if(typeof A=="number")return A;const e=sn[A.toLowerCase()];return e!==void 0?e:0}static getProgramName(A){return wi[A]||`Program ${A}`}static generateNoteId(A,e,t){return`${A}_${e}_${Math.round(t)}`}}class Ri extends ut{constructor(A,e,t,i={}){super(A,e,i),this.midiChannel=t,this.currentVolume=i.initialVolume||1,this.currentInstrument=i.instrument||"piano",this.outputGain=null,this._setupOutputNode(),this.setVolume(this.currentVolume),i.instrument&&this.setInstrument(i.instrument)}getOutputNode(){return this.outputGain}_actualNoteOn(A,e){const t=this.engine._getSynthesizer();if(t&&t.noteOn){const i=Math.round(e*this.currentVolume);t.noteOn(this.midiChannel,A,i)}}_actualNoteOff(A){const e=this.engine._getSynthesizer();e&&e.noteOff&&e.noteOff(this.midiChannel,A)}async setInstrument(A){this._validateActive();const e=Fi.getInstrumentProgram(A);this.currentInstrument=A;const t=this.engine._getSynthesizer();t&&t.programChange?t.programChange(this.midiChannel,e):console.warn("Cannot set instrument: synthesizer not available or no programChange method")}getInstrument(){return this.currentInstrument}setVolume(A){this._validateActive(),A=Math.max(0,Math.min(1,A)),this.currentVolume=A;const e=Math.round(A*127),t=this.engine._getSynthesizer();t&&t.controllerChange&&t.controllerChange(this.midiChannel,7,e)}getVolume(){return this.currentVolume}getMidiChannel(){return this.midiChannel}getActiveNoteCount(){return this.activeNotes.size}playNote(A,e,t,i){this._validateActive();const a=`${this.partId}_${A}_${e}_${Date.now()}`,s=this.engine._getSynthesizer();if(s&&s.post){const g=Math.round(t*this.currentVolume);s.post({channelNumber:this.midiChannel,type:"midiMessage",data:{messageData:[144|this.midiChannel,e,g],channelOffset:0,force:!1,options:{time:A}}}),s.post({channelNumber:this.midiChannel,type:"midiMessage",data:{messageData:[128|this.midiChannel,e,0],channelOffset:0,force:!1,options:{time:A+i}}})}else return super.playNote(A,e,t,i);return a}allNotesOff(){this._validateActive();const A=this.engine._getSynthesizer();A&&A.post?A.post({channelNumber:this.midiChannel,type:"midiMessage",data:{messageData:[176|this.midiChannel,123,0],channelOffset:0,force:!1,options:{time:this.engine.audioContext.currentTime}}}):super.allNotesOff()}destroy(){if(!this.isDestroyed){const A=this.engine._getIndividualOutput(this.midiChannel);this.outputGain&&this.outputGain!==A&&this.outputGain.disconnect(),this.outputGain=null}super.destroy()}_setupOutputNode(){const A=this.engine._getIndividualOutput(this.midiChannel);A?this.outputGain=A:(console.warn(`No individual output available for MIDI channel ${this.midiChannel}, using fallback`),this.outputGain=this.engine.audioContext.createGain(),this.outputGain.gain.value=this.currentVolume)}}class Mi extends dt{constructor(A,e={}){super(A,e),this.synthesizer=null,this.soundfont=null,this.channelCounter=0,this.partToMidiChannel=new Map,this.midiChannelToPart=new Map,this.individualOutputs=[]}async initialize(A){const{WorkletSynthesizer:e}=await Promise.resolve().then(()=>qs);let t;if(typeof A=="string")t=await this._loadSoundfontFromPath(A);else if(A instanceof ArrayBuffer)t=A;else throw new Error("Invalid soundfont data type. Expected string path or ArrayBuffer.");await this._loadAudioWorkletSafely(),this._setupIndividualOutputs(),this.dummyTarget=this.audioContext.createGain(),await new Promise(i=>setTimeout(i,50)),this.synthesizer=new e(this.audioContext),await this.synthesizer.soundBankManager.addSoundBank(t,"main"),await this.synthesizer.isReady,this._connectIndividualOutputs(),this._initializeMetronomeChannel(),this.isInitialized=!0}createChannel(A,e={}){if(this._validateInitialized(),this.partToMidiChannel.has(A))throw new Error(`Channel for part '${A}' already exists`);const t=this.channelCounter;if(t>=15)throw new Error("Maximum number of musical part channels (15) exceeded. Channel 15 is reserved for metronome.");this.channelCounter++,this.partToMidiChannel.set(A,t),this.midiChannelToPart.set(t,A);const i=new Ri(this,A,t,e);return this._registerChannel(i),e.instrument&&i.setInstrument(e.instrument),i}allSoundsOff(){this.synthesizer&&this.midiChannelToPart.forEach((A,e)=>{this.synthesizer.controllerChange&&this.synthesizer.controllerChange(e,120,0)})}clearAllChannels(){this.allSoundsOff(),this.partToMidiChannel.clear(),this.midiChannelToPart.clear(),this.channelCounter=0}destroy(){this.allSoundsOff(),this.synthesizer&&typeof this.synthesizer.disconnect=="function"&&this.synthesizer.disconnect(),this.individualOutputs.forEach(A=>{A&&A.disconnect&&A.disconnect()}),this.individualOutputs=[],this.dummyTarget&&(this.dummyTarget.disconnect(),this.dummyTarget=null),this.partToMidiChannel.clear(),this.midiChannelToPart.clear(),this.channelCounter=0,super.destroy(),this.synthesizer=null,this.soundfont=null}getMidiChannelForPart(A){return this.partToMidiChannel.has(A)?this.partToMidiChannel.get(A):null}_getSynthesizer(){return this.synthesizer}_getIndividualOutput(A){return A>=0&&A<this.individualOutputs.length?this.individualOutputs[A]:null}getMetronomeChannel(){const A=this._getIndividualOutput(15);return console.log("Metronome channel 15 output:",A?"Available":"NULL",`(total outputs: ${this.individualOutputs.length})`),A}_setupIndividualOutputs(){this.individualOutputs=[];for(let A=0;A<16;A++){const e=this.audioContext.createGain();e.gain.value=1,this.individualOutputs.push(e)}}_connectIndividualOutputs(){try{this.synthesizer&&this.synthesizer.connectIndividualOutputs?this.synthesizer.connectIndividualOutputs(this.individualOutputs):(console.warn("Synthesizer does not support individual outputs, using master output only"),this.synthesizer&&this.synthesizer.connect&&this.audioContext.destination&&this.synthesizer.connect(this.audioContext.destination))}catch(A){console.warn("Failed to connect individual outputs:",A.message),console.warn("Falling back to master output routing")}}async _loadSoundfontFromPath(A){const e=await fetch(A);if(!e.ok)throw new Error(`Failed to load soundfont: ${e.status} ${e.statusText}`);return await e.arrayBuffer()}async _loadAudioWorkletSafely(){const A="/node_modules/spessasynth_lib/dist/spessasynth_processor.min.js";for(let t=1;t<=5;t++)try{await this.audioContext.audioWorklet.addModule(A);return}catch(i){if(console.warn(`AudioWorklet loading failed (attempt ${t}/5):`,i.message),t===5)throw new Error(`AudioWorklet failed after 5 attempts: ${i.message}`);const a=t*500;await new Promise(s=>setTimeout(s,a))}}_initializeMetronomeChannel(){try{const A=this._getSynthesizer();if(!A){console.warn("Cannot initialize metronome channel: synthesizer not available");return}const e=15;A.programChange&&(A.programChange(e,115),console.log("Metronome channel 15 initialized with woodblock instrument (115)")),A.controllerChange&&A.controllerChange(e,7,127)}catch(A){console.warn("Failed to initialize metronome channel:",A)}}async playMetronomeTick(A,e,t){try{const i=this.getMetronomeChannel(),a=this._getSynthesizer();if(!i||!a)return super.playMetronomeTick(A,e,t);const s=15,g=e?86:60,o=Math.round(Math.min(127,Math.max(0,t*(e?127:100)))),B=this.audioContext.currentTime,C=Math.max(A,B),Q=C-B;a.post?(a.post({channelNumber:s,type:"midiMessage",data:{messageData:[144|s,g,o],channelOffset:0,force:!1,options:{time:C}}}),a.post({channelNumber:s,type:"midiMessage",data:{messageData:[128|s,g,0],channelOffset:0,force:!1,options:{time:C+.1}}})):Q<=.01?(a.noteOn&&a.noteOn(s,g,o),setTimeout(()=>{a.noteOff&&a.noteOff(s,g)},100)):setTimeout(()=>{a.noteOn&&a.noteOn(s,g,o),setTimeout(()=>{a.noteOff&&a.noteOff(s,g)},100)},Q*1e3)}catch(i){return console.warn("MIDI metronome failed, falling back to buffers:",i),super.playMetronomeTick(A,e,t)}}getMetronomeOutput(){return!this.individualOutputs||this.individualOutputs.length<16?null:this.individualOutputs[15]}}class Di{constructor(){this.partNames=["soprano","alto","tenor","bass","treble","mezzo","baritone","s","a","t","b","satb"],this.parsedData={parts:{},barStructure:[],metadata:{}}}async parse(A,e=null){try{const t=await this._parseMidiBuffer(A);return this.metadataOverrides=e||{},this._normalizeLegacyMetadata(),this._extractMetadata(t),this._extractBarStructure(t),this._extractParts(t),this.parsedData.structureMetadata=this.metadataOverrides,this.parsedData}catch(t){throw console.error("Error parsing MIDI file:",t),t}}_normalizeLegacyMetadata(){if(!this.metadataOverrides||Object.keys(this.metadataOverrides).length===0)return;const A=this.metadataOverrides;if(A.scores&&Array.isArray(A.scores)&&A.scores.length>0){const e=A.scores[0];e.parts&&(A.parts=this._convertLegacyParts(e.parts)),e.bars&&(A.bars=e.bars),delete A.scores}else A.parts&&Array.isArray(A.parts)&&(A.parts=this._convertLegacyParts(A.parts));delete A.type,delete A.version,delete A.subtitle}_convertLegacyParts(A){const e={};for(const t of A){if(!t.name||!t.url)continue;const i=t.name.toLowerCase(),a=this._parseUrlParams(t.url),s={};if(a.track!==void 0&&(s.trackIndex=parseInt(a.track,10)),a.prog!==void 0){const g=parseInt(a.prog,10);g!==0&&(s.instrument=g)}s.trackIndex!==void 0&&(e[i]=s)}return e}_parseUrlParams(A){const e={},t=A.indexOf("?");if(t===-1)return e;const a=A.substring(t+1).split("&");for(const s of a){const[g,I]=s.split("=");g&&I!==void 0&&(e[g]=I)}return e}async _parseMidiBuffer(A){const e=new Uint8Array(A);if(!(e[0]===77&&e[1]===84&&e[2]===104&&e[3]===100))throw new Error("Not a valid MIDI file");const t=this._bytesToNumber(e.slice(4,8)),i=this._bytesToNumber(e.slice(8,10)),a=this._bytesToNumber(e.slice(10,12)),s=this._bytesToNumber(e.slice(12,14)),g=s&32768?null:s,I={format:i,ticksPerBeat:g,tracks:[],duration:0};let o=8+t;for(let B=0;B<a;B++)if(e[o]===77&&e[o+1]===84&&e[o+2]===114&&e[o+3]===107){const C=this._bytesToNumber(e.slice(o+4,o+8)),Q=e.slice(o+8,o+8+C),c=this._parseTrack(Q);I.tracks.push(c),o+=8+C}else throw new Error(`Invalid track header at position ${o}`);return I}_parseTrack(A){const e={notes:[],name:null,lyrics:[],events:[],duration:0};let t=0,i=0,a=null;for(;t<A.length;){let s=0,g=0;do g=A[t++],s=s<<7|g&127;while(g&128);i+=s,g=A[t++];let I=g;if(g&128)a=I;else{if(a===null)throw new Error("Running status byte encountered before status byte");I=a,t--}if(I===255){const o=A[t++],B=this._readVariableLengthValue(A,t);t+=B.bytesRead;const C=A.slice(t,t+B.value);switch(t+=B.value,o){case 3:e.name=this._bytesToString(C);break;case 1:e.events.push({type:"text",text:this._bytesToString(C),tick:i});break;case 5:e.lyrics.push({text:this._bytesToString(C),tick:i});break;case 81:const Q=this._bytesToNumber(C),c=Math.round(6e7/Q);e.events.push({type:"tempo",bpm:c,tick:i});break;case 88:e.events.push({type:"timeSignature",numerator:C[0],denominator:Math.pow(2,C[1]),tick:i});break;case 47:e.duration=i;break}}else if((I&240)===144){const o=I&15,B=A[t++],C=A[t++];C>0?e.notes.push({type:"noteOn",noteNumber:B,velocity:C,tick:i,channel:o}):e.notes.push({type:"noteOff",noteNumber:B,tick:i,channel:o})}else if((I&240)===128){const o=I&15,B=A[t++];A[t++],e.notes.push({type:"noteOff",noteNumber:B,tick:i,channel:o})}else if(I===240||I===247){const o=this._readVariableLengthValue(A,t);t+=o.bytesRead+o.value}else if((I&240)===176){const o=I&15,B=A[t++],C=A[t++];e.events.push({type:"controller",controllerNumber:B,value:C,channel:o,tick:i})}else if((I&240)===192){const o=I&15,B=A[t++];e.events.push({type:"programChange",programNumber:B,channel:o,tick:i})}else if((I&240)===208){const o=I&15,B=A[t++];e.events.push({type:"channelAftertouch",pressure:B,channel:o,tick:i})}else if((I&240)===224){const o=I&15,B=A[t++],Q=(A[t++]<<7|B)-8192;e.events.push({type:"pitchBend",value:Q,channel:o,tick:i})}else if((I&240)===160){const o=I&15,B=A[t++],C=A[t++];e.events.push({type:"noteAftertouch",noteNumber:B,pressure:C,channel:o,tick:i})}else console.warn(`Unknown event type: ${I.toString(16)} at position ${t-1}`),t++}return e}_extractMetadata(A){const e={title:null,composer:null,partNames:[],format:A.format,ticksPerBeat:A.ticksPerBeat};A.tracks.forEach((t,i)=>{if(t.name&&!e.title&&(e.title=t.name),t.events.filter(a=>a.type==="text").forEach(a=>{const s=a.text.toLowerCase();(s.includes("compos")||s.includes("by"))&&!e.composer&&(e.composer=a.text)}),t.name){const a=t.name.toLowerCase();for(const s of this.partNames)if(a.includes(s)){e.partNames.push({index:i,name:t.name});break}}}),this.metadataOverrides.title!==void 0&&(e.title=this.metadataOverrides.title),this.metadataOverrides.composer!==void 0&&(e.composer=this.metadataOverrides.composer),this.metadataOverrides.arranger!==void 0&&(e.arranger=this.metadataOverrides.arranger),this.metadataOverrides.copyright!==void 0&&(e.copyright=this.metadataOverrides.copyright),this.parsedData.metadata=e}_extractBarStructure(A){const e=A.ticksPerBeat||480,t=[];A.tracks.forEach(B=>{B.events.forEach(C=>{(C.type==="timeSignature"||C.type==="tempo")&&t.push(C)})}),t.sort((B,C)=>B.tick-C.tick);let i=0;A.tracks.forEach(B=>{B.notes&&B.notes.forEach(C=>{C.type==="noteOff"&&C.tick>i&&(i=C.tick)})}),i===0&&(i=e*8);const a=[],s=t.filter(B=>B.type==="timeSignature").sort((B,C)=>B.tick-C.tick);let g={numerator:4,denominator:4},I=0,o=0;for(;I<i;){for(;o<s.length&&s[o].tick<=I;)g=s[o],o++;let B;B=I+e*4*g.numerator/g.denominator;const C=g.numerator,Q=[],c=e*(4/g.denominator);for(let r=0;r<C;r++){const m=I+r*c,F=this._ticksToTime(m,A);Q.push(F)}a.push({sig:[g.numerator,g.denominator],beats:Q}),I=B}this.parsedData.barStructure=a}_extractParts(A){const e={},t=A.ticksPerBeat;if(this.metadataOverrides.parts)for(const[i,a]of Object.entries(this.metadataOverrides.parts)){if(!a.trackIndex&&a.trackIndex!==0&&!a.trackName)continue;let s=null,g=null;if(a.trackIndex!==void 0&&a.trackIndex!==null)g=a.trackIndex,g>=0&&g<A.tracks.length&&(s=A.tracks[g]);else if(a.trackName){const o=A.tracks.findIndex(B=>B.name===a.trackName);o!==-1&&(s=A.tracks[o],g=o)}if(!s)continue;const I=this._extractPartDataFromTrack(s,g,A,t);a.instrument!==void 0&&a.instrument!==null&&(I.defaultInstrument=this._resolveInstrument(a.instrument)),e[i]=I}else A.tracks.forEach((i,a)=>{if(!i.notes.length)return;let s=null;if(i.name){const o=i.name.toLowerCase();for(const B of this.partNames)if(B.length===1){if(o===B){s=B;break}}else if(o.includes(B)){s=B;break}}s||(s=i.name||`Track ${a+1}`),s==="s"&&(s="soprano"),s==="a"&&(s="alto"),s==="t"&&(s="tenor"),s==="b"&&(s="bass");let g=s,I=2;for(;e[g];)g=`${s} ${I}`,I++;s=g,e[s]=this._extractPartDataFromTrack(i,a,A,t)});this.parsedData.parts=e}_extractPartDataFromTrack(A,e,t,i){const a=[],s={};A.notes.forEach(B=>{if(B.type==="noteOn")s[B.noteNumber]={tick:B.tick,velocity:B.velocity};else if(B.type==="noteOff"&&s[B.noteNumber]){const C=s[B.noteNumber],Q=B.tick-C.tick;a.push({pitch:B.noteNumber,name:this._midiNoteToName(B.noteNumber),startTick:C.tick,endTick:B.tick,duration:Q,startTime:this._ticksToTime(C.tick,t),endTime:this._ticksToTime(B.tick,t),velocity:C.velocity}),delete s[B.noteNumber]}});const g=A.lyrics.map(B=>({text:B.text,tick:B.tick,time:B.tick/i}));a.sort((B,C)=>B.startTick-C.startTick);const I=A.events.filter(B=>B.type==="programChange").map(B=>({programNumber:B.programNumber,tick:B.tick,time:this._ticksToTime(B.tick,t)})).sort((B,C)=>B.tick-C.tick),o=I.length>0?I[0].programNumber:0;return{notes:a,lyrics:g,trackIndex:e,programChanges:I,defaultInstrument:o}}_resolveInstrument(A){if(typeof A=="number")return A;if(typeof A=="string"){const e={choir_aahs:52,piano:0,acoustic_grand_piano:0,bright_acoustic_piano:1,electric_grand_piano:2,strings:48,string_ensemble_1:48,violin:40,viola:41,cello:42,contrabass:43},t=A.toLowerCase().replace(/ /g,"_");return e[t]!==void 0?e[t]:0}return 0}_midiNoteToName(A){const e=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"],t=Math.floor(A/12)-1;return`${e[A%12]}${t}`}_bytesToNumber(A){let e=0;for(let t=0;t<A.length;t++)e=e<<8|A[t];return e}_bytesToString(A){return new TextDecoder().decode(A)}_readVariableLengthValue(A,e){let t=0,i,a=0;do i=A[e+a++],t=t<<7|i&127;while(i&128);return{value:t,bytesRead:a}}_ticksToTime(A,e){const t=e.ticksPerBeat||480,i=[];e.tracks.forEach(I=>{I.events.forEach(o=>{o.type==="tempo"&&i.push(o)})}),i.sort((I,o)=>I.tick-o.tick);let a=0,s=0,g=120;for(const I of i){if(I.tick>A)break;if(I.tick>s){const B=(I.tick-s)/t*(60/g);a+=B,s=I.tick}g=I.bpm}if(A>s){const o=(A-s)/t*(60/g);a+=o}return a}}class Gi{constructor(){this.barOrder=[],this.beatTable=[]}mapBeats(A,e){try{return e.bars&&!e.sections?this.barOrder=this.generateBarOrderFromLegacyBars(e.bars,A.barStructure):e.sections&&e.order?this.barOrder=this.generateBarOrder(e.sections,e.order):this.barOrder=this.generateLinearBarOrder(A.barStructure),this.beatTable=this.generateBeatTable(this.barOrder,A.barStructure),this.beatTable}catch(t){throw console.error("Error mapping beats:",t),t}}generateBarOrder(A,e){const t=[],i={};for(const a of e){const s=A[a.section];if(!s)throw new Error(`Invalid section index: ${a.section}`);const g=a.section;i[g]||(i[g]=0),i[g]++;const I=i[g],o=a.from!==void 0?a.from:this._getSectionStartBar(A,a.section),B=a.to!==void 0?a.to:s.to,C=a.as||1;for(let Q=o;Q<=B;Q++)this._shouldPlayBar(s,Q,C)&&t.push({barNumber:Q,repeat:I,sectionIndex:a.section,voltaTime:C})}return t}generateBarOrderFromLegacyBars(A,e){const t=[];let i=1,a=0,s;for(const g of A){g.from!==void 0&&(i=g.from===-1?0:g.from,a=0),g.timeSig!==void 0&&(s=g.timeSig);const I=g.repeat||1;let o=g.beats;for(;o>0;){const C=(s!==void 0?s:this._getBeatsPerBar(i,e))-a;o>=C?(t.push({barNumber:i,repeat:I,sectionIndex:0,voltaTime:1}),o-=C,a=0,i===0?i=1:i++):(a+=o,o=0)}}return a>0&&t.push({barNumber:i,repeat:1,sectionIndex:0,voltaTime:1}),t}generateLinearBarOrder(A){const e=[];for(let t=0;t<A.length;t++)e.push({barNumber:t+1,repeat:1,sectionIndex:0,voltaTime:1});return e}_getBeatsPerBar(A,e){const t=e.length>0&&e[0].sig&&e[0].sig[0]<=2;let i;if(t?i=A:i=A-1,i<0||i>=e.length)return 4;const a=e[i];return a.sig?a.sig[0]:4}generateBeatTable(A,e){const t=[],i={};let a=0,s=0;const g=[...e];for(;s<A.length&&a<g.length;){const I=A[s],o=I.barNumber;if(i[o]===void 0){const c=g[a];if(!c||!c.sig)throw new Error(`Invalid MIDI bar structure at index ${a}`);i[o]=c.sig[0]}const B=i[o];let C=g[a],Q=C.sig[0];for(;Q<B&&a+1<g.length;){const c=g[a+1],r=[C.sig[0]+c.sig[0],C.sig[1]],m=[...C.beats||[],...c.beats||[]];C={sig:r,beats:m},g[a]=C,g.splice(a+1,1),Q=r[0]}if(Q>B){const c=B,r=Q-B,m=C.beats?C.beats.slice(0,c):[],F=C.beats?C.beats.slice(c):[],k={sig:[c,C.sig[1]],beats:m},R={sig:[r,C.sig[1]],beats:F};g[a]=k,g.splice(a+1,0,R),C=k}this._generateBeatsForBar(t,I,C,B),a++,s++}if(s<A.length){const I=t.length>0?t[t.length-1]:null;let o=.5;if(t.length>=2){const C=Math.min(8,t.length),Q=t[t.length-C];o=(t[t.length-1].time-Q.time)/(C-1)}let B=I?I.time+o:0;for(;s<A.length;){const C=A[s],Q=C.barNumber,c=i[Q]!==void 0?i[Q]:4;i[Q]===void 0&&(i[Q]=c);const r=[];for(let F=0;F<c;F++)r.push(B),B+=o;const m={sig:[c,4],beats:r};this._generateBeatsForBar(t,C,m,c),s++}}return t}_generateBeatsForBar(A,e,t,i){const{beats:a}=t;if(!a||!Array.isArray(a))throw new Error(`Invalid MIDI bar: missing beats array. Got: ${JSON.stringify(t)}`);const s=a.slice(0,i);for(let g=1;g<=i;g++){const o={time:s[g-1],repeat:e.repeat,bar:e.barNumber,beat:g,timeSig:i};A.push(o)}}_getSectionStartBar(A,e){return A[e].pickup!==void 0?0:e===0?1:A[e-1].to+1}_shouldPlayBar(A,e,t){if(!A.voltas)return!0;const i=A.voltas.indexOf(e);return i===-1?!0:i+1===t}}class mt{constructor(A=null,e,t=null,i=null){if(!e)throw new Error("Parsed MIDI data is required");this.audioEngine=A,this._audioEngineReady=!!(A&&A.isInitialized),this.instrumentMap=t||{},this.parsedData=e,this._isPlaying=!1,this._currentTime=0,this._totalDuration=0,this.playbackSpeed=1,this.partChannels=new Map,this.partOutputs=new Map,this.playbackStartTime=0,this.lookAheadTime=.05,this.scheduleInterval=null,this.partNotePointers=new Map,this.partProgramPointers=new Map,this.eventBus=ze(),this.beatMapper=new Gi,this.beats=[],this.structureMetadata=i,this._calculateTotalDuration();const a=i||this._createDefaultStructureMetadata();this.beats=this.beatMapper.mapBeats(e,a),this._audioEngineReady&&(this._setupPartChannels(),this._resetNotePointers(),this._resetProgramPointers())}setAudioEngine(A){if(!A||!A.isInitialized)throw new Error("An initialized AudioEngine is required");this.audioEngine=A,this._audioEngineReady=!0,this._setupPartChannels(),this._resetNotePointers(),this._resetProgramPointers()}isAudioEngineReady(){return this._audioEngineReady}play(){if(!this._audioEngineReady)throw new Error("Audio engine not ready. Call setAudioEngine() first.");this._isPlaying||(this._isPlaying=!0,this.playbackStartTime=this.audioEngine.audioContext.currentTime-this._currentTime/this.playbackSpeed,this._resetNotePointers(),this._resetProgramPointers(),this._schedulePlayback(),this._startTimeUpdateLoop())}playAt(A){if(!this._audioEngineReady)throw new Error("Audio engine not ready. Call setAudioEngine() first.");this._isPlaying||(this._isPlaying=!0,this.playbackStartTime=A-this._currentTime/this.playbackSpeed,this._resetNotePointers(),this._resetProgramPointers(),this._schedulePlayback(),this._startTimeUpdateLoop())}pause(){this._isPlaying&&(this._isPlaying=!1,this._stopScheduling(),this._stopTimeUpdateLoop())}stop(){this._isPlaying=!1,this._currentTime=0,this._stopScheduling(),this._stopTimeUpdateLoop(),this._resetNotePointers(),this._resetProgramPointers()}skipToTime(A){A=Math.max(0,Math.min(A,this._totalDuration));const e=this._isPlaying;e&&this.pause(),this._currentTime=A,this._resetNotePointers(),this._resetProgramPointers(),e&&this.play()}setPlaybackSpeed(A,e=!0){if(A<=0)throw new Error("Playback speed must be greater than 0");const t=e&&this._isPlaying;t&&this.pause();const i=(this.audioEngine.audioContext.currentTime-this.playbackStartTime)*this.playbackSpeed;this.playbackSpeed=A,t?this.play():this.playbackStartTime=this.audioEngine.audioContext.currentTime-i/this.playbackSpeed}setBar(A,e=0){const t=this.getTimeFromBar(A,e);t!==null&&(this.skipToTime(t),this._emitEvent("barChanged",{bar:A,beat:1,repeat:e,time:t}))}getTimeFromBar(A,e=0){e||(e=1);const t=this.beats.find(i=>i.bar===A&&i.beat===1&&i.repeat===e);return t?t.time:null}getBeatFromTime(A){if(!this.beats.length)return null;let e=null;for(let t=this.beats.length-1;t>=0;t--)if(this.beats[t].time<=A){e=this.beats[t];break}return e}getBeats(){return this.beats}getRepeatCountForBar(A){const e=new Set;return this.beats.forEach(t=>{t.bar===A&&e.add(t.repeat)}),e.size}getPracticeMarks(){return this.structureMetadata?this.structureMetadata.marks||this.structureMetadata.practiceMarks||{}:{}}allSoundsOff(){this._audioEngineReady&&this.audioEngine.allSoundsOff()}getPartOutput(A){return this.partOutputs.get(A)||null}getPartChannel(A){return this.partChannels.get(A)||null}getAllNextNotes(A){const e=A??this.getCurrentTime(),t={};for(const[i,a]of Object.entries(this.parsedData.parts)){const s=a.notes.find(g=>g.startTime>=e);t[i]=s?{pitch:s.pitch,startTime:s.startTime}:null}return t}getCurrentTime(){if(this._isPlaying){const A=(this.audioEngine.audioContext.currentTime-this.playbackStartTime)*this.playbackSpeed;this._currentTime=Math.min(A,this._totalDuration)}return this._currentTime}getTotalDuration(){return this._totalDuration}isPlaying(){return this._isPlaying}on(A,e){this.eventBus.on(A,e)}off(A,e){this.eventBus.off(A,e)}_setupPartChannels(){Object.keys(this.parsedData.parts).forEach(A=>{const e=this.parsedData.parts[A],t=this.instrumentMap[A]||{},i=t.instrument!==void 0?t.instrument:e.defaultInstrument!==void 0?e.defaultInstrument:0;try{const a=this.audioEngine.createChannel(A,{instrument:i,initialVolume:t.volume||1});this.partChannels.set(A,a);const s=this.audioEngine.audioContext.createGain();s.gain.value=1;const g=a.getOutputNode();g&&g.connect(s),this.partOutputs.set(A,s)}catch(a){console.error(`Failed to create channel for part '${A}':`,a),this._emitEvent("error",a)}})}_calculateTotalDuration(){let A=0;Object.values(this.parsedData.parts).forEach(e=>{e.notes.forEach(t=>{t.endTime>A&&(A=t.endTime)})}),this._totalDuration=A}_schedulePlayback(){this._stopScheduling(),this._startScheduleLoop()}_startScheduleLoop(){this.scheduleInterval||(this.scheduleInterval=setInterval(()=>{if(!this._isPlaying)return;const e=(this.audioEngine.audioContext.currentTime-this.playbackStartTime)*this.playbackSpeed,t=e+this.lookAheadTime;for(const[i,a]of this.partChannels){const s=this.parsedData.parts[i];if(s){if(s.programChanges&&s.programChanges.length>0){let g=this.partProgramPointers.get(i)||0;const I=s.programChanges;for(;g<I.length&&I[g].time<e;)g++;for(;g<I.length&&I[g].time<=t;){const o=I[g];a.setInstrument(o.programNumber),g++}this.partProgramPointers.set(i,g)}if(s.notes){let g=this.partNotePointers.get(i)||0;const I=s.notes;for(;g<I.length&&I[g].endTime<e;)g++;for(;g<I.length&&I[g].startTime<=t;){const o=I[g];if(o.endTime-o.startTime>=.01){const B=this.playbackStartTime+o.startTime/this.playbackSpeed,C=(o.endTime-o.startTime)/this.playbackSpeed;a.playNote(B,o.pitch,o.velocity,C)}g++}this.partNotePointers.set(i,g)}}}},50))}_resetNotePointers(){const A=this._currentTime;for(const[e]of this.partChannels){const t=this.parsedData.parts[e];if(!t||!t.notes)continue;let i=0;for(;i<t.notes.length&&t.notes[i].endTime<A;)i++;this.partNotePointers.set(e,i)}}_resetProgramPointers(){const A=this._currentTime;for(const[e,t]of this.partChannels){const i=this.parsedData.parts[e];if(!i||!i.programChanges){this.partProgramPointers.set(e,0);continue}let a=0,s=i.defaultInstrument;for(;a<i.programChanges.length&&i.programChanges[a].time<=A;)s=i.programChanges[a].programNumber,a++;t.setInstrument(s),this.partProgramPointers.set(e,a)}}_stopScheduling(){this.scheduleInterval&&(clearInterval(this.scheduleInterval),this.scheduleInterval=null),this.partChannels.forEach(A=>{A.isActive()&&A.allNotesOff()})}_startTimeUpdateLoop(){this.timeUpdateInterval=setInterval(()=>{const A=this.getCurrentTime();this._emitEvent("timeupdate",{currentTime:A});const e=this.getBeatFromTime(A);e&&this._emitEvent("beatChanged",e),(this.audioEngine.audioContext.currentTime-this.playbackStartTime)*this.playbackSpeed>=this._totalDuration+.05&&(this.stop(),this._emitEvent("ended",{finalTime:this._currentTime}))},100)}_stopTimeUpdateLoop(){this.timeUpdateInterval&&(clearInterval(this.timeUpdateInterval),this.timeUpdateInterval=null)}_emitEvent(A,e){(this.eventBus.all.get(A)||[]).forEach(i=>{try{i(e)}catch(a){console.error(`Error in ${A} event listener:`,a)}})}_createDefaultStructureMetadata(){return{sections:[{from:1,to:this.parsedData.barStructure.length}],order:[{section:0}]}}destroy(){this.stop(),this.partChannels.forEach(A=>{A.destroy()}),this.partChannels.clear(),this.partOutputs.forEach(A=>{A.disconnect()}),this.partOutputs.clear(),this.partNotePointers.clear(),this.partProgramPointers.clear(),this.eventBus.all.clear()}}class bi{constructor(A=null,e={}){A instanceof mt?(this.audioEngine=A.audioEngine,this.midiPlayer=A,this.parsedData=A.parsedData,this._audioEngineReady=!!(this.audioEngine&&this.audioEngine.isInitialized)):(this.audioEngine=A,this._audioEngineReady=!!(A&&A.isInitialized),this.midiPlayer=null,this.parsedData=null),this.eventBus=ze(),this._parser=new Di,this._partOutputsMap=new Map,this.instrumentMap=null,this.metronomeConfig={enabled:!1,tickInstrument:115,accentInstrument:116,volume:.7,...e.metronome},this.leadInConfig={enabled:!1,bars:1,...e.leadIn},this.startupConfig={delayMs:25,...e.startup},this.state="reset",this.frozenTime=0,this.leadInData=null,this.leadInStartTime=null,this.leadInProgress=null,this.leadInInterval=null,this.timeUpdateInterval=null,this.metronomeScheduleInterval=null,this.nextBeatIndex=0,this._validateConfig(),this.midiPlayer&&this._completeMidiPlayerSetup()}setAudioEngine(A){if(!A||!A.isInitialized)throw new Error("An initialized AudioEngine is required");this.audioEngine=A,this._audioEngineReady=!0,this.parsedData&&!this.midiPlayer&&this._setupPlayerWithAudio()}isAudioEngineReady(){return this._audioEngineReady}async load(A,e=null,t=null){if(this.reset(),A instanceof mt)this.parsedData=A.parsedData,this.instrumentMap=t,this._audioEngineReady&&this._setMidiPlayer(A);else if(A instanceof ArrayBuffer)this.parsedData=await this._parser.parse(A,e),this.instrumentMap=t||this._createDefaultInstrumentMap(this.parsedData.parts),this._audioEngineReady&&this._setupPlayerWithAudio();else if(A&&typeof A=="object"&&A.parts)this.parsedData=A,this.instrumentMap=t||this._createDefaultInstrumentMap(A.parts),this._audioEngineReady&&this._setupPlayerWithAudio();else throw new Error("Invalid input type. Expected MidiPlayer, parsed MIDI data, or ArrayBuffer")}reset(){this.stop(),this.midiPlayer&&(this.midiPlayer.destroy(),this.midiPlayer=null),this.parsedData=null,this.instrumentMap=null,this._audioEngineReady&&this.audioEngine.clearAllChannels(),this._partOutputsMap.clear(),this.frozenTime=0,this.leadInData=null,this.leadInProgress=null,this.leadInStartTime=null,this.nextBeatIndex=0,this._stopLeadIn(),this._stopMetronome(),this._stopTimeUpdateLoop(),this.state="reset"}getPartOutputs(){return this._partOutputsMap.entries()}getPartNames(){return Array.from(this._partOutputsMap.keys())}getBeats(){return this.midiPlayer?this.midiPlayer.getBeats():[]}getRepeatCountForBar(A){return this.midiPlayer?this.midiPlayer.getRepeatCountForBar(A):0}getPracticeMarks(){return this.midiPlayer?this.midiPlayer.getPracticeMarks():{}}async play(A={}){if(!this._audioEngineReady)throw new Error("Audio engine not ready. Call setAudioEngine() after user interaction.");if(this.parsedData&&!this.midiPlayer&&this._setupPlayerWithAudio(),!this.midiPlayer)throw new Error("No MIDI data loaded. Call load() first.");if(!(this.state==="playing"||this.state==="lead-in"))try{const e=A.leadIn!==void 0?A.leadIn:this.leadInConfig.enabled,t=A.metronome!==void 0?A.metronome:this.metronomeConfig.enabled;this.frozenTime===0&&(this.frozenTime=this.midiPlayer.getCurrentTime()),e?await this._startLeadIn(t):await this._startMidiPlayback(t)}catch(e){throw this.state="stopped",this._emitEvent("error",e),e}}pause(){if(!this.midiPlayer||this.state==="stopped"||this.state==="paused")return;const A=this.state;this.state="paused",A==="lead-in"?this._pauseLeadIn():A==="playing"&&(this.midiPlayer.pause(),this._stopMetronome()),this._stopTimeUpdateLoop(),this._emitEvent("playbackPaused",{})}resume(){!this.midiPlayer||this.state!=="paused"||(this.leadInData&&this.leadInProgress!==null&&this.leadInProgress<1?this._resumeLeadIn():(this.state="playing",this._resetMetronomeBeatTracking(),this.midiPlayer.play(),this._startMetronomeIfEnabled(),this._startTimeUpdateLoop(),this._emitEvent("playbackStarted",{})))}stop(){if(this.state==="stopped")return;const A=this.state==="playing";this.state="stopped",this.frozenTime=0,this.leadInData=null,this.leadInProgress=null,this.leadInStartTime=null,this._stopLeadIn(),this._stopMetronome(),this._stopTimeUpdateLoop(),this._resetMetronomeBeatTracking(),A&&this.midiPlayer.stop(),this._emitEvent("playbackStopped",{})}skipToTime(A){if(!this.midiPlayer)throw new Error("No MIDI data loaded. Call load() first.");this.frozenTime=A,this.state!=="lead-in"&&(this.midiPlayer.skipToTime(A),this.state==="playing"&&this.metronomeConfig.enabled&&this._resetMetronomeBeatTracking())}setBar(A,e=0){if(!this.midiPlayer)throw new Error("No MIDI data loaded. Call load() first.");if(this.state==="lead-in"){const t=this.midiPlayer.getTimeFromBar(A,e);t!==null&&(this.frozenTime=t);return}if(this.midiPlayer.setBar(A,e),this.state==="stopped"){const t=this.midiPlayer.getTimeFromBar(A,e);t!==null&&(this.frozenTime=t)}this.state==="playing"&&this.metronomeConfig.enabled&&this._resetMetronomeBeatTracking()}getCurrentTime(){return this.state==="lead-in"||this.state==="paused"&&this.leadInProgress!==null?this.frozenTime:this.midiPlayer?this.midiPlayer.getCurrentTime():0}getLeadInProgress(){return this.leadInProgress}setMetronomeEnabled(A){const e=this.metronomeConfig.enabled;this.metronomeConfig.enabled=A,this.state==="playing"&&(A&&!e?this._startMetronome():!A&&e&&this._stopMetronome()),this._emitEvent("metronomeEnabledChanged",{enabled:A})}setMetronomeSettings(A){if(A.volume!==void 0&&(A.volume<0||A.volume>1))throw new Error("Metronome volume must be between 0.0 and 1.0");if(Object.assign(this.metronomeConfig,A),A.volume!==void 0){const e=this.audioEngine.getMetronomeOutput();e&&e.gain&&(e.gain.value=A.volume)}this._emitEvent("metronomeSettingsChanged",{...A})}setLeadInEnabled(A){this.leadInConfig.enabled=A,this._emitEvent("leadInSettingsChanged",{enabled:A,bars:this.leadInConfig.bars})}setLeadInBars(A){if(A<1)throw new Error("Lead-in bars must be at least 1");this.leadInConfig.bars=A,this._emitEvent("leadInSettingsChanged",{enabled:this.leadInConfig.enabled,bars:A})}setPlaybackSpeed(A,e=!0){if(!this.midiPlayer)throw new Error("No MIDI data loaded. Call load() first.");this.midiPlayer.setPlaybackSpeed(A,e)}getMetronomeSettings(){return{...this.metronomeConfig}}isMetronomeEnabled(){return this.metronomeConfig.enabled}getLeadInSettings(){return{enabled:this.leadInConfig.enabled,bars:this.leadInConfig.bars}}getStartupSettings(){return{...this.startupConfig}}setStartupDelay(A){if(typeof A!="number"||A<0||A>1e3)throw new Error("Startup delay must be a number between 0 and 1000 milliseconds");this.startupConfig.delayMs=A,this._emitEvent("startupSettingsChanged",{delayMs:A})}getState(){return this.state}isInLeadIn(){return this.state==="lead-in"}isPlaying(){return this.state==="playing"||this.state==="lead-in"}getMetronomeOutput(){return this.audioEngine.getMetronomeOutput()}getPartOutput(A){return this.midiPlayer?this.midiPlayer.getPartOutput(A):null}allSoundsOff(){this.midiPlayer&&this.midiPlayer.allSoundsOff()}previewNextNotes(A={}){if(!this.midiPlayer)throw new Error("No MIDI data loaded");const e=A.delayBetweenParts??.3,t=A.duration??.5,i=A.velocity??100,a=this.midiPlayer.getAllNextNotes(),s=A.partOrder??this.getPartNames();let g=this.audioEngine.audioContext.currentTime+.01;const I=[];for(const o of s){const B=a[o];if(!B)continue;const C=this.midiPlayer.getPartChannel(o);if(!C)continue;const Q=this.midiPlayer.getPartOutput(o);Q&&Q.gain.value===0||(C.playPreviewNote(B.pitch,{startTime:g,duration:t,velocity:i,instrument:A.instrument}),I.push({partName:o,pitch:B.pitch,startTime:g}),g+=e)}return{parts:I,totalDuration:I.length*e}}getTotalDuration(){if(this.midiPlayer)return this.midiPlayer.getTotalDuration();if(this.parsedData&&this.parsedData.parts){let A=0;return Object.values(this.parsedData.parts).forEach(e=>{e.notes&&e.notes.forEach(t=>{t.endTime>A&&(A=t.endTime)})}),A}return 0}on(A,e){this.eventBus.on(A,e)}off(A,e){this.eventBus.off(A,e)}_setupEventDelegation(){this.midiPlayer.on("timeupdate",A=>{this.state==="playing"&&this._emitEvent("timeupdate",{...A,effectiveTime:A.currentTime,leadInProgress:null})}),this.midiPlayer.on("beatChanged",A=>{this.state==="playing"&&this._emitEvent("beatChanged",{...A,isLeadIn:!1})}),this.midiPlayer.on("barChanged",A=>{this.state==="playing"&&this._emitEvent("barChanged",A)}),this.midiPlayer.on("ended",A=>{this.state==="playing"&&(this.state="stopped",this._stopMetronome(),this._stopTimeUpdateLoop(),this._emitEvent("playbackEnded",A))}),this.midiPlayer.on("error",A=>{this._emitEvent("error",A)})}_validateConfig(){if(this.metronomeConfig.volume<0||this.metronomeConfig.volume>1)throw new Error("Metronome volume must be between 0.0 and 1.0");if(this.leadInConfig.bars<1)throw new Error("Lead-in bars must be at least 1")}async _startLeadIn(A){this.state="lead-in";const e=this.startupConfig.delayMs/1e3;this.leadInStartTime=this.audioEngine.audioContext.currentTime+e,this.leadInProgress=0,this.leadInData=this._calculateLeadInBeats(),this._emitEvent("leadInStarted",{totalBeats:this.leadInData.totalBeats,duration:this.leadInData.duration,bars:this.leadInConfig.bars,startupDelayMs:this.startupConfig.delayMs}),setTimeout(()=>{this.state==="lead-in"&&this._startLeadInScheduling(A)},this.startupConfig.delayMs),this._startTimeUpdateLoop()}_calculateLeadInBeats(){if(!this.midiPlayer)return{totalBeats:4,duration:2,beatSequence:[],beatsPerBar:4,startBeat:{bar:1,beat:1,timeSig:4}};const A=this.midiPlayer.beats,e=this.frozenTime,t=this.leadInConfig.bars;let i=A.length-1,a=.5;for(;A[i].time>e;)i--;const s=A[i],g=A[i+1];g?a=g.time-s.time:i>0&&(a=s.time-A[i-1].time);const I=this.midiPlayer&&this.midiPlayer.playbackSpeed||1,o=a/I,B=s.timeSig===1,C=B&&g?g.timeSig:s.timeSig,Q=B?C-1:s.beat>1?s.beat-1:0,c=t*C+Q;return{totalBeats:c,duration:c*o,beatSequence:this._generateBeatSequence(c,o,C),beatsPerBar:C,startBeat:s}}_generateBeatSequence(A,e,t){const i=[];for(let a=0;a<A;a++){const s=a%t+1;i.push({beat:s,isAccent:s===1,time:a*e,absoluteTime:this.leadInStartTime+a*e})}return i}_startLeadInScheduling(A){this.leadInBeatIndex=0,this.leadInScheduledBeats=new Set;const e=this.leadInData.beatSequence,t=10;this.leadInStartTime=this.audioEngine.audioContext.currentTime,this.leadInInterval=setInterval(()=>{const i=this.audioEngine.audioContext.currentTime-this.leadInStartTime;for(this.leadInProgress=Math.min(1,i/this.leadInData.duration);this.leadInBeatIndex<e.length;){const a=e[this.leadInBeatIndex],s=a.time-i;if(s>.05)break;if(!this.leadInScheduledBeats.has(this.leadInBeatIndex)&&s>=-.05&&s<=.05){const g=s<=0?this.audioEngine.audioContext.currentTime+.01:this.audioEngine.audioContext.currentTime+s;this._scheduleTickAtTime(g,a.isAccent),this._emitEvent("beatChanged",{bar:Math.floor(this.leadInBeatIndex/this.leadInData.beatsPerBar)+1,beat:a.beat,repeat:1,time:this.frozenTime,isLeadIn:!0}),this.leadInScheduledBeats.add(this.leadInBeatIndex)}this.leadInBeatIndex++}this.leadInProgress>=1&&this._completeLeadIn(A)},t)}_completeLeadIn(A){const e=this.leadInStartTime+this.leadInData.duration;this._stopLeadIn(),this._emitEvent("leadInEnded",{}),this.leadInData=null,this.leadInProgress=null,this.leadInStartTime=null,this._startMidiPlaybackAt(e,A,!0)}async _startMidiPlaybackAt(A,e,t=!0){this.state="playing",t&&this._emitEvent("playbackStarted",{startupDelayMs:0,scheduledStartTime:A}),this.midiPlayer.playAt(A),e&&this._startMetronomeAt(A),this.timeUpdateInterval||this._startTimeUpdateLoop()}async _startMidiPlayback(A,e=!0,t=!1){this.state="playing",this._resetMetronomeBeatTracking(),e&&this._emitEvent("playbackStarted",{startupDelayMs:t?0:this.startupConfig.delayMs});const i=()=>{if(this.state==="playing")try{this.midiPlayer.play(),A&&this._startMetronome()}catch(a){this.state="stopped",this._emitEvent("error",a)}};t?i():setTimeout(i,this.startupConfig.delayMs),this.timeUpdateInterval||this._startTimeUpdateLoop()}_startMetronome(){!this.metronomeConfig.enabled||this.state!=="playing"||(this._scheduleMetronomeTicks(),this.metronomeScheduleInterval=setInterval(()=>{this._scheduleMetronomeTicks()},50))}_startMetronomeAt(A){this.metronomeConfig.enabled&&(this.metronomeScheduledStartTime=A,this._resetMetronomeBeatTracking(),this._scheduleMetronomeTicksAt(A),this.metronomeScheduleInterval=setInterval(()=>{this._scheduleMetronomeTicks()},50))}_startMetronomeIfEnabled(){this.metronomeConfig.enabled&&this._startMetronome()}_scheduleMetronomeTicksAt(A){if(!this.metronomeConfig.enabled||!this.midiPlayer)return;const e=this.midiPlayer.beats;if(!e||e.length===0)return;const t=this.midiPlayer.getCurrentTime(),i=.1;for(let a=this.nextBeatIndex;a<e.length;a++){const s=e[a],g=this.midiPlayer.playbackSpeed||1,I=A+(s.time-t)/g;if(I>this.audioEngine.audioContext.currentTime+i)break;if(I>=this.audioEngine.audioContext.currentTime-.01){const o=Math.max(I,this.audioEngine.audioContext.currentTime+.001),B=s.isDownbeat||s.beat===1;this._scheduleTickAtTime(o,B),this.nextBeatIndex=a+1}}}_scheduleMetronomeTicks(){if(!this.metronomeConfig.enabled||!this.midiPlayer)return;const A=this.midiPlayer.getCurrentTime(),e=this.midiPlayer.beats;if(!e||e.length===0)return;for(;this.nextBeatIndex<e.length&&e[this.nextBeatIndex].time<A-.025;)this.nextBeatIndex++;const i=A+.15;for(;this.nextBeatIndex<e.length;){const a=e[this.nextBeatIndex],s=a.time-A;if(a.time>i)break;if(s>=-.025&&s<=.15){const g=this.audioEngine.audioContext.currentTime+.005,I=this.audioEngine.audioContext.currentTime+Math.max(s,.005),o=Math.max(g,I),B=a.beat===1;this._scheduleTickAtTime(o,B)}this.nextBeatIndex++}}async _scheduleTickAtTime(A,e){try{await this.audioEngine.playMetronomeTick(A,e,this.metronomeConfig.volume)}catch(t){console.warn("Failed to schedule metronome tick:",t)}}_resetMetronomeBeatTracking(){if(!this.midiPlayer){this.nextBeatIndex=0;return}const A=this.getCurrentTime(),e=this.midiPlayer.beats;if(!e||e.length===0){this.nextBeatIndex=0;return}for(this.nextBeatIndex=0;this.nextBeatIndex<e.length&&e[this.nextBeatIndex].time<A-.01;)this.nextBeatIndex++}_stopMetronome(){this.metronomeScheduleInterval&&(clearInterval(this.metronomeScheduleInterval),this.metronomeScheduleInterval=null)}_stopLeadIn(){this.leadInInterval&&(clearInterval(this.leadInInterval),this.leadInInterval=null)}_pauseLeadIn(){this._stopLeadIn()}_resumeLeadIn(){if(!this.leadInData||this.leadInProgress===null)return;this.state="lead-in";const A=this.audioEngine.audioContext.currentTime,e=this.leadInProgress*this.leadInData.duration;this.leadInStartTime=A-e,this._startLeadInScheduling(this.metronomeConfig.enabled),this._startTimeUpdateLoop()}_startTimeUpdateLoop(){this.timeUpdateInterval||(this.timeUpdateInterval=setInterval(()=>{this.state==="lead-in"?this._emitEvent("timeupdate",{currentTime:this.frozenTime,effectiveTime:this.frozenTime,leadInProgress:this.leadInProgress||0}):this.state},100))}_stopTimeUpdateLoop(){this.timeUpdateInterval&&(clearInterval(this.timeUpdateInterval),this.timeUpdateInterval=null)}_emitEvent(A,e){(this.eventBus.all.get(A)||[]).forEach(i=>{try{i(e)}catch(a){console.error(`Error in ${A} event listener:`,a)}})}destroy(){this.stop(),this._stopLeadIn(),this._stopMetronome(),this._stopTimeUpdateLoop(),this.eventBus.all.clear()}_setupPlayerWithAudio(){if(!this._audioEngineReady)throw new Error("Audio engine not ready");if(!this.parsedData)throw new Error("No parsed MIDI data available");const A=this.parsedData.structureMetadata||null,e=new mt(this.audioEngine,this.parsedData,this.instrumentMap,A);this._setMidiPlayer(e)}_setMidiPlayer(A){this.midiPlayer=A,this.audioEngine=A.audioEngine,this._audioEngineReady=!0,this._completeMidiPlayerSetup()}_completeMidiPlayerSetup(){this._partOutputsMap.clear(),Object.keys(this.midiPlayer.parsedData.parts).forEach(A=>{const e=this.midiPlayer.getPartOutput(A);e&&this._partOutputsMap.set(A,e)}),this._setupEventDelegation(),this.state="ready"}_createDefaultInstrumentMap(A){const e={},t={soprano:{instrument:"choir_aahs",volume:1},alto:{instrument:"choir_aahs",volume:1},tenor:{instrument:"choir_aahs",volume:1},bass:{instrument:"choir_aahs",volume:1},piano:{instrument:"piano",volume:.8},organ:{instrument:"church_organ",volume:.7},strings:{instrument:"string_ensemble_1",volume:.6},flute:{instrument:"flute",volume:.8},trumpet:{instrument:"trumpet",volume:.7}};return Object.keys(A).forEach(i=>{const a=i.toLowerCase(),s=t[a]||t.piano;e[i]={instrument:s.instrument,volume:s.volume}}),e}}class Ui{constructor(){this.eventBus=ze(),this.currentTime=0,this.isPlaying=!1,this.playbackSpeed=1,this.masterVolume=.75,this.metronomeVolume=.7,this.parts=new Map,this.playbackTimer=null,this.lastTimestamp=0,this.audioContext=null,this.audioEngine=null,this.playbackManager=null,this.musicData=null,this.beats=[],this.practiceMarks={},this.songDuration=0,this.maxBar=0,this.masterGain=null,this.metronomeGain=null,this.partGainNodes=new Map,this.partAnalyserNodes=new Map,this.isInitialized=!1}sanitizePartName(A){return!A||typeof A!="string"?"unknown":A.replace(/[\x00-\x1F\x7F-\x9F]/g,"").toLowerCase().trim()}async initializeAudioSystem(){if(this.isInitialized)return;this.audioContext=new(window.AudioContext||window.webkitAudioContext),this.audioContext.state==="suspended"&&await this.audioContext.resume(),this.audioEngine=new Mi(this.audioContext);const A=["/FluidR3Mono_GM.sf3","/FluidR3_GM.sf2","/soundfont.sf2"];let e=!1;for(const t of A)try{await this.audioEngine.initialize(t),console.log(`Loaded soundfont: ${t}`),e=!0;break}catch(i){console.warn(`Failed to load soundfont ${t}:`,i.message)}if(!e)throw new Error("No soundfont could be loaded");this.setupMasterAudioGraph(),this.isInitialized=!0,console.log("AudioEngineService initialized successfully")}setupMasterAudioGraph(){this.masterGain=this.audioContext.createGain(),this.masterGain.gain.value=this.masterVolume,this.masterGain.connect(this.audioContext.destination),this.metronomeGain=this.audioContext.createGain(),this.metronomeGain.gain.value=.7,this.metronomeGain.connect(this.audioContext.destination)}async initialize(A){if(this.isInitialized||await this.initializeAudioSystem(),this.cleanup(),this.musicData=A,A.midiData)console.log(A),await this.setupMidiPlayback(A.midiData,A.metadata);else{if(this.beats=A.beats||[],this.practiceMarks=A.marks||A.practiceMarks||{},this.beats.length>0){const e=this.beats[this.beats.length-1],t=e.tempo>0?60/e.tempo:.75;this.songDuration=e.time+t,this.maxBar=Math.max(...this.beats.map(i=>i.bar))}else this.songDuration=0,this.maxBar=0;this.setupLegacyParts(A.parts||[]),this.eventBus.emit("initialized",{parts:Array.from(this.parts.values())})}}async setupMidiPlayback(A,e){try{this.playbackManager=new bi(this.audioEngine,{metronome:{enabled:!0,tickInstrument:115,accentInstrument:116,volume:.7},leadIn:{enabled:!0,bars:1},startup:{delayMs:25}}),this.setupPlaybackManagerEventDelegation(),await this.playbackManager.load(A,e);const t=this.playbackManager.getPartNames();this.setupMidiParts(t),this.eventBus.emit("initialized",{parts:Array.from(this.parts.values())}),await this.setupPartAudioRouting(t),this.setupMetronomeAudioRouting(),this.extractMusicDataFromPlayer(),this.updateSongDurationFromPlayer(),console.log("MIDI playback with PlaybackManager setup complete")}catch(t){throw console.error("Failed to setup MIDI playback:",t),t}}setupMidiParts(A){A.forEach(e=>{const t=this.sanitizePartName(e);this.parts.set(t,{name:e,sanitizedName:t,volume:.75,muted:!1,solo:!1})})}async setupPartAudioRouting(){for(const[A,e]of this.playbackManager.getPartOutputs()){const t=this.audioContext.createGain();t.gain.value=1;const i=this.audioContext.createAnalyser();i.fftSize=256,i.smoothingTimeConstant=.3,e.connect(t),t.connect(i),i.connect(this.masterGain);const a=this.sanitizePartName(A);this.partGainNodes.set(a,t),this.partAnalyserNodes.set(a,i),console.log(`Audio routing established for part: ${A}`)}}setupMetronomeAudioRouting(){this.playbackManager.getMetronomeOutput().connect(this.metronomeGain),console.log("Metronome audio routing established")}extractMusicDataFromPlayer(){try{this.beats=this.playbackManager.getBeats(),this.practiceMarks=this.playbackManager.getPracticeMarks(),this.beats.length>0?this.maxBar=Math.max(...this.beats.map(A=>A.bar)):this.maxBar=0,console.log(`Extracted ${this.beats.length} beats and ${Object.keys(this.practiceMarks).length} practice marks from player`),this.eventBus.emit("musicDataExtracted",{beats:this.beats,practiceMarks:this.practiceMarks,maxBar:this.maxBar})}catch(A){console.warn("Could not extract music data from player:",A),this.beats=[],this.practiceMarks={},this.maxBar=0}}updateSongDurationFromPlayer(){let A=this.playbackManager.getTotalDuration();A&&A>0?(this.songDuration=A,this.musicData&&(this.musicData.duration=A),this.eventBus.emit("durationUpdated",{duration:A})):console.warn("Could not get duration from player")}snapTimeToBarStart(A){try{const e=this.getBarFromTime(A);if(e){const t=this.getTimeFromBar(e.bar,e.repeat);if(t!==null)return t}}catch(e){console.warn("Failed to snap time to bar start:",e)}return A}emitTimeAndBarUpdates(A){this.eventBus.emit("timeChanged",{currentTime:A});const e=this.getBarFromTime(A);e&&this.eventBus.emit("barChanged",e)}setupPlaybackManagerEventDelegation(){this.playbackManager.on("timeupdate",({currentTime:A,leadInProgress:e})=>{this.currentTime=A,this.eventBus.emit("timeChanged",{currentTime:A,leadInProgress:e});const t=this.getBarFromTime(A);t&&this.eventBus.emit("barChanged",t)}),this.playbackManager.on("beatChanged",({bar:A,beat:e,isLeadIn:t,repeat:i,time:a})=>{this.eventBus.emit("barChanged",{bar:A,beat:e,repeat:i,time:a,isLeadIn:t})}),this.playbackManager.on("leadInStarted",({totalBeats:A,duration:e,bars:t})=>{this.eventBus.emit("leadInStarted",{bars:t,totalBeats:A,duration:e})}),this.playbackManager.on("leadInEnded",()=>{this.eventBus.emit("leadInCompleted")}),this.playbackManager.on("playbackStarted",()=>{this.isPlaying=!0,this.eventBus.emit("playbackStateChanged",{isPlaying:!0,currentTime:this.currentTime})}),this.playbackManager.on("playbackPaused",()=>{this.isPlaying=!1,this.eventBus.emit("playbackStateChanged",{isPlaying:!1,currentTime:this.currentTime})}),this.playbackManager.on("playbackStopped",()=>{this.isPlaying=!1,this.eventBus.emit("playbackStateChanged",{isPlaying:!1,currentTime:this.currentTime})}),this.playbackManager.on("playbackEnded",()=>{this.isPlaying=!1,this.eventBus.emit("playbackStateChanged",{isPlaying:!1,currentTime:this.currentTime}),this.eventBus.emit("songEnded",{finalTime:this.currentTime})})}setupLegacyParts(A){A&&A.forEach(e=>{const t=this.sanitizePartName(e.name);this.parts.set(t,{name:e.name,sanitizedName:t,volume:e.volume||.75,muted:!1,solo:!1})})}getCurrentToggleStates(){const A=this.getLeadInSettings();return{metronome:this.metronomeEnabled||!1,leadIn:this.leadInEnabled!==!1,leadInBars:A.bars}}updateToggleStates(A,e){this.setMetronomeEnabled(A),this.leadInEnabled=e}setMetronomeEnabled(A){this.metronomeEnabled=A,this.playbackManager.setMetronomeEnabled(A)}setLeadInBars(A){this.playbackManager.setLeadInBars(A)}setLeadInEnabled(A){this.leadInEnabled=A,this.playbackManager.setLeadInEnabled(A)}getLeadInSettings(){return this.playbackManager.getLeadInSettings()}play(A={}){const e=this.getCurrentToggleStates();A.leadInBars!==void 0&&this.setLeadInBars(A.leadInBars),this.playbackManager.play({leadIn:A.leadIn!==void 0?A.leadIn:e.leadIn,metronome:A.metronome!==void 0?A.metronome:e.metronome})}stop(){this.playbackManager.pause()}pause(){this.stop()}setTime(A){const e=this.snapTimeToBarStart(A);this.currentTime=Math.max(0,e),this.playbackManager.skipToTime(this.currentTime),this.emitTimeAndBarUpdates(this.currentTime)}getCurrentTime(){return this.playbackManager.getCurrentTime()}setBar(A,e=0){this.playbackManager.setBar(A,e);const t=this.getCurrentTime();this.currentTime=t,this.emitTimeAndBarUpdates(t)}goToPracticeMark(A){const e=this.practiceMarks[A];e!==void 0&&(this.setBar(e),this.eventBus.emit("practiceMarkChanged",{mark:A,bar:e}))}setPlaybackSpeed(A){this.playbackSpeed=Math.max(.25,Math.min(2,A)),this.playbackManager.setPlaybackSpeed(A,!1),this.eventBus.emit("speedChanged",{speed:this.playbackSpeed})}setMasterVolume(A){this.masterVolume=Math.max(0,Math.min(1,A)),this.masterGain&&(this.masterGain.gain.value=this.masterVolume),this.eventBus.emit("masterVolumeChanged",{volume:this.masterVolume})}getMasterVolume(){return this.masterVolume}setMetronomeVolume(A){const e=Math.max(0,Math.min(1,A));this.metronomeGain&&(this.metronomeGain.gain.value=e),this.metronomeVolume=e}getMetronomeVolume(){return this.metronomeVolume||.7}setPartVolume(A,e){const t=this.sanitizePartName(A),i=this.parts.get(t);i?(i.volume=Math.max(0,Math.min(1,e)),this.updatePartAudioState(t),this.eventBus.emit("partVolumeChanged",{partName:A,volume:e})):(console.log(`Part not found: "${A}" (sanitized: "${t}")`),console.log("Available parts:",[...this.parts.keys()]))}setPartMuted(A,e){const t=this.sanitizePartName(A),i=this.parts.get(t);i&&(i.muted=e,this.updatePartAudioState(t),this.eventBus.emit("partMutedChanged",{partName:A,muted:e}))}setPartSolo(A,e){const t=this.sanitizePartName(A),i=this.parts.get(t);i&&(i.solo=e,this.updateAllPartsAudioState(),this.eventBus.emit("partSoloChanged",{partName:A,solo:e}))}isPartEffectivelyMuted(A){const e=this.sanitizePartName(A),t=this.parts.get(e);return!t||t.muted?!0:Array.from(this.parts.values()).some(a=>a.solo)&&!t.solo}updatePartAudioState(A){const e=this.parts.get(A),t=this.partGainNodes.get(A);if(e&&t){const i=this.isPartEffectivelyMuted(e.name);t.gain.value=i?0:e.volume}}updateAllPartsAudioState(){for(const[A]of this.parts)this.updatePartAudioState(A)}getParts(){return Array.from(this.parts.values())}getPartLevel(A){const e=this.sanitizePartName(A),t=this.partAnalyserNodes.get(e);if(!t)return 0;try{const i=t.frequencyBinCount,a=new Uint8Array(i);t.getByteFrequencyData(a);let s=0;for(let I=0;I<i;I++){const o=a[I]/255;s+=o*o}const g=Math.sqrt(s/i);return Math.min(1,Math.pow(g*2,.7))}catch(i){return console.warn(`Failed to get level for part ${A}:`,i),0}}playLeadIn(A=1){this.setLeadInBars(A),this.playbackManager.play({leadIn:!0,metronome:!0})}playStartingNotes(){console.log(this.parts);const A=[...this.parts.values()],e=A.some(i=>i.solo),t=A.filter(i=>e?i.solo:!i.muted).map(i=>i.name);console.log(A,e,t),this.playbackManager.previewNextNotes({instrument:"piano",delayBetweenParts:.4,duration:.6,velocity:110,partOrder:t})}on(A,e){this.eventBus.on(A,e)}off(A,e){this.eventBus.off(A,e)}getBarFromTime(A){const e=this.playbackManager.midiPlayer.getBeatFromTime(A);return e?{bar:e.bar,beat:e.beat,repeat:e.repeat||0,time:e.time||A}:null}getTimeFromBar(A,e=0){return this.playbackManager.midiPlayer.getTimeFromBar(A,e)}allSoundsOff(){this.playbackManager&&this.playbackManager.allSoundsOff()}cleanup(){if(this.playbackManager)try{this.playbackManager.pause()}catch{}if(this.partGainNodes.forEach(A=>{try{A.disconnect()}catch{}}),this.partAnalyserNodes.forEach(A=>{try{A.disconnect()}catch{}}),this.playbackManager){try{this.playbackManager.destroy()}catch{}this.playbackManager=null}this.parts.clear(),this.partGainNodes.clear(),this.partAnalyserNodes.clear(),this.beats=[],this.practiceMarks={},this.songDuration=0,this.maxBar=0}destroy(){this.cleanup(),this.audioEngine&&this.audioEngine.destroy(),this.audioContext&&this.audioContext.state!=="closed"&&this.audioContext.close(),this.eventBus.all.clear()}}const U=new Ui;function pe(){const n=ne(),A=fe(),e=an(),t=({currentTime:S})=>{n.setCurrentTime(S)},i=({isPlaying:S})=>{n.setPlaybackState(S),e.setTransportState(S?"playing":"stopped")},a=S=>{S&&(n.isLeadInActive?S.isLeadIn&&S.beat!==void 0&&n.setCurrentBar(null,S.beat,null):(n.setCurrentBar(S.bar,S.beat,S.repeat),e.updateLastBarPosition(S.bar)))},s=({speed:S})=>{n.setPlaybackSpeed(S)},g=({volume:S})=>{n.setMasterVolume(S)},I=({partName:S,volume:v})=>{n.setPartVolume(S,v)},o=({partName:S,muted:v})=>{n.setPartMuted(S,v)},B=({partName:S,solo:v})=>{n.setPartSolo(S,v)},C=({bars:S})=>{n.setLeadInActive(!0,S)},Q=()=>{n.setLeadInActive(!1)},c=()=>{n.setStartingNotesActive(!0)},r=()=>{n.setStartingNotesActive(!1)},m=({mark:S})=>{e.updateLastPracticeMarkUsed(S)},F=({parts:S})=>{n.initializeParts(S),A.setParts(S)},k=({finalTime:S})=>{n.setPlaybackState(!1),e.setTransportState("stopped"),console.log(`Song ended at time: ${S}`)},R=({duration:S})=>{console.log("Updating total duration in store to:",S),A.setTotalDuration(S)},b=({beats:S,practiceMarks:v,maxBar:Z})=>{console.log(`Updating music data store with ${S.length} beats and ${Object.keys(v).length} practice marks`),A.updateBeats(S),A.practiceMarks=v,A.maxBar=Z},q=()=>{U.on("timeChanged",t),U.on("playbackStateChanged",i),U.on("barChanged",a),U.on("speedChanged",s),U.on("masterVolumeChanged",g),U.on("partVolumeChanged",I),U.on("partMutedChanged",o),U.on("partSoloChanged",B),U.on("leadInStarted",C),U.on("leadInCompleted",Q),U.on("startingNotesStarted",c),U.on("startingNotesCompleted",r),U.on("practiceMarkChanged",m),U.on("initialized",F),U.on("songEnded",k),U.on("durationUpdated",R),U.on("musicDataExtracted",b)},w=()=>{U.off("timeChanged",t),U.off("playbackStateChanged",i),U.off("barChanged",a),U.off("speedChanged",s),U.off("masterVolumeChanged",g),U.off("partVolumeChanged",I),U.off("partMutedChanged",o),U.off("partSoloChanged",B),U.off("leadInStarted",C),U.off("leadInCompleted",Q),U.off("startingNotesStarted",c),U.off("startingNotesCompleted",r),U.off("practiceMarkChanged",m),U.off("initialized",F),U.off("songEnded",k),U.off("durationUpdated",R),U.off("musicDataExtracted",b)};(()=>{E.watchEffect(()=>{const S=n.masterVolume;try{U.getMasterVolume()!==S&&U.setMasterVolume(S)}catch(v){console.warn("Master volume sync skipped during initialization:",v.message)}}),E.watchEffect(()=>{const S=n.metronomeVolume;try{U.getMetronomeVolume()!==S&&U.setMetronomeVolume(S)}catch(v){console.warn("Metronome volume sync skipped during initialization:",v.message)}})})();const P=async S=>{try{if(n.setLoaded(!1),q(),A.loadMusicData(S),S.midiData)await U.initialize(S);else if(await U.initialize({beats:S.beats,practiceMarks:S.marks||S.practiceMarks,parts:S.parts}),S.beats&&S.beats.length>0){const v=S.beats[0];n.setCurrentBar(v.bar,v.beat,v.repeat),U.setTime(v.time)}U.updateToggleStates(n.metronomeEnabled,n.leadInEnabled),n.setLoaded(!0)}catch(v){throw console.error("Failed to initialize audio engine:",v),n.setLoaded(!1),v}},cA=()=>{U.play()},CA=()=>{U.stop()},IA=()=>{U.pause()},Y=S=>{U.setTime(S)},j=(S,v=0)=>{U.setBar(S,v)},H=S=>{U.goToPracticeMark(S)},K=S=>{U.setPlaybackSpeed(S)},W=S=>{U.setMasterVolume(S)},M=(S,v)=>{U.setPartVolume(S,v)},D=(S,v)=>{U.setPartMuted(S,v)},x=(S,v)=>{U.setPartSolo(S,v)},AA=(S=1)=>{U.playLeadIn(S)},nA=()=>{U.playStartingNotes()},wA=(S,v=!0,Z=0)=>{v&&e.leadInEnabled?(j(S,Z),AA(e.leadInBars)):(j(S,Z),cA())},NA=(S,v=!0)=>{const Z=A.getBarForMark(S);Z&&wA(Z,v)},UA=()=>{const S=!n.metronomeEnabled;return n.setMetronomeEnabled(S),U.setMetronomeEnabled(S),S},OA=()=>{const S=!n.leadInEnabled;return n.setLeadInEnabled(S),U.updateToggleStates(n.metronomeEnabled,S),S};return E.onUnmounted(()=>{w()}),{initialize:P,play:cA,stop:CA,pause:IA,setTime:Y,setBar:j,goToPracticeMark:H,setPlaybackSpeed:K,setMasterVolume:W,setPartVolume:M,setPartMuted:D,setPartSolo:x,getPartLevel:S=>U.getPartLevel(S),playLeadIn:AA,playStartingNotes:nA,toggleMetronome:UA,toggleLeadIn:OA,setMetronomeEnabled:S=>{n.setMetronomeEnabled(S),U.setMetronomeEnabled(S)},playFromBar:wA,playFromMark:NA,audioState:n,musicData:A,playbackState:e,audioEngine:U}}const on=VA({__name:"PartControl",props:E.mergeModels({name:{type:String,required:!0},level:{type:Number,default:0,validator:n=>n>=0&&n<=1}},{volume:{default:.75},volumeModifiers:{},mute:{default:!1},muteModifiers:{},solo:{default:!1},soloModifiers:{}}),emits:["update:volume","update:mute","update:solo"],setup(n){E.useCssVars(c=>({"746d5fc3":o.value}));const A=n;ne();const e=pe(),t=E.useModel(n,"volume"),i=E.useModel(n,"mute"),a=E.useModel(n,"solo");E.watch(t,c=>{e.setPartVolume(A.name,c)}),E.watch(i,c=>{e.setPartMuted(A.name,c)}),E.watch(a,c=>{e.setPartSolo(A.name,c)});const s=E.useTemplateRef("el"),{width:g,height:I}=te(s),o=E.computed(()=>Math.min(g.value,I.value)+"px"),B=E.computed(()=>g.value>I.value?"mobile":g.value<60?"tablet":"desktop");let C=null;const Q=E.ref(0);return E.onMounted(()=>{C=setInterval(()=>{if(i.value)Q.value=0;else try{Q.value=e.getPartLevel(A.name)}catch{Qt("randomLevelIndicators")?Q.value=Math.random()*t.value:Q.value=0}},16)}),E.onUnmounted(()=>{C&&(clearInterval(C),C=null)}),(c,r)=>(E.openBlock(),E.createElementBlock("div",{ref_key:"el",ref:s,class:E.normalizeClass([B.value,"part"])},[E.createVNode(nn,{class:"tri",mute:i.value,"onUpdate:mute":r[0]||(r[0]=m=>i.value=m),solo:a.value,"onUpdate:solo":r[1]||(r[1]=m=>a.value=m)},null,8,["mute","solo"]),E.createVNode(ct,{align:"left",class:"name"},{default:E.withCtx(()=>[E.createTextVNode(E.toDisplayString(n.name),1)]),_:1}),E.createVNode(Ue,{level:Q.value,"show-level":!0,class:"vol",value:t.value,"onUpdate:value":r[2]||(r[2]=m=>t.value=m)},null,8,["level","value"])],2))}},[["__scopeId","data-v-9ca7f6e9"]]),vi={class:"mark"},Li={class:"rpt"},Ni={class:"beat-ind"},Ti={class:"beat"},Ji={key:1,class:"mark-grid-container"},Ki={class:"mark-grid"},xi=["onClick"],rn=VA({__name:"BarInput",setup(n){E.useCssVars(K=>({b117cda6:k.value,"7cd7b1c8":R.value}));const A=E.useTemplateRef("el"),e=E.useTemplateRef("rpt"),{width:t,height:i}=te(A),a=fe(),s=ne(),g=pe(),I=E.ref("1"),o=E.ref("A"),B=E.ref(0),C=E.ref(2),Q=E.ref(!1),c=E.ref(!1),r=E.ref(!1),m=E.ref(!0);let F=null;E.watch(()=>{var K;return((K=a.beats)==null?void 0:K.length)>0},K=>{console.log(K),K&&!Q.value&&(I.value=s.currentBar.toString(),B.value=s.currentRepeat,C.value=a.getRepeatCountForBar(s.currentBar),w(s.currentBar),Q.value=!0)}),E.watch(()=>s.currentBar,K=>{C.value=a.getRepeatCountForBar(K)}),E.watch(I,()=>{I.value=I.value.replace(/\D/g,""),I.value.length>3&&(I.value=I.value.slice(0,3))}),E.watch(()=>s.currentBar,K=>{I.value=K.toString(),w(K)}),E.watch(()=>s.currentBeat,()=>{m.value=!0,setTimeout(()=>{m.value=!1},50)}),E.watch(c,()=>{c.value&&H()});const k=E.computed(()=>Math.min(i.value/2.25,t.value/4.5)+"px"),R=E.computed(()=>Math.min(t.value/15,i.value/6.4)+"px"),b=E.computed(()=>Object.keys(a.practiceMarks).sort()),q=E.computed(()=>b.value.length>0);function w(K){const W=Object.keys(a.practiceMarks).filter(M=>a.practiceMarks[M]<=K).sort((M,D)=>a.practiceMarks[D]-a.practiceMarks[M]);W.length>0&&(o.value=W[0])}function N(){const K=parseInt(I.value);K&&K>0&&P(K)}function P(K){g.setBar(K,0)}function cA(K,W){W&&W.stopPropagation(),o.value=K,c.value=!1,g.goToPracticeMark(K)}function CA(){C.value>1&&(r.value=!0),s.currentRepeat<C.value&&g.setBar(s.currentBar,s.currentRepeat+1)}function IA(){C.value>1&&(r.value=!0),s.currentRepeat>1&&g.setBar(s.currentBar,s.currentRepeat-1)}function Y(K){q.value&&(K.stopPropagation(),r.value=!1,c.value=!c.value)}function j(K){var W,M;(W=A.value)!=null&&W.contains(K.target)||(c.value=!1),(M=e.value)!=null&&M.contains(K.target)||(r.value=!1)}function H(){c.value&&setTimeout(()=>{var M,D;const K=(M=A.value)==null?void 0:M.querySelector(".mark-grid"),W=(D=A.value)==null?void 0:D.querySelector(".mark-option.selected");if(W&&K){const x=K.getBoundingClientRect(),AA=W.getBoundingClientRect(),nA=AA.left-x.left-x.width/2+AA.width/2;K.scrollLeft=Math.max(0,K.scrollLeft+nA)}},50)}return E.onMounted(()=>{document.addEventListener("click",j),Qt("beatAnimation")&&(F=setInterval(()=>{const K=s.currentBeat%a.timeSignature+1;s.setCurrentBar(s.currentBar,K,s.currentRepeat)},800))}),E.onUnmounted(()=>{document.removeEventListener("click",j),F&&(clearInterval(F),F=null)}),(K,W)=>(E.openBlock(),E.createElementBlock("div",{ref_key:"el",ref:A,class:E.normalizeClass(["outer",{pulse:m.value,"mark-selecting":c.value}])},[W[6]||(W[6]=E.createElementVNode("div",{class:"frame"},null,-1)),E.createElementVNode("div",{class:E.normalizeClass(["mark-input",{empty:!o.value,edit:c.value,disabled:!q.value}]),onClick:Y},[E.createElementVNode("div",vi,E.toDisplayString(q.value?o.value:"-"),1)],2),W[7]||(W[7]=E.createElementVNode("div",{class:"mark-title"},"Mark",-1)),c.value?E.createCommentVNode("",!0):(E.openBlock(),E.createElementBlock(E.Fragment,{key:0},[E.withDirectives(E.createElementVNode("input",{type:"text",class:"bar-input","onUpdate:modelValue":W[0]||(W[0]=M=>I.value=M),inputmode:"decimal",pattern:"\\d*",onChange:N,onKeyup:E.withKeys(N,["enter"])},null,544),[[E.vModelText,I.value]]),W[3]||(W[3]=E.createElementVNode("div",{class:"bar-title"},"Bar",-1)),E.createElementVNode("div",{ref_key:"rpt",ref:e,class:E.normalizeClass(["rpt-input",{edit:r.value,available:C.value>1}])},[E.createElementVNode("div",Li,E.toDisplayString(E.unref(s).currentRepeat||"-"),1),(E.openBlock(),E.createElementBlock("svg",{class:E.normalizeClass(["inc",{disabled:E.unref(s).currentRepeat>=C.value}]),viewBox:"0 -100 100 100",onClick:E.withModifiers(CA,["prevent"])},W[1]||(W[1]=[E.createElementVNode("path",{d:"m10-20 40-60 40 60H10Z"},null,-1)]),2)),(E.openBlock(),E.createElementBlock("svg",{class:E.normalizeClass(["dec",{disabled:E.unref(s).currentRepeat<=1}]),viewBox:"0 -100 100 100",onClick:E.withModifiers(IA,["prevent"])},W[2]||(W[2]=[E.createElementVNode("path",{d:"m10-80 40 60 40-60H10Z"},null,-1)]),2))],2),W[4]||(W[4]=E.createElementVNode("div",{class:"rpt-title"},"Rpt",-1)),E.createElementVNode("div",Ni,[E.createElementVNode("div",Ti,E.toDisplayString(E.unref(s).currentBeat),1)]),W[5]||(W[5]=E.createElementVNode("div",{class:"beat-title"},"Beat",-1))],64)),c.value?(E.openBlock(),E.createElementBlock("div",Ji,[E.createElementVNode("div",Ki,[(E.openBlock(!0),E.createElementBlock(E.Fragment,null,E.renderList(b.value,M=>(E.openBlock(),E.createElementBlock("div",{key:M,class:E.normalizeClass(["mark-option",{selected:M===o.value}]),onClick:D=>cA(M,D)},E.toDisplayString(M),11,xi))),128))])])):E.createCommentVNode("",!0)],2))}},[["__scopeId","data-v-6281baf2"]]),Vi={class:"title"},ft=VA({__name:"BaseNumericInput",props:E.mergeModels({title:{type:String,required:!0},color:{type:String,default:"#336"},focusColor:{type:String,default:"#558"},textColor:{type:String,default:"#aad"},backgroundColor:{type:String,default:"#111117"},sliderMax:{type:Number,default:1},sliderMin:{type:Number,default:0},thumbLength:{type:Number,default:2},formatValue:{type:Function,default:n=>n.toString()},parseValue:{type:Function,default:n=>parseFloat(n)},validateInput:{type:Function,default:n=>n.replace(/[^0-9.]/g,"")},transformSliderToDisplay:{type:Function,default:n=>n},transformDisplayToSlider:{type:Function,default:n=>n},maxChars:{type:Number,default:null}},{value:{default:.5},valueModifiers:{}}),emits:["update:value"],setup(n){E.useCssVars(B=>({"0d0963e0":n.textColor,"4ad34b2f":n.backgroundColor,"02156786":n.color,"715a9528":I.value,"30d64f7d":g.value,b8fbe65e:n.focusColor}));const A=n,e=E.useTemplateRef("el"),{width:t,height:i}=te(e),a=E.useModel(n,"value"),s=E.ref(A.formatValue(A.transformSliderToDisplay(a.value)));E.watch(a,()=>{const B=A.transformSliderToDisplay(a.value);s.value=A.formatValue(B)}),E.watch(s,()=>{s.value=A.validateInput(s.value),A.maxChars&&s.value.length>A.maxChars&&(s.value=s.value.slice(0,A.maxChars))});const g=E.computed(()=>Math.min(i.value/2.25,t.value/2.2)+"px"),I=E.computed(()=>Math.min(t.value/3,i.value/6.4)+"px");function o(){const B=A.parseValue(s.value),C=A.transformDisplayToSlider(B);a.value=Math.min(Math.max(C,A.sliderMin),A.sliderMax)}return(B,C)=>(E.openBlock(),E.createElementBlock("div",{class:"outer",ref_key:"el",ref:e},[C[2]||(C[2]=E.createElementVNode("div",{class:"frame"},null,-1)),E.withDirectives(E.createElementVNode("input",{type:"text",class:"input","onUpdate:modelValue":C[0]||(C[0]=Q=>s.value=Q),inputmode:"decimal",pattern:"\\d*",onChange:o},null,544),[[E.vModelText,s.value]]),E.createElementVNode("div",Vi,E.toDisplayString(n.title),1),E.createVNode(Ue,{class:"slider",value:a.value,"onUpdate:value":C[1]||(C[1]=Q=>a.value=Q),"thumb-length":n.thumbLength,max:n.sliderMax,min:n.sliderMin},null,8,["value","thumb-length","max","min"])],512))}},[["__scopeId","data-v-79c7a539"]]),In={__name:"SpeedInput",setup(n){const A=ne(),e=pe(),t=E.computed({get:()=>Math.log2(A.playbackSpeed)*.5+.5,set:o=>{const B=Math.pow(2,o*2-1);e.setPlaybackSpeed(B)}}),i=o=>Math.floor(Math.pow(2,o*2-1)*100+.5)+"",a=o=>parseFloat(o),s=o=>o.replace(/\D/g,""),g=o=>o,I=o=>{const B=Math.log2(o/100)*.5+.5;return Math.min(Math.max(B,0),1)};return(o,B)=>(E.openBlock(),E.createBlock(ft,{value:t.value,"onUpdate:value":B[0]||(B[0]=C=>t.value=C),title:"Speed",color:"#336","text-color":"#aad","format-value":i,"parse-value":a,"validate-input":s,"transform-slider-to-display":g,"transform-display-to-slider":I,"thumb-length":2,"max-chars":3},null,8,["value"]))}},gn={__name:"TimeInput",setup(n){const A=ne(),e=fe(),t=pe(),i=o=>o.toFixed(1),a=o=>parseFloat(o),s=o=>o.replace(/[^0-9.]/g,""),g=o=>o,I=o=>o;return(o,B)=>(E.openBlock(),E.createBlock(ft,{value:E.unref(A).currentTime,"onUpdate:value":[B[0]||(B[0]=C=>E.unref(A).currentTime=C),E.unref(t).setTime],title:"Time",color:"#344","focus-color":"#556868","text-color":"#acc","background-color":"#111117","slider-max":E.unref(e).totalDuration,"slider-min":0,"format-value":i,"parse-value":a,"validate-input":s,"transform-slider-to-display":g,"transform-display-to-slider":I,"thumb-length":2},null,8,["value","onUpdate:value","slider-max"]))}},Yi={class:"inner"},Ee=VA({__name:"AudioButton",setup(n){const A=E.ref(!1),e=()=>A.value=!0,t=()=>A.value=!1;return(i,a)=>(E.openBlock(),E.createElementBlock("div",{class:E.normalizeClass(["button-outer",{down:A.value}]),onPointerdown:e,onPointerup:t,onPointerleave:t},[E.createElementVNode("div",Yi,[E.renderSlot(i.$slots,"default",{},void 0,!0)])],34))}},[["__scopeId","data-v-0d7af06e"]]),Oi={class:"outer"},Pi={class:"title"},Hi={class:"buttons"},Zi={class:"icon",viewBox:"0 0 48 48"},Wi=["d"],En=VA({__name:"MixerControls",setup(n){const A=fe(),e=ne(),t=pe();function i(){e.isPlaying?t.stop():t.play()}function a(){const b=e.currentTime,q=A.beats.filter(N=>N.beat===1).sort((N,P)=>N.time-P.time);let w=null;for(let N=q.length-1;N>=0;N--)if(q[N].time<b){w=q[N];break}w&&t.setBar(w.bar,w.repeat)}function s(){const b=e.currentTime,q=A.beats.filter(N=>N.beat===1).sort((N,P)=>N.time-P.time);let w=null;for(let N=0;N<q.length;N++)if(q[N].time>b){w=q[N];break}w&&t.setBar(w.bar,w.repeat)}function g(){t.playStartingNotes()}const I=E.computed(()=>e.metronomeEnabled),o=E.computed(()=>e.leadInEnabled),B=E.ref(!1),C=E.ref(null);function Q(){B.value=!B.value,B.value&&t.audioEngine.initializeAudioSystem().catch(b=>{console.warn("Audio system pre-initialization failed:",b)})}function c(){B.value=!1}function r(b){C.value&&!C.value.contains(b.target)&&c()}E.onMounted(()=>{document.addEventListener("click",r)}),E.onUnmounted(()=>{document.removeEventListener("click",r)});function m(){t.toggleMetronome()}function F(){t.toggleLeadIn()}const k=E.computed({get:()=>e.masterVolume,set:b=>e.setMasterVolume(b)}),R=E.computed({get:()=>e.metronomeVolume,set:b=>e.setMetronomeVolume(b)});return(b,q)=>(E.openBlock(),E.createElementBlock("div",Oi,[E.createElementVNode("div",Pi,[E.createVNode(ct,{class:"text",align:"centre"},{default:E.withCtx(()=>[E.createTextVNode(E.toDisplayString(E.unref(A).title),1)]),_:1}),E.createElementVNode("div",{class:"menu-container",ref_key:"menuRef",ref:C},[(E.openBlock(),E.createElementBlock("svg",{class:"menu",viewBox:"0 -960 960 960",onClick:Q},q[2]||(q[2]=[E.createElementVNode("path",{d:"M120-240v-80h720v80H120Zm0-200v-80h720v80H120Zm0-200v-80h720v80H120Z"},null,-1)]))),B.value&&b.$slots.menu?(E.openBlock(),E.createElementBlock("div",{key:0,class:"dropdown-menu",onClick:c},[E.renderSlot(b.$slots,"menu",{},void 0,!0)])):E.createCommentVNode("",!0)],512)]),E.createVNode(Ue,{class:"main",colour:"red",value:k.value,"onUpdate:value":q[0]||(q[0]=w=>k.value=w)},null,8,["value"]),E.createVNode(Ue,{class:"tick",colour:"blue",value:R.value,"onUpdate:value":q[1]||(q[1]=w=>R.value=w)},null,8,["value"]),q[8]||(q[8]=E.createElementVNode("div",{class:"main-t"},"Main",-1)),q[9]||(q[9]=E.createElementVNode("div",{class:"tick-t"},"Tick",-1)),E.createVNode(rn,{class:"bar"}),E.createVNode(gn,{class:"time"}),E.createVNode(In,{class:"speed"}),E.createElementVNode("div",Hi,[E.createVNode(Ee,{class:"button",onClick:a},{default:E.withCtx(()=>q[3]||(q[3]=[E.createElementVNode("svg",{class:"icon",viewBox:"0 0 48 48"},[E.createElementVNode("path",{d:"M11 36V12h3v24Zm26 0L19.7 24 37 12Z"})],-1)])),_:1,__:[3]}),E.createVNode(Ee,{class:"button",onClick:i},{default:E.withCtx(()=>[(E.openBlock(),E.createElementBlock("svg",Zi,[E.createElementVNode("path",{d:E.unref(e).isPlaying?"M27.4 35.4V12.6h8v22.8Zm-14.8 0V12.6h8.05v22.8Z":"M16 37.85v-28l22 14Z"},null,8,Wi)]))]),_:1}),E.createVNode(Ee,{class:"button",onClick:s},{default:E.withCtx(()=>q[4]||(q[4]=[E.createElementVNode("svg",{class:"icon",viewBox:"0 0 48 48"},[E.createElementVNode("path",{d:"M34 36V12h3v24Zm-23 0V12l17.3 12Z"})],-1)])),_:1,__:[4]}),E.createVNode(Ee,{class:"button",onClick:m},{default:E.withCtx(()=>[(E.openBlock(),E.createElementBlock("svg",{class:E.normalizeClass(["icon",I.value?"on":"off"]),viewBox:"-128 -128 768 768"},q[5]||(q[5]=[E.createElementVNode("path",{d:"m 463.84136,154.89339 c -6.42,-6.42 -16.83,-6.42 -23.251,0 -71.31197,70.35135 -136.61146,132.25426 -208.741,199.7 h -105.82 c 23.35495,-140.1063 67.13099,-217.59716 120.727,-318.357996 0.86,-0.803 2.209,-0.801 3.067,-10e-4 20.50653,37.383983 48.51152,88.812606 72.26194,147.190756 1.186,9.002 12.2214,17.4338 23.3242,11.71391 9.002,-1.186 11.1594,-12.2324 9.9724,-21.2344 -21.69905,-53.89113 -30.43965,-85.078342 -83.11454,-161.702266 -13.446,-12.55299965 -34.508,-12.55699965 -47.954,10e-4 C 126.80877,149.30021 96.099465,324.74626 77.091365,474.25139 c -2.829,21.473 13.907,40.535 35.543995,40.535 h 271.311 c 21.661,0 38.373,-19.087 35.544,-40.535 -8.26237,-52.34207 -14.88466,-100.7074 -24.7871,-157.02622 -6.40949,-11.78839 -8.3911,-14.9907 -17.4031,-13.8037 -9.002,1.186 -13.59751,8.0528 -12.41051,17.0548 l 5.66371,34.11712 h -83.159 c 64.35441,-63.86663 129.29308,-130.29894 176.448,-176.449 6.42,-6.42 6.42,-16.83 -10e-4,-23.251 z m -88.956,232.582 12.004,91.074 c 0.112,0.846 -0.148,1.701 -0.708,2.341 -0.566,0.645 -1.38,1.014 -2.235,1.014 h -271.311 c -0.855,0 -1.668,-0.369 -2.231,-1.011 -0.564,-0.643 -0.824,-1.499 -0.712,-2.347 l 12.003,-91.072 h 253.19 z"},null,-1)]),2))]),_:1}),E.createVNode(Ee,{class:"button",onClick:F},{default:E.withCtx(()=>[(E.openBlock(),E.createElementBlock("svg",{class:E.normalizeClass(["icon",o.value?"on":"off"]),viewBox:"-2 -2 28 28"},q[6]||(q[6]=[E.createElementVNode("path",{d:"m 8.9838564,1.5166215 v 2 h 5.9999996 v -2 z m 2.9999996,3 c -4.9699996,0 -8.9999996,4.0299999 -8.9999996,8.9999995 0,4.97 4.02,9 8.9999996,9 4.98,0 9,-4.03 9,-9 0,-2.12 -0.740703,-4.0693745 -1.970703,-5.6093745 l 1.419922,-1.421875 c -0.43,-0.51 -0.900156,-0.9882031 -1.410156,-1.4082031 l -1.419922,1.4199219 c -1.55,-1.24 -3.499141,-1.9804688 -5.619141,-1.9804688 z m -1.789062,4.7480469 6,4.4999996 -6,4.5 z"},null,-1)]),2))]),_:1}),E.createVNode(Ee,{class:"button",onClick:g},{default:E.withCtx(()=>q[7]||(q[7]=[E.createElementVNode("svg",{class:"icon",viewBox:"0 -960 960 960"},[E.createElementVNode("path",{d:"m 306.66667,-360 q -44,0 -75.33334,-31.33333 Q 200,-422.66667 200,-466.66667 q 0,-44 31.33333,-75.33333 31.33334,-31.33333 75.33334,-31.33333 15.33333,0 28.33333,3.66666 13,3.66667 25,11 V -840 h 160 v 106.66667 H 413.33333 v 266.66666 q 0,44 -31.33333,75.33334 Q 350.66667,-360 306.66667,-360 Z"}),E.createElementVNode("path",{d:"m 546.66667,-120 q -44,0 -75.33334,-31.33333 Q 440,-182.66667 440,-226.66667 q 0,-44 31.33333,-75.33333 31.33334,-31.33333 75.33334,-31.33333 15.33333,0 28.33333,3.66666 13,3.66667 25,11 V -600 h 160 v 106.66667 H 653.33333 v 266.66666 q 0,44 -31.33333,75.33334 Q 590.66667,-120 546.66667,-120 Z"})],-1)])),_:1,__:[7]})])]))}},[["__scopeId","data-v-0fb3932e"]]),Xi={class:"container"},ji={class:"panel"},zi={key:0,class:"blur"},ln=40,Bn=40,Cn=100,_i=50,hn=400,cn=570,Qn=570,$i=350,Aa=330,ea=360,ta=360,na=VA({__name:"MixerLayout",setup(n){E.useCssVars(B=>({38604146:g.value,"38596e60":I.value,"5a8d208e":o.value}));const A=fe(),e=ne(),t=E.useTemplateRef("container"),{width:i}=te(t),a=E.computed(()=>e.isLoaded),s=E.computed(()=>{const B=i.value,C=A.parts.length;return B<640||B<ln*C+hn?0:B<Bn*C+cn?1:B<Cn*C+Qn?2:3}),g=E.computed(()=>{switch(s.value){case 0:return`${$i}px `+`${_i}px `.repeat(A.parts.length);case 1:return`${Aa}px`;case 2:return`${ea}px`;default:return`${ta}px`}}),I=E.computed(()=>{switch(s.value){case 0:return"100vw";case 1:return`${ln}px `.repeat(A.parts.length)+`${hn}px`;case 2:return`${Bn}px `.repeat(A.parts.length)+`${cn}px`;default:return`${Cn}px `.repeat(A.parts.length)+`${Qn}px`}}),o=E.computed(()=>{const B=[...A.parts.keys()];return s.value>0?'"'+B.map(C=>"part"+C).join(" ")+' controls"':'"controls" '+B.map(C=>'"part'+C+'"').join(" ")});return(B,C)=>(E.openBlock(),E.createElementBlock("div",{class:"outer",ref_key:"container",ref:t},[E.createElementVNode("div",Xi,[E.createElementVNode("div",ji,[(E.openBlock(!0),E.createElementBlock(E.Fragment,null,E.renderList(E.unref(A).parts,(Q,c)=>(E.openBlock(),E.createBlock(on,{key:Q.name,class:E.normalizeClass("part"+c),name:Q.name,volume:Q.volume,"onUpdate:volume":r=>Q.volume=r,solo:Q.solo,"onUpdate:solo":r=>Q.solo=r,mute:Q.mute,"onUpdate:mute":r=>Q.mute=r,ref_for:!0,ref:"parts"},null,8,["class","name","volume","onUpdate:volume","solo","onUpdate:solo","mute","onUpdate:mute"]))),128)),E.createVNode(En,{title:E.unref(A).title,class:"controls"},{menu:E.withCtx(()=>[E.renderSlot(B.$slots,"menu",{},void 0,!0)]),_:3},8,["title"]),a.value?E.createCommentVNode("",!0):(E.openBlock(),E.createElementBlock("div",zi))])])],512))}},[["__scopeId","data-v-65e40d1f"]]),ia={class:"outer"},aa={class:"mid"},sa={class:"inner"},oa={key:0,class:"content"},ra=VA({__name:"Placeholder",props:{colour:{type:String,default:"red"},text:{type:String,default:""}},setup(n){return E.useCssVars(A=>({"66bea586":n.colour})),(A,e)=>(E.openBlock(),E.createElementBlock("div",ia,[E.createElementVNode("div",aa,[E.createElementVNode("div",sa,[n.text||A.$slots.default?(E.openBlock(),E.createElementBlock("div",oa,[E.createTextVNode(E.toDisplayString(n.text)+" ",1),E.renderSlot(A.$slots,"default",{},void 0,!0)])):E.createCommentVNode("",!0)])])]))}},[["__scopeId","data-v-dff76c48"]]);class dn{constructor(){this.eventBus=ze(),this.currentTime=0,this.isPlaying=!1,this.playbackSpeed=1,this.masterVolume=.75,this.parts=new Map,this.playbackTimer=null,this.lastTimestamp=0}initialize(A){if(this.musicData=A,this.beats=A.beats||[],this.practiceMarks=A.practiceMarks||{},this.beats.length>0){const e=this.beats[this.beats.length-1],t=e.tempo>0?60/e.tempo:.75;this.songDuration=e.time+t,this.maxBar=Math.max(...this.beats.map(i=>i.bar))}else this.songDuration=0,this.maxBar=0;A.parts&&A.parts.forEach(e=>{this.parts.set(e.name,{name:e.name,volume:e.volume||.75,muted:!1})}),this.eventBus.emit("initialized",{parts:Array.from(this.parts.values())})}play(){this.isPlaying||(this.isPlaying=!0,this.lastTimestamp=performance.now(),this.startPlaybackTimer(),this.eventBus.emit("playbackStateChanged",{isPlaying:!0,currentTime:this.currentTime}))}stop(){this.isPlaying&&(this.isPlaying=!1,this.stopPlaybackTimer(),this.eventBus.emit("playbackStateChanged",{isPlaying:!1,currentTime:this.currentTime}))}pause(){this.stop()}setTime(A){this.currentTime=Math.max(0,A),this.eventBus.emit("timeChanged",{currentTime:this.currentTime});const e=this.getBarFromTime(this.currentTime);e&&this.eventBus.emit("barChanged",e)}getCurrentTime(){return this.currentTime}setBar(A,e=0){const t=this.getTimeFromBar(A,e);t!==null&&this.setTime(t)}goToPracticeMark(A){const e=this.practiceMarks[A];e!==void 0&&(this.setBar(e),this.eventBus.emit("practiceMarkChanged",{mark:A,bar:e}))}setPlaybackSpeed(A){this.playbackSpeed=Math.max(.25,Math.min(2,A)),this.eventBus.emit("speedChanged",{speed:this.playbackSpeed})}getPlaybackSpeed(){return this.playbackSpeed}setMasterVolume(A){this.masterVolume=Math.max(0,Math.min(1,A)),this.eventBus.emit("masterVolumeChanged",{volume:this.masterVolume})}getMasterVolume(){return this.masterVolume}setPartVolume(A,e){const t=this.parts.get(A);t&&(t.volume=Math.max(0,Math.min(1,e)),this.eventBus.emit("partVolumeChanged",{partName:A,volume:t.volume}))}setPartMuted(A,e){const t=this.parts.get(A);t&&(t.muted=e,this.eventBus.emit("partMutedChanged",{partName:A,muted:e}))}getParts(){return Array.from(this.parts.values())}playLeadIn(A=1){this.eventBus.emit("leadInStarted",{bars:A}),setTimeout(()=>{this.eventBus.emit("leadInCompleted")},1e3*A)}playStartingNotes(){this.eventBus.emit("startingNotesStarted"),setTimeout(()=>{this.eventBus.emit("startingNotesCompleted")},2e3)}on(A,e){this.eventBus.on(A,e)}off(A,e){this.eventBus.off(A,e)}startPlaybackTimer(){const A=()=>{if(!this.isPlaying)return;const e=performance.now(),t=(e-this.lastTimestamp)/1e3;if(this.lastTimestamp=e,this.currentTime+=t*this.playbackSpeed,this.songDuration>0&&this.currentTime>=this.songDuration){this.stop(),this.eventBus.emit("songEnded",{finalTime:this.currentTime});return}this.eventBus.emit("timeChanged",{currentTime:this.currentTime});const i=this.getBarFromTime(this.currentTime);if(i&&(this.eventBus.emit("barChanged",i),this.maxBar>0&&i.bar>this.maxBar)){this.stop(),this.eventBus.emit("songEnded",{finalTime:this.currentTime});return}this.playbackTimer=requestAnimationFrame(A)};this.playbackTimer=requestAnimationFrame(A)}stopPlaybackTimer(){this.playbackTimer&&(cancelAnimationFrame(this.playbackTimer),this.playbackTimer=null)}getBarFromTime(A){if(!this.beats||this.beats.length===0)return null;let e=null;for(let t=this.beats.length-1;t>=0;t--)if(this.beats[t].time<=A){e=this.beats[t];break}return e?{bar:e.bar,beat:e.beat,repeat:e.repeat,time:e.time}:null}getTimeFromBar(A,e=0){if(!this.beats||this.beats.length===0)return null;let t=this.beats.find(i=>i.bar===A&&i.beat===1&&i.repeat===e);return t||(t=this.beats.find(i=>i.bar===A&&i.beat===1)),t?t.time:null}destroy(){this.stop(),this.eventBus.all.clear(),this.parts.clear()}}new dn;var Ia=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(A,e)=>(typeof require<"u"?require:A)[e]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')}),aA=class extends Uint8Array{constructor(){super(...arguments);h(this,"currentIndex",0)}slice(A,e){const t=super.slice(A,e);return t.currentIndex=0,t}};function un(n,A=n.length,e=0){let t="";for(let i=0;i<A;i++){const a=n[e+i];if(a===0)return t;t+=String.fromCharCode(a)}return t}function ie(n,A){const e=n.currentIndex;return n.currentIndex+=A,un(n,A,e)}function ye(n,A=!1,e=!1){let t=n.length;A&&t++,e&&t%2!==0&&t++;const i=new aA(t);return mA(i,n),i}function mA(n,A,e=0){e>0&&A.length>e&&(A=A.slice(0,e));for(let t=0;t<A.length;t++)n[n.currentIndex++]=A.charCodeAt(t);if(e>A.length)for(let t=0;t<e-A.length;t++)n[n.currentIndex++]=0;return n}function X(n,A){const e=ga(n,A,n.currentIndex);return n.currentIndex+=A,e}function ga(n,A,e=0){let t=0;for(let i=0;i<A;i++)t|=n[e+i]<<i*8;return t>>>0}function _e(n,A,e){for(let t=0;t<e;t++)n[n.currentIndex++]=A>>t*8&255}function V(n,A){n[n.currentIndex++]=A&255,n[n.currentIndex++]=A>>8}function tA(n,A){_e(n,A,4)}function Ea(n,A){const e=A<<8|n;return e>32767?e-65536:e}var mn=class{constructor(n,A,e){h(this,"header");h(this,"size");h(this,"data");this.header=n,this.size=A,this.data=e}};function TA(n,A=!0,e=!1){const t=ie(n,4);let i=X(n,4);t===""&&(i=0);let a;return A?a=n.slice(n.currentIndex,n.currentIndex+i):a=new aA(0),(A||e)&&(n.currentIndex+=i,i%2!==0&&n.currentIndex++),new mn(t,i,a)}function rA(n,A,e=!1,t=!1){if(n.length!==4)throw new Error(`Invalid header length: ${n}`);let i=8,a=n,s=A.length;e&&s++;let g=s;t&&(i+=4,g+=4,a="LIST");let I=i+s;I%2!==0&&I++;const o=new aA(I);return mA(o,a),tA(o,g),t&&mA(o,n),o.set(A,i),o}function bA(n,A,e=!1){let t=8,i=n;const a=A.reduce((o,B)=>B.length+o,0);let s=a;e&&(t+=4,s+=4,i="LIST");let g=t+a;g%2!==0&&g++;const I=new aA(g);return mA(I,i),tA(I,s),e&&mA(I,n),A.forEach(o=>{I.set(o,t),t+=o.length}),I}function ae(n,A){return n.find(e=>e.header!=="LIST"?!1:(e.data.currentIndex=4,un(e.data,4)===A))}function la(n,A){return{...A,...n??{}}}function Ba(n,A,e=0){let t=0;for(let i=0;i<A;i++)t=t<<8|n[e+i];return t>>>0}function Ca(n){let A=0;for(;n;){const e=n[n.currentIndex++];if(A=A<<7|e&127,e>>7!==1)break}return A}var f={warn:"color: orange;",unrecognized:"color: red;",info:"color: aqua;",recognized:"color: lime",value:"color: yellow; background-color: black;"},fn;(()=>{var n=Uint8Array,A=Uint16Array,e=Int32Array,t=new n([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),i=new n([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),a=new n([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=function(M,D){for(var x=new A(31),AA=0;AA<31;++AA)x[AA]=D+=1<<M[AA-1];for(var nA=new e(x[30]),AA=1;AA<30;++AA)for(var wA=x[AA];wA<x[AA+1];++wA)nA[wA]=wA-x[AA]<<5|AA;return{b:x,r:nA}},g=s(t,2),I=g.b,o=g.r;I[28]=258,o[258]=28;var B=s(i,0),C=B.b,Q=new A(32768);for(k=0;k<32768;++k)c=(k&43690)>>1|(k&21845)<<1,c=(c&52428)>>2|(c&13107)<<2,c=(c&61680)>>4|(c&3855)<<4,Q[k]=((c&65280)>>8|(c&255)<<8)>>1;var c,k,r=function(M,D,x){for(var AA=M.length,nA=0,wA=new A(D);nA<AA;++nA)M[nA]&&++wA[M[nA]-1];var NA=new A(D);for(nA=1;nA<D;++nA)NA[nA]=NA[nA-1]+wA[nA-1]<<1;var UA;{UA=new A(1<<D);var OA=15-D;for(nA=0;nA<AA;++nA)if(M[nA])for(var S=nA<<4|M[nA],v=D-M[nA],Z=NA[M[nA]-1]++<<v,gA=Z|(1<<v)-1;Z<=gA;++Z)UA[Q[Z]>>OA]=S}return UA},m=new n(288);for(k=0;k<144;++k)m[k]=8;var k;for(k=144;k<256;++k)m[k]=9;var k;for(k=256;k<280;++k)m[k]=7;var k;for(k=280;k<288;++k)m[k]=8;var k,F=new n(32);for(k=0;k<32;++k)F[k]=5;var k,R=r(m,9),b=r(F,5),q=function(M){for(var D=M[0],x=1;x<M.length;++x)M[x]>D&&(D=M[x]);return D},w=function(M,D,x){var AA=D/8|0;return(M[AA]|M[AA+1]<<8)>>(D&7)&x},N=function(M,D){var x=D/8|0;return(M[x]|M[x+1]<<8|M[x+2]<<16)>>(D&7)},P=function(M){return(M+7)/8|0},cA=function(M,D,x){return(x==null||x>M.length)&&(x=M.length),new n(M.subarray(D,x))},CA=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],IA=function(M,D,x){var AA=new Error(D||CA[M]);if(AA.code=M,Error.captureStackTrace&&Error.captureStackTrace(AA,IA),!x)throw AA;return AA},Y=function(M,D,x,AA){var nA=M.length,wA=AA?AA.length:0;if(!nA||D.f&&!D.l)return x||new n(0);var NA=!x,UA=NA||D.i!=2,OA=D.i;NA&&(x=new n(nA*3));var S=function(RA){var yA=x.length;if(RA>yA){var DA=new n(Math.max(yA*2,RA));DA.set(x),x=DA}},v=D.f||0,Z=D.p||0,gA=D.b||0,PA=D.l,ce=D.d,Qe=D.m,ge=D.n,Fe=nA*8;do{if(!PA){v=w(M,Z,1);var Ke=w(M,Z+1,3);if(Z+=3,Ke)if(Ke==1)PA=R,ce=b,Qe=9,ge=5;else if(Ke==2){var xe=w(M,Z,31)+257,It=w(M,Z+10,15)+4,HA=xe+w(M,Z+5,31)+1;Z+=14;for(var xA=new n(HA),Re=new n(19),SA=0;SA<It;++SA)Re[a[SA]]=w(M,Z+SA*3,7);Z+=It*3;for(var gt=q(Re),Et=(1<<gt)-1,xt=r(Re,gt),SA=0;SA<HA;){var Ve=xt[w(M,Z,Et)];Z+=Ve&15;var vA=Ve>>4;if(vA<16)xA[SA++]=vA;else{var $A=0,Ae=0;for(vA==16?(Ae=3+w(M,Z,3),Z+=2,$A=xA[SA-1]):vA==17?(Ae=3+w(M,Z,7),Z+=3):vA==18&&(Ae=11+w(M,Z,127),Z+=7);Ae--;)xA[SA++]=$A}}var Me=xA.subarray(0,xe),FA=xA.subarray(xe);Qe=q(Me),ge=q(FA),PA=r(Me,Qe),ce=r(FA,ge)}else IA(1);else{var vA=P(Z)+4,u=M[vA-4]|M[vA-3]<<8,d=vA+u;if(d>nA){OA&&IA(0);break}UA&&S(gA+u),x.set(M.subarray(vA,d),gA),D.b=gA+=u,D.p=Z=d*8,D.f=v;continue}if(Z>Fe){OA&&IA(0);break}}UA&&S(gA+131072);for(var y=(1<<Qe)-1,T=(1<<ge)-1,z=Z;;z=Z){var $A=PA[N(M,Z)&y],iA=$A>>4;if(Z+=$A&15,Z>Fe){OA&&IA(0);break}if($A||IA(2),iA<256)x[gA++]=iA;else if(iA==256){z=Z,PA=null;break}else{var BA=iA-254;if(iA>264){var SA=iA-257,J=t[SA];BA=w(M,Z,(1<<J)-1)+I[SA],Z+=J}var qA=ce[N(M,Z)&T],uA=qA>>4;qA||IA(3),Z+=qA&15;var FA=C[uA];if(uA>3){var J=i[uA];FA+=N(M,Z)&(1<<J)-1,Z+=J}if(Z>Fe){OA&&IA(0);break}UA&&S(gA+131072);var eA=gA+BA;if(gA<FA){var sA=wA-FA,oA=Math.min(FA,eA);for(sA+gA<0&&IA(3);gA<oA;++gA)x[gA]=AA[sA+gA]}for(;gA<eA;++gA)x[gA]=x[gA-FA]}}D.l=PA,D.p=z,D.b=gA,D.f=v,PA&&(v=1,D.m=Qe,D.d=ce,D.n=ge)}while(!v);return gA!=x.length&&NA?cA(x,0,gA):x.subarray(0,gA)},j=new n(0);function H(M,D){return Y(M,{i:2},D&&D.out,D&&D.dictionary)}var K=typeof TextDecoder<"u"&&new TextDecoder,W=0;try{K.decode(j,{stream:!0}),W=1}catch{}fn=H})();var ha=fn;function _(...n){}function hA(...n){console.warn(...n)}function se(...n){}function JA(...n){}function ca(){}var Se={consoleColors:f,SpessaSynthInfo:_,SpessaSynthWarn:hA,SpessaSynthGroupCollapsed:JA,SpessaSynthGroup:se,SpessaSynthGroupEnd:ca,readBytesAsUintBigEndian:Ba,readLittleEndian:X,readBytesAsString:ie,readVariableLengthQuantity:Ca,inflateSync:ha},oe={noteOff:128,noteOn:144,polyPressure:160,controllerChange:176,programChange:192,channelPressure:208,pitchWheel:224,systemExclusive:240},O={bankSelect:0,modulationWheel:1,breathController:2,undefinedCC3:3,footController:4,portamentoTime:5,dataEntryMSB:6,mainVolume:7,balance:8,undefinedCC9:9,pan:10,expressionController:11,effectControl1:12,effectControl2:13,undefinedCC14:14,undefinedCC15:15,generalPurposeController1:16,generalPurposeController2:17,generalPurposeController3:18,generalPurposeController4:19,undefinedCC20:20,undefinedCC21:21,undefinedCC22:22,undefinedCC23:23,undefinedCC24:24,undefinedCC25:25,undefinedCC26:26,undefinedCC27:27,undefinedCC28:28,undefinedCC29:29,undefinedCC30:30,undefinedCC31:31,bankSelectLSB:32,modulationWheelLSB:33,breathControllerLSB:34,undefinedCC3LSB:35,footControllerLSB:36,portamentoTimeLSB:37,dataEntryLSB:38,mainVolumeLSB:39,balanceLSB:40,undefinedCC9LSB:41,panLSB:42,expressionControllerLSB:43,effectControl1LSB:44,effectControl2LSB:45,undefinedCC14LSB:46,undefinedCC15LSB:47,undefinedCC16LSB:48,undefinedCC17LSB:49,undefinedCC18LSB:50,undefinedCC19LSB:51,undefinedCC20LSB:52,undefinedCC21LSB:53,undefinedCC22LSB:54,undefinedCC23LSB:55,undefinedCC24LSB:56,undefinedCC25LSB:57,undefinedCC26LSB:58,undefinedCC27LSB:59,undefinedCC28LSB:60,undefinedCC29LSB:61,undefinedCC30LSB:62,undefinedCC31LSB:63,sustainPedal:64,portamentoOnOff:65,sostenutoPedal:66,softPedal:67,legatoFootswitch:68,hold2Pedal:69,soundVariation:70,filterResonance:71,releaseTime:72,attackTime:73,brightness:74,decayTime:75,vibratoRate:76,vibratoDepth:77,vibratoDelay:78,soundController10:79,generalPurposeController5:80,generalPurposeController6:81,generalPurposeController7:82,generalPurposeController8:83,portamentoControl:84,undefinedCC85:85,undefinedCC86:86,undefinedCC87:87,undefinedCC88:88,undefinedCC89:89,undefinedCC90:90,reverbDepth:91,tremoloDepth:92,chorusDepth:93,detuneDepth:94,phaserDepth:95,dataIncrement:96,dataDecrement:97,nonRegisteredParameterLSB:98,nonRegisteredParameterMSB:99,registeredParameterLSB:100,registeredParameterMSB:101,undefinedCC102LSB:102,undefinedCC103LSB:103,undefinedCC104LSB:104,undefinedCC105LSB:105,undefinedCC106LSB:106,undefinedCC107LSB:107,undefinedCC108LSB:108,undefinedCC109LSB:109,undefinedCC110LSB:110,undefinedCC111LSB:111,undefinedCC112LSB:112,undefinedCC113LSB:113,undefinedCC114LSB:114,undefinedCC115LSB:115,undefinedCC116LSB:116,undefinedCC117LSB:117,undefinedCC118LSB:118,undefinedCC119LSB:119,allSoundOff:120,resetAllControllers:121,localControlOnOff:122,allNotesOff:123,omniModeOff:124,omniModeOn:125,monoModeOn:126,polyModeOn:127},Qa=350,pn=9,da="gs",le=-1,ua=1,ma=64,yn=121,re=class{static getDefaultBank(n){return n==="gm2"?yn:0}static getDrumBank(n){switch(n){default:throw new Error(`${n} doesn't have a bank MSB for drums.`);case"gm2":return 120;case"xg":return 127}}static isXGDrums(n){return n===120||n===126||n===127}static isValidXGMSB(n){return this.isXGDrums(n)||n===ma||n===yn}static isSystemXG(n){return n==="gm2"||n==="xg"}static addBankOffset(n,A,e=!0){return this.isXGDrums(n)&&e?n:Math.min(n+A,127)}static subtrackBankOffset(n,A,e=!0){return this.isXGDrums(n)&&e?n:Math.max(0,n-A)}},qe=class ii{static toMIDIString(A){return A.isGMGSDrum?`DRUM:${A.program}`:`${A.bankLSB}:${A.bankMSB}:${A.program}`}static fromMIDIString(A){const e=A.split(":");if(e.length>3||e.length<2)throw new Error("Invalid MIDI string:");return A.startsWith("DRUM")?{bankMSB:0,bankLSB:0,program:parseInt(e[1]),isGMGSDrum:!0}:{bankLSB:parseInt(e[0]),bankMSB:parseInt(e[1]),program:parseInt(e[2]),isGMGSDrum:!1}}static toNamedMIDIString(A){return`${ii.toMIDIString(A)} ${A.name}`}static matches(A,e){return A.isGMGSDrum||e.isGMGSDrum?A.isGMGSDrum===e.isGMGSDrum&&A.program===e.program:A.program===e.program&&A.bankLSB===e.bankLSB&&A.bankMSB===e.bankMSB}static fromNamedMIDIString(A){const e=A.indexOf(" ");if(e<0)throw new Error(`Invalid named MIDI string: ${A}`);const t=this.fromMIDIString(A.substring(0,e)),i=A.substring(e+1);return{...t,name:i}}static sorter(A,e){return A.program!==e.program?A.program-e.program:A.isGMGSDrum&&!e.isGMGSDrum?1:!A.isGMGSDrum&&e.isGMGSDrum?-1:A.bankMSB!==e.bankMSB?A.bankMSB-e.bankMSB:A.bankLSB-e.bankLSB}},fa={hermite:2},Sn={channelTuning:0,channelTransposeFine:1,modulationMultiplier:2,masterTuning:3,channelTuningSemitones:4,channelKeyShift:5,sf2NPRNGeneratorLSB:6},pa=new Map([["domingo","Sunday"],["segunda-feira","Monday"],["terça-feira","Tuesday"],["quarta-feira","Wednesday"],["quinta-feira","Thursday"],["sexta-feira","Friday"],["sábado","Saturday"],["janeiro","January"],["fevereiro","February"],["março","March"],["abril","April"],["maio","May"],["junho","June"],["julho","July"],["agosto","August"],["setembro","September"],["outubro","October"],["novembro","November"],["dezembro","December"]]),ya=[pa];function Sa(n){for(const A of ya){let e=n;A.forEach((i,a)=>{const s=new RegExp(a,"gi");e=e.replace(s,i)});const t=new Date(e);if(!isNaN(t.getTime()))return t}}function qa(n){const A=/^(\d{2})\.(\d{2})\.(\d{4})$/.exec(n);if(A){const e=parseInt(A[1]),t=parseInt(A[2])-1,i=parseInt(A[3]),a=new Date(i,t,e);if(!isNaN(a.getTime()))return a}}function ka(n){const A=/^(\d{1,2})\s{1,2}(\d{1,2})\s{1,2}(\d{2})$/.exec(n);if(A){const e=A[1],t=(parseInt(A[2])+1).toString(),i=A[3],a=new Date(`${t}/${e}/${i}`);if(!isNaN(a.getTime()))return a}}function wa(n){const e=/\b\d{4}\b/.exec(n);return e?new Date(e[0]):void 0}function Fa(n){if(n=n.trim(),n.length<1)return new Date;const A=n.replace(/\b(\d+)(st|nd|rd|th)\b/g,"$1"),e=new Date(A);if(isNaN(e.getTime())){const t=Sa(n);if(t)return t;const i=qa(n);if(i)return i;const a=ka(n);if(a)return a;const s=wa(n);return s||(hA(`Invalid date: "${n}". Replacing with the current date!`),new Date)}return e}var l={INVALID:-1,startAddrsOffset:0,endAddrOffset:1,startloopAddrsOffset:2,endloopAddrsOffset:3,startAddrsCoarseOffset:4,modLfoToPitch:5,vibLfoToPitch:6,modEnvToPitch:7,initialFilterFc:8,initialFilterQ:9,modLfoToFilterFc:10,modEnvToFilterFc:11,endAddrsCoarseOffset:12,modLfoToVolume:13,unused1:14,chorusEffectsSend:15,reverbEffectsSend:16,pan:17,unused2:18,unused3:19,unused4:20,delayModLFO:21,freqModLFO:22,delayVibLFO:23,freqVibLFO:24,delayModEnv:25,attackModEnv:26,holdModEnv:27,decayModEnv:28,sustainModEnv:29,releaseModEnv:30,keyNumToModEnvHold:31,keyNumToModEnvDecay:32,delayVolEnv:33,attackVolEnv:34,holdVolEnv:35,decayVolEnv:36,sustainVolEnv:37,releaseVolEnv:38,keyNumToVolEnvHold:39,keyNumToVolEnvDecay:40,instrument:41,reserved1:42,keyRange:43,velRange:44,startloopAddrsCoarseOffset:45,keyNum:46,velocity:47,initialAttenuation:48,reserved2:49,endloopAddrsCoarseOffset:50,coarseTune:51,fineTune:52,sampleID:53,sampleModes:54,reserved3:55,scaleTuning:56,exclusiveClass:57,overridingRootKey:58,unused5:59,endOper:60,vibLfoToVolume:61,vibLfoToFilterFc:62};Object.keys(l).length;var Ra=Math.max(...Object.values(l)),L=[];L[l.startAddrsOffset]={min:0,max:32768,def:0,nrpn:1},L[l.endAddrOffset]={min:-32768,max:32768,def:0,nrpn:1},L[l.startloopAddrsOffset]={min:-32768,max:32768,def:0,nrpn:1},L[l.endloopAddrsOffset]={min:-32768,max:32768,def:0,nrpn:1},L[l.startAddrsCoarseOffset]={min:0,max:32768,def:0,nrpn:1},L[l.modLfoToPitch]={min:-12e3,max:12e3,def:0,nrpn:2},L[l.vibLfoToPitch]={min:-12e3,max:12e3,def:0,nrpn:2},L[l.modEnvToPitch]={min:-12e3,max:12e3,def:0,nrpn:2},L[l.initialFilterFc]={min:1500,max:13500,def:13500,nrpn:2},L[l.initialFilterQ]={min:0,max:960,def:0,nrpn:1},L[l.modLfoToFilterFc]={min:-12e3,max:12e3,def:0,nrpn:2},L[l.vibLfoToFilterFc]={min:-12e3,max:12e3,def:0,nrpn:2},L[l.modEnvToFilterFc]={min:-12e3,max:12e3,def:0,nrpn:2},L[l.endAddrsCoarseOffset]={min:-32768,max:32768,def:0,nrpn:1},L[l.modLfoToVolume]={min:-960,max:960,def:0,nrpn:1},L[l.vibLfoToVolume]={min:-960,max:960,def:0,nrpn:1},L[l.chorusEffectsSend]={min:0,max:1e3,def:0,nrpn:1},L[l.reverbEffectsSend]={min:0,max:1e3,def:0,nrpn:1},L[l.pan]={min:-500,max:500,def:0,nrpn:1},L[l.delayModLFO]={min:-12e3,max:5e3,def:-12e3,nrpn:2},L[l.freqModLFO]={min:-16e3,max:4500,def:0,nrpn:4},L[l.delayVibLFO]={min:-12e3,max:5e3,def:-12e3,nrpn:2},L[l.freqVibLFO]={min:-16e3,max:4500,def:0,nrpn:4},L[l.delayModEnv]={min:-32768,max:5e3,def:-32768,nrpn:2},L[l.attackModEnv]={min:-32768,max:8e3,def:-32768,nrpn:2},L[l.holdModEnv]={min:-12e3,max:5e3,def:-12e3,nrpn:2},L[l.decayModEnv]={min:-12e3,max:8e3,def:-12e3,nrpn:2},L[l.sustainModEnv]={min:0,max:1e3,def:0,nrpn:1},L[l.releaseModEnv]={min:-12e3,max:8e3,def:-12e3,nrpn:2},L[l.keyNumToModEnvHold]={min:-1200,max:1200,def:0,nrpn:1},L[l.keyNumToModEnvDecay]={min:-1200,max:1200,def:0,nrpn:1},L[l.delayVolEnv]={min:-12e3,max:5e3,def:-12e3,nrpn:2},L[l.attackVolEnv]={min:-12e3,max:8e3,def:-12e3,nrpn:2},L[l.holdVolEnv]={min:-12e3,max:5e3,def:-12e3,nrpn:2},L[l.decayVolEnv]={min:-12e3,max:8e3,def:-12e3,nrpn:2},L[l.sustainVolEnv]={min:0,max:1440,def:0,nrpn:1},L[l.releaseVolEnv]={min:-12e3,max:8e3,def:-12e3,nrpn:2},L[l.keyNumToVolEnvHold]={min:-1200,max:1200,def:0,nrpn:1},L[l.keyNumToVolEnvDecay]={min:-1200,max:1200,def:0,nrpn:1},L[l.startloopAddrsCoarseOffset]={min:-32768,max:32768,def:0,nrpn:1},L[l.keyNum]={min:-1,max:127,def:-1,nrpn:1},L[l.velocity]={min:-1,max:127,def:-1,nrpn:1},L[l.initialAttenuation]={min:0,max:1440,def:0,nrpn:1},L[l.endloopAddrsCoarseOffset]={min:-32768,max:32768,def:0,nrpn:1},L[l.coarseTune]={min:-120,max:120,def:0,nrpn:1},L[l.fineTune]={min:-12700,max:12700,def:0,nrpn:1},L[l.scaleTuning]={min:0,max:1200,def:100,nrpn:1},L[l.exclusiveClass]={min:0,max:99999,def:0,nrpn:0},L[l.overridingRootKey]={min:-1,max:127,def:-1,nrpn:0},L[l.sampleModes]={min:0,max:3,def:0,nrpn:0};var pA={monoSample:1,rightSample:2,leftSample:4,linkedSample:8},EA={noController:0,noteOnVelocity:2,noteOnKeyNum:3,polyPressure:10,channelPressure:13,pitchWheel:14,pitchWheelRange:16,link:127},lA={linear:0,concave:1,convex:2,switch:3},G={none:0,modLfo:1,velocity:2,keyNum:3,volEnv:4,modEnv:5,pitchWheel:6,polyPressure:7,channelPressure:8,vibratoLfo:9,modulationWheel:129,volume:135,pan:138,expression:139,chorus:221,reverb:219,pitchWheelRange:256,fineTune:257,coarseTune:258},p={none:0,gain:1,reserved:2,pitch:3,pan:4,keyNum:5,chorusSend:128,reverbSend:129,modLfoFreq:260,modLfoDelay:261,vibLfoFreq:276,vibLfoDelay:277,volEnvAttack:518,volEnvDecay:519,reservedEG1:520,volEnvRelease:521,volEnvSustain:522,volEnvDelay:523,volEnvHold:524,modEnvAttack:778,modEnvDecay:779,reservedEG2:780,modEnvRelease:781,modEnvSustain:782,modEnvDelay:783,modEnvHold:784,filterCutoff:1280,filterQ:1281},qn={forward:0,loopAndRelease:1},pt=128,Ma=147,yt=new Int16Array(Ma).fill(0),QA=(n,A)=>yt[n]=A<<7;QA(O.mainVolume,100),QA(O.balance,64),QA(O.expressionController,127),QA(O.pan,64),QA(O.portamentoOnOff,127),QA(O.filterResonance,64),QA(O.releaseTime,64),QA(O.attackTime,64),QA(O.brightness,64),QA(O.decayTime,64),QA(O.vibratoRate,64),QA(O.vibratoDepth,64),QA(O.vibratoDelay,64),QA(O.generalPurposeController6,64),QA(O.generalPurposeController8,64),QA(O.registeredParameterLSB,127),QA(O.registeredParameterMSB,127),QA(O.nonRegisteredParameterLSB,127),QA(O.nonRegisteredParameterMSB,127);var Da=1;yt[O.portamentoControl]=Da,QA(pt+EA.pitchWheel,64),QA(pt+EA.pitchWheelRange,2);var Ga=Object.keys(Sn).length,ba=new Float32Array(Ga);ba[Sn.modulationMultiplier]=1,yt.slice(0,128);var ve=ve!==void 0?ve:{},kn=!1,wn;ve.isInitialized=new Promise(n=>wn=n);var Ua=function(n){var A,e,t,i,a,s,g,I="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o="",B=0;n=n.replace(/[^A-Za-z0-9\+\/\=]/g,"");do i=I.indexOf(n.charAt(B++)),a=I.indexOf(n.charAt(B++)),s=I.indexOf(n.charAt(B++)),g=I.indexOf(n.charAt(B++)),A=i<<2|a>>4,e=(15&a)<<4|s>>2,t=(3&s)<<6|g,o+=String.fromCharCode(A),s!==64&&(o+=String.fromCharCode(e)),g!==64&&(o+=String.fromCharCode(t));while(B<n.length);return o};(function(){var n,A,e,t,i,a,s,g,I,o,B,C,Q,c,r=r!==void 0?r:{};r.wasmBinary=Uint8Array.from(Ua("AGFzbQEAAAABpQEYYAJ/fwF/YAF/AGAAAX9gBH9/f38AYAAAYAN/f38Bf2ABfwF/YAJ/fwBgBn9/f39/fwF/YAR/f39/AX9gBX9/f39/AX9gB39/f39/f38Bf2AGf39/f39/AGAIf39/f39/f38Bf2AFf39/f38AYAd/f39/f39/AGADf39/AGABfwF9YAF9AX1gAnx/AXxgAnx/AX9gA3x8fwF8YAJ8fAF8YAF8AXwCngIPA2VudgZtZW1vcnkCAIACA2VudgV0YWJsZQFwAQQEA2Vudgl0YWJsZUJhc2UDfwADZW52DkRZTkFNSUNUT1BfUFRSA38AA2VudghTVEFDS1RPUAN/AANlbnYJU1RBQ0tfTUFYA38ABmdsb2JhbAhJbmZpbml0eQN8AANlbnYFYWJvcnQAAQNlbnYNZW5sYXJnZU1lbW9yeQACA2Vudg5nZXRUb3RhbE1lbW9yeQACA2VudhdhYm9ydE9uQ2Fubm90R3Jvd01lbW9yeQACA2Vudg5fX19hc3NlcnRfZmFpbAADA2VudgtfX19zZXRFcnJObwABA2VudgZfYWJvcnQABANlbnYWX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZwAFA3d2BgYCAQcHAQIBAQcBCAcFAAkGCQoHBgYGBgEFBgIBBgYKAAgLAAYGBgYGBgYBAAoMDAMGBQANCAoJAAwODA8OAQAGBgcEABAJEAERAAADBQwAAAMHBxIGAQAABwIFEwMOBw8HBgYQFAoVExYXFxcXFgQFBQYFAAYkB38BIwELfwEjAgt/ASMDC38BQQALfwFBAAt8ASMEC38BQQALB9MCFRBfX2dyb3dXYXNtTWVtb3J5AAgRX19fZXJybm9fbG9jYXRpb24AYwVfZnJlZQBfB19tYWxsb2MAXgdfbWVtY3B5AHkHX21lbXNldAB6BV9zYnJrAHsXX3N0Yl92b3JiaXNfanNfY2hhbm5lbHMAJhRfc3RiX3ZvcmJpc19qc19jbG9zZQAlFV9zdGJfdm9yYmlzX2pzX2RlY29kZQAoE19zdGJfdm9yYmlzX2pzX29wZW4AJBpfc3RiX3ZvcmJpc19qc19zYW1wbGVfcmF0ZQAnC2R5bkNhbGxfaWlpAHwTZXN0YWJsaXNoU3RhY2tTcGFjZQAMC2dldFRlbXBSZXQwAA8LcnVuUG9zdFNldHMAeAtzZXRUZW1wUmV0MAAOCHNldFRocmV3AA0Kc3RhY2tBbGxvYwAJDHN0YWNrUmVzdG9yZQALCXN0YWNrU2F2ZQAKCQoBACMACwR9VFl9Csb2A3YGACAAQAALGwEBfyMGIQEjBiAAaiQGIwZBD2pBcHEkBiABCwQAIwYLBgAgACQGCwoAIAAkBiABJAcLEAAjCEUEQCAAJAggASQJCwsGACAAJAsLBAAjCwsRACAABEAgABARIAAgABASCwvvBwEKfyAAQYADaiEHIAcoAgAhBQJAIAUEQCAAQfwBaiEEIAQoAgAhASABQQBKBEAgAEHwAGohCANAIAUgAkEYbGpBEGohCSAJKAIAIQEgAQRAIAgoAgAhAyAFIAJBGGxqQQ1qIQogCi0AACEGIAZB/wFxIQYgAyAGQbAQbGpBBGohAyADKAIAIQMgA0EASgRAQQAhAwNAIAEgA0ECdGohASABKAIAIQEgACABEBIgA0EBaiEDIAgoAgAhASAKLQAAIQYgBkH/AXEhBiABIAZBsBBsakEEaiEBIAEoAgAhBiAJKAIAIQEgAyAGSA0ACwsgACABEBILIAUgAkEYbGpBFGohASABKAIAIQEgACABEBIgAkEBaiECIAQoAgAhASACIAFODQMgBygCACEFDAAACwALCwsgAEHwAGohAyADKAIAIQEgAQRAIABB7ABqIQUgBSgCACECIAJBAEoEQEEAIQIDQAJAIAEgAkGwEGxqQQhqIQQgBCgCACEEIAAgBBASIAEgAkGwEGxqQRxqIQQgBCgCACEEIAAgBBASIAEgAkGwEGxqQSBqIQQgBCgCACEEIAAgBBASIAEgAkGwEGxqQaQQaiEEIAQoAgAhBCAAIAQQEiABIAJBsBBsakGoEGohASABKAIAIQEgAUUhBCABQXxqIQFBACABIAQbIQEgACABEBIgAkEBaiECIAUoAgAhASACIAFODQAgAygCACEBDAELCyADKAIAIQELIAAgARASCyAAQfgBaiEBIAEoAgAhASAAIAEQEiAHKAIAIQEgACABEBIgAEGIA2ohAyADKAIAIQEgAQRAIABBhANqIQUgBSgCACECIAJBAEoEQEEAIQIDQCABIAJBKGxqQQRqIQEgASgCACEBIAAgARASIAJBAWohAiAFKAIAIQcgAygCACEBIAIgB0gNAAsLIAAgARASCyAAQQRqIQIgAigCACEBIAFBAEoEQEEAIQEDQCAAQZQGaiABQQJ0aiEDIAMoAgAhAyAAIAMQEiAAQZQHaiABQQJ0aiEDIAMoAgAhAyAAIAMQEiAAQdgHaiABQQJ0aiEDIAMoAgAhAyAAIAMQEiABQQFqIQEgAigCACEDIAEgA0ghAyABQRBJIQUgBSADcQ0ACwtBACEBA0AgAEGgCGogAUECdGohAiACKAIAIQIgACACEBIgAEGoCGogAUECdGohAiACKAIAIQIgACACEBIgAEGwCGogAUECdGohAiACKAIAIQIgACACEBIgAEG4CGogAUECdGohAiACKAIAIQIgACACEBIgAEHACGogAUECdGohAiACKAIAIQIgACACEBIgAUEBaiEBIAFBAkcNAAsLGwAgAEHEAGohACAAKAIAIQAgAEUEQCABEF8LC3wBAX8gAEHUB2ohASABQQA2AgAgAEGAC2ohASABQQA2AgAgAEH4CmohASABQQA2AgAgAEGcCGohASABQQA2AgAgAEHVCmohASABQQA6AAAgAEH8CmohASABQQA2AgAgAEHUC2ohASABQQA2AgAgAEHYC2ohACAAQQA2AgAL8AQBB38jBiELIwZBEGokBiALQQhqIQcgC0EEaiEKIAshCCAAQSRqIQYgBiwAACEGAn8gBgR/IABBgAtqIQYgBigCACEGIAZBf0oEQCAFQQA2AgAgACABIAIQFgwCCyAAQRRqIQYgBiABNgIAIAEgAmohAiAAQRxqIQkgCSACNgIAIABB2ABqIQIgAkEANgIAIABBABAXIQkgCUUEQCAFQQA2AgBBAAwCCyAAIAcgCCAKEBghCSAJBEAgBygCACECIAgoAgAhCSAKKAIAIQggACACIAkgCBAaIQogByAKNgIAIABBBGohAiACKAIAIQggCEEASgRAQQAhAgNAIABBlAZqIAJBAnRqIQcgBygCACEHIAcgCUECdGohByAAQdQGaiACQQJ0aiEMIAwgBzYCACACQQFqIQIgAiAISA0ACwsgAwRAIAMgCDYCAAsgBSAKNgIAIABB1AZqIQAgBCAANgIAIAYoAgAhACAAIAFrDAILAkACQAJAAkACQCACKAIAIgNBIGsOBAECAgACCyACQQA2AgAgAEHUAGohAiAAEBkhAwJAIANBf0cEQANAIAIoAgAhAyADDQIgABAZIQMgA0F/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ACECIABBmAhqIQYgBigCACEHIAUgA2shCSAJIAdqIQkgAiAJSSEJIAIgB0khDSACIAdrIQJBACACIA0bIQIgAiADaiECIAIgBUohByAFIAIgBxshAiAJBEAgASACNgIAIAYoAgAhACAAIAJqIQAgBiAANgIAQQEMBgsLCyAAQfQKaiECIAIoAgAhAiADIB9rIQYgBiACaiEGIABBmAhqIQIgAiAGNgIAIAhBATYCAAwBBSAAQZgIaiECIAYNAQsMAQsgBCADayEDIAIoAgAhBCADIARqIQMgAiADNgIACyATKAIAIQIgAgRAIABByABqIQIgAigCACECIABB0ABqIQAgACgCACEAIAIgAEcEQEHTE0HEE0HkGkHnFBAECwsgASAFNgIAQQELIQAgHCQGIAALqAIBBX8gAEHoCmohBSAFKAIAIQICQCACQQBIBEBBACEABSACIAFIBEAgAUEYSgRAIABBGBAsIQIgAUFoaiEBIAAgARAsIQAgAEEYdCEAIAAgAmohACAADwsgAkUEQCAAQeQKaiECIAJBADYCAAsgAEHkCmohAwJAAkACQANAIAAQLiECIAJBf0YNASAFKAIAIQQgAiAEdCECIAMoAgAhBiAGIAJqIQIgAyACNgIAIAUgBEEIaiICNgIAIAIgAUgNAAwCAAsACyAFQX82AgBBACEADAQLIARBeEgEQEEAIQAMBAsLCyAAQeQKaiEEIAQoAgAhA0EBIAF0IQAgAEF/aiEAIAMgAHEhACADIAF2IQMgBCADNgIAIAIgAWshASAFIAE2AgALCyAAC40CAAJAIABBAEgEf0EABSAAQYCAAUgEQCAAQRBIBEAgAEGACGohACAALAAAIQAMAwsgAEGABEgEQCAAQQV2IQAgAEGACGohACAALAAAIQAgAEEFaiEABSAAQQp2IQAgAEGACGohACAALAAAIQAgAEEKaiEACwwCCyAAQYCAgAhIBH8gAEGAgCBIBH8gAEEPdiEAIABBgAhqIQAgACwAACEAIABBD2oFIABBFHYhACAAQYAIaiEAIAAsAAAhACAAQRRqCwUgAEGAgICAAkgEfyAAQRl2IQAgAEGACGohACAALAAAIQAgAEEZagUgAEEediEAIABBgAhqIQAgACwAACEAIABBHmoLCwshAAsgAAuiAQEDfyAAQdQKaiECIAIsAAAhAQJAAkAgAQ0AIABB3ApqIQEgASgCACEBIAEEQEF/IQMFIAAQLyEBIAEEQCACLAAAIQEgAQ0CQaEUQcQTQfYLQbUUEAQFQX8hAwsLDAELIAFBf2pBGHRBGHUhASACIAE6AAAgAEHsCmohASABKAIAIQIgAkEBaiECIAEgAjYCACAAEDAhACAAQf8BcSEDCyADC6wCAQd/IABB3ApqIQIgAigCACEBAkAgAUUEQCAAQdgKaiEEIAQoAgAhASABQX9GBEAgAEHQCGohASABKAIAIQEgAUF/aiEBIABB4ApqIQMgAyABNgIAIAAQMSEBIAFFBEAgAkEBNgIADAMLIABB0wpqIQEgASwAACEBIAFBAXEhASABBH8gBCgCAAUgAEEgEBUMAwshAQsgAUEBaiEHIAQgBzYCACAAQdQIaiABaiEDIAMsAAAhBiAGQf8BcSEDIAZBf0cEQCACQQE2AgAgAEHgCmohAiACIAE2AgALIABB0AhqIQEgASgCACEBIAcgAU4EQCAEQX82AgALIABB1ApqIQAgACwAACEBIAEEQEHFFEHEE0HoC0HaFBAEBSAAIAY6AAAgAyEFCwsLIAULUQEDfyAAQRRqIQMgAygCACEBIABBHGohAiACKAIAIQIgASACSQR/IAFBAWohACADIAA2AgAgASwAAAUgAEHUAGohACAAQQE2AgBBAAshACAACyABAX8gABAyIQEgAQR/IAAQMwUgAEEeEBVBAAshACAAC2ABAX8gABAwIQEgAUH/AXFBzwBGBEAgABAwIQEgAUH/AXFB5wBGBEAgABAwIQEgAUH/AXFB5wBGBEAgABAwIQAgAEH/AXFB0wBGIQAFQQAhAAsFQQAhAAsFQQAhAAsgAAvZAwEGfyAAEDAhAQJ/IAFB/wFxBH8gAEEfEBVBAAUgABAwIQEgAEHTCmohAiACIAE6AAAgABAjIQUgABAjIQIgABAjGiAAECMhASAAQcwIaiEDIAMgATYCACAAECMaIAAQMCEBIAFB/wFxIQEgAEHQCGohAyADIAE2AgAgAEHUCGohBCAAIAQgARAiIQEgAUUEQCAAQQoQFUEADAILIABB8ApqIQQgBEF+NgIAIAIgBXEhAQJAIAFBf0cEQCADKAIAIQEgAUEASgRAA0ACQCABQX9qIQIgAEHUCGogAmohBiAGLAAAIQYgBkF/Rw0AIAFBAUwNBCACIQEMAQsLIAQgAjYCACAAQfQKaiEBIAEgBTYCAAsLCyAAQdUKaiEBIAEsAAAhASABBEAgAygCACEDIANBAEoEf0EAIQJBACEBA0AgAEHUCGogAWohBCAELQAAIQQgBEH/AXEhBCACIARqIQIgAUEBaiEBIAEgA0gNAAsgAkEbagVBGwshASAAQShqIQIgAigCACECIAEgA2ohASABIAJqIQEgAEEsaiEDIAMgAjYCACAAQTBqIQIgAiABNgIAIABBNGohASABIAU2AgALIABB2ApqIQAgAEEANgIAQQELCyEAIAALowEBB38gAEHoCmohAyADKAIAIQECQCABQRlIBEAgAEHkCmohBCABRQRAIARBADYCAAsgAEHUCmohBSAAQdwKaiEGA0AgBigCACEBIAEEQCAFLAAAIQEgAUUNAwsgABAuIQIgAkF/Rg0CIAMoAgAhASACIAF0IQIgBCgCACEHIAcgAmohAiAEIAI2AgAgAUEIaiECIAMgAjYCACABQRFIDQALCwsLrQUBCX8gABA0IAFBIGohAiACKAIAIQUCQAJAIAVFIgNFDQAgAUGkEGohAiACKAIAIQIgAg0AQX8hAQwBCyABQQRqIQIgAigCACECAkACQCACQQhKBEAgAUGkEGohAyADKAIAIQMgAw0BBSADDQELDAELIABB5ApqIQggCCgCACEJIAkQOiEHIAFBrBBqIQIgAigCACECIAJBAUoEQCABQaQQaigCACEKQQAhAwNAIAJBAXYhBSAFIANqIQQgCiAEQQJ0aiEGIAYoAgAhBiAGIAdLIQYgAiAFayECIAMgBCAGGyEDIAUgAiAGGyECIAJBAUoNAAsFQQAhAwsgAUEXaiECIAIsAAAhAiACRQRAIAFBqBBqIQIgAigCACECIAIgA0ECdGohAiACKAIAIQMLIAFBCGohASABKAIAIQEgASADaiEBIAEtAAAhASABQf8BcSEBIABB6ApqIQIgAigCACEAIAAgAUgEf0EAIQBBfwUgACABayEAIAkgAXYhASAIIAE2AgAgAwshASACIAA2AgAMAQsgAUEXaiEDIAMsAAAhAyADBEBBgRVBxBNB6gxBjBUQBAsCQCACQQBKBEAgASgCCCEIIABB5ApqIQlBACEBA0ACQCAIIAFqIQMgAywAACEEIARB/wFxIQMgBEF/RwRAIAUgAUECdGoh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IwZBEGokBiACIQECfCAAvUIgiKdB/////wdxIgNB/MOk/wNJBHwgA0GewZryA0kEfEQAAAAAAADwPwUgAEQAAAAAAAAAABByCwUgACAAoSADQf//v/8HSw0BGgJAAkACQAJAIAAgARBuQQNxDgMAAQIDCyABKwMAIAErAwgQcgwECyABKwMAIAErAwhBARBwmgwDCyABKwMAIAErAwgQcpoMAgsgASsDACABKwMIQQEQcAsLIQAgAiQGIAALywEBA38jBiECIwZBEGokBiACIQECQCAAvUIgiKdB/////wdxIgNB/MOk/wNJBEAgA0GAgMDyA08EQCAARAAAAAAAAAAAQQAQcCEACwUgA0H//7//B0sEQCAAIAChIQAMAgsCQAJAAkACQAJAIAAgARBuQQNxDgMAAQIDCyABKwMAIAErAwhBARBwIQAMBQsgASsDACABKwMIEHIhAAwECyABKwMAIAErAwhBARBwmiEADAMLIAErAwAgASsDCBBymiEACwsLIAIkBiAAC5sDAwJ/AX4CfCAAvSIDQj+IpyEBAnwCfwJAIANCIIinQf////8HcSICQarGmIQESwR8IANC////////////AINCgICAgICAgPj/AFYEQCAADwsgAETvOfr+Qi6GQGQEQCAARAAAAAAAAOB/og8FIABE0rx63SsjhsBjIABEUTAt1RBJh8BjcUUNAkQAAAAAAAAAACIADwsABSACQcLc2P4DSwRAIAJBscXC/wNLDQIgAUEBcyABawwDCyACQYCAwPEDSwR8QQAhASAABSAARAAAAAAAAPA/oA8LCwwCCyAARP6CK2VHFfc/oiABQQN0QYATaisDAKCqCyEBIAAgAbciBEQAAOD+Qi7mP6KhIgAgBER2PHk17znqPaIiBaELIQQgACAEIAQgBCAEoiIAIAAgACAAIABE0KS+cmk3Zj6iRPFr0sVBvbu+oKJELN4lr2pWET+gokSTvb4WbMFmv6CiRD5VVVVVVcU/oKKhIgCiRAAAAAAAAABAIAChoyAFoaBEAAAAAAAA8D+gIQAgAUUEQCAADwsgACABEGULnwMDAn8BfgV8IAC9IgNCIIinIQECfyADQgBTIgIgAUGAgMAASXIEfyADQv///////////wCDQgBRBEBEAAAAAAAA8L8gACAAoqMPCyACRQRAIABEAAAAAAAAUEOi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mgDjqR0AXmGRAAgb5gCFmWUAoBRfAI1AaACA2P8AJ3NNAAYGMQDKVhUAyahzAHviYABrjMAAQcMSC11A+yH5PwAAAAAtRHQ+AAAAgJhG+DwAAABgUcx4OwAAAICDG/A5AAAAQCAlejgAAACAIoLjNgAAAAAd82k1AAAAAAAA4D8AAAAAAADgvwAAAAAAAPA/AAAAAAAA+D8AQagTCwgG0M9D6/1MPgBBuxMLigZAA7jiP09nZ1MuL3N0Yl92b3JiaXMuYwBmLT5hbGxvYy5hbGxvY19idWZmZXJfbGVuZ3RoX2luX2J5dGVzID09IGYtPnRlbXBfb2Zmc2V0AHZvcmJpc19kZWNvZGVfaW5pdGlhbABmLT5ieXRlc19pbl9zZWcgPiAwAGdldDhfcGFja2V0X3JhdwBmLT5ieXRlc19pbl9zZWcgPT0gMABuZXh0X3NlZ21lbnQAdm9yYmlzX2RlY29kZV9wYWNrZXRfcmVzdAAhYy0+c3BhcnNlAGNvZGVib29rX2RlY29kZV9zY2FsYXJfcmF3ACFjLT5zcGFyc2UgfHwgeiA8IGMtPnNvcnRlZF9lbnRyaWVzAGNvZGVib29rX2RlY29kZV9kZWludGVybGVhdmVfcmVwZWF0AHogPCBjLT5zb3J0ZWRfZW50cmllcwBjb2RlYm9va19kZWNvZGVfc3RhcnQAKG4gJiAzKSA9PSAwAGltZGN0X3N0ZXAzX2l0ZXIwX2xvb3AAMABnZXRfd2luZG93AGYtPnRlbXBfb2Zmc2V0ID09IGYtPmFsbG9jLmFsbG9jX2J1ZmZlcl9sZW5ndGhfaW5fYnl0ZXMAc3RhcnRfZGVjb2RlcgB2b3JiaXNjLT5zb3J0ZWRfZW50cmllcyA9PSAwAGNvbXB1dGVfY29kZXdvcmRzAHogPj0gMCAmJiB6IDwgMzIAbGVuW2ldID49IDAgJiYgbGVuW2ldIDwgMzIAYXZhaWxhYmxlW3ldID09IDAAayA9PSBjLT5zb3J0ZWRfZW50cmllcwBjb21wdXRlX3NvcnRlZF9odWZmbWFuAGMtPnNvcnRlZF9jb2Rld29yZHNbeF0gPT0gY29kZQBsZW4gIT0gTk9fQ09ERQBpbmNsdWRlX2luX3NvcnQAcG93KChmbG9hdCkgcisxLCBkaW0pID4gZW50cmllcwBsb29rdXAxX3ZhbHVlcwAoaW50KSBmbG9vcihwb3coKGZsb2F0KSByLCBkaW0pKSA8PSBlbnRyaWVzAOoPBG5hbWUB4g9+AAVhYm9ydAENZW5sYXJnZU1lbW9yeQIOZ2V0VG90YWxNZW1vcnkDF2Fib3J0T25DYW5ub3RHcm93TWVtb3J5BA5fX19hc3NlcnRfZmFpbAULX19fc2V0RXJyTm8GBl9hYm9ydAcWX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZwgQX19ncm93V2FzbU1lbW9yeQkKc3RhY2tBbGxvYwoJc3RhY2tTYXZlCwxzdGFja1Jlc3RvcmUME2VzdGFibGlzaFN0YWNrU3BhY2UNCHNldFRocmV3DgtzZXRUZW1wUmV0MA8LZ2V0VGVtcFJldDAQEV9zdGJfdm9yYmlzX2Nsb3NlEQ5fdm9yYmlzX2RlaW5pdBILX3NldHVwX2ZyZWUTGl9zdGJfdm9yYmlzX2ZsdXNoX3B1c2hkYXRhFCFfc3RiX3ZvcmJpc19kZWNvZGVfZnJhbWVfcHVzaGRhdGEVBl9lcnJvchYgX3ZvcmJpc19zZWFyY2hfZm9yX3BhZ2VfcHVzaGRhdGEXGF9pc193aG9sZV9wYWNrZXRfcHJlc2VudBgVX3ZvcmJpc19kZWNvZGVfcGFja2V0GQxfZ2V0OF9wYWNrZXQaFF92b3JiaXNfZmluaXNoX2ZyYW1lGxlfc3RiX3ZvcmJpc19vcGVuX3B1c2hkYXRhHAxfdm9yYmlzX2luaXQdDl9zdGFydF9kZWNvZGVyHg1fdm9yYmlzX2FsbG9jHxtfc3RiX3ZvcmJpc19nZXRfZmlsZV9vZmZzZXQgE19tYXliZV9zdGFydF9wYWNrZXQhDV9mbHVzaF9wYWNrZXQiBV9nZXRuIwZfZ2V0MzIkE19zdGJfdm9yYmlzX2pzX29wZW4lFF9zdGJfdm9yYmlzX2pzX2Nsb3NlJhdfc3RiX3ZvcmJpc19qc19jaGFubmVscycaX3N0Yl92b3JiaXNfanNfc2FtcGxlX3JhdGUoFV9zdGJfdm9yYmlzX2pzX2RlY29kZSkNX2NyYzMyX3VwZGF0ZSoWX3ZvcmJpc19kZWNvZGVfaW5pdGlhbCsaX3ZvcmJpc19kZWNvZGVfcGFja2V0X3Jlc3QsCV9nZXRfYml0cy0FX2lsb2cuEF9nZXQ4X3BhY2tldF9yYXcvDV9uZXh0X3NlZ21lbnQwBV9nZXQ4MQtfc3RhcnRfcGFnZTIQX2NhcHR1cmVfcGF0dGVybjMdX3N0YXJ0X3BhZ2Vfbm9fY2FwdHVyZXBhdHRlcm40DV9wcmVwX2h1ZmZtYW41G19jb2RlYm9va19kZWNvZGVfc2NhbGFyX3JhdzYOX3ByZWRpY3RfcG9pbnQ3D19kZWNvZGVfcmVzaWR1ZTgJX2RvX2Zsb29yOQ1faW52ZXJzZV9tZGN0OgxfYml0X3JldmVyc2U7EV9tYWtlX2Jsb2NrX2FycmF5PBJfc2V0dXBfdGVtcF9tYWxsb2M9JF9jb2RlYm9va19kZWNvZGVfZGVpbnRlcmxlYXZlX3JlcGVhdD4PX3Jlc2lkdWVfZGVjb2RlPxVfY29kZWJvb2tfZGVjb2RlX3N0ZXBAEF9jb2RlYm9va19kZWNvZGVBFl9jb2RlYm9va19kZWNvZGVfc3RhcnRCCl9kcmF3X2xpbmVDF19pbWRjdF9zdGVwM19pdGVyMF9sb29wRBlfaW1kY3Rfc3RlcDNfaW5uZXJfcl9sb29wRRlfaW1kY3Rfc3RlcDNfaW5uZXJfc19sb29wRh9faW1kY3Rfc3RlcDNfaW5uZXJfc19sb29wX2xkNjU0RwhfaXRlcl81NEgLX2dldF93aW5kb3dJEF92b3JiaXNfdmFsaWRhdGVKDV9zdGFydF9wYWNrZXRLBV9za2lwTAtfY3JjMzJfaW5pdE0NX3NldHVwX21hbGxvY04QX3NldHVwX3RlbXBfZnJlZU8SX2NvbXB1dGVfY29kZXdvcmRzUBdfY29tcHV0ZV9zb3J0ZWRfaHVmZm1hblEcX2NvbXB1dGVfYWNjZWxlcmF0ZWRfaHVmZm1hblIPX2Zsb2F0MzJfdW5wYWNrUw9fbG9va3VwMV92YWx1ZXNUDl9wb2ludF9jb21wYXJlVQpfbmVpZ2hib3JzVg9faW5pdF9ibG9ja3NpemVXCl9hZGRfZW50cnlYEF9pbmNsdWRlX2luX3NvcnRZD191aW50MzJfY29tcGFyZVoYX2NvbXB1dGVfdHdpZGRsZV9mYWN0b3JzWw9fY29tcHV0ZV93aW5kb3dcE19jb21wdXRlX2JpdHJldmVyc2VdB19zcXVhcmVeB19tYWxsb2NfBV9mcmVlYAhfcmVhbGxvY2ESX3RyeV9yZWFsbG9jX2NodW5rYg5fZGlzcG9zZV9jaHVua2MRX19fZXJybm9fbG9jYXRpb25kB19tZW1jbXBlB19zY2FsYm5mBl9xc29ydGcFX3NpZnRoBF9zaHJpCF90cmlua2xlagRfc2hsawVfcG50emwIX2FfY3R6X2xtBl9jeWNsZW4LX19fcmVtX3BpbzJvEV9fX3JlbV9waW8yX2xhcmdlcAZfX19zaW5xBl9sZGV4cHIGX19fY29zcwRfY29zdARfc2ludQRfZXhwdgRfbG9ndwRfcG93eAtydW5Qb3N0U2V0c3kHX21lbWNweXoHX21lbXNldHsFX3Nicmt8C2R5bkNhbGxfaWlpfQJiMA=="),function(u){return u.charCodeAt(0)});var r=r!==void 0?r:{},m={};for(n in r)r.hasOwnProperty(n)&&(m[n]=r[n]);r.arguments=[],r.thisProgram="./this.program",r.quit=function(u,d){throw d},r.preRun=[],r.postRun=[];var F=!1,k=!1,R=!1,b=!1;F=typeof window=="object",k=typeof importScripts=="function",R=typeof process=="object"&&typeof Ia=="function"&&!F&&!k,b=!F&&!R&&!k;var q="";function w(u){return r.locateFile?r.locateFile(u,q):q+u}R?(q="/",r.read=function(d,y){var T;return A||(A=void 0),e||(e=void 0),d=e.normalize(d),T=A.readFileSync(d),y?T:T.toString()},r.readBinary=function(d){var y=r.read(d,!0);return y.buffer||(y=new Uint8Array(y)),j(y.buffer),y},process.argv.length>1&&(r.thisProgram=process.argv[1].replace(/\\/g,"/")),r.arguments=process.argv.slice(2),process.on("uncaughtException",function(u){if(!(u instanceof Ae))throw u}),process.on("unhandledRejection",function(u,d){process.exit(1)}),r.quit=function(u){process.exit(u)},r.inspect=function(){return"[Emscripten Module object]"}):b?(typeof read<"u"&&(r.read=function(d){return read(d)}),r.readBinary=function(d){var y;return typeof readbuffer=="function"?new Uint8Array(readbuffer(d)):(j(typeof(y=read(d,"binary"))=="object"),y)},typeof scriptArgs<"u"?r.arguments=scriptArgs:typeof arguments<"u"&&(r.arguments=arguments),typeof quit=="function"&&(r.quit=function(u){quit(u)})):(F||k)&&(F?document.currentScript&&(q=document.currentScript.src):q=self.location.href,q=q.indexOf("blob:")!==0?q.split("/").slice(0,-1).join("/")+"/":"",r.read=function(d){var y=new XMLHttpRequest;return y.open("GET",d,!1),y.send(null),y.responseText},k&&(r.readBinary=function(d){var y=new XMLHttpRequest;return y.open("GET",d,!1),y.responseType="arraybuffer",y.send(null),new Uint8Array(y.response)}),r.readAsync=function(d,y,T){var z=new XMLHttpRequest;z.open("GET",d,!0),z.responseType="arraybuffer",z.onload=function(){if(z.status==200||z.status==0&&z.response){y(z.response);return}T()},z.onerror=T,z.send(null)},r.setWindowTitle=function(u){document.title=u});var N=r.print||(typeof console<"u"?console.log.bind(console):typeof print<"u"?print:null),P=r.printErr||(typeof printErr<"u"?printErr:typeof console<"u"&&console.warn.bind(console)||N);for(n in m)m.hasOwnProperty(n)&&(r[n]=m[n]);function cA(u){var d=I;return I=I+u+15&-16,d}function CA(u,d){return d||(d=16),u=Math.ceil(u/d)*d}m=void 0;var IA={"f64-rem":function(u,d){return u%d},debugger:function(){}},Y=0;function j(u,d){u||FA("Assertion failed: "+d)}function H(u){var d=r["_"+u];return j(d,"Cannot call unknown function "+u+", make sure it is exported"),d}var K={arrayToC:function(u){var d,y,T=Ve(u.length);return d=u,y=T,i.set(d,y),T},stringToC:function(u){var d=0;if(u!=null&&u!==0){var y=(u.length<<2)+1;d=Ve(y),nA(u,d,y)}return d}},W={string:K.stringToC,array:K.arrayToC};function M(u,d,y,T,z){var iA=H(u),BA=[],J=0;if(T)for(var qA=0;qA<T.length;qA++){var uA=W[y[qA]];uA?(J===0&&(J=$A()),BA[qA]=uA(T[qA])):BA[qA]=T[qA]}var eA,sA=iA.apply(null,BA);return sA=(eA=sA,d==="string"?D(eA):d==="boolean"?!!eA:eA),J!==0&&vA(J),sA}function D(u,d){if(d===0||!u)return"";for(var y,T,z,iA=0,BA=0;iA|=T=a[u+BA>>0],(T!=0||d)&&(BA++,!d||BA!=d););d||(d=BA);var J="";if(iA<128){for(;d>0;)z=String.fromCharCode.apply(String,a.subarray(u,u+Math.min(d,1024))),J=J?J+z:z,u+=1024,d-=1024;return J}return y=u,function(uA,eA){for(var sA=eA;uA[sA];)++sA;if(sA-eA>16&&uA.subarray&&x)return x.decode(uA.subarray(eA,sA));for(var oA,RA,yA,DA,de,Ye,GA="";;){if(!(oA=uA[eA++]))return GA;if(!(128&oA)){GA+=String.fromCharCode(oA);continue}if(RA=63&uA[eA++],(224&oA)==192){GA+=String.fromCharCode((31&oA)<<6|RA);continue}if(yA=63&uA[eA++],(240&oA)==224?oA=(15&oA)<<12|RA<<6|yA:(DA=63&uA[eA++],(248&oA)==240?oA=(7&oA)<<18|RA<<12|yA<<6|DA:(de=63&uA[eA++],oA=(252&oA)==248?(3&oA)<<24|RA<<18|yA<<12|DA<<6|de:(1&oA)<<30|RA<<24|yA<<18|DA<<12|de<<6|(Ye=63&uA[eA++]))),oA<65536)GA+=String.fromCharCode(oA);else{var Oe=oA-65536;GA+=String.fromCharCode(55296|Oe>>10,56320|1023&Oe)}}}(a,y)}var x=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function AA(u,d,y,T){if(!(T>0))return 0;for(var z=y,iA=y+T-1,BA=0;BA<u.length;++BA){var J=u.charCodeAt(BA);if(J>=55296&&J<=57343&&(J=65536+((1023&J)<<10)|1023&u.charCodeAt(++BA)),J<=127){if(y>=iA)break;d[y++]=J}else if(J<=2047){if(y+1>=iA)break;d[y++]=192|J>>6,d[y++]=128|63&J}else if(J<=65535){if(y+2>=iA)break;d[y++]=224|J>>12,d[y++]=128|J>>6&63,d[y++]=128|63&J}else if(J<=2097151){if(y+3>=iA)break;d[y++]=240|J>>18,d[y++]=128|J>>12&63,d[y++]=128|J>>6&63,d[y++]=128|63&J}else if(J<=67108863){if(y+4>=iA)break;d[y++]=248|J>>24,d[y++]=128|J>>18&63,d[y++]=128|J>>12&63,d[y++]=128|J>>6&63,d[y++]=128|63&J}else{if(y+5>=iA)break;d[y++]=252|J>>30,d[y++]=128|J>>24&63,d[y++]=128|J>>18&63,d[y++]=128|J>>12&63,d[y++]=128|J>>6&63,d[y++]=128|63&J}}return d[y]=0,y-z}function nA(u,d,y){return AA(u,a,d,y)}typeof TextDecoder<"u"&&new TextDecoder("utf-16le");function wA(u,d){return u%d>0&&(u+=d-u%d),u}function NA(u){r.buffer=t=u}function UA(){r.HEAP8=i=new Int8Array(t),r.HEAP16=new Int16Array(t),r.HEAP32=s=new Int32Array(t),r.HEAPU8=a=new Uint8Array(t),r.HEAPU16=new Uint16Array(t),r.HEAPU32=new Uint32Array(t),r.HEAPF32=new Float32Array(t),r.HEAPF64=new Float64Array(t)}function OA(){var u=r.usingWasm?65536:16777216,d=2147483648-u;if(s[Q>>2]>d)return!1;var y=v;for(v=Math.max(v,16777216);v<s[Q>>2];)v=v<=536870912?wA(2*v,u):Math.min(wA((3*v+2147483648)/4,u),d);var T=r.reallocBuffer(v);return T&&T.byteLength==v?(NA(T),UA(),!0):(v=y,!1)}g=I=o=B=C=Q=0,r.reallocBuffer||(r.reallocBuffer=function(u){try{if(ArrayBuffer.transfer)d=ArrayBuffer.transfer(t,u);else{var d,y=i;d=new ArrayBuffer(u),new Int8Array(d).set(y)}}catch{return!1}return!!xt(d)&&d});try{(c=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get))(new ArrayBuffer(4))}catch{c=function(d){return d.byteLength}}var S=r.TOTAL_STACK||5242880,v=r.TOTAL_MEMORY||16777216;function Z(){return v}function gA(u){for(;u.length>0;){var d=u.shift();if(typeof d=="function"){d();continue}var y=d.func;typeof y=="number"?d.arg===void 0?r.dynCall_v(y):r.dynCall_vi(y,d.arg):y(d.arg===void 0?null:d.arg)}}v<S&&P("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+v+"! (TOTAL_STACK="+S+")"),r.buffer?t=r.buffer:(typeof WebAssembly=="object"&&typeof WebAssembly.Memory=="function"?(r.wasmMemory=new WebAssembly.Memory({initial:v/65536}),t=r.wasmMemory.buffer):t=new ArrayBuffer(v),r.buffer=t),UA();var PA=[],ce=[],Qe=[],ge=[],Fe=!1;function Ke(u){PA.unshift(u)}function xe(u){ge.unshift(u)}var It=Math.floor,HA=0,xA=null;r.preloadedImages={},r.preloadedAudios={};var Re="data:application/octet-stream;base64,";function SA(u){return String.prototype.startsWith?u.startsWith(Re):u.indexOf(Re)===0}(function(){var d="main.wast",y="main.wasm",T="main.temp.asm";SA(d)||(d=w(d)),SA(y)||(y=w(y)),SA(T)||(T=w(T));var z={global:null,env:null,asm2wasm:IA,parent:r},iA=null;function BA(){try{if(r.wasmBinary)return new Uint8Array(r.wasmBinary);if(r.readBinary)return r.readBinary(y);throw"both async and sync fetching of the wasm failed"}catch(eA){FA(eA)}}r.asmPreload=r.asm;var J=r.reallocBuffer,qA=function(eA){eA=wA(eA,r.usingWasm?65536:16777216);var sA=r.buffer.byteLength;if(r.usingWasm)try{var oA=r.wasmMemory.grow((eA-sA)/65536);return oA!==-1?r.buffer=r.wasmMemory.buffer:null}catch{return null}};r.reallocBuffer=function(eA){return uA==="asmjs"?J(eA):qA(eA)};var uA="";r.asm=function(eA,sA,oA){if(!(sA=sA).table){var RA,yA=r.wasmTableSize;yA===void 0&&(yA=1024);var DA=r.wasmMaxTableSize;typeof WebAssembly=="object"&&typeof WebAssembly.Table=="function"?DA!==void 0?sA.table=new WebAssembly.Table({initial:yA,maximum:DA,element:"anyfunc"}):sA.table=new WebAssembly.Table({initial:yA,element:"anyfunc"}):sA.table=Array(yA),r.wasmTable=sA.table}return sA.memoryBase||(sA.memoryBase=r.STATIC_BASE),sA.tableBase||(sA.tableBase=0),RA=function(Ye,GA,Oe){if(typeof WebAssembly!="object")return P("no native wasm support detected"),!1;if(!(r.wasmMemory instanceof WebAssembly.Memory))return P("no native wasm Memory in use"),!1;function De(LA,ZA){if((iA=LA.exports).memory){var Pe,Vt,ni;Pe=iA.memory,Vt=r.buffer,Pe.byteLength<Vt.byteLength&&P("the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here"),ni=new Int8Array(Vt),new Int8Array(Pe).set(ni),NA(Pe),UA()}r.asm=iA,r.usingWasm=!0,function(Ks){if(HA--,r.monitorRunDependencies&&r.monitorRunDependencies(HA),HA==0&&xA){var ks=xA;xA=null,ks()}}()}if(GA.memory=r.wasmMemory,z.global={NaN:NaN,Infinity:1/0},z["global.Math"]=Math,z.env=GA,HA++,r.monitorRunDependencies&&r.monitorRunDependencies(HA),r.instantiateWasm)try{return r.instantiateWasm(z,De)}catch(LA){return P("Module.instantiateWasm callback failed with error: "+LA),!1}function Ge(LA){De(LA.instance,LA.module)}function lt(LA){(!r.wasmBinary&&(F||k)&&typeof fetch=="function"?fetch(y,{credentials:"same-origin"}).then(function(ZA){if(!ZA.ok)throw"failed to load wasm binary file at '"+y+"'";return ZA.arrayBuffer()}).catch(function(){return BA()}):new Promise(function(ZA,Pe){ZA(BA())})).then(function(ZA){return WebAssembly.instantiate(ZA,z)}).then(LA).catch(function(ZA){P("failed to asynchronously prepare wasm: "+ZA),FA(ZA)})}return r.wasmBinary||typeof WebAssembly.instantiateStreaming!="function"||SA(y)||typeof fetch!="function"?lt(Ge):WebAssembly.instantiateStreaming(fetch(y,{credentials:"same-origin"}),z).then(Ge).catch(function(LA){P("wasm streaming compile failed: "+LA),P("falling back to ArrayBuffer instantiation"),lt(Ge)}),{}}(eA,sA),j(RA,"no binaryen method succeeded."),RA},r.asm})(),I=(g=1024)+4816,ce.push(),r.STATIC_BASE=g,r.STATIC_BUMP=4816;var gt=I;I+=16,Q=cA(4),B=(o=CA(I))+S,C=CA(B),s[Q>>2]=C,r.wasmTableSize=4,r.wasmMaxTableSize=4,r.asmGlobalArg={},r.asmLibraryArg={abort:FA,assert:j,enlargeMemory:OA,getTotalMemory:Z,abortOnCannotGrowMemory:function(){FA("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+v+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")},invoke_iii:function(d,y,T){var z=$A();try{return r.dynCall_iii(d,y,T)}catch(iA){if(vA(z),typeof iA!="number"&&iA!=="longjmp")throw iA;r.setThrew(1,0)}},___assert_fail:function(d,y,T,z){FA("Assertion failed: "+D(d)+", at: "+[y?D(y):"unknown filename",T,z?D(z):"unknown function"])},___setErrNo:function(d){return r.___errno_location&&(s[r.___errno_location()>>2]=d),d},_abort:function(){r.abort()},_emscripten_memcpy_big:function(d,y,T){return a.set(a.subarray(y,y+T),d),d},_llvm_floor_f64:It,DYNAMICTOP_PTR:Q,tempDoublePtr:gt,ABORT:Y,STACKTOP:o,STACK_MAX:B};var Et=r.asm(r.asmGlobalArg,r.asmLibraryArg,t);r.asm=Et,r.___errno_location=function(){return r.asm.___errno_location.apply(null,arguments)};var xt=r._emscripten_replace_memory=function(){return r.asm._emscripten_replace_memory.apply(null,arguments)};r._free=function(){return r.asm._free.apply(null,arguments)},r._malloc=function(){return r.asm._malloc.apply(null,arguments)},r._memcpy=function(){return r.asm._memcpy.apply(null,arguments)},r._memset=function(){return r.asm._memset.apply(null,arguments)},r._sbrk=function(){return r.asm._sbrk.apply(null,arguments)},r._stb_vorbis_js_channels=function(){return r.asm._stb_vorbis_js_channels.apply(null,arguments)},r._stb_vorbis_js_close=function(){return r.asm._stb_vorbis_js_close.apply(null,arguments)},r._stb_vorbis_js_decode=function(){return r.asm._stb_vorbis_js_decode.apply(null,arguments)},r._stb_vorbis_js_open=function(){return r.asm._stb_vorbis_js_open.apply(null,arguments)},r._stb_vorbis_js_sample_rate=function(){return r.asm._stb_vorbis_js_sample_rate.apply(null,arguments)},r.establishStackSpace=function(){return r.asm.establishStackSpace.apply(null,arguments)},r.getTempRet0=function(){return r.asm.getTempRet0.apply(null,arguments)},r.runPostSets=function(){return r.asm.runPostSets.apply(null,arguments)},r.setTempRet0=function(){return r.asm.setTempRet0.apply(null,arguments)},r.setThrew=function(){return r.asm.setThrew.apply(null,arguments)};var Ve=r.stackAlloc=function(){return r.asm.stackAlloc.apply(null,arguments)},vA=r.stackRestore=function(){return r.asm.stackRestore.apply(null,arguments)},$A=r.stackSave=function(){return r.asm.stackSave.apply(null,arguments)};function Ae(u){this.name="ExitStatus",this.message="Program terminated with exit("+u+")",this.status=u}function Me(u){u=u||r.arguments,!(HA>0)&&(function(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)Ke(r.preRun.shift());gA(PA)}(),!(HA>0)&&(r.calledRun||(r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),d()},1)):d())));function d(){!r.calledRun&&(r.calledRun=!0,Y||(Fe||(Fe=!0,gA(ce)),gA(Qe),r.onRuntimeInitialized&&r.onRuntimeInitialized(),function(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)xe(r.postRun.shift());gA(ge)}()))}}function FA(u){throw r.onAbort&&r.onAbort(u),u!==void 0?(N(u),P(u),u=JSON.stringify(u)):u="",Y=!0,"abort("+u+"). Build with -s ASSERTIONS=1 for more info."}if(r.dynCall_iii=function(){return r.asm.dynCall_iii.apply(null,arguments)},r.asm=Et,r.ccall=M,r.cwrap=function(d,y,T,z){var iA=(T=T||[]).every(function(BA){return BA==="number"});return y!=="string"&&iA&&!z?H(d):function(){return M(d,y,T,arguments)}},Ae.prototype=Error(),Ae.prototype.constructor=Ae,xA=function u(){r.calledRun||Me(),r.calledRun||(xA=u)},r.run=Me,r.abort=FA,r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();r.noExitRuntime=!0,Me(),r.onRuntimeInitialized=()=>{kn=!0,wn()},ve.decode=function(u){return function(y){if(!kn)throw Error("SF3 decoder has not been initialized yet. Did you await synth.isReady?");var T={};function z(De){return new Int32Array(r.HEAPU8.buffer,De,1)[0]}function iA(De,Ge){var lt=new ArrayBuffer(Ge*Float32Array.BYTES_PER_ELEMENT),LA=new Float32Array(lt);return LA.set(new Float32Array(r.HEAPU8.buffer,De,Ge)),LA}T.open=r.cwrap("stb_vorbis_js_open","number",[]),T.close=r.cwrap("stb_vorbis_js_close","void",["number"]),T.channels=r.cwrap("stb_vorbis_js_channels","number",["number"]),T.sampleRate=r.cwrap("stb_vorbis_js_sample_rate","number",["number"]),T.decode=r.cwrap("stb_vorbis_js_decode","number",["number","number","number","number","number"]);var BA,J,qA,uA,eA=T.open(),sA=(BA=y,J=y.byteLength,qA=r._malloc(J),(uA=new Uint8Array(r.HEAPU8.buffer,qA,J)).set(new Uint8Array(BA,0,J)),uA),oA=r._malloc(4),RA=r._malloc(4),yA=T.decode(eA,sA.byteOffset,sA.byteLength,oA,RA);if(r._free(sA.byteOffset),yA<0)throw T.close(eA),r._free(oA),Error("stbvorbis decode failed: "+yA);for(var DA=T.channels(eA),de=Array(DA),Ye=new Int32Array(r.HEAPU32.buffer,z(oA),DA),GA=0;GA<DA;GA++)de[GA]=iA(Ye[GA],yA),r._free(Ye[GA]);var Oe=T.sampleRate(eA);return T.close(eA),r._free(z(oA)),r._free(oA),{data:de,sampleRate:Oe,eof:!0,error:null}}(u)}})();var Fn=ve,Rn=-15e3,va=15e3,Mn=new Float32Array(va-Rn+1);for(let n=0;n<Mn.length;n++){const A=Rn+n;Mn[n]=Math.pow(2,A/1200)}var $e=-2e4,Dn=16500,St=new Float32Array(Dn-$e+1);for(let n=0;n<St.length;n++){const A=$e+n;St[n]=440*Math.pow(2,(A-6900)/1200)}function La(n){return n<$e||n>Dn?440*Math.pow(2,(n-6900)/1200):St[~~n-$e]}var qt=-1660,Na=1600,kt=new Float32Array((Na-qt)*100+1);for(let n=0;n<kt.length;n++){const A=(qt*100+n)/100;kt[n]=Math.pow(10,-A/20)}function Gn(n){return kt[Math.floor((n-qt)*100)]}function Be(n,A){return(n>>A&1)>0}function wt(n){return n?1:0}var MA=16384,At=Object.keys(lA).length,bn=4,WA=new Float32Array(MA+1),Ce=new Float32Array(MA+1);WA[0]=0,WA[WA.length-1]=1,Ce[0]=0,Ce[Ce.length-1]=1;for(let n=1;n<MA-1;n++){const A=-.4166666666666667*Math.log(n/(WA.length-1))/Math.LN10;Ce[n]=1-A,WA[WA.length-1-n]=A}function Un(n,A,e){const t=!!(n&2);switch(!!(n&1)&&(e=1-e),A){case lA.linear:return t?e*2-1:e;case lA.switch:return e=e>.5?1:0,t?e*2-1:e;case lA.concave:return t?(e=e*2-1,e<0?-WA[~~(e*-MA)]:WA[~~(e*MA)]):WA[~~(e*MA)];case lA.convex:return t?(e=e*2-1,e<0?-Ce[~~(e*-MA)]:Ce[~~(e*MA)]):Ce[~~(e*MA)]}}var XA=class Yt{constructor(A=EA.noController,e=lA.linear,t=!1,i=!1,a=!1){h(this,"isBipolar");h(this,"isNegative");h(this,"index");h(this,"isCC");h(this,"curveType");this.isBipolar=i,this.isNegative=a,this.index=A,this.isCC=t,this.curveType=e}get sourceName(){return this.isCC?Object.keys(O).find(A=>O[A]===this.index)??this.index.toString():Object.keys(EA).find(A=>EA[A]===this.index)??this.index.toString()}get curveTypeName(){return Object.keys(lA).find(A=>lA[A]===this.curveType)??this.curveType.toString()}static fromSourceEnum(A){const e=Be(A,9),t=Be(A,8),i=Be(A,7),a=A&127,s=A>>10&3;return new Yt(a,s,i,e,t)}static copyFrom(A){return new Yt(A.index,A.curveType,A.isCC,A.isBipolar,A.isNegative)}toString(){return`${this.sourceName} ${this.curveTypeName} ${this.isBipolar?"bipolar":"unipolar"} ${this.isNegative?"negative":"positive"}`}toSourceEnum(){return this.curveType<<10|wt(this.isBipolar)<<9|wt(this.isNegative)<<8|wt(this.isCC)<<7|this.index}isIdentical(A){return this.index===A.index&&this.isNegative===A.isNegative&&this.isCC===A.isCC&&this.isBipolar===A.isBipolar&&this.curveType===A.curveType}getValue(A,e){let t;if(this.isCC)t=A[this.index];else switch(this.index){case EA.noController:t=16383;break;case EA.noteOnKeyNum:t=e.midiNote<<7;break;case EA.noteOnVelocity:t=e.velocity<<7;break;case EA.polyPressure:t=e.pressure<<7;break;default:t=A[this.index+pt];break}const i=(this.isBipolar?2:0)|(this.isNegative?1:0);return vn[MA*(this.curveType*At+i)+t]}},vn=new Float32Array(MA*bn*At);for(let n=0;n<At;n++)for(let A=0;A<bn;A++){const e=MA*(n*At+A);for(let t=0;t<MA;t++)vn[e+t]=Un(A,n,t/MA)}var Ie=10;function jA(n,A,e,t,i){return new XA(i,n,t,A,e).toSourceEnum()}var Ln=jA(lA.linear,!0,!1,!0,O.filterResonance),dA=class Ot{constructor(A=new XA,e=new XA,t=l.INVALID,i=0,a=0,s=!1,g=!1){h(this,"currentValue",0);h(this,"destination",l.initialAttenuation);h(this,"transformAmount",0);h(this,"transformType",0);h(this,"isEffectModulator",!1);h(this,"isDefaultResonantModulator",!1);h(this,"primarySource");h(this,"secondarySource");this.primarySource=A,this.secondarySource=e,this.destination=t,this.transformAmount=i,this.transformType=a,this.isEffectModulator=s,this.isDefaultResonantModulator=g}get destinationName(){return Object.keys(l).find(A=>l[A]===this.destination)}static isIdentical(A,e,t=!1){return A.primarySource.isIdentical(e.primarySource)&&A.secondarySource.isIdentical(e.secondarySource)&&A.destination===e.destination&&A.transformType===e.transformType&&(!t||A.transformAmount===e.transformAmount)}static copyFrom(A){return new Ot(XA.copyFrom(A.primarySource),XA.copyFrom(A.secondarySource),A.destination,A.transformAmount,A.transformType,A.isEffectModulator,A.isDefaultResonantModulator)}toString(){return`Source: ${this.primarySource.toString()}
1
+ (function(_,B){typeof exports=="object"&&typeof module<"u"?B(exports,require("vue"),require("pinia")):typeof define=="function"&&define.amd?define(["exports","vue","pinia"],B):(_=typeof globalThis<"u"?globalThis:_||self,B(_.AudioMixerUI={},_.Vue,_.Pinia))})(this,function(_,B,jl){"use strict";var Xa=Object.defineProperty;var Ya=(_,B,jl)=>B in _?Xa(_,B,{enumerable:!0,configurable:!0,writable:!0,value:jl}):_[B]=jl;var R=(_,B,jl)=>Ya(_,typeof B!="symbol"?B+"":B,jl);var zl,$l;var qA=function(){if(typeof Map<"u")return Map;function e(l,t){var A=-1;return l.some(function(Q,n){return Q[0]===t?(A=n,!0):!1}),A}return function(){function l(){this.__entries__=[]}return Object.defineProperty(l.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),l.prototype.get=function(t){var A=e(this.__entries__,t),Q=this.__entries__[A];return Q&&Q[1]},l.prototype.set=function(t,A){var Q=e(this.__entries__,t);~Q?this.__entries__[Q][1]=A:this.__entries__.push([t,A])},l.prototype.delete=function(t){var A=this.__entries__,Q=e(A,t);~Q&&A.splice(Q,1)},l.prototype.has=function(t){return!!~e(this.__entries__,t)},l.prototype.clear=function(){this.__entries__.splice(0)},l.prototype.forEach=function(t,A){A===void 0&&(A=null);for(var Q=0,n=this.__entries__;Q<n.length;Q++){var a=n[Q];t.call(A,a[1],a[0])}},l}()}(),cA=typeof window<"u"&&typeof document<"u"&&window.document===document,ft=function(){return typeof global<"u"&&global.Math===Math?global:typeof self<"u"&&self.Math===Math?self:typeof window<"u"&&window.Math===Math?window:Function("return this")()}(),dQ=function(){return typeof requestAnimationFrame=="function"?requestAnimationFrame.bind(ft):function(e){return setTimeout(function(){return e(Date.now())},1e3/60)}}(),FQ=2;function UQ(e,l){var t=!1,A=!1,Q=0;function n(){t&&(t=!1,e()),A&&s()}function a(){dQ(n)}function s(){var F=Date.now();if(t){if(F-Q<FQ)return;A=!0}else t=!0,A=!1,setTimeout(a,l);Q=F}return s}var BQ=20,sQ=["top","right","bottom","left","width","height","size","weight"],iQ=typeof MutationObserver<"u",oQ=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=UQ(this.refresh.bind(this),BQ)}return e.prototype.addObserver=function(l){~this.observers_.indexOf(l)||this.observers_.push(l),this.connected_||this.connect_()},e.prototype.removeObserver=function(l){var t=this.observers_,A=t.indexOf(l);~A&&t.splice(A,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){var l=this.updateObservers_();l&&this.refresh()},e.prototype.updateObservers_=function(){var l=this.observers_.filter(function(t){return t.gatherActive(),t.hasActive()});return l.forEach(function(t){return t.broadcastActive()}),l.length>0},e.prototype.connect_=function(){!cA||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),iQ?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!cA||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(l){var t=l.propertyName,A=t===void 0?"":t,Q=sQ.some(function(n){return!!~A.indexOf(n)});Q&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),_A=function(e,l){for(var t=0,A=Object.keys(l);t<A.length;t++){var Q=A[t];Object.defineProperty(e,Q,{value:l[Q],enumerable:!1,writable:!1,configurable:!0})}return e},Et=function(e){var l=e&&e.ownerDocument&&e.ownerDocument.defaultView;return l||ft},$A=Pt(0,0,0,0);function jt(e){return parseFloat(e)||0}function le(e){for(var l=[],t=1;t<arguments.length;t++)l[t-1]=arguments[t];return l.reduce(function(A,Q){var n=e["border-"+Q+"-width"];return A+jt(n)},0)}function cQ(e){for(var l=["top","right","bottom","left"],t={},A=0,Q=l;A<Q.length;A++){var n=Q[A],a=e["padding-"+n];t[n]=jt(a)}return t}function ZQ(e){var l=e.getBBox();return Pt(0,0,l.width,l.height)}function RQ(e){var l=e.clientWidth,t=e.clientHeight;if(!l&&!t)return $A;var A=Et(e).getComputedStyle(e),Q=cQ(A),n=Q.left+Q.right,a=Q.top+Q.bottom,s=jt(A.width),F=jt(A.height);if(A.boxSizing==="border-box"&&(Math.round(s+n)!==l&&(s-=le(A,"left","right")+n),Math.round(F+a)!==t&&(F-=le(A,"top","bottom")+a)),!VQ(e)){var d=Math.round(s+n)-l,o=Math.round(F+a)-t;Math.abs(d)!==1&&(s-=d),Math.abs(o)!==1&&(F-=o)}return Pt(Q.left,Q.top,s,F)}var hQ=function(){return typeof SVGGraphicsElement<"u"?function(e){return e instanceof Et(e).SVGGraphicsElement}:function(e){return e instanceof Et(e).SVGElement&&typeof e.getBBox=="function"}}();function VQ(e){return e===Et(e).document.documentElement}function mQ(e){return cA?hQ(e)?ZQ(e):RQ(e):$A}function EQ(e){var l=e.x,t=e.y,A=e.width,Q=e.height,n=typeof DOMRectReadOnly<"u"?DOMRectReadOnly:Object,a=Object.create(n.prototype);return _A(a,{x:l,y:t,width:A,height:Q,top:t,right:l+A,bottom:Q+t,left:l}),a}function Pt(e,l,t,A){return{x:e,y:l,width:t,height:A}}var bQ=function(){function e(l){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=Pt(0,0,0,0),this.target=l}return e.prototype.isActive=function(){var l=mQ(this.target);return this.contentRect_=l,l.width!==this.broadcastWidth||l.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var l=this.contentRect_;return this.broadcastWidth=l.width,this.broadcastHeight=l.height,l},e}(),IQ=function(){function e(l,t){var A=EQ(t);_A(this,{target:l,contentRect:A})}return e}(),WQ=function(){function e(l,t,A){if(this.activeObservations_=[],this.observations_=new qA,typeof l!="function")throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=l,this.controller_=t,this.callbackCtx_=A}return e.prototype.observe=function(l){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(l instanceof Et(l).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(l)||(t.set(l,new bQ(l)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(l){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(l instanceof Et(l).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(l)&&(t.delete(l),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var l=this;this.clearActive(),this.observations_.forEach(function(t){t.isActive()&&l.activeObservations_.push(t)})},e.prototype.broadcastActive=function(){if(this.hasActive()){var l=this.callbackCtx_,t=this.activeObservations_.map(function(A){return new IQ(A.target,A.broadcastRect())});this.callback_.call(l,t,l),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),te=typeof WeakMap<"u"?new WeakMap:new qA,Ae=function(){function e(l){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var t=oQ.getInstance(),A=new WQ(l,t,this);te.set(this,A)}return e}();["observe","unobserve","disconnect"].forEach(function(e){Ae.prototype[e]=function(){var l;return(l=te.get(this))[e].apply(l,arguments)}});var rQ=function(){return typeof ft.ResizeObserver<"u"?ft.ResizeObserver:Ae}();function At(e){const l=B.ref(0),t=B.ref(0);let A=null;const Q=()=>{A&&(A.disconnect(),A=null)},n=()=>{Q();const a=B.unref(e);if(!a)return;A=new rQ(F=>{const d=F[0];d&&(l.value=d.contentRect.width,t.value=d.contentRect.height)}),A.observe(a);const s=a.getBoundingClientRect();l.value=s.width,t.value=s.height};return B.watch(()=>B.unref(e),n,{immediate:!0}),B.onScopeDispose(Q),{width:B.readonly(l),height:B.readonly(t)}}const Ll=(e,l)=>{const t=e.__vccOpts||e;for(const[A,Q]of l)t[A]=Q;return t},SQ={key:0,class:"level"},Xt=Ll({__name:"AudioSlider",props:B.mergeModels({min:{type:Number,default:0},max:{type:Number,default:1},step:{type:Number,default:.01},colour:{type:String,default:"grey"},style:{type:String,default:"volume"},thumbLength:{type:Number,default:1},showLevel:{type:Boolean,default:!1},level:{type:Number,default:.5}},{value:{default:.75},valueModifiers:{}}),emits:["update:value"],setup(e){B.useCssVars(z=>({"083f3e45":Z.value,d4833630:h.value,d6eaa016:C.value,12894835:U.value,"3e9a6a44":m.value}));const l=e,t=B.useTemplateRef("root"),{width:A,height:Q}=At(t),n=B.computed(()=>Math.min(A.value,Q.value)),a=B.computed(()=>Math.max(A.value,Q.value)),s=B.computed(()=>A.value>Q.value),F=B.computed(()=>s.value?"h-slide":"v-slide"),d=B.useModel(e,"value"),o=B.computed(()=>n.value*.8),c=B.computed(()=>n.value*l.thumbLength*.8),h=B.computed(()=>(s.value?c:o).value+"px"),Z=B.computed(()=>(s.value?o:c).value+"px"),U=B.computed(()=>n.value*.1+"px"),m=B.computed(()=>(a.value-c.value)*(d.value-l.min)/(l.max-l.min)+"px"),C=B.computed(()=>s.value?"90deg":"0deg"),W=B.ref(!1),J=B.ref(0),X=z=>{if(!t.value)return d.value;const O=t.value.getBoundingClientRect(),H=z.touches?z.touches[0].clientX:z.clientX,x=z.touches?z.touches[0].clientY:z.clientY;let j;if(s.value){const y=H-O.left-o.value/2,D=O.width-o.value;j=Math.max(0,Math.min(1,y/D))}else{const y=O.bottom-x-o.value/2,D=O.height-o.value;j=Math.max(0,Math.min(1,y/D))}const g=l.min+j*(l.max-l.min);return l.step>0?Math.round(g/l.step)*l.step:g},u=z=>{z.preventDefault(),W.value=!0,J.value=d.value,d.value=X(z),t.value&&t.value.setPointerCapture&&t.value.setPointerCapture(z.pointerId),document.addEventListener("mousemove",G),document.addEventListener("mouseup",T)},G=z=>{W.value&&(z.preventDefault(),d.value=X(z))},T=z=>{if(W.value){if(z.preventDefault(),W.value=!1,t.value&&t.value.releasePointerCapture)try{t.value.releasePointerCapture(z.pointerId)}catch{}document.removeEventListener("mousemove",G),document.removeEventListener("mouseup",T)}},w=z=>{z.preventDefault(),z.touches.length===1&&(W.value=!0,J.value=d.value,d.value=X(z),document.addEventListener("touchmove",Rl,{passive:!1}),document.addEventListener("touchend",cl),document.addEventListener("touchcancel",cl))},Rl=z=>{W.value&&(z.preventDefault(),z.touches.length===1&&(d.value=X(z)))},cl=z=>{W.value&&(z.preventDefault(),W.value=!1,document.removeEventListener("touchmove",Rl),document.removeEventListener("touchend",cl),document.removeEventListener("touchcancel",cl))},Ul=z=>Math.min(1,Math.max(0,l.level*10-z+1));return(z,O)=>(B.openBlock(),B.createElementBlock("div",{class:B.normalizeClass(F.value),ref_key:"root",ref:t,onMousedown:u,onTouchstart:w,style:{userSelect:"none",touchAction:"none"}},[O[0]||(O[0]=B.createElementVNode("div",{class:"track"},null,-1)),e.showLevel?(B.openBlock(),B.createElementBlock("div",SQ,[(B.openBlock(),B.createElementBlock(B.Fragment,null,B.renderList(10,H=>B.createElementVNode("div",{class:B.normalizeClass(["led","led"+H])},[B.createElementVNode("div",{class:"on",style:B.normalizeStyle({opacity:Ul(H)})},null,4)],2)),64))])):B.createCommentVNode("",!0),B.createElementVNode("div",{class:B.normalizeClass(["thumb",{dragging:W.value,[e.colour]:!0,[e.style]:!0}])},null,2)],34))}},[["__scopeId","data-v-ab2e7b69"]]),ZA=Ll({__name:"TitleText",props:{align:{type:String,default:"left"}},setup(e){B.useCssVars(s=>({"5fddb56d":a.value}));const l=B.useTemplateRef("el"),{width:t,height:A}=At(l),Q=B.computed(()=>Math.min(t.value,A.value)),n=B.computed(()=>t.value>A.value?"h-text":"v-text"),a=B.computed(()=>Q.value*3/4+"px");return(s,F)=>(B.openBlock(),B.createElementBlock("div",{ref_key:"el",ref:l,class:"outer"},[B.createElementVNode("div",{class:B.normalizeClass({[n.value]:!0,[e.align]:!0})},[B.renderSlot(s.$slots,"default",{},void 0,!0)],2)],512))}},[["__scopeId","data-v-3ce29e77"]]),ee=Ll({__name:"TriState",props:{mute:{default:!1},muteModifiers:{},solo:{default:!1},soloModifiers:{}},emits:["update:mute","update:solo"],setup(e){const l=B.useModel(e,"mute"),t=B.useModel(e,"solo"),A=B.useTemplateRef("outer"),{width:Q,height:n}=At(A),a=B.computed(()=>Q.value>n.value*1.9);function s(){l.value=!l.value,t.value=!1}function F(){t.value=!t.value,l.value=!1}return(d,o)=>(B.openBlock(),B.createElementBlock("div",{class:"outer",ref_key:"outer",ref:A},[B.createElementVNode("div",{class:B.normalizeClass(["solo",{on:t.value}]),onClick:F},null,2),B.createElementVNode("div",{class:"s-label",onClick:F},B.toDisplayString(a.value?"SOLO":"S"),1),B.createElementVNode("div",{class:B.normalizeClass(["mute",{on:l.value}]),onClick:s},null,2),B.createElementVNode("div",{class:"m-label",onClick:s},B.toDisplayString(a.value?"MUTE":"M"),1)],512))}},[["__scopeId","data-v-143eade0"]]),Ot={enabled:!1,features:{beatAnimation:!0,randomLevelIndicators:!0,debugMode:!1}},uQ=()=>Ot.enabled,RA=e=>Ot.enabled&&Ot.features[e],et=jl.defineStore("audioState",{state:()=>({isPlaying:!1,currentTime:0,playbackSpeed:1,currentBar:1,currentBeat:1,currentRepeat:0,masterVolume:.75,metronomeVolume:.7,partVolumes:{},partMuted:{},partSolo:{},isLeadInActive:!1,isStartingNotesActive:!1,leadInBars:1,metronomeEnabled:!1,leadInEnabled:!0,isLoaded:!1}),getters:{formattedTime:e=>{const l=Math.floor(e.currentTime/60),t=Math.floor(e.currentTime%60);return`${l}:${t.toString().padStart(2,"0")}`},getPartVolume:e=>l=>e.partVolumes[l]??.75,isPartMuted:e=>l=>e.partMuted[l]??!1,isPartSolo:e=>l=>e.partSolo[l]??!1,isAnySolo:e=>Object.values(e.partSolo).some(l=>l===!0),currentPosition:e=>{let l=`${e.currentBar}.${e.currentBeat}`;return e.currentRepeat>0&&(l+=` (R${e.currentRepeat})`),l}},actions:{setPlaybackState(e){this.isPlaying=e},setCurrentTime(e){this.currentTime=e},setPlaybackSpeed(e){this.playbackSpeed=e},setCurrentBar(e,l=1,t=0){typeof e=="number"&&(this.currentBar=e),typeof l=="number"&&(this.currentBeat=l),typeof t=="number"&&(this.currentRepeat=t)},setMasterVolume(e){this.masterVolume=Math.max(0,Math.min(1,e))},setMetronomeVolume(e){this.metronomeVolume=Math.max(0,Math.min(1,e))},setPartVolume(e,l){this.partVolumes[e]=Math.max(0,Math.min(1,l))},setPartMuted(e,l){this.partMuted[e]=l},setPartSolo(e,l){this.partSolo[e]=l},setLeadInActive(e,l=1){this.isLeadInActive=e,this.leadInBars=l},setStartingNotesActive(e){this.isStartingNotesActive=e},setMetronomeEnabled(e){this.metronomeEnabled=e},setLeadInEnabled(e){this.leadInEnabled=e},initializeParts(e){this.partVolumes={},this.partMuted={},this.partSolo={},e.forEach(l=>{this.partVolumes[l.name]=l.volume||.75,this.partMuted[l.name]=!1,this.partSolo[l.name]=!1})},setLoaded(e){this.isLoaded=e}}}),bt=jl.defineStore("musicData",{state:()=>({beats:[],practiceMarks:{},parts:[],title:"",totalDuration:0,maxBar:0,timeSignature:4,baseTempo:80}),getters:{practiceMarkLetters:e=>Object.keys(e.practiceMarks).sort(),getBarForMark:e=>l=>e.practiceMarks[l],allBars:e=>{const l=new Set;return e.beats.forEach(t=>{t.beat===1&&l.add(t.bar)}),Array.from(l).sort((t,A)=>t-A)},hasRepeats:e=>l=>e.beats.some(t=>t.bar===l&&t.repeat>0),getRepeatCountForBar:e=>l=>{const t=new Set;return e.beats.forEach(A=>{A.bar===l&&t.add(A.repeat)}),t.size}},actions:{loadMusicData(e){this.title=e.title||"Untitled",this.beats=e.beats||[],this.practiceMarks=e.practiceMarks||e.marks||{},this.parts=(e.parts||[]).map(l=>({...l,solo:l.solo||!1,mute:l.mute||!1})),this.calculateDuration(),this.calculateMaxBar(),this.extractTimeSignature()},calculateDuration(){this.beats.length>0&&(this.totalDuration=Math.max(...this.beats.map(e=>e.time)))},calculateMaxBar(){this.beats.length>0&&(this.maxBar=Math.max(...this.beats.map(e=>e.bar)))},extractTimeSignature(){this.beats.length>0&&this.beats[0].timeSig&&(this.timeSignature=this.beats[0].timeSig),this.beats.length>0&&this.beats[0].tempo&&(this.baseTempo=this.beats[0].tempo)},setPracticeMark(e,l){this.practiceMarks[e]=l},removePracticeMark(e){delete this.practiceMarks[e]},updateBeats(e){console.log("Updating beats in music data store"),this.beats=e,this.calculateDuration(),this.calculateMaxBar(),this.extractTimeSignature()},setTotalDuration(e){console.log("Setting total duration in music data store to:",e),this.totalDuration=e},isValidBar(e,l=0){return this.beats.some(t=>t.bar===e&&t.repeat===l)},setParts(e){this.parts=e.map(l=>({name:l.name,volume:l.volume||.75,solo:l.solo||!1,mute:l.mute||!1}))}}}),Qe=jl.defineStore("playbackState",{state:()=>({transportState:"stopped",autoPlay:!1,loopEnabled:!1,loopStart:1,loopEnd:null,leadInEnabled:!0,leadInBars:1,startingNotesEnabled:!0,startingNotesSequential:!0,metronomeEnabled:!1,metronomeVolume:.5,showTransportControls:!0,showPartControls:!0,showNavigationControls:!0,lastBarPosition:1,lastPracticeMarkUsed:null}),getters:{isPlaying:e=>e.transportState==="playing",isPaused:e=>e.transportState==="paused",isStopped:e=>e.transportState==="stopped",isLoopConfigured:e=>e.loopEnabled&&e.loopStart&&e.loopEnd&&e.loopEnd>e.loopStart,loopRange:e=>!e.loopEnabled||!e.loopStart||!e.loopEnd?null:`${e.loopStart}-${e.loopEnd}`},actions:{setTransportState(e){["stopped","playing","paused"].includes(e)&&(this.transportState=e)},play(){this.setTransportState("playing")},pause(){this.setTransportState("paused")},stop(){this.setTransportState("stopped")},setAutoPlay(e){this.autoPlay=e},setLoop(e,l=null,t=null){this.loopEnabled=e,l!==null&&(this.loopStart=l),t!==null&&(this.loopEnd=t)},setLoopStart(e){this.loopStart=e,this.loopEnd&&this.loopEnd<=e&&(this.loopEnd=e+4)},setLoopEnd(e){this.loopEnd=e,this.loopStart&&this.loopStart>=e&&(this.loopStart=Math.max(1,e-4))},setLeadInEnabled(e){this.leadInEnabled=e},setLeadInBars(e){this.leadInBars=Math.max(1,Math.min(4,e))},setStartingNotesEnabled(e){this.startingNotesEnabled=e},setStartingNotesSequential(e){this.startingNotesSequential=e},setMetronomeEnabled(e){this.metronomeEnabled=e},setMetronomeVolume(e){this.metronomeVolume=Math.max(0,Math.min(1,e))},setTransportControlsVisible(e){this.showTransportControls=e},setPartControlsVisible(e){this.showPartControls=e},setNavigationControlsVisible(e){this.showNavigationControls=e},updateLastBarPosition(e){this.lastBarPosition=e},updateLastPracticeMarkUsed(e){this.lastPracticeMarkUsed=e},resetToDefaults(){this.transportState="stopped",this.autoPlay=!1,this.loopEnabled=!1,this.loopStart=1,this.loopEnd=null,this.leadInEnabled=!0,this.leadInBars=1,this.startingNotesEnabled=!0,this.startingNotesSequential=!0,this.metronomeEnabled=!1,this.metronomeVolume=.5}}});function ne(e){return{all:e=e||new Map,on:function(l,t){var A=e.get(l);A?A.push(t):e.set(l,[t])},off:function(l,t){var A=e.get(l);A&&(t?A.splice(A.indexOf(t)>>>0,1):e.set(l,[]))},emit:function(l,t){var A=e.get(l);A&&A.slice().map(function(Q){Q(t)}),(A=e.get("*"))&&A.slice().map(function(Q){Q(l,t)})}}}function hA(e){return{all:e=e||new Map,on:function(l,t){var A=e.get(l);A?A.push(t):e.set(l,[t])},off:function(l,t){var A=e.get(l);A&&(t?A.splice(A.indexOf(t)>>>0,1):e.set(l,[]))},emit:function(l,t){var A=e.get(l);A&&A.slice().map(function(Q){Q(t)}),(A=e.get("*"))&&A.slice().map(function(Q){Q(l,t)})}}}const CQ="data:audio/mpeg;base64,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",GQ="data:audio/mpeg;base64,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qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//tkxPIADij5M+wwzYmAm6X9hJmwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//s0xPaAClDTI6OxLwCwkeLoEJkoqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//sUxNoDwAAB/gAAACAAADSAAAAEqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq";class VA{constructor(l,t={}){if(new.target===VA)throw new Error("AudioEngine is abstract and cannot be instantiated directly");this.audioContext=l,this.options=t,this.isInitialized=!1,this.channels=new WeakMap,this.activeChannels=new Set,this.eventBus=hA()}on(l,t){this.eventBus.on(l,t)}off(l,t){this.eventBus.off(l,t)}_emitProgress(l,t,A=null){const Q={stage:l,message:t};A!==null&&(Q.progress=Math.max(0,Math.min(1,A))),this.eventBus.emit("initProgress",Q)}async initialize(l){throw new Error("initialize() must be implemented by subclass")}createChannel(l,t={}){throw new Error("createChannel() must be implemented by subclass")}allSoundsOff(){throw new Error("allSoundsOff() must be implemented by subclass")}async playMetronomeTick(l,t,A){try{await this._ensureMetronomeBuffersLoaded();const Q=t?this.accentTickBuffer:this.regularTickBuffer;if(!Q){console.warn("Metronome buffer not available");return}const n=this.audioContext.createBufferSource();n.buffer=Q;const a=this.audioContext.createGain();a.gain.value=A,n.connect(a);const s=this.getMetronomeOutput();s?a.connect(s):a.connect(this.audioContext.destination);const F=Math.max(l,this.audioContext.currentTime);n.start(F)}catch(Q){console.warn("Buffer metronome playback failed:",Q)}}getMetronomeOutput(){return this._metronomeOutput||(this._metronomeOutput=this.audioContext.createGain(),this._metronomeOutput.gain.value=1,this._metronomeOutput.connect(this.audioContext.destination)),this._metronomeOutput}async _ensureMetronomeBuffersLoaded(){if(!(this.regularTickBuffer&&this.accentTickBuffer)){try{if(typeof fetch<"u"){const[l,t]=await Promise.all([fetch(CQ),fetch(GQ)]),[A,Q]=await Promise.all([l.arrayBuffer(),t.arrayBuffer()]),[n,a]=await Promise.all([this.audioContext.decodeAudioData(A),this.audioContext.decodeAudioData(Q)]);this.regularTickBuffer=n,this.accentTickBuffer=a;return}}catch(l){console.warn("Failed to load metronome sounds:",l)}this.regularTickBuffer=this.audioContext.createBuffer(2,1024,this.audioContext.sampleRate),this.accentTickBuffer=this.audioContext.createBuffer(2,1024,this.audioContext.sampleRate)}}getActiveChannels(){return Array.from(this.activeChannels)}destroy(){this.allSoundsOff(),this._metronomeOutput&&(this._metronomeOutput.disconnect(),this._metronomeOutput=null),this.regularTickBuffer=null,this.accentTickBuffer=null,this.activeChannels.clear(),this.isInitialized=!1}_validateInitialized(){if(!this.isInitialized)throw new Error("AudioEngine not initialized. Call initialize() first.")}_registerChannel(l){this.activeChannels.add(l)}_unregisterChannel(l){this.activeChannels.delete(l),this.channels.delete(l)}}class mA{constructor(l,t,A={}){if(new.target===mA)throw new Error("ChannelHandle is abstract and cannot be instantiated directly");this.engine=l,this.partId=t,this.options={initialVolume:1,...A},this.isDestroyed=!1,this.noteRefCounts=new Map,this.scheduledEvents=new Map,this.activeNotes=new Set}getOutputNode(){throw new Error("getOutputNode() must be implemented by subclass")}noteOn(l,t){this._validateActive();const A=this.noteRefCounts.get(l)||0;this.noteRefCounts.set(l,A+1),this._actualNoteOn(l,t),A===0&&this.activeNotes.add(l)}noteOff(l){this._validateActive();const t=this.noteRefCounts.get(l)||0;if(t<=0)return;const A=t-1;this.noteRefCounts.set(l,A),A===0&&(this._actualNoteOff(l),this.activeNotes.delete(l),this.noteRefCounts.delete(l))}playNote(l,t,A,Q){this._validateActive();const n=this.engine.audioContext.currentTime,a=`${this.partId}_${l}_${t}_${Date.now()}`;let s=l,F=Q;if(l<n){const Z=n-l;s=n,F=Math.max(0,Q-Z)}if(F<=0)return a;const d=Math.max(0,(s-n)*1e3),o=setTimeout(()=>{this.noteOn(t,A),this.scheduledEvents.delete(`${a}_on`)},d),c=d+F*1e3,h=setTimeout(()=>{this.noteOff(t),this.scheduledEvents.delete(`${a}_off`)},c);return this.scheduledEvents.set(`${a}_on`,o),this.scheduledEvents.set(`${a}_off`,h),a}playPreviewNote(l,t={}){this._validateActive();const A=t.startTime??this.engine.audioContext.currentTime+.01,Q=t.duration??.5,n=t.velocity??100;let a=null;t.instrument!==void 0&&(a=this.getInstrument(),this.setInstrument(t.instrument)),this.playNote(A,l,n,Q),a!==null&&setTimeout(()=>{this.isDestroyed||this.setInstrument(a)},(Q+.1)*1e3)}allNotesOff(){this._validateActive(),this.scheduledEvents.forEach(l=>{clearTimeout(l)}),this.scheduledEvents.clear(),this.activeNotes.forEach(l=>{this._actualNoteOff(l)}),this.noteRefCounts.clear(),this.activeNotes.clear()}_actualNoteOn(l,t){throw new Error("_actualNoteOn() must be implemented by subclass")}_actualNoteOff(l){throw new Error("_actualNoteOff() must be implemented by subclass")}async setInstrument(l){throw new Error("setInstrument() must be implemented by subclass")}getInstrument(){throw new Error("getInstrument() must be implemented by subclass")}setVolume(l){throw new Error("setVolume() must be implemented by subclass")}getVolume(){throw new Error("getVolume() must be implemented by subclass")}getPartId(){return this.partId}isActive(){return!this.isDestroyed&&this.engine.isInitialized&&this.engine.activeChannels.has(this)}destroy(){if(!this.isDestroyed){this.allNotesOff();const l=this.getOutputNode();l&&l.disconnect(),this.noteRefCounts.clear(),this.scheduledEvents.clear(),this.activeNotes.clear(),this.engine._unregisterChannel(this),this.isDestroyed=!0}}_validateActive(){if(this.isDestroyed)throw new Error("Channel has been destroyed");if(!this.engine.isInitialized)throw new Error("AudioEngine is not initialized")}}const ae={piano:0,bright_piano:1,electric_grand:2,honky_tonk:3,electric_piano_1:4,electric_piano_2:5,harpsichord:6,clavinet:7,celesta:8,glockenspiel:9,music_box:10,vibraphone:11,marimba:12,xylophone:13,tubular_bells:14,dulcimer:15,drawbar_organ:16,percussive_organ:17,rock_organ:18,church_organ:19,reed_organ:20,accordion:21,harmonica:22,tango_accordion:23,organ:19,nylon_guitar:24,steel_guitar:25,electric_guitar_jazz:26,electric_guitar_clean:27,electric_guitar_muted:28,overdriven_guitar:29,distortion_guitar:30,guitar_harmonics:31,guitar:24,acoustic_bass:32,electric_bass_finger:33,electric_bass_pick:34,fretless_bass:35,slap_bass_1:36,slap_bass_2:37,synth_bass_1:38,synth_bass_2:39,bass:32,violin:40,viola:41,cello:42,contrabass:43,tremolo_strings:44,pizzicato_strings:45,orchestral_harp:46,timpani:47,strings:48,strings_ensemble:48,slow_strings:49,synth_strings_1:50,synth_strings_2:51,choir_aahs:52,voice_oohs:53,synth_voice:54,orchestra_hit:55,trumpet:56,trombone:57,tuba:58,muted_trumpet:59,french_horn:60,brass_section:61,synth_brass_1:62,synth_brass_2:63,soprano_sax:64,alto_sax:65,tenor_sax:66,baritone_sax:67,oboe:68,english_horn:69,bassoon:70,clarinet:71,saxophone:64,piccolo:72,flute:73,recorder:74,pan_flute:75,blown_bottle:76,shakuhachi:77,whistle:78,ocarina:79,lead_1_square:80,lead_2_sawtooth:81,lead_3_calliope:82,lead_4_chiff:83,lead_5_charang:84,lead_6_voice:85,lead_7_fifths:86,lead_8_bass:87,pad_1_new_age:88,pad_2_warm:89,pad_3_polysynth:90,pad_4_choir:91,pad_5_bowed:92,pad_6_metallic:93,pad_7_halo:94,pad_8_sweep:95,fx_1_rain:96,fx_2_soundtrack:97,fx_3_crystal:98,fx_4_atmosphere:99,fx_5_brightness:100,fx_6_goblins:101,fx_7_echoes:102,fx_8_sci_fi:103,sitar:104,banjo:105,shamisen:106,koto:107,kalimba:108,bag_pipe:109,fiddle:110,shanai:111,tinkle_bell:112,agogo:113,steel_drums:114,woodblock:115,taiko_drum:116,melodic_tom:117,synth_drum:118,reverse_cymbal:119,guitar_fret_noise:120,breath_noise:121,seashore:122,bird_tweet:123,telephone_ring:124,helicopter:125,applause:126,gunshot:127},JQ=Object.entries(ae).reduce((e,[l,t])=>(e[t]=l,e),{});class gQ{static getInstrumentProgram(l){if(typeof l=="number")return l;const t=ae[l.toLowerCase()];return t!==void 0?t:0}static getProgramName(l){return JQ[l]||`Program ${l}`}static generateNoteId(l,t,A){return`${l}_${t}_${Math.round(A)}`}}class yQ extends mA{constructor(l,t,A,Q={}){super(l,t,Q),this.midiChannel=A,this.currentVolume=Q.initialVolume||1,this.currentInstrument=Q.instrument||"piano",this.outputGain=null,this._setupOutputNode(),this.setVolume(this.currentVolume),Q.instrument&&this.setInstrument(Q.instrument)}getOutputNode(){return this.outputGain}_actualNoteOn(l,t){const A=this.engine._getSynthesizer();if(A&&A.noteOn){const Q=Math.round(t*this.currentVolume);A.noteOn(this.midiChannel,l,Q)}}_actualNoteOff(l){const t=this.engine._getSynthesizer();t&&t.noteOff&&t.noteOff(this.midiChannel,l)}async setInstrument(l){this._validateActive();const t=gQ.getInstrumentProgram(l);this.currentInstrument=l;const A=this.engine._getSynthesizer();A&&A.programChange?A.programChange(this.midiChannel,t):console.warn("Cannot set instrument: synthesizer not available or no programChange method")}getInstrument(){return this.currentInstrument}setVolume(l){this._validateActive(),l=Math.max(0,Math.min(1,l)),this.currentVolume=l;const t=Math.round(l*127),A=this.engine._getSynthesizer();A&&A.controllerChange&&A.controllerChange(this.midiChannel,7,t)}getVolume(){return this.currentVolume}getMidiChannel(){return this.midiChannel}getActiveNoteCount(){return this.activeNotes.size}playNote(l,t,A,Q){this._validateActive();const n=`${this.partId}_${l}_${t}_${Date.now()}`,a=this.engine._getSynthesizer();if(a&&a.post){const s=Math.round(A*this.currentVolume);a.post({channelNumber:this.midiChannel,type:"midiMessage",data:{messageData:[144|this.midiChannel,t,s],channelOffset:0,force:!1,options:{time:l}}}),a.post({channelNumber:this.midiChannel,type:"midiMessage",data:{messageData:[128|this.midiChannel,t,0],channelOffset:0,force:!1,options:{time:l+Q}}})}else return super.playNote(l,t,A,Q);return n}allNotesOff(){this._validateActive();const l=this.engine._getSynthesizer();l&&l.post?l.post({channelNumber:this.midiChannel,type:"midiMessage",data:{messageData:[176|this.midiChannel,123,0],channelOffset:0,force:!1,options:{time:this.engine.audioContext.currentTime}}}):super.allNotesOff()}destroy(){if(!this.isDestroyed){const l=this.engine._getIndividualOutput(this.midiChannel);this.outputGain&&this.outputGain!==l&&this.outputGain.disconnect(),this.outputGain=null}super.destroy()}_setupOutputNode(){const l=this.engine._getIndividualOutput(this.midiChannel);l?this.outputGain=l:(console.warn(`No individual output available for MIDI channel ${this.midiChannel}, using fallback`),this.outputGain=this.engine.audioContext.createGain(),this.outputGain.gain.value=this.currentVolume)}}const pQ="data:text/javascript;base64,dmFyIEZlPShlPT50eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0eXBlb2YgUHJveHk8InUiP25ldyBQcm94eShlLHtnZXQ6KEEsdCk9Pih0eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTpBKVt0XX0pOmUpKGZ1bmN0aW9uKGUpe2lmKHR5cGVvZiByZXF1aXJlPCJ1IilyZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJytlKyciIGlzIG5vdCBzdXBwb3J0ZWQnKX0pO3ZhciBKYT0oZT0+dHlwZW9mIEZlPCJ1Ij9GZTp0eXBlb2YgUHJveHk8InUiP25ldyBQcm94eShlLHtnZXQ6KEEsdCk9Pih0eXBlb2YgRmU8InUiP0ZlOkEpW3RdfSk6ZSkoZnVuY3Rpb24oZSl7aWYodHlwZW9mIEZlPCJ1IilyZXR1cm4gRmUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Rocm93IEVycm9yKCdEeW5hbWljIHJlcXVpcmUgb2YgIicrZSsnIiBpcyBub3Qgc3VwcG9ydGVkJyl9KSxZPWNsYXNzIGV4dGVuZHMgVWludDhBcnJheXtjdXJyZW50SW5kZXg9MDtzbGljZShlLEEpe2xldCB0PXN1cGVyLnNsaWNlKGUsQSk7cmV0dXJuIHQuY3VycmVudEluZGV4PTAsdH19O2Z1bmN0aW9uIGVlKGUsQT1lLmxlbmd0aCx0PTApe2xldCBuPSIiO2ZvcihsZXQgcz0wO3M8QTtzKyspe2xldCBhPWVbdCtzXTtpZihhPT09MClyZXR1cm4gbjtuKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGEpfXJldHVybiBufWZ1bmN0aW9uIGhBKGUsQSl7bGV0IHQ9ZS5jdXJyZW50SW5kZXg7cmV0dXJuIGUuY3VycmVudEluZGV4Kz1BLGVlKGUsQSx0KX1mdW5jdGlvbiBuZShlLEE9ITEsdD0hMSl7bGV0IG49ZS5sZW5ndGg7QSYmbisrLHQmJm4lMiE9PTAmJm4rKztsZXQgcz1uZXcgWShuKTtyZXR1cm4ga0EocyxlKSxzfWZ1bmN0aW9uIGtBKGUsQSx0PTApe3Q+MCYmQS5sZW5ndGg+dCYmKEE9QS5zbGljZSgwLHQpKTtmb3IobGV0IG49MDtuPEEubGVuZ3RoO24rKyllW2UuY3VycmVudEluZGV4KytdPUEuY2hhckNvZGVBdChuKTtpZih0PkEubGVuZ3RoKWZvcihsZXQgbj0wO248dC1BLmxlbmd0aDtuKyspZVtlLmN1cnJlbnRJbmRleCsrXT0wO3JldHVybiBlfWZ1bmN0aW9uIE4oZSxBKXtsZXQgdD14cyhlLEEsZS5jdXJyZW50SW5kZXgpO3JldHVybiBlLmN1cnJlbnRJbmRleCs9QSx0fWZ1bmN0aW9uIHhzKGUsQSx0PTApe2xldCBuPTA7Zm9yKGxldCBzPTA7czxBO3MrKylufD1lW3Qrc108PHMqODtyZXR1cm4gbj4+PjB9ZnVuY3Rpb24gaHQoZSxBLHQpe2ZvcihsZXQgbj0wO248dDtuKyspZVtlLmN1cnJlbnRJbmRleCsrXT1BPj5uKjgmMjU1fWZ1bmN0aW9uIEooZSxBKXtlW2UuY3VycmVudEluZGV4KytdPUEmMjU1LGVbZS5jdXJyZW50SW5kZXgrK109QT4+OH1mdW5jdGlvbiBnQShlLEEpe2h0KGUsQSw0KX1mdW5jdGlvbiBqbihlLEEpe2xldCB0PUE8PDh8ZTtyZXR1cm4gdD4zMjc2Nz90LTY1NTM2OnR9ZnVuY3Rpb24gcWEoZSl7cmV0dXJuIGU+MTI3P2UtMjU2OmV9dmFyIEhzPWNsYXNze2hlYWRlcjtzaXplO2RhdGE7Y29uc3RydWN0b3IoZSxBLHQpe3RoaXMuaGVhZGVyPWUsdGhpcy5zaXplPUEsdGhpcy5kYXRhPXR9fTtmdW5jdGlvbiByQShlLEE9ITAsdD0hMSl7bGV0IG49aEEoZSw0KSxzPU4oZSw0KTtuPT09IiImJihzPTApO2xldCBhO3JldHVybiBBP2E9ZS5zbGljZShlLmN1cnJlbnRJbmRleCxlLmN1cnJlbnRJbmRleCtzKTphPW5ldyBZKDApLChBfHx0KSYmKGUuY3VycmVudEluZGV4Kz1zLHMlMiE9PTAmJmUuY3VycmVudEluZGV4KyspLG5ldyBIcyhuLHMsYSl9ZnVuY3Rpb24gY0EoZSxBLHQ9ITEsbj0hMSl7aWYoZS5sZW5ndGghPT00KXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBoZWFkZXIgbGVuZ3RoOiAke2V9YCk7bGV0IHM9OCxhPWUscj1BLmxlbmd0aDt0JiZyKys7bGV0IEk9cjtuJiYocys9NCxJKz00LGE9IkxJU1QiKTtsZXQgbz1zK3I7byUyIT09MCYmbysrO2xldCBnPW5ldyBZKG8pO3JldHVybiBrQShnLGEpLGdBKGcsSSksbiYma0EoZyxlKSxnLnNldChBLHMpLGd9ZnVuY3Rpb24gdkEoZSxBLHQ9ITEpe2xldCBuPTgscz1lLGE9QS5yZWR1Y2UoKGcsQik9PkIubGVuZ3RoK2csMCkscj1hO3QmJihuKz00LHIrPTQscz0iTElTVCIpO2xldCBJPW4rYTtJJTIhPT0wJiZJKys7bGV0IG89bmV3IFkoSSk7cmV0dXJuIGtBKG8scyksZ0EobyxyKSx0JiZrQShvLGUpLEEuZm9yRWFjaChnPT57by5zZXQoZyxuKSxuKz1nLmxlbmd0aH0pLG99ZnVuY3Rpb24gZmUoZSxBKXtyZXR1cm4gZS5maW5kKHQ9PnQuaGVhZGVyIT09IkxJU1QiPyExOih0LmRhdGEuY3VycmVudEluZGV4PTQsZWUodC5kYXRhLDQpPT09QSkpfWZ1bmN0aW9uICRuKGUsQSl7cmV0dXJuey4uLkEsLi4uZT8/e319fWZ1bmN0aW9uIFF0KGUsQSx0PTApe2xldCBuPTA7Zm9yKGxldCBzPTA7czxBO3MrKyluPW48PDh8ZVt0K3NdO3JldHVybiBuPj4+MH1mdW5jdGlvbiBYZShlLEEpe2xldCB0PVF0KGUsQSxlLmN1cnJlbnRJbmRleCk7cmV0dXJuIGUuY3VycmVudEluZGV4Kz1BLHR9ZnVuY3Rpb24gR3QoZSxBKXtsZXQgdD1uZXcgQXJyYXkoQSkuZmlsbCgwKTtmb3IobGV0IG49QS0xO24+PTA7bi0tKXRbbl09ZSYyNTUsZT4+PTg7cmV0dXJuIHR9ZnVuY3Rpb24gdUEoZSl7bGV0IEE9MDtmb3IoO2U7KXtsZXQgdD1lW2UuY3VycmVudEluZGV4KytdO2lmKEE9QTw8N3x0JjEyNyx0Pj43IT09MSlicmVha31yZXR1cm4gQX1mdW5jdGlvbiBDbihlKXtsZXQgQT1bZSYxMjddO2ZvcihlPj49NztlPjA7KUEudW5zaGlmdChlJjEyN3wxMjgpLGU+Pj03O3JldHVybiBBfWZ1bmN0aW9uIGZzKGUpe2U9TWF0aC5mbG9vcihlKTtsZXQgQT1NYXRoLmZsb29yKGUvNjApLHQ9TWF0aC5yb3VuZChlLUEqNjApO3JldHVybnttaW51dGVzOkEsc2Vjb25kczp0LHRpbWU6YCR7QS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX06JHt0LnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfWB9fWZ1bmN0aW9uIE1BKGUpe2xldCBBPSIiO2ZvcihsZXQgdCBvZiBlKXtsZXQgbj10LnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIikudG9VcHBlckNhc2UoKTtBKz1uLEErPSIgIn1yZXR1cm4gQX12YXIgYz17d2FybjoiY29sb3I6IG9yYW5nZTsiLHVucmVjb2duaXplZDoiY29sb3I6IHJlZDsiLGluZm86ImNvbG9yOiBhcXVhOyIscmVjb2duaXplZDoiY29sb3I6IGxpbWUiLHZhbHVlOiJjb2xvcjogeWVsbG93OyBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsifSxZczsoKCk9Pnt2YXIgZT1VaW50OEFycmF5LEE9VWludDE2QXJyYXksdD1JbnQzMkFycmF5LG49bmV3IGUoWzAsMCwwLDAsMCwwLDAsMCwxLDEsMSwxLDIsMiwyLDIsMywzLDMsMyw0LDQsNCw0LDUsNSw1LDUsMCwwLDAsMF0pLHM9bmV3IGUoWzAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDYsNyw3LDgsOCw5LDksMTAsMTAsMTEsMTEsMTIsMTIsMTMsMTMsMCwwXSksYT1uZXcgZShbMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV0pLHI9ZnVuY3Rpb24oRyxiKXtmb3IodmFyIEs9bmV3IEEoMzEpLGVBPTA7ZUE8MzE7KytlQSlLW2VBXT1iKz0xPDxHW2VBLTFdO2Zvcih2YXIgYUE9bmV3IHQoS1szMF0pLGVBPTE7ZUE8MzA7KytlQSlmb3IodmFyIEdBPUtbZUFdO0dBPEtbZUErMV07KytHQSlhQVtHQV09R0EtS1tlQV08PDV8ZUE7cmV0dXJue2I6SyxyOmFBfX0sST1yKG4sMiksbz1JLmIsZz1JLnI7b1syOF09MjU4LGdbMjU4XT0yODt2YXIgQj1yKHMsMCksZD1CLmIsaD1CLnIsQz1uZXcgQSgzMjc2OCk7Zm9yKGs9MDtrPDMyNzY4OysraylRPShrJjQzNjkwKT4+MXwoayYyMTg0NSk8PDEsUT0oUSY1MjQyOCk+PjJ8KFEmMTMxMDcpPDwyLFE9KFEmNjE2ODApPj40fChRJjM4NTUpPDw0LENba109KChRJjY1MjgwKT4+OHwoUSYyNTUpPDw4KT4+MTt2YXIgUSxrLG09ZnVuY3Rpb24oRyxiLEspe2Zvcih2YXIgZUE9Ry5sZW5ndGgsYUE9MCxHQT1uZXcgQShiKTthQTxlQTsrK2FBKUdbYUFdJiYrK0dBW0dbYUFdLTFdO3ZhciBzZT1uZXcgQShiKTtmb3IoYUE9MTthQTxiOysrYUEpc2VbYUFdPXNlW2FBLTFdK0dBW2FBLTFdPDwxO3ZhciB6QTtpZihLKXt6QT1uZXcgQSgxPDxiKTt2YXIgV0E9MTUtYjtmb3IoYUE9MDthQTxlQTsrK2FBKWlmKEdbYUFdKWZvcih2YXIgTmU9YUE8PDR8R1thQV0sYWU9Yi1HW2FBXSxBQT1zZVtHW2FBXS0xXSsrPDxhZSxCQT1BQXwoMTw8YWUpLTE7QUE8PUJBOysrQUEpekFbQ1tBQV0+PldBXT1OZX1lbHNlIGZvcih6QT1uZXcgQShlQSksYUE9MDthQTxlQTsrK2FBKUdbYUFdJiYoekFbYUFdPUNbc2VbR1thQV0tMV0rK10+PjE1LUdbYUFdKTtyZXR1cm4gekF9LHk9bmV3IGUoMjg4KTtmb3Ioaz0wO2s8MTQ0Oysrayl5W2tdPTg7dmFyIGs7Zm9yKGs9MTQ0O2s8MjU2Oysrayl5W2tdPTk7dmFyIGs7Zm9yKGs9MjU2O2s8MjgwOysrayl5W2tdPTc7dmFyIGs7Zm9yKGs9MjgwO2s8Mjg4Oysrayl5W2tdPTg7dmFyIGssRj1uZXcgZSgzMik7Zm9yKGs9MDtrPDMyOysraylGW2tdPTU7dmFyIGssRD1tKHksOSwxKSx2PW0oRiw1LDEpLEw9ZnVuY3Rpb24oRyl7Zm9yKHZhciBiPUdbMF0sSz0xO0s8Ry5sZW5ndGg7KytLKUdbS10+YiYmKGI9R1tLXSk7cmV0dXJuIGJ9LEU9ZnVuY3Rpb24oRyxiLEspe3ZhciBlQT1iLzh8MDtyZXR1cm4oR1tlQV18R1tlQSsxXTw8OCk+PihiJjcpJkt9LFg9ZnVuY3Rpb24oRyxiKXt2YXIgSz1iLzh8MDtyZXR1cm4oR1tLXXxHW0srMV08PDh8R1tLKzJdPDwxNik+PihiJjcpfSxPPWZ1bmN0aW9uKEcpe3JldHVybihHKzcpLzh8MH0sbkE9ZnVuY3Rpb24oRyxiLEspe3JldHVybihiPT1udWxsfHxiPDApJiYoYj0wKSwoSz09bnVsbHx8Sz5HLmxlbmd0aCkmJihLPUcubGVuZ3RoKSxuZXcgZShHLnN1YmFycmF5KGIsSykpfSwkPVsidW5leHBlY3RlZCBFT0YiLCJpbnZhbGlkIGJsb2NrIHR5cGUiLCJpbnZhbGlkIGxlbmd0aC9saXRlcmFsIiwiaW52YWxpZCBkaXN0YW5jZSIsInN0cmVhbSBmaW5pc2hlZCIsIm5vIHN0cmVhbSBoYW5kbGVyIiwsIm5vIGNhbGxiYWNrIiwiaW52YWxpZCBVVEYtOCBkYXRhIiwiZXh0cmEgZmllbGQgdG9vIGxvbmciLCJkYXRlIG5vdCBpbiByYW5nZSAxOTgwLTIwOTkiLCJmaWxlbmFtZSB0b28gbG9uZyIsInN0cmVhbSBmaW5pc2hpbmciLCJpbnZhbGlkIHppcCBkYXRhIl0sVj1mdW5jdGlvbihHLGIsSyl7dmFyIGVBPW5ldyBFcnJvcihifHwkW0ddKTtpZihlQS5jb2RlPUcsRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKGVBLFYpLCFLKXRocm93IGVBO3JldHVybiBlQX0scT1mdW5jdGlvbihHLGIsSyxlQSl7dmFyIGFBPUcubGVuZ3RoLEdBPWVBP2VBLmxlbmd0aDowO2lmKCFhQXx8Yi5mJiYhYi5sKXJldHVybiBLfHxuZXcgZSgwKTt2YXIgc2U9IUssekE9c2V8fGIuaSE9MixXQT1iLmk7c2UmJihLPW5ldyBlKGFBKjMpKTt2YXIgTmU9ZnVuY3Rpb24oeXQpe3ZhciBkZT1LLmxlbmd0aDtpZih5dD5kZSl7dmFyIHN0PW5ldyBlKE1hdGgubWF4KGRlKjIseXQpKTtzdC5zZXQoSyksSz1zdH19LGFlPWIuZnx8MCxBQT1iLnB8fDAsQkE9Yi5ifHwwLF9BPWIubCxVQT1iLmQsQ2U9Yi5tLGhlPWIubiwkZT1hQSo4O2Rve2lmKCFfQSl7YWU9RShHLEFBLDEpO3ZhciBVZT1FKEcsQUErMSwzKTtpZihBQSs9MyxVZSlpZihVZT09MSlfQT1ELFVBPXYsQ2U9OSxoZT01O2Vsc2UgaWYoVWU9PTIpe3ZhciBBdD1FKEcsQUEsMzEpKzI1NyxBbj1FKEcsQUErMTAsMTUpKzQsZW49QXQrRShHLEFBKzUsMzEpKzE7QUErPTE0O2Zvcih2YXIgVGU9bmV3IGUoZW4pLGxlPW5ldyBlKDE5KSxUQT0wO1RBPEFuOysrVEEpbGVbYVtUQV1dPUUoRyxBQStUQSozLDcpO0FBKz1BbiozO2Zvcih2YXIgdG49TChsZSksZnQ9KDE8PHRuKS0xLHhlPW0obGUsdG4sMSksVEE9MDtUQTxlbjspe3ZhciBldD14ZVtFKEcsQUEsZnQpXTtBQSs9ZXQmMTU7dmFyIFJBPWV0Pj40O2lmKFJBPDE2KVRlW1RBKytdPVJBO2Vsc2V7dmFyIG9lPTAsdHQ9MDtmb3IoUkE9PTE2Pyh0dD0zK0UoRyxBQSwzKSxBQSs9MixvZT1UZVtUQS0xXSk6UkE9PTE3Pyh0dD0zK0UoRyxBQSw3KSxBQSs9Myk6UkE9PTE4JiYodHQ9MTErRShHLEFBLDEyNyksQUErPTcpO3R0LS07KVRlW1RBKytdPW9lfX12YXIgbm49VGUuc3ViYXJyYXkoMCxBdCkscmU9VGUuc3ViYXJyYXkoQXQpO0NlPUwobm4pLGhlPUwocmUpLF9BPW0obm4sQ2UsMSksVUE9bShyZSxoZSwxKX1lbHNlIFYoMSk7ZWxzZXt2YXIgUkE9TyhBQSkrNCxtdD1HW1JBLTRdfEdbUkEtM108PDgsU3Q9UkErbXQ7aWYoU3Q+YUEpe1dBJiZWKDApO2JyZWFrfXpBJiZOZShCQSttdCksSy5zZXQoRy5zdWJhcnJheShSQSxTdCksQkEpLGIuYj1CQSs9bXQsYi5wPUFBPVN0KjgsYi5mPWFlO2NvbnRpbnVlfWlmKEFBPiRlKXtXQSYmVigwKTticmVha319ekEmJk5lKEJBKzEzMTA3Mik7Zm9yKHZhciBncz0oMTw8Q2UpLTEsY3M9KDE8PGhlKS0xLHB0PUFBOztwdD1BQSl7dmFyIG9lPV9BW1goRyxBQSkmZ3NdLHllPW9lPj40O2lmKEFBKz1vZSYxNSxBQT4kZSl7V0EmJlYoMCk7YnJlYWt9aWYob2V8fFYoMikseWU8MjU2KUtbQkErK109eWU7ZWxzZSBpZih5ZT09MjU2KXtwdD1BQSxfQT1udWxsO2JyZWFrfWVsc2V7dmFyIHNuPXllLTI1NDtpZih5ZT4yNjQpe3ZhciBUQT15ZS0yNTcsaWU9bltUQV07c249RShHLEFBLCgxPDxpZSktMSkrb1tUQV0sQUErPWllfXZhciBIZT1VQVtYKEcsQUEpJmNzXSxrZT1IZT4+NDtIZXx8VigzKSxBQSs9SGUmMTU7dmFyIHJlPWRba2VdO2lmKGtlPjMpe3ZhciBpZT1zW2tlXTtyZSs9WChHLEFBKSYoMTw8aWUpLTEsQUErPWllfWlmKEFBPiRlKXtXQSYmVigwKTticmVha316QSYmTmUoQkErMTMxMDcyKTt2YXIgbnQ9QkErc247aWYoQkE8cmUpe3ZhciBZZT1HQS1yZSxwQT1NYXRoLm1pbihyZSxudCk7Zm9yKFllK0JBPDAmJlYoMyk7QkE8cEE7KytCQSlLW0JBXT1lQVtZZStCQV19Zm9yKDtCQTxudDsrK0JBKUtbQkFdPUtbQkEtcmVdfX1iLmw9X0EsYi5wPXB0LGIuYj1CQSxiLmY9YWUsX0EmJihhZT0xLGIubT1DZSxiLmQ9VUEsYi5uPWhlKX13aGlsZSghYWUpO3JldHVybiBCQSE9Sy5sZW5ndGgmJnNlP25BKEssMCxCQSk6Sy5zdWJhcnJheSgwLEJBKX0sej1uZXcgZSgwKTtmdW5jdGlvbiB0QShHLGIpe3JldHVybiBxKEcse2k6Mn0sYiYmYi5vdXQsYiYmYi5kaWN0aW9uYXJ5KX12YXIgaUE9dHlwZW9mIFRleHREZWNvZGVyPCJ1IiYmbmV3IFRleHREZWNvZGVyLFA9MDt0cnl7aUEuZGVjb2RlKHose3N0cmVhbTohMH0pLFA9MX1jYXRjaHt9WXM9dEF9KSgpO3ZhciBQcz1ZcyxKcz0hMSxxcz0hMCxxdD0hMTtmdW5jdGlvbiBLcyhlLEEsdCl7SnM9ZSxxcz1BLHF0PXR9ZnVuY3Rpb24gcCguLi5lKXtKcyYmY29uc29sZS5pbmZvKC4uLmUpfWZ1bmN0aW9uIHNBKC4uLmUpe3FzJiZjb25zb2xlLndhcm4oLi4uZSl9ZnVuY3Rpb24gT0EoLi4uZSl7cXQmJmNvbnNvbGUuZ3JvdXAoLi4uZSl9ZnVuY3Rpb24gYkEoLi4uZSl7cXQmJmNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQoLi4uZSl9ZnVuY3Rpb24gWigpe3F0JiZjb25zb2xlLmdyb3VwRW5kKCl9dmFyIEVlPXtjb25zb2xlQ29sb3JzOmMsU3Blc3NhU3ludGhJbmZvOnAsU3Blc3NhU3ludGhXYXJuOnNBLFNwZXNzYVN5bnRoR3JvdXBDb2xsYXBzZWQ6YkEsU3Blc3NhU3ludGhHcm91cDpPQSxTcGVzc2FTeW50aEdyb3VwRW5kOloscmVhZEJ5dGVzQXNVaW50QmlnRW5kaWFuOlF0LHJlYWRMaXR0bGVFbmRpYW46TixyZWFkQnl0ZXNBc1N0cmluZzpoQSxyZWFkVmFyaWFibGVMZW5ndGhRdWFudGl0eTp1QSxpbmZsYXRlU3luYzpQc307dmFyIFpBPWNsYXNze3RpY2tzO3N0YXR1c0J5dGU7ZGF0YTtjb25zdHJ1Y3RvcihlLEEsdCl7dGhpcy50aWNrcz1lLHRoaXMuc3RhdHVzQnl0ZT1BLHRoaXMuZGF0YT10fX07ZnVuY3Rpb24gS2EoZSl7bGV0IEE9ZSYyNDAsdD1lJjE1LG49dDtzd2l0Y2goQSl7Y2FzZSAxMjg6Y2FzZSAxNDQ6Y2FzZSAxNjA6Y2FzZSAxNzY6Y2FzZSAxOTI6Y2FzZSAyMDg6Y2FzZSAyMjQ6YnJlYWs7Y2FzZSAyNDA6c3dpdGNoKHQpe2Nhc2UgMDpuPS0zO2JyZWFrO2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6Y2FzZSA2OmNhc2UgNzpjYXNlIDg6Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxMTpjYXNlIDEyOmNhc2UgMTM6Y2FzZSAxNDpuPS0xO2JyZWFrO2Nhc2UgMTU6bj0tMjticmVha31icmVhaztkZWZhdWx0Om49LTF9cmV0dXJuIG59ZnVuY3Rpb24gQXMoZSl7bGV0IEE9ZSYyNDAsdD1lJjE1LG49LTEscz1lO3JldHVybiBBPj0xMjgmJkE8PTIyNCYmKG49dCxzPUEpLHtzdGF0dXM6cyxjaGFubmVsOm59fXZhciBPYT17ODoyLDk6MiwxMDoyLDExOjIsMTI6MSwxMzoxLDE0OjJ9LE09e25vdGVPZmY6MTI4LG5vdGVPbjoxNDQscG9seVByZXNzdXJlOjE2MCxjb250cm9sbGVyQ2hhbmdlOjE3Nixwcm9ncmFtQ2hhbmdlOjE5MixjaGFubmVsUHJlc3N1cmU6MjA4LHBpdGNoV2hlZWw6MjI0LHN5c3RlbUV4Y2x1c2l2ZToyNDAsdGltZWNvZGU6MjQxLHNvbmdQb3NpdGlvbjoyNDIsc29uZ1NlbGVjdDoyNDMsdHVuZVJlcXVlc3Q6MjQ2LGNsb2NrOjI0OCxzdGFydDoyNTAsY29udGludWU6MjUxLHN0b3A6MjUyLGFjdGl2ZVNlbnNpbmc6MjU0LHJlc2V0OjI1NSxzZXF1ZW5jZU51bWJlcjowLHRleHQ6MSxjb3B5cmlnaHQ6Mix0cmFja05hbWU6MyxpbnN0cnVtZW50TmFtZTo0LGx5cmljOjUsbWFya2VyOjYsY3VlUG9pbnQ6Nyxwcm9ncmFtTmFtZTo4LG1pZGlDaGFubmVsUHJlZml4OjMyLG1pZGlQb3J0OjMzLGVuZE9mVHJhY2s6NDcsc2V0VGVtcG86ODEsc21wdGVPZmZzZXQ6ODQsdGltZVNpZ25hdHVyZTo4OCxrZXlTaWduYXR1cmU6ODksc2VxdWVuY2VTcGVjaWZpYzoxMjd9LFM9e2JhbmtTZWxlY3Q6MCxtb2R1bGF0aW9uV2hlZWw6MSxicmVhdGhDb250cm9sbGVyOjIsdW5kZWZpbmVkQ0MzOjMsZm9vdENvbnRyb2xsZXI6NCxwb3J0YW1lbnRvVGltZTo1LGRhdGFFbnRyeU1TQjo2LG1haW5Wb2x1bWU6NyxiYWxhbmNlOjgsdW5kZWZpbmVkQ0M5OjkscGFuOjEwLGV4cHJlc3Npb25Db250cm9sbGVyOjExLGVmZmVjdENvbnRyb2wxOjEyLGVmZmVjdENvbnRyb2wyOjEzLHVuZGVmaW5lZENDMTQ6MTQsdW5kZWZpbmVkQ0MxNToxNSxnZW5lcmFsUHVycG9zZUNvbnRyb2xsZXIxOjE2LGdlbmVyYWxQdXJwb3NlQ29udHJvbGxlcjI6MTcsZ2VuZXJhbFB1cnBvc2VDb250cm9sbGVyMzoxOCxnZW5lcmFsUHVycG9zZUNvbnRyb2xsZXI0OjE5LHVuZGVmaW5lZENDMjA6MjAsdW5kZWZpbmVkQ0MyMToyMSx1bmRlZmluZWRDQzIyOjIyLHVuZGVmaW5lZENDMjM6MjMsdW5kZWZpbmVkQ0MyNDoyNCx1bmRlZmluZWRDQzI1OjI1LHVuZGVmaW5lZENDMjY6MjYsdW5kZWZpbmVkQ0MyNzoyNyx1bmRlZmluZWRDQzI4OjI4LHVuZGVmaW5lZENDMjk6MjksdW5kZWZpbmVkQ0MzMDozMCx1bmRlZmluZWRDQzMxOjMxLGJhbmtTZWxlY3RMU0I6MzIsbW9kdWxhdGlvbldoZWVsTFNCOjMzLGJyZWF0aENvbnRyb2xsZXJMU0I6MzQsdW5kZWZpbmVkQ0MzTFNCOjM1LGZvb3RDb250cm9sbGVyTFNCOjM2LHBvcnRhbWVudG9UaW1lTFNCOjM3LGRhdGFFbnRyeUxTQjozOCxtYWluVm9sdW1lTFNCOjM5LGJhbGFuY2VMU0I6NDAsdW5kZWZpbmVkQ0M5TFNCOjQxLHBhbkxTQjo0MixleHByZXNzaW9uQ29udHJvbGxlckxTQjo0MyxlZmZlY3RDb250cm9sMUxTQjo0NCxlZmZlY3RDb250cm9sMkxTQjo0NSx1bmRlZmluZWRDQzE0TFNCOjQ2LHVuZGVmaW5lZENDMTVMU0I6NDcsdW5kZWZpbmVkQ0MxNkxTQjo0OCx1bmRlZmluZWRDQzE3TFNCOjQ5LHVuZGVmaW5lZENDMThMU0I6NTAsdW5kZWZpbmVkQ0MxOUxTQjo1MSx1bmRlZmluZWRDQzIwTFNCOjUyLHVuZGVmaW5lZENDMjFMU0I6NTMsdW5kZWZpbmVkQ0MyMkxTQjo1NCx1bmRlZmluZWRDQzIzTFNCOjU1LHVuZGVmaW5lZENDMjRMU0I6NTYsdW5kZWZpbmVkQ0MyNUxTQjo1Nyx1bmRlZmluZWRDQzI2TFNCOjU4LHVuZGVmaW5lZENDMjdMU0I6NTksdW5kZWZpbmVkQ0MyOExTQjo2MCx1bmRlZmluZWRDQzI5TFNCOjYxLHVuZGVmaW5lZENDMzBMU0I6NjIsdW5kZWZpbmVkQ0MzMUxTQjo2MyxzdXN0YWluUGVkYWw6NjQscG9ydGFtZW50b09uT2ZmOjY1LHNvc3RlbnV0b1BlZGFsOjY2LHNvZnRQZWRhbDo2NyxsZWdhdG9Gb290c3dpdGNoOjY4LGhvbGQyUGVkYWw6Njksc291bmRWYXJpYXRpb246NzAsZmlsdGVyUmVzb25hbmNlOjcxLHJlbGVhc2VUaW1lOjcyLGF0dGFja1RpbWU6NzMsYnJpZ2h0bmVzczo3NCxkZWNheVRpbWU6NzUsdmlicmF0b1JhdGU6NzYsdmlicmF0b0RlcHRoOjc3LHZpYnJhdG9EZWxheTo3OCxzb3VuZENvbnRyb2xsZXIxMDo3OSxnZW5lcmFsUHVycG9zZUNvbnRyb2xsZXI1OjgwLGdlbmVyYWxQdXJwb3NlQ29udHJvbGxlcjY6ODEsZ2VuZXJhbFB1cnBvc2VDb250cm9sbGVyNzo4MixnZW5lcmFsUHVycG9zZUNvbnRyb2xsZXI4OjgzLHBvcnRhbWVudG9Db250cm9sOjg0LHVuZGVmaW5lZENDODU6ODUsdW5kZWZpbmVkQ0M4Njo4Nix1bmRlZmluZWRDQzg3Ojg3LHVuZGVmaW5lZENDODg6ODgsdW5kZWZpbmVkQ0M4OTo4OSx1bmRlZmluZWRDQzkwOjkwLHJldmVyYkRlcHRoOjkxLHRyZW1vbG9EZXB0aDo5MixjaG9ydXNEZXB0aDo5MyxkZXR1bmVEZXB0aDo5NCxwaGFzZXJEZXB0aDo5NSxkYXRhSW5jcmVtZW50Ojk2LGRhdGFEZWNyZW1lbnQ6OTcsbm9uUmVnaXN0ZXJlZFBhcmFtZXRlckxTQjo5OCxub25SZWdpc3RlcmVkUGFyYW1ldGVyTVNCOjk5LHJlZ2lzdGVyZWRQYXJhbWV0ZXJMU0I6MTAwLHJlZ2lzdGVyZWRQYXJhbWV0ZXJNU0I6MTAxLHVuZGVmaW5lZENDMTAyTFNCOjEwMix1bmRlZmluZWRDQzEwM0xTQjoxMDMsdW5kZWZpbmVkQ0MxMDRMU0I6MTA0LHVuZGVmaW5lZENDMTA1TFNCOjEwNSx1bmRlZmluZWRDQzEwNkxTQjoxMDYsdW5kZWZpbmVkQ0MxMDdMU0I6MTA3LHVuZGVmaW5lZENDMTA4TFNCOjEwOCx1bmRlZmluZWRDQzEwOUxTQjoxMDksdW5kZWZpbmVkQ0MxMTBMU0I6MTEwLHVuZGVmaW5lZENDMTExTFNCOjExMSx1bmRlZmluZWRDQzExMkxTQjoxMTIsdW5kZWZpbmVkQ0MxMTNMU0I6MTEzLHVuZGVmaW5lZENDMTE0TFNCOjExNCx1bmRlZmluZWRDQzExNUxTQjoxMTUsdW5kZWZpbmVkQ0MxMTZMU0I6MTE2LHVuZGVmaW5lZENDMTE3TFNCOjExNyx1bmRlZmluZWRDQzExOExTQjoxMTgsdW5kZWZpbmVkQ0MxMTlMU0I6MTE5LGFsbFNvdW5kT2ZmOjEyMCxyZXNldEFsbENvbnRyb2xsZXJzOjEyMSxsb2NhbENvbnRyb2xPbk9mZjoxMjIsYWxsTm90ZXNPZmY6MTIzLG9tbmlNb2RlT2ZmOjEyNCxvbW5pTW9kZU9uOjEyNSxtb25vTW9kZU9uOjEyNixwb2x5TW9kZU9uOjEyN307ZnVuY3Rpb24gVmEoZSl7aWYoIWUudHJhY2tzKXRocm93IG5ldyBFcnJvcigiTUlESSBoYXMgbm8gdHJhY2tzISIpO2xldCBBPVtdO2ZvcihsZXQgcyBvZiBlLnRyYWNrcyl7bGV0IGE9W10scj0wLEk7Zm9yKGxldCBvIG9mIHMuZXZlbnRzKXtsZXQgZz1NYXRoLm1heCgwLG8udGlja3Mtcik7aWYoby5zdGF0dXNCeXRlPT09TS5lbmRPZlRyYWNrKXtyKz1nO2NvbnRpbnVlfWxldCBCO28uc3RhdHVzQnl0ZTw9TS5zZXF1ZW5jZVNwZWNpZmljPyhCPVsyNTUsby5zdGF0dXNCeXRlLC4uLkNuKG8uZGF0YS5sZW5ndGgpLC4uLm8uZGF0YV0sST12b2lkIDApOm8uc3RhdHVzQnl0ZT09PU0uc3lzdGVtRXhjbHVzaXZlPyhCPVsyNDAsLi4uQ24oby5kYXRhLmxlbmd0aCksLi4uby5kYXRhXSxJPXZvaWQgMCk6KEI9W10sSSE9PW8uc3RhdHVzQnl0ZSYmKEk9by5zdGF0dXNCeXRlLEIucHVzaChvLnN0YXR1c0J5dGUpKSxCLnB1c2goLi4uby5kYXRhKSksYS5wdXNoKC4uLkNuKGcpKSxhLnB1c2goLi4uQikscis9Z31hLnB1c2goMCksYS5wdXNoKDI1NSksYS5wdXNoKE0uZW5kT2ZUcmFjayksYS5wdXNoKDApLEEucHVzaChuZXcgVWludDhBcnJheShhKSl9bGV0IHQ9KHMsYSk9Pntmb3IobGV0IHI9MDtyPHMubGVuZ3RoO3IrKylhLnB1c2gocy5jaGFyQ29kZUF0KHIpKX0sbj1bXTt0KCJNVGhkIixuKSxuLnB1c2goLi4uR3QoNiw0KSksbi5wdXNoKDAsZS5mb3JtYXQpLG4ucHVzaCguLi5HdChlLnRyYWNrcy5sZW5ndGgsMikpLG4ucHVzaCguLi5HdChlLnRpbWVEaXZpc2lvbiwyKSk7Zm9yKGxldCBzIG9mIEEpdCgiTVRyayIsbiksbi5wdXNoKC4uLkd0KHMubGVuZ3RoLDQpKSxuLnB1c2goLi4ucyk7cmV0dXJuIG5ldyBVaW50OEFycmF5KG4pLmJ1ZmZlcn12YXIgWGE9MzUwLFNlPTksUm49MTYsT3M9ImdzIixCZT0tMSxSdD1gU1BFU1NBU1lOVEhfRU1CRURERURfQkFOS18ke01hdGgucmFuZG9tKCl9X0RPX05PVF9ERUxFVEVgLFZzPTMyNzY3LFphPXt0aW1lOjB9LHphPS4wMyxXYT0uMDcsX2E9MSxqYT02NCxtcz0xMjEsZkE9Y2xhc3N7c3RhdGljIGdldERlZmF1bHRCYW5rKGUpe3JldHVybiBlPT09ImdtMiI/bXM6MH1zdGF0aWMgZ2V0RHJ1bUJhbmsoZSl7c3dpdGNoKGUpe2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGAke2V9IGRvZXNuJ3QgaGF2ZSBhIGJhbmsgTVNCIGZvciBkcnVtcy5gKTtjYXNlImdtMiI6cmV0dXJuIDEyMDtjYXNlInhnIjpyZXR1cm4gMTI3fX1zdGF0aWMgaXNYR0RydW1zKGUpe3JldHVybiBlPT09MTIwfHxlPT09MTI2fHxlPT09MTI3fXN0YXRpYyBpc1ZhbGlkWEdNU0IoZSl7cmV0dXJuIHRoaXMuaXNYR0RydW1zKGUpfHxlPT09amF8fGU9PT1tc31zdGF0aWMgaXNTeXN0ZW1YRyhlKXtyZXR1cm4gZT09PSJnbTIifHxlPT09InhnIn1zdGF0aWMgYWRkQmFua09mZnNldChlLEEsdD0hMCl7cmV0dXJuIHRoaXMuaXNYR0RydW1zKGUpJiZ0P2U6TWF0aC5taW4oZStBLDEyNyl9c3RhdGljIHN1YnRyYWNrQmFua09mZnNldChlLEEsdD0hMCl7cmV0dXJuIHRoaXMuaXNYR0RydW1zKGUpJiZ0P2U6TWF0aC5tYXgoMCxlLUEpfX07ZnVuY3Rpb24gZXMoZSl7cmV0dXJuIGUuZGF0YVswXT09PTY3JiZlLmRhdGFbMl09PT03NiYmZS5kYXRhWzVdPT09MTI2JiZlLmRhdGFbNl09PT0wfWZ1bmN0aW9uIFhzKGUpe3JldHVybiBlLmRhdGFbMF09PT02NSYmZS5kYXRhWzJdPT09NjYmJmUuZGF0YVszXT09PTE4JiZlLmRhdGFbNF09PT02NCYmKGUuZGF0YVs1XSYxNikhPT0wJiZlLmRhdGFbNl09PT0yMX1mdW5jdGlvbiBacyhlKXtyZXR1cm4gZS5kYXRhWzBdPT09NjUmJmUuZGF0YVsyXT09PTY2JiZlLmRhdGFbNl09PT0xMjd9ZnVuY3Rpb24genMoZSl7cmV0dXJuIGUuZGF0YVswXT09PTEyNiYmZS5kYXRhWzJdPT09OSYmZS5kYXRhWzNdPT09MX1mdW5jdGlvbiBXcyhlKXtyZXR1cm4gZS5kYXRhWzBdPT09MTI2JiZlLmRhdGFbMl09PT05JiZlLmRhdGFbM109PT0zfWZ1bmN0aW9uIF9zKGUpe3JldHVybiBuZXcgWkEoZSxNLnN5c3RlbUV4Y2x1c2l2ZSxuZXcgWShbNjUsMTYsNjYsMTgsNjQsMCwxMjcsMCw2NSwyNDddKSl9dmFyIHRlPWNsYXNzIGpze3N0YXRpYyB0b01JRElTdHJpbmcoQSl7cmV0dXJuIEEuaXNHTUdTRHJ1bT9gRFJVTToke0EucHJvZ3JhbX1gOmAke0EuYmFua0xTQn06JHtBLmJhbmtNU0J9OiR7QS5wcm9ncmFtfWB9c3RhdGljIGZyb21NSURJU3RyaW5nKEEpe2xldCB0PUEuc3BsaXQoIjoiKTtpZih0Lmxlbmd0aD4zfHx0Lmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBNSURJIHN0cmluZzoiKTtyZXR1cm4gQS5zdGFydHNXaXRoKCJEUlVNIik/e2JhbmtNU0I6MCxiYW5rTFNCOjAscHJvZ3JhbTpwYXJzZUludCh0WzFdKSxpc0dNR1NEcnVtOiEwfTp7YmFua0xTQjpwYXJzZUludCh0WzBdKSxiYW5rTVNCOnBhcnNlSW50KHRbMV0pLHByb2dyYW06cGFyc2VJbnQodFsyXSksaXNHTUdTRHJ1bTohMX19c3RhdGljIHRvTmFtZWRNSURJU3RyaW5nKEEpe3JldHVybmAke2pzLnRvTUlESVN0cmluZyhBKX0gJHtBLm5hbWV9YH1zdGF0aWMgbWF0Y2hlcyhBLHQpe3JldHVybiBBLmlzR01HU0RydW18fHQuaXNHTUdTRHJ1bT9BLmlzR01HU0RydW09PT10LmlzR01HU0RydW0mJkEucHJvZ3JhbT09PXQucHJvZ3JhbTpBLnByb2dyYW09PT10LnByb2dyYW0mJkEuYmFua0xTQj09PXQuYmFua0xTQiYmQS5iYW5rTVNCPT09dC5iYW5rTVNCfXN0YXRpYyBmcm9tTmFtZWRNSURJU3RyaW5nKEEpe2xldCB0PUEuaW5kZXhPZigiICIpO2lmKHQ8MCl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbmFtZWQgTUlESSBzdHJpbmc6ICR7QX1gKTtsZXQgbj10aGlzLmZyb21NSURJU3RyaW5nKEEuc3Vic3RyaW5nKDAsdCkpLHM9QS5zdWJzdHJpbmcodCsxKTtyZXR1cm57Li4ubixuYW1lOnN9fXN0YXRpYyBzb3J0ZXIoQSx0KXtyZXR1cm4gQS5wcm9ncmFtIT09dC5wcm9ncmFtP0EucHJvZ3JhbS10LnByb2dyYW06QS5pc0dNR1NEcnVtJiYhdC5pc0dNR1NEcnVtPzE6IUEuaXNHTUdTRHJ1bSYmdC5pc0dNR1NEcnVtPy0xOkEuYmFua01TQiE9PXQuYmFua01TQj9BLmJhbmtNU0ItdC5iYW5rTVNCOkEuYmFua0xTQi10LmJhbmtMU0J9fSwkYT0iQ3JlYXRlZCB1c2luZyBTcGVzc2FTeW50aCI7ZnVuY3Rpb24gQW8oZSxBLHQpe2xldCBuPSJnbSIscz1bXSxhPUFycmF5KGUudHJhY2tzLmxlbmd0aCkuZmlsbCgwKSxyPWUudHJhY2tzLmxlbmd0aCxJPSgpPT57bGV0IGQ9MCxoPTEvMDtyZXR1cm4gZS50cmFja3MuZm9yRWFjaCgoQyxRKT0+e2FbUV0+PUMuZXZlbnRzLmxlbmd0aHx8Qy5ldmVudHNbYVtRXV0udGlja3M8aCYmKGQ9USxoPUMuZXZlbnRzW2FbUV1dLnRpY2tzKX0pLGR9LG89QXJyYXkoZS50cmFja3MubGVuZ3RoKS5maWxsKDApLGc9MTYrTWF0aC5tYXgoLi4uZS5wb3J0Q2hhbm5lbE9mZnNldE1hcCksQj1bXTtmb3IobGV0IGQ9MDtkPGc7ZCsrKUIucHVzaCh7cHJvZ3JhbTowLGRydW1zOmQlMTY9PT1TZSxsYXN0QmFuazp2b2lkIDAsbGFzdEJhbmtMU0I6dm9pZCAwLGhhc0JhbmtTZWxlY3Q6ITF9KTtmb3IoO3I+MDspe2xldCBkPUkoKSxoPWUudHJhY2tzW2RdO2lmKGFbZF0+PWguZXZlbnRzLmxlbmd0aCl7ci0tO2NvbnRpbnVlfWxldCBDPWguZXZlbnRzW2FbZF1dO2FbZF0rKztsZXQgUT1lLnBvcnRDaGFubmVsT2Zmc2V0TWFwW29bZF1dO2lmKEMuc3RhdHVzQnl0ZT09PU0ubWlkaVBvcnQpe29bZF09Qy5kYXRhWzBdO2NvbnRpbnVlfWxldCBtPUMuc3RhdHVzQnl0ZSYyNDA7aWYobSE9PU0uY29udHJvbGxlckNoYW5nZSYmbSE9PU0ucHJvZ3JhbUNoYW5nZSYmbSE9PU0uc3lzdGVtRXhjbHVzaXZlKWNvbnRpbnVlO2lmKG09PT1NLnN5c3RlbUV4Y2x1c2l2ZSl7aWYoIVhzKEMpKXtlcyhDKT9uPSJ4ZyI6WnMoQyk/bj0iZ3MiOnpzKEMpPyhuPSJnbSIscy5wdXNoKHt0TnVtOmQsZTpDfSkpOldzKEMpJiYobj0iZ20yIik7Y29udGludWV9bGV0IEQ9WzksMCwxLDIsMyw0LDUsNiw3LDgsMTAsMTEsMTIsMTMsMTQsMTVdW0MuZGF0YVs1XSYxNV0rUTtCW0RdLmRydW1zPSEhKEMuZGF0YVs3XT4wJiZDLmRhdGFbNV0+PjQpO2NvbnRpbnVlfWxldCB5PShDLnN0YXR1c0J5dGUmMTUpK1EsRj1CW3ldO2lmKG09PT1NLnByb2dyYW1DaGFuZ2Upe2xldCB2PXtwcm9ncmFtOkMuZGF0YVswXSxiYW5rTFNCOkYubGFzdEJhbmtMU0I/LmRhdGE/LlsxXT8/MCxiYW5rTVNCOmZBLnN1YnRyYWNrQmFua09mZnNldChGLmxhc3RCYW5rPy5kYXRhPy5bMV0/PzAsZS5iYW5rT2Zmc2V0KSxpc0dNR1NEcnVtOkYuZHJ1bXN9LEw9dC5nZXRQcmVzZXQodixuKTtpZihwKGAlY0lucHV0IHBhdGNoOiAlYyR7dGUudG9NSURJU3RyaW5nKHYpfSVjLiBDaGFubmVsICVjJHt5fSVjLiBDaGFuZ2luZyBwYXRjaCB0byAke0wudG9TdHJpbmcoKX0uYCxjLmluZm8sYy51bnJlY29nbml6ZWQsYy5pbmZvLGMucmVjb2duaXplZCxjLmluZm8pLEMuZGF0YVswXT1MLnByb2dyYW0sTC5pc0dNR1NEcnVtJiZmQS5pc1N5c3RlbVhHKG4pfHxGLmxhc3RCYW5rPT09dm9pZCAwfHwoRi5sYXN0QmFuay5kYXRhWzFdPWZBLmFkZEJhbmtPZmZzZXQoTC5iYW5rTVNCLEEsTC5pc1hHRHJ1bXMpLEYubGFzdEJhbmtMU0I9PT12b2lkIDApKWNvbnRpbnVlO0YubGFzdEJhbmtMU0IuZGF0YVsxXT1MLmJhbmtMU0I7Y29udGludWV9bGV0IGs9Qy5kYXRhWzBdPT09Uy5iYW5rU2VsZWN0TFNCO0MuZGF0YVswXSE9PVMuYmFua1NlbGVjdCYmIWt8fChGLmhhc0JhbmtTZWxlY3Q9ITAsaz9GLmxhc3RCYW5rTFNCPUM6Ri5sYXN0QmFuaz1DKX1pZihCLmZvckVhY2goKGQsaCk9PntpZihkLmhhc0JhbmtTZWxlY3QpcmV0dXJuO2xldCBDPWglMTYsUT1NLnByb2dyYW1DaGFuZ2V8QyxtPU1hdGguZmxvb3IoaC8xNikqMTYseT1lLnBvcnRDaGFubmVsT2Zmc2V0TWFwLmluZGV4T2YobSksRj1lLnRyYWNrcy5maW5kKEU9PkUucG9ydD09PXkmJkUuY2hhbm5lbHMuaGFzKEMpKTtpZihGPT09dm9pZCAwKXJldHVybjtsZXQgaz1GLmV2ZW50cy5maW5kSW5kZXgoRT0+RS5zdGF0dXNCeXRlPT09USk7aWYoaz09PS0xKXtsZXQgRT1GLmV2ZW50cy5maW5kSW5kZXgobkE9Pm5BLnN0YXR1c0J5dGU+MTI4JiZuQS5zdGF0dXNCeXRlPDI0MCYmKG5BLnN0YXR1c0J5dGUmMTUpPT09Qyk7aWYoRT09PS0xKXJldHVybjtsZXQgWD1GLmV2ZW50c1tFXS50aWNrcyxPPXQuZ2V0UHJlc2V0KHtiYW5rTVNCOjAsYmFua0xTQjowLHByb2dyYW06MCxpc0dNR1NEcnVtOiExfSxuKS5wcm9ncmFtO0YuYWRkRXZlbnQobmV3IFpBKFgsTS5wcm9ncmFtQ2hhbmdlfEMsbmV3IFkoW09dKSksRSksaz1FfXAoYCVjQWRkaW5nIGJhbmsgc2VsZWN0IGZvciAlYyR7aH1gLGMuaW5mbyxjLnJlY29nbml6ZWQpO2xldCBEPUYuZXZlbnRzW2tdLnRpY2tzLHY9dC5nZXRQcmVzZXQoe2JhbmtMU0I6MCxiYW5rTVNCOjAscHJvZ3JhbTpkLnByb2dyYW0saXNHTUdTRHJ1bTpkLmRydW1zfSxuKSxMPWZBLmFkZEJhbmtPZmZzZXQodi5iYW5rTVNCLEEsdi5pc1hHRHJ1bXMpO0YuYWRkRXZlbnQobmV3IFpBKEQsTS5jb250cm9sbGVyQ2hhbmdlfEMsbmV3IFkoW1MuYmFua1NlbGVjdCxMXSkpLGspfSksbiE9PSJncyImJiFmQS5pc1N5c3RlbVhHKG4pKXtmb3IobGV0IGggb2Ygcyl7bGV0IEM9ZS50cmFja3NbaC50TnVtXTtDLmRlbGV0ZUV2ZW50KEMuZXZlbnRzLmluZGV4T2YoaC5lKSl9bGV0IGQ9MDtlLnRyYWNrc1swXS5ldmVudHNbMF0uc3RhdHVzQnl0ZT09PU0udHJhY2tOYW1lJiZkKyssZS50cmFja3NbMF0uYWRkRXZlbnQoX3MoMCksZCl9fXZhciBTcz17YmFua09mZnNldDowLG1ldGFkYXRhOnt9LGNvcnJlY3RCYW5rT2Zmc2V0OiEwLHNvdW5kQmFuazp2b2lkIDB9O2Z1bmN0aW9uIGVvKGUsQSx0KXtsZXQgbj10Lm1ldGFkYXRhO2lmKE9BKCIlY1dyaXRpbmcgdGhlIFJNSURJIEZpbGUuLi4iLGMuaW5mbykscCgibWV0YWRhdGEiLG4pLHAoIkluaXRpYWwgYmFuayBvZmZzZXQiLGUuYmFua09mZnNldCksdC5jb3JyZWN0QmFua09mZnNldCl7aWYoIXQuc291bmRCYW5rKXRocm93IG5ldyBFcnJvcigiU291bmQgYmFuayBtdXN0IGJlIHByb3ZpZGVkIGlmIGNvcnJlY3RpbmcgYmFuayBvZmZzZXQuIik7QW8oZSx0LmJhbmtPZmZzZXQsdC5zb3VuZEJhbmspfWxldCBzPW5ldyBZKGUud3JpdGVNSURJKCkpO24ubmFtZT8/PWUuZ2V0TmFtZSgpLG4uY3JlYXRpb25EYXRlPz89bmV3IERhdGUsbi5jb3B5cmlnaHQ/Pz0kYSxuLnNvZnR3YXJlPz89IlNwZXNzYVN5bnRoIixPYmplY3QuZW50cmllcyhuKS5mb3JFYWNoKEk9PntsZXQgbz1JO29bMV0mJmUuc2V0Uk1JREluZm8ob1swXSxvWzFdKX0pO2xldCBhPVtdO09iamVjdC5lbnRyaWVzKGUucm1pZGlJbmZvKS5mb3JFYWNoKEk9PntsZXQgbz1JWzBdLGc9SVsxXSxCPWQ9PnthLnB1c2goY0EoZCxnKSl9O3N3aXRjaChvKXtjYXNlImFsYnVtIjpCKCJJQUxCIiksQigiSVBSRCIpO2JyZWFrO2Nhc2Uic29mdHdhcmUiOkIoIklTRlQiKTticmVhaztjYXNlImluZm9FbmNvZGluZyI6QigiSUVOQyIpO2JyZWFrO2Nhc2UiY3JlYXRpb25EYXRlIjpCKCJJQ1JEIik7YnJlYWs7Y2FzZSJwaWN0dXJlIjpCKCJJUElDIik7YnJlYWs7Y2FzZSJuYW1lIjpCKCJJTkFNIik7YnJlYWs7Y2FzZSJhcnRpc3QiOkIoIklBUlQiKTticmVhaztjYXNlImdlbnJlIjpCKCJJR05SIik7YnJlYWs7Y2FzZSJjb3B5cmlnaHQiOkIoIklDT1AiKTticmVhaztjYXNlImNvbW1lbnQiOkIoIklDTVQiKTticmVhaztjYXNlImVuZ2luZWVyIjpCKCJJRU5HIik7YnJlYWs7Y2FzZSJzdWJqZWN0IjpCKCJJU0JKIik7YnJlYWs7Y2FzZSJtaWRpRW5jb2RpbmciOkIoIk1FTkMiKTticmVha319KTtsZXQgcj1uZXcgWSgyKTtyZXR1cm4gaHQocix0LmJhbmtPZmZzZXQsMiksYS5wdXNoKGNBKCJEQk5LIixyKSkscCgiJWNGaW5pc2hlZCEiLGMuaW5mbyksWigpLHZBKCJSSUZGIixbbmUoIlJNSUQiKSxjQSgiZGF0YSIscyksdkEoIklORk8iLGEsITApLG5ldyBZKEEpXSkuYnVmZmVyfWZ1bmN0aW9uIHRvKGUsQSl7YkEoIiVjU2VhcmNoaW5nIGZvciBhbGwgdXNlZCBwcm9ncmFtcyBhbmQga2V5cy4uLiIsYy5pbmZvKTtsZXQgdD0xNitNYXRoLm1heCguLi5lLnBvcnRDaGFubmVsT2Zmc2V0TWFwKSxuPVtdLHM9ImdzIjtmb3IobGV0IEI9MDtCPHQ7QisrKXtsZXQgZD1CJTE2PT09U2U7bi5wdXNoKHtwcmVzZXQ6QS5nZXRQcmVzZXQoe2JhbmtMU0I6MCxiYW5rTVNCOjAsaXNHTUdTRHJ1bTpkLHByb2dyYW06MH0scyksYmFua01TQjowLGJhbmtMU0I6MCxpc0RydW06ZH0pfWxldCBhPW5ldyBNYXAscj1BcnJheShlLnRyYWNrcy5sZW5ndGgpLmZpbGwoMCksST1lLnRyYWNrcy5sZW5ndGg7ZnVuY3Rpb24gbygpe2xldCBCPTAsZD0xLzA7cmV0dXJuIGUudHJhY2tzLmZvckVhY2goKHtldmVudHM6aH0sQyk9PntyW0NdPj1oLmxlbmd0aHx8aFtyW0NdXS50aWNrczxkJiYoQj1DLGQ9aFtyW0NdXS50aWNrcyl9KSxCfWxldCBnPWUudHJhY2tzLm1hcChCPT5CLnBvcnQpO2Zvcig7ST4wOyl7bGV0IEI9bygpLGQ9ZS50cmFja3NbQl0uZXZlbnRzO2lmKHJbQl0+PWQubGVuZ3RoKXtJLS07Y29udGludWV9bGV0IGg9ZFtyW0JdXTtpZihyW0JdKyssaC5zdGF0dXNCeXRlPT09TS5taWRpUG9ydCl7Z1tCXT1oLmRhdGFbMF07Y29udGludWV9bGV0IEM9aC5zdGF0dXNCeXRlJjI0MDtpZihDIT09TS5ub3RlT24mJkMhPT1NLmNvbnRyb2xsZXJDaGFuZ2UmJkMhPT1NLnByb2dyYW1DaGFuZ2UmJkMhPT1NLnN5c3RlbUV4Y2x1c2l2ZSljb250aW51ZTtsZXQgUT0oaC5zdGF0dXNCeXRlJjE1KStlLnBvcnRDaGFubmVsT2Zmc2V0TWFwW2dbQl1dfHwwLG09bltRXTtzd2l0Y2goQyl7Y2FzZSBNLnByb2dyYW1DaGFuZ2U6bS5wcmVzZXQ9QS5nZXRQcmVzZXQoe2JhbmtNU0I6bS5iYW5rTVNCLGJhbmtMU0I6bS5iYW5rTFNCLHByb2dyYW06aC5kYXRhWzBdLGlzR01HU0RydW06bS5pc0RydW19LHMpO2JyZWFrO2Nhc2UgTS5jb250cm9sbGVyQ2hhbmdlOnN3aXRjaChoLmRhdGFbMF0pe2RlZmF1bHQ6Y29udGludWU7Y2FzZSBTLmJhbmtTZWxlY3RMU0I6bS5iYW5rTFNCPWguZGF0YVsxXTticmVhaztjYXNlIFMuYmFua1NlbGVjdDptLmJhbmtNU0I9aC5kYXRhWzFdfWJyZWFrO2Nhc2UgTS5ub3RlT246aWYoaC5kYXRhWzFdPT09MCljb250aW51ZTtsZXQgeT1hLmdldChtLnByZXNldCk7eXx8KHk9bmV3IFNldCxhLnNldChtLnByZXNldCx5KSkseS5hZGQoYCR7aC5kYXRhWzBdfS0ke2guZGF0YVsxXX1gKTticmVhaztjYXNlIE0uc3lzdGVtRXhjbHVzaXZlOntpZighWHMoaCkpe2VzKGgpJiYocz0ieGciLHAoIiVjWEcgb24gZGV0ZWN0ZWQhIixjLnJlY29nbml6ZWQpKTtjb250aW51ZX1sZXQgRj1bOSwwLDEsMiwzLDQsNSw2LDcsOCwxMCwxMSwxMiwxMywxNCwxNV1baC5kYXRhWzVdJjE1XStlLnBvcnRDaGFubmVsT2Zmc2V0TWFwW2dbQl1dLGs9ISEoaC5kYXRhWzddPjAmJmguZGF0YVs1XT4+NCk7bT1uW0ZdLG0uaXNEcnVtPWt9YnJlYWt9fXJldHVybiBhLmZvckVhY2goKEIsZCk9PntCLnNpemU9PT0wJiYocChgJWNEZXRlY3RlZCBjaGFuZ2UgYnV0IG5vIGtleXMgZm9yICVjJHtkLm5hbWV9YCxjLmluZm8sYy52YWx1ZSksYS5kZWxldGUoZCkpfSksWigpLGF9ZnVuY3Rpb24gbm8oZSxBPTApe2xldCB0PWg9PihoLmRhdGE9bmV3IFkoaC5kYXRhLmJ1ZmZlciksNmU3L1F0KGguZGF0YSwzKSksbj1bXSxhPWUudHJhY2tzLm1hcChoPT5oLmV2ZW50cykuZmxhdCgpO2Euc29ydCgoaCxDKT0+aC50aWNrcy1DLnRpY2tzKTtmb3IobGV0IGg9MDtoPDE2O2grKyluLnB1c2goW10pO2xldCByPTAsST02MC8oMTIwKmUudGltZURpdmlzaW9uKSxvPTAsZz0wLEI9W107Zm9yKGxldCBoPTA7aDwxNjtoKyspQi5wdXNoKFtdKTtsZXQgZD0oaCxDKT0+e2xldCBRPUJbQ10uZmluZEluZGV4KHk9PnkubWlkaU5vdGU9PT1oKSxtPUJbQ11bUV07aWYobSl7bGV0IHk9ci1tLnN0YXJ0O20ubGVuZ3RoPXksQz09PVNlJiYobS5sZW5ndGg9eTxBP0E6eSksQltDXS5zcGxpY2UoUSwxKX1nLS19O2Zvcig7bzxhLmxlbmd0aDspe2xldCBoPWFbb10sQz1oLnN0YXR1c0J5dGU+PjQsUT1oLnN0YXR1c0J5dGUmMTU7aWYoQz09PTgpZChoLmRhdGFbMF0sUSk7ZWxzZSBpZihDPT09OSlpZihoLmRhdGFbMV09PT0wKWQoaC5kYXRhWzBdLFEpO2Vsc2V7ZChoLmRhdGFbMF0sUSk7bGV0IG09e21pZGlOb3RlOmguZGF0YVswXSxzdGFydDpyLGxlbmd0aDotMSx2ZWxvY2l0eTpoLmRhdGFbMV0vMTI3fTtuW1FdLnB1c2gobSksQltRXS5wdXNoKG0pLGcrK31lbHNlIGguc3RhdHVzQnl0ZT09PTgxJiYoST02MC8odChoKSplLnRpbWVEaXZpc2lvbikpO2lmKCsrbz49YS5sZW5ndGgpYnJlYWs7cis9SSooYVtvXS50aWNrcy1oLnRpY2tzKX1yZXR1cm4gZz4wJiZCLmZvckVhY2goKGgsQyk9PntoLmZvckVhY2goUT0+e2xldCBtPXItUS5zdGFydDtRLmxlbmd0aD1tLEM9PT1TZSYmKFEubGVuZ3RoPW08QT9BOm0pfSl9KSxufXZhciB2dD17bGluZWFyOjAsbmVhcmVzdE5laWdoYm9yOjEsaGVybWl0ZToyfSxobj17c291bmRDYW52YXNUZXh0OjAseWFtYWhhWEdUZXh0OjEsc291bmRDYW52YXNEb3RNYXRyaXg6Mn0sWUE9e0lkbGU6MCxSUENvYXJzZToxLFJQRmluZToyLE5SUENvYXJzZTozLE5SUEZpbmU6NCxEYXRhQ29hcnNlOjUsRGF0YUZpbmU6Nn0sSUE9e2NoYW5uZWxUdW5pbmc6MCxjaGFubmVsVHJhbnNwb3NlRmluZToxLG1vZHVsYXRpb25NdWx0aXBsaWVyOjIsbWFzdGVyVHVuaW5nOjMsY2hhbm5lbFR1bmluZ1NlbWl0b25lczo0LGNoYW5uZWxLZXlTaGlmdDo1LHNmMk5QUk5HZW5lcmF0b3JMU0I6Nn07ZnVuY3Rpb24gcWUoZSxBLHQsbil7cmV0dXJuIG5ldyBaQShuLE0uY29udHJvbGxlckNoYW5nZXxlJTE2LG5ldyBZKFtBLHRdKSl9ZnVuY3Rpb24gc28oZSxBKXtsZXQgdD0xNnxbMSwyLDMsNCw1LDYsNyw4LDAsOSwxMCwxMSwxMiwxMywxNCwxNV1bZSUxNl0sbj1bNjUsMTYsNjYsMTgsNjQsdCwyMSwxXSxhPTEyOC0oNjQrdCsyMSsxKSUxMjg7cmV0dXJuIG5ldyBaQShBLE0uc3lzdGVtRXhjbHVzaXZlLG5ldyBZKFsuLi5uLGEsMjQ3XSkpfWZ1bmN0aW9uIGFvKGUsQT1bXSx0PVtdLG49W10scz1bXSl7YkEoIiVjQXBwbHlpbmcgY2hhbmdlcyB0byB0aGUgTUlESSBmaWxlLi4uIixjLmluZm8pLHAoIkRlc2lyZWQgcHJvZ3JhbSBjaGFuZ2VzOiIsQSkscCgiRGVzaXJlZCBDQyBjaGFuZ2VzOiIsdCkscCgiRGVzaXJlZCBjaGFubmVscyB0byBjbGVhcjoiLG4pLHAoIkRlc2lyZWQgY2hhbm5lbHMgdG8gdHJhbnNwb3NlOiIscyk7bGV0IGE9bmV3IFNldDtBLmZvckVhY2goRD0+e2EuYWRkKEQuY2hhbm5lbCl9KTtsZXQgcj0iZ3MiLEk9ITEsbz1BcnJheShlLnRyYWNrcy5sZW5ndGgpLmZpbGwoMCksZz1lLnRyYWNrcy5sZW5ndGg7ZnVuY3Rpb24gQigpe2xldCBEPTAsdj0xLzA7cmV0dXJuIGUudHJhY2tzLmZvckVhY2goKEwsRSk9PntvW0VdPj1MLmV2ZW50cy5sZW5ndGh8fEwuZXZlbnRzW29bRV1dLnRpY2tzPHYmJihEPUUsdj1MLmV2ZW50c1tvW0VdXS50aWNrcyl9KSxEfWxldCBkPWUudHJhY2tzLm1hcChEPT5ELnBvcnQpLGg9e30sQz0wLFE9KEQsdik9PntlLnRyYWNrc1tEXS5jaGFubmVscy5zaXplIT09MCYmKEM9PT0wJiYoQys9MTYsaFt2XT0wKSxoW3ZdPT09dm9pZCAwJiYoaFt2XT1DLEMrPTE2KSxkW0RdPXYpfTtlLnRyYWNrcy5mb3JFYWNoKChELHYpPT57USh2LEQucG9ydCl9KTtsZXQgbT1DLHk9QXJyYXkobSkuZmlsbCghMCksRj1BcnJheShtKS5maWxsKDApLGs9QXJyYXkobSkuZmlsbCgwKTtmb3Iocy5mb3JFYWNoKEQ9PntsZXQgdj1NYXRoLnRydW5jKEQua2V5U2hpZnQpLEw9RC5rZXlTaGlmdC12O0ZbRC5jaGFubmVsXT12LGtbRC5jaGFubmVsXT1MfSk7Zz4wOyl7bGV0IEQ9QigpLHY9ZS50cmFja3NbRF07aWYob1tEXT49di5ldmVudHMubGVuZ3RoKXtnLS07Y29udGludWV9bGV0IEw9b1tEXSsrLEU9di5ldmVudHNbTF0sWD0oKT0+e3YuZGVsZXRlRXZlbnQoTCksb1tEXS0tfSxPPSh6LHRBPTApPT57di5hZGRFdmVudCh6LEwrdEEpLG9bRF0rK30sbkE9aFtkW0RdXXx8MDtpZihFLnN0YXR1c0J5dGU9PT1NLm1pZGlQb3J0KXtRKEQsRS5kYXRhWzBdKTtjb250aW51ZX1pZihFLnN0YXR1c0J5dGU8PU0uc2VxdWVuY2VTcGVjaWZpYyYmRS5zdGF0dXNCeXRlPj1NLnNlcXVlbmNlTnVtYmVyKWNvbnRpbnVlO2xldCAkPUUuc3RhdHVzQnl0ZSYyNDAsVj1FLnN0YXR1c0J5dGUmMTUscT1WK25BO2lmKG4uaW5jbHVkZXMocSkpe1goKTtjb250aW51ZX1zd2l0Y2goJCl7Y2FzZSBNLm5vdGVPbjppZih5W3FdKXt5W3FdPSExLHQuZmlsdGVyKHRBPT50QS5jaGFubmVsPT09cSkuZm9yRWFjaCh0QT0+e2xldCBpQT1xZShWLHRBLmNvbnRyb2xsZXJOdW1iZXIsdEEuY29udHJvbGxlclZhbHVlLEUudGlja3MpO08oaUEpfSk7bGV0IHo9a1txXTtpZih6IT09MCl7bGV0IHRBPXoqNjQrNjQsaUE9cWUoVixTLnJlZ2lzdGVyZWRQYXJhbWV0ZXJNU0IsMCxFLnRpY2tzKSxQPXFlKFYsUy5yZWdpc3RlcmVkUGFyYW1ldGVyTFNCLDEsRS50aWNrcyksRz1xZShxLFMuZGF0YUVudHJ5TVNCLHRBLEUudGlja3MpLGI9cWUoVixTLmRhdGFFbnRyeUxTQiwwLEUudGlja3MpO08oYiksTyhHKSxPKFApLE8oaUEpfWlmKGEuaGFzKHEpKXtsZXQgdEE9QS5maW5kKGVBPT5lQS5jaGFubmVsPT09cSk7aWYoIXRBKWNvbnRpbnVlO3AoYCVjU2V0dGluZyAlYyR7dEEuY2hhbm5lbH0lYyB0byAlYyR7dGUudG9NSURJU3RyaW5nKHRBKX0lYy4gVHJhY2sgbnVtOiAlYyR7RH1gLGMuaW5mbyxjLnJlY29nbml6ZWQsYy5pbmZvLGMucmVjb2duaXplZCxjLmluZm8sYy5yZWNvZ25pemVkKTtsZXQgaUE9dEEuYmFua01TQixQPXRBLmJhbmtMU0IsRz10QS5wcm9ncmFtLGI9bmV3IFpBKEUudGlja3MsTS5wcm9ncmFtQ2hhbmdlfFYsbmV3IFkoW0ddKSk7TyhiKTtsZXQgSz0oZUEsYUEpPT57bGV0IEdBPXFlKFYsZUE/Uy5iYW5rU2VsZWN0TFNCOlMuYmFua1NlbGVjdCxhQSxFLnRpY2tzKTtPKEdBKX07ZkEuaXNTeXN0ZW1YRyhyKSYmdEEuaXNHTUdTRHJ1bSYmKHAoYCVjQWRkaW5nIFhHIERydW0gY2hhbmdlIG9uIHRyYWNrICVjJHtEfWAsYy5yZWNvZ25pemVkLGMudmFsdWUpLGlBPWZBLmdldERydW1CYW5rKHIpLFA9MCksSyghMSxpQSksSyghMCxQKSx0QS5pc0dNR1NEcnVtJiYhZkEuaXNTeXN0ZW1YRyhyKSYmViE9PVNlJiYocChgJWNBZGRpbmcgR1MgRHJ1bSBjaGFuZ2Ugb24gdHJhY2sgJWMke0R9YCxjLnJlY29nbml6ZWQsYy52YWx1ZSksTyhzbyhWLEUudGlja3MpKSl9fUUuZGF0YVswXSs9RltxXTticmVhaztjYXNlIE0ubm90ZU9mZjpFLmRhdGFbMF0rPUZbcV07YnJlYWs7Y2FzZSBNLnByb2dyYW1DaGFuZ2U6aWYoYS5oYXMocSkpe1goKTtjb250aW51ZX1icmVhaztjYXNlIE0uY29udHJvbGxlckNoYW5nZTp7bGV0IHo9RS5kYXRhWzBdO2lmKHQuZmluZChpQT0+aUEuY2hhbm5lbD09PXEmJno9PT1pQS5jb250cm9sbGVyTnVtYmVyKSE9PXZvaWQgMCl7WCgpO2NvbnRpbnVlfSh6PT09Uy5iYW5rU2VsZWN0fHx6PT09Uy5iYW5rU2VsZWN0TFNCKSYmYS5oYXMocSkmJlgoKX1icmVhaztjYXNlIE0uc3lzdGVtRXhjbHVzaXZlOmlmKGVzKEUpKXAoIiVjWEcgc3lzdGVtIG9uIGRldGVjdGVkIixjLmluZm8pLHI9InhnIixJPSEwO2Vsc2UgaWYoRS5kYXRhWzBdPT09NjcmJkUuZGF0YVsyXT09PTc2JiZFLmRhdGFbM109PT04JiZFLmRhdGFbNV09PT0zKWEuaGFzKEUuZGF0YVs0XStuQSkmJlgoKTtlbHNlIGlmKFdzKEUpKXAoIiVjR00yIHN5c3RlbSBvbiBkZXRlY3RlZCIsYy5pbmZvKSxyPSJnbTIiLEk9ITA7ZWxzZSBpZihacyhFKSl7ST0hMCxwKCIlY0dTIG9uIGRldGVjdGVkISIsYy5yZWNvZ25pemVkKTticmVha31lbHNlIHpzKEUpJiYocCgiJWNHTSBvbiBkZXRlY3RlZCwgcmVtb3ZpbmchIixjLmluZm8pLFgoKSxJPSExKX19aWYoIUkmJkEubGVuZ3RoPjApe2xldCBEPTA7ZS50cmFja3NbMF0uZXZlbnRzWzBdLnN0YXR1c0J5dGU9PT1NLnRyYWNrTmFtZSYmRCsrLGUudHJhY2tzWzBdLmFkZEV2ZW50KF9zKDApLEQpLHAoIiVjR1Mgb24gbm90IGRldGVjdGVkLiBBZGRpbmcgaXQuIixjLmluZm8pfWUuZmx1c2goKSxaKCl9ZnVuY3Rpb24gb28oZSxBKXtsZXQgdD1bXSxuPVtdLHM9W10sYT1bXTtBLmNoYW5uZWxTbmFwc2hvdHMuZm9yRWFjaCgocixJKT0+e2lmKHIuaXNNdXRlZCl7bi5wdXNoKEkpO3JldHVybn1sZXQgbz1yLmNoYW5uZWxUcmFuc3Bvc2VLZXlTaGlmdCtyLmN1c3RvbUNvbnRyb2xsZXJzW0lBLmNoYW5uZWxUcmFuc3Bvc2VGaW5lXS8xMDA7byE9PTAmJnQucHVzaCh7Y2hhbm5lbDpJLGtleVNoaWZ0Om99KSxyLmxvY2tQcmVzZXQmJnMucHVzaCh7Y2hhbm5lbDpJLC4uLnIucGF0Y2h9KSxyLmxvY2tlZENvbnRyb2xsZXJzLmZvckVhY2goKGcsQik9PntpZighZ3x8Qj4xMjd8fEI9PT1TLmJhbmtTZWxlY3QpcmV0dXJuO2xldCBkPXIubWlkaUNvbnRyb2xsZXJzW0JdPj43O2EucHVzaCh7Y2hhbm5lbDpJLGNvbnRyb2xsZXJOdW1iZXI6Qixjb250cm9sbGVyVmFsdWU6ZH0pfSl9KSxlLm1vZGlmeShzLGEsbix0KX12YXIgbG49e1hNRkZpbGVUeXBlOjAsbm9kZU5hbWU6MSxub2RlSUROdW1iZXI6MixyZXNvdXJjZUZvcm1hdDozLGZpbGVuYW1lT25EaXNrOjQsZmlsZW5hbWVFeHRlbnNpb25PbkRpc2s6NSxtYWNPU0ZpbGVUeXBlQW5kQ3JlYXRvcjo2LG1pbWVUeXBlOjcsdGl0bGU6OCxjb3B5cmlnaHROb3RpY2U6OSxjb21tZW50OjEwLGF1dG9TdGFydDoxMSxwcmVsb2FkOjEyLGNvbnRlbnREZXNjcmlwdGlvbjoxMyxJRDNNZXRhZGF0YToxNH0sS2U9e2luTGluZVJlc291cmNlOjEsaW5GaWxlUmVzb3VyY2U6MixpbkZpbGVOb2RlOjMsZXh0ZXJuYWxGaWxlOjQsZXh0ZXJuYWxYTUY6NSxYTUZGaWxlVVJJYW5kTm9kZUlEOjZ9LGRuPXtTdGFuZGFyZE1JRElGaWxlOjAsU3RhbmRhcmRNSURJRmlsZVR5cGUxOjEsRExTMToyLERMUzI6MyxETFMyMjo0LG1vYmlsZURMUzo1LHVua25vd246LTEsZm9sZGVyOi0yfSxybz17c3RhbmRhcmQ6MCxNTUE6MSxyZWdpc3RlcmVkOjIsbm9uUmVnaXN0ZXJlZDozfSxNdD17bm9uZTowLE1NQVVucGFja2VyOjEscmVnaXN0ZXJlZDoyLG5vblJlZ2lzdGVyZWQ6M30saW89Y2xhc3MgJHN7bGVuZ3RoO2l0ZW1Db3VudDttZXRhZGF0YUxlbmd0aDttZXRhZGF0YT17fTtub2RlRGF0YTtpbm5lck5vZGVzPVtdO3BhY2tlZENvbnRlbnQ9ITE7bm9kZVVucGFja2Vycz1bXTtyZXNvdXJjZUZvcm1hdD0idW5rbm93biI7cmVmZXJlbmNlVHlwZUlEO2NvbnN0cnVjdG9yKEEpe2xldCB0PUEuY3VycmVudEluZGV4O3RoaXMubGVuZ3RoPXVBKEEpLHRoaXMuaXRlbUNvdW50PXVBKEEpO2xldCBuPXVBKEEpLHM9QS5jdXJyZW50SW5kZXgtdCxhPW4tcyxyPUEuc2xpY2UoQS5jdXJyZW50SW5kZXgsQS5jdXJyZW50SW5kZXgrYSk7QS5jdXJyZW50SW5kZXgrPWEsdGhpcy5tZXRhZGF0YUxlbmd0aD11QShyKTtsZXQgST1yLnNsaWNlKHIuY3VycmVudEluZGV4LHIuY3VycmVudEluZGV4K3RoaXMubWV0YWRhdGFMZW5ndGgpO3IuY3VycmVudEluZGV4Kz10aGlzLm1ldGFkYXRhTGVuZ3RoO2xldCBvLGc7Zm9yKDtJLmN1cnJlbnRJbmRleDxJLmxlbmd0aDspe2lmKElbSS5jdXJyZW50SW5kZXhdPT09MClJLmN1cnJlbnRJbmRleCsrLG89dUEoSSksT2JqZWN0LnZhbHVlcyhsbikuaW5jbHVkZXMobyk/Zz1PYmplY3Qua2V5cyhsbikuZmluZChtPT5sblttXT09PW8pPz8iIjoocChgVW5rbm93biBmaWVsZCBzcGVjaWZpZXI6ICR7b31gKSxnPWB1bmtub3duXyR7b31gKTtlbHNle2xldCBtPXVBKEkpO289aEEoSSxtKSxnPW99bGV0IFE9dUEoSSk7aWYoUT09PTApe2xldCBtPXVBKEkpLHk9SS5zbGljZShJLmN1cnJlbnRJbmRleCxJLmN1cnJlbnRJbmRleCttKTtJLmN1cnJlbnRJbmRleCs9bSx1QSh5KTw0P3RoaXMubWV0YWRhdGFbZ109aEEoeSxtLTEpOnRoaXMubWV0YWRhdGFbZ109eS5zbGljZSh5LmN1cnJlbnRJbmRleCl9ZWxzZSBwKGBJbnRlcm5hdGlvbmFsIGNvbnRlbnQ6ICR7UX1gKSxJLmN1cnJlbnRJbmRleCs9dUEoSSl9bGV0IEI9ci5jdXJyZW50SW5kZXgsZD11QShyKSxoPXIuc2xpY2Uoci5jdXJyZW50SW5kZXgsQitkKTtpZihyLmN1cnJlbnRJbmRleD1CK2QsZD4wKWZvcih0aGlzLnBhY2tlZENvbnRlbnQ9ITA7aC5jdXJyZW50SW5kZXg8ZDspe2xldCBDPXt9O3N3aXRjaChDLmlkPXVBKGgpLEMuaWQpe2Nhc2UgTXQubm9uUmVnaXN0ZXJlZDpjYXNlIE10LnJlZ2lzdGVyZWQ6dGhyb3cgWigpLG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgdW5wYWNrZXIgSUQ6ICR7Qy5pZH1gKTtkZWZhdWx0OnRocm93IFooKSxuZXcgRXJyb3IoYFVua25vd24gdW5wYWNrZXIgSUQ6ICR7Qy5pZH1gKTtjYXNlIE10Lm5vbmU6Qy5zdGFuZGFyZElEPXVBKGgpO2JyZWFrO2Nhc2UgTXQuTU1BVW5wYWNrZXI6e2xldCBRPWhbaC5jdXJyZW50SW5kZXgrK107UT09PTAmJihRPDw9OCxRfD1oW2guY3VycmVudEluZGV4KytdLFE8PD04LFF8PWhbaC5jdXJyZW50SW5kZXgrK10pO2xldCBtPXVBKGgpO0MubWFudWZhY3R1cmVySUQ9USxDLm1hbnVmYWN0dXJlckludGVybmFsSUQ9bX1icmVha31DLmRlY29kZWRTaXplPXVBKGgpLHRoaXMubm9kZVVucGFja2Vycy5wdXNoKEMpfXN3aXRjaChBLmN1cnJlbnRJbmRleD10K24sdGhpcy5yZWZlcmVuY2VUeXBlSUQ9dUEoQSksdGhpcy5ub2RlRGF0YT1BLnNsaWNlKEEuY3VycmVudEluZGV4LHQrdGhpcy5sZW5ndGgpLEEuY3VycmVudEluZGV4PXQrdGhpcy5sZW5ndGgsdGhpcy5yZWZlcmVuY2VUeXBlSUQpe2Nhc2UgS2UuaW5MaW5lUmVzb3VyY2U6YnJlYWs7Y2FzZSBLZS5leHRlcm5hbFhNRjpjYXNlIEtlLmluRmlsZU5vZGU6Y2FzZSBLZS5YTUZGaWxlVVJJYW5kTm9kZUlEOmNhc2UgS2UuZXh0ZXJuYWxGaWxlOmNhc2UgS2UuaW5GaWxlUmVzb3VyY2U6dGhyb3cgWigpLG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgcmVmZXJlbmNlIHR5cGU6ICR7dGhpcy5yZWZlcmVuY2VUeXBlSUR9YCk7ZGVmYXVsdDp0aHJvdyBaKCksbmV3IEVycm9yKGBVbmtub3duIHJlZmVyZW5jZSB0eXBlOiAke3RoaXMucmVmZXJlbmNlVHlwZUlEfWApfWlmKHRoaXMuaXNGaWxlKXtpZih0aGlzLnBhY2tlZENvbnRlbnQpe2xldCBRPXRoaXMubm9kZURhdGEuc2xpY2UoMix0aGlzLm5vZGVEYXRhLmxlbmd0aCk7cChgJWNQYWNrZWQgY29udGVudC4gQXR0ZW1wdGluZyB0byBkZWZsYXRlLiBUYXJnZXQgc2l6ZTogJWMke3RoaXMubm9kZVVucGFja2Vyc1swXS5kZWNvZGVkU2l6ZX1gLGMud2FybixjLnZhbHVlKTt0cnl7dGhpcy5ub2RlRGF0YT1uZXcgWShQcyhRKS5idWZmZXIpfWNhdGNoKG0pe2lmKFooKSxtIGluc3RhbmNlb2YgRXJyb3IpdGhyb3cgbmV3IEVycm9yKGBFcnJvciB1bnBhY2tpbmcgWE1GIGZpbGUgY29udGVudHM6ICR7bS5tZXNzYWdlfS5gKX19bGV0IEM9dGhpcy5tZXRhZGF0YS5yZXNvdXJjZUZvcm1hdDtpZihDPT09dm9pZCAwKXNBKCJObyByZXNvdXJjZSBmb3JtYXQgZm9yIHRoaXMgZmlsZSBub2RlISIpO2Vsc2V7Q1swXSE9PXJvLnN0YW5kYXJkJiYocChgTm9uLXN0YW5kYXJkIGZvcm1hdFR5cGVJRDogJHtDLnRvU3RyaW5nKCl9YCksdGhpcy5yZXNvdXJjZUZvcm1hdD1DLnRvU3RyaW5nKCkpO2xldCBtPUNbMV07T2JqZWN0LnZhbHVlcyhkbikuaW5jbHVkZXMobSk/dGhpcy5yZXNvdXJjZUZvcm1hdD1PYmplY3Qua2V5cyhkbikuZmluZCh5PT5kblt5XT09PW0pOnAoYFVucmVjb2duaXplZCByZXNvdXJjZSBmb3JtYXQ6ICR7bX1gKX19ZWxzZSBmb3IodGhpcy5yZXNvdXJjZUZvcm1hdD0iZm9sZGVyIjt0aGlzLm5vZGVEYXRhLmN1cnJlbnRJbmRleDx0aGlzLm5vZGVEYXRhLmxlbmd0aDspe2xldCBDPXRoaXMubm9kZURhdGEuY3VycmVudEluZGV4LFE9dUEodGhpcy5ub2RlRGF0YSksbT10aGlzLm5vZGVEYXRhLnNsaWNlKEMsQytRKTt0aGlzLm5vZGVEYXRhLmN1cnJlbnRJbmRleD1DK1EsdGhpcy5pbm5lck5vZGVzLnB1c2gobmV3ICRzKG0pKX19Z2V0IGlzRmlsZSgpe3JldHVybiB0aGlzLml0ZW1Db3VudD09PTB9fTtmdW5jdGlvbiBJbyhlLEEpe2UuYmFua09mZnNldD0wO2xldCB0PWhBKEEsNCk7aWYodCE9PSJYTUZfIil0aHJvdyBaKCksbmV3IFN5bnRheEVycm9yKGBJbnZhbGlkIFhNRiBIZWFkZXIhIEV4cGVjdGVkICJfWE1GIiwgZ290ICIke3R9ImApO09BKCIlY1BhcnNpbmcgWE1GIGZpbGUuLi4iLGMuaW5mbyk7bGV0IG49aEEoQSw0KTtpZihwKGAlY1hNRiB2ZXJzaW9uOiAlYyR7bn1gLGMuaW5mbyxjLnJlY29nbml6ZWQpLG49PT0iMi4wMCIpe2xldCBvPVhlKEEsNCksZz1YZShBLDQpO3AoYCVjRmlsZSBUeXBlIElEOiAlYyR7b30lYywgRmlsZSBUeXBlIFJldmlzaW9uIElEOiAlYyR7Z31gLGMuaW5mbyxjLnJlY29nbml6ZWQsYy5pbmZvLGMucmVjb2duaXplZCl9dUEoQSk7bGV0IHM9dUEoQSk7QS5jdXJyZW50SW5kZXgrPXMsQS5jdXJyZW50SW5kZXg9dUEoQSk7bGV0IGE9bmV3IGlvKEEpLHIsST1vPT57bGV0IGc9KEIsZCk9PntvLm1ldGFkYXRhW0JdIT09dm9pZCAwJiZ0eXBlb2Ygby5tZXRhZGF0YVtCXT09InN0cmluZyImJihlLnJtaWRpSW5mb1tkXT1uZShvLm1ldGFkYXRhW0JdKSl9O2lmKGcoIm5vZGVOYW1lIiwibmFtZSIpLGcoInRpdGxlIiwibmFtZSIpLGcoImNvcHlyaWdodE5vdGljZSIsImNvcHlyaWdodCIpLGcoImNvbW1lbnQiLCJjb21tZW50Iiksby5pc0ZpbGUpc3dpdGNoKG8ucmVzb3VyY2VGb3JtYXQpe2RlZmF1bHQ6cmV0dXJuO2Nhc2UiRExTMSI6Y2FzZSJETFMyIjpjYXNlIkRMUzIyIjpjYXNlIm1vYmlsZURMUyI6cCgiJWNGb3VuZCBlbWJlZGRlZCBETFMhIixjLnJlY29nbml6ZWQpLGUuZW1iZWRkZWRTb3VuZEJhbms9by5ub2RlRGF0YS5idWZmZXI7YnJlYWs7Y2FzZSJTdGFuZGFyZE1JRElGaWxlIjpjYXNlIlN0YW5kYXJkTUlESUZpbGVUeXBlMSI6cCgiJWNGb3VuZCBlbWJlZGRlZCBNSURJISIsYy5yZWNvZ25pemVkKSxyPW8ubm9kZURhdGE7YnJlYWt9ZWxzZSBmb3IobGV0IEIgb2Ygby5pbm5lck5vZGVzKUkoQil9O2lmKEkoYSksWigpLCFyKXRocm93IG5ldyBFcnJvcigiTm8gTUlESSBkYXRhIGluIHRoZSBYTUYgZmlsZSEiKTtyZXR1cm4gcn12YXIgS3Q9Y2xhc3MgQWF7bmFtZT0iIjtwb3J0PTA7Y2hhbm5lbHM9bmV3IFNldDtldmVudHM9W107c3RhdGljIGNvcHlGcm9tKEEpe2xldCB0PW5ldyBBYTtyZXR1cm4gdC5jb3B5RnJvbShBKSx0fWNvcHlGcm9tKEEpe3RoaXMubmFtZT1BLm5hbWUsdGhpcy5wb3J0PUEucG9ydCx0aGlzLmNoYW5uZWxzPW5ldyBTZXQoQS5jaGFubmVscyksdGhpcy5ldmVudHM9QS5ldmVudHMubWFwKHQ9Pm5ldyBaQSh0LnRpY2tzLHQuc3RhdHVzQnl0ZSxuZXcgWSh0LmRhdGEpKSl9YWRkRXZlbnQoQSx0KXt0aGlzLmV2ZW50cy5zcGxpY2UodCwwLEEpfWRlbGV0ZUV2ZW50KEEpe3RoaXMuZXZlbnRzLnNwbGljZShBLDEpfXB1c2hFdmVudChBKXt0aGlzLmV2ZW50cy5wdXNoKEEpfX07ZnVuY3Rpb24gcHMoZSxBLHQpe2JBKCIlY1BhcnNpbmcgTUlESSBGaWxlLi4uIixjLmluZm8pLGUuZmlsZU5hbWU9dDtsZXQgbj1uZXcgWShBKSxzPW4sYT1nPT57bGV0IEI9aEEoZyw0KSxkPVhlKGcsNCksaD1uZXcgWShkKSxDPXt0eXBlOkIsc2l6ZTpkLGRhdGE6aH0sUT1nLnNsaWNlKGcuY3VycmVudEluZGV4LGcuY3VycmVudEluZGV4K0Muc2l6ZSk7cmV0dXJuIEMuZGF0YS5zZXQoUSwwKSxnLmN1cnJlbnRJbmRleCs9Qy5zaXplLEN9LHI9ZWUobiw0KTtpZihyPT09IlJJRkYiKXtuLmN1cnJlbnRJbmRleCs9ODtsZXQgZz1oQShuLDQpO2lmKGchPT0iUk1JRCIpdGhyb3cgWigpLG5ldyBTeW50YXhFcnJvcihgSW52YWxpZCBSTUlESSBIZWFkZXIhIEV4cGVjdGVkICJSTUlEIiwgZ290ICIke2d9ImApO2xldCBCPXJBKG4pO2lmKEIuaGVhZGVyIT09ImRhdGEiKXRocm93IFooKSxuZXcgU3ludGF4RXJyb3IoYEludmFsaWQgUk1JREkgQ2h1bmsgaGVhZGVyISBFeHBlY3RlZCAiZGF0YSIsIGdvdCAiJHtnfSJgKTtzPUIuZGF0YTtsZXQgZD0hMSxoPSExO2Zvcig7bi5jdXJyZW50SW5kZXg8PW4ubGVuZ3RoOyl7bGV0IEM9bi5jdXJyZW50SW5kZXgsUT1yQShuLCEwKTtpZihRLmhlYWRlcj09PSJSSUZGIil7bGV0IG09aEEoUS5kYXRhLDQpLnRvTG93ZXJDYXNlKCk7bT09PSJzZmJrInx8bT09PSJzZnBrInx8bT09PSJkbHMgIj8ocCgiJWNGb3VuZCBlbWJlZGRlZCBzb3VuZGJhbmshIixjLnJlY29nbml6ZWQpLGUuZW1iZWRkZWRTb3VuZEJhbms9bi5zbGljZShDLEMrUS5zaXplKS5idWZmZXIpOnNBKGBVbmtub3duIFJJRkYgY2h1bms6ICIke219ImApLG09PT0iZGxzICI/ZS5pc0RMU1JNSURJPSEwOmQ9ITB9ZWxzZSBpZihRLmhlYWRlcj09PSJMSVNUIiYmaEEoUS5kYXRhLDQpPT09IklORk8iKWZvcihwKCIlY0ZvdW5kIFJNSURJIElORk8gY2h1bmshIixjLnJlY29nbml6ZWQpO1EuZGF0YS5jdXJyZW50SW5kZXg8PVEuc2l6ZTspe2xldCB5PXJBKFEuZGF0YSwhMCksRj15LmhlYWRlcixrPXkuZGF0YTtzd2l0Y2goRil7ZGVmYXVsdDpzQShgVW5rbm93biBSTUlESSBJbmZvOiAke0Z9YCk7YnJlYWs7Y2FzZSJJTkFNIjplLnJtaWRpSW5mby5uYW1lPWs7YnJlYWs7Y2FzZSJJQUxCIjpjYXNlIklQUkQiOmUucm1pZGlJbmZvLmFsYnVtPWs7YnJlYWs7Y2FzZSJJQ1JUIjpjYXNlIklDUkQiOmUucm1pZGlJbmZvLmNyZWF0aW9uRGF0ZT1rO2JyZWFrO2Nhc2UiSUFSVCI6ZS5ybWlkaUluZm8uYXJ0aXN0PWs7YnJlYWs7Y2FzZSJJR05SIjplLnJtaWRpSW5mby5nZW5yZT1rO2JyZWFrO2Nhc2UiSVBJQyI6ZS5ybWlkaUluZm8ucGljdHVyZT1rO2JyZWFrO2Nhc2UiSUNPUCI6ZS5ybWlkaUluZm8uY29weXJpZ2h0PWs7YnJlYWs7Y2FzZSJJQ01UIjplLnJtaWRpSW5mby5jb21tZW50PWs7YnJlYWs7Y2FzZSJJRU5HIjplLnJtaWRpSW5mby5lbmdpbmVlcj1rO2JyZWFrO2Nhc2UiSVNGVCI6ZS5ybWlkaUluZm8uc29mdHdhcmU9azticmVhaztjYXNlIklTQkoiOmUucm1pZGlJbmZvLnN1YmplY3Q9azticmVhaztjYXNlIklFTkMiOmUucm1pZGlJbmZvLmluZm9FbmNvZGluZz1rO2JyZWFrO2Nhc2UiTUVOQyI6ZS5ybWlkaUluZm8ubWlkaUVuY29kaW5nPWs7YnJlYWs7Y2FzZSJEQk5LIjplLmJhbmtPZmZzZXQ9eHMoaywyKSxoPSEwO2JyZWFrfX19ZCYmIWgmJihlLmJhbmtPZmZzZXQ9MSksZS5pc0RMU1JNSURJJiYoZS5iYW5rT2Zmc2V0PTApLGUuZW1iZWRkZWRTb3VuZEJhbms9PT12b2lkIDAmJihlLmJhbmtPZmZzZXQ9MCl9ZWxzZSByPT09IlhNRl8iP3M9SW8oZSxuKTpzPW47bGV0IEk9YShzKTtpZihJLnR5cGUhPT0iTVRoZCIpdGhyb3cgWigpLG5ldyBTeW50YXhFcnJvcihgSW52YWxpZCBNSURJIEhlYWRlciEgRXhwZWN0ZWQgIk1UaGQiLCBnb3QgIiR7SS50eXBlfSJgKTtpZihJLnNpemUhPT02KXRocm93IFooKSxuZXcgUmFuZ2VFcnJvcihgSW52YWxpZCBNSURJIGhlYWRlciBjaHVuayBzaXplISBFeHBlY3RlZCA2LCBnb3QgJHtJLnNpemV9YCk7ZS5mb3JtYXQ9WGUoSS5kYXRhLDIpO2xldCBvPVhlKEkuZGF0YSwyKTtlLnRpbWVEaXZpc2lvbj1YZShJLmRhdGEsMik7Zm9yKGxldCBnPTA7ZzxvO2crKyl7bGV0IEI9bmV3IEt0LGQ9YShzKTtpZihkLnR5cGUhPT0iTVRyayIpdGhyb3cgWigpLG5ldyBTeW50YXhFcnJvcihgSW52YWxpZCB0cmFjayBoZWFkZXIhIEV4cGVjdGVkICJNVHJrIiBnb3QgIiR7ZC50eXBlfSJgKTtsZXQgaCxDPTA7Zm9yKGUuZm9ybWF0PT09MiYmZz4wJiYoQys9ZS50cmFja3NbZy0xXS5ldmVudHNbZS50cmFja3NbZy0xXS5ldmVudHMubGVuZ3RoLTFdLnRpY2tzKTtkLmRhdGEuY3VycmVudEluZGV4PGQuc2l6ZTspe0MrPXVBKGQuZGF0YSk7bGV0IFE9ZC5kYXRhW2QuZGF0YS5jdXJyZW50SW5kZXhdLG07aWYoaCE9PXZvaWQgMCYmUTwxMjgpbT1oO2Vsc2V7aWYoUTwxMjgpdGhyb3cgWigpLG5ldyBTeW50YXhFcnJvcihgVW5leHBlY3RlZCBieXRlIHdpdGggbm8gcnVubmluZyBieXRlLiAoJHtRfSlgKTttPWQuZGF0YVtkLmRhdGEuY3VycmVudEluZGV4KytdfWxldCB5PUthKG0pLEY7c3dpdGNoKHkpe2Nhc2UtMTpGPTA7YnJlYWs7Y2FzZS0yOm09ZC5kYXRhW2QuZGF0YS5jdXJyZW50SW5kZXgrK10sRj11QShkLmRhdGEpO2JyZWFrO2Nhc2UtMzpGPXVBKGQuZGF0YSk7YnJlYWs7ZGVmYXVsdDpGPU9hW20+PjRdLGg9bTticmVha31sZXQgaz1uZXcgWShGKTtrLnNldChkLmRhdGEuc2xpY2UoZC5kYXRhLmN1cnJlbnRJbmRleCxkLmRhdGEuY3VycmVudEluZGV4K0YpLDApO2xldCBEPW5ldyBaQShDLG0sayk7Qi5wdXNoRXZlbnQoRCksZC5kYXRhLmN1cnJlbnRJbmRleCs9Rn1lLnRyYWNrcy5wdXNoKEIpLHAoYCVjUGFyc2VkICVjJHtlLnRyYWNrcy5sZW5ndGh9JWMgLyAlYyR7ZS50cmFja3MubGVuZ3RofWAsYy5pbmZvLGMudmFsdWUsYy5pbmZvLGMudmFsdWUpfXAoIiVjQWxsIHRyYWNrcyBwYXJzZWQgY29ycmVjdGx5ISIsYy5yZWNvZ25pemVkKSxlLmZsdXNoKCExKSxaKCkscChgJWNNSURJIGZpbGUgcGFyc2VkLiBUb3RhbCB0aWNrIHRpbWU6ICVjJHtlLmxhc3RWb2ljZUV2ZW50VGlja30lYywgdG90YWwgc2Vjb25kcyB0aW1lOiAlYyR7ZS5kdXJhdGlvbn1gLGMuaW5mbyxjLnJlY29nbml6ZWQsYy5pbmZvLGMucmVjb2duaXplZCl9dmFyIGdvPW5ldyBNYXAoW1siZG9taW5nbyIsIlN1bmRheSJdLFsic2VndW5kYS1mZWlyYSIsIk1vbmRheSJdLFsidGVyXHhFN2EtZmVpcmEiLCJUdWVzZGF5Il0sWyJxdWFydGEtZmVpcmEiLCJXZWRuZXNkYXkiXSxbInF1aW50YS1mZWlyYSIsIlRodXJzZGF5Il0sWyJzZXh0YS1mZWlyYSIsIkZyaWRheSJdLFsic1x4RTFiYWRvIiwiU2F0dXJkYXkiXSxbImphbmVpcm8iLCJKYW51YXJ5Il0sWyJmZXZlcmVpcm8iLCJGZWJydWFyeSJdLFsibWFyXHhFN28iLCJNYXJjaCJdLFsiYWJyaWwiLCJBcHJpbCJdLFsibWFpbyIsIk1heSJdLFsianVuaG8iLCJKdW5lIl0sWyJqdWxobyIsIkp1bHkiXSxbImFnb3N0byIsIkF1Z3VzdCJdLFsic2V0ZW1icm8iLCJTZXB0ZW1iZXIiXSxbIm91dHVicm8iLCJPY3RvYmVyIl0sWyJub3ZlbWJybyIsIk5vdmVtYmVyIl0sWyJkZXplbWJybyIsIkRlY2VtYmVyIl1dKSxjbz1bZ29dO2Z1bmN0aW9uIEVvKGUpe2ZvcihsZXQgQSBvZiBjbyl7bGV0IHQ9ZTtBLmZvckVhY2goKHMsYSk9PntsZXQgcj1uZXcgUmVnRXhwKGEsImdpIik7dD10LnJlcGxhY2UocixzKX0pO2xldCBuPW5ldyBEYXRlKHQpO2lmKCFpc05hTihuLmdldFRpbWUoKSkpcmV0dXJuIG59fWZ1bmN0aW9uIEJvKGUpe2xldCBBPS9eKFxkezJ9KVwuKFxkezJ9KVwuKFxkezR9KSQvLmV4ZWMoZSk7aWYoQSl7bGV0IHQ9cGFyc2VJbnQoQVsxXSksbj1wYXJzZUludChBWzJdKS0xLHM9cGFyc2VJbnQoQVszXSksYT1uZXcgRGF0ZShzLG4sdCk7aWYoIWlzTmFOKGEuZ2V0VGltZSgpKSlyZXR1cm4gYX19ZnVuY3Rpb24gQ28oZSl7bGV0IEE9L14oXGR7MSwyfSlcc3sxLDJ9KFxkezEsMn0pXHN7MSwyfShcZHsyfSkkLy5leGVjKGUpO2lmKEEpe2xldCB0PUFbMV0sbj0ocGFyc2VJbnQoQVsyXSkrMSkudG9TdHJpbmcoKSxzPUFbM10sYT1uZXcgRGF0ZShgJHtufS8ke3R9LyR7c31gKTtpZighaXNOYU4oYS5nZXRUaW1lKCkpKXJldHVybiBhfX1mdW5jdGlvbiBobyhlKXtsZXQgdD0vXGJcZHs0fVxiLy5leGVjKGUpO3JldHVybiB0P25ldyBEYXRlKHRbMF0pOnZvaWQgMH1mdW5jdGlvbiB0cyhlKXtpZihlPWUudHJpbSgpLGUubGVuZ3RoPDEpcmV0dXJuIG5ldyBEYXRlO2xldCBBPWUucmVwbGFjZSgvXGIoXGQrKShzdHxuZHxyZHx0aClcYi9nLCIkMSIpLHQ9bmV3IERhdGUoQSk7aWYoaXNOYU4odC5nZXRUaW1lKCkpKXtsZXQgbj1FbyhlKTtpZihuKXJldHVybiBuO2xldCBzPUJvKGUpO2lmKHMpcmV0dXJuIHM7bGV0IGE9Q28oZSk7aWYoYSlyZXR1cm4gYTtsZXQgcj1obyhlKTtyZXR1cm4gcnx8KHNBKGBJbnZhbGlkIGRhdGU6ICIke2V9Ii4gUmVwbGFjaW5nIHdpdGggdGhlIGN1cnJlbnQgZGF0ZSFgKSxuZXcgRGF0ZSl9cmV0dXJuIHR9dmFyIExlPWNsYXNzIEx0e3RyYWNrcz1bXTt0aW1lRGl2aXNpb249MDtkdXJhdGlvbj0wO3RlbXBvQ2hhbmdlcz1be3RpY2tzOjAsdGVtcG86MTIwfV07ZXh0cmFNZXRhZGF0YT1bXTtseXJpY3M9W107Zmlyc3ROb3RlT249MDtrZXlSYW5nZT17bWluOjAsbWF4OjEyN307bGFzdFZvaWNlRXZlbnRUaWNrPTA7cG9ydENoYW5uZWxPZmZzZXRNYXA9WzBdO2xvb3A9e3N0YXJ0OjAsZW5kOjB9O2ZpbGVOYW1lO2Zvcm1hdD0wO3JtaWRpSW5mbz17fTtiYW5rT2Zmc2V0PTA7aXNLYXJhb2tlRmlsZT0hMTtpc011bHRpUG9ydD0hMTtpc0RMU1JNSURJPSExO2VtYmVkZGVkU291bmRCYW5rO2JpbmFyeU5hbWU7Z2V0IGluZm9FbmNvZGluZygpe2xldCBBPXRoaXMucm1pZGlJbmZvLmluZm9FbmNvZGluZztpZighQSlyZXR1cm47bGV0IHQ9QS5ieXRlTGVuZ3RoO3JldHVybiBBW0EuYnl0ZUxlbmd0aC0xXT09PTAmJnQtLSxlZShBLHQpfXN0YXRpYyBmcm9tQXJyYXlCdWZmZXIoQSx0PSIiKXtsZXQgbj1uZXcgTHQ7cmV0dXJuIHBzKG4sQSx0KSxufXN0YXRpYyBhc3luYyBmcm9tRmlsZShBKXtsZXQgdD1uZXcgTHQ7cmV0dXJuIHBzKHQsYXdhaXQgQS5hcnJheUJ1ZmZlcigpLEEubmFtZSksdH1zdGF0aWMgY29weUZyb20oQSl7bGV0IHQ9bmV3IEx0O3JldHVybiB0LmNvcHlGcm9tKEEpLHR9Y29weUZyb20oQSl7dGhpcy5jb3B5TWV0YWRhdGFGcm9tKEEpLHRoaXMuZW1iZWRkZWRTb3VuZEJhbms9QT8uZW1iZWRkZWRTb3VuZEJhbms/LnNsaWNlKDApPz92b2lkIDAsdGhpcy50cmFja3M9QS50cmFja3MubWFwKHQ9Pkt0LmNvcHlGcm9tKHQpKX1taWRpVGlja3NUb1NlY29uZHMoQSl7bGV0IHQ9MDtmb3IoO0E+MDspe2xldCBuPXRoaXMudGVtcG9DaGFuZ2VzLmZpbmQoYT0+YS50aWNrczxBKTtpZighbilyZXR1cm4gdDtsZXQgcz1BLW4udGlja3M7dCs9cyo2MC8obi50ZW1wbyp0aGlzLnRpbWVEaXZpc2lvbiksQS09c31yZXR1cm4gdH1nZXRVc2VkUHJvZ3JhbXNBbmRLZXlzKEEpe3JldHVybiB0byh0aGlzLEEpfWZsdXNoKEE9ITApe2lmKEEpZm9yKGxldCB0IG9mIHRoaXMudHJhY2tzKXQuZXZlbnRzLnNvcnQoKG4scyk9Pm4udGlja3Mtcy50aWNrcyk7dGhpcy5wYXJzZUludGVybmFsKCl9Z2V0Tm90ZVRpbWVzKEE9MCl7cmV0dXJuIG5vKHRoaXMsQSl9d3JpdGVNSURJKCl7cmV0dXJuIFZhKHRoaXMpfXdyaXRlUk1JREkoQSx0PVNzKXtyZXR1cm4gZW8odGhpcyxBLCRuKHQsU3MpKX1tb2RpZnkoQT1bXSx0PVtdLG49W10scz1bXSl7YW8odGhpcyxBLHQsbixzKX1hcHBseVNuYXBzaG90KEEpe29vKHRoaXMsQSl9Z2V0TmFtZShBPSJTaGlmdF9KSVMiKXtsZXQgdD0iIixuPXRoaXMuZ2V0Uk1JREluZm8oIm5hbWUiKTtpZihuKXJldHVybiBuLnRyaW0oKTtpZih0aGlzLmJpbmFyeU5hbWUpe0E9dGhpcy5nZXRSTUlESW5mbygibWlkaUVuY29kaW5nIik/P0E7dHJ5e3Q9bmV3IFRleHREZWNvZGVyKEEpLmRlY29kZSh0aGlzLmJpbmFyeU5hbWUpLnRyaW0oKX1jYXRjaChzKXtzQShgRmFpbGVkIHRvIGRlY29kZSBNSURJIG5hbWU6ICR7c31gKX19cmV0dXJuIHR8fHRoaXMuZmlsZU5hbWV9Z2V0RXh0cmFNZXRhZGF0YShBPSJTaGlmdF9KSVMiKXtBPXRoaXMuaW5mb0VuY29kaW5nPz9BO2xldCB0PW5ldyBUZXh0RGVjb2RlcihBKTtyZXR1cm4gdGhpcy5leHRyYU1ldGFkYXRhLm1hcChuPT50LmRlY29kZShuLmRhdGEpLnJlcGxhY2UoL0BUfEBBL2csIiIpLnRyaW0oKSl9c2V0Uk1JREluZm8oQSx0KXtpZih0aGlzLnJtaWRpSW5mby5pbmZvRW5jb2Rpbmc9bmUoInV0Zi04IiwhMCksQT09PSJwaWN0dXJlIil0aGlzLnJtaWRpSW5mby5waWN0dXJlPW5ldyBVaW50OEFycmF5KHQpO2Vsc2UgaWYoQT09PSJjcmVhdGlvbkRhdGUiKXRoaXMucm1pZGlJbmZvLmNyZWF0aW9uRGF0ZT1uZSh0LnRvSVNPU3RyaW5nKCksITApO2Vsc2V7bGV0IG49bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHQpO3RoaXMucm1pZGlJbmZvW0FdPW5ldyBVaW50OEFycmF5KFsuLi5uLDBdKX19Z2V0Uk1JREluZm8oQSl7aWYoIXRoaXMucm1pZGlJbmZvW0FdKXJldHVybjtsZXQgdD10aGlzLmluZm9FbmNvZGluZz8/IlVURi04IjtpZihBPT09InBpY3R1cmUiKXJldHVybiB0aGlzLnJtaWRpSW5mb1tBXS5idWZmZXI7aWYoQT09PSJjcmVhdGlvbkRhdGUiKXJldHVybiB0cyhlZSh0aGlzLnJtaWRpSW5mb1tBXSkpO3RyeXtsZXQgbj1uZXcgVGV4dERlY29kZXIodCkscz10aGlzLnJtaWRpSW5mb1tBXTtyZXR1cm4gc1tzLmxlbmd0aC0xXT09PTAmJihzPXM/LnNsaWNlKDAscy5sZW5ndGgtMSkpLG4uZGVjb2RlKHMuYnVmZmVyKS50cmltKCl9Y2F0Y2gobil7c0EoYEZhaWxlZCB0byBkZWNvZGUgJHtBfSBuYW1lOiAke259YCk7cmV0dXJufX1jb3B5TWV0YWRhdGFGcm9tKEEpe3RoaXMuZmlsZU5hbWU9QS5maWxlTmFtZSx0aGlzLnRpbWVEaXZpc2lvbj1BLnRpbWVEaXZpc2lvbix0aGlzLmR1cmF0aW9uPUEuZHVyYXRpb24sdGhpcy5maXJzdE5vdGVPbj1BLmZpcnN0Tm90ZU9uLHRoaXMubGFzdFZvaWNlRXZlbnRUaWNrPUEubGFzdFZvaWNlRXZlbnRUaWNrLHRoaXMuZm9ybWF0PUEuZm9ybWF0LHRoaXMuYmFua09mZnNldD1BLmJhbmtPZmZzZXQsdGhpcy5pc0thcmFva2VGaWxlPUEuaXNLYXJhb2tlRmlsZSx0aGlzLmlzTXVsdGlQb3J0PUEuaXNNdWx0aVBvcnQsdGhpcy5pc0RMU1JNSURJPUEuaXNETFNSTUlESSx0aGlzLmlzRExTUk1JREk9QS5pc0RMU1JNSURJLHRoaXMudGVtcG9DaGFuZ2VzPVsuLi5BLnRlbXBvQ2hhbmdlc10sdGhpcy5leHRyYU1ldGFkYXRhPUEuZXh0cmFNZXRhZGF0YS5tYXAodD0+bmV3IFpBKHQudGlja3MsdC5zdGF0dXNCeXRlLG5ldyBZKHQuZGF0YSkpKSx0aGlzLmx5cmljcz1BLmx5cmljcy5tYXAodD0+bmV3IFpBKHQudGlja3MsdC5zdGF0dXNCeXRlLG5ldyBZKHQuZGF0YSkpKSx0aGlzLnBvcnRDaGFubmVsT2Zmc2V0TWFwPVsuLi5BLnBvcnRDaGFubmVsT2Zmc2V0TWFwXSx0aGlzLmJpbmFyeU5hbWU9QT8uYmluYXJ5TmFtZT8uc2xpY2UoKSx0aGlzLmxvb3A9ey4uLkEubG9vcH0sdGhpcy5rZXlSYW5nZT17Li4uQS5rZXlSYW5nZX0sdGhpcy5ybWlkaUluZm89e30sT2JqZWN0LmVudHJpZXMoQS5ybWlkaUluZm8pLmZvckVhY2godD0+e2xldCBuPXRbMF0scz10WzFdO3RoaXMucm1pZGlJbmZvW25dPXMuc2xpY2UoKX0pfXBhcnNlSW50ZXJuYWwoKXtPQSgiJWNJbnRlcnByZXRpbmcgTUlESSBldmVudHMuLi4iLGMuaW5mbyk7bGV0IEE9ITE7dGhpcy5rZXlSYW5nZT17bWF4OjAsbWluOjEyN30sdGhpcy5leHRyYU1ldGFkYXRhPVtdO2xldCB0PSExO3R5cGVvZiB0aGlzLnJtaWRpSW5mby5uYW1lPCJ1IiYmKHQ9ITApO2xldCBuPW51bGwscz1udWxsO2ZvcihsZXQgbyBvZiB0aGlzLnRyYWNrcyl7bGV0IGc9bmV3IFNldCxCPSExO2ZvcihsZXQgaD0wO2g8by5ldmVudHMubGVuZ3RoO2grKyl7bGV0IEM9by5ldmVudHNbaF07aWYoQy5zdGF0dXNCeXRlPj0xMjgmJkMuc3RhdHVzQnl0ZTwyNDApe0I9ITA7Zm9yKGxldCBtPTA7bTxDLmRhdGEubGVuZ3RoO20rKylDLmRhdGFbbV09TWF0aC5taW4oMTI3LEMuZGF0YVttXSk7c3dpdGNoKEMudGlja3M+dGhpcy5sYXN0Vm9pY2VFdmVudFRpY2smJih0aGlzLmxhc3RWb2ljZUV2ZW50VGljaz1DLnRpY2tzKSxDLnN0YXR1c0J5dGUmMjQwKXtjYXNlIE0uY29udHJvbGxlckNoYW5nZTpzd2l0Y2goQy5kYXRhWzBdKXtjYXNlIDI6Y2FzZSAxMTY6bj1DLnRpY2tzO2JyZWFrO2Nhc2UgNDpjYXNlIDExNzpzPT09bnVsbD9zPUMudGlja3M6cz0wO2JyZWFrO2Nhc2UgMDp0aGlzLmlzRExTUk1JREkmJkMuZGF0YVsxXSE9PTAmJkMuZGF0YVsxXSE9PTEyNyYmKHAoIiVjRExTIFJNSURJIHdpdGggb2Zmc2V0IDEgZGV0ZWN0ZWQhIixjLnJlY29nbml6ZWQpLHRoaXMuYmFua09mZnNldD0xKX1icmVhaztjYXNlIE0ubm90ZU9uOntnLmFkZChDLnN0YXR1c0J5dGUmMTUpO2xldCBtPUMuZGF0YVswXTt0aGlzLmtleVJhbmdlLm1pbj1NYXRoLm1pbih0aGlzLmtleVJhbmdlLm1pbixtKSx0aGlzLmtleVJhbmdlLm1heD1NYXRoLm1heCh0aGlzLmtleVJhbmdlLm1heCxtKTticmVha319fWxldCBRPWVlKEMuZGF0YSk7c3dpdGNoKEMuc3RhdHVzQnl0ZSl7Y2FzZSBNLmVuZE9mVHJhY2s6aCE9PW8uZXZlbnRzLmxlbmd0aC0xJiYoaC0tLG8uZGVsZXRlRXZlbnQoaCksc0EoIlVuZXhwZWN0ZWQgRW5kT2ZUcmFjay4gUmVtb3ZpbmchIikpO2JyZWFrO2Nhc2UgTS5zZXRUZW1wbzp0aGlzLnRlbXBvQ2hhbmdlcy5wdXNoKHt0aWNrczpDLnRpY2tzLHRlbXBvOjZlNy9RdChDLmRhdGEsMyl9KTticmVhaztjYXNlIE0ubWFya2VyOnN3aXRjaChRLnRyaW0oKS50b0xvd2VyQ2FzZSgpKXtkZWZhdWx0OmJyZWFrO2Nhc2Uic3RhcnQiOmNhc2UibG9vcHN0YXJ0IjpuPUMudGlja3M7YnJlYWs7Y2FzZSJsb29wZW5kIjpzPUMudGlja3N9YnJlYWs7Y2FzZSBNLmNvcHlyaWdodDp0aGlzLmV4dHJhTWV0YWRhdGEucHVzaChDKTticmVhaztjYXNlIE0ubHlyaWM6US50cmltKCkuc3RhcnRzV2l0aCgiQEtNSURJIEtBUkFPS0UgRklMRSIpJiYodGhpcy5pc0thcmFva2VGaWxlPSEwLHAoIiVjS2FyYW9rZSBNSURJIGRldGVjdGVkISIsYy5yZWNvZ25pemVkKSksdGhpcy5pc0thcmFva2VGaWxlP0Muc3RhdHVzQnl0ZT1NLnRleHQ6dGhpcy5seXJpY3MucHVzaChDKTtjYXNlIE0udGV4dDp7bGV0IG09US50cmltKCk7bS5zdGFydHNXaXRoKCJAS01JREkgS0FSQU9LRSBGSUxFIik/KHRoaXMuaXNLYXJhb2tlRmlsZT0hMCxwKCIlY0thcmFva2UgTUlESSBkZXRlY3RlZCEiLGMucmVjb2duaXplZCkpOnRoaXMuaXNLYXJhb2tlRmlsZSYmKG0uc3RhcnRzV2l0aCgiQFQiKXx8bS5zdGFydHNXaXRoKCJAQSIpP0E/dGhpcy5leHRyYU1ldGFkYXRhLnB1c2goQyk6KHRoaXMuYmluYXJ5TmFtZT1DLmRhdGEuc2xpY2UoMiksQT0hMCx0PSEwKTptLnN0YXJ0c1dpdGgoIkAiKXx8dGhpcy5seXJpY3MucHVzaChDKSk7YnJlYWt9fX1vLmNoYW5uZWxzPWcsby5uYW1lPSIiO2xldCBkPW8uZXZlbnRzLmZpbmQoaD0+aC5zdGF0dXNCeXRlPT09TS50cmFja05hbWUpO2QmJnRoaXMudHJhY2tzLmluZGV4T2Yobyk+MCYmKG8ubmFtZT1lZShkLmRhdGEpLCFCJiYhby5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoInNldHVwIikmJnRoaXMuZXh0cmFNZXRhZGF0YS5wdXNoKGQpKX10aGlzLnRlbXBvQ2hhbmdlcy5yZXZlcnNlKCkscCgiJWNDb3JyZWN0aW5nIGxvb3BzLCBwb3J0cyBhbmQgZGV0ZWN0aW5nIG5vdGVzLi4uIixjLmluZm8pO2xldCBhPVtdO2ZvcihsZXQgbyBvZiB0aGlzLnRyYWNrcyl7bGV0IGc9by5ldmVudHMuZmluZChCPT4oQi5zdGF0dXNCeXRlJjI0MCk9PT1NLm5vdGVPbik7ZyYmYS5wdXNoKGcudGlja3MpfXRoaXMuZmlyc3ROb3RlT249TWF0aC5taW4oLi4uYSkscChgJWNGaXJzdCBub3RlLW9uIGRldGVjdGVkIGF0OiAlYyR7dGhpcy5maXJzdE5vdGVPbn0lYyB0aWNrcyFgLGMuaW5mbyxjLnJlY29nbml6ZWQsYy5pbmZvKSxuIT09bnVsbCYmcz09PW51bGw/KG49dGhpcy5maXJzdE5vdGVPbixzPXRoaXMubGFzdFZvaWNlRXZlbnRUaWNrKToobj8/PXRoaXMuZmlyc3ROb3RlT24sKHM9PT1udWxsfHxzPT09MCkmJihzPXRoaXMubGFzdFZvaWNlRXZlbnRUaWNrKSksdGhpcy5sb29wPXtzdGFydDpuLGVuZDpzfSxwKGAlY0xvb3AgcG9pbnRzOiBzdGFydDogJWMke3RoaXMubG9vcC5zdGFydH0lYyBlbmQ6ICVjJHt0aGlzLmxvb3AuZW5kfWAsYy5pbmZvLGMucmVjb2duaXplZCxjLmluZm8sYy5yZWNvZ25pemVkKTtsZXQgcj0wO3RoaXMucG9ydENoYW5uZWxPZmZzZXRNYXA9W107Zm9yKGxldCBvIG9mIHRoaXMudHJhY2tzKWlmKG8ucG9ydD0tMSxvLmNoYW5uZWxzLnNpemUhPT0wKWZvcihsZXQgZyBvZiBvLmV2ZW50cyl7aWYoZy5zdGF0dXNCeXRlIT09TS5taWRpUG9ydCljb250aW51ZTtsZXQgQj1nLmRhdGFbMF07by5wb3J0PUIsdGhpcy5wb3J0Q2hhbm5lbE9mZnNldE1hcFtCXT09PXZvaWQgMCYmKHRoaXMucG9ydENoYW5uZWxPZmZzZXRNYXBbQl09cixyKz0xNil9dGhpcy5wb3J0Q2hhbm5lbE9mZnNldE1hcD1bLi4udGhpcy5wb3J0Q2hhbm5lbE9mZnNldE1hcF0ubWFwKG89Pm8/PzApO2xldCBJPTEvMDtmb3IobGV0IG8gb2YgdGhpcy50cmFja3Mpby5wb3J0IT09LTEmJkk+by5wb3J0JiYoST1vLnBvcnQpO0k9PT0xLzAmJihJPTApO2ZvcihsZXQgbyBvZiB0aGlzLnRyYWNrcykoby5wb3J0PT09LTF8fG8ucG9ydD09PXZvaWQgMCkmJihvLnBvcnQ9SSk7aWYodGhpcy5wb3J0Q2hhbm5lbE9mZnNldE1hcC5sZW5ndGg9PT0wJiYodGhpcy5wb3J0Q2hhbm5lbE9mZnNldE1hcD1bMF0pLHRoaXMucG9ydENoYW5uZWxPZmZzZXRNYXAubGVuZ3RoPDI/cCgiJWNObyBhZGRpdGlvbmFsIE1JREkgUG9ydHMgZGV0ZWN0ZWQuIixjLmluZm8pOih0aGlzLmlzTXVsdGlQb3J0PSEwLHAoIiVjTUlESSBQb3J0cyBkZXRlY3RlZCEiLGMucmVjb2duaXplZCkpLCF0KWlmKHRoaXMudHJhY2tzLmxlbmd0aD4xKXtpZih0aGlzLnRyYWNrc1swXS5ldmVudHMuZmluZChvPT5vLnN0YXR1c0J5dGU+PU0ubm90ZU9uJiZvLnN0YXR1c0J5dGU8TS5wb2x5UHJlc3N1cmUpPT09dm9pZCAwKXtsZXQgbz10aGlzLnRyYWNrc1swXS5ldmVudHMuZmluZChnPT5nLnN0YXR1c0J5dGU9PT1NLnRyYWNrTmFtZSk7byYmKHRoaXMuYmluYXJ5TmFtZT1vLmRhdGEpfX1lbHNle2xldCBvPXRoaXMudHJhY2tzWzBdLmV2ZW50cy5maW5kKGc9Pmcuc3RhdHVzQnl0ZT09PU0udHJhY2tOYW1lKTtvJiYodGhpcy5iaW5hcnlOYW1lPW8uZGF0YSl9aWYodGhpcy5leHRyYU1ldGFkYXRhPXRoaXMuZXh0cmFNZXRhZGF0YS5maWx0ZXIobz0+by5kYXRhLmxlbmd0aD4wKSx0aGlzLmx5cmljcy5zb3J0KChvLGcpPT5vLnRpY2tzLWcudGlja3MpLCF0aGlzLnRyYWNrcy5zb21lKG89Pm8uZXZlbnRzWzBdLnRpY2tzPT09MCkpe2xldCBvPXRoaXMudHJhY2tzWzBdLGc9dGhpcz8uYmluYXJ5TmFtZT8uYnVmZmVyO2d8fChnPW5ldyBVaW50OEFycmF5KDApLmJ1ZmZlciksby5ldmVudHMudW5zaGlmdChuZXcgWkEoMCxNLnRyYWNrTmFtZSxuZXcgWShnKSkpfXRoaXMuZHVyYXRpb249dGhpcy5taWRpVGlja3NUb1NlY29uZHModGhpcy5sYXN0Vm9pY2VFdmVudFRpY2spLHRoaXMuYmluYXJ5TmFtZSYmdGhpcy5iaW5hcnlOYW1lLmxlbmd0aDwxJiYodGhpcy5iaW5hcnlOYW1lPXZvaWQgMCkscCgiJWNTdWNjZXNzISIsYy5yZWNvZ25pemVkKSxaKCl9fTtmdW5jdGlvbiBsbyhlLEEpe2lmKHRoaXMuZXh0ZXJuYWxNSURJUGxheWJhY2smJmUuc3RhdHVzQnl0ZT49MTI4KXt0aGlzLnNlbmRNSURJTWVzc2FnZShbZS5zdGF0dXNCeXRlLC4uLmUuZGF0YV0pO3JldHVybn1sZXQgdD10aGlzLl9taWRpRGF0YS50cmFja3NbQV0sbj1BcyhlLnN0YXR1c0J5dGUpLHM9dGhpcy5taWRpUG9ydENoYW5uZWxPZmZzZXRzW3RoaXMuY3VycmVudE1JRElQb3J0c1tBXV18fDA7c3dpdGNoKG4uY2hhbm5lbCs9cyxuLnN0YXR1cyl7Y2FzZSBNLm5vdGVPbjp7bGV0IGE9ZS5kYXRhWzFdO2lmKGE+MCl0aGlzLnN5bnRoLm5vdGVPbihuLmNoYW5uZWwsZS5kYXRhWzBdLGEpLHRoaXMucGxheWluZ05vdGVzLnB1c2goe21pZGlOb3RlOmUuZGF0YVswXSxjaGFubmVsOm4uY2hhbm5lbCx2ZWxvY2l0eTphfSk7ZWxzZXt0aGlzLnN5bnRoLm5vdGVPZmYobi5jaGFubmVsLGUuZGF0YVswXSk7bGV0IHI9dGhpcy5wbGF5aW5nTm90ZXMuZmluZEluZGV4KEk9PkkubWlkaU5vdGU9PT1lLmRhdGFbMF0mJkkuY2hhbm5lbD09PW4uY2hhbm5lbCk7ciE9PS0xJiZ0aGlzLnBsYXlpbmdOb3Rlcy5zcGxpY2UociwxKX1icmVha31jYXNlIE0ubm90ZU9mZjp7dGhpcy5zeW50aC5ub3RlT2ZmKG4uY2hhbm5lbCxlLmRhdGFbMF0pO2xldCBhPXRoaXMucGxheWluZ05vdGVzLmZpbmRJbmRleChyPT5yLm1pZGlOb3RlPT09ZS5kYXRhWzBdJiZyLmNoYW5uZWw9PT1uLmNoYW5uZWwpO2EhPT0tMSYmdGhpcy5wbGF5aW5nTm90ZXMuc3BsaWNlKGEsMSk7YnJlYWt9Y2FzZSBNLnBpdGNoV2hlZWw6dGhpcy5zeW50aC5waXRjaFdoZWVsKG4uY2hhbm5lbCxlLmRhdGFbMV08PDd8ZS5kYXRhWzBdKTticmVhaztjYXNlIE0uY29udHJvbGxlckNoYW5nZTppZih0aGlzLl9taWRpRGF0YS5pc011bHRpUG9ydCYmdC5jaGFubmVscy5zaXplPT09MClyZXR1cm47dGhpcy5zeW50aC5jb250cm9sbGVyQ2hhbmdlKG4uY2hhbm5lbCxlLmRhdGFbMF0sZS5kYXRhWzFdKTticmVhaztjYXNlIE0ucHJvZ3JhbUNoYW5nZTppZih0aGlzLl9taWRpRGF0YS5pc011bHRpUG9ydCYmdC5jaGFubmVscy5zaXplPT09MClyZXR1cm47dGhpcy5zeW50aC5wcm9ncmFtQ2hhbmdlKG4uY2hhbm5lbCxlLmRhdGFbMF0pO2JyZWFrO2Nhc2UgTS5wb2x5UHJlc3N1cmU6dGhpcy5zeW50aC5wb2x5UHJlc3N1cmUobi5jaGFubmVsLGUuZGF0YVswXSxlLmRhdGFbMV0pO2JyZWFrO2Nhc2UgTS5jaGFubmVsUHJlc3N1cmU6dGhpcy5zeW50aC5jaGFubmVsUHJlc3N1cmUobi5jaGFubmVsLGUuZGF0YVswXSk7YnJlYWs7Y2FzZSBNLnN5c3RlbUV4Y2x1c2l2ZTp0aGlzLnN5bnRoLnN5c3RlbUV4Y2x1c2l2ZShlLmRhdGEscyk7YnJlYWs7Y2FzZSBNLnNldFRlbXBvOntsZXQgYT02ZTcvUXQoZS5kYXRhLDMpO3RoaXMub25lVGlja1RvU2Vjb25kcz02MC8oYSp0aGlzLl9taWRpRGF0YS50aW1lRGl2aXNpb24pLHRoaXMub25lVGlja1RvU2Vjb25kcz09PTAmJih0aGlzLm9uZVRpY2tUb1NlY29uZHM9NjAvKDEyMCp0aGlzLl9taWRpRGF0YS50aW1lRGl2aXNpb24pLHAoImludmFsaWQgdGVtcG8hIGZhbGxpbmcgYmFjayB0byAxMjAgQlBNIiksYT0xMjApO2JyZWFrfWNhc2UgTS50aW1lU2lnbmF0dXJlOmNhc2UgTS5lbmRPZlRyYWNrOmNhc2UgTS5taWRpQ2hhbm5lbFByZWZpeDpjYXNlIE0uc29uZ1Bvc2l0aW9uOmNhc2UgTS5hY3RpdmVTZW5zaW5nOmNhc2UgTS5rZXlTaWduYXR1cmU6Y2FzZSBNLnNlcXVlbmNlTnVtYmVyOmNhc2UgTS5zZXF1ZW5jZVNwZWNpZmljOmNhc2UgTS50ZXh0OmNhc2UgTS5seXJpYzpjYXNlIE0uY29weXJpZ2h0OmNhc2UgTS50cmFja05hbWU6Y2FzZSBNLm1hcmtlcjpjYXNlIE0uY3VlUG9pbnQ6Y2FzZSBNLmluc3RydW1lbnROYW1lOmNhc2UgTS5wcm9ncmFtTmFtZTpicmVhaztjYXNlIE0ubWlkaVBvcnQ6dGhpcy5hc3NpZ25NSURJUG9ydChBLGUuZGF0YVswXSk7YnJlYWs7Y2FzZSBNLnJlc2V0OnRoaXMuc3ludGguc3RvcEFsbENoYW5uZWxzKCksdGhpcy5zeW50aC5yZXNldEFsbENvbnRyb2xsZXJzKCk7YnJlYWs7ZGVmYXVsdDpwKGAlY1VucmVjb2duaXplZCBFdmVudDogJWMke2Uuc3RhdHVzQnl0ZX0lYyBzdGF0dXMgYnl0ZTogJWMke09iamVjdC5rZXlzKE0pLmZpbmQoYT0+TVthXT09PW4uc3RhdHVzKX1gLGMud2FybixjLnVucmVjb2duaXplZCxjLndhcm4sYy52YWx1ZSk7YnJlYWt9bi5zdGF0dXM+PTAmJm4uc3RhdHVzPDEyOCYmdGhpcy5jYWxsRXZlbnQoIm1ldGFFdmVudCIse2V2ZW50OmUsdHJhY2tJbmRleDpBfSl9ZnVuY3Rpb24gUW8oKXtpZih0aGlzLnBhdXNlZHx8IXRoaXMuX21pZGlEYXRhKXJldHVybjtsZXQgZT10aGlzLmN1cnJlbnRUaW1lO2Zvcig7dGhpcy5wbGF5ZWRUaW1lPGU7KXtsZXQgQT10aGlzLmZpbmRGaXJzdEV2ZW50SW5kZXgoKSxuPXRoaXMuX21pZGlEYXRhLnRyYWNrc1tBXS5ldmVudHNbdGhpcy5ldmVudEluZGV4ZXNbQV0rK107dGhpcy5wcm9jZXNzRXZlbnQobixBKTtsZXQgcz10aGlzLmZpbmRGaXJzdEV2ZW50SW5kZXgoKSxhPXRoaXMuX21pZGlEYXRhLnRyYWNrc1tzXTtpZih0aGlzLmxvb3BDb3VudD4wJiZ0aGlzLl9taWRpRGF0YS5sb29wLmVuZDw9bi50aWNrcyl7dGhpcy5sb29wQ291bnQhPT0xLzAmJih0aGlzLmxvb3BDb3VudC0tLHRoaXMuY2FsbEV2ZW50KCJsb29wQ291bnRDaGFuZ2UiLHtuZXdDb3VudDp0aGlzLmxvb3BDb3VudH0pKSx0aGlzLnNldFRpbWVUaWNrcyh0aGlzLl9taWRpRGF0YS5sb29wLnN0YXJ0KTtyZXR1cm59aWYoYS5ldmVudHMubGVuZ3RoPD10aGlzLmV2ZW50SW5kZXhlc1tzXSl7dGhpcy5zb25nSXNGaW5pc2hlZCgpO3JldHVybn1sZXQgcj1hLmV2ZW50c1t0aGlzLmV2ZW50SW5kZXhlc1tzXV07dGhpcy5wbGF5ZWRUaW1lKz10aGlzLm9uZVRpY2tUb1NlY29uZHMqKHIudGlja3Mtbi50aWNrcyl9fWZ1bmN0aW9uIHVvKGUsQSl7dGhpcy5fbWlkaURhdGEudHJhY2tzW2VdLmNoYW5uZWxzLnNpemUhPT0wJiYodGhpcy5taWRpUG9ydENoYW5uZWxPZmZzZXQ9PT0wJiYodGhpcy5taWRpUG9ydENoYW5uZWxPZmZzZXQrPTE2LHRoaXMubWlkaVBvcnRDaGFubmVsT2Zmc2V0c1tBXT0wKSx0aGlzLm1pZGlQb3J0Q2hhbm5lbE9mZnNldHNbQV09PT12b2lkIDAmJih0aGlzLnN5bnRoLm1pZGlDaGFubmVscy5sZW5ndGg8dGhpcy5taWRpUG9ydENoYW5uZWxPZmZzZXQrMTUmJnRoaXMuYWRkTmV3TUlESVBvcnQoKSx0aGlzLm1pZGlQb3J0Q2hhbm5lbE9mZnNldHNbQV09dGhpcy5taWRpUG9ydENoYW5uZWxPZmZzZXQsdGhpcy5taWRpUG9ydENoYW5uZWxPZmZzZXQrPTE2KSx0aGlzLmN1cnJlbnRNSURJUG9ydHNbZV09QSl9ZnVuY3Rpb24gZm8oZSl7aWYoIWUudHJhY2tzKXRocm93IG5ldyBFcnJvcigiVGhpcyBNSURJIGhhcyBubyB0cmFja3MhIik7dGhpcy5vbmVUaWNrVG9TZWNvbmRzPTYwLygxMjAqZS50aW1lRGl2aXNpb24pLHRoaXMuX21pZGlEYXRhPWUsdGhpcy5zeW50aC5jbGVhckVtYmVkZGVkQmFuaygpLHRoaXMuX21pZGlEYXRhLmVtYmVkZGVkU291bmRCYW5rIT09dm9pZCAwJiYocCgiJWNFbWJlZGRlZCBzb3VuZGJhbmsgZGV0ZWN0ZWQhIFVzaW5nIGl0LiIsYy5yZWNvZ25pemVkKSx0aGlzLnN5bnRoLnNldEVtYmVkZGVkU291bmRCYW5rKHRoaXMuX21pZGlEYXRhLmVtYmVkZGVkU291bmRCYW5rLHRoaXMuX21pZGlEYXRhLmJhbmtPZmZzZXQpKSxiQSgiJWNQcmVsb2FkaW5nIHNhbXBsZXMuLi4iLGMuaW5mbyksdGhpcy5fbWlkaURhdGEuZ2V0VXNlZFByb2dyYW1zQW5kS2V5cyh0aGlzLnN5bnRoLnNvdW5kQmFua01hbmFnZXIpLmZvckVhY2goKHQsbik9PntwKGAlY1ByZWxvYWRpbmcgdXNlZCBzYW1wbGVzIG9uICVjJHtuLm5hbWV9JWMuLi5gLGMuaW5mbyxjLnJlY29nbml6ZWQsYy5pbmZvKTtmb3IobGV0IHMgb2YgdCl7bGV0W2Escl09cy5zcGxpdCgiLSIpLm1hcChOdW1iZXIpO3RoaXMuc3ludGguZ2V0Vm9pY2VzRm9yUHJlc2V0KG4sYSxyLGEpfX0pLFooKSx0aGlzLmN1cnJlbnRNSURJUG9ydHM9dGhpcy5fbWlkaURhdGEudHJhY2tzLm1hcCh0PT50LnBvcnQpLHRoaXMubWlkaVBvcnRDaGFubmVsT2Zmc2V0PTAsdGhpcy5taWRpUG9ydENoYW5uZWxPZmZzZXRzPXt9LHRoaXMuX21pZGlEYXRhLnRyYWNrcy5mb3JFYWNoKCh0LG4pPT57dGhpcy5hc3NpZ25NSURJUG9ydChuLHQucG9ydCl9KSx0aGlzLmZpcnN0Tm90ZVRpbWU9dGhpcy5fbWlkaURhdGEubWlkaVRpY2tzVG9TZWNvbmRzKHRoaXMuX21pZGlEYXRhLmZpcnN0Tm90ZU9uKSxwKGAlY1RvdGFsIHNvbmcgdGltZTogJHtmcyhNYXRoLmNlaWwodGhpcy5fbWlkaURhdGEuZHVyYXRpb24pKS50aW1lfWAsYy5yZWNvZ25pemVkKSx0aGlzLmNhbGxFdmVudCgic29uZ0NoYW5nZSIse3NvbmdJbmRleDp0aGlzLl9zb25nSW5kZXh9KSx0aGlzLl9taWRpRGF0YS5kdXJhdGlvbjw9LjImJihzQShgJWNWZXJ5IHNob3J0IHNvbmc6ICgke2ZzKE1hdGgucm91bmQodGhpcy5fbWlkaURhdGEuZHVyYXRpb24pKS50aW1lfSkuIERpc2FibGluZyBsb29wIWAsYy53YXJuKSx0aGlzLmxvb3BDb3VudD0wKSx0aGlzLmN1cnJlbnRUaW1lPTB9dmFyIGk9e0lOVkFMSUQ6LTEsc3RhcnRBZGRyc09mZnNldDowLGVuZEFkZHJPZmZzZXQ6MSxzdGFydGxvb3BBZGRyc09mZnNldDoyLGVuZGxvb3BBZGRyc09mZnNldDozLHN0YXJ0QWRkcnNDb2Fyc2VPZmZzZXQ6NCxtb2RMZm9Ub1BpdGNoOjUsdmliTGZvVG9QaXRjaDo2LG1vZEVudlRvUGl0Y2g6Nyxpbml0aWFsRmlsdGVyRmM6OCxpbml0aWFsRmlsdGVyUTo5LG1vZExmb1RvRmlsdGVyRmM6MTAsbW9kRW52VG9GaWx0ZXJGYzoxMSxlbmRBZGRyc0NvYXJzZU9mZnNldDoxMixtb2RMZm9Ub1ZvbHVtZToxMyx1bnVzZWQxOjE0LGNob3J1c0VmZmVjdHNTZW5kOjE1LHJldmVyYkVmZmVjdHNTZW5kOjE2LHBhbjoxNyx1bnVzZWQyOjE4LHVudXNlZDM6MTksdW51c2VkNDoyMCxkZWxheU1vZExGTzoyMSxmcmVxTW9kTEZPOjIyLGRlbGF5VmliTEZPOjIzLGZyZXFWaWJMRk86MjQsZGVsYXlNb2RFbnY6MjUsYXR0YWNrTW9kRW52OjI2LGhvbGRNb2RFbnY6MjcsZGVjYXlNb2RFbnY6Mjgsc3VzdGFpbk1vZEVudjoyOSxyZWxlYXNlTW9kRW52OjMwLGtleU51bVRvTW9kRW52SG9sZDozMSxrZXlOdW1Ub01vZEVudkRlY2F5OjMyLGRlbGF5Vm9sRW52OjMzLGF0dGFja1ZvbEVudjozNCxob2xkVm9sRW52OjM1LGRlY2F5Vm9sRW52OjM2LHN1c3RhaW5Wb2xFbnY6MzcscmVsZWFzZVZvbEVudjozOCxrZXlOdW1Ub1ZvbEVudkhvbGQ6Mzksa2V5TnVtVG9Wb2xFbnZEZWNheTo0MCxpbnN0cnVtZW50OjQxLHJlc2VydmVkMTo0MixrZXlSYW5nZTo0Myx2ZWxSYW5nZTo0NCxzdGFydGxvb3BBZGRyc0NvYXJzZU9mZnNldDo0NSxrZXlOdW06NDYsdmVsb2NpdHk6NDcsaW5pdGlhbEF0dGVudWF0aW9uOjQ4LHJlc2VydmVkMjo0OSxlbmRsb29wQWRkcnNDb2Fyc2VPZmZzZXQ6NTAsY29hcnNlVHVuZTo1MSxmaW5lVHVuZTo1MixzYW1wbGVJRDo1MyxzYW1wbGVNb2Rlczo1NCxyZXNlcnZlZDM6NTUsc2NhbGVUdW5pbmc6NTYsZXhjbHVzaXZlQ2xhc3M6NTcsb3ZlcnJpZGluZ1Jvb3RLZXk6NTgsdW51c2VkNTo1OSxlbmRPcGVyOjYwLHZpYkxmb1RvVm9sdW1lOjYxLHZpYkxmb1RvRmlsdGVyRmM6NjJ9LE1uPU9iamVjdC5rZXlzKGkpLmxlbmd0aCxtbz1NYXRoLm1heCguLi5PYmplY3QudmFsdWVzKGkpKSx4PVtdO3hbaS5zdGFydEFkZHJzT2Zmc2V0XT17bWluOjAsbWF4OjMyNzY4LGRlZjowLG5ycG46MX07eFtpLmVuZEFkZHJPZmZzZXRdPXttaW46LTMyNzY4LG1heDozMjc2OCxkZWY6MCxucnBuOjF9O3hbaS5zdGFydGxvb3BBZGRyc09mZnNldF09e21pbjotMzI3NjgsbWF4OjMyNzY4LGRlZjowLG5ycG46MX07eFtpLmVuZGxvb3BBZGRyc09mZnNldF09e21pbjotMzI3NjgsbWF4OjMyNzY4LGRlZjowLG5ycG46MX07eFtpLnN0YXJ0QWRkcnNDb2Fyc2VPZmZzZXRdPXttaW46MCxtYXg6MzI3NjgsZGVmOjAsbnJwbjoxfTt4W2kubW9kTGZvVG9QaXRjaF09e21pbjotMTJlMyxtYXg6MTJlMyxkZWY6MCxucnBuOjJ9O3hbaS52aWJMZm9Ub1BpdGNoXT17bWluOi0xMmUzLG1heDoxMmUzLGRlZjowLG5ycG46Mn07eFtpLm1vZEVudlRvUGl0Y2hdPXttaW46LTEyZTMsbWF4OjEyZTMsZGVmOjAsbnJwbjoyfTt4W2kuaW5pdGlhbEZpbHRlckZjXT17bWluOjE1MDAsbWF4OjEzNTAwLGRlZjoxMzUwMCxucnBuOjJ9O3hbaS5pbml0aWFsRmlsdGVyUV09e21pbjowLG1heDo5NjAsZGVmOjAsbnJwbjoxfTt4W2kubW9kTGZvVG9GaWx0ZXJGY109e21pbjotMTJlMyxtYXg6MTJlMyxkZWY6MCxucnBuOjJ9O3hbaS52aWJMZm9Ub0ZpbHRlckZjXT17bWluOi0xMmUzLG1heDoxMmUzLGRlZjowLG5ycG46Mn07eFtpLm1vZEVudlRvRmlsdGVyRmNdPXttaW46LTEyZTMsbWF4OjEyZTMsZGVmOjAsbnJwbjoyfTt4W2kuZW5kQWRkcnNDb2Fyc2VPZmZzZXRdPXttaW46LTMyNzY4LG1heDozMjc2OCxkZWY6MCxucnBuOjF9O3hbaS5tb2RMZm9Ub1ZvbHVtZV09e21pbjotOTYwLG1heDo5NjAsZGVmOjAsbnJwbjoxfTt4W2kudmliTGZvVG9Wb2x1bWVdPXttaW46LTk2MCxtYXg6OTYwLGRlZjowLG5ycG46MX07eFtpLmNob3J1c0VmZmVjdHNTZW5kXT17bWluOjAsbWF4OjFlMyxkZWY6MCxucnBuOjF9O3hbaS5yZXZlcmJFZmZlY3RzU2VuZF09e21pbjowLG1heDoxZTMsZGVmOjAsbnJwbjoxfTt4W2kucGFuXT17bWluOi01MDAsbWF4OjUwMCxkZWY6MCxucnBuOjF9O3hbaS5kZWxheU1vZExGT109e21pbjotMTJlMyxtYXg6NWUzLGRlZjotMTJlMyxucnBuOjJ9O3hbaS5mcmVxTW9kTEZPXT17bWluOi0xNmUzLG1heDo0NTAwLGRlZjowLG5ycG46NH07eFtpLmRlbGF5VmliTEZPXT17bWluOi0xMmUzLG1heDo1ZTMsZGVmOi0xMmUzLG5ycG46Mn07eFtpLmZyZXFWaWJMRk9dPXttaW46LTE2ZTMsbWF4OjQ1MDAsZGVmOjAsbnJwbjo0fTt4W2kuZGVsYXlNb2RFbnZdPXttaW46LTMyNzY4LG1heDo1ZTMsZGVmOi0zMjc2OCxucnBuOjJ9O3hbaS5hdHRhY2tNb2RFbnZdPXttaW46LTMyNzY4LG1heDo4ZTMsZGVmOi0zMjc2OCxucnBuOjJ9O3hbaS5ob2xkTW9kRW52XT17bWluOi0xMmUzLG1heDo1ZTMsZGVmOi0xMmUzLG5ycG46Mn07eFtpLmRlY2F5TW9kRW52XT17bWluOi0xMmUzLG1heDo4ZTMsZGVmOi0xMmUzLG5ycG46Mn07eFtpLnN1c3RhaW5Nb2RFbnZdPXttaW46MCxtYXg6MWUzLGRlZjowLG5ycG46MX07eFtpLnJlbGVhc2VNb2RFbnZdPXttaW46LTEyZTMsbWF4OjhlMyxkZWY6LTEyZTMsbnJwbjoyfTt4W2kua2V5TnVtVG9Nb2RFbnZIb2xkXT17bWluOi0xMjAwLG1heDoxMjAwLGRlZjowLG5ycG46MX07eFtpLmtleU51bVRvTW9kRW52RGVjYXldPXttaW46LTEyMDAsbWF4OjEyMDAsZGVmOjAsbnJwbjoxfTt4W2kuZGVsYXlWb2xFbnZdPXttaW46LTEyZTMsbWF4OjVlMyxkZWY6LTEyZTMsbnJwbjoyfTt4W2kuYXR0YWNrVm9sRW52XT17bWluOi0xMmUzLG1heDo4ZTMsZGVmOi0xMmUzLG5ycG46Mn07eFtpLmhvbGRWb2xFbnZdPXttaW46LTEyZTMsbWF4OjVlMyxkZWY6LTEyZTMsbnJwbjoyfTt4W2kuZGVjYXlWb2xFbnZdPXttaW46LTEyZTMsbWF4OjhlMyxkZWY6LTEyZTMsbnJwbjoyfTt4W2kuc3VzdGFpblZvbEVudl09e21pbjowLG1heDoxNDQwLGRlZjowLG5ycG46MX07eFtpLnJlbGVhc2VWb2xFbnZdPXttaW46LTEyZTMsbWF4OjhlMyxkZWY6LTEyZTMsbnJwbjoyfTt4W2kua2V5TnVtVG9Wb2xFbnZIb2xkXT17bWluOi0xMjAwLG1heDoxMjAwLGRlZjowLG5ycG46MX07eFtpLmtleU51bVRvVm9sRW52RGVjYXldPXttaW46LTEyMDAsbWF4OjEyMDAsZGVmOjAsbnJwbjoxfTt4W2kuc3RhcnRsb29wQWRkcnNDb2Fyc2VPZmZzZXRdPXttaW46LTMyNzY4LG1heDozMjc2OCxkZWY6MCxucnBuOjF9O3hbaS5rZXlOdW1dPXttaW46LTEsbWF4OjEyNyxkZWY6LTEsbnJwbjoxfTt4W2kudmVsb2NpdHldPXttaW46LTEsbWF4OjEyNyxkZWY6LTEsbnJwbjoxfTt4W2kuaW5pdGlhbEF0dGVudWF0aW9uXT17bWluOjAsbWF4OjE0NDAsZGVmOjAsbnJwbjoxfTt4W2kuZW5kbG9vcEFkZHJzQ29hcnNlT2Zmc2V0XT17bWluOi0zMjc2OCxtYXg6MzI3NjgsZGVmOjAsbnJwbjoxfTt4W2kuY29hcnNlVHVuZV09e21pbjotMTIwLG1heDoxMjAsZGVmOjAsbnJwbjoxfTt4W2kuZmluZVR1bmVdPXttaW46LTEyNzAwLG1heDoxMjcwMCxkZWY6MCxucnBuOjF9O3hbaS5zY2FsZVR1bmluZ109e21pbjowLG1heDoxMjAwLGRlZjoxMDAsbnJwbjoxfTt4W2kuZXhjbHVzaXZlQ2xhc3NdPXttaW46MCxtYXg6OTk5OTksZGVmOjAsbnJwbjowfTt4W2kub3ZlcnJpZGluZ1Jvb3RLZXldPXttaW46LTEsbWF4OjEyNyxkZWY6LTEsbnJwbjowfTt4W2kuc2FtcGxlTW9kZXNdPXttaW46MCxtYXg6MyxkZWY6MCxucnBuOjB9O3ZhciB3QT17bW9ub1NhbXBsZToxLHJpZ2h0U2FtcGxlOjIsbGVmdFNhbXBsZTo0LGxpbmtlZFNhbXBsZTo4LHJvbU1vbm9TYW1wbGU6MzI3Njkscm9tUmlnaHRTYW1wbGU6MzI3NzAscm9tTGVmdFNhbXBsZTozMjc3Mixyb21MaW5rZWRTYW1wbGU6MzI3NzZ9LGo9e25vQ29udHJvbGxlcjowLG5vdGVPblZlbG9jaXR5OjIsbm90ZU9uS2V5TnVtOjMscG9seVByZXNzdXJlOjEwLGNoYW5uZWxQcmVzc3VyZToxMyxwaXRjaFdoZWVsOjE0LHBpdGNoV2hlZWxSYW5nZToxNixsaW5rOjEyN30sUUE9e2xpbmVhcjowLGNvbmNhdmU6MSxjb252ZXg6Mixzd2l0Y2g6M307dmFyIFQ9e25vbmU6MCxtb2RMZm86MSx2ZWxvY2l0eToyLGtleU51bTozLHZvbEVudjo0LG1vZEVudjo1LHBpdGNoV2hlZWw6Nixwb2x5UHJlc3N1cmU6NyxjaGFubmVsUHJlc3N1cmU6OCx2aWJyYXRvTGZvOjksbW9kdWxhdGlvbldoZWVsOjEyOSx2b2x1bWU6MTM1LHBhbjoxMzgsZXhwcmVzc2lvbjoxMzksY2hvcnVzOjIyMSxyZXZlcmI6MjE5LHBpdGNoV2hlZWxSYW5nZToyNTYsZmluZVR1bmU6MjU3LGNvYXJzZVR1bmU6MjU4fSxSPXtub25lOjAsZ2FpbjoxLHJlc2VydmVkOjIscGl0Y2g6MyxwYW46NCxrZXlOdW06NSxjaG9ydXNTZW5kOjEyOCxyZXZlcmJTZW5kOjEyOSxtb2RMZm9GcmVxOjI2MCxtb2RMZm9EZWxheToyNjEsdmliTGZvRnJlcToyNzYsdmliTGZvRGVsYXk6Mjc3LHZvbEVudkF0dGFjazo1MTgsdm9sRW52RGVjYXk6NTE5LHJlc2VydmVkRUcxOjUyMCx2b2xFbnZSZWxlYXNlOjUyMSx2b2xFbnZTdXN0YWluOjUyMix2b2xFbnZEZWxheTo1MjMsdm9sRW52SG9sZDo1MjQsbW9kRW52QXR0YWNrOjc3OCxtb2RFbnZEZWNheTo3NzkscmVzZXJ2ZWRFRzI6NzgwLG1vZEVudlJlbGVhc2U6NzgxLG1vZEVudlN1c3RhaW46NzgyLG1vZEVudkRlbGF5Ojc4Myxtb2RFbnZIb2xkOjc4NCxmaWx0ZXJDdXRvZmY6MTI4MCxmaWx0ZXJROjEyODF9LHlzPXtmb3J3YXJkOjAsbG9vcEFuZFJlbGVhc2U6MX0sbUE9MTI4LGJuPTE0NyxXZT1uZXcgSW50MTZBcnJheShibikuZmlsbCgwKSxTQT0oZSxBKT0+V2VbZV09QTw8NztTQShTLm1haW5Wb2x1bWUsMTAwKTtTQShTLmJhbGFuY2UsNjQpO1NBKFMuZXhwcmVzc2lvbkNvbnRyb2xsZXIsMTI3KTtTQShTLnBhbiw2NCk7U0EoUy5wb3J0YW1lbnRvT25PZmYsMTI3KTtTQShTLmZpbHRlclJlc29uYW5jZSw2NCk7U0EoUy5yZWxlYXNlVGltZSw2NCk7U0EoUy5hdHRhY2tUaW1lLDY0KTtTQShTLmJyaWdodG5lc3MsNjQpO1NBKFMuZGVjYXlUaW1lLDY0KTtTQShTLnZpYnJhdG9SYXRlLDY0KTtTQShTLnZpYnJhdG9EZXB0aCw2NCk7U0EoUy52aWJyYXRvRGVsYXksNjQpO1NBKFMuZ2VuZXJhbFB1cnBvc2VDb250cm9sbGVyNiw2NCk7U0EoUy5nZW5lcmFsUHVycG9zZUNvbnRyb2xsZXI4LDY0KTtTQShTLnJlZ2lzdGVyZWRQYXJhbWV0ZXJMU0IsMTI3KTtTQShTLnJlZ2lzdGVyZWRQYXJhbWV0ZXJNU0IsMTI3KTtTQShTLm5vblJlZ2lzdGVyZWRQYXJhbWV0ZXJMU0IsMTI3KTtTQShTLm5vblJlZ2lzdGVyZWRQYXJhbWV0ZXJNU0IsMTI3KTt2YXIgbnM9MTtXZVtTLnBvcnRhbWVudG9Db250cm9sXT1ucztTQShtQStqLnBpdGNoV2hlZWwsNjQpO1NBKG1BK2oucGl0Y2hXaGVlbFJhbmdlLDIpO3ZhciBlYT1PYmplY3Qua2V5cyhJQSkubGVuZ3RoLHRhPW5ldyBGbG9hdDMyQXJyYXkoZWEpO3RhW0lBLm1vZHVsYXRpb25NdWx0aXBsaWVyXT0xO2Z1bmN0aW9uIFNvKGU9ITApe2lmKGUmJnAoIiVjUmVzZXR0aW5nIGFsbCBjb250cm9sbGVycyEiLGMuaW5mbyksdGhpcy5wcml2YXRlUHJvcHMuY2FsbEV2ZW50KCJhbGxDb250cm9sbGVyUmVzZXQiLHZvaWQgMCksdGhpcy5zZXRNYXN0ZXJQYXJhbWV0ZXIoIm1pZGlTeXN0ZW0iLE9zKSwhKCF0aGlzLnByaXZhdGVQcm9wcy5kcnVtUHJlc2V0fHwhdGhpcy5wcml2YXRlUHJvcHMuZGVmYXVsdFByZXNldCkpe2ZvcihsZXQgQT0wO0E8dGhpcy5taWRpQ2hhbm5lbHMubGVuZ3RoO0ErKyl7bGV0IHQ9dGhpcy5taWRpQ2hhbm5lbHNbQV07dC5yZXNldENvbnRyb2xsZXJzKCExKSx0LnJlc2V0UHJlc2V0KCk7Zm9yKGxldCBuPTA7bjwxMjg7bisrKXRoaXMubWlkaUNoYW5uZWxzW0FdLmxvY2tlZENvbnRyb2xsZXJzW25dJiZ0aGlzLnByaXZhdGVQcm9wcy5jYWxsRXZlbnQoImNvbnRyb2xsZXJDaGFuZ2UiLHtjaGFubmVsOkEsY29udHJvbGxlck51bWJlcjpuLGNvbnRyb2xsZXJWYWx1ZTp0aGlzLm1pZGlDaGFubmVsc1tBXS5taWRpQ29udHJvbGxlcnNbbl0+Pjd9KTtpZighdGhpcy5taWRpQ2hhbm5lbHNbQV0ubG9ja2VkQ29udHJvbGxlcnNbbUErai5waXRjaFdoZWVsXSl7bGV0IG49dGhpcy5taWRpQ2hhbm5lbHNbQV0ubWlkaUNvbnRyb2xsZXJzW21BK2oucGl0Y2hXaGVlbF07dGhpcy5wcml2YXRlUHJvcHMuY2FsbEV2ZW50KCJwaXRjaFdoZWVsIix7Y2hhbm5lbDpBLHBpdGNoOm59KX1pZighdGhpcy5taWRpQ2hhbm5lbHNbQV0ubG9ja2VkQ29udHJvbGxlcnNbbUErai5jaGFubmVsUHJlc3N1cmVdKXtsZXQgbj10aGlzLm1pZGlDaGFubmVsc1tBXS5taWRpQ29udHJvbGxlcnNbbUErai5jaGFubmVsUHJlc3N1cmVdPj43O3RoaXMucHJpdmF0ZVByb3BzLmNhbGxFdmVudCgiY2hhbm5lbFByZXNzdXJlIix7Y2hhbm5lbDpBLHByZXNzdXJlOm59KX19dGhpcy5wcml2YXRlUHJvcHMudHVuaW5ncy5sZW5ndGg9MCx0aGlzLnByaXZhdGVQcm9wcy50dW5pbmdzLmxlbmd0aD0wO2ZvcihsZXQgQT0wO0E8MTI4O0ErKyl0aGlzLnByaXZhdGVQcm9wcy50dW5pbmdzLnB1c2goW10pO3RoaXMuc2V0TUlESVZvbHVtZSgxKX19ZnVuY3Rpb24gcG8oZT0hMCl7dGhpcy5jaGFubmVsT2N0YXZlVHVuaW5nLmZpbGwoMCk7Zm9yKGxldCB0PTA7dDxXZS5sZW5ndGg7dCsrKXtpZih0aGlzLmxvY2tlZENvbnRyb2xsZXJzW3RdKWNvbnRpbnVlO2xldCBuPVdlW3RdO3RoaXMubWlkaUNvbnRyb2xsZXJzW3RdIT09biYmdDwxMjc/dD09PVMucG9ydGFtZW50b0NvbnRyb2w/dGhpcy5taWRpQ29udHJvbGxlcnNbdF09bnM6dCE9PVMucG9ydGFtZW50b0NvbnRyb2wmJnQhPT1TLmRhdGFFbnRyeU1TQiYmdCE9PVMucmVnaXN0ZXJlZFBhcmFtZXRlck1TQiYmdCE9PVMucmVnaXN0ZXJlZFBhcmFtZXRlckxTQiYmdCE9PVMubm9uUmVnaXN0ZXJlZFBhcmFtZXRlck1TQiYmdCE9PVMubm9uUmVnaXN0ZXJlZFBhcmFtZXRlckxTQiYmdGhpcy5jb250cm9sbGVyQ2hhbmdlKHQsbj4+NyxlKTp0aGlzLm1pZGlDb250cm9sbGVyc1t0XT1ufXRoaXMuY2hhbm5lbFZpYnJhdG89e3JhdGU6MCxkZXB0aDowLGRlbGF5OjB9LHRoaXMucmFuZG9tUGFuPSExLHRoaXMuc3lzRXhNb2R1bGF0b3JzLnJlc2V0TW9kdWxhdG9ycygpO2xldCBBPXRoaXMuY3VzdG9tQ29udHJvbGxlcnNbSUEuY2hhbm5lbFRyYW5zcG9zZUZpbmVdO3RoaXMuY3VzdG9tQ29udHJvbGxlcnMuc2V0KHRhKSx0aGlzLnNldEN1c3RvbUNvbnRyb2xsZXIoSUEuY2hhbm5lbFRyYW5zcG9zZUZpbmUsQSksdGhpcy5yZXNldFBhcmFtZXRlcnMoKX1mdW5jdGlvbiB5bygpe3RoaXMuc2V0QmFua01TQihmQS5nZXREZWZhdWx0QmFuayh0aGlzLmNoYW5uZWxTeXN0ZW0pKSx0aGlzLnNldEJhbmtMU0IoMCksdGhpcy5zZXRHU0RydW1zKCExKSx0aGlzLnNldERydW1zKHRoaXMuY2hhbm5lbE51bWJlciUxNj09PVNlKSx0aGlzLnByb2dyYW1DaGFuZ2UoMCl9dmFyIG5hPW5ldyBTZXQoW1MuYmFua1NlbGVjdCxTLmJhbmtTZWxlY3RMU0IsUy5tYWluVm9sdW1lLFMubWFpblZvbHVtZUxTQixTLnBhbixTLnBhbkxTQixTLnJldmVyYkRlcHRoLFMudHJlbW9sb0RlcHRoLFMuY2hvcnVzRGVwdGgsUy5kZXR1bmVEZXB0aCxTLnBoYXNlckRlcHRoLFMuc291bmRWYXJpYXRpb24sUy5maWx0ZXJSZXNvbmFuY2UsUy5yZWxlYXNlVGltZSxTLmF0dGFja1RpbWUsUy5icmlnaHRuZXNzLFMuZGVjYXlUaW1lLFMudmlicmF0b1JhdGUsUy52aWJyYXRvRGVwdGgsUy52aWJyYXRvRGVsYXksUy5zb3VuZENvbnRyb2xsZXIxMF0pO2Z1bmN0aW9uIGtvKCl7dGhpcy5jaGFubmVsT2N0YXZlVHVuaW5nLmZpbGwoMCksdGhpcy5waXRjaFdoZWVsKDgxOTIpLHRoaXMuY2hhbm5lbFZpYnJhdG89e3JhdGU6MCxkZXB0aDowLGRlbGF5OjB9O2ZvcihsZXQgZT0wO2U8MTI4O2UrKyl7bGV0IEE9V2VbZV07IW5hLmhhcyhlKSYmQSE9PXRoaXMubWlkaUNvbnRyb2xsZXJzW2VdJiYoZT09PVMucG9ydGFtZW50b0NvbnRyb2w/dGhpcy5taWRpQ29udHJvbGxlcnNbZV09bnM6dGhpcy5jb250cm9sbGVyQ2hhbmdlKGUsQT4+NykpfXRoaXMucmVzZXRHZW5lcmF0b3JPdmVycmlkZXMoKSx0aGlzLnJlc2V0R2VuZXJhdG9yT2Zmc2V0cygpfWZ1bmN0aW9uIERvKCl7dGhpcy5kYXRhRW50cnlTdGF0ZT1ZQS5JZGxlLHRoaXMubWlkaUNvbnRyb2xsZXJzW1Mubm9uUmVnaXN0ZXJlZFBhcmFtZXRlckxTQl09MTYyNTYsdGhpcy5taWRpQ29udHJvbGxlcnNbUy5ub25SZWdpc3RlcmVkUGFyYW1ldGVyTVNCXT0xNjI1Nix0aGlzLm1pZGlDb250cm9sbGVyc1tTLnJlZ2lzdGVyZWRQYXJhbWV0ZXJMU0JdPTE2MjU2LHRoaXMubWlkaUNvbnRyb2xsZXJzW1MucmVnaXN0ZXJlZFBhcmFtZXRlck1TQl09MTYyNTYsdGhpcy5yZXNldEdlbmVyYXRvck92ZXJyaWRlcygpLHRoaXMucmVzZXRHZW5lcmF0b3JPZmZzZXRzKCl9dmFyIEdlPVdlLnNsaWNlKDAsMTI4KTtmdW5jdGlvbiB3byhlLEE9dm9pZCAwKXtpZighdGhpcy5fbWlkaURhdGEpcmV0dXJuITE7dGhpcy5vbmVUaWNrVG9TZWNvbmRzPTYwLygxMjAqdGhpcy5fbWlkaURhdGEudGltZURpdmlzaW9uKSx0aGlzLmV4dGVybmFsTUlESVBsYXliYWNrP3RoaXMuc2VuZE1JRElSZXNldCgpOih0aGlzLnN5bnRoLnJlc2V0QWxsQ29udHJvbGxlcnMoKSx0aGlzLnN5bnRoLnN0b3BBbGxDaGFubmVscyghMSkpLHRoaXMucGxheWVkVGltZT0wLHRoaXMuZXZlbnRJbmRleGVzPUFycmF5KHRoaXMuX21pZGlEYXRhLnRyYWNrcy5sZW5ndGgpLmZpbGwoMCk7bGV0IHQ9dGhpcy5zeW50aC5taWRpQ2hhbm5lbHMubGVuZ3RoLG49QXJyYXkodCkuZmlsbCg4MTkyKSxzPVtdO2ZvcihsZXQgbz0wO288dDtvKyspcy5wdXNoKHtwcm9ncmFtOi0xLGJhbms6MCxhY3R1YWxCYW5rOjB9KTtsZXQgYT1vPT5vPT09Uy5kYXRhRGVjcmVtZW50fHxvPT09Uy5kYXRhSW5jcmVtZW50fHxvPT09Uy5kYXRhRW50cnlNU0J8fG89PT1TLmRhdGFFbnRyeUxTQnx8bz09PVMucmVnaXN0ZXJlZFBhcmFtZXRlckxTQnx8bz09PVMucmVnaXN0ZXJlZFBhcmFtZXRlck1TQnx8bz09PVMubm9uUmVnaXN0ZXJlZFBhcmFtZXRlckxTQnx8bz09PVMubm9uUmVnaXN0ZXJlZFBhcmFtZXRlck1TQnx8bz09PVMuYmFua1NlbGVjdHx8bz09PVMuYmFua1NlbGVjdExTQnx8bz09PVMucmVzZXRBbGxDb250cm9sbGVycyxyPVtdO2ZvcihsZXQgbz0wO288dDtvKyspci5wdXNoKEFycmF5LmZyb20oR2UpKTtmdW5jdGlvbiBJKG8pe2lmKG5bb109ODE5MixyPy5bb10hPT12b2lkIDApZm9yKGxldCBnPTA7ZzxHZS5sZW5ndGg7ZysrKW5hLmhhcyhnKXx8KHJbb11bZ109R2VbZ10pfWZvcig7Oyl7bGV0IG89dGhpcy5maW5kRmlyc3RFdmVudEluZGV4KCksZz10aGlzLl9taWRpRGF0YS50cmFja3Nbb10sQj1nLmV2ZW50c1t0aGlzLmV2ZW50SW5kZXhlc1tvXV07aWYoQSE9PXZvaWQgMCl7aWYoQi50aWNrcz49QSlicmVha31lbHNlIGlmKHRoaXMucGxheWVkVGltZT49ZSlicmVhaztsZXQgZD1BcyhCLnN0YXR1c0J5dGUpLGg9ZC5jaGFubmVsKyh0aGlzLm1pZGlQb3J0Q2hhbm5lbE9mZnNldHNbZy5wb3J0XXx8MCk7c3dpdGNoKGQuc3RhdHVzKXtjYXNlIE0ubm90ZU9uOnJbaF0/Pz1BcnJheS5mcm9tKEdlKSxyW2hdW1MucG9ydGFtZW50b0NvbnRyb2xdPUIuZGF0YVswXTticmVhaztjYXNlIE0ubm90ZU9mZjpicmVhaztjYXNlIE0ucGl0Y2hXaGVlbDpuW2hdPUIuZGF0YVsxXTw8N3xCLmRhdGFbMF07YnJlYWs7Y2FzZSBNLnByb2dyYW1DaGFuZ2U6e2lmKHRoaXMuX21pZGlEYXRhLmlzTXVsdGlQb3J0JiZnLmNoYW5uZWxzLnNpemU9PT0wKWJyZWFrO2xldCBRPXNbaF07US5wcm9ncmFtPUIuZGF0YVswXSxRLmFjdHVhbEJhbms9US5iYW5rO2JyZWFrfWNhc2UgTS5jb250cm9sbGVyQ2hhbmdlOntpZih0aGlzLl9taWRpRGF0YS5pc011bHRpUG9ydCYmZy5jaGFubmVscy5zaXplPT09MClicmVhaztsZXQgUT1CLmRhdGFbMF07aWYoYShRKSl7bGV0IG09Qi5kYXRhWzFdO2lmKFE9PT1TLmJhbmtTZWxlY3Qpe3NbaF0uYmFuaz1tO2JyZWFrfWVsc2UgUT09PVMucmVzZXRBbGxDb250cm9sbGVycyYmSShoKTt0aGlzLmV4dGVybmFsTUlESVBsYXliYWNrP3RoaXMuc2VuZE1JRElDQyhoLFEsbSk6dGhpcy5zeW50aC5jb250cm9sbGVyQ2hhbmdlKGgsUSxtKX1lbHNlIHJbaF0/Pz1BcnJheS5mcm9tKEdlKSxyW2hdW1FdPUIuZGF0YVsxXTticmVha31kZWZhdWx0OnRoaXMucHJvY2Vzc0V2ZW50KEIsbyk7YnJlYWt9dGhpcy5ldmVudEluZGV4ZXNbb10rKyxvPXRoaXMuZmluZEZpcnN0RXZlbnRJbmRleCgpO2xldCBDPXRoaXMuX21pZGlEYXRhLnRyYWNrc1tvXS5ldmVudHNbdGhpcy5ldmVudEluZGV4ZXNbb11dO2lmKEM9PT12b2lkIDApcmV0dXJuIHRoaXMuc3RvcCgpLCExO3RoaXMucGxheWVkVGltZSs9dGhpcy5vbmVUaWNrVG9TZWNvbmRzKihDLnRpY2tzLUIudGlja3MpfWlmKHRoaXMuZXh0ZXJuYWxNSURJUGxheWJhY2spe2ZvcihsZXQgbz0wO288dDtvKyspaWYobltvXSE9PXZvaWQgMCYmdGhpcy5zZW5kTUlESVBpdGNoV2hlZWwobyxuW29dPj43LG5bb10mMTI3KSxyW29dIT09dm9pZCAwJiZyW29dLmZvckVhY2goKGcsQik9PntnIT09R2VbQl0mJiFhKEIpJiZ0aGlzLnNlbmRNSURJQ0MobyxCLGcpfSksc1tvXS5wcm9ncmFtPj0wJiZzW29dLmFjdHVhbEJhbms+PTApe2xldCBnPXNbb10uYWN0dWFsQmFuazt0aGlzLnNlbmRNSURJQ0MobyxTLmJhbmtTZWxlY3QsZyksdGhpcy5zZW5kTUlESVByb2dyYW1DaGFuZ2UobyxzW29dLnByb2dyYW0pfX1lbHNlIGZvcihsZXQgbz0wO288dDtvKyspaWYobltvXSE9PXZvaWQgMCYmdGhpcy5zeW50aC5waXRjaFdoZWVsKG8sbltvXSkscltvXSE9PXZvaWQgMCYmcltvXS5mb3JFYWNoKChnLEIpPT57ZyE9PUdlW0JdJiYhYShCKSYmdGhpcy5zeW50aC5jb250cm9sbGVyQ2hhbmdlKG8sQixnKX0pLHNbb10uYWN0dWFsQmFuaz49MCl7bGV0IGc9c1tvXTtnLnByb2dyYW0hPT0tMT8odGhpcy5zeW50aC5jb250cm9sbGVyQ2hhbmdlKG8sUy5iYW5rU2VsZWN0LGcuYWN0dWFsQmFuayksdGhpcy5zeW50aC5wcm9ncmFtQ2hhbmdlKG8sZy5wcm9ncmFtKSk6dGhpcy5zeW50aC5jb250cm9sbGVyQ2hhbmdlKG8sUy5iYW5rU2VsZWN0LGcuYmFuayl9cmV0dXJuIHRoaXMucGF1c2VkJiYodGhpcy5wYXVzZWRUaW1lPXRoaXMucGxheWVkVGltZSksITB9dmFyIHNhPWNsYXNze3NvbmdzPVtdO3NodWZmbGVkU29uZ0luZGV4ZXM9W107c3ludGg7ZXh0ZXJuYWxNSURJUGxheWJhY2s9ITE7bG9vcENvdW50PTA7c2tpcFRvRmlyc3ROb3RlT249ITA7b25FdmVudENhbGw7cHJvY2Vzc1RpY2s9UW8uYmluZCh0aGlzKTtmaXJzdE5vdGVUaW1lPTA7b25lVGlja1RvU2Vjb25kcz0wO2V2ZW50SW5kZXhlcz1bXTtwbGF5ZWRUaW1lPTA7cGF1c2VkVGltZT0tMTthYnNvbHV0ZVN0YXJ0VGltZT0wO3BsYXlpbmdOb3Rlcz1bXTtjdXJyZW50TUlESVBvcnRzPVtdO21pZGlQb3J0Q2hhbm5lbE9mZnNldD0wO21pZGlQb3J0Q2hhbm5lbE9mZnNldHM9e307YXNzaWduTUlESVBvcnQ9dW8uYmluZCh0aGlzKTtsb2FkTmV3U2VxdWVuY2U9Zm8uYmluZCh0aGlzKTtwcm9jZXNzRXZlbnQ9bG8uYmluZCh0aGlzKTtzZXRUaW1lVG89d28uYmluZCh0aGlzKTtjb25zdHJ1Y3RvcihlKXt0aGlzLnN5bnRoPWUsdGhpcy5hYnNvbHV0ZVN0YXJ0VGltZT10aGlzLnN5bnRoLmN1cnJlbnRTeW50aFRpbWV9X21pZGlEYXRhO2dldCBtaWRpRGF0YSgpe3JldHVybiB0aGlzLl9taWRpRGF0YX1nZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5fbWlkaURhdGE/LmR1cmF0aW9uPz8wfV9zb25nSW5kZXg9MDtnZXQgc29uZ0luZGV4KCl7cmV0dXJuIHRoaXMuX3NvbmdJbmRleH1zZXQgc29uZ0luZGV4KGUpe3RoaXMuX3NvbmdJbmRleD1lLHRoaXMuX3NvbmdJbmRleD1NYXRoLm1heCgwLGUldGhpcy5zb25ncy5sZW5ndGgpLHRoaXMubG9hZEN1cnJlbnRTb25nKCl9X3NodWZmbGVNb2RlPSExO2dldCBzaHVmZmxlTW9kZSgpe3JldHVybiB0aGlzLl9zaHVmZmxlTW9kZX1zZXQgc2h1ZmZsZU1vZGUoZSl7dGhpcy5fc2h1ZmZsZU1vZGU9ZSxlPyh0aGlzLnNodWZmbGVTb25nSW5kZXhlcygpLHRoaXMuX3NvbmdJbmRleD0wLHRoaXMubG9hZEN1cnJlbnRTb25nKCkpOnRoaXMuX3NvbmdJbmRleD10aGlzLnNodWZmbGVkU29uZ0luZGV4ZXNbdGhpcy5fc29uZ0luZGV4XX1fcGxheWJhY2tSYXRlPTE7Z2V0IHBsYXliYWNrUmF0ZSgpe3JldHVybiB0aGlzLl9wbGF5YmFja1JhdGV9c2V0IHBsYXliYWNrUmF0ZShlKXtsZXQgQT10aGlzLmN1cnJlbnRUaW1lO3RoaXMuX3BsYXliYWNrUmF0ZT1lLHRoaXMuY3VycmVudFRpbWU9QX1nZXQgY3VycmVudFRpbWUoKXtyZXR1cm4gdGhpcy5wYXVzZWRUaW1lIT09dm9pZCAwP3RoaXMucGF1c2VkVGltZToodGhpcy5zeW50aC5jdXJyZW50U3ludGhUaW1lLXRoaXMuYWJzb2x1dGVTdGFydFRpbWUpKnRoaXMuX3BsYXliYWNrUmF0ZX1zZXQgY3VycmVudFRpbWUoZSl7aWYodGhpcy5fbWlkaURhdGEpaWYodGhpcy5wYXVzZWQmJih0aGlzLnBhdXNlZFRpbWU9ZSksZT50aGlzLl9taWRpRGF0YS5kdXJhdGlvbnx8ZTwwKXRoaXMuc2tpcFRvRmlyc3ROb3RlT24/dGhpcy5zZXRUaW1lVGlja3ModGhpcy5fbWlkaURhdGEuZmlyc3ROb3RlT24tMSk6dGhpcy5zZXRUaW1lVGlja3MoMCk7ZWxzZSBpZih0aGlzLnNraXBUb0ZpcnN0Tm90ZU9uJiZlPHRoaXMuZmlyc3ROb3RlVGltZSl7dGhpcy5zZXRUaW1lVGlja3ModGhpcy5fbWlkaURhdGEuZmlyc3ROb3RlT24tMSk7cmV0dXJufWVsc2V7aWYodGhpcy5wbGF5aW5nTm90ZXM9W10sdGhpcy5jYWxsRXZlbnQoInRpbWVDaGFuZ2UiLHtuZXdUaW1lOmV9KSx0aGlzLl9taWRpRGF0YS5kdXJhdGlvbj09PTApe3NBKCJObyBkdXJhdGlvbiEiKSx0aGlzLmNhbGxFdmVudCgicGF1c2UiLHtpc0ZpbmlzaGVkOiEwfSk7cmV0dXJufXRoaXMuc2V0VGltZVRvKGUpLHRoaXMucmVjYWxjdWxhdGVTdGFydFRpbWUoZSl9fWdldCBwYXVzZWQoKXtyZXR1cm4gdGhpcy5wYXVzZWRUaW1lIT09dm9pZCAwfXBsYXkoKXtpZighdGhpcy5fbWlkaURhdGEpdGhyb3cgbmV3IEVycm9yKCJObyBzb25ncyBsb2FkZWQgaW4gdGhlIHNlcXVlbmNlciEiKTt0aGlzLmN1cnJlbnRUaW1lPj10aGlzLl9taWRpRGF0YS5kdXJhdGlvbiYmKHRoaXMuY3VycmVudFRpbWU9MCksdGhpcy5wYXVzZWQmJnRoaXMucmVjYWxjdWxhdGVTdGFydFRpbWUodGhpcy5wYXVzZWRUaW1lPz8wKSx0aGlzLmV4dGVybmFsTUlESVBsYXliYWNrfHx0aGlzLnBsYXlpbmdOb3Rlcy5mb3JFYWNoKGU9Pnt0aGlzLnN5bnRoLm5vdGVPbihlLmNoYW5uZWwsZS5taWRpTm90ZSxlLnZlbG9jaXR5KX0pLHRoaXMucGF1c2VkVGltZT12b2lkIDB9cGF1c2UoKXt0aGlzLnBhdXNlSW50ZXJuYWwoITEpfWxvYWROZXdTb25nTGlzdChlKXt0aGlzLnNvbmdzPWUsISh0aGlzLnNvbmdzLmxlbmd0aDwxKSYmKHRoaXMuX3NvbmdJbmRleD0wLHRoaXMuc2h1ZmZsZVNvbmdJbmRleGVzKCksdGhpcy5jYWxsRXZlbnQoInNvbmdMaXN0Q2hhbmdlIix7bmV3U29uZ0xpc3Q6Wy4uLnRoaXMuc29uZ3NdfSksdGhpcy5sb2FkQ3VycmVudFNvbmcoKSl9Y2FsbEV2ZW50KGUsQSl7dGhpcz8ub25FdmVudENhbGw/Lih7dHlwZTplLGRhdGE6QX0pfXBhdXNlSW50ZXJuYWwoZSl7dGhpcy5wYXVzZWR8fCh0aGlzLnN0b3AoKSx0aGlzLmNhbGxFdmVudCgicGF1c2UiLHtpc0ZpbmlzaGVkOmV9KSl9c29uZ0lzRmluaXNoZWQoKXtpZih0aGlzLnNvbmdzLmxlbmd0aD09PTEpe3RoaXMucGF1c2VJbnRlcm5hbCghMCk7cmV0dXJufXRoaXMuX3NvbmdJbmRleCsrLHRoaXMuX3NvbmdJbmRleCU9dGhpcy5zb25ncy5sZW5ndGgsdGhpcy5sb2FkQ3VycmVudFNvbmcoKX1zdG9wKCl7dGhpcy5wYXVzZWRUaW1lPXRoaXMuY3VycmVudFRpbWU7Zm9yKGxldCBlPTA7ZTwxNjtlKyspdGhpcy5zeW50aC5jb250cm9sbGVyQ2hhbmdlKGUsUy5zdXN0YWluUGVkYWwsMCk7aWYodGhpcy5zeW50aC5zdG9wQWxsQ2hhbm5lbHMoKSx0aGlzLmV4dGVybmFsTUlESVBsYXliYWNrKXtmb3IobGV0IGUgb2YgdGhpcy5wbGF5aW5nTm90ZXMpdGhpcy5zZW5kTUlESU1lc3NhZ2UoW00ubm90ZU9mZnxlLmNoYW5uZWwlMTYsZS5taWRpTm90ZV0pO2ZvcihsZXQgZT0wO2U8Um47ZSsrKXRoaXMuc2VuZE1JRElDQyhlLFMuYWxsTm90ZXNPZmYsMCl9fWZpbmRGaXJzdEV2ZW50SW5kZXgoKXtsZXQgZT0wLEE9MS8wO3JldHVybiB0aGlzLl9taWRpRGF0YS50cmFja3MuZm9yRWFjaCgodCxuKT0+e2lmKHRoaXMuZXZlbnRJbmRleGVzW25dPj10LmV2ZW50cy5sZW5ndGgpcmV0dXJuO2xldCBzPXQuZXZlbnRzW3RoaXMuZXZlbnRJbmRleGVzW25dXTtzLnRpY2tzPEEmJihlPW4sQT1zLnRpY2tzKX0pLGV9YWRkTmV3TUlESVBvcnQoKXtmb3IobGV0IGU9MDtlPDE2O2UrKyl0aGlzLnN5bnRoLmNyZWF0ZU1JRElDaGFubmVsKCl9c2VuZE1JRElNZXNzYWdlKGUpe3RoaXMuZXh0ZXJuYWxNSURJUGxheWJhY2smJnRoaXMuY2FsbEV2ZW50KCJtaWRpTWVzc2FnZSIse21lc3NhZ2U6ZX0pfXNlbmRNSURJUmVzZXQoKXt0aGlzLnNlbmRNSURJTWVzc2FnZShbTS5yZXNldF0pO2ZvcihsZXQgZT0wO2U8Um47ZSsrKXRoaXMuc2VuZE1JRElNZXNzYWdlKFtNLmNvbnRyb2xsZXJDaGFuZ2V8ZSxTLmFsbFNvdW5kT2ZmLDBdKSx0aGlzLnNlbmRNSURJTWVzc2FnZShbTS5jb250cm9sbGVyQ2hhbmdlfGUsUy5yZXNldEFsbENvbnRyb2xsZXJzLDBdKX1sb2FkQ3VycmVudFNvbmcoKXtsZXQgZT10aGlzLl9zb25nSW5kZXg7dGhpcy5fc2h1ZmZsZU1vZGUmJihlPXRoaXMuc2h1ZmZsZWRTb25nSW5kZXhlc1t0aGlzLl9zb25nSW5kZXhdKSx0aGlzLmxvYWROZXdTZXF1ZW5jZSh0aGlzLnNvbmdzW2VdKX1zaHVmZmxlU29uZ0luZGV4ZXMoKXtsZXQgZT10aGlzLnNvbmdzLm1hcCgoQSx0KT0+dCk7Zm9yKHRoaXMuc2h1ZmZsZWRTb25nSW5kZXhlcz1bXTtlLmxlbmd0aD4wOyl7bGV0IEE9ZVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqZS5sZW5ndGgpXTt0aGlzLnNodWZmbGVkU29uZ0luZGV4ZXMucHVzaChBKSxlLnNwbGljZShlLmluZGV4T2YoQSksMSl9fXNlbmRNSURJQ0MoZSxBLHQpe2UlPTE2LHRoaXMuZXh0ZXJuYWxNSURJUGxheWJhY2smJnRoaXMuc2VuZE1JRElNZXNzYWdlKFtNLmNvbnRyb2xsZXJDaGFuZ2V8ZSxBLHRdKX1zZW5kTUlESVByb2dyYW1DaGFuZ2UoZSxBKXtlJT0xNix0aGlzLmV4dGVybmFsTUlESVBsYXliYWNrJiZ0aGlzLnNlbmRNSURJTWVzc2FnZShbTS5wcm9ncmFtQ2hhbmdlfGUsQV0pfXNlbmRNSURJUGl0Y2hXaGVlbChlLEEsdCl7ZSU9MTYsdGhpcy5leHRlcm5hbE1JRElQbGF5YmFjayYmdGhpcy5zZW5kTUlESU1lc3NhZ2UoW00ucGl0Y2hXaGVlbHxlLHQsQV0pfXNldFRpbWVUaWNrcyhlKXtpZighdGhpcy5fbWlkaURhdGEpcmV0dXJuO3RoaXMucGxheWluZ05vdGVzPVtdO2xldCBBPXRoaXMuX21pZGlEYXRhLm1pZGlUaWNrc1RvU2Vjb25kcyhlKTt0aGlzLmNhbGxFdmVudCgidGltZUNoYW5nZSIse25ld1RpbWU6QX0pO2xldCB0PXRoaXMuc2V0VGltZVRvKDAsZSk7dGhpcy5yZWNhbGN1bGF0ZVN0YXJ0VGltZSh0aGlzLnBsYXllZFRpbWUpfXJlY2FsY3VsYXRlU3RhcnRUaW1lKGUpe3RoaXMuYWJzb2x1dGVTdGFydFRpbWU9dGhpcy5zeW50aC5jdXJyZW50U3ludGhUaW1lLWUvdGhpcy5fcGxheWJhY2tSYXRlfX0sbHQ9bHQhPT12b2lkIDA/bHQ6e30sa3M9ITEsYWE7bHQuaXNJbml0aWFsaXplZD1uZXcgUHJvbWlzZShlPT5hYT1lKTt2YXIgRm89ZnVuY3Rpb24oZSl7dmFyIEEsdCxuLHMsYSxyLEksbz0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLGc9IiIsQj0wO2U9ZS5yZXBsYWNlKC9bXkEtWmEtejAtOVwrXC9cPV0vZywiIik7ZG8gcz1vLmluZGV4T2YoZS5jaGFyQXQoQisrKSksYT1vLmluZGV4T2YoZS5jaGFyQXQoQisrKSkscj1vLmluZGV4T2YoZS5jaGFyQXQoQisrKSksST1vLmluZGV4T2YoZS5jaGFyQXQoQisrKSksQT1zPDwyfGE+PjQsdD0oMTUmYSk8PDR8cj4+MixuPSgzJnIpPDw2fEksZys9U3RyaW5nLmZyb21DaGFyQ29kZShBKSxyIT09NjQmJihnKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpKSxJIT09NjQmJihnKz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4pKTt3aGlsZShCPGUubGVuZ3RoKTtyZXR1cm4gZ307KGZ1bmN0aW9uKCl7dmFyIGUsQSx0LG4scyxhLHIsSSxvLGcsQixkLGgsQyxRLG0seSxGLGssRCx2LEwsRT1FIT09dm9pZCAwP0U6e307RS53YXNtQmluYXJ5PVVpbnQ4QXJyYXkuZnJvbShGbygiQUdGemJRRUFBQUFCcFFFWVlBSi9md0YvWUFGL0FHQUFBWDlnQkg5L2YzOEFZQUFBWUFOL2YzOEJmMkFCZndGL1lBSi9md0JnQm45L2YzOS9md0YvWUFSL2YzOS9BWDlnQlg5L2YzOS9BWDlnQjM5L2YzOS9mMzhCZjJBR2YzOS9mMzkvQUdBSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBZC9mMzkvZjM5L0FHQURmMzkvQUdBQmZ3RjlZQUY5QVgxZ0FueC9BWHhnQW54L0FYOWdBM3g4ZndGOFlBSjhmQUY4WUFGOEFYd0NuZ0lQQTJWdWRnWnRaVzF2Y25rQ0FJQUNBMlZ1ZGdWMFlXSnNaUUZ3QVFRRUEyVnVkZ2wwWVdKc1pVSmhjMlVEZndBRFpXNTJEa1JaVGtGTlNVTlVUMUJmVUZSU0EzOEFBMlZ1ZGdoVFZFRkRTMVJQVUFOL0FBTmxibllKVTFSQlEwdGZUVUZZQTM4QUJtZHNiMkpoYkFoSmJtWnBibWwwZVFOOEFBTmxibllGWVdKdmNuUUFBUU5sYm5ZTlpXNXNZWEpuWlUxbGJXOXllUUFDQTJWdWRnNW5aWFJVYjNSaGJFMWxiVzl5ZVFBQ0EyVnVkaGRoWW05eWRFOXVRMkZ1Ym05MFIzSnZkMDFsYlc5eWVRQUNBMlZ1ZGc1ZlgxOWhjM05sY25SZlptRnBiQUFEQTJWdWRndGZYMTl6WlhSRmNuSk9id0FCQTJWdWRnWmZZV0p2Y25RQUJBTmxibllXWDJWdGMyTnlhWEIwWlc1ZmJXVnRZM0I1WDJKcFp3QUZBM2QyQmdZQ0FRY0hBUUlCQVFjQkNBY0ZBQWtHQ1FvSEJnWUdCZ0VGQmdJQkJnWUtBQWdMQUFZR0JnWUdCZ1lCQUFvTURBTUdCUUFOQ0FvSkFBd09EQThPQVFBR0JnY0VBQkFKRUFFUkFBQURCUXdBQUFNSEJ4SUdBUUFBQndJRkV3TU9CdzhIQmdZUUZBb1ZFeFlYRnhjWEZnUUZCUVlGQUFZa0IzOEJJd0VMZndFakFndC9BU01EQzM4QlFRQUxmd0ZCQUF0OEFTTUVDMzhCUVFBTEI5TUNGUkJmWDJkeWIzZFhZWE50VFdWdGIzSjVBQWdSWDE5ZlpYSnlibTlmYkc5allYUnBiMjRBWXdWZlpuSmxaUUJmQjE5dFlXeHNiMk1BWGdkZmJXVnRZM0I1QUhrSFgyMWxiWE5sZEFCNkJWOXpZbkpyQUhzWFgzTjBZbDkyYjNKaWFYTmZhbk5mWTJoaGJtNWxiSE1BSmhSZmMzUmlYM1p2Y21KcGMxOXFjMTlqYkc5elpRQWxGVjl6ZEdKZmRtOXlZbWx6WDJwelgyUmxZMjlrWlFBb0UxOXpkR0pmZG05eVltbHpYMnB6WDI5d1pXNEFKQnBmYzNSaVgzWnZjbUpwYzE5cWMxOXpZVzF3YkdWZmNtRjBaUUFuQzJSNWJrTmhiR3hmYVdscEFId1RaWE4wWVdKc2FYTm9VM1JoWTJ0VGNHRmpaUUFNQzJkbGRGUmxiWEJTWlhRd0FBOExjblZ1VUc5emRGTmxkSE1BZUF0elpYUlVaVzF3VW1WME1BQU9DSE5sZEZSb2NtVjNBQTBLYzNSaFkydEJiR3h2WXdBSkRITjBZV05yVW1WemRHOXlaUUFMQ1hOMFlXTnJVMkYyWlFBS0NRb0JBQ01BQ3dSOVZGbDlDc2IyQTNZR0FDQUFRQUFMR3dFQmZ5TUdJUUVqQmlBQWFpUUdJd1pCRDJwQmNIRWtCaUFCQ3dRQUl3WUxCZ0FnQUNRR0N3b0FJQUFrQmlBQkpBY0xFQUFqQ0VVRVFDQUFKQWdnQVNRSkN3c0dBQ0FBSkFzTEJBQWpDd3NSQUNBQUJFQWdBQkFSSUFBZ0FCQVNDd3Z2QndFS2Z5QUFRWUFEYWlFSElBY29BZ0FoQlFKQUlBVUVRQ0FBUWZ3QmFpRUVJQVFvQWdBaEFTQUJRUUJLQkVBZ0FFSHdBR29oQ0FOQUlBVWdBa0VZYkdwQkVHb2hDU0FKS0FJQUlRRWdBUVJBSUFnb0FnQWhBeUFGSUFKQkdHeHFRUTFxSVFvZ0NpMEFBQ0VHSUFaQi93RnhJUVlnQXlBR1FiQVFiR3BCQkdvaEF5QURLQUlBSVFNZ0EwRUFTZ1JBUVFBaEF3TkFJQUVnQTBFQ2RHb2hBU0FCS0FJQUlRRWdBQ0FCRUJJZ0EwRUJhaUVESUFnb0FnQWhBU0FLTFFBQUlRWWdCa0gvQVhFaEJpQUJJQVpCc0JCc2FrRUVhaUVCSUFFb0FnQWhCaUFKS0FJQUlRRWdBeUFHU0EwQUN3c2dBQ0FCRUJJTElBVWdBa0VZYkdwQkZHb2hBU0FCS0FJQUlRRWdBQ0FCRUJJZ0FrRUJhaUVDSUFRb0FnQWhBU0FDSUFGT0RRTWdCeWdDQUNFRkRBQUFDd0FMQ3dzZ0FFSHdBR29oQXlBREtBSUFJUUVnQVFSQUlBQkI3QUJxSVFVZ0JTZ0NBQ0VDSUFKQkFFb0VRRUVBSVFJRFFBSkFJQUVnQWtHd0VHeHFRUWhxSVFRZ0JDZ0NBQ0VFSUFBZ0JCQVNJQUVnQWtHd0VHeHFRUnhxSVFRZ0JDZ0NBQ0VFSUFBZ0JCQVNJQUVnQWtHd0VHeHFRU0JxSVFRZ0JDZ0NBQ0VFSUFBZ0JCQVNJQUVnQWtHd0VHeHFRYVFRYWlFRUlBUW9BZ0FoQkNBQUlBUVFFaUFCSUFKQnNCQnNha0dvRUdvaEFTQUJLQUlBSVFFZ0FVVWhCQ0FCUVh4cUlRRkJBQ0FCSUFRYklRRWdBQ0FCRUJJZ0FrRUJhaUVDSUFVb0FnQWhBU0FDSUFGT0RRQWdBeWdDQUNFQkRBRUxDeUFES0FJQUlRRUxJQUFnQVJBU0N5QUFRZmdCYWlFQklBRW9BZ0FoQVNBQUlBRVFFaUFIS0FJQUlRRWdBQ0FCRUJJZ0FFR0lBMm9oQXlBREtBSUFJUUVnQVFSQUlBQkJoQU5xSVFVZ0JTZ0NBQ0VDSUFKQkFFb0VRRUVBSVFJRFFDQUJJQUpCS0d4cVFRUnFJUUVnQVNnQ0FDRUJJQUFnQVJBU0lBSkJBV29oQWlBRktBSUFJUWNnQXlnQ0FDRUJJQUlnQjBnTkFBc0xJQUFnQVJBU0N5QUFRUVJxSVFJZ0FpZ0NBQ0VCSUFGQkFFb0VRRUVBSVFFRFFDQUFRWlFHYWlBQlFRSjBhaUVESUFNb0FnQWhBeUFBSUFNUUVpQUFRWlFIYWlBQlFRSjBhaUVESUFNb0FnQWhBeUFBSUFNUUVpQUFRZGdIYWlBQlFRSjBhaUVESUFNb0FnQWhBeUFBSUFNUUVpQUJRUUZxSVFFZ0FpZ0NBQ0VESUFFZ0EwZ2hBeUFCUVJCSklRVWdCU0FEY1EwQUN3dEJBQ0VCQTBBZ0FFR2dDR29nQVVFQ2RHb2hBaUFDS0FJQUlRSWdBQ0FDRUJJZ0FFR29DR29nQVVFQ2RHb2hBaUFDS0FJQUlRSWdBQ0FDRUJJZ0FFR3dDR29nQVVFQ2RHb2hBaUFDS0FJQUlRSWdBQ0FDRUJJZ0FFRzRDR29nQVVFQ2RHb2hBaUFDS0FJQUlRSWdBQ0FDRUJJZ0FFSEFDR29nQVVFQ2RHb2hBaUFDS0FJQUlRSWdBQ0FDRUJJZ0FVRUJhaUVCSUFGQkFrY05BQXNMR3dBZ0FFSEVBR29oQUNBQUtBSUFJUUFnQUVVRVFDQUJFRjhMQzN3QkFYOGdBRUhVQjJvaEFTQUJRUUEyQWdBZ0FFR0FDMm9oQVNBQlFRQTJBZ0FnQUVINENtb2hBU0FCUVFBMkFnQWdBRUdjQ0dvaEFTQUJRUUEyQWdBZ0FFSFZDbW9oQVNBQlFRQTZBQUFnQUVIOENtb2hBU0FCUVFBMkFnQWdBRUhVQzJvaEFTQUJRUUEyQWdBZ0FFSFlDMm9oQUNBQVFRQTJBZ0FMOEFRQkIzOGpCaUVMSXdaQkVHb2tCaUFMUVFocUlRY2dDMEVFYWlFS0lBc2hDQ0FBUVNScUlRWWdCaXdBQUNFR0FuOGdCZ1IvSUFCQmdBdHFJUVlnQmlnQ0FDRUdJQVpCZjBvRVFDQUZRUUEyQWdBZ0FDQUJJQUlRRmd3Q0N5QUFRUlJxSVFZZ0JpQUJOZ0lBSUFFZ0Ftb2hBaUFBUVJ4cUlRa2dDU0FDTmdJQUlBQkIyQUJxSVFJZ0FrRUFOZ0lBSUFCQkFCQVhJUWtnQ1VVRVFDQUZRUUEyQWdCQkFBd0NDeUFBSUFjZ0NDQUtFQmdoQ1NBSkJFQWdCeWdDQUNFQ0lBZ29BZ0FoQ1NBS0tBSUFJUWdnQUNBQ0lBa2dDQkFhSVFvZ0J5QUtOZ0lBSUFCQkJHb2hBaUFDS0FJQUlRZ2dDRUVBU2dSQVFRQWhBZ05BSUFCQmxBWnFJQUpCQW5ScUlRY2dCeWdDQUNFSElBY2dDVUVDZEdvaEJ5QUFRZFFHYWlBQ1FRSjBhaUVNSUF3Z0J6WUNBQ0FDUVFGcUlRSWdBaUFJU0EwQUN3c2dBd1JBSUFNZ0NEWUNBQXNnQlNBS05nSUFJQUJCMUFacUlRQWdCQ0FBTmdJQUlBWW9BZ0FoQUNBQUlBRnJEQUlMQWtBQ1FBSkFBa0FDUUNBQ0tBSUFJZ05CSUdzT0JBRUNBZ0FDQ3lBQ1FRQTJBZ0FnQUVIVUFHb2hBaUFBRUJraEF3SkFJQU5CZjBjRVFBTkFJQUlvQWdBaEF5QUREUUlnQUJBWklRTWdBMEYvUncwQUN3c0xJQVZCQURZQ0FDQUdLQUlBSVFBZ0FDQUJhd3dGQ3d3QkN3d0JDeUFBUWRRSGFpRUVJQVFvQWdBaEJDQUVSUVJBSUFKQkFEWUNBQ0FBUWRRQWFpRUNJQUFRR1NFREFrQWdBMEYvUndSQUEwQWdBaWdDQUNFRElBTU5BaUFBRUJraEF5QURRWDlIRFFBTEN3c2dCVUVBTmdJQUlBWW9BZ0FoQUNBQUlBRnJEQU1MQ3lBQUVCTWdBaUFETmdJQUlBVkJBRFlDQUVFQkJTQUFRUUlRRlVFQUN3c2hBQ0FMSkFZZ0FBc0pBQ0FBSUFFMkFsZ0xwZ29CREg4Z0FFR0FDMm9oQ2lBS0tBSUFJUVlDUUFKQUFrQWdCa0VBVEEwQUEwQWdBQ0FFUVJSc2FrR1FDMm9oQXlBRFFRQTJBZ0FnQkVFQmFpRUVJQVFnQmtnTkFBc2dCa0VFU0EwQURBRUxJQUpCQkVnRVFFRUFJUUlGSUFKQmZXb2hCa0VBSVFJRFFBSkFJQUVnQW1vaEJDQUVMQUFBSVFNZ0EwSFBBRVlFUUNBRVFjQVRRUVFRWkNFRUlBUkZCRUFnQWtFYWFpRUpJQWtnQms0TkFpQUNRUnRxSVFjZ0FTQUphaUVMSUFzc0FBQWhBeUFEUWY4QmNTRUZJQWNnQldvaEJDQUVJQVpPRFFJZ0JVRWJhaUVFSUFNRVFFRUFJUU1EUUNBRElBZHFJUWdnQVNBSWFpRUlJQWd0QUFBaENDQUlRZjhCY1NFSUlBUWdDR29oQkNBRFFRRnFJUU1nQXlBRlJ3MEFDeUFFSVFNRklBUWhBd3RCQUNFRVFRQWhCUU5BSUFVZ0Ftb2hCeUFCSUFkcUlRY2dCeXdBQUNFSElBUWdCeEFwSVFRZ0JVRUJhaUVGSUFWQkZrY05BQXRCRmlFRkEwQWdCRUVBRUNraEJDQUZRUUZxSVFVZ0JVRWFSdzBBQ3lBS0tBSUFJUVVnQlVFQmFpRUhJQW9nQnpZQ0FDQURRV1pxSVFNZ0FDQUZRUlJzYWtHSUMyb2hDQ0FJSUFNMkFnQWdBQ0FGUVJSc2FrR01DMm9oQXlBRElBUTJBZ0FnQWtFV2FpRUVJQUVnQkdvaEJDQUVMUUFBSVFRZ0JFSC9BWEVoQkNBQ1FSZHFJUU1nQVNBRGFpRURJQU10QUFBaEF5QURRZjhCY1NFRElBTkJDSFFoQXlBRElBUnlJUVFnQWtFWWFpRURJQUVnQTJvaEF5QURMUUFBSVFNZ0EwSC9BWEVoQXlBRFFSQjBJUU1nQkNBRGNpRUVJQUpCR1dvaEF5QUJJQU5xSVFNZ0F5MEFBQ0VESUFOQi93RnhJUU1nQTBFWWRDRURJQVFnQTNJaEJDQUFRWVFMYWlBRlFSUnNhaUVESUFNZ0JEWUNBQ0FMTFFBQUlRUWdCRUgvQVhFaEJDQUpJQVJxSVFRZ0FTQUVhaUVFSUFRc0FBQWhCQ0FFUVg5R0JIOUJmd1VnQWtFR2FpRUVJQUVnQkdvaEJDQUVMUUFBSVFRZ0JFSC9BWEVoQkNBQ1FRZHFJUU1nQVNBRGFpRURJQU10QUFBaEF5QURRZjhCY1NFRElBTkJDSFFoQXlBRElBUnlJUVFnQWtFSWFpRURJQUVnQTJvaEF5QURMUUFBSVFNZ0EwSC9BWEVoQXlBRFFSQjBJUU1nQkNBRGNpRUVJQUpCQ1dvaEF5QUJJQU5xSVFNZ0F5MEFBQ0VESUFOQi93RnhJUU1nQTBFWWRDRURJQVFnQTNJTElRUWdBQ0FGUVJSc2FrR1VDMm9oQXlBRElBUTJBZ0FnQUNBRlFSUnNha0dRQzJvaEJDQUVJQWsyQWdBZ0IwRUVSZ1JBSUFZaEFnd0RDd3NMSUFKQkFXb2hBaUFDSUFaSURRRWdCaUVDQ3dzZ0NpZ0NBQ0VHSUFaQkFFb05BUXNNQVFzZ0FpRUVJQVloQWtFQUlRWURRQUpBSUFCQmhBdHFJQVpCRkd4cUlRa2dBQ0FHUVJSc2FrR1FDMm9oQXlBREtBSUFJUXNnQUNBR1FSUnNha0dJQzJvaERTQU5LQUlBSVFnZ0JDQUxheUVESUFnZ0Ewb2hCU0FESUFnZ0JSc2hCeUFBSUFaQkZHeHFRWXdMYWlFT0lBNG9BZ0FoQXlBSFFRQktCRUJCQUNFRkEwQWdCU0FMYWlFTUlBRWdER29oRENBTUxBQUFJUXdnQXlBTUVDa2hBeUFGUVFGcUlRVWdCU0FIU0EwQUN3c2dDQ0FIYXlFRklBMGdCVFlDQUNBT0lBTTJBZ0FnQlFSQUlBWkJBV29oQmdVZ0NTZ0NBQ0VGSUFNZ0JVWU5BU0FDUVg5cUlRSWdDaUFDTmdJQUlBa2dBRUdFQzJvZ0FrRVViR29pQWlrQ0FEY0NBQ0FKSUFJcEFnZzNBZ2dnQ1NBQ0tBSVFOZ0lRSUFvb0FnQWhBZ3NnQmlBQ1NBMEJJQVFoQWd3Q0N3c2dCeUFMYWlFQ0lBcEJmellDQUNBQVFkUUhhaUVCSUFGQkFEWUNBQ0FBUWRnS2FpRUJJQUZCZnpZQ0FDQUFJQVpCRkd4cVFaUUxhaUVCSUFFb0FnQWhBU0FBUVpnSWFpRUVJQVFnQVRZQ0FDQUJRWDlISVFFZ0FFR2NDR29oQUNBQUlBRTJBZ0FMSUFJTGhnVUJDSDhnQUVIWUNtb2hBaUFDS0FJQUlRTWdBRUVVYWlFQ0lBSW9BZ0FoQWdKL0FrQWdBMEYvUmdSL1FRRWhBd3dCQlNBQVFkQUlhaUVFSUFRb0FnQWhCUUpBSUFNZ0JVZ0VRQU5BSUFCQjFBaHFJQU5xSVFRZ0JDd0FBQ0VHSUFaQi93RnhJUVFnQWlBRWFpRUNJQVpCZjBjTkFpQURRUUZxSVFNZ0F5QUZTQTBBQ3dzTElBRkJBRWNoQmlBRlFYOXFJUVFnQXlBRVNDRUVJQVlnQkhFRVFDQUFRUlVRRlVFQURBTUxJQUJCSEdvaEJDQUVLQUlBSVFRZ0FpQUVTd1IvSUFCQkFSQVZRUUFGSUFNZ0JVWWhCQ0FEUVg5R0lRTWdCQ0FEY2dSL1FRQWhBd3dEQlVFQkN3c0xEQUVMSUFBb0Fod2hDQ0FBUWRRSGFpRUdJQUZCQUVjaEJDQUNJUUVDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FEUUNBQlFScHFJUVVnQlNBSVR3MEJJQUZCd0JOQkJCQmtJUUlnQWcwQ0lBRkJCR29oQWlBQ0xBQUFJUUlnQWcwRElBTUVRQ0FHS0FJQUlRSWdBZ1JBSUFGQkJXb2hBaUFDTEFBQUlRSWdBa0VCY1NFQ0lBSU5CZ3NGSUFGQkJXb2hBaUFDTEFBQUlRSWdBa0VCY1NFQ0lBSkZEUVlMSUFVc0FBQWhBaUFDUWY4QmNTRUhJQUZCRzJvaENTQUpJQWRxSVFFZ0FTQUlTdzBHQWtBZ0FnUkFRUUFoQWdOQUlBa2dBbW9oQXlBRExBQUFJUVVnQlVIL0FYRWhBeUFCSUFOcUlRRWdCVUYvUncwQ0lBSkJBV29oQWlBQ0lBZEpEUUFMQlVFQUlRSUxDeUFIUVg5cUlRTWdBaUFEU0NFRElBUWdBM0VOQnlBQklBaExEUWhCQVNBQ0lBZEhEUW9hUVFBaEF3d0FBQXNBQ3lBQVFRRVFGVUVBREFnTElBQkJGUkFWUVFBTUJ3c2dBRUVWRUJWQkFBd0dDeUFBUVJVUUZVRUFEQVVMSUFCQkZSQVZRUUFNQkFzZ0FFRUJFQlZCQUF3REN5QUFRUlVRRlVFQURBSUxJQUJCQVJBVkMwRUFDeUVBSUFBTGV3RUZmeU1HSVFVakJrRVFhaVFHSUFWQkNHb2hCaUFGUVFScUlRUWdCU0VISUFBZ0FpQUVJQU1nQlNBR0VDb2hCQ0FFQkg4Z0JpZ0NBQ0VFSUFCQmtBTnFJQVJCQm14cUlRZ2dBaWdDQUNFR0lBTW9BZ0FoQkNBSEtBSUFJUU1nQUNBQklBZ2dCaUFFSUFNZ0FoQXJCVUVBQ3lFQUlBVWtCaUFBQ3hzQkFYOGdBQkF1SVFFZ0FFSG9DbW9oQUNBQVFRQTJBZ0FnQVF2NUF3SU1md045SUFCQjFBZHFJUWtnQ1NnQ0FDRUdJQVlFZnlBQUlBWVFTQ0VMSUFCQkJHb2hCQ0FFS0FJQUlRb2dDa0VBU2dSQUlBWkJBRW9oRENBR1FYOXFJUTBEUUNBTUJFQWdBRUdVQm1vZ0JVRUNkR29vQWdBaERpQUFRWlFIYWlBRlFRSjBhaWdDQUNFUFFRQWhCQU5BSUFRZ0Ftb2hCeUFPSUFkQkFuUnFJUWNnQnlvQ0FDRVFJQXNnQkVFQ2RHb2hDQ0FJS2dJQUlSRWdFQ0FSbENFUUlBOGdCRUVDZEdvaENDQUlLZ0lBSVJFZ0RTQUVheUVJSUFzZ0NFRUNkR29oQ0NBSUtnSUFJUklnRVNBU2xDRVJJQkFnRVpJaEVDQUhJQkE0QWdBZ0JFRUJhaUVFSUFRZ0JrY05BQXNMSUFWQkFXb2hCU0FGSUFwSURRQUxDeUFKS0FJQUJTQUFRUVJxSVFRZ0JDZ0NBQ0VLUVFBTElRc2dBU0FEYXlFSElBa2dCellDQUNBS1FRQktCRUFnQVNBRFNpRUpRUUFoQlFOQUlBa0VRQ0FBUVpRR2FpQUZRUUowYWlnQ0FDRU1JQUJCbEFkcUlBVkJBblJxS0FJQUlRMUJBQ0VHSUFNaEJBTkFJQXdnQkVFQ2RHb2hCQ0FFS0FJQUlRUWdEU0FHUVFKMGFpRU9JQTRnQkRZQ0FDQUdRUUZxSVFZZ0JpQURhaUVFSUFZZ0IwY05BQXNMSUFWQkFXb2hCU0FGSUFwSURRQUxDeUFMUlNFRUlBRWdBMGdoQlNBQklBTWdCUnNoQVNBQklBSnJJUUVnQUVIOENtb2hBQ0FFQkVCQkFDRUJCU0FBS0FJQUlRSWdBaUFCYWlFQ0lBQWdBallDQUFzZ0FRdlJBUUVDZnlNR0lRWWpCa0hnQzJva0JpQUdJUVVnQlNBRUVCd2dCVUVVYWlFRUlBUWdBRFlDQUNBQUlBRnFJUUVnQlVFY2FpRUVJQVFnQVRZQ0FDQUZRU1JxSVFFZ0FVRUJPZ0FBSUFVUUhTRUJJQUVFUUNBRkVCNGhBU0FCQkVBZ0FTQUZRZHdMRUhrYUlBRkJGR29oQkNBRUtBSUFJUVFnQkNBQWF5RUFJQUlnQURZQ0FDQURRUUEyQWdBRklBVVFFVUVBSVFFTEJTQUZRZFFBYWlFQUlBQW9BZ0FoQUNBQVJTRUFJQVZCMkFCcUlRRWdBU2dDQUNFQklBTWdBVUVCSUFBYk5nSUFRUUFoQVFzZ0JpUUdJQUVMclFFQ0FYOEJmaUFBUVFCQjNBc1FlaG9nQVFSQUlBQkJ4QUJxSVFJZ0FTa0NBQ0VESUFJZ0F6Y0NBQ0FBUWNnQWFpRUNJQU5DSUlnaEF5QURweUVCSUFGQkEyb2hBU0FCUVh4eElRRWdBaUFCTmdJQUlBQkIwQUJxSVFJZ0FpQUJOZ0lBQ3lBQVFkUUFhaUVCSUFGQkFEWUNBQ0FBUWRnQWFpRUJJQUZCQURZQ0FDQUFRUlJxSVFFZ0FVRUFOZ0lBSUFCQjhBQnFJUUVnQVVFQU5nSUFJQUJCZ0F0cUlRQWdBRUYvTmdJQUM5Qk5BaU4vQTMwakJpRVpJd1pCZ0FocUpBWWdHVUh3QjJvaEFpQVpJZ3hCN0FkcUlSMGdERUhvQjJvaEhpQUFFREVoQVFKL0lBRUVRQ0FBUWRNS2FpRUJJQUV0QUFBaEFTQUJRZjhCY1NFQklBRkJBbkVoQXlBRFJRUkFJQUJCSWhBVlFRQU1BZ3NnQVVFRWNTRURJQU1FUUNBQVFTSVFGVUVBREFJTElBRkJBWEVoQVNBQkJFQWdBRUVpRUJWQkFBd0NDeUFBUWRBSWFpRUJJQUVvQWdBaEFTQUJRUUZIQkVBZ0FFRWlFQlZCQUF3Q0N5QUFRZFFJYWlFQkFrQUNRQ0FCTEFBQVFSNXJJZ0VFUUNBQlFTSkdCRUFNQWdVTUF3c0FDeUFBRURBaEFTQUJRZjhCY1VFQlJ3UkFJQUJCSWhBVlFRQU1CQXNnQUNBQ1FRWVFJaUVCSUFGRkJFQWdBRUVLRUJWQkFBd0VDeUFDRUVraEFTQUJSUVJBSUFCQkloQVZRUUFNQkFzZ0FCQWpJUUVnQVFSQUlBQkJJaEFWUVFBTUJBc2dBQkF3SVFFZ0FVSC9BWEVoQXlBQVFRUnFJUk1nRXlBRE5nSUFJQUZCL3dGeFJRUkFJQUJCSWhBVlFRQU1CQXNnQVVIL0FYRkJFRW9FUUNBQVFRVVFGVUVBREFRTElBQVFJeUVCSUFBZ0FUWUNBQ0FCUlFSQUlBQkJJaEFWUVFBTUJBc2dBQkFqR2lBQUVDTWFJQUFRSXhvZ0FCQXdJUU1nQTBIL0FYRWhCQ0FFUVE5eElRRWdCRUVFZGlFRVFRRWdBWFFoQlNBQVFlUUFhaUVhSUJvZ0JUWUNBRUVCSUFSMElRVWdBRUhvQUdvaEZDQVVJQVUyQWdBZ0FVRjZhaUVGSUFWQkIwc0VRQ0FBUVJRUUZVRUFEQVFMSUFOQm9IOXFRUmgwUVJoMUlRTWdBMEVBU0FSQUlBQkJGQkFWUVFBTUJBc2dBU0FFU3dSQUlBQkJGQkFWUVFBTUJBc2dBQkF3SVFFZ0FVRUJjU0VCSUFGRkJFQWdBRUVpRUJWQkFBd0VDeUFBRURFaEFVRUFJQUZGRFFNYUlBQVFTaUVCUVFBZ0FVVU5BeG9nQUVIVUNtb2hBd05BSUFBUUx5RUJJQUFnQVJCTElBTkJBRG9BQUNBQkRRQUxJQUFRU2lFQlFRQWdBVVVOQXhvZ0FFRWthaUVCSUFFc0FBQWhBUUpBSUFFRVFDQUFRUUVRRnlFQklBRU5BU0FBUWRnQWFpRUFJQUFvQWdBaEFVRUFJQUZCRlVjTkJSb2dBRUVVTmdJQVFRQU1CUXNMRUV3Z0FCQVpJUUVnQVVFRlJ3UkFJQUJCRkJBVlFRQU1CQXRCQUNFQkEwQWdBQkFaSVFNZ0EwSC9BWEVoQXlBQ0lBRnFJUVFnQkNBRE9nQUFJQUZCQVdvaEFTQUJRUVpIRFFBTElBSVFTU0VCSUFGRkJFQWdBRUVVRUJWQkFBd0VDeUFBUVFnUUxDRUJJQUZCQVdvaEFTQUFRZXdBYWlFTklBMGdBVFlDQUNBQlFiQVFiQ0VCSUFBZ0FSQk5JUUVnQUVId0FHb2hGU0FWSUFFMkFnQWdBVVVFUUNBQVFRTVFGVUVBREFRTElBMG9BZ0FoQWlBQ1FiQVFiQ0VDSUFGQkFDQUNFSG9hSUEwb0FnQWhBUUpBSUFGQkFFb0VRQ0FBUVJCcUlSWURRQUpBSUJVb0FnQWhDaUFLSUFaQnNCQnNhaUVKSUFCQkNCQXNJUUVnQVVIL0FYRWhBU0FCUWNJQVJ3UkFRVDhoQVF3QkN5QUFRUWdRTENFQklBRkIvd0Z4SVFFZ0FVSERBRWNFUUVIQkFDRUJEQUVMSUFCQkNCQXNJUUVnQVVIL0FYRWhBU0FCUWRZQVJ3UkFRY01BSVFFTUFRc2dBRUVJRUN3aEFTQUFRUWdRTENFQ0lBSkJDSFFoQWlBQlFmOEJjU0VCSUFJZ0FYSWhBU0FKSUFFMkFnQWdBRUVJRUN3aEFTQUFRUWdRTENFQ0lBQkJDQkFzSVFNZ0EwRVFkQ0VESUFKQkNIUWhBaUFDUVlEK0EzRWhBaUFCUWY4QmNTRUJJQUlnQVhJaEFTQUJJQU55SVFFZ0NpQUdRYkFRYkdwQkJHb2hEaUFPSUFFMkFnQWdBRUVCRUN3aEFTQUJRUUJISWdNRWYwRUFCU0FBUVFFUUxBc2hBU0FCUWY4QmNTRUNJQW9nQmtHd0VHeHFRUmRxSVJFZ0VTQUNPZ0FBSUFrb0FnQWhCQ0FPS0FJQUlRRWdCRVVFUUNBQkJIOUJ5QUFoQVF3Q0JVRUFDeUVCQ3lBQ1FmOEJjUVJBSUFBZ0FSQThJUUlGSUFBZ0FSQk5JUUlnQ2lBR1FiQVFiR3BCQ0dvaEFTQUJJQUkyQWdBTElBSkZCRUJCelFBaEFRd0JDd0pBSUFNRVFDQUFRUVVRTENFRElBNG9BZ0FoQVNBQlFRQk1CRUJCQUNFRERBSUxRUUFoQkFOQUlBTkJBV29oQlNBQklBUnJJUUVnQVJBdElRRWdBQ0FCRUN3aEFTQUJJQVJxSVFNZ0RpZ0NBQ0VQSUFNZ0Qwb0VRRUhUQUNFQkRBUUxJQUlnQkdvaEJDQUZRZjhCY1NFUElBUWdEeUFCRUhvYUlBNG9BZ0FoQVNBQklBTktCSDhnQXlFRUlBVWhBd3dCQlVFQUN5RURDd1VnRGlnQ0FDRUJJQUZCQUV3RVFFRUFJUU1NQWd0QkFDRURRUUFoQVFOQUlCRXNBQUFoQkFKQUFrQWdCRVVOQUNBQVFRRVFMQ0VFSUFRTkFDQUNJQU5xSVFRZ0JFRi9PZ0FBREFFTElBQkJCUkFzSVFRZ0JFRUJhaUVFSUFSQi93RnhJUVVnQWlBRGFpRVBJQThnQlRvQUFDQUJRUUZxSVFFZ0JFSC9BWEVoQkNBRVFTQkdCRUJCMmdBaEFRd0ZDd3NnQTBFQmFpRURJQTRvQWdBaEJDQURJQVJJRFFBTElBRWhBeUFFSVFFTEN5QVJMQUFBSVFRQ2Z3SkFJQVFFZnlBQlFRSjFJUVFnQXlBRVRnUkFJQllvQWdBaEF5QUJJQU5LQkVBZ0ZpQUJOZ0lBQ3lBQUlBRVFUU0VCSUFvZ0JrR3dFR3hxUVFocUlRTWdBeUFCTmdJQUlBRkZCRUJCNFFBaEFRd0ZDeUFPS0FJQUlRUWdBU0FDSUFRUWVSb2dEaWdDQUNFQklBQWdBaUFCRUU0Z0F5Z0NBQ0VDSUJGQkFEb0FBQ0FPS0FJQUlRUU1BZ3NnQ2lBR1FiQVFiR3BCckJCcUlRUWdCQ0FETmdJQUlBTUVmeUFBSUFNUVRTRUJJQW9nQmtHd0VHeHFRUWhxSVFNZ0F5QUJOZ0lBSUFGRkJFQkI2d0FoQVF3RkN5QUVLQUlBSVFFZ0FVRUNkQ0VCSUFBZ0FSQThJUUVnQ2lBR1FiQVFiR3BCSUdvaEF5QURJQUUyQWdBZ0FVVUVRRUh0QUNFQkRBVUxJQVFvQWdBaEFTQUJRUUowSVFFZ0FDQUJFRHdoQlNBRlJRUkFRZkFBSVFFTUJRc2dEaWdDQUNFQklBUW9BZ0FoRHlBRklRY2dCUVZCQUNFUFFRQWhCMEVBQ3lFRElBOUJBM1FoQlNBRklBRnFJUVVnRmlnQ0FDRVBJQVVnRDAwRVFDQUJJUVVnQkF3REN5QVdJQVUyQWdBZ0FTRUZJQVFGSUFFaEJBd0JDd3dCQ3lBRVFRQktCRUJCQUNFQlFRQWhBd05BSUFJZ0Eyb2hCU0FGTEFBQUlRVWdCVUgvQVhGQkNrb2hEeUFGUVg5SElRVWdEeUFGY1NFRklBVkJBWEVoQlNBQklBVnFJUUVnQTBFQmFpRURJQU1nQkVnTkFBc0ZRUUFoQVFzZ0NpQUdRYkFRYkdwQnJCQnFJUThnRHlBQk5nSUFJQVJCQW5RaEFTQUFJQUVRVFNFQklBb2dCa0d3RUd4cVFTQnFJUU1nQXlBQk5nSUFJQUZGQkVCQjZRQWhBUXdDQzBFQUlRTWdEaWdDQUNFRlFRQWhCeUFQQ3lFQklBa2dBaUFGSUFNUVR5RUVJQVJGQkVCQjlBQWhBUXdCQ3lBQktBSUFJUVFnQkFSQUlBUkJBblFoQkNBRVFRUnFJUVFnQUNBRUVFMGhCQ0FLSUFaQnNCQnNha0drRUdvaEJTQUZJQVEyQWdBZ0JFVUVRRUg1QUNFQkRBSUxJQUVvQWdBaEJDQUVRUUowSVFRZ0JFRUVhaUVFSUFBZ0JCQk5JUVFnQ2lBR1FiQVFiR3BCcUJCcUlRVWdCU0FFTmdJQUlBUkZCRUJCK3dBaEFRd0NDeUFFUVFScUlROGdCU0FQTmdJQUlBUkJmellDQUNBSklBSWdBeEJRQ3lBUkxBQUFJUU1nQXdSQUlBRW9BZ0FoQXlBRFFRSjBJUU1nQUNBSElBTVFUaUFLSUFaQnNCQnNha0VnYWlFRElBTW9BZ0FoQkNBQktBSUFJUVVnQlVFQ2RDRUZJQUFnQkNBRkVFNGdEaWdDQUNFRUlBQWdBaUFFRUU0Z0EwRUFOZ0lBQ3lBSkVGRWdBRUVFRUN3aEFpQUNRZjhCY1NFRElBb2dCa0d3RUd4cVFSVnFJUVVnQlNBRE9nQUFJQUpCL3dGeElRSWdBa0VDU3dSQVFZQUJJUUVNQVFzZ0FnUkFJQUJCSUJBc0lRSWdBaEJTSVNVZ0NpQUdRYkFRYkdwQkRHb2hEeUFQSUNVNEFnQWdBRUVnRUN3aEFpQUNFRkloSlNBS0lBWkJzQkJzYWtFUWFpRWJJQnNnSlRnQ0FDQUFRUVFRTENFQ0lBSkJBV29oQWlBQ1FmOEJjU0VDSUFvZ0JrR3dFR3hxUVJScUlRUWdCQ0FDT2dBQUlBQkJBUkFzSVFJZ0FrSC9BWEVoQWlBS0lBWkJzQkJzYWtFV2FpRWNJQndnQWpvQUFDQUZMQUFBSVFzZ0RpZ0NBQ0VDSUFrb0FnQWhBeUFMUVFGR0JIOGdBaUFERUZNRklBTWdBbXdMSVFJZ0NpQUdRYkFRYkdwQkdHb2hDeUFMSUFJMkFnQWdBa1VFUUVHR0FTRUJEQUlMSUFKQkFYUWhBaUFBSUFJUVBDRVFJQkJGQkVCQmlBRWhBUXdDQ3lBTEtBSUFJUUlnQWtFQVNnUkFRUUFoQWdOQUlBUXRBQUFoQXlBRFFmOEJjU0VESUFBZ0F4QXNJUU1nQTBGL1JnUkFRWXdCSVFFTUJBc2dBMEgvL3dOeElRTWdFQ0FDUVFGMGFpRVhJQmNnQXpzQkFDQUNRUUZxSVFJZ0N5Z0NBQ0VESUFJZ0EwZ05BQXNnQXlFQ0N5QUZMQUFBSVFNQ1FDQURRUUZHQkVBZ0VTd0FBQ0VESUFOQkFFY2lGd1JBSUFFb0FnQWhBeUFEUlFSQUlBSWhBUXdEQ3dVZ0RpZ0NBQ0VEQ3lBS0lBWkJzQkJzYWlBQUlBTkJBblFnQ1NnQ0FHd1FUU0lmTmdJY0lCOUZCRUJCa3dFaEFRd0VDeUFCSUE0Z0Z4c2hBU0FCS0FJQUlRNGdEa0VBU2dSQUlBb2dCa0d3RUd4cVFhZ1FhaUVnSUFrb0FnQWlDa0VBU2lFSlF3QUFBQUFoSlVFQUlRRURRQ0FYQkg4Z0lDZ0NBQ0VDSUFJZ0FVRUNkR29oQWlBQ0tBSUFCU0FCQ3lFRUlBa0VRQ0FMS0FJQUlSZ2dIQ3dBQUVVaElTQUtJQUZzSVNKQkFDRURRUUVoQWdOQUlBUWdBbTRoRWlBU0lCaHdJUklnRUNBU1FRRjBhaUVTSUJJdkFRQWhFaUFTUWYvL0EzR3lJU1FnR3lvQ0FDRW1JQ1lnSkpRaEpDQVBLZ0lBSVNZZ0pDQW1raUVrSUNVZ0pKSWhKQ0FpSUFOcUlSSWdIeUFTUVFKMGFpRVNJQklnSkRnQ0FDQWxJQ1FnSVJzaEpTQURRUUZxSVFNZ0F5QUtTQ0lTQkVCQmZ5QVliaUVqSUFJZ0kwc0VRRUdlQVNFQkRBa0xJQmdnQW13aEFnc2dFZzBBQ3dzZ0FVRUJhaUVCSUFFZ0RrZ05BQXNMSUFWQkFqb0FBQ0FMS0FJQUlRRUZJQUpCQW5RaEFTQUFJQUVRVFNFQ0lBb2dCa0d3RUd4cVFSeHFJUUVnQVNBQ05nSUFJQXNvQWdBaENDQUNSUVJBUWFVQklRRU1CQXNnQ0VFQVRBUkFJQWdoQVF3Q0N5QWNMQUFBUlNFRFF3QUFBQUFoSlVFQUlRRURRQ0FRSUFGQkFYUnFJUVFnQkM4QkFDRUVJQVJCLy84RGNiSWhKQ0FiS2dJQUlTWWdKaUFrbENFa0lBOHFBZ0FoSmlBa0lDYVNJU1FnSlNBa2tpRWtJQUlnQVVFQ2RHb2hCQ0FFSUNRNEFnQWdKU0FrSUFNYklTVWdBVUVCYWlFQklBRWdDRWdOQUFzZ0NDRUJDd3NnQVVFQmRDRUJJQUFnRUNBQkVFNExJQVpCQVdvaEJpQU5LQUlBSVFFZ0JpQUJTQTBCREFNTEN3SkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBVUUvYXc1bkFCWUJGZ0lXRmhZV0F4WVdGaFlFRmhZV0ZoWUZGaFlXRmhZV0JoWVdGaFlXRmdjV0ZoWVdGaFlXQ0JZSkZnb1dGZ3NXRmhZTUZoWVdGZzBXRGhZV0ZoWVBGaFlXRmhZUUZoRVdGaFlTRmhZV0ZoWVdFeFlXRmhZV0ZoWVdGaFlVRmhZV0ZoWVdGUllMSUFCQkZCQVZRUUFNR3dzZ0FFRVVFQlZCQUF3YUN5QUFRUlFRRlVFQURCa0xJQUJCRkJBVlFRQU1HQXNnQUVFREVCVkJBQXdYQ3lBQVFSUVFGVUVBREJZTElBQkJGQkFWUVFBTUZRc2dBRUVERUJWQkFBd1VDeUFBUVFNUUZVRUFEQk1MSUFCQkF4QVZRUUFNRWdzZ0FFRURFQlZCQUF3UkN5QUFRUU1RRlVFQURCQUxJQkVzQUFBaEFTQUJCRUFnQUNBSFFRQVFUZ3NnQUVFVUVCVkJBQXdQQ3lBQVFRTVFGVUVBREE0TElBQkJBeEFWUVFBTURRc2dBRUVVRUJWQkFBd01DeUFBUVJRUUZVRUFEQXNMSUFCQkF4QVZRUUFNQ2dzZ0N5Z0NBQ0VCSUFGQkFYUWhBU0FBSUJBZ0FSQk9JQUJCRkJBVlFRQU1DUXNnQ3lnQ0FDRUJJQUZCQVhRaEFTQUFJQkFnQVJCT0lBQkJBeEFWUVFBTUNBc2dHRUVCZENFQklBQWdFQ0FCRUU0Z0FFRVVFQlZCQUF3SEN5QUlRUUYwSVFFZ0FDQVFJQUVRVGlBQVFRTVFGVUVBREFZTEN3c2dBRUVHRUN3aEFTQUJRUUZxSVFFZ0FVSC9BWEVoQWdKQUlBSUVRRUVBSVFFRFFBSkFJQUJCRUJBc0lRTWdBMFVoQXlBRFJRMEFJQUZCQVdvaEFTQUJJQUpKRFFFTUF3c0xJQUJCRkJBVlFRQU1CUXNMSUFCQkJoQXNJUUVnQVVFQmFpRUJJQUJCOUFCcUlROGdEeUFCTmdJQUlBRkJ2QXhzSVFFZ0FDQUJFRTBoQVNBQVFmZ0JhaUVPSUE0Z0FUWUNBQ0FCUlFSQUlBQkJBeEFWUVFBTUJBc2dEeWdDQUNFQkFuOGdBVUVBU2dSL1FRQWhCRUVBSVFjQ1FBSkFBa0FDUUFKQUFrQURRQ0FBUVJBUUxDRUJJQUZCLy84RGNTRUNJQUJCK0FCcUlBZEJBWFJxSVFNZ0F5QUNPd0VBSUFGQi8vOERjU0VCSUFGQkFVc05BU0FCUlEwQ0lBNG9BZ0FoQlNBQVFRVVFMQ0VCSUFGQi93RnhJUUlnQlNBSFFid01iR29oQ2lBS0lBSTZBQUFnQVVIL0FYRWhBU0FCQkVCQmZ5RUJRUUFoQWdOQUlBQkJCQkFzSVFNZ0EwSC9BWEVoQ0NBRklBZEJ2QXhzYWtFQmFpQUNhaUVHSUFZZ0NEb0FBQ0FEUWY4QmNTRURJQU1nQVVvaENDQURJQUVnQ0JzaEF5QUNRUUZxSVFJZ0NpMEFBQ0VCSUFGQi93RnhJUUVnQWlBQlNRUkFJQU1oQVF3QkN3dEJBQ0VCQTBBZ0FFRURFQ3doQWlBQ1FRRnFJUUlnQWtIL0FYRWhBaUFGSUFkQnZBeHNha0VoYWlBQmFpRUlJQWdnQWpvQUFDQUFRUUlRTENFQ0lBSkIvd0Z4SVFJZ0JTQUhRYndNYkdwQk1Xb2dBV29oQ0NBSUlBSTZBQUFDUUFKQUlBSkIvd0Z4UlEwQUlBQkJDQkFzSVFJZ0FrSC9BWEVoQmlBRklBZEJ2QXhzYWtIQkFHb2dBV29oRUNBUUlBWTZBQUFnQWtIL0FYRWhBaUFOS0FJQUlRWWdBaUFHVGcwSElBZ3NBQUFoQWlBQ1FSOUhEUUFNQVF0QkFDRUNBMEFnQUVFSUVDd2hCaUFHUWYvL0Eyb2hCaUFHUWYvL0EzRWhFQ0FGSUFkQnZBeHNha0hTQUdvZ0FVRUVkR29nQWtFQmRHb2hDU0FKSUJBN0FRQWdCa0VRZENFR0lBWkJFSFVoQmlBTktBSUFJUkFnQmlBUVNDRUdJQVpGRFFnZ0FrRUJhaUVDSUFndEFBQWhCaUFHUWY4QmNTRUdRUUVnQm5RaEJpQUNJQVpJRFFBTEN5QUJRUUZxSVFJZ0FTQURTQVJBSUFJaEFRd0JDd3NMSUFCQkFoQXNJUUVnQVVFQmFpRUJJQUZCL3dGeElRRWdCU0FIUWJ3TWJHcEJ0QXhxSVFJZ0FpQUJPZ0FBSUFCQkJCQXNJUUVnQVVIL0FYRWhBaUFGSUFkQnZBeHNha0cxREdvaEVDQVFJQUk2QUFBZ0JTQUhRYndNYkdwQjBnSnFJUWtnQ1VFQU93RUFJQUZCL3dGeElRRkJBU0FCZENFQklBRkIvLzhEY1NFQklBVWdCMEc4REd4cVFkUUNhaUVDSUFJZ0FUc0JBQ0FGSUFkQnZBeHNha0c0REdvaEJpQUdRUUkyQWdBZ0Npd0FBQ0VCQWtBQ1FDQUJCRUJCQUNFSVFRSWhBd05BSUFVZ0IwRzhER3hxUVFGcUlBaHFJUUlnQWkwQUFDRUNJQUpCL3dGeElRSWdCU0FIUWJ3TWJHcEJJV29nQW1vaEFpQUNMQUFBSVFzZ0N3UkFRUUFoQVFOQUlCQXRBQUFoQXlBRFFmOEJjU0VESUFBZ0F4QXNJUU1nQTBILy93TnhJUXNnQmlnQ0FDRURJQVVnQjBHOERHeHFRZElDYWlBRFFRRjBhaUVSSUJFZ0N6c0JBQ0FEUVFGcUlRTWdCaUFETmdJQUlBRkJBV29oQVNBQ0xRQUFJUXNnQzBIL0FYRWhDeUFCSUF0SkRRQUxJQW9zQUFBaEFnVWdBU0VDQ3lBRElRRWdDRUVCYWlFSUlBSkIvd0Z4SVFNZ0NDQURTUVJBSUFFaEF5QUNJUUVNQVFzTElBRkJBRW9OQVFWQkFpRUJEQUVMREFFTFFRQWhBZ05BSUFVZ0IwRzhER3hxUWRJQ2FpQUNRUUYwYWlFRElBTXVBUUFoQXlBTUlBSkJBblJxSVFnZ0NDQURPd0VBSUFKQi8vOERjU0VESUF3Z0FrRUNkR3BCQW1vaENDQUlJQU03QVFBZ0FrRUJhaUVDSUFJZ0FVZ05BQXNMSUF3Z0FVRUVRUUVRWmlBR0tBSUFJUUVDUUNBQlFRQktCRUJCQUNFQkEwQWdEQ0FCUVFKMGFrRUNhaUVDSUFJdUFRQWhBaUFDUWY4QmNTRUNJQVVnQjBHOERHeHFRY1lHYWlBQmFpRURJQU1nQWpvQUFDQUJRUUZxSVFFZ0JpZ0NBQ0VDSUFFZ0FrZ05BQXNnQWtFQ1RBUkFJQUloQVF3Q0MwRUNJUUVEUUNBSklBRWdIU0FlRUZVZ0hTZ0NBQ0VDSUFKQi93RnhJUUlnQlNBSFFid01iR3BCd0FocUlBRkJBWFJxSVFNZ0F5QUNPZ0FBSUI0b0FnQWhBaUFDUWY4QmNTRUNJQVVnQjBHOERHeHFJQUZCQVhScVFjRUlhaUVESUFNZ0Fqb0FBQ0FCUVFGcUlRRWdCaWdDQUNFQ0lBRWdBa2dOQUFzZ0FpRUJDd3NnQVNBRVNpRUNJQUVnQkNBQ0d5RUVJQWRCQVdvaEJ5QVBLQUlBSVFFZ0J5QUJTQTBBREFVQUN3QUxJQUJCRkJBVlFRQU1DZ3NnRGlnQ0FDRUJJQUJCQ0JBc0lRSWdBa0gvQVhFaEFpQUJJQWRCdkF4c2FpRURJQU1nQWpvQUFDQUFRUkFRTENFQ0lBSkIvLzhEY1NFQ0lBRWdCMEc4REd4cVFRSnFJUU1nQXlBQ093RUFJQUJCRUJBc0lRSWdBa0gvL3dOeElRSWdBU0FIUWJ3TWJHcEJCR29oQXlBRElBSTdBUUFnQUVFR0VDd2hBaUFDUWY4QmNTRUNJQUVnQjBHOERHeHFRUVpxSVFNZ0F5QUNPZ0FBSUFCQkNCQXNJUUlnQWtIL0FYRWhBaUFCSUFkQnZBeHNha0VIYWlFRElBTWdBam9BQUNBQVFRUVFMQ0VDSUFKQkFXb2hBaUFDUWY4QmNTRUVJQUVnQjBHOERHeHFRUWhxSVFNZ0F5QUVPZ0FBSUFKQi93RnhJUUlnQWdSQUlBRWdCMEc4REd4cVFRbHFJUUpCQUNFQkEwQWdBRUVJRUN3aEJ5QUhRZjhCY1NFSElBSWdBV29oQkNBRUlBYzZBQUFnQVVFQmFpRUJJQU10QUFBaEJ5QUhRZjhCY1NFSElBRWdCMGtOQUFzTElBQkJCQkFWUVFBTUNRc2dBRUVVRUJVTUFnc2dBRUVVRUJVTUFRc2dCRUVCZEF3Q0MwRUFEQVVGUVFBTEN5RVFJQUJCQmhBc0lRRWdBVUVCYWlFQklBQkIvQUZxSVFVZ0JTQUJOZ0lBSUFGQkdHd2hBU0FBSUFFUVRTRUJJQUJCZ0FOcUlRNGdEaUFCTmdJQUlBRkZCRUFnQUVFREVCVkJBQXdFQ3lBRktBSUFJUUlnQWtFWWJDRUNJQUZCQUNBQ0VIb2FJQVVvQWdBaEFRSkFJQUZCQUVvRVFFRUFJUWNDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBMEFnRGlnQ0FDRUVJQUJCRUJBc0lRRWdBVUgvL3dOeElRSWdBRUdBQW1vZ0IwRUJkR29oQXlBRElBSTdBUUFnQVVILy93TnhJUUVnQVVFQ1N3MEJJQUJCR0JBc0lRSWdCQ0FIUVJoc2FpRUJJQUVnQWpZQ0FDQUFRUmdRTENFQ0lBUWdCMEVZYkdwQkJHb2hBeUFESUFJMkFnQWdBU2dDQUNFQklBSWdBVWtOQWlBQVFSZ1FMQ0VCSUFGQkFXb2hBU0FFSUFkQkdHeHFRUWhxSVFJZ0FpQUJOZ0lBSUFCQkJoQXNJUUVnQVVFQmFpRUJJQUZCL3dGeElRRWdCQ0FIUVJoc2FrRU1haUVJSUFnZ0FUb0FBQ0FBUVFnUUxDRUJJQUZCL3dGeElRSWdCQ0FIUVJoc2FrRU5haUVHSUFZZ0Fqb0FBQ0FCUWY4QmNTRUJJQTBvQWdBaEFpQUJJQUpPRFFNZ0NDd0FBQ0VCSUFFRWYwRUFJUUVEUUNBQVFRTVFMQ0VESUFCQkFSQXNJUUlnQWdSL0lBQkJCUkFzQlVFQUN5RUNJQUpCQTNRaEFpQUNJQU5xSVFJZ0FrSC9BWEVoQWlBTUlBRnFJUU1nQXlBQ09nQUFJQUZCQVdvaEFTQUlMUUFBSVFJZ0FrSC9BWEVoQXlBQklBTkpEUUFMSUFKQi93RnhCVUVBQ3lFQklBRkJCSFFoQVNBQUlBRVFUU0VCSUFRZ0IwRVliR3BCRkdvaENpQUtJQUUyQWdBZ0FVVU5CQ0FJTEFBQUlRSWdBZ1JBUVFBaEFnTkFJQXdnQW1vdEFBQWhDMEVBSVFNRFFFRUJJQU4wSVFrZ0NTQUxjU0VKSUFrRVFDQUFRUWdRTENFSklBbEIvLzhEY1NFUklBb29BZ0FoQVNBQklBSkJCSFJxSUFOQkFYUnFJUllnRmlBUk93RUFJQWxCRUhRaENTQUpRUkIxSVFrZ0RTZ0NBQ0VSSUJFZ0NVd05DUVVnQVNBQ1FRUjBhaUFEUVFGMGFpRUpJQWxCZnpzQkFBc2dBMEVCYWlFRElBTkJDRWtOQUFzZ0FrRUJhaUVDSUFndEFBQWhBeUFEUWY4QmNTRURJQUlnQTBrTkFBc0xJQlVvQWdBaEFTQUdMUUFBSVFJZ0FrSC9BWEVoQWlBQklBSkJzQkJzYWtFRWFpRUJJQUVvQWdBaEFTQUJRUUowSVFFZ0FDQUJFRTBoQVNBRUlBZEJHR3hxUVJCcUlRb2dDaUFCTmdJQUlBRkZEUVlnRlNnQ0FDRUNJQVl0QUFBaEF5QURRZjhCY1NFRElBSWdBMEd3RUd4cVFRUnFJUUlnQWlnQ0FDRUNJQUpCQW5RaEFpQUJRUUFnQWhCNkdpQVZLQUlBSVFJZ0JpMEFBQ0VCSUFGQi93RnhJUU1nQWlBRFFiQVFiR3BCQkdvaEFTQUJLQUlBSVFFZ0FVRUFTZ1JBUVFBaEFRTkFJQUlnQTBHd0VHeHFJUUlnQWlnQ0FDRURJQUFnQXhCTklRSWdDaWdDQUNFRUlBUWdBVUVDZEdvaEJDQUVJQUkyQWdBZ0NpZ0NBQ0VDSUFJZ0FVRUNkR29oQWlBQ0tBSUFJUVFnQkVVTkNRSkFJQU5CQUVvRVFDQUlMUUFBSVFrZ0EwRi9haUVDSUFsQi93RnhJUWtnQVNBSmNDRUpJQWxCL3dGeElRa2dCQ0FDYWlFRUlBUWdDVG9BQUNBRFFRRkdEUUVnQVNFREEwQWdDQzBBQUNFSklBbEIvd0Z4SVFRZ0F5QUViU0VESUFvb0FnQWdBVUVDZEdvaEJDQUVLQUlBSVFzZ0FrRi9haUVFSUFsQi93RnhJUWtnQXlBSmJ5RUpJQWxCL3dGeElRa2dDeUFFYWlFTElBc2dDVG9BQUNBQ1FRRktCRUFnQkNFQ0RBRUxDd3NMSUFGQkFXb2hBU0FWS0FJQUlRSWdCaTBBQUNFRElBTkIvd0Z4SVFNZ0FpQURRYkFRYkdwQkJHb2hCQ0FFS0FJQUlRUWdBU0FFU0EwQUN3c2dCMEVCYWlFSElBVW9BZ0FoQVNBSElBRklEUUFNQ2dBTEFBc2dBRUVVRUJVTUJnc2dBRUVVRUJVTUJRc2dBRUVVRUJVTUJBc2dBRUVERUJVTUF3c2dBRUVVRUJVTUFnc2dBRUVERUJVTUFRc2dBRUVERUJVTFFRQU1CUXNMSUFCQkJoQXNJUUVnQVVFQmFpRUJJQUJCaEFOcUlRY2dCeUFCTmdJQUlBRkJLR3doQVNBQUlBRVFUU0VCSUFCQmlBTnFJUW9nQ2lBQk5nSUFJQUZGQkVBZ0FFRURFQlZCQUF3RUN5QUhLQUlBSVFJZ0FrRW9iQ0VDSUFGQkFDQUNFSG9hSUFjb0FnQWhBUUpBSUFGQkFFb0VRRUVBSVFFQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBTkFJQW9vQWdBaEJDQUVJQUZCS0d4cUlRd2dBRUVRRUN3aEFpQUNEUUVnRXlnQ0FDRUNJQUpCQTJ3aEFpQUFJQUlRVFNFQ0lBUWdBVUVvYkdwQkJHb2hDQ0FJSUFJMkFnQWdBa1VOQWlBQVFRRVFMQ0VDSUFJRWZ5QUFRUVFRTENFQ0lBSkJBV29oQWlBQ1FmOEJjUVZCQVFzaEFpQUVJQUZCS0d4cVFRaHFJUVlnQmlBQ09nQUFJQUJCQVJBc0lRSUNRQ0FDQkVBZ0FFRUlFQ3doQWlBQ1FRRnFJUUlnQWtILy93TnhJUU1nRENBRE93RUFJQUpCLy84RGNTRUNJQUpGRFFGQkFDRUNJQk1vQWdBaEF3TkFJQU5CZjJvaEF5QURFQzBoQXlBQUlBTVFMQ0VESUFOQi93RnhJUU1nQ0NnQ0FDRU5JQTBnQWtFRGJHb2hEU0FOSUFNNkFBQWdFeWdDQUNFRElBTkJmMm9oQXlBREVDMGhBeUFBSUFNUUxDRU5JQTFCL3dGeElRa2dDQ2dDQUNFRElBTWdBa0VEYkdwQkFXb2hDeUFMSUFrNkFBQWdBeUFDUVFOc2FpRURJQU1zQUFBaEN5QUxRZjhCY1NFUklCTW9BZ0FoQXlBRElCRk1EUVlnRFVIL0FYRWhEU0FESUExTURRY2dDeUFKUVJoMFFSaDFSaUVOSUEwTkNDQUNRUUZxSVFJZ0RDOEJBQ0VOSUExQi8vOERjU0VOSUFJZ0RVa05BQXNGSUF4QkFEc0JBQXNMSUFCQkFoQXNJUUlnQWcwR0lBWXNBQUFoQXlBVEtBSUFJZ3hCQUVvaEFnSkFBa0FnQTBIL0FYRkJBVW9FUUNBQ1JRMEJRUUFoQWdOQUlBQkJCQkFzSVFNZ0EwSC9BWEVoQXlBSUtBSUFJUXdnRENBQ1FRTnNha0VDYWlFTUlBd2dBem9BQUNBR0xRQUFJUXdnREVIL0FYRWdBMG9oQXlBRFJRMExJQUpCQVdvaEFpQVRLQUlBSVFNZ0FpQURTQTBBQ3d3QkJTQUNCRUFnQ0NnQ0FDRUlRUUFoQWdOQUlBZ2dBa0VEYkdwQkFtb2hEU0FOUVFBNkFBQWdBa0VCYWlFQ0lBSWdERWdOQUFzTElBTU5BUXNNQVF0QkFDRUNBMEFnQUVFSUVDd2FJQUJCQ0JBc0lRTWdBMEgvQVhFaENDQUVJQUZCS0d4cVFRbHFJQUpxSVFNZ0F5QUlPZ0FBSUFCQkNCQXNJUWdnQ0VIL0FYRWhEQ0FFSUFGQktHeHFRUmhxSUFKcUlRMGdEU0FNT2dBQUlBTXRBQUFoQXlBRFFmOEJjU0VESUE4b0FnQWhEQ0FNSUFOTURRb2dDRUgvQVhFaEF5QUZLQUlBSVFnZ0F5QUlTQ0VESUFORkRRc2dBa0VCYWlFQ0lBWXRBQUFoQXlBRFFmOEJjU0VESUFJZ0Ewa05BQXNMSUFGQkFXb2hBU0FIS0FJQUlRSWdBU0FDU0EwQURBd0FDd0FMSUFCQkZCQVZRUUFNRGdzZ0FFRURFQlZCQUF3TkN5QUFRUlFRRlVFQURBd0xJQUJCRkJBVlFRQU1Dd3NnQUVFVUVCVkJBQXdLQ3lBQVFSUVFGVUVBREFrTElBQkJGQkFWUVFBTUNBc2dBRUVVRUJWQkFBd0hDeUFBUVJRUUZVRUFEQVlBQ3dBTEN5QUFRUVlRTENFQklBRkJBV29oQVNBQVFZd0RhaUVDSUFJZ0FUWUNBQUpBSUFGQkFFb0VRRUVBSVFFQ1FBSkFBa0FDUUFOQUlBQkJBUkFzSVFNZ0EwSC9BWEVoQXlBQVFaQURhaUFCUVFac2FpRUVJQVFnQXpvQUFDQUFRUkFRTENFRElBTkIvLzhEY1NFRUlBQWdBVUVHYkdwQmtnTnFJUU1nQXlBRU93RUFJQUJCRUJBc0lRUWdCRUgvL3dOeElRZ2dBQ0FCUVFac2FrR1VBMm9oQkNBRUlBZzdBUUFnQUVFSUVDd2hDQ0FJUWY4QmNTRUdJQUFnQVVFR2JHcEJrUU5xSVF3Z0RDQUdPZ0FBSUFNdUFRQWhBeUFERFFFZ0JDNEJBQ0VESUFNTkFpQUlRZjhCY1NFRElBY29BZ0FoQkNBRElBUklJUU1nQTBVTkF5QUJRUUZxSVFFZ0FpZ0NBQ0VESUFFZ0EwZ05BQXdHQUFzQUN5QUFRUlFRRlVFQURBZ0xJQUJCRkJBVlFRQU1Cd3NnQUVFVUVCVkJBQXdHQUFzQUN3c2dBQkFoSUFCQjFBZHFJUUVnQVVFQU5nSUFJQk1vQWdBaEFRSkFJQUZCQUVvRVFFRUFJUUVEUUFKQUlCUW9BZ0FoQWlBQ1FRSjBJUUlnQUNBQ0VFMGhBeUFBUVpRR2FpQUJRUUowYWlFQ0lBSWdBellDQUNBVUtBSUFJUU1nQTBFQmRDRURJQU5CL3YvLy93ZHhJUU1nQUNBREVFMGhCeUFBUVpRSGFpQUJRUUowYWlFRElBTWdCellDQUNBQUlCQVFUU0VISUFCQjJBZHFJQUZCQW5ScUlRUWdCQ0FITmdJQUlBSW9BZ0FoQWlBQ1JRMEFJQU1vQWdBaEF5QURSU0VESUFkRklRY2dCeUFEY2cwQUlCUW9BZ0FoQXlBRFFRSjBJUU1nQWtFQUlBTVFlaG9nQVVFQmFpRUJJQk1vQWdBaEFpQUJJQUpJRFFFTUF3c0xJQUJCQXhBVlFRQU1CUXNMSUJvb0FnQWhBU0FBUVFBZ0FSQldJUUZCQUNBQlJRMERHaUFVS0FJQUlRRWdBRUVCSUFFUVZpRUJRUUFnQVVVTkF4b2dHaWdDQUNFQklBQkIzQUJxSVFJZ0FpQUJOZ0lBSUJRb0FnQWhBU0FBUWVBQWFpRUNJQUlnQVRZQ0FDQUJRUUYwSVFJZ0FrSCsvLy8vQjNFaEJDQUZLQUlBSVFnZ0NFRUFTZ1IvSUE0b0FnQWhCeUFCUVFKdElRTkJBQ0VDUVFBaEFRTkFJQWNnQVVFWWJHb2hCU0FGS0FJQUlRVWdCU0FEU1NFR0lBVWdBeUFHR3lFR0lBY2dBVUVZYkdwQkJHb2hCU0FGS0FJQUlRVWdCU0FEU1NFTUlBVWdBeUFNR3lFRklBVWdCbXNoQlNBSElBRkJHR3hxUVFocUlRWWdCaWdDQUNFR0lBVWdCbTRoQlNBRklBSktJUVlnQlNBQ0lBWWJJUUlnQVVFQmFpRUJJQUVnQ0VnTkFBc2dBa0VDZENFQklBRkJCR29GUVFRTElRRWdFeWdDQUNFQ0lBSWdBV3doQVNBQVFReHFJUUlnQkNBQlN5RURJQUlnQkNBQklBTWJJZ0kyQWdBZ0FFSFZDbW9oQVNBQlFRRTZBQUFnQUVIRUFHb2hBU0FCS0FJQUlRRUNRQ0FCQkVBZ0FFSFFBR29oQVNBQktBSUFJUUVnQUVISUFHb2hBeUFES0FJQUlRTWdBU0FEUndSQVFjd1dRY1FUUWFBZ1FZUVhFQVFMSUFCQnpBQnFJUU1nQXlnQ0FDRURJQUpCM0F0cUlRSWdBaUFEYWlFQ0lBSWdBVTBOQVNBQVFRTVFGVUVBREFVTEN5QUFFQjhoQVNBQVFTaHFJUUFnQUNBQk5nSUFRUUVNQXdzZ0FDQUNRUVlRSWlFQklBRkJBRWNoQVNBQ0xBQUFJUU1nQTBIbUFFWWhBeUFCSUFOeEJFQWdBa0VCYWlFQklBRXNBQUFoQVNBQlFla0FSZ1JBSUFKQkFtb2hBU0FCTEFBQUlRRWdBVUh6QUVZRVFDQUNRUU5xSVFFZ0FTd0FBQ0VCSUFGQjZBQkdCRUFnQWtFRWFpRUJJQUVzQUFBaEFTQUJRZVVBUmdSQUlBSkJCV29oQVNBQkxBQUFJUUVnQVVIaEFFWUVRQ0FBRURBaEFTQUJRZjhCY1VIa0FFWUVRQ0FBRURBaEFTQUJRZjhCY1VVRVFDQUFRU1lRRlVFQURBb0xDd3NMQ3dzTEN3c2dBRUVpRUJVTFFRQUxJUUFnR1NRR0lBQUxEd0VCZnlBQVFkd0xFRTBoQVNBQkN6OEJBWDhnQUVFa2FpRUJJQUVzQUFBaEFTQUJCSDlCQUFVZ0FFRVVhaUVCSUFFb0FnQWhBU0FBUVJocUlRQWdBQ2dDQUNFQUlBRWdBR3NMSVFBZ0FBdUJBZ0VDZnlBQVFkZ0thaUVCSUFFb0FnQWhBUUovQWtBZ0FVRi9SdzBBSUFBUU1DRUJJQUJCMUFCcUlRSWdBaWdDQUNFQ0lBSUVmMEVBQlNBQlFmOEJjVUhQQUVjRVFDQUFRUjRRRlVFQURBTUxJQUFRTUNFQklBRkIvd0Z4UWVjQVJ3UkFJQUJCSGhBVlFRQU1Bd3NnQUJBd0lRRWdBVUgvQVhGQjV3QkhCRUFnQUVFZUVCVkJBQXdEQ3lBQUVEQWhBU0FCUWY4QmNVSFRBRWNFUUNBQVFSNFFGVUVBREFNTElBQVFNeUVCSUFFRVFDQUFRZE1LYWlFQklBRXNBQUFoQVNBQlFRRnhJUUVnQVVVTkFpQUFRZHdLYWlFQklBRkJBRFlDQUNBQVFkUUthaUVCSUFGQkFEb0FBQ0FBUVNBUUZRdEJBQXNNQVFzZ0FCQktDeUVBSUFBTEZBRUJmd05BSUFBUUxpRUJJQUZCZjBjTkFBc0xaUUVFZnlBQVFSUnFJUU1nQXlnQ0FDRUZJQVVnQW1vaEJpQUFRUnhxSVFRZ0JDZ0NBQ0VFSUFZZ0JFc0VmeUFBUWRRQWFpRUFJQUJCQVRZQ0FFRUFCU0FCSUFVZ0FoQjVHaUFES0FJQUlRQWdBQ0FDYWlFQUlBTWdBRFlDQUVFQkN5RUFJQUFMYUFFQ2Z5QUFFREFoQWlBQ1FmOEJjU0VDSUFBUU1DRUJJQUZCL3dGeElRRWdBVUVJZENFQklBRWdBbkloQWlBQUVEQWhBU0FCUWY4QmNTRUJJQUZCRUhRaEFTQUNJQUZ5SVFJZ0FCQXdJUUFnQUVIL0FYRWhBQ0FBUVJoMElRQWdBaUFBY2lFQUlBQUxFd0VCZjBFRUVGNGhBQ0FBUVFBMkFnQWdBQXNUQVFGL0lBQW9BZ0FoQVNBQkVCQWdBQkJmQ3lFQUlBQW9BZ0FoQUNBQUJIOGdBRUVFYWlFQUlBQW9BZ0FGUVFBTElRQWdBQXNhQUNBQUtBSUFJUUFnQUFSL0lBQW9BZ0FGUVFBTElRQWdBQXZiQndJU2Z3RjlJd1loRUNNR1FSQnFKQVlnRUVFRWFpRUxJQkFoRENBRVFRQTJBZ0FnQUNnQ0FDRUdBa0FDUUNBR0RRQkJJQ0VGQTBBQ1FDQUxRUUEyQWdBZ0RFRUFOZ0lBSUFVZ0Frb2hCaUFDSUFVZ0Joc2hCaUFCSUFZZ0N5QU1RUUFRR3lFS0lBQWdDallDQUFKQUFrQUNRQUpBSUF3b0FnQU9BZ0VBQWdzZ0FpQUZUQ0VISUFkQkFYTWhCU0FGUVFGeElRVWdCaUFGZENFRlFRRkJBaUFIR3lFR0lBWWhDVUVBSUFnZ0J4c2hDQ0FGSVFZTUFnc2dDeWdDQUNFSElBUW9BZ0FoQlNBRklBZHFJUVVnQkNBRk5nSUFJQUVnQjJvaEFVRUFJUWtnQWlBSGF5RUNEQUVMUVFFaENVRi9JUWdMQWtBQ1FBSkFJQWxCQTNFT0F3QUJBQUVMREFFTERBRUxJQW9FUUNBS0lRWU1Bd1VnQmlFRkRBSUxBQXNMSUFrRWZ5QUlCU0FLSVFZTUFRc2hFZ3dCQ3lBR1FRUnFJUW9nQ2lnQ0FDRUlJQWhCQW5RaENDQUlFRjRoRFNBTlJRUkFFQVlMSUFvb0FnQWhDQ0FJUVFCS0JFQWdDRUVDZENFSUlBMUJBQ0FJRUhvYUMwRUFJUVZCQUNFS0lBRWhDQ0FHSVFFQ1FBSkFBa0FEUUNBTFFRQTJBZ0FnREVFQU5nSUFJQUpCSUVnaEJpQUNRU0FnQmhzaENTQUJJQWdnQ1VFQUlBc2dEQkFVSVFFZ0FVVUVRRUVnSVFZZ0NTRUJBMEFnQWlBR1NpRUdJQVpGRFFRZ0FVRUJkQ0VHSUFZZ0Frb2hBU0FDSUFZZ0FSc2hBU0FBS0FJQUlRa2dDU0FJSUFGQkFDQUxJQXdRRkNFSklBbEZEUUFMSUFraEFRc2dCQ2dDQUNFR0lBWWdBV29oQmlBRUlBWTJBZ0FnQ0NBQmFpRUlJQUlnQVdzaEJpQU1LQUlBSVJFZ0VTQUthaUVKQWtBQ1FDQUZJQWxJQkVBZ0JVVWhBaUFGUVFGMElRRkJnQ0FnQVNBQ0d5RUNJQUFvQWdBaEFTQUJRUVJxSVFVZ0JTZ0NBQ0VGSUFWQkFFb0VRQ0FDUVFKMElRNUJBQ0VCQTBBZ0RTQUJRUUowYWlFSElBY29BZ0FoQlNBRklBNFFZQ0VGSUFWRkRRWWdCeUFGTmdJQUlBRkJBV29oQVNBQUtBSUFJUWNnQjBFRWFpRUZJQVVvQWdBaEJTQUJJQVZJRFFBTElBVWhEaUFISVFFTUFnc0ZJQUFvQWdBaUFVRUVhaUVISUFVaEFpQUhLQUlBSVE0TUFRc01BUXNnRGtFQVNnUkFJQkZCQUVvaEV5QUxLQUlBSVJSQkFDRUhBMEFnRXdSQUlCUWdCMEVDZEdvb0FnQWhGU0FOSUFkQkFuUnFLQUlBSVJaQkFDRUZBMEFnRlNBRlFRSjBhaUVQSUE4cUFnQWhGeUFYUXdBQWdEOWVCRUJEQUFDQVB5RVhCU0FYUXdBQWdMOWRCRUJEQUFDQXZ5RVhDd3NnQlNBS2FpRVBJQllnRDBFQ2RHb2hEeUFQSUJjNEFnQWdCVUVCYWlFRklBVWdFVWNOQUFzTElBZEJBV29oQlNBRklBNUlCRUFnQlNFSERBRUxDd3NMSUFJaEJTQUpJUW9nQmlFQ0RBQUFDd0FMRUFZTUFRc2dBeUFOTmdJQUlBb2hFZ3NMSUJBa0JpQVNDendCQVg4Z0FFRUlkQ0VDSUFGQi93RnhJUUVnQUVFWWRpRUFJQUFnQVhNaEFDQUFRUUowUWRBWmFpRUFJQUFvQWdBaEFDQUFJQUp6SVFBZ0FBdnZCQUVGZnlBQVFkZ0xhaUVHSUFaQkFEWUNBQ0FBUWRRTGFpRUdJQVpCQURZQ0FDQUFRZFFBYWlFSUlBZ29BZ0FoQmdKL0lBWUVmMEVBQlNBQVFTUnFJUWNDUUFKQUEwQUNRQ0FBRUNBaEJrRUFJQVpGRFFVYUlBQkJBUkFzSVFZZ0JrVU5BQ0FITEFBQUlRWWdCZzBDQTBBZ0FCQVpJUVlnQmtGL1J3MEFDeUFJS0FJQUlRWWdCa1VOQVVFQURBVUxDd3dCQ3lBQVFTTVFGVUVBREFJTElBQkJ4QUJxSVFZZ0JpZ0NBQ0VHSUFZRVFDQUFRY2dBYWlFR0lBWW9BZ0FoQnlBQVFkQUFhaUVHSUFZb0FnQWhCaUFISUFaSEJFQkIweE5CeEJOQnVoaEJpeFFRQkFzTElBQkJqQU5xSVFjZ0J5Z0NBQ0VHSUFaQmYyb2hCaUFHRUMwaEJpQUFJQVlRTENFSUlBaEJmMFlFZjBFQUJTQUhLQUlBSVFZZ0NDQUdTQVIvSUFVZ0NEWUNBQ0FBUVpBRGFpQUlRUVpzYWlFSElBY3NBQUFoQlFKQUFrQWdCUVIvSUFCQjZBQnFJUVVnQlNnQ0FDRUZJQUJCQVJBc0lRWWdBRUVCRUN3aENDQUdRUUJISVFrZ0J5d0FBQ0VHSUFaRklRY2dCVUVCZFNFR0lBa2dCM0lFZnd3Q0JTQUFRZVFBYWlFS0lBb29BZ0FoQ1NBRklBbHJJUWtnQ1VFQ2RTRUpJQUVnQ1RZQ0FDQUtLQUlBSVFFZ0FTQUZhaUVKSUFZaEFTQUpRUUoxQ3dVZ0FFSGtBR29oQlNBRktBSUFJUVpCQUNFSUlBWWhCU0FHUVFGMUlRWkJBU0VIREFFTElRWU1BUXNnQVVFQU5nSUFJQVloQVFzZ0FpQUdOZ0lBSUFoQkFFY2hBaUFDSUFkeUJFQWdBeUFCTmdJQUJTQUZRUU5zSVFJZ0FFSGtBR29oQVNBQktBSUFJUUFnQWlBQWF5RUFJQUJCQW5VaEFDQURJQUEyQWdBZ0FTZ0NBQ0VBSUFBZ0Ftb2hBQ0FBUVFKMUlRVUxJQVFnQlRZQ0FFRUJCVUVBQ3dzTEN5RUFJQUFMakIwQ0ozOERmU01HSVJ3akJrR0FGR29rQmlBY1FZQU1haUVkSUJ4QmdBUnFJU1FnSEVHQUFtb2hGQ0FjSVNBZ0FpMEFBQ0VISUFkQi93RnhJUWNnQUVIY0FHb2dCMEVDZEdvaEJ5QUhLQUlBSVI0Z0FFR0lBMm9oQnlBSEtBSUFJUllnQWtFQmFpRUhJQWN0QUFBaEJ5QUhRZjhCY1NFWElCWWdGMEVvYkdvaElpQWVRUUYxSVI5QkFDQWZheUVwSUFCQkJHb2hHaUFhS0FJQUlRY0Nmd0pBSUFkQkFFb0VmeUFXSUJkQktHeHFRUVJxSVNvZ0FFSDRBV29oS3lBQVFmQUFhaUVsSUFCQjZBcHFJUmdnQUVIa0Ntb2hJU0FVUVFGcUlTd0RRQUpBSUNvb0FnQWhCeUFISUExQkEyeHFRUUpxSVFjZ0J5MEFBQ0VISUFkQi93RnhJUWNnSFNBTlFRSjBhaUVWSUJWQkFEWUNBQ0FXSUJkQktHeHFRUWxxSUFkcUlRY2dCeTBBQUNFSElBZEIvd0Z4SVE4Z0FFSDRBR29nRDBFQmRHb2hCeUFITGdFQUlRY2dCMFVOQUNBcktBSUFJUkFnQUVFQkVDd2hCd0pBQWtBZ0IwVU5BQ0FRSUE5QnZBeHNha0cwREdvaEJ5QUhMUUFBSVFjZ0IwSC9BWEVoQnlBSFFYOXFJUWNnQjBFQ2RFR1FDR29oQnlBSEtBSUFJU01nQUVIWUIyb2dEVUVDZEdvaEJ5QUhLQUlBSVJrZ0l4QXRJUWNnQjBGL2FpRUhJQUFnQnhBc0lRZ2dDRUgvL3dOeElRZ2dHU0FJT3dFQUlBQWdCeEFzSVFjZ0IwSC8vd054SVFjZ0dVRUNhaUVJSUFnZ0J6c0JBQ0FRSUE5QnZBeHNhaUVtSUNZc0FBQWhCeUFIQkVCQkFDRVRRUUloQndOQUlCQWdEMEc4REd4cVFRRnFJQk5xSVFnZ0NDMEFBQ0VJSUFoQi93RnhJUnNnRUNBUFFid01iR3BCSVdvZ0cyb2hDQ0FJTEFBQUlRd2dERUgvQVhFaEp5QVFJQTlCdkF4c2FrRXhhaUFiYWlFSUlBZ3NBQUFoQ0NBSVFmOEJjU0VvUVFFZ0tIUWhDU0FKUVg5cUlTMGdDQVJBSUNVb0FnQWhDeUFRSUE5QnZBeHNha0hCQUdvZ0cyb2hDQ0FJTFFBQUlRZ2dDRUgvQVhFaENpQUxJQXBCc0JCc2FpRU9JQmdvQWdBaENDQUlRUXBJQkVBZ0FCQTBDeUFoS0FJQUlRa2dDVUgvQjNFaENDQUxJQXBCc0JCc2FrRWthaUFJUVFGMGFpRUlJQWd1QVFBaENDQUlRWDlLQkVBZ0N5QUtRYkFRYkdwQkNHb2hEaUFPS0FJQUlRNGdEaUFJYWlFT0lBNHRBQUFoRGlBT1FmOEJjU0VPSUFrZ0RuWWhDU0FoSUFrMkFnQWdHQ2dDQUNFSklBa2dEbXNoQ1NBSlFRQklJUTVCQUNBSklBNGJJUkZCZnlBSUlBNGJJUWtnR0NBUk5nSUFCU0FBSUE0UU5TRUpDeUFMSUFwQnNCQnNha0VYYWlFSUlBZ3NBQUFoQ0NBSUJFQWdDeUFLUWJBUWJHcEJxQkJxSVFnZ0NDZ0NBQ0VJSUFnZ0NVRUNkR29oQ0NBSUtBSUFJUWtMQlVFQUlRa0xJQXdFUUVFQUlRc2dCeUVJQTBBZ0NTQXRjU0VLSUJBZ0QwRzhER3hxUWRJQWFpQWJRUVIwYWlBS1FRRjBhaUVLSUFvdUFRQWhEQ0FKSUNoMUlRb2dERUYvU2dSL0lDVW9BZ0FoRGlBT0lBeEJzQkJzYWlFU0lCZ29BZ0FoQ1NBSlFRcElCRUFnQUJBMEN5QWhLQUlBSVJFZ0VVSC9CM0VoQ1NBT0lBeEJzQkJzYWtFa2FpQUpRUUYwYWlFSklBa3VBUUFoQ1NBSlFYOUtCRUFnRGlBTVFiQVFiR3BCQ0dvaEVpQVNLQUlBSVJJZ0VpQUphaUVTSUJJdEFBQWhFaUFTUWY4QmNTRVNJQkVnRW5ZaEVTQWhJQkUyQWdBZ0dDZ0NBQ0VSSUJFZ0Vtc2hFU0FSUVFCSUlSSkJBQ0FSSUJJYklSRkJmeUFKSUJJYklRa2dHQ0FSTmdJQUJTQUFJQklRTlNFSkN5QU9JQXhCc0JCc2FrRVhhaUVSSUJFc0FBQWhFU0FSQkVBZ0RpQU1RYkFRYkdwQnFCQnFJUXdnRENnQ0FDRU1JQXdnQ1VFQ2RHb2hDU0FKS0FJQUlRa0xJQWxCLy84RGNRVkJBQXNoQ1NBWklBaEJBWFJxSUFrN0FRQWdDRUVCYWlFSUlBdEJBV29oQ3lBTElDZEhCRUFnQ2lFSkRBRUxDeUFISUNkcUlRY0xJQk5CQVdvaEV5QW1MUUFBSVFnZ0NFSC9BWEVoQ0NBVElBaEpEUUFMQ3lBWUtBSUFJUWNnQjBGL1JnMEFJQ3hCQVRvQUFDQVVRUUU2QUFBZ0VDQVBRYndNYkdwQnVBeHFJUWNnQnlnQ0FDRVRJQk5CQWtvRVFDQWpRZi8vQTJvaEcwRUNJUWNEUUNBUUlBOUJ2QXhzYWtIQUNHb2dCMEVCZEdvaENDQUlMUUFBSVFnZ0NFSC9BWEVoQ3lBUUlBOUJ2QXhzYWlBSFFRRjBha0hCQ0dvaENDQUlMUUFBSVFnZ0NFSC9BWEVoQ2lBUUlBOUJ2QXhzYWtIU0Ftb2dCMEVCZEdvaENDQUlMd0VBSVFnZ0NFSC8vd054SVFnZ0VDQVBRYndNYkdwQjBnSnFJQXRCQVhScUlRa2dDUzhCQUNFSklBbEIvLzhEY1NFSklCQWdEMEc4REd4cVFkSUNhaUFLUVFGMGFpRU1JQXd2QVFBaERDQU1RZi8vQTNFaERDQVpJQXRCQVhScUlRNGdEaTRCQUNFT0lCa2dDa0VCZEdvaEZTQVZMZ0VBSVJVZ0NDQUpJQXdnRGlBVkVEWWhDQ0FaSUFkQkFYUnFJUTRnRGk0QkFDRUpJQ01nQ0dzaERBSkFBa0FnQ1FSQUlBd2dDRWdoRlNBTUlBZ2dGUnRCQVhRaEZTQVVJQXBxSVFvZ0NrRUJPZ0FBSUJRZ0Myb2hDeUFMUVFFNkFBQWdGQ0FIYWlFTElBdEJBVG9BQUNBVklBbE1CRUFnRENBSVNnMERJQnNnQ1dzaENBd0NDeUFKUVFGeElRc2dDd1IvSUFsQkFXb2hDU0FKUVFGMklRa2dDQ0FKYXdVZ0NVRUJkU0VKSUFrZ0NHb0xJUWdGSUJRZ0Iyb2hDU0FKUVFBNkFBQUxDeUFPSUFnN0FRQUxJQWRCQVdvaEJ5QUhJQk5JRFFBTEN5QVRRUUJLQkVCQkFDRUhBMEFnRkNBSGFpRUlJQWdzQUFBaENDQUlSUVJBSUJrZ0IwRUJkR29oQ0NBSVFYODdBUUFMSUFkQkFXb2hCeUFISUJOSERRQUxDd3dCQ3lBVlFRRTJBZ0FMSUExQkFXb2hEU0FhS0FJQUlRY2dEU0FIU0EwQkRBTUxDeUFBUVJVUUZVRUFCUXdCQ3d3QkN5QUFRY1FBYWlFVElCTW9BZ0FoQ1NBSkJFQWdBRUhJQUdvaENDQUlLQUlBSVFnZ0FFSFFBR29oRFNBTktBSUFJUTBnQ0NBTlJ3UkFRZE1UUWNRVFFjOFpRZWNVRUFRTEN5QUhRUUowSVFnZ0pDQWRJQWdRZVJvZ0lpNEJBQ0VJSUFnRVFDQVdJQmRCS0d4cUtBSUVJUTBnQ0VILy93TnhJUXhCQUNFSUEwQWdEU0FJUVFOc2FpRUxJQXN0QUFBaEN5QUxRZjhCY1NFTElCMGdDMEVDZEdvaEN5QUxLQUlBSVE4Z0hTQU5JQWhCQTJ4cUxRQUJRUUowYWlFS0FrQUNRQ0FQUlEwQUlBb29BZ0FoRHlBUFJRMEFEQUVMSUFwQkFEWUNBQ0FMUVFBMkFnQUxJQWhCQVdvaENDQUlJQXhKRFFBTEN5QVdJQmRCS0d4cVFRaHFJUXNnQ3l3QUFDRUlJQWdFUUNBV0lCZEJLR3hxUVFScUlReEJBQ0VKSUFjaERRTkFBa0FnRFVFQVNnUkFJQXdvQWdBaEQwRUFJUWRCQUNFSUEwQWdEeUFJUVFOc2FrRUNhaUVLSUFvdEFBQWhDaUFLUWY4QmNTRUtJQWtnQ2tZRVFDQWRJQWhCQW5ScUlRb2dDaWdDQUNFUUlDQWdCMm9oQ2lBUUJFQWdDa0VCT2dBQUlCUWdCMEVDZEdvaENpQUtRUUEyQWdBRklBcEJBRG9BQUNBQVFaUUdhaUFJUVFKMGFpRUtJQW9vQWdBaENpQVVJQWRCQW5ScUlSQWdFQ0FLTmdJQUN5QUhRUUZxSVFjTElBaEJBV29oQ0NBSUlBMUlEUUFMQlVFQUlRY0xJQllnRjBFb2JHcEJHR29nQ1dvaENDQUlMUUFBSVFnZ0NFSC9BWEVoQ0NBQUlCUWdCeUFmSUFnZ0lCQTNJQWxCQVdvaENTQUxMUUFBSVFjZ0IwSC9BWEVoQnlBSklBZFBEUUFnR2lnQ0FDRU5EQUVMQ3lBVEtBSUFJUWtMSUFrRVFDQUFRY2dBYWlFSElBY29BZ0FoQnlBQVFkQUFhaUVJSUFnb0FnQWhDQ0FISUFoSEJFQkIweE5CeEJOQjhCbEI1eFFRQkFzTElDSXVBUUFoQnlBSEJFQWdGaUFYUVNoc2FpZ0NCQ0VOSUI1QkFVb2hEQ0FIUWYvL0EzRWhDQU5BSUFoQmYyb2hDU0FOSUFsQkEyeHFJUWNnQnkwQUFDRUhJQWRCL3dGeElRY2dBRUdVQm1vZ0IwRUNkR29oQnlBSEtBSUFJU0FnRFNBSlFRTnNha0VCYWlFSElBY3RBQUFoQnlBSFFmOEJjU0VISUFCQmxBWnFJQWRCQW5ScUlRY2dCeWdDQUNFUElBd0VRRUVBSVFjRFFDQWdJQWRCQW5ScUlRc2dDeW9DQUNFdUlBOGdCMEVDZEdvaUVDb0NBQ0l2UXdBQUFBQmVJUW9nTGtNQUFBQUFYZ1JBSUFvRVFDQXVJVEFnTGlBdmt5RXVCU0F1SUMrU0lUQUxCU0FLQkVBZ0xpRXdJQzRnTDVJaExnVWdMaUF2a3lFd0N3c2dDeUF3T0FJQUlCQWdMamdDQUNBSFFRRnFJUWNnQnlBZlNBMEFDd3NnQ0VFQlNnUkFJQWtoQ0F3QkN3c0xJQm9vQWdBaEJ5QUhRUUJLQkVBZ0gwRUNkQ0VKUVFBaEJ3TkFJQ1FnQjBFQ2RHb2hDQ0FJS0FJQUlRMGdBRUdVQm1vZ0IwRUNkR29oQ0NBTkJFQWdDQ2dDQUNFSUlBaEJBQ0FKRUhvYUJTQUlLQUlBSVFnZ0FFSFlCMm9nQjBFQ2RHb2hEU0FOS0FJQUlRMGdBQ0FpSUFjZ0hpQUlJQTBRT0FzZ0IwRUJhaUVISUJvb0FnQWhDQ0FISUFoSURRQUxJQWhCQUVvRVFFRUFJUWNEUUNBQVFaUUdhaUFIUVFKMGFpRUlJQWdvQWdBaENDQUNMUUFBSVFrZ0NVSC9BWEVoQ1NBSUlCNGdBQ0FKRURrZ0IwRUJhaUVISUJvb0FnQWhDQ0FISUFoSURRQUxDd3NnQUJBaElBQkIxUXBxSVFJZ0Fpd0FBQ0VISUFjRVFDQUFRWmdJYWlFR0lBWWdLVFlDQUNBZUlBVnJJUVlnQUVINENtb2hCeUFISUFZMkFnQWdBRUdjQ0dvaEJpQUdRUUUyQWdBZ0FrRUFPZ0FBQlNBQVFmZ0thaUVISUFjb0FnQWhBaUFDQkVBZ0JDQURheUVJSUFJZ0NFZ0VRQ0FDSUFOcUlRTWdCaUFETmdJQUlBZEJBRFlDQUFVZ0FpQUlheUVDSUFjZ0FqWUNBQ0FHSUFRMkFnQWdCQ0VEQ3dzTElBQkI0QXBxSVFJZ0FpZ0NBQ0VDSUFCQjhBcHFJUVlnQmlnQ0FDRUhJQUJCbkFocUlnZ29BZ0FoQmdKQUFrQWdBaUFIUmdSQUlBWUVRQ0FBUWRNS2FpRUNJQUlzQUFBaEFpQUNRUVJ4SVFJZ0FnUkFJQUJCOUFwcUlRSWdBaWdDQUNFQ0lBQkJtQWhxSVFZZ0JpZ0NBQ0VISUFVZ0Eyc2hDU0FKSUFkcUlRa2dBaUFKU1NFSklBSWdCMGtoRFNBQ0lBZHJJUUpCQUNBQ0lBMGJJUUlnQWlBRGFpRUNJQUlnQlVvaEJ5QUZJQUlnQnhzaEFpQUpCRUFnQVNBQ05nSUFJQVlvQWdBaEFDQUFJQUpxSVFBZ0JpQUFOZ0lBUVFFTUJnc0xDeUFBUWZRS2FpRUNJQUlvQWdBaEFpQURJQjlySVFZZ0JpQUNhaUVHSUFCQm1BaHFJUUlnQWlBR05nSUFJQWhCQVRZQ0FBd0JCU0FBUVpnSWFpRUNJQVlOQVFzTUFRc2dCQ0FEYXlFRElBSW9BZ0FoQkNBRElBUnFJUU1nQWlBRE5nSUFDeUFUS0FJQUlRSWdBZ1JBSUFCQnlBQnFJUUlnQWlnQ0FDRUNJQUJCMEFCcUlRQWdBQ2dDQUNFQUlBSWdBRWNFUUVIVEUwSEVFMEhrR2tIbkZCQUVDd3NnQVNBRk5nSUFRUUVMSVFBZ0hDUUdJQUFMcUFJQkJYOGdBRUhvQ21vaEJTQUZLQUlBSVFJQ1FDQUNRUUJJQkVCQkFDRUFCU0FDSUFGSUJFQWdBVUVZU2dSQUlBQkJHQkFzSVFJZ0FVRm9haUVCSUFBZ0FSQXNJUUFnQUVFWWRDRUFJQUFnQW1vaEFDQUFEd3NnQWtVRVFDQUFRZVFLYWlFQ0lBSkJBRFlDQUFzZ0FFSGtDbW9oQXdKQUFrQUNRQU5BSUFBUUxpRUNJQUpCZjBZTkFTQUZLQUlBSVFRZ0FpQUVkQ0VDSUFNb0FnQWhCaUFHSUFKcUlRSWdBeUFDTmdJQUlBVWdCRUVJYWlJQ05nSUFJQUlnQVVnTkFBd0NBQXNBQ3lBRlFYODJBZ0JCQUNFQURBUUxJQVJCZUVnRVFFRUFJUUFNQkFzTEN5QUFRZVFLYWlFRUlBUW9BZ0FoQTBFQklBRjBJUUFnQUVGL2FpRUFJQU1nQUhFaEFDQURJQUYySVFNZ0JDQUROZ0lBSUFJZ0FXc2hBU0FGSUFFMkFnQUxDeUFBQzQwQ0FBSkFJQUJCQUVnRWYwRUFCU0FBUVlDQUFVZ0VRQ0FBUVJCSUJFQWdBRUdBQ0dvaEFDQUFMQUFBSVFBTUF3c2dBRUdBQkVnRVFDQUFRUVYySVFBZ0FFR0FDR29oQUNBQUxBQUFJUUFnQUVFRmFpRUFCU0FBUVFwMklRQWdBRUdBQ0dvaEFDQUFMQUFBSVFBZ0FFRUthaUVBQ3d3Q0N5QUFRWUNBZ0FoSUJIOGdBRUdBZ0NCSUJIOGdBRUVQZGlFQUlBQkJnQWhxSVFBZ0FDd0FBQ0VBSUFCQkQyb0ZJQUJCRkhZaEFDQUFRWUFJYWlFQUlBQXNBQUFoQUNBQVFSUnFDd1VnQUVHQWdJQ0FBa2dFZnlBQVFSbDJJUUFnQUVHQUNHb2hBQ0FBTEFBQUlRQWdBRUVaYWdVZ0FFRWVkaUVBSUFCQmdBaHFJUUFnQUN3QUFDRUFJQUJCSG1vTEN3c2hBQXNnQUF1aUFRRURmeUFBUWRRS2FpRUNJQUlzQUFBaEFRSkFBa0FnQVEwQUlBQkIzQXBxSVFFZ0FTZ0NBQ0VCSUFFRVFFRi9JUU1GSUFBUUx5RUJJQUVFUUNBQ0xBQUFJUUVnQVEwQ1FhRVVRY1FUUWZZTFFiVVVFQVFGUVg4aEF3c0xEQUVMSUFGQmYycEJHSFJCR0hVaEFTQUNJQUU2QUFBZ0FFSHNDbW9oQVNBQktBSUFJUUlnQWtFQmFpRUNJQUVnQWpZQ0FDQUFFREFoQUNBQVFmOEJjU0VEQ3lBREM2d0NBUWQvSUFCQjNBcHFJUUlnQWlnQ0FDRUJBa0FnQVVVRVFDQUFRZGdLYWlFRUlBUW9BZ0FoQVNBQlFYOUdCRUFnQUVIUUNHb2hBU0FCS0FJQUlRRWdBVUYvYWlFQklBQkI0QXBxSVFNZ0F5QUJOZ0lBSUFBUU1TRUJJQUZGQkVBZ0FrRUJOZ0lBREFNTElBQkIwd3BxSVFFZ0FTd0FBQ0VCSUFGQkFYRWhBU0FCQkg4Z0JDZ0NBQVVnQUVFZ0VCVU1Bd3NoQVFzZ0FVRUJhaUVISUFRZ0J6WUNBQ0FBUWRRSWFpQUJhaUVESUFNc0FBQWhCaUFHUWY4QmNTRURJQVpCZjBjRVFDQUNRUUUyQWdBZ0FFSGdDbW9oQWlBQ0lBRTJBZ0FMSUFCQjBBaHFJUUVnQVNnQ0FDRUJJQWNnQVU0RVFDQUVRWDgyQWdBTElBQkIxQXBxSVFBZ0FDd0FBQ0VCSUFFRVFFSEZGRUhFRTBIb0MwSGFGQkFFQlNBQUlBWTZBQUFnQXlFRkN3c0xJQVVMVVFFRGZ5QUFRUlJxSVFNZ0F5Z0NBQ0VCSUFCQkhHb2hBaUFDS0FJQUlRSWdBU0FDU1FSL0lBRkJBV29oQUNBRElBQTJBZ0FnQVN3QUFBVWdBRUhVQUdvaEFDQUFRUUUyQWdCQkFBc2hBQ0FBQ3lBQkFYOGdBQkF5SVFFZ0FRUi9JQUFRTXdVZ0FFRWVFQlZCQUFzaEFDQUFDMkFCQVg4Z0FCQXdJUUVnQVVIL0FYRkJ6d0JHQkVBZ0FCQXdJUUVnQVVIL0FYRkI1d0JHQkVBZ0FCQXdJUUVnQVVIL0FYRkI1d0JHQkVBZ0FCQXdJUUFnQUVIL0FYRkIwd0JHSVFBRlFRQWhBQXNGUVFBaEFBc0ZRUUFoQUFzZ0FBdlpBd0VHZnlBQUVEQWhBUUovSUFGQi93RnhCSDhnQUVFZkVCVkJBQVVnQUJBd0lRRWdBRUhUQ21vaEFpQUNJQUU2QUFBZ0FCQWpJUVVnQUJBaklRSWdBQkFqR2lBQUVDTWhBU0FBUWN3SWFpRURJQU1nQVRZQ0FDQUFFQ01hSUFBUU1DRUJJQUZCL3dGeElRRWdBRUhRQ0dvaEF5QURJQUUyQWdBZ0FFSFVDR29oQkNBQUlBUWdBUkFpSVFFZ0FVVUVRQ0FBUVFvUUZVRUFEQUlMSUFCQjhBcHFJUVFnQkVGK05nSUFJQUlnQlhFaEFRSkFJQUZCZjBjRVFDQURLQUlBSVFFZ0FVRUFTZ1JBQTBBQ1FDQUJRWDlxSVFJZ0FFSFVDR29nQW1vaEJpQUdMQUFBSVFZZ0JrRi9SdzBBSUFGQkFVd05CQ0FDSVFFTUFRc0xJQVFnQWpZQ0FDQUFRZlFLYWlFQklBRWdCVFlDQUFzTEN5QUFRZFVLYWlFQklBRXNBQUFoQVNBQkJFQWdBeWdDQUNFRElBTkJBRW9FZjBFQUlRSkJBQ0VCQTBBZ0FFSFVDR29nQVdvaEJDQUVMUUFBSVFRZ0JFSC9BWEVoQkNBQ0lBUnFJUUlnQVVFQmFpRUJJQUVnQTBnTkFBc2dBa0ViYWdWQkd3c2hBU0FBUVNocUlRSWdBaWdDQUNFQ0lBRWdBMm9oQVNBQklBSnFJUUVnQUVFc2FpRURJQU1nQWpZQ0FDQUFRVEJxSVFJZ0FpQUJOZ0lBSUFCQk5Hb2hBU0FCSUFVMkFnQUxJQUJCMkFwcUlRQWdBRUVBTmdJQVFRRUxDeUVBSUFBTG93RUJCMzhnQUVIb0Ntb2hBeUFES0FJQUlRRUNRQ0FCUVJsSUJFQWdBRUhrQ21vaEJDQUJSUVJBSUFSQkFEWUNBQXNnQUVIVUNtb2hCU0FBUWR3S2FpRUdBMEFnQmlnQ0FDRUJJQUVFUUNBRkxBQUFJUUVnQVVVTkF3c2dBQkF1SVFJZ0FrRi9SZzBDSUFNb0FnQWhBU0FDSUFGMElRSWdCQ2dDQUNFSElBY2dBbW9oQWlBRUlBSTJBZ0FnQVVFSWFpRUNJQU1nQWpZQ0FDQUJRUkZJRFFBTEN3c0xyUVVCQ1g4Z0FCQTBJQUZCSUdvaEFpQUNLQUlBSVFVQ1FBSkFJQVZGSWdORkRRQWdBVUdrRUdvaEFpQUNLQUlBSVFJZ0FnMEFRWDhoQVF3QkN5QUJRUVJxSVFJZ0FpZ0NBQ0VDQWtBQ1FDQUNRUWhLQkVBZ0FVR2tFR29oQXlBREtBSUFJUU1nQXcwQkJTQUREUUVMREFFTElBQkI1QXBxSVFnZ0NDZ0NBQ0VKSUFrUU9pRUhJQUZCckJCcUlRSWdBaWdDQUNFQ0lBSkJBVW9FUUNBQlFhUVFhaWdDQUNFS1FRQWhBd05BSUFKQkFYWWhCU0FGSUFOcUlRUWdDaUFFUVFKMGFpRUdJQVlvQWdBaEJpQUdJQWRMSVFZZ0FpQUZheUVDSUFNZ0JDQUdHeUVESUFVZ0FpQUdHeUVDSUFKQkFVb05BQXNGUVFBaEF3c2dBVUVYYWlFQ0lBSXNBQUFoQWlBQ1JRUkFJQUZCcUJCcUlRSWdBaWdDQUNFQ0lBSWdBMEVDZEdvaEFpQUNLQUlBSVFNTElBRkJDR29oQVNBQktBSUFJUUVnQVNBRGFpRUJJQUV0QUFBaEFTQUJRZjhCY1NFQklBQkI2QXBxSVFJZ0FpZ0NBQ0VBSUFBZ0FVZ0VmMEVBSVFCQmZ3VWdBQ0FCYXlFQUlBa2dBWFloQVNBSUlBRTJBZ0FnQXdzaEFTQUNJQUEyQWdBTUFRc2dBVUVYYWlFRElBTXNBQUFoQXlBREJFQkJnUlZCeEJOQjZneEJqQlVRQkFzQ1FDQUNRUUJLQkVBZ0FTZ0NDQ0VJSUFCQjVBcHFJUWxCQUNFQkEwQUNRQ0FJSUFGcUlRTWdBeXdBQUNFRUlBUkIvd0Z4SVFNZ0JFRi9Sd1JBSUFVZ0FVRUNkR29oQkNBRUtBSUFJUVlnQ1NnQ0FDRUVRUUVnQTNRaEJ5QUhRWDlxSVFjZ0JDQUhjU0VISUFZZ0IwWU5BUXNnQVVFQmFpRUJJQUVnQWtnTkFRd0RDd3NnQUVIb0Ntb2hBQ0FBS0FJQUlRSWdBaUFEU0FSQUlBQkJBRFlDQUVGL0lRRUZJQWdnQVdvaEJTQUVJQU4ySVFNZ0NTQUROZ0lBSUFVdEFBQWhBeUFEUWY4QmNTRURJQUlnQTJzaEFpQUFJQUkyQWdBTERBSUxDeUFBUVJVUUZTQUFRZWdLYWlFQUlBQkJBRFlDQUVGL0lRRUxJQUVMWGdFQ2Z5QUVJQU5ySVFRZ0FpQUJheUVDSUFSQmYwb2hCVUVBSUFScklRWWdCQ0FHSUFVYklRVWdBQ0FCYXlFQUlBVWdBR3doQUNBQUlBSnRJUUFnQkVFQVNDRUJRUUFnQUdzaEFpQUNJQUFnQVJzaEFDQUFJQU5xSVFBZ0FBdjdHZ0VjZnlNR0lSd2pCa0VRYWlRR0lCeEJCR29oQ1NBY0lSSWdBRUdBQTJvaENpQUtLQUlBSVEwZ0FFR0FBbW9nQkVFQmRHb2hDaUFLTGdFQUlRb2dDa0gvL3dOeElSa2dEU0FFUVJoc2FrRU5haUVhSUJvdEFBQWhEaUFPUWY4QmNTRU9JQUJCOEFCcUlSVWdGU2dDQUNFUUlCQWdEa0d3RUd4cUlRNGdEaWdDQUNFWUlBcEJBa1loRENBRElBeDBJUW9nRFNBRVFSaHNhaUVXSUJZb0FnQWhEaUFPSUFwSklSQWdEaUFLSUJBYklSQWdEU0FFUVJoc2FrRUVhaUVPSUE0b0FnQWhEaUFPSUFwSklSUWdEaUFLSUJRYklRb2dDaUFRYXlFS0lBMGdCRUVZYkdwQkNHb2hGQ0FVS0FJQUlRNGdDaUFPYmlFUUlBQkIwQUJxSVI0Z0hpZ0NBQ0VmSUFCQnhBQnFJUW9nQ2lnQ0FDRUtJQXBGSVE0Z0FFRUVhaUVUSUJNb0FnQWhDaUFRUVFKMElRWWdCa0VFYWlFSElBb2dCMndoQnlBT0JFQWpCaUVPSXdZZ0IwRVBha0Z3Y1dva0JnVWdBQ0FIRUR3aERpQVRLQUlBSVFvTElBNGdDaUFHRURzYUlBSkJBRW9pQmdSQUlBTkJBblFoRTBFQUlRb0RRQ0FGSUFwcUlRY2dCeXdBQUNFSElBZEZCRUFnQVNBS1FRSjBhaUVISUFjb0FnQWhCeUFIUVFBZ0V4QjZHZ3NnQ2tFQmFpRUtJQW9nQWtjTkFBc0xJQUpCQVVjaENnSkFJQW9nREhFRVFBSkFJQVlFUUVFQUlRb0RRQ0FGSUFwcUlRd2dEQ3dBQUNFTUlBeEZEUUlnQ2tFQmFpRUtJQW9nQWtnTkFBc0ZRUUFoQ2dzTElBb2dBa2NFUUNBUVFRQktJUkVnQUVIb0Ntb2hEQ0FZUVFCS0lROGdBRUhrQ21vaEV5QU5JQVJCR0d4cVFSUnFJUmtnRFNBRVFSaHNha0VRYWlFYlFRQWhDZ0pBQTBBQ1FBSkFBa0FDUUNBQ1FRRnJEZ0lCQUFJTElCRUVRQ0FLUlNFWFFRQWhCRUVBSVEwRFFDQVdLQUlBSVFVZ0ZDZ0NBQ0VHSUFZZ0JHd2hCaUFHSUFWcUlRVWdCVUVCY1NFR0lBa2dCallDQUNBRlFRRjFJUVVnRWlBRk5nSUFJQmNFUUNBVktBSUFJUVlnR2kwQUFDRUZJQVZCL3dGeElRY2dCaUFIUWJBUWJHb2hDeUFNS0FJQUlRVWdCVUVLU0FSQUlBQVFOQXNnRXlnQ0FDRUlJQWhCL3dkeElRVWdCaUFIUWJBUWJHcEJKR29nQlVFQmRHb2hCU0FGTGdFQUlRVWdCVUYvU2dSQUlBWWdCMEd3RUd4cVFRaHFJUXNnQ3lnQ0FDRUxJQXNnQldvaEN5QUxMUUFBSVFzZ0MwSC9BWEVoQ3lBSUlBdDJJUWdnRXlBSU5nSUFJQXdvQWdBaENDQUlJQXRySVFnZ0NFRUFTQ0VMUVFBZ0NDQUxHeUVJUVg4Z0JTQUxHeUVGSUF3Z0NEWUNBQVVnQUNBTEVEVWhCUXNnQmlBSFFiQVFiR3BCRjJvaENDQUlMQUFBSVFnZ0NBUkFJQVlnQjBHd0VHeHFRYWdRYWlFR0lBWW9BZ0FoQmlBR0lBVkJBblJxSVFVZ0JTZ0NBQ0VGQ3lBRlFYOUdEUWNnR3lnQ0FDRUdJQVlnQlVFQ2RHb2hCU0FGS0FJQUlRVWdEaWdDQUNFR0lBWWdEVUVDZEdvaEJpQUdJQVUyQWdBTElBUWdFRWdoQlNBRklBOXhCRUJCQUNFRkEwQWdGQ2dDQUNFR0lBNG9BZ0FoQnlBSElBMUJBblJxSVFjZ0J5Z0NBQ0VISUFjZ0JXb2hCeUFITFFBQUlRY2dCMEgvQVhFaEJ5QVpLQUlBSVFnZ0NDQUhRUVIwYWlBS1FRRjBhaUVISUFjdUFRQWhCeUFIUVg5S0JFQWdGU2dDQUNFSUlBZ2dCMEd3RUd4cUlRY2dBQ0FISUFGQkFpQUpJQklnQXlBR0VEMGhCaUFHUlEwSkJTQVdLQUlBSVFjZ0JpQUViQ0VJSUFnZ0Jtb2hCaUFHSUFkcUlRWWdCa0VCY1NFSElBa2dCellDQUNBR1FRRjFJUVlnRWlBR05nSUFDeUFGUVFGcUlRVWdCRUVCYWlFRUlBVWdHRWdoQmlBRUlCQklJUWNnQnlBR2NRMEFDd3NnRFVFQmFpRU5JQVFnRUVnTkFBc0xEQUlMSUJFRVFDQUtSU0VYUVFBaERVRUFJUVFEUUNBV0tBSUFJUVVnRkNnQ0FDRUdJQVlnQkd3aEJpQUdJQVZxSVFVZ0NVRUFOZ0lBSUJJZ0JUWUNBQ0FYQkVBZ0ZTZ0NBQ0VHSUJvdEFBQWhCU0FGUWY4QmNTRUhJQVlnQjBHd0VHeHFJUXNnRENnQ0FDRUZJQVZCQ2tnRVFDQUFFRFFMSUJNb0FnQWhDQ0FJUWY4SGNTRUZJQVlnQjBHd0VHeHFRU1JxSUFWQkFYUnFJUVVnQlM0QkFDRUZJQVZCZjBvRVFDQUdJQWRCc0JCc2FrRUlhaUVMSUFzb0FnQWhDeUFMSUFWcUlRc2dDeTBBQUNFTElBdEIvd0Z4SVFzZ0NDQUxkaUVJSUJNZ0NEWUNBQ0FNS0FJQUlRZ2dDQ0FMYXlFSUlBaEJBRWdoQzBFQUlBZ2dDeHNoQ0VGL0lBVWdDeHNoQlNBTUlBZzJBZ0FGSUFBZ0N4QTFJUVVMSUFZZ0IwR3dFR3hxUVJkcUlRZ2dDQ3dBQUNFSUlBZ0VRQ0FHSUFkQnNCQnNha0dvRUdvaEJpQUdLQUlBSVFZZ0JpQUZRUUowYWlFRklBVW9BZ0FoQlFzZ0JVRi9SZzBHSUJzb0FnQWhCaUFHSUFWQkFuUnFJUVVnQlNnQ0FDRUZJQTRvQWdBaEJpQUdJQTFCQW5ScUlRWWdCaUFGTmdJQUN5QUVJQkJJSVFVZ0JTQVBjUVJBUVFBaEJRTkFJQlFvQWdBaEJpQU9LQUlBSVFjZ0J5QU5RUUowYWlFSElBY29BZ0FoQnlBSElBVnFJUWNnQnkwQUFDRUhJQWRCL3dGeElRY2dHU2dDQUNFSUlBZ2dCMEVFZEdvZ0NrRUJkR29oQnlBSExnRUFJUWNnQjBGL1NnUkFJQlVvQWdBaENDQUlJQWRCc0JCc2FpRUhJQUFnQnlBQlFRRWdDU0FTSUFNZ0JoQTlJUVlnQmtVTkNBVWdGaWdDQUNFSElBWWdCR3doQ0NBSUlBWnFJUVlnQmlBSGFpRUdJQWxCQURZQ0FDQVNJQVkyQWdBTElBVkJBV29oQlNBRVFRRnFJUVFnQlNBWVNDRUdJQVFnRUVnaEJ5QUhJQVp4RFFBTEN5QU5RUUZxSVEwZ0JDQVFTQTBBQ3dzTUFRc2dFUVJBSUFwRklSZEJBQ0VOUVFBaEJBTkFJQllvQWdBaEJTQVVLQUlBSVFZZ0JpQUViQ0VHSUFZZ0JXb2hCU0FGSUFVZ0FtMGlCU0FDYkdzaEJpQUpJQVkyQWdBZ0VpQUZOZ0lBSUJjRVFDQVZLQUlBSVFZZ0dpMEFBQ0VGSUFWQi93RnhJUWNnQmlBSFFiQVFiR29oQ3lBTUtBSUFJUVVnQlVFS1NBUkFJQUFRTkFzZ0V5Z0NBQ0VJSUFoQi93ZHhJUVVnQmlBSFFiQVFiR3BCSkdvZ0JVRUJkR29oQlNBRkxnRUFJUVVnQlVGL1NnUkFJQVlnQjBHd0VHeHFRUWhxSVFzZ0N5Z0NBQ0VMSUFzZ0JXb2hDeUFMTFFBQUlRc2dDMEgvQVhFaEN5QUlJQXQySVFnZ0V5QUlOZ0lBSUF3b0FnQWhDQ0FJSUF0cklRZ2dDRUVBU0NFTFFRQWdDQ0FMR3lFSVFYOGdCU0FMR3lFRklBd2dDRFlDQUFVZ0FDQUxFRFVoQlFzZ0JpQUhRYkFRYkdwQkYyb2hDQ0FJTEFBQUlRZ2dDQVJBSUFZZ0IwR3dFR3hxUWFnUWFpRUdJQVlvQWdBaEJpQUdJQVZCQW5ScUlRVWdCU2dDQUNFRkN5QUZRWDlHRFFVZ0d5Z0NBQ0VHSUFZZ0JVRUNkR29oQlNBRktBSUFJUVVnRGlnQ0FDRUdJQVlnRFVFQ2RHb2hCaUFHSUFVMkFnQUxJQVFnRUVnaEJTQUZJQTl4QkVCQkFDRUZBMEFnRkNnQ0FDRUdJQTRvQWdBaEJ5QUhJQTFCQW5ScUlRY2dCeWdDQUNFSElBY2dCV29oQnlBSExRQUFJUWNnQjBIL0FYRWhCeUFaS0FJQUlRZ2dDQ0FIUVFSMGFpQUtRUUYwYWlFSElBY3VBUUFoQnlBSFFYOUtCRUFnRlNnQ0FDRUlJQWdnQjBHd0VHeHFJUWNnQUNBSElBRWdBaUFKSUJJZ0F5QUdFRDBoQmlBR1JRMEhCU0FXS0FJQUlRY2dCaUFFYkNFSUlBZ2dCbW9oQmlBR0lBZHFJUVlnQmlBR0lBSnRJZ1lnQW14cklRY2dDU0FITmdJQUlCSWdCallDQUFzZ0JVRUJhaUVGSUFSQkFXb2hCQ0FGSUJoSUlRWWdCQ0FRU0NFSElBY2dCbkVOQUFzTElBMUJBV29oRFNBRUlCQklEUUFMQ3dzZ0NrRUJhaUVLSUFwQkNFa05BQXNMQ3dVZ0VFRUFTaUViSUFKQkFVZ2hDQ0FZUVFCS0lRc2dBRUhvQ21vaEV5QUFRZVFLYWlFSElBMGdCRUVZYkdwQkVHb2hGeUFOSUFSQkdHeHFRUlJxSVNCQkFDRUtBMEFnR3dSQUlBcEJBRWNnQ0hJaElVRUFJUTFCQUNFREEwQWdJVVVFUUVFQUlSSURRQ0FGSUJKcUlRUWdCQ3dBQUNFRUlBUkZCRUFnRlNnQ0FDRUpJQm90QUFBaEJDQUVRZjhCY1NFTUlBa2dERUd3RUd4cUlROGdFeWdDQUNFRUlBUkJDa2dFUUNBQUVEUUxJQWNvQWdBaEVTQVJRZjhIY1NFRUlBa2dERUd3RUd4cVFTUnFJQVJCQVhScUlRUWdCQzRCQUNFRUlBUkJmMG9FUUNBSklBeEJzQkJzYWtFSWFpRVBJQThvQWdBaER5QVBJQVJxSVE4Z0R5MEFBQ0VQSUE5Qi93RnhJUThnRVNBUGRpRVJJQWNnRVRZQ0FDQVRLQUlBSVJFZ0VTQVBheUVSSUJGQkFFZ2hEMEVBSUJFZ0R4c2hFVUYvSUFRZ0R4c2hCQ0FUSUJFMkFnQUZJQUFnRHhBMUlRUUxJQWtnREVHd0VHeHFRUmRxSVJFZ0VTd0FBQ0VSSUJFRVFDQUpJQXhCc0JCc2FrR29FR29oQ1NBSktBSUFJUWtnQ1NBRVFRSjBhaUVFSUFRb0FnQWhCQXNnQkVGL1JnMEhJQmNvQWdBaENTQUpJQVJCQW5ScUlRUWdCQ2dDQUNFRUlBNGdFa0VDZEdvaENTQUpLQUlBSVFrZ0NTQU5RUUowYWlFSklBa2dCRFlDQUFzZ0VrRUJhaUVTSUJJZ0FrZ05BQXNMSUFNZ0VFZ2hCQ0FFSUF0eEJFQkJBQ0VTQTBBZ0JnUkFRUUFoQkFOQUlBVWdCR29oQ1NBSkxBQUFJUWtnQ1VVRVFDQU9JQVJCQW5ScUlRa2dDU2dDQUNFSklBa2dEVUVDZEdvaENTQUpLQUlBSVFrZ0NTQVNhaUVKSUFrdEFBQWhDU0FKUWY4QmNTRUpJQ0FvQWdBaERDQU1JQWxCQkhScUlBcEJBWFJxSVFrZ0NTNEJBQ0VKSUFsQmYwb0VRQ0FCSUFSQkFuUnFJUXdnRENnQ0FDRVJJQllvQWdBaER5QVVLQUlBSVF3Z0RDQURiQ0VkSUIwZ0Qyb2hEeUFWS0FJQUlSMGdIU0FKUWJBUWJHb2hDU0FBSUFrZ0VTQVBJQXdnR1JBK0lRa2dDVVVOQ2dzTElBUkJBV29oQkNBRUlBSklEUUFMQ3lBU1FRRnFJUklnQTBFQmFpRURJQklnR0VnaEJDQURJQkJJSVFrZ0NTQUVjUTBBQ3dzZ0RVRUJhaUVOSUFNZ0VFZ05BQXNMSUFwQkFXb2hDaUFLUVFoSkRRQUxDd3NnSGlBZk5nSUFJQndrQmd2UEF3SUlmd0o5SUFOQkFYVWhDU0FCUVFScUlRTWdBeWdDQUNFRElBTWdBa0VEYkdwQkFtb2hBaUFDTFFBQUlRSWdBa0gvQVhFaEFpQUJRUWxxSUFKcUlRRWdBUzBBQUNFQklBRkIvd0Z4SVFjZ0FFSDRBR29nQjBFQmRHb2hBU0FCTGdFQUlRRWdBUVJBSUFCQitBRnFJUUFnQUNnQ0FDRUlJQVV1QVFBaEFTQUlJQWRCdkF4c2FrRzBER29oQ3lBTExRQUFJUUFnQUVIL0FYRWhBQ0FBSUFGc0lRRWdDQ0FIUWJ3TWJHcEJ1QXhxSVF3Z0RDZ0NBQ0VDSUFKQkFVb0VRRUVBSVFCQkFTRUtBMEFnQ0NBSFFid01iR3BCeGdacUlBcHFJUU1nQXkwQUFDRURJQU5CL3dGeElRMGdCU0FOUVFGMGFpRURJQU11QVFBaEJpQUdRWDlLQkVBZ0N5MEFBQ0VESUFOQi93RnhJUU1nQXlBR2JDRURJQWdnQjBHOERHeHFRZElDYWlBTlFRRjBhaUVHSUFZdkFRQWhCaUFHUWYvL0EzRWhCaUFBSUFaSEJFQWdCQ0FBSUFFZ0JpQURJQWtRUWlBR0lRQWdEQ2dDQUNFQ0N5QURJUUVMSUFwQkFXb2hBeUFESUFKSUJFQWdBeUVLREFFTEN3VkJBQ0VBQ3lBQUlBbElCRUFnQVVFQ2RFR2dDR29xQWdBaER3TkFJQVFnQUVFQ2RHb2hBU0FCS2dJQUlRNGdEeUFPbENFT0lBRWdEamdDQUNBQVFRRnFJUUFnQUNBSlJ3MEFDd3NGSUFCQkZSQVZDd3VGR2dJVmZ3cDlJd1loRmlBQlFRRjFJUThnQVVFQ2RTRU5JQUZCQTNVaERpQUNRZEFBYWlFVUlCUW9BZ0FoRnlBQ1FjUUFhaUVJSUFnb0FnQWhDQ0FJUlNFSUlBOUJBblFoQlNBSUJFQWpCaUVNSXdZZ0JVRVBha0Z3Y1dva0JnVWdBaUFGRUR3aERBc2dBa0dnQ0dvZ0EwRUNkR29oQ0NBSUtBSUFJUWdnRDBGK2FpRUdJQXdnQmtFQ2RHb2hCaUFBSUE5QkFuUnFJUlVnRHdSL0lBVkJjR29oQlNBRlFRUjJJUWNnQjBFRGRDRUVJQVVnQkdzaEJTQU1JQVZxSVFRZ0IwRUJkQ0VGSUFWQkFtb2hDeUFHSVFjZ0FDRUdJQWdoQlFOQUlBWXFBZ0FoR1NBRktnSUFJUm9nR1NBYWxDRVpJQVpCQ0dvaENpQUtLZ0lBSVJvZ0JVRUVhaUVKSUFrcUFnQWhHeUFhSUJ1VUlSb2dHU0Fha3lFWklBZEJCR29oRUNBUUlCazRBZ0FnQmlvQ0FDRVpJQWtxQWdBaEdpQVpJQnFVSVJrZ0Npb0NBQ0VhSUFVcUFnQWhHeUFhSUJ1VUlSb2dHU0Fha2lFWklBY2dHVGdDQUNBSFFYaHFJUWNnQlVFSWFpRUZJQVpCRUdvaEJpQUdJQlZIRFFBTElBUWhCaUFJSUF0QkFuUnFCU0FJQ3lFSElBWWdERThFUUNBUFFYMXFJUVFnQmlFRklBQWdCRUVDZEdvaEJDQUhJUVlEUUNBRVFRaHFJUWNnQnlvQ0FDRVpJQVlxQWdBaEdpQVpJQnFVSVJrZ0JDb0NBQ0VhSUFaQkJHb2hDaUFLS2dJQUlSc2dHaUFibENFYUlCb2dHWk1oR1NBRlFRUnFJUWtnQ1NBWk9BSUFJQWNxQWdBaEdTQUtLZ0lBSVJvZ0dTQWFsQ0VaSUFRcUFnQWhHaUFHS2dJQUlSc2dHaUFibENFYUlCcU1JUm9nR2lBWmt5RVpJQVVnR1RnQ0FDQUZRWGhxSVFVZ0JrRUlhaUVHSUFSQmNHb2hCQ0FGSUF4UERRQUxDeUFCUVJCT0JFQWdEMEY0YWlFR0lBZ2dCa0VDZEdvaEJpQUFJQTFCQW5ScUlRY2dBQ0VFSUF3Z0RVRUNkR29oQ2lBTUlRVURRQ0FLUVFScUlRa2dDU29DQUNFWklBVkJCR29oQ1NBSktnSUFJUm9nR1NBYWt5RWJJQW9xQWdBaEhDQUZLZ0lBSVIwZ0hDQWRreUVjSUJrZ0dwSWhHU0FIUVFScUlRa2dDU0FaT0FJQUlBb3FBZ0FoR1NBRktnSUFJUm9nR1NBYWtpRVpJQWNnR1RnQ0FDQUdRUkJxSVFrZ0NTb0NBQ0VaSUJzZ0daUWhHU0FHUVJScUlRc2dDeW9DQUNFYUlCd2dHcFFoR2lBWklCcVRJUmtnQkVFRWFpRVFJQkFnR1RnQ0FDQUpLZ0lBSVJrZ0hDQVpsQ0VaSUFzcUFnQWhHaUFiSUJxVUlSb2dHU0Fha2lFWklBUWdHVGdDQUNBS1FReHFJUWtnQ1NvQ0FDRVpJQVZCREdvaENTQUpLZ0lBSVJvZ0dTQWFreUViSUFwQkNHb2hDU0FKS2dJQUlSd2dCVUVJYWlFTElBc3FBZ0FoSFNBY0lCMlRJUndnR1NBYWtpRVpJQWRCREdvaEVDQVFJQms0QWdBZ0NTb0NBQ0VaSUFzcUFnQWhHaUFaSUJxU0lSa2dCMEVJYWlFSklBa2dHVGdDQUNBR0tnSUFJUmtnR3lBWmxDRVpJQVpCQkdvaENTQUpLZ0lBSVJvZ0hDQWFsQ0VhSUJrZ0dwTWhHU0FFUVF4cUlRc2dDeUFaT0FJQUlBWXFBZ0FoR1NBY0lCbVVJUmtnQ1NvQ0FDRWFJQnNnR3BRaEdpQVpJQnFTSVJrZ0JFRUlhaUVKSUFrZ0dUZ0NBQ0FHUVdCcUlRWWdCMEVRYWlFSElBUkJFR29oQkNBS1FSQnFJUW9nQlVFUWFpRUZJQVlnQ0U4TkFBc0xJQUVRTFNFSElBRkJCSFVoQmlBUFFYOXFJUWxCQUNBT2F5RUZJQVlnQUNBSklBVWdDQkJESUFrZ0RXc2hCQ0FHSUFBZ0JDQUZJQWdRUXlBQlFRVjFJUXRCQUNBR2F5RUdJQXNnQUNBSklBWWdDRUVRRUVRZ0NTQU9heUVGSUFzZ0FDQUZJQVlnQ0VFUUVFUWdEa0VCZENFRklBa2dCV3NoQlNBTElBQWdCU0FHSUFoQkVCQkVJQTVCZld3aEJTQUpJQVZxSVFVZ0N5QUFJQVVnQmlBSVFSQVFSQ0FIUVh4cUlRWWdCa0VCZFNFT0lBZEJDVW9FUUVFQ0lRVURRQ0FGUVFKcUlRWWdBU0FHZFNFRUlBVkJBV29oQmtFQ0lBVjBJUW9nQ2tFQVNnUkFJQUVnQlVFRWFuVWhFRUVBSUFSQkFYVnJJUkpCQ0NBRmRDRVRRUUFoQlFOQUlBVWdCR3doRVNBSklCRnJJUkVnRUNBQUlCRWdFaUFJSUJNUVJDQUZRUUZxSVFVZ0JTQUtSdzBBQ3dzZ0JpQU9TQVJBSUFZaEJRd0JDd3NGUVFJaEJnc2dCMEY1YWlFT0lBWWdEa2dFUUFOQUlBWkJBbW9oQlNBQklBVjFJUkJCQ0NBR2RDRVNJQVpCQm1vaEJTQUJJQVYxSVFjZ0JrRUJhaUVFUVFJZ0JuUWhFeUFIUVFCS0JFQkJBQ0FRUVFGMWF5RVJJQkpCQW5RaEdDQUlJUVlnQ1NFRkEwQWdFeUFBSUFVZ0VTQUdJQklnRUJCRklBWWdHRUVDZEdvaEJpQUZRWGhxSVFVZ0IwRi9haUVLSUFkQkFVb0VRQ0FLSVFjTUFRc0xDeUFFSUE1SEJFQWdCQ0VHREFFTEN3c2dDeUFBSUFrZ0NDQUJFRVlnRFVGOGFpRUlJQXdnQ0VFQ2RHb2hCaUFQUVh4cUlRa2dCaUFNVHdSQUlBd2dDVUVDZEdvaENDQUNRY0FJYWlBRFFRSjBhaUVGSUFVb0FnQWhCUU5BSUFVdkFRQWhCeUFIUWYvL0EzRWhCeUFBSUFkQkFuUnFJUVFnQkNnQ0FDRUVJQWhCREdvaENpQUtJQVEyQWdBZ0IwRUJhaUVFSUFBZ0JFRUNkR29oQkNBRUtBSUFJUVFnQ0VFSWFpRUtJQW9nQkRZQ0FDQUhRUUpxSVFRZ0FDQUVRUUowYWlFRUlBUW9BZ0FoQkNBR1FReHFJUW9nQ2lBRU5nSUFJQWRCQTJvaEJ5QUFJQWRCQW5ScUlRY2dCeWdDQUNFSElBWkJDR29oQkNBRUlBYzJBZ0FnQlVFQ2FpRUhJQWN2QVFBaEJ5QUhRZi8vQTNFaEJ5QUFJQWRCQW5ScUlRUWdCQ2dDQUNFRUlBaEJCR29oQ2lBS0lBUTJBZ0FnQjBFQmFpRUVJQUFnQkVFQ2RHb2hCQ0FFS0FJQUlRUWdDQ0FFTmdJQUlBZEJBbW9oQkNBQUlBUkJBblJxSVFRZ0JDZ0NBQ0VFSUFaQkJHb2hDaUFLSUFRMkFnQWdCMEVEYWlFSElBQWdCMEVDZEdvaEJ5QUhLQUlBSVFjZ0JpQUhOZ0lBSUFaQmNHb2hCaUFJUVhCcUlRZ2dCVUVFYWlFRklBWWdERThOQUFzTElBd2dEMEVDZEdvaUIwRndhaUVJSUFnZ0RFc0VRQ0FDUWJBSWFpQURRUUowYWlFR0lBd2hCU0FHS0FJQUlRUWdCeUVHQTBBZ0JTb0NBQ0VaSUFaQmVHb2hDaUFLS2dJQUlSb2dHU0Fha3lFYklBVkJCR29oQ3lBTEtnSUFJUndnQmtGOGFpRU5JQTBxQWdBaEhTQWNJQjJTSVI0Z0JFRUVhaUVPSUE0cUFnQWhJQ0FiSUNDVUlSOGdCQ29DQUNFaElCNGdJWlFoSWlBZklDS1NJUjhnSUNBZWxDRWVJQnNnSVpRaEd5QWVJQnVUSVJzZ0dTQWFraUVaSUJ3Z0haTWhHaUFaSUIrU0lSd2dCU0FjT0FJQUlCb2dHNUloSENBTElCdzRBZ0FnR1NBZmt5RVpJQW9nR1RnQ0FDQWJJQnFUSVJrZ0RTQVpPQUlBSUFWQkNHb2hDaUFLS2dJQUlSa2dDQ29DQUNFYUlCa2dHcE1oR3lBRlFReHFJUXNnQ3lvQ0FDRWNJQVpCZEdvaEJpQUdLZ0lBSVIwZ0hDQWRraUVlSUFSQkRHb2hEU0FOS2dJQUlTQWdHeUFnbENFZklBUkJDR29oRFNBTktnSUFJU0VnSGlBaGxDRWlJQjhnSXBJaEh5QWdJQjZVSVI0Z0d5QWhsQ0ViSUI0Z0c1TWhHeUFaSUJxU0lSa2dIQ0Fka3lFYUlCa2dINUloSENBS0lCdzRBZ0FnR2lBYmtpRWNJQXNnSERnQ0FDQVpJQitUSVJrZ0NDQVpPQUlBSUJzZ0dwTWhHU0FHSUJrNEFnQWdCRUVRYWlFS0lBVkJFR29oQlNBSVFYQnFJUVFnQlNBRVNRUkFJQWdoQmlBRUlRZ2dDaUVFREFFTEN3c2dCMEZnYWlFSUlBZ2dERThFUUNBQ1FhZ0lhaUFEUVFKMGFpRUNJQUlvQWdBaEFpQUNJQTlCQW5ScUlRSWdBVUY4YWlFQklBQWdBVUVDZEdvaEF5QUlJUUVnRlNFSUlBQWdDVUVDZEdvaEJTQUFJUVlnQnlFQUEwQWdBa0ZnYWlFSElBQkJlR29oQkNBRUtnSUFJUmtnQWtGOGFpRUVJQVFxQWdBaEdpQVpJQnFVSVIwZ0FFRjhhaUVFSUFRcUFnQWhHeUFDUVhocUlRUWdCQ29DQUNFY0lCc2dISlFoSGlBZElCNlRJUjBnR1NBY2xDRVpJQm1NSVJrZ0dpQWJsQ0VhSUJrZ0dwTWhHU0FHSUIwNEFnQWdIWXdoR2lBRlFReHFJUVFnQkNBYU9BSUFJQWdnR1RnQ0FDQURRUXhxSVFRZ0JDQVpPQUlBSUFCQmNHb2hCQ0FFS2dJQUlSa2dBa0YwYWlFRUlBUXFBZ0FoR2lBWklCcVVJUjBnQUVGMGFpRUVJQVFxQWdBaEd5QUNRWEJxSVFRZ0JDb0NBQ0VjSUJzZ0hKUWhIaUFkSUI2VElSMGdHU0FjbENFWklCbU1JUmtnR2lBYmxDRWFJQmtnR3BNaEdTQUdRUVJxSVFRZ0JDQWRPQUlBSUIyTUlSb2dCVUVJYWlFRUlBUWdHamdDQUNBSVFRUnFJUVFnQkNBWk9BSUFJQU5CQ0dvaEJDQUVJQms0QWdBZ0FFRm9haUVFSUFRcUFnQWhHU0FDUVd4cUlRUWdCQ29DQUNFYUlCa2dHcFFoSFNBQVFXeHFJUVFnQkNvQ0FDRWJJQUpCYUdvaEJDQUVLZ0lBSVJ3Z0d5QWNsQ0VlSUIwZ0hwTWhIU0FaSUJ5VUlSa2dHWXdoR1NBYUlCdVVJUm9nR1NBYWt5RVpJQVpCQ0dvaEJDQUVJQjA0QWdBZ0hZd2hHaUFGUVFScUlRUWdCQ0FhT0FJQUlBaEJDR29oQkNBRUlCazRBZ0FnQTBFRWFpRUVJQVFnR1RnQ0FDQUJLZ0lBSVJrZ0FrRmthaUVDSUFJcUFnQWhHaUFaSUJxVUlSMGdBRUZrYWlFQUlBQXFBZ0FoR3lBSEtnSUFJUndnR3lBY2xDRWVJQjBnSHBNaEhTQVpJQnlVSVJrZ0dZd2hHU0FhSUJ1VUlSb2dHU0Fha3lFWklBWkJER29oQUNBQUlCMDRBZ0FnSFl3aEdpQUZJQm80QWdBZ0NFRU1haUVBSUFBZ0dUZ0NBQ0FESUJrNEFnQWdCa0VRYWlFR0lBaEJFR29oQ0NBRlFYQnFJUVVnQTBGd2FpRURJQUZCWUdvaEFpQUNJQXhQQkVBZ0FTRUFJQUloQVNBSElRSU1BUXNMQ3lBVUlCYzJBZ0FnRmlRR0M4VUJBUUYvSUFCQkFYWWhBU0FCUWRXcTFhb0ZjU0VCSUFCQkFYUWhBQ0FBUWFyVnF0VjZjU0VBSUFFZ0FISWhBQ0FBUVFKMklRRWdBVUd6NXN5WkEzRWhBU0FBUVFKMElRQWdBRUhNbWJQbWZIRWhBQ0FCSUFCeUlRQWdBRUVFZGlFQklBRkJqNTY4K0FCeElRRWdBRUVFZENFQUlBQkI4T0hEaDM5eElRQWdBU0FBY2lFQUlBQkJDSFloQVNBQlFmK0IvQWR4SVFFZ0FFRUlkQ0VBSUFCQmdQNkRlSEVoQUNBQklBQnlJUUFnQUVFUWRpRUJJQUJCRUhRaEFDQUJJQUJ5SVFBZ0FBdEJBUU4vSUFGQkFFb0VRQ0FBSUFGQkFuUnFJUVFEUUNBQUlBTkJBblJxSVFVZ0JTQUVOZ0lBSUFRZ0Ftb2hCQ0FEUVFGcUlRTWdBeUFCUncwQUN3c2dBQXRyQVFOL0lBRkJBMm9oQVNBQlFYeHhJUUVnQUVIRUFHb2hBaUFDS0FJQUlRSWdBZ1IvSUFCQjBBQnFJUU1nQXlnQ0FDRUVJQVFnQVdzaEFTQUFRY3dBYWlFQUlBQW9BZ0FoQUNBQklBQklCSDlCQUFVZ0F5QUJOZ0lBSUFJZ0FXb0xCU0FCRUY0TElRQWdBQXZhQmdJUGZ3SjlJQUZCRldvaERDQU1MQUFBSVF3Q2Z5QU1CSDhnQlNnQ0FDRUpJQVFvQWdBaENnSkFJQWRCQUVvRWZ5QUFRZWdLYWlFT0lBQkI1QXBxSVJBZ0FVRUlhaUVUSUFGQkYyb2hGQ0FCUWF3UWFpRVZJQVlnQTJ3aEVTQUJRUlpxSVJZZ0FVRWNhaUVTSUFjaERDQUtJUVlnQVNnQ0FDRUtJQWtoQndKQUFrQURRQUpBSUE0b0FnQWhDU0FKUVFwSUJFQWdBQkEwQ3lBUUtBSUFJUXNnQzBIL0IzRWhDU0FCUVNScUlBbEJBWFJxSVFrZ0NTNEJBQ0VKSUFsQmYwb0VRQ0FUS0FJQUlRZ2dDQ0FKYWlFSUlBZ3RBQUFoQ0NBSVFmOEJjU0VJSUFzZ0NIWWhDeUFRSUFzMkFnQWdEaWdDQUNFTElBc2dDR3NoQ3lBTFFRQklJUWhCQUNBTElBZ2JJUTFCZnlBSklBZ2JJUXNnRGlBTk5nSUFCU0FBSUFFUU5TRUxDeUFVTEFBQUlRa2dDUVJBSUJVb0FnQWhDU0FMSUFsT0RRTUxJQXRCQUVnTkFDQUhJQU5zSVFrZ0NpQUphaUVJSUFnZ0Jtb2hDQ0FJSUJGS0lRZ2dFU0FKYXlFSklBa2dCbW9oQ1NBSklBb2dDQnNoQ1NBQktBSUFJUW9nQ2lBTGJDRUxJQllzQUFBaENDQUpRUUJLSVFvZ0NBUkFJQW9FUUNBU0tBSUFJUTFEQUFBQUFDRVhRUUFoQ2dOQUlBb2dDMm9oQ0NBTklBaEJBblJxSVFnZ0NDb0NBQ0VZSUJjZ0dKSWhGeUFDSUFaQkFuUnFJUWdnQ0NnQ0FDRUlJQWhGSVE4Z0NDQUhRUUowYWlFSUlBOUZCRUFnQ0NvQ0FDRVlJQmNnR0pJaEdDQUlJQmc0QWdBTElBWkJBV29oQmlBR0lBTkdJUWdnQnlBSWFpRUhRUUFnQmlBSUd5RUdJQXBCQVdvaENpQUtJQWxIRFFBTEN3VWdDZ1JBUVFBaENnTkFJQUlnQmtFQ2RHb2hDQ0FJS0FJQUlRZ2dDQVJBSUJJb0FnQWhEU0FLSUF0cUlROGdEU0FQUVFKMGFpRU5JQTBxQWdBaEZ5QVhRd0FBQUFDU0lSY2dDQ0FIUVFKMGFpRUlJQWdxQWdBaEdDQVlJQmVTSVJjZ0NDQVhPQUlBQ3lBR1FRRnFJUVlnQmlBRFJpRUlJQWNnQ0dvaEIwRUFJQVlnQ0JzaEJpQUtRUUZxSVFvZ0NpQUpSdzBBQ3dzTElBd2dDV3NoRENBTVFRQk1EUVVnQ1NFS0RBRUxDd3dCQzBHbkZVSEVFMEdnRGtITEZSQUVDeUFBUWRRS2FpRUJJQUVzQUFBaEFTQUJSUVJBSUFCQjNBcHFJUUVnQVNnQ0FDRUJRUUFnQVEwRUdnc2dBRUVWRUJWQkFBd0RCU0FKSVFjZ0Nnc2hCZ3NnQkNBR05nSUFJQVVnQnpZQ0FFRUJCU0FBUVJVUUZVRUFDd3NoQUNBQUMrQUJBUUovQWtBZ0JRUkFJQVJCQUVvRVFFRUFJUVVEUUNBQ0lBTkJBblJxSVFZZ0JDQUZheUVISUFBZ0FTQUdJQWNRUUNFR0lBWkZCRUJCQUNFQURBUUxJQUVvQWdBaEJpQUdJQVZxSVFVZ0JpQURhaUVESUFVZ0JFZ05BQXRCQVNFQUJVRUJJUUFMQlNBQktBSUFJUVVnQkNBRmJTRUZJQUlnQTBFQ2RHb2hCaUFGUVFCS0JFQWdCQ0FEYXlFRFFRQWhBZ05BSUFZZ0FrRUNkR29oQkNBRElBSnJJUWNnQUNBQklBUWdCeUFGRUQ4aEJDQUVSU0VFSUFRRVFFRUFJUUFNQkFzZ0FrRUJhaUVDSUFJZ0JVZ05BQXRCQVNFQUJVRUJJUUFMQ3dzZ0FBdStBUUlEZndOOUlBQWdBUkJCSVFVZ0JVRUFTQVJBUVFBaEFBVWdBU2dDQUNFQUlBQWdBMGdoQmlBQUlBTWdCaHNoQXlBQUlBVnNJUVVnQTBFQVNnUkFJQUVvQWh3aEJpQUJMQUFXUlNFSFFRQWhBQU5BSUFBZ0JXb2hBU0FHSUFGQkFuUnFJUUVnQVNvQ0FDRUlJQWtnQ0pJaENDQUFJQVJzSVFFZ0FpQUJRUUowYWlFQklBRXFBZ0FoQ2lBS0lBaVNJUW9nQVNBS09BSUFJQWtnQ0NBSEd5RUpJQUJCQVdvaEFDQUFJQU5JRFFBTFFRRWhBQVZCQVNFQUN3c2dBQXZGQWdJRGZ3SjlJQUFnQVJCQklRVUNRQ0FGUVFCSUJFQkJBQ0VBQlNBQktBSUFJUUFnQUNBRFNDRUVJQUFnQXlBRUd5RURJQUFnQld3aEJTQUJRUlpxSVFBZ0FDd0FBQ0VFSUFOQkFFb2hBQ0FFQkVBZ0FFVUVRRUVCSVFBTUF3c2dBU2dDSENFRUlBRkJER29oQmtFQUlRQURRQ0FBSUFWcUlRRWdCQ0FCUVFKMGFpRUJJQUVxQWdBaENDQUhJQWlTSVFjZ0FpQUFRUUowYWlFQklBRXFBZ0FoQ0NBSUlBZVNJUWdnQVNBSU9BSUFJQVlxQWdBaENDQUhJQWlTSVFjZ0FFRUJhaUVBSUFBZ0EwZ05BQXRCQVNFQUJTQUFSUVJBUVFFaEFBd0RDeUFCS0FJY0lRUkJBQ0VBQTBBZ0FDQUZhaUVCSUFRZ0FVRUNkR29oQVNBQktnSUFJUWNnQjBNQUFBQUFraUVISUFJZ0FFRUNkR29oQVNBQktnSUFJUWdnQ0NBSGtpRUhJQUVnQnpnQ0FDQUFRUUZxSVFBZ0FDQURTQTBBQzBFQklRQUxDd3NnQUF2TUFnRUZmeUFCUVJWcUlRSWdBaXdBQUNFQ0FrQWdBZ1JBSUFCQjZBcHFJUVVnQlNnQ0FDRUNJQUpCQ2tnRVFDQUFFRFFMSUFCQjVBcHFJUVFnQkNnQ0FDRUdJQVpCL3dkeElRSWdBVUVrYWlBQ1FRRjBhaUVDSUFJdUFRQWhBaUFDUVg5S0JFQWdBVUVJYWlFRElBTW9BZ0FoQXlBRElBSnFJUU1nQXkwQUFDRURJQU5CL3dGeElRTWdCaUFEZGlFR0lBUWdCallDQUNBRktBSUFJUVFnQkNBRGF5RUVJQVJCQUVnaEJrRUFJQVFnQmhzaEJFRi9JQUlnQmhzaEFpQUZJQVEyQWdBRklBQWdBUkExSVFJTElBRkJGMm9oQlNBRkxBQUFJUVVnQlFSQUlBRkJyQkJxSVFFZ0FTZ0NBQ0VCSUFJZ0FVNEVRRUh2RlVIRUUwSENEVUdGRmhBRUN3c2dBa0VBU0FSQUlBQkIxQXBxSVFFZ0FTd0FBQ0VCSUFGRkJFQWdBRUhjQ21vaEFTQUJLQUlBSVFFZ0FRMERDeUFBUVJVUUZRc0ZJQUJCRlJBVlFYOGhBZ3NMSUFJTHRBSUNCWDhDZlNBRUlBSnJJUVFnQXlBQmF5RUlJQVJCZjBvaEJrRUFJQVJySVFjZ0JDQUhJQVliSVFjZ0JDQUliU0VHSUFSQkgzVWhCQ0FFUVFGeUlRb2dCa0YvU2lFRVFRQWdCbXNoQ1NBR0lBa2dCQnNoQkNBRUlBaHNJUVFnQnlBRWF5RUhJQU1nQlVvaEJDQUZJQU1nQkJzaEJDQUVJQUZLQkVBZ0FrRUNkRUdnQ0dvaEF5QURLZ0lBSVFzZ0FDQUJRUUowYWlFRElBTXFBZ0FoRENBTElBeVVJUXNnQXlBTE9BSUFJQUZCQVdvaEFTQUJJQVJJQkVCQkFDRURBMEFnQXlBSGFpRURJQU1nQ0VnaEJVRUFJQW9nQlJzaENVRUFJQWdnQlJzaEJTQURJQVZySVFNZ0FpQUdhaUFKYWlFQ0lBSkJBblJCb0FocUlRVWdCU29DQUNFTElBQWdBVUVDZEdvaEJTQUZLZ0lBSVF3Z0N5QU1sQ0VMSUFVZ0N6Z0NBQ0FCUVFGcUlRRWdBU0FFU0EwQUN3c0xDNHNIQWdSL0JuMGdBU0FDUVFKMGFpRUJJQUJCQTNFaEFpQUNCRUJCbXhaQnhCTkI0QkpCcUJZUUJBc2dBRUVEU2dSQUlBQkJBblloQUNBQklBTkJBblJxSVFNRFFDQUJLZ0lBSVFzZ0F5b0NBQ0VNSUFzZ0RKTWhEU0FCUVh4cUlRSWdBaW9DQUNFS0lBTkJmR29oQlNBRktnSUFJUWtnQ2lBSmt5RU9JQXNnREpJaENTQUJJQWs0QWdBZ0JTb0NBQ0VKSUFvZ0NaSWhDU0FDSUFrNEFnQWdCQ29DQUNFSklBMGdDWlFoQ2lBRVFRUnFJUUlnQWlvQ0FDRUpJQTRnQ1pRaENTQUtJQW1USVFrZ0F5QUpPQUlBSUFRcUFnQWhDU0FPSUFtVUlRb2dBaW9DQUNFSklBMGdDWlFoQ1NBS0lBbVNJUWtnQlNBSk9BSUFJQVJCSUdvaEJ5QUJRWGhxSVFnZ0NDb0NBQ0VMSUFOQmVHb2hCU0FGS2dJQUlRd2dDeUFNa3lFTklBRkJkR29oQWlBQ0tnSUFJUW9nQTBGMGFpRUdJQVlxQWdBaENTQUtJQW1USVE0Z0N5QU1raUVKSUFnZ0NUZ0NBQ0FHS2dJQUlRa2dDaUFKa2lFSklBSWdDVGdDQUNBSEtnSUFJUWtnRFNBSmxDRUtJQVJCSkdvaEFpQUNLZ0lBSVFrZ0RpQUpsQ0VKSUFvZ0NaTWhDU0FGSUFrNEFnQWdCeW9DQUNFSklBNGdDWlFoQ2lBQ0tnSUFJUWtnRFNBSmxDRUpJQW9nQ1pJaENTQUdJQWs0QWdBZ0JFRkFheUVISUFGQmNHb2hDQ0FJS2dJQUlRc2dBMEZ3YWlFRklBVXFBZ0FoRENBTElBeVRJUTBnQVVGc2FpRUNJQUlxQWdBaENpQURRV3hxSVFZZ0Jpb0NBQ0VKSUFvZ0NaTWhEaUFMSUF5U0lRa2dDQ0FKT0FJQUlBWXFBZ0FoQ1NBS0lBbVNJUWtnQWlBSk9BSUFJQWNxQWdBaENTQU5JQW1VSVFvZ0JFSEVBR29oQWlBQ0tnSUFJUWtnRGlBSmxDRUpJQW9nQ1pNaENTQUZJQWs0QWdBZ0J5b0NBQ0VKSUE0Z0NaUWhDaUFDS2dJQUlRa2dEU0FKbENFSklBb2dDWkloQ1NBR0lBazRBZ0FnQkVIZ0FHb2hCeUFCUVdocUlRZ2dDQ29DQUNFTElBTkJhR29oQlNBRktnSUFJUXdnQ3lBTWt5RU5JQUZCWkdvaEFpQUNLZ0lBSVFvZ0EwRmthaUVHSUFZcUFnQWhDU0FLSUFtVElRNGdDeUFNa2lFSklBZ2dDVGdDQUNBR0tnSUFJUWtnQ2lBSmtpRUpJQUlnQ1RnQ0FDQUhLZ0lBSVFrZ0RTQUpsQ0VLSUFSQjVBQnFJUUlnQWlvQ0FDRUpJQTRnQ1pRaENTQUtJQW1USVFrZ0JTQUpPQUlBSUFjcUFnQWhDU0FPSUFtVUlRb2dBaW9DQUNFSklBMGdDWlFoQ1NBS0lBbVNJUWtnQmlBSk9BSUFJQVJCZ0FGcUlRUWdBVUZnYWlFQklBTkJZR29oQXlBQVFYOXFJUUlnQUVFQlNnUkFJQUloQUF3QkN3c0xDNEVIQWdOL0JYMGdBU0FDUVFKMGFpRUJJQUJCQTBvRVFDQUFRUUoySVFZZ0FTQURRUUowYWlFQ0lBRWhBQ0FHSVFFRFFDQUFLZ0lBSVFrZ0Fpb0NBQ0VLSUFrZ0NwTWhEQ0FBUVh4cUlRWWdCaW9DQUNFTklBSkJmR29oQXlBREtnSUFJUXNnRFNBTGt5RUxJQWtnQ3BJaENTQUFJQWs0QWdBZ0F5b0NBQ0VKSUEwZ0NaSWhDU0FHSUFrNEFnQWdCQ29DQUNFSklBd2dDWlFoQ1NBRVFRUnFJUVlnQmlvQ0FDRUtJQXNnQ3BRaENpQUpJQXFUSVFrZ0FpQUpPQUlBSUFRcUFnQWhDU0FMSUFtVUlRa2dCaW9DQUNFS0lBd2dDcFFoQ2lBSklBcVNJUWtnQXlBSk9BSUFJQVFnQlVFQ2RHb2hBeUFBUVhocUlRWWdCaW9DQUNFSklBSkJlR29oQnlBSEtnSUFJUW9nQ1NBS2t5RU1JQUJCZEdvaENDQUlLZ0lBSVEwZ0FrRjBhaUVFSUFRcUFnQWhDeUFOSUF1VElRc2dDU0FLa2lFSklBWWdDVGdDQUNBRUtnSUFJUWtnRFNBSmtpRUpJQWdnQ1RnQ0FDQURLZ0lBSVFrZ0RDQUpsQ0VKSUFOQkJHb2hCaUFHS2dJQUlRb2dDeUFLbENFS0lBa2dDcE1oQ1NBSElBazRBZ0FnQXlvQ0FDRUpJQXNnQ1pRaENTQUdLZ0lBSVFvZ0RDQUtsQ0VLSUFrZ0NwSWhDU0FFSUFrNEFnQWdBeUFGUVFKMGFpRURJQUJCY0dvaEJpQUdLZ0lBSVFrZ0FrRndhaUVISUFjcUFnQWhDaUFKSUFxVElRd2dBRUZzYWlFSUlBZ3FBZ0FoRFNBQ1FXeHFJUVFnQkNvQ0FDRUxJQTBnQzVNaEN5QUpJQXFTSVFrZ0JpQUpPQUlBSUFRcUFnQWhDU0FOSUFtU0lRa2dDQ0FKT0FJQUlBTXFBZ0FoQ1NBTUlBbVVJUWtnQTBFRWFpRUdJQVlxQWdBaENpQUxJQXFVSVFvZ0NTQUtreUVKSUFjZ0NUZ0NBQ0FES2dJQUlRa2dDeUFKbENFSklBWXFBZ0FoQ2lBTUlBcVVJUW9nQ1NBS2tpRUpJQVFnQ1RnQ0FDQURJQVZCQW5ScUlRTWdBRUZvYWlFR0lBWXFBZ0FoQ1NBQ1FXaHFJUWNnQnlvQ0FDRUtJQWtnQ3BNaERDQUFRV1JxSVFnZ0NDb0NBQ0VOSUFKQlpHb2hCQ0FFS2dJQUlRc2dEU0FMa3lFTElBa2dDcEloQ1NBR0lBazRBZ0FnQkNvQ0FDRUpJQTBnQ1pJaENTQUlJQWs0QWdBZ0F5b0NBQ0VKSUF3Z0NaUWhDU0FEUVFScUlRWWdCaW9DQUNFS0lBc2dDcFFoQ2lBSklBcVRJUWtnQnlBSk9BSUFJQU1xQWdBaENTQUxJQW1VSVFrZ0Jpb0NBQ0VLSUF3Z0NwUWhDaUFKSUFxU0lRa2dCQ0FKT0FJQUlBQkJZR29oQUNBQ1FXQnFJUUlnQXlBRlFRSjBhaUVFSUFGQmYyb2hBeUFCUVFGS0JFQWdBeUVCREFFTEN3c0w2UVlDQW44T2ZTQUVLZ0lBSVE4Z0JFRUVhaUVISUFjcUFnQWhFQ0FFSUFWQkFuUnFJUWNnQnlvQ0FDRVJJQVZCQVdvaEJ5QUVJQWRCQW5ScUlRY2dCeW9DQUNFU0lBVkJBWFFoQ0NBRUlBaEJBblJxSVFjZ0J5b0NBQ0VUSUFoQkFYSWhCeUFFSUFkQkFuUnFJUWNnQnlvQ0FDRVVJQVZCQTJ3aEJ5QUVJQWRCQW5ScUlRVWdCU29DQUNFVklBZEJBV29oQlNBRUlBVkJBblJxSVFRZ0JDb0NBQ0VXSUFFZ0FrRUNkR29oQVNBQVFRQktCRUJCQUNBR2F5RUdJQUVnQTBFQ2RHb2hBd05BSUFFcUFnQWhDeUFES2dJQUlRd2dDeUFNa3lFTklBRkJmR29oQWlBQ0tnSUFJUW9nQTBGOGFpRUVJQVFxQWdBaENTQUtJQW1USVE0Z0N5QU1raUVKSUFFZ0NUZ0NBQ0FFS2dJQUlRa2dDaUFKa2lFSklBSWdDVGdDQUNBUElBMlVJUW9nRUNBT2xDRUpJQW9nQ1pNaENTQURJQWs0QWdBZ0R5QU9sQ0VLSUJBZ0RaUWhDU0FKSUFxU0lRa2dCQ0FKT0FJQUlBRkJlR29oQlNBRktnSUFJUXNnQTBGNGFpRUVJQVFxQWdBaERDQUxJQXlUSVEwZ0FVRjBhaUVDSUFJcUFnQWhDaUFEUVhScUlRY2dCeW9DQUNFSklBb2dDWk1oRGlBTElBeVNJUWtnQlNBSk9BSUFJQWNxQWdBaENTQUtJQW1TSVFrZ0FpQUpPQUlBSUJFZ0RaUWhDaUFTSUE2VUlRa2dDaUFKa3lFSklBUWdDVGdDQUNBUklBNlVJUW9nRWlBTmxDRUpJQWtnQ3BJaENTQUhJQWs0QWdBZ0FVRndhaUVGSUFVcUFnQWhDeUFEUVhCcUlRUWdCQ29DQUNFTUlBc2dESk1oRFNBQlFXeHFJUUlnQWlvQ0FDRUtJQU5CYkdvaEJ5QUhLZ0lBSVFrZ0NpQUpreUVPSUFzZ0RKSWhDU0FGSUFrNEFnQWdCeW9DQUNFSklBb2dDWkloQ1NBQ0lBazRBZ0FnRXlBTmxDRUtJQlFnRHBRaENTQUtJQW1USVFrZ0JDQUpPQUlBSUJNZ0RwUWhDaUFVSUEyVUlRa2dDU0FLa2lFSklBY2dDVGdDQUNBQlFXaHFJUVVnQlNvQ0FDRUxJQU5CYUdvaEJDQUVLZ0lBSVF3Z0N5QU1reUVOSUFGQlpHb2hBaUFDS2dJQUlRb2dBMEZrYWlFSElBY3FBZ0FoQ1NBS0lBbVRJUTRnQ3lBTWtpRUpJQVVnQ1RnQ0FDQUhLZ0lBSVFrZ0NpQUpraUVKSUFJZ0NUZ0NBQ0FWSUEyVUlRb2dGaUFPbENFSklBb2dDWk1oQ1NBRUlBazRBZ0FnRlNBT2xDRUtJQllnRFpRaENTQUpJQXFTSVFrZ0J5QUpPQUlBSUFFZ0JrRUNkR29oQVNBRElBWkJBblJxSVFNZ0FFRi9haUVDSUFCQkFVb0VRQ0FDSVFBTUFRc0xDd3ZXQkFJQ2Z3ZDlJQVJCQTNVaEJDQURJQVJCQW5ScUlRTWdBeW9DQUNFTklBRWdBa0VDZEdvaEFTQUFRUVIwSVFCQkFDQUFheUVBSUFFZ0FFRUNkR29oQmlBQVFRQklCRUFnQVNFQUEwQWdBQ29DQUNFSElBQkJZR29oQVNBQktnSUFJUWdnQnlBSWt5RUxJQUJCZkdvaEFpQUNLZ0lBSVFrZ0FFRmNhaUVESUFNcUFnQWhDaUFKSUFxVElRd2dCeUFJa2lFSElBQWdCemdDQUNBSklBcVNJUWNnQWlBSE9BSUFJQUVnQ3pnQ0FDQURJQXc0QWdBZ0FFRjRhaUVDSUFJcUFnQWhCeUFBUVZocUlRTWdBeW9DQUNFSUlBY2dDSk1oQ1NBQVFYUnFJUVFnQkNvQ0FDRUtJQUJCVkdvaEJTQUZLZ0lBSVFzZ0NpQUxreUVNSUFjZ0NKSWhCeUFDSUFjNEFnQWdDaUFMa2lFSElBUWdCemdDQUNBSklBeVNJUWNnRFNBSGxDRUhJQU1nQnpnQ0FDQU1JQW1USVFjZ0RTQUhsQ0VISUFVZ0J6Z0NBQ0FBUVZCcUlRSWdBaW9DQUNFSElBQkJjR29oQXlBREtnSUFJUWdnQnlBSWt5RUxJQUJCYkdvaEJDQUVLZ0lBSVFrZ0FFRk1haUVGSUFVcUFnQWhDaUFKSUFxVElRd2dCeUFJa2lFSElBTWdCemdDQUNBSklBcVNJUWNnQkNBSE9BSUFJQUlnRERnQ0FDQUZJQXM0QWdBZ0FFRklhaUVDSUFJcUFnQWhCeUFBUVdocUlRTWdBeW9DQUNFSUlBY2dDSk1oQ1NBQVFXUnFJUVFnQkNvQ0FDRUtJQUJCUkdvaEJTQUZLZ0lBSVFzZ0NpQUxreUVNSUFjZ0NKSWhCeUFESUFjNEFnQWdDaUFMa2lFSElBUWdCemdDQUNBSklBeVNJUWNnRFNBSGxDRUhJQUlnQnpnQ0FDQUpJQXlUSVFjZ0RTQUhsQ0VISUFVZ0J6Z0NBQ0FBRUVjZ0FSQkhJQUJCUUdvaEFDQUFJQVpMRFFBTEN3dVhBZ0lFZndaOUlBQXFBZ0FoQlNBQVFYQnFJUUVnQVNvQ0FDRUlJQVVnQ0pNaEJpQUZJQWlTSVFVZ0FFRjRhaUVDSUFJcUFnQWhDQ0FBUVdocUlRTWdBeW9DQUNFSElBZ2dCNUloQ1NBSUlBZVRJUWdnQlNBSmtpRUhJQUFnQnpnQ0FDQUZJQW1USVFVZ0FpQUZPQUlBSUFCQmRHb2hBaUFDS2dJQUlRVWdBRUZrYWlFRUlBUXFBZ0FoQnlBRklBZVRJUWtnQmlBSmtpRUtJQUVnQ2pnQ0FDQUdJQW1USVFZZ0F5QUdPQUlBSUFCQmZHb2hBU0FCS2dJQUlRWWdBRUZzYWlFQUlBQXFBZ0FoQ1NBR0lBbVRJUW9nQmlBSmtpRUdJQVVnQjVJaEJTQUZJQWFTSVFjZ0FTQUhPQUlBSUFZZ0JaTWhCU0FDSUFVNEFnQWdDaUFJa3lFRklBQWdCVGdDQUNBSUlBcVNJUVVnQkNBRk9BSUFDMklCQW44Z0FVRUJkQ0VCSUFCQjVBQnFJUUlnQWlnQ0FDRUNJQUVnQWtZRVFDQUFRYmdJYWlFREJTQUFRZWdBYWlFQ0lBSW9BZ0FoQWlBQklBSkdCRUFnQUVHOENHb2hBd1ZCdnhaQnhCTkI2eGRCd1JZUUJBc0xJQU1vQWdBaEFDQUFDeFFBSUFCQmtoZEJCaEJrSVFBZ0FFVWhBQ0FBQzZvQkFRTi9JQUJCMkFwcUlRRWdBU2dDQUNFREFuOENRQ0FEUVg5SERRQWdBRUhUQ21vaEF3TkFBa0FnQUJBeElRSkJBQ0FDUlEwREdpQURMQUFBSVFJZ0FrRUJjU0VDSUFJTkFDQUJLQUlBSVFJZ0FrRi9SZzBCREFJTEN5QUFRU0FRRlVFQURBRUxJQUJCM0FwcUlRRWdBVUVBTmdJQUlBQkI2QXBxSVFFZ0FVRUFOZ0lBSUFCQjdBcHFJUUVnQVVFQU5nSUFJQUJCMUFwcUlRQWdBRUVBT2dBQVFRRUxJUUFnQUF0RkFRSi9JQUJCRkdvaEFpQUNLQUlBSVFNZ0F5QUJhaUVCSUFJZ0FUWUNBQ0FBUVJ4cUlRSWdBaWdDQUNFQ0lBRWdBazhFUUNBQVFkUUFhaUVBSUFCQkFUWUNBQXNMYWdFRWZ3TkFRUUFoQUNBQ1FSaDBJUUVEUUNBQlFRRjBJUU1nQVVFZmRTRUJJQUZCdDd1RUpuRWhBU0FCSUFOeklRRWdBRUVCYWlFQUlBQkJDRWNOQUFzZ0FrRUNkRUhRR1dvaEFDQUFJQUUyQWdBZ0FrRUJhaUVBSUFCQmdBSkhCRUFnQUNFQ0RBRUxDd3VUQVFFRGZ5QUJRUU5xSVFFZ0FVRjhjU0VCSUFCQkNHb2hBaUFDS0FJQUlRTWdBeUFCYWlFRElBSWdBellDQUNBQVFjUUFhaUVDSUFJb0FnQWhBaUFDQkVBZ0FFSE1BR29oQXlBREtBSUFJUVFnQkNBQmFpRUJJQUJCMEFCcUlRQWdBQ2dDQUNFQUlBRWdBRW9FUUVFQUlRQUZJQUlnQkdvaEFDQURJQUUyQWdBTEJTQUJCSDhnQVJCZUJVRUFDeUVBQ3lBQUMwZ0JBWDhnQUVIRUFHb2hBeUFES0FJQUlRTWdBd1JBSUFKQkEyb2hBU0FCUVh4eElRRWdBRUhRQUdvaEFDQUFLQUlBSVFJZ0FpQUJhaUVCSUFBZ0FUWUNBQVVnQVJCZkN3dkdCUUVMZnlNR0lRMGpCa0dBQVdva0JpQU5JZ2RDQURjREFDQUhRZ0EzQXdnZ0IwSUFOd01RSUFkQ0FEY0RHQ0FIUWdBM0F5QWdCMElBTndNb0lBZENBRGNETUNBSFFnQTNBemdnQjBGQWEwSUFOd01BSUFkQ0FEY0RTQ0FIUWdBM0ExQWdCMElBTndOWUlBZENBRGNEWUNBSFFnQTNBMmdnQjBJQU53TndJQWRDQURjRGVBSkFJQUpCQUVvRVFBTkFJQUVnQm1vaEJDQUVMQUFBSVFRZ0JFRi9SdzBDSUFaQkFXb2hCaUFHSUFKSURRQUxDd3NDUUNBR0lBSkdCRUFnQUVHc0VHb2hBQ0FBS0FJQUlRQWdBQVJBUVpnWFFjUVRRWjBJUWE4WEVBUUZRUUVoQ3dzRklBRWdCbW9oQkNBRUxRQUFJUVVnQlVIL0FYRWhCU0FBUVFBZ0JrRUFJQVVnQXhCWElBUXNBQUFoQkNBRUJFQWdCRUgvQVhFaENrRUJJUVFEUUVFZ0lBUnJJUVZCQVNBRmRDRUZJQWNnQkVFQ2RHb2hDQ0FJSUFVMkFnQWdCRUVCYWlFRklBUWdDa2tFUUNBRklRUU1BUXNMQ3lBR1FRRnFJUW9nQ2lBQ1NBUkFRUUVoQlFKQUFrQUNRQUpBQTBBZ0FTQUthaUVKSUFrc0FBQWhCaUFHUVg5R0JFQWdCU0VHQlNBR1FmOEJjU0VJSUFaRkRRZ2dDQ0VFQTBBQ1FDQUhJQVJCQW5ScUlRWWdCaWdDQUNFTUlBd05BQ0FFUVg5cUlRWWdCRUVCVEEwS0lBWWhCQXdCQ3dzZ0JFRWdUdzBDSUFaQkFEWUNBQ0FNRURvaERpQUZRUUZxSVFZZ0FDQU9JQW9nQlNBSUlBTVFWeUFKTFFBQUlRZ2dDRUgvQVhFaEJTQUVJQVZIQkVBZ0NFSC9BWEZCSUU0TkJDQUVJQVZJQkVBRFFDQUhJQVZCQW5ScUlRZ2dDQ2dDQUNFSklBa05CMEVnSUFWcklRbEJBU0FKZENFSklBa2dER29oQ1NBSUlBazJBZ0FnQlVGL2FpRUZJQVVnQkVvTkFBc0xDd3NnQ2tFQmFpRUtJQW9nQWtnRVFDQUdJUVVNQVFWQkFTRUxEQWdMQUFBTEFBdEJ3UmRCeEJOQnRBaEJyeGNRQkF3Q0MwSFNGMEhFRTBHNUNFR3ZGeEFFREFFTFFlMFhRY1FUUWJzSVFhOFhFQVFMQlVFQklRc0xDd3NnRFNRR0lBc0x0UVlCRUg4Z0FFRVhhaUVLSUFvc0FBQWhCQ0FFQkVBZ0FFR3NFR29oQ0NBSUtBSUFJUU1nQTBFQVNnUkFJQUFvQWlBaEJpQUFRYVFRYWlnQ0FDRUZRUUFoQkFOQUlBWWdCRUVDZEdvaEF5QURLQUlBSVFNZ0F4QTZJUU1nQlNBRVFRSjBhaUVISUFjZ0F6WUNBQ0FFUVFGcUlRUWdDQ2dDQUNFRElBUWdBMGdOQUFzTEJTQUFRUVJxSVFjZ0J5Z0NBQ0VFSUFSQkFFb0VRQ0FBUVNCcUlRc2dBRUdrRUdvaERFRUFJUVFEUUNBQklBWnFJUVVnQlN3QUFDRUZJQUFnQlJCWUlRVWdCUVJBSUFzb0FnQWhCU0FGSUFaQkFuUnFJUVVnQlNnQ0FDRUZJQVVRT2lFTklBd29BZ0FoRGlBRVFRRnFJUVVnRGlBRVFRSjBhaUVFSUFRZ0RUWUNBQ0FGSVFRTElBWkJBV29oQmlBSEtBSUFJUVVnQmlBRlNBMEFDd1ZCQUNFRUN5QUFRYXdRYWlFR0lBWW9BZ0FoQlNBRUlBVkdCRUFnQmlFSUlBUWhBd1ZCL3hkQnhCTkIvZ2hCbGhnUUJBc0xJQUJCcEJCcUlRVWdCU2dDQUNFRUlBUWdBMEVFUVFJUVppQUZLQUlBSVFRZ0NDZ0NBQ0VESUFRZ0EwRUNkR29oQkNBRVFYODJBZ0FnQ2l3QUFDRURJQU5GSVFRZ0FFRUVhaUVHSUFZZ0NDQUVHeUVFSUFRb0FnQWhDd0pBSUF0QkFFb0VRQ0FBUVNCcUlSRWdBRUdvRUdvaERDQUFRUWhxSVJKQkFDRUVBMEFDUUNBRFFmOEJjUVIvSUFJZ0JFRUNkR29oQXlBREtBSUFCU0FFQ3lFRElBRWdBMm9zQUFBaERTQUFJQTBRV0NFRElBTUVRQ0FSS0FJQUlRTWdBeUFFUVFKMGFpRURJQU1vQWdBaEF5QURFRG9oRGlBSUtBSUFJUU1nQlNnQ0FDRVBJQU5CQVVvRVFFRUFJUVlEUUNBRFFRRjJJUWNnQnlBR2FpRVFJQThnRUVFQ2RHb2hDU0FKS0FJQUlRa2dDU0FPU3lFSklBTWdCMnNoQXlBR0lCQWdDUnNoQmlBSElBTWdDUnNoQXlBRFFRRktEUUFMQlVFQUlRWUxJQThnQmtFQ2RHb2hBeUFES0FJQUlRTWdBeUFPUncwQklBb3NBQUFoQXlBREJFQWdBaUFFUVFKMGFpRURJQU1vQWdBaEF5QU1LQUlBSVFjZ0J5QUdRUUowYWlFSElBY2dBellDQUNBU0tBSUFJUU1nQXlBR2FpRURJQU1nRFRvQUFBVWdEQ2dDQUNFRElBTWdCa0VDZEdvaEF5QURJQVEyQWdBTEN5QUVRUUZxSVFRZ0JDQUxUZzBESUFvc0FBQWhBd3dCQ3d0QnJSaEJ4Qk5CbkFsQmxoZ1FCQXNMQzdjQ0FRcC9JQUJCSkdvaEFTQUJRWDlCZ0JBUWVob2dBRUVYYWlFQklBRXNBQUFoQVNBQlJTRUVJQUJCckJCcUlRRWdBRUVFYWlFQ0lBSWdBU0FFR3lFQklBRW9BZ0FoQVNBQlFmLy9BVWdoQWlBQlFmLy9BU0FDR3lFR0lBRkJBRW9FUUNBQVFRaHFJUUVnQUVFZ2FpRUhJQUJCcEJCcUlRZ2dBU2dDQUNFSlFRQWhBZ05BSUFrZ0Ftb2hCU0FGTFFBQUlRRWdBVUgvQVhGQkMwZ0VRQ0FFQkg4Z0J5Z0NBQ0VCSUFFZ0FrRUNkR29oQVNBQktBSUFCU0FJS0FJQUlRRWdBU0FDUVFKMGFpRUJJQUVvQWdBaEFTQUJFRG9MSVFFZ0FVR0FDRWtFUUNBQ1FmLy9BM0VoQ2dOQUlBQkJKR29nQVVFQmRHb2hBeUFESUFvN0FRQWdCUzBBQUNFRElBTkIvd0Z4SVFOQkFTQURkQ0VESUFNZ0FXb2hBU0FCUVlBSVNRMEFDd3NMSUFKQkFXb2hBaUFDSUFaSURRQUxDd3RjQXdKL0FYMENmQ0FBUWYvLy93QnhJUUlnQUVFVmRpRUJJQUZCL3dkeElRRWdBRUVBU0NFQUlBSzRJUVFnQkpvaEJTQUZJQVFnQUJzaEJDQUV0aUVESUFPN0lRUWdBVUhzZVdvaEFDQUVJQUFRY1NFRUlBUzJJUU1nQXd2aUFRTUJmd0o5QTN3Z0FMSWhBeUFEdXlFRklBVVFkaUVGSUFXMklRTWdBYkloQkNBRElBU1ZJUU1nQTdzaEJTQUZFSFVoQlNBRm5DRUZJQVdxSVFJZ0FySWhBeUFEUXdBQWdEK1NJUU1nQTdzaEJpQUJ0eUVGSUFZZ0JSQjNJUVlnQnB3aEJpQUdxaUVCSUFFZ0FFd2hBU0FCSUFKcUlRRWdBYkloQXlBRFF3QUFnRCtTSVFRZ0JMc2hCaUFHSUFVUWR5RUdJQUMzSVFjZ0JpQUhaRVVFUUVIckdFSEVFMEcxQ1VHTEdSQUVDeUFEdXlFR0lBWWdCUkIzSVFVZ0Jad2hCU0FGcWlFQ0lBSWdBRW9FUUVHYUdVSEVFMEcyQ1VHTEdSQUVCU0FCRHd0QkFBcy9BUUYvSUFBdkFRQWhBQ0FCTHdFQUlRRWdBRUgvL3dOeElBRkIvLzhEY1VnaEFpQUFRZi8vQTNFZ0FVSC8vd054U2lFQVFYOGdBQ0FDR3lFQUlBQUxpZ0VCQjM4Z0FVRUFTZ1JBSUFBZ0FVRUJkR29oQ0VHQWdBUWhDVUYvSVFvRFFDQUFJQVJCQVhScUlRVWdCUzhCQUNFR0lBWWhCU0FLSUFWSUJFQWdDQzhCQUNFSElBWWdCMGdFUUNBQ0lBUTJBZ0FnQlNFS0N3c2dDU0FGU2dSQUlBZ3ZBUUFoQnlBR0lBZEtCRUFnQXlBRU5nSUFJQVVoQ1FzTElBUkJBV29oQkNBRUlBRkhEUUFMQ3d1bUFnRUhmeUFDUVFGMklRTWdBa0Y4Y1NFRUlBSkJBM1VoQ0NBRFFRSjBJUU1nQUNBREVFMGhCU0FBUWFBSWFpQUJRUUowYWlFR0lBWWdCVFlDQUNBQUlBTVFUU0VISUFCQnFBaHFJQUZCQW5ScUlRVWdCU0FITmdJQUlBQWdCQkJOSVFRZ0FFR3dDR29nQVVFQ2RHb2hCeUFISUFRMkFnQWdCaWdDQUNFR0FuOENRQ0FHUlEwQUlBVW9BZ0FoQlNBRlJTRUhJQVJGSVFrZ0NTQUhjZzBBSUFJZ0JpQUZJQVFRV2lBQUlBTVFUU0VESUFCQnVBaHFJQUZCQW5ScUlRUWdCQ0FETmdJQUlBTkZCRUFnQUVFREVCVkJBQXdDQ3lBQ0lBTVFXeUFJUVFGMElRTWdBQ0FERUUwaEF5QUFRY0FJYWlBQlFRSjBhaUVCSUFFZ0F6WUNBQ0FEQkg4Z0FpQURFRnhCQVFVZ0FFRURFQlZCQUFzTUFRc2dBRUVERUJWQkFBc2hBQ0FBQzI4QkFuOGdBRUVYYWlFR0lBWXNBQUFoQnlBQUtBSWdJUVlnQndSL0lBWWdBMEVDZEdvaEJpQUdJQUUyQWdBZ0JFSC9BWEVoQVNBQVFRaHFJUUFnQUNnQ0FDRUFJQUFnQTJvaEFDQUFJQUU2QUFBZ0FpRUJJQVVnQTBFQ2RHb0ZJQVlnQWtFQ2RHb0xJZ0FnQVRZQ0FBdFpBUUYvSUFCQkYyb2hBQ0FBTEFBQUlRSWdBVUgvQVhGQi93RkdJUUFnQWtVRVFDQUJRZjhCY1VFS1NpRUJJQUFnQVhNaEFDQUFRUUZ4SVFBZ0FBOExJQUFFUUVITUdFSEVFMEhxQ0VIYkdCQUVCVUVCRHd0QkFBc3JBUUYvSUFBb0FnQWhBQ0FCS0FJQUlRRWdBQ0FCU1NFQ0lBQWdBVXNoQUVGL0lBQWdBaHNoQUNBQUM2WURBd1ovQVgwRGZDQUFRUUoxSVFnZ0FFRURkU0VKSUFCQkEwb0VRQ0FBdHlFTkEwQWdCa0VDZENFRUlBUzNJUXNnQzBRWUxVUlUreUVKUUtJaEN5QUxJQTJqSVF3Z0RCQnpJUXNnQzdZaENpQUJJQVZCQW5ScUlRUWdCQ0FLT0FJQUlBd1FkQ0VMSUF1MklRb2dDb3doQ2lBRlFRRnlJUWNnQVNBSFFRSjBhaUVFSUFRZ0NqZ0NBQ0FIdHlFTElBdEVHQzFFVlBzaENVQ2lJUXNnQ3lBTm95RUxJQXRFQUFBQUFBQUE0RCtpSVF3Z0RCQnpJUXNnQzdZaENpQUtRd0FBQUQrVUlRb2dBaUFGUVFKMGFpRUVJQVFnQ2pnQ0FDQU1FSFFoQ3lBTHRpRUtJQXBEQUFBQVA1UWhDaUFDSUFkQkFuUnFJUVFnQkNBS09BSUFJQVpCQVdvaEJpQUZRUUpxSVFVZ0JpQUlTQTBBQ3lBQVFRZEtCRUFnQUxjaERFRUFJUUZCQUNFQUEwQWdBRUVCY2lFRklBVkJBWFFoQWlBQ3R5RUxJQXRFR0MxRVZQc2hDVUNpSVFzZ0N5QU1veUVOSUEwUWN5RUxJQXUySVFvZ0F5QUFRUUowYWlFQ0lBSWdDamdDQUNBTkVIUWhDeUFMdGlFS0lBcU1JUW9nQXlBRlFRSjBhaUVDSUFJZ0NqZ0NBQ0FCUVFGcUlRRWdBRUVDYWlFQUlBRWdDVWdOQUFzTEN3dW5BUU1DZndGOUFud2dBRUVCZFNFQ0lBQkJBVW9FUUNBQ3R5RUdRUUFoQUFOQUlBQzNJUVVnQlVRQUFBQUFBQURnUDZBaEJTQUZJQWFqSVFVZ0JVUUFBQUFBQUFEZ1A2SWhCU0FGUkJndFJGVDdJUWxBb2lFRklBVVFkQ0VGSUFXMklRUWdCQkJkSVFRZ0JMc2hCU0FGUkJndFJGVDdJZmsvb2lFRklBVVFkQ0VGSUFXMklRUWdBU0FBUVFKMGFpRURJQU1nQkRnQ0FDQUFRUUZxSVFBZ0FDQUNTQTBBQ3dzTFh3RUVmeUFBUVFOMUlRTWdBRUVIU2dSQVFTUWdBQkF0YXlFRVFRQWhBQU5BSUFBUU9pRUNJQUlnQkhZaEFpQUNRUUowSVFJZ0FrSC8vd054SVFJZ0FTQUFRUUYwYWlFRklBVWdBanNCQUNBQVFRRnFJUUFnQUNBRFNBMEFDd3NMRFFFQmZTQUFJQUNVSVFFZ0FRdnlPZ0VYZndKQUFrQWpCaUVPSXdaQkVHb2tCaUFPSVJjQ2Z5QUFRZlVCU1FSL1FkQWhLQUlBSWdkQkVDQUFRUXRxUVhoeElBQkJDMGtiSWdKQkEzWWlBSFlpQTBFRGNRUkFJQU5CQVhGQkFYTWdBR29pQVVFRGRFSDRJV29pQWtFSWFpSUVLQUlBSWdCQkNHb2lCaWdDQUNJRElBSkdCRUJCMENFZ0IwRUJJQUYwUVg5emNUWUNBQVZCNENFb0FnQWdBMHNFUUJBR0N5QURRUXhxSWdVb0FnQWdBRVlFUUNBRklBSTJBZ0FnQkNBRE5nSUFCUkFHQ3dzZ0FDQUJRUU4wSWdOQkEzSTJBZ1FnQUNBRGFrRUVhaUlBSUFBb0FnQkJBWEkyQWdBZ0RpUUdJQVlQQ3lBQ1FkZ2hLQUlBSWcxTEJIOGdBd1JBSUFNZ0FIUkJBaUFBZENJQVFRQWdBR3R5Y1NJQVFRQWdBR3R4UVg5cUlnTkJESFpCRUhFaEFDQURJQUIySWdOQkJYWkJDSEVpQVNBQWNpQURJQUYySWdCQkFuWkJCSEVpQTNJZ0FDQURkaUlBUVFGMlFRSnhJZ055SUFBZ0EzWWlBRUVCZGtFQmNTSURjaUFBSUFOMmFpSUJRUU4wUWZnaGFpSUZRUWhxSWdrb0FnQWlBRUVJYWlJS0tBSUFJZ01nQlVZRVFFSFFJU0FIUVFFZ0FYUkJmM054SWdRMkFnQUZRZUFoS0FJQUlBTkxCRUFRQmdzZ0EwRU1haUlMS0FJQUlBQkdCRUFnQ3lBRk5nSUFJQWtnQXpZQ0FDQUhJUVFGRUFZTEN5QUFJQUpCQTNJMkFnUWdBQ0FDYWlJSElBRkJBM1FpQXlBQ2F5SUZRUUZ5TmdJRUlBQWdBMm9nQlRZQ0FDQU5CRUJCNUNFb0FnQWhBaUFOUVFOMklnTkJBM1JCK0NGcUlRQWdCRUVCSUFOMElnTnhCRUJCNENFb0FnQWdBRUVJYWlJREtBSUFJZ0ZMQkVBUUJnVWdBU0VHSUFNaERBc0ZRZEFoSUFRZ0EzSTJBZ0FnQUNFR0lBQkJDR29oREFzZ0RDQUNOZ0lBSUFZZ0FqWUNEQ0FDSUFZMkFnZ2dBaUFBTmdJTUMwSFlJU0FGTmdJQVFlUWhJQWMyQWdBZ0RpUUdJQW9QQzBIVUlTZ0NBQ0lNQkg4Z0RFRUFJQXhyY1VGL2FpSURRUXgyUVJCeElRQWdBeUFBZGlJRFFRVjJRUWh4SWdRZ0FISWdBeUFFZGlJQVFRSjJRUVJ4SWdOeUlBQWdBM1lpQUVFQmRrRUNjU0lEY2lBQUlBTjJJZ0JCQVhaQkFYRWlBM0lnQUNBRGRtcEJBblJCZ0NScUtBSUFJZ1FoQXlBRUtBSUVRWGh4SUFKcklRb0RRQUpBSUFNb0FoQWlBRVVFUUNBREtBSVVJZ0JGRFFFTElBQWhBeUFBSUFRZ0FDZ0NCRUY0Y1NBQ2F5SUFJQXBKSWdZYklRUWdBQ0FLSUFZYklRb01BUXNMUWVBaEtBSUFJZzhnQkVzRVFCQUdDeUFFSUFKcUlnZ2dCRTBFUUJBR0N5QUVLQUlZSVFzQ1FDQUVLQUlNSWdBZ0JFWUVRQ0FFUVJScUlnTW9BZ0FpQUVVRVFDQUVRUkJxSWdNb0FnQWlBRVVOQWdzRFFBSkFJQUJCRkdvaUJpZ0NBQ0lKUlFSQUlBQkJFR29pQmlnQ0FDSUpSUTBCQ3lBR0lRTWdDU0VBREFFTEN5QVBJQU5MQkVBUUJnVWdBMEVBTmdJQUlBQWhBUXNGSUE4Z0JDZ0NDQ0lEU3dSQUVBWUxJQU5CREdvaUJpZ0NBQ0FFUndSQUVBWUxJQUJCQ0dvaUNTZ0NBQ0FFUmdSQUlBWWdBRFlDQUNBSklBTTJBZ0FnQUNFQkJSQUdDd3NMQWtBZ0N3UkFJQVFnQkNnQ0hDSUFRUUowUVlBa2FpSURLQUlBUmdSQUlBTWdBVFlDQUNBQlJRUkFRZFFoSUF4QkFTQUFkRUYvYzNFMkFnQU1Bd3NGUWVBaEtBSUFJQXRMQkVBUUJnVWdDMEVRYWlJQUlBdEJGR29nQUNnQ0FDQUVSaHNnQVRZQ0FDQUJSUTBEQ3d0QjRDRW9BZ0FpQXlBQlN3UkFFQVlMSUFFZ0N6WUNHQ0FFS0FJUUlnQUVRQ0FESUFCTEJFQVFCZ1VnQVNBQU5nSVFJQUFnQVRZQ0dBc0xJQVFvQWhRaUFBUkFRZUFoS0FJQUlBQkxCRUFRQmdVZ0FTQUFOZ0lVSUFBZ0FUWUNHQXNMQ3dzZ0NrRVFTUVJBSUFRZ0NpQUNhaUlBUVFOeU5nSUVJQVFnQUdwQkJHb2lBQ0FBS0FJQVFRRnlOZ0lBQlNBRUlBSkJBM0kyQWdRZ0NDQUtRUUZ5TmdJRUlBZ2dDbW9nQ2pZQ0FDQU5CRUJCNUNFb0FnQWhBaUFOUVFOMklnTkJBM1JCK0NGcUlRQkJBU0FEZENJRElBZHhCRUJCNENFb0FnQWdBRUVJYWlJREtBSUFJZ0ZMQkVBUUJnVWdBU0VGSUFNaEVBc0ZRZEFoSUFNZ0IzSTJBZ0FnQUNFRklBQkJDR29oRUFzZ0VDQUNOZ0lBSUFVZ0FqWUNEQ0FDSUFVMkFnZ2dBaUFBTmdJTUMwSFlJU0FLTmdJQVFlUWhJQWcyQWdBTElBNGtCaUFFUVFocUR3VWdBZ3NGSUFJTEJTQUFRYjkvU3dSL1FYOEZJQUJCQzJvaUFFRjRjU0VFUWRRaEtBSUFJZ1lFZnlBQVFRaDJJZ0FFZnlBRVFmLy8vd2RMQkg5Qkh3VWdCRUVPSUFBZ0FFR0EvajlxUVJCMlFRaHhJZ0IwSWdGQmdPQWZha0VRZGtFRWNTSUNJQUJ5SUFFZ0FuUWlBRUdBZ0E5cVFSQjJRUUp4SWdGeWF5QUFJQUYwUVE5MmFpSUFRUWRxZGtFQmNTQUFRUUYwY2dzRlFRQUxJUkpCQUNBRWF5RUNBa0FDUUNBU1FRSjBRWUFrYWlnQ0FDSUFCRUJCQUNFQklBUkJBRUVaSUJKQkFYWnJJQkpCSDBZYmRDRU1BMEFnQUNnQ0JFRjRjU0FFYXlJUUlBSkpCRUFnRUFSL0lCQWhBaUFBQlNBQUlRRkJBQ0VDREFRTElRRUxJQVVnQUNnQ0ZDSUZJQVZGSUFVZ0FFRVFhaUFNUVI5MlFRSjBhaWdDQUNJQVJuSWJJUVVnREVFQmRDRU1JQUFOQUFzZ0FTRUFCVUVBSVFBTElBVWdBSEpGQkVBZ0JFRUNJQkowSWdCQkFDQUFhM0lnQm5FaUFFVU5CaG9nQUVFQUlBQnJjVUYvYWlJRlFReDJRUkJ4SVFGQkFDRUFJQVVnQVhZaUJVRUZka0VJY1NJTUlBRnlJQVVnREhZaUFVRUNka0VFY1NJRmNpQUJJQVYySWdGQkFYWkJBbkVpQlhJZ0FTQUZkaUlCUVFGMlFRRnhJZ1Z5SUFFZ0JYWnFRUUowUVlBa2FpZ0NBQ0VGQ3lBRkJIOGdBQ0VCSUFVaEFBd0JCU0FBQ3lFRkRBRUxJQUVoQlNBQ0lRRURRQ0FBS0FJRUlRd2dBQ2dDRUNJQ1JRUkFJQUFvQWhRaEFnc2dERUY0Y1NBRWF5SVFJQUZKSVF3Z0VDQUJJQXdiSVFFZ0FDQUZJQXdiSVFVZ0FnUi9JQUloQUF3QkJTQUJDeUVDQ3dzZ0JRUi9JQUpCMkNFb0FnQWdCR3RKQkg5QjRDRW9BZ0FpRVNBRlN3UkFFQVlMSUFVZ0JHb2lDQ0FGVFFSQUVBWUxJQVVvQWhnaER3SkFJQVVvQWd3aUFDQUZSZ1JBSUFWQkZHb2lBU2dDQUNJQVJRUkFJQVZCRUdvaUFTZ0NBQ0lBUlEwQ0N3TkFBa0FnQUVFVWFpSUpLQUlBSWd0RkJFQWdBRUVRYWlJSktBSUFJZ3RGRFFFTElBa2hBU0FMSVFBTUFRc0xJQkVnQVVzRVFCQUdCU0FCUVFBMkFnQWdBQ0VIQ3dVZ0VTQUZLQUlJSWdGTEJFQVFCZ3NnQVVFTWFpSUpLQUlBSUFWSEJFQVFCZ3NnQUVFSWFpSUxLQUlBSUFWR0JFQWdDU0FBTmdJQUlBc2dBVFlDQUNBQUlRY0ZFQVlMQ3dzQ1FDQVBCRUFnQlNBRktBSWNJZ0JCQW5SQmdDUnFJZ0VvQWdCR0JFQWdBU0FITmdJQUlBZEZCRUJCMUNFZ0JrRUJJQUIwUVg5emNTSUROZ0lBREFNTEJVSGdJU2dDQUNBUFN3UkFFQVlGSUE5QkVHb2lBQ0FQUVJScUlBQW9BZ0FnQlVZYklBYzJBZ0FnQjBVRVFDQUdJUU1NQkFzTEMwSGdJU2dDQUNJQklBZExCRUFRQmdzZ0J5QVBOZ0lZSUFVb0FoQWlBQVJBSUFFZ0FFc0VRQkFHQlNBSElBQTJBaEFnQUNBSE5nSVlDd3NnQlNnQ0ZDSUFCRUJCNENFb0FnQWdBRXNFUUJBR0JTQUhJQUEyQWhRZ0FDQUhOZ0lZSUFZaEF3c0ZJQVloQXdzRklBWWhBd3NMQWtBZ0FrRVFTUVJBSUFVZ0FpQUVhaUlBUVFOeU5nSUVJQVVnQUdwQkJHb2lBQ0FBS0FJQVFRRnlOZ0lBQlNBRklBUkJBM0kyQWdRZ0NDQUNRUUZ5TmdJRUlBZ2dBbW9nQWpZQ0FDQUNRUU4ySVFFZ0FrR0FBa2tFUUNBQlFRTjBRZmdoYWlFQVFkQWhLQUlBSWdOQkFTQUJkQ0lCY1FSQVFlQWhLQUlBSUFCQkNHb2lBeWdDQUNJQlN3UkFFQVlGSUFFaERTQURJUk1MQlVIUUlTQURJQUZ5TmdJQUlBQWhEU0FBUVFocUlSTUxJQk1nQ0RZQ0FDQU5JQWcyQWd3Z0NDQU5OZ0lJSUFnZ0FEWUNEQXdDQ3lBQ1FRaDJJZ0FFZnlBQ1FmLy8vd2RMQkg5Qkh3VWdBa0VPSUFBZ0FFR0EvajlxUVJCMlFRaHhJZ0IwSWdGQmdPQWZha0VRZGtFRWNTSUVJQUJ5SUFFZ0JIUWlBRUdBZ0E5cVFSQjJRUUp4SWdGeWF5QUFJQUYwUVE5MmFpSUFRUWRxZGtFQmNTQUFRUUYwY2dzRlFRQUxJZ0ZCQW5SQmdDUnFJUUFnQ0NBQk5nSWNJQWhCRUdvaUJFRUFOZ0lFSUFSQkFEWUNBQ0FEUVFFZ0FYUWlCSEZGQkVCQjFDRWdBeUFFY2pZQ0FDQUFJQWcyQWdBZ0NDQUFOZ0lZSUFnZ0NEWUNEQ0FJSUFnMkFnZ01BZ3NDUUNBQUtBSUFJZ0FvQWdSQmVIRWdBa1lFUUNBQUlRb0ZJQUpCQUVFWklBRkJBWFpySUFGQkgwWWJkQ0VCQTBBZ0FFRVFhaUFCUVI5MlFRSjBhaUlFS0FJQUlnTUVRQ0FCUVFGMElRRWdBeWdDQkVGNGNTQUNSZ1JBSUFNaENnd0VCU0FESVFBTUFnc0FDd3RCNENFb0FnQWdCRXNFUUJBR0JTQUVJQWcyQWdBZ0NDQUFOZ0lZSUFnZ0NEWUNEQ0FJSUFnMkFnZ01CQXNMQzBIZ0lTZ0NBQ0lESUFwQkNHb2lBU2dDQUNJQVRTQURJQXBOY1FSQUlBQWdDRFlDRENBQklBZzJBZ0FnQ0NBQU5nSUlJQWdnQ2pZQ0RDQUlRUUEyQWhnRkVBWUxDd3NnRGlRR0lBVkJDR29QQlNBRUN3VWdCQXNGSUFRTEN3c0xJUU5CMkNFb0FnQWlBU0FEVHdSQVFlUWhLQUlBSVFBZ0FTQURheUlDUVE5TEJFQkI1Q0VnQUNBRGFpSUVOZ0lBUWRnaElBSTJBZ0FnQkNBQ1FRRnlOZ0lFSUFBZ0FXb2dBallDQUNBQUlBTkJBM0kyQWdRRlFkZ2hRUUEyQWdCQjVDRkJBRFlDQUNBQUlBRkJBM0kyQWdRZ0FDQUJha0VFYWlJRElBTW9BZ0JCQVhJMkFnQUxEQUlMUWR3aEtBSUFJZ0VnQTBzRVFFSGNJU0FCSUFOcklnRTJBZ0FNQVF0QnFDVW9BZ0FFZjBHd0pTZ0NBQVZCc0NWQmdDQTJBZ0JCckNWQmdDQTJBZ0JCdENWQmZ6WUNBRUc0SlVGL05nSUFRYndsUVFBMkFnQkJqQ1ZCQURZQ0FFR29KU0FYUVhCeFFkaXExYW9GY3pZQ0FFR0FJQXNpQUNBRFFTOXFJZ1pxSWdWQkFDQUFheUlIY1NJRUlBTk5CRUFnRGlRR1FRQVBDMEdJSlNnQ0FDSUFCRUJCZ0NVb0FnQWlBaUFFYWlJS0lBSk5JQW9nQUV0eUJFQWdEaVFHUVFBUEN3c2dBMEV3YWlFS0FrQUNRRUdNSlNnQ0FFRUVjUVJBUVFBaEFRVUNRQUpBQWtCQjZDRW9BZ0FpQUVVTkFFR1FKU0VDQTBBQ1FDQUNLQUlBSWcwZ0FFMEVRQ0FOSUFJb0FnUnFJQUJMRFFFTElBSW9BZ2dpQWcwQkRBSUxDeUFGSUFGcklBZHhJZ0ZCLy8vLy93ZEpCRUFnQVJCN0lnQWdBaWdDQUNBQ0tBSUVha1lFUUNBQVFYOUhEUVlGREFNTEJVRUFJUUVMREFJTFFRQVFleUlBUVg5R0JIOUJBQVZCckNVb0FnQWlBVUYvYWlJQ0lBQnFRUUFnQVd0eElBQnJRUUFnQWlBQWNSc2dCR29pQVVHQUpTZ0NBQ0lGYWlFQ0lBRWdBMHNnQVVILy8vLy9CMGx4Qkg5QmlDVW9BZ0FpQndSQUlBSWdCVTBnQWlBSFMzSUVRRUVBSVFFTUJRc0xJQUVRZXlJQ0lBQkdEUVVnQWlFQURBSUZRUUFMQ3lFQkRBRUxJQW9nQVVzZ0FVSC8vLy8vQjBrZ0FFRi9SM0Z4UlFSQUlBQkJmMFlFUUVFQUlRRU1BZ1VNQkFzQUN5QUdJQUZyUWJBbEtBSUFJZ0pxUVFBZ0FtdHhJZ0pCLy8vLy93ZFBEUUpCQUNBQmF5RUdJQUlRZTBGL1JnUi9JQVlRZXhwQkFBVWdBaUFCYWlFQkRBTUxJUUVMUVl3bFFZd2xLQUlBUVFSeU5nSUFDeUFFUWYvLy8vOEhTUVJBSUFRUWV5RUFRUUFRZXlJQ0lBQnJJZ1lnQTBFb2Frc2hCQ0FHSUFFZ0JCc2hBU0FBUVg5R0lBUkJBWE55SUFBZ0Fra2dBRUYvUnlBQ1FYOUhjWEZCQVhOeVJRMEJDd3dCQzBHQUpVR0FKU2dDQUNBQmFpSUNOZ0lBSUFKQmhDVW9BZ0JMQkVCQmhDVWdBallDQUFzQ1FFSG9JU2dDQUNJR0JFQkJrQ1VoQWdKQUFrQURRQ0FBSUFJb0FnQWlCQ0FDS0FJRUlnVnFSZzBCSUFJb0FnZ2lBZzBBQ3d3QkN5QUNRUVJxSVFjZ0FpZ0NERUVJY1VVRVFDQUFJQVpMSUFRZ0JrMXhCRUFnQnlBRklBRnFOZ0lBSUFaQkFDQUdRUWhxSWdCclFRZHhRUUFnQUVFSGNSc2lBbW9oQUVIY0lTZ0NBQ0FCYWlJRUlBSnJJUUZCNkNFZ0FEWUNBRUhjSVNBQk5nSUFJQUFnQVVFQmNqWUNCQ0FHSUFScVFTZzJBZ1JCN0NGQnVDVW9BZ0EyQWdBTUJBc0xDeUFBUWVBaEtBSUFJZ0pKQkVCQjRDRWdBRFlDQUNBQUlRSUxJQUFnQVdvaEJVR1FKU0VFQWtBQ1FBTkFJQVFvQWdBZ0JVWU5BU0FFS0FJSUlnUU5BQXNNQVFzZ0JDZ0NERUVJY1VVRVFDQUVJQUEyQWdBZ0JFRUVhaUlFSUFRb0FnQWdBV28yQWdBZ0FFRUFJQUJCQ0dvaUFHdEJCM0ZCQUNBQVFRZHhHMm9pQ0NBRGFpRUhJQVZCQUNBRlFRaHFJZ0JyUVFkeFFRQWdBRUVIY1J0cUlnRWdDR3NnQTJzaEJDQUlJQU5CQTNJMkFnUUNRQ0FHSUFGR0JFQkIzQ0ZCM0NFb0FnQWdCR29pQURZQ0FFSG9JU0FITmdJQUlBY2dBRUVCY2pZQ0JBVkI1Q0VvQWdBZ0FVWUVRRUhZSVVIWUlTZ0NBQ0FFYWlJQU5nSUFRZVFoSUFjMkFnQWdCeUFBUVFGeU5nSUVJQWNnQUdvZ0FEWUNBQXdDQ3lBQktBSUVJZ0JCQTNGQkFVWUVmeUFBUVhoeElRMGdBRUVEZGlFRkFrQWdBRUdBQWtrRVFDQUJLQUlNSVFNQ1FDQUJLQUlJSWdZZ0JVRURkRUg0SVdvaUFFY0VRQ0FDSUFaTEJFQVFCZ3NnQmlnQ0RDQUJSZzBCRUFZTEN5QURJQVpHQkVCQjBDRkIwQ0VvQWdCQkFTQUZkRUYvYzNFMkFnQU1BZ3NDUUNBRElBQkdCRUFnQTBFSWFpRVVCU0FDSUFOTEJFQVFCZ3NnQTBFSWFpSUFLQUlBSUFGR0JFQWdBQ0VVREFJTEVBWUxDeUFHSUFNMkFnd2dGQ0FHTmdJQUJTQUJLQUlZSVFvQ1FDQUJLQUlNSWdBZ0FVWUVRQ0FCUVJCcUlnTkJCR29pQmlnQ0FDSUFCRUFnQmlFREJTQURLQUlBSWdCRkRRSUxBMEFDUUNBQVFSUnFJZ1lvQWdBaUJVVUVRQ0FBUVJCcUlnWW9BZ0FpQlVVTkFRc2dCaUVESUFVaEFBd0JDd3NnQWlBRFN3UkFFQVlGSUFOQkFEWUNBQ0FBSVFrTEJTQUNJQUVvQWdnaUEwc0VRQkFHQ3lBRFFReHFJZ0lvQWdBZ0FVY0VRQkFHQ3lBQVFRaHFJZ1lvQWdBZ0FVWUVRQ0FDSUFBMkFnQWdCaUFETmdJQUlBQWhDUVVRQmdzTEN5QUtSUTBCQWtBZ0FTZ0NIQ0lBUVFKMFFZQWthaUlES0FJQUlBRkdCRUFnQXlBSk5nSUFJQWtOQVVIVUlVSFVJU2dDQUVFQklBQjBRWDl6Y1RZQ0FBd0RCVUhnSVNnQ0FDQUtTd1JBRUFZRklBcEJFR29pQUNBS1FSUnFJQUFvQWdBZ0FVWWJJQWsyQWdBZ0NVVU5CQXNMQzBIZ0lTZ0NBQ0lESUFsTEJFQVFCZ3NnQ1NBS05nSVlJQUZCRUdvaUFpZ0NBQ0lBQkVBZ0F5QUFTd1JBRUFZRklBa2dBRFlDRUNBQUlBazJBaGdMQ3lBQ0tBSUVJZ0JGRFFGQjRDRW9BZ0FnQUVzRVFCQUdCU0FKSUFBMkFoUWdBQ0FKTmdJWUN3c0xJQUVnRFdvaEFTQU5JQVJxQlNBRUN5RUNJQUZCQkdvaUFDQUFLQUlBUVg1eE5nSUFJQWNnQWtFQmNqWUNCQ0FISUFKcUlBSTJBZ0FnQWtFRGRpRURJQUpCZ0FKSkJFQWdBMEVEZEVINElXb2hBQUpBUWRBaEtBSUFJZ0ZCQVNBRGRDSURjUVJBUWVBaEtBSUFJQUJCQ0dvaUF5Z0NBQ0lCVFFSQUlBRWhEeUFESVJVTUFnc1FCZ1ZCMENFZ0FTQURjallDQUNBQUlROGdBRUVJYWlFVkN3c2dGU0FITmdJQUlBOGdCellDRENBSElBODJBZ2dnQnlBQU5nSU1EQUlMQW44Z0FrRUlkaUlBQkg5Qkh5QUNRZi8vL3dkTERRRWFJQUpCRGlBQUlBQkJnUDQvYWtFUWRrRUljU0lBZENJRFFZRGdIMnBCRUhaQkJIRWlBU0FBY2lBRElBRjBJZ0JCZ0lBUGFrRVFka0VDY1NJRGNtc2dBQ0FEZEVFUGRtb2lBRUVIYW5aQkFYRWdBRUVCZEhJRlFRQUxDeUlEUVFKMFFZQWthaUVBSUFjZ0F6WUNIQ0FIUVJCcUlnRkJBRFlDQkNBQlFRQTJBZ0JCMUNFb0FnQWlBVUVCSUFOMElnUnhSUVJBUWRRaElBRWdCSEkyQWdBZ0FDQUhOZ0lBSUFjZ0FEWUNHQ0FISUFjMkFnd2dCeUFITmdJSURBSUxBa0FnQUNnQ0FDSUFLQUlFUVhoeElBSkdCRUFnQUNFTEJTQUNRUUJCR1NBRFFRRjJheUFEUVI5R0czUWhBUU5BSUFCQkVHb2dBVUVmZGtFQ2RHb2lCQ2dDQUNJREJFQWdBVUVCZENFQklBTW9BZ1JCZUhFZ0FrWUVRQ0FESVFzTUJBVWdBeUVBREFJTEFBc0xRZUFoS0FJQUlBUkxCRUFRQmdVZ0JDQUhOZ0lBSUFjZ0FEWUNHQ0FISUFjMkFnd2dCeUFITmdJSURBUUxDd3RCNENFb0FnQWlBeUFMUVFocUlnRW9BZ0FpQUUwZ0F5QUxUWEVFUUNBQUlBYzJBZ3dnQVNBSE5nSUFJQWNnQURZQ0NDQUhJQXMyQWd3Z0IwRUFOZ0lZQlJBR0N3c0xJQTRrQmlBSVFRaHFEd3NMUVpBbElRSURRQUpBSUFJb0FnQWlCQ0FHVFFSQUlBUWdBaWdDQkdvaUJTQUdTdzBCQ3lBQ0tBSUlJUUlNQVFzTElBVkJVV29pQkVFSWFpRUNJQVlnQkVFQUlBSnJRUWR4UVFBZ0FrRUhjUnRxSWdJZ0FpQUdRUkJxSWdsSkd5SUNRUWhxSVFSQjZDRWdBRUVBSUFCQkNHb2lCMnRCQjNGQkFDQUhRUWR4R3lJSGFpSUtOZ0lBUWR3aElBRkJXR29pQ3lBSGF5SUhOZ0lBSUFvZ0IwRUJjallDQkNBQUlBdHFRU2cyQWdSQjdDRkJ1Q1VvQWdBMkFnQWdBa0VFYWlJSFFSczJBZ0FnQkVHUUpTa0NBRGNDQUNBRVFaZ2xLUUlBTndJSVFaQWxJQUEyQWdCQmxDVWdBVFlDQUVHY0pVRUFOZ0lBUVpnbElBUTJBZ0FnQWtFWWFpRUFBMEFnQUVFRWFpSUJRUWMyQWdBZ0FFRUlhaUFGU1FSQUlBRWhBQXdCQ3dzZ0FpQUdSd1JBSUFjZ0J5Z0NBRUYrY1RZQ0FDQUdJQUlnQm1zaUJFRUJjallDQkNBQ0lBUTJBZ0FnQkVFRGRpRUJJQVJCZ0FKSkJFQWdBVUVEZEVINElXb2hBRUhRSVNnQ0FDSUNRUUVnQVhRaUFYRUVRRUhnSVNnQ0FDQUFRUWhxSWdFb0FnQWlBa3NFUUJBR0JTQUNJUkVnQVNFV0N3VkIwQ0VnQWlBQmNqWUNBQ0FBSVJFZ0FFRUlhaUVXQ3lBV0lBWTJBZ0FnRVNBR05nSU1JQVlnRVRZQ0NDQUdJQUEyQWd3TUF3c2dCRUVJZGlJQUJIOGdCRUgvLy84SFN3Ui9RUjhGSUFSQkRpQUFJQUJCZ1A0L2FrRVFka0VJY1NJQWRDSUJRWURnSDJwQkVIWkJCSEVpQWlBQWNpQUJJQUowSWdCQmdJQVBha0VRZGtFQ2NTSUJjbXNnQUNBQmRFRVBkbW9pQUVFSGFuWkJBWEVnQUVFQmRISUxCVUVBQ3lJQlFRSjBRWUFrYWlFQUlBWWdBVFlDSENBR1FRQTJBaFFnQ1VFQU5nSUFRZFFoS0FJQUlnSkJBU0FCZENJRmNVVUVRRUhVSVNBQ0lBVnlOZ0lBSUFBZ0JqWUNBQ0FHSUFBMkFoZ2dCaUFHTmdJTUlBWWdCallDQ0F3REN3SkFJQUFvQWdBaUFDZ0NCRUY0Y1NBRVJnUkFJQUFoQ0FVZ0JFRUFRUmtnQVVFQmRtc2dBVUVmUmh0MElRSURRQ0FBUVJCcUlBSkJIM1pCQW5ScUlnVW9BZ0FpQVFSQUlBSkJBWFFoQWlBQktBSUVRWGh4SUFSR0JFQWdBU0VJREFRRklBRWhBQXdDQ3dBTEMwSGdJU2dDQUNBRlN3UkFFQVlGSUFVZ0JqWUNBQ0FHSUFBMkFoZ2dCaUFHTmdJTUlBWWdCallDQ0F3RkN3c0xRZUFoS0FJQUlnRWdDRUVJYWlJQ0tBSUFJZ0JOSUFFZ0NFMXhCRUFnQUNBR05nSU1JQUlnQmpZQ0FDQUdJQUEyQWdnZ0JpQUlOZ0lNSUFaQkFEWUNHQVVRQmdzTEJVSGdJU2dDQUNJQ1JTQUFJQUpKY2dSQVFlQWhJQUEyQWdBTFFaQWxJQUEyQWdCQmxDVWdBVFlDQUVHY0pVRUFOZ0lBUWZRaFFhZ2xLQUlBTmdJQVFmQWhRWDgyQWdCQmhDSkIrQ0UyQWdCQmdDSkIrQ0UyQWdCQmpDSkJnQ0kyQWdCQmlDSkJnQ0kyQWdCQmxDSkJpQ0kyQWdCQmtDSkJpQ0kyQWdCQm5DSkJrQ0kyQWdCQm1DSkJrQ0kyQWdCQnBDSkJtQ0kyQWdCQm9DSkJtQ0kyQWdCQnJDSkJvQ0kyQWdCQnFDSkJvQ0kyQWdCQnRDSkJxQ0kyQWdCQnNDSkJxQ0kyQWdCQnZDSkJzQ0kyQWdCQnVDSkJzQ0kyQWdCQnhDSkJ1Q0kyQWdCQndDSkJ1Q0kyQWdCQnpDSkJ3Q0kyQWdCQnlDSkJ3Q0kyQWdCQjFDSkJ5Q0kyQWdCQjBDSkJ5Q0kyQWdCQjNDSkIwQ0kyQWdCQjJDSkIwQ0kyQWdCQjVDSkIyQ0kyQWdCQjRDSkIyQ0kyQWdCQjdDSkI0Q0kyQWdCQjZDSkI0Q0kyQWdCQjlDSkI2Q0kyQWdCQjhDSkI2Q0kyQWdCQi9DSkI4Q0kyQWdCQitDSkI4Q0kyQWdCQmhDTkIrQ0kyQWdCQmdDTkIrQ0kyQWdCQmpDTkJnQ00yQWdCQmlDTkJnQ00yQWdCQmxDTkJpQ00yQWdCQmtDTkJpQ00yQWdCQm5DTkJrQ00yQWdCQm1DTkJrQ00yQWdCQnBDTkJtQ00yQWdCQm9DTkJtQ00yQWdCQnJDTkJvQ00yQWdCQnFDTkJvQ00yQWdCQnRDTkJxQ00yQWdCQnNDTkJxQ00yQWdCQnZDTkJzQ00yQWdCQnVDTkJzQ00yQWdCQnhDTkJ1Q00yQWdCQndDTkJ1Q00yQWdCQnpDTkJ3Q00yQWdCQnlDTkJ3Q00yQWdCQjFDTkJ5Q00yQWdCQjBDTkJ5Q00yQWdCQjNDTkIwQ00yQWdCQjJDTkIwQ00yQWdCQjVDTkIyQ00yQWdCQjRDTkIyQ00yQWdCQjdDTkI0Q00yQWdCQjZDTkI0Q00yQWdCQjlDTkI2Q00yQWdCQjhDTkI2Q00yQWdCQi9DTkI4Q00yQWdCQitDTkI4Q00yQWdCQjZDRWdBRUVBSUFCQkNHb2lBbXRCQjNGQkFDQUNRUWR4R3lJQ2FpSUVOZ0lBUWR3aElBRkJXR29pQVNBQ2F5SUNOZ0lBSUFRZ0FrRUJjallDQkNBQUlBRnFRU2cyQWdSQjdDRkJ1Q1VvQWdBMkFnQUxDMEhjSVNnQ0FDSUFJQU5MQkVCQjNDRWdBQ0FEYXlJQk5nSUFEQUlMQ3hCalFRdzJBZ0FnRGlRR1FRQVBDMEhvSVVIb0lTZ0NBQ0lBSUFOcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0EwRURjallDQkFzZ0RpUUdJQUJCQ0dvTHJSSUJFWDhnQUVVRVFBOExJQUJCZUdvaUJFSGdJU2dDQUNJTVNRUkFFQVlMSUFCQmZHb29BZ0FpQUVFRGNTSUxRUUZHQkVBUUJnc2dCQ0FBUVhoeElnSnFJUWNDUUNBQVFRRnhCRUFnQWlFQklBUWlBeUVGQlNBRUtBSUFJUWtnQzBVRVFBOExJQVFnQ1dzaUFDQU1TUVJBRUFZTElBa2dBbW9oQkVIa0lTZ0NBQ0FBUmdSQUlBZEJCR29pQVNnQ0FDSURRUU54UVFOSEJFQWdBQ0VESUFRaEFTQUFJUVVNQXd0QjJDRWdCRFlDQUNBQklBTkJmbkUyQWdBZ0FDQUVRUUZ5TmdJRUlBQWdCR29nQkRZQ0FBOExJQWxCQTNZaEFpQUpRWUFDU1FSQUlBQW9BZ3doQXlBQUtBSUlJZ1VnQWtFRGRFSDRJV29pQVVjRVFDQU1JQVZMQkVBUUJnc2dCU2dDRENBQVJ3UkFFQVlMQ3lBRElBVkdCRUJCMENGQjBDRW9BZ0JCQVNBQ2RFRi9jM0UyQWdBZ0FDRURJQVFoQVNBQUlRVU1Bd3NnQXlBQlJnUkFJQU5CQ0dvaEJnVWdEQ0FEU3dSQUVBWUxJQU5CQ0dvaUFTZ0NBQ0FBUmdSQUlBRWhCZ1VRQmdzTElBVWdBellDRENBR0lBVTJBZ0FnQUNFRElBUWhBU0FBSVFVTUFnc2dBQ2dDR0NFTkFrQWdBQ2dDRENJQ0lBQkdCRUFnQUVFUWFpSUdRUVJxSWdrb0FnQWlBZ1JBSUFraEJnVWdCaWdDQUNJQ1JRMENDd05BQWtBZ0FrRVVhaUlKS0FJQUlndEZCRUFnQWtFUWFpSUpLQUlBSWd0RkRRRUxJQWtoQmlBTElRSU1BUXNMSUF3Z0Jrc0VRQkFHQlNBR1FRQTJBZ0FnQWlFSUN3VWdEQ0FBS0FJSUlnWkxCRUFRQmdzZ0JrRU1haUlKS0FJQUlBQkhCRUFRQmdzZ0FrRUlhaUlMS0FJQUlBQkdCRUFnQ1NBQ05nSUFJQXNnQmpZQ0FDQUNJUWdGRUFZTEN3c2dEUVJBSUFBb0Fod2lBa0VDZEVHQUpHb2lCaWdDQUNBQVJnUkFJQVlnQ0RZQ0FDQUlSUVJBUWRRaFFkUWhLQUlBUVFFZ0FuUkJmM054TmdJQUlBQWhBeUFFSVFFZ0FDRUZEQVFMQlVIZ0lTZ0NBQ0FOU3dSQUVBWUZJQTFCRUdvaUFpQU5RUlJxSUFJb0FnQWdBRVliSUFnMkFnQWdDRVVFUUNBQUlRTWdCQ0VCSUFBaEJRd0ZDd3NMUWVBaEtBSUFJZ1lnQ0VzRVFCQUdDeUFJSUEwMkFoZ2dBRUVRYWlJSktBSUFJZ0lFUUNBR0lBSkxCRUFRQmdVZ0NDQUNOZ0lRSUFJZ0NEWUNHQXNMSUFrb0FnUWlBZ1JBUWVBaEtBSUFJQUpMQkVBUUJnVWdDQ0FDTmdJVUlBSWdDRFlDR0NBQUlRTWdCQ0VCSUFBaEJRc0ZJQUFoQXlBRUlRRWdBQ0VGQ3dVZ0FDRURJQVFoQVNBQUlRVUxDd3NnQlNBSFR3UkFFQVlMSUFkQkJHb2lCQ2dDQUNJQVFRRnhSUVJBRUFZTElBQkJBbkVFZnlBRUlBQkJmbkUyQWdBZ0F5QUJRUUZ5TmdJRUlBVWdBV29nQVRZQ0FDQUJCVUhvSVNnQ0FDQUhSZ1JBUWR3aFFkd2hLQUlBSUFGcUlnQTJBZ0JCNkNFZ0F6WUNBQ0FESUFCQkFYSTJBZ1FnQTBIa0lTZ0NBRWNFUUE4TFFlUWhRUUEyQWdCQjJDRkJBRFlDQUE4TFFlUWhLQUlBSUFkR0JFQkIyQ0ZCMkNFb0FnQWdBV29pQURZQ0FFSGtJU0FGTmdJQUlBTWdBRUVCY2pZQ0JDQUZJQUJxSUFBMkFnQVBDeUFBUVhoeElBRnFJUVFnQUVFRGRpRUdBa0FnQUVHQUFra0VRQ0FIS0FJTUlRRWdCeWdDQ0NJQ0lBWkJBM1JCK0NGcUlnQkhCRUJCNENFb0FnQWdBa3NFUUJBR0N5QUNLQUlNSUFkSEJFQVFCZ3NMSUFFZ0FrWUVRRUhRSVVIUUlTZ0NBRUVCSUFaMFFYOXpjVFlDQUF3Q0N5QUJJQUJHQkVBZ0FVRUlhaUVRQlVIZ0lTZ0NBQ0FCU3dSQUVBWUxJQUZCQ0dvaUFDZ0NBQ0FIUmdSQUlBQWhFQVVRQmdzTElBSWdBVFlDRENBUUlBSTJBZ0FGSUFjb0FoZ2hDQUpBSUFjb0Fnd2lBQ0FIUmdSQUlBZEJFR29pQVVFRWFpSUNLQUlBSWdBRVFDQUNJUUVGSUFFb0FnQWlBRVVOQWdzRFFBSkFJQUJCRkdvaUFpZ0NBQ0lHUlFSQUlBQkJFR29pQWlnQ0FDSUdSUTBCQ3lBQ0lRRWdCaUVBREFFTEMwSGdJU2dDQUNBQlN3UkFFQVlGSUFGQkFEWUNBQ0FBSVFvTEJVSGdJU2dDQUNBSEtBSUlJZ0ZMQkVBUUJnc2dBVUVNYWlJQ0tBSUFJQWRIQkVBUUJnc2dBRUVJYWlJR0tBSUFJQWRHQkVBZ0FpQUFOZ0lBSUFZZ0FUWUNBQ0FBSVFvRkVBWUxDd3NnQ0FSQUlBY29BaHdpQUVFQ2RFR0FKR29pQVNnQ0FDQUhSZ1JBSUFFZ0NqWUNBQ0FLUlFSQVFkUWhRZFFoS0FJQVFRRWdBSFJCZjNOeE5nSUFEQVFMQlVIZ0lTZ0NBQ0FJU3dSQUVBWUZJQWhCRUdvaUFDQUlRUlJxSUFBb0FnQWdCMFliSUFvMkFnQWdDa1VOQkFzTFFlQWhLQUlBSWdFZ0Nrc0VRQkFHQ3lBS0lBZzJBaGdnQjBFUWFpSUNLQUlBSWdBRVFDQUJJQUJMQkVBUUJnVWdDaUFBTmdJUUlBQWdDallDR0FzTElBSW9BZ1FpQUFSQVFlQWhLQUlBSUFCTEJFQVFCZ1VnQ2lBQU5nSVVJQUFnQ2pZQ0dBc0xDd3NMSUFNZ0JFRUJjallDQkNBRklBUnFJQVEyQWdBZ0EwSGtJU2dDQUVZRWYwSFlJU0FFTmdJQUR3VWdCQXNMSWdWQkEzWWhBU0FGUVlBQ1NRUkFJQUZCQTNSQitDRnFJUUJCMENFb0FnQWlCVUVCSUFGMElnRnhCRUJCNENFb0FnQWdBRUVJYWlJQktBSUFJZ1ZMQkVBUUJnVWdCU0VQSUFFaEVRc0ZRZEFoSUFVZ0FYSTJBZ0FnQUNFUElBQkJDR29oRVFzZ0VTQUROZ0lBSUE4Z0F6WUNEQ0FESUE4MkFnZ2dBeUFBTmdJTUR3c2dCVUVJZGlJQUJIOGdCVUgvLy84SFN3Ui9RUjhGSUFWQkRpQUFJQUJCZ1A0L2FrRVFka0VJY1NJQWRDSUJRWURnSDJwQkVIWkJCSEVpQkNBQWNpQUJJQVIwSWdCQmdJQVBha0VRZGtFQ2NTSUJjbXNnQUNBQmRFRVBkbW9pQUVFSGFuWkJBWEVnQUVFQmRISUxCVUVBQ3lJQlFRSjBRWUFrYWlFQUlBTWdBVFlDSENBRFFRQTJBaFFnQTBFQU5nSVFBa0JCMUNFb0FnQWlCRUVCSUFGMElnSnhCRUFDUUNBQUtBSUFJZ0FvQWdSQmVIRWdCVVlFUUNBQUlRNEZJQVZCQUVFWklBRkJBWFpySUFGQkgwWWJkQ0VFQTBBZ0FFRVFhaUFFUVI5MlFRSjBhaUlDS0FJQUlnRUVRQ0FFUVFGMElRUWdBU2dDQkVGNGNTQUZSZ1JBSUFFaERnd0VCU0FCSVFBTUFnc0FDd3RCNENFb0FnQWdBa3NFUUJBR0JTQUNJQU0yQWdBZ0F5QUFOZ0lZSUFNZ0F6WUNEQ0FESUFNMkFnZ01CQXNMQzBIZ0lTZ0NBQ0lCSUE1QkNHb2lCU2dDQUNJQVRTQUJJQTVOY1FSQUlBQWdBellDRENBRklBTTJBZ0FnQXlBQU5nSUlJQU1nRGpZQ0RDQURRUUEyQWhnRkVBWUxCVUhVSVNBRUlBSnlOZ0lBSUFBZ0F6WUNBQ0FESUFBMkFoZ2dBeUFETmdJTUlBTWdBellDQ0FzTFFmQWhRZkFoS0FJQVFYOXFJZ0EyQWdBZ0FBUkFEd3RCbUNVaEFBTkFJQUFvQWdBaUFVRUlhaUVBSUFFTkFBdEI4Q0ZCZnpZQ0FBdUFBUUVDZnlBQVJRUkFJQUVRWGc4TElBRkJ2MzlMQkVBUVkwRU1OZ0lBUVFBUEN5QUFRWGhxUVJBZ0FVRUxha0Y0Y1NBQlFRdEpHeEJoSWdJRVFDQUNRUWhxRHdzZ0FSQmVJZ0pGQkVCQkFBOExJQUlnQUNBQVFYeHFLQUlBSWdOQmVIRkJCRUVJSUFOQkEzRWJheUlESUFFZ0F5QUJTUnNRZVJvZ0FCQmZJQUlMbUFrQkRIOENRQ0FBSUFCQkJHb2lDaWdDQUNJSVFYaHhJZ0pxSVFVZ0NFRURjU0lKUVFGSFFlQWhLQUlBSWdzZ0FFMXhJQVVnQUV0eFJRUkFFQVlMSUFWQkJHb2lCeWdDQUNJRVFRRnhSUVJBRUFZTElBbEZCRUFnQVVHQUFra05BU0FDSUFGQkJHcFBCRUFnQWlBQmEwR3dKU2dDQUVFQmRFMEVRQ0FBRHdzTERBRUxJQUlnQVU4RVFDQUNJQUZySWdOQkQwMEVRQ0FBRHdzZ0NpQUlRUUZ4SUFGeVFRSnlOZ0lBSUFBZ0FXb2lBU0FEUVFOeU5nSUVJQWNnQnlnQ0FFRUJjallDQUNBQklBTVFZaUFBRHd0QjZDRW9BZ0FnQlVZRVFFSGNJU2dDQUNBQ2FpSURJQUZORFFFZ0NpQUlRUUZ4SUFGeVFRSnlOZ0lBSUFBZ0FXb2lBaUFESUFGcklnRkJBWEkyQWdSQjZDRWdBallDQUVIY0lTQUJOZ0lBSUFBUEMwSGtJU2dDQUNBRlJnUkFRZGdoS0FJQUlBSnFJZ0lnQVVrTkFTQUNJQUZySWdOQkQwc0VRQ0FLSUFoQkFYRWdBWEpCQW5JMkFnQWdBQ0FCYWlJQklBTkJBWEkyQWdRZ0FDQUNhaUlDSUFNMkFnQWdBa0VFYWlJQ0lBSW9BZ0JCZm5FMkFnQUZJQW9nQ0VFQmNTQUNja0VDY2pZQ0FDQUFJQUpxUVFScUlnRWdBU2dDQUVFQmNqWUNBRUVBSVFGQkFDRURDMEhZSVNBRE5nSUFRZVFoSUFFMkFnQWdBQThMSUFSQkFuRU5BQ0FFUVhoeElBSnFJZ3dnQVVrTkFDQU1JQUZySVEwZ0JFRURkaUVDQWtBZ0JFR0FBa2tFUUNBRktBSU1JUVlnQlNnQ0NDSUVJQUpCQTNSQitDRnFJZ2RIQkVBZ0N5QUVTd1JBRUFZTElBUW9BZ3dnQlVjRVFCQUdDd3NnQmlBRVJnUkFRZEFoUWRBaEtBSUFRUUVnQW5SQmYzTnhOZ0lBREFJTElBWWdCMFlFUUNBR1FRaHFJUU1GSUFzZ0Jrc0VRQkFHQ3lBR1FRaHFJZ0lvQWdBZ0JVWUVRQ0FDSVFNRkVBWUxDeUFFSUFZMkFnd2dBeUFFTmdJQUJTQUZLQUlZSVFrQ1FDQUZLQUlNSWdNZ0JVWUVRQ0FGUVJCcUlnSkJCR29pQkNnQ0FDSURCRUFnQkNFQ0JTQUNLQUlBSWdORkRRSUxBMEFDUUNBRFFSUnFJZ1FvQWdBaUIwVUVRQ0FEUVJCcUlnUW9BZ0FpQjBVTkFRc2dCQ0VDSUFjaEF3d0JDd3NnQ3lBQ1N3UkFFQVlGSUFKQkFEWUNBQ0FESVFZTEJTQUxJQVVvQWdnaUFrc0VRQkFHQ3lBQ1FReHFJZ1FvQWdBZ0JVY0VRQkFHQ3lBRFFRaHFJZ2NvQWdBZ0JVWUVRQ0FFSUFNMkFnQWdCeUFDTmdJQUlBTWhCZ1VRQmdzTEN5QUpCRUFnQlNnQ0hDSURRUUowUVlBa2FpSUNLQUlBSUFWR0JFQWdBaUFHTmdJQUlBWkZCRUJCMUNGQjFDRW9BZ0JCQVNBRGRFRi9jM0UyQWdBTUJBc0ZRZUFoS0FJQUlBbExCRUFRQmdVZ0NVRVFhaUlESUFsQkZHb2dBeWdDQUNBRlJoc2dCallDQUNBR1JRMEVDd3RCNENFb0FnQWlBaUFHU3dSQUVBWUxJQVlnQ1RZQ0dDQUZRUkJxSWdRb0FnQWlBd1JBSUFJZ0Ewc0VRQkFHQlNBR0lBTTJBaEFnQXlBR05nSVlDd3NnQkNnQ0JDSURCRUJCNENFb0FnQWdBMHNFUUJBR0JTQUdJQU0yQWhRZ0F5QUdOZ0lZQ3dzTEN3c2dEVUVRU1FSQUlBb2dDRUVCY1NBTWNrRUNjallDQUNBQUlBeHFRUVJxSWdFZ0FTZ0NBRUVCY2pZQ0FBVWdDaUFJUVFGeElBRnlRUUp5TmdJQUlBQWdBV29pQVNBTlFRTnlOZ0lFSUFBZ0RHcEJCR29pQXlBREtBSUFRUUZ5TmdJQUlBRWdEUkJpQ3lBQUR3dEJBQXZ4RUFFT2Z3SkFJQUFnQVdvaEJnSkFJQUFvQWdRaUIwRUJjUVJBSUFBaEFpQUJJUVFGSUFBb0FnQWhCU0FIUVFOeFJRUkFEd3NnQUNBRmF5SUFRZUFoS0FJQUlneEpCRUFRQmdzZ0JTQUJhaUVCUWVRaEtBSUFJQUJHQkVBZ0JrRUVhaUlFS0FJQUlnSkJBM0ZCQTBjRVFDQUFJUUlnQVNFRURBTUxRZGdoSUFFMkFnQWdCQ0FDUVg1eE5nSUFJQUFnQVVFQmNqWUNCQ0FHSUFFMkFnQVBDeUFGUVFOMklRY2dCVUdBQWtrRVFDQUFLQUlNSVFJZ0FDZ0NDQ0lGSUFkQkEzUkIrQ0ZxSWdSSEJFQWdEQ0FGU3dSQUVBWUxJQVVvQWd3Z0FFY0VRQkFHQ3dzZ0FpQUZSZ1JBUWRBaFFkQWhLQUlBUVFFZ0IzUkJmM054TmdJQUlBQWhBaUFCSVFRTUF3c2dBaUFFUmdSQUlBSkJDR29oQXdVZ0RDQUNTd1JBRUFZTElBSkJDR29pQkNnQ0FDQUFSZ1JBSUFRaEF3VVFCZ3NMSUFVZ0FqWUNEQ0FESUFVMkFnQWdBQ0VDSUFFaEJBd0NDeUFBS0FJWUlRb0NRQ0FBS0FJTUlnTWdBRVlFUUNBQVFSQnFJZ1ZCQkdvaUJ5Z0NBQ0lEQkVBZ0J5RUZCU0FGS0FJQUlnTkZEUUlMQTBBQ1FDQURRUlJxSWdjb0FnQWlDMFVFUUNBRFFSQnFJZ2NvQWdBaUMwVU5BUXNnQnlFRklBc2hBd3dCQ3dzZ0RDQUZTd1JBRUFZRklBVkJBRFlDQUNBRElRZ0xCU0FNSUFBb0FnZ2lCVXNFUUJBR0N5QUZRUXhxSWdjb0FnQWdBRWNFUUJBR0N5QURRUWhxSWdzb0FnQWdBRVlFUUNBSElBTTJBZ0FnQ3lBRk5nSUFJQU1oQ0FVUUJnc0xDeUFLQkVBZ0FDZ0NIQ0lEUVFKMFFZQWthaUlGS0FJQUlBQkdCRUFnQlNBSU5nSUFJQWhGQkVCQjFDRkIxQ0VvQWdCQkFTQURkRUYvYzNFMkFnQWdBQ0VDSUFFaEJBd0VDd1ZCNENFb0FnQWdDa3NFUUJBR0JTQUtRUkJxSWdNZ0NrRVVhaUFES0FJQUlBQkdHeUFJTmdJQUlBaEZCRUFnQUNFQ0lBRWhCQXdGQ3dzTFFlQWhLQUlBSWdVZ0NFc0VRQkFHQ3lBSUlBbzJBaGdnQUVFUWFpSUhLQUlBSWdNRVFDQUZJQU5MQkVBUUJnVWdDQ0FETmdJUUlBTWdDRFlDR0FzTElBY29BZ1FpQXdSQVFlQWhLQUlBSUFOTEJFQVFCZ1VnQ0NBRE5nSVVJQU1nQ0RZQ0dDQUFJUUlnQVNFRUN3VWdBQ0VDSUFFaEJBc0ZJQUFoQWlBQklRUUxDd3NnQmtIZ0lTZ0NBQ0lIU1FSQUVBWUxJQVpCQkdvaUFTZ0NBQ0lBUVFKeEJFQWdBU0FBUVg1eE5nSUFJQUlnQkVFQmNqWUNCQ0FDSUFScUlBUTJBZ0FGUWVnaEtBSUFJQVpHQkVCQjNDRkIzQ0VvQWdBZ0JHb2lBRFlDQUVIb0lTQUNOZ0lBSUFJZ0FFRUJjallDQkNBQ1FlUWhLQUlBUndSQUR3dEI1Q0ZCQURZQ0FFSFlJVUVBTmdJQUR3dEI1Q0VvQWdBZ0JrWUVRRUhZSVVIWUlTZ0NBQ0FFYWlJQU5nSUFRZVFoSUFJMkFnQWdBaUFBUVFGeU5nSUVJQUlnQUdvZ0FEWUNBQThMSUFCQmVIRWdCR29oQkNBQVFRTjJJUVVDUUNBQVFZQUNTUVJBSUFZb0Fnd2hBU0FHS0FJSUlnTWdCVUVEZEVINElXb2lBRWNFUUNBSElBTkxCRUFRQmdzZ0F5Z0NEQ0FHUndSQUVBWUxDeUFCSUFOR0JFQkIwQ0ZCMENFb0FnQkJBU0FGZEVGL2MzRTJBZ0FNQWdzZ0FTQUFSZ1JBSUFGQkNHb2hEZ1VnQnlBQlN3UkFFQVlMSUFGQkNHb2lBQ2dDQUNBR1JnUkFJQUFoRGdVUUJnc0xJQU1nQVRZQ0RDQU9JQU0yQWdBRklBWW9BaGdoQ0FKQUlBWW9BZ3dpQUNBR1JnUkFJQVpCRUdvaUFVRUVhaUlES0FJQUlnQUVRQ0FESVFFRklBRW9BZ0FpQUVVTkFnc0RRQUpBSUFCQkZHb2lBeWdDQUNJRlJRUkFJQUJCRUdvaUF5Z0NBQ0lGUlEwQkN5QURJUUVnQlNFQURBRUxDeUFISUFGTEJFQVFCZ1VnQVVFQU5nSUFJQUFoQ1FzRklBY2dCaWdDQ0NJQlN3UkFFQVlMSUFGQkRHb2lBeWdDQUNBR1J3UkFFQVlMSUFCQkNHb2lCU2dDQUNBR1JnUkFJQU1nQURZQ0FDQUZJQUUyQWdBZ0FDRUpCUkFHQ3dzTElBZ0VRQ0FHS0FJY0lnQkJBblJCZ0NScUlnRW9BZ0FnQmtZRVFDQUJJQWsyQWdBZ0NVVUVRRUhVSVVIVUlTZ0NBRUVCSUFCMFFYOXpjVFlDQUF3RUN3VkI0Q0VvQWdBZ0NFc0VRQkFHQlNBSVFSQnFJZ0FnQ0VFVWFpQUFLQUlBSUFaR0d5QUpOZ0lBSUFsRkRRUUxDMEhnSVNnQ0FDSUJJQWxMQkVBUUJnc2dDU0FJTmdJWUlBWkJFR29pQXlnQ0FDSUFCRUFnQVNBQVN3UkFFQVlGSUFrZ0FEWUNFQ0FBSUFrMkFoZ0xDeUFES0FJRUlnQUVRRUhnSVNnQ0FDQUFTd1JBRUFZRklBa2dBRFlDRkNBQUlBazJBaGdMQ3dzTEN5QUNJQVJCQVhJMkFnUWdBaUFFYWlBRU5nSUFJQUpCNUNFb0FnQkdCRUJCMkNFZ0JEWUNBQThMQ3lBRVFRTjJJUUVnQkVHQUFra0VRQ0FCUVFOMFFmZ2hhaUVBUWRBaEtBSUFJZ1JCQVNBQmRDSUJjUVJBUWVBaEtBSUFJQUJCQ0dvaUFTZ0NBQ0lFU3dSQUVBWUZJQVFoRFNBQklROExCVUhRSVNBRUlBRnlOZ0lBSUFBaERTQUFRUWhxSVE4TElBOGdBallDQUNBTklBSTJBZ3dnQWlBTk5nSUlJQUlnQURZQ0RBOExJQVJCQ0hZaUFBUi9JQVJCLy8vL0Iwc0VmMEVmQlNBRVFRNGdBQ0FBUVlEK1AycEJFSFpCQ0hFaUFIUWlBVUdBNEI5cVFSQjJRUVJ4SWdNZ0FISWdBU0FEZENJQVFZQ0FEMnBCRUhaQkFuRWlBWEpySUFBZ0FYUkJEM1pxSWdCQkIycDJRUUZ4SUFCQkFYUnlDd1ZCQUFzaUFVRUNkRUdBSkdvaEFDQUNJQUUyQWh3Z0FrRUFOZ0lVSUFKQkFEWUNFRUhVSVNnQ0FDSURRUUVnQVhRaUJYRkZCRUJCMUNFZ0F5QUZjallDQUNBQUlBSTJBZ0FNQVFzQ1FDQUFLQUlBSWdBb0FnUkJlSEVnQkVZRWZ5QUFCU0FFUVFCQkdTQUJRUUYyYXlBQlFSOUdHM1FoQXdOQUlBQkJFR29nQTBFZmRrRUNkR29pQlNnQ0FDSUJCRUFnQTBFQmRDRURJQUVvQWdSQmVIRWdCRVlOQXlBQklRQU1BUXNMUWVBaEtBSUFJQVZMQkVBUUJnc2dCU0FDTmdJQURBSUxJUUVMUWVBaEtBSUFJZ1FnQVVFSWFpSURLQUlBSWdCTklBUWdBVTF4UlFSQUVBWUxJQUFnQWpZQ0RDQURJQUkyQWdBZ0FpQUFOZ0lJSUFJZ0FUWUNEQ0FDUVFBMkFoZ1BDeUFDSUFBMkFoZ2dBaUFDTmdJTUlBSWdBallDQ0FzRkFFSEFKUXRRQVFKL0FuOGdBZ1IvQTBBZ0FDd0FBQ0lESUFFc0FBQWlCRVlFUUNBQVFRRnFJUUFnQVVFQmFpRUJRUUFnQWtGL2FpSUNSUTBER2d3QkN3c2dBMEgvQVhFZ0JFSC9BWEZyQlVFQUN3c2lBQXVwQVFFQ2Z5QUJRZjhIU2dSQUlBQkVBQUFBQUFBQTRIK2lJZ0JFQUFBQUFBQUE0SCtpSUFBZ0FVSCtEMG9pQWhzaEFDQUJRWUp3YWlJRFFmOEhJQU5CL3dkSUd5QUJRWUY0YWlBQ0d5RUJCU0FCUVlKNFNBUkFJQUJFQUFBQUFBQUFFQUNpSWdCRUFBQUFBQUFBRUFDaUlBQWdBVUdFY0VnaUFoc2hBQ0FCUWZ3UGFpSURRWUo0SUFOQmduaEtHeUFCUWY0SGFpQUNHeUVCQ3dzZ0FDQUJRZjhIYXExQ05JYS9vZ3VhQkFFSWZ5TUdJUW9qQmtIUUFXb2tCaUFLSWdkQndBRnFJZ1JDQVRjREFBSkFJQUlnQVd3aUN3UkFRUUFnQW1zaENTQUhJQUkyQWdRZ0J5QUNOZ0lBUVFJaEJpQUNJUVVnQWlFQkEwQWdCeUFHUVFKMGFpQUZJQUpxSUFGcUlnZzJBZ0FnQmtFQmFpRUdJQWdnQzBrRVFDQUJJUVVnQ0NFQkRBRUxDeUFBSUF0cUlBbHFJZ1lnQUVzRVFDQUdJUWhCQVNFQlFRRWhCUU5BSUFWQkEzRkJBMFlFZnlBQUlBSWdBeUFCSUFjUVp5QUVRUUlRYUNBQlFRSnFCU0FISUFGQmYyb2lCVUVDZEdvb0FnQWdDQ0FBYTBrRVFDQUFJQUlnQXlBQklBY1Fad1VnQUNBQ0lBTWdCQ0FCUVFBZ0J4QnBDeUFCUVFGR0JIOGdCRUVCRUdwQkFBVWdCQ0FGRUdwQkFRc0xJUUVnQkNBRUtBSUFRUUZ5SWdVMkFnQWdBQ0FDYWlJQUlBWkpEUUFMSUFFaEJnVkJBU0VHUVFFaEJRc2dBQ0FDSUFNZ0JDQUdRUUFnQnhCcElBUkJCR29oQ0NBQUlRRWdCaUVBQTBBQ2Z3SkFJQUJCQVVZZ0JVRUJSbkVFZnlBSUtBSUFSUTBGREFFRklBQkJBa2dOQVNBRVFRSVFhaUFFSUFRb0FnQkJCM00yQWdBZ0JFRUJFR2dnQVNBSElBQkJmbW9pQlVFQ2RHb29BZ0JySUFscUlBSWdBeUFFSUFCQmYycEJBU0FIRUdrZ0JFRUJFR29nQkNBRUtBSUFRUUZ5SWdZMkFnQWdBU0FKYWlJQklBSWdBeUFFSUFWQkFTQUhFR2tnQlNFQUlBWUxEQUVMSUFRZ0JCQnJJZ1VRYUNBQklBbHFJUUVnQlNBQWFpRUFJQVFvQWdBTElRVU1BQUFMQUFzTElBb2tCZ3ZnQVFFSWZ5TUdJUW9qQmtId0FXb2tCaUFLSWdnZ0FEWUNBQUpBSUFOQkFVb0VRRUVBSUFGcklRd2dBQ0VHSUFNaENVRUJJUU1nQUNFRkEwQWdCU0FHSUF4cUlnY2dCQ0FKUVg1cUlnWkJBblJxS0FJQWF5SUFJQUpCQTNFUkFBQkJmMG9FUUNBRklBY2dBa0VEY1JFQUFFRi9TZzBEQ3lBQUlBY2dBa0VEY1JFQUFFRi9TaUVGSUFnZ0EwRUNkR29oQ3lBRFFRRnFJUU1nQlFSL0lBc2dBRFlDQUNBSlFYOXFCU0FMSUFjMkFnQWdCeUVBSUFZTElnbEJBVW9FUUNBQUlRWWdDQ2dDQUNFRkRBRUxDd1ZCQVNFREN3c2dBU0FJSUFNUWJTQUtKQVlMV1FFRGZ5QUFRUVJxSVFJZ0FDQUJRUjlMQkg4Z0FDQUNLQUlBSWdNMkFnQWdBa0VBTmdJQUlBRkJZR29oQVVFQUJTQUFLQUlBSVFNZ0FpZ0NBQXNpQkVFZ0lBRnJkQ0FESUFGMmNqWUNBQ0FDSUFRZ0FYWTJBZ0FMalFNQkIzOGpCaUVLSXdaQjhBRnFKQVlnQ2tIb0FXb2lDU0FES0FJQUlnYzJBZ0FnQ1VFRWFpSU1JQU1vQWdRaUF6WUNBQ0FLSWdzZ0FEWUNBQUpBQWtBZ0IwRUJSeUFEY2dSQVFRQWdBV3NoRFNBQUlBWWdCRUVDZEdvb0FnQnJJZ2dnQUNBQ1FRTnhFUUFBUVFGSUJFQkJBU0VEQlVFQklRY2dCVVVoQlNBQUlRTWdDQ0VBQTBBZ0JTQUVRUUZLY1FSQUlBWWdCRUYrYWtFQ2RHb29BZ0FoQlNBRElBMXFJZ2dnQUNBQ1FRTnhFUUFBUVg5S0JFQWdCeUVGREFVTElBZ2dCV3NnQUNBQ1FRTnhFUUFBUVg5S0JFQWdCeUVGREFVTEN5QUhRUUZxSVFVZ0N5QUhRUUowYWlBQU5nSUFJQWtnQ1JCcklnTVFhQ0FESUFScUlRUWdDU2dDQUVFQlJ5QU1LQUlBUVFCSGNrVUVRQ0FBSVFNTUJBc2dBQ0FHSUFSQkFuUnFLQUlBYXlJSUlBc29BZ0FnQWtFRGNSRUFBRUVCU0FSL0lBVWhBMEVBQlNBQUlRTWdCU0VIUVFFaEJTQUlJUUFNQVFzaEJRc0xCVUVCSVFNTElBVkZCRUFnQXlFRklBQWhBd3dCQ3d3QkN5QUJJQXNnQlJCdElBTWdBU0FDSUFRZ0JoQm5DeUFLSkFZTFZ3RURmeUFBUVFScUlnSWdBVUVmU3dSL0lBSWdBQ2dDQUNJRE5nSUFJQUJCQURZQ0FDQUJRV0JxSVFGQkFBVWdBaWdDQUNFRElBQW9BZ0FMSWdSQklDQUJhM1lnQXlBQmRISTJBZ0FnQUNBRUlBRjBOZ0lBQ3ljQkFYOGdBQ2dDQUVGL2FoQnNJZ0VFZnlBQkJTQUFLQUlFRUd3aUFFRWdha0VBSUFBYkN3czVBUUovSUFBRVFDQUFRUUZ4UlFSQUEwQWdBVUVCYWlFQklBQkJBWFloQWlBQVFRSnhSUVJBSUFJaEFBd0JDd3NMQlVFZ0lRRUxJQUVMcEFFQkJYOGpCaUVGSXdaQmdBSnFKQVlnQlNFREFrQWdBa0VDVGdSQUlBRWdBa0VDZEdvaUJ5QUROZ0lBSUFBRVFBTkFJQU1nQVNnQ0FDQUFRWUFDSUFCQmdBSkpHeUlFRUhrYVFRQWhBd05BSUFFZ0EwRUNkR29pQmlnQ0FDQUJJQU5CQVdvaUEwRUNkR29vQWdBZ0JCQjVHaUFHSUFZb0FnQWdCR28yQWdBZ0F5QUNSdzBBQ3lBQUlBUnJJZ0JGRFFNZ0J5Z0NBQ0VEREFBQUN3QUxDd3NnQlNRR0MvNElBd2QvQVg0RWZDTUdJUWNqQmtFd2FpUUdJQWRCRUdvaEJDQUhJUVVnQUwwaUNVSS9pS2NoQmdKL0FrQWdDVUlnaUtjaUFrSC8vLy8vQjNFaUEwSDcxTDJBQkVrRWZ5QUNRZi8vUDNGQis4TWtSZzBCSUFaQkFFY2hBaUFEUWYyeWk0QUVTUVIvSUFJRWZ5QUJJQUJFQUFCQVZQc2grVCtnSWdCRU1XTmlHbUcwMEQyZ0lnbzVBd0FnQVNBQUlBcWhSREZqWWhwaHROQTlvRGtEQ0VGL0JTQUJJQUJFQUFCQVZQc2grYitnSWdCRU1XTmlHbUcwMEwyZ0lnbzVBd0FnQVNBQUlBcWhSREZqWWhwaHROQzlvRGtEQ0VFQkN3VWdBZ1IvSUFFZ0FFUUFBRUJVK3lFSlFLQWlBRVF4WTJJYVliVGdQYUFpQ2prREFDQUJJQUFnQ3FGRU1XTmlHbUcwNEQyZ09RTUlRWDRGSUFFZ0FFUUFBRUJVK3lFSndLQWlBRVF4WTJJYVliVGd2YUFpQ2prREFDQUJJQUFnQ3FGRU1XTmlHbUcwNEwyZ09RTUlRUUlMQ3dVZ0EwRzhqUEdBQkVrRVFDQURRYjM3MTRBRVNRUkFJQU5CL0xMTGdBUkdEUU1nQmdSQUlBRWdBRVFBQURCL2ZOa1NRS0FpQUVUS2xKT25rUTdwUGFBaUNqa0RBQ0FCSUFBZ0NxRkV5cFNUcDVFTzZUMmdPUU1JUVgwTUJRVWdBU0FBUkFBQU1IOTgyUkxBb0NJQVJNcVVrNmVSRHVtOW9DSUtPUU1BSUFFZ0FDQUtvVVRLbEpPbmtRN3B2YUE1QXdoQkF3d0ZDd0FGSUFOQis4UGtnQVJHRFFNZ0JnUkFJQUVnQUVRQUFFQlUreUVaUUtBaUFFUXhZMklhWWJUd1BhQWlDamtEQUNBQklBQWdDcUZFTVdOaUdtRzA4RDJnT1FNSVFYd01CUVVnQVNBQVJBQUFRRlQ3SVJuQW9DSUFSREZqWWhwaHRQQzlvQ0lLT1FNQUlBRWdBQ0FLb1VReFkySWFZYlR3dmFBNUF3aEJCQXdGQ3dBTEFBc2dBMEg3dytTSkJFa05BU0FEUWYvL3YvOEhTd1JBSUFFZ0FDQUFvU0lBT1FNSUlBRWdBRGtEQUVFQURBTUxJQWxDLy8vLy8vLy8vd2VEUW9DQWdJQ0FnSUN3d1FDRXZ5RUFRUUFoQWdOQUlBUWdBa0VEZEdvZ0FLcTNJZ281QXdBZ0FDQUtvVVFBQUFBQUFBQndRYUloQUNBQ1FRRnFJZ0pCQWtjTkFBc2dCQ0FBT1FNUUlBQkVBQUFBQUFBQUFBQmhCRUJCQVNFQ0EwQWdBa0YvYWlFSUlBUWdBa0VEZEdvckF3QkVBQUFBQUFBQUFBQmhCRUFnQ0NFQ0RBRUxDd1ZCQWlFQ0N5QUVJQVVnQTBFVWRrSHFkMm9nQWtFQmFrRUJFRzhoQWlBRkt3TUFJUUFnQmdSL0lBRWdBSm81QXdBZ0FTQUZLd01JbWprRENFRUFJQUpyQlNBQklBQTVBd0FnQVNBRkt3TUlPUU1JSUFJTEN3d0JDeUFBUklQSXlXMHdYK1Evb2tRQUFBQUFBQUE0UTZCRUFBQUFBQUFBT01PZ0lndXFJUUlnQVNBQUlBdEVBQUJBVlBzaCtUK2lvU0lLSUF0RU1XTmlHbUcwMEQyaUlnQ2hJZ3c1QXdBZ0EwRVVkaUlJSUF5OVFqU0lwMEgvRDNGclFSQktCRUFnQzBSemNBTXVpaG1qTzZJZ0NpQUtJQXRFQUFCZ0dtRzAwRDJpSWdDaElncWhJQUNob1NFQUlBRWdDaUFBb1NJTU9RTUFJQXRFd1VrZ0pacURlem1pSUFvZ0NpQUxSQUFBQUM2S0dhTTdvaUlOb1NJTG9TQU5vYUVoRFNBSUlBeTlRalNJcDBIL0QzRnJRVEZLQkVBZ0FTQUxJQTJoSWd3NUF3QWdEU0VBSUFzaENnc0xJQUVnQ2lBTW9TQUFvVGtEQ0NBQ0N5RUJJQWNrQmlBQkMvOFFBaFovQTN3akJpRVBJd1pCc0FScUpBWWdEMEhBQW1vaEVDQUNRWDFxUVJodElnVkJBQ0FGUVFCS0d5RVNJQVJCQW5SQm9CQnFLQUlBSWcwZ0EwRi9haUlIYWtFQVRnUkFJQTBnQTJvaENTQVNJQWRySVFVRFFDQVFJQVpCQTNScUlBVkJBRWdFZkVRQUFBQUFBQUFBQUFVZ0JVRUNkRUd3RUdvb0FnQzNDeUliT1FNQUlBVkJBV29oQlNBR1FRRnFJZ1lnQ1VjTkFBc0xJQTlCNEFOcUlRd2dEMEdnQVdvaENpQVBJUTRnQWtGb2FpQVNRV2hzSWhacUlRa2dBMEVBU2lFSVFRQWhCUU5BSUFnRVFDQUZJQWRxSVF0RUFBQUFBQUFBQUFBaEcwRUFJUVlEUUNBYklBQWdCa0VEZEdvckF3QWdFQ0FMSUFaclFRTjBhaXNEQUtLZ0lSc2dCa0VCYWlJR0lBTkhEUUFMQlVRQUFBQUFBQUFBQUNFYkN5QU9JQVZCQTNScUlCczVBd0FnQlVFQmFpRUdJQVVnRFVnRVFDQUdJUVVNQVFzTElBbEJBRW9oRTBFWUlBbHJJUlJCRnlBSmF5RVhJQWxGSVJnZ0EwRUFTaUVaSUEwaEJRSkFBa0FDUUFOQUlBNGdCVUVEZEdvckF3QWhHeUFGUVFCS0lnc0VRQ0FGSVFaQkFDRUhBMEFnRENBSFFRSjBhaUFiSUJ0RUFBQUFBQUFBY0Q2aXFyY2lHMFFBQUFBQUFBQndRYUtocWpZQ0FDQU9JQVpCZjJvaUNFRURkR29yQXdBZ0c2QWhHeUFIUVFGcUlRY2dCa0VCU2dSQUlBZ2hCZ3dCQ3dzTElCc2dDUkJsSWhzZ0cwUUFBQUFBQUFEQVA2S2NSQUFBQUFBQUFDQkFvcUVpRzZvaEJpQWJJQWEzb1NFYkFrQUNRQUpBSUJNRWZ5QU1JQVZCZjJwQkFuUnFJZ2dvQWdBaUVTQVVkU0VISUFnZ0VTQUhJQlIwYXlJSU5nSUFJQWdnRjNVaENDQUhJQVpxSVFZTUFRVWdHQVIvSUF3Z0JVRi9ha0VDZEdvb0FnQkJGM1VoQ0F3Q0JTQWJSQUFBQUFBQUFPQS9aZ1IvUVFJaENBd0VCVUVBQ3dzTElRZ01BZ3NnQ0VFQVNnMEFEQUVMSUFZaEJ5QUxCRUJCQUNFR1FRQWhDd05BSUF3Z0MwRUNkR29pR2lnQ0FDRVJBa0FDUUNBR0JIOUIvLy8vQnlFVkRBRUZJQkVFZjBFQklRWkJnSUNBQ0NFVkRBSUZRUUFMQ3lFR0RBRUxJQm9nRlNBUmF6WUNBQXNnQzBFQmFpSUxJQVZIRFFBTElBWWhDd1ZCQUNFTEN5QUhRUUZxSVFZQ1FDQVRCRUFDUUFKQUFrQWdDVUVCYXc0Q0FBRUNDeUFNSUFWQmYycEJBblJxSWdjZ0J5Z0NBRUgvLy84RGNUWUNBQXdEQ3lBTUlBVkJmMnBCQW5ScUlnY2dCeWdDQUVILy8vOEJjVFlDQUFzTEN5QUlRUUpHQkVCRUFBQUFBQUFBOEQ4Z0c2RWhHeUFMQkVBZ0cwUUFBQUFBQUFEd1B5QUpFR1doSVJzTFFRSWhDQXNMSUJ0RUFBQUFBQUFBQUFCaURRSWdCU0FOU2dSQVFRQWhDeUFGSVFjRFFDQU1JQWRCZjJvaUIwRUNkR29vQWdBZ0MzSWhDeUFISUExS0RRQUxJQXNOQWd0QkFTRUdBMEFnQmtFQmFpRUhJQXdnRFNBR2EwRUNkR29vQWdCRkJFQWdCeUVHREFFTEN5QUdJQVZxSVFjRFFDQVFJQVVnQTJvaUNFRURkR29nQlVFQmFpSUdJQkpxUVFKMFFiQVFhaWdDQUxjNUF3QWdHUVJBUkFBQUFBQUFBQUFBSVJ0QkFDRUZBMEFnR3lBQUlBVkJBM1JxS3dNQUlCQWdDQ0FGYTBFRGRHb3JBd0Npb0NFYklBVkJBV29pQlNBRFJ3MEFDd1ZFQUFBQUFBQUFBQUFoR3dzZ0RpQUdRUU4wYWlBYk9RTUFJQVlnQjBnRVFDQUdJUVVNQVFzTElBY2hCUXdBQUFzQUN5QUpJUUFEUUNBQVFXaHFJUUFnRENBRlFYOXFJZ1ZCQW5ScUtBSUFSUTBBQ3lBQUlRSWdCU0VBREFFTElBd2dHMEVBSUFsckVHVWlHMFFBQUFBQUFBQndRV1lFZnlBTUlBVkJBblJxSUJzZ0cwUUFBQUFBQUFCd1BxS3FJZ08zUkFBQUFBQUFBSEJCb3FHcU5nSUFJQllnQW1vaEFpQUZRUUZxQlNBSklRSWdHNm9oQXlBRkN5SUFRUUowYWlBRE5nSUFDMFFBQUFBQUFBRHdQeUFDRUdVaEd5QUFRWDlLSWdjRVFDQUFJUUlEUUNBT0lBSkJBM1JxSUJzZ0RDQUNRUUowYWlnQ0FMZWlPUU1BSUJ0RUFBQUFBQUFBY0Q2aUlSc2dBa0YvYWlFRElBSkJBRW9FUUNBRElRSU1BUXNMSUFjRVFDQUFJUUlEUUNBQUlBSnJJUWxCQUNFRFJBQUFBQUFBQUFBQUlSc0RRQ0FiSUFOQkEzUkJ3QkpxS3dNQUlBNGdBeUFDYWtFRGRHb3JBd0Npb0NFYklBTkJBV29oQlNBRElBMU9JQU1nQ1U5eVJRUkFJQVVoQXd3QkN3c2dDaUFKUVFOMGFpQWJPUU1BSUFKQmYyb2hBeUFDUVFCS0JFQWdBeUVDREFFTEN3c0xBa0FDUUFKQUFrQWdCQTRFQUFFQkFnTUxJQWNFUUVRQUFBQUFBQUFBQUNFYkEwQWdHeUFLSUFCQkEzUnFLd01Bb0NFYklBQkJmMm9oQWlBQVFRQktCRUFnQWlFQURBRUxDd1ZFQUFBQUFBQUFBQUFoR3dzZ0FTQWJtaUFiSUFnYk9RTUFEQUlMSUFjRVFFUUFBQUFBQUFBQUFDRWJJQUFoQWdOQUlCc2dDaUFDUVFOMGFpc0RBS0FoR3lBQ1FYOXFJUU1nQWtFQVNnUkFJQU1oQWd3QkN3c0ZSQUFBQUFBQUFBQUFJUnNMSUFFZ0d5QWJtaUFJUlNJRUd6a0RBQ0FLS3dNQUlCdWhJUnNnQUVFQlRnUkFRUUVoQWdOQUlCc2dDaUFDUVFOMGFpc0RBS0FoR3lBQ1FRRnFJUU1nQWlBQVJ3UkFJQU1oQWd3QkN3c0xJQUVnR3lBYm1pQUVHemtEQ0F3QkN5QUFRUUJLQkVBZ0NpQUFJZ0pCQTNScUt3TUFJUnNEUUNBS0lBSkJmMm9pQTBFRGRHb2lCQ3NEQUNJZElCdWdJUndnQ2lBQ1FRTjBhaUFiSUIwZ0hLR2dPUU1BSUFRZ0hEa0RBQ0FDUVFGS0JFQWdBeUVDSUJ3aEd3d0JDd3NnQUVFQlNpSUVCRUFnQ2lBQUlnSkJBM1JxS3dNQUlSc0RRQ0FLSUFKQmYyb2lBMEVEZEdvaUJTc0RBQ0lkSUJ1Z0lSd2dDaUFDUVFOMGFpQWJJQjBnSEtHZ09RTUFJQVVnSERrREFDQUNRUUpLQkVBZ0F5RUNJQndoR3d3QkN3c2dCQVJBUkFBQUFBQUFBQUFBSVJzRFFDQWJJQW9nQUVFRGRHb3JBd0NnSVJzZ0FFRi9haUVDSUFCQkFrb0VRQ0FDSVFBTUFRc0xCVVFBQUFBQUFBQUFBQ0ViQ3dWRUFBQUFBQUFBQUFBaEd3c0ZSQUFBQUFBQUFBQUFJUnNMSUFvckF3QWhIQ0FJQkVBZ0FTQWNtamtEQUNBQklBb3JBd2lhT1FNSUlBRWdHNW81QXhBRklBRWdIRGtEQUNBQklBb3JBd2c1QXdnZ0FTQWJPUU1RQ3dzZ0R5UUdJQVpCQjNFTGx3RUJBM3dnQUNBQW9pSURJQU1nQTZLaUlBTkVmTlhQV2pyWjVUMmlST3VjSzRybTVWcStvS0lnQXlBRFJIMytzVmZqSGNjK29rVFZZY0Vab0FFcXY2Q2lSS2I0RUJFUkVZRS9vS0FoQlNBRElBQ2lJUVFnQUNBRVJFbFZWVlZWVmNVL29pQURJQUZFQUFBQUFBQUE0RCtpSUFRZ0JhS2hvaUFCb2FDaElBUWdBeUFGb2tSSlZWVlZWVlhGdjZDaUlBQ2dJQUliSWdBTENBQWdBQ0FCRUdVTGxBRUJCSHdnQUNBQW9pSUNJQUtpSVFORUFBQUFBQUFBOEQ4Z0FrUUFBQUFBQUFEZ1A2SWlCS0VpQlVRQUFBQUFBQUR3UHlBRm9TQUVvU0FDSUFJZ0FpQUNSSkFWeXhtZ0Fmbytva1IzVWNFV2JNRld2NkNpUkV4VlZWVlZWYVUvb0tJZ0F5QURvaUFDUk1TeHRMMmU3aUUrSUFKRTFEaUl2dW42cUQyaW9hSkVyVktjZ0U5K2tyNmdvcUNpSUFBZ0FhS2hvS0FMeEFFQkEzOGpCaUVDSXdaQkVHb2tCaUFDSVFFQ2ZDQUF2VUlnaUtkQi8vLy8vd2R4SWdOQi9NT2svd05KQkh3Z0EwR2V3WnJ5QTBrRWZFUUFBQUFBQUFEd1B3VWdBRVFBQUFBQUFBQUFBQkJ5Q3dVZ0FDQUFvU0FEUWYvL3YvOEhTdzBCR2dKQUFrQUNRQUpBSUFBZ0FSQnVRUU54RGdNQUFRSURDeUFCS3dNQUlBRXJBd2dRY2d3RUN5QUJLd01BSUFFckF3aEJBUkJ3bWd3REN5QUJLd01BSUFFckF3Z1FjcG9NQWdzZ0FTc0RBQ0FCS3dNSVFRRVFjQXNMSVFBZ0FpUUdJQUFMeXdFQkEzOGpCaUVDSXdaQkVHb2tCaUFDSVFFQ1FDQUF2VUlnaUtkQi8vLy8vd2R4SWdOQi9NT2svd05KQkVBZ0EwR0FnTUR5QTA4RVFDQUFSQUFBQUFBQUFBQUFRUUFRY0NFQUN3VWdBMEgvLzcvL0Iwc0VRQ0FBSUFDaElRQU1BZ3NDUUFKQUFrQUNRQUpBSUFBZ0FSQnVRUU54RGdNQUFRSURDeUFCS3dNQUlBRXJBd2hCQVJCd0lRQU1CUXNnQVNzREFDQUJLd01JRUhJaEFBd0VDeUFCS3dNQUlBRXJBd2hCQVJCd21pRUFEQU1MSUFFckF3QWdBU3NEQ0JCeW1pRUFDd3NMSUFJa0JpQUFDNXNEQXdKL0FYNENmQ0FBdlNJRFFqK0lweUVCQW53Q2Z3SkFJQU5DSUlpblFmLy8vLzhIY1NJQ1FhckdtSVFFU3dSOElBTkMvLy8vLy8vLy8vLy9BSU5DZ0lDQWdJQ0FnUGovQUZZRVFDQUFEd3NnQUVUdk9mcitRaTZHUUdRRVFDQUFSQUFBQUFBQUFPQi9vZzhGSUFCRTByeDYzU3NqaHNCaklBQkVVVEF0MVJCSmg4QmpjVVVOQWtRQUFBQUFBQUFBQUNJQUR3c0FCU0FDUWNMYzJQNERTd1JBSUFKQnNjWEMvd05MRFFJZ0FVRUJjeUFCYXd3REN5QUNRWUNBd1BFRFN3UjhRUUFoQVNBQUJTQUFSQUFBQUFBQUFQQS9vQThMQ3d3Q0N5QUFSUDZDSzJWSEZmYy9vaUFCUVFOMFFZQVRhaXNEQUtDcUN5RUJJQUFnQWJjaUJFUUFBT0QrUWk3bVA2S2hJZ0FnQkVSMlBIazE3em5xUGFJaUJhRUxJUVFnQUNBRUlBUWdCQ0FFb2lJQUlBQWdBQ0FBSUFCRTBLUytjbWszWmo2aVJQRnIwc1ZCdmJ1K29LSkVMTjRscjJwV0VUK2dva1NUdmI0V2JNRm12NkNpUkQ1VlZWVlZWY1Uvb0tLaElnQ2lSQUFBQUFBQUFBQkFJQUNob3lBRm9hQkVBQUFBQUFBQThEK2dJUUFnQVVVRVFDQUFEd3NnQUNBQkVHVUxud01EQW44QmZnVjhJQUM5SWdOQ0lJaW5JUUVDZnlBRFFnQlRJZ0lnQVVHQWdNQUFTWElFZnlBRFF2Ly8vLy8vLy8vLy93Q0RRZ0JSQkVCRUFBQUFBQUFBOEw4Z0FDQUFvcU1QQ3lBQ1JRUkFJQUJFQUFBQUFBQUFVRU9pdlNJRFFpQ0lweUVCSUFOQy8vLy8vdytESVFOQnkzY01BZ3NnQUNBQW9VUUFBQUFBQUFBQUFLTVBCU0FCUWYvL3YvOEhTd1JBSUFBUEN5QURRdi8vLy84UGd5SURRZ0JSSUFGQmdJREEvd05HY1FSL1JBQUFBQUFBQUFBQUR3VkJnWGdMQ3dzaEFpQUJRZUsrSldvaUFVSC8vejl4UVo3Qm12OERhcTFDSUlZZ0E0Uy9SQUFBQUFBQUFQQy9vQ0lGSUFWRUFBQUFBQUFBNEQraW9pRUdJQVVnQlVRQUFBQUFBQUFBUUtDaklnY2dCNklpQ0NBSW9pRUVJQUlnQVVFVWRtcTNJZ0JFQUFEZy9rSXU1aitpSUFVZ0FFUjJQSGsxN3pucVBhSWdCeUFHSUFRZ0JDQUVSSi9HZU5BSm1zTS9va1N2ZUk0ZHhYSE1QNkNpUkFUNmw1bVptZGsvb0tJZ0NDQUVJQVFnQkVSRVVqN2ZFdkhDUDZKRTNnUExsbVJHeHorZ29rUlpreUtVSkVuU1A2Q2lSSk5WVlZWVlZlVS9vS0tnb0tLZ0lBYWhvS0FMOFE4REMzOENmZ2g4QWtBQ1FBSkFJQUc5SWcxQ0lJaW5JZ1ZCLy8vLy93ZHhJZ01nRGFjaUJuSkZCRUJFQUFBQUFBQUE4RDhQQ3lBQXZTSU9RaUNJcHlFSElBNm5JZ2hGSWdvZ0IwR0FnTUQvQTBaeEJFQkVBQUFBQUFBQThEOFBDeUFIUWYvLy8vOEhjU0lFUVlDQXdQOEhUUVJBSUFoQkFFY2dCRUdBZ01EL0IwWnhJQU5CZ0lEQS93ZExja1VFUUNBR1FRQkhJQU5CZ0lEQS93ZEdJZ3R4UlFSQUFrQUNRQUpBSUFkQkFFZ2lDVVVOQUNBRFFmLy8vNWtFU3dSL1FRSWhBZ3dCQlNBRFFmLy92LzhEU3dSL0lBTkJGSFloQWlBRFFmLy8vNGtFU3dSQVFRSWdCa0d6Q0NBQ2F5SUNkaUlNUVFGeGEwRUFJQXdnQW5RZ0JrWWJJUUlNQXdzZ0JnUi9RUUFGUVFJZ0EwR1RDQ0FDYXlJQ2RpSUdRUUZ4YTBFQUlBWWdBblFnQTBZYklRSU1CQXNGREFJTEN5RUNEQUlMSUFaRkRRQU1BUXNnQ3dSQUlBUkJnSURBZ0h4cUlBaHlSUVJBUkFBQUFBQUFBUEEvRHdzZ0JVRi9TaUVDSUFSQi8vKy8vd05MQkVBZ0FVUUFBQUFBQUFBQUFDQUNHdzhGUkFBQUFBQUFBQUFBSUFHYUlBSWJEd3NBQ3lBRFFZQ0F3UDhEUmdSQUlBQkVBQUFBQUFBQThEOGdBS01nQlVGL1Noc1BDeUFGUVlDQWdJQUVSZ1JBSUFBZ0FLSVBDeUFIUVg5S0lBVkJnSUNBL3dOR2NRUkFJQUNmRHdzTElBQ1pJUThnQ2dSQUlBUkZJQVJCZ0lDQWdBUnlRWUNBd1A4SFJuSUVRRVFBQUFBQUFBRHdQeUFQb3lBUElBVkJBRWdiSVFBZ0NVVUVRQ0FBRHdzZ0FpQUVRWUNBd0lCOGFuSUVRQ0FBbWlBQUlBSkJBVVliRHdzTUJRc0xBbndnQ1FSOEFrQUNRQUpBSUFJT0FnQUJBZ3NNQnd0RUFBQUFBQUFBOEw4TUFndEVBQUFBQUFBQThEOE1BUVZFQUFBQUFBQUE4RDhMQ3lFUkFud2dBMEdBZ0lDUEJFc0VmQ0FEUVlDQXdKOEVTd1JBSUFSQmdJREEvd05KQkVBakNrUUFBQUFBQUFBQUFDQUZRUUJJR3c4Rkl3cEVBQUFBQUFBQUFBQWdCVUVBU2hzUEN3QUxJQVJCLy8rLy93TkpCRUFnRVVTY2RRQ0lQT1EzZnFKRW5IVUFpRHprTjM2aUlCRkVXZlA0d2g5dXBRR2lSRm56K01JZmJxVUJvaUFGUVFCSUd3OExJQVJCZ0lEQS93Tk5CRUFnRDBRQUFBQUFBQUR3djZBaUFFUUFBQUJnUnhYM1A2SWlFQ0FBUkVUZlhmZ0xybFErb2lBQUlBQ2lSQUFBQUFBQUFPQS9JQUJFVlZWVlZWVlYxVDhnQUVRQUFBQUFBQURRUDZLaG9xR2lSUDZDSzJWSEZmYy9vcUVpQUtDOVFvQ0FnSUJ3Zzc4aUVpRVBJQklnRUtFTUFnc2dFVVNjZFFDSVBPUTNmcUpFbkhVQWlEemtOMzZpSUJGRVdmUDR3aDl1cFFHaVJGbnorTUlmYnFVQm9pQUZRUUJLR3c4RklBOUVBQUFBQUFBQVFFT2lJZ0M5UWlDSXB5QUVJQVJCZ0lEQUFFa2lCUnNoQWtITWQwR0JlQ0FGR3lBQ1FSUjFhaUVESUFKQi8vOC9jU0lFUVlDQXdQOERjaUVDSUFSQmo3RU9TUVJBUVFBaEJBVWdCRUg2N0M1SklnWWhCQ0FESUFaQkFYTkJBWEZxSVFNZ0FpQUNRWUNBUUdvZ0Joc2hBZ3NnQkVFRGRFR3dFMm9yQXdBaUZDQUNyVUlnaGlBQUlBOGdCUnU5UXYvLy8vOFBnNFMvSWhBZ0JFRURkRUdRRTJvckF3QWlFcUVpRTBRQUFBQUFBQUR3UHlBU0lCQ2dveUlWb2lJUHZVS0FnSUNBY0lPL0lnQWdBQ0FBb2lJV1JBQUFBQUFBQUFoQW9DQVBJQUNnSUJVZ0V5QUNRUUYxUVlDQWdJQUNja0dBZ0NCcUlBUkJFblJxclVJZ2hyOGlFeUFBb3FFZ0VDQVRJQktob1NBQW9xR2lJaENpSUE4Z0Q2SWlBQ0FBb2lBQUlBQWdBQ0FBSUFCRTcwNUZTaWgreWoraVJHWGJ5Wk5LaHMwL29LSkVBVUVkcVdCMDBUK2dva1JOSm85UlZWWFZQNkNpUlArcmI5dTJiZHMvb0tKRUF6TXpNek16NHorZ29xQWlFcUM5UW9DQWdJQndnNzhpQUtJaUV5QVFJQUNpSUE4Z0VpQUFSQUFBQUFBQUFBakFvQ0FXb2FHaW9DSVBvTDFDZ0lDQWdIQ0R2eUlBUkFBQUFPQUp4KzQvb2lJUUlBUkJBM1JCb0JOcUt3TUFJQThnQUNBVG9hRkUvUU02M0FuSDdqK2lJQUJFOVFGYkZPQXZQajZpb2FBaUFLQ2dJQU8zSWhLZ3ZVS0FnSUNBY0lPL0loTWhEeUFUSUJLaElCU2hJQkNoQ3dzaEVDQUFJQkNoSUFHaUlBRWdEVUtBZ0lDQWNJTy9JZ0NoSUEraW9DRUJJQThnQUtJaUFDQUJvQ0lQdlNJTlFpQ0lweUVDSUEybklRTWdBa0gvLzcrRUJFb0VRQ0FDUVlDQXdQdDdhaUFEY2lBQlJQNkNLMlZIRlpjOG9DQVBJQUNoWkhJTkJnVWdBa0dBK1AvL0IzRkIvNWZEaEFSTEJFQWdBa0dBNkx6N0Eyb2dBM0lnQVNBUElBQ2haWElOQmdzTElCRWdBa0gvLy8vL0IzRWlBMEdBZ0lEL0Ewc0VmeUFBUVlDQVFFR0FnTUFBSUFOQkZIWkJnbmhxZGlBQ2FpSURRUlIyUWY4UGNTSUVRWUY0YW5VZ0EzR3RRaUNHdjZFaUR5RUFJQUVnRDZDOUlRMUJBQ0FEUWYvL1AzRkJnSURBQUhKQmt3Z2dCR3QySWdOcklBTWdBa0VBU0JzRlFRQUxJZ0pCRkhSRUFBQUFBQUFBOEQ4Z0RVS0FnSUNBY0lPL0lnOUVBQUFBQUVNdTVqK2lJaEFnQVNBUElBQ2hvVVR2T2ZyK1FpN21QNklnRDBRNWJLZ01ZVndnUHFLaElnK2dJZ0FnQUNBQUlBQ2lJZ0VnQVNBQklBRWdBVVRRcEw1eWFUZG1QcUpFOFd2U3hVRzl1NzZnb2tRczNpV3ZhbFlSUDZDaVJKTzl2aFpzd1dhL29LSkVQbFZWVlZWVnhUK2dvcUVpQWFJZ0FVUUFBQUFBQUFBQXdLQ2pJQThnQUNBUW9hRWlBU0FBSUFHaW9LRWdBS0doSWdDOUlnMUNJSWluYWlJRFFZQ0F3QUJJQkh3Z0FDQUNFR1VGSUFPdFFpQ0dJQTFDLy8vLy93K0RoTDhMSWdDaUR3c0xDeUFBSUFHZ0R3c2dBQ0FBb1NJQUlBQ2pEd3NnRVVSWjgvakNIMjZsQWFKRVdmUDR3aDl1cFFHaUR3c2dFVVNjZFFDSVBPUTNmcUpFbkhVQWlEemtOMzZpQ3dNQUFRdkRBd0VEZnlBQ1FZREFBRTRFUUNBQUlBRWdBaEFIRHdzZ0FDRUVJQUFnQW1vaEF5QUFRUU54SUFGQkEzRkdCRUFEUUNBQVFRTnhCRUFnQWtVRVFDQUVEd3NnQUNBQkxBQUFPZ0FBSUFCQkFXb2hBQ0FCUVFGcUlRRWdBa0VCYXlFQ0RBRUxDeUFEUVh4eElnSkJRR29oQlFOQUlBQWdCVXdFUUNBQUlBRW9BZ0EyQWdBZ0FDQUJLQUlFTmdJRUlBQWdBU2dDQ0RZQ0NDQUFJQUVvQWd3MkFnd2dBQ0FCS0FJUU5nSVFJQUFnQVNnQ0ZEWUNGQ0FBSUFFb0FoZzJBaGdnQUNBQktBSWNOZ0ljSUFBZ0FTZ0NJRFlDSUNBQUlBRW9BaVEyQWlRZ0FDQUJLQUlvTmdJb0lBQWdBU2dDTERZQ0xDQUFJQUVvQWpBMkFqQWdBQ0FCS0FJME5nSTBJQUFnQVNnQ09EWUNPQ0FBSUFFb0FqdzJBandnQUVGQWF5RUFJQUZCUUdzaEFRd0JDd3NEUUNBQUlBSklCRUFnQUNBQktBSUFOZ0lBSUFCQkJHb2hBQ0FCUVFScUlRRU1BUXNMQlNBRFFRUnJJUUlEUUNBQUlBSklCRUFnQUNBQkxBQUFPZ0FBSUFBZ0FTd0FBVG9BQVNBQUlBRXNBQUk2QUFJZ0FDQUJMQUFET2dBRElBQkJCR29oQUNBQlFRUnFJUUVNQVFzTEN3TkFJQUFnQTBnRVFDQUFJQUVzQUFBNkFBQWdBRUVCYWlFQUlBRkJBV29oQVF3QkN3c2dCQXVZQWdFRWZ5QUFJQUpxSVFRZ0FVSC9BWEVoQVNBQ1FjTUFUZ1JBQTBBZ0FFRURjUVJBSUFBZ0FUb0FBQ0FBUVFGcUlRQU1BUXNMSUFSQmZIRWlCVUZBYWlFR0lBRWdBVUVJZEhJZ0FVRVFkSElnQVVFWWRISWhBd05BSUFBZ0Jrd0VRQ0FBSUFNMkFnQWdBQ0FETmdJRUlBQWdBellDQ0NBQUlBTTJBZ3dnQUNBRE5nSVFJQUFnQXpZQ0ZDQUFJQU0yQWhnZ0FDQUROZ0ljSUFBZ0F6WUNJQ0FBSUFNMkFpUWdBQ0FETmdJb0lBQWdBellDTENBQUlBTTJBakFnQUNBRE5nSTBJQUFnQXpZQ09DQUFJQU0yQWp3Z0FFRkFheUVBREFFTEN3TkFJQUFnQlVnRVFDQUFJQU0yQWdBZ0FFRUVhaUVBREFFTEN3c0RRQ0FBSUFSSUJFQWdBQ0FCT2dBQUlBQkJBV29oQUF3QkN3c2dCQ0FDYXd0VkFRSi9JQUJCQUVvakJTZ0NBQ0lCSUFCcUlnQWdBVWh4SUFCQkFFaHlCRUFRQXhwQkRCQUZRWDhQQ3lNRklBQTJBZ0FRQWlFQ0lBQWdBa29FUUJBQlJRUkFJd1VnQVRZQ0FFRU1FQVZCZnc4TEN5QUJDdzRBSUFFZ0FpQUFRUU54RVFBQUN3Z0FRUUFRQUVFQUN3dkFFUVFBUVlFSUM3WUtBUUlDQXdNREF3UUVCQVFFQkFRRUFBRUFBSUFBQUFCV0FBQUFRQUFBQUQ2MDVETUprZk16aTdJQk5Ed2dDalFqR2hNMFlLa2NOS2ZYSmpSTHJ6RTBVRHM5TkhDSFNUUWpvRlkwdUpKa05GVnRjelNJbjRFMC9BdUtOSk1Fa3pScGtwdzBNcittTkQrVnNUU1RINzAwNUduSk5LMkExalEyY2VRMHBrbnpOSWlNQVRYQTl3azFCdThTTlhaN0hEWEFwaVkxTjNzeE5kb0RQVFZlVEVrMU8yRldOYmxQWkRYOEpYTTFpbm1CTlliamlUVjgyWkkxaFdTY05WS09walV6WWJFMUplaThOZHd1eVRYT1FkWTFRUzdrTlZjQzh6V1BaZ0UyVDg4Sk52WERFamFZVFJ3MjZIVW1OakpITVRaMHpEdzJYaEZKTm1VaVZqYk9ER1EydU41eU5wZFRnVFljdTRrMmNxNlNOcTgybkRhQlhhWTJOUzJ4TnNld3ZEYms4OGcyQVFQV05tRHI0ellldS9JMm9rQUJOK3VtQ1RmeG1CSTN5UjhjTng1RkpqYzlFekUzSHBVOE4yL1dTRGVpNDFVMzk4bGpONG1YY2pldkxZRTN2cEtKTjNTRGtqZm1DSnczdml5bU4wZjVzRGQ1ZWJ3My9yaklOMGZFMVRlU3FPTTMrSFB5TjhBYUFUaVRmZ2s0K1cwU09BYnlHemhpRkNZNFZ0OHdPTmhkUERpU20wZzQ4cVJWT0RPSFl6aHVVSEk0MHdlQk9HdHFpVGlDV0pJNEt0dWJPQW44cFRob3hiQTRPMEs4T0NsK3lEaWdoZFU0MldYak9PZ3M4ampwOUFBNVJsWUpPUTVERWpsUnhCczV0ZU1sT1grck1EbWlKanc1eFdCSU9WTm1WVG1EUkdNNWFBbHlPUUhpZ0Rra1FvazVuUzJTT1h1dG16bGp5NlU1bVpHd09RMEx2RGxtUThnNUMwZlZPVElqNHpudDVmRTVIYzhBT2dVdUNUb3dHQkk2cVpZYk9oV3pKVHEzZHpBNmZPODdPZ29tU0RySEoxVTY1Z0ZqT25qQ2NUbzd2SUE2NlJtSk9zWUNranJiZjVzNnk1cWxPdGhkc0RydjA3czZzd2pJT29nSTFUcWY0T0k2QjUveE9seXBBRHZRQlFrN1h1MFJPdzlwR3p1RWdpVTcvVU13TzJlNE96dGg2MGM3VGVsVU8xMi9ZanVjZTNFN2Y1YUFPN3J4aUR2NTE1RTdSMUtiTzBGcXBUc25LckE3NHB5N094TE94enNYeXRRN0lKN2lPelZZOFR1bWd3QThwOTBJUEpqQ0VUeUNPeHM4QVZJbFBGUVFNRHhoZ1RzOHlMQkhQT1dxVkR6b2ZHSTgxRFJ4UE05d2dEeVd5WWc4T3EyUlBNQWttenpGT2FVOGhmYXZQT1ZsdXp5Q2s4Yzh1WXZVUExSYjRqeDVFZkU4KzEwQVBZbTFDRDNmbHhFOUFnNGJQWTBoSlQyNTNDODliVW83UFVCMlJ6MlJiRlE5aFRwaVBTTHVjRDBxUzRBOWY2R0lQWWlDa1QxSTk1bzlXQW1sUGZMQ3J6MzRMcnM5QTFuSFBXMU4xRDFjR2VJOTBjcndQVnM0QUQ1M2pRZytNMjBSUHBEZ0dqNG44U1ErTHFrdlBvY1RPejdLTzBjK1RTNVVQamY0WVQ2RXAzQStqeVdBUG5ONWlEN2lWNUUrM01tYVB2bllwRDV0ajY4K0cvaTZQcFVleHo0ekQ5UStGOWZoUGoyRThEN0dFZ0EvY21VSVA1TkNFVDhyc3hvL3pzQWtQN0YxTHoreTNEby9aUUZIUHgzd1V6Lzd0V0UvKzJCd1B3QUFnRDhEQUFBQUJBQUFBQVFBQUFBR0FBQUFnL21pQUVST2JnRDhLUlVBMFZjbkFOMDA5UUJpMjhBQVBKbVZBRUdRUXdCalVmNEF1OTZyQUxkaHhRQTZiaVFBMGsxQ0FFa0c0QUFKNmk0QUhKTFJBT3NkL2dBcHNSd0E2RDZuQVBVMWdnQkV1eTRBbk9tRUFMUW1jQUJCZmw4QTFwRTVBRk9ET1FDYzlEa0FpMStFQUNqNXZRRDRIenNBM3YrWEFBK1lCUUFSTCs4QUNscUxBRzBmYlFEUGZqWUFDY3NuQUVaUHR3Q2VaajhBTGVwZkFMb25kUURsNjhjQVBYdnhBUGM1QndDU1Vvb0ErMnZxQUIreFh3QUlYWTBBTUFOV0FIdjhSZ0R3cTJzQUlMelBBRGIwbWdEanFSMEFYbUdSQUFnYjVnQ0ZtV1VBb0JSZkFJMUFhQUNBMlA4QUozTk5BQVlHTVFES1ZoVUF5YWh6QUh2aVlBQnJqTUFBUWNNU0MxMUEreUg1UHdBQUFBQXRSSFErQUFBQWdKaEcrRHdBQUFCZ1VjeDRPd0FBQUlDREcvQTVBQUFBUUNBbGVqZ0FBQUNBSW9Mak5nQUFBQUFkODJrMUFBQUFBQUFBNEQ4QUFBQUFBQURndndBQUFBQUFBUEEvQUFBQUFBQUErRDhBUWFnVEN3Z0cwTTlENi8xTVBnQkJ1eE1MaWdaQUE3amlQMDluWjFNdUwzTjBZbDkyYjNKaWFYTXVZd0JtTFQ1aGJHeHZZeTVoYkd4dlkxOWlkV1ptWlhKZmJHVnVaM1JvWDJsdVgySjVkR1Z6SUQwOUlHWXRQblJsYlhCZmIyWm1jMlYwQUhadmNtSnBjMTlrWldOdlpHVmZhVzVwZEdsaGJBQm1MVDVpZVhSbGMxOXBibDl6WldjZ1BpQXdBR2RsZERoZmNHRmphMlYwWDNKaGR3Qm1MVDVpZVhSbGMxOXBibDl6WldjZ1BUMGdNQUJ1WlhoMFgzTmxaMjFsYm5RQWRtOXlZbWx6WDJSbFkyOWtaVjl3WVdOclpYUmZjbVZ6ZEFBaFl5MCtjM0JoY25ObEFHTnZaR1ZpYjI5clgyUmxZMjlrWlY5elkyRnNZWEpmY21GM0FDRmpMVDV6Y0dGeWMyVWdmSHdnZWlBOElHTXRQbk52Y25SbFpGOWxiblJ5YVdWekFHTnZaR1ZpYjI5clgyUmxZMjlrWlY5a1pXbHVkR1Z5YkdWaGRtVmZjbVZ3WldGMEFIb2dQQ0JqTFQ1emIzSjBaV1JmWlc1MGNtbGxjd0JqYjJSbFltOXZhMTlrWldOdlpHVmZjM1JoY25RQUtHNGdKaUF6S1NBOVBTQXdBR2x0WkdOMFgzTjBaWEF6WDJsMFpYSXdYMnh2YjNBQU1BQm5aWFJmZDJsdVpHOTNBR1l0UG5SbGJYQmZiMlptYzJWMElEMDlJR1l0UG1Gc2JHOWpMbUZzYkc5algySjFabVpsY2w5c1pXNW5kR2hmYVc1ZllubDBaWE1BYzNSaGNuUmZaR1ZqYjJSbGNnQjJiM0ppYVhOakxUNXpiM0owWldSZlpXNTBjbWxsY3lBOVBTQXdBR052YlhCMWRHVmZZMjlrWlhkdmNtUnpBSG9nUGowZ01DQW1KaUI2SUR3Z016SUFiR1Z1VzJsZElENDlJREFnSmlZZ2JHVnVXMmxkSUR3Z016SUFZWFpoYVd4aFlteGxXM2xkSUQwOUlEQUFheUE5UFNCakxUNXpiM0owWldSZlpXNTBjbWxsY3dCamIyMXdkWFJsWDNOdmNuUmxaRjlvZFdabWJXRnVBR010UG5OdmNuUmxaRjlqYjJSbGQyOXlaSE5iZUYwZ1BUMGdZMjlrWlFCc1pXNGdJVDBnVGs5ZlEwOUVSUUJwYm1Oc2RXUmxYMmx1WDNOdmNuUUFjRzkzS0NobWJHOWhkQ2tnY2lzeExDQmthVzBwSUQ0Z1pXNTBjbWxsY3dCc2IyOXJkWEF4WDNaaGJIVmxjd0FvYVc1MEtTQm1iRzl2Y2lod2IzY29LR1pzYjJGMEtTQnlMQ0JrYVcwcEtTQThQU0JsYm5SeWFXVnpBT29QQkc1aGJXVUI0ZzkrQUFWaFltOXlkQUVOWlc1c1lYSm5aVTFsYlc5eWVRSU9aMlYwVkc5MFlXeE5aVzF2Y25rREYyRmliM0owVDI1RFlXNXViM1JIY205M1RXVnRiM0o1QkE1ZlgxOWhjM05sY25SZlptRnBiQVVMWDE5ZmMyVjBSWEp5VG04R0JsOWhZbTl5ZEFjV1gyVnRjMk55YVhCMFpXNWZiV1Z0WTNCNVgySnBad2dRWDE5bmNtOTNWMkZ6YlUxbGJXOXllUWtLYzNSaFkydEJiR3h2WXdvSmMzUmhZMnRUWVhabEN3eHpkR0ZqYTFKbGMzUnZjbVVNRTJWemRHRmliR2x6YUZOMFlXTnJVM0JoWTJVTkNITmxkRlJvY21WM0RndHpaWFJVWlcxd1VtVjBNQThMWjJWMFZHVnRjRkpsZERBUUVWOXpkR0pmZG05eVltbHpYMk5zYjNObEVRNWZkbTl5WW1selgyUmxhVzVwZEJJTFgzTmxkSFZ3WDJaeVpXVVRHbDl6ZEdKZmRtOXlZbWx6WDJac2RYTm9YM0IxYzJoa1lYUmhGQ0ZmYzNSaVgzWnZjbUpwYzE5a1pXTnZaR1ZmWm5KaGJXVmZjSFZ6YUdSaGRHRVZCbDlsY25KdmNoWWdYM1p2Y21KcGMxOXpaV0Z5WTJoZlptOXlYM0JoWjJWZmNIVnphR1JoZEdFWEdGOXBjMTkzYUc5c1pWOXdZV05yWlhSZmNISmxjMlZ1ZEJnVlgzWnZjbUpwYzE5a1pXTnZaR1ZmY0dGamEyVjBHUXhmWjJWME9GOXdZV05yWlhRYUZGOTJiM0ppYVhOZlptbHVhWE5vWDJaeVlXMWxHeGxmYzNSaVgzWnZjbUpwYzE5dmNHVnVYM0IxYzJoa1lYUmhIQXhmZG05eVltbHpYMmx1YVhRZERsOXpkR0Z5ZEY5a1pXTnZaR1Z5SGcxZmRtOXlZbWx6WDJGc2JHOWpIeHRmYzNSaVgzWnZjbUpwYzE5blpYUmZabWxzWlY5dlptWnpaWFFnRTE5dFlYbGlaVjl6ZEdGeWRGOXdZV05yWlhRaERWOW1iSFZ6YUY5d1lXTnJaWFFpQlY5blpYUnVJd1pmWjJWME16SWtFMTl6ZEdKZmRtOXlZbWx6WDJwelgyOXdaVzRsRkY5emRHSmZkbTl5WW1selgycHpYMk5zYjNObEpoZGZjM1JpWDNadmNtSnBjMTlxYzE5amFHRnVibVZzY3ljYVgzTjBZbDkyYjNKaWFYTmZhbk5mYzJGdGNHeGxYM0poZEdVb0ZWOXpkR0pmZG05eVltbHpYMnB6WDJSbFkyOWtaU2tOWDJOeVl6TXlYM1Z3WkdGMFpTb1dYM1p2Y21KcGMxOWtaV052WkdWZmFXNXBkR2xoYkNzYVgzWnZjbUpwYzE5a1pXTnZaR1ZmY0dGamEyVjBYM0psYzNRc0NWOW5aWFJmWW1sMGN5MEZYMmxzYjJjdUVGOW5aWFE0WDNCaFkydGxkRjl5WVhjdkRWOXVaWGgwWDNObFoyMWxiblF3QlY5blpYUTRNUXRmYzNSaGNuUmZjR0ZuWlRJUVgyTmhjSFIxY21WZmNHRjBkR1Z5YmpNZFgzTjBZWEowWDNCaFoyVmZibTlmWTJGd2RIVnlaWEJoZEhSbGNtNDBEVjl3Y21Wd1gyaDFabVp0WVc0MUcxOWpiMlJsWW05dmExOWtaV052WkdWZmMyTmhiR0Z5WDNKaGR6WU9YM0J5WldScFkzUmZjRzlwYm5RM0QxOWtaV052WkdWZmNtVnphV1IxWlRnSlgyUnZYMlpzYjI5eU9RMWZhVzUyWlhKelpWOXRaR04wT2d4ZlltbDBYM0psZG1WeWMyVTdFVjl0WVd0bFgySnNiMk5yWDJGeWNtRjVQQkpmYzJWMGRYQmZkR1Z0Y0Y5dFlXeHNiMk05SkY5amIyUmxZbTl2YTE5a1pXTnZaR1ZmWkdWcGJuUmxjbXhsWVhabFgzSmxjR1ZoZEQ0UFgzSmxjMmxrZFdWZlpHVmpiMlJsUHhWZlkyOWtaV0p2YjJ0ZlpHVmpiMlJsWDNOMFpYQkFFRjlqYjJSbFltOXZhMTlrWldOdlpHVkJGbDlqYjJSbFltOXZhMTlrWldOdlpHVmZjM1JoY25SQ0NsOWtjbUYzWDJ4cGJtVkRGMTlwYldSamRGOXpkR1Z3TTE5cGRHVnlNRjlzYjI5d1JCbGZhVzFrWTNSZmMzUmxjRE5mYVc1dVpYSmZjbDlzYjI5d1JSbGZhVzFrWTNSZmMzUmxjRE5mYVc1dVpYSmZjMTlzYjI5d1JoOWZhVzFrWTNSZmMzUmxjRE5mYVc1dVpYSmZjMTlzYjI5d1gyeGtOalUwUndoZmFYUmxjbDgxTkVnTFgyZGxkRjkzYVc1a2IzZEpFRjkyYjNKaWFYTmZkbUZzYVdSaGRHVktEVjl6ZEdGeWRGOXdZV05yWlhSTEJWOXphMmx3VEF0ZlkzSmpNekpmYVc1cGRFME5YM05sZEhWd1gyMWhiR3h2WTA0UVgzTmxkSFZ3WDNSbGJYQmZabkpsWlU4U1gyTnZiWEIxZEdWZlkyOWtaWGR2Y21SelVCZGZZMjl0Y0hWMFpWOXpiM0owWldSZmFIVm1abTFoYmxFY1gyTnZiWEIxZEdWZllXTmpaV3hsY21GMFpXUmZhSFZtWm0xaGJsSVBYMlpzYjJGME16SmZkVzV3WVdOclV3OWZiRzl2YTNWd01WOTJZV3gxWlhOVURsOXdiMmx1ZEY5amIyMXdZWEpsVlFwZmJtVnBaMmhpYjNKelZnOWZhVzVwZEY5aWJHOWphM05wZW1WWENsOWhaR1JmWlc1MGNubFlFRjlwYm1Oc2RXUmxYMmx1WDNOdmNuUlpEMTkxYVc1ME16SmZZMjl0Y0dGeVpWb1lYMk52YlhCMWRHVmZkSGRwWkdSc1pWOW1ZV04wYjNKeld3OWZZMjl0Y0hWMFpWOTNhVzVrYjNkY0UxOWpiMjF3ZFhSbFgySnBkSEpsZG1WeWMyVmRCMTl6Y1hWaGNtVmVCMTl0WVd4c2IyTmZCVjltY21WbFlBaGZjbVZoYkd4dlkyRVNYM1J5ZVY5eVpXRnNiRzlqWDJOb2RXNXJZZzVmWkdsemNHOXpaVjlqYUhWdWEyTVJYMTlmWlhKeWJtOWZiRzlqWVhScGIyNWtCMTl0WlcxamJYQmxCMTl6WTJGc1ltNW1CbDl4YzI5eWRHY0ZYM05wWm5Sb0JGOXphSEpwQ0Y5MGNtbHVhMnhsYWdSZmMyaHNhd1ZmY0c1MGVtd0lYMkZmWTNSNlgyeHRCbDlqZVdOc1pXNExYMTlmY21WdFgzQnBiekp2RVY5ZlgzSmxiVjl3YVc4eVgyeGhjbWRsY0FaZlgxOXphVzV4Qmw5c1pHVjRjSElHWDE5ZlkyOXpjd1JmWTI5emRBUmZjMmx1ZFFSZlpYaHdkZ1JmYkc5bmR3UmZjRzkzZUF0eWRXNVFiM04wVTJWMGMza0hYMjFsYldOd2VYb0hYMjFsYlhObGRIc0ZYM05pY210OEMyUjVia05oYkd4ZmFXbHBmUUppTUE9PSIpLGZ1bmN0aW9uKGwpe3JldHVybiBsLmNoYXJDb2RlQXQoMCl9KTt2YXIgRT1FIT09dm9pZCAwP0U6e30sWD17fTtmb3IoZSBpbiBFKUUuaGFzT3duUHJvcGVydHkoZSkmJihYW2VdPUVbZV0pO0UuYXJndW1lbnRzPVtdLEUudGhpc1Byb2dyYW09Ii4vdGhpcy5wcm9ncmFtIixFLnF1aXQ9ZnVuY3Rpb24obCx1KXt0aHJvdyB1fSxFLnByZVJ1bj1bXSxFLnBvc3RSdW49W107dmFyIE89ITEsbkE9ITEsJD0hMSxWPSExO089dHlwZW9mIHdpbmRvdz09Im9iamVjdCIsbkE9dHlwZW9mIGltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsJD10eXBlb2YgcHJvY2Vzcz09Im9iamVjdCImJnR5cGVvZiBKYT09ImZ1bmN0aW9uIiYmIU8mJiFuQSxWPSFPJiYhJCYmIW5BO3ZhciBxPSIiO2Z1bmN0aW9uIHoobCl7cmV0dXJuIEUubG9jYXRlRmlsZT9FLmxvY2F0ZUZpbGUobCxxKTpxK2x9JD8ocT0iLyIsRS5yZWFkPWZ1bmN0aW9uKHUsZil7dmFyIHc7cmV0dXJuIEF8fChBPXZvaWQgMCksdHx8KHQ9dm9pZCAwKSx1PXQubm9ybWFsaXplKHUpLHc9QS5yZWFkRmlsZVN5bmModSksZj93OncudG9TdHJpbmcoKX0sRS5yZWFkQmluYXJ5PWZ1bmN0aW9uKHUpe3ZhciBmPUUucmVhZCh1LCEwKTtyZXR1cm4gZi5idWZmZXJ8fChmPW5ldyBVaW50OEFycmF5KGYpKSxVQShmLmJ1ZmZlciksZn0scHJvY2Vzcy5hcmd2Lmxlbmd0aD4xJiYoRS50aGlzUHJvZ3JhbT1wcm9jZXNzLmFyZ3ZbMV0ucmVwbGFjZSgvXFwvZywiLyIpKSxFLmFyZ3VtZW50cz1wcm9jZXNzLmFyZ3Yuc2xpY2UoMiksdHlwZW9mIG1vZHVsZTwidSIscHJvY2Vzcy5vbigidW5jYXVnaHRFeGNlcHRpb24iLGZ1bmN0aW9uKGwpe2lmKCEobCBpbnN0YW5jZW9mIG90KSl0aHJvdyBsfSkscHJvY2Vzcy5vbigidW5oYW5kbGVkUmVqZWN0aW9uIixmdW5jdGlvbihsLHUpe3Byb2Nlc3MuZXhpdCgxKX0pLEUucXVpdD1mdW5jdGlvbihsKXtwcm9jZXNzLmV4aXQobCl9LEUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiJbRW1zY3JpcHRlbiBNb2R1bGUgb2JqZWN0XSJ9KTpWPyh0eXBlb2YgcmVhZDwidSImJihFLnJlYWQ9ZnVuY3Rpb24odSl7cmV0dXJuIHJlYWQodSl9KSxFLnJlYWRCaW5hcnk9ZnVuY3Rpb24odSl7dmFyIGY7cmV0dXJuIHR5cGVvZiByZWFkYnVmZmVyPT0iZnVuY3Rpb24iP25ldyBVaW50OEFycmF5KHJlYWRidWZmZXIodSkpOihVQSh0eXBlb2YoZj1yZWFkKHUsImJpbmFyeSIpKT09Im9iamVjdCIpLGYpfSx0eXBlb2Ygc2NyaXB0QXJnczwidSI/RS5hcmd1bWVudHM9c2NyaXB0QXJnczp0eXBlb2YgYXJndW1lbnRzPCJ1IiYmKEUuYXJndW1lbnRzPWFyZ3VtZW50cyksdHlwZW9mIHF1aXQ9PSJmdW5jdGlvbiImJihFLnF1aXQ9ZnVuY3Rpb24obCl7cXVpdChsKX0pKTooT3x8bkEpJiYoTz9kb2N1bWVudC5jdXJyZW50U2NyaXB0JiYocT1kb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyYyk6cT1zZWxmLmxvY2F0aW9uLmhyZWYscT1xLmluZGV4T2YoImJsb2I6IikhPT0wP3Euc3BsaXQoIi8iKS5zbGljZSgwLC0xKS5qb2luKCIvIikrIi8iOiIiLEUucmVhZD1mdW5jdGlvbih1KXt2YXIgZj1uZXcgWE1MSHR0cFJlcXVlc3Q7cmV0dXJuIGYub3BlbigiR0VUIix1LCExKSxmLnNlbmQobnVsbCksZi5yZXNwb25zZVRleHR9LG5BJiYoRS5yZWFkQmluYXJ5PWZ1bmN0aW9uKHUpe3ZhciBmPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gZi5vcGVuKCJHRVQiLHUsITEpLGYucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIsZi5zZW5kKG51bGwpLG5ldyBVaW50OEFycmF5KGYucmVzcG9uc2UpfSksRS5yZWFkQXN5bmM9ZnVuY3Rpb24odSxmLHcpe3ZhciBVPW5ldyBYTUxIdHRwUmVxdWVzdDtVLm9wZW4oIkdFVCIsdSwhMCksVS5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIixVLm9ubG9hZD1mdW5jdGlvbigpe2lmKFUuc3RhdHVzPT0yMDB8fFUuc3RhdHVzPT0wJiZVLnJlc3BvbnNlKXtmKFUucmVzcG9uc2UpO3JldHVybn13KCl9LFUub25lcnJvcj13LFUuc2VuZChudWxsKX0sRS5zZXRXaW5kb3dUaXRsZT1mdW5jdGlvbihsKXtkb2N1bWVudC50aXRsZT1sfSk7dmFyIHRBPUUucHJpbnR8fCh0eXBlb2YgY29uc29sZTwidSI/Y29uc29sZS5sb2cuYmluZChjb25zb2xlKTp0eXBlb2YgcHJpbnQ8InUiP3ByaW50Om51bGwpLGlBPUUucHJpbnRFcnJ8fCh0eXBlb2YgcHJpbnRFcnI8InUiP3ByaW50RXJyOnR5cGVvZiBjb25zb2xlPCJ1IiYmY29uc29sZS53YXJuLmJpbmQoY29uc29sZSl8fHRBKTtmb3IoZSBpbiBYKVguaGFzT3duUHJvcGVydHkoZSkmJihFW2VdPVhbZV0pO2Z1bmN0aW9uIFAobCl7dmFyIHU9QztyZXR1cm4gQz1DK2wrMTUmLTE2LHV9ZnVuY3Rpb24gRyhsKXt2YXIgdT1vW0Q+PjJdLGY9dStsKzE1Ji0xNjtyZXR1cm4gb1tEPj4yXT1mLGY+PXBBJiYhbnQoKT8ob1tEPj4yXT11LDApOnV9ZnVuY3Rpb24gYihsLHUpe3JldHVybiB1fHwodT0xNiksbD1NYXRoLmNlaWwobC91KSp1fWZ1bmN0aW9uIEsobCl7c3dpdGNoKGwpe2Nhc2UiaTEiOmNhc2UiaTgiOnJldHVybiAxO2Nhc2UiaTE2IjpyZXR1cm4gMjtjYXNlImkzMiI6Y2FzZSJmbG9hdCI6cmV0dXJuIDQ7Y2FzZSJpNjQiOmNhc2UiZG91YmxlIjpyZXR1cm4gODtkZWZhdWx0OmlmKGxbbC5sZW5ndGgtMV09PT0iKiIpcmV0dXJuIDQ7aWYobFswXSE9PSJpIilyZXR1cm4gMDt2YXIgdT1wYXJzZUludChsLnN1YnN0cigxKSk7cmV0dXJuIFVBKHUlOD09MCksdS84fX1mdW5jdGlvbiBlQShsKXtlQS5zaG93bnx8KGVBLnNob3duPXt9KSxlQS5zaG93bltsXXx8KGVBLnNob3duW2xdPTEsaUEobCkpfVg9dm9pZCAwO3ZhciBhQT17ImY2NC1yZW0iOmZ1bmN0aW9uKGwsdSl7cmV0dXJuIGwldX0sZGVidWdnZXI6ZnVuY3Rpb24oKXt9fSxHQT1bXTtmdW5jdGlvbiBzZShsLHUpe2Zvcih2YXIgZj0wLHc9Zjt3PGYrMDt3KyspaWYoIUdBW3ddKXJldHVybiBHQVt3XT1sLDErdzt0aHJvdyJGaW5pc2hlZCB1cCBhbGwgcmVzZXJ2ZWQgZnVuY3Rpb24gcG9pbnRlcnMuIFVzZSBhIGhpZ2hlciB2YWx1ZSBmb3IgUkVTRVJWRURfRlVOQ1RJT05fUE9JTlRFUlMuIn1mdW5jdGlvbiB6QShsKXtHQVtsLTFdPW51bGx9dmFyIFdBPXt9O2Z1bmN0aW9uIE5lKGwsdSl7aWYobCl7VUEodSksV0FbdV18fChXQVt1XT17fSk7dmFyIGY9V0FbdV07cmV0dXJuIGZbbF18fCh1Lmxlbmd0aD09PTE/ZltsXT1mdW5jdGlvbigpe3JldHVybiBBQSh1LGwpfTp1Lmxlbmd0aD09PTI/ZltsXT1mdW5jdGlvbihVKXtyZXR1cm4gQUEodSxsLFtVXSl9OmZbbF09ZnVuY3Rpb24oKXtyZXR1cm4gQUEodSxsLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpfSksZltsXX19ZnVuY3Rpb24gYWUobCx1LGYpe3JldHVybiBmPysobD4+PjApKzQyOTQ5NjcyOTYqKyh1Pj4+MCk6KyhsPj4+MCkrNDI5NDk2NzI5NiorKDB8dSl9ZnVuY3Rpb24gQUEobCx1LGYpe3JldHVybiBmJiZmLmxlbmd0aD9FWyJkeW5DYWxsXyIrbF0uYXBwbHkobnVsbCxbdV0uY29uY2F0KGYpKTpFWyJkeW5DYWxsXyIrbF0uY2FsbChudWxsLHUpfXZhciBCQT0wLF9BPTA7ZnVuY3Rpb24gVUEobCx1KXtsfHxJZSgiQXNzZXJ0aW9uIGZhaWxlZDogIit1KX1mdW5jdGlvbiBDZShsKXt2YXIgdT1FWyJfIitsXTtyZXR1cm4gVUEodSwiQ2Fubm90IGNhbGwgdW5rbm93biBmdW5jdGlvbiAiK2wrIiwgbWFrZSBzdXJlIGl0IGlzIGV4cG9ydGVkIiksdX12YXIgaGU9e3N0YWNrU2F2ZTpmdW5jdGlvbigpe2duKCl9LHN0YWNrUmVzdG9yZTpmdW5jdGlvbigpe0luKCl9LGFycmF5VG9DOmZ1bmN0aW9uKGwpe3ZhciB1LGYsdz13dChsLmxlbmd0aCk7cmV0dXJuIHU9bCxmPXcscy5zZXQodSxmKSx3fSxzdHJpbmdUb0M6ZnVuY3Rpb24obCl7dmFyIHU9MDtpZihsIT1udWxsJiZsIT09MCl7dmFyIGY9KGwubGVuZ3RoPDwyKSsxO3U9d3QoZiksZXQobCx1LGYpfXJldHVybiB1fX0sJGU9e3N0cmluZzpoZS5zdHJpbmdUb0MsYXJyYXk6aGUuYXJyYXlUb0N9O2Z1bmN0aW9uIFVlKGwsdSxmLHcsVSl7dmFyIF89Q2UobCksb0E9W10sSD0wO2lmKHcpZm9yKHZhciBEQT0wO0RBPHcubGVuZ3RoO0RBKyspe3ZhciBsQT0kZVtmW0RBXV07bEE/KEg9PT0wJiYoSD1nbigpKSxvQVtEQV09bEEod1tEQV0pKTpvQVtEQV09d1tEQV19dmFyIGRBLENBPV8uYXBwbHkobnVsbCxvQSk7cmV0dXJuIENBPShkQT1DQSx1PT09InN0cmluZyI/bGUoZEEpOnU9PT0iYm9vbGVhbiI/ISFkQTpkQSksSCE9PTAmJkluKEgpLENBfWZ1bmN0aW9uIEF0KGwsdSxmLHcpe3N3aXRjaCgoZj1mfHwiaTgiKS5jaGFyQXQoZi5sZW5ndGgtMSk9PT0iKiImJihmPSJpMzIiKSxmKXtjYXNlImkxIjpjYXNlImk4IjpzW2w+PjBdPXU7YnJlYWs7Y2FzZSJpMTYiOnJbbD4+MV09dTticmVhaztjYXNlImkzMiI6b1tsPj4yXT11O2JyZWFrO2Nhc2UiaTY0Ijp0ZW1wSTY0PVt1Pj4+MCwrVGEodGVtcERvdWJsZT11KT49MT90ZW1wRG91YmxlPjA/KDB8SGEoK2hzKHRlbXBEb3VibGUvNDI5NDk2NzI5NiksNDI5NDk2NzI5NSkpPj4+MDp+fit4YSgodGVtcERvdWJsZS0rKH5+dGVtcERvdWJsZT4+PjApKS80Mjk0OTY3Mjk2KT4+PjA6MF0sb1tsPj4yXT10ZW1wSTY0WzBdLG9bbCs0Pj4yXT10ZW1wSTY0WzFdO2JyZWFrO2Nhc2UiZmxvYXQiOkJbbD4+Ml09dTticmVhaztjYXNlImRvdWJsZSI6ZFtsPj4zXT11O2JyZWFrO2RlZmF1bHQ6SWUoImludmFsaWQgdHlwZSBmb3Igc2V0VmFsdWU6ICIrZil9fWZ1bmN0aW9uIEFuKGwsdSxmKXtzd2l0Y2goKHU9dXx8Imk4IikuY2hhckF0KHUubGVuZ3RoLTEpPT09IioiJiYodT0iaTMyIiksdSl7Y2FzZSJpMSI6Y2FzZSJpOCI6cmV0dXJuIHNbbD4+MF07Y2FzZSJpMTYiOnJldHVybiByW2w+PjFdO2Nhc2UiaTMyIjpjYXNlImk2NCI6cmV0dXJuIG9bbD4+Ml07Y2FzZSJmbG9hdCI6cmV0dXJuIEJbbD4+Ml07Y2FzZSJkb3VibGUiOnJldHVybiBkW2w+PjNdO2RlZmF1bHQ6SWUoImludmFsaWQgdHlwZSBmb3IgZ2V0VmFsdWU6ICIrdSl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gZW4obCx1LGYsdyl7dHlwZW9mIGw9PSJudW1iZXIiPyhfPSEwLG9BPWwpOihfPSExLG9BPWwubGVuZ3RoKTt2YXIgVT10eXBlb2YgdT09InN0cmluZyI/dTpudWxsO2lmKEg9Zj09ND93Olt0eXBlb2YgRHQ9PSJmdW5jdGlvbiI/RHQ6UCx3dCxQLEddW2Y9PT12b2lkIDA/MjpmXShNYXRoLm1heChvQSxVPzE6dS5sZW5ndGgpKSxfKXtmb3Iodz1ILFVBKCgzJkgpPT0wKSxEQT1IKygtNCZvQSk7dzxEQTt3Kz00KW9bdz4+Ml09MDtmb3IoREE9SCtvQTt3PERBOylzW3crKz4+MF09MDtyZXR1cm4gSH1pZihVPT09Imk4IilyZXR1cm4gbC5zdWJhcnJheXx8bC5zbGljZT9hLnNldChsLEgpOmEuc2V0KG5ldyBVaW50OEFycmF5KGwpLEgpLEg7Zm9yKHZhciBfLG9BLEgsREEsbEEsZEEsQ0EsVz0wO1c8b0E7KXt2YXIgTEE9bFtXXTtpZigobEE9VXx8dVtXXSk9PT0wKXtXKys7Y29udGludWV9bEE9PSJpNjQiJiYobEE9ImkzMiIpLEF0KEgrVyxMQSxsQSksQ0EhPT1sQSYmKGRBPUsobEEpLENBPWxBKSxXKz1kQX1yZXR1cm4gSH1mdW5jdGlvbiBUZShsKXtyZXR1cm4gUT9vbj9EdChsKTpHKGwpOlAobCl9ZnVuY3Rpb24gbGUobCx1KXtpZih1PT09MHx8IWwpcmV0dXJuIiI7Zm9yKHZhciBmLHcsVSxfPTAsb0E9MDtffD13PWFbbCtvQT4+MF0sKHchPTB8fHUpJiYob0ErKywhdXx8b0EhPXUpOyk7dXx8KHU9b0EpO3ZhciBIPSIiO2lmKF88MTI4KXtmb3IoO3U+MDspVT1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxhLnN1YmFycmF5KGwsbCtNYXRoLm1pbih1LDEwMjQpKSksSD1IP0grVTpVLGwrPTEwMjQsdS09MTAyNDtyZXR1cm4gSH1yZXR1cm4gZj1sLChmdW5jdGlvbihsQSxkQSl7Zm9yKHZhciBDQT1kQTtsQVtDQV07KSsrQ0E7aWYoQ0EtZEE+MTYmJmxBLnN1YmFycmF5JiZmdClyZXR1cm4gZnQuZGVjb2RlKGxBLnN1YmFycmF5KGRBLENBKSk7Zm9yKHZhciBXLExBLFBBLEpBLHFBLHdlLEtBPSIiOzspe2lmKCEoVz1sQVtkQSsrXSkpcmV0dXJuIEtBO2lmKCEoMTI4JlcpKXtLQSs9U3RyaW5nLmZyb21DaGFyQ29kZShXKTtjb250aW51ZX1pZihMQT02MyZsQVtkQSsrXSwoMjI0JlcpPT0xOTIpe0tBKz1TdHJpbmcuZnJvbUNoYXJDb2RlKCgzMSZXKTw8NnxMQSk7Y29udGludWV9aWYoUEE9NjMmbEFbZEErK10sKDI0MCZXKT09MjI0P1c9KDE1JlcpPDwxMnxMQTw8NnxQQTooSkE9NjMmbEFbZEErK10sKDI0OCZXKT09MjQwP1c9KDcmVyk8PDE4fExBPDwxMnxQQTw8NnxKQToocUE9NjMmbEFbZEErK10sVz0oMjUyJlcpPT0yNDg/KDMmVyk8PDI0fExBPDwxOHxQQTw8MTJ8SkE8PDZ8cUE6KDEmVyk8PDMwfExBPDwyNHxQQTw8MTh8SkE8PDEyfHFBPDw2fCh3ZT02MyZsQVtkQSsrXSkpKSxXPDY1NTM2KUtBKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFcpO2Vsc2V7dmFyIHJ0PVctNjU1MzY7S0ErPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8cnQ+PjEwLDU2MzIwfDEwMjMmcnQpfX19KShhLGYpfWZ1bmN0aW9uIFRBKGwpe2Zvcih2YXIgdT0iIjs7KXt2YXIgZj1zW2wrKz4+MF07aWYoIWYpcmV0dXJuIHU7dSs9U3RyaW5nLmZyb21DaGFyQ29kZShmKX19ZnVuY3Rpb24gdG4obCx1KXtyZXR1cm4oZnVuY3Rpb24odyxVLF8pe2Zvcih2YXIgb0E9MDtvQTx3Lmxlbmd0aDsrK29BKXNbVSsrPj4wXT13LmNoYXJDb2RlQXQob0EpO198fChzW1U+PjBdPTApfSkobCx1LCExKX12YXIgZnQ9dHlwZW9mIFRleHREZWNvZGVyPCJ1Ij9uZXcgVGV4dERlY29kZXIoInV0ZjgiKTp2b2lkIDA7ZnVuY3Rpb24geGUobCx1LGYsdyl7aWYoISh3PjApKXJldHVybiAwO2Zvcih2YXIgVT1mLF89Zit3LTEsb0E9MDtvQTxsLmxlbmd0aDsrK29BKXt2YXIgSD1sLmNoYXJDb2RlQXQob0EpO2lmKEg+PTU1Mjk2JiZIPD01NzM0MyYmKEg9NjU1MzYrKCgxMDIzJkgpPDwxMCl8MTAyMyZsLmNoYXJDb2RlQXQoKytvQSkpLEg8PTEyNyl7aWYoZj49XylicmVhazt1W2YrK109SH1lbHNlIGlmKEg8PTIwNDcpe2lmKGYrMT49XylicmVhazt1W2YrK109MTkyfEg+PjYsdVtmKytdPTEyOHw2MyZIfWVsc2UgaWYoSDw9NjU1MzUpe2lmKGYrMj49XylicmVhazt1W2YrK109MjI0fEg+PjEyLHVbZisrXT0xMjh8SD4+NiY2Myx1W2YrK109MTI4fDYzJkh9ZWxzZSBpZihIPD0yMDk3MTUxKXtpZihmKzM+PV8pYnJlYWs7dVtmKytdPTI0MHxIPj4xOCx1W2YrK109MTI4fEg+PjEyJjYzLHVbZisrXT0xMjh8SD4+NiY2Myx1W2YrK109MTI4fDYzJkh9ZWxzZSBpZihIPD02NzEwODg2Myl7aWYoZis0Pj1fKWJyZWFrO3VbZisrXT0yNDh8SD4+MjQsdVtmKytdPTEyOHxIPj4xOCY2Myx1W2YrK109MTI4fEg+PjEyJjYzLHVbZisrXT0xMjh8SD4+NiY2Myx1W2YrK109MTI4fDYzJkh9ZWxzZXtpZihmKzU+PV8pYnJlYWs7dVtmKytdPTI1MnxIPj4zMCx1W2YrK109MTI4fEg+PjI0JjYzLHVbZisrXT0xMjh8SD4+MTgmNjMsdVtmKytdPTEyOHxIPj4xMiY2Myx1W2YrK109MTI4fEg+PjYmNjMsdVtmKytdPTEyOHw2MyZIfX1yZXR1cm4gdVtmXT0wLGYtVX1mdW5jdGlvbiBldChsLHUsZil7cmV0dXJuIHhlKGwsYSx1LGYpfWZ1bmN0aW9uIFJBKGwpe2Zvcih2YXIgdT0wLGY9MDtmPGwubGVuZ3RoOysrZil7dmFyIHc9bC5jaGFyQ29kZUF0KGYpO3c+PTU1Mjk2JiZ3PD01NzM0MyYmKHc9NjU1MzYrKCgxMDIzJncpPDwxMCl8MTAyMyZsLmNoYXJDb2RlQXQoKytmKSksdzw9MTI3PysrdTp3PD0yMDQ3P3UrPTI6dzw9NjU1MzU/dSs9Mzp3PD0yMDk3MTUxP3UrPTQ6dzw9NjcxMDg4NjM/dSs9NTp1Kz02fXJldHVybiB1fXZhciBvZT10eXBlb2YgVGV4dERlY29kZXI8InUiP25ldyBUZXh0RGVjb2RlcigidXRmLTE2bGUiKTp2b2lkIDA7ZnVuY3Rpb24gdHQobCl7Zm9yKHZhciB1PWwsZj11Pj4xO3JbZl07KSsrZjtpZigodT1mPDwxKS1sPjMyJiZvZSlyZXR1cm4gb2UuZGVjb2RlKGEuc3ViYXJyYXkobCx1KSk7Zm9yKHZhciB3PTAsVT0iIjs7KXt2YXIgXz1yW2wrMip3Pj4xXTtpZihfPT0wKXJldHVybiBVOysrdyxVKz1TdHJpbmcuZnJvbUNoYXJDb2RlKF8pfX1mdW5jdGlvbiBubihsLHUsZil7aWYoZj09PXZvaWQgMCYmKGY9MjE0NzQ4MzY0NyksZjwyKXJldHVybiAwO2Zvcih2YXIgdz11LFU9KGYtPTIpPDIqbC5sZW5ndGg/Zi8yOmwubGVuZ3RoLF89MDtfPFU7KytfKXt2YXIgb0E9bC5jaGFyQ29kZUF0KF8pO3JbdT4+MV09b0EsdSs9Mn1yZXR1cm4gclt1Pj4xXT0wLHUtd31mdW5jdGlvbiByZShsKXtyZXR1cm4gMipsLmxlbmd0aH1mdW5jdGlvbiBtdChsKXtmb3IodmFyIHU9MCxmPSIiOzspe3ZhciB3PW9bbCs0KnU+PjJdO2lmKHc9PTApcmV0dXJuIGY7aWYoKyt1LHc+PTY1NTM2KXt2YXIgVT13LTY1NTM2O2YrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8VT4+MTAsNTYzMjB8MTAyMyZVKX1lbHNlIGYrPVN0cmluZy5mcm9tQ2hhckNvZGUodyl9fWZ1bmN0aW9uIFN0KGwsdSxmKXtpZihmPT09dm9pZCAwJiYoZj0yMTQ3NDgzNjQ3KSxmPDQpcmV0dXJuIDA7Zm9yKHZhciB3PXUsVT13K2YtNCxfPTA7XzxsLmxlbmd0aDsrK18pe3ZhciBvQT1sLmNoYXJDb2RlQXQoXyk7aWYob0E+PTU1Mjk2JiZvQTw9NTczNDMmJihvQT02NTUzNisoKDEwMjMmb0EpPDwxMCl8MTAyMyZsLmNoYXJDb2RlQXQoKytfKSksb1t1Pj4yXT1vQSwodSs9NCkrND5VKWJyZWFrfXJldHVybiBvW3U+PjJdPTAsdS13fWZ1bmN0aW9uIGdzKGwpe2Zvcih2YXIgdT0wLGY9MDtmPGwubGVuZ3RoOysrZil7dmFyIHc9bC5jaGFyQ29kZUF0KGYpO3c+PTU1Mjk2JiZ3PD01NzM0MyYmKytmLHUrPTR9cmV0dXJuIHV9ZnVuY3Rpb24gY3MobCl7dmFyIHU9UkEobCkrMSxmPUR0KHUpO3JldHVybiBmJiZ4ZShsLHMsZix1KSxmfWZ1bmN0aW9uIHB0KGwpe3ZhciB1PVJBKGwpKzEsZj13dCh1KTtyZXR1cm4geGUobCxzLGYsdSksZn1mdW5jdGlvbiB5ZShsKXtyZXR1cm4gbH1mdW5jdGlvbiBzbigpe3ZhciBsLHU9KGZ1bmN0aW9uKCl7dmFyIHc9RXJyb3IoKTtpZighdy5zdGFjayl7dHJ5e3Rocm93IEVycm9yKDApfWNhdGNoKFUpe3c9VX1pZighdy5zdGFjaylyZXR1cm4iKG5vIHN0YWNrIHRyYWNlIGF2YWlsYWJsZSkifXJldHVybiB3LnN0YWNrLnRvU3RyaW5nKCl9KSgpO3JldHVybiBFLmV4dHJhU3RhY2tUcmFjZSYmKHUrPWAKYCtFLmV4dHJhU3RhY2tUcmFjZSgpKSwobD11KS5yZXBsYWNlKC9fX1pbXHdcZF9dKy9nLGZ1bmN0aW9uKGYpe3ZhciB3LFU9dz1mO3JldHVybiBmPT09VT9mOmYrIiBbIitVKyJdIn0pfWZ1bmN0aW9uIGllKGwsdSl7cmV0dXJuIGwldT4wJiYobCs9dS1sJXUpLGx9ZnVuY3Rpb24gSGUobCl7RS5idWZmZXI9bj1sfWZ1bmN0aW9uIGtlKCl7RS5IRUFQOD1zPW5ldyBJbnQ4QXJyYXkobiksRS5IRUFQMTY9cj1uZXcgSW50MTZBcnJheShuKSxFLkhFQVAzMj1vPW5ldyBJbnQzMkFycmF5KG4pLEUuSEVBUFU4PWE9bmV3IFVpbnQ4QXJyYXkobiksRS5IRUFQVTE2PUk9bmV3IFVpbnQxNkFycmF5KG4pLEUuSEVBUFUzMj1nPW5ldyBVaW50MzJBcnJheShuKSxFLkhFQVBGMzI9Qj1uZXcgRmxvYXQzMkFycmF5KG4pLEUuSEVBUEY2ND1kPW5ldyBGbG9hdDY0QXJyYXkobil9ZnVuY3Rpb24gbnQoKXt2YXIgbD1FLnVzaW5nV2FzbT82NTUzNjoxNjc3NzIxNix1PTIxNDc0ODM2NDgtbDtpZihvW0Q+PjJdPnUpcmV0dXJuITE7dmFyIGY9cEE7Zm9yKHBBPU1hdGgubWF4KHBBLDE2Nzc3MjE2KTtwQTxvW0Q+PjJdOylwQT1wQTw9NTM2ODcwOTEyP2llKDIqcEEsbCk6TWF0aC5taW4oaWUoKDMqcEErMjE0NzQ4MzY0OCkvNCxsKSx1KTt2YXIgdz1FLnJlYWxsb2NCdWZmZXIocEEpO3JldHVybiB3JiZ3LmJ5dGVMZW5ndGg9PXBBPyhIZSh3KSxrZSgpLCEwKToocEE9ZiwhMSl9aD1DPW09eT1GPWs9RD0wLFE9ITEsRS5yZWFsbG9jQnVmZmVyfHwoRS5yZWFsbG9jQnVmZmVyPWZ1bmN0aW9uKGwpe3RyeXtpZihBcnJheUJ1ZmZlci50cmFuc2Zlcil1PUFycmF5QnVmZmVyLnRyYW5zZmVyKG4sbCk7ZWxzZXt2YXIgdSxmPXM7dT1uZXcgQXJyYXlCdWZmZXIobCksbmV3IEludDhBcnJheSh1KS5zZXQoZil9fWNhdGNoe3JldHVybiExfXJldHVybiEhWWEodSkmJnV9KTt0cnl7KHY9RnVuY3Rpb24ucHJvdG90eXBlLmNhbGwuYmluZChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEFycmF5QnVmZmVyLnByb3RvdHlwZSwiYnl0ZUxlbmd0aCIpLmdldCkpKG5ldyBBcnJheUJ1ZmZlcig0KSl9Y2F0Y2h7dj1mdW5jdGlvbih1KXtyZXR1cm4gdS5ieXRlTGVuZ3RofX12YXIgWWU9RS5UT1RBTF9TVEFDS3x8NTI0Mjg4MCxwQT1FLlRPVEFMX01FTU9SWXx8MTY3NzcyMTY7ZnVuY3Rpb24geXQoKXtyZXR1cm4gcEF9ZnVuY3Rpb24gZGUobCl7Zm9yKDtsLmxlbmd0aD4wOyl7dmFyIHU9bC5zaGlmdCgpO2lmKHR5cGVvZiB1PT0iZnVuY3Rpb24iKXt1KCk7Y29udGludWV9dmFyIGY9dS5mdW5jO3R5cGVvZiBmPT0ibnVtYmVyIj91LmFyZz09PXZvaWQgMD9FLmR5bkNhbGxfdihmKTpFLmR5bkNhbGxfdmkoZix1LmFyZyk6Zih1LmFyZz09PXZvaWQgMD9udWxsOnUuYXJnKX19cEE8WWUmJmlBKCJUT1RBTF9NRU1PUlkgc2hvdWxkIGJlIGxhcmdlciB0aGFuIFRPVEFMX1NUQUNLLCB3YXMgIitwQSsiISAoVE9UQUxfU1RBQ0s9IitZZSsiKSIpLEUuYnVmZmVyP249RS5idWZmZXI6KHR5cGVvZiBXZWJBc3NlbWJseT09Im9iamVjdCImJnR5cGVvZiBXZWJBc3NlbWJseS5NZW1vcnk9PSJmdW5jdGlvbiI/KEUud2FzbU1lbW9yeT1uZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHtpbml0aWFsOnBBLzY1NTM2fSksbj1FLndhc21NZW1vcnkuYnVmZmVyKTpuPW5ldyBBcnJheUJ1ZmZlcihwQSksRS5idWZmZXI9biksa2UoKTt2YXIgc3Q9W10sYW49W10sRXM9W10sQnM9W10sQ3M9W10sb249ITEsTGE9ITE7ZnVuY3Rpb24gTmEobCl7c3QudW5zaGlmdChsKX1mdW5jdGlvbiBZcihsKXthbi51bnNoaWZ0KGwpfWZ1bmN0aW9uIFByKGwpe0VzLnVuc2hpZnQobCl9ZnVuY3Rpb24gSnIobCl7QnMudW5zaGlmdChsKX1mdW5jdGlvbiBVYShsKXtDcy51bnNoaWZ0KGwpfWZ1bmN0aW9uIHFyKGwsdSxmKXt2YXIgdyxVO2VBKCJ3cml0ZVN0cmluZ1RvTWVtb3J5IGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkISBVc2Ugc3RyaW5nVG9VVEY4KCkgaW5zdGVhZCEiKSxmJiYodz1zW1U9dStSQShsKV0pLGV0KGwsdSwxLzApLGYmJihzW1VdPXcpfWZ1bmN0aW9uIEtyKGwsdSxmKXtyZXR1cm4gbD49MD9sOnU8PTMyPzIqTWF0aC5hYnMoMTw8dS0xKStsOk1hdGgucG93KDIsdSkrbH1mdW5jdGlvbiBPcihsLHUsZil7aWYobDw9MClyZXR1cm4gbDt2YXIgdz11PD0zMj9NYXRoLmFicygxPDx1LTEpOk1hdGgucG93KDIsdS0xKTtyZXR1cm4gbD49dyYmKHU8PTMyfHxsPncpJiYobD0tMip3K2wpLGx9dmFyIFRhPU1hdGguYWJzLHhhPU1hdGguY2VpbCxocz1NYXRoLmZsb29yLEhhPU1hdGgubWluLERlPTAscm49bnVsbCxhdD1udWxsO2Z1bmN0aW9uIFZyKGwpe3JldHVybiBsfUUucHJlbG9hZGVkSW1hZ2VzPXt9LEUucHJlbG9hZGVkQXVkaW9zPXt9O3ZhciBscz0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCI7ZnVuY3Rpb24ga3QobCl7cmV0dXJuIFN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aD9sLnN0YXJ0c1dpdGgobHMpOmwuaW5kZXhPZihscyk9PT0wfShmdW5jdGlvbigpe3ZhciB1PSJtYWluLndhc3QiLGY9Im1haW4ud2FzbSIsdz0ibWFpbi50ZW1wLmFzbSI7a3QodSl8fCh1PXoodSkpLGt0KGYpfHwoZj16KGYpKSxrdCh3KXx8KHc9eih3KSk7dmFyIFU9e2dsb2JhbDpudWxsLGVudjpudWxsLGFzbTJ3YXNtOmFBLHBhcmVudDpFfSxfPW51bGw7ZnVuY3Rpb24gb0EoQ0Epe3JldHVybiBDQX1mdW5jdGlvbiBIKCl7dHJ5e2lmKEUud2FzbUJpbmFyeSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoRS53YXNtQmluYXJ5KTtpZihFLnJlYWRCaW5hcnkpcmV0dXJuIEUucmVhZEJpbmFyeShmKTt0aHJvdyJib3RoIGFzeW5jIGFuZCBzeW5jIGZldGNoaW5nIG9mIHRoZSB3YXNtIGZhaWxlZCJ9Y2F0Y2goQ0Epe0llKENBKX19RS5hc21QcmVsb2FkPUUuYXNtO3ZhciBEQT1FLnJlYWxsb2NCdWZmZXIsbEE9ZnVuY3Rpb24oQ0Epe0NBPWllKENBLEUudXNpbmdXYXNtPzY1NTM2OjE2Nzc3MjE2KTt2YXIgVz1FLmJ1ZmZlci5ieXRlTGVuZ3RoO2lmKEUudXNpbmdXYXNtKXRyeXt2YXIgTEE9RS53YXNtTWVtb3J5Lmdyb3coKENBLVcpLzY1NTM2KTtyZXR1cm4gTEEhPT0tMT9FLmJ1ZmZlcj1FLndhc21NZW1vcnkuYnVmZmVyOm51bGx9Y2F0Y2h7cmV0dXJuIG51bGx9fTtFLnJlYWxsb2NCdWZmZXI9ZnVuY3Rpb24oQ0Epe3JldHVybiBkQT09PSJhc21qcyI/REEoQ0EpOmxBKENBKX07dmFyIGRBPSIiO0UuYXNtPWZ1bmN0aW9uKENBLFcsTEEpe3ZhciBQQTtpZighKFc9UEE9VykudGFibGUpe3ZhciBKQSxxQT1FLndhc21UYWJsZVNpemU7cUE9PT12b2lkIDAmJihxQT0xMDI0KTt2YXIgd2U9RS53YXNtTWF4VGFibGVTaXplO3R5cGVvZiBXZWJBc3NlbWJseT09Im9iamVjdCImJnR5cGVvZiBXZWJBc3NlbWJseS5UYWJsZT09ImZ1bmN0aW9uIj93ZSE9PXZvaWQgMD9XLnRhYmxlPW5ldyBXZWJBc3NlbWJseS5UYWJsZSh7aW5pdGlhbDpxQSxtYXhpbXVtOndlLGVsZW1lbnQ6ImFueWZ1bmMifSk6Vy50YWJsZT1uZXcgV2ViQXNzZW1ibHkuVGFibGUoe2luaXRpYWw6cUEsZWxlbWVudDoiYW55ZnVuYyJ9KTpXLnRhYmxlPUFycmF5KHFBKSxFLndhc21UYWJsZT1XLnRhYmxlfXJldHVybiBXLm1lbW9yeUJhc2V8fChXLm1lbW9yeUJhc2U9RS5TVEFUSUNfQkFTRSksVy50YWJsZUJhc2V8fChXLnRhYmxlQmFzZT0wKSxKQT0oZnVuY3Rpb24ocnQsUGUsRW4pe2lmKHR5cGVvZiBXZWJBc3NlbWJseSE9Im9iamVjdCIpcmV0dXJuIGlBKCJubyBuYXRpdmUgd2FzbSBzdXBwb3J0IGRldGVjdGVkIiksITE7aWYoIShFLndhc21NZW1vcnkgaW5zdGFuY2VvZiBXZWJBc3NlbWJseS5NZW1vcnkpKXJldHVybiBpQSgibm8gbmF0aXZlIHdhc20gTWVtb3J5IGluIHVzZSIpLCExO2Z1bmN0aW9uIEZ0KGpBLCRBKXtpZigoXz1qQS5leHBvcnRzKS5tZW1vcnkpe3ZhciBpdCxCbix1cztpdD1fLm1lbW9yeSxCbj1FLmJ1ZmZlcixpdC5ieXRlTGVuZ3RoPEJuLmJ5dGVMZW5ndGgmJmlBKCJ0aGUgbmV3IGJ1ZmZlciBpbiBtZXJnZU1lbW9yeSBpcyBzbWFsbGVyIHRoYW4gdGhlIHByZXZpb3VzIG9uZS4gaW4gbmF0aXZlIHdhc20sIHdlIHNob3VsZCBncm93IG1lbW9yeSBoZXJlIiksdXM9bmV3IEludDhBcnJheShCbiksbmV3IEludDhBcnJheShpdCkuc2V0KHVzKSxIZShpdCksa2UoKX1FLmFzbT1fLEUudXNpbmdXYXNtPSEwLChmdW5jdGlvbigkcil7aWYoRGUtLSxFLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJkUubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhEZSksRGU9PTAmJihybiE9PW51bGwmJihjbGVhckludGVydmFsKHJuKSxybj1udWxsKSxhdCkpe3ZhciBQYT1hdDthdD1udWxsLFBhKCl9fSkoIndhc20taW5zdGFudGlhdGUiKX1pZihQZS5tZW1vcnk9RS53YXNtTWVtb3J5LFUuZ2xvYmFsPXtOYU46TmFOLEluZmluaXR5OjEvMH0sVVsiZ2xvYmFsLk1hdGgiXT1NYXRoLFUuZW52PVBlLERlKyssRS5tb25pdG9yUnVuRGVwZW5kZW5jaWVzJiZFLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMoRGUpLEUuaW5zdGFudGlhdGVXYXNtKXRyeXtyZXR1cm4gRS5pbnN0YW50aWF0ZVdhc20oVSxGdCl9Y2F0Y2goakEpe3JldHVybiBpQSgiTW9kdWxlLmluc3RhbnRpYXRlV2FzbSBjYWxsYmFjayBmYWlsZWQgd2l0aCBlcnJvcjogIitqQSksITF9ZnVuY3Rpb24gSmUoakEpe0Z0KGpBLmluc3RhbmNlLGpBLm1vZHVsZSl9ZnVuY3Rpb24gUXMoakEpeyghRS53YXNtQmluYXJ5JiYoT3x8bkEpJiZ0eXBlb2YgZmV0Y2g9PSJmdW5jdGlvbiI/ZmV0Y2goZix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oJEEpe2lmKCEkQS5vayl0aHJvdyJmYWlsZWQgdG8gbG9hZCB3YXNtIGJpbmFyeSBmaWxlIGF0ICciK2YrIiciO3JldHVybiAkQS5hcnJheUJ1ZmZlcigpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gSCgpfSk6bmV3IFByb21pc2UoZnVuY3Rpb24oJEEsaXQpeyRBKEgoKSl9KSkudGhlbihmdW5jdGlvbigkQSl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKCRBLFUpfSkudGhlbihqQSkuY2F0Y2goZnVuY3Rpb24oJEEpe2lBKCJmYWlsZWQgdG8gYXN5bmNocm9ub3VzbHkgcHJlcGFyZSB3YXNtOiAiKyRBKSxJZSgkQSl9KX1yZXR1cm4gRS53YXNtQmluYXJ5fHx0eXBlb2YgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmchPSJmdW5jdGlvbiJ8fGt0KGYpfHx0eXBlb2YgZmV0Y2ghPSJmdW5jdGlvbiI/UXMoSmUpOldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKGZldGNoKGYse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KSxVKS50aGVuKEplKS5jYXRjaChmdW5jdGlvbihqQSl7aUEoIndhc20gc3RyZWFtaW5nIGNvbXBpbGUgZmFpbGVkOiAiK2pBKSxpQSgiZmFsbGluZyBiYWNrIHRvIEFycmF5QnVmZmVyIGluc3RhbnRpYXRpb24iKSxRcyhKZSl9KSx7fX0pKENBLFcsTEEpLFVBKEpBLCJubyBiaW5hcnllbiBtZXRob2Qgc3VjY2VlZGVkLiIpLEpBfSxFLmFzbX0pKCksQz0oaD0xMDI0KSs0ODE2LGFuLnB1c2goKSxFLlNUQVRJQ19CQVNFPWgsRS5TVEFUSUNfQlVNUD00ODE2O3ZhciB4QT1DO2Z1bmN0aW9uIFhyKGwpe3NbeEFdPXNbbF0sc1t4QSsxXT1zW2wrMV0sc1t4QSsyXT1zW2wrMl0sc1t4QSszXT1zW2wrM119ZnVuY3Rpb24gWnIobCl7c1t4QV09c1tsXSxzW3hBKzFdPXNbbCsxXSxzW3hBKzJdPXNbbCsyXSxzW3hBKzNdPXNbbCszXSxzW3hBKzRdPXNbbCs0XSxzW3hBKzVdPXNbbCs1XSxzW3hBKzZdPXNbbCs2XSxzW3hBKzddPXNbbCs3XX1mdW5jdGlvbiB6cihsLHUsZil7dmFyIHc9Zj4wP2Y6UkEobCkrMSxVPUFycmF5KHcpLF89eGUobCxVLDAsVS5sZW5ndGgpO3JldHVybiB1JiYoVS5sZW5ndGg9XyksVX1mdW5jdGlvbiBXcihsKXtmb3IodmFyIHU9W10sZj0wO2Y8bC5sZW5ndGg7ZisrKXt2YXIgdz1sW2ZdO3c+MjU1JiYodyY9MjU1KSx1LnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSh3KSl9cmV0dXJuIHUuam9pbigiIil9Qys9MTYsRD1QKDQpLEY9KG09eT1iKEMpKStZZSxrPWIoRiksb1tEPj4yXT1rLFE9ITAsRS53YXNtVGFibGVTaXplPTQsRS53YXNtTWF4VGFibGVTaXplPTQsRS5hc21HbG9iYWxBcmc9e30sRS5hc21MaWJyYXJ5QXJnPXthYm9ydDpJZSxhc3NlcnQ6VUEsZW5sYXJnZU1lbW9yeTpudCxnZXRUb3RhbE1lbW9yeTp5dCxhYm9ydE9uQ2Fubm90R3Jvd01lbW9yeTpmdW5jdGlvbigpe0llKCJDYW5ub3QgZW5sYXJnZSBtZW1vcnkgYXJyYXlzLiBFaXRoZXIgKDEpIGNvbXBpbGUgd2l0aCAgLXMgVE9UQUxfTUVNT1JZPVggIHdpdGggWCBoaWdoZXIgdGhhbiB0aGUgY3VycmVudCB2YWx1ZSAiK3BBKyIsICgyKSBjb21waWxlIHdpdGggIC1zIEFMTE9XX01FTU9SWV9HUk9XVEg9MSAgd2hpY2ggYWxsb3dzIGluY3JlYXNpbmcgdGhlIHNpemUgYXQgcnVudGltZSwgb3IgKDMpIGlmIHlvdSB3YW50IG1hbGxvYyB0byByZXR1cm4gTlVMTCAoMCkgaW5zdGVhZCBvZiB0aGlzIGFib3J0LCBjb21waWxlIHdpdGggIC1zIEFCT1JUSU5HX01BTExPQz0wICIpfSxpbnZva2VfaWlpOmZ1bmN0aW9uKHUsZix3KXt2YXIgVT1nbigpO3RyeXtyZXR1cm4gRS5keW5DYWxsX2lpaSh1LGYsdyl9Y2F0Y2goXyl7aWYoSW4oVSksdHlwZW9mIF8hPSJudW1iZXIiJiZfIT09ImxvbmdqbXAiKXRocm93IF87RS5zZXRUaHJldygxLDApfX0sX19fYXNzZXJ0X2ZhaWw6ZnVuY3Rpb24odSxmLHcsVSl7SWUoIkFzc2VydGlvbiBmYWlsZWQ6ICIrbGUodSkrIiwgYXQ6ICIrW2Y/bGUoZik6InVua25vd24gZmlsZW5hbWUiLHcsVT9sZShVKToidW5rbm93biBmdW5jdGlvbiJdKX0sX19fc2V0RXJyTm86ZnVuY3Rpb24odSl7cmV0dXJuIEUuX19fZXJybm9fbG9jYXRpb24mJihvW0UuX19fZXJybm9fbG9jYXRpb24oKT4+Ml09dSksdX0sX2Fib3J0OmZ1bmN0aW9uKCl7RS5hYm9ydCgpfSxfZW1zY3JpcHRlbl9tZW1jcHlfYmlnOmZ1bmN0aW9uKHUsZix3KXtyZXR1cm4gYS5zZXQoYS5zdWJhcnJheShmLGYrdyksdSksdX0sX2xsdm1fZmxvb3JfZjY0OmhzLERZTkFNSUNUT1BfUFRSOkQsdGVtcERvdWJsZVB0cjp4QSxBQk9SVDpCQSxTVEFDS1RPUDp5LFNUQUNLX01BWDpGfTt2YXIgZHM9RS5hc20oRS5hc21HbG9iYWxBcmcsRS5hc21MaWJyYXJ5QXJnLG4pO0UuYXNtPWRzLEUuX19fZXJybm9fbG9jYXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gRS5hc20uX19fZXJybm9fbG9jYXRpb24uYXBwbHkobnVsbCxhcmd1bWVudHMpfTt2YXIgWWE9RS5fZW1zY3JpcHRlbl9yZXBsYWNlX21lbW9yeT1mdW5jdGlvbigpe3JldHVybiBFLmFzbS5fZW1zY3JpcHRlbl9yZXBsYWNlX21lbW9yeS5hcHBseShudWxsLGFyZ3VtZW50cyl9O0UuX2ZyZWU9ZnVuY3Rpb24oKXtyZXR1cm4gRS5hc20uX2ZyZWUuYXBwbHkobnVsbCxhcmd1bWVudHMpfTt2YXIgRHQ9RS5fbWFsbG9jPWZ1bmN0aW9uKCl7cmV0dXJuIEUuYXNtLl9tYWxsb2MuYXBwbHkobnVsbCxhcmd1bWVudHMpfTtFLl9tZW1jcHk9ZnVuY3Rpb24oKXtyZXR1cm4gRS5hc20uX21lbWNweS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEUuX21lbXNldD1mdW5jdGlvbigpe3JldHVybiBFLmFzbS5fbWVtc2V0LmFwcGx5KG51bGwsYXJndW1lbnRzKX0sRS5fc2Jyaz1mdW5jdGlvbigpe3JldHVybiBFLmFzbS5fc2Jyay5hcHBseShudWxsLGFyZ3VtZW50cyl9LEUuX3N0Yl92b3JiaXNfanNfY2hhbm5lbHM9ZnVuY3Rpb24oKXtyZXR1cm4gRS5hc20uX3N0Yl92b3JiaXNfanNfY2hhbm5lbHMuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxFLl9zdGJfdm9yYmlzX2pzX2Nsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIEUuYXNtLl9zdGJfdm9yYmlzX2pzX2Nsb3NlLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sRS5fc3RiX3ZvcmJpc19qc19kZWNvZGU9ZnVuY3Rpb24oKXtyZXR1cm4gRS5hc20uX3N0Yl92b3JiaXNfanNfZGVjb2RlLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sRS5fc3RiX3ZvcmJpc19qc19vcGVuPWZ1bmN0aW9uKCl7cmV0dXJuIEUuYXNtLl9zdGJfdm9yYmlzX2pzX29wZW4uYXBwbHkobnVsbCxhcmd1bWVudHMpfSxFLl9zdGJfdm9yYmlzX2pzX3NhbXBsZV9yYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIEUuYXNtLl9zdGJfdm9yYmlzX2pzX3NhbXBsZV9yYXRlLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sRS5lc3RhYmxpc2hTdGFja1NwYWNlPWZ1bmN0aW9uKCl7cmV0dXJuIEUuYXNtLmVzdGFibGlzaFN0YWNrU3BhY2UuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxFLmdldFRlbXBSZXQwPWZ1bmN0aW9uKCl7cmV0dXJuIEUuYXNtLmdldFRlbXBSZXQwLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sRS5ydW5Qb3N0U2V0cz1mdW5jdGlvbigpe3JldHVybiBFLmFzbS5ydW5Qb3N0U2V0cy5hcHBseShudWxsLGFyZ3VtZW50cyl9LEUuc2V0VGVtcFJldDA9ZnVuY3Rpb24oKXtyZXR1cm4gRS5hc20uc2V0VGVtcFJldDAuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxFLnNldFRocmV3PWZ1bmN0aW9uKCl7cmV0dXJuIEUuYXNtLnNldFRocmV3LmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyIHd0PUUuc3RhY2tBbGxvYz1mdW5jdGlvbigpe3JldHVybiBFLmFzbS5zdGFja0FsbG9jLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSW49RS5zdGFja1Jlc3RvcmU9ZnVuY3Rpb24oKXtyZXR1cm4gRS5hc20uc3RhY2tSZXN0b3JlLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sZ249RS5zdGFja1NhdmU9ZnVuY3Rpb24oKXtyZXR1cm4gRS5hc20uc3RhY2tTYXZlLmFwcGx5KG51bGwsYXJndW1lbnRzKX07ZnVuY3Rpb24gb3QobCl7dGhpcy5uYW1lPSJFeGl0U3RhdHVzIix0aGlzLm1lc3NhZ2U9IlByb2dyYW0gdGVybWluYXRlZCB3aXRoIGV4aXQoIitsKyIpIix0aGlzLnN0YXR1cz1sfWZ1bmN0aW9uIGNuKGwpe2w9bHx8RS5hcmd1bWVudHMsIShEZT4wKSYmKChmdW5jdGlvbigpe2lmKEUucHJlUnVuKWZvcih0eXBlb2YgRS5wcmVSdW49PSJmdW5jdGlvbiImJihFLnByZVJ1bj1bRS5wcmVSdW5dKTtFLnByZVJ1bi5sZW5ndGg7KU5hKEUucHJlUnVuLnNoaWZ0KCkpO2RlKHN0KX0pKCksIShEZT4wKSYmKEUuY2FsbGVkUnVufHwoRS5zZXRTdGF0dXM/KEUuc2V0U3RhdHVzKCJSdW5uaW5nLi4uIiksc2V0VGltZW91dChmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtFLnNldFN0YXR1cygiIil9LDEpLHUoKX0sMSkpOnUoKSkpKTtmdW5jdGlvbiB1KCl7IUUuY2FsbGVkUnVuJiYoRS5jYWxsZWRSdW49ITAsQkF8fChvbnx8KG9uPSEwLGRlKGFuKSksZGUoRXMpLEUub25SdW50aW1lSW5pdGlhbGl6ZWQmJkUub25SdW50aW1lSW5pdGlhbGl6ZWQoKSwoZnVuY3Rpb24oKXtpZihFLnBvc3RSdW4pZm9yKHR5cGVvZiBFLnBvc3RSdW49PSJmdW5jdGlvbiImJihFLnBvc3RSdW49W0UucG9zdFJ1bl0pO0UucG9zdFJ1bi5sZW5ndGg7KVVhKEUucG9zdFJ1bi5zaGlmdCgpKTtkZShDcyl9KSgpKSl9fWZ1bmN0aW9uIF9yKGwsdSl7KCF1fHwhRS5ub0V4aXRSdW50aW1lfHxsIT09MCkmJihFLm5vRXhpdFJ1bnRpbWV8fChCQT0hMCxfQT1sLHk9TCxkZShCcyksTGE9ITAsRS5vbkV4aXQmJkUub25FeGl0KGwpKSxFLnF1aXQobCxuZXcgb3QobCkpKX1mdW5jdGlvbiBJZShsKXt0aHJvdyBFLm9uQWJvcnQmJkUub25BYm9ydChsKSxsIT09dm9pZCAwPyh0QShsKSxpQShsKSxsPUpTT04uc3RyaW5naWZ5KGwpKTpsPSIiLEJBPSEwLF9BPTEsImFib3J0KCIrbCsiKS4gQnVpbGQgd2l0aCAtcyBBU1NFUlRJT05TPTEgZm9yIG1vcmUgaW5mby4ifWlmKEUuZHluQ2FsbF9paWk9ZnVuY3Rpb24oKXtyZXR1cm4gRS5hc20uZHluQ2FsbF9paWkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxFLmFzbT1kcyxFLmNjYWxsPVVlLEUuY3dyYXA9ZnVuY3Rpb24odSxmLHcsVSl7dmFyIF89KHc9d3x8W10pLmV2ZXJ5KGZ1bmN0aW9uKG9BKXtyZXR1cm4gb0E9PT0ibnVtYmVyIn0pO3JldHVybiBmIT09InN0cmluZyImJl8mJiFVP0NlKHUpOmZ1bmN0aW9uKCl7cmV0dXJuIFVlKHUsZix3LGFyZ3VtZW50cyxVKX19LG90LnByb3RvdHlwZT1FcnJvcigpLG90LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1vdCxhdD1mdW5jdGlvbiBsKCl7RS5jYWxsZWRSdW58fGNuKCksRS5jYWxsZWRSdW58fChhdD1sKX0sRS5ydW49Y24sRS5hYm9ydD1JZSxFLnByZUluaXQpZm9yKHR5cGVvZiBFLnByZUluaXQ9PSJmdW5jdGlvbiImJihFLnByZUluaXQ9W0UucHJlSW5pdF0pO0UucHJlSW5pdC5sZW5ndGg+MDspRS5wcmVJbml0LnBvcCgpKCk7RS5ub0V4aXRSdW50aW1lPSEwLGNuKCksRS5vblJ1bnRpbWVJbml0aWFsaXplZD0oKT0+e2tzPSEwLGFhKCl9LGx0LmRlY29kZT1mdW5jdGlvbihsKXtyZXR1cm4oZnVuY3Rpb24oZil7aWYoIWtzKXRocm93IEVycm9yKCJTRjMgZGVjb2RlciBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgeWV0LiBEaWQgeW91IGF3YWl0IHN5bnRoLmlzUmVhZHk/Iik7dmFyIHc9e307ZnVuY3Rpb24gVShQZSl7cmV0dXJuIG5ldyBJbnQzMkFycmF5KEUuSEVBUFU4LmJ1ZmZlcixQZSwxKVswXX1mdW5jdGlvbiBfKFBlLEVuKXt2YXIgRnQ9bmV3IEFycmF5QnVmZmVyKEVuKkZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCksSmU9bmV3IEZsb2F0MzJBcnJheShGdCk7cmV0dXJuIEplLnNldChuZXcgRmxvYXQzMkFycmF5KEUuSEVBUFU4LmJ1ZmZlcixQZSxFbikpLEplfXcub3Blbj1FLmN3cmFwKCJzdGJfdm9yYmlzX2pzX29wZW4iLCJudW1iZXIiLFtdKSx3LmNsb3NlPUUuY3dyYXAoInN0Yl92b3JiaXNfanNfY2xvc2UiLCJ2b2lkIixbIm51bWJlciJdKSx3LmNoYW5uZWxzPUUuY3dyYXAoInN0Yl92b3JiaXNfanNfY2hhbm5lbHMiLCJudW1iZXIiLFsibnVtYmVyIl0pLHcuc2FtcGxlUmF0ZT1FLmN3cmFwKCJzdGJfdm9yYmlzX2pzX3NhbXBsZV9yYXRlIiwibnVtYmVyIixbIm51bWJlciJdKSx3LmRlY29kZT1FLmN3cmFwKCJzdGJfdm9yYmlzX2pzX2RlY29kZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSk7dmFyIG9BLEgsREEsbEEsZEE9dy5vcGVuKCksQ0E9KG9BPWYsSD1mLmJ5dGVMZW5ndGgsREE9RS5fbWFsbG9jKEgpLChsQT1uZXcgVWludDhBcnJheShFLkhFQVBVOC5idWZmZXIsREEsSCkpLnNldChuZXcgVWludDhBcnJheShvQSwwLEgpKSxsQSksVz1FLl9tYWxsb2MoNCksTEE9RS5fbWFsbG9jKDQpLFBBPXcuZGVjb2RlKGRBLENBLmJ5dGVPZmZzZXQsQ0EuYnl0ZUxlbmd0aCxXLExBKTtpZihFLl9mcmVlKENBLmJ5dGVPZmZzZXQpLFBBPDApdGhyb3cgdy5jbG9zZShkQSksRS5fZnJlZShXKSxFcnJvcigic3Ridm9yYmlzIGRlY29kZSBmYWlsZWQ6ICIrUEEpO2Zvcih2YXIgSkE9dy5jaGFubmVscyhkQSkscUE9QXJyYXkoSkEpLHdlPW5ldyBJbnQzMkFycmF5KEUuSEVBUFUzMi5idWZmZXIsVShXKSxKQSksS0E9MDtLQTxKQTtLQSsrKXFBW0tBXT1fKHdlW0tBXSxQQSksRS5fZnJlZSh3ZVtLQV0pO3ZhciBydD13LnNhbXBsZVJhdGUoZEEpO3JldHVybiB3LmNsb3NlKGRBKSxFLl9mcmVlKFUoVykpLEUuX2ZyZWUoVykse2RhdGE6cUEsc2FtcGxlUmF0ZTpydCxlb2Y6ITAsZXJyb3I6bnVsbH19KShsKX19KSgpO3ZhciBPdD1sdCxzcz0tMTVlMyxHbz0xNWUzLHZuPW5ldyBGbG9hdDMyQXJyYXkoR28tc3MrMSk7Zm9yKGxldCBlPTA7ZTx2bi5sZW5ndGg7ZSsrKXtsZXQgQT1zcytlO3ZuW2VdPU1hdGgucG93KDIsQS8xMjAwKX1mdW5jdGlvbiBRZShlKXtyZXR1cm4gZTw9LTMyNzY3PzA6dm5bZS1zc119dmFyIFl0PS0yZTQsb2E9MTY1MDAsTG49bmV3IEZsb2F0MzJBcnJheShvYS1ZdCsxKTtmb3IobGV0IGU9MDtlPExuLmxlbmd0aDtlKyspe2xldCBBPVl0K2U7TG5bZV09NDQwKk1hdGgucG93KDIsKEEtNjkwMCkvMTIwMCl9ZnVuY3Rpb24gTm4oZSl7cmV0dXJuIGU8WXR8fGU+b2E/NDQwKk1hdGgucG93KDIsKGUtNjkwMCkvMTIwMCk6TG5bfn5lLVl0XX12YXIgYXM9LTE2NjAsUm89MTYwMCxVbj1uZXcgRmxvYXQzMkFycmF5KChSby1hcykqMTAwKzEpO2ZvcihsZXQgZT0wO2U8VW4ubGVuZ3RoO2UrKyl7bGV0IEE9KGFzKjEwMCtlKS8xMDA7VW5bZV09TWF0aC5wb3coMTAsLUEvMjApfWZ1bmN0aW9uIEFlKGUpe3JldHVybiBVbltNYXRoLmZsb29yKChlLWFzKSoxMDApXX12YXIgTW89LjAxLEhBPTEwMCxRbj05MCxibz0xNWUtNixiZT1jbGFzcyByYXtzYW1wbGVSYXRlO2N1cnJlbnRBdHRlbnVhdGlvbkRiPUhBO3N0YXRlPTA7YXR0ZW51YXRpb249MDthdHRlbnVhdGlvblRhcmdldEdhaW49MDtjdXJyZW50U2FtcGxlVGltZT0wO3JlbGVhc2VTdGFydERiPUhBO3JlbGVhc2VTdGFydFRpbWVTYW1wbGVzPTA7Y3VycmVudFJlbGVhc2VHYWluPTE7YXR0YWNrRHVyYXRpb249MDtkZWNheUR1cmF0aW9uPTA7cmVsZWFzZUR1cmF0aW9uPTA7YXR0ZW51YXRpb25UYXJnZXQ9MDtzdXN0YWluRGJSZWxhdGl2ZT0wO2RlbGF5RW5kPTA7YXR0YWNrRW5kPTA7aG9sZEVuZD0wO2RlY2F5RW5kPTA7Y2FuRW5kT25TaWxlbnRTdXN0YWluO2NvbnN0cnVjdG9yKEEsdCl7dGhpcy5zYW1wbGVSYXRlPUEsdGhpcy5jYW5FbmRPblNpbGVudFN1c3RhaW49dC8xMD49UW59c3RhdGljIHN0YXJ0UmVsZWFzZShBKXtBLnZvbHVtZUVudmVsb3BlLnJlbGVhc2VTdGFydFRpbWVTYW1wbGVzPUEudm9sdW1lRW52ZWxvcGUuY3VycmVudFNhbXBsZVRpbWUsQS52b2x1bWVFbnZlbG9wZS5jdXJyZW50UmVsZWFzZUdhaW49QWUoQS52b2x1bWVFbnZlbG9wZS5jdXJyZW50QXR0ZW51YXRpb25EYikscmEucmVjYWxjdWxhdGUoQSl9c3RhdGljIHJlY2FsY3VsYXRlKEEpe2xldCB0PUEudm9sdW1lRW52ZWxvcGUsbj1nPT5NYXRoLm1heCgwLE1hdGguZmxvb3IoUWUoZykqdC5zYW1wbGVSYXRlKSk7dC5hdHRlbnVhdGlvblRhcmdldD1NYXRoLm1heCgwLE1hdGgubWluKEEubW9kdWxhdGVkR2VuZXJhdG9yc1tpLmluaXRpYWxBdHRlbnVhdGlvbl0sMTQ0MCkpLzEwLHQuYXR0ZW51YXRpb25UYXJnZXRHYWluPUFlKHQuYXR0ZW51YXRpb25UYXJnZXQpLHQuc3VzdGFpbkRiUmVsYXRpdmU9TWF0aC5taW4oSEEsQS5tb2R1bGF0ZWRHZW5lcmF0b3JzW2kuc3VzdGFpblZvbEVudl0vMTApO2xldCBzPU1hdGgubWluKEhBLHQuc3VzdGFpbkRiUmVsYXRpdmUpO3QuYXR0YWNrRHVyYXRpb249bihBLm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5hdHRhY2tWb2xFbnZdKTtsZXQgYT1BLm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5kZWNheVZvbEVudl0scj0oNjAtQS50YXJnZXRLZXkpKkEubW9kdWxhdGVkR2VuZXJhdG9yc1tpLmtleU51bVRvVm9sRW52RGVjYXldLEk9cy9IQTt0LmRlY2F5RHVyYXRpb249bihhK3IpKkksdC5yZWxlYXNlRHVyYXRpb249bihNYXRoLm1heCgtNzIwMCxBLm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5yZWxlYXNlVm9sRW52XSkpLHQuZGVsYXlFbmQ9bihBLm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5kZWxheVZvbEVudl0pLHQuYXR0YWNrRW5kPXQuYXR0YWNrRHVyYXRpb24rdC5kZWxheUVuZDtsZXQgbz0oNjAtQS50YXJnZXRLZXkpKkEubW9kdWxhdGVkR2VuZXJhdG9yc1tpLmtleU51bVRvVm9sRW52SG9sZF07aWYodC5ob2xkRW5kPW4oQS5tb2R1bGF0ZWRHZW5lcmF0b3JzW2kuaG9sZFZvbEVudl0rbykrdC5hdHRhY2tFbmQsdC5kZWNheUVuZD10LmRlY2F5RHVyYXRpb24rdC5ob2xkRW5kLHQuc3RhdGU9PT0wJiZ0LmF0dGFja0VuZD09PTAmJih0LnN0YXRlPTIpLEEuaXNJblJlbGVhc2Upe2xldCBnPU1hdGgubWF4KDAsTWF0aC5taW4oSEEsdC5zdXN0YWluRGJSZWxhdGl2ZSkpLEI9Zy9IQTtzd2l0Y2godC5kZWNheUR1cmF0aW9uPW4oYStyKSpCLHQuc3RhdGUpe2Nhc2UgMDp0LnJlbGVhc2VTdGFydERiPUhBO2JyZWFrO2Nhc2UgMTp7bGV0IGg9MS0odC5hdHRhY2tFbmQtdC5yZWxlYXNlU3RhcnRUaW1lU2FtcGxlcykvdC5hdHRhY2tEdXJhdGlvbjt0LnJlbGVhc2VTdGFydERiPTIwKk1hdGgubG9nMTAoaCkqLTE7YnJlYWt9Y2FzZSAyOnQucmVsZWFzZVN0YXJ0RGI9MDticmVhaztjYXNlIDM6dC5yZWxlYXNlU3RhcnREYj0oMS0odC5kZWNheUVuZC10LnJlbGVhc2VTdGFydFRpbWVTYW1wbGVzKS90LmRlY2F5RHVyYXRpb24pKmc7YnJlYWs7Y2FzZSA0OnQucmVsZWFzZVN0YXJ0RGI9ZzticmVha310LnJlbGVhc2VTdGFydERiPU1hdGgubWF4KDAsTWF0aC5taW4odC5yZWxlYXNlU3RhcnREYixIQSkpLHQucmVsZWFzZVN0YXJ0RGI+PVFuJiYoQS5maW5pc2hlZD0hMCksdC5jdXJyZW50UmVsZWFzZUdhaW49QWUodC5yZWxlYXNlU3RhcnREYik7bGV0IGQ9KEhBLXQucmVsZWFzZVN0YXJ0RGIpL0hBO3QucmVsZWFzZUR1cmF0aW9uKj1kfX1zdGF0aWMgYXBwbHkoQSx0LG4scyl7bGV0IGE9QS52b2x1bWVFbnZlbG9wZSxyPW4vMTAsST1zO2lmKEEuaXNJblJlbGVhc2Upe2xldCBnPWEuY3VycmVudFNhbXBsZVRpbWUtYS5yZWxlYXNlU3RhcnRUaW1lU2FtcGxlcztpZihnPj1hLnJlbGVhc2VEdXJhdGlvbil7Zm9yKGxldCBkPTA7ZDx0Lmxlbmd0aDtkKyspdFtkXT0wO0EuZmluaXNoZWQ9ITA7cmV0dXJufWxldCBCPUhBLWEucmVsZWFzZVN0YXJ0RGI7Zm9yKGxldCBkPTA7ZDx0Lmxlbmd0aDtkKyspe2EuYXR0ZW51YXRpb24rPShhLmF0dGVudWF0aW9uVGFyZ2V0R2Fpbi1hLmF0dGVudWF0aW9uKSpJO2xldCBoPWcvYS5yZWxlYXNlRHVyYXRpb24qQithLnJlbGVhc2VTdGFydERiO2EuY3VycmVudFJlbGVhc2VHYWluPWEuYXR0ZW51YXRpb24qQWUoaCtyKSx0W2RdKj1hLmN1cnJlbnRSZWxlYXNlR2FpbixhLmN1cnJlbnRTYW1wbGVUaW1lKyssZysrfWEuY3VycmVudFJlbGVhc2VHYWluPD1ibyYmKEEuZmluaXNoZWQ9ITApO3JldHVybn1sZXQgbz0wO3N3aXRjaChhLnN0YXRlKXtjYXNlIDA6Zm9yKDthLmN1cnJlbnRTYW1wbGVUaW1lPGEuZGVsYXlFbmQ7KWlmKGEuY3VycmVudEF0dGVudWF0aW9uRGI9SEEsdFtvXT0wLGEuY3VycmVudFNhbXBsZVRpbWUrKywrK28+PXQubGVuZ3RoKXJldHVybjthLnN0YXRlKys7Y2FzZSAxOmZvcig7YS5jdXJyZW50U2FtcGxlVGltZTxhLmF0dGFja0VuZDspe2EuYXR0ZW51YXRpb24rPShhLmF0dGVudWF0aW9uVGFyZ2V0R2Fpbi1hLmF0dGVudWF0aW9uKSpJO2xldCBnPTEtKGEuYXR0YWNrRW5kLWEuY3VycmVudFNhbXBsZVRpbWUpL2EuYXR0YWNrRHVyYXRpb247aWYodFtvXSo9ZyphLmF0dGVudWF0aW9uKkFlKHIpLGEuY3VycmVudEF0dGVudWF0aW9uRGI9MCxhLmN1cnJlbnRTYW1wbGVUaW1lKyssKytvPj10Lmxlbmd0aClyZXR1cm59YS5zdGF0ZSsrO2Nhc2UgMjpmb3IoO2EuY3VycmVudFNhbXBsZVRpbWU8YS5ob2xkRW5kOylpZihhLmF0dGVudWF0aW9uKz0oYS5hdHRlbnVhdGlvblRhcmdldEdhaW4tYS5hdHRlbnVhdGlvbikqSSx0W29dKj1hLmF0dGVudWF0aW9uKkFlKHIpLGEuY3VycmVudEF0dGVudWF0aW9uRGI9MCxhLmN1cnJlbnRTYW1wbGVUaW1lKyssKytvPj10Lmxlbmd0aClyZXR1cm47YS5zdGF0ZSsrO2Nhc2UgMzpmb3IoO2EuY3VycmVudFNhbXBsZVRpbWU8YS5kZWNheUVuZDspaWYoYS5hdHRlbnVhdGlvbis9KGEuYXR0ZW51YXRpb25UYXJnZXRHYWluLWEuYXR0ZW51YXRpb24pKkksYS5jdXJyZW50QXR0ZW51YXRpb25EYj0oMS0oYS5kZWNheUVuZC1hLmN1cnJlbnRTYW1wbGVUaW1lKS9hLmRlY2F5RHVyYXRpb24pKmEuc3VzdGFpbkRiUmVsYXRpdmUsdFtvXSo9YS5hdHRlbnVhdGlvbipBZShhLmN1cnJlbnRBdHRlbnVhdGlvbkRiK3IpLGEuY3VycmVudFNhbXBsZVRpbWUrKywrK28+PXQubGVuZ3RoKXJldHVybjthLnN0YXRlKys7Y2FzZSA0OmZvcihhLmNhbkVuZE9uU2lsZW50U3VzdGFpbiYmYS5zdXN0YWluRGJSZWxhdGl2ZT49UW4mJihBLmZpbmlzaGVkPSEwKTs7KWlmKGEuYXR0ZW51YXRpb24rPShhLmF0dGVudWF0aW9uVGFyZ2V0R2Fpbi1hLmF0dGVudWF0aW9uKSpJLHRbb10qPWEuYXR0ZW51YXRpb24qQWUoYS5zdXN0YWluRGJSZWxhdGl2ZStyKSxhLmN1cnJlbnRBdHRlbnVhdGlvbkRiPWEuc3VzdGFpbkRiUmVsYXRpdmUsYS5jdXJyZW50U2FtcGxlVGltZSsrLCsrbz49dC5sZW5ndGgpcmV0dXJufX19O2Z1bmN0aW9uIHZvKGUsQSl7c3dpdGNoKHRoaXMucHJpdmF0ZVByb3BzLm1hc3RlclBhcmFtZXRlcnNbZV09QSxlKXtjYXNlIm1hc3RlclBhbiI6e2xldCB0PUE7dD10LzIrLjUsdGhpcy5wcml2YXRlUHJvcHMucGFuTGVmdD0xLXQsdGhpcy5wcml2YXRlUHJvcHMucGFuUmlnaHQ9dDticmVha31jYXNlIm1hc3RlckdhaW4iOmJyZWFrO2Nhc2Uidm9pY2VDYXAiOmJyZWFrO2Nhc2UiaW50ZXJwb2xhdGlvblR5cGUiOmJyZWFrO2Nhc2UibWlkaVN5c3RlbSI6YnJlYWs7Y2FzZSJtb25vcGhvbmljUmV0cmlnZ2VyTW9kZSI6YnJlYWs7Y2FzZSJ0cmFuc3Bvc2l0aW9uIjp7bGV0IHQ9QTt0aGlzLnByaXZhdGVQcm9wcy5tYXN0ZXJQYXJhbWV0ZXJzLnRyYW5zcG9zaXRpb249MDtmb3IobGV0IG4gb2YgdGhpcy5taWRpQ2hhbm5lbHMpbi50cmFuc3Bvc2VDaGFubmVsKHQpO3RoaXMucHJpdmF0ZVByb3BzLm1hc3RlclBhcmFtZXRlcnMudHJhbnNwb3NpdGlvbj10fX10aGlzLmNhbGxFdmVudCgibWFzdGVyUGFyYW1ldGVyQ2hhbmdlIix7cGFyYW1ldGVyOmUsdmFsdWU6QX0pfWZ1bmN0aW9uIExvKGUpe3JldHVybiB0aGlzLnByaXZhdGVQcm9wcy5tYXN0ZXJQYXJhbWV0ZXJzW2VdfWZ1bmN0aW9uIE5vKCl7cmV0dXJuey4uLnRoaXMucHJpdmF0ZVByb3BzLm1hc3RlclBhcmFtZXRlcnN9fWZ1bmN0aW9uIE1lKGUsQSl7cmV0dXJuKGU+PkEmMSk+MH1mdW5jdGlvbiB1bihlKXtyZXR1cm4gZT8xOjB9dmFyIE5BPTE2Mzg0LFB0PU9iamVjdC5rZXlzKFFBKS5sZW5ndGgsaWE9NCxjZT1uZXcgRmxvYXQzMkFycmF5KE5BKzEpLHZlPW5ldyBGbG9hdDMyQXJyYXkoTkErMSk7Y2VbMF09MDtjZVtjZS5sZW5ndGgtMV09MTt2ZVswXT0wO3ZlW3ZlLmxlbmd0aC0xXT0xO2ZvcihsZXQgZT0xO2U8TkEtMTtlKyspe2xldCBBPS0uNDE2NjY2NjY2NjY2NjY2NypNYXRoLmxvZyhlLyhjZS5sZW5ndGgtMSkpL01hdGguTE4xMDt2ZVtlXT0xLUEsY2VbY2UubGVuZ3RoLTEtZV09QX1mdW5jdGlvbiBJYShlLEEsdCl7bGV0IG49ISEoZSYyKTtzd2l0Y2goISEoZSYxKSYmKHQ9MS10KSxBKXtjYXNlIFFBLmxpbmVhcjpyZXR1cm4gbj90KjItMTp0O2Nhc2UgUUEuc3dpdGNoOnJldHVybiB0PXQ+LjU/MTowLG4/dCoyLTE6dDtjYXNlIFFBLmNvbmNhdmU6cmV0dXJuIG4/KHQ9dCoyLTEsdDwwPy1jZVt+fih0Ki1OQSldOmNlW35+KHQqTkEpXSk6Y2Vbfn4odCpOQSldO2Nhc2UgUUEuY29udmV4OnJldHVybiBuPyh0PXQqMi0xLHQ8MD8tdmVbfn4odCotTkEpXTp2ZVt+fih0Kk5BKV0pOnZlW35+KHQqTkEpXX19dmFyIFhBPWNsYXNzIFRue2lzQmlwb2xhcjtpc05lZ2F0aXZlO2luZGV4O2lzQ0M7Y3VydmVUeXBlO2NvbnN0cnVjdG9yKEE9ai5ub0NvbnRyb2xsZXIsdD1RQS5saW5lYXIsbj0hMSxzPSExLGE9ITEpe3RoaXMuaXNCaXBvbGFyPXMsdGhpcy5pc05lZ2F0aXZlPWEsdGhpcy5pbmRleD1BLHRoaXMuaXNDQz1uLHRoaXMuY3VydmVUeXBlPXR9Z2V0IHNvdXJjZU5hbWUoKXtyZXR1cm4gdGhpcy5pc0NDP09iamVjdC5rZXlzKFMpLmZpbmQoQT0+U1tBXT09PXRoaXMuaW5kZXgpPz90aGlzLmluZGV4LnRvU3RyaW5nKCk6T2JqZWN0LmtleXMoaikuZmluZChBPT5qW0FdPT09dGhpcy5pbmRleCk/P3RoaXMuaW5kZXgudG9TdHJpbmcoKX1nZXQgY3VydmVUeXBlTmFtZSgpe3JldHVybiBPYmplY3Qua2V5cyhRQSkuZmluZChBPT5RQVtBXT09PXRoaXMuY3VydmVUeXBlKT8/dGhpcy5jdXJ2ZVR5cGUudG9TdHJpbmcoKX1zdGF0aWMgZnJvbVNvdXJjZUVudW0oQSl7bGV0IHQ9TWUoQSw5KSxuPU1lKEEsOCkscz1NZShBLDcpLGE9QSYxMjcscj1BPj4xMCYzO3JldHVybiBuZXcgVG4oYSxyLHMsdCxuKX1zdGF0aWMgY29weUZyb20oQSl7cmV0dXJuIG5ldyBUbihBLmluZGV4LEEuY3VydmVUeXBlLEEuaXNDQyxBLmlzQmlwb2xhcixBLmlzTmVnYXRpdmUpfXRvU3RyaW5nKCl7cmV0dXJuYCR7dGhpcy5zb3VyY2VOYW1lfSAke3RoaXMuY3VydmVUeXBlTmFtZX0gJHt0aGlzLmlzQmlwb2xhcj8iYmlwb2xhciI6InVuaXBvbGFyIn0gJHt0aGlzLmlzTmVnYXRpdmU/Im5lZ2F0aXZlIjoicG9zaXRpdmUifWB9dG9Tb3VyY2VFbnVtKCl7cmV0dXJuIHRoaXMuY3VydmVUeXBlPDwxMHx1bih0aGlzLmlzQmlwb2xhcik8PDl8dW4odGhpcy5pc05lZ2F0aXZlKTw8OHx1bih0aGlzLmlzQ0MpPDw3fHRoaXMuaW5kZXh9aXNJZGVudGljYWwoQSl7cmV0dXJuIHRoaXMuaW5kZXg9PT1BLmluZGV4JiZ0aGlzLmlzTmVnYXRpdmU9PT1BLmlzTmVnYXRpdmUmJnRoaXMuaXNDQz09PUEuaXNDQyYmdGhpcy5pc0JpcG9sYXI9PT1BLmlzQmlwb2xhciYmdGhpcy5jdXJ2ZVR5cGU9PT1BLmN1cnZlVHlwZX1nZXRWYWx1ZShBLHQpe2xldCBuO2lmKHRoaXMuaXNDQyluPUFbdGhpcy5pbmRleF07ZWxzZSBzd2l0Y2godGhpcy5pbmRleCl7Y2FzZSBqLm5vQ29udHJvbGxlcjpuPTE2MzgzO2JyZWFrO2Nhc2Ugai5ub3RlT25LZXlOdW06bj10Lm1pZGlOb3RlPDw3O2JyZWFrO2Nhc2Ugai5ub3RlT25WZWxvY2l0eTpuPXQudmVsb2NpdHk8PDc7YnJlYWs7Y2FzZSBqLnBvbHlQcmVzc3VyZTpuPXQucHJlc3N1cmU8PDc7YnJlYWs7ZGVmYXVsdDpuPUFbdGhpcy5pbmRleCttQV07YnJlYWt9bGV0IHM9KHRoaXMuaXNCaXBvbGFyPzI6MCl8KHRoaXMuaXNOZWdhdGl2ZT8xOjApO3JldHVybiBnYVtOQSoodGhpcy5jdXJ2ZVR5cGUqUHQrcykrbl19fSxnYT1uZXcgRmxvYXQzMkFycmF5KE5BKmlhKlB0KTtmb3IobGV0IGU9MDtlPFB0O2UrKylmb3IobGV0IEE9MDtBPGlhO0ErKyl7bGV0IHQ9TkEqKGUqUHQrQSk7Zm9yKGxldCBuPTA7bjxOQTtuKyspZ2FbdCtuXT1JYShBLGUsbi9OQSl9dmFyIG1lPTEwO2Z1bmN0aW9uIGdlKGUsQSx0LG4scyl7cmV0dXJuIG5ldyBYQShzLGUsbixBLHQpLnRvU291cmNlRW51bSgpfXZhciBjYT1nZShRQS5saW5lYXIsITAsITEsITAsUy5maWx0ZXJSZXNvbmFuY2UpLEVBPWNsYXNzIHhue2N1cnJlbnRWYWx1ZT0wO2Rlc3RpbmF0aW9uPWkuaW5pdGlhbEF0dGVudWF0aW9uO3RyYW5zZm9ybUFtb3VudD0wO3RyYW5zZm9ybVR5cGU9MDtpc0VmZmVjdE1vZHVsYXRvcj0hMTtpc0RlZmF1bHRSZXNvbmFudE1vZHVsYXRvcj0hMTtwcmltYXJ5U291cmNlO3NlY29uZGFyeVNvdXJjZTtjb25zdHJ1Y3RvcihBPW5ldyBYQSx0PW5ldyBYQSxuPWkuSU5WQUxJRCxzPTAsYT0wLHI9ITEsST0hMSl7dGhpcy5wcmltYXJ5U291cmNlPUEsdGhpcy5zZWNvbmRhcnlTb3VyY2U9dCx0aGlzLmRlc3RpbmF0aW9uPW4sdGhpcy50cmFuc2Zvcm1BbW91bnQ9cyx0aGlzLnRyYW5zZm9ybVR5cGU9YSx0aGlzLmlzRWZmZWN0TW9kdWxhdG9yPXIsdGhpcy5pc0RlZmF1bHRSZXNvbmFudE1vZHVsYXRvcj1JfWdldCBkZXN0aW5hdGlvbk5hbWUoKXtyZXR1cm4gT2JqZWN0LmtleXMoaSkuZmluZChBPT5pW0FdPT09dGhpcy5kZXN0aW5hdGlvbil9c3RhdGljIGlzSWRlbnRpY2FsKEEsdCxuPSExKXtyZXR1cm4gQS5wcmltYXJ5U291cmNlLmlzSWRlbnRpY2FsKHQucHJpbWFyeVNvdXJjZSkmJkEuc2Vjb25kYXJ5U291cmNlLmlzSWRlbnRpY2FsKHQuc2Vjb25kYXJ5U291cmNlKSYmQS5kZXN0aW5hdGlvbj09PXQuZGVzdGluYXRpb24mJkEudHJhbnNmb3JtVHlwZT09PXQudHJhbnNmb3JtVHlwZSYmKCFufHxBLnRyYW5zZm9ybUFtb3VudD09PXQudHJhbnNmb3JtQW1vdW50KX1zdGF0aWMgY29weUZyb20oQSl7cmV0dXJuIG5ldyB4bihYQS5jb3B5RnJvbShBLnByaW1hcnlTb3VyY2UpLFhBLmNvcHlGcm9tKEEuc2Vjb25kYXJ5U291cmNlKSxBLmRlc3RpbmF0aW9uLEEudHJhbnNmb3JtQW1vdW50LEEudHJhbnNmb3JtVHlwZSxBLmlzRWZmZWN0TW9kdWxhdG9yLEEuaXNEZWZhdWx0UmVzb25hbnRNb2R1bGF0b3IpfXRvU3RyaW5nKCl7cmV0dXJuYFNvdXJjZTogJHt0aGlzLnByaW1hcnlTb3VyY2UudG9TdHJpbmcoKX0KU2Vjb25kYXJ5IHNvdXJjZTogJHt0aGlzLnNlY29uZGFyeVNvdXJjZS50b1N0cmluZygpfQp0bzogJHt0aGlzLmRlc3RpbmF0aW9uTmFtZX0KYW1vdW50OiAke3RoaXMudHJhbnNmb3JtQW1vdW50fWArKHRoaXMudHJhbnNmb3JtVHlwZT09PTI/ImFic29sdXRlIHZhbHVlIjoiIil9d3JpdGUoQSx0KXtKKEEsdGhpcy5wcmltYXJ5U291cmNlLnRvU291cmNlRW51bSgpKSxKKEEsdGhpcy5kZXN0aW5hdGlvbiksSihBLHRoaXMudHJhbnNmb3JtQW1vdW50KSxKKEEsdGhpcy5zZWNvbmRhcnlTb3VyY2UudG9Tb3VyY2VFbnVtKCkpLEooQSx0aGlzLnRyYW5zZm9ybVR5cGUpLHQmJnQubW9kKyt9c3VtVHJhbnNmb3JtKEEpe2xldCB0PXhuLmNvcHlGcm9tKHRoaXMpO3JldHVybiB0LnRyYW5zZm9ybUFtb3VudCs9QS50cmFuc2Zvcm1BbW91bnQsdH19LHlBPWNsYXNzIGV4dGVuZHMgRUF7Y29uc3RydWN0b3IoZSxBLHQsbixzKXtsZXQgYT0oZT09PTIxOXx8ZT09PTIyMSkmJkE9PT0wJiYodD09PWkucmV2ZXJiRWZmZWN0c1NlbmR8fHQ9PT1pLmNob3J1c0VmZmVjdHNTZW5kKSxyPWU9PT1jYSYmQT09PTAmJnQ9PT1pLmluaXRpYWxGaWx0ZXJRO3N1cGVyKFhBLmZyb21Tb3VyY2VFbnVtKGUpLFhBLmZyb21Tb3VyY2VFbnVtKEEpLHQsbixzLGEsciksdGhpcy5kZXN0aW5hdGlvbj5tbyYmKHRoaXMuZGVzdGluYXRpb249aS5JTlZBTElEKX19LGZuPTk2MCxtbj1RQS5jb25jYXZlLFVvPVtuZXcgeUEoZ2UobW4sITEsITAsITEsai5ub3RlT25WZWxvY2l0eSksMCxpLmluaXRpYWxBdHRlbnVhdGlvbixmbiwwKSxuZXcgeUEoMTI5LDAsaS52aWJMZm9Ub1BpdGNoLDUwLDApLG5ldyB5QShnZShtbiwhMSwhMCwhMCxTLm1haW5Wb2x1bWUpLDAsaS5pbml0aWFsQXR0ZW51YXRpb24sZm4sMCksbmV3IHlBKDEzLDAsaS52aWJMZm9Ub1BpdGNoLDUwLDApLG5ldyB5QSg1MjYsMTYsaS5maW5lVHVuZSwxMjcwMCwwKSxuZXcgeUEoNjUwLDAsaS5wYW4sNTAwLDApLG5ldyB5QShnZShtbiwhMSwhMCwhMCxTLmV4cHJlc3Npb25Db250cm9sbGVyKSwwLGkuaW5pdGlhbEF0dGVudWF0aW9uLGZuLDApLG5ldyB5QSgyMTksMCxpLnJldmVyYkVmZmVjdHNTZW5kLDIwMCwwKSxuZXcgeUEoMjIxLDAsaS5jaG9ydXNFZmZlY3RzU2VuZCwyMDAsMCldLFRvPVtuZXcgeUEoZ2UoUUEubGluZWFyLCExLCExLCExLGoucG9seVByZXNzdXJlKSwwLGkudmliTGZvVG9QaXRjaCw1MCwwKSxuZXcgeUEoZ2UoUUEubGluZWFyLCExLCExLCEwLFMudHJlbW9sb0RlcHRoKSwwLGkubW9kTGZvVG9Wb2x1bWUsMjQsMCksbmV3IHlBKGdlKFFBLmNvbnZleCwhMCwhMSwhMCxTLmF0dGFja1RpbWUpLDAsaS5hdHRhY2tWb2xFbnYsNmUzLDApLG5ldyB5QShnZShRQS5saW5lYXIsITAsITEsITAsUy5yZWxlYXNlVGltZSksMCxpLnJlbGVhc2VWb2xFbnYsMzYwMCwwKSxuZXcgeUEoZ2UoUUEubGluZWFyLCEwLCExLCEwLFMuYnJpZ2h0bmVzcyksMCxpLmluaXRpYWxGaWx0ZXJGYyw2ZTMsMCksbmV3IHlBKGNhLDAsaS5pbml0aWFsRmlsdGVyUSwyNTAsMCldLEVhPVVvLmNvbmNhdChUbyksQ3Q9NCxGQT1jbGFzc3tnZW5lcmF0b3JUeXBlO2dlbmVyYXRvclZhbHVlPTA7Y29uc3RydWN0b3IoZSxBLHQ9ITApe2lmKHRoaXMuZ2VuZXJhdG9yVHlwZT1lLEE9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJObyB2YWx1ZSBwcm92aWRlZC4iKTtpZih0aGlzLmdlbmVyYXRvclZhbHVlPU1hdGgucm91bmQoQSksdCl7bGV0IG49eFtlXTtuIT09dm9pZCAwJiYodGhpcy5nZW5lcmF0b3JWYWx1ZT1NYXRoLm1heChuLm1pbixNYXRoLm1pbihuLm1heCx0aGlzLmdlbmVyYXRvclZhbHVlKSkpfX13cml0ZShlLEEpe0ooZSx0aGlzLmdlbmVyYXRvclR5cGUpLEooZSx0aGlzLmdlbmVyYXRvclZhbHVlKSxBLmdlbisrfXRvU3RyaW5nKCl7cmV0dXJuYCR7T2JqZWN0LmtleXMoaSkuZmluZChlPT5pW2VdPT09dGhpcy5nZW5lcmF0b3JUeXBlKX06ICR7dGhpcy5nZW5lcmF0b3JWYWx1ZX1gfX07ZnVuY3Rpb24geG8oZSxBLHQpe2xldCBuPXhbZV18fHttaW46MCxtYXg6MzI3NjgsZGVmOjB9LHM9QS5maW5kKG89Pm8uZ2VuZXJhdG9yVHlwZT09PWUpLGE9MDtzJiYoYT1zLmdlbmVyYXRvclZhbHVlKTtsZXQgcj10LmZpbmQobz0+by5nZW5lcmF0b3JUeXBlPT09ZSksST1uLmRlZjtyZXR1cm4gciYmKEk9ci5nZW5lcmF0b3JWYWx1ZSksTWF0aC5tYXgoLTMyNzY3LE1hdGgubWluKDMyNzY3LEkrYSkpfXZhciBKdD00LFZ0PWNsYXNze3ZlbFJhbmdlPXttaW46LTEsbWF4OjEyN307a2V5UmFuZ2U9e21pbjotMSxtYXg6MTI3fTtnZW5lcmF0b3JzPVtdO21vZHVsYXRvcnM9W107Z2V0IGhhc0tleVJhbmdlKCl7cmV0dXJuIHRoaXMua2V5UmFuZ2UubWluIT09LTF9Z2V0IGhhc1ZlbFJhbmdlKCl7cmV0dXJuIHRoaXMudmVsUmFuZ2UubWluIT09LTF9Z2V0IGZpbmVUdW5pbmcoKXtsZXQgZT10aGlzLmdldEdlbmVyYXRvcihpLmNvYXJzZVR1bmUsMCksQT10aGlzLmdldEdlbmVyYXRvcihpLmZpbmVUdW5lLDApO3JldHVybiBlKjEwMCtBfXNldCBmaW5lVHVuaW5nKGUpe2xldCBBPU1hdGgudHJ1bmMoZS8xMDApLHQ9ZSUxMDA7dGhpcy5zZXRHZW5lcmF0b3IoaS5jb2Fyc2VUdW5lLEEpLHRoaXMuc2V0R2VuZXJhdG9yKGkuZmluZVR1bmUsdCl9YWRkVG9HZW5lcmF0b3IoZSxBLHQ9ITApe2xldCBuPXRoaXMuZ2V0R2VuZXJhdG9yKGUseFtlXS5kZWYpO3RoaXMuc2V0R2VuZXJhdG9yKGUsQStuLHQpfXNldEdlbmVyYXRvcihlLEEsdD0hMCl7c3dpdGNoKGUpe2Nhc2UgaS5zYW1wbGVJRDp0aHJvdyBuZXcgRXJyb3IoIlVzZSBzZXRTYW1wbGUoKSIpO2Nhc2UgaS5pbnN0cnVtZW50OnRocm93IG5ldyBFcnJvcigiVXNlIHNldEluc3RydW1lbnQoKSIpO2Nhc2UgaS52ZWxSYW5nZTpjYXNlIGkua2V5UmFuZ2U6dGhyb3cgbmV3IEVycm9yKCJTZXQgdGhlIHJhbmdlIG1hbnVhbGx5Iil9aWYoQT09PW51bGwpe3RoaXMuZ2VuZXJhdG9ycz10aGlzLmdlbmVyYXRvcnMuZmlsdGVyKHM9PnMuZ2VuZXJhdG9yVHlwZSE9PWUpO3JldHVybn1sZXQgbj10aGlzLmdlbmVyYXRvcnMuZmluZEluZGV4KHM9PnMuZ2VuZXJhdG9yVHlwZT09PWUpO24+PTA/dGhpcy5nZW5lcmF0b3JzW25dPW5ldyBGQShlLEEsdCk6dGhpcy5hZGRHZW5lcmF0b3JzKG5ldyBGQShlLEEsdCkpfWFkZEdlbmVyYXRvcnMoLi4uZSl7ZS5mb3JFYWNoKEE9Pntzd2l0Y2goQS5nZW5lcmF0b3JUeXBlKXtkZWZhdWx0OnRoaXMuZ2VuZXJhdG9ycy5wdXNoKEEpO2JyZWFrO2Nhc2UgaS5zYW1wbGVJRDpjYXNlIGkuaW5zdHJ1bWVudDpicmVhaztjYXNlIGkudmVsUmFuZ2U6dGhpcy52ZWxSYW5nZS5taW49QS5nZW5lcmF0b3JWYWx1ZSYxMjcsdGhpcy52ZWxSYW5nZS5tYXg9QS5nZW5lcmF0b3JWYWx1ZT4+OCYxMjc7YnJlYWs7Y2FzZSBpLmtleVJhbmdlOnRoaXMua2V5UmFuZ2UubWluPUEuZ2VuZXJhdG9yVmFsdWUmMTI3LHRoaXMua2V5UmFuZ2UubWF4PUEuZ2VuZXJhdG9yVmFsdWU+PjgmMTI3fX0pfWFkZE1vZHVsYXRvcnMoLi4uZSl7dGhpcy5tb2R1bGF0b3JzLnB1c2goLi4uZSl9Z2V0R2VuZXJhdG9yKGUsQSl7cmV0dXJuIHRoaXMuZ2VuZXJhdG9ycy5maW5kKHQ9PnQuZ2VuZXJhdG9yVHlwZT09PWUpPy5nZW5lcmF0b3JWYWx1ZT8/QX1jb3B5RnJvbShlKXt0aGlzLmdlbmVyYXRvcnM9ZS5nZW5lcmF0b3JzLm1hcChBPT5uZXcgRkEoQS5nZW5lcmF0b3JUeXBlLEEuZ2VuZXJhdG9yVmFsdWUsITEpKSx0aGlzLm1vZHVsYXRvcnM9ZS5tb2R1bGF0b3JzLm1hcChFQS5jb3B5RnJvbS5iaW5kKEVBKSksdGhpcy52ZWxSYW5nZT17Li4uZS52ZWxSYW5nZX0sdGhpcy5rZXlSYW5nZT17Li4uZS5rZXlSYW5nZX19Z2V0R2VuQ291bnQoKXtsZXQgZT10aGlzLmdlbmVyYXRvcnMuZmlsdGVyKEE9PkEuZ2VuZXJhdG9yVHlwZSE9PWkuc2FtcGxlSUQmJkEuZ2VuZXJhdG9yVHlwZSE9PWkuaW5zdHJ1bWVudCYmQS5nZW5lcmF0b3JUeXBlIT09aS5rZXlSYW5nZSYmQS5nZW5lcmF0b3JUeXBlIT09aS52ZWxSYW5nZSkubGVuZ3RoO3JldHVybiB0aGlzLmhhc1ZlbFJhbmdlJiZlKyssdGhpcy5oYXNLZXlSYW5nZSYmZSsrLGV9d3JpdGUoZSxBLHQsbixzKXtsZXQgYT1uLmdlbixyPW4ubW9kO0oodC5wZHRhLGEmNjU1MzUpLEoodC5wZHRhLHImNjU1MzUpLEoodC54ZHRhLGE+PjE2KSxKKHQueGR0YSxyPj4xNiksbi5iYWcrKyx0aGlzLmdldFdyaXRlR2VuZXJhdG9ycyhzKS5mb3JFYWNoKG89Pm8ud3JpdGUoZSxuKSksdGhpcy5tb2R1bGF0b3JzLmZvckVhY2gobz0+by53cml0ZShBLG4pKX1nZXRXcml0ZUdlbmVyYXRvcnMoZSl7bGV0IEE9dGhpcy5nZW5lcmF0b3JzLmZpbHRlcih0PT50LmdlbmVyYXRvclR5cGUhPT1pLnNhbXBsZUlEJiZ0LmdlbmVyYXRvclR5cGUhPT1pLmluc3RydW1lbnQmJnQuZ2VuZXJhdG9yVHlwZSE9PWkua2V5UmFuZ2UmJnQuZ2VuZXJhdG9yVHlwZSE9PWkudmVsUmFuZ2UpO2lmKCFlKXRocm93IG5ldyBFcnJvcigiTm8gYmFuayBwcm92aWRlZCEgIik7cmV0dXJuIHRoaXMuaGFzVmVsUmFuZ2UmJkEudW5zaGlmdChuZXcgRkEoaS52ZWxSYW5nZSx0aGlzLnZlbFJhbmdlLm1heDw8OHxNYXRoLm1heCh0aGlzLnZlbFJhbmdlLm1pbiwwKSwhMSkpLHRoaXMuaGFzS2V5UmFuZ2UmJkEudW5zaGlmdChuZXcgRkEoaS5rZXlSYW5nZSx0aGlzLmtleVJhbmdlLm1heDw8OHxNYXRoLm1heCh0aGlzLmtleVJhbmdlLm1pbiwwKSwhMSkpLEF9fSxCYT1jbGFzcyBleHRlbmRzIFZ0e30sQ2E9Y2xhc3MgZXh0ZW5kcyBWdHtwYXJlbnRQcmVzZXQ7Y29uc3RydWN0b3IoZSxBKXtzdXBlcigpLHRoaXMucGFyZW50UHJlc2V0PWUsdGhpcy5faW5zdHJ1bWVudD1BLHRoaXMuX2luc3RydW1lbnQubGlua1RvKHRoaXMucGFyZW50UHJlc2V0KX1faW5zdHJ1bWVudDtnZXQgaW5zdHJ1bWVudCgpe3JldHVybiB0aGlzLl9pbnN0cnVtZW50fXNldCBpbnN0cnVtZW50KGUpe3RoaXMuX2luc3RydW1lbnQmJnRoaXMuX2luc3RydW1lbnQudW5saW5rRnJvbSh0aGlzLnBhcmVudFByZXNldCksdGhpcy5faW5zdHJ1bWVudD1lLHRoaXMuX2luc3RydW1lbnQubGlua1RvKHRoaXMucGFyZW50UHJlc2V0KX1nZXRHZW5Db3VudCgpe3JldHVybiBzdXBlci5nZXRHZW5Db3VudCgpKzF9Z2V0V3JpdGVHZW5lcmF0b3JzKGUpe2xldCBBPXN1cGVyLmdldFdyaXRlR2VuZXJhdG9ycyhlKTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIkluc3RydW1lbnQgSUQgY2Fubm90IGJlIGRldGVybWluZWQgd2l0aG91dCB0aGUgc291bmQgYmFuayBpdHNlbGYuIik7bGV0IHQ9ZS5pbnN0cnVtZW50cy5pbmRleE9mKHRoaXMuaW5zdHJ1bWVudCk7aWYodDwwKXRocm93IG5ldyBFcnJvcihgJHt0aGlzLmluc3RydW1lbnQubmFtZX0gZG9lcyBub3QgZXhpc3QgaW4gJHtlLnNvdW5kQmFua0luZm8ubmFtZX0hIENhbm5vdCB3cml0ZSBpbnN0cnVtZW50IGdlbmVyYXRvci5gKTtyZXR1cm4gQS5wdXNoKG5ldyBGQShpLmluc3RydW1lbnQsdCwhMSkpLEF9fSxoYT1jbGFzcyBleHRlbmRzIFZ0e3BhcmVudEluc3RydW1lbnQ7dXNlQ291bnQ7Y29uc3RydWN0b3IoZSxBKXtzdXBlcigpLHRoaXMucGFyZW50SW5zdHJ1bWVudD1lLHRoaXMuX3NhbXBsZT1BLEEubGlua1RvKHRoaXMucGFyZW50SW5zdHJ1bWVudCksdGhpcy51c2VDb3VudD1lLnVzZUNvdW50fV9zYW1wbGU7Z2V0IHNhbXBsZSgpe3JldHVybiB0aGlzLl9zYW1wbGV9c2V0IHNhbXBsZShlKXt0aGlzLl9zYW1wbGUmJnRoaXMuX3NhbXBsZS51bmxpbmtGcm9tKHRoaXMucGFyZW50SW5zdHJ1bWVudCksdGhpcy5fc2FtcGxlPWUsZS5saW5rVG8odGhpcy5wYXJlbnRJbnN0cnVtZW50KX1nZXRHZW5Db3VudCgpe3JldHVybiBzdXBlci5nZXRHZW5Db3VudCgpKzF9Z2V0V3JpdGVHZW5lcmF0b3JzKGUpe2xldCBBPXN1cGVyLmdldFdyaXRlR2VuZXJhdG9ycyhlKSx0PWUuc2FtcGxlcy5pbmRleE9mKHRoaXMuc2FtcGxlKTtpZih0PDApdGhyb3cgbmV3IEVycm9yKGAke3RoaXMuc2FtcGxlLm5hbWV9IGRvZXMgbm90IGV4aXN0IGluICR7ZS5zb3VuZEJhbmtJbmZvLm5hbWV9ISBDYW5ub3Qgd3JpdGUgc2FtcGxlSUQgZ2VuZXJhdG9yLmApO3JldHVybiBBLnB1c2gobmV3IEZBKGkuc2FtcGxlSUQsdCwhMSkpLEF9fSxsYT0yMixIbz1uZXcgU2V0KFtpLnZlbFJhbmdlLGkua2V5UmFuZ2UsaS5pbnN0cnVtZW50LGkuc2FtcGxlSUQsaS5leGNsdXNpdmVDbGFzcyxpLmVuZE9wZXIsaS5zYW1wbGVNb2RlcyxpLnN0YXJ0bG9vcEFkZHJzT2Zmc2V0LGkuc3RhcnRsb29wQWRkcnNDb2Fyc2VPZmZzZXQsaS5lbmRsb29wQWRkcnNPZmZzZXQsaS5lbmRsb29wQWRkcnNDb2Fyc2VPZmZzZXQsaS5zdGFydEFkZHJzT2Zmc2V0LGkuc3RhcnRBZGRyc0NvYXJzZU9mZnNldCxpLmVuZEFkZHJPZmZzZXQsaS5lbmRBZGRyc0NvYXJzZU9mZnNldCxpLmluaXRpYWxBdHRlbnVhdGlvbixpLmZpbmVUdW5lLGkuY29hcnNlVHVuZSxpLmtleU51bVRvVm9sRW52SG9sZCxpLmtleU51bVRvVm9sRW52RGVjYXksaS5rZXlOdW1Ub01vZEVudkhvbGQsaS5rZXlOdW1Ub01vZEVudkRlY2F5XSksZHQ9Y2xhc3N7bmFtZT0iIjt6b25lcz1bXTtnbG9iYWxab25lPW5ldyBCYTtsaW5rZWRUbz1bXTtnZXQgdXNlQ291bnQoKXtyZXR1cm4gdGhpcy5saW5rZWRUby5sZW5ndGh9Y3JlYXRlWm9uZShlKXtsZXQgQT1uZXcgaGEodGhpcyxlKTtyZXR1cm4gdGhpcy56b25lcy5wdXNoKEEpLEF9bGlua1RvKGUpe3RoaXMubGlua2VkVG8ucHVzaChlKSx0aGlzLnpvbmVzLmZvckVhY2goQT0+QS51c2VDb3VudCsrKX11bmxpbmtGcm9tKGUpe2xldCBBPXRoaXMubGlua2VkVG8uaW5kZXhPZihlKTtpZihBPDApe3NBKGBDYW5ub3QgdW5saW5rICR7ZS5uYW1lfSBmcm9tICR7dGhpcy5uYW1lfTogbm90IGxpbmtlZC5gKTtyZXR1cm59dGhpcy5saW5rZWRUby5zcGxpY2UoQSwxKSx0aGlzLnpvbmVzLmZvckVhY2godD0+dC51c2VDb3VudC0tKX1kZWxldGVVbnVzZWRab25lcygpe3RoaXMuem9uZXM9dGhpcy56b25lcy5maWx0ZXIoZT0+e2xldCBBPWUudXNlQ291bnQ+MDtyZXR1cm4gQXx8ZS5zYW1wbGUudW5saW5rRnJvbSh0aGlzKSxBfSl9ZGVsZXRlKCl7aWYodGhpcy51c2VDb3VudD4wKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IGRlbGV0ZSBhbiBpbnN0cnVtZW50IHRoYXQgaXMgdXNlZCBieTogJHt0aGlzLmxpbmtlZFRvLm1hcChlPT5lLm5hbWUpLnRvU3RyaW5nKCl9LmApO3RoaXMuem9uZXMuZm9yRWFjaChlPT5lLnNhbXBsZS51bmxpbmtGcm9tKHRoaXMpKX1kZWxldGVab25lKGUsQT0hMSl7bGV0IHQ9dGhpcy56b25lc1tlXTtyZXR1cm4gdC51c2VDb3VudC09MSx0LnVzZUNvdW50PDF8fEE/KHQuc2FtcGxlLnVubGlua0Zyb20odGhpcyksdGhpcy56b25lcy5zcGxpY2UoZSwxKSwhMCk6ITF9Z2xvYmFsaXplKCl7bGV0IGU9dGhpcy5nbG9iYWxab25lO2ZvcihsZXQgbj0wO248NTg7bisrKXtpZihIby5oYXMobikpY29udGludWU7bj1uO2xldCBzPXt9LGE9eFtuXT8uZGVmfHwwO3NbYV09MDtmb3IobGV0IHIgb2YgdGhpcy56b25lcyl7bGV0IEk9ci5nZXRHZW5lcmF0b3Iobix2b2lkIDApO0khPT12b2lkIDA/c1tJXT09PXZvaWQgMD9zW0ldPTE6c1tJXSsrOnNbYV0rKztsZXQgbztzd2l0Y2gobil7ZGVmYXVsdDpjb250aW51ZTtjYXNlIGkuZGVjYXlWb2xFbnY6bz1pLmtleU51bVRvVm9sRW52RGVjYXk7YnJlYWs7Y2FzZSBpLmhvbGRWb2xFbnY6bz1pLmtleU51bVRvVm9sRW52SG9sZDticmVhaztjYXNlIGkuZGVjYXlNb2RFbnY6bz1pLmtleU51bVRvTW9kRW52RGVjYXk7YnJlYWs7Y2FzZSBpLmhvbGRNb2RFbnY6bz1pLmtleU51bVRvTW9kRW52SG9sZH1pZihyLmdldEdlbmVyYXRvcihvLHZvaWQgMCkhPT12b2lkIDApe3M9e307YnJlYWt9fWlmKE9iamVjdC5rZXlzKHMpLmxlbmd0aD4wKXtsZXQgST1PYmplY3QuZW50cmllcyhzKS5yZWR1Y2UoKGcsQik9PmdbMV08QlsxXT9COmcsWyIwIiwwXSksbz1wYXJzZUludChJWzBdKTtvIT09YSYmZS5zZXRHZW5lcmF0b3IobixvLCExKSx0aGlzLnpvbmVzLmZvckVhY2goZz0+e2xldCBCPWcuZ2V0R2VuZXJhdG9yKG4sdm9pZCAwKTtCIT09dm9pZCAwP0I9PT1vJiZnLnNldEdlbmVyYXRvcihuLG51bGwpOm8hPT1hJiZnLnNldEdlbmVyYXRvcihuLGEpfSl9fWxldCB0PXRoaXMuem9uZXNbMF0ubW9kdWxhdG9ycy5tYXAobj0+RUEuY29weUZyb20obikpO2ZvcihsZXQgbiBvZiB0KXtsZXQgcz0hMDtmb3IobGV0IGEgb2YgdGhpcy56b25lcyl7aWYoIXMpY29udGludWU7YS5tb2R1bGF0b3JzLmZpbmQoST0+RUEuaXNJZGVudGljYWwoSSxuKSl8fChzPSExKX1pZihzKXtlLmFkZE1vZHVsYXRvcnMoRUEuY29weUZyb20obikpO2ZvcihsZXQgYSBvZiB0aGlzLnpvbmVzKXtsZXQgcj1hLm1vZHVsYXRvcnMuZmluZChJPT5FQS5pc0lkZW50aWNhbChJLG4pKTtyJiZyLnRyYW5zZm9ybUFtb3VudD09PW4udHJhbnNmb3JtQW1vdW50JiZhLm1vZHVsYXRvcnMuc3BsaWNlKGEubW9kdWxhdG9ycy5pbmRleE9mKHIpLDEpfX19fWdldFNpemUoKXtsZXQgZT10aGlzLnpvbmVzLnJlZHVjZSgodCxuKT0+bi5tb2R1bGF0b3JzLmxlbmd0aCt0LDApK3RoaXMuZ2xvYmFsWm9uZS5tb2R1bGF0b3JzLmxlbmd0aCxBPXRoaXMuem9uZXMucmVkdWNlKCh0LG4pPT5uLmdldEdlbkNvdW50KCkrdCwwKSt0aGlzLmdsb2JhbFpvbmUuZ2V0R2VuQ291bnQoKTtyZXR1cm57bW9kOmUqbWUsYmFnOih0aGlzLnpvbmVzLmxlbmd0aCsxKSpKdCxnZW46QSpDdCxoZHI6bGF9fXdyaXRlKGUsQSx0LG4scyxhKXtwKGAlY1dyaXRpbmcgJHt0aGlzLm5hbWV9Li4uYCxjLmluZm8pLGtBKG4ucGR0YSx0aGlzLm5hbWUuc3Vic3RyaW5nKDAsMjApLDIwKSxrQShuLnhkdGEsdGhpcy5uYW1lLnN1YnN0cmluZygyMCksMjApLEoobi5wZHRhLHMuaGRyJjY1NTM1KSxKKG4ueGR0YSxzLmhkcj4+PjE2KSxzLmhkcis9dGhpcy56b25lcy5sZW5ndGgrMSx0aGlzLmdsb2JhbFpvbmUud3JpdGUoZSxBLHQscyxhKSx0aGlzLnpvbmVzLmZvckVhY2gocj0+ci53cml0ZShlLEEsdCxzLGEpKX19LGRhPTM4LHBlPWNsYXNze3BhcmVudFNvdW5kQmFuaztuYW1lPSIiO3Byb2dyYW09MDtiYW5rTVNCPTA7YmFua0xTQj0wO2lzR01HU0RydW09ITE7em9uZXM9W107Z2xvYmFsWm9uZTtsaWJyYXJ5PTA7Z2VucmU9MDttb3JwaG9sb2d5PTA7Y29uc3RydWN0b3IoZSxBPW5ldyBCYSl7dGhpcy5wYXJlbnRTb3VuZEJhbms9ZSx0aGlzLmdsb2JhbFpvbmU9QX1nZXQgaXNYR0RydW1zKCl7cmV0dXJuIHRoaXMucGFyZW50U291bmRCYW5rLmlzWEdCYW5rJiZmQS5pc1hHRHJ1bXModGhpcy5iYW5rTVNCKX1nZXQgaXNBbnlEcnVtcygpe2xldCBlPXRoaXMucGFyZW50U291bmRCYW5rLmlzWEdCYW5rO3JldHVybiB0aGlzLmlzR01HU0RydW18fGUmJmZBLmlzWEdEcnVtcyh0aGlzLmJhbmtNU0IpJiZ0aGlzLmJhbmtNU0IhPT0xMjZ9ZGVsZXRlKCl7dGhpcy56b25lcy5mb3JFYWNoKGU9PmUuaW5zdHJ1bWVudD8udW5saW5rRnJvbSh0aGlzKSl9ZGVsZXRlWm9uZShlKXt0aGlzLnpvbmVzW2VdPy5pbnN0cnVtZW50Py51bmxpbmtGcm9tKHRoaXMpLHRoaXMuem9uZXMuc3BsaWNlKGUsMSl9Y3JlYXRlWm9uZShlKXtsZXQgQT1uZXcgQ2EodGhpcyxlKTtyZXR1cm4gdGhpcy56b25lcy5wdXNoKEEpLEF9cHJlbG9hZChlLEEpe2ZvcihsZXQgdD1lO3Q8QSsxO3QrKylmb3IobGV0IG49MDtuPDEyODtuKyspdGhpcy5nZXRTeW50aGVzaXNEYXRhKHQsbikuZm9yRWFjaChzPT57cy5zYW1wbGUuZ2V0QXVkaW9EYXRhKCl9KX1tYXRjaGVzKGUpe3JldHVybiB0ZS5tYXRjaGVzKHRoaXMsZSl9Z2V0U2l6ZSgpe2xldCBlPXRoaXMuem9uZXMucmVkdWNlKCh0LG4pPT5uLm1vZHVsYXRvcnMubGVuZ3RoK3QsMCkrdGhpcy5nbG9iYWxab25lLm1vZHVsYXRvcnMubGVuZ3RoLEE9dGhpcy56b25lcy5yZWR1Y2UoKHQsbik9Pm4uZ2V0R2VuQ291bnQoKSt0LDApK3RoaXMuZ2xvYmFsWm9uZS5nZXRHZW5Db3VudCgpO3JldHVybnttb2Q6ZSptZSxiYWc6KHRoaXMuem9uZXMubGVuZ3RoKzEpKkp0LGdlbjpBKkN0LGhkcjpkYX19Z2V0U3ludGhlc2lzRGF0YShlLEEpe2lmKHRoaXMuem9uZXMubGVuZ3RoPDEpcmV0dXJuW107ZnVuY3Rpb24gdChkLGgpe3JldHVybiBoPj1kLm1pbiYmaDw9ZC5tYXh9ZnVuY3Rpb24gbihkLGgpe2QucHVzaCguLi5oLmZpbHRlcihDPT4hZC5maW5kKFE9PlEuZ2VuZXJhdG9yVHlwZT09PUMuZ2VuZXJhdG9yVHlwZSkpKX1mdW5jdGlvbiBzKGQsaCl7ZC5wdXNoKC4uLmguZmlsdGVyKEM9PiFkLmZpbmQoUT0+RUEuaXNJZGVudGljYWwoQyxRKSkpKX1sZXQgYT1bXSxyPVsuLi50aGlzLmdsb2JhbFpvbmUuZ2VuZXJhdG9yc10sST1bLi4udGhpcy5nbG9iYWxab25lLm1vZHVsYXRvcnNdLG89dGhpcy5nbG9iYWxab25lLmtleVJhbmdlLGc9dGhpcy5nbG9iYWxab25lLnZlbFJhbmdlO3JldHVybiB0aGlzLnpvbmVzLmZpbHRlcihkPT50KGQuaGFzS2V5UmFuZ2U/ZC5rZXlSYW5nZTpvLGUpJiZ0KGQuaGFzVmVsUmFuZ2U/ZC52ZWxSYW5nZTpnLEEpKS5mb3JFYWNoKGQ9PntsZXQgaD1kLmluc3RydW1lbnQ7aWYoIWh8fGguem9uZXMubGVuZ3RoPDEpcmV0dXJuO2xldCBDPWQuZ2VuZXJhdG9ycyxRPWQubW9kdWxhdG9ycyxtPVsuLi5oLmdsb2JhbFpvbmUuZ2VuZXJhdG9yc10seT1bLi4uaC5nbG9iYWxab25lLm1vZHVsYXRvcnNdLEY9aC5nbG9iYWxab25lLmtleVJhbmdlLGs9aC5nbG9iYWxab25lLnZlbFJhbmdlO2guem9uZXMuZmlsdGVyKHY9PnQodi5oYXNLZXlSYW5nZT92LmtleVJhbmdlOkYsZSkmJnQodi5oYXNWZWxSYW5nZT92LnZlbFJhbmdlOmssQSkpLmZvckVhY2godj0+e2xldCBMPVsuLi52LmdlbmVyYXRvcnNdLEU9Wy4uLnYubW9kdWxhdG9yc107bihDLHIpLG4oTCxtKSxzKFEsSSkscyhFLHkpLHMoRSx0aGlzLnBhcmVudFNvdW5kQmFuay5kZWZhdWx0TW9kdWxhdG9ycyk7bGV0IFg9Wy4uLkVdO2ZvcihsZXQgTyBvZiBRKXtsZXQgbkE9WC5maW5kSW5kZXgoJD0+RUEuaXNJZGVudGljYWwoTywkKSk7bkEhPT0tMT9YW25BXT1YW25BXS5zdW1UcmFuc2Zvcm0oTyk6WC5wdXNoKE8pfXYuc2FtcGxlJiZhLnB1c2goe2luc3RydW1lbnRHZW5lcmF0b3JzOkwscHJlc2V0R2VuZXJhdG9yczpDLG1vZHVsYXRvcnM6WCxzYW1wbGU6di5zYW1wbGV9KX0pfSksYX10b01JRElTdHJpbmcoKXtyZXR1cm4gdGUudG9NSURJU3RyaW5nKHRoaXMpfXRvU3RyaW5nKCl7cmV0dXJuIHRlLnRvTmFtZWRNSURJU3RyaW5nKHRoaXMpfXRvRmxhdHRlbmVkSW5zdHJ1bWVudCgpe2xldCBlPShnLEIpPT57Zy5wdXNoKC4uLkIuZmlsdGVyKGQ9PiFnLmZpbmQoaD0+aC5nZW5lcmF0b3JUeXBlPT09ZC5nZW5lcmF0b3JUeXBlKSkpfSxBPShnLEIpPT4oe21pbjpNYXRoLm1heChnLm1pbixCLm1pbiksbWF4Ok1hdGgubWluKGcubWF4LEIubWF4KX0pLHQ9KGcsQik9PntnLnB1c2goLi4uQi5maWx0ZXIoZD0+IWcuZmluZChoPT5FQS5pc0lkZW50aWNhbChkLGgpKSkpfSxuPW5ldyBkdDtuLm5hbWU9dGhpcy5uYW1lO2xldCBzPVtdLGE9W10scj10aGlzLmdsb2JhbFpvbmU7cy5wdXNoKC4uLnIuZ2VuZXJhdG9ycyksYS5wdXNoKC4uLnIubW9kdWxhdG9ycyk7bGV0IEk9ci5rZXlSYW5nZSxvPXIudmVsUmFuZ2U7Zm9yKGxldCBnIG9mIHRoaXMuem9uZXMpe2lmKCFnLmluc3RydW1lbnQpdGhyb3cgbmV3IEVycm9yKCJObyBpbnN0cnVtZW50IGluIGEgcHJlc2V0IHpvbmUuIik7bGV0IEI9Zy5rZXlSYW5nZTtnLmhhc0tleVJhbmdlfHwoQj1JKTtsZXQgZD1nLnZlbFJhbmdlO2cuaGFzVmVsUmFuZ2V8fChkPW8pO2xldCBoPWcuZ2VuZXJhdG9ycy5tYXAoTD0+bmV3IEZBKEwuZ2VuZXJhdG9yVHlwZSxMLmdlbmVyYXRvclZhbHVlKSk7ZShoLHMpO2xldCBDPVsuLi5nLm1vZHVsYXRvcnNdO3QoQyxhKTtsZXQgUT1nLmluc3RydW1lbnQsbT1RLnpvbmVzLHk9W10sRj1bXSxrPVEuZ2xvYmFsWm9uZTt5LnB1c2goLi4uay5nZW5lcmF0b3JzKSxGLnB1c2goLi4uay5tb2R1bGF0b3JzKTtsZXQgRD1rLmtleVJhbmdlLHY9ay52ZWxSYW5nZTtmb3IobGV0IEwgb2YgbSl7aWYoIUwuc2FtcGxlKXRocm93IG5ldyBFcnJvcigiTm8gc2FtcGxlIGluIGFuIGluc3RydW1lbnQgem9uZS4iKTtsZXQgRT1MLmtleVJhbmdlO0wuaGFzS2V5UmFuZ2V8fChFPUQpO2xldCBYPUwudmVsUmFuZ2U7aWYoTC5oYXNWZWxSYW5nZXx8KFg9diksRT1BKEUsQiksWD1BKFgsZCksRS5tYXg8RS5taW58fFgubWF4PFgubWluKWNvbnRpbnVlO2xldCBPPUwuZ2VuZXJhdG9ycy5tYXAoej0+bmV3IEZBKHouZ2VuZXJhdG9yVHlwZSx6LmdlbmVyYXRvclZhbHVlKSk7ZShPLHkpO2xldCBuQT1bLi4uTC5tb2R1bGF0b3JzXTt0KG5BLEYpO2xldCAkPVsuLi5uQV07Zm9yKGxldCB6IG9mIEMpe2xldCB0QT0kLmZpbmRJbmRleChpQT0+RUEuaXNJZGVudGljYWwoeixpQSkpO3RBIT09LTE/JFt0QV09JFt0QV0uc3VtVHJhbnNmb3JtKHopOiQucHVzaCh6KX1sZXQgVj1PLm1hcCh6PT5uZXcgRkEoei5nZW5lcmF0b3JUeXBlLHouZ2VuZXJhdG9yVmFsdWUpKTtmb3IobGV0IHogb2YgaCl7aWYoei5nZW5lcmF0b3JUeXBlPT09aS52ZWxSYW5nZXx8ei5nZW5lcmF0b3JUeXBlPT09aS5rZXlSYW5nZXx8ei5nZW5lcmF0b3JUeXBlPT09aS5pbnN0cnVtZW50fHx6LmdlbmVyYXRvclR5cGU9PT1pLmVuZE9wZXJ8fHouZ2VuZXJhdG9yVHlwZT09PWkuc2FtcGxlTW9kZXMpY29udGludWU7bGV0IHRBPU8uZmluZEluZGV4KGlBPT5pQS5nZW5lcmF0b3JUeXBlPT09ei5nZW5lcmF0b3JUeXBlKTtpZih0QSE9PS0xKXtsZXQgaUE9Vlt0QV0uZ2VuZXJhdG9yVmFsdWUrei5nZW5lcmF0b3JWYWx1ZTtWW3RBXT1uZXcgRkEoei5nZW5lcmF0b3JUeXBlLGlBKX1lbHNle2xldCBpQT14W3ouZ2VuZXJhdG9yVHlwZV0uZGVmK3ouZ2VuZXJhdG9yVmFsdWU7Vi5wdXNoKG5ldyBGQSh6LmdlbmVyYXRvclR5cGUsaUEpKX19Vj1WLmZpbHRlcih6PT56LmdlbmVyYXRvclR5cGUhPT1pLnNhbXBsZUlEJiZ6LmdlbmVyYXRvclR5cGUhPT1pLmtleVJhbmdlJiZ6LmdlbmVyYXRvclR5cGUhPT1pLnZlbFJhbmdlJiZ6LmdlbmVyYXRvclR5cGUhPT1pLmVuZE9wZXImJnouZ2VuZXJhdG9yVHlwZSE9PWkuaW5zdHJ1bWVudCYmei5nZW5lcmF0b3JWYWx1ZSE9PXhbei5nZW5lcmF0b3JUeXBlXS5kZWYpO2xldCBxPW4uY3JlYXRlWm9uZShMLnNhbXBsZSk7cS5rZXlSYW5nZT1FLHEudmVsUmFuZ2U9WCxxLmtleVJhbmdlLm1pbj09PTAmJnEua2V5UmFuZ2UubWF4PT09MTI3JiYocS5rZXlSYW5nZS5taW49LTEpLHEudmVsUmFuZ2UubWluPT09MCYmcS52ZWxSYW5nZS5tYXg9PT0xMjcmJihxLnZlbFJhbmdlLm1pbj0tMSkscS5hZGRHZW5lcmF0b3JzKC4uLlYpLHEuYWRkTW9kdWxhdG9ycyguLi4kKX19cmV0dXJuIG59d3JpdGUoZSxBLHQsbixzLGEpe3AoYCVjV3JpdGluZyAke3RoaXMubmFtZX0uLi5gLGMuaW5mbyksa0Eobi5wZHRhLHRoaXMubmFtZS5zdWJzdHJpbmcoMCwyMCksMjApLGtBKG4ueGR0YSx0aGlzLm5hbWUuc3Vic3RyaW5nKDIwKSwyMCksSihuLnBkdGEsdGhpcy5wcm9ncmFtKTtsZXQgcj10aGlzLmJhbmtNU0I7dGhpcy5pc0dNR1NEcnVtP3I9MTI4OnRoaXMuYmFua01TQj09PTAmJihyPXRoaXMuYmFua0xTQiksSihuLnBkdGEsciksbi54ZHRhLmN1cnJlbnRJbmRleCs9NCxKKG4ucGR0YSxzLmhkciY2NTUzNSksSihuLnhkdGEscy5oZHI+PjE2KSxnQShuLnBkdGEsdGhpcy5saWJyYXJ5KSxnQShuLnBkdGEsdGhpcy5nZW5yZSksZ0Eobi5wZHRhLHRoaXMubW9ycGhvbG9neSksbi54ZHRhLmN1cnJlbnRJbmRleCs9MTIscy5oZHIrPXRoaXMuem9uZXMubGVuZ3RoKzEsdGhpcy5nbG9iYWxab25lLndyaXRlKGUsQSx0LHMsYSksdGhpcy56b25lcy5mb3JFYWNoKEk9Pkkud3JpdGUoZSxBLHQscyxhKSl9fTtmdW5jdGlvbiBEcyhlLEEpe2xldCB0O3JldHVybiBBP3Q9ZS5maW5kKG49Pm4uaXNYR0RydW1zKTp0PWUuZmluZChuPT5uLmlzR01HU0RydW0pLHR8fChlLmZpbmQobj0+bi5pc0FueURydW1zKT8/ZVswXSl9ZnVuY3Rpb24gUWEoZSxBLHQpe2lmKGUubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCJObyBwcmVzZXRzISIpO0EuaXNHTUdTRHJ1bSYmZkEuaXNTeXN0ZW1YRyh0KSYmKEE9ey4uLkEsaXNHTUdTRHJ1bTohMSxiYW5rTFNCOjAsYmFua01TQjpmQS5nZXREcnVtQmFuayh0KX0pO2xldHtpc0dNR1NEcnVtOm4sYmFua0xTQjpzLGJhbmtNU0I6YSxwcm9ncmFtOnJ9PUEsST1mQS5pc1N5c3RlbVhHKHQpLG89ZkEuaXNYR0RydW1zKGEpJiZJLGc9ZS5maW5kKEM9PkMubWF0Y2hlcyhBKSk7aWYoZyYmKCFvfHxvJiZnLmlzWEdEcnVtcykpcmV0dXJuIGc7bGV0IEI9Qz0+e3AoYCVjUHJlc2V0ICVjJHt0ZS50b01JRElTdHJpbmcoQSl9JWMgbm90IGZvdW5kLiAoJHt0fSkgUmVwbGFjZWQgd2l0aCAlYyR7Qy50b1N0cmluZygpfWAsYy53YXJuLGMudW5yZWNvZ25pemVkLGMud2FybixjLnZhbHVlKX07aWYobil7bGV0IEM9ZS5maW5kKFE9PlEuaXNHTUdTRHJ1bSYmUS5wcm9ncmFtPT09cik7cmV0dXJuIEN8fChDPWUuZmluZChRPT5RLmlzQW55RHJ1bXMmJlEucHJvZ3JhbT09PXIpLEMpPyhCKEMpLEMpOihDPURzKGUsITEpLEIoQyksQyl9aWYobyl7bGV0IEM9ZS5maW5kKFE9PlEucHJvZ3JhbT09PXImJlEuaXNYR0RydW1zKTtyZXR1cm4gQ3x8KEM9ZS5maW5kKFE9PlEuaXNBbnlEcnVtcyYmUS5wcm9ncmFtPT09ciksQyk/KEIoQyksQyk6KEM9RHMoZSwhMCksQihDKSxDKX1sZXQgZD1lLmZpbHRlcihDPT5DLnByb2dyYW09PT1yJiYhQy5pc0FueURydW1zKTtpZihkLmxlbmd0aDwxKXJldHVybiBCKGVbMF0pLGVbMF07aWYoST9nPWQuZmluZChDPT5DLmJhbmtMU0I9PT1zKTpnPWQuZmluZChDPT5DLmJhbmtNU0I9PT1hKSxnKXJldHVybiBCKGcpLGc7bGV0IGg9TWF0aC5tYXgoYSxzKTtyZXR1cm4gZz1kLmZpbmQoQz0+Qy5iYW5rTFNCPT09aHx8Qy5iYW5rTVNCPT09aCksZz8oQihnKSxnKTooQihkWzBdKSxkWzBdKX12YXIgWW89Y2xhc3MgZXh0ZW5kcyBwZXtjb25zdHJ1Y3RvcihlLEEpe3N1cGVyKGUucGFyZW50U291bmRCYW5rLGUuZ2xvYmFsWm9uZSksdGhpcy5iYW5rTVNCPWZBLmFkZEJhbmtPZmZzZXQoZS5iYW5rTVNCLEEsZS5pc1hHRHJ1bXMpLHRoaXMubmFtZT1lLm5hbWUsdGhpcy5iYW5rTFNCPWUuYmFua0xTQix0aGlzLmlzR01HU0RydW09ZS5pc0dNR1NEcnVtLHRoaXMucHJvZ3JhbT1lLnByb2dyYW0sdGhpcy5nZW5yZT1lLmdlbnJlLHRoaXMubW9ycGhvbG9neT1lLm1vcnBob2xvZ3ksdGhpcy5saWJyYXJ5PWUubGlicmFyeSx0aGlzLnpvbmVzPWUuem9uZXN9fSxQbz1jbGFzc3tzb3VuZEJhbmtMaXN0PVtdO3ByZXNldExpc3RDaGFuZ2VDYWxsYmFjaztzZWxlY3RhYmxlUHJlc2V0TGlzdD1bXTtjb25zdHJ1Y3RvcihlKXt0aGlzLnByZXNldExpc3RDaGFuZ2VDYWxsYmFjaz1lfV9wcmVzZXRMaXN0PVtdO2dldCBwcmVzZXRMaXN0KCl7cmV0dXJuWy4uLnRoaXMuX3ByZXNldExpc3RdfWdldCBwcmlvcml0eU9yZGVyKCl7cmV0dXJuIHRoaXMuc291bmRCYW5rTGlzdC5tYXAoZT0+ZS5pZCl9c2V0IHByaW9yaXR5T3JkZXIoZSl7dGhpcy5zb3VuZEJhbmtMaXN0LnNvcnQoKEEsdCk9PmUuaW5kZXhPZihBLmlkKS1lLmluZGV4T2YodC5pZCkpLHRoaXMuZ2VuZXJhdGVQcmVzZXRMaXN0KCl9ZGVsZXRlU291bmRCYW5rKGUpe2lmKHRoaXMuc291bmRCYW5rTGlzdC5sZW5ndGg9PT0wKXtzQSgiMSBzb3VuZGJhbmsgbGVmdC4gQWJvcnRpbmchIik7cmV0dXJufWxldCBBPXRoaXMuc291bmRCYW5rTGlzdC5maW5kSW5kZXgodD0+dC5pZD09PWUpO2lmKEE9PT0tMSl0aHJvdyBuZXcgRXJyb3IoYE5vIHNvdW5kIGJhbmsgd2l0aCBpZCAiJHtlfSJgKTt0aGlzLnNvdW5kQmFua0xpc3Quc3BsaWNlKEEsMSksdGhpcy5nZW5lcmF0ZVByZXNldExpc3QoKX1hZGRTb3VuZEJhbmsoZSxBLHQ9MCl7bGV0IG49dGhpcy5zb3VuZEJhbmtMaXN0LmZpbmQocz0+cy5pZD09PUEpO24hPT12b2lkIDA/KG4uc291bmRCYW5rPWUsbi5iYW5rT2Zmc2V0PXQpOnRoaXMuc291bmRCYW5rTGlzdC5wdXNoKHtpZDpBLHNvdW5kQmFuazplLGJhbmtPZmZzZXQ6dH0pLHRoaXMuZ2VuZXJhdGVQcmVzZXRMaXN0KCl9Z2V0UHJlc2V0KGUsQSl7aWYodGhpcy5zb3VuZEJhbmtMaXN0Lmxlbmd0aDwxKXRocm93IG5ldyBFcnJvcigiTm8gc291bmQgYmFua3MhIERpZCB5b3UgZm9yZ2V0IHRvIGFkZCBvbmU/Iik7cmV0dXJuIFFhKHRoaXMuc2VsZWN0YWJsZVByZXNldExpc3QsZSxBKX1kZXN0cm95KCl7dGhpcy5zb3VuZEJhbmtMaXN0LmZvckVhY2goZT0+e2Uuc291bmRCYW5rLmRlc3Ryb3lTb3VuZEJhbmsoKX0pLHRoaXMuc291bmRCYW5rTGlzdD1bXX1nZW5lcmF0ZVByZXNldExpc3QoKXtsZXQgZT1uZXcgQXJyYXksQT1uZXcgU2V0O3RoaXMuc291bmRCYW5rTGlzdC5mb3JFYWNoKHQ9PntsZXQgbj10LnNvdW5kQmFuayxzPXQuYmFua09mZnNldDtuLnByZXNldHMuZm9yRWFjaChhPT57bGV0IHI9bmV3IFlvKGEscyk7QS5oYXMoci50b01JRElTdHJpbmcoKSl8fChBLmFkZChyLnRvTUlESVN0cmluZygpKSxlLnB1c2gocikpfSl9KSxlLnNvcnQodGUuc29ydGVyLmJpbmQodGUpKSx0aGlzLnNlbGVjdGFibGVQcmVzZXRMaXN0PWUsdGhpcy5fcHJlc2V0TGlzdD1lLm1hcCh0PT4oe2JhbmtNU0I6dC5iYW5rTVNCLGJhbmtMU0I6dC5iYW5rTFNCLHByb2dyYW06dC5wcm9ncmFtLGlzR01HU0RydW06dC5pc0dNR1NEcnVtLG5hbWU6dC5uYW1lLGlzQW55RHJ1bXM6dC5pc0FueURydW1zfSkpLHRoaXMucHJlc2V0TGlzdENoYW5nZUNhbGxiYWNrKCl9fSxKbz0uMDUscW89MzA3MCxLbz0yZTMsd3M9TWF0aC5QSS8yLE50PS01MDAsdWE9NTAwLG9zPXVhLU50LGZhPW5ldyBGbG9hdDMyQXJyYXkob3MrMSksbWE9bmV3IEZsb2F0MzJBcnJheShvcysxKTtmb3IobGV0IGU9TnQ7ZTw9dWE7ZSsrKXtsZXQgQT0oZS1OdCkvb3MsdD1lLU50O2ZhW3RdPU1hdGguY29zKHdzKkEpLG1hW3RdPU1hdGguc2luKHdzKkEpfWZ1bmN0aW9uIE9vKGUsQSx0LG4scyxhLHIsSSxvKXtpZihpc05hTihBWzBdKSlyZXR1cm47bGV0IGc7ZS5vdmVycmlkZVBhbj9nPWUub3ZlcnJpZGVQYW46KGUuY3VycmVudFBhbis9KGUubW9kdWxhdGVkR2VuZXJhdG9yc1tpLnBhbl0tZS5jdXJyZW50UGFuKSp0aGlzLnN5bnRoUHJvcHMucGFuU21vb3RoaW5nRmFjdG9yLGc9ZS5jdXJyZW50UGFuKTtsZXQgQj10aGlzLnN5bnRoUHJvcHMubWFzdGVyUGFyYW1ldGVycy5tYXN0ZXJHYWluKnRoaXMuc3ludGhQcm9wcy5taWRpVm9sdW1lKmUuZ2FpbixkPX5+KGcrNTAwKSxoPWZhW2RdKkIqdGhpcy5zeW50aFByb3BzLnBhbkxlZnQsQz1tYVtkXSpCKnRoaXMuc3ludGhQcm9wcy5wYW5SaWdodDtpZih0aGlzLnN5bnRoLmVuYWJsZUVmZmVjdHMpe2xldCBRPWUubW9kdWxhdGVkR2VuZXJhdG9yc1tpLnJldmVyYkVmZmVjdHNTZW5kXTtpZihRPjApe2xldCB5PXRoaXMuc3ludGhQcm9wcy5tYXN0ZXJQYXJhbWV0ZXJzLnJldmVyYkdhaW4qdGhpcy5zeW50aFByb3BzLnJldmVyYlNlbmQqQiooUS9xbyk7Zm9yKGxldCBGPTA7RjxBLmxlbmd0aDtGKyspe2xldCBrPUYrbztzW2tdKz15KkFbRl0sYVtrXSs9eSpBW0ZdfX1sZXQgbT1lLm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5jaG9ydXNFZmZlY3RzU2VuZF07aWYobT4wKXtsZXQgeT10aGlzLnN5bnRoUHJvcHMubWFzdGVyUGFyYW1ldGVycy5jaG9ydXNHYWluKnRoaXMuc3ludGhQcm9wcy5jaG9ydXNTZW5kKihtL0tvKSxGPWgqeSxrPUMqeTtmb3IobGV0IEQ9MDtEPEEubGVuZ3RoO0QrKyl7bGV0IHY9RCtvO3Jbdl0rPUYqQVtEXSxJW3ZdKz1rKkFbRF19fX1pZihoPjApZm9yKGxldCBRPTA7UTxBLmxlbmd0aDtRKyspdFtRK29dKz1oKkFbUV07aWYoQz4wKWZvcihsZXQgUT0wO1E8QS5sZW5ndGg7USsrKW5bUStvXSs9QypBW1FdfXZhciBWbz0uMSxYdD1jbGFzcyBFdHtzdGF0aWMgY2FjaGVkQ29lZmZpY2llbnRzPVtdO3Jlc29uYW5jZUNiPTA7Y3VycmVudEluaXRpYWxGYz0xMzUwMDthMD0wO2ExPTA7YTI9MDthMz0wO2E0PTA7eDE9MDt4Mj0wO3kxPTA7eTI9MDtsYXN0VGFyZ2V0Q3V0b2ZmPTEvMDtpbml0aWFsaXplZD0hMTtzYW1wbGVSYXRlO21heEN1dG9mZjtjb25zdHJ1Y3RvcihBKXt0aGlzLnNhbXBsZVJhdGU9QSx0aGlzLm1heEN1dG9mZj1BKi40NX1zdGF0aWMgYXBwbHkoQSx0LG4scyl7bGV0IGE9QS5tb2R1bGF0ZWRHZW5lcmF0b3JzW2kuaW5pdGlhbEZpbHRlckZjXSxyPUEuZmlsdGVyO3IuaW5pdGlhbGl6ZWQ/ci5jdXJyZW50SW5pdGlhbEZjKz0oYS1yLmN1cnJlbnRJbml0aWFsRmMpKnM6KHIuaW5pdGlhbGl6ZWQ9ITAsci5jdXJyZW50SW5pdGlhbEZjPWEpO2xldCBJPXIuY3VycmVudEluaXRpYWxGYytuLG89QS5tb2R1bGF0ZWRHZW5lcmF0b3JzW2kuaW5pdGlhbEZpbHRlclFdO2lmKHIuY3VycmVudEluaXRpYWxGYz4xMzQ5OSYmST4xMzQ5OSYmbz09PTApe3IuY3VycmVudEluaXRpYWxGYz0xMzUwMDtyZXR1cm59KE1hdGguYWJzKHIubGFzdFRhcmdldEN1dG9mZi1JKT4xfHxyLnJlc29uYW5jZUNiIT09bykmJihyLmxhc3RUYXJnZXRDdXRvZmY9SSxyLnJlc29uYW5jZUNiPW8sRXQuY2FsY3VsYXRlQ29lZmZpY2llbnRzKHIsSSkpO2ZvcihsZXQgZz0wO2c8dC5sZW5ndGg7ZysrKXtsZXQgQj10W2ddLGQ9ci5hMCpCK3IuYTEqci54MStyLmEyKnIueDItci5hMypyLnkxLXIuYTQqci55MjtyLngyPXIueDEsci54MT1CLHIueTI9ci55MSxyLnkxPWQsdFtnXT1kfX1zdGF0aWMgY2FsY3VsYXRlQ29lZmZpY2llbnRzKEEsdCl7dD1+fnQ7bGV0IG49QS5yZXNvbmFuY2VDYixzPUV0LmNhY2hlZENvZWZmaWNpZW50cz8uW25dPy5bdF07aWYocyE9PXZvaWQgMCl7QS5hMD1zLmEwLEEuYTE9cy5hMSxBLmEyPXMuYTIsQS5hMz1zLmEzLEEuYTQ9cy5hNDtyZXR1cm59bGV0IGE9Tm4odCk7YT1NYXRoLm1pbihhLEEubWF4Q3V0b2ZmKTtsZXQgcj1uLzEwLEk9QWUoLShyLTMuMDEpKSxvPTEvTWF0aC5zcXJ0KEFlKC1yKSksZz0yKk1hdGguUEkqYS9BLnNhbXBsZVJhdGUsQj1NYXRoLmNvcyhnKSxkPU1hdGguc2luKGcpLygyKkkpLGg9KDEtQikqbyxDPWgvMixRPUMsbT0xK2QseT0tMipCLEY9MS1kLGs9e2EwOkMvbSxhMTpoL20sYTI6US9tLGEzOnkvbSxhNDpGL219O0EuYTA9ay5hMCxBLmExPWsuYTEsQS5hMj1rLmEyLEEuYTM9ay5hMyxBLmE0PWsuYTQsRXQuY2FjaGVkQ29lZmZpY2llbnRzW25dPz89W10sRXQuY2FjaGVkQ29lZmZpY2llbnRzW25dW3RdPWt9fSxIbj1uZXcgWHQoNDQxMDApO0huLnJlc29uYW5jZUNiPTA7Zm9yKGxldCBlPTE1MDA7ZTwxMzUwMDtlKyspSG4uY3VycmVudEluaXRpYWxGYz1lLFh0LmNhbGN1bGF0ZUNvZWZmaWNpZW50cyhIbixlKTt2YXIgRnM9e2VuYWJsZUV2ZW50U3lzdGVtOiEwLGluaXRpYWxUaW1lOjAsZW5hYmxlRWZmZWN0czohMH07ZnVuY3Rpb24gWG8oZSxBKXtsZXQgdD0wO3JldHVybiBlLmRydW1DaGFubmVsJiYodCs9NSksQS5pc0luUmVsZWFzZSYmKHQtPTUpLHQrPUEudmVsb2NpdHkvMjUsdC09QS52b2x1bWVFbnZlbG9wZS5zdGF0ZSxBLmlzSW5SZWxlYXNlJiYodC09NSksdC09QS52b2x1bWVFbnZlbG9wZS5jdXJyZW50QXR0ZW51YXRpb25EYi81MCx0fWZ1bmN0aW9uIFpvKGUpe2xldCBBPVtdO2ZvcihsZXQgbiBvZiB0aGlzLm1pZGlDaGFubmVscylmb3IobGV0IHMgb2Ygbi52b2ljZXMpaWYoIXMuZmluaXNoZWQpe2xldCBhPVhvKG4scyk7QS5wdXNoKHtjaGFubmVsOm4sdm9pY2U6cyxwcmlvcml0eTphfSl9QS5zb3J0KChuLHMpPT5uLnByaW9yaXR5LXMucHJpb3JpdHkpO2xldCB0PUEuc2xpY2UoMCxlKTtmb3IobGV0e2NoYW5uZWw6bix2b2ljZTpzfW9mIHQpe2xldCBhPW4udm9pY2VzLmluZGV4T2Yocyk7YT4tMSYmbi52b2ljZXMuc3BsaWNlKGEsMSl9fXZhciBTbj0xLFluPW5ldyBGbG9hdDMyQXJyYXkoMWUzKTtmb3IobGV0IGU9MDtlPFluLmxlbmd0aDtlKyspWW5bZV09SWEoMCxRQS5jb252ZXgsZS8xZTMpO3ZhciBfZT1jbGFzcyBQbnthdHRhY2tEdXJhdGlvbj0wO2RlY2F5RHVyYXRpb249MDtob2xkRHVyYXRpb249MDtyZWxlYXNlRHVyYXRpb249MDtzdXN0YWluTGV2ZWw9MDtkZWxheUVuZD0wO2F0dGFja0VuZD0wO2hvbGRFbmQ9MDtkZWNheUVuZD0wO3JlbGVhc2VTdGFydExldmVsPTA7Y3VycmVudFZhbHVlPTA7c3RhdGljIHN0YXJ0UmVsZWFzZShBKXtQbi5yZWNhbGN1bGF0ZShBKX1zdGF0aWMgcmVjYWxjdWxhdGUoQSl7bGV0IHQ9QS5tb2R1bGF0aW9uRW52ZWxvcGU7QS5pc0luUmVsZWFzZSYmKHQucmVsZWFzZVN0YXJ0TGV2ZWw9UG4uZ2V0VmFsdWUoQSxBLnJlbGVhc2VTdGFydFRpbWUsITApKSx0LnN1c3RhaW5MZXZlbD0xLUEubW9kdWxhdGVkR2VuZXJhdG9yc1tpLnN1c3RhaW5Nb2RFbnZdLzFlMyx0LmF0dGFja0R1cmF0aW9uPVFlKEEubW9kdWxhdGVkR2VuZXJhdG9yc1tpLmF0dGFja01vZEVudl0pO2xldCBuPSg2MC1BLm1pZGlOb3RlKSpBLm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5rZXlOdW1Ub01vZEVudkRlY2F5XSxzPVFlKEEubW9kdWxhdGVkR2VuZXJhdG9yc1tpLmRlY2F5TW9kRW52XStuKTt0LmRlY2F5RHVyYXRpb249cyooMS10LnN1c3RhaW5MZXZlbCk7bGV0IGE9KDYwLUEubWlkaU5vdGUpKkEubW9kdWxhdGVkR2VuZXJhdG9yc1tpLmtleU51bVRvTW9kRW52SG9sZF07dC5ob2xkRHVyYXRpb249UWUoYStBLm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5ob2xkTW9kRW52XSk7bGV0IHI9UWUoTWF0aC5tYXgoQS5tb2R1bGF0ZWRHZW5lcmF0b3JzW2kucmVsZWFzZU1vZEVudl0sLTcyMDApKTt0LnJlbGVhc2VEdXJhdGlvbj1yKnQucmVsZWFzZVN0YXJ0TGV2ZWwsdC5kZWxheUVuZD1BLnN0YXJ0VGltZStRZShBLm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5kZWxheU1vZEVudl0pLHQuYXR0YWNrRW5kPXQuZGVsYXlFbmQrdC5hdHRhY2tEdXJhdGlvbix0LmhvbGRFbmQ9dC5hdHRhY2tFbmQrdC5ob2xkRHVyYXRpb24sdC5kZWNheUVuZD10LmhvbGRFbmQrdC5kZWNheUR1cmF0aW9ufXN0YXRpYyBnZXRWYWx1ZShBLHQsbj0hMSl7bGV0IHM9QS5tb2R1bGF0aW9uRW52ZWxvcGU7cmV0dXJuIEEuaXNJblJlbGVhc2UmJiFuP3MucmVsZWFzZVN0YXJ0TGV2ZWw9PT0wPzA6TWF0aC5tYXgoMCwoMS0odC1BLnJlbGVhc2VTdGFydFRpbWUpL3MucmVsZWFzZUR1cmF0aW9uKSpzLnJlbGVhc2VTdGFydExldmVsKToodDxzLmRlbGF5RW5kP3MuY3VycmVudFZhbHVlPTA6dDxzLmF0dGFja0VuZD9zLmN1cnJlbnRWYWx1ZT1Zblt+figoMS0ocy5hdHRhY2tFbmQtdCkvcy5hdHRhY2tEdXJhdGlvbikqMWUzKV06dDxzLmhvbGRFbmQ/cy5jdXJyZW50VmFsdWU9U246dDxzLmRlY2F5RW5kP3MuY3VycmVudFZhbHVlPSgxLShzLmRlY2F5RW5kLXQpL3MuZGVjYXlEdXJhdGlvbikqKHMuc3VzdGFpbkxldmVsLVNuKStTbjpzLmN1cnJlbnRWYWx1ZT1zLnN1c3RhaW5MZXZlbCxzLmN1cnJlbnRWYWx1ZSl9fSxTYT1jbGFzc3tzYW1wbGVEYXRhO3BsYXliYWNrU3RlcD0wO2N1cnNvcj0wO3Jvb3RLZXk9MDtsb29wU3RhcnQ9MDtsb29wRW5kPTA7ZW5kPTA7bG9vcGluZ01vZGU9MDtpc0xvb3Bpbmc9ITE7Y29uc3RydWN0b3IoZSxBLHQsbixzLGEscixJKXt0aGlzLnNhbXBsZURhdGE9ZSx0aGlzLnBsYXliYWNrU3RlcD1BLHRoaXMuY3Vyc29yPXQsdGhpcy5yb290S2V5PW4sdGhpcy5sb29wU3RhcnQ9cyx0aGlzLmxvb3BFbmQ9YSx0aGlzLmVuZD1yLHRoaXMubG9vcGluZ01vZGU9SSx0aGlzLmlzTG9vcGluZz10aGlzLmxvb3BpbmdNb2RlPT09MXx8dGhpcy5sb29waW5nTW9kZT09PTN9fSx6bz0tMjMyMCxXbz0tMTEzMCxKbj1jbGFzcyBwYXtzYW1wbGU7ZmlsdGVyO2dhaW49MTtnZW5lcmF0b3JzO21vZHVsYXRvcnM9W107cmVzb25hbmNlT2Zmc2V0PTA7bW9kdWxhdGVkR2VuZXJhdG9ycztmaW5pc2hlZD0hMTtpc0luUmVsZWFzZT0hMTt2ZWxvY2l0eT0wO21pZGlOb3RlPTA7cHJlc3N1cmU9MDt0YXJnZXRLZXk9MDttb2R1bGF0aW9uRW52ZWxvcGU9bmV3IF9lO3ZvbHVtZUVudmVsb3BlO3N0YXJ0VGltZT0wO3JlbGVhc2VTdGFydFRpbWU9MS8wO2N1cnJlbnRUdW5pbmdDZW50cz0wO2N1cnJlbnRUdW5pbmdDYWxjdWxhdGVkPTE7Y3VycmVudFBhbj0wO3JlYWxLZXk7cG9ydGFtZW50b0Zyb21LZXk9LTE7cG9ydGFtZW50b0R1cmF0aW9uPTA7b3ZlcnJpZGVQYW49MDtleGNsdXNpdmVDbGFzcz0wO2NvbnN0cnVjdG9yKEEsdCxuLHMsYSxyLEksbyxnKXt0aGlzLnNhbXBsZT10LHRoaXMuZ2VuZXJhdG9ycz1vLHRoaXMuZXhjbHVzaXZlQ2xhc3M9dGhpcy5nZW5lcmF0b3JzW2kuZXhjbHVzaXZlQ2xhc3NdLHRoaXMubW9kdWxhdGVkR2VuZXJhdG9ycz1uZXcgSW50MTZBcnJheShvKSx0aGlzLm1vZHVsYXRvcnM9Zyx0aGlzLmZpbHRlcj1uZXcgWHQoQSksdGhpcy52ZWxvY2l0eT1zLHRoaXMubWlkaU5vdGU9bix0aGlzLnN0YXJ0VGltZT1hLHRoaXMudGFyZ2V0S2V5PXIsdGhpcy5yZWFsS2V5PUksdGhpcy52b2x1bWVFbnZlbG9wZT1uZXcgYmUoQSxvW2kuc3VzdGFpblZvbEVudl0pfXN0YXRpYyBjb3B5RnJvbShBLHQsbil7bGV0IHM9QS5zYW1wbGUsYT1uZXcgU2Eocy5zYW1wbGVEYXRhLHMucGxheWJhY2tTdGVwLHMuY3Vyc29yLHMucm9vdEtleSxzLmxvb3BTdGFydCxzLmxvb3BFbmQscy5lbmQscy5sb29waW5nTW9kZSk7cmV0dXJuIG5ldyBwYShBLnZvbHVtZUVudmVsb3BlLnNhbXBsZVJhdGUsYSxBLm1pZGlOb3RlLEEudmVsb2NpdHksdCxBLnRhcmdldEtleSxuLG5ldyBJbnQxNkFycmF5KEEuZ2VuZXJhdG9ycyksQS5tb2R1bGF0b3JzLm1hcChFQS5jb3B5RnJvbS5iaW5kKEVBKSkpfWV4Y2x1c2l2ZVJlbGVhc2UoQSl7dGhpcy5yZWxlYXNlKEEsV2EpLHRoaXMubW9kdWxhdGVkR2VuZXJhdG9yc1tpLnJlbGVhc2VWb2xFbnZdPXpvLHRoaXMubW9kdWxhdGVkR2VuZXJhdG9yc1tpLnJlbGVhc2VNb2RFbnZdPVdvLGJlLnJlY2FsY3VsYXRlKHRoaXMpLF9lLnJlY2FsY3VsYXRlKHRoaXMpfXJlbGVhc2UoQSx0PXphKXt0aGlzLnJlbGVhc2VTdGFydFRpbWU9QSx0aGlzLnJlbGVhc2VTdGFydFRpbWUtdGhpcy5zdGFydFRpbWU8dCYmKHRoaXMucmVsZWFzZVN0YXJ0VGltZT10aGlzLnN0YXJ0VGltZSt0KX19O2Z1bmN0aW9uIF9vKGUsQSx0LG4pe2xldCBzPWUuZ2V0U3ludGhlc2lzRGF0YShBLHQpLnJlZHVjZSgoYSxyKT0+e2lmKHIuc2FtcGxlLmdldEF1ZGlvRGF0YSgpPT09dm9pZCAwKXJldHVybiBzQShgRGlzY2FyZGluZyBpbnZhbGlkIHNhbXBsZTogJHtyLnNhbXBsZS5uYW1lfWApLGE7bGV0IEk9bmV3IEludDE2QXJyYXkoTW4pO2ZvcihsZXQgbT0wO208NjA7bSsrKUlbbV09eG8obSxyLnByZXNldEdlbmVyYXRvcnMsci5pbnN0cnVtZW50R2VuZXJhdG9ycyk7SVtpLmluaXRpYWxBdHRlbnVhdGlvbl09TWF0aC5mbG9vcihJW2kuaW5pdGlhbEF0dGVudWF0aW9uXSouNCk7bGV0IG89ci5zYW1wbGUub3JpZ2luYWxLZXk7SVtpLm92ZXJyaWRpbmdSb290S2V5XT4tMSYmKG89SVtpLm92ZXJyaWRpbmdSb290S2V5XSk7bGV0IGc9QTtJW2kua2V5TnVtXT4tMSYmKGc9SVtpLmtleU51bV0pO2xldCBCPXIuc2FtcGxlLmxvb3BTdGFydCxkPXIuc2FtcGxlLmxvb3BFbmQsaD1JW2kuc2FtcGxlTW9kZXNdLEM9ci5zYW1wbGUuZ2V0QXVkaW9EYXRhKCksUT1uZXcgU2EoQyxyLnNhbXBsZS5zYW1wbGVSYXRlL3RoaXMuc2FtcGxlUmF0ZSpNYXRoLnBvdygyLHIuc2FtcGxlLnBpdGNoQ29ycmVjdGlvbi8xMjAwKSwwLG8sQixkLE1hdGguZmxvb3IoQy5sZW5ndGgpLTEsaCk7cmV0dXJuIElbaS52ZWxvY2l0eV0+LTEmJih0PUlbaS52ZWxvY2l0eV0pLGEucHVzaChuZXcgSm4odGhpcy5zYW1wbGVSYXRlLFEsQSx0LHRoaXMuY3VycmVudFN5bnRoVGltZSxnLG4sSSxyLm1vZHVsYXRvcnMubWFwKEVBLmNvcHlGcm9tLmJpbmQoRUEpKSkpLGF9LFtdKTtyZXR1cm4gdGhpcy5zZXRDYWNoZWRWb2ljZShlLEEsdCxzKSxzLm1hcChhPT5Kbi5jb3B5RnJvbShhLHRoaXMuY3VycmVudFN5bnRoVGltZSxuKSl9ZnVuY3Rpb24gam8oZSxBLHQsbil7bGV0IHM9dGhpcy5taWRpQ2hhbm5lbHNbZV0sYT10aGlzLmtleU1vZGlmaWVyTWFuYWdlci5oYXNPdmVycmlkZVBhdGNoKGUsQSkscj1zLnByZXNldDtpZighcilyZXR1cm4gc0EoYE5vIHByZXNldCBmb3IgY2hhbm5lbCAke2V9IWApLFtdO2xldCBJPXsuLi5yfTthJiYoST10aGlzLmtleU1vZGlmaWVyTWFuYWdlci5nZXRQYXRjaChlLEEpKTtsZXQgbz10aGlzLmdldENhY2hlZFZvaWNlKEksQSx0KTtyZXR1cm4gbyE9PXZvaWQgMD9vLm1hcChnPT5Kbi5jb3B5RnJvbShnLHRoaXMuY3VycmVudFN5bnRoVGltZSxuKSk6KGEmJihyPXRoaXMuc291bmRCYW5rTWFuYWdlci5nZXRQcmVzZXQoSSx0aGlzLnByaXZhdGVQcm9wcy5tYXN0ZXJQYXJhbWV0ZXJzLm1pZGlTeXN0ZW0pKSx0aGlzLmdldFZvaWNlc0ZvclByZXNldChyLEEsdCxuKSl9ZnVuY3Rpb24gR3MoZSxBLHQpe2xldCBuPWUscz1BPDw3fHQ7cmV0dXJuIGU9PT0xMjcmJkE9PT0xMjcmJnQ9PT0xMjc/e21pZGlOb3RlOi0xLGNlbnRUdW5pbmc6bnVsbH06e21pZGlOb3RlOm4sY2VudFR1bmluZzpzKi4wMDYxfX1mdW5jdGlvbiAkbyhlLEE9MCl7bGV0IHQ9ZVswXTtpZih0aGlzLnByaXZhdGVQcm9wcy5tYXN0ZXJQYXJhbWV0ZXJzLmRldmljZUlEIT09QmUmJmVbMV0hPT0xMjcmJnRoaXMucHJpdmF0ZVByb3BzLm1hc3RlclBhcmFtZXRlcnMuZGV2aWNlSUQhPT1lWzFdKXJldHVybjtmdW5jdGlvbiBuKGEscixJLG8pe3AoYCVjQ2hhbm5lbCAlYyR7YX0lYyAke0l9LiAlYyR7cn0gJHtvfSVjLCB3aXRoICVjJHtNQShlKX1gLGMuaW5mbyxjLnJlY29nbml6ZWQsYy5pbmZvLGMudmFsdWUsYy5pbmZvLGMudmFsdWUpfWZ1bmN0aW9uIHMoKXtwKGAlY1VucmVjb2duaXplZCBSb2xhbmQgJWNHUyAlY1N5c0V4OiAlYyR7TUEoZSl9YCxjLndhcm4sYy5yZWNvZ25pemVkLGMud2FybixjLnVucmVjb2duaXplZCl9c3dpdGNoKHQpe2RlZmF1bHQ6cChgJWNVbnJlY29nbml6ZWQgU3lzRXg6ICVjJHtNQShlKX1gLGMud2FybixjLnVucmVjb2duaXplZCk7YnJlYWs7Y2FzZSAxMjY6Y2FzZSAxMjc6c3dpdGNoKGVbMl0pe2Nhc2UgNDp7bGV0IGE7c3dpdGNoKGVbM10pe2Nhc2UgMTp7bGV0IHI9ZVs1XTw8N3xlWzRdO3RoaXMuc2V0TUlESVZvbHVtZShyLzE2Mzg0KSxwKGAlY01hc3RlciBWb2x1bWUuIFZvbHVtZTogJWMke3J9YCxjLmluZm8sYy52YWx1ZSk7YnJlYWt9Y2FzZSAyOntsZXQgST0oKGVbNV08PDd8ZVs0XSktODE5MikvODE5Mjt0aGlzLnNldE1hc3RlclBhcmFtZXRlcigibWFzdGVyUGFuIixJKSxwKGAlY01hc3RlciBQYW4uIFBhbjogJWMke0l9YCxjLmluZm8sYy52YWx1ZSk7YnJlYWt9Y2FzZSAzOntsZXQgcj0oZVs1XTw8N3xlWzZdKS04MTkyO2E9TWF0aC5mbG9vcihyLzgxLjkyKSx0aGlzLnNldE1hc3RlclR1bmluZyhhKSxwKGAlY01hc3RlciBGaW5lIFR1bmluZy4gQ2VudHM6ICVjJHthfWAsYy5pbmZvLGMudmFsdWUpO2JyZWFrfWNhc2UgNDp7YT0oZVs1XS02NCkqMTAwLHRoaXMuc2V0TWFzdGVyVHVuaW5nKGEpLHAoYCVjTWFzdGVyIENvYXJzZSBUdW5pbmcuIENlbnRzOiAlYyR7YX1gLGMuaW5mbyxjLnZhbHVlKTticmVha31kZWZhdWx0OnAoYCVjVW5yZWNvZ25pemVkIE1JREkgRGV2aWNlIENvbnRyb2wgUmVhbC10aW1lIG1lc3NhZ2U6ICVjJHtNQShlKX1gLGMud2FybixjLnVucmVjb2duaXplZCl9YnJlYWt9Y2FzZSA5OmVbM109PT0xPyhwKCIlY0dNMSBzeXN0ZW0gb24iLGMuaW5mbyksdGhpcy5zZXRNYXN0ZXJQYXJhbWV0ZXIoIm1pZGlTeXN0ZW0iLCJnbSIpKTplWzNdPT09Mz8ocCgiJWNHTTIgc3lzdGVtIG9uIixjLmluZm8pLHRoaXMuc2V0TWFzdGVyUGFyYW1ldGVyKCJtaWRpU3lzdGVtIiwiZ20yIikpOihwKCIlY0dNIHN5c3RlbSBvZmYsIGRlZmF1bHRpbmcgdG8gR1MiLGMuaW5mbyksdGhpcy5zZXRNYXN0ZXJQYXJhbWV0ZXIoIm1pZGlTeXN0ZW0iLCJncyIpKTticmVhaztjYXNlIDg6e2xldCBhPTQ7c3dpdGNoKGVbM10pe2Nhc2UgMTp7bGV0IHI9ZVthKytdLEk9ZWUoZSwxNixhKTtpZihhKz0xNixlLmxlbmd0aDwzODQpe3NBKGBUaGUgQnVsayBUdW5pbmcgRHVtcCBpcyB0b28gc2hvcnQhICgke2UubGVuZ3RofSBieXRlcywgYXQgbGVhc3QgMzg0IGFyZSBleHBlY3RlZClgKTtyZXR1cm59Zm9yKGxldCBvPTA7bzwxMjg7bysrKXRoaXMucHJpdmF0ZVByb3BzLnR1bmluZ3Nbcl1bb109R3MoZVthKytdLGVbYSsrXSxlW2ErK10pO3AoYCVjQnVsayBUdW5pbmcgRHVtcCAlYyR7SX0lYyBQcm9ncmFtOiAlYyR7cn1gLGMuaW5mbyxjLnZhbHVlLGMuaW5mbyxjLnJlY29nbml6ZWQpO2JyZWFrfWNhc2UgMjpjYXNlIDc6e2VbM109PT03JiZhKys7bGV0IHI9ZVthKytdLEk9ZVthKytdO2ZvcihsZXQgbz0wO288STtvKyspdGhpcy5wcml2YXRlUHJvcHMudHVuaW5nc1tyXVtlW2ErK11dPUdzKGVbYSsrXSxlW2ErK10sZVthKytdKTtwKGAlY1NpbmdsZSBOb3RlIFR1bmluZy4gUHJvZ3JhbTogJWMke3J9JWMgS2V5cyBhZmZlY3RlZDogJWMke0l9YCxjLmluZm8sYy5yZWNvZ25pemVkLGMuaW5mbyxjLnJlY29nbml6ZWQpO2JyZWFrfWNhc2UgOTpjYXNlIDg6e2xldCByPW5ldyBJbnQ4QXJyYXkoMTIpO2lmKGVbM109PT04KWZvcihsZXQgST0wO0k8MTI7SSsrKXJbSV09ZVs3K0ldLTY0O2Vsc2UgZm9yKGxldCBJPTA7STwyNDtJKz0yKXtsZXQgbz0oZVs3K0ldPDw3fGVbOCtJXSktODE5MjtyW0kvMl09TWF0aC5mbG9vcihvLzgxLjkyKX0oZVs0XSYxKT09PTEmJnRoaXMubWlkaUNoYW5uZWxzWzE0K0FdLnNldE9jdGF2ZVR1bmluZyhyKSwoZVs0XT4+MSYxKT09PTEmJnRoaXMubWlkaUNoYW5uZWxzWzE1K0FdLnNldE9jdGF2ZVR1bmluZyhyKTtmb3IobGV0IEk9MDtJPDc7SSsrKShlWzVdPj5JJjEpPT09MSYmdGhpcy5taWRpQ2hhbm5lbHNbNytJK0FdLnNldE9jdGF2ZVR1bmluZyhyKTtmb3IobGV0IEk9MDtJPDc7SSsrKShlWzZdPj5JJjEpPT09MSYmdGhpcy5taWRpQ2hhbm5lbHNbSStBXS5zZXRPY3RhdmVUdW5pbmcocik7cChgJWNNSURJIE9jdGF2ZSBTY2FsZSAke2VbM109PT04PyIoMSBieXRlKSI6IigyIGJ5dGVzKSJ9IHR1bmluZyB2aWEgVHVuaW5nOiAlYyR7ci5qb2luKCIgIil9YCxjLmluZm8sYy52YWx1ZSk7YnJlYWt9ZGVmYXVsdDpwKGAlY1VucmVjb2duaXplZCBNSURJIFR1bmluZyBzdGFuZGFyZCBtZXNzYWdlOiAlYyR7TUEoZSl9YCxjLndhcm4sYy51bnJlY29nbml6ZWQpO2JyZWFrfWJyZWFrfWRlZmF1bHQ6cChgJWNVbnJlY29nbml6ZWQgTUlESSBSZWFsdGltZS9ub24gcmVhbHRpbWUgbWVzc2FnZTogJWMke01BKGUpfWAsYy53YXJuLGMudW5yZWNvZ25pemVkKX1icmVhaztjYXNlIDY1OmlmKGVbMl09PT02NiYmZVszXT09PTE4KXtsZXQgYT1lWzddO2lmKGVbNF09PT02NHx8ZVs0XT09PTAmJmVbNl09PT0xMjcpe2lmKChlWzVdJjE2KT4wKXtsZXQgcj1bOSwwLDEsMiwzLDQsNSw2LDcsOCwxMCwxMSwxMiwxMywxNCwxNV1bZVs1XSYxNV0rQSxJPXRoaXMubWlkaUNoYW5uZWxzW3JdO3N3aXRjaChlWzZdKXtkZWZhdWx0OnMoKTticmVhaztjYXNlIDIxOntsZXQgbz1hPjAmJmVbNV0+PjQ+MDtJLnNldEdTRHJ1bXMobykscChgJWNDaGFubmVsICVjJHtyfSVjICR7bz8iaXMgbm93IGEgZHJ1bSBjaGFubmVsIjoibm93IGlzbid0IGEgZHJ1bSBjaGFubmVsIn0lYyB2aWE6ICVjJHtNQShlKX1gLGMuaW5mbyxjLnZhbHVlLGMucmVjb2duaXplZCxjLmluZm8sYy52YWx1ZSk7cmV0dXJufWNhc2UgMjI6e2xldCBvPWEtNjQ7SS5zZXRDdXN0b21Db250cm9sbGVyKElBLmNoYW5uZWxLZXlTaGlmdCxvKSxuKHIsbywia2V5IHNoaWZ0Iiwia2V5cyIpO3JldHVybn1jYXNlIDI4OntsZXQgbz1hO289PT0wPyhJLnJhbmRvbVBhbj0hMCxwKGAlY1JhbmRvbSBwYW4gaXMgc2V0IHRvICVjT04lYyBmb3IgJWMke3J9YCxjLmluZm8sYy5yZWNvZ25pemVkLGMuaW5mbyxjLnZhbHVlKSk6KEkucmFuZG9tUGFuPSExLEkuY29udHJvbGxlckNoYW5nZShTLnBhbixvKSk7YnJlYWt9Y2FzZSAzMzpJLmNvbnRyb2xsZXJDaGFuZ2UoUy5jaG9ydXNEZXB0aCxhKTticmVhaztjYXNlIDM0OkkuY29udHJvbGxlckNoYW5nZShTLnJldmVyYkRlcHRoLGEpO2JyZWFrO2Nhc2UgNjQ6Y2FzZSA2NTpjYXNlIDY2OmNhc2UgNjc6Y2FzZSA2ODpjYXNlIDY5OmNhc2UgNzA6Y2FzZSA3MTpjYXNlIDcyOmNhc2UgNzM6Y2FzZSA3NDpjYXNlIDc1OntsZXQgbz1lLmxlbmd0aC05LGc9bmV3IEludDhBcnJheSgxMik7Zm9yKGxldCBkPTA7ZDxvO2QrKylnW2RdPWVbZCs3XS02NDtJLnNldE9jdGF2ZVR1bmluZyhnKTtsZXQgQj1hLTY0O24ocixnLmpvaW4oIiAiKSwib2N0YXZlIHNjYWxlIHR1bmluZyIsImNlbnRzIiksSS5zZXRUdW5pbmcoQik7YnJlYWt9fXJldHVybn1lbHNlIGlmKChlWzVdJjMyKT4wKXtsZXQgcj1bOSwwLDEsMiwzLDQsNSw2LDcsOCwxMCwxMSwxMiwxMywxNCwxNV1bZVs1XSYxNV0rQSxJPXRoaXMubWlkaUNoYW5uZWxzW3JdLG89YS02NCxnPW8vNjQsQj1hLzEyOCxkPShoLEMsUT0hMSk9Pntzd2l0Y2goZVs2XSYxNSl7Y2FzZSAwOmg9PT1tQStqLnBpdGNoV2hlZWw/KEkuY29udHJvbGxlckNoYW5nZShTLnJlZ2lzdGVyZWRQYXJhbWV0ZXJNU0IsMCksSS5jb250cm9sbGVyQ2hhbmdlKFMucmVnaXN0ZXJlZFBhcmFtZXRlckxTQiwwKSxJLmNvbnRyb2xsZXJDaGFuZ2UoUy5kYXRhRW50cnlNU0IsTWF0aC5mbG9vcihvKSkpOihJLnN5c0V4TW9kdWxhdG9ycy5zZXRNb2R1bGF0b3IoaCxpLmZpbmVUdW5lLG8qMTAwLFEpLG4ocixvLGAke0N9IHBpdGNoIGNvbnRyb2xgLCJzZW1pdG9uZXMiKSk7YnJlYWs7Y2FzZSAxOkkuc3lzRXhNb2R1bGF0b3JzLnNldE1vZHVsYXRvcihoLGkuaW5pdGlhbEZpbHRlckZjLGcqOTYwMCxRKSxuKHIsZyo5NjAwLGAke0N9IHBpdGNoIGNvbnRyb2xgLCJjZW50cyIpO2JyZWFrO2Nhc2UgMjpJLnN5c0V4TW9kdWxhdG9ycy5zZXRNb2R1bGF0b3IoaCxpLmluaXRpYWxBdHRlbnVhdGlvbixnKjk2MCxRKSxuKHIsZyo5NjAsYCR7Q30gYW1wbGl0dWRlYCwiY0IiKTticmVhaztjYXNlIDQ6SS5zeXNFeE1vZHVsYXRvcnMuc2V0TW9kdWxhdG9yKGgsaS52aWJMZm9Ub1BpdGNoLEIqNjAwLFEpLG4ocixCKjYwMCxgJHtDfSBMRk8xIHBpdGNoIGRlcHRoYCwiY2VudHMiKTticmVhaztjYXNlIDU6SS5zeXNFeE1vZHVsYXRvcnMuc2V0TW9kdWxhdG9yKGgsaS52aWJMZm9Ub0ZpbHRlckZjLEIqMjQwMCxRKSxuKHIsQioyNDAwLGAke0N9IExGTzEgZmlsdGVyIGRlcHRoYCwiY2VudHMiKTticmVhaztjYXNlIDY6SS5zeXNFeE1vZHVsYXRvcnMuc2V0TW9kdWxhdG9yKGgsaS52aWJMZm9Ub1ZvbHVtZSxnKjk2MCxRKSxuKHIsZyo5NjAsYCR7Q30gTEZPMSBhbXBsaXR1ZGUgZGVwdGhgLCJjQiIpO2JyZWFrO2Nhc2UgODpJLnN5c0V4TW9kdWxhdG9ycy5zZXRNb2R1bGF0b3IoaCxpLm1vZExmb1RvUGl0Y2gsQio2MDAsUSksbihyLEIqNjAwLGAke0N9IExGTzIgcGl0Y2ggZGVwdGhgLCJjZW50cyIpO2JyZWFrO2Nhc2UgOTpJLnN5c0V4TW9kdWxhdG9ycy5zZXRNb2R1bGF0b3IoaCxpLm1vZExmb1RvRmlsdGVyRmMsQioyNDAwLFEpLG4ocixCKjI0MDAsYCR7Q30gTEZPMiBmaWx0ZXIgZGVwdGhgLCJjZW50cyIpO2JyZWFrO2Nhc2UgMTA6SS5zeXNFeE1vZHVsYXRvcnMuc2V0TW9kdWxhdG9yKGgsaS5tb2RMZm9Ub1ZvbHVtZSxnKjk2MCxRKSxuKHIsZyo5NjAsYCR7Q30gTEZPMiBhbXBsaXR1ZGUgZGVwdGhgLCJjQiIpO2JyZWFrfX07c3dpdGNoKGVbNl0mMjQwKXtkZWZhdWx0OnMoKTticmVhaztjYXNlIDA6ZChTLm1vZHVsYXRpb25XaGVlbCwibW9kIHdoZWVsIik7YnJlYWs7Y2FzZSAxNjpkKG1BK2oucGl0Y2hXaGVlbCwicGl0Y2ggd2hlZWwiLCEwKTticmVhaztjYXNlIDMyOmQobUErai5jaGFubmVsUHJlc3N1cmUsImNoYW5uZWwgcHJlc3N1cmUiKTticmVhaztjYXNlIDQ4OmQobUErai5wb2x5UHJlc3N1cmUsInBvbHkgcHJlc3N1cmUiKTticmVha31yZXR1cm59ZWxzZSBpZihlWzVdPT09MCl7c3dpdGNoKGVbNl0pe2RlZmF1bHQ6cygpO2JyZWFrO2Nhc2UgMTI3OmE9PT0wPyhwKCIlY0dTIFJlc2V0IHJlY2VpdmVkISIsYy5pbmZvKSx0aGlzLnJlc2V0QWxsQ29udHJvbGxlcnMoITEpLHRoaXMuc2V0TWFzdGVyUGFyYW1ldGVyKCJtaWRpU3lzdGVtIiwiZ3MiKSk6YT09PTEyNyYmKHAoIiVjR1Mgc3lzdGVtIG9mZiwgc3dpdGNoaW5nIHRvIEdNMiIsYy5pbmZvKSx0aGlzLnJlc2V0QWxsQ29udHJvbGxlcnMoITEpLHRoaXMuc2V0TWFzdGVyUGFyYW1ldGVyKCJtaWRpU3lzdGVtIiwiZ20yIikpO2JyZWFrO2Nhc2UgNjpwKGAlY1JvbGFuZCBHUyBNYXN0ZXIgUGFuIHNldCB0bzogJWMke2F9JWMgd2l0aDogJWMke01BKGUpfWAsYy5pbmZvLGMudmFsdWUsYy5pbmZvLGMudmFsdWUpLHRoaXMuc2V0TWFzdGVyUGFyYW1ldGVyKCJtYXN0ZXJQYW4iLChhLTY0KS82NCk7YnJlYWs7Y2FzZSA0OnAoYCVjUm9sYW5kIEdTIE1hc3RlciBWb2x1bWUgc2V0IHRvOiAlYyR7YX0lYyB3aXRoOiAlYyR7TUEoZSl9YCxjLmluZm8sYy52YWx1ZSxjLmluZm8sYy52YWx1ZSksdGhpcy5zZXRNSURJVm9sdW1lKGEvMTI3KTticmVhaztjYXNlIDU6e2xldCByPWEtNjQ7cChgJWNSb2xhbmQgR1MgTWFzdGVyIEtleS1TaGlmdCBzZXQgdG86ICVjJHtyfSVjIHdpdGg6ICVjJHtNQShlKX1gLGMuaW5mbyxjLnZhbHVlLGMuaW5mbyxjLnZhbHVlKSx0aGlzLnNldE1hc3RlclR1bmluZyhyKjEwMCk7YnJlYWt9fXJldHVybn1lbHNlIGlmKGVbNV09PT0xKXN3aXRjaChlWzZdKXtkZWZhdWx0OnMoKTticmVhaztjYXNlIDA6e2xldCByPWVlKGUsMTYsNyk7cChgJWNHUyBQYXRjaCBuYW1lOiAlYyR7cn1gLGMuaW5mbyxjLnZhbHVlKTticmVha31jYXNlIDUxOnAoYCVjR1MgUmV2ZXJiIGxldmVsOiAlYyR7YX1gLGMuaW5mbyxjLnZhbHVlKSx0aGlzLnByaXZhdGVQcm9wcy5yZXZlcmJTZW5kPWEvNjQ7YnJlYWs7Y2FzZSA0ODpjYXNlIDQ5OmNhc2UgNTA6Y2FzZSA1MjpjYXNlIDUzOmNhc2UgNTU6cChgJWNVbnN1cHBvcnRlZCBHUyBSZXZlcmIgUGFyYW1ldGVyOiAlYyR7ZVs2XS50b1N0cmluZygxNil9YCxjLndhcm4sYy51bnJlY29nbml6ZWQpO2JyZWFrO2Nhc2UgNTg6cChgJWNHUyBDaG9ydXMgbGV2ZWw6ICVjJHthfWAsYy5pbmZvLGMudmFsdWUpLHRoaXMucHJpdmF0ZVByb3BzLmNob3J1c1NlbmQ9YS82NDticmVhaztjYXNlIDU2OmNhc2UgNTc6Y2FzZSA1OTpjYXNlIDYwOmNhc2UgNjE6Y2FzZSA2MjpjYXNlIDYzOmNhc2UgNjQ6cChgJWNVbnN1cHBvcnRlZCBHUyBDaG9ydXMgUGFyYW1ldGVyOiAlYyR7ZVs2XS50b1N0cmluZygxNil9YCxjLndhcm4sYy51bnJlY29nbml6ZWQpO2JyZWFrfX1lbHNlIHMoKTtyZXR1cm59ZWxzZSBpZihlWzJdPT09NjkmJmVbM109PT0xOCl7aWYoZVs0XT09PTE2JiZlWzZdPT09MClpZihlWzVdPT09MCl7bGV0IGE9bmV3IFVpbnQ4QXJyYXkoZS5zbGljZSg3LGUubGVuZ3RoLTIpKTt0aGlzLnByaXZhdGVQcm9wcy5jYWxsRXZlbnQoInN5bnRoRGlzcGxheSIse2Rpc3BsYXlEYXRhOmEsZGlzcGxheVR5cGU6aG4uc291bmRDYW52YXNUZXh0fSl9ZWxzZSBpZihlWzVdPT09MSl7bGV0IGE9bmV3IFVpbnQ4QXJyYXkoZS5zbGljZSg3LGUubGVuZ3RoLTMpKTt0aGlzLnByaXZhdGVQcm9wcy5jYWxsRXZlbnQoInN5bnRoRGlzcGxheSIse2Rpc3BsYXlEYXRhOmEsZGlzcGxheVR5cGU6aG4uc291bmRDYW52YXNEb3RNYXRyaXh9KSxwKGAlY1JvbGFuZCBTQyBEaXNwbGF5IERvdCBNYXRyaXggdmlhOiAlYyR7TUEoZSl9YCxjLmluZm8sYy52YWx1ZSl9ZWxzZSBzKCl9ZWxzZSBpZihlWzJdPT09MjImJmVbM109PT0xOCYmZVs0XT09PTE2KXt0aGlzLnNldE1JRElWb2x1bWUoZVs3XS8xMDApLHAoYCVjUm9sYW5kIE1hc3RlciBWb2x1bWUgY29udHJvbCBzZXQgdG86ICVjJHtlWzddfSVjIHZpYTogJWMke01BKGUpfWAsYy5pbmZvLGMudmFsdWUsYy5pbmZvLGMudmFsdWUpO3JldHVybn1lbHNle3AoYCVjVW5yZWNvZ25pemVkIFJvbGFuZCBTeXNFeDogJWMke01BKGUpfWAsYy53YXJuLGMudW5yZWNvZ25pemVkKTtyZXR1cm59YnJlYWs7Y2FzZSA2NzppZihlWzJdPT09NzYpaWYoZVszXT09PTAmJmVbNF09PT0wKXN3aXRjaChlWzVdKXtjYXNlIDQ6e2xldCBhPWVbNl07dGhpcy5zZXRNSURJVm9sdW1lKGEvMTI3KSxwKGAlY1hHIG1hc3RlciB2b2x1bWUuIFZvbHVtZTogJWMke2F9YCxjLmluZm8sYy5yZWNvZ25pemVkKTticmVha31jYXNlIDY6e2xldCBhPWVbNl0tNjQ7dGhpcy5zZXRNYXN0ZXJQYXJhbWV0ZXIoInRyYW5zcG9zaXRpb24iLGEpLHAoYCVjWEcgbWFzdGVyIHRyYW5zcG9zZS4gVm9sdW1lOiAlYyR7YX1gLGMuaW5mbyxjLnJlY29nbml6ZWQpO2JyZWFrfWNhc2UgMTI2OnAoIiVjWEcgc3lzdGVtIG9uIixjLmluZm8pLHRoaXMucmVzZXRBbGxDb250cm9sbGVycyghMSksdGhpcy5zZXRNYXN0ZXJQYXJhbWV0ZXIoIm1pZGlTeXN0ZW0iLCJ4ZyIpO2JyZWFrfWVsc2UgaWYoZVszXT09PTgpe2lmKCFmQS5pc1N5c3RlbVhHKHRoaXMucHJpdmF0ZVByb3BzLm1hc3RlclBhcmFtZXRlcnMubWlkaVN5c3RlbSkpcmV0dXJuO2xldCBhPWVbNF0rQTtpZihhPj10aGlzLm1pZGlDaGFubmVscy5sZW5ndGgpcmV0dXJuO2xldCByPXRoaXMubWlkaUNoYW5uZWxzW2FdLEk9ZVs2XTtzd2l0Y2goZVs1XSl7Y2FzZSAxOnIuY29udHJvbGxlckNoYW5nZShTLmJhbmtTZWxlY3QsSSk7YnJlYWs7Y2FzZSAyOnIuY29udHJvbGxlckNoYW5nZShTLmJhbmtTZWxlY3RMU0IsSSk7YnJlYWs7Y2FzZSAzOnIucHJvZ3JhbUNoYW5nZShJKTticmVhaztjYXNlIDg6e2lmKHIuZHJ1bUNoYW5uZWwpcmV0dXJuO3IuY2hhbm5lbFRyYW5zcG9zZUtleVNoaWZ0PUktNjQ7YnJlYWt9Y2FzZSAxMTpyLmNvbnRyb2xsZXJDaGFuZ2UoUy5tYWluVm9sdW1lLEkpO2JyZWFrO2Nhc2UgMTQ6e2xldCBvPUk7bz09PTA/KHIucmFuZG9tUGFuPSEwLHAoYCVjUmFuZG9tIHBhbiBpcyBzZXQgdG8gJWNPTiVjIGZvciAlYyR7YX1gLGMuaW5mbyxjLnJlY29nbml6ZWQsYy5pbmZvLGMudmFsdWUpKTpyLmNvbnRyb2xsZXJDaGFuZ2UoUy5wYW4sbyk7YnJlYWt9Y2FzZSAxOTpyLmNvbnRyb2xsZXJDaGFuZ2UoUy5yZXZlcmJEZXB0aCxJKTticmVhaztjYXNlIDE4OnIuY29udHJvbGxlckNoYW5nZShTLmNob3J1c0RlcHRoLEkpO2JyZWFrO2RlZmF1bHQ6cChgJWNVbnJlY29nbml6ZWQgWWFtYWhhIFhHIFBhcnQgU2V0dXA6ICVjJHtlWzVdLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfWAsYy53YXJuLGMudW5yZWNvZ25pemVkKX19ZWxzZSBpZihlWzNdPT09NiYmZVs0XT09PTApe2xldCBhPW5ldyBVaW50OEFycmF5KGUuc2xpY2UoNSxlLmxlbmd0aC0xKSk7dGhpcy5wcml2YXRlUHJvcHMuY2FsbEV2ZW50KCJzeW50aERpc3BsYXkiLHtkaXNwbGF5RGF0YTphLGRpc3BsYXlUeXBlOmhuLnlhbWFoYVhHVGV4dH0pfWVsc2UgZkEuaXNTeXN0ZW1YRyh0aGlzLnByaXZhdGVQcm9wcy5tYXN0ZXJQYXJhbWV0ZXJzLm1pZGlTeXN0ZW0pJiZwKGAlY1VucmVjb2duaXplZCBZYW1haGEgWEcgU3lzRXg6ICVjJHtNQShlKX1gLGMud2FybixjLnVucmVjb2duaXplZCk7ZWxzZSBmQS5pc1N5c3RlbVhHKHRoaXMucHJpdmF0ZVByb3BzLm1hc3RlclBhcmFtZXRlcnMubWlkaVN5c3RlbSkmJnAoYCVjVW5yZWNvZ25pemVkIFlhbWFoYSBTeXNFeDogJWMke01BKGUpfWAsYy53YXJuLGMudW5yZWNvZ25pemVkKTticmVha319dmFyIFJzPWNsYXNzIHFue3BhdGNoO2xvY2tQcmVzZXQ7bG9ja2VkU3lzdGVtO21pZGlDb250cm9sbGVycztsb2NrZWRDb250cm9sbGVycztjdXN0b21Db250cm9sbGVycztsb2NrVmlicmF0bztjaGFubmVsVmlicmF0bztjaGFubmVsVHJhbnNwb3NlS2V5U2hpZnQ7Y2hhbm5lbE9jdGF2ZVR1bmluZztpc011dGVkO2RydW1DaGFubmVsO2NoYW5uZWxOdW1iZXI7Y29uc3RydWN0b3IoQSx0LG4scyxhLHIsSSxvLGcsQixkLGgsQyl7dGhpcy5wYXRjaD1BLHRoaXMubG9ja1ByZXNldD10LHRoaXMubG9ja2VkU3lzdGVtPW4sdGhpcy5taWRpQ29udHJvbGxlcnM9cyx0aGlzLmxvY2tlZENvbnRyb2xsZXJzPWEsdGhpcy5jdXN0b21Db250cm9sbGVycz1yLHRoaXMubG9ja1ZpYnJhdG89SSx0aGlzLmNoYW5uZWxWaWJyYXRvPW8sdGhpcy5jaGFubmVsVHJhbnNwb3NlS2V5U2hpZnQ9Zyx0aGlzLmNoYW5uZWxPY3RhdmVUdW5pbmc9Qix0aGlzLmlzTXV0ZWQ9ZCx0aGlzLmRydW1DaGFubmVsPWgsdGhpcy5jaGFubmVsTnVtYmVyPUN9c3RhdGljIGNvcHlGcm9tKEEpe3JldHVybiBuZXcgcW4oey4uLkEucGF0Y2h9LEEubG9ja1ByZXNldCxBLmxvY2tlZFN5c3RlbSxBLm1pZGlDb250cm9sbGVycy5zbGljZSgpLFsuLi5BLmxvY2tlZENvbnRyb2xsZXJzXSxBLmN1c3RvbUNvbnRyb2xsZXJzLnNsaWNlKCksQS5sb2NrVmlicmF0byx7Li4uQS5jaGFubmVsVmlicmF0b30sQS5jaGFubmVsVHJhbnNwb3NlS2V5U2hpZnQsQS5jaGFubmVsT2N0YXZlVHVuaW5nLEEuaXNNdXRlZCxBLmRydW1DaGFubmVsLEEuY2hhbm5lbE51bWJlcil9c3RhdGljIGNyZWF0ZShBLHQpe2xldCBuPUEubWlkaUNoYW5uZWxzW3RdO3JldHVybiBuZXcgcW4oey4uLm4ucGF0Y2gsbmFtZTpuPy5wcmVzZXQ/Lm5hbWU/PyJ1bmRlZmluZWQifSxuLmxvY2tQcmVzZXQsbi5sb2NrZWRTeXN0ZW0sbi5taWRpQ29udHJvbGxlcnMuc2xpY2UoKSxbLi4ubi5sb2NrZWRDb250cm9sbGVyc10sbi5jdXN0b21Db250cm9sbGVycy5zbGljZSgpLG4ubG9ja0dTTlJQTlBhcmFtcyx7Li4ubi5jaGFubmVsVmlicmF0b30sbi5jaGFubmVsVHJhbnNwb3NlS2V5U2hpZnQsbi5jaGFubmVsT2N0YXZlVHVuaW5nLnNsaWNlKCksbi5pc011dGVkLG4uZHJ1bUNoYW5uZWwsdCl9YXBwbHkoQSl7bGV0IHQ9QS5taWRpQ2hhbm5lbHNbdGhpcy5jaGFubmVsTnVtYmVyXTt0Lm11dGVDaGFubmVsKHRoaXMuaXNNdXRlZCksdC5zZXREcnVtcyh0aGlzLmRydW1DaGFubmVsKSx0Lm1pZGlDb250cm9sbGVycy5zZXQodGhpcy5taWRpQ29udHJvbGxlcnMpLHQubG9ja2VkQ29udHJvbGxlcnM9dGhpcy5sb2NrZWRDb250cm9sbGVycyx0LmN1c3RvbUNvbnRyb2xsZXJzLnNldCh0aGlzLmN1c3RvbUNvbnRyb2xsZXJzKSx0LnVwZGF0ZUNoYW5uZWxUdW5pbmcoKSx0LmNoYW5uZWxWaWJyYXRvPXRoaXMuY2hhbm5lbFZpYnJhdG8sdC5sb2NrR1NOUlBOUGFyYW1zPXRoaXMubG9ja1ZpYnJhdG8sdC5jaGFubmVsVHJhbnNwb3NlS2V5U2hpZnQ9dGhpcy5jaGFubmVsVHJhbnNwb3NlS2V5U2hpZnQsdC5jaGFubmVsT2N0YXZlVHVuaW5nPXRoaXMuY2hhbm5lbE9jdGF2ZVR1bmluZyx0LnNldFByZXNldExvY2soITEpLHQuc2V0UGF0Y2godGhpcy5wYXRjaCksdC5zZXRQcmVzZXRMb2NrKHRoaXMubG9ja1ByZXNldCksdC5sb2NrZWRTeXN0ZW09dGhpcy5sb2NrZWRTeXN0ZW19fTt2YXIgQXI9Y2xhc3N7a2V5TWFwcGluZ3M9W107YWRkTWFwcGluZyhlLEEsdCl7dGhpcy5rZXlNYXBwaW5nc1tlXT8/PVtdLHRoaXMua2V5TWFwcGluZ3NbZV1bQV09dH1kZWxldGVNYXBwaW5nKGUsQSl7dGhpcy5rZXlNYXBwaW5nc1tlXT8uW0FdIT09dm9pZCAwJiYodGhpcy5rZXlNYXBwaW5nc1tlXVtBXT12b2lkIDApfWNsZWFyTWFwcGluZ3MoKXt0aGlzLmtleU1hcHBpbmdzPVtdfXNldE1hcHBpbmdzKGUpe3RoaXMua2V5TWFwcGluZ3M9ZX1nZXRNYXBwaW5ncygpe3JldHVybiB0aGlzLmtleU1hcHBpbmdzfWdldFZlbG9jaXR5KGUsQSl7cmV0dXJuIHRoaXMua2V5TWFwcGluZ3NbZV0/LltBXT8udmVsb2NpdHk/Py0xfWdldEdhaW4oZSxBKXtyZXR1cm4gdGhpcy5rZXlNYXBwaW5nc1tlXT8uW0FdPy5nYWluPz8xfWhhc092ZXJyaWRlUGF0Y2goZSxBKXtsZXQgdD10aGlzLmtleU1hcHBpbmdzW2VdPy5bQV0/LnBhdGNoPy5iYW5rTVNCO3JldHVybiB0IT09dm9pZCAwJiZ0Pj0wfWdldFBhdGNoKGUsQSl7bGV0IHQ9dGhpcy5rZXlNYXBwaW5nc1tlXT8uW0FdO2lmKHQpcmV0dXJuIHQucGF0Y2g7dGhyb3cgbmV3IEVycm9yKCJObyBtb2RpZmllci4iKX19LHJzPWNsYXNzIEtue2NoYW5uZWxTbmFwc2hvdHM7a2V5TWFwcGluZ3M7bWFzdGVyUGFyYW1ldGVycztjb25zdHJ1Y3RvcihBLHQsbil7dGhpcy5jaGFubmVsU25hcHNob3RzPUEsdGhpcy5tYXN0ZXJQYXJhbWV0ZXJzPXQsdGhpcy5rZXlNYXBwaW5ncz1ufXN0YXRpYyBjcmVhdGUoQSl7bGV0IHQ9QS5taWRpQ2hhbm5lbHMubWFwKChuLHMpPT5Scy5jcmVhdGUoQSxzKSk7cmV0dXJuIG5ldyBLbih0LEEuZ2V0QWxsTWFzdGVyUGFyYW1ldGVycygpLEEua2V5TW9kaWZpZXJNYW5hZ2VyLmdldE1hcHBpbmdzKCkpfXN0YXRpYyBjb3B5RnJvbShBKXtyZXR1cm4gbmV3IEtuKEEuY2hhbm5lbFNuYXBzaG90cy5tYXAodD0+UnMuY29weUZyb20odCkpLHsuLi5BLm1hc3RlclBhcmFtZXRlcnN9LFsuLi5BLmtleU1hcHBpbmdzXSl9YXBwbHkoQSl7Zm9yKE9iamVjdC5lbnRyaWVzKHRoaXMubWFzdGVyUGFyYW1ldGVycykuZm9yRWFjaCgoW24sc10pPT57QS5zZXRNYXN0ZXJQYXJhbWV0ZXIobixzKX0pLEEua2V5TW9kaWZpZXJNYW5hZ2VyLnNldE1hcHBpbmdzKHRoaXMua2V5TWFwcGluZ3MpO0EubWlkaUNoYW5uZWxzLmxlbmd0aDx0aGlzLmNoYW5uZWxTbmFwc2hvdHMubGVuZ3RoOylBLmNyZWF0ZU1JRElDaGFubmVsKCk7dGhpcy5jaGFubmVsU25hcHNob3RzLmZvckVhY2gobj0+e24uYXBwbHkoQSl9KX19LGVyPXttYXN0ZXJHYWluOl9hLG1hc3RlclBhbjowLHZvaWNlQ2FwOlhhLGludGVycG9sYXRpb25UeXBlOnZ0Lmhlcm1pdGUsbWlkaVN5c3RlbTpPcyxtb25vcGhvbmljUmV0cmlnZ2VyTW9kZTohMSxyZXZlcmJHYWluOjEsY2hvcnVzR2FpbjoxLGJsYWNrTUlESU1vZGU6ITEsdHJhbnNwb3NpdGlvbjowLGRldmljZUlEOkJlfSx0cj1jbGFzc3t0dW5pbmdzPVtdO21hc3RlclBhcmFtZXRlcnM9ZXI7bWlkaVZvbHVtZT0xO3JldmVyYlNlbmQ9MTtjaG9ydXNTZW5kPTE7cGFuTGVmdD0uNTtwYW5SaWdodD0uNTtkZWZhdWx0UHJlc2V0O2RydW1QcmVzZXQ7dm9sdW1lRW52ZWxvcGVTbW9vdGhpbmdGYWN0b3I7cGFuU21vb3RoaW5nRmFjdG9yO2ZpbHRlclNtb290aGluZ0ZhY3RvcjtldmVudENhbGxiYWNrSGFuZGxlcjtnZXRWb2ljZXM7dm9pY2VLaWxsaW5nO2NhY2hlZFZvaWNlcz1bXTtjb25zdHJ1Y3RvcihlLEEsdCxuLHMsYSl7dGhpcy5ldmVudENhbGxiYWNrSGFuZGxlcj1lLHRoaXMuZ2V0Vm9pY2VzPUEsdGhpcy52b2ljZUtpbGxpbmc9dCx0aGlzLnZvbHVtZUVudmVsb3BlU21vb3RoaW5nRmFjdG9yPW4sdGhpcy5wYW5TbW9vdGhpbmdGYWN0b3I9cyx0aGlzLmZpbHRlclNtb290aGluZ0ZhY3Rvcj1hO2ZvcihsZXQgcj0wO3I8MTI4O3IrKyl0aGlzLnR1bmluZ3MucHVzaChbXSl9Y2FsbEV2ZW50KGUsQSl7dGhpcy5ldmVudENhbGxiYWNrSGFuZGxlcihlLEEpfX07ZnVuY3Rpb24gcG4oZSxBLHQpe2lmKHQ8ZSlyZXR1cm4gMDtsZXQgbj0odC1lKS8oMS9BKSsuMjU7cmV0dXJuIE1hdGguYWJzKG4tfn4obisuNSkpKjQtMX12YXIgbnI9Y2xhc3MgT257c3RhdGljIGdldFNhbXBsZShBLHQsbil7bGV0IHM9QS5jdXJyZW50VHVuaW5nQ2FsY3VsYXRlZCpBLnNhbXBsZS5wbGF5YmFja1N0ZXA7aWYocz09PTEpe09uLmdldFNhbXBsZU5lYXJlc3QoQSx0LHMpO3JldHVybn1zd2l0Y2gobil7Y2FzZSB2dC5oZXJtaXRlOnRoaXMuZ2V0U2FtcGxlSGVybWl0ZShBLHQscyk7cmV0dXJuO2Nhc2UgdnQubGluZWFyOmRlZmF1bHQ6dGhpcy5nZXRTYW1wbGVMaW5lYXIoQSx0LHMpO3JldHVybjtjYXNlIHZ0Lm5lYXJlc3ROZWlnaGJvcjpPbi5nZXRTYW1wbGVOZWFyZXN0KEEsdCxzKTtyZXR1cm59fXN0YXRpYyBnZXRTYW1wbGVMaW5lYXIoQSx0LG4pe2xldCBzPUEuc2FtcGxlLGE9cy5jdXJzb3Iscj1zLnNhbXBsZURhdGE7aWYocy5pc0xvb3Bpbmcpe2xldCBJPXMubG9vcEVuZC1zLmxvb3BTdGFydDtmb3IobGV0IG89MDtvPHQubGVuZ3RoO28rKyl7Zm9yKDthPj1zLmxvb3BFbmQ7KWEtPUk7bGV0IGc9fn5hLEI9ZysxO2Zvcig7Qj49cy5sb29wRW5kOylCLT1JO2xldCBkPWEtZyxoPXJbQl0sQz1yW2ddO3Rbb109QysoaC1DKSpkLGErPW59fWVsc2UgZm9yKGxldCBJPTA7STx0Lmxlbmd0aDtJKyspe2xldCBvPX5+YSxnPW8rMTtpZihnPj1zLmVuZCl7QS5maW5pc2hlZD0hMDtyZXR1cm59bGV0IEI9YS1vLGQ9cltnXSxoPXJbb107dFtJXT1oKyhkLWgpKkIsYSs9bn1BLnNhbXBsZS5jdXJzb3I9YX1zdGF0aWMgZ2V0U2FtcGxlTmVhcmVzdChBLHQsbil7bGV0IHM9QS5zYW1wbGUsYT1zLmN1cnNvcixyPXMuc2FtcGxlRGF0YTtpZihzLmlzTG9vcGluZyl7bGV0IEk9cy5sb29wRW5kLXMubG9vcFN0YXJ0O2ZvcihsZXQgbz0wO288dC5sZW5ndGg7bysrKXtmb3IoO2E+PXMubG9vcEVuZDspYS09STtsZXQgZz1+fmErMTtmb3IoO2c+PXMubG9vcEVuZDspZy09STt0W29dPXJbZ10sYSs9bn19ZWxzZSBmb3IobGV0IEk9MDtJPHQubGVuZ3RoO0krKyl7bGV0IG89fn5hKzE7aWYobz49cy5lbmQpe0EuZmluaXNoZWQ9ITA7cmV0dXJufXRbSV09cltvXSxhKz1ufXMuY3Vyc29yPWF9c3RhdGljIGdldFNhbXBsZUhlcm1pdGUoQSx0LG4pe2xldCBzPUEuc2FtcGxlLGE9cy5jdXJzb3Iscj1zLnNhbXBsZURhdGE7aWYocy5pc0xvb3Bpbmcpe2xldCBJPXMubG9vcEVuZC1zLmxvb3BTdGFydDtmb3IobGV0IG89MDtvPHQubGVuZ3RoO28rKyl7Zm9yKDthPj1zLmxvb3BFbmQ7KWEtPUk7bGV0IGc9fn5hLEI9ZysxLGQ9ZysyLGg9ZyszLEM9YS1nO0I+PXMubG9vcEVuZCYmKEItPUkpLGQ+PXMubG9vcEVuZCYmKGQtPUkpLGg+PXMubG9vcEVuZCYmKGgtPUkpO2xldCBRPXJbZ10sbT1yW0JdLHk9cltkXSxGPXJbaF0saz0oeS1RKSouNSxEPW0teSx2PWsrRCxMPXYrRCsoRi1tKSouNSxFPXYrTDt0W29dPSgoTCpDLUUpKkMraykqQyttLGErPW59fWVsc2UgZm9yKGxldCBJPTA7STx0Lmxlbmd0aDtJKyspe2xldCBvPX5+YSxnPW8rMSxCPW8rMixkPW8rMyxoPWEtbztpZihnPj1zLmVuZHx8Qj49cy5lbmR8fGQ+PXMuZW5kKXtBLmZpbmlzaGVkPSEwO3JldHVybn1sZXQgQz1yW29dLFE9cltnXSxtPXJbQl0seT1yW2RdLEY9KG0tQykqLjUsaz1RLW0sRD1GK2ssdj1EK2srKHktUSkqLjUsTD1EK3Y7dFtJXT0oKHYqaC1MKSpoK0YpKmgrUSxhKz1ufUEuc2FtcGxlLmN1cnNvcj1hfX07ZnVuY3Rpb24gc3IoZSxBLHQsbixzLGEscixJLG8sZyl7aWYoZS5pc0luUmVsZWFzZXx8QT49ZS5yZWxlYXNlU3RhcnRUaW1lJiYoZS5pc0luUmVsZWFzZT0hMCxiZS5zdGFydFJlbGVhc2UoZSksX2Uuc3RhcnRSZWxlYXNlKGUpLGUuc2FtcGxlLmxvb3BpbmdNb2RlPT09MyYmKGUuc2FtcGxlLmlzTG9vcGluZz0hMSkpLGUubW9kdWxhdGVkR2VuZXJhdG9yc1tpLmluaXRpYWxBdHRlbnVhdGlvbl0+MjUwMClyZXR1cm4gZS5pc0luUmVsZWFzZSYmKGUuZmluaXNoZWQ9ITApLGUuZmluaXNoZWQ7bGV0IEI9ZS50YXJnZXRLZXksZD1lLm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5maW5lVHVuZV0rdGhpcy5jaGFubmVsT2N0YXZlVHVuaW5nW2UubWlkaU5vdGVdK3RoaXMuY2hhbm5lbFR1bmluZ0NlbnRzLGg9ZS5tb2R1bGF0ZWRHZW5lcmF0b3JzW2kuY29hcnNlVHVuZV0sQz10aGlzLnN5bnRoUHJvcHMudHVuaW5nc1t0aGlzLnByZXNldD8ucHJvZ3JhbT8/MF0/LltlLnJlYWxLZXldO2lmKEM/LmNlbnRUdW5pbmcmJihCPUMubWlkaU5vdGUsZCs9Qy5jZW50VHVuaW5nKSxlLnBvcnRhbWVudG9Gcm9tS2V5Pi0xKXtsZXQgJD1NYXRoLm1pbigoQS1lLnN0YXJ0VGltZSkvZS5wb3J0YW1lbnRvRHVyYXRpb24sMSksVj1CLWUucG9ydGFtZW50b0Zyb21LZXk7aC09ViooMS0kKX1kKz0oQi1lLnNhbXBsZS5yb290S2V5KSplLm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5zY2FsZVR1bmluZ107bGV0IFE9MCxtPTAseT1lLm1vZHVsYXRlZEdlbmVyYXRvcnNbaS52aWJMZm9Ub1BpdGNoXSxGPWUubW9kdWxhdGVkR2VuZXJhdG9yc1tpLnZpYkxmb1RvVm9sdW1lXSxrPWUubW9kdWxhdGVkR2VuZXJhdG9yc1tpLnZpYkxmb1RvRmlsdGVyRmNdO2lmKHkhPT0wfHxGIT09MHx8ayE9PTApe2xldCAkPWUuc3RhcnRUaW1lK1FlKGUubW9kdWxhdGVkR2VuZXJhdG9yc1tpLmRlbGF5VmliTEZPXSksVj1ObihlLm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5mcmVxVmliTEZPXSkscT1wbigkLFYsQSk7ZCs9cSooeSp0aGlzLmN1c3RvbUNvbnRyb2xsZXJzW0lBLm1vZHVsYXRpb25NdWx0aXBsaWVyXSksbSs9LXEqRixRKz1xKmt9bGV0IEQ9ZS5tb2R1bGF0ZWRHZW5lcmF0b3JzW2kubW9kTGZvVG9QaXRjaF0sdj1lLm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5tb2RMZm9Ub1ZvbHVtZV0sTD1lLm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5tb2RMZm9Ub0ZpbHRlckZjXTtpZihEIT09MHx8TCE9PTB8fHYhPT0wKXtsZXQgJD1lLnN0YXJ0VGltZStRZShlLm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5kZWxheU1vZExGT10pLFY9Tm4oZS5tb2R1bGF0ZWRHZW5lcmF0b3JzW2kuZnJlcU1vZExGT10pLHE9cG4oJCxWLEEpO2QrPXEqKEQqdGhpcy5jdXN0b21Db250cm9sbGVyc1tJQS5tb2R1bGF0aW9uTXVsdGlwbGllcl0pLG0rPS1xKnYsUSs9cSpMfWlmKHRoaXMuY2hhbm5lbFZpYnJhdG8uZGVwdGg+MCl7bGV0ICQ9cG4oZS5zdGFydFRpbWUrdGhpcy5jaGFubmVsVmlicmF0by5kZWxheSx0aGlzLmNoYW5uZWxWaWJyYXRvLnJhdGUsQSk7JCYmKGQrPSQqdGhpcy5jaGFubmVsVmlicmF0by5kZXB0aCl9bGV0IEU9ZS5tb2R1bGF0ZWRHZW5lcmF0b3JzW2kubW9kRW52VG9QaXRjaF0sWD1lLm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5tb2RFbnZUb0ZpbHRlckZjXTtpZihYIT09MHx8RSE9PTApe2xldCAkPV9lLmdldFZhbHVlKGUsQSk7USs9JCpYLGQrPSQqRX1tLT1lLnJlc29uYW5jZU9mZnNldDtsZXQgTz1+fihkK2gqMTAwKTtPIT09ZS5jdXJyZW50VHVuaW5nQ2VudHMmJihlLmN1cnJlbnRUdW5pbmdDZW50cz1PLGUuY3VycmVudFR1bmluZ0NhbGN1bGF0ZWQ9TWF0aC5wb3coMixPLzEyMDApKTtsZXQgbkE9bmV3IEZsb2F0MzJBcnJheShnKTtyZXR1cm4gZS5zYW1wbGUubG9vcGluZ01vZGU9PT0yJiYhZS5pc0luUmVsZWFzZT8oYmUuYXBwbHkoZSxuQSxtLHRoaXMuc3ludGhQcm9wcy52b2x1bWVFbnZlbG9wZVNtb290aGluZ0ZhY3RvciksZS5maW5pc2hlZCk6KG5yLmdldFNhbXBsZShlLG5BLHRoaXMuc3ludGhQcm9wcy5tYXN0ZXJQYXJhbWV0ZXJzLmludGVycG9sYXRpb25UeXBlKSxYdC5hcHBseShlLG5BLFEsdGhpcy5zeW50aFByb3BzLmZpbHRlclNtb290aGluZ0ZhY3RvciksYmUuYXBwbHkoZSxuQSxtLHRoaXMuc3ludGhQcm9wcy52b2x1bWVFbnZlbG9wZVNtb290aGluZ0ZhY3RvciksdGhpcy5wYW5BbmRNaXhWb2ljZShlLG5BLHQsbixzLGEscixJLG8pLGUuZmluaXNoZWQpfXZhciB1ZT17cGl0Y2hXaGVlbFJhbmdlOjAsZmluZVR1bmluZzoxLGNvYXJzZVR1bmluZzoyLG1vZHVsYXRpb25EZXB0aDo1LHJlc2V0UGFyYW1ldGVyczoxNjM4M30sWmU9e3BhcnRQYXJhbWV0ZXI6MSxhd2UzMjoxMjcsU0YyOjEyMH0sT2U9e3ZpYnJhdG9SYXRlOjgsdmlicmF0b0RlcHRoOjksdmlicmF0b0RlbGF5OjEwLFRWRkZpbHRlckN1dG9mZjozMixUVkZGaWx0ZXJSZXNvbmFuY2U6MzMsRUdBdHRhY2tUaW1lOjk5LEVHUmVsZWFzZVRpbWU6MTAyfTtmdW5jdGlvbiBhcihlKXt0aGlzLm1pZGlDb250cm9sbGVyc1tTLmRhdGFFbnRyeU1TQl09ZTw8NztsZXQgQT0oKT0+e3RoaXMuY2hhbm5lbFZpYnJhdG8uZGVsYXk9PT0wJiZ0aGlzLmNoYW5uZWxWaWJyYXRvLnJhdGU9PT0wJiZ0aGlzLmNoYW5uZWxWaWJyYXRvLmRlcHRoPT09MCYmKHRoaXMuY2hhbm5lbFZpYnJhdG8uZGVwdGg9NTAsdGhpcy5jaGFubmVsVmlicmF0by5yYXRlPTgsdGhpcy5jaGFubmVsVmlicmF0by5kZWxheT0uNil9LHQ9KG4scyxhKT0+e2EubGVuZ3RoPjAmJihhPSIgIithKSxwKGAlYyR7bn0gZm9yICVjJHt0aGlzLmNoYW5uZWxOdW1iZXJ9JWMgaXMgbm93IHNldCB0byAlYyR7c30lYyR7YX0uYCxjLmluZm8sYy5yZWNvZ25pemVkLGMuaW5mbyxjLnZhbHVlLGMuaW5mbyl9O3N3aXRjaCh0aGlzLmRhdGFFbnRyeVN0YXRlKXtkZWZhdWx0OmNhc2UgWUEuSWRsZTpicmVhaztjYXNlIFlBLk5SUEZpbmU6e2lmKHRoaXMubG9ja0dTTlJQTlBhcmFtcylyZXR1cm47bGV0IG49dGhpcy5taWRpQ29udHJvbGxlcnNbUy5ub25SZWdpc3RlcmVkUGFyYW1ldGVyTVNCXT4+NyxzPXRoaXMubWlkaUNvbnRyb2xsZXJzW1Mubm9uUmVnaXN0ZXJlZFBhcmFtZXRlckxTQl0+PjcsYT10aGlzLm1pZGlDb250cm9sbGVyc1tTLmRhdGFFbnRyeUxTQl0+Pjc7c3dpdGNoKG4pe2RlZmF1bHQ6aWYoZT09PTY0KXJldHVybjtwKGAlY1VucmVjb2duaXplZCBOUlBOIGZvciAlYyR7dGhpcy5jaGFubmVsTnVtYmVyfSVjOiAlYygweCR7cy50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX0gMHgke3MudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9KSVjIGRhdGEgdmFsdWU6ICVjJHtlfWAsYy53YXJuLGMucmVjb2duaXplZCxjLndhcm4sYy51bnJlY29nbml6ZWQsYy53YXJuLGMudmFsdWUpO2JyZWFrO2Nhc2UgWmUucGFydFBhcmFtZXRlcjpzd2l0Y2gocyl7ZGVmYXVsdDppZihlPT09NjQpcmV0dXJuO3AoYCVjVW5yZWNvZ25pemVkIE5SUE4gZm9yICVjJHt0aGlzLmNoYW5uZWxOdW1iZXJ9JWM6ICVjKDB4JHtuLnRvU3RyaW5nKDE2KX0gMHgke3MudG9TdHJpbmcoMTYpfSklYyBkYXRhIHZhbHVlOiAlYyR7ZX1gLGMud2FybixjLnJlY29nbml6ZWQsYy53YXJuLGMudW5yZWNvZ25pemVkLGMud2FybixjLnZhbHVlKTticmVhaztjYXNlIE9lLnZpYnJhdG9SYXRlOmlmKGU9PT02NClyZXR1cm47QSgpLHRoaXMuY2hhbm5lbFZpYnJhdG8ucmF0ZT1lLzY0KjgsdCgiVmlicmF0byByYXRlIixgJHtlfSA9ICR7dGhpcy5jaGFubmVsVmlicmF0by5yYXRlfWAsIkh6Iik7YnJlYWs7Y2FzZSBPZS52aWJyYXRvRGVwdGg6aWYoZT09PTY0KXJldHVybjtBKCksdGhpcy5jaGFubmVsVmlicmF0by5kZXB0aD1lLzIsdCgiVmlicmF0byBkZXB0aCIsYCR7ZX0gPSAke3RoaXMuY2hhbm5lbFZpYnJhdG8uZGVwdGh9YCwiY2VudHMgb2YgZGV0dW5lIik7YnJlYWs7Y2FzZSBPZS52aWJyYXRvRGVsYXk6aWYoZT09PTY0KXJldHVybjtBKCksdGhpcy5jaGFubmVsVmlicmF0by5kZWxheT1lLzY0LzMsdCgiVmlicmF0byBkZWxheSIsYCR7ZX0gPSAke3RoaXMuY2hhbm5lbFZpYnJhdG8uZGVsYXl9YCwic2Vjb25kcyIpO2JyZWFrO2Nhc2UgT2UuVFZGRmlsdGVyQ3V0b2ZmOnRoaXMuY29udHJvbGxlckNoYW5nZShTLmJyaWdodG5lc3MsZSksdCgiRmlsdGVyIGN1dG9mZiIsZS50b1N0cmluZygpLCIiKTticmVhaztjYXNlIE9lLkVHQXR0YWNrVGltZTp0aGlzLmNvbnRyb2xsZXJDaGFuZ2UoUy5hdHRhY2tUaW1lLGUpLHQoIkVHIGF0dGFjayB0aW1lIixlLnRvU3RyaW5nKCksIiIpO2JyZWFrO2Nhc2UgT2UuRUdSZWxlYXNlVGltZTp0aGlzLmNvbnRyb2xsZXJDaGFuZ2UoUy5yZWxlYXNlVGltZSxlKSx0KCJFRyByZWxlYXNlIHRpbWUiLGUudG9TdHJpbmcoKSwiIik7YnJlYWt9YnJlYWs7Y2FzZSBaZS5hd2UzMjpicmVhaztjYXNlIFplLlNGMjp7aWYocz4xMDApYnJlYWs7bGV0IHI9dGhpcy5jdXN0b21Db250cm9sbGVyc1tJQS5zZjJOUFJOR2VuZXJhdG9yTFNCXSxJPShlPDw3fGEpLTgxOTI7dGhpcy5zZXRHZW5lcmF0b3JPZmZzZXQocixJKTticmVha319YnJlYWt9Y2FzZSBZQS5SUENvYXJzZTpjYXNlIFlBLlJQRmluZTp7bGV0IG49dGhpcy5taWRpQ29udHJvbGxlcnNbUy5yZWdpc3RlcmVkUGFyYW1ldGVyTVNCXXx0aGlzLm1pZGlDb250cm9sbGVyc1tTLnJlZ2lzdGVyZWRQYXJhbWV0ZXJMU0JdPj43O3N3aXRjaChuKXtkZWZhdWx0OnAoYCVjVW5yZWNvZ25pemVkIFJQTiBmb3IgJWMke3RoaXMuY2hhbm5lbE51bWJlcn0lYzogJWMoMHgke24udG9TdHJpbmcoMTYpfSklYyBkYXRhIHZhbHVlOiAlYyR7ZX1gLGMud2FybixjLnJlY29nbml6ZWQsYy53YXJuLGMudW5yZWNvZ25pemVkLGMud2FybixjLnZhbHVlKTticmVhaztjYXNlIHVlLnBpdGNoV2hlZWxSYW5nZTp0aGlzLm1pZGlDb250cm9sbGVyc1ttQStqLnBpdGNoV2hlZWxSYW5nZV09ZTw8Nyx0KCJQaXRjaCB3aGVlbCByYW5nZSIsZS50b1N0cmluZygpLCJzZW1pdG9uZXMiKTticmVhaztjYXNlIHVlLmNvYXJzZVR1bmluZzp7bGV0IHM9ZS02NDt0aGlzLnNldEN1c3RvbUNvbnRyb2xsZXIoSUEuY2hhbm5lbFR1bmluZ1NlbWl0b25lcyxzKSx0KCJDb2Fyc2UgdHVuaW5nIixzLnRvU3RyaW5nKCksInNlbWl0b25lcyIpO2JyZWFrfWNhc2UgdWUuZmluZVR1bmluZzp0aGlzLnNldFR1bmluZyhlLTY0LCExKTticmVhaztjYXNlIHVlLm1vZHVsYXRpb25EZXB0aDp0aGlzLnNldE1vZHVsYXRpb25EZXB0aChlKjEwMCk7YnJlYWs7Y2FzZSB1ZS5yZXNldFBhcmFtZXRlcnM6dGhpcy5yZXNldFBhcmFtZXRlcnMoKTticmVha319fX12YXIgb3I9W2kuZGVsYXlNb2RMRk8saS5mcmVxTW9kTEZPLGkuZGVsYXlWaWJMRk8saS5mcmVxVmliTEZPLGkuZGVsYXlNb2RFbnYsaS5hdHRhY2tNb2RFbnYsaS5ob2xkTW9kRW52LGkuZGVjYXlNb2RFbnYsaS5zdXN0YWluTW9kRW52LGkucmVsZWFzZU1vZEVudixpLmRlbGF5Vm9sRW52LGkuYXR0YWNrVm9sRW52LGkuaG9sZFZvbEVudixpLmRlY2F5Vm9sRW52LGkuc3VzdGFpblZvbEVudixpLnJlbGVhc2VWb2xFbnYsaS5maW5lVHVuZSxpLm1vZExmb1RvUGl0Y2gsaS52aWJMZm9Ub1BpdGNoLGkubW9kRW52VG9QaXRjaCxpLm1vZExmb1RvVm9sdW1lLGkuaW5pdGlhbEZpbHRlckZjLGkuaW5pdGlhbEZpbHRlclEsaS5tb2RMZm9Ub0ZpbHRlckZjLGkubW9kRW52VG9GaWx0ZXJGYyxpLmNob3J1c0VmZmVjdHNTZW5kLGkucmV2ZXJiRWZmZWN0c1NlbmRdO2Z1bmN0aW9uIHJyKGUsQSx0KXtsZXQgbj0oaCxDLFEpPT5NYXRoLm1heChDLE1hdGgubWluKFEsaCkpLHM9aD0+TWF0aC5tYXgoLTMyNzY4LDEyMDAqTWF0aC5sb2cyKGgvMWUzKSksYT1oPT42OTAwKzEyMDAqTWF0aC5sb2cyKGgvNDQwKSxyPXQ8PDd8QTtyLT04MTkyO2xldCBJPW9yW2VdO0l8fHNBKGBJbnZhbGlkIEFXRTMyIExTQjogJWMke2V9YCxjLnVucmVjb2duaXplZCk7bGV0IG8sZyxCLGQ7c3dpdGNoKEkpe2RlZmF1bHQ6YnJlYWs7Y2FzZSBpLmRlbGF5TW9kTEZPOmNhc2UgaS5kZWxheVZpYkxGTzpjYXNlIGkuZGVsYXlWb2xFbnY6Y2FzZSBpLmRlbGF5TW9kRW52Om89NCpuKHIsMCw1OTAwKSx0aGlzLnNldEdlbmVyYXRvck92ZXJyaWRlKEkscyhvKSk7YnJlYWs7Y2FzZSBpLmF0dGFja1ZvbEVudjpjYXNlIGkuYXR0YWNrTW9kRW52Om89bihyLDAsNTk0MCksdGhpcy5zZXRHZW5lcmF0b3JPdmVycmlkZShJLHMobykpO2JyZWFrO2Nhc2UgaS5ob2xkVm9sRW52OmNhc2UgaS5ob2xkTW9kRW52Om89bihyLDAsODE5MSksdGhpcy5zZXRHZW5lcmF0b3JPdmVycmlkZShJLHMobykpO2JyZWFrO2Nhc2UgaS5kZWNheU1vZEVudjpjYXNlIGkuZGVjYXlWb2xFbnY6Y2FzZSBpLnJlbGVhc2VWb2xFbnY6Y2FzZSBpLnJlbGVhc2VNb2RFbnY6bz00Km4ociwwLDU5NDApLHRoaXMuc2V0R2VuZXJhdG9yT3ZlcnJpZGUoSSxzKG8pKTticmVhaztjYXNlIGkuZnJlcVZpYkxGTzpjYXNlIGkuZnJlcU1vZExGTzpnPS4wODQqQSx0aGlzLnNldEdlbmVyYXRvck92ZXJyaWRlKEksYShnKSwhMCk7YnJlYWs7Y2FzZSBpLnN1c3RhaW5Wb2xFbnY6Y2FzZSBpLnN1c3RhaW5Nb2RFbnY6Qj1BKjcuNSx0aGlzLnNldEdlbmVyYXRvck92ZXJyaWRlKEksQik7YnJlYWs7Y2FzZSBpLmZpbmVUdW5lOnRoaXMuc2V0R2VuZXJhdG9yT3ZlcnJpZGUoSSxyLCEwKTticmVhaztjYXNlIGkubW9kTGZvVG9QaXRjaDpjYXNlIGkudmliTGZvVG9QaXRjaDpkPW4ociwtMTI3LDEyNykqOS4zNzUsdGhpcy5zZXRHZW5lcmF0b3JPdmVycmlkZShJLGQsITApO2JyZWFrO2Nhc2UgaS5tb2RFbnZUb1BpdGNoOmQ9bihyLC0xMjcsMTI3KSo5LjM3NSx0aGlzLnNldEdlbmVyYXRvck92ZXJyaWRlKEksZCk7YnJlYWs7Y2FzZSBpLm1vZExmb1RvVm9sdW1lOkI9MS44NzUqQSx0aGlzLnNldEdlbmVyYXRvck92ZXJyaWRlKEksQiwhMCk7YnJlYWs7Y2FzZSBpLmluaXRpYWxGaWx0ZXJGYzp7bGV0IGg9NDMzNSs1OSpBO3RoaXMuc2V0R2VuZXJhdG9yT3ZlcnJpZGUoSSxoLCEwKTticmVha31jYXNlIGkuaW5pdGlhbEZpbHRlclE6Qj0yMTUqKEEvMTI3KSx0aGlzLnNldEdlbmVyYXRvck92ZXJyaWRlKEksQiwhMCk7YnJlYWs7Y2FzZSBpLm1vZExmb1RvRmlsdGVyRmM6ZD1uKHIsLTY0LDYzKSo1Ni4yNSx0aGlzLnNldEdlbmVyYXRvck92ZXJyaWRlKEksZCwhMCk7YnJlYWs7Y2FzZSBpLm1vZEVudlRvRmlsdGVyRmM6ZD1uKHIsLTY0LDYzKSo1Ni4yNSx0aGlzLnNldEdlbmVyYXRvck92ZXJyaWRlKEksZCk7YnJlYWs7Y2FzZSBpLmNob3J1c0VmZmVjdHNTZW5kOmNhc2UgaS5yZXZlcmJFZmZlY3RzU2VuZDp0aGlzLnNldEdlbmVyYXRvck92ZXJyaWRlKEksbihyLDAsMjU1KSooMWUzLzI1NSkpO2JyZWFrfX1mdW5jdGlvbiBpcihlKXtzd2l0Y2godGhpcy5taWRpQ29udHJvbGxlcnNbUy5kYXRhRW50cnlMU0JdPWU8PDcsdGhpcy5kYXRhRW50cnlTdGF0ZSl7ZGVmYXVsdDpicmVhaztjYXNlIFlBLlJQQ29hcnNlOmNhc2UgWUEuUlBGaW5lOntzd2l0Y2godGhpcy5taWRpQ29udHJvbGxlcnNbUy5yZWdpc3RlcmVkUGFyYW1ldGVyTVNCXXx0aGlzLm1pZGlDb250cm9sbGVyc1tTLnJlZ2lzdGVyZWRQYXJhbWV0ZXJMU0JdPj43KXtkZWZhdWx0OmJyZWFrO2Nhc2UgdWUucGl0Y2hXaGVlbFJhbmdlOntpZihlPT09MClicmVhazt0aGlzLm1pZGlDb250cm9sbGVyc1ttQStqLnBpdGNoV2hlZWxSYW5nZV18PWU7bGV0IHQ9KHRoaXMubWlkaUNvbnRyb2xsZXJzW21BK2oucGl0Y2hXaGVlbFJhbmdlXT4+NykrZS8xMjg7cChgJWNDaGFubmVsICR7dGhpcy5jaGFubmVsTnVtYmVyfSBwaXRjaCB3aGVlbCByYW5nZS4gU2VtaXRvbmVzOiAlYyR7dH1gLGMuaW5mbyxjLnZhbHVlKTticmVha31jYXNlIHVlLmZpbmVUdW5pbmc6e2xldCBuPXRoaXMuY3VzdG9tQ29udHJvbGxlcnNbSUEuY2hhbm5lbFR1bmluZ108PDd8ZTt0aGlzLnNldFR1bmluZyhuKi4wMTIyMDcwMzEyNSk7YnJlYWt9Y2FzZSB1ZS5tb2R1bGF0aW9uRGVwdGg6e2xldCBuPXRoaXMuY3VzdG9tQ29udHJvbGxlcnNbSUEubW9kdWxhdGlvbk11bHRpcGxpZXJdKjUwK2UvMTI4KjEwMDt0aGlzLnNldE1vZHVsYXRpb25EZXB0aChuKTticmVha31jYXNlIDE2MzgzOnRoaXMucmVzZXRQYXJhbWV0ZXJzKCk7YnJlYWt9YnJlYWt9Y2FzZSBZQS5OUlBGaW5lOntsZXQgQT10aGlzLm1pZGlDb250cm9sbGVyc1tTLm5vblJlZ2lzdGVyZWRQYXJhbWV0ZXJNU0JdPj43LHQ9dGhpcy5taWRpQ29udHJvbGxlcnNbUy5ub25SZWdpc3RlcmVkUGFyYW1ldGVyTFNCXT4+NztpZihBPT09WmUuU0YyKXJldHVybjtzd2l0Y2goQSl7ZGVmYXVsdDpwKGAlY1VucmVjb2duaXplZCBOUlBOIExTQiBmb3IgJWMke3RoaXMuY2hhbm5lbE51bWJlcn0lYzogJWMoMHgke3QudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9IDB4JHt0LnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSklYyBkYXRhIHZhbHVlOiAlYyR7ZX1gLGMud2FybixjLnJlY29nbml6ZWQsYy53YXJuLGMudW5yZWNvZ25pemVkLGMud2FybixjLnZhbHVlKTticmVhaztjYXNlIFplLmF3ZTMyOnJyLmNhbGwodGhpcyx0LGUsdGhpcy5taWRpQ29udHJvbGxlcnNbUy5kYXRhRW50cnlNU0JdPj43KTticmVha319fX1mdW5jdGlvbiBJcihlLEEsdD0hMCl7aWYoZT4xMjcpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIE1JREkgQ29udHJvbGxlci4iKTtpZihlPj1TLm1vZHVsYXRpb25XaGVlbExTQiYmZTw9Uy5lZmZlY3RDb250cm9sMkxTQiYmZSE9PVMuZGF0YUVudHJ5TFNCKXtsZXQgbj1lLTMyO2lmKHRoaXMubG9ja2VkQ29udHJvbGxlcnNbbl0pcmV0dXJuO3RoaXMubWlkaUNvbnRyb2xsZXJzW25dPXRoaXMubWlkaUNvbnRyb2xsZXJzW25dJjE2MjU2fEEmMTI3LHRoaXMudm9pY2VzLmZvckVhY2gocz0+dGhpcy5jb21wdXRlTW9kdWxhdG9ycyhzLDEsbikpfWlmKCF0aGlzLmxvY2tlZENvbnRyb2xsZXJzW2VdKXtzd2l0Y2godGhpcy5taWRpQ29udHJvbGxlcnNbZV09QTw8NyxlKXtjYXNlIFMuYWxsTm90ZXNPZmY6dGhpcy5zdG9wQWxsTm90ZXMoKTticmVhaztjYXNlIFMuYWxsU291bmRPZmY6dGhpcy5zdG9wQWxsTm90ZXMoITApO2JyZWFrO2Nhc2UgUy5iYW5rU2VsZWN0OnRoaXMuc2V0QmFua01TQihBKSx0aGlzLmNoYW5uZWxOdW1iZXIlMTY9PT1TZSYmZkEuaXNTeXN0ZW1YRyh0aGlzLmNoYW5uZWxTeXN0ZW0pJiZ0aGlzLnNldEJhbmtNU0IoMTI3KTticmVhaztjYXNlIFMuYmFua1NlbGVjdExTQjp0aGlzLnNldEJhbmtMU0IoQSk7YnJlYWs7Y2FzZSBTLnJlZ2lzdGVyZWRQYXJhbWV0ZXJMU0I6dGhpcy5kYXRhRW50cnlTdGF0ZT1ZQS5SUEZpbmU7YnJlYWs7Y2FzZSBTLnJlZ2lzdGVyZWRQYXJhbWV0ZXJNU0I6dGhpcy5kYXRhRW50cnlTdGF0ZT1ZQS5SUENvYXJzZTticmVhaztjYXNlIFMubm9uUmVnaXN0ZXJlZFBhcmFtZXRlck1TQjp0aGlzLmN1c3RvbUNvbnRyb2xsZXJzW0lBLnNmMk5QUk5HZW5lcmF0b3JMU0JdPTAsdGhpcy5kYXRhRW50cnlTdGF0ZT1ZQS5OUlBDb2Fyc2U7YnJlYWs7Y2FzZSBTLm5vblJlZ2lzdGVyZWRQYXJhbWV0ZXJMU0I6dGhpcy5taWRpQ29udHJvbGxlcnNbUy5ub25SZWdpc3RlcmVkUGFyYW1ldGVyTVNCXT4+Nz09PVplLlNGMiYmKHRoaXMuY3VzdG9tQ29udHJvbGxlcnNbSUEuc2YyTlBSTkdlbmVyYXRvckxTQl0lMTAwIT09MCYmKHRoaXMuY3VzdG9tQ29udHJvbGxlcnNbSUEuc2YyTlBSTkdlbmVyYXRvckxTQl09MCksQT09PTEwMD90aGlzLmN1c3RvbUNvbnRyb2xsZXJzW0lBLnNmMk5QUk5HZW5lcmF0b3JMU0JdKz0xMDA6QT09PTEwMT90aGlzLmN1c3RvbUNvbnRyb2xsZXJzW0lBLnNmMk5QUk5HZW5lcmF0b3JMU0JdKz0xZTM6QT09PTEwMj90aGlzLmN1c3RvbUNvbnRyb2xsZXJzW0lBLnNmMk5QUk5HZW5lcmF0b3JMU0JdKz0xZTQ6QTwxMDAmJih0aGlzLmN1c3RvbUNvbnRyb2xsZXJzW0lBLnNmMk5QUk5HZW5lcmF0b3JMU0JdKz1BKSksdGhpcy5kYXRhRW50cnlTdGF0ZT1ZQS5OUlBGaW5lO2JyZWFrO2Nhc2UgUy5kYXRhRW50cnlNU0I6dGhpcy5kYXRhRW50cnlDb2Fyc2UoQSk7YnJlYWs7Y2FzZSBTLmRhdGFFbnRyeUxTQjp0aGlzLmRhdGFFbnRyeUZpbmUoQSk7YnJlYWs7Y2FzZSBTLnJlc2V0QWxsQ29udHJvbGxlcnM6dGhpcy5yZXNldENvbnRyb2xsZXJzUlAxNUNvbXBsaWFudCgpO2JyZWFrO2Nhc2UgUy5zdXN0YWluUGVkYWw6QTw2NCYmKHRoaXMuc3VzdGFpbmVkVm9pY2VzLmZvckVhY2gobj0+e24ucmVsZWFzZSh0aGlzLnN5bnRoLmN1cnJlbnRTeW50aFRpbWUpfSksdGhpcy5zdXN0YWluZWRWb2ljZXM9W10pO2JyZWFrO2RlZmF1bHQ6dGhpcy52b2ljZXMuZm9yRWFjaChuPT50aGlzLmNvbXB1dGVNb2R1bGF0b3JzKG4sMSxlKSk7YnJlYWt9dCYmdGhpcy5zeW50aFByb3BzLmNhbGxFdmVudCgiY29udHJvbGxlckNoYW5nZSIse2NoYW5uZWw6dGhpcy5jaGFubmVsTnVtYmVyLGNvbnRyb2xsZXJOdW1iZXI6ZSxjb250cm9sbGVyVmFsdWU6QX0pfX12YXIgSXQ9ezA6MCwxOi4wMDYsMjouMDIzLDQ6LjA1LDg6LjExLDE2Oi4yNSwzMjouNSw2NDoyLjA2LDgwOjQuMiw5Njo4LjQsMTEyOjE5LjUsMTE2OjI2LjcsMTIwOjQwLDEyNDo4MCwxMjc6NDgwfTtmdW5jdGlvbiBncihlKXtpZihJdFtlXSE9PXZvaWQgMClyZXR1cm4gSXRbZV07bGV0IEE9bnVsbCx0PW51bGw7Zm9yKGxldCBuIG9mIE9iamVjdC5rZXlzKEl0KSl7bGV0IHM9cGFyc2VJbnQobik7czxlJiYoQT09PW51bGx8fHM+QSkmJihBPXMpLHM+ZSYmKHQ9PT1udWxsfHxzPHQpJiYodD1zKX1pZihBIT09bnVsbCYmdCE9PW51bGwpe2xldCBuPUl0W0FdLHM9SXRbdF07cmV0dXJuIG4rKGUtQSkqKHMtbikvKHQtQSl9cmV0dXJuIDB9ZnVuY3Rpb24gY3IoZSxBKXtyZXR1cm4gZ3IoZSkqKEEvMzApfWZ1bmN0aW9uIEVyKGUsQSl7aWYoQTwxKXt0aGlzLm5vdGVPZmYoZSk7cmV0dXJufWlmKEE9TWF0aC5taW4oMTI3LEEpLHRoaXMuc3ludGhQcm9wcy5tYXN0ZXJQYXJhbWV0ZXJzLmJsYWNrTUlESU1vZGUmJnRoaXMuc3ludGgudG90YWxWb2ljZXNBbW91bnQ+MjAwJiZBPDQwfHx0aGlzLnN5bnRoUHJvcHMubWFzdGVyUGFyYW1ldGVycy5ibGFja01JRElNb2RlJiZBPDEwfHx0aGlzLl9pc011dGVkKXJldHVybjtpZighdGhpcy5wcmVzZXQpe3NBKGBObyBwcmVzZXQgZm9yIGNoYW5uZWwgJHt0aGlzLmNoYW5uZWxOdW1iZXJ9IWApO3JldHVybn1sZXQgdD1lK3RoaXMuY2hhbm5lbFRyYW5zcG9zZUtleVNoaWZ0K3RoaXMuY3VzdG9tQ29udHJvbGxlcnNbSUEuY2hhbm5lbEtleVNoaWZ0XSxuPXQ7aWYodD4xMjd8fHQ8MClyZXR1cm47bGV0IHM9dGhpcy5wcmVzZXQ/LnByb2dyYW0sYT10aGlzLnN5bnRoUHJvcHMudHVuaW5nc1tzXT8uW3RdPy5taWRpTm90ZTthPj0wJiYobj1hKSx0aGlzLnN5bnRoUHJvcHMubWFzdGVyUGFyYW1ldGVycy5tb25vcGhvbmljUmV0cmlnZ2VyTW9kZSYmdGhpcy5raWxsTm90ZShlLC03MjAwKTtsZXQgcj10aGlzLnN5bnRoLmtleU1vZGlmaWVyTWFuYWdlci5nZXRWZWxvY2l0eSh0aGlzLmNoYW5uZWxOdW1iZXIsdCk7cj4tMSYmKEE9cik7bGV0IEk9dGhpcy5zeW50aC5rZXlNb2RpZmllck1hbmFnZXIuZ2V0R2Fpbih0aGlzLmNoYW5uZWxOdW1iZXIsdCksbz0tMSxnPTAsQj10aGlzLm1pZGlDb250cm9sbGVyc1tTLnBvcnRhbWVudG9UaW1lXT4+NyxkPXRoaXMubWlkaUNvbnRyb2xsZXJzW1MucG9ydGFtZW50b0NvbnRyb2xdLGg9ZD4+NztpZighdGhpcy5kcnVtQ2hhbm5lbCYmaCE9PW4mJnRoaXMubWlkaUNvbnRyb2xsZXJzW1MucG9ydGFtZW50b09uT2ZmXT49ODE5MiYmQj4wKXtpZihkIT09MSl7bGV0IHk9TWF0aC5hYnMobi1oKTtnPWNyKEIseSksbz1ofXRoaXMuY29udHJvbGxlckNoYW5nZShTLnBvcnRhbWVudG9Db250cm9sLG4pfWxldCBDPXRoaXMuc3ludGhQcm9wcy5nZXRWb2ljZXModGhpcy5jaGFubmVsTnVtYmVyLG4sQSx0KSxRPTA7dGhpcy5yYW5kb21QYW4mJihRPU1hdGgucm91bmQoTWF0aC5yYW5kb20oKSoxZTMtNTAwKSk7bGV0IG09dGhpcy52b2ljZXM7Qy5mb3JFYWNoKHk9Pnt5LnBvcnRhbWVudG9Gcm9tS2V5PW8seS5wb3J0YW1lbnRvRHVyYXRpb249Zyx5Lm92ZXJyaWRlUGFuPVEseS5nYWluPUksdGhpcy5zeXNFeE1vZHVsYXRvcnMubW9kdWxhdG9yTGlzdC5mb3JFYWNoKE89PntsZXQgbkE9Ty5tb2QsJD15Lm1vZHVsYXRvcnMuZmluZEluZGV4KFY9PkVBLmlzSWRlbnRpY2FsKFYsbkEpKTskIT09LTE/eS5tb2R1bGF0b3JzWyRdPUVBLmNvcHlGcm9tKG5BKTp5Lm1vZHVsYXRvcnMucHVzaChFQS5jb3B5RnJvbShuQSkpfSksdGhpcy5nZW5lcmF0b3JPdmVycmlkZXNFbmFibGVkJiZ0aGlzLmdlbmVyYXRvck92ZXJyaWRlcy5mb3JFYWNoKChPLG5BKT0+e08hPT1WcyYmKHkuZ2VuZXJhdG9yc1tuQV09Tyl9KTtsZXQgRj15LmV4Y2x1c2l2ZUNsYXNzO0YhPT0wJiZtLmZvckVhY2goTz0+e08uZXhjbHVzaXZlQ2xhc3M9PT1GJiZPLmV4Y2x1c2l2ZVJlbGVhc2UodGhpcy5zeW50aC5jdXJyZW50U3ludGhUaW1lKX0pLHRoaXMuY29tcHV0ZU1vZHVsYXRvcnMoeSk7bGV0IGs9eS5tb2R1bGF0ZWRHZW5lcmF0b3JzW2kuc3RhcnRBZGRyc09mZnNldF0reS5tb2R1bGF0ZWRHZW5lcmF0b3JzW2kuc3RhcnRBZGRyc0NvYXJzZU9mZnNldF0qMzI3NjgsRD15Lm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5lbmRBZGRyT2Zmc2V0XSt5Lm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5lbmRBZGRyc0NvYXJzZU9mZnNldF0qMzI3Njgsdj15Lm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5zdGFydGxvb3BBZGRyc09mZnNldF0reS5tb2R1bGF0ZWRHZW5lcmF0b3JzW2kuc3RhcnRsb29wQWRkcnNDb2Fyc2VPZmZzZXRdKjMyNzY4LEw9eS5tb2R1bGF0ZWRHZW5lcmF0b3JzW2kuZW5kbG9vcEFkZHJzT2Zmc2V0XSt5Lm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5lbmRsb29wQWRkcnNDb2Fyc2VPZmZzZXRdKjMyNzY4LEU9eS5zYW1wbGUsWD1PPT5NYXRoLm1heCgwLE1hdGgubWluKEUuc2FtcGxlRGF0YS5sZW5ndGgtMSxPKSk7aWYoRS5jdXJzb3I9WChFLmN1cnNvcitrKSxFLmVuZD1YKEUuZW5kK0QpLEUubG9vcFN0YXJ0PVgoRS5sb29wU3RhcnQrdiksRS5sb29wRW5kPVgoRS5sb29wRW5kK0wpLEUubG9vcEVuZDxFLmxvb3BTdGFydCl7bGV0IE89RS5sb29wU3RhcnQ7RS5sb29wU3RhcnQ9RS5sb29wRW5kLEUubG9vcEVuZD1PfUUubG9vcEVuZC1FLmxvb3BTdGFydDwxJiYoRS5sb29waW5nTW9kZT09PTF8fEUubG9vcGluZ01vZGU9PT0zKSYmKEUubG9vcGluZ01vZGU9MCxFLmlzTG9vcGluZz0hMSkseS52b2x1bWVFbnZlbG9wZS5hdHRlbnVhdGlvbj15LnZvbHVtZUVudmVsb3BlLmF0dGVudWF0aW9uVGFyZ2V0R2Fpbix5LmN1cnJlbnRQYW49TWF0aC5tYXgoLTUwMCxNYXRoLm1pbig1MDAseS5tb2R1bGF0ZWRHZW5lcmF0b3JzW2kucGFuXSkpfSksdGhpcy5zeW50aC50b3RhbFZvaWNlc0Ftb3VudCs9Qy5sZW5ndGgsdGhpcy5zeW50aC50b3RhbFZvaWNlc0Ftb3VudD50aGlzLnN5bnRoUHJvcHMubWFzdGVyUGFyYW1ldGVycy52b2ljZUNhcCYmdGhpcy5zeW50aFByb3BzLnZvaWNlS2lsbGluZyhDLmxlbmd0aCksbS5wdXNoKC4uLkMpLHRoaXMuc2VuZENoYW5uZWxQcm9wZXJ0eSgpLHRoaXMuc3ludGhQcm9wcy5jYWxsRXZlbnQoIm5vdGVPbiIse21pZGlOb3RlOmUsY2hhbm5lbDp0aGlzLmNoYW5uZWxOdW1iZXIsdmVsb2NpdHk6QX0pfWZ1bmN0aW9uIEJyKGUpe2lmKGU+MTI3fHxlPDApe3NBKCJSZWNlaXZlZCBhIG5vdGVPbiBmb3Igbm90ZSIsZSwiSWdub3JpbmcuIik7cmV0dXJufWxldCBBPWUrdGhpcy5jaGFubmVsVHJhbnNwb3NlS2V5U2hpZnQrdGhpcy5jdXN0b21Db250cm9sbGVyc1tJQS5jaGFubmVsS2V5U2hpZnRdO2lmKHRoaXMuc3ludGhQcm9wcy5tYXN0ZXJQYXJhbWV0ZXJzLmJsYWNrTUlESU1vZGUmJiF0aGlzLmRydW1DaGFubmVsKXt0aGlzLmtpbGxOb3RlKEEsLTY5NTApLHRoaXMuc3ludGhQcm9wcy5jYWxsRXZlbnQoIm5vdGVPZmYiLHttaWRpTm90ZTplLGNoYW5uZWw6dGhpcy5jaGFubmVsTnVtYmVyfSk7cmV0dXJufXRoaXMudm9pY2VzLmZvckVhY2gobj0+e24ucmVhbEtleSE9PUF8fG4uaXNJblJlbGVhc2V8fCh0aGlzLmhvbGRQZWRhbD90aGlzLnN1c3RhaW5lZFZvaWNlcy5wdXNoKG4pOm4ucmVsZWFzZSh0aGlzLnN5bnRoLmN1cnJlbnRTeW50aFRpbWUpKX0pLHRoaXMuc3ludGhQcm9wcy5jYWxsRXZlbnQoIm5vdGVPZmYiLHttaWRpTm90ZTplLGNoYW5uZWw6dGhpcy5jaGFubmVsTnVtYmVyfSl9ZnVuY3Rpb24gQ3IoZSl7aWYodGhpcy5sb2NrUHJlc2V0KXJldHVybjt0aGlzLnBhdGNoLnByb2dyYW09ZTtsZXQgQT10aGlzLnN5bnRoLnNvdW5kQmFua01hbmFnZXIuZ2V0UHJlc2V0KHRoaXMucGF0Y2gsdGhpcy5jaGFubmVsU3lzdGVtKTtBfHwoc0EoIk5vIHByZXNldHMhIFVzaW5nIGVtcHR5IGZhbGxiYWNrLiIpLEE9bmV3IHBlKHRoaXMuc3ludGguc291bmRCYW5rTWFuYWdlci5zb3VuZEJhbmtMaXN0WzBdLnNvdW5kQmFuayksQS5uYW1lPSJTUEVTU0EgRU1QVFkgRkFMTEJBQ0sgUFJFU0VUIiksdGhpcy5wcmVzZXQ9QSxBLmlzQW55RHJ1bXMhPT10aGlzLmRydW1DaGFubmVsJiZ0aGlzLnNldERydW1GbGFnKEEuaXNBbnlEcnVtcyksdGhpcy5zeW50aFByb3BzLmNhbGxFdmVudCgicHJvZ3JhbUNoYW5nZSIse2NoYW5uZWw6dGhpcy5jaGFubmVsTnVtYmVyLGJhbmtMU0I6dGhpcy5wcmVzZXQuYmFua0xTQixiYW5rTVNCOnRoaXMucHJlc2V0LmJhbmtNU0IscHJvZ3JhbTp0aGlzLnByZXNldC5wcm9ncmFtLGlzR01HU0RydW06dGhpcy5wcmVzZXQuaXNHTUdTRHJ1bX0pLHRoaXMuc2VuZENoYW5uZWxQcm9wZXJ0eSgpfXZhciBocj1jbGFzc3ttb2R1bGF0b3JMaXN0PVtdO3Jlc2V0TW9kdWxhdG9ycygpe3RoaXMubW9kdWxhdG9yTGlzdD1bXX1zZXRNb2R1bGF0b3IoZSxBLHQsbj0hMSxzPSExKXtsZXQgYT10aGlzLmdldE1vZHVsYXRvcklEKGUsQSxuLHMpO3Q9PT0wJiZ0aGlzLmRlbGV0ZU1vZHVsYXRvcihhKTtsZXQgcj10aGlzLm1vZHVsYXRvckxpc3QuZmluZChJPT5JLmlkPT09YSk7aWYocilyLm1vZC50cmFuc2Zvcm1BbW91bnQ9dDtlbHNle2xldCBJLG87ZT49bUE/KEk9ZS1tQSxvPSExKTooST1lLG89ITApO2xldCBnPW5ldyBFQShuZXcgWEEoSSxRQS5saW5lYXIsbyxuKSxuZXcgWEEsQSx0LDApO3RoaXMubW9kdWxhdG9yTGlzdC5wdXNoKHttb2Q6ZyxpZDphfSl9fWdldE1vZHVsYXRvcklEKGUsQSx0LG4pe3JldHVybmAke2V9LSR7QX0tJHt0fS0ke259YH1kZWxldGVNb2R1bGF0b3IoZSl7dGhpcy5tb2R1bGF0b3JMaXN0PXRoaXMubW9kdWxhdG9yTGlzdC5maWx0ZXIoQT0+QS5pZCE9PWUpfX0sbHI9MWUzLzIwMDtmdW5jdGlvbiBNcyhlLEEsdCl7aWYoQS50cmFuc2Zvcm1BbW91bnQ9PT0wKXJldHVybiBBLmN1cnJlbnRWYWx1ZT0wLDA7bGV0IG49QS5wcmltYXJ5U291cmNlLmdldFZhbHVlKGUsdCkscz1BLnNlY29uZGFyeVNvdXJjZS5nZXRWYWx1ZShlLHQpLGE9QS50cmFuc2Zvcm1BbW91bnQ7QS5pc0VmZmVjdE1vZHVsYXRvciYmYTw9MWUzJiYoYSo9bHIsYT1NYXRoLm1pbihhLDFlMykpO2xldCByPW4qcyphO3JldHVybiBBLnRyYW5zZm9ybVR5cGU9PT0yJiYocj1NYXRoLmFicyhyKSksQS5pc0RlZmF1bHRSZXNvbmFudE1vZHVsYXRvciYmKHQucmVzb25hbmNlT2Zmc2V0PU1hdGgubWF4KDAsci8yKSksQS5jdXJyZW50VmFsdWU9cixyfWZ1bmN0aW9uIGRyKGUsQT0tMSx0PTApe2xldCBuPWUubW9kdWxhdG9ycyxzPWUuZ2VuZXJhdG9ycztpZih0aGlzLmdlbmVyYXRvck9mZnNldHNFbmFibGVkKXtzPW5ldyBJbnQxNkFycmF5KHMpO2ZvcihsZXQgZz0wO2c8cy5sZW5ndGg7ZysrKXNbZ10rPXRoaXMuZ2VuZXJhdG9yT2Zmc2V0c1tnXX1sZXQgYT1lLm1vZHVsYXRlZEdlbmVyYXRvcnM7aWYoQT09PS0xKXthLnNldChzKSxuLmZvckVhY2goZz0+e2FbZy5kZXN0aW5hdGlvbl0rPU1zKHRoaXMubWlkaUNvbnRyb2xsZXJzLGcsZSl9KTtmb3IobGV0IGc9MDtnPGEubGVuZ3RoO2crKyl7bGV0IEI9eFtnXTtCJiYoYVtnXT1NYXRoLm1pbihCLm1heCxNYXRoLm1heChCLm1pbixhW2ddKSkpfWJlLnJlY2FsY3VsYXRlKGUpLF9lLnJlY2FsY3VsYXRlKGUpO3JldHVybn1sZXQgcj1uZXcgU2V0KFtpLmluaXRpYWxBdHRlbnVhdGlvbixpLmRlbGF5Vm9sRW52LGkuYXR0YWNrVm9sRW52LGkuaG9sZFZvbEVudixpLmRlY2F5Vm9sRW52LGkuc3VzdGFpblZvbEVudixpLnJlbGVhc2VWb2xFbnYsaS5rZXlOdW1Ub1ZvbEVudkhvbGQsaS5rZXlOdW1Ub1ZvbEVudkRlY2F5XSksST1uZXcgU2V0LG89ISFBO24uZm9yRWFjaChnPT57aWYoZy5wcmltYXJ5U291cmNlLmlzQ0M9PT1vJiZnLnByaW1hcnlTb3VyY2UuaW5kZXg9PT10fHxnLnNlY29uZGFyeVNvdXJjZS5pc0NDPT09byYmZy5zZWNvbmRhcnlTb3VyY2UuaW5kZXg9PT10KXtsZXQgQj1nLmRlc3RpbmF0aW9uO2lmKCFJLmhhcyhCKSl7YVtCXT1zW0JdLE1zKHRoaXMubWlkaUNvbnRyb2xsZXJzLGcsZSksbi5mb3JFYWNoKGg9PntoLmRlc3RpbmF0aW9uPT09QiYmKGFbQl0rPWguY3VycmVudFZhbHVlKX0pO2xldCBkPXhbQl07YVtCXT1NYXRoLm1heChkLm1pbixNYXRoLm1pbihhW0JdLGQubWF4KSksSS5hZGQoQil9fX0pLFsuLi5JXS5zb21lKGc9PnIuaGFzKGcpKSYmYmUucmVjYWxjdWxhdGUoZSksX2UucmVjYWxjdWxhdGUoZSl9dmFyIFFyPWNsYXNze21pZGlDb250cm9sbGVycz1uZXcgSW50MTZBcnJheShibik7bG9ja2VkQ29udHJvbGxlcnM9QXJyYXkoYm4pLmZpbGwoITEpO2N1c3RvbUNvbnRyb2xsZXJzPW5ldyBGbG9hdDMyQXJyYXkoZWEpO2NoYW5uZWxUcmFuc3Bvc2VLZXlTaGlmdD0wO2NoYW5uZWxPY3RhdmVUdW5pbmc9bmV3IEludDhBcnJheSgxMjgpO3N5c0V4TW9kdWxhdG9ycz1uZXcgaHI7ZHJ1bUNoYW5uZWw9ITE7cmFuZG9tUGFuPSExO2RhdGFFbnRyeVN0YXRlPVlBLklkbGU7cGF0Y2g9e2JhbmtNU0I6MCxiYW5rTFNCOjAscHJvZ3JhbTowLGlzR01HU0RydW06ITF9O3ByZXNldDtsb2NrUHJlc2V0PSExO2xvY2tlZFN5c3RlbT0iZ3MiO2xvY2tHU05SUE5QYXJhbXM9ITE7Y2hhbm5lbFZpYnJhdG89e2RlbGF5OjAsZGVwdGg6MCxyYXRlOjB9O3ZvaWNlcz1bXTtzdXN0YWluZWRWb2ljZXM9W107Y2hhbm5lbE51bWJlcjtzeW50aDtzeW50aFByb3BzO25vdGVPbj1Fci5iaW5kKHRoaXMpO25vdGVPZmY9QnIuYmluZCh0aGlzKTtwcm9ncmFtQ2hhbmdlPUNyLmJpbmQodGhpcyk7Y29udHJvbGxlckNoYW5nZT1Jci5iaW5kKHRoaXMpO3Jlc2V0Q29udHJvbGxlcnM9cG8uYmluZCh0aGlzKTtyZXNldFByZXNldD15by5iaW5kKHRoaXMpO3Jlc2V0Q29udHJvbGxlcnNSUDE1Q29tcGxpYW50PWtvLmJpbmQodGhpcyk7cmVzZXRQYXJhbWV0ZXJzPURvLmJpbmQodGhpcyk7ZGF0YUVudHJ5RmluZT1pci5iaW5kKHRoaXMpO2RhdGFFbnRyeUNvYXJzZT1hci5iaW5kKHRoaXMpO2NoYW5uZWxUdW5pbmdDZW50cz0wO2dlbmVyYXRvck9mZnNldHM9bmV3IEludDE2QXJyYXkoTW4pO2dlbmVyYXRvck9mZnNldHNFbmFibGVkPSExO2dlbmVyYXRvck92ZXJyaWRlcz1uZXcgSW50MTZBcnJheShNbik7Z2VuZXJhdG9yT3ZlcnJpZGVzRW5hYmxlZD0hMTtyZW5kZXJWb2ljZT1zci5iaW5kKHRoaXMpO3BhbkFuZE1peFZvaWNlPU9vLmJpbmQodGhpcyk7Y29tcHV0ZU1vZHVsYXRvcnM9ZHIuYmluZCh0aGlzKTtjb25zdHJ1Y3RvcihlLEEsdCxuKXt0aGlzLnN5bnRoPWUsdGhpcy5zeW50aFByb3BzPUEsdGhpcy5wcmVzZXQ9dCx0aGlzLmNoYW5uZWxOdW1iZXI9bix0aGlzLnJlc2V0R2VuZXJhdG9yT3ZlcnJpZGVzKCksdGhpcy5yZXNldEdlbmVyYXRvck9mZnNldHMoKX1faXNNdXRlZD0hMTtnZXQgaXNNdXRlZCgpe3JldHVybiB0aGlzLl9pc011dGVkfWdldCBob2xkUGVkYWwoKXtyZXR1cm4gdGhpcy5taWRpQ29udHJvbGxlcnNbUy5zdXN0YWluUGVkYWxdPj04MTkyfWdldCBjaGFubmVsU3lzdGVtKCl7cmV0dXJuIHRoaXMubG9ja1ByZXNldD90aGlzLmxvY2tlZFN5c3RlbTp0aGlzLnN5bnRoUHJvcHMubWFzdGVyUGFyYW1ldGVycy5taWRpU3lzdGVtfXRyYW5zcG9zZUNoYW5uZWwoZSxBPSExKXt0aGlzLmRydW1DaGFubmVsfHwoZSs9dGhpcy5zeW50aFByb3BzLm1hc3RlclBhcmFtZXRlcnMudHJhbnNwb3NpdGlvbik7bGV0IHQ9TWF0aC50cnVuYyhlKSxuPXRoaXMuY2hhbm5lbFRyYW5zcG9zZUtleVNoaWZ0K3RoaXMuY3VzdG9tQ29udHJvbGxlcnNbSUEuY2hhbm5lbFRyYW5zcG9zZUZpbmVdLzEwMDt0aGlzLmRydW1DaGFubmVsJiYhQXx8ZT09PW58fCh0IT09dGhpcy5jaGFubmVsVHJhbnNwb3NlS2V5U2hpZnQmJnRoaXMuc3RvcEFsbE5vdGVzKCksdGhpcy5jaGFubmVsVHJhbnNwb3NlS2V5U2hpZnQ9dCx0aGlzLnNldEN1c3RvbUNvbnRyb2xsZXIoSUEuY2hhbm5lbFRyYW5zcG9zZUZpbmUsKGUtdCkqMTAwKSx0aGlzLnNlbmRDaGFubmVsUHJvcGVydHkoKSl9c2V0T2N0YXZlVHVuaW5nKGUpe2lmKGUubGVuZ3RoIT09MTIpdGhyb3cgbmV3IEVycm9yKCJUdW5pbmcgaXMgbm90IHRoZSBsZW5ndGggb2YgMTIuIik7dGhpcy5jaGFubmVsT2N0YXZlVHVuaW5nPW5ldyBJbnQ4QXJyYXkoMTI4KTtmb3IobGV0IEE9MDtBPDEyODtBKyspdGhpcy5jaGFubmVsT2N0YXZlVHVuaW5nW0FdPWVbQSUxMl19c2V0TW9kdWxhdGlvbkRlcHRoKGUpe2U9TWF0aC5yb3VuZChlKSxwKGAlY0NoYW5uZWwgJHt0aGlzLmNoYW5uZWxOdW1iZXJ9IG1vZHVsYXRpb24gZGVwdGguIENlbnRzOiAlYyR7ZX1gLGMuaW5mbyxjLnZhbHVlKSx0aGlzLnNldEN1c3RvbUNvbnRyb2xsZXIoSUEubW9kdWxhdGlvbk11bHRpcGxpZXIsZS81MCl9c2V0VHVuaW5nKGUsQT0hMCl7ZT1NYXRoLnJvdW5kKGUpLHRoaXMuc2V0Q3VzdG9tQ29udHJvbGxlcihJQS5jaGFubmVsVHVuaW5nLGUpLEEmJnAoYCVjRmluZSB0dW5pbmcgZm9yICVjJHt0aGlzLmNoYW5uZWxOdW1iZXJ9JWMgaXMgbm93IHNldCB0byAlYyR7ZX0lYyBjZW50cy5gLGMuaW5mbyxjLnJlY29nbml6ZWQsYy5pbmZvLGMudmFsdWUsYy5pbmZvKX1waXRjaFdoZWVsKGUpe3RoaXMubG9ja2VkQ29udHJvbGxlcnNbbUErai5waXRjaFdoZWVsXXx8KHRoaXMuc3ludGhQcm9wcy5jYWxsRXZlbnQoInBpdGNoV2hlZWwiLHtjaGFubmVsOnRoaXMuY2hhbm5lbE51bWJlcixwaXRjaDplfSksdGhpcy5taWRpQ29udHJvbGxlcnNbbUErai5waXRjaFdoZWVsXT1lLHRoaXMudm9pY2VzLmZvckVhY2goQT0+dGhpcy5jb21wdXRlTW9kdWxhdG9ycyhBLDAsai5waXRjaFdoZWVsKSksdGhpcy5zZW5kQ2hhbm5lbFByb3BlcnR5KCkpfWNoYW5uZWxQcmVzc3VyZShlKXt0aGlzLm1pZGlDb250cm9sbGVyc1ttQStqLmNoYW5uZWxQcmVzc3VyZV09ZTw8Nyx0aGlzLnVwZGF0ZUNoYW5uZWxUdW5pbmcoKSx0aGlzLnZvaWNlcy5mb3JFYWNoKEE9PnRoaXMuY29tcHV0ZU1vZHVsYXRvcnMoQSwwLGouY2hhbm5lbFByZXNzdXJlKSksdGhpcy5zeW50aFByb3BzLmNhbGxFdmVudCgiY2hhbm5lbFByZXNzdXJlIix7Y2hhbm5lbDp0aGlzLmNoYW5uZWxOdW1iZXIscHJlc3N1cmU6ZX0pfXBvbHlQcmVzc3VyZShlLEEpe3RoaXMudm9pY2VzLmZvckVhY2godD0+e3QubWlkaU5vdGU9PT1lJiYodC5wcmVzc3VyZT1BLHRoaXMuY29tcHV0ZU1vZHVsYXRvcnModCwwLGoucG9seVByZXNzdXJlKSl9KSx0aGlzLnN5bnRoUHJvcHMuY2FsbEV2ZW50KCJwb2x5UHJlc3N1cmUiLHtjaGFubmVsOnRoaXMuY2hhbm5lbE51bWJlcixtaWRpTm90ZTplLHByZXNzdXJlOkF9KX1zZXRDdXN0b21Db250cm9sbGVyKGUsQSl7dGhpcy5jdXN0b21Db250cm9sbGVyc1tlXT1BLHRoaXMudXBkYXRlQ2hhbm5lbFR1bmluZygpfXVwZGF0ZUNoYW5uZWxUdW5pbmcoKXt0aGlzLmNoYW5uZWxUdW5pbmdDZW50cz10aGlzLmN1c3RvbUNvbnRyb2xsZXJzW0lBLmNoYW5uZWxUdW5pbmddK3RoaXMuY3VzdG9tQ29udHJvbGxlcnNbSUEuY2hhbm5lbFRyYW5zcG9zZUZpbmVdK3RoaXMuY3VzdG9tQ29udHJvbGxlcnNbSUEubWFzdGVyVHVuaW5nXSt0aGlzLmN1c3RvbUNvbnRyb2xsZXJzW0lBLmNoYW5uZWxUdW5pbmdTZW1pdG9uZXNdKjEwMH1yZW5kZXJBdWRpbyhlLEEsdCxuLHMsYSxyLEkpe3RoaXMudm9pY2VzPXRoaXMudm9pY2VzLmZpbHRlcihvPT4hdGhpcy5yZW5kZXJWb2ljZShvLHRoaXMuc3ludGguY3VycmVudFN5bnRoVGltZSxlLEEsdCxuLHMsYSxyLEkpKX1zZXRQcmVzZXRMb2NrKGUpe3RoaXMubG9ja1ByZXNldCE9PWUmJih0aGlzLmxvY2tQcmVzZXQ9ZSxlJiYodGhpcy5sb2NrZWRTeXN0ZW09dGhpcy5zeW50aFByb3BzLm1hc3RlclBhcmFtZXRlcnMubWlkaVN5c3RlbSkpfXNldERydW1zKGUpe2lmKGZBLmlzU3lzdGVtWEcodGhpcy5jaGFubmVsU3lzdGVtKSlpZihlKXRoaXMuc2V0QmFua01TQihmQS5nZXREcnVtQmFuayh0aGlzLmNoYW5uZWxTeXN0ZW0pKSx0aGlzLnNldEJhbmtMU0IoMCk7ZWxzZXtpZih0aGlzLmNoYW5uZWxOdW1iZXIlMTY9PT1TZSl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBkaXNhYmxlIGRydW1zIG9uIGNoYW5uZWwgJHt0aGlzLmNoYW5uZWxOdW1iZXJ9IGZvciBYRy5gKTt0aGlzLnNldEJhbmtNU0IoMCksdGhpcy5zZXRCYW5rTFNCKDApfWVsc2UgdGhpcy5zZXRHU0RydW1zKGUpO3RoaXMuc2V0RHJ1bUZsYWcoZSksdGhpcy5wcm9ncmFtQ2hhbmdlKHRoaXMucGF0Y2gucHJvZ3JhbSl9c2V0UGF0Y2goZSl7dGhpcy5zZXRCYW5rTVNCKGUuYmFua01TQiksdGhpcy5zZXRCYW5rTFNCKGUuYmFua0xTQiksdGhpcy5zZXRHU0RydW1zKGUuaXNHTUdTRHJ1bSksdGhpcy5wcm9ncmFtQ2hhbmdlKGUucHJvZ3JhbSl9c2V0R1NEcnVtcyhlKXtlIT09dGhpcy5wYXRjaC5pc0dNR1NEcnVtJiYodGhpcy5zZXRCYW5rTFNCKDApLHRoaXMuc2V0QmFua01TQigwKSx0aGlzLnBhdGNoLmlzR01HU0RydW09ZSl9c2V0VmlicmF0byhlLEEsdCl7dGhpcy5sb2NrR1NOUlBOUGFyYW1zfHwodGhpcy5jaGFubmVsVmlicmF0by5yYXRlPUEsdGhpcy5jaGFubmVsVmlicmF0by5kZWxheT10LHRoaXMuY2hhbm5lbFZpYnJhdG8uZGVwdGg9ZSl9ZGlzYWJsZUFuZExvY2tHU05SUE4oKXt0aGlzLmxvY2tHU05SUE5QYXJhbXM9ITAsdGhpcy5jaGFubmVsVmlicmF0by5yYXRlPTAsdGhpcy5jaGFubmVsVmlicmF0by5kZWxheT0wLHRoaXMuY2hhbm5lbFZpYnJhdG8uZGVwdGg9MH1yZXNldEdlbmVyYXRvck92ZXJyaWRlcygpe3RoaXMuZ2VuZXJhdG9yT3ZlcnJpZGVzLmZpbGwoVnMpLHRoaXMuZ2VuZXJhdG9yT3ZlcnJpZGVzRW5hYmxlZD0hMX1zZXRHZW5lcmF0b3JPdmVycmlkZShlLEEsdD0hMSl7dGhpcy5nZW5lcmF0b3JPdmVycmlkZXNbZV09QSx0aGlzLmdlbmVyYXRvck92ZXJyaWRlc0VuYWJsZWQ9ITAsdCYmdGhpcy52b2ljZXMuZm9yRWFjaChuPT57bi5nZW5lcmF0b3JzW2VdPUEsdGhpcy5jb21wdXRlTW9kdWxhdG9ycyhuKX0pfXJlc2V0R2VuZXJhdG9yT2Zmc2V0cygpe3RoaXMuZ2VuZXJhdG9yT2Zmc2V0cy5maWxsKDApLHRoaXMuZ2VuZXJhdG9yT2Zmc2V0c0VuYWJsZWQ9ITF9c2V0R2VuZXJhdG9yT2Zmc2V0KGUsQSl7dGhpcy5nZW5lcmF0b3JPZmZzZXRzW2VdPUEqeFtlXS5ucnBuLHRoaXMuZ2VuZXJhdG9yT2Zmc2V0c0VuYWJsZWQ9ITAsdGhpcy52b2ljZXMuZm9yRWFjaCh0PT57dGhpcy5jb21wdXRlTW9kdWxhdG9ycyh0KX0pfWtpbGxOb3RlKGUsQT0tMTJlMyl7ZSs9dGhpcy5jdXN0b21Db250cm9sbGVyc1tJQS5jaGFubmVsS2V5U2hpZnRdLHRoaXMudm9pY2VzLmZvckVhY2godD0+e3QucmVhbEtleT09PWUmJih0Lm1vZHVsYXRlZEdlbmVyYXRvcnNbaS5yZWxlYXNlVm9sRW52XT1BLHQucmVsZWFzZSh0aGlzLnN5bnRoLmN1cnJlbnRTeW50aFRpbWUpKX0pfXN0b3BBbGxOb3RlcyhlPSExKXtlPyh0aGlzLnZvaWNlcy5sZW5ndGg9MCx0aGlzLnN1c3RhaW5lZFZvaWNlcy5sZW5ndGg9MCx0aGlzLnNlbmRDaGFubmVsUHJvcGVydHkoKSk6KHRoaXMudm9pY2VzLmZvckVhY2goQT0+e0EuaXNJblJlbGVhc2V8fEEucmVsZWFzZSh0aGlzLnN5bnRoLmN1cnJlbnRTeW50aFRpbWUpfSksdGhpcy5zdXN0YWluZWRWb2ljZXMuZm9yRWFjaChBPT57QS5yZWxlYXNlKHRoaXMuc3ludGguY3VycmVudFN5bnRoVGltZSl9KSksdGhpcy5zeW50aFByb3BzLmNhbGxFdmVudCgic3RvcEFsbCIse2NoYW5uZWw6dGhpcy5jaGFubmVsTnVtYmVyLGZvcmNlOmV9KX1tdXRlQ2hhbm5lbChlKXtlJiZ0aGlzLnN0b3BBbGxOb3RlcyghMCksdGhpcy5faXNNdXRlZD1lLHRoaXMuc2VuZENoYW5uZWxQcm9wZXJ0eSgpLHRoaXMuc3ludGhQcm9wcy5jYWxsRXZlbnQoIm11dGVDaGFubmVsIix7Y2hhbm5lbDp0aGlzLmNoYW5uZWxOdW1iZXIsaXNNdXRlZDplfSl9c2VuZENoYW5uZWxQcm9wZXJ0eSgpe2lmKCF0aGlzLnN5bnRoLmVuYWJsZUV2ZW50U3lzdGVtKXJldHVybjtsZXQgZT17dm9pY2VzQW1vdW50OnRoaXMudm9pY2VzLmxlbmd0aCxwaXRjaFdoZWVsOnRoaXMubWlkaUNvbnRyb2xsZXJzW21BK2oucGl0Y2hXaGVlbF0scGl0Y2hXaGVlbFJhbmdlOnRoaXMubWlkaUNvbnRyb2xsZXJzW21BK2oucGl0Y2hXaGVlbFJhbmdlXS8xMjgsaXNNdXRlZDp0aGlzLmlzTXV0ZWQsdHJhbnNwb3NpdGlvbjp0aGlzLmNoYW5uZWxUcmFuc3Bvc2VLZXlTaGlmdCt0aGlzLmN1c3RvbUNvbnRyb2xsZXJzW0lBLmNoYW5uZWxUcmFuc3Bvc2VGaW5lXS8xMDAsaXNEcnVtOnRoaXMuZHJ1bUNoYW5uZWx9O3RoaXMuc3ludGhQcm9wcy5jYWxsRXZlbnQoImNoYW5uZWxQcm9wZXJ0eUNoYW5nZSIse2NoYW5uZWw6dGhpcy5jaGFubmVsTnVtYmVyLHByb3BlcnR5OmV9KX1zZXRCYW5rTVNCKGUpe3RoaXMubG9ja1ByZXNldHx8KHRoaXMucGF0Y2guYmFua01TQj1lKX1zZXRCYW5rTFNCKGUpe3RoaXMubG9ja1ByZXNldHx8KHRoaXMucGF0Y2guYmFua0xTQj1lKX1zZXREcnVtRmxhZyhlKXt0aGlzLmxvY2tQcmVzZXR8fCF0aGlzLnByZXNldHx8dGhpcy5kcnVtQ2hhbm5lbCE9PWUmJihlPyh0aGlzLmNoYW5uZWxUcmFuc3Bvc2VLZXlTaGlmdD0wLHRoaXMuZHJ1bUNoYW5uZWw9ITApOnRoaXMuZHJ1bUNoYW5uZWw9ITEsdGhpcy5zeW50aFByb3BzLmNhbGxFdmVudCgiZHJ1bUNoYW5nZSIse2NoYW5uZWw6dGhpcy5jaGFubmVsTnVtYmVyLGlzRHJ1bUNoYW5uZWw6dGhpcy5kcnVtQ2hhbm5lbH0pKX19LHluPTIwO2FzeW5jIGZ1bmN0aW9uIHVyKGUsQSx0LG4scyxhLHIpe2xldCBJPTAsbz0wLGc9W107Zm9yKGxldCBoIG9mIGUuc2FtcGxlcyl7biYmYSYmYXdhaXQgaC5jb21wcmVzc1NhbXBsZShhKSxzJiZoLnNldEF1ZGlvRGF0YShoLmdldEF1ZGlvRGF0YSgpLGguc2FtcGxlUmF0ZSk7bGV0IEM9aC5nZXRSYXdEYXRhKCEwKTtJKyssYXdhaXQgcj8uKGgubmFtZSxJLGUuc2FtcGxlcy5sZW5ndGgpLHAoYCVjRW5jb2RlZCBzYW1wbGUgJWMke0l9LiAke2gubmFtZX0lYyBvZiAlYyR7ZS5zYW1wbGVzLmxlbmd0aH0lYy4gQ29tcHJlc3NlZDogJWMke2guaXNDb21wcmVzc2VkfSVjLmAsYy5pbmZvLGMucmVjb2duaXplZCxjLmluZm8sYy5yZWNvZ25pemVkLGMuaW5mbyxoLmlzQ29tcHJlc3NlZD9jLnJlY29nbml6ZWQ6Yy51bnJlY29nbml6ZWQsYy5pbmZvKSxvKz1DLmxlbmd0aCsoaC5pc0NvbXByZXNzZWQ/MDo5MiksZy5wdXNoKEMpfW8lMiE9PTAmJm8rKztsZXQgQj1uZXcgWShvK3luKTtrQShCLCJMSVNUIiksaHQoQixvK3luLTgsNCksa0EoQiwic2R0YSIpLGtBKEIsInNtcGwiKSxodChCLG8sNCk7bGV0IGQ9MDtyZXR1cm4gZS5zYW1wbGVzLmZvckVhY2goKGgsQyk9PntsZXQgUT1nW0NdO0Iuc2V0KFEsZCt5bik7bGV0IG0seTtoLmlzQ29tcHJlc3NlZD8obT1kLHk9bStRLmxlbmd0aCk6KG09ZC8yLHk9bStRLmxlbmd0aC8yLGQrPTkyKSxkKz1RLmxlbmd0aCxBLnB1c2gobSksdC5wdXNoKHkpfSksQn12YXIgZnI9NDhlMyxadD1jbGFzc3tuYW1lO3NhbXBsZVJhdGU7b3JpZ2luYWxLZXk7cGl0Y2hDb3JyZWN0aW9uO2xpbmtlZFNhbXBsZTtzYW1wbGVUeXBlO2xvb3BTdGFydDtsb29wRW5kO2xpbmtlZFRvPVtdO2RhdGFPdmVycmlkZGVuPSEwO2NvbXByZXNzZWREYXRhO2F1ZGlvRGF0YTtjb25zdHJ1Y3RvcihlLEEsdCxuLHMsYSxyKXt0aGlzLm5hbWU9ZSx0aGlzLnNhbXBsZVJhdGU9QSx0aGlzLm9yaWdpbmFsS2V5PXQsdGhpcy5waXRjaENvcnJlY3Rpb249bix0aGlzLmxvb3BTdGFydD1hLHRoaXMubG9vcEVuZD1yLHRoaXMuc2FtcGxlVHlwZT1zfWdldCBpc0NvbXByZXNzZWQoKXtyZXR1cm4gdGhpcy5jb21wcmVzc2VkRGF0YSE9PXZvaWQgMH1nZXQgaXNMaW5rZWQoKXtyZXR1cm4gdGhpcy5zYW1wbGVUeXBlPT09d0EucmlnaHRTYW1wbGV8fHRoaXMuc2FtcGxlVHlwZT09PXdBLmxlZnRTYW1wbGV8fHRoaXMuc2FtcGxlVHlwZT09PXdBLmxpbmtlZFNhbXBsZX1nZXQgdXNlQ291bnQoKXtyZXR1cm4gdGhpcy5saW5rZWRUby5sZW5ndGh9Z2V0UmF3RGF0YShlKXtyZXR1cm4gdGhpcy5jb21wcmVzc2VkRGF0YSYmZSYmIXRoaXMuZGF0YU92ZXJyaWRkZW4/dGhpcy5jb21wcmVzc2VkRGF0YTp0aGlzLmVuY29kZVMxNkxFKCl9cmVzYW1wbGVEYXRhKGUpe2xldCBBPXRoaXMuZ2V0QXVkaW9EYXRhKCksdD1lL3RoaXMuc2FtcGxlUmF0ZSxuPW5ldyBGbG9hdDMyQXJyYXkoTWF0aC5mbG9vcihBLmxlbmd0aCp0KSk7Zm9yKGxldCBzPTA7czxuLmxlbmd0aDtzKyspbltzXT1BW01hdGguZmxvb3IocyooMS90KSldO0E9bix0aGlzLnNhbXBsZVJhdGU9ZSx0aGlzLmxvb3BTdGFydD1NYXRoLmZsb29yKHRoaXMubG9vcFN0YXJ0KnQpLHRoaXMubG9vcEVuZD1NYXRoLmZsb29yKHRoaXMubG9vcEVuZCp0KSx0aGlzLmF1ZGlvRGF0YT1BfWFzeW5jIGNvbXByZXNzU2FtcGxlKGUpe2lmKCF0aGlzLmlzQ29tcHJlc3NlZCl0cnl7bGV0IEE9dGhpcy5nZXRBdWRpb0RhdGEoKTsodGhpcy5zYW1wbGVSYXRlPDhlM3x8dGhpcy5zYW1wbGVSYXRlPjk2ZTMpJiYodGhpcy5yZXNhbXBsZURhdGEoZnIpLEE9dGhpcy5nZXRBdWRpb0RhdGEoKSk7bGV0IHQ9YXdhaXQgZShBLHRoaXMuc2FtcGxlUmF0ZSk7dGhpcy5zZXRDb21wcmVzc2VkRGF0YSh0KX1jYXRjaChBKXtzQShgRmFpbGVkIHRvIGNvbXByZXNzICR7dGhpcy5uYW1lfS4gTGVhdmluZyBhcyB1bmNvbXByZXNzZWQhYCxBKSx0aGlzLmNvbXByZXNzZWREYXRhPXZvaWQgMH19c2V0U2FtcGxlVHlwZShlKXtpZih0aGlzLnNhbXBsZVR5cGU9ZSx0aGlzLmlzTGlua2VkfHwodGhpcy5saW5rZWRTYW1wbGUmJih0aGlzLmxpbmtlZFNhbXBsZS5saW5rZWRTYW1wbGU9dm9pZCAwLHRoaXMubGlua2VkU2FtcGxlLnNhbXBsZVR5cGU9ZSksdGhpcy5saW5rZWRTYW1wbGU9dm9pZCAwKSwoZSYzMjc2OCk+MCl0aHJvdyBuZXcgRXJyb3IoIlJPTSBzYW1wbGVzIGFyZSBub3Qgc3VwcG9ydGVkLiIpfXVubGlua1NhbXBsZSgpe3RoaXMuc2V0U2FtcGxlVHlwZSh3QS5tb25vU2FtcGxlKX1zZXRMaW5rZWRTYW1wbGUoZSxBKXtpZihlLmxpbmtlZFNhbXBsZSl0aHJvdyBuZXcgRXJyb3IoYCR7ZS5uYW1lfSBpcyBsaW5rZWQgdHAgJHtlLmxpbmtlZFNhbXBsZS5uYW1lfS4gVW5saW5rIGl0IGZpcnN0LmApO2lmKHRoaXMubGlua2VkU2FtcGxlPWUsZS5saW5rZWRTYW1wbGU9dGhpcyxBPT09d0EubGVmdFNhbXBsZSl0aGlzLnNldFNhbXBsZVR5cGUod0EubGVmdFNhbXBsZSksZS5zZXRTYW1wbGVUeXBlKHdBLnJpZ2h0U2FtcGxlKTtlbHNlIGlmKEE9PT13QS5yaWdodFNhbXBsZSl0aGlzLnNldFNhbXBsZVR5cGUod0EucmlnaHRTYW1wbGUpLGUuc2V0U2FtcGxlVHlwZSh3QS5sZWZ0U2FtcGxlKTtlbHNlIGlmKEE9PT13QS5saW5rZWRTYW1wbGUpdGhpcy5zZXRTYW1wbGVUeXBlKHdBLmxpbmtlZFNhbXBsZSksZS5zZXRTYW1wbGVUeXBlKHdBLmxpbmtlZFNhbXBsZSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2FtcGxlIHR5cGU6ICIrQSl9bGlua1RvKGUpe3RoaXMubGlua2VkVG8ucHVzaChlKX11bmxpbmtGcm9tKGUpe2xldCBBPXRoaXMubGlua2VkVG8uaW5kZXhPZihlKTtpZihBPDApe3NBKGBDYW5ub3QgdW5saW5rICR7ZS5uYW1lfSBmcm9tICR7dGhpcy5uYW1lfTogbm90IGxpbmtlZC5gKTtyZXR1cm59dGhpcy5saW5rZWRUby5zcGxpY2UoQSwxKX1nZXRBdWRpb0RhdGEoKXtpZih0aGlzLmF1ZGlvRGF0YSlyZXR1cm4gdGhpcy5hdWRpb0RhdGE7aWYodGhpcy5pc0NvbXByZXNzZWQpcmV0dXJuIHRoaXMuYXVkaW9EYXRhPXRoaXMuZGVjb2RlVm9yYmlzKCksdGhpcy5hdWRpb0RhdGE7dGhyb3cgbmV3IEVycm9yKCJTYW1wbGUgZGF0YSBpcyB1bmRlZmluZWQgZm9yIGEgQmFzaWNTYW1wbGUgaW5zdGFuY2UuIil9c2V0QXVkaW9EYXRhKGUsQSl7dGhpcy5hdWRpb0RhdGE9ZSx0aGlzLnNhbXBsZVJhdGU9QSx0aGlzLmRhdGFPdmVycmlkZGVuPSEwLHRoaXMuY29tcHJlc3NlZERhdGE9dm9pZCAwfXNldENvbXByZXNzZWREYXRhKGUpe3RoaXMuYXVkaW9EYXRhPXZvaWQgMCx0aGlzLmNvbXByZXNzZWREYXRhPWUsdGhpcy5kYXRhT3ZlcnJpZGRlbj0hMX1lbmNvZGVTMTZMRSgpe2xldCBlPXRoaXMuZ2V0QXVkaW9EYXRhKCksQT1uZXcgSW50MTZBcnJheShlLmxlbmd0aCksdD1lLmxlbmd0aDtmb3IobGV0IG49MDtuPHQ7bisrKXtsZXQgcz1lW25dKjMyNzY4O3M+MzI3Njc/cz0zMjc2NzpzPC0zMjc2OCYmKHM9LTMyNzY4KSxBW25dPXN9cmV0dXJuIG5ldyBZKEEuYnVmZmVyKX1kZWNvZGVWb3JiaXMoKXtpZih0aGlzLmF1ZGlvRGF0YSlyZXR1cm4gdGhpcy5hdWRpb0RhdGE7aWYoIXRoaXMuY29tcHJlc3NlZERhdGEpdGhyb3cgbmV3IEVycm9yKCJDb21wcmVzc2VkIGRhdGEgaXMgbWlzc2luZy4iKTt0cnl7bGV0IEE9T3QuZGVjb2RlKHRoaXMuY29tcHJlc3NlZERhdGEpLmRhdGFbMF07aWYoQT09PXZvaWQgMClyZXR1cm4gc0EoYEVycm9yIGRlY29kaW5nIHNhbXBsZSAke3RoaXMubmFtZX06IFZvcmJpcyBkZWNvZGUgcmV0dXJuZWQgdW5kZWZpbmVkLmApLG5ldyBGbG9hdDMyQXJyYXkoMCk7Zm9yKGxldCB0PTA7dDxBLmxlbmd0aDt0KyspQVt0XT1NYXRoLm1heCgtMSxNYXRoLm1pbihBW3RdLC45OTk5Njk0ODI0MjE4NzUpKTtyZXR1cm4gQX1jYXRjaChlKXtyZXR1cm4gc0EoYEVycm9yIGRlY29kaW5nIHNhbXBsZSAke3RoaXMubmFtZX06ICR7ZX1gKSxuZXcgRmxvYXQzMkFycmF5KHRoaXMubG9vcEVuZCsxKX19fSxtcj1jbGFzcyBleHRlbmRzIFp0e2NvbnN0cnVjdG9yKCl7c3VwZXIoIiIsNDQxMDAsNjAsMCx3QS5tb25vU2FtcGxlLDAsMCl9fSxWbj0xNixTcj1jbGFzcyBleHRlbmRzIFp0e2xpbmtlZFNhbXBsZUluZGV4O3MxNmxlRGF0YTtzdGFydEJ5dGVPZmZzZXQ7ZW5kQnl0ZU9mZnNldDtzYW1wbGVJRDtjb25zdHJ1Y3RvcihlLEEsdCxuLHMsYSxyLEksbyxnLEIsZCl7bGV0IGg9KGcmVm4pPjA7ZyY9flZuLHN1cGVyKGUsYSxyLEksZyxuLUEvMixzLUEvMiksdGhpcy5kYXRhT3ZlcnJpZGRlbj0hMSx0aGlzLm5hbWU9ZSx0aGlzLnN0YXJ0Qnl0ZU9mZnNldD1BLHRoaXMuZW5kQnl0ZU9mZnNldD10LHRoaXMuc2FtcGxlSUQ9ZDtsZXQgQz1CIGluc3RhbmNlb2YgWT9CLmN1cnJlbnRJbmRleDowO0IgaW5zdGFuY2VvZiBZP2g/KHRoaXMubG9vcFN0YXJ0Kz10aGlzLnN0YXJ0Qnl0ZU9mZnNldC8yLHRoaXMubG9vcEVuZCs9dGhpcy5zdGFydEJ5dGVPZmZzZXQvMix0aGlzLnNldENvbXByZXNzZWREYXRhKEIuc2xpY2UodGhpcy5zdGFydEJ5dGVPZmZzZXQvMitDLHRoaXMuZW5kQnl0ZU9mZnNldC8yK0MpKSk6dGhpcy5zMTZsZURhdGE9Qi5zbGljZShDK3RoaXMuc3RhcnRCeXRlT2Zmc2V0LEMrdGhpcy5lbmRCeXRlT2Zmc2V0KTp0aGlzLnNldEF1ZGlvRGF0YShCLnNsaWNlKHRoaXMuc3RhcnRCeXRlT2Zmc2V0LzIsdGhpcy5lbmRCeXRlT2Zmc2V0LzIpLGEpLHRoaXMubGlua2VkU2FtcGxlSW5kZXg9b31nZXRMaW5rZWRTYW1wbGUoZSl7aWYodGhpcy5saW5rZWRTYW1wbGV8fCF0aGlzLmlzTGlua2VkKXJldHVybjtsZXQgQT1lW3RoaXMubGlua2VkU2FtcGxlSW5kZXhdO0E/QS5saW5rZWRTYW1wbGU/KHAoYCVjSW52YWxpZCBsaW5rZWQgc2FtcGxlIGZvciAke3RoaXMubmFtZX06ICR7QS5uYW1lfSBpcyBhbHJlYWR5IGxpbmtlZCB0byAke0EubGlua2VkU2FtcGxlLm5hbWV9YCxjLndhcm4pLHRoaXMudW5saW5rU2FtcGxlKCkpOnRoaXMuc2V0TGlua2VkU2FtcGxlKEEsdGhpcy5zYW1wbGVUeXBlKToocChgJWNJbnZhbGlkIGxpbmtlZCBzYW1wbGUgZm9yICR7dGhpcy5uYW1lfS4gU2V0dGluZyB0byBtb25vLmAsYy53YXJuKSx0aGlzLnVubGlua1NhbXBsZSgpKX1nZXRBdWRpb0RhdGEoKXtpZih0aGlzLmF1ZGlvRGF0YSlyZXR1cm4gdGhpcy5hdWRpb0RhdGE7aWYodGhpcy5pc0NvbXByZXNzZWQpcmV0dXJuIHN1cGVyLmdldEF1ZGlvRGF0YSgpO2lmKCF0aGlzLnMxNmxlRGF0YSl0aHJvdyBjb25zb2xlLmVycm9yKHRoaXMpLG5ldyBFcnJvcigiVW5leHBlY3RlZCBsYWNrIG9mIGF1ZGlvIGRhdGEuIik7bGV0IGU9dGhpcy5lbmRCeXRlT2Zmc2V0LXRoaXMuc3RhcnRCeXRlT2Zmc2V0O2lmKGU8MSlyZXR1cm4gc0EoYEludmFsaWQgc2FtcGxlICR7dGhpcy5uYW1lfSEgSW52YWxpZCBsZW5ndGg6ICR7ZX1gKSxuZXcgRmxvYXQzMkFycmF5KDEpO2xldCBBPW5ldyBGbG9hdDMyQXJyYXkoZS8yKSx0PW5ldyBJbnQxNkFycmF5KHRoaXMuczE2bGVEYXRhLmJ1ZmZlcik7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspQVtuXT10W25dLzMyNzY4O3JldHVybiB0aGlzLmF1ZGlvRGF0YT1BLEF9Z2V0UmF3RGF0YShlKXtyZXR1cm4gdGhpcy5kYXRhT3ZlcnJpZGRlbnx8dGhpcy5jb21wcmVzc2VkRGF0YT9zdXBlci5nZXRSYXdEYXRhKGUpOnRoaXMuczE2bGVEYXRhPz9uZXcgVWludDhBcnJheSgwKX19O2Z1bmN0aW9uIGJzKGUsQSx0PSEwKXtsZXQgbj1bXSxzPTA7Zm9yKDtlLmRhdGEubGVuZ3RoPmUuZGF0YS5jdXJyZW50SW5kZXg7KXtsZXQgYT1wcihzLGUuZGF0YSxBKTtuLnB1c2goYSkscysrfXJldHVybiBuLnBvcCgpLHQmJm4uZm9yRWFjaChhPT5hLmdldExpbmtlZFNhbXBsZShuKSksbn1mdW5jdGlvbiBwcihlLEEsdCl7bGV0IG49aEEoQSwyMCkscz1OKEEsNCkqMixhPU4oQSw0KSoyLHI9TihBLDQpLEk9TihBLDQpLG89TihBLDQpLGc9QVtBLmN1cnJlbnRJbmRleCsrXTtnPjEyNyYmKGc9NjApO2xldCBCPXFhKEFbQS5jdXJyZW50SW5kZXgrK10pLGQ9TihBLDIpLGg9TihBLDIpO3JldHVybiBuZXcgU3IobixzLGEscixJLG8sZyxCLGQsaCx0LGUpfWZ1bmN0aW9uIHlyKGUsQSx0KXtsZXQgcz00NiooZS5zYW1wbGVzLmxlbmd0aCsxKSxhPW5ldyBZKHMpLHI9bmV3IFkocyksST0wO2Uuc2FtcGxlcy5mb3JFYWNoKChCLGQpPT57a0EoYSxCLm5hbWUuc3Vic3RyaW5nKDAsMjApLDIwKSxrQShyLEIubmFtZS5zdWJzdHJpbmcoMjApLDIwKTtsZXQgaD1BW2RdO2dBKGEsaCksci5jdXJyZW50SW5kZXgrPTQ7bGV0IEM9dFtkXTtnQShhLEMpLHIuY3VycmVudEluZGV4Kz00O2xldCBRPUIubG9vcFN0YXJ0K2gsbT1CLmxvb3BFbmQraDtCLmlzQ29tcHJlc3NlZCYmKFEtPWgsbS09aCksZ0EoYSxRKSxnQShhLG0pLGdBKGEsQi5zYW1wbGVSYXRlKSxhW2EuY3VycmVudEluZGV4KytdPUIub3JpZ2luYWxLZXksYVthLmN1cnJlbnRJbmRleCsrXT1CLnBpdGNoQ29ycmVjdGlvbixyLmN1cnJlbnRJbmRleCs9MTQ7bGV0IHk9Qi5saW5rZWRTYW1wbGU/ZS5zYW1wbGVzLmluZGV4T2YoQi5saW5rZWRTYW1wbGUpOjA7SihhLE1hdGgubWF4KDAseSkmNjU1MzUpLEoocixNYXRoLm1heCgwLHkpPj4xNiksST1NYXRoLm1heChJLHkpO2xldCBGPUIuc2FtcGxlVHlwZTtCLmlzQ29tcHJlc3NlZCYmKEZ8PVZuKSxKKGEsRiksci5jdXJyZW50SW5kZXgrPTJ9KSxrQShhLCJFT1MiLDQ2KSxrQShyLCJFT1MiLDQ2KTtsZXQgbz1jQSgic2hkciIsYSksZz1jQSgic2hkciIscik7cmV0dXJue3BkdGE6byx4ZHRhOmd9fWZ1bmN0aW9uIHZzKGUsQT0hMSl7bGV0IHQ9QT9lLnByZXNldHM6ZS5pbnN0cnVtZW50cyxuPUE/InBnZW4iOiJpZ2VuIixzPUE/InBtb2QiOiJpbW9kIixhPUE/InBiYWciOiJpYmFnIixyPUE/InBoZHIiOiJpbnN0IixJPUE/ZGE6bGEsbz10Lm1hcChrPT4oayBpbnN0YW5jZW9mIHBlLGsuZ2V0U2l6ZSgpKSksZz1vLnJlZHVjZSgoayxEKT0+aytELmdlbiwwKStDdCxCPW5ldyBZKGcpLGQ9by5yZWR1Y2UoKGssRCk9PmsrRC5tb2QsMCkrbWUsaD1uZXcgWShkKSxDPW8ucmVkdWNlKChrLEQpPT5rK0QuYmFnLDApK0p0LFE9e3BkdGE6bmV3IFkoQykseGR0YTpuZXcgWShDKX0sbT1vLnJlZHVjZSgoayxEKT0+RC5oZHIraywwKStJLHk9e3BkdGE6bmV3IFkobSkseGR0YTpuZXcgWShtKX0sRj17Z2VuOjAsYmFnOjAsbW9kOjAsaGRyOjB9O3JldHVybiB0LmZvckVhY2goaz0+e2sgaW5zdGFuY2VvZiBwZSxrLndyaXRlKEIsaCxRLHksRixlKX0pLEE/KGtBKHkucGR0YSwiRU9QIiwyMCkseS5wZHRhLmN1cnJlbnRJbmRleCs9NCxKKHkucGR0YSxGLmhkciY2NTUzNSkseS5wZHRhLmN1cnJlbnRJbmRleCs9MTIsa0EoeS54ZHRhLCIiLDIwKSx5LnhkdGEuY3VycmVudEluZGV4Kz00LEooeS54ZHRhLEYuaGRyPj4xNikseS54ZHRhLmN1cnJlbnRJbmRleCs9MTIpOihrQSh5LnBkdGEsIkVPSSIsMjApLGtBKHkueGR0YSwiIiwyMCksSih5LnBkdGEsRi5oZHImNjU1MzUpLEooeS54ZHRhLEYuaGRyPj4xNikpLEooUS5wZHRhLEYuZ2VuJjY1NTM1KSxKKFEueGR0YSxGLmdlbj4+MTYpLEooUS5wZHRhLEYubW9kJjY1NTM1KSxKKFEueGR0YSxGLm1vZD4+MTYpLHt3cml0ZVhkdGE6TWF0aC5tYXgoZy9DdCxkL21lLEMvSnQsbS9JKT42NTUzNSxnZW46e3BkdGE6Y0EobixCKSx4ZHRhOmNBKHMsbmV3IFkoQ3QpKX0sbW9kOntwZHRhOmNBKHMsaCkseGR0YTpjQShzLG5ldyBZKG1lKSl9LGJhZzp7cGR0YTpjQShhLFEucGR0YSkseGR0YTpjQShhLFEueGR0YSl9LGhkcjp7cGR0YTpjQShyLHkucGR0YSkseGR0YTpjQShyLHkueGR0YSl9fX12YXIgWG49e2NvbXByZXNzOiExLGNvbXByZXNzaW9uRnVuY3Rpb246dm9pZCAwLHByb2dyZXNzRnVuY3Rpb246dm9pZCAwLHdyaXRlRGVmYXVsdE1vZHVsYXRvcnM6ITAsd3JpdGVFeHRlbmRlZExpbWl0czohMCxkZWNvbXByZXNzOiExfTthc3luYyBmdW5jdGlvbiBrcihlLEE9WG4pe2xldCB0PSRuKEEsWG4pO2lmKHQ/LmNvbXByZXNzKXtpZih0eXBlb2YgdD8uY29tcHJlc3Npb25GdW5jdGlvbiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoIk5vIGNvbXByZXNzaW9uIGZ1bmN0aW9uIHN1cHBsaWVkIGJ1dCBjb21wcmVzc2lvbiBlbmFibGVkLiIpO2lmKHQ/LmRlY29tcHJlc3MpdGhyb3cgbmV3IEVycm9yKCJEZWNvbXByZXNzZWQgYW5kIGNvbXByZXNzZWQgYXQgdGhlIHNhbWUgdGltZS4iKX1iQSgiJWNTYXZpbmcgc291bmRiYW5rLi4uIixjLmluZm8pLHAoYCVjQ29tcHJlc3Npb246ICVjJHt0Py5jb21wcmVzc3x8ImZhbHNlIn0lY2AsYy5pbmZvLGMucmVjb2duaXplZCxjLmluZm8sYy5yZWNvZ25pemVkKSxPQSgiJWNXcml0aW5nIElORk8uLi4iLGMuaW5mbyk7bGV0IG49W107ZS5zb3VuZEJhbmtJbmZvLnNvZnR3YXJlPSJTcGVzc2FTeW50aCIsKHQ/LmNvbXByZXNzfHxlLnNhbXBsZXMuc29tZShEPT5ELmlzQ29tcHJlc3NlZCkpJiYoZS5zb3VuZEJhbmtJbmZvLnZlcnNpb24ubWFqb3I9MyxlLnNvdW5kQmFua0luZm8udmVyc2lvbi5taW5vcj0wKSx0Py5kZWNvbXByZXNzJiYoZS5zb3VuZEJhbmtJbmZvLnZlcnNpb24ubWFqb3I9MixlLnNvdW5kQmFua0luZm8udmVyc2lvbi5taW5vcj00KTtsZXQgcz0oRCx2KT0+e24ucHVzaChjQShELG5lKHYsITAsITApKSl9LGE9bmV3IFkoNCk7aWYoSihhLGUuc291bmRCYW5rSW5mby52ZXJzaW9uLm1ham9yKSxKKGEsZS5zb3VuZEJhbmtJbmZvLnZlcnNpb24ubWlub3IpLG4ucHVzaChjQSgiaWZpbCIsYSkpLGUuc291bmRCYW5rSW5mby5yb21WZXJzaW9uKXtsZXQgRD1uZXcgWSg0KTtKKEQsZS5zb3VuZEJhbmtJbmZvLnJvbVZlcnNpb24ubWFqb3IpLEooRCxlLnNvdW5kQmFua0luZm8ucm9tVmVyc2lvbi5taW5vciksbi5wdXNoKGNBKCJpdmVyIixEKSl9bGV0IHI9KGUuc291bmRCYW5rSW5mbz8uY29tbWVudD8/IiIpKyhlLnNvdW5kQmFua0luZm8uc3ViamVjdD9gCiR7ZS5zb3VuZEJhbmtJbmZvLnN1YmplY3R9YDoiIik7Zm9yKGxldFtELHZdb2YgT2JqZWN0LmVudHJpZXMoZS5zb3VuZEJhbmtJbmZvKSl7bGV0IEw9RCxFPXY7aWYoRSlzd2l0Y2goTCl7Y2FzZSJuYW1lIjpzKCJJTkFNIixFKTticmVhaztjYXNlImNvbW1lbnQiOnMoIklDTVQiLHIpO2JyZWFrO2Nhc2UiY29weXJpZ2h0IjpzKCJJQ09QIixFKTticmVhaztjYXNlImNyZWF0aW9uRGF0ZSI6cygiSUNSRCIsRS50b0lTT1N0cmluZygpKTticmVhaztjYXNlImVuZ2luZWVyIjpzKCJJRU5HIixFKTticmVhaztjYXNlInByb2R1Y3QiOnMoIklQUkQiLEUpO2JyZWFrO2Nhc2Uicm9tSW5mbyI6cygiaXJvbSIsRSk7YnJlYWs7Y2FzZSJzb2Z0d2FyZSI6cygiSVNGVCIsRSk7YnJlYWs7Y2FzZSJzb3VuZEVuZ2luZSI6cygiaXNuZyIsRSk7YnJlYWs7Y2FzZSJzdWJqZWN0IjpicmVha319aWYoZS5kZWZhdWx0TW9kdWxhdG9ycy5zb21lKEQ9PkVhLmZpbmRJbmRleCh2PT5FQS5pc0lkZW50aWNhbCh2LEQsITApKT09PS0xKSYmdD8ud3JpdGVEZWZhdWx0TW9kdWxhdG9ycyl7bGV0IEQ9ZS5kZWZhdWx0TW9kdWxhdG9ycztwKGAlY1dyaXRpbmcgJWMke0QubGVuZ3RofSVjIGRlZmF1bHQgbW9kdWxhdG9ycy4uLmAsYy5pbmZvLGMucmVjb2duaXplZCxjLmluZm8pO2xldCB2PW1lK0QubGVuZ3RoKm1lLEw9bmV3IFkodik7Zm9yKGxldCBFIG9mIEQpRS53cml0ZShMKTtodChMLDAsbWUpLG4ucHVzaChjQSgiRE1PRCIsTCkpfVooKSxwKCIlY1dyaXRpbmcgU0RUQS4uLiIsYy5pbmZvKTtsZXQgbz1bXSxnPVtdLEI9YXdhaXQgdXIoZSxvLGcsdC5jb21wcmVzcyx0LmRlY29tcHJlc3MsdD8uY29tcHJlc3Npb25GdW5jdGlvbix0Py5wcm9ncmVzc0Z1bmN0aW9uKTtwKCIlY1dyaXRpbmcgUERUQS4uLiIsYy5pbmZvKSxwKCIlY1dyaXRpbmcgU0hEUi4uLiIsYy5pbmZvKTtsZXQgZD15cihlLG8sZyk7T0EoIiVjV3JpdGluZyBpbnN0cnVtZW50cy4uLiIsYy5pbmZvKTtsZXQgaD12cyhlLCExKTtaKCksT0EoIiVjV3JpdGluZyBwcmVzZXRzLi4uIixjLmluZm8pO2xldCBDPXZzKGUsITApO1ooKTtsZXQgUT1bQy5oZHIsQy5iYWcsQy5tb2QsQy5nZW4saC5oZHIsaC5iYWcsaC5tb2QsaC5nZW4sZF0sbT12QSgicGR0YSIsUS5tYXAoRD0+RC5wZHRhKSwhMCk7aWYodC53cml0ZUV4dGVuZGVkTGltaXRzJiYoaC53cml0ZVhkdGF8fEMud3JpdGVYZHRhfHxlLnByZXNldHMuc29tZShEPT5ELm5hbWUubGVuZ3RoPjIwKXx8ZS5pbnN0cnVtZW50cy5zb21lKEQ9PkQubmFtZS5sZW5ndGg+MjApfHxlLnNhbXBsZXMuc29tZShEPT5ELm5hbWUubGVuZ3RoPjIwKSkpe3AoIiVjV3JpdGluZyB0aGUgeGR0YSBjaHVuayBhcyB3cml0ZUV4ZW5kZWRMaW1pdHMgaXMgZW5hYmxlZCBhbmQgYXQgbGVhc3Qgb25lIGNvbmRpdGlvbiB3YXMgbWV0LiIsYy5pbmZvLGMudmFsdWUpO2xldCBEPXZBKCJ4ZHRhIixRLm1hcCh2PT52LnhkdGEpLCEwKTtuLnB1c2goRCl9bGV0IEY9dkEoIklORk8iLG4sITApO3AoIiVjV3JpdGluZyB0aGUgb3V0cHV0IGZpbGUuLi4iLGMuaW5mbyk7bGV0IGs9dkEoIlJJRkYiLFtuZSgic2ZiayIpLEYsQixtXSk7cmV0dXJuIHAoYCVjU2F2ZWQgc3VjY2VzZnVsbHkhIEZpbmFsIGZpbGUgc2l6ZTogJWMke2subGVuZ3RofWAsYy5pbmZvLGMucmVjb2duaXplZCksWigpLGsuYnVmZmVyfXZhciBqZT1jbGFzc3tzdGF0aWMgdmVyaWZ5SGVhZGVyKGUsLi4uQSl7Zm9yKGxldCB0IG9mIEEpaWYoZS5oZWFkZXIudG9Mb3dlckNhc2UoKT09PXQudG9Mb3dlckNhc2UoKSlyZXR1cm47dGhpcy5wYXJzaW5nRXJyb3IoYEludmFsaWQgRExTIGNodW5rIGhlYWRlciEgRXhwZWN0ZWQgIiR7QS5qb2luKCIsIG9yICIpfSIgZ290ICIke2UuaGVhZGVyLnRvTG93ZXJDYXNlKCl9ImApfXN0YXRpYyB2ZXJpZnlUZXh0KGUsLi4uQSl7Zm9yKGxldCB0IG9mIEEpaWYoZS50b0xvd2VyQ2FzZSgpPT09dC50b0xvd2VyQ2FzZSgpKXJldHVybjt0aGlzLnBhcnNpbmdFcnJvcihgRm91ckNDIGVycm9yOiBFeHBlY3RlZCAiJHtBLmpvaW4oIiwgb3IgIil9IiBnb3QgIiR7ZS50b0xvd2VyQ2FzZSgpfSJgKX1zdGF0aWMgcGFyc2luZ0Vycm9yKGUpe3Rocm93IFooKSxuZXcgRXJyb3IoYERMUyBwYXJzZSBlcnJvcjogJHtlfSBUaGUgZmlsZSBtYXkgYmUgY29ycnVwdGVkLmApfXN0YXRpYyB2ZXJpZnlBbmRSZWFkTGlzdChlLC4uLkEpe3RoaXMudmVyaWZ5SGVhZGVyKGUsIkxJU1QiKSxlLmRhdGEuY3VycmVudEluZGV4PTAsdGhpcy52ZXJpZnlUZXh0KGhBKGUuZGF0YSw0KSwuLi5BKTtsZXQgdD1bXTtmb3IoO2UuZGF0YS5sZW5ndGg+ZS5kYXRhLmN1cnJlbnRJbmRleDspdC5wdXNoKHJBKGUuZGF0YSkpO3JldHVybiB0fX0sZ3Q9MjAsa249MTYsemU9Y2xhc3MgQnQgZXh0ZW5kcyBqZXtnYWluPTA7dW5pdHlOb3RlPTYwO2ZpbmVUdW5lPTA7bG9vcHM9bmV3IEFycmF5O2Z1bE9wdGlvbnM9MjtzdGF0aWMgY29weUZyb20oQSl7bGV0IHQ9bmV3IEJ0O3JldHVybiB0LnVuaXR5Tm90ZT1BLnVuaXR5Tm90ZSx0LmdhaW49QS5nYWluLHQuZmluZVR1bmU9QS5maW5lVHVuZSx0Lmxvb3BzPUEubG9vcHMubWFwKG49Pih7Li4ubn0pKSx0LmZ1bE9wdGlvbnM9QS5mdWxPcHRpb25zLHR9c3RhdGljIHJlYWQoQSl7dGhpcy52ZXJpZnlIZWFkZXIoQSwid3NtcCIpO2xldCB0PW5ldyBCdCxuPU4oQS5kYXRhLDQpO2lmKG4hPT1ndCYmc0EoYFdzbXAgY2JTaXplIG1pc21hdGNoOiBnb3QgJHtufSwgZXhwZWN0ZWQgJHtndH0uYCksdC51bml0eU5vdGU9TihBLmRhdGEsMiksdC5maW5lVHVuZT1qbihBLmRhdGFbQS5kYXRhLmN1cnJlbnRJbmRleCsrXSxBLmRhdGFbQS5kYXRhLmN1cnJlbnRJbmRleCsrXSksdC5nYWluPU4oQS5kYXRhLDQpfDAsdC5mdWxPcHRpb25zPU4oQS5kYXRhLDQpLE4oQS5kYXRhLDQpIT09MCl7bGV0IGE9TihBLmRhdGEsNCk7YSE9PWtuJiZzQShgQ2JTaXplIGZvciBsb29wIGluIHdzbXAgbWlzbWF0Y2guIEV4cGVjdGVkICR7Z3R9LCBnb3QgJHthfS5gKTtsZXQgcj1OKEEuZGF0YSw0KSxJPU4oQS5kYXRhLDQpLG89TihBLmRhdGEsNCk7dC5sb29wcy5wdXNoKHtsb29wU3RhcnQ6SSxsb29wTGVuZ3RoOm8sbG9vcFR5cGU6cn0pfXJldHVybiB0fXN0YXRpYyBmcm9tU0ZTYW1wbGUoQSl7bGV0IHQ9bmV3IEJ0O3JldHVybiB0LnVuaXR5Tm90ZT1BLm9yaWdpbmFsS2V5LHQuZmluZVR1bmU9QS5waXRjaENvcnJlY3Rpb24sKEEubG9vcEVuZCE9PTB8fEEubG9vcFN0YXJ0IT09MCkmJnQubG9vcHMucHVzaCh7bG9vcFN0YXJ0OkEubG9vcFN0YXJ0LGxvb3BMZW5ndGg6QS5sb29wRW5kLUEubG9vcFN0YXJ0LGxvb3BUeXBlOnlzLmZvcndhcmR9KSx0fXN0YXRpYyBmcm9tU0Zab25lKEEpe2xldCB0PW5ldyBCdDt0LnVuaXR5Tm90ZT1BLmdldEdlbmVyYXRvcihpLm92ZXJyaWRpbmdSb290S2V5LEEuc2FtcGxlLm9yaWdpbmFsS2V5KSxBLmdldEdlbmVyYXRvcihpLnNjYWxlVHVuaW5nLDEwMCk9PT0wJiZBLmtleVJhbmdlLm1heC1BLmtleVJhbmdlLm1pbj09PTAmJih0LnVuaXR5Tm90ZT1BLmtleVJhbmdlLm1pbiksdC5maW5lVHVuZT1BLmZpbmVUdW5pbmcrQS5zYW1wbGUucGl0Y2hDb3JyZWN0aW9uO2xldCBuPUEuZ2V0R2VuZXJhdG9yKGkuaW5pdGlhbEF0dGVudWF0aW9uLDApKi40O3QuZ2Fpbj0tbjw8MTY7bGV0IHM9QS5nZXRHZW5lcmF0b3IoaS5zYW1wbGVNb2RlcywwKTtpZihzIT09MCl7bGV0IGE9QS5zYW1wbGUubG9vcFN0YXJ0K0EuZ2V0R2VuZXJhdG9yKGkuc3RhcnRsb29wQWRkcnNPZmZzZXQsMCkrQS5nZXRHZW5lcmF0b3IoaS5zdGFydGxvb3BBZGRyc0NvYXJzZU9mZnNldCwwKSozMjc2OCxyPUEuc2FtcGxlLmxvb3BFbmQrQS5nZXRHZW5lcmF0b3IoaS5lbmRsb29wQWRkcnNPZmZzZXQsMCkrQS5nZXRHZW5lcmF0b3IoaS5lbmRsb29wQWRkcnNDb2Fyc2VPZmZzZXQsMCkqMzI3NjgsSTtzd2l0Y2gocyl7Y2FzZSAxOmRlZmF1bHQ6ST0wO2JyZWFrO2Nhc2UgMzpJPTF9dC5sb29wcy5wdXNoKHtsb29wVHlwZTpJLGxvb3BTdGFydDphLGxvb3BMZW5ndGg6ci1hfSl9cmV0dXJuIHR9dG9TRlpvbmUoQSx0KXtsZXQgbj0wLHM9dGhpcy5sb29wc1swXTtzJiYobj1zLmxvb3BUeXBlPT09eXMubG9vcEFuZFJlbGVhc2U/MzoxKSxuIT09MCYmQS5zZXRHZW5lcmF0b3IoaS5zYW1wbGVNb2RlcyxuKTtsZXQgST0tKHRoaXMuZ2Fpbj4+MTYpLy40O2lmKEkhPT0wJiZBLnNldEdlbmVyYXRvcihpLmluaXRpYWxBdHRlbnVhdGlvbixJKSxBLmZpbmVUdW5pbmc9dGhpcy5maW5lVHVuZS10LnBpdGNoQ29ycmVjdGlvbix0aGlzLnVuaXR5Tm90ZSE9PXQub3JpZ2luYWxLZXkmJkEuc2V0R2VuZXJhdG9yKGkub3ZlcnJpZGluZ1Jvb3RLZXksdGhpcy51bml0eU5vdGUpLHMpe2xldCBvPXMubG9vcFN0YXJ0LXQubG9vcFN0YXJ0LEI9cy5sb29wU3RhcnQrcy5sb29wTGVuZ3RoLXQubG9vcEVuZDtpZihvIT09MCl7bGV0IGQ9byUzMjc2ODtBLnNldEdlbmVyYXRvcihpLnN0YXJ0bG9vcEFkZHJzT2Zmc2V0LGQpO2xldCBoPU1hdGgudHJ1bmMoby8zMjc2OCk7aCE9PTAmJkEuc2V0R2VuZXJhdG9yKGkuc3RhcnRsb29wQWRkcnNDb2Fyc2VPZmZzZXQsaCl9aWYoQiE9PTApe2xldCBkPUIlMzI3Njg7QS5zZXRHZW5lcmF0b3IoaS5lbmRsb29wQWRkcnNPZmZzZXQsZCk7bGV0IGg9TWF0aC50cnVuYyhCLzMyNzY4KTtoIT09MCYmQS5zZXRHZW5lcmF0b3IoaS5lbmRsb29wQWRkcnNDb2Fyc2VPZmZzZXQsaCl9fX13cml0ZSgpe2xldCBBPW5ldyBZKGd0K3RoaXMubG9vcHMubGVuZ3RoKmtuKTtyZXR1cm4gZ0EoQSxndCksSihBLHRoaXMudW5pdHlOb3RlKSxKKEEsdGhpcy5maW5lVHVuZSksZ0EoQSx0aGlzLmdhaW4pLGdBKEEsdGhpcy5mdWxPcHRpb25zKSxnQShBLHRoaXMubG9vcHMubGVuZ3RoKSx0aGlzLmxvb3BzLmZvckVhY2godD0+e2dBKEEsa24pLGdBKEEsdC5sb29wVHlwZSksZ0EoQSx0Lmxvb3BTdGFydCksZ0EoQSx0Lmxvb3BMZW5ndGgpfSksY0EoIndzbXAiLEEpfX0sRG49e1BDTToxLEFMQVc6Nn07ZnVuY3Rpb24gRHIoZSxBKXtsZXQgdD1NYXRoLnBvdygyLEEqOC0xKSxuPU1hdGgucG93KDIsQSo4KSxzLGE9ITE7QT09PTE/KHM9MjU1LGE9ITApOnM9dDtsZXQgcj1lLmxlbmd0aC9BLEk9bmV3IEZsb2F0MzJBcnJheShyKTtpZihBPT09Mil7bGV0IG89bmV3IEludDE2QXJyYXkoZS5idWZmZXIpO2ZvcihsZXQgZz0wO2c8by5sZW5ndGg7ZysrKUlbZ109b1tnXS8zMjc2OH1lbHNlIGZvcihsZXQgbz0wO288SS5sZW5ndGg7bysrKXtsZXQgZz1OKGUsQSk7YT9JW29dPWcvcy0uNTooZz49dCYmKGctPW4pLElbb109Zy9zKX1yZXR1cm4gSX1mdW5jdGlvbiB3cihlLEEpe2xldCB0PWUubGVuZ3RoL0Esbj1uZXcgRmxvYXQzMkFycmF5KHQpO2ZvcihsZXQgcz0wO3M8bi5sZW5ndGg7cysrKXtsZXQgYT1OKGUsQSkscj1hXjg1O3ImPTEyNztsZXQgST1yPj40LG89ciYxNTtJPjAmJihvKz0xNiksbz0obzw8NCkrOCxJPjEmJihvPW88PEktMSk7bGV0IGc9YT4xMjc/bzotbztuW3NdPWcvMzI2Nzh9cmV0dXJuIG59dmFyIEZyPWNsYXNzIGV4dGVuZHMgWnR7d0Zvcm1hdFRhZztieXRlc1BlclNhbXBsZTtyYXdEYXRhO2NvbnN0cnVjdG9yKGUsQSx0LG4scyxhLHIsSSxvKXtzdXBlcihlLEEsdCxuLHdBLm1vbm9TYW1wbGUscyxhKSx0aGlzLmRhdGFPdmVycmlkZGVuPSExLHRoaXMucmF3RGF0YT1yLmRhdGEsdGhpcy53Rm9ybWF0VGFnPUksdGhpcy5ieXRlc1BlclNhbXBsZT1vfWdldEF1ZGlvRGF0YSgpe2lmKCF0aGlzLnJhd0RhdGEpcmV0dXJuIG5ldyBGbG9hdDMyQXJyYXkoMCk7aWYoIXRoaXMuYXVkaW9EYXRhKXtsZXQgZTtzd2l0Y2godGhpcy53Rm9ybWF0VGFnKXtkZWZhdWx0OnNBKGBGYWlsZWQgdG8gZGVjb2RlIHNhbXBsZS4gVW5rbm93biB3Rm9ybWF0VGFnOiAke3RoaXMud0Zvcm1hdFRhZ31gKSxlPW5ldyBGbG9hdDMyQXJyYXkodGhpcy5yYXdEYXRhLmxlbmd0aC90aGlzLmJ5dGVzUGVyU2FtcGxlKTticmVhaztjYXNlIERuLlBDTTplPURyKHRoaXMucmF3RGF0YSx0aGlzLmJ5dGVzUGVyU2FtcGxlKTticmVhaztjYXNlIERuLkFMQVc6ZT13cih0aGlzLnJhd0RhdGEsdGhpcy5ieXRlc1BlclNhbXBsZSk7YnJlYWt9dGhpcy5zZXRBdWRpb0RhdGEoZSx0aGlzLnNhbXBsZVJhdGUpfXJldHVybiB0aGlzLmF1ZGlvRGF0YT8/bmV3IEZsb2F0MzJBcnJheSgwKX1nZXRSYXdEYXRhKGUpe3JldHVybiB0aGlzLmRhdGFPdmVycmlkZGVufHx0aGlzLmlzQ29tcHJlc3NlZD9zdXBlci5nZXRSYXdEYXRhKGUpOnRoaXMud0Zvcm1hdFRhZz09PURuLlBDTSYmdGhpcy5ieXRlc1BlclNhbXBsZT09PTI/dGhpcy5yYXdEYXRhOnRoaXMuZW5jb2RlUzE2TEUoKX19LExzPWNsYXNzIFpuIGV4dGVuZHMgamV7d2F2ZVNhbXBsZT1uZXcgemU7d0Zvcm1hdFRhZztieXRlc1BlclNhbXBsZTtzYW1wbGVSYXRlO2RhdGFDaHVuaztuYW1lPSJVbm5hbWVkIHNhbXBsZSI7Y29uc3RydWN0b3IoQSx0LG4scyl7c3VwZXIoKSx0aGlzLndGb3JtYXRUYWc9QSx0aGlzLmJ5dGVzUGVyU2FtcGxlPXQsdGhpcy5zYW1wbGVSYXRlPW4sdGhpcy5kYXRhQ2h1bms9c31zdGF0aWMgcmVhZChBKXtsZXQgdD10aGlzLnZlcmlmeUFuZFJlYWRMaXN0KEEsIndhdmUiKSxuPXQuZmluZChDPT5DLmhlYWRlcj09PSJmbXQgIik7aWYoIW4pdGhyb3cgbmV3IEVycm9yKCJObyBmbXQgY2h1bmsgaW4gdGhlIHdhdmUgZmlsZSEiKTtsZXQgcz1OKG4uZGF0YSwyKSxhPU4obi5kYXRhLDIpO2lmKGEhPT0xKXRocm93IG5ldyBFcnJvcihgT25seSBtb25vIHNhbXBsZXMgYXJlIHN1cHBvcnRlZC4gRm10IHJlcG9ydHMgJHthfSBjaGFubmVscy5gKTtsZXQgcj1OKG4uZGF0YSw0KTtOKG4uZGF0YSw0KSxOKG4uZGF0YSwyKTtsZXQgbz1OKG4uZGF0YSwyKS84LGc9dC5maW5kKEM9PkMuaGVhZGVyPT09ImRhdGEiKTtpZighZyl0aHJvdyBuZXcgRXJyb3IoIk5vIGRhdGEgY2h1bmsgaW4gdGhlIFdBVkUgY2h1bmshIik7bGV0IEI9bmV3IFpuKHMsbyxyLGcpLGQ9ZmUodCwiSU5GTyIpO2lmKGQpe2xldCBDPXJBKGQuZGF0YSk7Zm9yKDtDLmhlYWRlciE9PSJJTkFNIiYmZC5kYXRhLmN1cnJlbnRJbmRleDxkLmRhdGEubGVuZ3RoOylDPXJBKGQuZGF0YSk7Qy5oZWFkZXI9PT0iSU5BTSImJihCLm5hbWU9aEEoQy5kYXRhLEMuc2l6ZSkudHJpbSgpKX1sZXQgaD10LmZpbmQoQz0+Qy5oZWFkZXI9PT0id3NtcCIpO3JldHVybiBoJiYoQi53YXZlU2FtcGxlPXplLnJlYWQoaCkpLEJ9c3RhdGljIGZyb21TRlNhbXBsZShBKXtsZXQgdD1BLmdldFJhd0RhdGEoITEpLG49bmV3IFpuKDEsMixBLnNhbXBsZVJhdGUsbmV3IEhzKCJkYXRhIix0Lmxlbmd0aCxuZXcgWSh0LmJ1ZmZlcikpKTtyZXR1cm4gbi5uYW1lPUEubmFtZSxuLndhdmVTYW1wbGU9emUuZnJvbVNGU2FtcGxlKEEpLG59dG9TRlNhbXBsZShBKXtsZXQgdD10aGlzLndhdmVTYW1wbGUudW5pdHlOb3RlLG49dGhpcy53YXZlU2FtcGxlLmZpbmVUdW5lLHM9TWF0aC50cnVuYyhuLzEwMCk7dCs9cyxuLT1zKjEwMDtsZXQgYT0wLHI9MCxJPXRoaXMud2F2ZVNhbXBsZS5sb29wcz8uWzBdO0kmJihhPUkubG9vcFN0YXJ0LHI9SS5sb29wU3RhcnQrSS5sb29wTGVuZ3RoKTtsZXQgbz1uZXcgRnIodGhpcy5uYW1lLHRoaXMuc2FtcGxlUmF0ZSx0LG4sYSxyLHRoaXMuZGF0YUNodW5rLHRoaXMud0Zvcm1hdFRhZyx0aGlzLmJ5dGVzUGVyU2FtcGxlKTtBLmFkZFNhbXBsZXMobyl9d3JpdGUoKXtsZXQgQT10aGlzLndyaXRlRm10KCksdD10aGlzLndhdmVTYW1wbGUud3JpdGUoKSxuPWNBKCJkYXRhIix0aGlzLmRhdGFDaHVuay5kYXRhKSxzPWNBKCJJTkFNIixuZSh0aGlzLm5hbWUsITApKSxhPWNBKCJJTkZPIixzLCExLCEwKTtyZXR1cm4gcChgJWNTYXZlZCAlYyR7dGhpcy5uYW1lfSVjIHN1Y2Nlc3NmdWxseSFgLGMucmVjb2duaXplZCxjLnZhbHVlLGMucmVjb2duaXplZCksdkEoIndhdmUiLFtBLHQsbixhXSwhMCl9d3JpdGVGbXQoKXtsZXQgQT1uZXcgWSgxOCk7cmV0dXJuIEooQSx0aGlzLndGb3JtYXRUYWcpLEooQSwxKSxnQShBLHRoaXMuc2FtcGxlUmF0ZSksZ0EoQSx0aGlzLnNhbXBsZVJhdGUqMiksSihBLDIpLEooQSx0aGlzLmJ5dGVzUGVyU2FtcGxlKjgpLGNBKCJmbXQgIixBKX19LHlhPW5ldyB5QSgyMTksMCxpLnJldmVyYkVmZmVjdHNTZW5kLDFlMywwKSxrYT1uZXcgeUEoMjIxLDAsaS5jaG9ydXNFZmZlY3RzU2VuZCwxZTMsMCksR3I9bmV3IHlBKDEyOSwwLGkudmliTGZvVG9QaXRjaCwwLDApLFJyPW5ldyB5QSgxMywwLGkudmliTGZvVG9QaXRjaCwwLDApLFZBPWNsYXNzIHpue3NvdXJjZTt0cmFuc2Zvcm07Ymlwb2xhcjtpbnZlcnQ7Y29uc3RydWN0b3IoQT1ULm5vbmUsdD1RQS5saW5lYXIsbj0hMSxzPSExKXt0aGlzLnNvdXJjZT1BLHRoaXMudHJhbnNmb3JtPXQsdGhpcy5iaXBvbGFyPW4sdGhpcy5pbnZlcnQ9c31nZXQgc291cmNlTmFtZSgpe3JldHVybiBPYmplY3Qua2V5cyhUKS5maW5kKEE9PlRbQV09PT10aGlzLnNvdXJjZSk/P3RoaXMuc291cmNlLnRvU3RyaW5nKCl9Z2V0IHRyYW5zZm9ybU5hbWUoKXtyZXR1cm4gT2JqZWN0LmtleXMoUUEpLmZpbmQoQT0+UUFbQV09PT10aGlzLnRyYW5zZm9ybSk/P3RoaXMudHJhbnNmb3JtLnRvU3RyaW5nKCl9c3RhdGljIGNvcHlGcm9tKEEpe3JldHVybiBuZXcgem4oQS5zb3VyY2UsQS50cmFuc2Zvcm0sQS5iaXBvbGFyLEEuaW52ZXJ0KX1zdGF0aWMgZnJvbVNGU291cmNlKEEpe2xldCB0O2lmKEEuaXNDQylzd2l0Y2goQS5pbmRleCl7Y2FzZSBTLm1vZHVsYXRpb25XaGVlbDp0PVQubW9kdWxhdGlvbldoZWVsO2JyZWFrO2Nhc2UgUy5tYWluVm9sdW1lOnQ9VC52b2x1bWU7YnJlYWs7Y2FzZSBTLnBhbjp0PVQucGFuO2JyZWFrO2Nhc2UgUy5leHByZXNzaW9uQ29udHJvbGxlcjp0PVQuZXhwcmVzc2lvbjticmVhaztjYXNlIFMuY2hvcnVzRGVwdGg6dD1ULmNob3J1czticmVhaztjYXNlIFMucmV2ZXJiRGVwdGg6dD1ULnJldmVyYjticmVha31lbHNlIHN3aXRjaChBLmluZGV4KXtjYXNlIGoubm9Db250cm9sbGVyOnQ9VC5ub25lO2JyZWFrO2Nhc2Ugai5ub3RlT25LZXlOdW06dD1ULmtleU51bTticmVhaztjYXNlIGoubm90ZU9uVmVsb2NpdHk6dD1ULnZlbG9jaXR5O2JyZWFrO2Nhc2Ugai5waXRjaFdoZWVsOnQ9VC5waXRjaFdoZWVsO2JyZWFrO2Nhc2Ugai5waXRjaFdoZWVsUmFuZ2U6dD1ULnBpdGNoV2hlZWxSYW5nZTticmVhaztjYXNlIGoucG9seVByZXNzdXJlOnQ9VC5wb2x5UHJlc3N1cmU7YnJlYWs7Y2FzZSBqLmNoYW5uZWxQcmVzc3VyZTp0PVQuY2hhbm5lbFByZXNzdXJlfWlmKHQhPT12b2lkIDApcmV0dXJuIG5ldyB6bih0LEEuY3VydmVUeXBlLEEuaXNCaXBvbGFyLEEuaXNOZWdhdGl2ZSl9dG9TdHJpbmcoKXtyZXR1cm5gJHt0aGlzLnNvdXJjZU5hbWV9ICR7dGhpcy50cmFuc2Zvcm1OYW1lfSAke3RoaXMuYmlwb2xhcj8iYmlwb2xhciI6InVuaXBvbGFyIn0gJHt0aGlzLmludmVydD8iaW52ZXJ0ZWQiOiJwb3NpdGl2ZSJ9YH10b1RyYW5zZm9ybUZsYWcoKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm18KHRoaXMuYmlwb2xhcj8xOjApPDw0fCh0aGlzLmludmVydD8xOjApPDw1fXRvU0ZTb3VyY2UoKXtsZXQgQSx0PSExO3N3aXRjaCh0aGlzLnNvdXJjZSl7ZGVmYXVsdDpjYXNlIFQubW9kTGZvOmNhc2UgVC52aWJyYXRvTGZvOmNhc2UgVC5jb2Fyc2VUdW5lOmNhc2UgVC5maW5lVHVuZTpjYXNlIFQubW9kRW52OnJldHVybjtjYXNlIFQua2V5TnVtOkE9ai5ub3RlT25LZXlOdW07YnJlYWs7Y2FzZSBULm5vbmU6QT1qLm5vQ29udHJvbGxlcjticmVhaztjYXNlIFQubW9kdWxhdGlvbldoZWVsOkE9Uy5tb2R1bGF0aW9uV2hlZWwsdD0hMDticmVhaztjYXNlIFQucGFuOkE9Uy5wYW4sdD0hMDticmVhaztjYXNlIFQucmV2ZXJiOkE9Uy5yZXZlcmJEZXB0aCx0PSEwO2JyZWFrO2Nhc2UgVC5jaG9ydXM6QT1TLmNob3J1c0RlcHRoLHQ9ITA7YnJlYWs7Y2FzZSBULmV4cHJlc3Npb246QT1TLmV4cHJlc3Npb25Db250cm9sbGVyLHQ9ITA7YnJlYWs7Y2FzZSBULnZvbHVtZTpBPVMubWFpblZvbHVtZSx0PSEwO2JyZWFrO2Nhc2UgVC52ZWxvY2l0eTpBPWoubm90ZU9uVmVsb2NpdHk7YnJlYWs7Y2FzZSBULnBvbHlQcmVzc3VyZTpBPWoucG9seVByZXNzdXJlO2JyZWFrO2Nhc2UgVC5jaGFubmVsUHJlc3N1cmU6QT1qLmNoYW5uZWxQcmVzc3VyZTticmVhaztjYXNlIFQucGl0Y2hXaGVlbDpBPWoucGl0Y2hXaGVlbDticmVhaztjYXNlIFQucGl0Y2hXaGVlbFJhbmdlOkE9ai5waXRjaFdoZWVsUmFuZ2U7YnJlYWt9aWYoQSE9PXZvaWQgMClyZXR1cm4gbmV3IFhBKEEsdGhpcy50cmFuc2Zvcm0sdCx0aGlzLmJpcG9sYXIsdGhpcy5pbnZlcnQpfX0sTXI9bmV3IFNldChbaS5zYW1wbGVNb2RlcyxpLmluaXRpYWxBdHRlbnVhdGlvbixpLmtleVJhbmdlLGkudmVsUmFuZ2UsaS5zYW1wbGVJRCxpLmZpbmVUdW5lLGkuY29hcnNlVHVuZSxpLnN0YXJ0QWRkcnNPZmZzZXQsaS5zdGFydEFkZHJzQ29hcnNlT2Zmc2V0LGkuZW5kQWRkck9mZnNldCxpLmVuZEFkZHJzQ29hcnNlT2Zmc2V0LGkuc3RhcnRsb29wQWRkcnNPZmZzZXQsaS5zdGFydGxvb3BBZGRyc0NvYXJzZU9mZnNldCxpLmVuZGxvb3BBZGRyc09mZnNldCxpLmVuZGxvb3BBZGRyc0NvYXJzZU9mZnNldCxpLm92ZXJyaWRpbmdSb290S2V5LGkuZXhjbHVzaXZlQ2xhc3NdKSxjdD1jbGFzcyBSZXtzb3VyY2U7Y29udHJvbDtkZXN0aW5hdGlvbjtzY2FsZTt0cmFuc2Zvcm07Y29uc3RydWN0b3IoQT1uZXcgVkEsdD1uZXcgVkEsbixzLGEpe3RoaXMuc291cmNlPUEsdGhpcy5jb250cm9sPXQsdGhpcy5kZXN0aW5hdGlvbj1uLHRoaXMudHJhbnNmb3JtPXMsdGhpcy5zY2FsZT1hfWdldCBpc1N0YXRpY1BhcmFtZXRlcigpe3JldHVybiB0aGlzLnNvdXJjZS5zb3VyY2U9PT1ULm5vbmUmJnRoaXMuY29udHJvbC5zb3VyY2U9PT1ULm5vbmV9Z2V0IHNob3J0U2NhbGUoKXtyZXR1cm4gdGhpcy5zY2FsZT4+MTZ9Z2V0IHRyYW5zZm9ybU5hbWUoKXtyZXR1cm4gT2JqZWN0LmtleXMoUUEpLmZpbmQoQT0+UUFbQV09PT10aGlzLnRyYW5zZm9ybSk/P3RoaXMudHJhbnNmb3JtLnRvU3RyaW5nKCl9Z2V0IGRlc3RpbmF0aW9uTmFtZSgpe3JldHVybiBPYmplY3Qua2V5cyhSKS5maW5kKEE9PlJbQV09PT10aGlzLmRlc3RpbmF0aW9uKT8/dGhpcy5kZXN0aW5hdGlvbi50b1N0cmluZygpfXN0YXRpYyByZWFkKEEpe2xldCB0PU4oQSwyKSxuPU4oQSwyKSxzPU4oQSwyKSxhPU4oQSwyKSxyPU4oQSw0KXwwLEk9YSYxNSxvPWE+PjQmMTUsZz1NZShhLDgpLEI9TWUoYSw5KSxkPW5ldyBWQShuLG8sZyxCKSxoPWE+PjEwJjE1LEM9TWUoYSwxNCksUT1NZShhLDE1KSxtPW5ldyBWQSh0LGgsQyxRKTtyZXR1cm4gbmV3IFJlKG0sZCxzLEkscil9c3RhdGljIGZyb21TRk1vZHVsYXRvcihBLHQpe2xldCBuPUI9PntzQShgRmFpbGVkIGNvbnZlcnRpbmcgU0YgbW9kdWxhdG9yIGludG8gRExTOgogJHtBLnRvU3RyaW5nKCl9IAooJHtCfSlgKX07aWYoQS50cmFuc2Zvcm1UeXBlIT09MCl7bigiQWJzb2x1dGUgdHJhbnNmb3JtIHR5cGUgaXMgbm90IHN1cHBvcnRlZCIpO3JldHVybn1pZihFQS5pc0lkZW50aWNhbChBLGthLCEwKXx8RUEuaXNJZGVudGljYWwoQSx5YSwhMCkpcmV0dXJuO2xldCBzPVZBLmZyb21TRlNvdXJjZShBLnByaW1hcnlTb3VyY2UpO2lmKCFzKXtuKCJJbnZhbGlkIHByaW1hcnkgc291cmNlIik7cmV0dXJufWxldCBhPVZBLmZyb21TRlNvdXJjZShBLnNlY29uZGFyeVNvdXJjZSk7aWYoIWEpe24oIkludmFsaWQgc2Vjb25kYXJ5IHNvdXJjZSIpO3JldHVybn1sZXQgcj1SZS5mcm9tU0ZEZXN0aW5hdGlvbihBLmRlc3RpbmF0aW9uLEEudHJhbnNmb3JtQW1vdW50KTtpZihyPT09dm9pZCAwKXtuKCJJbnZhbGlkIGRlc3RpbmF0aW9uIik7cmV0dXJufWxldCBJPUEudHJhbnNmb3JtQW1vdW50LG87aWYodHlwZW9mIHI9PSJudW1iZXIiKW89cjtlbHNlIGlmKG89ci5kZXN0aW5hdGlvbixJPXIuYW1vdW50LHIuc291cmNlIT09VC5ub25lKXtpZihhLnNvdXJjZSE9PVQubm9uZSYmcy5zb3VyY2UhPT1ULm5vbmUpe24oIkFydGljdWxhdGlvbiBnZW5lcmF0b3JzIHdpdGggc2Vjb25kYXJ5IHNvdXJjZSBhcmUgbm90IHN1cHBvcnRlZCIpO3JldHVybn1zLnNvdXJjZSE9PVQubm9uZSYmKGE9cykscz1uZXcgVkEoci5zb3VyY2UsUUEubGluZWFyLHIuaXNCaXBvbGFyKX1sZXQgZz1uZXcgUmUocyxhLG8sMCxJPDwxNik7dC5jb25uZWN0aW9uQmxvY2tzLnB1c2goZyl9c3RhdGljIGNvcHlGcm9tKEEpe3JldHVybiBuZXcgUmUoVkEuY29weUZyb20oQS5zb3VyY2UpLFZBLmNvcHlGcm9tKEEuY29udHJvbCksQS5kZXN0aW5hdGlvbixBLnRyYW5zZm9ybSxBLnNjYWxlKX1zdGF0aWMgZnJvbVNGR2VuZXJhdG9yKEEsdCl7aWYoTXIuaGFzKEEuZ2VuZXJhdG9yVHlwZSkpcmV0dXJuO2xldCBuPW89PntzQShgRmFpbGVkIGNvbnZlcnRpbmcgU0YyIGdlbmVyYXRvciBpbnRvIERMUzoKICR7QS50b1N0cmluZygpfSAKKCR7b30pYCl9LHM9UmUuZnJvbVNGRGVzdGluYXRpb24oQS5nZW5lcmF0b3JUeXBlLEEuZ2VuZXJhdG9yVmFsdWUpO2lmKHM9PT12b2lkIDApe24oIkludmFsaWQgdHlwZSIpO3JldHVybn1sZXQgYT1uZXcgVkEscixJPUEuZ2VuZXJhdG9yVmFsdWU7dHlwZW9mIHM9PSJudW1iZXIiP3I9czoocj1zLmRlc3RpbmF0aW9uLEk9cy5hbW91bnQsYS5zb3VyY2U9cy5zb3VyY2UsYS5iaXBvbGFyPXMuaXNCaXBvbGFyKSx0LmNvbm5lY3Rpb25CbG9ja3MucHVzaChuZXcgUmUoYSxuZXcgVkEsciwwLEk8PDE2KSl9c3RhdGljIGZyb21TRkRlc3RpbmF0aW9uKEEsdCl7c3dpdGNoKEEpe2RlZmF1bHQ6cmV0dXJuO2Nhc2UgaS5pbml0aWFsQXR0ZW51YXRpb246cmV0dXJue2Rlc3RpbmF0aW9uOlIuZ2FpbixhbW91bnQ6LXQsaXNCaXBvbGFyOiExLHNvdXJjZTpULm5vbmV9O2Nhc2UgaS5maW5lVHVuZTpyZXR1cm4gUi5waXRjaDtjYXNlIGkucGFuOnJldHVybiBSLnBhbjtjYXNlIGkua2V5TnVtOnJldHVybiBSLmtleU51bTtjYXNlIGkucmV2ZXJiRWZmZWN0c1NlbmQ6cmV0dXJuIFIucmV2ZXJiU2VuZDtjYXNlIGkuY2hvcnVzRWZmZWN0c1NlbmQ6cmV0dXJuIFIuY2hvcnVzU2VuZDtjYXNlIGkuZnJlcU1vZExGTzpyZXR1cm4gUi5tb2RMZm9GcmVxO2Nhc2UgaS5kZWxheU1vZExGTzpyZXR1cm4gUi5tb2RMZm9EZWxheTtjYXNlIGkuZGVsYXlWaWJMRk86cmV0dXJuIFIudmliTGZvRGVsYXk7Y2FzZSBpLmZyZXFWaWJMRk86cmV0dXJuIFIudmliTGZvRnJlcTtjYXNlIGkuZGVsYXlWb2xFbnY6cmV0dXJuIFIudm9sRW52RGVsYXk7Y2FzZSBpLmF0dGFja1ZvbEVudjpyZXR1cm4gUi52b2xFbnZBdHRhY2s7Y2FzZSBpLmhvbGRWb2xFbnY6cmV0dXJuIFIudm9sRW52SG9sZDtjYXNlIGkuZGVjYXlWb2xFbnY6cmV0dXJuIFIudm9sRW52RGVjYXk7Y2FzZSBpLnN1c3RhaW5Wb2xFbnY6cmV0dXJue2Rlc3RpbmF0aW9uOlIudm9sRW52U3VzdGFpbixhbW91bnQ6MWUzLXQsaXNCaXBvbGFyOiExLHNvdXJjZTpULm5vbmV9O2Nhc2UgaS5yZWxlYXNlVm9sRW52OnJldHVybiBSLnZvbEVudlJlbGVhc2U7Y2FzZSBpLmRlbGF5TW9kRW52OnJldHVybiBSLm1vZEVudkRlbGF5O2Nhc2UgaS5hdHRhY2tNb2RFbnY6cmV0dXJuIFIubW9kRW52QXR0YWNrO2Nhc2UgaS5ob2xkTW9kRW52OnJldHVybiBSLm1vZEVudkhvbGQ7Y2FzZSBpLmRlY2F5TW9kRW52OnJldHVybiBSLm1vZEVudkRlY2F5O2Nhc2UgaS5zdXN0YWluTW9kRW52OnJldHVybntkZXN0aW5hdGlvbjpSLm1vZEVudlN1c3RhaW4sYW1vdW50OjFlMy10LGlzQmlwb2xhcjohMSxzb3VyY2U6VC5ub25lfTtjYXNlIGkucmVsZWFzZU1vZEVudjpyZXR1cm4gUi5tb2RFbnZSZWxlYXNlO2Nhc2UgaS5pbml0aWFsRmlsdGVyRmM6cmV0dXJuIFIuZmlsdGVyQ3V0b2ZmO2Nhc2UgaS5pbml0aWFsRmlsdGVyUTpyZXR1cm4gUi5maWx0ZXJRO2Nhc2UgaS5tb2RFbnZUb0ZpbHRlckZjOnJldHVybntzb3VyY2U6VC5tb2RFbnYsZGVzdGluYXRpb246Ui5maWx0ZXJDdXRvZmYsYW1vdW50OnQsaXNCaXBvbGFyOiExfTtjYXNlIGkubW9kRW52VG9QaXRjaDpyZXR1cm57c291cmNlOlQubW9kRW52LGRlc3RpbmF0aW9uOlIucGl0Y2gsYW1vdW50OnQsaXNCaXBvbGFyOiExfTtjYXNlIGkubW9kTGZvVG9GaWx0ZXJGYzpyZXR1cm57c291cmNlOlQubW9kTGZvLGRlc3RpbmF0aW9uOlIuZmlsdGVyQ3V0b2ZmLGFtb3VudDp0LGlzQmlwb2xhcjohMH07Y2FzZSBpLm1vZExmb1RvVm9sdW1lOnJldHVybntzb3VyY2U6VC5tb2RMZm8sZGVzdGluYXRpb246Ui5nYWluLGFtb3VudDp0LGlzQmlwb2xhcjohMH07Y2FzZSBpLm1vZExmb1RvUGl0Y2g6cmV0dXJue3NvdXJjZTpULm1vZExmbyxkZXN0aW5hdGlvbjpSLnBpdGNoLGFtb3VudDp0LGlzQmlwb2xhcjohMH07Y2FzZSBpLnZpYkxmb1RvUGl0Y2g6cmV0dXJue3NvdXJjZTpULnZpYnJhdG9MZm8sZGVzdGluYXRpb246Ui5waXRjaCxhbW91bnQ6dCxpc0JpcG9sYXI6ITB9O2Nhc2UgaS5rZXlOdW1Ub1ZvbEVudkhvbGQ6cmV0dXJue3NvdXJjZTpULmtleU51bSxkZXN0aW5hdGlvbjpSLnZvbEVudkhvbGQsYW1vdW50OnQsaXNCaXBvbGFyOiEwfTtjYXNlIGkua2V5TnVtVG9Wb2xFbnZEZWNheTpyZXR1cm57c291cmNlOlQua2V5TnVtLGRlc3RpbmF0aW9uOlIudm9sRW52RGVjYXksYW1vdW50OnQsaXNCaXBvbGFyOiEwfTtjYXNlIGkua2V5TnVtVG9Nb2RFbnZIb2xkOnJldHVybntzb3VyY2U6VC5rZXlOdW0sZGVzdGluYXRpb246Ui5tb2RFbnZIb2xkLGFtb3VudDp0LGlzQmlwb2xhcjohMH07Y2FzZSBpLmtleU51bVRvTW9kRW52RGVjYXk6cmV0dXJue3NvdXJjZTpULmtleU51bSxkZXN0aW5hdGlvbjpSLm1vZEVudkRlY2F5LGFtb3VudDp0LGlzQmlwb2xhcjohMH07Y2FzZSBpLnNjYWxlVHVuaW5nOnJldHVybntzb3VyY2U6VC5rZXlOdW0sZGVzdGluYXRpb246Ui5waXRjaCxhbW91bnQ6dCoxMjgsaXNCaXBvbGFyOiExfX19dG9TdHJpbmcoKXtyZXR1cm5gU291cmNlOiAke3RoaXMuc291cmNlLnRvU3RyaW5nKCl9LApDb250cm9sOiAke3RoaXMuY29udHJvbC50b1N0cmluZygpfSwKU2NhbGU6ICR7dGhpcy5zY2FsZX0gPj4gMTYgPSAke3RoaXMuc2hvcnRTY2FsZX0sCk91dHB1dCB0cmFuc2Zvcm06ICR7dGhpcy50cmFuc2Zvcm1OYW1lfQpEZXN0aW5hdGlvbjogJHt0aGlzLmRlc3RpbmF0aW9uTmFtZX1gfXdyaXRlKCl7bGV0IEE9bmV3IFkoMTIpO0ooQSx0aGlzLnNvdXJjZS5zb3VyY2UpLEooQSx0aGlzLmNvbnRyb2wuc291cmNlKSxKKEEsdGhpcy5kZXN0aW5hdGlvbik7bGV0IHQ9dGhpcy50cmFuc2Zvcm18dGhpcy5jb250cm9sLnRvVHJhbnNmb3JtRmxhZygpPDw0fHRoaXMuc291cmNlLnRvVHJhbnNmb3JtRmxhZygpPDwxMDtyZXR1cm4gSihBLHQpLGdBKEEsdGhpcy5zY2FsZSksQX10b1NGR2VuZXJhdG9yKEEpe2xldCB0PXRoaXMuZGVzdGluYXRpb24sbj10aGlzLnNob3J0U2NhbGU7c3dpdGNoKHQpe2RlZmF1bHQ6cChgJWNGYWlsZWQgY29udmVydGluZyBETFMgYXJ0aWN1bGF0b3IgaW50byBTRiBnZW5lcmF0b3I6ICVjJHt0aGlzLnRvU3RyaW5nKCl9JWMKKGludmFsaWQgZGVzdGluYXRpb24pYCxjLndhcm4sYy52YWx1ZSxjLnVucmVjb2duaXplZCk7cmV0dXJuO2Nhc2UgUi5wYW46QS5zZXRHZW5lcmF0b3IoaS5wYW4sbik7YnJlYWs7Y2FzZSBSLmdhaW46QS5hZGRUb0dlbmVyYXRvcihpLmluaXRpYWxBdHRlbnVhdGlvbiwtbi8uNCk7YnJlYWs7Y2FzZSBSLmZpbHRlckN1dG9mZjpBLnNldEdlbmVyYXRvcihpLmluaXRpYWxGaWx0ZXJGYyxuKTticmVhaztjYXNlIFIuZmlsdGVyUTpBLnNldEdlbmVyYXRvcihpLmluaXRpYWxGaWx0ZXJRLG4pO2JyZWFrO2Nhc2UgUi5tb2RMZm9GcmVxOkEuc2V0R2VuZXJhdG9yKGkuZnJlcU1vZExGTyxuKTticmVhaztjYXNlIFIubW9kTGZvRGVsYXk6QS5zZXRHZW5lcmF0b3IoaS5kZWxheU1vZExGTyxuKTticmVhaztjYXNlIFIudmliTGZvRnJlcTpBLnNldEdlbmVyYXRvcihpLmZyZXFWaWJMRk8sbik7YnJlYWs7Y2FzZSBSLnZpYkxmb0RlbGF5OkEuc2V0R2VuZXJhdG9yKGkuZGVsYXlWaWJMRk8sbik7YnJlYWs7Y2FzZSBSLnZvbEVudkRlbGF5OkEuc2V0R2VuZXJhdG9yKGkuZGVsYXlWb2xFbnYsbik7YnJlYWs7Y2FzZSBSLnZvbEVudkF0dGFjazpBLnNldEdlbmVyYXRvcihpLmF0dGFja1ZvbEVudixuKTticmVhaztjYXNlIFIudm9sRW52SG9sZDpBLnNldEdlbmVyYXRvcihpLmhvbGRWb2xFbnYsbik7YnJlYWs7Y2FzZSBSLnZvbEVudkRlY2F5OkEuc2V0R2VuZXJhdG9yKGkuZGVjYXlWb2xFbnYsbik7YnJlYWs7Y2FzZSBSLnZvbEVudlJlbGVhc2U6QS5zZXRHZW5lcmF0b3IoaS5yZWxlYXNlVm9sRW52LG4pO2JyZWFrO2Nhc2UgUi52b2xFbnZTdXN0YWluOkEuc2V0R2VuZXJhdG9yKGkuc3VzdGFpblZvbEVudiwxZTMtbik7YnJlYWs7Y2FzZSBSLm1vZEVudkRlbGF5OkEuc2V0R2VuZXJhdG9yKGkuZGVsYXlNb2RFbnYsbik7YnJlYWs7Y2FzZSBSLm1vZEVudkF0dGFjazpBLnNldEdlbmVyYXRvcihpLmF0dGFja01vZEVudixuKTticmVhaztjYXNlIFIubW9kRW52SG9sZDpBLnNldEdlbmVyYXRvcihpLmhvbGRNb2RFbnYsbik7YnJlYWs7Y2FzZSBSLm1vZEVudkRlY2F5OkEuc2V0R2VuZXJhdG9yKGkuZGVjYXlNb2RFbnYsbik7YnJlYWs7Y2FzZSBSLm1vZEVudlJlbGVhc2U6QS5zZXRHZW5lcmF0b3IoaS5yZWxlYXNlTW9kRW52LG4pO2JyZWFrO2Nhc2UgUi5tb2RFbnZTdXN0YWluOkEuc2V0R2VuZXJhdG9yKGkuc3VzdGFpbk1vZEVudiwxZTMtbik7YnJlYWs7Y2FzZSBSLnJldmVyYlNlbmQ6QS5zZXRHZW5lcmF0b3IoaS5yZXZlcmJFZmZlY3RzU2VuZCxuKTticmVhaztjYXNlIFIuY2hvcnVzU2VuZDpBLnNldEdlbmVyYXRvcihpLmNob3J1c0VmZmVjdHNTZW5kLG4pO2JyZWFrO2Nhc2UgUi5waXRjaDpBLmZpbmVUdW5pbmcrPW47YnJlYWt9fXRvU0ZNb2R1bGF0b3IoQSl7bGV0IHQ9dGhpcy5zaG9ydFNjYWxlLG4scyxhPW5ldyBYQSxyPWc9PntwKGAlY0ZhaWxlZCBjb252ZXJ0aW5nIERMUyBhcnRpY3VsYXRvciBpbnRvIFNGMjoKICVjJHt0aGlzLnRvU3RyaW5nKCl9JWMKKCR7Z30pYCxjLndhcm4sYy52YWx1ZSxjLnVucmVjb2duaXplZCl9LEk9dGhpcy50b0NvbWJpbmVkU0ZEZXN0aW5hdGlvbigpO2lmKEkpe249STtsZXQgZz10aGlzLmNvbnRyb2wudG9TRlNvdXJjZSgpO2lmKCFnKXtyKCJJbnZhbGlkIGNvbnRyb2wiKTtyZXR1cm59cz1nfWVsc2V7bGV0IGc9dGhpcy50b1NGRGVzdGluYXRpb24oKTtpZighZyl7cigiSW52YWxpZCBkZXN0aW5hdGlvbiIpO3JldHVybn10eXBlb2YgZz09Im9iamVjdCI/KHQ9Zy5uZXdBbW91bnQsbj1nLmdlbik6bj1nO2xldCBCPXRoaXMuc291cmNlLnRvU0ZTb3VyY2UoKTtpZighQil7cigiSW52YWxpZCBzb3VyY2UiKTtyZXR1cm59cz1CO2xldCBkPXRoaXMuY29udHJvbC50b1NGU291cmNlKCk7aWYoIWQpe3IoIkludmFsaWQgY29udHJvbCIpO3JldHVybn1hPWR9dGhpcy50cmFuc2Zvcm0hPT1RQS5saW5lYXImJnMuY3VydmVUeXBlPT09UUEubGluZWFyJiYocy5jdXJ2ZVR5cGU9dGhpcy50cmFuc2Zvcm0pLG49PT1pLmluaXRpYWxBdHRlbnVhdGlvbiYmKCh0aGlzLnNvdXJjZS5zb3VyY2U9PT1ULnZlbG9jaXR5fHx0aGlzLnNvdXJjZS5zb3VyY2U9PT1ULnZvbHVtZXx8dGhpcy5zb3VyY2Uuc291cmNlPT09VC5leHByZXNzaW9uKSYmKHMuaXNOZWdhdGl2ZT0hMCksdD1NYXRoLm1pbig5NjAsTWF0aC5tYXgoMCx0KSkpO2xldCBvPW5ldyBFQShzLGEsbix0LDApO0EuYWRkTW9kdWxhdG9ycyhvKX10b0NvbWJpbmVkU0ZEZXN0aW5hdGlvbigpe2xldCBBPXRoaXMuc291cmNlLnNvdXJjZSx0PXRoaXMuZGVzdGluYXRpb247cmV0dXJuIEE9PT1ULnZpYnJhdG9MZm8mJnQ9PT1SLnBpdGNoP2kudmliTGZvVG9QaXRjaDpBPT09VC5tb2RMZm8mJnQ9PT1SLnBpdGNoP2kubW9kTGZvVG9QaXRjaDpBPT09VC5tb2RMZm8mJnQ9PT1SLmZpbHRlckN1dG9mZj9pLm1vZExmb1RvRmlsdGVyRmM6QT09PVQubW9kTGZvJiZ0PT09Ui5nYWluP2kubW9kTGZvVG9Wb2x1bWU6QT09PVQubW9kRW52JiZ0PT09Ui5maWx0ZXJDdXRvZmY/aS5tb2RFbnZUb0ZpbHRlckZjOkE9PT1ULm1vZEVudiYmdD09PVIucGl0Y2g/aS5tb2RFbnZUb1BpdGNoOnZvaWQgMH10b1NGRGVzdGluYXRpb24oKXtsZXQgQT10aGlzLnNob3J0U2NhbGU7c3dpdGNoKHRoaXMuZGVzdGluYXRpb24pe2RlZmF1bHQ6Y2FzZSBSLm5vbmU6cmV0dXJuO2Nhc2UgUi5wYW46cmV0dXJuIGkucGFuO2Nhc2UgUi5nYWluOnJldHVybntnZW46aS5pbml0aWFsQXR0ZW51YXRpb24sbmV3QW1vdW50Oi1BfTtjYXNlIFIucGl0Y2g6cmV0dXJuIGkuZmluZVR1bmU7Y2FzZSBSLmtleU51bTpyZXR1cm4gaS5vdmVycmlkaW5nUm9vdEtleTtjYXNlIFIudm9sRW52RGVsYXk6cmV0dXJuIGkuZGVsYXlWb2xFbnY7Y2FzZSBSLnZvbEVudkF0dGFjazpyZXR1cm4gaS5hdHRhY2tWb2xFbnY7Y2FzZSBSLnZvbEVudkhvbGQ6cmV0dXJuIGkuaG9sZFZvbEVudjtjYXNlIFIudm9sRW52RGVjYXk6cmV0dXJuIGkuZGVjYXlWb2xFbnY7Y2FzZSBSLnZvbEVudlN1c3RhaW46cmV0dXJue2dlbjppLnN1c3RhaW5Wb2xFbnYsbmV3QW1vdW50OjFlMy1BfTtjYXNlIFIudm9sRW52UmVsZWFzZTpyZXR1cm4gaS5yZWxlYXNlVm9sRW52O2Nhc2UgUi5tb2RFbnZEZWxheTpyZXR1cm4gaS5kZWxheU1vZEVudjtjYXNlIFIubW9kRW52QXR0YWNrOnJldHVybiBpLmF0dGFja01vZEVudjtjYXNlIFIubW9kRW52SG9sZDpyZXR1cm4gaS5ob2xkTW9kRW52O2Nhc2UgUi5tb2RFbnZEZWNheTpyZXR1cm4gaS5kZWNheU1vZEVudjtjYXNlIFIubW9kRW52U3VzdGFpbjpyZXR1cm57Z2VuOmkuc3VzdGFpbk1vZEVudixuZXdBbW91bnQ6MWUzLUF9O2Nhc2UgUi5tb2RFbnZSZWxlYXNlOnJldHVybiBpLnJlbGVhc2VNb2RFbnY7Y2FzZSBSLmZpbHRlckN1dG9mZjpyZXR1cm4gaS5pbml0aWFsRmlsdGVyRmM7Y2FzZSBSLmZpbHRlclE6cmV0dXJuIGkuaW5pdGlhbEZpbHRlclE7Y2FzZSBSLmNob3J1c1NlbmQ6cmV0dXJuIGkuY2hvcnVzRWZmZWN0c1NlbmQ7Y2FzZSBSLnJldmVyYlNlbmQ6cmV0dXJuIGkucmV2ZXJiRWZmZWN0c1NlbmQ7Y2FzZSBSLm1vZExmb0ZyZXE6cmV0dXJuIGkuZnJlcU1vZExGTztjYXNlIFIubW9kTGZvRGVsYXk6cmV0dXJuIGkuZGVsYXlNb2RMRk87Y2FzZSBSLnZpYkxmb0ZyZXE6cmV0dXJuIGkuZnJlcVZpYkxGTztjYXNlIFIudmliTGZvRGVsYXk6cmV0dXJuIGkuZGVsYXlWaWJMRk99fX0sRGE9Y2xhc3MgV24gZXh0ZW5kcyBqZXtjb25uZWN0aW9uQmxvY2tzPW5ldyBBcnJheTttb2RlPSJkbHMyIjtnZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuY29ubmVjdGlvbkJsb2Nrcy5sZW5ndGh9Y29weUZyb20oQSl7dGhpcy5tb2RlPUEubW9kZSxBLmNvbm5lY3Rpb25CbG9ja3MuZm9yRWFjaCh0PT57dGhpcy5jb25uZWN0aW9uQmxvY2tzLnB1c2goY3QuY29weUZyb20odCkpfSl9ZnJvbVNGWm9uZShBKXt0aGlzLm1vZGU9ImRsczIiO2xldCB0PW5ldyBWdDt0LmNvcHlGcm9tKEEpO2ZvcihsZXQgbiBvZiB0LmdlbmVyYXRvcnMpe2xldCBzO3N3aXRjaChuLmdlbmVyYXRvclR5cGUpe2RlZmF1bHQ6Y29udGludWU7Y2FzZSBpLmtleU51bVRvVm9sRW52RGVjYXk6cz1pLmRlY2F5Vm9sRW52O2JyZWFrO2Nhc2UgaS5rZXlOdW1Ub1ZvbEVudkhvbGQ6cz1pLmhvbGRWb2xFbnY7YnJlYWs7Y2FzZSBpLmtleU51bVRvTW9kRW52RGVjYXk6cz1pLmRlY2F5TW9kRW52O2JyZWFrO2Nhc2UgaS5rZXlOdW1Ub01vZEVudkhvbGQ6cz1pLmhvbGRNb2RFbnZ9bGV0IGE9dC5nZXRHZW5lcmF0b3Iocyx2b2lkIDApLHI9bi5nZW5lcmF0b3JWYWx1ZSotMTI4O2lmKGE9PT12b2lkIDApY29udGludWU7bGV0IEk9NjAvMTI4KnIsbz1hLUk7dC5zZXRHZW5lcmF0b3Iobi5nZW5lcmF0b3JUeXBlLHIsITEpLHQuc2V0R2VuZXJhdG9yKHMsbywhMSl9Zm9yKGxldCBuIG9mIHQuZ2VuZXJhdG9ycyljdC5mcm9tU0ZHZW5lcmF0b3Iobix0aGlzKTtmb3IobGV0IG4gb2YgdC5tb2R1bGF0b3JzKWN0LmZyb21TRk1vZHVsYXRvcihuLHRoaXMpfXJlYWQoQSl7bGV0IHQ9ZmUoQSwibGFydCIpLG49ZmUoQSwibGFyMiIpO2lmKHQpZm9yKHRoaXMubW9kZT0iZGxzMSI7dC5kYXRhLmN1cnJlbnRJbmRleDx0LmRhdGEubGVuZ3RoOyl7bGV0IHM9ckEodC5kYXRhKTtXbi52ZXJpZnlIZWFkZXIocywiYXJ0MSIsImFydDIiKTtsZXQgYT1zLmRhdGEscj1OKGEsNCk7ciE9PTgmJnNBKGBDYlNpemUgaW4gYXJ0aWN1bGF0aW9uIG1pc21hdGNoLiBFeHBlY3RlZCA4LCBnb3QgJHtyfWApO2xldCBJPU4oYSw0KTtmb3IobGV0IG89MDtvPEk7bysrKXRoaXMuY29ubmVjdGlvbkJsb2Nrcy5wdXNoKGN0LnJlYWQoYSkpfWVsc2UgaWYobilmb3IodGhpcy5tb2RlPSJkbHMyIjtuLmRhdGEuY3VycmVudEluZGV4PG4uZGF0YS5sZW5ndGg7KXtsZXQgcz1yQShuLmRhdGEpO1duLnZlcmlmeUhlYWRlcihzLCJhcnQyIiwiYXJ0MSIpO2xldCBhPXMuZGF0YSxyPU4oYSw0KTtyIT09OCYmc0EoYENiU2l6ZSBpbiBhcnRpY3VsYXRpb24gbWlzbWF0Y2guIEV4cGVjdGVkIDgsIGdvdCAke3J9YCk7bGV0IEk9TihhLDQpO2ZvcihsZXQgbz0wO288STtvKyspdGhpcy5jb25uZWN0aW9uQmxvY2tzLnB1c2goY3QucmVhZChhKSl9fXdyaXRlKCl7bGV0IEE9bmV3IFkoOCk7Z0EoQSw4KSxnQShBLHRoaXMuY29ubmVjdGlvbkJsb2Nrcy5sZW5ndGgpO2xldCB0PXRoaXMuY29ubmVjdGlvbkJsb2Nrcy5tYXAocz0+cy53cml0ZSgpKSxuPXZBKHRoaXMubW9kZT09PSJkbHMyIj8iYXJ0MiI6ImFydDEiLFtBLC4uLnRdKTtyZXR1cm4gY0EodGhpcy5tb2RlPT09ImRsczIiPyJsYXIyIjoibGFydCIsbiwhMSwhMCl9dG9TRlpvbmUoQSl7bGV0IHQ9KG4scyxhLHIpPT57bGV0IEk9bi8tMTI4O2lmKEEuc2V0R2VuZXJhdG9yKHMsSSksSTw9MTIwKXtsZXQgbz1NYXRoLnJvdW5kKC40Njg3NSpuKSxnPXRoaXMuY29ubmVjdGlvbkJsb2Nrcy5maW5kKEI9PkIuaXNTdGF0aWNQYXJhbWV0ZXImJkIuZGVzdGluYXRpb249PT1yKTtnJiZBLnNldEdlbmVyYXRvcihhLG8rZy5zaG9ydFNjYWxlKX19O2ZvcihsZXQgbiBvZiB0aGlzLmNvbm5lY3Rpb25CbG9ja3Mpe2xldCBzPW4uc2hvcnRTY2FsZSxhPW4uc291cmNlLnNvdXJjZSxyPW4uY29udHJvbC5zb3VyY2UsST1uLmRlc3RpbmF0aW9uO2lmKG4uaXNTdGF0aWNQYXJhbWV0ZXIpe24udG9TRkdlbmVyYXRvcihBKTtjb250aW51ZX1pZihyPT09VC5ub25lKWlmKGE9PT1ULmtleU51bSl7aWYoST09PVIucGl0Y2gpe0Euc2V0R2VuZXJhdG9yKGkuc2NhbGVUdW5pbmcscy8xMjgpO2NvbnRpbnVlfWlmKEk9PT1SLm1vZEVudkhvbGR8fEk9PT1SLm1vZEVudkRlY2F5fHxJPT09Ui52b2xFbnZIb2xkfHxJPT1SLnZvbEVudkRlY2F5KWNvbnRpbnVlfWVsc2V7bGV0IG89bi50b0NvbWJpbmVkU0ZEZXN0aW5hdGlvbigpO2lmKG8pe0Euc2V0R2VuZXJhdG9yKG8scyk7Y29udGludWV9fW4udG9TRk1vZHVsYXRvcihBKX10aGlzLm1vZGU9PT0iZGxzMSImJkEuYWRkTW9kdWxhdG9ycyhFQS5jb3B5RnJvbShHciksRUEuY29weUZyb20oUnIpKTtmb3IobGV0IG4gb2YgdGhpcy5jb25uZWN0aW9uQmxvY2tzKXtpZihuLnNvdXJjZS5zb3VyY2UhPT1ULmtleU51bSljb250aW51ZTtsZXQgcz1uLnNob3J0U2NhbGU7c3dpdGNoKG4uZGVzdGluYXRpb24pe2RlZmF1bHQ6Y29udGludWU7Y2FzZSBSLnZvbEVudkhvbGQ6dChzLGkua2V5TnVtVG9Wb2xFbnZIb2xkLGkuaG9sZFZvbEVudixSLnZvbEVudkhvbGQpO2JyZWFrO2Nhc2UgUi52b2xFbnZEZWNheTp0KHMsaS5rZXlOdW1Ub1ZvbEVudkRlY2F5LGkuZGVjYXlWb2xFbnYsUi52b2xFbnZEZWNheSk7YnJlYWs7Y2FzZSBSLm1vZEVudkhvbGQ6dChzLGkua2V5TnVtVG9Nb2RFbnZIb2xkLGkuaG9sZE1vZEVudixSLm1vZEVudkhvbGQpO2JyZWFrO2Nhc2UgUi5tb2RFbnZEZWNheTp0KHMsaS5rZXlOdW1Ub01vZEVudkRlY2F5LGkuZGVjYXlNb2RFbnYsUi5tb2RFbnZEZWNheSk7YnJlYWt9fX19LHduPWNsYXNzIFV0e2NoYW5uZWw9MTt0YWJsZUluZGV4O2Z1c09wdGlvbnM9MDtwaGFzZUdyb3VwPTA7Y29uc3RydWN0b3IoQSl7dGhpcy50YWJsZUluZGV4PUF9c3RhdGljIGNvcHlGcm9tKEEpe2xldCB0PW5ldyBVdChBLnRhYmxlSW5kZXgpO3JldHVybiB0LmNoYW5uZWw9QS5jaGFubmVsLHQucGhhc2VHcm91cD1BLnBoYXNlR3JvdXAsdC5mdXNPcHRpb25zPUEuZnVzT3B0aW9ucyx0fXN0YXRpYyByZWFkKEEpe2xldCB0PU4oQS5kYXRhLDIpLG49TihBLmRhdGEsMikscz1OKEEuZGF0YSw0KSxhPU4oQS5kYXRhLDQpLHI9bmV3IFV0KGEpO3JldHVybiByLmNoYW5uZWw9cyxyLmZ1c09wdGlvbnM9dCxyLnBoYXNlR3JvdXA9bixyfXN0YXRpYyBmcm9tU0Zab25lKEEsdCl7bGV0IG49QS5pbmRleE9mKHQuc2FtcGxlKTtpZihuPDApdGhyb3cgbmV3IEVycm9yKGBXYXZlIGxpbmsgZXJyb3I6IFNhbXBsZSAke3Quc2FtcGxlLm5hbWV9IGRvZXMgbm90IGV4aXN0IGluIHRoZSBzYW1wbGUgbGlzdC5gKTtsZXQgcz1uZXcgVXQobik7c3dpdGNoKHQuc2FtcGxlLnNhbXBsZVR5cGUpe2RlZmF1bHQ6Y2FzZSB3QS5sZWZ0U2FtcGxlOmNhc2Ugd0EubW9ub1NhbXBsZTpzLmNoYW5uZWw9MTticmVhaztjYXNlIHdBLnJpZ2h0U2FtcGxlOnMuY2hhbm5lbD0yfXJldHVybiBzfXdyaXRlKCl7bGV0IEE9bmV3IFkoMTIpO3JldHVybiBKKEEsdGhpcy5mdXNPcHRpb25zKSxKKEEsdGhpcy5waGFzZUdyb3VwKSxnQShBLHRoaXMuY2hhbm5lbCksZ0EoQSx0aGlzLnRhYmxlSW5kZXgpLGNBKCJ3bG5rIixBKX19LFR0PWNsYXNzIFZlIGV4dGVuZHMgamV7YXJ0aWN1bGF0aW9uPW5ldyBEYTtrZXlSYW5nZT17bWluOjAsbWF4OjEyN307dmVsUmFuZ2U9e21pbjowLG1heDoxMjd9O2tleUdyb3VwPTA7ZnVzT3B0aW9ucz0wO3VzTGF5ZXI9MDt3YXZlU2FtcGxlO3dhdmVMaW5rO2NvbnN0cnVjdG9yKEEsdCl7c3VwZXIoKSx0aGlzLndhdmVTYW1wbGU9dCx0aGlzLndhdmVMaW5rPUF9c3RhdGljIGNvcHlGcm9tKEEpe2xldCB0PW5ldyBWZSh3bi5jb3B5RnJvbShBLndhdmVMaW5rKSx6ZS5jb3B5RnJvbShBLndhdmVTYW1wbGUpKTtyZXR1cm4gdC5rZXlHcm91cD1BLmtleUdyb3VwLHQua2V5UmFuZ2U9ey4uLkEua2V5UmFuZ2V9LHQudmVsUmFuZ2U9ey4uLkEudmVsUmFuZ2V9LHQudXNMYXllcj1BLnVzTGF5ZXIsdC5mdXNPcHRpb25zPUEuZnVzT3B0aW9ucyx0LmFydGljdWxhdGlvbi5jb3B5RnJvbShBLmFydGljdWxhdGlvbiksdH1zdGF0aWMgcmVhZChBLHQpe2xldCBuPXRoaXMudmVyaWZ5QW5kUmVhZExpc3QodCwicmduICIsInJnbjIiKSxzPW4uZmluZChtPT5tLmhlYWRlcj09PSJ3c21wIiksYT1zP3plLnJlYWQocyk6dm9pZCAwLHI9bi5maW5kKG09Pm0uaGVhZGVyPT09IndsbmsiKTtpZighcil7c0EoIkludmFsaWQgRExTIHJlZ2lvbjogbWlzc2luZyAnd2xuaycgY2h1bmshIERpc2NhcmRpbmcuLi4iKTtyZXR1cm59bGV0IEk9d24ucmVhZChyKSxvPW4uZmluZChtPT5tLmhlYWRlcj09PSJyZ25oIik7aWYoIW8pe3NBKCJJbnZhbGlkIERMUyByZWdpb246IG1pc3NpbmcgJ3JnbmgnIGNodW5rISBEaXNjYXJkaW5nLi4uIik7cmV0dXJufWxldCBnPUFbSS50YWJsZUluZGV4XTtnfHxWZS5wYXJzaW5nRXJyb3IoYEludmFsaWQgc2FtcGxlIGluZGV4OiAke0kudGFibGVJbmRleH0uIFNhbXBsZXMgYXZhaWxhYmxlOiAke0EubGVuZ3RofWApLGE/Pz1nLndhdmVTYW1wbGU7bGV0IEI9bmV3IFZlKEksYSksZD1OKG8uZGF0YSwyKSxoPU4oby5kYXRhLDIpLEM9TihvLmRhdGEsMiksUT1OKG8uZGF0YSwyKTtyZXR1cm4gQz09PTAmJlE9PT0wJiYoUT0xMjcsQz0wKSxCLmtleVJhbmdlLm1heD1oLEIua2V5UmFuZ2UubWluPWQsQi52ZWxSYW5nZS5tYXg9USxCLnZlbFJhbmdlLm1pbj1DLEIuZnVzT3B0aW9ucz1OKG8uZGF0YSwyKSxCLmtleUdyb3VwPU4oby5kYXRhLDIpLG8uZGF0YS5sZW5ndGgtby5kYXRhLmN1cnJlbnRJbmRleD49MiYmKEIudXNMYXllcj1OKG8uZGF0YSwyKSksQi5hcnRpY3VsYXRpb24ucmVhZChuKSxCfXN0YXRpYyBmcm9tU0Zab25lKEEsdCl7bGV0IG49emUuZnJvbVNGWm9uZShBKSxzPXduLmZyb21TRlpvbmUodCxBKSxhPW5ldyBWZShzLG4pO3JldHVybiBhLmtleVJhbmdlLm1pbj1NYXRoLm1heChBLmtleVJhbmdlLm1pbiwwKSxhLmtleVJhbmdlLm1heD1BLmtleVJhbmdlLm1heCxhLnZlbFJhbmdlLm1pbj1NYXRoLm1heChBLnZlbFJhbmdlLm1pbiwwKSxhLnZlbFJhbmdlLm1heD1BLnZlbFJhbmdlLm1heCxhLmtleUdyb3VwPUEuZ2V0R2VuZXJhdG9yKGkuZXhjbHVzaXZlQ2xhc3MsMCksYS5hcnRpY3VsYXRpb24uZnJvbVNGWm9uZShBKSxhfXdyaXRlKCl7bGV0IEE9W3RoaXMud3JpdGVIZWFkZXIoKSx0aGlzLndhdmVTYW1wbGUud3JpdGUoKSx0aGlzLndhdmVMaW5rLndyaXRlKCksdGhpcy5hcnRpY3VsYXRpb24ud3JpdGUoKV07cmV0dXJuIHZBKCJyZ24yIixBLCEwKX10b1NGWm9uZShBLHQpe2xldCBuPXRbdGhpcy53YXZlTGluay50YWJsZUluZGV4XTtufHxWZS5wYXJzaW5nRXJyb3IoYEludmFsaWQgc2FtcGxlIGluZGV4OiAke3RoaXMud2F2ZUxpbmsudGFibGVJbmRleH1gKTtsZXQgcz1BLmNyZWF0ZVpvbmUobik7cmV0dXJuIHMua2V5UmFuZ2U9dGhpcy5rZXlSYW5nZSxzLnZlbFJhbmdlPXRoaXMudmVsUmFuZ2UsdGhpcy5rZXlSYW5nZS5tYXg9PT0xMjcmJnRoaXMua2V5UmFuZ2UubWluPT09MCYmKHMua2V5UmFuZ2UubWluPS0xKSx0aGlzLnZlbFJhbmdlLm1heD09PTEyNyYmdGhpcy52ZWxSYW5nZS5taW49PT0wJiYocy52ZWxSYW5nZS5taW49LTEpLHRoaXMua2V5R3JvdXAhPT0wJiZzLnNldEdlbmVyYXRvcihpLmV4Y2x1c2l2ZUNsYXNzLHRoaXMua2V5R3JvdXApLHRoaXMud2F2ZVNhbXBsZS50b1NGWm9uZShzLG4pLHRoaXMuYXJ0aWN1bGF0aW9uLnRvU0Zab25lKHMpLHMuZ2VuZXJhdG9ycz1zLmdlbmVyYXRvcnMuZmlsdGVyKGE9PmEuZ2VuZXJhdG9yVmFsdWUhPT14W2EuZ2VuZXJhdG9yVHlwZV0uZGVmKSxzfXdyaXRlSGVhZGVyKCl7bGV0IEE9bmV3IFkoMTIpO3JldHVybiBKKEEsTWF0aC5tYXgodGhpcy5rZXlSYW5nZS5taW4sMCkpLEooQSx0aGlzLmtleVJhbmdlLm1heCksSihBLE1hdGgubWF4KHRoaXMudmVsUmFuZ2UubWluLDApKSxKKEEsdGhpcy52ZWxSYW5nZS5tYXgpLEooQSx0aGlzLmZ1c09wdGlvbnMpLEooQSx0aGlzLmtleUdyb3VwKSxKKEEsdGhpcy51c0xheWVyKSxjQSgicmduaCIsQSl9fSxGbj1jbGFzcyB4dCBleHRlbmRzIGple2FydGljdWxhdGlvbj1uZXcgRGE7cmVnaW9ucz1uZXcgQXJyYXk7bmFtZT0iVW5uYW1lZCI7YmFua0xTQj0wO2JhbmtNU0I9MDtpc0dNR1NEcnVtPSExO3Byb2dyYW09MDtzdGF0aWMgY29weUZyb20oQSl7bGV0IHQ9bmV3IHh0O3JldHVybiB0Lm5hbWU9QS5uYW1lLHQuaXNHTUdTRHJ1bT1BLmlzR01HU0RydW0sdC5iYW5rTVNCPUEuYmFua01TQix0LmJhbmtMU0I9QS5iYW5rTFNCLHQucHJvZ3JhbT1BLnByb2dyYW0sdC5hcnRpY3VsYXRpb24uY29weUZyb20oQS5hcnRpY3VsYXRpb24pLEEucmVnaW9ucy5mb3JFYWNoKG49Pnt0LnJlZ2lvbnMucHVzaChUdC5jb3B5RnJvbShuKSl9KSx0fXN0YXRpYyByZWFkKEEsdCl7bGV0IG49dGhpcy52ZXJpZnlBbmRSZWFkTGlzdCh0LCJpbnMgIikscz1uLmZpbmQoaD0+aC5oZWFkZXI9PT0iaW5zaCIpO2lmKCFzKXRocm93IFooKSxuZXcgRXJyb3IoIk5vIGluc3RydW1lbnQgaGVhZGVyISIpO2xldCBhPSIiLHI9ZmUobiwiSU5GTyIpO2lmKHIpe2xldCBoPXJBKHIuZGF0YSk7Zm9yKDtoLmhlYWRlciE9PSJJTkFNIjspaD1yQShyLmRhdGEpO2E9aEEoaC5kYXRhLGguZGF0YS5sZW5ndGgpLnRyaW0oKX1hLmxlbmd0aDwxJiYoYT0iVW5uYW1lZCBJbnN0cnVtZW50Iik7bGV0IEk9bmV3IHh0O0kubmFtZT1hO2xldCBvPU4ocy5kYXRhLDQpLGc9TihzLmRhdGEsNCksQj1OKHMuZGF0YSw0KTtJLnByb2dyYW09QiYxMjcsSS5iYW5rTVNCPWc+Pj44JjEyNyxJLmJhbmtMU0I9ZyYxMjcsSS5pc0dNR1NEcnVtPWc+Pj4zMT4wLGJBKGAlY1BhcnNpbmcgJWMiJHthfSIlYy4uLmAsYy5pbmZvLGMucmVjb2duaXplZCxjLmluZm8pO2xldCBkPWZlKG4sImxyZ24iKTtpZighZCl0aHJvdyBaKCksbmV3IEVycm9yKCJObyByZWdpb24gbGlzdCEiKTtJLmFydGljdWxhdGlvbi5yZWFkKG4pO2ZvcihsZXQgaD0wO2g8bztoKyspe2xldCBDPXJBKGQuZGF0YSk7dGhpcy52ZXJpZnlIZWFkZXIoQywiTElTVCIpO2xldCBRPWhBKEMuZGF0YSw0KTtRIT09InJnbiAiJiZRIT09InJnbjIiJiYoWigpLHRoaXMucGFyc2luZ0Vycm9yKGBJbnZhbGlkIERMUyByZWdpb24hIEV4cGVjdGVkICJyZ24gIiBvciAicmduMiIgZ290ICIke1F9ImApKTtsZXQgbT1UdC5yZWFkKEEsQyk7bSYmSS5yZWdpb25zLnB1c2gobSl9cmV0dXJuIFooKSxJfXN0YXRpYyBmcm9tU0ZQcmVzZXQoQSx0KXtsZXQgbj1uZXcgeHQ7cmV0dXJuIG4ubmFtZT1BLm5hbWUsbi5iYW5rTFNCPUEuYmFua0xTQixuLmJhbmtNU0I9QS5iYW5rTVNCLG4ucHJvZ3JhbT1BLnByb2dyYW0sbi5pc0dNR1NEcnVtPUEuaXNHTUdTRHJ1bSxPQShgJWNDb252ZXJ0aW5nICVjJHtBLnRvU3RyaW5nKCl9JWMgdG8gRExTLi4uYCxjLmluZm8sYy52YWx1ZSxjLmluZm8pLEEudG9GbGF0dGVuZWRJbnN0cnVtZW50KCkuem9uZXMuZm9yRWFjaChhPT57bi5yZWdpb25zLnB1c2goVHQuZnJvbVNGWm9uZShhLHQpKX0pLFooKSxufXdyaXRlKCl7YkEoYCVjV3JpdGluZyAlYyR7dGhpcy5uYW1lfSVjLi4uYCxjLmluZm8sYy5yZWNvZ25pemVkLGMuaW5mbyk7bGV0IEE9W3RoaXMud3JpdGVIZWFkZXIoKV0sdD10aGlzLnJlZ2lvbnMubWFwKHM9PnMud3JpdGUoKSk7QS5wdXNoKHZBKCJscmduIix0LCEwKSksdGhpcy5hcnRpY3VsYXRpb24ubGVuZ3RoPjAmJkEucHVzaCh0aGlzLmFydGljdWxhdGlvbi53cml0ZSgpKTtsZXQgbj1jQSgiSU5BTSIsbmUodGhpcy5uYW1lLCEwKSk7cmV0dXJuIEEucHVzaChjQSgiSU5GTyIsbiwhMSwhMCkpLFooKSx2QSgiaW5zICIsQSwhMCl9dG9TRlByZXNldChBKXtsZXQgdD1uZXcgcGUoQSk7dC5uYW1lPXRoaXMubmFtZSx0LmJhbmtNU0I9dGhpcy5iYW5rTVNCLHQuYmFua0xTQj10aGlzLmJhbmtMU0IsdC5pc0dNR1NEcnVtPXRoaXMuaXNHTUdTRHJ1bSx0LnByb2dyYW09dGhpcy5wcm9ncmFtO2xldCBuPW5ldyBkdDtuLm5hbWU9dGhpcy5uYW1lLHQuY3JlYXRlWm9uZShuKSx0aGlzLmFydGljdWxhdGlvbi50b1NGWm9uZShuLmdsb2JhbFpvbmUpLHRoaXMucmVnaW9ucy5mb3JFYWNoKHM9PnMudG9TRlpvbmUobixBLnNhbXBsZXMpKSxuLmdsb2JhbGl6ZSgpLG4uZ2xvYmFsWm9uZS5tb2R1bGF0b3JzLmZpbmQocz0+cy5kZXN0aW5hdGlvbj09PWkucmV2ZXJiRWZmZWN0c1NlbmQpPT09dm9pZCAwJiZuLmdsb2JhbFpvbmUuYWRkTW9kdWxhdG9ycyhFQS5jb3B5RnJvbSh5YSkpLG4uZ2xvYmFsWm9uZS5tb2R1bGF0b3JzLmZpbmQocz0+cy5kZXN0aW5hdGlvbj09PWkuY2hvcnVzRWZmZWN0c1NlbmQpPT09dm9pZCAwJiZuLmdsb2JhbFpvbmUuYWRkTW9kdWxhdG9ycyhFQS5jb3B5RnJvbShrYSkpLG4uZ2xvYmFsWm9uZS5nZW5lcmF0b3JzPW4uZ2xvYmFsWm9uZS5nZW5lcmF0b3JzLmZpbHRlcihzPT5zLmdlbmVyYXRvclZhbHVlIT09eFtzLmdlbmVyYXRvclR5cGVdLmRlZiksQS5hZGRQcmVzZXRzKHQpLEEuYWRkSW5zdHJ1bWVudHMobil9d3JpdGVIZWFkZXIoKXtsZXQgQT1uZXcgWSgxMik7Z0EoQSx0aGlzLnJlZ2lvbnMubGVuZ3RoKTtsZXQgdD0odGhpcy5iYW5rTVNCJjEyNyk8PDh8dGhpcy5iYW5rTFNCJjEyNztyZXR1cm4gdGhpcy5pc0dNR1NEcnVtJiYodHw9MTw8MzEpLGdBKEEsdCksZ0EoQSx0aGlzLnByb2dyYW0mMTI3KSxjQSgiaW5zaCIsQSl9fSx3YT17cHJvZ3Jlc3NGdW5jdGlvbjp2b2lkIDB9LEZhPWNsYXNzIF9uIGV4dGVuZHMgamV7c2FtcGxlcz1uZXcgQXJyYXk7aW5zdHJ1bWVudHM9bmV3IEFycmF5O3NvdW5kQmFua0luZm89e25hbWU6IlVubmFtZWQiLGNyZWF0aW9uRGF0ZTpuZXcgRGF0ZSxzb2Z0d2FyZToiU3Blc3NhU3ludGgiLHNvdW5kRW5naW5lOiJETFMgTGV2ZWwgMi4yIix2ZXJzaW9uOnttYWpvcjoyLG1pbm9yOjR9fTtzdGF0aWMgcmVhZChBKXtpZighQSl0aHJvdyBuZXcgRXJyb3IoIk5vIGRhdGEgcHJvdmlkZWQhIik7bGV0IHQ9bmV3IFkoQSk7T0EoIiVjUGFyc2luZyBETFMgZmlsZS4uLiIsYy5pbmZvKTtsZXQgbj1yQSh0LCExKTt0aGlzLnZlcmlmeUhlYWRlcihuLCJSSUZGIiksdGhpcy52ZXJpZnlUZXh0KGhBKHQsNCkudG9Mb3dlckNhc2UoKSwiZGxzICIpO2xldCBzPVtdO2Zvcig7dC5jdXJyZW50SW5kZXg8dC5sZW5ndGg7KXMucHVzaChyQSh0KSk7bGV0IGE9bmV3IF9uO2Euc291bmRCYW5rSW5mby5uYW1lPSJVbm5hbWVkIERMUyIsYS5zb3VuZEJhbmtJbmZvLnByb2R1Y3Q9IlNwZXNzYVN5bnRoIERMUyIsYS5zb3VuZEJhbmtJbmZvLmNvbW1lbnQ9IihubyBkZXNjcmlwdGlvbikiO2xldCByPWZlKHMsIklORk8iKTtpZihyKWZvcig7ci5kYXRhLmN1cnJlbnRJbmRleDxyLmRhdGEubGVuZ3RoOyl7bGV0IFE9ckEoci5kYXRhKSxtPVEuaGVhZGVyLHk9aEEoUS5kYXRhLFEuc2l6ZSk7c3dpdGNoKG0pe2Nhc2UiSU5BTSI6YS5zb3VuZEJhbmtJbmZvLm5hbWU9eTticmVhaztjYXNlIklDUkQiOmEuc291bmRCYW5rSW5mby5jcmVhdGlvbkRhdGU9dHMoeSk7YnJlYWs7Y2FzZSJJQ01UIjphLnNvdW5kQmFua0luZm8uY29tbWVudD15O2JyZWFrO2Nhc2UiSVNCSiI6YS5zb3VuZEJhbmtJbmZvLnN1YmplY3Q9eTticmVhaztjYXNlIklDT1AiOmEuc291bmRCYW5rSW5mby5jb3B5cmlnaHQ9eTticmVhaztjYXNlIklFTkciOmEuc291bmRCYW5rSW5mby5lbmdpbmVlcj15O2JyZWFrO2Nhc2UiSVBSRCI6YS5zb3VuZEJhbmtJbmZvLnByb2R1Y3Q9eTticmVhaztjYXNlIklTRlQiOmEuc291bmRCYW5rSW5mby5zb2Z0d2FyZT15fX10aGlzLnByaW50SW5mbyhhKTtsZXQgST1zLmZpbmQoUT0+US5oZWFkZXI9PT0iY29saCIpO2lmKCFJKXJldHVybiB0aGlzLnBhcnNpbmdFcnJvcigiTm8gY29saCBjaHVuayEiKSw1O2xldCBvPU4oSS5kYXRhLDQpO3AoYCVjSW5zdHJ1bWVudHMgYW1vdW50OiAlYyR7b31gLGMuaW5mbyxjLnJlY29nbml6ZWQpO2xldCBnPWZlKHMsInd2cGwiKTtpZighZylyZXR1cm4gdGhpcy5wYXJzaW5nRXJyb3IoIk5vIHd2cGwgY2h1bmshIiksNTt0aGlzLnZlcmlmeUFuZFJlYWRMaXN0KGcsInd2cGwiKS5mb3JFYWNoKFE9PnthLnNhbXBsZXMucHVzaChMcy5yZWFkKFEpKX0pO2xldCBkPWZlKHMsImxpbnMiKTtpZighZClyZXR1cm4gdGhpcy5wYXJzaW5nRXJyb3IoIk5vIGxpbnMgY2h1bmshIiksNTtsZXQgaD10aGlzLnZlcmlmeUFuZFJlYWRMaXN0KGQsImxpbnMiKTtiQSgiJWNMb2FkaW5nIGluc3RydW1lbnRzLi4uIixjLmluZm8pLGgubGVuZ3RoIT09byYmc0EoYENvbGggcmVwb3J0ZWQgaW52YWxpZCBhbW91bnQgb2YgaW5zdHJ1bWVudHMuIERldGVjdGVkICR7aC5sZW5ndGh9LCBleHBlY3RlZCAke299YCksaC5mb3JFYWNoKFE9PnthLmluc3RydW1lbnRzLnB1c2goRm4ucmVhZChhLnNhbXBsZXMsUSkpfSksWigpO2xldCBDPXMuZmluZChRPT5RLmhlYWRlcj09PSJwZ2FsIik7aWYoQyl7cCgiJWNGb3VuZCB0aGUgaW5zdHJ1bWVudCBhbGlhc2luZyBjaHVuayEiLGMucmVjb2duaXplZCk7bGV0IFE9Qy5kYXRhO1FbMF09PT0yJiZRWzFdK1FbMl0rUVszXT09PTAmJihRLmN1cnJlbnRJbmRleCs9NCk7bGV0IG09YS5pbnN0cnVtZW50cy5maW5kKEY9PmZBLmlzWEdEcnVtcyhGLmJhbmtNU0IpfHxGLmlzR01HU0RydW0pO2lmKCFtKXJldHVybiBzQSgiTW9iaWxlQkFFIGFsaWFzaW5nIGNodW5rIHdpdGhvdXQgYSBkcnVtIHByZXNldC4gQWJvcnRpbmchIiksYTtsZXQgeT1RLnNsaWNlKFEuY3VycmVudEluZGV4LFEuY3VycmVudEluZGV4KzEyOCk7US5jdXJyZW50SW5kZXgrPTEyODtmb3IobGV0IEY9MDtGPDEyODtGKyspe2xldCBrPXlbRl07aWYoaz09PUYpY29udGludWU7bGV0IEQ9bS5yZWdpb25zLmZpbmQoTD0+TC5rZXlSYW5nZS5tYXg9PT1rJiZMLmtleVJhbmdlLm1pbj09PWspO2lmKCFEKXtzQShgSW52YWxpZCBkcnVtIGFsaWFzICR7Rn0gdG8gJHtrfTogcmVnaW9uIGRvZXMgbm90IGV4aXN0LmApO2NvbnRpbnVlfWxldCB2PVR0LmNvcHlGcm9tKEQpO3Yua2V5UmFuZ2UubWF4PUYsdi5rZXlSYW5nZS5taW49RixtLnJlZ2lvbnMucHVzaCh2KX1mb3IoUS5jdXJyZW50SW5kZXgrPTQ7US5jdXJyZW50SW5kZXg8US5sZW5ndGg7KXtsZXQgRj1OKFEsMiksaz1GJjEyNyxEPUY+PjcmMTI3LHY9UVtRLmN1cnJlbnRJbmRleCsrXSxMPVFbUS5jdXJyZW50SW5kZXgrK107TCE9PTAmJnNBKGBJbnZhbGlkIGFsaWFzIGJ5dGUuIEV4cGVjdGVkIDAsIGdvdCAke0x9YCk7bGV0IEU9TihRLDIpLFg9RSYxMjcsTz1FPj43JjEyNyxuQT1RW1EuY3VycmVudEluZGV4KytdO0w9UVtRLmN1cnJlbnRJbmRleCsrXSxMIT09MCYmc0EoYEludmFsaWQgYWxpYXMgaGVhZGVyLiBFeHBlY3RlZCAwLCBnb3QgJHtMfWApO2xldCAkPWEuaW5zdHJ1bWVudHMuZmluZChxPT5xLmJhbmtMU0I9PT1YJiZxLmJhbmtNU0I9PT1PJiZxLnByb2dyYW09PT1uQSYmIXEuaXNHTUdTRHJ1bSk7aWYoISQpe3NBKGBJbnZhbGlkIGFsaWFzLiBNaXNzaW5nIGluc3RydW1lbnQ6ICR7WH06JHtPfToke25BfWApO2NvbnRpbnVlfWxldCBWPUZuLmNvcHlGcm9tKCQpO1YuYmFua01TQj1ELFYuYmFua0xTQj1rLFYucHJvZ3JhbT12LGEuaW5zdHJ1bWVudHMucHVzaChWKX19cmV0dXJuIHAoYCVjUGFyc2luZyBmaW5pc2hlZCEgJWMiJHthLnNvdW5kQmFua0luZm8ubmFtZXx8IlVOTkFNRUQifSIlYyBoYXMgJWMke2EuaW5zdHJ1bWVudHMubGVuZ3RofSVjIGluc3RydW1lbnRzIGFuZCAlYyR7YS5zYW1wbGVzLmxlbmd0aH0lYyBzYW1wbGVzLmAsYy5pbmZvLGMucmVjb2duaXplZCxjLmluZm8sYy5yZWNvZ25pemVkLGMuaW5mbyxjLnJlY29nbml6ZWQsYy5pbmZvKSxaKCksYX1zdGF0aWMgZnJvbVNGKEEpe2JBKCIlY1NhdmluZyBTRjIgdG8gRExTIGxldmVsIDIuLi4iLGMuaW5mbyk7bGV0IHQ9bmV3IF9uO3JldHVybiB0LnNvdW5kQmFua0luZm89ey4uLkEuc291bmRCYW5rSW5mb30sdC5zb3VuZEJhbmtJbmZvLmNvbW1lbnQ9KHQuc291bmRCYW5rSW5mby5jb21tZW50Pz8iKE5vIGRlc2NyaXB0aW9uKSIpK2AKQ29udmVydGVkIGZyb20gU0YyIHRvIERMUyB3aXRoIFNwZXNzYVN5bnRoYCxBLnNhbXBsZXMuZm9yRWFjaChuPT57dC5zYW1wbGVzLnB1c2goTHMuZnJvbVNGU2FtcGxlKG4pKX0pLEEucHJlc2V0cy5mb3JFYWNoKG49Pnt0Lmluc3RydW1lbnRzLnB1c2goRm4uZnJvbVNGUHJlc2V0KG4sQS5zYW1wbGVzKSl9KSxwKCIlY0NvbnZlcnNpb24gY29tcGxldGUhIixjLnJlY29nbml6ZWQpLFooKSx0fXN0YXRpYyBwcmludEluZm8oQSl7Zm9yKGxldFt0LG5db2YgT2JqZWN0LmVudHJpZXMoQS5zb3VuZEJhbmtJbmZvKSl7aWYodHlwZW9mIG49PSJvYmplY3QiJiYibWFqb3IiaW4gbil7bGV0IHM9bjtwKGAlYyR7dH06ICVjIiR7cy5tYWpvcn0uJHtzLm1pbm9yfSJgLGMuaW5mbyxjLnJlY29nbml6ZWQpfXAoYCVjJHt0fTogJWMke24udG9Mb2NhbGVTdHJpbmcoKX1gLGMuaW5mbyxjLnJlY29nbml6ZWQpfX1hc3luYyB3cml0ZShBPXdhKXtiQSgiJWNTYXZpbmcgRExTLi4uIixjLmluZm8pO2xldCB0PW5ldyBZKDQpO2dBKHQsdGhpcy5pbnN0cnVtZW50cy5sZW5ndGgpO2xldCBuPWNBKCJjb2xoIix0KTtiQSgiJWNXcml0aW5nIGluc3RydW1lbnRzLi4uIixjLmluZm8pO2xldCBzPXZBKCJsaW5zIix0aGlzLmluc3RydW1lbnRzLm1hcCh5PT55LndyaXRlKCkpLCEwKTtwKCIlY1N1Y2Nlc3MhIixjLnJlY29nbml6ZWQpLFooKSxiQSgiJWNXcml0aW5nIFdBVkUgc2FtcGxlcy4uLiIsYy5pbmZvKTtsZXQgYT0wLHI9W10sST1bXSxvPTA7Zm9yKGxldCB5IG9mIHRoaXMuc2FtcGxlcyl7bGV0IEY9eS53cml0ZSgpO2F3YWl0IEE/LnByb2dyZXNzRnVuY3Rpb24/Lih5Lm5hbWUsbyx0aGlzLnNhbXBsZXMubGVuZ3RoKSxyLnB1c2goYSksYSs9Ri5sZW5ndGgsSS5wdXNoKEYpLG8rK31sZXQgZz12QSgid3ZwbCIsSSwhMCk7cCgiJWNTdWNjZWVkZWQhIixjLnJlY29nbml6ZWQpO2xldCBCPW5ldyBZKDgrNCpyLmxlbmd0aCk7Z0EoQiw4KSxnQShCLHIubGVuZ3RoKTtmb3IobGV0IHkgb2YgcilnQShCLHkpO2xldCBkPWNBKCJwdGJsIixCKTt0aGlzLnNvdW5kQmFua0luZm8uc29mdHdhcmU9IlNwZXNzYVN5bnRoIjtsZXQgaD1bXSxDPSh5LEYpPT57aC5wdXNoKGNBKHksbmUoRiwhMCkpKX07Zm9yKGxldFt5LEZdb2YgT2JqZWN0LmVudHJpZXModGhpcy5zb3VuZEJhbmtJbmZvKSl7bGV0IGs9eSxEPUY7aWYoRClzd2l0Y2goayl7Y2FzZSJuYW1lIjpDKCJJTkFNIixEKTticmVhaztjYXNlImNvbW1lbnQiOkMoIklDTVQiLEQpO2JyZWFrO2Nhc2UiY29weXJpZ2h0IjpDKCJJQ09QIixEKTticmVhaztjYXNlImNyZWF0aW9uRGF0ZSI6QygiSUNSRCIsRC50b0lTT1N0cmluZygpKTticmVhaztjYXNlImVuZ2luZWVyIjpDKCJJRU5HIixEKTticmVhaztjYXNlInByb2R1Y3QiOkMoIklQUkQiLEQpO2JyZWFrO2Nhc2Uicm9tVmVyc2lvbiI6Y2FzZSJ2ZXJzaW9uIjpjYXNlInNvdW5kRW5naW5lIjpjYXNlInJvbUluZm8iOmJyZWFrO2Nhc2Uic29mdHdhcmUiOkMoIklTRlQiLEQpO2JyZWFrO2Nhc2Uic3ViamVjdCI6QygiSVNCSiIsRCl9fWxldCBRPXZBKCJJTkZPIixoLCEwKTtwKCIlY0NvbWJpbmluZyBldmVyeXRoaW5nLi4uIik7bGV0IG09dkEoIlJJRkYiLFtuZSgiRExTICIpLG4scyxkLGcsUV0pO3JldHVybiBwKCIlY1NhdmVkIHN1Y2Nlc3NmdWxseSEiLGMucmVjb2duaXplZCksWigpLG0uYnVmZmVyfXRvU0YoKXtPQSgiJWNDb252ZXJ0aW5nIERMUyB0byBTRjIuLi4iLGMuaW5mbyk7bGV0IEE9bmV3IEdhO3JldHVybiBBLnNvdW5kQmFua0luZm8udmVyc2lvbi5taW5vcj00LEEuc291bmRCYW5rSW5mby52ZXJzaW9uLm1ham9yPTIsQS5zb3VuZEJhbmtJbmZvPXsuLi50aGlzLnNvdW5kQmFua0luZm99LEEuc291bmRCYW5rSW5mby5jb21tZW50PShBLnNvdW5kQmFua0luZm8uY29tbWVudD8/IihObyBkZXNjcmlwdGlvbikiKStgCkNvbnZlcnRlZCBmcm9tIERMUyB0byBTRjIgd2l0aCBTcGVzc2FTeW50aGAsdGhpcy5zYW1wbGVzLmZvckVhY2godD0+e3QudG9TRlNhbXBsZShBKX0pLHRoaXMuaW5zdHJ1bWVudHMuZm9yRWFjaCh0PT57dC50b1NGUHJlc2V0KEEpfSksQS5mbHVzaCgpLHAoIiVjQ29udmVyc2lvbiBjb21wbGV0ZSEiLGMucmVjb2duaXplZCksWigpLEF9fSxHYT1jbGFzcyBIdHtzdGF0aWMgaXNTRjNEZWNvZGVyUmVhZHk9T3QuaXNJbml0aWFsaXplZDtzb3VuZEJhbmtJbmZvPXtuYW1lOiJVbm5hbWVkIixjcmVhdGlvbkRhdGU6bmV3IERhdGUsc29mdHdhcmU6IlNwZXNzYVN5bnRoIixzb3VuZEVuZ2luZToiRS1tdSAxMEsyIix2ZXJzaW9uOnttYWpvcjoyLG1pbm9yOjR9fTtwcmVzZXRzPVtdO3NhbXBsZXM9W107aW5zdHJ1bWVudHM9W107ZGVmYXVsdE1vZHVsYXRvcnM9RWEubWFwKEVBLmNvcHlGcm9tLmJpbmQoRUEpKTtjdXN0b21EZWZhdWx0TW9kdWxhdG9ycz0hMTtfaXNYR0Jhbms9ITE7Z2V0IGlzWEdCYW5rKCl7cmV0dXJuIHRoaXMuX2lzWEdCYW5rfXN0YXRpYyBtZXJnZVNvdW5kQmFua3MoLi4uQSl7bGV0IHQ9QS5zaGlmdCgpO2lmKCF0KXRocm93IG5ldyBFcnJvcigiTm8gc291bmQgYmFua3MgcHJvdmlkZWQhIik7bGV0IG49dC5wcmVzZXRzO2Zvcig7QS5sZW5ndGg7KXtsZXQgYT1BPy5zaGlmdCgpPy5wcmVzZXRzO2EmJmEuZm9yRWFjaChyPT57bi5maW5kKEk9PnIubWF0Y2hlcyhJKSk9PT12b2lkIDAmJm4ucHVzaChyKX0pfWxldCBzPW5ldyBIdDtyZXR1cm4gcy5hZGRDb21wbGV0ZVByZXNldHMobikscy5zb3VuZEJhbmtJbmZvPXsuLi50LnNvdW5kQmFua0luZm99LHN9c3RhdGljIGFzeW5jIGdldFNhbXBsZVNvdW5kQmFua0ZpbGUoKXtsZXQgQT1uZXcgSHQsdD1uZXcgRmxvYXQzMkFycmF5KDEyOCk7Zm9yKGxldCBJPTA7STwxMjg7SSsrKXRbSV09SS8xMjgqMi0xO2xldCBuPW5ldyBtcjtuLm5hbWU9IlNhdyIsbi5vcmlnaW5hbEtleT02NSxuLnBpdGNoQ29ycmVjdGlvbj0yMCxuLmxvb3BFbmQ9MTI3LG4uc2V0QXVkaW9EYXRhKHQsNDQxMDApLEEuYWRkU2FtcGxlcyhuKTtsZXQgcz1uZXcgZHQ7cy5uYW1lPSJTYXcgV2F2ZSIscy5nbG9iYWxab25lLmFkZEdlbmVyYXRvcnMobmV3IEZBKGkuaW5pdGlhbEF0dGVudWF0aW9uLDM3NSksbmV3IEZBKGkucmVsZWFzZVZvbEVudiwtMWUzKSxuZXcgRkEoaS5zYW1wbGVNb2RlcywxKSkscy5jcmVhdGVab25lKG4pLHMuY3JlYXRlWm9uZShuKS5hZGRHZW5lcmF0b3JzKG5ldyBGQShpLmZpbmVUdW5lLC05KSksQS5hZGRJbnN0cnVtZW50cyhzKTtsZXQgcj1uZXcgcGUoQSk7cmV0dXJuIHIubmFtZT0iU2F3IFdhdmUiLHIuY3JlYXRlWm9uZShzKSxBLmFkZFByZXNldHMociksQS5zb3VuZEJhbmtJbmZvLm5hbWU9IkR1bW15IixBLmZsdXNoKCksYXdhaXQgQS53cml0ZVNGMigpfXN0YXRpYyBjb3B5RnJvbShBKXtsZXQgdD1uZXcgSHQ7cmV0dXJuIEEucHJlc2V0cy5mb3JFYWNoKG49PnQuY2xvbmVQcmVzZXQobikpLHQuc291bmRCYW5rSW5mbz17Li4uQS5zb3VuZEJhbmtJbmZvfSx0fWFkZENvbXBsZXRlUHJlc2V0cyhBKXt0aGlzLmFkZFByZXNldHMoLi4uQSk7bGV0IHQ9W107Zm9yKGxldCBzIG9mIEEpZm9yKGxldCBhIG9mIHMuem9uZXMpYS5pbnN0cnVtZW50JiYhdC5pbmNsdWRlcyhhLmluc3RydW1lbnQpJiZ0LnB1c2goYS5pbnN0cnVtZW50KTt0aGlzLmFkZEluc3RydW1lbnRzKC4uLnQpO2xldCBuPVtdO2ZvcihsZXQgcyBvZiB0KWZvcihsZXQgYSBvZiBzLnpvbmVzKWEuc2FtcGxlJiYhbi5pbmNsdWRlcyhhLnNhbXBsZSkmJm4ucHVzaChhLnNhbXBsZSk7dGhpcy5hZGRTYW1wbGVzKC4uLm4pfWFzeW5jIHdyaXRlRExTKEE9d2Epe3JldHVybiBGYS5mcm9tU0YodGhpcykud3JpdGUoQSl9YXN5bmMgd3JpdGVTRjIoQT1Ybil7cmV0dXJuIGtyKHRoaXMsQSl9YWRkUHJlc2V0cyguLi5BKXt0aGlzLnByZXNldHMucHVzaCguLi5BKX1hZGRJbnN0cnVtZW50cyguLi5BKXt0aGlzLmluc3RydW1lbnRzLnB1c2goLi4uQSl9YWRkU2FtcGxlcyguLi5BKXt0aGlzLnNhbXBsZXMucHVzaCguLi5BKX1jbG9uZVNhbXBsZShBKXtsZXQgdD10aGlzLnNhbXBsZXMuZmluZChzPT5zLm5hbWU9PT1BLm5hbWUpO2lmKHQpcmV0dXJuIHQ7bGV0IG49bmV3IFp0KEEubmFtZSxBLnNhbXBsZVJhdGUsQS5vcmlnaW5hbEtleSxBLnBpdGNoQ29ycmVjdGlvbixBLnNhbXBsZVR5cGUsQS5sb29wU3RhcnQsQS5sb29wRW5kKTtpZihBLmlzQ29tcHJlc3NlZD9uLnNldENvbXByZXNzZWREYXRhKEEuZ2V0UmF3RGF0YSghMCkpOm4uc2V0QXVkaW9EYXRhKEEuZ2V0QXVkaW9EYXRhKCksQS5zYW1wbGVSYXRlKSx0aGlzLmFkZFNhbXBsZXMobiksQS5saW5rZWRTYW1wbGUpe2xldCBzPXRoaXMuY2xvbmVTYW1wbGUoQS5saW5rZWRTYW1wbGUpO3MubGlua2VkU2FtcGxlfHxuLnNldExpbmtlZFNhbXBsZShzLG4uc2FtcGxlVHlwZSl9cmV0dXJuIG59Y2xvbmVJbnN0cnVtZW50KEEpe2xldCB0PXRoaXMuaW5zdHJ1bWVudHMuZmluZChzPT5zLm5hbWU9PT1BLm5hbWUpO2lmKHQpcmV0dXJuIHQ7bGV0IG49bmV3IGR0O24ubmFtZT1BLm5hbWUsbi5nbG9iYWxab25lLmNvcHlGcm9tKEEuZ2xvYmFsWm9uZSk7Zm9yKGxldCBzIG9mIEEuem9uZXMpbi5jcmVhdGVab25lKHRoaXMuY2xvbmVTYW1wbGUocy5zYW1wbGUpKS5jb3B5RnJvbShzKTtyZXR1cm4gdGhpcy5hZGRJbnN0cnVtZW50cyhuKSxufWNsb25lUHJlc2V0KEEpe2xldCB0PXRoaXMucHJlc2V0cy5maW5kKHM9PnMubmFtZT09PUEubmFtZSk7aWYodClyZXR1cm4gdDtsZXQgbj1uZXcgcGUodGhpcyk7bi5uYW1lPUEubmFtZSxuLmJhbmtNU0I9QS5iYW5rTVNCLG4uYmFua0xTQj1BLmJhbmtMU0Isbi5pc0dNR1NEcnVtPUEuaXNHTUdTRHJ1bSxuLnByb2dyYW09QS5wcm9ncmFtLG4ubGlicmFyeT1BLmxpYnJhcnksbi5nZW5yZT1BLmdlbnJlLG4ubW9ycGhvbG9neT1BLm1vcnBob2xvZ3ksbi5nbG9iYWxab25lLmNvcHlGcm9tKEEuZ2xvYmFsWm9uZSk7Zm9yKGxldCBzIG9mIEEuem9uZXMpbi5jcmVhdGVab25lKHRoaXMuY2xvbmVJbnN0cnVtZW50KHMuaW5zdHJ1bWVudCkpLmNvcHlGcm9tKHMpO3JldHVybiB0aGlzLmFkZFByZXNldHMobiksbn1mbHVzaCgpe3RoaXMucHJlc2V0cy5zb3J0KHRlLnNvcnRlci5iaW5kKHRlKSksdGhpcy5wYXJzZUludGVybmFsKCl9dHJpbVNvdW5kQmFuayhBKXtsZXQgdD0ocyxhKT0+e2xldCByPTA7Zm9yKGxldCBJPTA7STxzLnpvbmVzLmxlbmd0aDtJKyspe2xldCBvPXMuem9uZXNbSV0sZz1vLmtleVJhbmdlLEI9by52ZWxSYW5nZSxkPSExO2ZvcihsZXQgaCBvZiBhKWlmKGgua2V5Pj1nLm1pbiYmaC5rZXk8PWcubWF4JiZoLnZlbG9jaXR5Pj1CLm1pbiYmaC52ZWxvY2l0eTw9Qi5tYXgpe2Q9ITA7YnJlYWt9IWQmJm8uc2FtcGxlJiYocChgJWMke28uc2FtcGxlLm5hbWV9JWMgcmVtb3ZlZCBmcm9tICVjJHtzLm5hbWV9JWMuYCxjLnJlY29nbml6ZWQsYy5pbmZvLGMucmVjb2duaXplZCxjLmluZm8pLHMuZGVsZXRlWm9uZShJKSYmKHIrKyxJLS0scChgJWMke28uc2FtcGxlLm5hbWV9JWMgZGVsZXRlZGAsYy5yZWNvZ25pemVkLGMuaW5mbykpLG8uc2FtcGxlLnVzZUNvdW50PDEmJnRoaXMuZGVsZXRlU2FtcGxlKG8uc2FtcGxlKSl9cmV0dXJuIHJ9O09BKCIlY1RyaW1taW5nIHNvdW5kIGJhbmsuLi4iLGMuaW5mbyk7bGV0IG49QS5nZXRVc2VkUHJvZ3JhbXNBbmRLZXlzKHRoaXMpO2JBKCIlY01vZGlmeWluZyBzb3VuZCBiYW5rLi4uIixjLmluZm8pLHAoIkRldGVjdGVkIGtleXMgZm9yIG1pZGk6IixuKTtmb3IobGV0IHM9MDtzPHRoaXMucHJlc2V0cy5sZW5ndGg7cysrKXtsZXQgYT10aGlzLnByZXNldHNbc10scj1uLmdldChhKTtpZihyPT09dm9pZCAwKXAoYCVjRGVsZXRpbmcgcHJlc2V0ICVjJHthLm5hbWV9JWMgYW5kIGl0cyB6b25lc2AsYy5pbmZvLGMucmVjb2duaXplZCxjLmluZm8pLHRoaXMuZGVsZXRlUHJlc2V0KGEpLHMtLTtlbHNle2xldCBJPVsuLi5yXS5tYXAoZz0+e2xldCBCPWcuc3BsaXQoIi0iKTtyZXR1cm57a2V5OnBhcnNlSW50KEJbMF0pLHZlbG9jaXR5OnBhcnNlSW50KEJbMV0pfX0pO2JBKGAlY1RyaW1taW5nICVjJHthLm5hbWV9YCxjLmluZm8sYy5yZWNvZ25pemVkKSxwKGBLZXlzIGZvciAke2EubmFtZX06YCxJKTtsZXQgbz0wO2ZvcihsZXQgZz0wO2c8YS56b25lcy5sZW5ndGg7ZysrKXtsZXQgQj1hLnpvbmVzW2ddLGQ9Qi5rZXlSYW5nZSxoPUIudmVsUmFuZ2UsQz0hMTtmb3IobGV0IFEgb2YgSSlpZihRLmtleT49ZC5taW4mJlEua2V5PD1kLm1heCYmUS52ZWxvY2l0eT49aC5taW4mJlEudmVsb2NpdHk8PWgubWF4JiZCLmluc3RydW1lbnQpe0M9ITA7bGV0IG09dChCLmluc3RydW1lbnQsSSk7cChgJWNUcmltbWVkIG9mZiAlYyR7bX0lYyB6b25lcyBmcm9tICVjJHtCLmluc3RydW1lbnQubmFtZX1gLGMuaW5mbyxjLnJlY29nbml6ZWQsYy5pbmZvLGMucmVjb2duaXplZCk7YnJlYWt9IUMmJkIuaW5zdHJ1bWVudCYmKG8rKyxhLmRlbGV0ZVpvbmUoZyksQi5pbnN0cnVtZW50LnVzZUNvdW50PDEmJnRoaXMuZGVsZXRlSW5zdHJ1bWVudChCLmluc3RydW1lbnQpLGctLSl9cChgJWNUcmltbWVkIG9mZiAlYyR7b30lYyB6b25lcyBmcm9tICVjJHthLm5hbWV9YCxjLmluZm8sYy5yZWNvZ25pemVkLGMuaW5mbyxjLnJlY29nbml6ZWQpLFooKX19dGhpcy5yZW1vdmVVbnVzZWRFbGVtZW50cygpLHAoIiVjU291bmQgYmFuayBtb2RpZmllZCEiLGMucmVjb2duaXplZCksWigpLFooKX1yZW1vdmVVbnVzZWRFbGVtZW50cygpe3RoaXMuaW5zdHJ1bWVudHM9dGhpcy5pbnN0cnVtZW50cy5maWx0ZXIoQT0+e0EuZGVsZXRlVW51c2VkWm9uZXMoKTtsZXQgdD1BLnVzZUNvdW50PDE7cmV0dXJuIHQmJkEuZGVsZXRlKCksIXR9KSx0aGlzLnNhbXBsZXM9dGhpcy5zYW1wbGVzLmZpbHRlcihBPT57bGV0IHQ9QS51c2VDb3VudDwxO3JldHVybiB0JiZBLnVubGlua1NhbXBsZSgpLCF0fSl9ZGVsZXRlSW5zdHJ1bWVudChBKXtBLmRlbGV0ZSgpLHRoaXMuaW5zdHJ1bWVudHMuc3BsaWNlKHRoaXMuaW5zdHJ1bWVudHMuaW5kZXhPZihBKSwxKX1kZWxldGVQcmVzZXQoQSl7QS5kZWxldGUoKSx0aGlzLnByZXNldHMuc3BsaWNlKHRoaXMucHJlc2V0cy5pbmRleE9mKEEpLDEpfWRlbGV0ZVNhbXBsZShBKXtBLnVubGlua1NhbXBsZSgpLHRoaXMuc2FtcGxlcy5zcGxpY2UodGhpcy5zYW1wbGVzLmluZGV4T2YoQSksMSl9Z2V0UHJlc2V0KEEsdCl7cmV0dXJuIFFhKHRoaXMucHJlc2V0cyxBLHQpfWRlc3Ryb3lTb3VuZEJhbmsoKXt0aGlzLnByZXNldHMubGVuZ3RoPTAsdGhpcy5pbnN0cnVtZW50cy5sZW5ndGg9MCx0aGlzLnNhbXBsZXMubGVuZ3RoPTB9cGFyc2luZ0Vycm9yKEEpe3Rocm93IG5ldyBFcnJvcihgU0YgcGFyc2luZyBlcnJvcjogJHtBfSBUaGUgZmlsZSBtYXkgYmUgY29ycnVwdGVkLmApfXBhcnNlSW50ZXJuYWwoKXt0aGlzLl9pc1hHQmFuaz0hMTtsZXQgQT1uZXcgU2V0KFswLDEsMiwzLDQsNSw2LDcsOCw5LDE2LDE3LDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMyLDMzLDQwLDQxLDQ4LDU2LDU3LDU4LDY0LDY1LDY2LDEyNiwxMjddKTtmb3IobGV0IHQgb2YgdGhpcy5wcmVzZXRzKWlmKGZBLmlzWEdEcnVtcyh0LmJhbmtNU0IpJiYodGhpcy5faXNYR0Jhbms9ITAsIUEuaGFzKHQucHJvZ3JhbSkpKXt0aGlzLl9pc1hHQmFuaz0hMSxwKGAlY1RoaXMgYmFuayBpcyBub3QgdmFsaWQgWEcuIFByZXNldCAlYyR7dC50b1N0cmluZygpfSVjIGlzIG5vdCBhIHZhbGlkIFhHIGRydW0uIFhHIG1vZGUgd2lsbCB1c2UgcHJlc2V0cyBvbiBiYW5rIDEyOC5gLGMuaW5mbyxjLnZhbHVlLGMuaW5mbyk7YnJlYWt9fXByaW50SW5mbygpe2ZvcihsZXRbQSx0XW9mIE9iamVjdC5lbnRyaWVzKHRoaXMuc291bmRCYW5rSW5mbykpe2lmKHR5cGVvZiB0PT0ib2JqZWN0IiYmIm1ham9yImluIHQpe2xldCBuPXQ7cChgJWMke0F9OiAlYyIke24ubWFqb3J9LiR7bi5taW5vcn0iYCxjLmluZm8sYy5yZWNvZ25pemVkKX1wKGAlYyR7QX06ICVjJHt0LnRvTG9jYWxlU3RyaW5nKCl9YCxjLmluZm8sYy5yZWNvZ25pemVkKX19fSxicj1jbGFzcyBleHRlbmRzIEZBe2NvbnN0cnVjdG9yKGUpe2xldCBBPWUuY3VycmVudEluZGV4LHQ9ZVtBKzFdPDw4fGVbQV0sbj1qbihlW0ErMl0sZVtBKzNdKTtlLmN1cnJlbnRJbmRleCs9NCxzdXBlcih0LG4sITEpfX07ZnVuY3Rpb24gTnMoZSl7bGV0IEE9W107Zm9yKDtlLmRhdGEubGVuZ3RoPmUuZGF0YS5jdXJyZW50SW5kZXg7KUEucHVzaChuZXcgYnIoZS5kYXRhKSk7cmV0dXJuIEEucG9wKCksQX12YXIgdnI9Y2xhc3MgZXh0ZW5kcyBDYXtjb25zdHJ1Y3RvcihlLEEsdCxuKXtsZXQgcz10LmZpbmQocj0+ci5nZW5lcmF0b3JUeXBlPT09aS5pbnN0cnVtZW50KSxhO2lmKHMpYT1uW3MuZ2VuZXJhdG9yVmFsdWVdO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJObyBpbnN0cnVtZW50IElEIGZvdW5kIGluIHByZXNldCB6b25lLiIpO2lmKCFhKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBpbnN0cnVtZW50IElEOiAke3MuZ2VuZXJhdG9yVmFsdWV9LCBhdmFpbGFibGUgaW5zdHJ1bWVudHM6ICR7bi5sZW5ndGh9YCk7c3VwZXIoZSxhKSx0aGlzLmFkZEdlbmVyYXRvcnMoLi4udCksdGhpcy5hZGRNb2R1bGF0b3JzKC4uLkEpfX07ZnVuY3Rpb24gTHIoZSxBLHQsbixzKXtsZXQgYT1lLmdlbixyPWUubW9kLEk9MCxvPTA7Zm9yKGxldCBnIG9mIHMpZm9yKGxldCBCPTA7QjxnLnpvbmVzQ291bnQ7QisrKXtsZXQgZD1hW28rK10saD1hW29dLEM9QS5zbGljZShkLGgpLFE9cltJKytdLG09cltJXSx5PXQuc2xpY2UoUSxtKTtDLmZpbmQoRj0+Ri5nZW5lcmF0b3JUeXBlPT09aS5pbnN0cnVtZW50KSE9PXZvaWQgMD9nLmNyZWF0ZVNvdW5kRm9udFpvbmUoeSxDLG4pOihnLmdsb2JhbFpvbmUuYWRkR2VuZXJhdG9ycyguLi5DKSxnLmdsb2JhbFpvbmUuYWRkTW9kdWxhdG9ycyguLi55KSl9fXZhciBOcj1jbGFzcyBleHRlbmRzIHBle3pvbmVTdGFydEluZGV4O3pvbmVzQ291bnQ9MDtjb25zdHJ1Y3RvcihlLEEpe3N1cGVyKEEpLHRoaXMubmFtZT1oQShlLmRhdGEsMjApLnJlcGxhY2UoL1xkezN9OlxkezN9LywiIiksdGhpcy5wcm9ncmFtPU4oZS5kYXRhLDIpO2xldCB0PU4oZS5kYXRhLDIpO3RoaXMuYmFua01TQj10JjEyNyx0aGlzLmlzR01HU0RydW09KHQmMTI4KT4wLHRoaXMuYmFua0xTQj10Pj44LHRoaXMuem9uZVN0YXJ0SW5kZXg9TihlLmRhdGEsMiksdGhpcy5saWJyYXJ5PU4oZS5kYXRhLDQpLHRoaXMuZ2VucmU9TihlLmRhdGEsNCksdGhpcy5tb3JwaG9sb2d5PU4oZS5kYXRhLDQpfWNyZWF0ZVNvdW5kRm9udFpvbmUoZSxBLHQpe2xldCBuPW5ldyB2cih0aGlzLGUsQSx0KTtyZXR1cm4gdGhpcy56b25lcy5wdXNoKG4pLG59fTtmdW5jdGlvbiBVcyhlLEEpe2xldCB0PVtdO2Zvcig7ZS5kYXRhLmxlbmd0aD5lLmRhdGEuY3VycmVudEluZGV4Oyl7bGV0IG49bmV3IE5yKGUsQSk7aWYodC5sZW5ndGg+MCl7bGV0IHM9dFt0Lmxlbmd0aC0xXTtzLnpvbmVzQ291bnQ9bi56b25lU3RhcnRJbmRleC1zLnpvbmVTdGFydEluZGV4fXQucHVzaChuKX1yZXR1cm4gdC5wb3AoKSx0fXZhciBVcj1jbGFzcyBleHRlbmRzIGhhe2NvbnN0cnVjdG9yKGUsQSx0LG4pe2xldCBzPXQuZmluZChyPT5yLmdlbmVyYXRvclR5cGU9PT1pLnNhbXBsZUlEKSxhO2lmKHMpYT1uW3MuZ2VuZXJhdG9yVmFsdWVdO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJObyBzYW1wbGUgSUQgZm91bmQgaW4gaW5zdHJ1bWVudCB6b25lLiIpO2lmKCFhKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzYW1wbGUgSUQ6ICR7cy5nZW5lcmF0b3JWYWx1ZX0sIGF2YWlsYWJsZSBzYW1wbGVzOiAke24ubGVuZ3RofWApO3N1cGVyKGUsYSksdGhpcy5hZGRHZW5lcmF0b3JzKC4uLnQpLHRoaXMuYWRkTW9kdWxhdG9ycyguLi5BKX19O2Z1bmN0aW9uIFRyKGUsQSx0LG4scyl7bGV0IGE9ZS5nZW4scj1lLm1vZCxJPTAsbz0wO2ZvcihsZXQgZyBvZiBzKWZvcihsZXQgQj0wO0I8Zy56b25lc0NvdW50O0IrKyl7bGV0IGQ9YVtvKytdLGg9YVtvXSxDPUEuc2xpY2UoZCxoKSxRPXJbSSsrXSxtPXJbSV0seT10LnNsaWNlKFEsbSk7Qy5maW5kKEY9PkYuZ2VuZXJhdG9yVHlwZT09PWkuc2FtcGxlSUQpP2cuY3JlYXRlU291bmRGb250Wm9uZSh5LEMsbik6KGcuZ2xvYmFsWm9uZS5hZGRHZW5lcmF0b3JzKC4uLkMpLGcuZ2xvYmFsWm9uZS5hZGRNb2R1bGF0b3JzKC4uLnkpKX19dmFyIHhyPWNsYXNzIGV4dGVuZHMgZHR7em9uZVN0YXJ0SW5kZXg7em9uZXNDb3VudD0wO2NvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5uYW1lPWhBKGUuZGF0YSwyMCksdGhpcy56b25lU3RhcnRJbmRleD1OKGUuZGF0YSwyKX1jcmVhdGVTb3VuZEZvbnRab25lKGUsQSx0KXtsZXQgbj1uZXcgVXIodGhpcyxlLEEsdCk7cmV0dXJuIHRoaXMuem9uZXMucHVzaChuKSxufX07ZnVuY3Rpb24gVHMoZSl7bGV0IEE9W107Zm9yKDtlLmRhdGEubGVuZ3RoPmUuZGF0YS5jdXJyZW50SW5kZXg7KXtsZXQgdD1uZXcgeHIoZSk7aWYoQS5sZW5ndGg+MCl7bGV0IG49QVtBLmxlbmd0aC0xXTtuLnpvbmVzQ291bnQ9dC56b25lU3RhcnRJbmRleC1uLnpvbmVTdGFydEluZGV4fUEucHVzaCh0KX1yZXR1cm4gQS5wb3AoKSxBfWZ1bmN0aW9uIEduKGUpe2xldCBBPVtdO2Zvcig7ZS5kYXRhLmxlbmd0aD5lLmRhdGEuY3VycmVudEluZGV4Oyl7bGV0IHQ9ZS5kYXRhLG49Tih0LDIpLHM9Tih0LDIpLGE9am4odFt0LmN1cnJlbnRJbmRleCsrXSx0W3QuY3VycmVudEluZGV4KytdKSxyPU4odCwyKSxJPU4odCwyKTtBLnB1c2gobmV3IHlBKG4scixzLGEsSSkpfXJldHVybiBBLnBvcCgpLEF9ZnVuY3Rpb24gYnQoZSl7bGV0IEE9W10sdD1bXTtmb3IoO2UuZGF0YS5sZW5ndGg+ZS5kYXRhLmN1cnJlbnRJbmRleDspdC5wdXNoKE4oZS5kYXRhLDIpKSxBLnB1c2goTihlLmRhdGEsMikpO3JldHVybnttb2Q6QSxnZW46dH19dmFyIEhyPWNsYXNzIGV4dGVuZHMgR2F7c2FtcGxlRGF0YVN0YXJ0SW5kZXg9MDtjb25zdHJ1Y3RvcihlLEE9ITApe2lmKHN1cGVyKCksQSl0aHJvdyBuZXcgRXJyb3IoIlVzaW5nIHRoZSBjb25zdHJ1Y3RvciBkaXJlY3RseSBpcyBkZXByZWNhdGVkLiBVc2UgU291bmRCYW5rTG9hZGVyLmZyb21BcnJheUJ1ZmZlcigpIGluc3RlYWQuIik7bGV0IHQ9bmV3IFkoZSk7T0EoIiVjUGFyc2luZyBhIFNvdW5kRm9udDIgZmlsZS4uLiIsYy5pbmZvKSx0fHwoWigpLHRoaXMucGFyc2luZ0Vycm9yKCJObyBkYXRhIHByb3ZpZGVkISIpKTtsZXQgbj1yQSh0LCExKTt0aGlzLnZlcmlmeUhlYWRlcihuLCJyaWZmIik7bGV0IHM9aEEodCw0KS50b0xvd2VyQ2FzZSgpO2lmKHMhPT0ic2ZiayImJnMhPT0ic2ZwayIpdGhyb3cgWigpLG5ldyBTeW50YXhFcnJvcihgSW52YWxpZCBzb3VuZEZvbnQhIEV4cGVjdGVkICJzZmJrIiBvciAic2ZwayIgZ290ICIke3N9ImApO2xldCBhPXM9PT0ic2ZwayIscj1yQSh0KTt0aGlzLnZlcmlmeUhlYWRlcihyLCJsaXN0Iik7bGV0IEk9aEEoci5kYXRhLDQpO2lmKEkhPT0iSU5GTyIpdGhyb3cgWigpLG5ldyBTeW50YXhFcnJvcihgSW52YWxpZCBzb3VuZEZvbnQhIEV4cGVjdGVkICJJTkZPIiBvciAiJHtJfSJgKTtsZXQgbztmb3IoO3IuZGF0YS5sZW5ndGg+ci5kYXRhLmN1cnJlbnRJbmRleDspe2xldCBQPXJBKHIuZGF0YSksRz1lZShQLmRhdGEsUC5kYXRhLmxlbmd0aCksYj1QLmhlYWRlcjtzd2l0Y2goYil7Y2FzZSJpZmlsIjpjYXNlIml2ZXIiOmxldCBLPU4oUC5kYXRhLDIpLGVBPU4oUC5kYXRhLDIpO2I9PT0iaWZpbCI/dGhpcy5zb3VuZEJhbmtJbmZvLnZlcnNpb249e21ham9yOkssbWlub3I6ZUF9OnRoaXMuc291bmRCYW5rSW5mby5yb21WZXJzaW9uPXttYWpvcjpLLG1pbm9yOmVBfTticmVhaztjYXNlIkRNT0QiOnt0aGlzLmRlZmF1bHRNb2R1bGF0b3JzPUduKFApLHRoaXMuY3VzdG9tRGVmYXVsdE1vZHVsYXRvcnM9ITA7YnJlYWt9Y2FzZSJMSVNUIjp7aEEoUC5kYXRhLDQpPT09InhkdGEiJiYocCgiJWNFeHRlbmRlZCBTRjIgZm91bmQhIixjLnJlY29nbml6ZWQpLG89UCk7YnJlYWt9Y2FzZSJJQ1JEIjp0aGlzLnNvdW5kQmFua0luZm8uY3JlYXRpb25EYXRlPXRzKGhBKFAuZGF0YSxQLmRhdGEubGVuZ3RoKSk7YnJlYWs7Y2FzZSJJU0ZUIjp0aGlzLnNvdW5kQmFua0luZm8uc29mdHdhcmU9RzticmVhaztjYXNlIklQUkQiOnRoaXMuc291bmRCYW5rSW5mby5wcm9kdWN0PUc7YnJlYWs7Y2FzZSJJRU5HIjp0aGlzLnNvdW5kQmFua0luZm8uZW5naW5lZXI9RzticmVhaztjYXNlIklDT1AiOnRoaXMuc291bmRCYW5rSW5mby5jb3B5cmlnaHQ9RzticmVhaztjYXNlIklOQU0iOnRoaXMuc291bmRCYW5rSW5mby5uYW1lPUc7YnJlYWs7Y2FzZSJJQ01UIjp0aGlzLnNvdW5kQmFua0luZm8uY29tbWVudD1HO2JyZWFrO2Nhc2UiaXJvbSI6dGhpcy5zb3VuZEJhbmtJbmZvLnJvbUluZm89RzticmVhaztjYXNlImlzbmciOnRoaXMuc291bmRCYW5rSW5mby5zb3VuZEVuZ2luZT1HfX10aGlzLnByaW50SW5mbygpO2xldCBnPXt9O28hPT12b2lkIDAmJihnLnBoZHI9ckEoby5kYXRhKSxnLnBiYWc9ckEoby5kYXRhKSxnLnBtb2Q9ckEoby5kYXRhKSxnLnBnZW49ckEoby5kYXRhKSxnLmluc3Q9ckEoby5kYXRhKSxnLmliYWc9ckEoby5kYXRhKSxnLmltb2Q9ckEoby5kYXRhKSxnLmlnZW49ckEoby5kYXRhKSxnLnNoZHI9ckEoby5kYXRhKSk7bGV0IEI9ckEodCwhMSk7dGhpcy52ZXJpZnlIZWFkZXIoQiwibGlzdCIpLHRoaXMudmVyaWZ5VGV4dChoQSh0LDQpLCJzZHRhIikscCgiJWNWZXJpZnlpbmcgc21wbCBjaHVuay4uLiIsYy53YXJuKTtsZXQgZD1yQSh0LCExKTt0aGlzLnZlcmlmeUhlYWRlcihkLCJzbXBsIik7bGV0IGg7aWYoYSl7cCgiJWNTRjJQYWNrIGRldGVjdGVkLCBhdHRlbXB0aW5nIHRvIGRlY29kZSB0aGUgc21wbCBjaHVuay4uLiIsYy5pbmZvKTt0cnl7aD1PdC5kZWNvZGUodC5idWZmZXIuc2xpY2UodC5jdXJyZW50SW5kZXgsdC5jdXJyZW50SW5kZXgrQi5zaXplLTEyKSkuZGF0YVswXX1jYXRjaChQKXt0aHJvdyBaKCksbmV3IEVycm9yKGBTRjJQYWNrIE9nZyBWb3JiaXMgZGVjb2RlIGVycm9yOiAke1B9YCl9cChgJWNEZWNvZGVkIHRoZSBzbXBsIGNodW5rISBMZW5ndGg6ICVjJHtoLmxlbmd0aH1gLGMuaW5mbyxjLnZhbHVlKX1lbHNlIGg9dCx0aGlzLnNhbXBsZURhdGFTdGFydEluZGV4PXQuY3VycmVudEluZGV4O3AoYCVjU2tpcHBpbmcgc2FtcGxlIGNodW5rLCBsZW5ndGg6ICVjJHtCLnNpemUtMTJ9YCxjLmluZm8sYy52YWx1ZSksdC5jdXJyZW50SW5kZXgrPUIuc2l6ZS0xMixwKCIlY0xvYWRpbmcgcHJlc2V0IGRhdGEgY2h1bmsuLi4iLGMud2Fybik7bGV0IEM9ckEodCk7dGhpcy52ZXJpZnlIZWFkZXIoQywibGlzdCIpLGhBKEMuZGF0YSw0KTtsZXQgUT1yQShDLmRhdGEpO3RoaXMudmVyaWZ5SGVhZGVyKFEsInBoZHIiKTtsZXQgbT1yQShDLmRhdGEpO3RoaXMudmVyaWZ5SGVhZGVyKG0sInBiYWciKTtsZXQgeT1yQShDLmRhdGEpO3RoaXMudmVyaWZ5SGVhZGVyKHksInBtb2QiKTtsZXQgRj1yQShDLmRhdGEpO3RoaXMudmVyaWZ5SGVhZGVyKEYsInBnZW4iKTtsZXQgaz1yQShDLmRhdGEpO3RoaXMudmVyaWZ5SGVhZGVyKGssImluc3QiKTtsZXQgRD1yQShDLmRhdGEpO3RoaXMudmVyaWZ5SGVhZGVyKEQsImliYWciKTtsZXQgdj1yQShDLmRhdGEpO3RoaXMudmVyaWZ5SGVhZGVyKHYsImltb2QiKTtsZXQgTD1yQShDLmRhdGEpO3RoaXMudmVyaWZ5SGVhZGVyKEwsImlnZW4iKTtsZXQgRT1yQShDLmRhdGEpO3RoaXMudmVyaWZ5SGVhZGVyKEUsInNoZHIiKSxwKCIlY1BhcnNpbmcgc2FtcGxlcy4uLiIsYy5pbmZvKSx0LmN1cnJlbnRJbmRleD10aGlzLnNhbXBsZURhdGFTdGFydEluZGV4O2xldCBYPWJzKEUsaCxvPT09dm9pZCAwKTtpZihvJiZnLnNoZHIpe2xldCBQPWJzKGcuc2hkcixuZXcgRmxvYXQzMkFycmF5KDEpLCExKTtQLmxlbmd0aD09PVgubGVuZ3RoJiZYLmZvckVhY2goKEcsYik9PntHLm5hbWUrPVBbYl0ubmFtZSxHLmxpbmtlZFNhbXBsZUluZGV4fD1QW2JdLmxpbmtlZFNhbXBsZUluZGV4PDwxNn0pfVguZm9yRWFjaChQPT5QLm5hbWU9UC5uYW1lLnRyaW0oKSksdGhpcy5zYW1wbGVzLnB1c2goLi4uWCk7bGV0IE89TnMoTCksbkE9R24odiksJD1UcyhrKTtpZihvJiZnLmluc3Qpe2xldCBQPVRzKGcuaW5zdCk7UC5sZW5ndGg9PT0kLmxlbmd0aCYmKCQuZm9yRWFjaCgoRyxiKT0+e0cubmFtZSs9UFtiXS5uYW1lLEcuem9uZVN0YXJ0SW5kZXh8PVBbYl0uem9uZVN0YXJ0SW5kZXh9KSwkLmZvckVhY2goKEcsYik9PntiPCQubGVuZ3RoLTEmJihHLnpvbmVzQ291bnQ9JFtiKzFdLnpvbmVTdGFydEluZGV4LUcuem9uZVN0YXJ0SW5kZXgpfSkpfSQuZm9yRWFjaChQPT5QLm5hbWU9UC5uYW1lLnRyaW0oKSksdGhpcy5pbnN0cnVtZW50cy5wdXNoKC4uLiQpO2xldCBWPWJ0KEQpO2lmKG8mJmcuaWJhZyl7bGV0IFA9YnQoZy5pYmFnKTtmb3IobGV0IEc9MDtHPFYubW9kLmxlbmd0aDtHKyspVi5tb2RbR118PVAubW9kW0ddPDwxNjtmb3IobGV0IEc9MDtHPFYuZ2VuLmxlbmd0aDtHKyspVi5nZW5bR118PVAuZ2VuW0ddPDwxNn1UcihWLE8sbkEsdGhpcy5zYW1wbGVzLCQpO2xldCBxPU5zKEYpLHo9R24oeSksdEE9VXMoUSx0aGlzKTtpZihvJiZnLnBoZHIpe2xldCBQPVVzKGcucGhkcix0aGlzKTtQLmxlbmd0aD09PXRBLmxlbmd0aCYmKHRBLmZvckVhY2goKEcsYik9PntHLm5hbWUrPVBbYl0ubmFtZSxHLnpvbmVTdGFydEluZGV4fD1QW2JdLnpvbmVTdGFydEluZGV4fSksdEEuZm9yRWFjaCgoRyxiKT0+e2I8dEEubGVuZ3RoLTEmJihHLnpvbmVzQ291bnQ9dEFbYisxXS56b25lU3RhcnRJbmRleC1HLnpvbmVTdGFydEluZGV4KX0pKX10QS5mb3JFYWNoKFA9PlAubmFtZT09PVAubmFtZS50cmltKCkpLHRoaXMuYWRkUHJlc2V0cyguLi50QSk7bGV0IGlBPWJ0KG0pO2lmKG8mJmcucGJhZyl7bGV0IFA9YnQoZy5wYmFnKTtmb3IobGV0IEc9MDtHPGlBLm1vZC5sZW5ndGg7RysrKWlBLm1vZFtHXXw9UC5tb2RbR108PDE2O2ZvcihsZXQgRz0wO0c8aUEuZ2VuLmxlbmd0aDtHKyspaUEuZ2VuW0ddfD1QLmdlbltHXTw8MTZ9THIoaUEscSx6LHRoaXMuaW5zdHJ1bWVudHMsdEEpLHRoaXMuZmx1c2goKSxwKGAlY1BhcnNpbmcgZmluaXNoZWQhICVjIiR7dGhpcy5zb3VuZEJhbmtJbmZvLm5hbWV9IiVjIGhhcyAlYyR7dGhpcy5wcmVzZXRzLmxlbmd0aH0lYyBwcmVzZXRzLAogICAgICAgICVjJHt0aGlzLmluc3RydW1lbnRzLmxlbmd0aH0lYyBpbnN0cnVtZW50cyBhbmQgJWMke3RoaXMuc2FtcGxlcy5sZW5ndGh9JWMgc2FtcGxlcy5gLGMuaW5mbyxjLnJlY29nbml6ZWQsYy5pbmZvLGMucmVjb2duaXplZCxjLmluZm8sYy5yZWNvZ25pemVkLGMuaW5mbyxjLnJlY29nbml6ZWQsYy5pbmZvKSxaKCl9dmVyaWZ5SGVhZGVyKGUsQSl7ZS5oZWFkZXIudG9Mb3dlckNhc2UoKSE9PUEudG9Mb3dlckNhc2UoKSYmKFooKSx0aGlzLnBhcnNpbmdFcnJvcihgSW52YWxpZCBjaHVuayBoZWFkZXIhIEV4cGVjdGVkICIke0EudG9Mb3dlckNhc2UoKX0iIGdvdCAiJHtlLmhlYWRlci50b0xvd2VyQ2FzZSgpfSJgKSl9dmVyaWZ5VGV4dChlLEEpe2UudG9Mb3dlckNhc2UoKSE9PUEudG9Mb3dlckNhc2UoKSYmKFooKSx0aGlzLnBhcnNpbmdFcnJvcihgSW52YWxpZCBGb3VyQ0M6IEV4cGVjdGVkICIke0EudG9Mb3dlckNhc2UoKX0iIGdvdCAiJHtlLnRvTG93ZXJDYXNlKCl9IlxgYCkpfX0sdXQ9Y2xhc3N7c3RhdGljIGZyb21BcnJheUJ1ZmZlcihlKXtsZXQgQT1lLnNsaWNlKDgsMTIpLHQ9bmV3IFkoQSk7cmV0dXJuIGhBKHQsNCkudG9Mb3dlckNhc2UoKT09PSJkbHMgIj90aGlzLmxvYWRETFMoZSk6bmV3IEhyKGUsITEpfXN0YXRpYyBsb2FkRExTKGUpe3JldHVybiBGYS5yZWFkKGUpLnRvU0YoKX19LFJhPWNsYXNze3NvdW5kQmFua01hbmFnZXI9bmV3IFBvKHRoaXMudXBkYXRlUHJlc2V0TGlzdC5iaW5kKHRoaXMpKTttaWRpQ2hhbm5lbHM9W107a2V5TW9kaWZpZXJNYW5hZ2VyPW5ldyBBcjt0b3RhbFZvaWNlc0Ftb3VudD0wO3Byb2Nlc3NvckluaXRpYWxpemVkPU90LmlzSW5pdGlhbGl6ZWQ7Y3VycmVudFN5bnRoVGltZT0wO3NhbXBsZVJhdGU7ZW5hYmxlRWZmZWN0cz0hMDtlbmFibGVFdmVudFN5c3RlbTtvbkV2ZW50Q2FsbDtzeXN0ZW1FeGNsdXNpdmU9JG8uYmluZCh0aGlzKTtyZXNldEFsbENvbnRyb2xsZXJzPVNvLmJpbmQodGhpcyk7c2V0TWFzdGVyUGFyYW1ldGVyPXZvLmJpbmQodGhpcyk7Z2V0TWFzdGVyUGFyYW1ldGVyPUxvLmJpbmQodGhpcyk7Z2V0QWxsTWFzdGVyUGFyYW1ldGVycz1Oby5iaW5kKHRoaXMpO2dldFZvaWNlc0ZvclByZXNldD1fby5iaW5kKHRoaXMpO2tpbGxWb2ljZXM9Wm8uYmluZCh0aGlzKTtnZXRWb2ljZXM9am8uYmluZCh0aGlzKTtwcml2YXRlUHJvcHM7c2F2ZWRTbmFwc2hvdDtldmVudFF1ZXVlPVtdO3NhbXBsZVRpbWU7Y29uc3RydWN0b3IoZSxBPUZzKXtsZXQgdD0kbihBLEZzKTtpZih0aGlzLmVuYWJsZUVmZmVjdHM9dC5lbmFibGVFZmZlY3RzLHRoaXMuZW5hYmxlRXZlbnRTeXN0ZW09dC5lbmFibGVFdmVudFN5c3RlbSx0aGlzLmN1cnJlbnRTeW50aFRpbWU9dC5pbml0aWFsVGltZSx0aGlzLnNhbXBsZVJhdGU9ZSx0aGlzLnNhbXBsZVRpbWU9MS9lLGlzTmFOKHQuaW5pdGlhbFRpbWUpfHxpc05hTihlKSl0aHJvdyBuZXcgRXJyb3IoIkluaXRpYWwgdGltZSBvciBzYW1wbGUgcmF0ZSBpcyBOYU4hIik7dGhpcy5wcml2YXRlUHJvcHM9bmV3IHRyKHRoaXMuY2FsbEV2ZW50LmJpbmQodGhpcyksdGhpcy5nZXRWb2ljZXMuYmluZCh0aGlzKSx0aGlzLmtpbGxWb2ljZXMuYmluZCh0aGlzKSxNbyooNDQxMDAvZSksSm8qKDQ0MTAwL2UpLFZvKig0NDEwMC9lKSk7Zm9yKGxldCBuPTA7bjxSbjtuKyspdGhpcy5jcmVhdGVNSURJQ2hhbm5lbEludGVybmFsKCExKTt0aGlzLnByb2Nlc3NvckluaXRpYWxpemVkLnRoZW4oKCk9PntwKCIlY1NwZXNzYVN5bnRoIGlzIHJlYWR5ISIsYy5yZWNvZ25pemVkKX0pfWFwcGx5U3ludGhlc2l6ZXJTbmFwc2hvdChlKXt0aGlzLnNhdmVkU25hcHNob3Q9ZSxlLmFwcGx5KHRoaXMpLHAoIiVjRmluaXNoZWQgYXBwbHlpbmcgc25hcHNob3QhIixjLmluZm8pLHRoaXMucmVzZXRBbGxDb250cm9sbGVycygpfWdldFNuYXBzaG90KCl7cmV0dXJuIHJzLmNyZWF0ZSh0aGlzKX1zZXRFbWJlZGRlZFNvdW5kQmFuayhlLEEpe2xldCB0PXV0LmZyb21BcnJheUJ1ZmZlcihlKTt0aGlzLnNvdW5kQmFua01hbmFnZXIuYWRkU291bmRCYW5rKHQsUnQsQSk7bGV0IG49dGhpcy5zb3VuZEJhbmtNYW5hZ2VyLnByaW9yaXR5T3JkZXI7bi5wb3AoKSxuLnVuc2hpZnQoUnQpLHRoaXMuc291bmRCYW5rTWFuYWdlci5wcmlvcml0eU9yZGVyPW4sdGhpcy5zYXZlZFNuYXBzaG90IT09dm9pZCAwJiZ0aGlzLmFwcGx5U3ludGhlc2l6ZXJTbmFwc2hvdCh0aGlzLnNhdmVkU25hcHNob3QpLHAoYCVjRW1iZWRkZWQgc291bmQgYmFuayBzZXQgYXQgb2Zmc2V0ICVjJHtBfWAsYy5yZWNvZ25pemVkLGMudmFsdWUpfWNsZWFyRW1iZWRkZWRCYW5rKCl7dGhpcy5zb3VuZEJhbmtNYW5hZ2VyLnNvdW5kQmFua0xpc3Quc29tZShlPT5lLmlkPT09UnQpJiZ0aGlzLnNvdW5kQmFua01hbmFnZXIuZGVsZXRlU291bmRCYW5rKFJ0KX1jcmVhdGVNSURJQ2hhbm5lbCgpe3RoaXMuY3JlYXRlTUlESUNoYW5uZWxJbnRlcm5hbCghMCl9c3RvcEFsbENoYW5uZWxzKGU9ITEpe3AoIiVjU3RvcCBhbGwgcmVjZWl2ZWQhIixjLmluZm8pO2ZvcihsZXQgQSBvZiB0aGlzLm1pZGlDaGFubmVscylBLnN0b3BBbGxOb3RlcyhlKX1yZW5kZXJBdWRpbyhlLEEsdCxuPTAscz0wKXt0aGlzLnJlbmRlckF1ZGlvU3BsaXQoQSx0LEFycmF5KDE2KS5maWxsKGUpLG4scyl9cmVuZGVyQXVkaW9TcGxpdChlLEEsdCxuPTAscz0wKXtsZXQgYT10aGlzLmN1cnJlbnRTeW50aFRpbWU7Zm9yKDt0aGlzLmV2ZW50UXVldWVbMF0/LnRpbWU8PWE7KXRoaXMuZXZlbnRRdWV1ZS5zaGlmdCgpPy5jYWxsYmFjaygpO2xldCByPWVbMF0sST1lWzFdLG89QVswXSxnPUFbMV07bj1NYXRoLm1heChuLDApO2xldCBCPXN8fHRbMF1bMF0ubGVuZ3RoLW47dGhpcy50b3RhbFZvaWNlc0Ftb3VudD0wLHRoaXMubWlkaUNoYW5uZWxzLmZvckVhY2goKGQsaCk9PntpZihkLnZvaWNlcy5sZW5ndGg8MXx8ZC5pc011dGVkKXJldHVybjtsZXQgQz1kLnZvaWNlcy5sZW5ndGgsUT1oJTE2O2QucmVuZGVyQXVkaW8odFtRXVswXSx0W1FdWzFdLHIsSSxvLGcsbixCKSx0aGlzLnRvdGFsVm9pY2VzQW1vdW50Kz1kLnZvaWNlcy5sZW5ndGgsZC52b2ljZXMubGVuZ3RoIT09QyYmZC5zZW5kQ2hhbm5lbFByb3BlcnR5KCl9KSx0aGlzLmN1cnJlbnRTeW50aFRpbWUrPUIqdGhpcy5zYW1wbGVUaW1lfWRlc3Ryb3lTeW50aFByb2Nlc3Nvcigpe3RoaXMubWlkaUNoYW5uZWxzLmZvckVhY2goZT0+e2Uudm9pY2VzLmxlbmd0aD0wLGUuc3VzdGFpbmVkVm9pY2VzLmxlbmd0aD0wLGUubG9ja2VkQ29udHJvbGxlcnM9W10sZS5wcmVzZXQ9dm9pZCAwfSksdGhpcy5jbGVhckNhY2hlKCksdGhpcy5taWRpQ2hhbm5lbHMubGVuZ3RoPTAsdGhpcy5zb3VuZEJhbmtNYW5hZ2VyLmRlc3Ryb3koKX1jb250cm9sbGVyQ2hhbmdlKGUsQSx0KXt0aGlzLm1pZGlDaGFubmVsc1tlXS5jb250cm9sbGVyQ2hhbmdlKEEsdCl9bm90ZU9uKGUsQSx0KXt0aGlzLm1pZGlDaGFubmVsc1tlXS5ub3RlT24oQSx0KX1ub3RlT2ZmKGUsQSl7dGhpcy5taWRpQ2hhbm5lbHNbZV0ubm90ZU9mZihBKX1wb2x5UHJlc3N1cmUoZSxBLHQpe3RoaXMubWlkaUNoYW5uZWxzW2VdLnBvbHlQcmVzc3VyZShBLHQpfWNoYW5uZWxQcmVzc3VyZShlLEEpe3RoaXMubWlkaUNoYW5uZWxzW2VdLmNoYW5uZWxQcmVzc3VyZShBKX1waXRjaFdoZWVsKGUsQSl7dGhpcy5taWRpQ2hhbm5lbHNbZV0ucGl0Y2hXaGVlbChBKX1wcm9ncmFtQ2hhbmdlKGUsQSl7dGhpcy5taWRpQ2hhbm5lbHNbZV0ucHJvZ3JhbUNoYW5nZShBKX1wcm9jZXNzTWVzc2FnZShlLEE9MCx0PSExLG49WmEpe2xldCBzPSgpPT57bGV0IHI9QXMoZVswXSksST1yLmNoYW5uZWwrQTtzd2l0Y2goci5zdGF0dXMpe2Nhc2UgTS5ub3RlT246e2xldCBvPWVbMl07bz4wP3RoaXMubm90ZU9uKEksZVsxXSxvKTp0aGlzLm5vdGVPZmYoSSxlWzFdKTticmVha31jYXNlIE0ubm90ZU9mZjp0P3RoaXMubWlkaUNoYW5uZWxzW0ldLmtpbGxOb3RlKGVbMV0pOnRoaXMubm90ZU9mZihJLGVbMV0pO2JyZWFrO2Nhc2UgTS5waXRjaFdoZWVsOnRoaXMucGl0Y2hXaGVlbChJLGVbMl08PDd8ZVsxXSk7YnJlYWs7Y2FzZSBNLmNvbnRyb2xsZXJDaGFuZ2U6dGhpcy5jb250cm9sbGVyQ2hhbmdlKEksZVsxXSxlWzJdKTticmVhaztjYXNlIE0ucHJvZ3JhbUNoYW5nZTp0aGlzLnByb2dyYW1DaGFuZ2UoSSxlWzFdKTticmVhaztjYXNlIE0ucG9seVByZXNzdXJlOnRoaXMucG9seVByZXNzdXJlKEksZVswXSxlWzFdKTticmVhaztjYXNlIE0uY2hhbm5lbFByZXNzdXJlOnRoaXMuY2hhbm5lbFByZXNzdXJlKEksZVsxXSk7YnJlYWs7Y2FzZSBNLnN5c3RlbUV4Y2x1c2l2ZTp0aGlzLnN5c3RlbUV4Y2x1c2l2ZShuZXcgWShlLnNsaWNlKDEpKSxBKTticmVhaztjYXNlIE0ucmVzZXQ6dGhpcy5zdG9wQWxsQ2hhbm5lbHMoITApLHRoaXMucmVzZXRBbGxDb250cm9sbGVycygpO2JyZWFrO2RlZmF1bHQ6YnJlYWt9fSxhPW4udGltZTthPnRoaXMuY3VycmVudFN5bnRoVGltZT8odGhpcy5ldmVudFF1ZXVlLnB1c2goe2NhbGxiYWNrOnMuYmluZCh0aGlzKSx0aW1lOmF9KSx0aGlzLmV2ZW50UXVldWUuc29ydCgocixJKT0+ci50aW1lLUkudGltZSkpOnMoKX1jbGVhckNhY2hlKCl7dGhpcy5wcml2YXRlUHJvcHMuY2FjaGVkVm9pY2VzPVtdfXNldE1JRElWb2x1bWUoZSl7dGhpcy5wcml2YXRlUHJvcHMubWlkaVZvbHVtZT1NYXRoLnBvdyhlLE1hdGguRSl9c2V0TWFzdGVyVHVuaW5nKGUpe2U9TWF0aC5yb3VuZChlKTtmb3IobGV0IEEgb2YgdGhpcy5taWRpQ2hhbm5lbHMpQS5zZXRDdXN0b21Db250cm9sbGVyKElBLm1hc3RlclR1bmluZyxlKX1jYWxsRXZlbnQoZSxBKXt0aGlzLm9uRXZlbnRDYWxsPy4oe3R5cGU6ZSxkYXRhOkF9KX1nZXRDYWNoZWRWb2ljZShlLEEsdCl7bGV0IG49ZS5iYW5rTVNCLHM9ZS5iYW5rTFNCLHtpc0dNR1NEcnVtOmEscHJvZ3JhbTpyfT1lO3JldHVybiBhJiYobj0xMjgscz0wKSx0aGlzLnByaXZhdGVQcm9wcy5jYWNoZWRWb2ljZXM/LltuXT8uW3NdPy5bcl0/LltBXT8uW3RdfXNldENhY2hlZFZvaWNlKGUsQSx0LG4pe2xldCBzPWUuYmFua01TQixhPWUuYmFua0xTQix7aXNHTUdTRHJ1bTpyLHByb2dyYW06SX09ZTtyJiYocz0xMjgsYT0wKSx0aGlzLnByaXZhdGVQcm9wcy5jYWNoZWRWb2ljZXNbc118fCh0aGlzLnByaXZhdGVQcm9wcy5jYWNoZWRWb2ljZXNbc109W10pLHRoaXMucHJpdmF0ZVByb3BzLmNhY2hlZFZvaWNlc1tzXVthXXx8KHRoaXMucHJpdmF0ZVByb3BzLmNhY2hlZFZvaWNlc1tzXVthXT1bXSksdGhpcy5wcml2YXRlUHJvcHMuY2FjaGVkVm9pY2VzW3NdW2FdW0ldfHwodGhpcy5wcml2YXRlUHJvcHMuY2FjaGVkVm9pY2VzW3NdW2FdW0ldPVtdKSx0aGlzLnByaXZhdGVQcm9wcy5jYWNoZWRWb2ljZXNbc11bYV1bSV1bQV18fCh0aGlzLnByaXZhdGVQcm9wcy5jYWNoZWRWb2ljZXNbc11bYV1bSV1bQV09W10pLHRoaXMucHJpdmF0ZVByb3BzLmNhY2hlZFZvaWNlc1tzXVthXVtJXVtBXVt0XT1ufWNyZWF0ZU1JRElDaGFubmVsSW50ZXJuYWwoZSl7bGV0IEE9bmV3IFFyKHRoaXMsdGhpcy5wcml2YXRlUHJvcHMsdGhpcy5wcml2YXRlUHJvcHMuZGVmYXVsdFByZXNldCx0aGlzLm1pZGlDaGFubmVscy5sZW5ndGgpO3RoaXMubWlkaUNoYW5uZWxzLnB1c2goQSksZSYmKHRoaXMuY2FsbEV2ZW50KCJuZXdDaGFubmVsIix2b2lkIDApLEEuc2VuZENoYW5uZWxQcm9wZXJ0eSgpLHRoaXMubWlkaUNoYW5uZWxzW3RoaXMubWlkaUNoYW5uZWxzLmxlbmd0aC0xXS5zZXREcnVtcyghMCkpfXVwZGF0ZVByZXNldExpc3QoKXtsZXQgZT10aGlzLnNvdW5kQmFua01hbmFnZXIucHJlc2V0TGlzdDt0aGlzLmNsZWFyQ2FjaGUoKSx0aGlzLnByaXZhdGVQcm9wcy5jYWxsRXZlbnQoInByZXNldExpc3RDaGFuZ2UiLGUpLHRoaXMuZ2V0RGVmYXVsdFByZXNldHMoKSx0aGlzLm1pZGlDaGFubmVscy5mb3JFYWNoKEE9PntBLnNldFByZXNldExvY2soITEpfSksdGhpcy5yZXNldEFsbENvbnRyb2xsZXJzKCExKX1nZXREZWZhdWx0UHJlc2V0cygpe3RoaXMucHJpdmF0ZVByb3BzLmRlZmF1bHRQcmVzZXQ9dGhpcy5zb3VuZEJhbmtNYW5hZ2VyLmdldFByZXNldCh7YmFua0xTQjowLGJhbmtNU0I6MCxwcm9ncmFtOjAsaXNHTUdTRHJ1bTohMX0sInhnIiksdGhpcy5wcml2YXRlUHJvcHMuZHJ1bVByZXNldD10aGlzLnNvdW5kQmFua01hbmFnZXIuZ2V0UHJlc2V0KHtiYW5rTFNCOjAsYmFua01TQjowLHByb2dyYW06MCxpc0dNR1NEcnVtOiEwfSwiZ3MiKX19O3ZhciB6dD1FZS5jb25zb2xlQ29sb3JzO3ZhciBNYT0ic3Blc3Nhc3ludGgtd29ya2xldC1wcm9jZXNzb3IiO2Z1bmN0aW9uIGJhKGUsQSl7cmV0dXJuey4uLkEsLi4uZT8/e319fXZhciB2YT17c2tpcFRvRmlyc3ROb3RlT246ITAsaW5pdGlhbFBsYXliYWNrUmF0ZToxfTt2YXIgaXM9Y2xhc3MgZXh0ZW5kcyBLdHtldmVudHM9W107Y29uc3RydWN0b3IoQSl7c3VwZXIoKSxzdXBlci5jb3B5RnJvbShBKSx0aGlzLmV2ZW50cz1bXX19LFd0PWNsYXNzIGV4dGVuZHMgTGV7dHJhY2tzO2VtYmVkZGVkU291bmRCYW5rPXZvaWQgMDtlbWJlZGRlZFNvdW5kQmFua1NpemU7Y29uc3RydWN0b3IoQSl7c3VwZXIoKSxzdXBlci5jb3B5TWV0YWRhdGFGcm9tKEEpLHRoaXMudHJhY2tzPUEudHJhY2tzLm1hcCh0PT5uZXcgaXModCkpLHRoaXMuZW1iZWRkZWRTb3VuZEJhbmtTaXplPUE/LmVtYmVkZGVkU291bmRCYW5rPy5ieXRlTGVuZ3RofX07dmFyIF90PXtzaHVmZmxlT246MSxzaHVmZmxlT2ZmOjIsaW5kZXg6M307dmFyIGp0PWNsYXNze3N5bnRoZXNpemVyO3NlcXVlbmNlcjtwb3N0O2FsaXZlPSExO2NvbnN0cnVjdG9yKEEsdCxuKXt0aGlzLnN5bnRoZXNpemVyPW5ldyBSYShBLHQpLHRoaXMuc2VxdWVuY2VyPW5ldyBzYSh0aGlzLnN5bnRoZXNpemVyKSx0aGlzLnBvc3Q9bix0aGlzLnN5bnRoZXNpemVyLm9uRXZlbnRDYWxsPXM9Pnt0aGlzLnBvc3Qoe3R5cGU6ImV2ZW50Q2FsbCIsZGF0YTpzLGN1cnJlbnRUaW1lOnRoaXMuc3ludGhlc2l6ZXIuY3VycmVudFN5bnRoVGltZX0pfSx0aGlzLnNlcXVlbmNlci5vbkV2ZW50Q2FsbD1zPT57aWYocy50eXBlPT09InNvbmdMaXN0Q2hhbmdlIil7bGV0IHI9cy5kYXRhLm5ld1NvbmdMaXN0Lm1hcChJPT5uZXcgV3QoSSkpO3RoaXMucG9zdCh7dHlwZToic2VxdWVuY2VyUmV0dXJuIixkYXRhOnt0eXBlOnMudHlwZSxkYXRhOntuZXdTb25nTGlzdDpyfX0sY3VycmVudFRpbWU6dGhpcy5zeW50aGVzaXplci5jdXJyZW50U3ludGhUaW1lfSk7cmV0dXJufXRoaXMucG9zdCh7dHlwZToic2VxdWVuY2VyUmV0dXJuIixkYXRhOnMsY3VycmVudFRpbWU6dGhpcy5zeW50aGVzaXplci5jdXJyZW50U3ludGhUaW1lfSl9fXBvc3RSZWFkeShBLHQsbj1bXSl7dGhpcy5wb3N0KHt0eXBlOiJpc0Z1bGx5SW5pdGlhbGl6ZWQiLGRhdGE6e3R5cGU6QSxkYXRhOnR9LGN1cnJlbnRUaW1lOnRoaXMuc3ludGhlc2l6ZXIuY3VycmVudFN5bnRoVGltZX0sbil9cG9zdFByb2dyZXNzKEEsdCl7dGhpcy5wb3N0KHt0eXBlOiJyZW5kZXJpbmdQcm9ncmVzcyIsZGF0YTp7dHlwZTpBLGRhdGE6dH0sY3VycmVudFRpbWU6dGhpcy5zeW50aGVzaXplci5jdXJyZW50U3ludGhUaW1lfSl9ZGVzdHJveSgpe3RoaXMuc3ludGhlc2l6ZXIuZGVzdHJveVN5bnRoUHJvY2Vzc29yKCksZGVsZXRlIHRoaXMuc3ludGhlc2l6ZXIsZGVsZXRlIHRoaXMuc2VxdWVuY2VyfWhhbmRsZU1lc3NhZ2UoQSl7bGV0IHQ9QS5jaGFubmVsTnVtYmVyLG47aWYodD49MCYmKG49dGhpcy5zeW50aGVzaXplci5taWRpQ2hhbm5lbHNbdF0sbj09PXZvaWQgMCkpe0VlLlNwZXNzYVN5bnRoV2FybihgVHJ5aW5nIHRvIGFjY2VzcyBjaGFubmVsICR7dH0gd2hpY2ggZG9lcyBub3QgZXhpc3QuLi4gaWdub3JpbmchYCk7cmV0dXJufXN3aXRjaChBLnR5cGUpe2Nhc2UibWlkaU1lc3NhZ2UiOnRoaXMuc3ludGhlc2l6ZXIucHJvY2Vzc01lc3NhZ2UoQS5kYXRhLm1lc3NhZ2VEYXRhLEEuZGF0YS5jaGFubmVsT2Zmc2V0LEEuZGF0YS5mb3JjZSxBLmRhdGEub3B0aW9ucyk7YnJlYWs7Y2FzZSJjdXN0b21DY0NoYW5nZSI6bj8uc2V0Q3VzdG9tQ29udHJvbGxlcihBLmRhdGEuY2NOdW1iZXIsQS5kYXRhLmNjVmFsdWUpO2JyZWFrO2Nhc2UiY2NSZXNldCI6dD09PUJlP3RoaXMuc3ludGhlc2l6ZXIucmVzZXRBbGxDb250cm9sbGVycygpOm4/LnJlc2V0Q29udHJvbGxlcnMoKTticmVhaztjYXNlInNldENoYW5uZWxWaWJyYXRvIjppZih0PT09QmUpZm9yKGxldCBzIG9mIHRoaXMuc3ludGhlc2l6ZXIubWlkaUNoYW5uZWxzKUEuZGF0YS5yYXRlPT09QmU/cy5kaXNhYmxlQW5kTG9ja0dTTlJQTigpOnMuc2V0VmlicmF0byhBLmRhdGEuZGVwdGgsQS5kYXRhLnJhdGUsQS5kYXRhLmRlbGF5KTtlbHNlIEEuZGF0YS5yYXRlPT09QmU/bj8uZGlzYWJsZUFuZExvY2tHU05SUE4oKTpuPy5zZXRWaWJyYXRvKEEuZGF0YS5kZXB0aCxBLmRhdGEucmF0ZSxBLmRhdGEuZGVsYXkpO2JyZWFrO2Nhc2Uic3RvcEFsbCI6dD09PUJlP3RoaXMuc3ludGhlc2l6ZXIuc3RvcEFsbENoYW5uZWxzKEEuZGF0YT09PTEpOm4/LnN0b3BBbGxOb3RlcyhBLmRhdGE9PT0xKTticmVhaztjYXNlImtpbGxOb3RlcyI6dGhpcy5zeW50aGVzaXplci5raWxsVm9pY2VzKEEuZGF0YSk7YnJlYWs7Y2FzZSJtdXRlQ2hhbm5lbCI6bj8ubXV0ZUNoYW5uZWwoQS5kYXRhKTticmVhaztjYXNlImFkZE5ld0NoYW5uZWwiOnRoaXMuc3ludGhlc2l6ZXIuY3JlYXRlTUlESUNoYW5uZWwoKTticmVhaztjYXNlInNldE1hc3RlclBhcmFtZXRlciI6dGhpcy5zeW50aGVzaXplci5zZXRNYXN0ZXJQYXJhbWV0ZXIoQS5kYXRhLnR5cGUsQS5kYXRhLmRhdGEpO2JyZWFrO2Nhc2Uic2V0RHJ1bXMiOm4/LnNldERydW1zKEEuZGF0YSk7YnJlYWs7Y2FzZSJ0cmFuc3Bvc2VDaGFubmVsIjpuPy50cmFuc3Bvc2VDaGFubmVsKEEuZGF0YS5zZW1pdG9uZXMsQS5kYXRhLmZvcmNlKTticmVhaztjYXNlImxvY2tDb250cm9sbGVyIjppZihBLmRhdGEuY29udHJvbGxlck51bWJlcj09PUJlKW4/LnNldFByZXNldExvY2soQS5kYXRhLmlzTG9ja2VkKTtlbHNle2lmKCFuKXJldHVybjtuLmxvY2tlZENvbnRyb2xsZXJzW0EuZGF0YS5jb250cm9sbGVyTnVtYmVyXT1BLmRhdGEuaXNMb2NrZWR9YnJlYWs7Y2FzZSJzZXF1ZW5jZXJTcGVjaWZpYyI6e2lmKCF0aGlzLnNlcXVlbmNlcilyZXR1cm47bGV0IHM9dGhpcy5zZXF1ZW5jZXIsYT1BLmRhdGE7c3dpdGNoKGEudHlwZSl7ZGVmYXVsdDpicmVhaztjYXNlImxvYWROZXdTb25nTGlzdCI6dHJ5e2xldCBJPWEuZGF0YS5tYXAobz0+ImR1cmF0aW9uImluIG8/TGUuY29weUZyb20obyk6TGUuZnJvbUFycmF5QnVmZmVyKG8uYmluYXJ5LG8uZmlsZU5hbWUpKTtzLmxvYWROZXdTb25nTGlzdChJKX1jYXRjaChyKXtjb25zb2xlLmVycm9yKHIpLHRoaXMucG9zdCh7dHlwZToic2VxdWVuY2VyUmV0dXJuIixkYXRhOnt0eXBlOiJtaWRpRXJyb3IiLGRhdGE6cn0sY3VycmVudFRpbWU6dGhpcy5zeW50aGVzaXplci5jdXJyZW50U3ludGhUaW1lfSl9YnJlYWs7Y2FzZSJwYXVzZSI6cy5wYXVzZSgpO2JyZWFrO2Nhc2UicGxheSI6cy5wbGF5KCk7YnJlYWs7Y2FzZSJzZXRUaW1lIjpzLmN1cnJlbnRUaW1lPWEuZGF0YTticmVhaztjYXNlImNoYW5nZU1JRElNZXNzYWdlU2VuZGluZyI6cy5leHRlcm5hbE1JRElQbGF5YmFjaz1hLmRhdGE7YnJlYWs7Y2FzZSJzZXRQbGF5YmFja1JhdGUiOnMucGxheWJhY2tSYXRlPWEuZGF0YTticmVhaztjYXNlInNldExvb3BDb3VudCI6cy5sb29wQ291bnQ9YS5kYXRhO2JyZWFrO2Nhc2UiY2hhbmdlU29uZyI6c3dpdGNoKGEuZGF0YS5jaGFuZ2VUeXBlKXtjYXNlIF90LnNodWZmbGVPZmY6cy5zaHVmZmxlTW9kZT0hMTticmVhaztjYXNlIF90LnNodWZmbGVPbjpzLnNodWZmbGVNb2RlPSEwO2JyZWFrO2Nhc2UgX3QuaW5kZXg6YS5kYXRhLmRhdGEhPT12b2lkIDAmJihjb25zb2xlLmxvZygiSU5ERVgiLGEuZGF0YSkscy5zb25nSW5kZXg9YS5kYXRhLmRhdGEpO2JyZWFrfWJyZWFrO2Nhc2UiZ2V0TUlESSI6aWYoIXMubWlkaURhdGEpdGhyb3cgbmV3IEVycm9yKCJObyBNSURJIGlzIGxvYWRlZCEiKTt0aGlzLnBvc3Qoe3R5cGU6InNlcXVlbmNlclJldHVybiIsZGF0YTp7dHlwZToiZ2V0TUlESSIsZGF0YTpzLm1pZGlEYXRhfSxjdXJyZW50VGltZTp0aGlzLnN5bnRoZXNpemVyLmN1cnJlbnRTeW50aFRpbWV9KTticmVhaztjYXNlInNldFNraXBUb0ZpcnN0Tm90ZSI6cy5za2lwVG9GaXJzdE5vdGVPbj1hLmRhdGE7YnJlYWt9YnJlYWt9Y2FzZSJzb3VuZEJhbmtNYW5hZ2VyIjp0cnl7bGV0IHM9dGhpcy5zeW50aGVzaXplci5zb3VuZEJhbmtNYW5hZ2VyLGE9QS5kYXRhLHI7c3dpdGNoKGEudHlwZSl7Y2FzZSJhZGRTb3VuZEJhbmsiOnI9dXQuZnJvbUFycmF5QnVmZmVyKGEuZGF0YS5zb3VuZEJhbmtCdWZmZXIpLHMuYWRkU291bmRCYW5rKHIsYS5kYXRhLmlkLGEuZGF0YS5iYW5rT2Zmc2V0KSx0aGlzLnBvc3RSZWFkeSgic291bmRCYW5rTWFuYWdlciIsbnVsbCk7YnJlYWs7Y2FzZSJkZWxldGVTb3VuZEJhbmsiOnMuZGVsZXRlU291bmRCYW5rKGEuZGF0YSksdGhpcy5wb3N0UmVhZHkoInNvdW5kQmFua01hbmFnZXIiLG51bGwpO2JyZWFrO2Nhc2UicmVhcnJhbmdlU291bmRCYW5rcyI6cy5wcmlvcml0eU9yZGVyPWEuZGF0YSx0aGlzLnBvc3RSZWFkeSgic291bmRCYW5rTWFuYWdlciIsbnVsbCl9fWNhdGNoKHMpe3RoaXMucG9zdCh7dHlwZToic291bmRCYW5rRXJyb3IiLGRhdGE6cyxjdXJyZW50VGltZTp0aGlzLnN5bnRoZXNpemVyLmN1cnJlbnRTeW50aFRpbWV9KX1icmVhaztjYXNlImtleU1vZGlmaWVyTWFuYWdlciI6e2xldCBzPUEuZGF0YSxhPXRoaXMuc3ludGhlc2l6ZXIua2V5TW9kaWZpZXJNYW5hZ2VyO3N3aXRjaChzLnR5cGUpe2RlZmF1bHQ6cmV0dXJuO2Nhc2UiYWRkTWFwcGluZyI6YS5hZGRNYXBwaW5nKHMuZGF0YS5jaGFubmVsLHMuZGF0YS5taWRpTm90ZSxzLmRhdGEubWFwcGluZyk7YnJlYWs7Y2FzZSJjbGVhck1hcHBpbmdzIjphLmNsZWFyTWFwcGluZ3MoKTticmVhaztjYXNlImRlbGV0ZU1hcHBpbmciOmEuZGVsZXRlTWFwcGluZyhzLmRhdGEuY2hhbm5lbCxzLmRhdGEubWlkaU5vdGUpfWJyZWFrfWNhc2UicmVxdWVzdFN5bnRoZXNpemVyU25hcHNob3QiOntsZXQgcz1ycy5jcmVhdGUodGhpcy5zeW50aGVzaXplcik7dGhpcy5wb3N0UmVhZHkoInN5bnRoZXNpemVyU25hcHNob3QiLHMpO2JyZWFrfWNhc2Uic2V0TG9nTGV2ZWwiOktzKEEuZGF0YS5lbmFibGVJbmZvLEEuZGF0YS5lbmFibGVXYXJuaW5nLEEuZGF0YS5lbmFibGVHcm91cCk7YnJlYWs7Y2FzZSJkZXN0cm95V29ya2xldCI6dGhpcy5hbGl2ZT0hMSx0aGlzLnN5bnRoZXNpemVyLmRlc3Ryb3lTeW50aFByb2Nlc3NvcigpLHRoaXMuZGVzdHJveSgpO2JyZWFrO2RlZmF1bHQ6RWUuU3Blc3NhU3ludGhXYXJuKCJVbnJlY29nbml6ZWQgZXZlbnQhIixBKTticmVha319fTt2YXIgJHQ9Y2xhc3MgZXh0ZW5kcyBqdHthbGl2ZT0hMDtvbmVPdXRwdXRNb2RlO3BvcnQ7Y29uc3RydWN0b3IoQSx0LG4scyl7c3VwZXIoQSx7ZW5hYmxlRWZmZWN0czohcy5vbmVPdXRwdXQsZW5hYmxlRXZlbnRTeXN0ZW06cz8uZW5hYmxlRXZlbnRTeXN0ZW0saW5pdGlhbFRpbWU6dH0sKGEscik9PntuLnBvc3RNZXNzYWdlKGEscil9KSx0aGlzLnBvcnQ9bix0aGlzLm9uZU91dHB1dE1vZGU9cy5vbmVPdXRwdXQsdGhpcy5zeW50aGVzaXplci5wcm9jZXNzb3JJbml0aWFsaXplZC50aGVuKCgpPT57dGhpcy5wb3J0Lm9ubWVzc2FnZT1hPT50aGlzLmhhbmRsZU1lc3NhZ2UoYS5kYXRhKSx0aGlzLnBvc3RSZWFkeSgic2YzRGVjb2RlciIsbnVsbCl9KX1wcm9jZXNzKEEsdCl7aWYoIXRoaXMuYWxpdmUpcmV0dXJuITE7aWYodGhpcy5zZXF1ZW5jZXIucHJvY2Vzc1RpY2soKSx0aGlzLm9uZU91dHB1dE1vZGUpe2xldCBuPXRbMF0scz1bXTtmb3IobGV0IGE9MDthPDMyO2ErPTIpcy5wdXNoKFtuW2FdLG5bYSsxXV0pO3RoaXMuc3ludGhlc2l6ZXIucmVuZGVyQXVkaW9TcGxpdChbXSxbXSxzKX1lbHNlIHRoaXMuc3ludGhlc2l6ZXIucmVuZGVyQXVkaW9TcGxpdCh0WzBdLHRbMV0sdC5zbGljZSgyKSk7cmV0dXJuITB9aGFuZGxlTWVzc2FnZShBKXtpZihBLnR5cGU9PT0ic3RhcnRPZmZsaW5lUmVuZGVyIil7dGhpcy5zdGFydE9mZmxpbmVSZW5kZXIoQS5kYXRhKTtyZXR1cm59c3VwZXIuaGFuZGxlTWVzc2FnZShBKX1zdGFydE9mZmxpbmVSZW5kZXIoQSl7aWYoIXRoaXMuc2VxdWVuY2VyKXJldHVybjtBLnNvdW5kQmFua0xpc3QuZm9yRWFjaCgobixzKT0+e3RyeXt0aGlzLnN5bnRoZXNpemVyLnNvdW5kQmFua01hbmFnZXIuYWRkU291bmRCYW5rKHV0LmZyb21BcnJheUJ1ZmZlcihuLnNvdW5kQmFua0J1ZmZlciksYGJhbmstJHtzfWAsbi5iYW5rT2Zmc2V0KX1jYXRjaChhKXt0aGlzLnBvc3Qoe3R5cGU6InNvdW5kQmFua0Vycm9yIixkYXRhOmEsY3VycmVudFRpbWU6dGhpcy5zeW50aGVzaXplci5jdXJyZW50U3ludGhUaW1lfSl9fSksQS5zbmFwc2hvdCE9PXZvaWQgMCYmdGhpcy5zeW50aGVzaXplci5hcHBseVN5bnRoZXNpemVyU25hcHNob3QoQS5zbmFwc2hvdCksRWUuU3Blc3NhU3ludGhJbmZvKCIlY1JlbmRlcmluZyBlbmFibGVkISBTdGFydGluZyByZW5kZXIuIix6dC5pbmZvKSx0aGlzLnNlcXVlbmNlci5sb29wQ291bnQ9QS5sb29wQ291bnQsdGhpcy5zeW50aGVzaXplci5zZXRNYXN0ZXJQYXJhbWV0ZXIoInZvaWNlQ2FwIiwxLzApO2xldCB0PWJhKEEuc2VxdWVuY2VyT3B0aW9ucyx2YSk7dGhpcy5zZXF1ZW5jZXIuc2tpcFRvRmlyc3ROb3RlT249dC5za2lwVG9GaXJzdE5vdGVPbix0aGlzLnNlcXVlbmNlci5wbGF5YmFja1JhdGU9dC5pbml0aWFsUGxheWJhY2tSYXRlO3RyeXt0aGlzLnNlcXVlbmNlci5sb2FkTmV3U29uZ0xpc3QoW0xlLmNvcHlGcm9tKEEubWlkaVNlcXVlbmNlKV0pLHRoaXMuc2VxdWVuY2VyLnBsYXkoKX1jYXRjaChuKXtjb25zb2xlLmVycm9yKG4pLHRoaXMucG9zdCh7dHlwZToic2VxdWVuY2VyUmV0dXJuIixkYXRhOnt0eXBlOiJtaWRpRXJyb3IiLGRhdGE6bn0sY3VycmVudFRpbWU6dGhpcy5zeW50aGVzaXplci5jdXJyZW50U3ludGhUaW1lfSl9dGhpcy5wb3N0UmVhZHkoInN0YXJ0T2ZmbGluZVJlbmRlciIsbnVsbCl9fTt2YXIgSXM9Y2xhc3MgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3J7cHJvY2Vzcztjb3JlO2NvbnN0cnVjdG9yKEEpe3N1cGVyKCksdGhpcy5jb3JlPW5ldyAkdChzYW1wbGVSYXRlLGN1cnJlbnRUaW1lLHRoaXMucG9ydCxBLnByb2Nlc3Nvck9wdGlvbnMpLHRoaXMucHJvY2Vzcz10aGlzLmNvcmUucHJvY2Vzcy5iaW5kKHRoaXMuY29yZSl9fTtyZWdpc3RlclByb2Nlc3NvcihNYSxJcyk7RWUuU3Blc3NhU3ludGhJbmZvKCIlY1Byb2Nlc3NvciBzdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZCEiLHp0LnJlY29nbml6ZWQpOwovLyMgc291cmNlTWFwcGluZ1VSTD1zcGVzc2FzeW50aF9wcm9jZXNzb3IubWluLmpzLm1hcAo=";class NQ extends VA{constructor(l,t={}){super(l,t),this.synthesizer=null,this.soundfont=null,this.channelCounter=0,this.partToMidiChannel=new Map,this.midiChannelToPart=new Map,this.individualOutputs=[],this.metronomeAnalyser=null}async initialize(l){this._emitProgress("importing","Loading SpessaSynth library...");const{WorkletSynthesizer:t}=await Promise.resolve().then(()=>pa);let A;if(typeof l=="string")this._emitProgress("loading-soundfont","Downloading soundfont..."),A=await this._loadSoundfontWithProgress(l);else if(l instanceof ArrayBuffer)this._emitProgress("loading-soundfont","Soundfont provided"),A=l;else throw new Error("Invalid soundfont data type. Expected string path or ArrayBuffer.");this._emitProgress("loading-worklet","Loading audio worklet processor..."),await this._loadAudioWorkletSafely(),console.log("AudioWorklet loaded. Note: Worklet processor may persist across page reloads."),this._emitProgress("creating-synth","Setting up audio channels..."),this._setupIndividualOutputs(),this.dummyTarget=this.audioContext.createGain(),await new Promise(Q=>setTimeout(Q,50)),this._emitProgress("creating-synth","Initializing synthesizer..."),this.synthesizer=new t(this.audioContext),this._emitProgress("loading-soundbank","Loading soundbank into synthesizer..."),await this.synthesizer.soundBankManager.addSoundBank(A,"main"),await this.synthesizer.isReady,this._emitProgress("finalizing","Finalizing audio setup..."),this._connectIndividualOutputs(),this._initializeMetronomeChannel(),this._emitProgress("ready","Audio engine ready"),this.isInitialized=!0}createChannel(l,t={}){if(this._validateInitialized(),this.partToMidiChannel.has(l))throw new Error(`Channel for part '${l}' already exists`);const A=this.channelCounter;if(A>=15)throw new Error("Maximum number of musical part channels (15) exceeded. Channel 15 is reserved for metronome.");this.channelCounter++,this.partToMidiChannel.set(l,A),this.midiChannelToPart.set(A,l);const Q=new yQ(this,l,A,t);return this._registerChannel(Q),t.instrument&&Q.setInstrument(t.instrument),Q}allSoundsOff(){if(this.synthesizer){for(let l=0;l<16;l++)this.synthesizer.controllerChange&&(this.synthesizer.controllerChange(l,120,0),this.synthesizer.controllerChange(l,123,0),this.synthesizer.controllerChange(l,121,0));console.log("Sent comprehensive reset to all 16 MIDI channels")}}clearAllChannels(){this.allSoundsOff(),this.partToMidiChannel.clear(),this.midiChannelToPart.clear(),this.channelCounter=0}destroy(){this.allSoundsOff(),this.synthesizer&&typeof this.synthesizer.disconnect=="function"&&this.synthesizer.disconnect(),this.individualOutputs.forEach(l=>{l&&l.disconnect&&l.disconnect()}),this.individualOutputs=[],this.dummyTarget&&(this.dummyTarget.disconnect(),this.dummyTarget=null),this.partToMidiChannel.clear(),this.midiChannelToPart.clear(),this.channelCounter=0,super.destroy(),this.synthesizer=null,this.soundfont=null}getMidiChannelForPart(l){return this.partToMidiChannel.has(l)?this.partToMidiChannel.get(l):null}_getSynthesizer(){return this.synthesizer}_getIndividualOutput(l){return l>=0&&l<this.individualOutputs.length?this.individualOutputs[l]:null}getMetronomeChannel(){const l=this._getIndividualOutput(15);return console.log("Metronome channel 15 output:",l?"Available":"NULL",`(total outputs: ${this.individualOutputs.length})`),l}_setupIndividualOutputs(){this.individualOutputs=[];for(let l=0;l<16;l++){const t=this.audioContext.createGain();t.gain.value=1,this.individualOutputs.push(t)}this._setupMetronomeAnalyser()}_setupMetronomeAnalyser(){const l=this.individualOutputs[15];if(!l){console.warn("Cannot setup metronome analyser: channel 15 not available");return}this.metronomeAnalyser=this.audioContext.createAnalyser(),this.metronomeAnalyser.fftSize=2048,this.metronomeAnalyser.smoothingTimeConstant=0,l.connect(this.metronomeAnalyser),console.log("Metronome analyser initialized for latency measurement")}_connectIndividualOutputs(){try{this.synthesizer&&this.synthesizer.connectIndividualOutputs?this.synthesizer.connectIndividualOutputs(this.individualOutputs):(console.warn("Synthesizer does not support individual outputs, using master output only"),this.synthesizer&&this.synthesizer.connect&&this.audioContext.destination&&this.synthesizer.connect(this.audioContext.destination))}catch(l){console.warn("Failed to connect individual outputs:",l.message),console.warn("Falling back to master output routing")}}async _loadSoundfontWithProgress(l){const t=await fetch(l);if(!t.ok)throw new Error(`Failed to load soundfont: ${t.status} ${t.statusText}`);const A=t.headers.get("content-length"),Q=A?parseInt(A,10):null;if(!Q||!t.body)return await t.arrayBuffer();const n=t.body.getReader();let a=0;const s=[];for(;;){const{done:o,value:c}=await n.read();if(o)break;s.push(c),a+=c.length;const h=a/Q,Z=Math.round(h*100);this._emitProgress("loading-soundfont",`Downloading soundfont: ${Z}% (${Math.round(a/1024)} KB / ${Math.round(Q/1024)} KB)`,h)}const F=new Uint8Array(a);let d=0;for(const o of s)F.set(o,d),d+=o.length;return F.buffer}async _loadAudioWorkletSafely(){for(let l=1;l<=5;l++)try{await this.audioContext.audioWorklet.addModule(pQ);return}catch(t){if(console.warn(`AudioWorklet loading failed (attempt ${l}/5):`,t.message),l===5)throw new Error(`AudioWorklet failed after 5 attempts: ${t.message}`);const A=l*500;await new Promise(Q=>setTimeout(Q,A))}}_initializeMetronomeChannel(){try{const l=this._getSynthesizer();if(!l){console.warn("Cannot initialize metronome channel: synthesizer not available");return}const t=15;l.programChange&&(l.programChange(t,115),console.log("Metronome channel 15 initialized with woodblock instrument (115)")),l.controllerChange&&l.controllerChange(t,7,127)}catch(l){console.warn("Failed to initialize metronome channel:",l)}}async playMetronomeTick(l,t,A){try{const Q=this.getMetronomeChannel(),n=this._getSynthesizer();if(!Q||!n)return super.playMetronomeTick(l,t,A);const a=15,s=t?86:60,F=Math.round(Math.min(127,Math.max(0,A*(t?127:100)))),d=this.audioContext.currentTime,o=Math.max(l,d),c=o-d;n.post?(n.post({channelNumber:a,type:"midiMessage",data:{messageData:[144|a,s,F],channelOffset:0,force:!1,options:{time:o}}}),n.post({channelNumber:a,type:"midiMessage",data:{messageData:[128|a,s,0],channelOffset:0,force:!1,options:{time:o+.1}}})):c<=.01?(n.noteOn&&n.noteOn(a,s,F),setTimeout(()=>{n.noteOff&&n.noteOff(a,s)},100)):setTimeout(()=>{n.noteOn&&n.noteOn(a,s,F),setTimeout(()=>{n.noteOff&&n.noteOff(a,s)},100)},c*1e3)}catch(Q){return console.warn("MIDI metronome failed, falling back to buffers:",Q),super.playMetronomeTick(l,t,A)}}getMetronomeOutput(){return!this.individualOutputs||this.individualOutputs.length<16?null:this.individualOutputs[15]}getMetronomeAnalyser(){return this.metronomeAnalyser}}class XQ{constructor(){this.partNames=["soprano","alto","tenor","bass","treble","mezzo","baritone","s","a","t","b","satb"],this.parsedData={parts:{},barStructure:[],metadata:{}}}async parse(l,t=null){try{const A=await this._parseMidiBuffer(l);return this.metadataOverrides=t||{},this._normalizeLegacyMetadata(),this._extractMetadata(A),this._extractBarStructure(A),this._extractParts(A),this.parsedData.structureMetadata=this.metadataOverrides,this.parsedData}catch(A){throw console.error("Error parsing MIDI file:",A),A}}_normalizeLegacyMetadata(){if(!this.metadataOverrides||Object.keys(this.metadataOverrides).length===0)return;const l=this.metadataOverrides;if(l.scores&&Array.isArray(l.scores)&&l.scores.length>0){const t=l.scores[0];t.parts&&(l.parts=this._convertLegacyParts(t.parts)),t.bars&&(l.bars=t.bars),delete l.scores}else l.parts&&Array.isArray(l.parts)&&(l.parts=this._convertLegacyParts(l.parts));delete l.type,delete l.version,delete l.subtitle}_convertLegacyParts(l){const t={};for(const A of l){if(!A.name||!A.url)continue;const Q=A.name.toLowerCase(),n=this._parseUrlParams(A.url),a={};if(n.track!==void 0&&(a.trackIndex=parseInt(n.track,10)),n.prog!==void 0){const s=parseInt(n.prog,10);s!==0&&(a.instrument=s)}a.trackIndex!==void 0&&(t[Q]=a)}return t}_parseUrlParams(l){const t={},A=l.indexOf("?");if(A===-1)return t;const Q=l.substring(A+1).split("&");for(const n of Q){const[a,s]=n.split("=");a&&s!==void 0&&(t[a]=s)}return t}async _parseMidiBuffer(l){const t=new Uint8Array(l);if(!(t[0]===77&&t[1]===84&&t[2]===104&&t[3]===100))throw new Error("Not a valid MIDI file");const A=this._bytesToNumber(t.slice(4,8)),Q=this._bytesToNumber(t.slice(8,10)),n=this._bytesToNumber(t.slice(10,12)),a=this._bytesToNumber(t.slice(12,14)),s=a&32768?null:a,F={format:Q,ticksPerBeat:s,tracks:[],duration:0};let d=8+A;for(let o=0;o<n;o++)if(t[d]===77&&t[d+1]===84&&t[d+2]===114&&t[d+3]===107){const c=this._bytesToNumber(t.slice(d+4,d+8)),h=t.slice(d+8,d+8+c),Z=this._parseTrack(h);F.tracks.push(Z),d+=8+c}else throw new Error(`Invalid track header at position ${d}`);return F}_parseTrack(l){const t={notes:[],name:null,lyrics:[],events:[],duration:0};let A=0,Q=0,n=null;for(;A<l.length;){let a=0,s=0;do s=l[A++],a=a<<7|s&127;while(s&128);Q+=a,s=l[A++];let F=s;if(s&128)n=F;else{if(n===null)throw new Error("Running status byte encountered before status byte");F=n,A--}if(F===255){const d=l[A++],o=this._readVariableLengthValue(l,A);A+=o.bytesRead;const c=l.slice(A,A+o.value);switch(A+=o.value,d){case 3:t.name=this._bytesToString(c);break;case 1:t.events.push({type:"text",text:this._bytesToString(c),tick:Q});break;case 5:t.lyrics.push({text:this._bytesToString(c),tick:Q});break;case 81:const h=this._bytesToNumber(c),Z=Math.round(6e7/h);t.events.push({type:"tempo",bpm:Z,tick:Q});break;case 88:t.events.push({type:"timeSignature",numerator:c[0],denominator:Math.pow(2,c[1]),tick:Q});break;case 47:t.duration=Q;break}}else if((F&240)===144){const d=F&15,o=l[A++],c=l[A++];c>0?t.notes.push({type:"noteOn",noteNumber:o,velocity:c,tick:Q,channel:d}):t.notes.push({type:"noteOff",noteNumber:o,tick:Q,channel:d})}else if((F&240)===128){const d=F&15,o=l[A++];l[A++],t.notes.push({type:"noteOff",noteNumber:o,tick:Q,channel:d})}else if(F===240||F===247){const d=this._readVariableLengthValue(l,A);A+=d.bytesRead+d.value}else if((F&240)===176){const d=F&15,o=l[A++],c=l[A++];t.events.push({type:"controller",controllerNumber:o,value:c,channel:d,tick:Q})}else if((F&240)===192){const d=F&15,o=l[A++];t.events.push({type:"programChange",programNumber:o,channel:d,tick:Q})}else if((F&240)===208){const d=F&15,o=l[A++];t.events.push({type:"channelAftertouch",pressure:o,channel:d,tick:Q})}else if((F&240)===224){const d=F&15,o=l[A++],c=(l[A++]<<7|o)-8192;t.events.push({type:"pitchBend",value:c,channel:d,tick:Q})}else if((F&240)===160){const d=F&15,o=l[A++],c=l[A++];t.events.push({type:"noteAftertouch",noteNumber:o,pressure:c,channel:d,tick:Q})}else console.warn(`Unknown event type: ${F.toString(16)} at position ${A-1}`),A++}return t}_extractMetadata(l){const t={title:null,composer:null,partNames:[],format:l.format,ticksPerBeat:l.ticksPerBeat};l.tracks.forEach((A,Q)=>{if(A.name&&!t.title&&(t.title=A.name),A.events.filter(n=>n.type==="text").forEach(n=>{const a=n.text.toLowerCase();(a.includes("compos")||a.includes("by"))&&!t.composer&&(t.composer=n.text)}),A.name){const n=A.name.toLowerCase();for(const a of this.partNames)if(n.includes(a)){t.partNames.push({index:Q,name:A.name});break}}}),this.metadataOverrides.title!==void 0&&(t.title=this.metadataOverrides.title),this.metadataOverrides.composer!==void 0&&(t.composer=this.metadataOverrides.composer),this.metadataOverrides.arranger!==void 0&&(t.arranger=this.metadataOverrides.arranger),this.metadataOverrides.copyright!==void 0&&(t.copyright=this.metadataOverrides.copyright),this.parsedData.metadata=t}_extractBarStructure(l){const t=l.ticksPerBeat||480,A=[];l.tracks.forEach(o=>{o.events.forEach(c=>{(c.type==="timeSignature"||c.type==="tempo")&&A.push(c)})}),A.sort((o,c)=>o.tick-c.tick);let Q=0;l.tracks.forEach(o=>{o.notes&&o.notes.forEach(c=>{c.type==="noteOff"&&c.tick>Q&&(Q=c.tick)})}),Q===0&&(Q=t*8);const n=[],a=A.filter(o=>o.type==="timeSignature").sort((o,c)=>o.tick-c.tick);let s={numerator:4,denominator:4},F=0,d=0;for(;F<Q;){for(;d<a.length&&a[d].tick<=F;)s=a[d],d++;let o;o=F+t*4*s.numerator/s.denominator;const c=s.numerator,h=[],Z=t*(4/s.denominator);for(let U=0;U<c;U++){const m=F+U*Z,C=this._ticksToTime(m,l);h.push(C)}n.push({sig:[s.numerator,s.denominator],beats:h}),F=o}this.parsedData.barStructure=n}_extractParts(l){const t={},A=l.ticksPerBeat;if(this.metadataOverrides.parts)for(const[Q,n]of Object.entries(this.metadataOverrides.parts)){if(!n.trackIndex&&n.trackIndex!==0&&!n.trackName)continue;let a=null,s=null;if(n.trackIndex!==void 0&&n.trackIndex!==null)s=n.trackIndex,s>=0&&s<l.tracks.length&&(a=l.tracks[s]);else if(n.trackName){const d=l.tracks.findIndex(o=>o.name===n.trackName);d!==-1&&(a=l.tracks[d],s=d)}if(!a)continue;const F=this._extractPartDataFromTrack(a,s,l,A);n.instrument!==void 0&&n.instrument!==null&&(F.defaultInstrument=this._resolveInstrument(n.instrument)),t[Q]=F}else l.tracks.forEach((Q,n)=>{if(!Q.notes.length)return;let a=null;if(Q.name){const d=Q.name.toLowerCase();for(const o of this.partNames)if(o.length===1){if(d===o){a=o;break}}else if(d.includes(o)){a=o;break}}a||(a=Q.name||`Track ${n+1}`),a==="s"&&(a="soprano"),a==="a"&&(a="alto"),a==="t"&&(a="tenor"),a==="b"&&(a="bass");let s=a,F=2;for(;t[s];)s=`${a} ${F}`,F++;a=s,t[a]=this._extractPartDataFromTrack(Q,n,l,A)});this.parsedData.parts=t}_extractPartDataFromTrack(l,t,A,Q){const n=[],a={};l.notes.forEach(o=>{if(o.type==="noteOn")a[o.noteNumber]={tick:o.tick,velocity:o.velocity};else if(o.type==="noteOff"&&a[o.noteNumber]){const c=a[o.noteNumber],h=o.tick-c.tick;n.push({pitch:o.noteNumber,name:this._midiNoteToName(o.noteNumber),startTick:c.tick,endTick:o.tick,duration:h,startTime:this._ticksToTime(c.tick,A),endTime:this._ticksToTime(o.tick,A),velocity:c.velocity}),delete a[o.noteNumber]}});const s=l.lyrics.map(o=>({text:o.text,tick:o.tick,time:o.tick/Q}));n.sort((o,c)=>o.startTick-c.startTick);const F=l.events.filter(o=>o.type==="programChange").map(o=>({programNumber:o.programNumber,tick:o.tick,time:this._ticksToTime(o.tick,A)})).sort((o,c)=>o.tick-c.tick),d=F.length>0?F[0].programNumber:0;return{notes:n,lyrics:s,trackIndex:t,programChanges:F,defaultInstrument:d}}_resolveInstrument(l){if(typeof l=="number")return l;if(typeof l=="string"){const t={choir_aahs:52,piano:0,acoustic_grand_piano:0,bright_acoustic_piano:1,electric_grand_piano:2,strings:48,string_ensemble_1:48,violin:40,viola:41,cello:42,contrabass:43},A=l.toLowerCase().replace(/ /g,"_");return t[A]!==void 0?t[A]:0}return 0}_midiNoteToName(l){const t=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"],A=Math.floor(l/12)-1;return`${t[l%12]}${A}`}_bytesToNumber(l){let t=0;for(let A=0;A<l.length;A++)t=t<<8|l[A];return t}_bytesToString(l){return new TextDecoder().decode(l)}_readVariableLengthValue(l,t){let A=0,Q,n=0;do Q=l[t+n++],A=A<<7|Q&127;while(Q&128);return{value:A,bytesRead:n}}_ticksToTime(l,t){const A=t.ticksPerBeat||480,Q=[];t.tracks.forEach(F=>{F.events.forEach(d=>{d.type==="tempo"&&Q.push(d)})}),Q.sort((F,d)=>F.tick-d.tick);let n=0,a=0,s=120;for(const F of Q){if(F.tick>l)break;if(F.tick>a){const d=(F.tick-a)/A*(60/s);n+=d,a=F.tick}s=F.bpm}if(l>a){const F=(l-a)/A*(60/s);n+=F}return n}}class YQ{constructor(){this.barOrder=[],this.beatTable=[]}mapBeats(l,t){try{return t.bars&&!t.sections?this.barOrder=this.generateBarOrderFromLegacyBars(t.bars,l.barStructure):t.sections&&t.order?this.barOrder=this.generateBarOrder(t.sections,t.order):this.barOrder=this.generateLinearBarOrder(l.barStructure),this.beatTable=this.generateBeatTable(this.barOrder,l.barStructure),this.beatTable}catch(A){throw console.error("Error mapping beats:",A),A}}generateBarOrder(l,t){const A=[],Q={};for(const n of t){const a=l[n.section];if(!a)throw new Error(`Invalid section index: ${n.section}`);const s=n.section;Q[s]||(Q[s]=0),Q[s]++;const F=Q[s],d=n.from!==void 0?n.from:this._getSectionStartBar(l,n.section),o=n.to!==void 0?n.to:a.to,c=n.as||1;for(let h=d;h<=o;h++)this._shouldPlayBar(a,h,c)&&A.push({barNumber:h,repeat:F,sectionIndex:n.section,voltaTime:c})}return A}generateBarOrderFromLegacyBars(l,t){const A=[];let Q=1,n=0,a;for(const s of l){s.from!==void 0&&(Q=s.from===-1?0:s.from,n=0),s.timeSig!==void 0&&(a=s.timeSig);const F=s.repeat||1;let d=s.beats;for(;d>0;){const o=(a!==void 0?a:this._getBeatsPerBar(Q,t))-n;d>=o?(A.push({barNumber:Q,repeat:F,sectionIndex:0,voltaTime:1}),d-=o,n=0,Q===0?Q=1:Q++):(n+=d,d=0)}}return n>0&&A.push({barNumber:Q,repeat:1,sectionIndex:0,voltaTime:1}),A}generateLinearBarOrder(l){const t=[];for(let A=0;A<l.length;A++)t.push({barNumber:A+1,repeat:1,sectionIndex:0,voltaTime:1});return t}_getBeatsPerBar(l,t){const A=t.length>0&&t[0].sig&&t[0].sig[0]<=2;let Q;if(A?Q=l:Q=l-1,Q<0||Q>=t.length)return 4;const n=t[Q];return n.sig?n.sig[0]:4}generateBeatTable(l,t){const A=[],Q={};let n=0,a=0;const s=[...t];for(;a<l.length&&n<s.length;){const F=l[a],d=F.barNumber;if(Q[d]===void 0){const Z=s[n];if(!Z||!Z.sig)throw new Error(`Invalid MIDI bar structure at index ${n}`);Q[d]=Z.sig[0]}const o=Q[d];let c=s[n],h=c.sig[0];for(;h<o&&n+1<s.length;){const Z=s[n+1],U=[c.sig[0]+Z.sig[0],c.sig[1]],m=[...c.beats||[],...Z.beats||[]];c={sig:U,beats:m},s[n]=c,s.splice(n+1,1),h=U[0]}if(h>o){const Z=o,U=h-o,m=c.beats?c.beats.slice(0,Z):[],C=c.beats?c.beats.slice(Z):[],W={sig:[Z,c.sig[1]],beats:m},J={sig:[U,c.sig[1]],beats:C};s[n]=W,s.splice(n+1,0,J),c=W}this._generateBeatsForBar(A,F,c,o),n++,a++}if(a<l.length){const F=A.length>0?A[A.length-1]:null;let d=.5;if(A.length>=2){const c=Math.min(8,A.length),h=A[A.length-c];d=(A[A.length-1].time-h.time)/(c-1)}let o=F?F.time+d:0;for(;a<l.length;){const c=l[a],h=c.barNumber,Z=Q[h]!==void 0?Q[h]:4;Q[h]===void 0&&(Q[h]=Z);const U=[];for(let C=0;C<Z;C++)U.push(o),o+=d;const m={sig:[Z,4],beats:U};this._generateBeatsForBar(A,c,m,Z),a++}}return A}_generateBeatsForBar(l,t,A,Q){const{beats:n}=A;if(!n||!Array.isArray(n))throw new Error(`Invalid MIDI bar: missing beats array. Got: ${JSON.stringify(A)}`);const a=n.slice(0,Q);for(let s=1;s<=Q;s++){const F={time:a[s-1],repeat:t.repeat,bar:t.barNumber,beat:s,timeSig:Q};l.push(F)}}_getSectionStartBar(l,t){return l[t].pickup!==void 0?0:t===0?1:l[t-1].to+1}_shouldPlayBar(l,t,A){if(!l.voltas)return!0;const Q=l.voltas.indexOf(t);return Q===-1?!0:Q+1===A}}class EA{constructor(l=null,t,A=null,Q=null){if(!t)throw new Error("Parsed MIDI data is required");this.audioEngine=l,this._audioEngineReady=!!(l&&l.isInitialized),this.instrumentMap=A||{},this.parsedData=t,this._isPlaying=!1,this._currentTime=0,this._totalDuration=0,this.playbackSpeed=1,this.partChannels=new Map,this.partOutputs=new Map,this.playbackStartTime=0,this.lookAheadTime=.05,this.scheduleInterval=null,this.partNotePointers=new Map,this.partProgramPointers=new Map,this.eventBus=hA(),this.beatMapper=new YQ,this.beats=[],this.structureMetadata=Q,this._calculateTotalDuration();const n=Q||this._createDefaultStructureMetadata();this.beats=this.beatMapper.mapBeats(t,n),this._audioEngineReady&&(this._setupPartChannels(),this._resetNotePointers(),this._resetProgramPointers())}setAudioEngine(l){if(!l||!l.isInitialized)throw new Error("An initialized AudioEngine is required");this.audioEngine=l,this._audioEngineReady=!0,this._setupPartChannels(),this._resetNotePointers(),this._resetProgramPointers()}isAudioEngineReady(){return this._audioEngineReady}play(){if(!this._audioEngineReady)throw new Error("Audio engine not ready. Call setAudioEngine() first.");this._isPlaying||(this._isPlaying=!0,this.playbackStartTime=this.audioEngine.audioContext.currentTime-this._currentTime/this.playbackSpeed,this._resetNotePointers(),this._resetProgramPointers(),this._schedulePlayback(),this._startTimeUpdateLoop())}playAt(l){if(!this._audioEngineReady)throw new Error("Audio engine not ready. Call setAudioEngine() first.");this._isPlaying||(this._isPlaying=!0,this.playbackStartTime=l-this._currentTime/this.playbackSpeed,this._resetNotePointers(),this._resetProgramPointers(),this._schedulePlayback(),this._startTimeUpdateLoop())}pause(){this._isPlaying&&(this._isPlaying=!1,this._stopScheduling(),this._stopTimeUpdateLoop())}stop(){this._isPlaying=!1,this._currentTime=0,this._stopScheduling(),this._stopTimeUpdateLoop(),this._resetNotePointers(),this._resetProgramPointers()}skipToTime(l){l=Math.max(0,Math.min(l,this._totalDuration));const t=this._isPlaying;t&&this.pause(),this._currentTime=l,this._resetNotePointers(),this._resetProgramPointers(),t&&this.play()}setPlaybackSpeed(l,t=!0){if(l<=0)throw new Error("Playback speed must be greater than 0");const A=t&&this._isPlaying;A&&this.pause();const Q=(this.audioEngine.audioContext.currentTime-this.playbackStartTime)*this.playbackSpeed;this.playbackSpeed=l,A?this.play():this.playbackStartTime=this.audioEngine.audioContext.currentTime-Q/this.playbackSpeed}setBar(l,t=0){const A=this.getTimeFromBar(l,t);A!==null&&(this.skipToTime(A),this._emitEvent("barChanged",{bar:l,beat:1,repeat:t,time:A}))}getTimeFromBar(l,t=0){t||(t=1);const A=this.beats.find(Q=>Q.bar===l&&Q.beat===1&&Q.repeat===t);return A?A.time:null}getBeatFromTime(l){if(!this.beats.length)return null;let t=null;for(let A=this.beats.length-1;A>=0;A--)if(this.beats[A].time<=l){t=this.beats[A];break}return t}getBeats(){return this.beats}getRepeatCountForBar(l){const t=new Set;return this.beats.forEach(A=>{A.bar===l&&t.add(A.repeat)}),t.size}getPracticeMarks(){return this.structureMetadata?this.structureMetadata.marks||this.structureMetadata.practiceMarks||{}:{}}allSoundsOff(){this._audioEngineReady&&this.audioEngine.allSoundsOff()}getPartOutput(l){return this.partOutputs.get(l)||null}getPartChannel(l){return this.partChannels.get(l)||null}getAllNextNotes(l){const t=l??this.getCurrentTime(),A={};for(const[Q,n]of Object.entries(this.parsedData.parts)){const a=n.notes.find(s=>s.startTime>=t);A[Q]=a?{pitch:a.pitch,startTime:a.startTime}:null}return A}getCurrentTime(){if(this._isPlaying){const l=(this.audioEngine.audioContext.currentTime-this.playbackStartTime)*this.playbackSpeed;this._currentTime=Math.min(l,this._totalDuration)}return this._currentTime}getTotalDuration(){return this._totalDuration}isPlaying(){return this._isPlaying}on(l,t){this.eventBus.on(l,t)}off(l,t){this.eventBus.off(l,t)}_setupPartChannels(){Object.keys(this.parsedData.parts).forEach(l=>{const t=this.parsedData.parts[l],A=this.instrumentMap[l]||{},Q=A.instrument!==void 0?A.instrument:t.defaultInstrument!==void 0?t.defaultInstrument:0;try{const n=this.audioEngine.createChannel(l,{instrument:Q,initialVolume:A.volume||1});this.partChannels.set(l,n);const a=this.audioEngine.audioContext.createGain();a.gain.value=1;const s=n.getOutputNode();s&&s.connect(a),this.partOutputs.set(l,a)}catch(n){console.error(`Failed to create channel for part '${l}':`,n),this._emitEvent("error",n)}})}_calculateTotalDuration(){let l=0;Object.values(this.parsedData.parts).forEach(t=>{t.notes.forEach(A=>{A.endTime>l&&(l=A.endTime)})}),this._totalDuration=l}_schedulePlayback(){this._stopScheduling(),this._startScheduleLoop()}_startScheduleLoop(){this.scheduleInterval||(this.scheduleInterval=setInterval(()=>{if(!this._isPlaying)return;const l=(this.audioEngine.audioContext.currentTime-this.playbackStartTime)*this.playbackSpeed,t=l+this.lookAheadTime;for(const[A,Q]of this.partChannels){const n=this.parsedData.parts[A];if(n){if(n.programChanges&&n.programChanges.length>0){let a=this.partProgramPointers.get(A)||0;const s=n.programChanges;for(;a<s.length&&s[a].time<l;)a++;for(;a<s.length&&s[a].time<=t;){const F=s[a];Q.setInstrument(F.programNumber),a++}this.partProgramPointers.set(A,a)}if(n.notes){let a=this.partNotePointers.get(A)||0;const s=n.notes;for(;a<s.length&&s[a].endTime<l;)a++;for(;a<s.length&&s[a].startTime<=t;){const F=s[a];if(F.endTime-F.startTime>=.01){const d=this.playbackStartTime+F.startTime/this.playbackSpeed,o=(F.endTime-F.startTime)/this.playbackSpeed;Q.playNote(d,F.pitch,F.velocity,o)}a++}this.partNotePointers.set(A,a)}}}},50))}_resetNotePointers(){const l=this._currentTime;for(const[t]of this.partChannels){const A=this.parsedData.parts[t];if(!A||!A.notes)continue;let Q=0;for(;Q<A.notes.length&&A.notes[Q].endTime<l;)Q++;this.partNotePointers.set(t,Q)}}_resetProgramPointers(){const l=this._currentTime;for(const[t,A]of this.partChannels){const Q=this.parsedData.parts[t];if(!Q||!Q.programChanges){this.partProgramPointers.set(t,0);continue}let n=0,a=Q.defaultInstrument;for(;n<Q.programChanges.length&&Q.programChanges[n].time<=l;)a=Q.programChanges[n].programNumber,n++;A.setInstrument(a),this.partProgramPointers.set(t,n)}}_stopScheduling(){this.scheduleInterval&&(clearInterval(this.scheduleInterval),this.scheduleInterval=null),this.partChannels.forEach(l=>{l.isActive()&&l.allNotesOff()})}_startTimeUpdateLoop(){this.timeUpdateInterval=setInterval(()=>{const l=this.getCurrentTime();this._emitEvent("timeupdate",{currentTime:l});const t=this.getBeatFromTime(l);t&&this._emitEvent("beatChanged",t),(this.audioEngine.audioContext.currentTime-this.playbackStartTime)*this.playbackSpeed>=this._totalDuration+.05&&(this.stop(),this._emitEvent("ended",{finalTime:this._currentTime}))},100)}_stopTimeUpdateLoop(){this.timeUpdateInterval&&(clearInterval(this.timeUpdateInterval),this.timeUpdateInterval=null)}_emitEvent(l,t){(this.eventBus.all.get(l)||[]).forEach(A=>{try{A(t)}catch(Q){console.error(`Error in ${l} event listener:`,Q)}})}_createDefaultStructureMetadata(){return{sections:[{from:1,to:this.parsedData.barStructure.length}],order:[{section:0}]}}destroy(){this.stop(),this.partChannels.forEach(l=>{l.destroy()}),this.partChannels.clear(),this.partOutputs.forEach(l=>{l.disconnect()}),this.partOutputs.clear(),this.partNotePointers.clear(),this.partProgramPointers.clear(),this.eventBus.all.clear()}}class kQ{constructor(l=null,t={}){l instanceof EA?(this.audioEngine=l.audioEngine,this.midiPlayer=l,this.parsedData=l.parsedData,this._audioEngineReady=!!(this.audioEngine&&this.audioEngine.isInitialized)):(this.audioEngine=l,this._audioEngineReady=!!(l&&l.isInitialized),this.midiPlayer=null,this.parsedData=null),this.eventBus=hA(),this._parser=new XQ,this._partOutputsMap=new Map,this.instrumentMap=null,this.metronomeConfig={enabled:!1,tickInstrument:115,accentInstrument:116,volume:.7,...t.metronome},this.leadInConfig={enabled:!1,bars:1,...t.leadIn},this.startupConfig={delayMs:25,...t.startup},this.state="reset",this.frozenTime=0,this.leadInData=null,this.leadInStartTime=null,this.leadInProgress=null,this.leadInInterval=null,this.timeUpdateInterval=null,this.metronomeScheduleInterval=null,this.nextBeatIndex=0,this.measuredLatencyMs=null,this.latencyMeasurements=[],this.isCalibrating=!1,this.baselineLatencyMs=null,this.silentGainNode=null,this._validateConfig(),this._loadBaselineLatency(),this.midiPlayer&&this._completeMidiPlayerSetup()}setAudioEngine(l){if(!l||!l.isInitialized)throw new Error("An initialized AudioEngine is required");this.audioEngine=l,this._audioEngineReady=!0,this.parsedData&&!this.midiPlayer&&this._setupPlayerWithAudio()}isAudioEngineReady(){return this._audioEngineReady}async load(l,t=null,A=null){if(this.reset(),l instanceof EA)this.parsedData=l.parsedData,this.instrumentMap=A,this._audioEngineReady&&this._setMidiPlayer(l);else if(l instanceof ArrayBuffer)this.parsedData=await this._parser.parse(l,t),this.instrumentMap=A||this._createDefaultInstrumentMap(this.parsedData.parts),this._audioEngineReady&&this._setupPlayerWithAudio();else if(l&&typeof l=="object"&&l.parts)this.parsedData=l,this.instrumentMap=A||this._createDefaultInstrumentMap(l.parts),this._audioEngineReady&&this._setupPlayerWithAudio();else throw new Error("Invalid input type. Expected MidiPlayer, parsed MIDI data, or ArrayBuffer")}reset(){this.stop(),this.midiPlayer&&(this.midiPlayer.destroy(),this.midiPlayer=null),this.parsedData=null,this.instrumentMap=null,this._audioEngineReady&&this.audioEngine.clearAllChannels(),this._partOutputsMap.clear(),this.frozenTime=0,this.leadInData=null,this.leadInProgress=null,this.leadInStartTime=null,this.nextBeatIndex=0,this._stopLeadIn(),this._stopMetronome(),this._stopTimeUpdateLoop(),this.state="reset"}getPartOutputs(){return this._partOutputsMap.entries()}getPartNames(){return Array.from(this._partOutputsMap.keys())}getBeats(){return this.midiPlayer?this.midiPlayer.getBeats():[]}getRepeatCountForBar(l){return this.midiPlayer?this.midiPlayer.getRepeatCountForBar(l):0}getPracticeMarks(){return this.midiPlayer?this.midiPlayer.getPracticeMarks():{}}async play(l={}){if(!this._audioEngineReady)throw new Error("Audio engine not ready. Call setAudioEngine() after user interaction.");if(this.parsedData&&!this.midiPlayer&&this._setupPlayerWithAudio(),!this.midiPlayer)throw new Error("No MIDI data loaded. Call load() first.");if(!(this.state==="playing"||this.state==="lead-in"))try{const t=l.leadIn!==void 0?l.leadIn:this.leadInConfig.enabled,A=l.metronome!==void 0?l.metronome:this.metronomeConfig.enabled;this.frozenTime===0&&(this.frozenTime=this.midiPlayer.getCurrentTime()),t?await this._startLeadIn(A):await this._startMidiPlayback(A)}catch(t){throw this.state="stopped",this._emitEvent("error",t),t}}pause(){if(!this.midiPlayer||this.state==="stopped"||this.state==="paused")return;const l=this.state;this.state="paused",l==="lead-in"?this._pauseLeadIn():l==="playing"&&(this.midiPlayer.pause(),this._stopMetronome()),this._stopTimeUpdateLoop(),this._emitEvent("playbackPaused",{})}resume(){!this.midiPlayer||this.state!=="paused"||(this.leadInData&&this.leadInProgress!==null&&this.leadInProgress<1?this._resumeLeadIn():(this.state="playing",this._resetMetronomeBeatTracking(),this.midiPlayer.play(),this._startMetronomeIfEnabled(),this._startTimeUpdateLoop(),this._emitEvent("playbackStarted",{})))}stop(){if(this.state==="stopped")return;const l=this.state==="playing";this.state="stopped",this.frozenTime=0,this.leadInData=null,this.leadInProgress=null,this.leadInStartTime=null,this._stopLeadIn(),this._stopMetronome(),this._stopTimeUpdateLoop(),this._resetMetronomeBeatTracking(),l&&this.midiPlayer.stop(),this._emitEvent("playbackStopped",{})}skipToTime(l){if(!this.midiPlayer)throw new Error("No MIDI data loaded. Call load() first.");this.frozenTime=l,this.state!=="lead-in"&&(this.midiPlayer.skipToTime(l),this.state==="playing"&&this.metronomeConfig.enabled&&this._resetMetronomeBeatTracking())}setBar(l,t=0){if(!this.midiPlayer)throw new Error("No MIDI data loaded. Call load() first.");if(this.state==="lead-in"){const A=this.midiPlayer.getTimeFromBar(l,t);A!==null&&(this.frozenTime=A);return}if(this.midiPlayer.setBar(l,t),this.state==="stopped"){const A=this.midiPlayer.getTimeFromBar(l,t);A!==null&&(this.frozenTime=A)}this.state==="playing"&&this.metronomeConfig.enabled&&this._resetMetronomeBeatTracking()}getCurrentTime(){return this.state==="lead-in"||this.state==="paused"&&this.leadInProgress!==null?this.frozenTime:this.midiPlayer?this.midiPlayer.getCurrentTime():0}getLeadInProgress(){return this.leadInProgress}setMetronomeEnabled(l){const t=this.metronomeConfig.enabled;this.metronomeConfig.enabled=l,this.state==="playing"&&(l&&!t?this._startMetronome():!l&&t&&this._stopMetronome()),this._emitEvent("metronomeEnabledChanged",{enabled:l})}setMetronomeSettings(l){if(l.volume!==void 0&&(l.volume<0||l.volume>1))throw new Error("Metronome volume must be between 0.0 and 1.0");if(Object.assign(this.metronomeConfig,l),l.volume!==void 0){const t=this.audioEngine.getMetronomeOutput();t&&t.gain&&(t.gain.value=l.volume)}this._emitEvent("metronomeSettingsChanged",{...l})}setLeadInEnabled(l){this.leadInConfig.enabled=l,this._emitEvent("leadInSettingsChanged",{enabled:l,bars:this.leadInConfig.bars})}setLeadInBars(l){if(l<1)throw new Error("Lead-in bars must be at least 1");this.leadInConfig.bars=l,this._emitEvent("leadInSettingsChanged",{enabled:this.leadInConfig.enabled,bars:l})}setPlaybackSpeed(l,t=!0){if(!this.midiPlayer)throw new Error("No MIDI data loaded. Call load() first.");this.midiPlayer.setPlaybackSpeed(l,t)}getMetronomeSettings(){return{...this.metronomeConfig}}isMetronomeEnabled(){return this.metronomeConfig.enabled}getLeadInSettings(){return{enabled:this.leadInConfig.enabled,bars:this.leadInConfig.bars}}getStartupSettings(){return{...this.startupConfig}}setStartupDelay(l){if(typeof l!="number"||l<0||l>1e3)throw new Error("Startup delay must be a number between 0 and 1000 milliseconds");this.startupConfig.delayMs=l,this._emitEvent("startupSettingsChanged",{delayMs:l})}getState(){return this.state}isInLeadIn(){return this.state==="lead-in"}isPlaying(){return this.state==="playing"||this.state==="lead-in"}getAudioLatencyMs(){return this.measuredLatencyMs}getBaselineLatencyMs(){return this.baselineLatencyMs}hasLatencyDrift(l=100){return!this.measuredLatencyMs||!this.baselineLatencyMs?!1:this.measuredLatencyMs>this.baselineLatencyMs+l}async calibrateAudioLatency(l={}){if(!this._audioEngineReady)throw new Error("Audio engine not ready. Call setAudioEngine() first.");if(this.isCalibrating)throw new Error("Calibration already in progress");const t=l.measurements||5,A=l.sampleIntervalMs||10,Q=l.threshold||.01,n=l.timeout||3e3,a=l.silent!==void 0?l.silent:!0,s=l.updateBaseline!==void 0?l.updateBaseline:!0;this.isCalibrating=!0;try{a&&await this._setupSilentCalibration();const F=await this._performLatencyMeasurement(t,A,Q,n);this.measuredLatencyMs=F,s&&await this._updateBaselineLatency(F);const d=this.hasLatencyDrift();return this._emitEvent("audioLatencyChanged",{latencyMs:F,baselineLatencyMs:this.baselineLatencyMs,hasDrift:d,source:"manual",measurements:t}),d&&(console.warn(`Latency drift detected: ${F}ms vs baseline ${this.baselineLatencyMs}ms`),this._emitEvent("latencyDriftDetected",{currentLatencyMs:F,baselineLatencyMs:this.baselineLatencyMs,driftMs:F-this.baselineLatencyMs})),F}finally{a&&this._teardownSilentCalibration(),this.isCalibrating=!1}}_loadBaselineLatency(){try{if(typeof localStorage>"u")return;const l=localStorage.getItem("audioMixerEngine.baselineLatency");l&&(this.baselineLatencyMs=parseInt(l,10),console.log(`Loaded baseline latency from storage: ${this.baselineLatencyMs}ms`))}catch(l){console.warn("Could not load baseline latency from storage:",l)}}async _updateBaselineLatency(l){if(!this.baselineLatencyMs||l<this.baselineLatencyMs){this.baselineLatencyMs=l;try{typeof localStorage<"u"&&(localStorage.setItem("audioMixerEngine.baselineLatency",l.toString()),console.log(`Updated baseline latency: ${l}ms`))}catch(t){console.warn("Could not save baseline latency to storage:",t)}}}async _setupSilentCalibration(){const l=this.audioEngine.getMetronomeOutput();if(!l)throw new Error("Metronome output not available for calibration");this.silentGainNode||(this.silentGainNode=this.audioEngine.audioContext.createGain(),this.silentGainNode.gain.value=0,this.silentGainNode.connect(this.audioEngine.audioContext.destination)),l.connect(this.silentGainNode),console.log("Silent calibration setup complete (gain=0, signal flows for analysis)")}_teardownSilentCalibration(){const l=this.audioEngine.getMetronomeOutput();if(!(!l||!this.silentGainNode))try{l.disconnect(this.silentGainNode),console.log("Silent calibration torn down")}catch(t){console.warn("Error disconnecting silent calibration:",t)}}getMetronomeOutput(){return this.audioEngine.getMetronomeOutput()}getPartOutput(l){return this.midiPlayer?this.midiPlayer.getPartOutput(l):null}allSoundsOff(){this.midiPlayer&&this.midiPlayer.allSoundsOff()}previewNextNotes(l={}){if(!this.midiPlayer)throw new Error("No MIDI data loaded");const t=l.delayBetweenParts??.3,A=l.duration??.5,Q=l.velocity??100,n=this.midiPlayer.getAllNextNotes(),a=l.partOrder??this.getPartNames();let s=this.audioEngine.audioContext.currentTime+.01;const F=[];for(const d of a){const o=n[d];if(!o)continue;const c=this.midiPlayer.getPartChannel(d);if(!c)continue;const h=this.midiPlayer.getPartOutput(d);h&&h.gain.value===0||(c.playPreviewNote(o.pitch,{startTime:s,duration:A,velocity:Q,instrument:l.instrument}),F.push({partName:d,pitch:o.pitch,startTime:s}),s+=t)}return{parts:F,totalDuration:F.length*t}}getTotalDuration(){if(this.midiPlayer)return this.midiPlayer.getTotalDuration();if(this.parsedData&&this.parsedData.parts){let l=0;return Object.values(this.parsedData.parts).forEach(t=>{t.notes&&t.notes.forEach(A=>{A.endTime>l&&(l=A.endTime)})}),l}return 0}on(l,t){this.eventBus.on(l,t)}off(l,t){this.eventBus.off(l,t)}_setupEventDelegation(){this.midiPlayer.on("timeupdate",l=>{if(this.state==="playing"){const t={...l,effectiveTime:l.currentTime,leadInProgress:null};if(this.measuredLatencyMs){const A=this.measuredLatencyMs/1e3;t.audioTime=Math.max(0,l.currentTime-A),t.latencyMs=this.measuredLatencyMs}this._emitEvent("timeupdate",t)}}),this.midiPlayer.on("beatChanged",l=>{if(this.state==="playing"){const t={...l,isLeadIn:!1};this._emitEvent("beatChanged",t),this._scheduleBeatAudible(t)}}),this.midiPlayer.on("ended",l=>{this.state==="playing"&&(this.state="stopped",this._stopMetronome(),this._stopTimeUpdateLoop(),this._emitEvent("playbackEnded",l))}),this.midiPlayer.on("error",l=>{this._emitEvent("error",l)})}_validateConfig(){if(this.metronomeConfig.volume<0||this.metronomeConfig.volume>1)throw new Error("Metronome volume must be between 0.0 and 1.0");if(this.leadInConfig.bars<1)throw new Error("Lead-in bars must be at least 1")}async _startLeadIn(l){this.state="lead-in";const t=this.startupConfig.delayMs/1e3;this.leadInStartTime=this.audioEngine.audioContext.currentTime+t,this.leadInProgress=0,this.leadInData=this._calculateLeadInBeats(),this._emitEvent("leadInStarted",{totalBeats:this.leadInData.totalBeats,duration:this.leadInData.duration,bars:this.leadInConfig.bars,startupDelayMs:this.startupConfig.delayMs}),setTimeout(()=>{this.state==="lead-in"&&this._startLeadInScheduling(l)},this.startupConfig.delayMs),this._startTimeUpdateLoop()}_calculateLeadInBeats(){if(!this.midiPlayer)return{totalBeats:4,duration:2,beatSequence:[],beatsPerBar:4,startBeat:{bar:1,beat:1,timeSig:4}};const l=this.midiPlayer.beats,t=this.frozenTime,A=this.leadInConfig.bars;let Q=l.length-1,n=.5;for(;l[Q].time>t;)Q--;const a=l[Q],s=l[Q+1];s?n=s.time-a.time:Q>0&&(n=a.time-l[Q-1].time);const F=this.midiPlayer&&this.midiPlayer.playbackSpeed||1,d=n/F,o=a.timeSig===1,c=o&&s?s.timeSig:a.timeSig,h=o?c-1:a.beat>1?a.beat-1:0,Z=A*c+h;return{totalBeats:Z,duration:Z*d,beatSequence:this._generateBeatSequence(Z,d,c),beatsPerBar:c,startBeat:a}}_generateBeatSequence(l,t,A){const Q=[];for(let n=0;n<l;n++){const a=n%A+1;Q.push({beat:a,isAccent:a===1,time:n*t,absoluteTime:this.leadInStartTime+n*t})}return Q}_startLeadInScheduling(l){this.leadInBeatIndex=0,this.leadInScheduledBeats=new Set;const t=this.leadInData.beatSequence,A=10;this.leadInStartTime=this.audioEngine.audioContext.currentTime,this.leadInInterval=setInterval(()=>{const Q=this.audioEngine.audioContext.currentTime-this.leadInStartTime;for(this.leadInProgress=Math.min(1,Q/this.leadInData.duration);this.leadInBeatIndex<t.length;){const n=t[this.leadInBeatIndex],a=n.time-Q;if(a>.05)break;if(!this.leadInScheduledBeats.has(this.leadInBeatIndex)&&a>=-.05&&a<=.05){const s=a<=0?this.audioEngine.audioContext.currentTime+.01:this.audioEngine.audioContext.currentTime+a;this._scheduleTickAtTime(s,n.isAccent);const F={bar:Math.floor(this.leadInBeatIndex/this.leadInData.beatsPerBar)+1,beat:n.beat,repeat:1,time:this.frozenTime,isLeadIn:!0};this._emitEvent("beatChanged",F),this._scheduleBeatAudible(F),this.leadInScheduledBeats.add(this.leadInBeatIndex)}this.leadInBeatIndex++}this.leadInProgress>=1&&this._completeLeadIn(l)},A)}_completeLeadIn(l){const t=this.leadInStartTime+this.leadInData.duration;this._stopLeadIn(),this._emitEvent("leadInEnded",{}),this.leadInData=null,this.leadInProgress=null,this.leadInStartTime=null,this._startMidiPlaybackAt(t,l,!0)}async _startMidiPlaybackAt(l,t,A=!0){this.state="playing",A&&this._emitEvent("playbackStarted",{startupDelayMs:0,scheduledStartTime:l}),this.midiPlayer.playAt(l),t&&this._startMetronomeAt(l),this.timeUpdateInterval||this._startTimeUpdateLoop()}async _startMidiPlayback(l,t=!0,A=!1){this.state="playing",this._resetMetronomeBeatTracking(),t&&this._emitEvent("playbackStarted",{startupDelayMs:A?0:this.startupConfig.delayMs});const Q=()=>{if(this.state==="playing")try{this.midiPlayer.play(),l&&this._startMetronome()}catch(n){this.state="stopped",this._emitEvent("error",n)}};A?Q():setTimeout(Q,this.startupConfig.delayMs),this.timeUpdateInterval||this._startTimeUpdateLoop()}_startMetronome(){!this.metronomeConfig.enabled||this.state!=="playing"||(this._scheduleMetronomeTicks(),this.metronomeScheduleInterval=setInterval(()=>{this._scheduleMetronomeTicks()},50))}_startMetronomeAt(l){this.metronomeConfig.enabled&&(this.metronomeScheduledStartTime=l,this._resetMetronomeBeatTracking(),this._scheduleMetronomeTicksAt(l),this.metronomeScheduleInterval=setInterval(()=>{this._scheduleMetronomeTicks()},50))}_startMetronomeIfEnabled(){this.metronomeConfig.enabled&&this._startMetronome()}_scheduleMetronomeTicksAt(l){if(!this.metronomeConfig.enabled||!this.midiPlayer)return;const t=this.midiPlayer.beats;if(!t||t.length===0)return;const A=this.midiPlayer.getCurrentTime(),Q=.1;for(let n=this.nextBeatIndex;n<t.length;n++){const a=t[n],s=this.midiPlayer.playbackSpeed||1,F=l+(a.time-A)/s;if(F>this.audioEngine.audioContext.currentTime+Q)break;if(F>=this.audioEngine.audioContext.currentTime-.01){const d=Math.max(F,this.audioEngine.audioContext.currentTime+.001),o=a.isDownbeat||a.beat===1;this._scheduleTickAtTime(d,o),this.nextBeatIndex=n+1}}}_scheduleMetronomeTicks(){if(!this.metronomeConfig.enabled||!this.midiPlayer)return;const l=this.midiPlayer.getCurrentTime(),t=this.midiPlayer.beats;if(!t||t.length===0)return;for(;this.nextBeatIndex<t.length&&t[this.nextBeatIndex].time<l-.025;)this.nextBeatIndex++;const A=l+.15;for(;this.nextBeatIndex<t.length;){const Q=t[this.nextBeatIndex],n=Q.time-l;if(Q.time>A)break;if(n>=-.025&&n<=.15){const a=this.audioEngine.audioContext.currentTime+.005,s=this.audioEngine.audioContext.currentTime+Math.max(n,.005),F=Math.max(a,s),d=Q.beat===1;this._scheduleTickAtTime(F,d)}this.nextBeatIndex++}}async _scheduleTickAtTime(l,t){try{await this.audioEngine.playMetronomeTick(l,t,this.metronomeConfig.volume)}catch(A){console.warn("Failed to schedule metronome tick:",A)}}_resetMetronomeBeatTracking(){if(!this.midiPlayer){this.nextBeatIndex=0;return}const l=this.getCurrentTime(),t=this.midiPlayer.beats;if(!t||t.length===0){this.nextBeatIndex=0;return}for(this.nextBeatIndex=0;this.nextBeatIndex<t.length&&t[this.nextBeatIndex].time<l-.01;)this.nextBeatIndex++}_stopMetronome(){this.metronomeScheduleInterval&&(clearInterval(this.metronomeScheduleInterval),this.metronomeScheduleInterval=null)}_stopLeadIn(){this.leadInInterval&&(clearInterval(this.leadInInterval),this.leadInInterval=null)}_pauseLeadIn(){this._stopLeadIn()}_resumeLeadIn(){if(!this.leadInData||this.leadInProgress===null)return;this.state="lead-in";const l=this.audioEngine.audioContext.currentTime,t=this.leadInProgress*this.leadInData.duration;this.leadInStartTime=l-t,this._startLeadInScheduling(this.metronomeConfig.enabled),this._startTimeUpdateLoop()}_startTimeUpdateLoop(){this.timeUpdateInterval||(this.timeUpdateInterval=setInterval(()=>{if(this.state==="lead-in"){const l={currentTime:this.frozenTime,effectiveTime:this.frozenTime,leadInProgress:this.leadInProgress||0};if(this.measuredLatencyMs){const t=this.measuredLatencyMs/1e3;l.audioTime=Math.max(0,this.frozenTime-t),l.latencyMs=this.measuredLatencyMs}this._emitEvent("timeupdate",l)}else this.state},100))}_stopTimeUpdateLoop(){this.timeUpdateInterval&&(clearInterval(this.timeUpdateInterval),this.timeUpdateInterval=null)}_emitEvent(l,t){(this.eventBus.all.get(l)||[]).forEach(A=>{try{A(t)}catch(Q){console.error(`Error in ${l} event listener:`,Q)}})}_scheduleBeatAudible(l){if(!this.measuredLatencyMs){const A={...l,latencyMs:0};this._emitEvent("beatAudible",A);return}const t=this.measuredLatencyMs;setTimeout(()=>{if(this.state==="playing"||this.state==="lead-in"){const A={...l,latencyMs:this.measuredLatencyMs};this._emitEvent("beatAudible",A)}},t)}destroy(){this.stop(),this._stopLeadIn(),this._stopMetronome(),this._stopTimeUpdateLoop(),this.silentGainNode&&(this.silentGainNode.disconnect(),this.silentGainNode=null),this.eventBus.all.clear()}_setupPlayerWithAudio(){if(!this._audioEngineReady)throw new Error("Audio engine not ready");if(!this.parsedData)throw new Error("No parsed MIDI data available");const l=this.parsedData.structureMetadata||null,t=new EA(this.audioEngine,this.parsedData,this.instrumentMap,l);this._setMidiPlayer(t)}_setMidiPlayer(l){this.midiPlayer=l,this.audioEngine=l.audioEngine,this._audioEngineReady=!0,this._completeMidiPlayerSetup()}_completeMidiPlayerSetup(){this._partOutputsMap.clear(),Object.keys(this.midiPlayer.parsedData.parts).forEach(l=>{const t=this.midiPlayer.getPartOutput(l);t&&this._partOutputsMap.set(l,t)}),this._setupEventDelegation(),this.state="ready"}_createDefaultInstrumentMap(l){const t={},A={soprano:{instrument:"choir_aahs",volume:1},alto:{instrument:"choir_aahs",volume:1},tenor:{instrument:"choir_aahs",volume:1},bass:{instrument:"choir_aahs",volume:1},piano:{instrument:"piano",volume:.8},organ:{instrument:"church_organ",volume:.7},strings:{instrument:"string_ensemble_1",volume:.6},flute:{instrument:"flute",volume:.8},trumpet:{instrument:"trumpet",volume:.7}};return Object.keys(l).forEach(Q=>{const n=Q.toLowerCase(),a=A[n]||A.piano;t[Q]={instrument:a.instrument,volume:a.volume}}),t}async captureMetronomeSignal(l={}){if(!this._audioEngineReady)throw new Error("Audio engine not ready. Call setAudioEngine() first.");const t=this.audioEngine.getMetronomeAnalyser();if(!t)throw new Error("Metronome analyser not available for signal capture");const A=l.sampleIntervalMs||2,Q=l.captureDurationMs||1500,n=this.audioEngine.audioContext.currentTime+.1;await this.audioEngine.playMetronomeTick(n,!0,1);const a=await this._captureAnalyserTimeSeries(t,n,A,Q);return{scheduledTime:n,samples:a,sampleIntervalMs:A,captureDurationMs:Q}}async _performLatencyMeasurement(l,t,A,Q){const n=this.audioEngine.getMetronomeAnalyser();if(!n)throw new Error("Metronome analyser not available for latency measurement");const a=this.audioEngine.audioContext,s=[];console.log(`Starting calibration: ${l} measurements, ${t}ms sampling, ${A} threshold`);for(let c=0;c<l;c++){const h=a.currentTime+.15;await this.audioEngine.playMetronomeTick(h,!0,1);const Z=await this._detectOnsetByThreshold(n,h,t,A,Q);if(Z){const U=Z.latencyMs;s.push(U),console.log(`Measurement ${c+1}/${l}: ${U.toFixed(1)}ms (RMS: ${Z.rms.toFixed(4)}, peak: ${Z.peak.toFixed(4)})`)}else console.warn(`Measurement ${c+1}/${l}: detection timeout (no signal above ${A} threshold)`);await new Promise(U=>setTimeout(U,300))}if(s.length===0)throw new Error(`Failed to detect any metronome onsets. Try lowering threshold (current: ${A}) or check audio routing.`);let F=s;if(s.length>=5){const c=[...s].sort((h,Z)=>h-Z);F=c.slice(Math.floor(c.length*.2),Math.ceil(c.length*.8)),console.log(`Discarded ${s.length-F.length} outliers`)}const d=F.reduce((c,h)=>c+h,0)/F.length,o=Math.sqrt(F.reduce((c,h)=>c+Math.pow(h-d,2),0)/F.length);return console.log(`Average latency: ${d.toFixed(1)}ms ± ${o.toFixed(1)}ms (n=${F.length})`),Math.round(d)}async _detectOnsetByThreshold(l,t,A,Q,n){const a=this.audioEngine.audioContext,s=l.fftSize,F=new Float32Array(s),d=Math.max(0,(t-a.currentTime)*1e3-20);await new Promise(c=>setTimeout(c,d));const o=performance.now();return new Promise(c=>{const h=setInterval(()=>{if(performance.now()-o>n){clearInterval(h),c(null);return}l.getFloatTimeDomainData(F);let Z=0,U=0;for(let C=0;C<s;C++){const W=Math.abs(F[C]);Z+=F[C]*F[C],W>U&&(U=W)}const m=Math.sqrt(Z/s);if(m>=Q){clearInterval(h);const C=a.currentTime,W=(C-t)*1e3;c({latencyMs:W,rms:m,peak:U,detectedTime:C})}},A)})}async _captureAnalyserTimeSeries(l,t,A,Q){const n=this.audioEngine.audioContext,a=l.fftSize,s=new Float32Array(a),F=[],d=performance.now(),o=Math.max(0,(t-n.currentTime)*1e3-20);return await new Promise(c=>setTimeout(c,o)),new Promise(c=>{const h=setInterval(()=>{if(performance.now()-d-o>=Q){clearInterval(h),c(F);return}l.getFloatTimeDomainData(s);let Z=0,U=0;for(let W=0;W<a;W++){const J=Math.abs(s[W]);Z+=s[W]*s[W],J>U&&(U=J)}const m=Math.sqrt(Z/a),C=n.currentTime;F.push({time:C,relativeTime:(C-t)*1e3,rms:m,peak:U})},A)})}}class TQ{constructor(){this.eventBus=ne(),this.currentTime=0,this.isPlaying=!1,this.playbackSpeed=1,this.masterVolume=.75,this.metronomeVolume=.7,this.parts=new Map,this.playbackTimer=null,this.lastTimestamp=0,this.audioContext=null,this.audioEngine=null,this.playbackManager=null,this.musicData=null,this.beats=[],this.practiceMarks={},this.songDuration=0,this.maxBar=0,this.masterGain=null,this.metronomeGain=null,this.partGainNodes=new Map,this.partAnalyserNodes=new Map,this.isInitialized=!1}sanitizePartName(l){return!l||typeof l!="string"?"unknown":l.replace(/[\x00-\x1F\x7F-\x9F]/g,"").toLowerCase().trim()}async initializeAudioSystem(){if(this.isInitialized)return;this.audioContext=new(window.AudioContext||window.webkitAudioContext),this.audioContext.state==="suspended"&&await this.audioContext.resume(),this.audioEngine=new NQ(this.audioContext),this.audioEngine.on("initProgress",Q=>{this.eventBus.emit("initProgress",Q)});const l=["/FluidR3Mono_GM.sf3","/FluidR3_GM.sf2","/soundfont.sf2"];let t=!1,A=null;for(const Q of l)try{await this.audioEngine.initialize(Q),console.log(`Loaded soundfont: ${Q}`),t=!0;break}catch(n){console.warn(`Failed to load soundfont ${Q}:`,n.message),A=n}if(!t){const Q="No soundfont could be loaded";throw this.eventBus.emit("initProgress",{stage:"error",message:Q,error:A}),new Error(Q)}this.setupMasterAudioGraph(),this.isInitialized=!0,console.log("AudioEngineService initialized successfully")}setupMasterAudioGraph(){this.masterGain=this.audioContext.createGain(),this.masterGain.gain.value=this.masterVolume,this.masterGain.connect(this.audioContext.destination),this.metronomeGain=this.audioContext.createGain(),this.metronomeGain.gain.value=.7,this.metronomeGain.connect(this.audioContext.destination)}async initialize(l){if(this.isInitialized||await this.initializeAudioSystem(),this.cleanup(),this.musicData=l,l.midiData)console.log(l),await this.setupMidiPlayback(l.midiData,l.metadata);else{if(this.beats=l.beats||[],this.practiceMarks=l.marks||l.practiceMarks||{},this.beats.length>0){const t=this.beats[this.beats.length-1],A=t.tempo>0?60/t.tempo:.75;this.songDuration=t.time+A,this.maxBar=Math.max(...this.beats.map(Q=>Q.bar))}else this.songDuration=0,this.maxBar=0;this.setupLegacyParts(l.parts||[]),this.eventBus.emit("initialized",{parts:Array.from(this.parts.values())})}}async setupMidiPlayback(l,t){try{this.playbackManager=new kQ(this.audioEngine,{metronome:{enabled:!0,tickInstrument:115,accentInstrument:116,volume:.7},leadIn:{enabled:!0,bars:1},startup:{delayMs:25}});const A=await this.playbackManager.calibrateAudioLatency({measurements:1,sampleIntervalMs:10,threshold:.01,timeout:3e3,silent:!0});console.log(`Measured audio latency: ${A} ms`),this.setupPlaybackManagerEventDelegation(),await this.playbackManager.load(l,t);const Q=this.playbackManager.getPartNames();this.setupMidiParts(Q),this.eventBus.emit("initialized",{parts:Array.from(this.parts.values())}),await this.setupPartAudioRouting(Q),this.setupMetronomeAudioRouting(),this.extractMusicDataFromPlayer(),this.updateSongDurationFromPlayer(),console.log("MIDI playback with PlaybackManager setup complete")}catch(A){throw console.error("Failed to setup MIDI playback:",A),A}}setupMidiParts(l){l.forEach(t=>{const A=this.sanitizePartName(t);this.parts.set(A,{name:t,sanitizedName:A,volume:.75,muted:!1,solo:!1})})}async setupPartAudioRouting(){for(const[l,t]of this.playbackManager.getPartOutputs()){const A=this.audioContext.createGain();A.gain.value=1;const Q=this.audioContext.createAnalyser();Q.fftSize=256,Q.smoothingTimeConstant=.3,t.connect(A),A.connect(Q),Q.connect(this.masterGain);const n=this.sanitizePartName(l);this.partGainNodes.set(n,A),this.partAnalyserNodes.set(n,Q),console.log(`Audio routing established for part: ${l}`)}}setupMetronomeAudioRouting(){this.playbackManager.getMetronomeOutput().connect(this.metronomeGain),console.log("Metronome audio routing established")}extractMusicDataFromPlayer(){try{this.beats=this.playbackManager.getBeats(),this.practiceMarks=this.playbackManager.getPracticeMarks(),this.beats.length>0?this.maxBar=Math.max(...this.beats.map(l=>l.bar)):this.maxBar=0,console.log(`Extracted ${this.beats.length} beats and ${Object.keys(this.practiceMarks).length} practice marks from player`),this.eventBus.emit("musicDataExtracted",{beats:this.beats,practiceMarks:this.practiceMarks,maxBar:this.maxBar})}catch(l){console.warn("Could not extract music data from player:",l),this.beats=[],this.practiceMarks={},this.maxBar=0}}updateSongDurationFromPlayer(){let l=this.playbackManager.getTotalDuration();l&&l>0?(this.songDuration=l,this.musicData&&(this.musicData.duration=l),this.eventBus.emit("durationUpdated",{duration:l})):console.warn("Could not get duration from player")}snapTimeToBarStart(l){try{const t=this.getBarFromTime(l);if(t){const A=this.getTimeFromBar(t.bar,t.repeat);if(A!==null)return A}}catch(t){console.warn("Failed to snap time to bar start:",t)}return l}emitTimeAndBarUpdates(l){this.eventBus.emit("timeChanged",{currentTime:l});const t=this.getBarFromTime(l);t&&this.eventBus.emit("barChanged",t)}setupPlaybackManagerEventDelegation(){this.playbackManager.on("timeupdate",({audioTime:l,leadInProgress:t})=>{this.currentTime=l,this.eventBus.emit("timeChanged",{currentTime:l,leadInProgress:t})}),this.playbackManager.on("beatAudible",({bar:l,beat:t,isLeadIn:A,repeat:Q,time:n})=>{this.eventBus.emit("barChanged",{bar:l,beat:t,repeat:Q,time:n,isLeadIn:A})}),this.playbackManager.on("leadInStarted",({totalBeats:l,duration:t,bars:A})=>{this.eventBus.emit("leadInStarted",{bars:A,totalBeats:l,duration:t})}),this.playbackManager.on("leadInEnded",()=>{this.eventBus.emit("leadInCompleted")}),this.playbackManager.on("playbackStarted",()=>{this.isPlaying=!0,this.eventBus.emit("playbackStateChanged",{isPlaying:!0,currentTime:this.currentTime})}),this.playbackManager.on("playbackPaused",()=>{this.isPlaying=!1,this.eventBus.emit("playbackStateChanged",{isPlaying:!1,currentTime:this.currentTime})}),this.playbackManager.on("playbackStopped",()=>{this.isPlaying=!1,this.eventBus.emit("playbackStateChanged",{isPlaying:!1,currentTime:this.currentTime})}),this.playbackManager.on("playbackEnded",()=>{this.isPlaying=!1,this.eventBus.emit("playbackStateChanged",{isPlaying:!1,currentTime:this.currentTime}),this.eventBus.emit("songEnded",{finalTime:this.currentTime})})}setupLegacyParts(l){l&&l.forEach(t=>{const A=this.sanitizePartName(t.name);this.parts.set(A,{name:t.name,sanitizedName:A,volume:t.volume||.75,muted:!1,solo:!1})})}getCurrentToggleStates(){const l=this.getLeadInSettings();return{metronome:this.metronomeEnabled||!1,leadIn:this.leadInEnabled!==!1,leadInBars:l.bars}}updateToggleStates(l,t){this.setMetronomeEnabled(l),this.leadInEnabled=t}setMetronomeEnabled(l){this.metronomeEnabled=l,this.playbackManager.setMetronomeEnabled(l)}setLeadInBars(l){this.playbackManager.setLeadInBars(l)}setLeadInEnabled(l){this.leadInEnabled=l,this.playbackManager.setLeadInEnabled(l)}getLeadInSettings(){return this.playbackManager.getLeadInSettings()}play(l={}){const t=this.getCurrentToggleStates();l.leadInBars!==void 0&&this.setLeadInBars(l.leadInBars),this.playbackManager.play({leadIn:l.leadIn!==void 0?l.leadIn:t.leadIn,metronome:l.metronome!==void 0?l.metronome:t.metronome})}stop(){this.playbackManager.pause()}pause(){this.stop()}setTime(l){const t=this.snapTimeToBarStart(l);this.currentTime=Math.max(0,t),this.playbackManager.skipToTime(this.currentTime),this.emitTimeAndBarUpdates(this.currentTime)}getCurrentTime(){return this.playbackManager.getCurrentTime()}setBar(l,t=0){this.playbackManager.setBar(l,t);const A=this.getCurrentTime();this.currentTime=A,this.emitTimeAndBarUpdates(A)}goToPracticeMark(l){const t=this.practiceMarks[l];t!==void 0&&(this.setBar(t),this.eventBus.emit("practiceMarkChanged",{mark:l,bar:t}))}setPlaybackSpeed(l){this.playbackSpeed=Math.max(.25,Math.min(2,l)),this.playbackManager.setPlaybackSpeed(l,!1),this.eventBus.emit("speedChanged",{speed:this.playbackSpeed})}setMasterVolume(l){this.masterVolume=Math.max(0,Math.min(1,l)),this.masterGain&&(this.masterGain.gain.value=this.masterVolume),this.eventBus.emit("masterVolumeChanged",{volume:this.masterVolume})}getMasterVolume(){return this.masterVolume}setMetronomeVolume(l){const t=Math.max(0,Math.min(1,l));this.metronomeGain&&(this.metronomeGain.gain.value=t),this.metronomeVolume=t}getMetronomeVolume(){return this.metronomeVolume||.7}setPartVolume(l,t){const A=this.sanitizePartName(l),Q=this.parts.get(A);Q?(Q.volume=Math.max(0,Math.min(1,t)),this.updatePartAudioState(A),this.eventBus.emit("partVolumeChanged",{partName:l,volume:t})):(console.log(`Part not found: "${l}" (sanitized: "${A}")`),console.log("Available parts:",[...this.parts.keys()]))}setPartMuted(l,t){const A=this.sanitizePartName(l),Q=this.parts.get(A);Q&&(Q.muted=t,this.updatePartAudioState(A),this.eventBus.emit("partMutedChanged",{partName:l,muted:t}))}setPartSolo(l,t){const A=this.sanitizePartName(l),Q=this.parts.get(A);Q&&(Q.solo=t,this.updateAllPartsAudioState(),this.eventBus.emit("partSoloChanged",{partName:l,solo:t}))}isPartEffectivelyMuted(l){const t=this.sanitizePartName(l),A=this.parts.get(t);return!A||A.muted?!0:Array.from(this.parts.values()).some(n=>n.solo)&&!A.solo}updatePartAudioState(l){const t=this.parts.get(l),A=this.partGainNodes.get(l);if(t&&A){const Q=this.isPartEffectivelyMuted(t.name);A.gain.value=Q?0:t.volume}}updateAllPartsAudioState(){for(const[l]of this.parts)this.updatePartAudioState(l)}getParts(){return Array.from(this.parts.values())}getPartLevel(l){const t=this.sanitizePartName(l),A=this.partAnalyserNodes.get(t);if(!A)return 0;try{const Q=A.frequencyBinCount,n=new Uint8Array(Q);A.getByteFrequencyData(n);let a=0;for(let F=0;F<Q;F++){const d=n[F]/255;a+=d*d}const s=Math.sqrt(a/Q);return Math.min(1,Math.pow(s*2,.7))}catch(Q){return console.warn(`Failed to get level for part ${l}:`,Q),0}}playLeadIn(l=1){this.setLeadInBars(l),this.playbackManager.play({leadIn:!0,metronome:!0})}playStartingNotes(){console.log(this.parts);const l=[...this.parts.values()],t=l.some(Q=>Q.solo),A=l.filter(Q=>t?Q.solo:!Q.muted).map(Q=>Q.name);console.log(l,t,A),this.playbackManager.previewNextNotes({instrument:"piano",delayBetweenParts:.4,duration:.6,velocity:110,partOrder:A})}on(l,t){this.eventBus.on(l,t)}off(l,t){this.eventBus.off(l,t)}getBarFromTime(l){const t=this.playbackManager.midiPlayer.getBeatFromTime(l);return t?{bar:t.bar,beat:t.beat,repeat:t.repeat||0,time:t.time||l}:null}getTimeFromBar(l,t=0){return this.playbackManager.midiPlayer.getTimeFromBar(l,t)}allSoundsOff(){this.playbackManager&&this.playbackManager.allSoundsOff()}cleanup(){if(this.playbackManager)try{this.playbackManager.pause()}catch{}if(this.partGainNodes.forEach(l=>{try{l.disconnect()}catch{}}),this.partAnalyserNodes.forEach(l=>{try{l.disconnect()}catch{}}),this.playbackManager){try{this.playbackManager.destroy()}catch{}this.playbackManager=null}this.parts.clear(),this.partGainNodes.clear(),this.partAnalyserNodes.clear(),this.beats=[],this.practiceMarks={},this.songDuration=0,this.maxBar=0}destroy(){this.cleanup(),this.audioEngine&&this.audioEngine.destroy(),this.audioContext&&this.audioContext.state!=="closed"&&this.audioContext.close(),this.eventBus.all.clear()}}const N=new TQ;function It(){const e=et(),l=bt(),t=Qe(),A=({currentTime:S})=>{e.setCurrentTime(S)},Q=({isPlaying:S})=>{e.setPlaybackState(S),t.setTransportState(S?"playing":"stopped")},n=S=>{S&&(e.isLeadInActive?S.isLeadIn&&S.beat!==void 0&&e.setCurrentBar(null,S.beat,null):(e.setCurrentBar(S.bar,S.beat,S.repeat),t.updateLastBarPosition(S.bar)))},a=({speed:S})=>{e.setPlaybackSpeed(S)},s=({volume:S})=>{e.setMasterVolume(S)},F=({partName:S,volume:Y})=>{e.setPartVolume(S,Y)},d=({partName:S,muted:Y})=>{e.setPartMuted(S,Y)},o=({partName:S,solo:Y})=>{e.setPartSolo(S,Y)},c=({bars:S})=>{e.setLeadInActive(!0,S)},h=()=>{e.setLeadInActive(!1)},Z=()=>{e.setStartingNotesActive(!0)},U=()=>{e.setStartingNotesActive(!1)},m=({mark:S})=>{t.updateLastPracticeMarkUsed(S)},C=({parts:S})=>{e.initializeParts(S),l.setParts(S)},W=({finalTime:S})=>{e.setPlaybackState(!1),t.setTransportState("stopped"),console.log(`Song ended at time: ${S}`)},J=({duration:S})=>{console.log("Updating total duration in store to:",S),l.setTotalDuration(S)},X=({beats:S,practiceMarks:Y,maxBar:f})=>{console.log(`Updating music data store with ${S.length} beats and ${Object.keys(Y).length} practice marks`),l.updateBeats(S),l.practiceMarks=Y,l.maxBar=f},u=()=>{N.on("timeChanged",A),N.on("playbackStateChanged",Q),N.on("barChanged",n),N.on("speedChanged",a),N.on("masterVolumeChanged",s),N.on("partVolumeChanged",F),N.on("partMutedChanged",d),N.on("partSoloChanged",o),N.on("leadInStarted",c),N.on("leadInCompleted",h),N.on("startingNotesStarted",Z),N.on("startingNotesCompleted",U),N.on("practiceMarkChanged",m),N.on("initialized",C),N.on("songEnded",W),N.on("durationUpdated",J),N.on("musicDataExtracted",X)},G=()=>{N.off("timeChanged",A),N.off("playbackStateChanged",Q),N.off("barChanged",n),N.off("speedChanged",a),N.off("masterVolumeChanged",s),N.off("partVolumeChanged",F),N.off("partMutedChanged",d),N.off("partSoloChanged",o),N.off("leadInStarted",c),N.off("leadInCompleted",h),N.off("startingNotesStarted",Z),N.off("startingNotesCompleted",U),N.off("practiceMarkChanged",m),N.off("initialized",C),N.off("songEnded",W),N.off("durationUpdated",J),N.off("musicDataExtracted",X)};(()=>{B.watchEffect(()=>{const S=e.masterVolume;try{N.getMasterVolume()!==S&&N.setMasterVolume(S)}catch(Y){console.warn("Master volume sync skipped during initialization:",Y.message)}}),B.watchEffect(()=>{const S=e.metronomeVolume;try{N.getMetronomeVolume()!==S&&N.setMetronomeVolume(S)}catch(Y){console.warn("Metronome volume sync skipped during initialization:",Y.message)}})})();const w=async S=>{try{if(e.setLoaded(!1),u(),l.loadMusicData(S),S.midiData)await N.initialize(S);else if(await N.initialize({beats:S.beats,practiceMarks:S.marks||S.practiceMarks,parts:S.parts}),S.beats&&S.beats.length>0){const Y=S.beats[0];e.setCurrentBar(Y.bar,Y.beat,Y.repeat),N.setTime(Y.time)}N.updateToggleStates(e.metronomeEnabled,e.leadInEnabled),e.setLoaded(!0)}catch(Y){throw console.error("Failed to initialize audio engine:",Y),e.setLoaded(!1),Y}},Rl=()=>{N.play()},cl=()=>{N.stop()},Ul=()=>{N.pause()},z=S=>{N.setTime(S)},O=(S,Y=0)=>{N.setBar(S,Y)},H=S=>{N.goToPracticeMark(S)},x=S=>{N.setPlaybackSpeed(S)},j=S=>{N.setMasterVolume(S)},g=(S,Y)=>{N.setPartVolume(S,Y)},y=(S,Y)=>{N.setPartMuted(S,Y)},D=(S,Y)=>{N.setPartSolo(S,Y)},ll=(S=1)=>{N.playLeadIn(S)},el=()=>{N.playStartingNotes()},Cl=(S,Y=!0,f=0)=>{Y&&t.leadInEnabled?(O(S,f),ll(t.leadInBars)):(O(S,f),Rl())},Tl=(S,Y=!0)=>{const f=l.getBarForMark(S);f&&Cl(f,Y)},Xl=()=>{const S=!e.metronomeEnabled;return e.setMetronomeEnabled(S),N.setMetronomeEnabled(S),S},vl=()=>{const S=!e.leadInEnabled;return e.setLeadInEnabled(S),N.updateToggleStates(e.metronomeEnabled,S),S};return B.onUnmounted(()=>{G()}),{initialize:w,play:Rl,stop:cl,pause:Ul,setTime:z,setBar:O,goToPracticeMark:H,setPlaybackSpeed:x,setMasterVolume:j,setPartVolume:g,setPartMuted:y,setPartSolo:D,getPartLevel:S=>N.getPartLevel(S),playLeadIn:ll,playStartingNotes:el,toggleMetronome:Xl,toggleLeadIn:vl,setMetronomeEnabled:S=>{e.setMetronomeEnabled(S),N.setMetronomeEnabled(S)},playFromBar:Cl,playFromMark:Tl,audioState:e,musicData:l,playbackState:t,audioEngine:N}}const de=Ll({__name:"PartControl",props:B.mergeModels({name:{type:String,required:!0},level:{type:Number,default:0,validator:e=>e>=0&&e<=1}},{volume:{default:.75},volumeModifiers:{},mute:{default:!1},muteModifiers:{},solo:{default:!1},soloModifiers:{}}),emits:["update:volume","update:mute","update:solo"],setup(e){B.useCssVars(Z=>({"746d5fc3":d.value}));const l=e;et();const t=It(),A=B.useModel(e,"volume"),Q=B.useModel(e,"mute"),n=B.useModel(e,"solo");B.watch(A,Z=>{t.setPartVolume(l.name,Z)}),B.watch(Q,Z=>{t.setPartMuted(l.name,Z)}),B.watch(n,Z=>{t.setPartSolo(l.name,Z)});const a=B.useTemplateRef("el"),{width:s,height:F}=At(a),d=B.computed(()=>Math.min(s.value,F.value)+"px"),o=B.computed(()=>s.value>F.value?"mobile":s.value<60?"tablet":"desktop");let c=null;const h=B.ref(0);return B.onMounted(()=>{c=setInterval(()=>{if(Q.value)h.value=0;else try{h.value=t.getPartLevel(l.name)}catch{RA("randomLevelIndicators")?h.value=Math.random()*A.value:h.value=0}},16)}),B.onUnmounted(()=>{c&&(clearInterval(c),c=null)}),(Z,U)=>(B.openBlock(),B.createElementBlock("div",{ref_key:"el",ref:a,class:B.normalizeClass([o.value,"part"])},[B.createVNode(ee,{class:"tri",mute:Q.value,"onUpdate:mute":U[0]||(U[0]=m=>Q.value=m),solo:n.value,"onUpdate:solo":U[1]||(U[1]=m=>n.value=m)},null,8,["mute","solo"]),B.createVNode(ZA,{align:"left",class:"name"},{default:B.withCtx(()=>[B.createTextVNode(B.toDisplayString(e.name),1)]),_:1}),B.createVNode(Xt,{level:h.value,"show-level":!0,class:"vol",value:A.value,"onUpdate:value":U[2]||(U[2]=m=>A.value=m)},null,8,["level","value"])],2))}},[["__scopeId","data-v-9ca7f6e9"]]),LQ={class:"mark"},MQ={class:"rpt"},xQ={class:"beat-ind"},DQ={class:"beat"},KQ={key:1,class:"mark-grid-container"},zQ={class:"mark-grid"},vQ=["onClick"],Fe=Ll({__name:"BarInput",setup(e){B.useCssVars(x=>({b117cda6:W.value,"7cd7b1c8":J.value}));const l=B.useTemplateRef("el"),t=B.useTemplateRef("rpt"),{width:A,height:Q}=At(l),n=bt(),a=et(),s=It(),F=B.ref("1"),d=B.ref("A"),o=B.ref(0),c=B.ref(2),h=B.ref(!1),Z=B.ref(!1),U=B.ref(!1),m=B.ref(!0);let C=null;B.watch(()=>{var x;return((x=n.beats)==null?void 0:x.length)>0},x=>{console.log(x),x&&!h.value&&(F.value=a.currentBar.toString(),o.value=a.currentRepeat,c.value=n.getRepeatCountForBar(a.currentBar),G(a.currentBar),h.value=!0)}),B.watch(()=>a.currentBar,x=>{c.value=n.getRepeatCountForBar(x)}),B.watch(F,()=>{F.value=F.value.replace(/\D/g,""),F.value.length>3&&(F.value=F.value.slice(0,3))}),B.watch(()=>a.currentBar,x=>{F.value=x.toString(),G(x)}),B.watch(()=>a.currentBeat,()=>{m.value=!0,setTimeout(()=>{m.value=!1},50)}),B.watch(Z,()=>{Z.value&&H()});const W=B.computed(()=>Math.min(Q.value/2.25,A.value/4.5)+"px"),J=B.computed(()=>Math.min(A.value/15,Q.value/6.4)+"px"),X=B.computed(()=>Object.keys(n.practiceMarks).sort()),u=B.computed(()=>X.value.length>0);function G(x){const j=Object.keys(n.practiceMarks).filter(g=>n.practiceMarks[g]<=x).sort((g,y)=>n.practiceMarks[y]-n.practiceMarks[g]);j.length>0&&(d.value=j[0])}function T(){const x=parseInt(F.value);x&&x>0&&w(x)}function w(x){s.setBar(x,0)}function Rl(x,j){j&&j.stopPropagation(),d.value=x,Z.value=!1,s.goToPracticeMark(x)}function cl(){c.value>1&&(U.value=!0),a.currentRepeat<c.value&&s.setBar(a.currentBar,a.currentRepeat+1)}function Ul(){c.value>1&&(U.value=!0),a.currentRepeat>1&&s.setBar(a.currentBar,a.currentRepeat-1)}function z(x){u.value&&(x.stopPropagation(),U.value=!1,Z.value=!Z.value)}function O(x){var j,g;(j=l.value)!=null&&j.contains(x.target)||(Z.value=!1),(g=t.value)!=null&&g.contains(x.target)||(U.value=!1)}function H(){Z.value&&setTimeout(()=>{var g,y;const x=(g=l.value)==null?void 0:g.querySelector(".mark-grid"),j=(y=l.value)==null?void 0:y.querySelector(".mark-option.selected");if(j&&x){const D=x.getBoundingClientRect(),ll=j.getBoundingClientRect(),el=ll.left-D.left-D.width/2+ll.width/2;x.scrollLeft=Math.max(0,x.scrollLeft+el)}},50)}return B.onMounted(()=>{document.addEventListener("click",O),RA("beatAnimation")&&(C=setInterval(()=>{const x=a.currentBeat%n.timeSignature+1;a.setCurrentBar(a.currentBar,x,a.currentRepeat)},800))}),B.onUnmounted(()=>{document.removeEventListener("click",O),C&&(clearInterval(C),C=null)}),(x,j)=>(B.openBlock(),B.createElementBlock("div",{ref_key:"el",ref:l,class:B.normalizeClass(["outer",{pulse:m.value,"mark-selecting":Z.value}])},[j[6]||(j[6]=B.createElementVNode("div",{class:"frame"},null,-1)),B.createElementVNode("div",{class:B.normalizeClass(["mark-input",{empty:!d.value,edit:Z.value,disabled:!u.value}]),onClick:z},[B.createElementVNode("div",LQ,B.toDisplayString(u.value?d.value:"-"),1)],2),j[7]||(j[7]=B.createElementVNode("div",{class:"mark-title"},"Mark",-1)),Z.value?B.createCommentVNode("",!0):(B.openBlock(),B.createElementBlock(B.Fragment,{key:0},[B.withDirectives(B.createElementVNode("input",{type:"text",class:"bar-input","onUpdate:modelValue":j[0]||(j[0]=g=>F.value=g),inputmode:"decimal",pattern:"\\d*",onChange:T,onKeyup:B.withKeys(T,["enter"])},null,544),[[B.vModelText,F.value]]),j[3]||(j[3]=B.createElementVNode("div",{class:"bar-title"},"Bar",-1)),B.createElementVNode("div",{ref_key:"rpt",ref:t,class:B.normalizeClass(["rpt-input",{edit:U.value,available:c.value>1}])},[B.createElementVNode("div",MQ,B.toDisplayString(B.unref(a).currentRepeat||"-"),1),(B.openBlock(),B.createElementBlock("svg",{class:B.normalizeClass(["inc",{disabled:B.unref(a).currentRepeat>=c.value}]),viewBox:"0 -100 100 100",onClick:B.withModifiers(cl,["prevent"])},j[1]||(j[1]=[B.createElementVNode("path",{d:"m10-20 40-60 40 60H10Z"},null,-1)]),2)),(B.openBlock(),B.createElementBlock("svg",{class:B.normalizeClass(["dec",{disabled:B.unref(a).currentRepeat<=1}]),viewBox:"0 -100 100 100",onClick:B.withModifiers(Ul,["prevent"])},j[2]||(j[2]=[B.createElementVNode("path",{d:"m10-80 40 60 40-60H10Z"},null,-1)]),2))],2),j[4]||(j[4]=B.createElementVNode("div",{class:"rpt-title"},"Rpt",-1)),B.createElementVNode("div",xQ,[B.createElementVNode("div",DQ,B.toDisplayString(B.unref(a).currentBeat),1)]),j[5]||(j[5]=B.createElementVNode("div",{class:"beat-title"},"Beat",-1))],64)),Z.value?(B.openBlock(),B.createElementBlock("div",KQ,[B.createElementVNode("div",zQ,[(B.openBlock(!0),B.createElementBlock(B.Fragment,null,B.renderList(X.value,g=>(B.openBlock(),B.createElementBlock("div",{key:g,class:B.normalizeClass(["mark-option",{selected:g===d.value}]),onClick:y=>Rl(g,y)},B.toDisplayString(g),11,vQ))),128))])])):B.createCommentVNode("",!0)],2))}},[["__scopeId","data-v-6281baf2"]]),wQ={class:"title"},bA=Ll({__name:"BaseNumericInput",props:B.mergeModels({title:{type:String,required:!0},color:{type:String,default:"#336"},focusColor:{type:String,default:"#558"},textColor:{type:String,default:"#aad"},backgroundColor:{type:String,default:"#111117"},sliderMax:{type:Number,default:1},sliderMin:{type:Number,default:0},thumbLength:{type:Number,default:2},formatValue:{type:Function,default:e=>e.toString()},parseValue:{type:Function,default:e=>parseFloat(e)},validateInput:{type:Function,default:e=>e.replace(/[^0-9.]/g,"")},transformSliderToDisplay:{type:Function,default:e=>e},transformDisplayToSlider:{type:Function,default:e=>e},maxChars:{type:Number,default:null}},{value:{default:.5},valueModifiers:{}}),emits:["update:value"],setup(e){B.useCssVars(o=>({"0d0963e0":e.textColor,"4ad34b2f":e.backgroundColor,"02156786":e.color,"715a9528":F.value,"30d64f7d":s.value,b8fbe65e:e.focusColor}));const l=e,t=B.useTemplateRef("el"),{width:A,height:Q}=At(t),n=B.useModel(e,"value"),a=B.ref(l.formatValue(l.transformSliderToDisplay(n.value)));B.watch(n,()=>{const o=l.transformSliderToDisplay(n.value);a.value=l.formatValue(o)}),B.watch(a,()=>{a.value=l.validateInput(a.value),l.maxChars&&a.value.length>l.maxChars&&(a.value=a.value.slice(0,l.maxChars))});const s=B.computed(()=>Math.min(Q.value/2.25,A.value/2.2)+"px"),F=B.computed(()=>Math.min(A.value/3,Q.value/6.4)+"px");function d(){const o=l.parseValue(a.value),c=l.transformDisplayToSlider(o);n.value=Math.min(Math.max(c,l.sliderMin),l.sliderMax)}return(o,c)=>(B.openBlock(),B.createElementBlock("div",{class:"outer",ref_key:"el",ref:t},[c[2]||(c[2]=B.createElementVNode("div",{class:"frame"},null,-1)),B.withDirectives(B.createElementVNode("input",{type:"text",class:"input","onUpdate:modelValue":c[0]||(c[0]=h=>a.value=h),inputmode:"decimal",pattern:"\\d*",onChange:d},null,544),[[B.vModelText,a.value]]),B.createElementVNode("div",wQ,B.toDisplayString(e.title),1),B.createVNode(Xt,{class:"slider",value:n.value,"onUpdate:value":c[1]||(c[1]=h=>n.value=h),"thumb-length":e.thumbLength,max:e.sliderMax,min:e.sliderMin},null,8,["value","thumb-length","max","min"])],512))}},[["__scopeId","data-v-79c7a539"]]),Ue={__name:"SpeedInput",setup(e){const l=et(),t=It(),A=B.computed({get:()=>Math.log2(l.playbackSpeed)*.5+.5,set:d=>{const o=Math.pow(2,d*2-1);t.setPlaybackSpeed(o)}}),Q=d=>Math.floor(Math.pow(2,d*2-1)*100+.5)+"",n=d=>parseFloat(d),a=d=>d.replace(/\D/g,""),s=d=>d,F=d=>{const o=Math.log2(d/100)*.5+.5;return Math.min(Math.max(o,0),1)};return(d,o)=>(B.openBlock(),B.createBlock(bA,{value:A.value,"onUpdate:value":o[0]||(o[0]=c=>A.value=c),title:"Speed",color:"#336","text-color":"#aad","format-value":Q,"parse-value":n,"validate-input":a,"transform-slider-to-display":s,"transform-display-to-slider":F,"thumb-length":2,"max-chars":3},null,8,["value"]))}},Be={__name:"TimeInput",setup(e){const l=et(),t=bt(),A=It(),Q=d=>d.toFixed(1),n=d=>parseFloat(d),a=d=>d.replace(/[^0-9.]/g,""),s=d=>d,F=d=>d;return(d,o)=>(B.openBlock(),B.createBlock(bA,{value:B.unref(l).currentTime,"onUpdate:value":[o[0]||(o[0]=c=>B.unref(l).currentTime=c),B.unref(A).setTime],title:"Time",color:"#344","focus-color":"#556868","text-color":"#acc","background-color":"#111117","slider-max":B.unref(t).totalDuration,"slider-min":0,"format-value":Q,"parse-value":n,"validate-input":a,"transform-slider-to-display":s,"transform-display-to-slider":F,"thumb-length":2},null,8,["value","onUpdate:value","slider-max"]))}},HQ={class:"inner"},st=Ll({__name:"AudioButton",setup(e){const l=B.ref(!1),t=()=>l.value=!0,A=()=>l.value=!1;return(Q,n)=>(B.openBlock(),B.createElementBlock("div",{class:B.normalizeClass(["button-outer",{down:l.value}]),onPointerdown:t,onPointerup:A,onPointerleave:A},[B.createElementVNode("div",HQ,[B.renderSlot(Q.$slots,"default",{},void 0,!0)])],34))}},[["__scopeId","data-v-0d7af06e"]]),fQ={class:"outer"},jQ={class:"title"},PQ={class:"buttons"},OQ={class:"icon",viewBox:"0 0 48 48"},qQ=["d"],se=Ll({__name:"MixerControls",setup(e){const l=bt(),t=et(),A=It();function Q(){t.isPlaying?A.stop():A.play()}function n(){const X=t.currentTime,u=l.beats.filter(T=>T.beat===1).sort((T,w)=>T.time-w.time);let G=null;for(let T=u.length-1;T>=0;T--)if(u[T].time<X){G=u[T];break}G&&A.setBar(G.bar,G.repeat)}function a(){const X=t.currentTime,u=l.beats.filter(T=>T.beat===1).sort((T,w)=>T.time-w.time);let G=null;for(let T=0;T<u.length;T++)if(u[T].time>X){G=u[T];break}G&&A.setBar(G.bar,G.repeat)}function s(){A.playStartingNotes()}const F=B.computed(()=>t.metronomeEnabled),d=B.computed(()=>t.leadInEnabled),o=B.ref(!1),c=B.ref(null);function h(){o.value=!o.value,o.value&&A.audioEngine.initializeAudioSystem().catch(X=>{console.warn("Audio system pre-initialization failed:",X)})}function Z(){o.value=!1}function U(X){c.value&&!c.value.contains(X.target)&&Z()}B.onMounted(()=>{document.addEventListener("click",U)}),B.onUnmounted(()=>{document.removeEventListener("click",U)});function m(){A.toggleMetronome()}function C(){A.toggleLeadIn()}const W=B.computed({get:()=>t.masterVolume,set:X=>t.setMasterVolume(X)}),J=B.computed({get:()=>t.metronomeVolume,set:X=>t.setMetronomeVolume(X)});return(X,u)=>(B.openBlock(),B.createElementBlock("div",fQ,[B.createElementVNode("div",jQ,[B.createVNode(ZA,{class:"text",align:"centre"},{default:B.withCtx(()=>[B.createTextVNode(B.toDisplayString(B.unref(l).title),1)]),_:1}),B.createElementVNode("div",{class:"menu-container",ref_key:"menuRef",ref:c},[(B.openBlock(),B.createElementBlock("svg",{class:"menu",viewBox:"0 -960 960 960",onClick:h},u[2]||(u[2]=[B.createElementVNode("path",{d:"M120-240v-80h720v80H120Zm0-200v-80h720v80H120Zm0-200v-80h720v80H120Z"},null,-1)]))),o.value&&X.$slots.menu?(B.openBlock(),B.createElementBlock("div",{key:0,class:"dropdown-menu",onClick:Z},[B.renderSlot(X.$slots,"menu",{},void 0,!0)])):B.createCommentVNode("",!0)],512)]),B.createVNode(Xt,{class:"main",colour:"red",value:W.value,"onUpdate:value":u[0]||(u[0]=G=>W.value=G)},null,8,["value"]),B.createVNode(Xt,{class:"tick",colour:"blue",value:J.value,"onUpdate:value":u[1]||(u[1]=G=>J.value=G)},null,8,["value"]),u[8]||(u[8]=B.createElementVNode("div",{class:"main-t"},"Main",-1)),u[9]||(u[9]=B.createElementVNode("div",{class:"tick-t"},"Tick",-1)),B.createVNode(Fe,{class:"bar"}),B.createVNode(Be,{class:"time"}),B.createVNode(Ue,{class:"speed"}),B.createElementVNode("div",PQ,[B.createVNode(st,{class:"button",onClick:n},{default:B.withCtx(()=>u[3]||(u[3]=[B.createElementVNode("svg",{class:"icon",viewBox:"0 0 48 48"},[B.createElementVNode("path",{d:"M11 36V12h3v24Zm26 0L19.7 24 37 12Z"})],-1)])),_:1,__:[3]}),B.createVNode(st,{class:"button",onClick:Q},{default:B.withCtx(()=>[(B.openBlock(),B.createElementBlock("svg",OQ,[B.createElementVNode("path",{d:B.unref(t).isPlaying?"M27.4 35.4V12.6h8v22.8Zm-14.8 0V12.6h8.05v22.8Z":"M16 37.85v-28l22 14Z"},null,8,qQ)]))]),_:1}),B.createVNode(st,{class:"button",onClick:a},{default:B.withCtx(()=>u[4]||(u[4]=[B.createElementVNode("svg",{class:"icon",viewBox:"0 0 48 48"},[B.createElementVNode("path",{d:"M34 36V12h3v24Zm-23 0V12l17.3 12Z"})],-1)])),_:1,__:[4]}),B.createVNode(st,{class:"button",onClick:m},{default:B.withCtx(()=>[(B.openBlock(),B.createElementBlock("svg",{class:B.normalizeClass(["icon",F.value?"on":"off"]),viewBox:"-128 -128 768 768"},u[5]||(u[5]=[B.createElementVNode("path",{d:"m 463.84136,154.89339 c -6.42,-6.42 -16.83,-6.42 -23.251,0 -71.31197,70.35135 -136.61146,132.25426 -208.741,199.7 h -105.82 c 23.35495,-140.1063 67.13099,-217.59716 120.727,-318.357996 0.86,-0.803 2.209,-0.801 3.067,-10e-4 20.50653,37.383983 48.51152,88.812606 72.26194,147.190756 1.186,9.002 12.2214,17.4338 23.3242,11.71391 9.002,-1.186 11.1594,-12.2324 9.9724,-21.2344 -21.69905,-53.89113 -30.43965,-85.078342 -83.11454,-161.702266 -13.446,-12.55299965 -34.508,-12.55699965 -47.954,10e-4 C 126.80877,149.30021 96.099465,324.74626 77.091365,474.25139 c -2.829,21.473 13.907,40.535 35.543995,40.535 h 271.311 c 21.661,0 38.373,-19.087 35.544,-40.535 -8.26237,-52.34207 -14.88466,-100.7074 -24.7871,-157.02622 -6.40949,-11.78839 -8.3911,-14.9907 -17.4031,-13.8037 -9.002,1.186 -13.59751,8.0528 -12.41051,17.0548 l 5.66371,34.11712 h -83.159 c 64.35441,-63.86663 129.29308,-130.29894 176.448,-176.449 6.42,-6.42 6.42,-16.83 -10e-4,-23.251 z m -88.956,232.582 12.004,91.074 c 0.112,0.846 -0.148,1.701 -0.708,2.341 -0.566,0.645 -1.38,1.014 -2.235,1.014 h -271.311 c -0.855,0 -1.668,-0.369 -2.231,-1.011 -0.564,-0.643 -0.824,-1.499 -0.712,-2.347 l 12.003,-91.072 h 253.19 z"},null,-1)]),2))]),_:1}),B.createVNode(st,{class:"button",onClick:C},{default:B.withCtx(()=>[(B.openBlock(),B.createElementBlock("svg",{class:B.normalizeClass(["icon",d.value?"on":"off"]),viewBox:"-2 -2 28 28"},u[6]||(u[6]=[B.createElementVNode("path",{d:"m 8.9838564,1.5166215 v 2 h 5.9999996 v -2 z m 2.9999996,3 c -4.9699996,0 -8.9999996,4.0299999 -8.9999996,8.9999995 0,4.97 4.02,9 8.9999996,9 4.98,0 9,-4.03 9,-9 0,-2.12 -0.740703,-4.0693745 -1.970703,-5.6093745 l 1.419922,-1.421875 c -0.43,-0.51 -0.900156,-0.9882031 -1.410156,-1.4082031 l -1.419922,1.4199219 c -1.55,-1.24 -3.499141,-1.9804688 -5.619141,-1.9804688 z m -1.789062,4.7480469 6,4.4999996 -6,4.5 z"},null,-1)]),2))]),_:1}),B.createVNode(st,{class:"button",onClick:s},{default:B.withCtx(()=>u[7]||(u[7]=[B.createElementVNode("svg",{class:"icon",viewBox:"0 -960 960 960"},[B.createElementVNode("path",{d:"m 306.66667,-360 q -44,0 -75.33334,-31.33333 Q 200,-422.66667 200,-466.66667 q 0,-44 31.33333,-75.33333 31.33334,-31.33333 75.33334,-31.33333 15.33333,0 28.33333,3.66666 13,3.66667 25,11 V -840 h 160 v 106.66667 H 413.33333 v 266.66666 q 0,44 -31.33333,75.33334 Q 350.66667,-360 306.66667,-360 Z"}),B.createElementVNode("path",{d:"m 546.66667,-120 q -44,0 -75.33334,-31.33333 Q 440,-182.66667 440,-226.66667 q 0,-44 31.33333,-75.33333 31.33334,-31.33333 75.33334,-31.33333 15.33333,0 28.33333,3.66666 13,3.66667 25,11 V -600 h 160 v 106.66667 H 653.33333 v 266.66666 q 0,44 -31.33333,75.33334 Q 590.66667,-120 546.66667,-120 Z"})],-1)])),_:1,__:[7]})])]))}},[["__scopeId","data-v-0fb3932e"]]),_Q={class:"init-progress"},$Q={key:0,class:"progress-track"},ln={class:"message-container"},ie=Ll({__name:"InitializationProgress",props:{stage:{type:String,default:null},message:{type:String,default:""},progress:{type:Number,default:null},hasError:{type:Boolean,default:!1},errorMessage:{type:String,default:null}},setup(e){const l=e,t=B.computed(()=>l.progress!==null),A=B.computed(()=>l.progress===null?0:Math.max(0,Math.min(100,l.progress*100))),Q=B.computed(()=>l.hasError?l.errorMessage:l.message);return(n,a)=>(B.openBlock(),B.createElementBlock("div",_Q,[t.value?(B.openBlock(),B.createElementBlock("div",$Q,[B.createElementVNode("div",{class:"progress-fill",style:B.normalizeStyle({width:`${A.value}%`})},null,4)])):B.createCommentVNode("",!0),B.createElementVNode("div",ln,[B.createElementVNode("div",{class:B.normalizeClass(["message",{error:e.hasError}])},B.toDisplayString(Q.value),3)])]))}},[["__scopeId","data-v-a9ed87f2"]]),oe=jl.defineStore("initialization",{state:()=>({currentStage:null,message:"",progress:null,isInitializing:!1,isReady:!1,hasError:!1,errorMessage:null}),actions:{updateProgress(e){this.currentStage=e.stage,this.message=e.message,this.progress=e.progress??null,e.stage==="ready"?(this.isInitializing=!1,this.isReady=!0):(this.isInitializing=!0,this.isReady=!1),this.hasError=!1,this.errorMessage=null},setError(e){this.hasError=!0,this.errorMessage=e,this.isInitializing=!1,this.isReady=!1},reset(){this.currentStage=null,this.message="",this.progress=null,this.isInitializing=!1,this.isReady=!1,this.hasError=!1,this.errorMessage=null},initializeListeners(){N.on("initProgress",e=>{this.updateProgress(e)})}},getters:{shouldShowProgress:e=>e.isInitializing||e.hasError,hasProgressBar:e=>e.progress!==null}}),tn={class:"container"},An={class:"panel"},en={key:0,class:"blur"},ce=40,Ze=40,Re=100,Qn=50,he=400,Ve=570,me=570,nn=350,an=330,dn=360,Fn=360,Un=Ll({__name:"MixerLayout",props:{showInitProgress:{type:Boolean,default:!0}},setup(e){B.useCssVars(h=>({"53ffcc08":d.value,"53f8f922":o.value,"2b0b3d37":c.value}));const l=e,t=bt(),A=et(),Q=oe();B.onMounted(()=>{Q.initializeListeners()});const n=B.useTemplateRef("container"),{width:a}=At(n),s=B.computed(()=>A.isLoaded),F=B.computed(()=>{const h=a.value,Z=t.parts.length;return h<640||h<ce*Z+he?0:h<Ze*Z+Ve?1:h<Re*Z+me?2:3}),d=B.computed(()=>{switch(F.value){case 0:return`${nn}px `+`${Qn}px `.repeat(t.parts.length);case 1:return`${an}px`;case 2:return`${dn}px`;default:return`${Fn}px`}}),o=B.computed(()=>{switch(F.value){case 0:return"100vw";case 1:return`${ce}px `.repeat(t.parts.length)+`${he}px`;case 2:return`${Ze}px `.repeat(t.parts.length)+`${Ve}px`;default:return`${Re}px `.repeat(t.parts.length)+`${me}px`}}),c=B.computed(()=>{const h=[...t.parts.keys()];return F.value>0?'"'+h.map(Z=>"part"+Z).join(" ")+' controls"':'"controls" '+h.map(Z=>'"part'+Z+'"').join(" ")});return(h,Z)=>(B.openBlock(),B.createElementBlock("div",{class:"outer",ref_key:"container",ref:n},[B.createElementVNode("div",tn,[B.createElementVNode("div",An,[(B.openBlock(!0),B.createElementBlock(B.Fragment,null,B.renderList(B.unref(t).parts,(U,m)=>(B.openBlock(),B.createBlock(de,{key:U.name,class:B.normalizeClass("part"+m),name:U.name,volume:U.volume,"onUpdate:volume":C=>U.volume=C,solo:U.solo,"onUpdate:solo":C=>U.solo=C,mute:U.mute,"onUpdate:mute":C=>U.mute=C,ref_for:!0,ref:"parts"},null,8,["class","name","volume","onUpdate:volume","solo","onUpdate:solo","mute","onUpdate:mute"]))),128)),B.createVNode(se,{title:B.unref(t).title,class:"controls"},{menu:B.withCtx(()=>[B.renderSlot(h.$slots,"menu",{},void 0,!0)]),_:3},8,["title"]),s.value?B.createCommentVNode("",!0):(B.openBlock(),B.createElementBlock("div",en)),l.showInitProgress&&B.unref(Q).shouldShowProgress?(B.openBlock(),B.createBlock(ie,{key:1,stage:B.unref(Q).currentStage,message:B.unref(Q).message,progress:B.unref(Q).progress,"has-error":B.unref(Q).hasError,"error-message":B.unref(Q).errorMessage},null,8,["stage","message","progress","has-error","error-message"])):B.createCommentVNode("",!0)])])],512))}},[["__scopeId","data-v-cd7cb6a9"]]),Bn={class:"outer"},sn={class:"mid"},on={class:"inner"},cn={key:0,class:"content"},Zn=Ll({__name:"Placeholder",props:{colour:{type:String,default:"red"},text:{type:String,default:""}},setup(e){return B.useCssVars(l=>({"66bea586":e.colour})),(l,t)=>(B.openBlock(),B.createElementBlock("div",Bn,[B.createElementVNode("div",sn,[B.createElementVNode("div",on,[e.text||l.$slots.default?(B.openBlock(),B.createElementBlock("div",cn,[B.createTextVNode(B.toDisplayString(e.text)+" ",1),B.renderSlot(l.$slots,"default",{},void 0,!0)])):B.createCommentVNode("",!0)])])]))}},[["__scopeId","data-v-dff76c48"]]);class Ee{constructor(){this.eventBus=ne(),this.currentTime=0,this.isPlaying=!1,this.playbackSpeed=1,this.masterVolume=.75,this.parts=new Map,this.playbackTimer=null,this.lastTimestamp=0}initialize(l){if(this.musicData=l,this.beats=l.beats||[],this.practiceMarks=l.practiceMarks||{},this.beats.length>0){const t=this.beats[this.beats.length-1],A=t.tempo>0?60/t.tempo:.75;this.songDuration=t.time+A,this.maxBar=Math.max(...this.beats.map(Q=>Q.bar))}else this.songDuration=0,this.maxBar=0;l.parts&&l.parts.forEach(t=>{this.parts.set(t.name,{name:t.name,volume:t.volume||.75,muted:!1})}),this.eventBus.emit("initialized",{parts:Array.from(this.parts.values())})}play(){this.isPlaying||(this.isPlaying=!0,this.lastTimestamp=performance.now(),this.startPlaybackTimer(),this.eventBus.emit("playbackStateChanged",{isPlaying:!0,currentTime:this.currentTime}))}stop(){this.isPlaying&&(this.isPlaying=!1,this.stopPlaybackTimer(),this.eventBus.emit("playbackStateChanged",{isPlaying:!1,currentTime:this.currentTime}))}pause(){this.stop()}setTime(l){this.currentTime=Math.max(0,l),this.eventBus.emit("timeChanged",{currentTime:this.currentTime});const t=this.getBarFromTime(this.currentTime);t&&this.eventBus.emit("barChanged",t)}getCurrentTime(){return this.currentTime}setBar(l,t=0){const A=this.getTimeFromBar(l,t);A!==null&&this.setTime(A)}goToPracticeMark(l){const t=this.practiceMarks[l];t!==void 0&&(this.setBar(t),this.eventBus.emit("practiceMarkChanged",{mark:l,bar:t}))}setPlaybackSpeed(l){this.playbackSpeed=Math.max(.25,Math.min(2,l)),this.eventBus.emit("speedChanged",{speed:this.playbackSpeed})}getPlaybackSpeed(){return this.playbackSpeed}setMasterVolume(l){this.masterVolume=Math.max(0,Math.min(1,l)),this.eventBus.emit("masterVolumeChanged",{volume:this.masterVolume})}getMasterVolume(){return this.masterVolume}setPartVolume(l,t){const A=this.parts.get(l);A&&(A.volume=Math.max(0,Math.min(1,t)),this.eventBus.emit("partVolumeChanged",{partName:l,volume:A.volume}))}setPartMuted(l,t){const A=this.parts.get(l);A&&(A.muted=t,this.eventBus.emit("partMutedChanged",{partName:l,muted:t}))}getParts(){return Array.from(this.parts.values())}playLeadIn(l=1){this.eventBus.emit("leadInStarted",{bars:l}),setTimeout(()=>{this.eventBus.emit("leadInCompleted")},1e3*l)}playStartingNotes(){this.eventBus.emit("startingNotesStarted"),setTimeout(()=>{this.eventBus.emit("startingNotesCompleted")},2e3)}on(l,t){this.eventBus.on(l,t)}off(l,t){this.eventBus.off(l,t)}startPlaybackTimer(){const l=()=>{if(!this.isPlaying)return;const t=performance.now(),A=(t-this.lastTimestamp)/1e3;if(this.lastTimestamp=t,this.currentTime+=A*this.playbackSpeed,this.songDuration>0&&this.currentTime>=this.songDuration){this.stop(),this.eventBus.emit("songEnded",{finalTime:this.currentTime});return}this.eventBus.emit("timeChanged",{currentTime:this.currentTime});const Q=this.getBarFromTime(this.currentTime);if(Q&&(this.eventBus.emit("barChanged",Q),this.maxBar>0&&Q.bar>this.maxBar)){this.stop(),this.eventBus.emit("songEnded",{finalTime:this.currentTime});return}this.playbackTimer=requestAnimationFrame(l)};this.playbackTimer=requestAnimationFrame(l)}stopPlaybackTimer(){this.playbackTimer&&(cancelAnimationFrame(this.playbackTimer),this.playbackTimer=null)}getBarFromTime(l){if(!this.beats||this.beats.length===0)return null;let t=null;for(let A=this.beats.length-1;A>=0;A--)if(this.beats[A].time<=l){t=this.beats[A];break}return t?{bar:t.bar,beat:t.beat,repeat:t.repeat,time:t.time}:null}getTimeFromBar(l,t=0){if(!this.beats||this.beats.length===0)return null;let A=this.beats.find(Q=>Q.bar===l&&Q.beat===1&&Q.repeat===t);return A||(A=this.beats.find(Q=>Q.bar===l&&Q.beat===1)),A?A.time:null}destroy(){this.stop(),this.eventBus.all.clear(),this.parts.clear()}}new Ee;var Rn=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(l,t)=>(typeof require<"u"?require:l)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),nl=class extends Uint8Array{constructor(){super(...arguments);R(this,"currentIndex",0)}slice(l,t){const A=super.slice(l,t);return A.currentIndex=0,A}};function be(e,l=e.length,t=0){let A="";for(let Q=0;Q<l;Q++){const n=e[t+Q];if(n===0)return A;A+=String.fromCharCode(n)}return A}function Qt(e,l){const t=e.currentIndex;return e.currentIndex+=l,be(e,l,t)}function Wt(e,l=!1,t=!1){let A=e.length;l&&A++,t&&A%2!==0&&A++;const Q=new nl(A);return El(Q,e),Q}function El(e,l,t=0){t>0&&l.length>t&&(l=l.slice(0,t));for(let A=0;A<l.length;A++)e[e.currentIndex++]=l.charCodeAt(A);if(t>l.length)for(let A=0;A<t-l.length;A++)e[e.currentIndex++]=0;return e}function P(e,l){const t=hn(e,l,e.currentIndex);return e.currentIndex+=l,t}function hn(e,l,t=0){let A=0;for(let Q=0;Q<l;Q++)A|=e[t+Q]<<Q*8;return A>>>0}function qt(e,l,t){for(let A=0;A<t;A++)e[e.currentIndex++]=l>>A*8&255}function K(e,l){e[e.currentIndex++]=l&255,e[e.currentIndex++]=l>>8}function Al(e,l){qt(e,l,4)}function Vn(e,l){const t=l<<8|e;return t>32767?t-65536:t}var Ie=class{constructor(e,l,t){R(this,"header");R(this,"size");R(this,"data");this.header=e,this.size=l,this.data=t}};function Ml(e,l=!0,t=!1){const A=Qt(e,4);let Q=P(e,4);A===""&&(Q=0);let n;return l?n=e.slice(e.currentIndex,e.currentIndex+Q):n=new nl(0),(l||t)&&(e.currentIndex+=Q,Q%2!==0&&e.currentIndex++),new Ie(A,Q,n)}function Fl(e,l,t=!1,A=!1){if(e.length!==4)throw new Error(`Invalid header length: ${e}`);let Q=8,n=e,a=l.length;t&&a++;let s=a;A&&(Q+=4,s+=4,n="LIST");let F=Q+a;F%2!==0&&F++;const d=new nl(F);return El(d,n),Al(d,s),A&&El(d,e),d.set(l,Q),d}function Nl(e,l,t=!1){let A=8,Q=e;const n=l.reduce((d,o)=>o.length+d,0);let a=n;t&&(A+=4,a+=4,Q="LIST");let s=A+n;s%2!==0&&s++;const F=new nl(s);return El(F,Q),Al(F,a),t&&El(F,e),l.forEach(d=>{F.set(d,A),A+=d.length}),F}function nt(e,l){return e.find(t=>t.header!=="LIST"?!1:(t.data.currentIndex=4,be(t.data,4)===l))}function mn(e,l){return{...l,...e??{}}}function En(e,l,t=0){let A=0;for(let Q=0;Q<l;Q++)A=A<<8|e[t+Q];return A>>>0}function bn(e){let l=0;for(;e;){const t=e[e.currentIndex++];if(l=l<<7|t&127,t>>7!==1)break}return l}var b={warn:"color: orange;",unrecognized:"color: red;",info:"color: aqua;",recognized:"color: lime",value:"color: yellow; background-color: black;"},We;(()=>{var e=Uint8Array,l=Uint16Array,t=Int32Array,A=new e([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Q=new e([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),n=new e([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),a=function(g,y){for(var D=new l(31),ll=0;ll<31;++ll)D[ll]=y+=1<<g[ll-1];for(var el=new t(D[30]),ll=1;ll<30;++ll)for(var Cl=D[ll];Cl<D[ll+1];++Cl)el[Cl]=Cl-D[ll]<<5|ll;return{b:D,r:el}},s=a(A,2),F=s.b,d=s.r;F[28]=258,d[258]=28;var o=a(Q,0),c=o.b,h=new l(32768);for(W=0;W<32768;++W)Z=(W&43690)>>1|(W&21845)<<1,Z=(Z&52428)>>2|(Z&13107)<<2,Z=(Z&61680)>>4|(Z&3855)<<4,h[W]=((Z&65280)>>8|(Z&255)<<8)>>1;var Z,W,U=function(g,y,D){for(var ll=g.length,el=0,Cl=new l(y);el<ll;++el)g[el]&&++Cl[g[el]-1];var Tl=new l(y);for(el=1;el<y;++el)Tl[el]=Tl[el-1]+Cl[el-1]<<1;var Xl;{Xl=new l(1<<y);var vl=15-y;for(el=0;el<ll;++el)if(g[el])for(var S=el<<4|g[el],Y=y-g[el],f=Tl[g[el]-1]++<<Y,Bl=f|(1<<Y)-1;f<=Bl;++f)Xl[h[f]>>vl]=S}return Xl},m=new e(288);for(W=0;W<144;++W)m[W]=8;var W;for(W=144;W<256;++W)m[W]=9;var W;for(W=256;W<280;++W)m[W]=7;var W;for(W=280;W<288;++W)m[W]=8;var W,C=new e(32);for(W=0;W<32;++W)C[W]=5;var W,J=U(m,9),X=U(C,5),u=function(g){for(var y=g[0],D=1;D<g.length;++D)g[D]>y&&(y=g[D]);return y},G=function(g,y,D){var ll=y/8|0;return(g[ll]|g[ll+1]<<8)>>(y&7)&D},T=function(g,y){var D=y/8|0;return(g[D]|g[D+1]<<8|g[D+2]<<16)>>(y&7)},w=function(g){return(g+7)/8|0},Rl=function(g,y,D){return(D==null||D>g.length)&&(D=g.length),new e(g.subarray(y,D))},cl=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Ul=function(g,y,D){var ll=new Error(y||cl[g]);if(ll.code=g,Error.captureStackTrace&&Error.captureStackTrace(ll,Ul),!D)throw ll;return ll},z=function(g,y,D,ll){var el=g.length,Cl=ll?ll.length:0;if(!el||y.f&&!y.l)return D||new e(0);var Tl=!D,Xl=Tl||y.i!=2,vl=y.i;Tl&&(D=new e(el*3));var S=function(Jl){var Wl=D.length;if(Jl>Wl){var yl=new e(Math.max(Wl*2,Jl));yl.set(D),D=yl}},Y=y.f||0,f=y.p||0,Bl=y.b||0,wl=y.l,Rt=y.d,ht=y.m,Bt=y.n,Gt=el*8;do{if(!wl){Y=G(g,f,1);var xt=G(g,f+1,3);if(f+=3,xt)if(xt==1)wl=J,Rt=X,ht=9,Bt=5;else if(xt==2){var Dt=G(g,f,31)+257,FA=G(g,f+10,15)+4,Hl=Dt+G(g,f+5,31)+1;f+=14;for(var Kl=new e(Hl),Jt=new e(19),rl=0;rl<FA;++rl)Jt[n[rl]]=G(g,f+rl*3,7);f+=FA*3;for(var UA=u(Jt),BA=(1<<UA)-1,DA=U(Jt,UA),rl=0;rl<Hl;){var Kt=DA[G(g,f,BA)];f+=Kt&15;var Yl=Kt>>4;if(Yl<16)Kl[rl++]=Yl;else{var lt=0,tt=0;for(Yl==16?(tt=3+G(g,f,3),f+=2,lt=Kl[rl-1]):Yl==17?(tt=3+G(g,f,7),f+=3):Yl==18&&(tt=11+G(g,f,127),f+=7);tt--;)Kl[rl++]=lt}}var gt=Kl.subarray(0,Dt),Gl=Kl.subarray(Dt);ht=u(gt),Bt=u(Gl),wl=U(gt,ht),Rt=U(Gl,Bt)}else Ul(1);else{var Yl=w(f)+4,E=g[Yl-4]|g[Yl-3]<<8,V=Yl+E;if(V>el){vl&&Ul(0);break}Xl&&S(Bl+E),D.set(g.subarray(Yl,V),Bl),y.b=Bl+=E,y.p=f=V*8,y.f=Y;continue}if(f>Gt){vl&&Ul(0);break}}Xl&&S(Bl+131072);for(var r=(1<<ht)-1,L=(1<<Bt)-1,q=f;;q=f){var lt=wl[T(g,f)&r],Ql=lt>>4;if(f+=lt&15,f>Gt){vl&&Ul(0);break}if(lt||Ul(2),Ql<256)D[Bl++]=Ql;else if(Ql==256){q=f,wl=null;break}else{var ol=Ql-254;if(Ql>264){var rl=Ql-257,M=A[rl];ol=G(g,f,(1<<M)-1)+F[rl],f+=M}var Sl=Rt[T(g,f)&L],ml=Sl>>4;Sl||Ul(3),f+=Sl&15;var Gl=c[ml];if(ml>3){var M=Q[ml];Gl+=T(g,f)&(1<<M)-1,f+=M}if(f>Gt){vl&&Ul(0);break}Xl&&S(Bl+131072);var tl=Bl+ol;if(Bl<Gl){var al=Cl-Gl,dl=Math.min(Gl,tl);for(al+Bl<0&&Ul(3);Bl<dl;++Bl)D[Bl]=ll[al+Bl]}for(;Bl<tl;++Bl)D[Bl]=D[Bl-Gl]}}y.l=wl,y.p=q,y.b=Bl,y.f=Y,wl&&(Y=1,y.m=ht,y.d=Rt,y.n=Bt)}while(!Y);return Bl!=D.length&&Tl?Rl(D,0,Bl):D.subarray(0,Bl)},O=new e(0);function H(g,y){return z(g,{i:2},y&&y.out,y&&y.dictionary)}var x=typeof TextDecoder<"u"&&new TextDecoder,j=0;try{x.decode(O,{stream:!0}),j=1}catch{}We=H})();var In=We;function $(...e){}function Zl(...e){console.warn(...e)}function at(...e){}function xl(...e){}function Wn(){}var rt={consoleColors:b,SpessaSynthInfo:$,SpessaSynthWarn:Zl,SpessaSynthGroupCollapsed:xl,SpessaSynthGroup:at,SpessaSynthGroupEnd:Wn,readBytesAsUintBigEndian:En,readLittleEndian:P,readBytesAsString:Qt,readVariableLengthQuantity:bn,inflateSync:In},dt={noteOff:128,noteOn:144,polyPressure:160,controllerChange:176,programChange:192,channelPressure:208,pitchWheel:224,systemExclusive:240},v={bankSelect:0,modulationWheel:1,breathController:2,undefinedCC3:3,footController:4,portamentoTime:5,dataEntryMSB:6,mainVolume:7,balance:8,undefinedCC9:9,pan:10,expressionController:11,effectControl1:12,effectControl2:13,undefinedCC14:14,undefinedCC15:15,generalPurposeController1:16,generalPurposeController2:17,generalPurposeController3:18,generalPurposeController4:19,undefinedCC20:20,undefinedCC21:21,undefinedCC22:22,undefinedCC23:23,undefinedCC24:24,undefinedCC25:25,undefinedCC26:26,undefinedCC27:27,undefinedCC28:28,undefinedCC29:29,undefinedCC30:30,undefinedCC31:31,bankSelectLSB:32,modulationWheelLSB:33,breathControllerLSB:34,undefinedCC3LSB:35,footControllerLSB:36,portamentoTimeLSB:37,dataEntryLSB:38,mainVolumeLSB:39,balanceLSB:40,undefinedCC9LSB:41,panLSB:42,expressionControllerLSB:43,effectControl1LSB:44,effectControl2LSB:45,undefinedCC14LSB:46,undefinedCC15LSB:47,undefinedCC16LSB:48,undefinedCC17LSB:49,undefinedCC18LSB:50,undefinedCC19LSB:51,undefinedCC20LSB:52,undefinedCC21LSB:53,undefinedCC22LSB:54,undefinedCC23LSB:55,undefinedCC24LSB:56,undefinedCC25LSB:57,undefinedCC26LSB:58,undefinedCC27LSB:59,undefinedCC28LSB:60,undefinedCC29LSB:61,undefinedCC30LSB:62,undefinedCC31LSB:63,sustainPedal:64,portamentoOnOff:65,sostenutoPedal:66,softPedal:67,legatoFootswitch:68,hold2Pedal:69,soundVariation:70,filterResonance:71,releaseTime:72,attackTime:73,brightness:74,decayTime:75,vibratoRate:76,vibratoDepth:77,vibratoDelay:78,soundController10:79,generalPurposeController5:80,generalPurposeController6:81,generalPurposeController7:82,generalPurposeController8:83,portamentoControl:84,undefinedCC85:85,undefinedCC86:86,undefinedCC87:87,undefinedCC88:88,undefinedCC89:89,undefinedCC90:90,reverbDepth:91,tremoloDepth:92,chorusDepth:93,detuneDepth:94,phaserDepth:95,dataIncrement:96,dataDecrement:97,nonRegisteredParameterLSB:98,nonRegisteredParameterMSB:99,registeredParameterLSB:100,registeredParameterMSB:101,undefinedCC102LSB:102,undefinedCC103LSB:103,undefinedCC104LSB:104,undefinedCC105LSB:105,undefinedCC106LSB:106,undefinedCC107LSB:107,undefinedCC108LSB:108,undefinedCC109LSB:109,undefinedCC110LSB:110,undefinedCC111LSB:111,undefinedCC112LSB:112,undefinedCC113LSB:113,undefinedCC114LSB:114,undefinedCC115LSB:115,undefinedCC116LSB:116,undefinedCC117LSB:117,undefinedCC118LSB:118,undefinedCC119LSB:119,allSoundOff:120,resetAllControllers:121,localControlOnOff:122,allNotesOff:123,omniModeOff:124,omniModeOn:125,monoModeOn:126,polyModeOn:127},rn=350,re=9,Sn="gs",it=-1,un=1,Cn=64,Se=121,Ft=class{static getDefaultBank(e){return e==="gm2"?Se:0}static getDrumBank(e){switch(e){default:throw new Error(`${e} doesn't have a bank MSB for drums.`);case"gm2":return 120;case"xg":return 127}}static isXGDrums(e){return e===120||e===126||e===127}static isValidXGMSB(e){return this.isXGDrums(e)||e===Cn||e===Se}static isSystemXG(e){return e==="gm2"||e==="xg"}static addBankOffset(e,l,t=!0){return this.isXGDrums(e)&&t?e:Math.min(e+l,127)}static subtrackBankOffset(e,l,t=!0){return this.isXGDrums(e)&&t?e:Math.max(0,e-l)}},St=class aQ{static toMIDIString(l){return l.isGMGSDrum?`DRUM:${l.program}`:`${l.bankLSB}:${l.bankMSB}:${l.program}`}static fromMIDIString(l){const t=l.split(":");if(t.length>3||t.length<2)throw new Error("Invalid MIDI string:");return l.startsWith("DRUM")?{bankMSB:0,bankLSB:0,program:parseInt(t[1]),isGMGSDrum:!0}:{bankLSB:parseInt(t[0]),bankMSB:parseInt(t[1]),program:parseInt(t[2]),isGMGSDrum:!1}}static toNamedMIDIString(l){return`${aQ.toMIDIString(l)} ${l.name}`}static matches(l,t){return l.isGMGSDrum||t.isGMGSDrum?l.isGMGSDrum===t.isGMGSDrum&&l.program===t.program:l.program===t.program&&l.bankLSB===t.bankLSB&&l.bankMSB===t.bankMSB}static fromNamedMIDIString(l){const t=l.indexOf(" ");if(t<0)throw new Error(`Invalid named MIDI string: ${l}`);const A=this.fromMIDIString(l.substring(0,t)),Q=l.substring(t+1);return{...A,name:Q}}static sorter(l,t){return l.program!==t.program?l.program-t.program:l.isGMGSDrum&&!t.isGMGSDrum?1:!l.isGMGSDrum&&t.isGMGSDrum?-1:l.bankMSB!==t.bankMSB?l.bankMSB-t.bankMSB:l.bankLSB-t.bankLSB}},Gn={hermite:2},ue={channelTuning:0,channelTransposeFine:1,modulationMultiplier:2,masterTuning:3,channelTuningSemitones:4,channelKeyShift:5,sf2NPRNGeneratorLSB:6},Jn=new Map([["domingo","Sunday"],["segunda-feira","Monday"],["terça-feira","Tuesday"],["quarta-feira","Wednesday"],["quinta-feira","Thursday"],["sexta-feira","Friday"],["sábado","Saturday"],["janeiro","January"],["fevereiro","February"],["março","March"],["abril","April"],["maio","May"],["junho","June"],["julho","July"],["agosto","August"],["setembro","September"],["outubro","October"],["novembro","November"],["dezembro","December"]]),gn=[Jn];function yn(e){for(const l of gn){let t=e;l.forEach((Q,n)=>{const a=new RegExp(n,"gi");t=t.replace(a,Q)});const A=new Date(t);if(!isNaN(A.getTime()))return A}}function pn(e){const l=/^(\d{2})\.(\d{2})\.(\d{4})$/.exec(e);if(l){const t=parseInt(l[1]),A=parseInt(l[2])-1,Q=parseInt(l[3]),n=new Date(Q,A,t);if(!isNaN(n.getTime()))return n}}function Nn(e){const l=/^(\d{1,2})\s{1,2}(\d{1,2})\s{1,2}(\d{2})$/.exec(e);if(l){const t=l[1],A=(parseInt(l[2])+1).toString(),Q=l[3],n=new Date(`${A}/${t}/${Q}`);if(!isNaN(n.getTime()))return n}}function Xn(e){const t=/\b\d{4}\b/.exec(e);return t?new Date(t[0]):void 0}function Yn(e){if(e=e.trim(),e.length<1)return new Date;const l=e.replace(/\b(\d+)(st|nd|rd|th)\b/g,"$1"),t=new Date(l);if(isNaN(t.getTime())){const A=yn(e);if(A)return A;const Q=pn(e);if(Q)return Q;const n=Nn(e);if(n)return n;const a=Xn(e);return a||(Zl(`Invalid date: "${e}". Replacing with the current date!`),new Date)}return t}var i={INVALID:-1,startAddrsOffset:0,endAddrOffset:1,startloopAddrsOffset:2,endloopAddrsOffset:3,startAddrsCoarseOffset:4,modLfoToPitch:5,vibLfoToPitch:6,modEnvToPitch:7,initialFilterFc:8,initialFilterQ:9,modLfoToFilterFc:10,modEnvToFilterFc:11,endAddrsCoarseOffset:12,modLfoToVolume:13,unused1:14,chorusEffectsSend:15,reverbEffectsSend:16,pan:17,unused2:18,unused3:19,unused4:20,delayModLFO:21,freqModLFO:22,delayVibLFO:23,freqVibLFO:24,delayModEnv:25,attackModEnv:26,holdModEnv:27,decayModEnv:28,sustainModEnv:29,releaseModEnv:30,keyNumToModEnvHold:31,keyNumToModEnvDecay:32,delayVolEnv:33,attackVolEnv:34,holdVolEnv:35,decayVolEnv:36,sustainVolEnv:37,releaseVolEnv:38,keyNumToVolEnvHold:39,keyNumToVolEnvDecay:40,instrument:41,reserved1:42,keyRange:43,velRange:44,startloopAddrsCoarseOffset:45,keyNum:46,velocity:47,initialAttenuation:48,reserved2:49,endloopAddrsCoarseOffset:50,coarseTune:51,fineTune:52,sampleID:53,sampleModes:54,reserved3:55,scaleTuning:56,exclusiveClass:57,overridingRootKey:58,unused5:59,endOper:60,vibLfoToVolume:61,vibLfoToFilterFc:62};Object.keys(i).length;var kn=Math.max(...Object.values(i)),k=[];k[i.startAddrsOffset]={min:0,max:32768,def:0,nrpn:1},k[i.endAddrOffset]={min:-32768,max:32768,def:0,nrpn:1},k[i.startloopAddrsOffset]={min:-32768,max:32768,def:0,nrpn:1},k[i.endloopAddrsOffset]={min:-32768,max:32768,def:0,nrpn:1},k[i.startAddrsCoarseOffset]={min:0,max:32768,def:0,nrpn:1},k[i.modLfoToPitch]={min:-12e3,max:12e3,def:0,nrpn:2},k[i.vibLfoToPitch]={min:-12e3,max:12e3,def:0,nrpn:2},k[i.modEnvToPitch]={min:-12e3,max:12e3,def:0,nrpn:2},k[i.initialFilterFc]={min:1500,max:13500,def:13500,nrpn:2},k[i.initialFilterQ]={min:0,max:960,def:0,nrpn:1},k[i.modLfoToFilterFc]={min:-12e3,max:12e3,def:0,nrpn:2},k[i.vibLfoToFilterFc]={min:-12e3,max:12e3,def:0,nrpn:2},k[i.modEnvToFilterFc]={min:-12e3,max:12e3,def:0,nrpn:2},k[i.endAddrsCoarseOffset]={min:-32768,max:32768,def:0,nrpn:1},k[i.modLfoToVolume]={min:-960,max:960,def:0,nrpn:1},k[i.vibLfoToVolume]={min:-960,max:960,def:0,nrpn:1},k[i.chorusEffectsSend]={min:0,max:1e3,def:0,nrpn:1},k[i.reverbEffectsSend]={min:0,max:1e3,def:0,nrpn:1},k[i.pan]={min:-500,max:500,def:0,nrpn:1},k[i.delayModLFO]={min:-12e3,max:5e3,def:-12e3,nrpn:2},k[i.freqModLFO]={min:-16e3,max:4500,def:0,nrpn:4},k[i.delayVibLFO]={min:-12e3,max:5e3,def:-12e3,nrpn:2},k[i.freqVibLFO]={min:-16e3,max:4500,def:0,nrpn:4},k[i.delayModEnv]={min:-32768,max:5e3,def:-32768,nrpn:2},k[i.attackModEnv]={min:-32768,max:8e3,def:-32768,nrpn:2},k[i.holdModEnv]={min:-12e3,max:5e3,def:-12e3,nrpn:2},k[i.decayModEnv]={min:-12e3,max:8e3,def:-12e3,nrpn:2},k[i.sustainModEnv]={min:0,max:1e3,def:0,nrpn:1},k[i.releaseModEnv]={min:-12e3,max:8e3,def:-12e3,nrpn:2},k[i.keyNumToModEnvHold]={min:-1200,max:1200,def:0,nrpn:1},k[i.keyNumToModEnvDecay]={min:-1200,max:1200,def:0,nrpn:1},k[i.delayVolEnv]={min:-12e3,max:5e3,def:-12e3,nrpn:2},k[i.attackVolEnv]={min:-12e3,max:8e3,def:-12e3,nrpn:2},k[i.holdVolEnv]={min:-12e3,max:5e3,def:-12e3,nrpn:2},k[i.decayVolEnv]={min:-12e3,max:8e3,def:-12e3,nrpn:2},k[i.sustainVolEnv]={min:0,max:1440,def:0,nrpn:1},k[i.releaseVolEnv]={min:-12e3,max:8e3,def:-12e3,nrpn:2},k[i.keyNumToVolEnvHold]={min:-1200,max:1200,def:0,nrpn:1},k[i.keyNumToVolEnvDecay]={min:-1200,max:1200,def:0,nrpn:1},k[i.startloopAddrsCoarseOffset]={min:-32768,max:32768,def:0,nrpn:1},k[i.keyNum]={min:-1,max:127,def:-1,nrpn:1},k[i.velocity]={min:-1,max:127,def:-1,nrpn:1},k[i.initialAttenuation]={min:0,max:1440,def:0,nrpn:1},k[i.endloopAddrsCoarseOffset]={min:-32768,max:32768,def:0,nrpn:1},k[i.coarseTune]={min:-120,max:120,def:0,nrpn:1},k[i.fineTune]={min:-12700,max:12700,def:0,nrpn:1},k[i.scaleTuning]={min:0,max:1200,def:100,nrpn:1},k[i.exclusiveClass]={min:0,max:99999,def:0,nrpn:0},k[i.overridingRootKey]={min:-1,max:127,def:-1,nrpn:0},k[i.sampleModes]={min:0,max:3,def:0,nrpn:0};var Il={monoSample:1,rightSample:2,leftSample:4,linkedSample:8},sl={noController:0,noteOnVelocity:2,noteOnKeyNum:3,polyPressure:10,channelPressure:13,pitchWheel:14,pitchWheelRange:16,link:127},il={linear:0,concave:1,convex:2,switch:3},p={none:0,modLfo:1,velocity:2,keyNum:3,volEnv:4,modEnv:5,pitchWheel:6,polyPressure:7,channelPressure:8,vibratoLfo:9,modulationWheel:129,volume:135,pan:138,expression:139,chorus:221,reverb:219,pitchWheelRange:256,fineTune:257,coarseTune:258},I={none:0,gain:1,reserved:2,pitch:3,pan:4,keyNum:5,chorusSend:128,reverbSend:129,modLfoFreq:260,modLfoDelay:261,vibLfoFreq:276,vibLfoDelay:277,volEnvAttack:518,volEnvDecay:519,reservedEG1:520,volEnvRelease:521,volEnvSustain:522,volEnvDelay:523,volEnvHold:524,modEnvAttack:778,modEnvDecay:779,reservedEG2:780,modEnvRelease:781,modEnvSustain:782,modEnvDelay:783,modEnvHold:784,filterCutoff:1280,filterQ:1281},Ce={forward:0,loopAndRelease:1},IA=128,Tn=147,WA=new Int16Array(Tn).fill(0),hl=(e,l)=>WA[e]=l<<7;hl(v.mainVolume,100),hl(v.balance,64),hl(v.expressionController,127),hl(v.pan,64),hl(v.portamentoOnOff,127),hl(v.filterResonance,64),hl(v.releaseTime,64),hl(v.attackTime,64),hl(v.brightness,64),hl(v.decayTime,64),hl(v.vibratoRate,64),hl(v.vibratoDepth,64),hl(v.vibratoDelay,64),hl(v.generalPurposeController6,64),hl(v.generalPurposeController8,64),hl(v.registeredParameterLSB,127),hl(v.registeredParameterMSB,127),hl(v.nonRegisteredParameterLSB,127),hl(v.nonRegisteredParameterMSB,127);var Ln=1;WA[v.portamentoControl]=Ln,hl(IA+sl.pitchWheel,64),hl(IA+sl.pitchWheelRange,2);var Mn=Object.keys(ue).length,xn=new Float32Array(Mn);xn[ue.modulationMultiplier]=1,WA.slice(0,128);var Yt=Yt!==void 0?Yt:{},Ge=!1,Je;Yt.isInitialized=new Promise(e=>Je=e);var Dn=function(e){var l,t,A,Q,n,a,s,F="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d="",o=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do Q=F.indexOf(e.charAt(o++)),n=F.indexOf(e.charAt(o++)),a=F.indexOf(e.charAt(o++)),s=F.indexOf(e.charAt(o++)),l=Q<<2|n>>4,t=(15&n)<<4|a>>2,A=(3&a)<<6|s,d+=String.fromCharCode(l),a!==64&&(d+=String.fromCharCode(t)),s!==64&&(d+=String.fromCharCode(A));while(o<e.length);return d};(function(){var e,l,t,A,Q,n,a,s,F,d,o,c,h,Z,U=U!==void 0?U:{};U.wasmBinary=Uint8Array.from(Dn("AGFzbQEAAAABpQEYYAJ/fwF/YAF/AGAAAX9gBH9/f38AYAAAYAN/f38Bf2ABfwF/YAJ/fwBgBn9/f39/fwF/YAR/f39/AX9gBX9/f39/AX9gB39/f39/f38Bf2AGf39/f39/AGAIf39/f39/f38Bf2AFf39/f38AYAd/f39/f39/AGADf39/AGABfwF9YAF9AX1gAnx/AXxgAnx/AX9gA3x8fwF8YAJ8fAF8YAF8AXwCngIPA2VudgZtZW1vcnkCAIACA2VudgV0YWJsZQFwAQQEA2Vudgl0YWJsZUJhc2UDfwADZW52DkRZTkFNSUNUT1BfUFRSA38AA2VudghTVEFDS1RPUAN/AANlbnYJU1RBQ0tfTUFYA38ABmdsb2JhbAhJbmZpbml0eQN8AANlbnYFYWJvcnQAAQNlbnYNZW5sYXJnZU1lbW9yeQACA2Vudg5nZXRUb3RhbE1lbW9yeQACA2VudhdhYm9ydE9uQ2Fubm90R3Jvd01lbW9yeQACA2Vudg5fX19hc3NlcnRfZmFpbAADA2VudgtfX19zZXRFcnJObwABA2VudgZfYWJvcnQABANlbnYWX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZwAFA3d2BgYCAQcHAQIBAQcBCAcFAAkGCQoHBgYGBgEFBgIBBgYKAAgLAAYGBgYGBgYBAAoMDAMGBQANCAoJAAwODA8OAQAGBgcEABAJEAERAAADBQwAAAMHBxIGAQAABwIFEwMOBw8HBgYQFAoVExYXFxcXFgQFBQYFAAYkB38BIwELfwEjAgt/ASMDC38BQQALfwFBAAt8ASMEC38BQQALB9MCFRBfX2dyb3dXYXNtTWVtb3J5AAgRX19fZXJybm9fbG9jYXRpb24AYwVfZnJlZQBfB19tYWxsb2MAXgdfbWVtY3B5AHkHX21lbXNldAB6BV9zYnJrAHsXX3N0Yl92b3JiaXNfanNfY2hhbm5lbHMAJhRfc3RiX3ZvcmJpc19qc19jbG9zZQAlFV9zdGJfdm9yYmlzX2pzX2RlY29kZQAoE19zdGJfdm9yYmlzX2pzX29wZW4AJBpfc3RiX3ZvcmJpc19qc19zYW1wbGVfcmF0ZQAnC2R5bkNhbGxfaWlpAHwTZXN0YWJsaXNoU3RhY2tTcGFjZQAMC2dldFRlbXBSZXQwAA8LcnVuUG9zdFNldHMAeAtzZXRUZW1wUmV0MAAOCHNldFRocmV3AA0Kc3RhY2tBbGxvYwAJDHN0YWNrUmVzdG9yZQALCXN0YWNrU2F2ZQAKCQoBACMACwR9VFl9Csb2A3YGACAAQAALGwEBfyMGIQEjBiAAaiQGIwZBD2pBcHEkBiABCwQAIwYLBgAgACQGCwoAIAAkBiABJAcLEAAjCEUEQCAAJAggASQJCwsGACAAJAsLBAAjCwsRACAABEAgABARIAAgABASCwvvBwEKfyAAQYADaiEHIAcoAgAhBQJAIAUEQCAAQfwBaiEEIAQoAgAhASABQQBKBEAgAEHwAGohCANAIAUgAkEYbGpBEGohCSAJKAIAIQEgAQRAIAgoAgAhAyAFIAJBGGxqQQ1qIQogCi0AACEGIAZB/wFxIQYgAyAGQbAQbGpBBGohAyADKAIAIQMgA0EASgRAQQAhAwNAIAEgA0ECdGohASABKAIAIQEgACABEBIgA0EBaiEDIAgoAgAhASAKLQAAIQYgBkH/AXEhBiABIAZBsBBsakEEaiEBIAEoAgAhBiAJKAIAIQEgAyAGSA0ACwsgACABEBILIAUgAkEYbGpBFGohASABKAIAIQEgACABEBIgAkEBaiECIAQoAgAhASACIAFODQMgBygCACEFDAAACwALCwsgAEHwAGohAyADKAIAIQEgAQRAIABB7ABqIQUgBSgCACECIAJBAEoEQEEAIQIDQAJAIAEgAkGwEGxqQQhqIQQgBCgCACEEIAAgBBASIAEgAkGwEGxqQRxqIQQgBCgCACEEIAAgBBASIAEgAkGwEGxqQSBqIQQgBCgCACEEIAAgBBASIAEgAkGwEGxqQaQQaiEEIAQoAgAhBCAAIAQQEiABIAJBsBBsakGoEGohASABKAIAIQEgAUUhBCABQXxqIQFBACABIAQbIQEgACABEBIgAkEBaiECIAUoAgAhASACIAFODQAgAygCACEBDAELCyADKAIAIQELIAAgARASCyAAQfgBaiEBIAEoAgAhASAAIAEQEiAHKAIAIQEgACABEBIgAEGIA2ohAyADKAIAIQEgAQRAIABBhANqIQUgBSgCACECIAJBAEoEQEEAIQIDQCABIAJBKGxqQQRqIQEgASgCACEBIAAgARASIAJBAWohAiAFKAIAIQcgAygCACEBIAIgB0gNAAsLIAAgARASCyAAQQRqIQIgAigCACEBIAFBAEoEQEEAIQEDQCAAQZQGaiABQQJ0aiEDIAMoAgAhAyAAIAMQEiAAQZQHaiABQQJ0aiEDIAMoAgAhAyAAIAMQEiAAQdgHaiABQQJ0aiEDIAMoAgAhAyAAIAMQEiABQQFqIQEgAigCACEDIAEgA0ghAyABQRBJIQUgBSADcQ0ACwtBACEBA0AgAEGgCGogAUECdGohAiACKAIAIQIgACACEBIgAEGoCGogAUECdGohAiACKAIAIQIgACACEBIgAEGwCGogAUECdGohAiACKAIAIQIgACACEBIgAEG4CGogAUECdGohAiACKAIAIQIgACACEBIgAEHACGogAUECdGohAiACKAIAIQIgACACEBIgAUEBaiEBIAFBAkcNAAsLGwAgAEHEAGohACAAKAIAIQAgAEUEQCABEF8LC3wBAX8gAEHUB2ohASABQQA2AgAgAEGAC2ohASABQQA2AgAgAEH4CmohASABQQA2AgAgAEGcCGohASABQQA2AgAgAEHVCmohASABQQA6AAAgAEH8CmohASABQQA2AgAgAEHUC2ohASABQQA2AgAgAEHYC2ohACAAQQA2AgAL8AQBB38jBiELIwZBEGokBiALQQhqIQcgC0EEaiEKIAshCCAAQSRqIQYgBiwAACEGAn8gBgR/IABBgAtqIQYgBigCACEGIAZBf0oEQCAFQQA2AgAgACABIAIQFgwCCyAAQRRqIQYgBiABNgIAIAEgAmohAiAAQRxqIQkgCSACNgIAIABB2ABqIQIgAkEANgIAIABBABAXIQkgCUUEQCAFQQA2AgBBAAwCCyAAIAcgCCAKEBghCSAJBEAgBygCACECIAgoAgAhCSAKKAIAIQggACACIAkgCBAaIQogByAKNgIAIABBBGohAiACKAIAIQggCEEASgRAQQAhAgNAIABBlAZqIAJBAnRqIQcgBygCACEHIAcgCUECdGohByAAQdQGaiACQQJ0aiEMIAwgBzYCACACQQFqIQIgAiAISA0ACwsgAwRAIAMgCDYCAAsgBSAKNgIAIABB1AZqIQAgBCAANgIAIAYoAgAhACAAIAFrDAILAkACQAJAAkACQCACKAIAIgNBIGsOBAECAgACCyACQQA2AgAgAEHUAGohAiAAEBkhAwJAIANBf0cEQANAIAIoAgAhAyADDQIgABAZIQMgA0F/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ACECIABBmAhqIQYgBigCACEHIAUgA2shCSAJIAdqIQkgAiAJSSEJIAIgB0khDSACIAdrIQJBACACIA0bIQIgAiADaiECIAIgBUohByAFIAIgBxshAiAJBEAgASACNgIAIAYoAgAhACAAIAJqIQAgBiAANgIAQQEMBgsLCyAAQfQKaiECIAIoAgAhAiADIB9rIQYgBiACaiEGIABBmAhqIQIgAiAGNgIAIAhBATYCAAwBBSAAQZgIaiECIAYNAQsMAQsgBCADayEDIAIoAgAhBCADIARqIQMgAiADNgIACyATKAIAIQIgAgRAIABByABqIQIgAigCACECIABB0ABqIQAgACgCACEAIAIgAEcEQEHTE0HEE0HkGkHnFBAECwsgASAFNgIAQQELIQAgHCQGIAALqAIBBX8gAEHoCmohBSAFKAIAIQICQCACQQBIBEBBACEABSACIAFIBEAgAUEYSgRAIABBGBAsIQIgAUFoaiEBIAAgARAsIQAgAEEYdCEAIAAgAmohACAADwsgAkUEQCAAQeQKaiECIAJBADYCAAsgAEHkCmohAwJAAkACQANAIAAQLiECIAJBf0YNASAFKAIAIQQgAiAEdCECIAMoAgAhBiAGIAJqIQIgAyACNgIAIAUgBEEIaiICNgIAIAIgAUgNAAwCAAsACyAFQX82AgBBACEADAQLIARBeEgEQEEAIQAMBAsLCyAAQeQKaiEEIAQoAgAhA0EBIAF0IQAgAEF/aiEAIAMgAHEhACADIAF2IQMgBCADNgIAIAIgAWshASAFIAE2AgALCyAAC40CAAJAIABBAEgEf0EABSAAQYCAAUgEQCAAQRBIBEAgAEGACGohACAALAAAIQAMAwsgAEGABEgEQCAAQQV2IQAgAEGACGohACAALAAAIQAgAEEFaiEABSAAQQp2IQAgAEGACGohACAALAAAIQAgAEEKaiEACwwCCyAAQYCAgAhIBH8gAEGAgCBIBH8gAEEPdiEAIABBgAhqIQAgACwAACEAIABBD2oFIABBFHYhACAAQYAIaiEAIAAsAAAhACAAQRRqCwUgAEGAgICAAkgEfyAAQRl2IQAgAEGACGohACAALAAAIQAgAEEZagUgAEEediEAIABBgAhqIQAgACwAACEAIABBHmoLCwshAAsgAAuiAQEDfyAAQdQKaiECIAIsAAAhAQJAAkAgAQ0AIABB3ApqIQEgASgCACEBIAEEQEF/IQMFIAAQLyEBIAEEQCACLAAAIQEgAQ0CQaEUQcQTQfYLQbUUEAQFQX8hAwsLDAELIAFBf2pBGHRBGHUhASACIAE6AAAgAEHsCmohASABKAIAIQIgAkEBaiECIAEgAjYCACAAEDAhACAAQf8BcSEDCyADC6wCAQd/IABB3ApqIQIgAigCACEBAkAgAUUEQCAAQdgKaiEEIAQoAgAhASABQX9GBEAgAEHQCGohASABKAIAIQEgAUF/aiEBIABB4ApqIQMgAyABNgIAIAAQMSEBIAFFBEAgAkEBNgIADAMLIABB0wpqIQEgASwAACEBIAFBAXEhASABBH8gBCgCAAUgAEEgEBUMAwshAQsgAUEBaiEHIAQgBzYCACAAQdQIaiABaiEDIAMsAAAhBiAGQf8BcSEDIAZBf0cEQCACQQE2AgAgAEHgCmohAiACIAE2AgALIABB0AhqIQEgASgCACEBIAcgAU4EQCAEQX82AgALIABB1ApqIQAgACwAACEBIAEEQEHFFEHEE0HoC0HaFBAEBSAAIAY6AAAgAyEFCwsLIAULUQEDfyAAQRRqIQMgAygCACEBIABBHGohAiACKAIAIQIgASACSQR/IAFBAWohACADIAA2AgAgASwAAAUgAEHUAGohACAAQQE2AgBBAAshACAACyABAX8gABAyIQEgAQR/IAAQMwUgAEEeEBVBAAshACAAC2ABAX8gABAwIQEgAUH/AXFBzwBGBEAgABAwIQEgAUH/AXFB5wBGBEAgABAwIQEgAUH/AXFB5wBGBEAgABAwIQAgAEH/AXFB0wBGIQAFQQAhAAsFQQAhAAsFQQAhAAsgAAvZAwEGfyAAEDAhAQJ/IAFB/wFxBH8gAEEfEBVBAAUgABAwIQEgAEHTCmohAiACIAE6AAAgABAjIQUgABAjIQIgABAjGiAAECMhASAAQcwIaiEDIAMgATYCACAAECMaIAAQMCEBIAFB/wFxIQEgAEHQCGohAyADIAE2AgAgAEHUCGohBCAAIAQgARAiIQEgAUUEQCAAQQoQFUEADAILIABB8ApqIQQgBEF+NgIAIAIgBXEhAQJAIAFBf0cEQCADKAIAIQEgAUEASgRAA0ACQCABQX9qIQIgAEHUCGogAmohBiAGLAAAIQYgBkF/Rw0AIAFBAUwNBCACIQEMAQsLIAQgAjYCACAAQfQKaiEBIAEgBTYCAAsLCyAAQdUKaiEBIAEsAAAhASABBEAgAygCACEDIANBAEoEf0EAIQJBACEBA0AgAEHUCGogAWohBCAELQAAIQQgBEH/AXEhBCACIARqIQIgAUEBaiEBIAEgA0gNAAsgAkEbagVBGwshASAAQShqIQIgAigCACECIAEgA2ohASABIAJqIQEgAEEsaiEDIAMgAjYCACAAQTBqIQIgAiABNgIAIABBNGohASABIAU2AgALIABB2ApqIQAgAEEANgIAQQELCyEAIAALowEBB38gAEHoCmohAyADKAIAIQECQCABQRlIBEAgAEHkCmohBCABRQRAIARBADYCAAsgAEHUCmohBSAAQdwKaiEGA0AgBigCACEBIAEEQCAFLAAAIQEgAUUNAwsgABAuIQIgAkF/Rg0CIAMoAgAhASACIAF0IQIgBCgCACEHIAcgAmohAiAEIAI2AgAgAUEIaiECIAMgAjYCACABQRFIDQALCwsLrQUBCX8gABA0IAFBIGohAiACKAIAIQUCQAJAIAVFIgNFDQAgAUGkEGohAiACKAIAIQIgAg0AQX8hAQwBCyABQQRqIQIgAigCACECAkACQCACQQhKBEAgAUGkEGohAyADKAIAIQMgAw0BBSADDQELDAELIABB5ApqIQggCCgCACEJIAkQOiEHIAFBrBBqIQIgAigCACECIAJBAUoEQCABQaQQaigCACEKQQAhAwNAIAJBAXYhBSAFIANqIQQgCiAEQQJ0aiEGIAYoAgAhBiAGIAdLIQYgAiAFayECIAMgBCAGGyEDIAUgAiAGGyECIAJBAUoNAAsFQQAhAwsgAUEXaiECIAIsAAAhAiACRQRAIAFBqBBqIQIgAigCACECIAIgA0ECdGohAiACKAIAIQMLIAFBCGohASABKAIAIQEgASADaiEBIAEtAAAhASABQf8BcSEBIABB6ApqIQIgAigCACEAIAAgAUgEf0EAIQBBfwUgACABayEAIAkgAXYhASAIIAE2AgAgAwshASACIAA2AgAMAQsgAUEXaiEDIAMsAAAhAyADBEBBgRVBxBNB6gxBjBUQBAsCQCACQQBKBEAgASgCCCEIIABB5ApqIQlBACEBA0ACQCAIIAFqIQMgAywAACEEIARB/wFxIQMgBEF/RwRAIAUgAUECdGoh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IwZBEGokBiACIQECfCAAvUIgiKdB/////wdxIgNB/MOk/wNJBHwgA0GewZryA0kEfEQAAAAAAADwPwUgAEQAAAAAAAAAABByCwUgACAAoSADQf//v/8HSw0BGgJAAkACQAJAIAAgARBuQQNxDgMAAQIDCyABKwMAIAErAwgQcgwECyABKwMAIAErAwhBARBwmgwDCyABKwMAIAErAwgQcpoMAgsgASsDACABKwMIQQEQcAsLIQAgAiQGIAALywEBA38jBiECIwZBEGokBiACIQECQCAAvUIgiKdB/////wdxIgNB/MOk/wNJBEAgA0GAgMDyA08EQCAARAAAAAAAAAAAQQAQcCEACwUgA0H//7//B0sEQCAAIAChIQAMAgsCQAJAAkACQAJAIAAgARBuQQNxDgMAAQIDCyABKwMAIAErAwhBARBwIQAMBQsgASsDACABKwMIEHIhAAwECyABKwMAIAErAwhBARBwmiEADAMLIAErAwAgASsDCBBymiEACwsLIAIkBiAAC5sDAwJ/AX4CfCAAvSIDQj+IpyEBAnwCfwJAIANCIIinQf////8HcSICQarGmIQESwR8IANC////////////AINCgICAgICAgPj/AFYEQCAADwsgAETvOfr+Qi6GQGQEQCAARAAAAAAAAOB/og8FIABE0rx63SsjhsBjIABEUTAt1RBJh8BjcUUNAkQAAAAAAAAAACIADwsABSACQcLc2P4DSwRAIAJBscXC/wNLDQIgAUEBcyABawwDCyACQYCAwPEDSwR8QQAhASAABSAARAAAAAAAAPA/oA8LCwwCCyAARP6CK2VHFfc/oiABQQN0QYATaisDAKCqCyEBIAAgAbciBEQAAOD+Qi7mP6KhIgAgBER2PHk17znqPaIiBaELIQQgACAEIAQgBCAEoiIAIAAgACAAIABE0KS+cmk3Zj6iRPFr0sVBvbu+oKJELN4lr2pWET+gokSTvb4WbMFmv6CiRD5VVVVVVcU/oKKhIgCiRAAAAAAAAABAIAChoyAFoaBEAAAAAAAA8D+gIQAgAUUEQCAADwsgACABEGULnwMDAn8BfgV8IAC9IgNCIIinIQECfyADQgBTIgIgAUGAgMAASXIEfyADQv///////////wCDQgBRBEBEAAAAAAAA8L8gACAAoqMPCyACRQRAIABEAAAAAAAAUEOi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mgDjqR0AXmGRAAgb5gCFmWUAoBRfAI1AaACA2P8AJ3NNAAYGMQDKVhUAyahzAHviYABrjMAAQcMSC11A+yH5PwAAAAAtRHQ+AAAAgJhG+DwAAABgUcx4OwAAAICDG/A5AAAAQCAlejgAAACAIoLjNgAAAAAd82k1AAAAAAAA4D8AAAAAAADgvwAAAAAAAPA/AAAAAAAA+D8AQagTCwgG0M9D6/1MPgBBuxMLigZAA7jiP09nZ1MuL3N0Yl92b3JiaXMuYwBmLT5hbGxvYy5hbGxvY19idWZmZXJfbGVuZ3RoX2luX2J5dGVzID09IGYtPnRlbXBfb2Zmc2V0AHZvcmJpc19kZWNvZGVfaW5pdGlhbABmLT5ieXRlc19pbl9zZWcgPiAwAGdldDhfcGFja2V0X3JhdwBmLT5ieXRlc19pbl9zZWcgPT0gMABuZXh0X3NlZ21lbnQAdm9yYmlzX2RlY29kZV9wYWNrZXRfcmVzdAAhYy0+c3BhcnNlAGNvZGVib29rX2RlY29kZV9zY2FsYXJfcmF3ACFjLT5zcGFyc2UgfHwgeiA8IGMtPnNvcnRlZF9lbnRyaWVzAGNvZGVib29rX2RlY29kZV9kZWludGVybGVhdmVfcmVwZWF0AHogPCBjLT5zb3J0ZWRfZW50cmllcwBjb2RlYm9va19kZWNvZGVfc3RhcnQAKG4gJiAzKSA9PSAwAGltZGN0X3N0ZXAzX2l0ZXIwX2xvb3AAMABnZXRfd2luZG93AGYtPnRlbXBfb2Zmc2V0ID09IGYtPmFsbG9jLmFsbG9jX2J1ZmZlcl9sZW5ndGhfaW5fYnl0ZXMAc3RhcnRfZGVjb2RlcgB2b3JiaXNjLT5zb3J0ZWRfZW50cmllcyA9PSAwAGNvbXB1dGVfY29kZXdvcmRzAHogPj0gMCAmJiB6IDwgMzIAbGVuW2ldID49IDAgJiYgbGVuW2ldIDwgMzIAYXZhaWxhYmxlW3ldID09IDAAayA9PSBjLT5zb3J0ZWRfZW50cmllcwBjb21wdXRlX3NvcnRlZF9odWZmbWFuAGMtPnNvcnRlZF9jb2Rld29yZHNbeF0gPT0gY29kZQBsZW4gIT0gTk9fQ09ERQBpbmNsdWRlX2luX3NvcnQAcG93KChmbG9hdCkgcisxLCBkaW0pID4gZW50cmllcwBsb29rdXAxX3ZhbHVlcwAoaW50KSBmbG9vcihwb3coKGZsb2F0KSByLCBkaW0pKSA8PSBlbnRyaWVzAOoPBG5hbWUB4g9+AAVhYm9ydAENZW5sYXJnZU1lbW9yeQIOZ2V0VG90YWxNZW1vcnkDF2Fib3J0T25DYW5ub3RHcm93TWVtb3J5BA5fX19hc3NlcnRfZmFpbAULX19fc2V0RXJyTm8GBl9hYm9ydAcWX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZwgQX19ncm93V2FzbU1lbW9yeQkKc3RhY2tBbGxvYwoJc3RhY2tTYXZlCwxzdGFja1Jlc3RvcmUME2VzdGFibGlzaFN0YWNrU3BhY2UNCHNldFRocmV3DgtzZXRUZW1wUmV0MA8LZ2V0VGVtcFJldDAQEV9zdGJfdm9yYmlzX2Nsb3NlEQ5fdm9yYmlzX2RlaW5pdBILX3NldHVwX2ZyZWUTGl9zdGJfdm9yYmlzX2ZsdXNoX3B1c2hkYXRhFCFfc3RiX3ZvcmJpc19kZWNvZGVfZnJhbWVfcHVzaGRhdGEVBl9lcnJvchYgX3ZvcmJpc19zZWFyY2hfZm9yX3BhZ2VfcHVzaGRhdGEXGF9pc193aG9sZV9wYWNrZXRfcHJlc2VudBgVX3ZvcmJpc19kZWNvZGVfcGFja2V0GQxfZ2V0OF9wYWNrZXQaFF92b3JiaXNfZmluaXNoX2ZyYW1lGxlfc3RiX3ZvcmJpc19vcGVuX3B1c2hkYXRhHAxfdm9yYmlzX2luaXQdDl9zdGFydF9kZWNvZGVyHg1fdm9yYmlzX2FsbG9jHxtfc3RiX3ZvcmJpc19nZXRfZmlsZV9vZmZzZXQgE19tYXliZV9zdGFydF9wYWNrZXQhDV9mbHVzaF9wYWNrZXQiBV9nZXRuIwZfZ2V0MzIkE19zdGJfdm9yYmlzX2pzX29wZW4lFF9zdGJfdm9yYmlzX2pzX2Nsb3NlJhdfc3RiX3ZvcmJpc19qc19jaGFubmVscycaX3N0Yl92b3JiaXNfanNfc2FtcGxlX3JhdGUoFV9zdGJfdm9yYmlzX2pzX2RlY29kZSkNX2NyYzMyX3VwZGF0ZSoWX3ZvcmJpc19kZWNvZGVfaW5pdGlhbCsaX3ZvcmJpc19kZWNvZGVfcGFja2V0X3Jlc3QsCV9nZXRfYml0cy0FX2lsb2cuEF9nZXQ4X3BhY2tldF9yYXcvDV9uZXh0X3NlZ21lbnQwBV9nZXQ4MQtfc3RhcnRfcGFnZTIQX2NhcHR1cmVfcGF0dGVybjMdX3N0YXJ0X3BhZ2Vfbm9fY2FwdHVyZXBhdHRlcm40DV9wcmVwX2h1ZmZtYW41G19jb2RlYm9va19kZWNvZGVfc2NhbGFyX3JhdzYOX3ByZWRpY3RfcG9pbnQ3D19kZWNvZGVfcmVzaWR1ZTgJX2RvX2Zsb29yOQ1faW52ZXJzZV9tZGN0OgxfYml0X3JldmVyc2U7EV9tYWtlX2Jsb2NrX2FycmF5PBJfc2V0dXBfdGVtcF9tYWxsb2M9JF9jb2RlYm9va19kZWNvZGVfZGVpbnRlcmxlYXZlX3JlcGVhdD4PX3Jlc2lkdWVfZGVjb2RlPxVfY29kZWJvb2tfZGVjb2RlX3N0ZXBAEF9jb2RlYm9va19kZWNvZGVBFl9jb2RlYm9va19kZWNvZGVfc3RhcnRCCl9kcmF3X2xpbmVDF19pbWRjdF9zdGVwM19pdGVyMF9sb29wRBlfaW1kY3Rfc3RlcDNfaW5uZXJfcl9sb29wRRlfaW1kY3Rfc3RlcDNfaW5uZXJfc19sb29wRh9faW1kY3Rfc3RlcDNfaW5uZXJfc19sb29wX2xkNjU0RwhfaXRlcl81NEgLX2dldF93aW5kb3dJEF92b3JiaXNfdmFsaWRhdGVKDV9zdGFydF9wYWNrZXRLBV9za2lwTAtfY3JjMzJfaW5pdE0NX3NldHVwX21hbGxvY04QX3NldHVwX3RlbXBfZnJlZU8SX2NvbXB1dGVfY29kZXdvcmRzUBdfY29tcHV0ZV9zb3J0ZWRfaHVmZm1hblEcX2NvbXB1dGVfYWNjZWxlcmF0ZWRfaHVmZm1hblIPX2Zsb2F0MzJfdW5wYWNrUw9fbG9va3VwMV92YWx1ZXNUDl9wb2ludF9jb21wYXJlVQpfbmVpZ2hib3JzVg9faW5pdF9ibG9ja3NpemVXCl9hZGRfZW50cnlYEF9pbmNsdWRlX2luX3NvcnRZD191aW50MzJfY29tcGFyZVoYX2NvbXB1dGVfdHdpZGRsZV9mYWN0b3JzWw9fY29tcHV0ZV93aW5kb3dcE19jb21wdXRlX2JpdHJldmVyc2VdB19zcXVhcmVeB19tYWxsb2NfBV9mcmVlYAhfcmVhbGxvY2ESX3RyeV9yZWFsbG9jX2NodW5rYg5fZGlzcG9zZV9jaHVua2MRX19fZXJybm9fbG9jYXRpb25kB19tZW1jbXBlB19zY2FsYm5mBl9xc29ydGcFX3NpZnRoBF9zaHJpCF90cmlua2xlagRfc2hsawVfcG50emwIX2FfY3R6X2xtBl9jeWNsZW4LX19fcmVtX3BpbzJvEV9fX3JlbV9waW8yX2xhcmdlcAZfX19zaW5xBl9sZGV4cHIGX19fY29zcwRfY29zdARfc2ludQRfZXhwdgRfbG9ndwRfcG93eAtydW5Qb3N0U2V0c3kHX21lbWNweXoHX21lbXNldHsFX3Nicmt8C2R5bkNhbGxfaWlpfQJiMA=="),function(E){return E.charCodeAt(0)});var U=U!==void 0?U:{},m={};for(e in U)U.hasOwnProperty(e)&&(m[e]=U[e]);U.arguments=[],U.thisProgram="./this.program",U.quit=function(E,V){throw V},U.preRun=[],U.postRun=[];var C=!1,W=!1,J=!1,X=!1;C=typeof window=="object",W=typeof importScripts=="function",J=typeof process=="object"&&typeof Rn=="function"&&!C&&!W,X=!C&&!J&&!W;var u="";function G(E){return U.locateFile?U.locateFile(E,u):u+E}J?(u="/",U.read=function(V,r){var L;return l||(l=void 0),t||(t=void 0),V=t.normalize(V),L=l.readFileSync(V),r?L:L.toString()},U.readBinary=function(V){var r=U.read(V,!0);return r.buffer||(r=new Uint8Array(r)),O(r.buffer),r},process.argv.length>1&&(U.thisProgram=process.argv[1].replace(/\\/g,"/")),U.arguments=process.argv.slice(2),process.on("uncaughtException",function(E){if(!(E instanceof tt))throw E}),process.on("unhandledRejection",function(E,V){process.exit(1)}),U.quit=function(E){process.exit(E)},U.inspect=function(){return"[Emscripten Module object]"}):X?(typeof read<"u"&&(U.read=function(V){return read(V)}),U.readBinary=function(V){var r;return typeof readbuffer=="function"?new Uint8Array(readbuffer(V)):(O(typeof(r=read(V,"binary"))=="object"),r)},typeof scriptArgs<"u"?U.arguments=scriptArgs:typeof arguments<"u"&&(U.arguments=arguments),typeof quit=="function"&&(U.quit=function(E){quit(E)})):(C||W)&&(C?document.currentScript&&(u=document.currentScript.src):u=self.location.href,u=u.indexOf("blob:")!==0?u.split("/").slice(0,-1).join("/")+"/":"",U.read=function(V){var r=new XMLHttpRequest;return r.open("GET",V,!1),r.send(null),r.responseText},W&&(U.readBinary=function(V){var r=new XMLHttpRequest;return r.open("GET",V,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),U.readAsync=function(V,r,L){var q=new XMLHttpRequest;q.open("GET",V,!0),q.responseType="arraybuffer",q.onload=function(){if(q.status==200||q.status==0&&q.response){r(q.response);return}L()},q.onerror=L,q.send(null)},U.setWindowTitle=function(E){document.title=E});var T=U.print||(typeof console<"u"?console.log.bind(console):typeof print<"u"?print:null),w=U.printErr||(typeof printErr<"u"?printErr:typeof console<"u"&&console.warn.bind(console)||T);for(e in m)m.hasOwnProperty(e)&&(U[e]=m[e]);function Rl(E){var V=F;return F=F+E+15&-16,V}function cl(E,V){return V||(V=16),E=Math.ceil(E/V)*V}m=void 0;var Ul={"f64-rem":function(E,V){return E%V},debugger:function(){}},z=0;function O(E,V){E||Gl("Assertion failed: "+V)}function H(E){var V=U["_"+E];return O(V,"Cannot call unknown function "+E+", make sure it is exported"),V}var x={arrayToC:function(E){var V,r,L=Kt(E.length);return V=E,r=L,Q.set(V,r),L},stringToC:function(E){var V=0;if(E!=null&&E!==0){var r=(E.length<<2)+1;V=Kt(r),el(E,V,r)}return V}},j={string:x.stringToC,array:x.arrayToC};function g(E,V,r,L,q){var Ql=H(E),ol=[],M=0;if(L)for(var Sl=0;Sl<L.length;Sl++){var ml=j[r[Sl]];ml?(M===0&&(M=lt()),ol[Sl]=ml(L[Sl])):ol[Sl]=L[Sl]}var tl,al=Ql.apply(null,ol);return al=(tl=al,V==="string"?y(tl):V==="boolean"?!!tl:tl),M!==0&&Yl(M),al}function y(E,V){if(V===0||!E)return"";for(var r,L,q,Ql=0,ol=0;Ql|=L=n[E+ol>>0],(L!=0||V)&&(ol++,!V||ol!=V););V||(V=ol);var M="";if(Ql<128){for(;V>0;)q=String.fromCharCode.apply(String,n.subarray(E,E+Math.min(V,1024))),M=M?M+q:q,E+=1024,V-=1024;return M}return r=E,function(ml,tl){for(var al=tl;ml[al];)++al;if(al-tl>16&&ml.subarray&&D)return D.decode(ml.subarray(tl,al));for(var dl,Jl,Wl,yl,Vt,zt,pl="";;){if(!(dl=ml[tl++]))return pl;if(!(128&dl)){pl+=String.fromCharCode(dl);continue}if(Jl=63&ml[tl++],(224&dl)==192){pl+=String.fromCharCode((31&dl)<<6|Jl);continue}if(Wl=63&ml[tl++],(240&dl)==224?dl=(15&dl)<<12|Jl<<6|Wl:(yl=63&ml[tl++],(248&dl)==240?dl=(7&dl)<<18|Jl<<12|Wl<<6|yl:(Vt=63&ml[tl++],dl=(252&dl)==248?(3&dl)<<24|Jl<<18|Wl<<12|yl<<6|Vt:(1&dl)<<30|Jl<<24|Wl<<18|yl<<12|Vt<<6|(zt=63&ml[tl++]))),dl<65536)pl+=String.fromCharCode(dl);else{var vt=dl-65536;pl+=String.fromCharCode(55296|vt>>10,56320|1023&vt)}}}(n,r)}var D=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function ll(E,V,r,L){if(!(L>0))return 0;for(var q=r,Ql=r+L-1,ol=0;ol<E.length;++ol){var M=E.charCodeAt(ol);if(M>=55296&&M<=57343&&(M=65536+((1023&M)<<10)|1023&E.charCodeAt(++ol)),M<=127){if(r>=Ql)break;V[r++]=M}else if(M<=2047){if(r+1>=Ql)break;V[r++]=192|M>>6,V[r++]=128|63&M}else if(M<=65535){if(r+2>=Ql)break;V[r++]=224|M>>12,V[r++]=128|M>>6&63,V[r++]=128|63&M}else if(M<=2097151){if(r+3>=Ql)break;V[r++]=240|M>>18,V[r++]=128|M>>12&63,V[r++]=128|M>>6&63,V[r++]=128|63&M}else if(M<=67108863){if(r+4>=Ql)break;V[r++]=248|M>>24,V[r++]=128|M>>18&63,V[r++]=128|M>>12&63,V[r++]=128|M>>6&63,V[r++]=128|63&M}else{if(r+5>=Ql)break;V[r++]=252|M>>30,V[r++]=128|M>>24&63,V[r++]=128|M>>18&63,V[r++]=128|M>>12&63,V[r++]=128|M>>6&63,V[r++]=128|63&M}}return V[r]=0,r-q}function el(E,V,r){return ll(E,n,V,r)}typeof TextDecoder<"u"&&new TextDecoder("utf-16le");function Cl(E,V){return E%V>0&&(E+=V-E%V),E}function Tl(E){U.buffer=A=E}function Xl(){U.HEAP8=Q=new Int8Array(A),U.HEAP16=new Int16Array(A),U.HEAP32=a=new Int32Array(A),U.HEAPU8=n=new Uint8Array(A),U.HEAPU16=new Uint16Array(A),U.HEAPU32=new Uint32Array(A),U.HEAPF32=new Float32Array(A),U.HEAPF64=new Float64Array(A)}function vl(){var E=U.usingWasm?65536:16777216,V=2147483648-E;if(a[h>>2]>V)return!1;var r=Y;for(Y=Math.max(Y,16777216);Y<a[h>>2];)Y=Y<=536870912?Cl(2*Y,E):Math.min(Cl((3*Y+2147483648)/4,E),V);var L=U.reallocBuffer(Y);return L&&L.byteLength==Y?(Tl(L),Xl(),!0):(Y=r,!1)}s=F=d=o=c=h=0,U.reallocBuffer||(U.reallocBuffer=function(E){try{if(ArrayBuffer.transfer)V=ArrayBuffer.transfer(A,E);else{var V,r=Q;V=new ArrayBuffer(E),new Int8Array(V).set(r)}}catch{return!1}return!!DA(V)&&V});try{(Z=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get))(new ArrayBuffer(4))}catch{Z=function(V){return V.byteLength}}var S=U.TOTAL_STACK||5242880,Y=U.TOTAL_MEMORY||16777216;function f(){return Y}function Bl(E){for(;E.length>0;){var V=E.shift();if(typeof V=="function"){V();continue}var r=V.func;typeof r=="number"?V.arg===void 0?U.dynCall_v(r):U.dynCall_vi(r,V.arg):r(V.arg===void 0?null:V.arg)}}Y<S&&w("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+Y+"! (TOTAL_STACK="+S+")"),U.buffer?A=U.buffer:(typeof WebAssembly=="object"&&typeof WebAssembly.Memory=="function"?(U.wasmMemory=new WebAssembly.Memory({initial:Y/65536}),A=U.wasmMemory.buffer):A=new ArrayBuffer(Y),U.buffer=A),Xl();var wl=[],Rt=[],ht=[],Bt=[],Gt=!1;function xt(E){wl.unshift(E)}function Dt(E){Bt.unshift(E)}var FA=Math.floor,Hl=0,Kl=null;U.preloadedImages={},U.preloadedAudios={};var Jt="data:application/octet-stream;base64,";function rl(E){return String.prototype.startsWith?E.startsWith(Jt):E.indexOf(Jt)===0}(function(){var V="main.wast",r="main.wasm",L="main.temp.asm";rl(V)||(V=G(V)),rl(r)||(r=G(r)),rl(L)||(L=G(L));var q={global:null,env:null,asm2wasm:Ul,parent:U},Ql=null;function ol(){try{if(U.wasmBinary)return new Uint8Array(U.wasmBinary);if(U.readBinary)return U.readBinary(r);throw"both async and sync fetching of the wasm failed"}catch(tl){Gl(tl)}}U.asmPreload=U.asm;var M=U.reallocBuffer,Sl=function(tl){tl=Cl(tl,U.usingWasm?65536:16777216);var al=U.buffer.byteLength;if(U.usingWasm)try{var dl=U.wasmMemory.grow((tl-al)/65536);return dl!==-1?U.buffer=U.wasmMemory.buffer:null}catch{return null}};U.reallocBuffer=function(tl){return ml==="asmjs"?M(tl):Sl(tl)};var ml="";U.asm=function(tl,al,dl){if(!(al=al).table){var Jl,Wl=U.wasmTableSize;Wl===void 0&&(Wl=1024);var yl=U.wasmMaxTableSize;typeof WebAssembly=="object"&&typeof WebAssembly.Table=="function"?yl!==void 0?al.table=new WebAssembly.Table({initial:Wl,maximum:yl,element:"anyfunc"}):al.table=new WebAssembly.Table({initial:Wl,element:"anyfunc"}):al.table=Array(Wl),U.wasmTable=al.table}return al.memoryBase||(al.memoryBase=U.STATIC_BASE),al.tableBase||(al.tableBase=0),Jl=function(zt,pl,vt){if(typeof WebAssembly!="object")return w("no native wasm support detected"),!1;if(!(U.wasmMemory instanceof WebAssembly.Memory))return w("no native wasm Memory in use"),!1;function yt(kl,fl){if((Ql=kl.exports).memory){var wt,KA,nQ;wt=Ql.memory,KA=U.buffer,wt.byteLength<KA.byteLength&&w("the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here"),nQ=new Int8Array(KA),new Int8Array(wt).set(nQ),Tl(wt),Xl()}U.asm=Ql,U.usingWasm=!0,function(ja){if(Hl--,U.monitorRunDependencies&&U.monitorRunDependencies(Hl),Hl==0&&Kl){var Na=Kl;Kl=null,Na()}}()}if(pl.memory=U.wasmMemory,q.global={NaN:NaN,Infinity:1/0},q["global.Math"]=Math,q.env=pl,Hl++,U.monitorRunDependencies&&U.monitorRunDependencies(Hl),U.instantiateWasm)try{return U.instantiateWasm(q,yt)}catch(kl){return w("Module.instantiateWasm callback failed with error: "+kl),!1}function pt(kl){yt(kl.instance,kl.module)}function sA(kl){(!U.wasmBinary&&(C||W)&&typeof fetch=="function"?fetch(r,{credentials:"same-origin"}).then(function(fl){if(!fl.ok)throw"failed to load wasm binary file at '"+r+"'";return fl.arrayBuffer()}).catch(function(){return ol()}):new Promise(function(fl,wt){fl(ol())})).then(function(fl){return WebAssembly.instantiate(fl,q)}).then(kl).catch(function(fl){w("failed to asynchronously prepare wasm: "+fl),Gl(fl)})}return U.wasmBinary||typeof WebAssembly.instantiateStreaming!="function"||rl(r)||typeof fetch!="function"?sA(pt):WebAssembly.instantiateStreaming(fetch(r,{credentials:"same-origin"}),q).then(pt).catch(function(kl){w("wasm streaming compile failed: "+kl),w("falling back to ArrayBuffer instantiation"),sA(pt)}),{}}(tl,al),O(Jl,"no binaryen method succeeded."),Jl},U.asm})(),F=(s=1024)+4816,Rt.push(),U.STATIC_BASE=s,U.STATIC_BUMP=4816;var UA=F;F+=16,h=Rl(4),o=(d=cl(F))+S,c=cl(o),a[h>>2]=c,U.wasmTableSize=4,U.wasmMaxTableSize=4,U.asmGlobalArg={},U.asmLibraryArg={abort:Gl,assert:O,enlargeMemory:vl,getTotalMemory:f,abortOnCannotGrowMemory:function(){Gl("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+Y+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")},invoke_iii:function(V,r,L){var q=lt();try{return U.dynCall_iii(V,r,L)}catch(Ql){if(Yl(q),typeof Ql!="number"&&Ql!=="longjmp")throw Ql;U.setThrew(1,0)}},___assert_fail:function(V,r,L,q){Gl("Assertion failed: "+y(V)+", at: "+[r?y(r):"unknown filename",L,q?y(q):"unknown function"])},___setErrNo:function(V){return U.___errno_location&&(a[U.___errno_location()>>2]=V),V},_abort:function(){U.abort()},_emscripten_memcpy_big:function(V,r,L){return n.set(n.subarray(r,r+L),V),V},_llvm_floor_f64:FA,DYNAMICTOP_PTR:h,tempDoublePtr:UA,ABORT:z,STACKTOP:d,STACK_MAX:o};var BA=U.asm(U.asmGlobalArg,U.asmLibraryArg,A);U.asm=BA,U.___errno_location=function(){return U.asm.___errno_location.apply(null,arguments)};var DA=U._emscripten_replace_memory=function(){return U.asm._emscripten_replace_memory.apply(null,arguments)};U._free=function(){return U.asm._free.apply(null,arguments)},U._malloc=function(){return U.asm._malloc.apply(null,arguments)},U._memcpy=function(){return U.asm._memcpy.apply(null,arguments)},U._memset=function(){return U.asm._memset.apply(null,arguments)},U._sbrk=function(){return U.asm._sbrk.apply(null,arguments)},U._stb_vorbis_js_channels=function(){return U.asm._stb_vorbis_js_channels.apply(null,arguments)},U._stb_vorbis_js_close=function(){return U.asm._stb_vorbis_js_close.apply(null,arguments)},U._stb_vorbis_js_decode=function(){return U.asm._stb_vorbis_js_decode.apply(null,arguments)},U._stb_vorbis_js_open=function(){return U.asm._stb_vorbis_js_open.apply(null,arguments)},U._stb_vorbis_js_sample_rate=function(){return U.asm._stb_vorbis_js_sample_rate.apply(null,arguments)},U.establishStackSpace=function(){return U.asm.establishStackSpace.apply(null,arguments)},U.getTempRet0=function(){return U.asm.getTempRet0.apply(null,arguments)},U.runPostSets=function(){return U.asm.runPostSets.apply(null,arguments)},U.setTempRet0=function(){return U.asm.setTempRet0.apply(null,arguments)},U.setThrew=function(){return U.asm.setThrew.apply(null,arguments)};var Kt=U.stackAlloc=function(){return U.asm.stackAlloc.apply(null,arguments)},Yl=U.stackRestore=function(){return U.asm.stackRestore.apply(null,arguments)},lt=U.stackSave=function(){return U.asm.stackSave.apply(null,arguments)};function tt(E){this.name="ExitStatus",this.message="Program terminated with exit("+E+")",this.status=E}function gt(E){E=E||U.arguments,!(Hl>0)&&(function(){if(U.preRun)for(typeof U.preRun=="function"&&(U.preRun=[U.preRun]);U.preRun.length;)xt(U.preRun.shift());Bl(wl)}(),!(Hl>0)&&(U.calledRun||(U.setStatus?(U.setStatus("Running..."),setTimeout(function(){setTimeout(function(){U.setStatus("")},1),V()},1)):V())));function V(){!U.calledRun&&(U.calledRun=!0,z||(Gt||(Gt=!0,Bl(Rt)),Bl(ht),U.onRuntimeInitialized&&U.onRuntimeInitialized(),function(){if(U.postRun)for(typeof U.postRun=="function"&&(U.postRun=[U.postRun]);U.postRun.length;)Dt(U.postRun.shift());Bl(Bt)}()))}}function Gl(E){throw U.onAbort&&U.onAbort(E),E!==void 0?(T(E),w(E),E=JSON.stringify(E)):E="",z=!0,"abort("+E+"). Build with -s ASSERTIONS=1 for more info."}if(U.dynCall_iii=function(){return U.asm.dynCall_iii.apply(null,arguments)},U.asm=BA,U.ccall=g,U.cwrap=function(V,r,L,q){var Ql=(L=L||[]).every(function(ol){return ol==="number"});return r!=="string"&&Ql&&!q?H(V):function(){return g(V,r,L,arguments)}},tt.prototype=Error(),tt.prototype.constructor=tt,Kl=function E(){U.calledRun||gt(),U.calledRun||(Kl=E)},U.run=gt,U.abort=Gl,U.preInit)for(typeof U.preInit=="function"&&(U.preInit=[U.preInit]);U.preInit.length>0;)U.preInit.pop()();U.noExitRuntime=!0,gt(),U.onRuntimeInitialized=()=>{Ge=!0,Je()},Yt.decode=function(E){return function(r){if(!Ge)throw Error("SF3 decoder has not been initialized yet. Did you await synth.isReady?");var L={};function q(yt){return new Int32Array(U.HEAPU8.buffer,yt,1)[0]}function Ql(yt,pt){var sA=new ArrayBuffer(pt*Float32Array.BYTES_PER_ELEMENT),kl=new Float32Array(sA);return kl.set(new Float32Array(U.HEAPU8.buffer,yt,pt)),kl}L.open=U.cwrap("stb_vorbis_js_open","number",[]),L.close=U.cwrap("stb_vorbis_js_close","void",["number"]),L.channels=U.cwrap("stb_vorbis_js_channels","number",["number"]),L.sampleRate=U.cwrap("stb_vorbis_js_sample_rate","number",["number"]),L.decode=U.cwrap("stb_vorbis_js_decode","number",["number","number","number","number","number"]);var ol,M,Sl,ml,tl=L.open(),al=(ol=r,M=r.byteLength,Sl=U._malloc(M),(ml=new Uint8Array(U.HEAPU8.buffer,Sl,M)).set(new Uint8Array(ol,0,M)),ml),dl=U._malloc(4),Jl=U._malloc(4),Wl=L.decode(tl,al.byteOffset,al.byteLength,dl,Jl);if(U._free(al.byteOffset),Wl<0)throw L.close(tl),U._free(dl),Error("stbvorbis decode failed: "+Wl);for(var yl=L.channels(tl),Vt=Array(yl),zt=new Int32Array(U.HEAPU32.buffer,q(dl),yl),pl=0;pl<yl;pl++)Vt[pl]=Ql(zt[pl],Wl),U._free(zt[pl]);var vt=L.sampleRate(tl);return L.close(tl),U._free(q(dl)),U._free(dl),{data:Vt,sampleRate:vt,eof:!0,error:null}}(E)}})();var ge=Yt,ye=-15e3,Kn=15e3,pe=new Float32Array(Kn-ye+1);for(let e=0;e<pe.length;e++){const l=ye+e;pe[e]=Math.pow(2,l/1200)}var _t=-2e4,Ne=16500,rA=new Float32Array(Ne-_t+1);for(let e=0;e<rA.length;e++){const l=_t+e;rA[e]=440*Math.pow(2,(l-6900)/1200)}function zn(e){return e<_t||e>Ne?440*Math.pow(2,(e-6900)/1200):rA[~~e-_t]}var SA=-1660,vn=1600,uA=new Float32Array((vn-SA)*100+1);for(let e=0;e<uA.length;e++){const l=(SA*100+e)/100;uA[e]=Math.pow(10,-l/20)}function Xe(e){return uA[Math.floor((e-SA)*100)]}function ot(e,l){return(e>>l&1)>0}function CA(e){return e?1:0}var gl=16384,$t=Object.keys(il).length,Ye=4,Pl=new Float32Array(gl+1),ct=new Float32Array(gl+1);Pl[0]=0,Pl[Pl.length-1]=1,ct[0]=0,ct[ct.length-1]=1;for(let e=1;e<gl-1;e++){const l=-.4166666666666667*Math.log(e/(Pl.length-1))/Math.LN10;ct[e]=1-l,Pl[Pl.length-1-e]=l}function ke(e,l,t){const A=!!(e&2);switch(!!(e&1)&&(t=1-t),l){case il.linear:return A?t*2-1:t;case il.switch:return t=t>.5?1:0,A?t*2-1:t;case il.concave:return A?(t=t*2-1,t<0?-Pl[~~(t*-gl)]:Pl[~~(t*gl)]):Pl[~~(t*gl)];case il.convex:return A?(t=t*2-1,t<0?-ct[~~(t*-gl)]:ct[~~(t*gl)]):ct[~~(t*gl)]}}var Ol=class zA{constructor(l=sl.noController,t=il.linear,A=!1,Q=!1,n=!1){R(this,"isBipolar");R(this,"isNegative");R(this,"index");R(this,"isCC");R(this,"curveType");this.isBipolar=Q,this.isNegative=n,this.index=l,this.isCC=A,this.curveType=t}get sourceName(){return this.isCC?Object.keys(v).find(l=>v[l]===this.index)??this.index.toString():Object.keys(sl).find(l=>sl[l]===this.index)??this.index.toString()}get curveTypeName(){return Object.keys(il).find(l=>il[l]===this.curveType)??this.curveType.toString()}static fromSourceEnum(l){const t=ot(l,9),A=ot(l,8),Q=ot(l,7),n=l&127,a=l>>10&3;return new zA(n,a,Q,t,A)}static copyFrom(l){return new zA(l.index,l.curveType,l.isCC,l.isBipolar,l.isNegative)}toString(){return`${this.sourceName} ${this.curveTypeName} ${this.isBipolar?"bipolar":"unipolar"} ${this.isNegative?"negative":"positive"}`}toSourceEnum(){return this.curveType<<10|CA(this.isBipolar)<<9|CA(this.isNegative)<<8|CA(this.isCC)<<7|this.index}isIdentical(l){return this.index===l.index&&this.isNegative===l.isNegative&&this.isCC===l.isCC&&this.isBipolar===l.isBipolar&&this.curveType===l.curveType}getValue(l,t){let A;if(this.isCC)A=l[this.index];else switch(this.index){case sl.noController:A=16383;break;case sl.noteOnKeyNum:A=t.midiNote<<7;break;case sl.noteOnVelocity:A=t.velocity<<7;break;case sl.polyPressure:A=t.pressure<<7;break;default:A=l[this.index+IA];break}const Q=(this.isBipolar?2:0)|(this.isNegative?1:0);return Te[gl*(this.curveType*$t+Q)+A]}},Te=new Float32Array(gl*Ye*$t);for(let e=0;e<$t;e++)for(let l=0;l<Ye;l++){const t=gl*(e*$t+l);for(let A=0;A<gl;A++)Te[t+A]=ke(l,e,A/gl)}var Ut=10;function ql(e,l,t,A,Q){return new Ol(Q,e,A,l,t).toSourceEnum()}var Le=ql(il.linear,!0,!1,!0,v.filterResonance),Vl=class vA{constructor(l=new Ol,t=new Ol,A=i.INVALID,Q=0,n=0,a=!1,s=!1){R(this,"currentValue",0);R(this,"destination",i.initialAttenuation);R(this,"transformAmount",0);R(this,"transformType",0);R(this,"isEffectModulator",!1);R(this,"isDefaultResonantModulator",!1);R(this,"primarySource");R(this,"secondarySource");this.primarySource=l,this.secondarySource=t,this.destination=A,this.transformAmount=Q,this.transformType=n,this.isEffectModulator=a,this.isDefaultResonantModulator=s}get destinationName(){return Object.keys(i).find(l=>i[l]===this.destination)}static isIdentical(l,t,A=!1){return l.primarySource.isIdentical(t.primarySource)&&l.secondarySource.isIdentical(t.secondarySource)&&l.destination===t.destination&&l.transformType===t.transformType&&(!A||l.transformAmount===t.transformAmount)}static copyFrom(l){return new vA(Ol.copyFrom(l.primarySource),Ol.copyFrom(l.secondarySource),l.destination,l.transformAmount,l.transformType,l.isEffectModulator,l.isDefaultResonantModulator)}toString(){return`Source: ${this.primarySource.toString()}
2
2
  Secondary source: ${this.secondarySource.toString()}
3
3
  to: ${this.destinationName}
4
- amount: ${this.transformAmount}`+(this.transformType===2?"absolute value":"")}write(A,e){V(A,this.primarySource.toSourceEnum()),V(A,this.destination),V(A,this.transformAmount),V(A,this.secondarySource.toSourceEnum()),V(A,this.transformType),e&&e.mod++}sumTransform(A){const e=Ot.copyFrom(this);return e.transformAmount+=A.transformAmount,e}},fA=class extends dA{constructor(n,A,e,t,i){const a=(n===219||n===221)&&A===0&&(e===l.reverbEffectsSend||e===l.chorusEffectsSend),s=n===Ln&&A===0&&e===l.initialFilterQ;super(XA.fromSourceEnum(n),XA.fromSourceEnum(A),e,t,i,a,s),this.destination>Ra&&(this.destination=l.INVALID)}},Ft=960,Rt=lA.concave,Ta=[new fA(jA(Rt,!1,!0,!1,EA.noteOnVelocity),0,l.initialAttenuation,Ft,0),new fA(129,0,l.vibLfoToPitch,50,0),new fA(jA(Rt,!1,!0,!0,O.mainVolume),0,l.initialAttenuation,Ft,0),new fA(13,0,l.vibLfoToPitch,50,0),new fA(526,16,l.fineTune,12700,0),new fA(650,0,l.pan,500,0),new fA(jA(Rt,!1,!0,!0,O.expressionController),0,l.initialAttenuation,Ft,0),new fA(219,0,l.reverbEffectsSend,200,0),new fA(221,0,l.chorusEffectsSend,200,0)],Ja=[new fA(jA(lA.linear,!1,!1,!1,EA.polyPressure),0,l.vibLfoToPitch,50,0),new fA(jA(lA.linear,!1,!1,!0,O.tremoloDepth),0,l.modLfoToVolume,24,0),new fA(jA(lA.convex,!0,!1,!0,O.attackTime),0,l.attackVolEnv,6e3,0),new fA(jA(lA.linear,!0,!1,!0,O.releaseTime),0,l.releaseVolEnv,3600,0),new fA(jA(lA.linear,!0,!1,!0,O.brightness),0,l.initialFilterFc,6e3,0),new fA(Ln,0,l.initialFilterQ,250,0)],Nn=Ta.concat(Ja),Le=4,kA=class{constructor(n,A,e=!0){h(this,"generatorType");h(this,"generatorValue",0);if(this.generatorType=n,A===void 0)throw new Error("No value provided.");if(this.generatorValue=Math.round(A),e){const t=L[n];t!==void 0&&(this.generatorValue=Math.max(t.min,Math.min(t.max,this.generatorValue)))}}write(n,A){V(n,this.generatorType),V(n,this.generatorValue),A.gen++}toString(){return`${Object.keys(l).find(n=>l[n]===this.generatorType)}: ${this.generatorValue}`}},et=4,tt=class{constructor(){h(this,"velRange",{min:-1,max:127});h(this,"keyRange",{min:-1,max:127});h(this,"generators",[]);h(this,"modulators",[])}get hasKeyRange(){return this.keyRange.min!==-1}get hasVelRange(){return this.velRange.min!==-1}get fineTuning(){const n=this.getGenerator(l.coarseTune,0),A=this.getGenerator(l.fineTune,0);return n*100+A}set fineTuning(n){const A=Math.trunc(n/100),e=n%100;this.setGenerator(l.coarseTune,A),this.setGenerator(l.fineTune,e)}addToGenerator(n,A,e=!0){const t=this.getGenerator(n,L[n].def);this.setGenerator(n,A+t,e)}setGenerator(n,A,e=!0){switch(n){case l.sampleID:throw new Error("Use setSample()");case l.instrument:throw new Error("Use setInstrument()");case l.velRange:case l.keyRange:throw new Error("Set the range manually")}if(A===null){this.generators=this.generators.filter(i=>i.generatorType!==n);return}const t=this.generators.findIndex(i=>i.generatorType===n);t>=0?this.generators[t]=new kA(n,A,e):this.addGenerators(new kA(n,A,e))}addGenerators(...n){n.forEach(A=>{switch(A.generatorType){default:this.generators.push(A);break;case l.sampleID:case l.instrument:break;case l.velRange:this.velRange.min=A.generatorValue&127,this.velRange.max=A.generatorValue>>8&127;break;case l.keyRange:this.keyRange.min=A.generatorValue&127,this.keyRange.max=A.generatorValue>>8&127}})}addModulators(...n){this.modulators.push(...n)}getGenerator(n,A){var e;return((e=this.generators.find(t=>t.generatorType===n))==null?void 0:e.generatorValue)??A}copyFrom(n){this.generators=n.generators.map(A=>new kA(A.generatorType,A.generatorValue,!1)),this.modulators=n.modulators.map(dA.copyFrom.bind(dA)),this.velRange={...n.velRange},this.keyRange={...n.keyRange}}getGenCount(){let n=this.generators.filter(A=>A.generatorType!==l.sampleID&&A.generatorType!==l.instrument&&A.generatorType!==l.keyRange&&A.generatorType!==l.velRange).length;return this.hasVelRange&&n++,this.hasKeyRange&&n++,n}write(n,A,e,t,i){const a=t.gen,s=t.mod;V(e.pdta,a&65535),V(e.pdta,s&65535),V(e.xdta,a>>16),V(e.xdta,s>>16),t.bag++,this.getWriteGenerators(i).forEach(I=>I.write(n,t)),this.modulators.forEach(I=>I.write(A,t))}getWriteGenerators(n){const A=this.generators.filter(e=>e.generatorType!==l.sampleID&&e.generatorType!==l.instrument&&e.generatorType!==l.keyRange&&e.generatorType!==l.velRange);if(!n)throw new Error("No bank provided! ");return this.hasVelRange&&A.unshift(new kA(l.velRange,this.velRange.max<<8|Math.max(this.velRange.min,0),!1)),this.hasKeyRange&&A.unshift(new kA(l.keyRange,this.keyRange.max<<8|Math.max(this.keyRange.min,0),!1)),A}},Tn=class extends tt{},Ka=class extends tt{constructor(A,e){super();h(this,"parentPreset");h(this,"_instrument");this.parentPreset=A,this._instrument=e,this._instrument.linkTo(this.parentPreset)}get instrument(){return this._instrument}set instrument(A){this._instrument&&this._instrument.unlinkFrom(this.parentPreset),this._instrument=A,this._instrument.linkTo(this.parentPreset)}getGenCount(){return super.getGenCount()+1}getWriteGenerators(A){const e=super.getWriteGenerators(A);if(!A)throw new Error("Instrument ID cannot be determined without the sound bank itself.");const t=A.instruments.indexOf(this.instrument);if(t<0)throw new Error(`${this.instrument.name} does not exist in ${A.soundBankInfo.name}! Cannot write instrument generator.`);return e.push(new kA(l.instrument,t,!1)),e}},xa=class extends tt{constructor(A,e){super();h(this,"parentInstrument");h(this,"useCount");h(this,"_sample");this.parentInstrument=A,this._sample=e,e.linkTo(this.parentInstrument),this.useCount=A.useCount}get sample(){return this._sample}set sample(A){this._sample&&this._sample.unlinkFrom(this.parentInstrument),this._sample=A,A.linkTo(this.parentInstrument)}getGenCount(){return super.getGenCount()+1}getWriteGenerators(A){const e=super.getWriteGenerators(A),t=A.samples.indexOf(this.sample);if(t<0)throw new Error(`${this.sample.name} does not exist in ${A.soundBankInfo.name}! Cannot write sampleID generator.`);return e.push(new kA(l.sampleID,t,!1)),e}},Jn=22,Va=new Set([l.velRange,l.keyRange,l.instrument,l.sampleID,l.exclusiveClass,l.endOper,l.sampleModes,l.startloopAddrsOffset,l.startloopAddrsCoarseOffset,l.endloopAddrsOffset,l.endloopAddrsCoarseOffset,l.startAddrsOffset,l.startAddrsCoarseOffset,l.endAddrOffset,l.endAddrsCoarseOffset,l.initialAttenuation,l.fineTune,l.coarseTune,l.keyNumToVolEnvHold,l.keyNumToVolEnvDecay,l.keyNumToModEnvHold,l.keyNumToModEnvDecay]),nt=class{constructor(){h(this,"name","");h(this,"zones",[]);h(this,"globalZone",new Tn);h(this,"linkedTo",[])}get useCount(){return this.linkedTo.length}createZone(n){const A=new xa(this,n);return this.zones.push(A),A}linkTo(n){this.linkedTo.push(n),this.zones.forEach(A=>A.useCount++)}unlinkFrom(n){const A=this.linkedTo.indexOf(n);if(A<0){hA(`Cannot unlink ${n.name} from ${this.name}: not linked.`);return}this.linkedTo.splice(A,1),this.zones.forEach(e=>e.useCount--)}deleteUnusedZones(){this.zones=this.zones.filter(n=>{const A=n.useCount>0;return A||n.sample.unlinkFrom(this),A})}delete(){if(this.useCount>0)throw new Error(`Cannot delete an instrument that is used by: ${this.linkedTo.map(n=>n.name).toString()}.`);this.zones.forEach(n=>n.sample.unlinkFrom(this))}deleteZone(n,A=!1){const e=this.zones[n];return e.useCount-=1,e.useCount<1||A?(e.sample.unlinkFrom(this),this.zones.splice(n,1),!0):!1}globalize(){var t;const n=this.globalZone;for(let i=0;i<58;i++){if(Va.has(i))continue;i=i;let a={};const s=((t=L[i])==null?void 0:t.def)||0;a[s]=0;for(const g of this.zones){const I=g.getGenerator(i,void 0);I!==void 0?a[I]===void 0?a[I]=1:a[I]++:a[s]++;let o;switch(i){default:continue;case l.decayVolEnv:o=l.keyNumToVolEnvDecay;break;case l.holdVolEnv:o=l.keyNumToVolEnvHold;break;case l.decayModEnv:o=l.keyNumToModEnvDecay;break;case l.holdModEnv:o=l.keyNumToModEnvHold}if(g.getGenerator(o,void 0)!==void 0){a={};break}}if(Object.keys(a).length>0){const I=Object.entries(a).reduce((B,C)=>B[1]<C[1]?C:B,["0",0]),o=parseInt(I[0]);o!==s&&n.setGenerator(i,o,!1),this.zones.forEach(B=>{const C=B.getGenerator(i,void 0);C!==void 0?C===o&&B.setGenerator(i,null):o!==s&&B.setGenerator(i,s)})}}const e=this.zones[0].modulators.map(i=>dA.copyFrom(i));for(const i of e){let a=!0;for(const s of this.zones){if(!a)continue;s.modulators.find(I=>dA.isIdentical(I,i))||(a=!1)}if(a){n.addModulators(dA.copyFrom(i));for(const s of this.zones){const g=s.modulators.find(I=>dA.isIdentical(I,i));g&&g.transformAmount===i.transformAmount&&s.modulators.splice(s.modulators.indexOf(g),1)}}}}getSize(){const n=this.zones.reduce((e,t)=>t.modulators.length+e,0)+this.globalZone.modulators.length,A=this.zones.reduce((e,t)=>t.getGenCount()+e,0)+this.globalZone.getGenCount();return{mod:n*Ie,bag:(this.zones.length+1)*et,gen:A*Le,hdr:Jn}}write(n,A,e,t,i,a){_(`%cWriting ${this.name}...`,f.info),mA(t.pdta,this.name.substring(0,20),20),mA(t.xdta,this.name.substring(20),20),V(t.pdta,i.hdr&65535),V(t.xdta,i.hdr>>>16),i.hdr+=this.zones.length+1,this.globalZone.write(n,A,e,i,a),this.zones.forEach(s=>s.write(n,A,e,i,a))}},Kn=38,Ne=class{constructor(n,A=new Tn){h(this,"parentSoundBank");h(this,"name","");h(this,"program",0);h(this,"bankMSB",0);h(this,"bankLSB",0);h(this,"isGMGSDrum",!1);h(this,"zones",[]);h(this,"globalZone");h(this,"library",0);h(this,"genre",0);h(this,"morphology",0);this.parentSoundBank=n,this.globalZone=A}get isXGDrums(){return this.parentSoundBank.isXGBank&&re.isXGDrums(this.bankMSB)}get isAnyDrums(){const n=this.parentSoundBank.isXGBank;return this.isGMGSDrum||n&&re.isXGDrums(this.bankMSB)&&this.bankMSB!==126}delete(){this.zones.forEach(n=>{var A;return(A=n.instrument)==null?void 0:A.unlinkFrom(this)})}deleteZone(n){var A,e;(e=(A=this.zones[n])==null?void 0:A.instrument)==null||e.unlinkFrom(this),this.zones.splice(n,1)}createZone(n){const A=new Ka(this,n);return this.zones.push(A),A}preload(n,A){for(let e=n;e<A+1;e++)for(let t=0;t<128;t++)this.getSynthesisData(e,t).forEach(i=>{i.sample.getAudioData()})}matches(n){return qe.matches(this,n)}getSize(){const n=this.zones.reduce((e,t)=>t.modulators.length+e,0)+this.globalZone.modulators.length,A=this.zones.reduce((e,t)=>t.getGenCount()+e,0)+this.globalZone.getGenCount();return{mod:n*Ie,bag:(this.zones.length+1)*et,gen:A*Le,hdr:Kn}}getSynthesisData(n,A){if(this.zones.length<1)return[];function e(C,Q){return Q>=C.min&&Q<=C.max}function t(C,Q){C.push(...Q.filter(c=>!C.find(r=>r.generatorType===c.generatorType)))}function i(C,Q){C.push(...Q.filter(c=>!C.find(r=>dA.isIdentical(c,r))))}const a=[],s=[...this.globalZone.generators],g=[...this.globalZone.modulators],I=this.globalZone.keyRange,o=this.globalZone.velRange;return this.zones.filter(C=>e(C.hasKeyRange?C.keyRange:I,n)&&e(C.hasVelRange?C.velRange:o,A)).forEach(C=>{const Q=C.instrument;if(!Q||Q.zones.length<1)return;const c=C.generators,r=C.modulators,m=[...Q.globalZone.generators],F=[...Q.globalZone.modulators],k=Q.globalZone.keyRange,R=Q.globalZone.velRange;Q.zones.filter(q=>e(q.hasKeyRange?q.keyRange:k,n)&&e(q.hasVelRange?q.velRange:R,A)).forEach(q=>{const w=[...q.generators],N=[...q.modulators];t(c,s),t(w,m),i(r,g),i(N,F),i(N,this.parentSoundBank.defaultModulators);const P=[...N];for(const cA of r){const CA=P.findIndex(IA=>dA.isIdentical(cA,IA));CA!==-1?P[CA]=P[CA].sumTransform(cA):P.push(cA)}q.sample&&a.push({instrumentGenerators:w,presetGenerators:c,modulators:P,sample:q.sample})})}),a}toMIDIString(){return qe.toMIDIString(this)}toString(){return qe.toNamedMIDIString(this)}toFlattenedInstrument(){const n=(o,B)=>{o.push(...B.filter(C=>!o.find(Q=>Q.generatorType===C.generatorType)))},A=(o,B)=>({min:Math.max(o.min,B.min),max:Math.min(o.max,B.max)}),e=(o,B)=>{o.push(...B.filter(C=>!o.find(Q=>dA.isIdentical(C,Q))))},t=new nt;t.name=this.name;const i=[],a=[],s=this.globalZone;i.push(...s.generators),a.push(...s.modulators);const g=s.keyRange,I=s.velRange;for(const o of this.zones){if(!o.instrument)throw new Error("No instrument in a preset zone.");let B=o.keyRange;o.hasKeyRange||(B=g);let C=o.velRange;o.hasVelRange||(C=I);const Q=o.generators.map(w=>new kA(w.generatorType,w.generatorValue));n(Q,i);const c=[...o.modulators];e(c,a);const r=o.instrument,m=r.zones,F=[],k=[],R=r.globalZone;F.push(...R.generators),k.push(...R.modulators);const b=R.keyRange,q=R.velRange;for(const w of m){if(!w.sample)throw new Error("No sample in an instrument zone.");let N=w.keyRange;w.hasKeyRange||(N=b);let P=w.velRange;if(w.hasVelRange||(P=q),N=A(N,B),P=A(P,C),N.max<N.min||P.max<P.min)continue;const cA=w.generators.map(H=>new kA(H.generatorType,H.generatorValue));n(cA,F);const CA=[...w.modulators];e(CA,k);const IA=[...CA];for(const H of c){const K=IA.findIndex(W=>dA.isIdentical(H,W));K!==-1?IA[K]=IA[K].sumTransform(H):IA.push(H)}let Y=cA.map(H=>new kA(H.generatorType,H.generatorValue));for(const H of Q){if(H.generatorType===l.velRange||H.generatorType===l.keyRange||H.generatorType===l.instrument||H.generatorType===l.endOper||H.generatorType===l.sampleModes)continue;const K=cA.findIndex(W=>W.generatorType===H.generatorType);if(K!==-1){const W=Y[K].generatorValue+H.generatorValue;Y[K]=new kA(H.generatorType,W)}else{const W=L[H.generatorType].def+H.generatorValue;Y.push(new kA(H.generatorType,W))}}Y=Y.filter(H=>H.generatorType!==l.sampleID&&H.generatorType!==l.keyRange&&H.generatorType!==l.velRange&&H.generatorType!==l.endOper&&H.generatorType!==l.instrument&&H.generatorValue!==L[H.generatorType].def);const j=t.createZone(w.sample);j.keyRange=N,j.velRange=P,j.keyRange.min===0&&j.keyRange.max===127&&(j.keyRange.min=-1),j.velRange.min===0&&j.velRange.max===127&&(j.velRange.min=-1),j.addGenerators(...Y),j.addModulators(...IA)}}return t}write(n,A,e,t,i,a){_(`%cWriting ${this.name}...`,f.info),mA(t.pdta,this.name.substring(0,20),20),mA(t.xdta,this.name.substring(20),20),V(t.pdta,this.program);let s=this.bankMSB;this.isGMGSDrum?s=128:this.bankMSB===0&&(s=this.bankLSB),V(t.pdta,s),t.xdta.currentIndex+=4,V(t.pdta,i.hdr&65535),V(t.xdta,i.hdr>>16),tA(t.pdta,this.library),tA(t.pdta,this.genre),tA(t.pdta,this.morphology),t.xdta.currentIndex+=12,i.hdr+=this.zones.length+1,this.globalZone.write(n,A,e,i,a),this.zones.forEach(g=>g.write(n,A,e,i,a))}};function xn(n,A){let e;return A?e=n.find(t=>t.isXGDrums):e=n.find(t=>t.isGMGSDrum),e||(n.find(t=>t.isAnyDrums)??n[0])}function Ya(n,A,e){if(n.length<1)throw new Error("No presets!");A.isGMGSDrum&&re.isSystemXG(e)&&(A={...A,isGMGSDrum:!1,bankLSB:0,bankMSB:re.getDrumBank(e)});const{isGMGSDrum:t,bankLSB:i,bankMSB:a,program:s}=A,g=re.isSystemXG(e),I=re.isXGDrums(a)&&g;let o=n.find(c=>c.matches(A));if(o&&(!I||I&&o.isXGDrums))return o;const B=c=>{_(`%cPreset %c${qe.toMIDIString(A)}%c not found. (${e}) Replaced with %c${c.toString()}`,f.warn,f.unrecognized,f.warn,f.value)};if(t){let c=n.find(r=>r.isGMGSDrum&&r.program===s);return c||(c=n.find(r=>r.isAnyDrums&&r.program===s),c)?(B(c),c):(c=xn(n,!1),B(c),c)}if(I){let c=n.find(r=>r.program===s&&r.isXGDrums);return c||(c=n.find(r=>r.isAnyDrums&&r.program===s),c)?(B(c),c):(c=xn(n,!0),B(c),c)}const C=n.filter(c=>c.program===s&&!c.isAnyDrums);if(C.length<1)return B(n[0]),n[0];if(g?o=C.find(c=>c.bankLSB===i):o=C.find(c=>c.bankMSB===a),o)return B(o),o;const Q=Math.max(a,i);return o=C.find(c=>c.bankLSB===Q||c.bankMSB===Q),o?(B(o),o):(B(C[0]),C[0])}var Vn=Math.PI/2,it=-500,Yn=500,Mt=Yn-it,Oa=new Float32Array(Mt+1),Pa=new Float32Array(Mt+1);for(let n=it;n<=Yn;n++){const A=(n-it)/Mt,e=n-it;Oa[e]=Math.cos(Vn*A),Pa[e]=Math.sin(Vn*A)}var On=(YA=class{constructor(A){h(this,"resonanceCb",0);h(this,"currentInitialFc",13500);h(this,"a0",0);h(this,"a1",0);h(this,"a2",0);h(this,"a3",0);h(this,"a4",0);h(this,"x1",0);h(this,"x2",0);h(this,"y1",0);h(this,"y2",0);h(this,"lastTargetCutoff",1/0);h(this,"initialized",!1);h(this,"sampleRate");h(this,"maxCutoff");this.sampleRate=A,this.maxCutoff=A*.45}static apply(A,e,t,i){const a=A.modulatedGenerators[l.initialFilterFc],s=A.filter;s.initialized?s.currentInitialFc+=(a-s.currentInitialFc)*i:(s.initialized=!0,s.currentInitialFc=a);const g=s.currentInitialFc+t,I=A.modulatedGenerators[l.initialFilterQ];if(s.currentInitialFc>13499&&g>13499&&I===0){s.currentInitialFc=13500;return}(Math.abs(s.lastTargetCutoff-g)>1||s.resonanceCb!==I)&&(s.lastTargetCutoff=g,s.resonanceCb=I,YA.calculateCoefficients(s,g));for(let o=0;o<e.length;o++){const B=e[o],C=s.a0*B+s.a1*s.x1+s.a2*s.x2-s.a3*s.y1-s.a4*s.y2;s.x2=s.x1,s.x1=B,s.y2=s.y1,s.y1=C,e[o]=C}}static calculateCoefficients(A,e){var b,q,w;e=~~e;const t=A.resonanceCb,i=(q=(b=YA.cachedCoefficients)==null?void 0:b[t])==null?void 0:q[e];if(i!==void 0){A.a0=i.a0,A.a1=i.a1,A.a2=i.a2,A.a3=i.a3,A.a4=i.a4;return}let a=La(e);a=Math.min(a,A.maxCutoff);const s=t/10,g=Gn(-(s-3.01)),I=1/Math.sqrt(Gn(-s)),o=2*Math.PI*a/A.sampleRate,B=Math.cos(o),C=Math.sin(o)/(2*g),Q=(1-B)*I,c=Q/2,r=c,m=1+C,F=-2*B,k=1-C,R={a0:c/m,a1:Q/m,a2:r/m,a3:F/m,a4:k/m};A.a0=R.a0,A.a1=R.a1,A.a2=R.a2,A.a3=R.a3,A.a4=R.a4,(w=YA.cachedCoefficients)[t]??(w[t]=[]),YA.cachedCoefficients[t][e]=R}},h(YA,"cachedCoefficients",[]),YA),Dt=new On(44100);Dt.resonanceCb=0;for(let n=1500;n<13500;n++)Dt.currentInitialFc=n,On.calculateCoefficients(Dt,n);var Pn=new Float32Array(1e3);for(let n=0;n<Pn.length;n++)Pn[n]=Un(0,lA.convex,n/1e3);var Gt=class Pt{constructor(A,e,t,i,a,s,g,I,o,B,C,Q,c){h(this,"patch");h(this,"lockPreset");h(this,"lockedSystem");h(this,"midiControllers");h(this,"lockedControllers");h(this,"customControllers");h(this,"lockVibrato");h(this,"channelVibrato");h(this,"channelTransposeKeyShift");h(this,"channelOctaveTuning");h(this,"isMuted");h(this,"drumChannel");h(this,"channelNumber");this.patch=A,this.lockPreset=e,this.lockedSystem=t,this.midiControllers=i,this.lockedControllers=a,this.customControllers=s,this.lockVibrato=g,this.channelVibrato=I,this.channelTransposeKeyShift=o,this.channelOctaveTuning=B,this.isMuted=C,this.drumChannel=Q,this.channelNumber=c}static copyFrom(A){return new Pt({...A.patch},A.lockPreset,A.lockedSystem,A.midiControllers.slice(),[...A.lockedControllers],A.customControllers.slice(),A.lockVibrato,{...A.channelVibrato},A.channelTransposeKeyShift,A.channelOctaveTuning,A.isMuted,A.drumChannel,A.channelNumber)}static create(A,e){var i;const t=A.midiChannels[e];return new Pt({...t.patch,name:((i=t==null?void 0:t.preset)==null?void 0:i.name)??"undefined"},t.lockPreset,t.lockedSystem,t.midiControllers.slice(),[...t.lockedControllers],t.customControllers.slice(),t.lockGSNRPNParams,{...t.channelVibrato},t.channelTransposeKeyShift,t.channelOctaveTuning.slice(),t.isMuted,t.drumChannel,e)}apply(A){const e=A.midiChannels[this.channelNumber];e.muteChannel(this.isMuted),e.setDrums(this.drumChannel),e.midiControllers.set(this.midiControllers),e.lockedControllers=this.lockedControllers,e.customControllers.set(this.customControllers),e.updateChannelTuning(),e.channelVibrato=this.channelVibrato,e.lockGSNRPNParams=this.lockVibrato,e.channelTransposeKeyShift=this.channelTransposeKeyShift,e.channelOctaveTuning=this.channelOctaveTuning,e.setPresetLock(!1),e.setPatch(this.patch),e.setPresetLock(this.lockPreset),e.lockedSystem=this.lockedSystem}},Ha=class{constructor(){h(this,"velocity",-1);h(this,"patch",{bankLSB:-1,bankMSB:-1,isGMGSDrum:!1,program:-1});h(this,"gain",1)}},Hn=class Ht{constructor(A,e,t){h(this,"channelSnapshots");h(this,"keyMappings");h(this,"masterParameters");this.channelSnapshots=A,this.masterParameters=e,this.keyMappings=t}static create(A){const e=A.midiChannels.map((t,i)=>Gt.create(A,i));return new Ht(e,A.getAllMasterParameters(),A.keyModifierManager.getMappings())}static copyFrom(A){return new Ht(A.channelSnapshots.map(e=>Gt.copyFrom(e)),{...A.masterParameters},[...A.keyMappings])}apply(A){for(Object.entries(this.masterParameters).forEach(([t,i])=>{A.setMasterParameter(t,i)}),A.keyModifierManager.setMappings(this.keyMappings);A.midiChannels.length<this.channelSnapshots.length;)A.createMIDIChannel();this.channelSnapshots.forEach(t=>{t.apply(A)})}},Za={masterGain:ua,masterPan:0,voiceCap:Qa,interpolationType:fa.hermite,midiSystem:da,monophonicRetriggerMode:!1,reverbGain:1,chorusGain:1,blackMIDIMode:!1,transposition:0,deviceID:le},bt=20;async function Wa(n,A,e,t,i,a,s){let g=0,I=0;const o=[];for(const Q of n.samples){t&&a&&await Q.compressSample(a),i&&Q.setAudioData(Q.getAudioData(),Q.sampleRate);const c=Q.getRawData(!0);g++,await(s==null?void 0:s(Q.name,g,n.samples.length)),_(`%cEncoded sample %c${g}. ${Q.name}%c of %c${n.samples.length}%c. Compressed: %c${Q.isCompressed}%c.`,f.info,f.recognized,f.info,f.recognized,f.info,Q.isCompressed?f.recognized:f.unrecognized,f.info),I+=c.length+(Q.isCompressed?0:92),o.push(c)}I%2!==0&&I++;const B=new aA(I+bt);mA(B,"LIST"),_e(B,I+bt-8,4),mA(B,"sdta"),mA(B,"smpl"),_e(B,I,4);let C=0;return n.samples.forEach((Q,c)=>{const r=o[c];B.set(r,C+bt);let m,F;Q.isCompressed?(m=C,F=m+r.length):(m=C/2,F=m+r.length/2,C+=92),C+=r.length,A.push(m),e.push(F)}),B}var Xa=48e3,Ut=class{constructor(n,A,e,t,i,a,s){h(this,"name");h(this,"sampleRate");h(this,"originalKey");h(this,"pitchCorrection");h(this,"linkedSample");h(this,"sampleType");h(this,"loopStart");h(this,"loopEnd");h(this,"linkedTo",[]);h(this,"dataOverridden",!0);h(this,"compressedData");h(this,"audioData");this.name=n,this.sampleRate=A,this.originalKey=e,this.pitchCorrection=t,this.loopStart=a,this.loopEnd=s,this.sampleType=i}get isCompressed(){return this.compressedData!==void 0}get isLinked(){return this.sampleType===pA.rightSample||this.sampleType===pA.leftSample||this.sampleType===pA.linkedSample}get useCount(){return this.linkedTo.length}getRawData(n){return this.compressedData&&n&&!this.dataOverridden?this.compressedData:this.encodeS16LE()}resampleData(n){let A=this.getAudioData();const e=n/this.sampleRate,t=new Float32Array(Math.floor(A.length*e));for(let i=0;i<t.length;i++)t[i]=A[Math.floor(i*(1/e))];A=t,this.sampleRate=n,this.loopStart=Math.floor(this.loopStart*e),this.loopEnd=Math.floor(this.loopEnd*e),this.audioData=A}async compressSample(n){if(!this.isCompressed)try{let A=this.getAudioData();(this.sampleRate<8e3||this.sampleRate>96e3)&&(this.resampleData(Xa),A=this.getAudioData());const e=await n(A,this.sampleRate);this.setCompressedData(e)}catch(A){hA(`Failed to compress ${this.name}. Leaving as uncompressed!`,A),this.compressedData=void 0}}setSampleType(n){if(this.sampleType=n,this.isLinked||(this.linkedSample&&(this.linkedSample.linkedSample=void 0,this.linkedSample.sampleType=n),this.linkedSample=void 0),(n&32768)>0)throw new Error("ROM samples are not supported.")}unlinkSample(){this.setSampleType(pA.monoSample)}setLinkedSample(n,A){if(n.linkedSample)throw new Error(`${n.name} is linked tp ${n.linkedSample.name}. Unlink it first.`);if(this.linkedSample=n,n.linkedSample=this,A===pA.leftSample)this.setSampleType(pA.leftSample),n.setSampleType(pA.rightSample);else if(A===pA.rightSample)this.setSampleType(pA.rightSample),n.setSampleType(pA.leftSample);else if(A===pA.linkedSample)this.setSampleType(pA.linkedSample),n.setSampleType(pA.linkedSample);else throw new Error("Invalid sample type: "+A)}linkTo(n){this.linkedTo.push(n)}unlinkFrom(n){const A=this.linkedTo.indexOf(n);if(A<0){hA(`Cannot unlink ${n.name} from ${this.name}: not linked.`);return}this.linkedTo.splice(A,1)}getAudioData(){if(this.audioData)return this.audioData;if(this.isCompressed)return this.audioData=this.decodeVorbis(),this.audioData;throw new Error("Sample data is undefined for a BasicSample instance.")}setAudioData(n,A){this.audioData=n,this.sampleRate=A,this.dataOverridden=!0,this.compressedData=void 0}setCompressedData(n){this.audioData=void 0,this.compressedData=n,this.dataOverridden=!1}encodeS16LE(){const n=this.getAudioData(),A=new Int16Array(n.length),e=n.length;for(let t=0;t<e;t++){let i=n[t]*32768;i>32767?i=32767:i<-32768&&(i=-32768),A[t]=i}return new aA(A.buffer)}decodeVorbis(){if(this.audioData)return this.audioData;if(!this.compressedData)throw new Error("Compressed data is missing.");try{const A=Fn.decode(this.compressedData).data[0];if(A===void 0)return hA(`Error decoding sample ${this.name}: Vorbis decode returned undefined.`),new Float32Array(0);for(let e=0;e<A.length;e++)A[e]=Math.max(-1,Math.min(A[e],.999969482421875));return A}catch(n){return hA(`Error decoding sample ${this.name}: ${n}`),new Float32Array(this.loopEnd+1)}}},ja=class extends Ut{constructor(){super("",44100,60,0,pA.monoSample,0,0)}},za=16;function _a(n,A,e){const i=46*(n.samples.length+1),a=new aA(i),s=new aA(i);n.samples.forEach((o,B)=>{mA(a,o.name.substring(0,20),20),mA(s,o.name.substring(20),20);const C=A[B];tA(a,C),s.currentIndex+=4;const Q=e[B];tA(a,Q),s.currentIndex+=4;let c=o.loopStart+C,r=o.loopEnd+C;o.isCompressed&&(c-=C,r-=C),tA(a,c),tA(a,r),tA(a,o.sampleRate),a[a.currentIndex++]=o.originalKey,a[a.currentIndex++]=o.pitchCorrection,s.currentIndex+=14;const m=o.linkedSample?n.samples.indexOf(o.linkedSample):0;V(a,Math.max(0,m)&65535),V(s,Math.max(0,m)>>16);let F=o.sampleType;o.isCompressed&&(F|=za),V(a,F),s.currentIndex+=2}),mA(a,"EOS",46),mA(s,"EOS",46);const g=rA("shdr",a),I=rA("shdr",s);return{pdta:g,xdta:I}}function Zn(n,A=!1){const e=A?n.presets:n.instruments,t=A?"pgen":"igen",i=A?"pmod":"imod",a=A?"pbag":"ibag",s=A?"phdr":"inst",g=A?Kn:Jn,I=e.map(R=>(R instanceof Ne,R.getSize())),o=I.reduce((R,b)=>R+b.gen,0)+Le,B=new aA(o),C=I.reduce((R,b)=>R+b.mod,0)+Ie,Q=new aA(C),c=I.reduce((R,b)=>R+b.bag,0)+et,r={pdta:new aA(c),xdta:new aA(c)},m=I.reduce((R,b)=>b.hdr+R,0)+g,F={pdta:new aA(m),xdta:new aA(m)},k={gen:0,bag:0,mod:0,hdr:0};return e.forEach(R=>{R instanceof Ne,R.write(B,Q,r,F,k,n)}),A?(mA(F.pdta,"EOP",20),F.pdta.currentIndex+=4,V(F.pdta,k.hdr&65535),F.pdta.currentIndex+=12,mA(F.xdta,"",20),F.xdta.currentIndex+=4,V(F.xdta,k.hdr>>16),F.xdta.currentIndex+=12):(mA(F.pdta,"EOI",20),mA(F.xdta,"",20),V(F.pdta,k.hdr&65535),V(F.xdta,k.hdr>>16)),V(r.pdta,k.gen&65535),V(r.xdta,k.gen>>16),V(r.pdta,k.mod&65535),V(r.xdta,k.mod>>16),{writeXdta:Math.max(o/Le,C/Ie,c/et,m/g)>65535,gen:{pdta:rA(t,B),xdta:rA(i,new aA(Le))},mod:{pdta:rA(i,Q),xdta:rA(i,new aA(Ie))},bag:{pdta:rA(a,r.pdta),xdta:rA(a,r.xdta)},hdr:{pdta:rA(s,F.pdta),xdta:rA(s,F.xdta)}}}var vt={compress:!1,compressionFunction:void 0,progressFunction:void 0,writeDefaultModulators:!0,writeExtendedLimits:!0,decompress:!1};async function $a(n,A=vt){var b;const e=la(A,vt);if(e!=null&&e.compress){if(typeof(e==null?void 0:e.compressionFunction)!="function")throw new Error("No compression function supplied but compression enabled.");if(e!=null&&e.decompress)throw new Error("Decompressed and compressed at the same time.")}JA("%cSaving soundbank...",f.info),_(`%cCompression: %c${(e==null?void 0:e.compress)||"false"}%c`,f.info,f.recognized,f.info,f.recognized),se("%cWriting INFO...",f.info);const t=[];n.soundBankInfo.software="SpessaSynth",(e!=null&&e.compress||n.samples.some(q=>q.isCompressed))&&(n.soundBankInfo.version.major=3,n.soundBankInfo.version.minor=0),e!=null&&e.decompress&&(n.soundBankInfo.version.major=2,n.soundBankInfo.version.minor=4);const i=(q,w)=>{t.push(rA(q,ye(w,!0,!0)))},a=new aA(4);if(V(a,n.soundBankInfo.version.major),V(a,n.soundBankInfo.version.minor),t.push(rA("ifil",a)),n.soundBankInfo.romVersion){const q=new aA(4);V(q,n.soundBankInfo.romVersion.major),V(q,n.soundBankInfo.romVersion.minor),t.push(rA("iver",q))}const s=(((b=n.soundBankInfo)==null?void 0:b.comment)??"")+(n.soundBankInfo.subject?`
5
- ${n.soundBankInfo.subject}`:"");for(const[q,w]of Object.entries(n.soundBankInfo)){const N=q,P=w;if(P)switch(N){case"name":i("INAM",P);break;case"comment":i("ICMT",s);break;case"copyright":i("ICOP",P);break;case"creationDate":i("ICRD",P.toISOString());break;case"engineer":i("IENG",P);break;case"product":i("IPRD",P);break;case"romInfo":i("irom",P);break;case"software":i("ISFT",P);break;case"soundEngine":i("isng",P);break}}if(n.defaultModulators.some(q=>Nn.findIndex(w=>dA.isIdentical(w,q,!0))===-1)&&(e!=null&&e.writeDefaultModulators)){const q=n.defaultModulators;_(`%cWriting %c${q.length}%c default modulators...`,f.info,f.recognized,f.info);const w=Ie+q.length*Ie,N=new aA(w);for(const P of q)P.write(N);_e(N,0,Ie),t.push(rA("DMOD",N))}_("%cWriting SDTA...",f.info);const I=[],o=[],B=await Wa(n,I,o,e.compress,e.decompress,e==null?void 0:e.compressionFunction,e==null?void 0:e.progressFunction);_("%cWriting PDTA...",f.info),_("%cWriting SHDR...",f.info);const C=_a(n,I,o);se("%cWriting instruments...",f.info);const Q=Zn(n,!1);se("%cWriting presets...",f.info);const c=Zn(n,!0),r=[c.hdr,c.bag,c.mod,c.gen,Q.hdr,Q.bag,Q.mod,Q.gen,C],m=bA("pdta",r.map(q=>q.pdta),!0);if(e.writeExtendedLimits&&(Q.writeXdta||c.writeXdta||n.presets.some(q=>q.name.length>20)||n.instruments.some(q=>q.name.length>20)||n.samples.some(q=>q.name.length>20))){_("%cWriting the xdta chunk as writeExendedLimits is enabled and at least one condition was met.",f.info,f.value);const q=bA("xdta",r.map(w=>w.xdta),!0);t.push(q)}const k=bA("INFO",t,!0);_("%cWriting the output file...",f.info);const R=bA("RIFF",[ye("sfbk"),k,B,m]);return _(`%cSaved succesfully! Final file size: %c${R.length}`,f.info,f.recognized),R.buffer}var ke=class{static verifyHeader(n,...A){for(const e of A)if(n.header.toLowerCase()===e.toLowerCase())return;this.parsingError(`Invalid DLS chunk header! Expected "${A.join(", or ")}" got "${n.header.toLowerCase()}"`)}static verifyText(n,...A){for(const e of A)if(n.toLowerCase()===e.toLowerCase())return;this.parsingError(`FourCC error: Expected "${A.join(", or ")}" got "${n.toLowerCase()}"`)}static parsingError(n){throw new Error(`DLS parse error: ${n} The file may be corrupted.`)}static verifyAndReadList(n,...A){this.verifyHeader(n,"LIST"),n.data.currentIndex=0,this.verifyText(ie(n.data,4),...A);const e=[];for(;n.data.length>n.data.currentIndex;)e.push(TA(n.data));return e}},Te=20,Lt=16,we=class He extends ke{constructor(){super(...arguments);h(this,"gain",0);h(this,"unityNote",60);h(this,"fineTune",0);h(this,"loops",new Array);h(this,"fulOptions",2)}static copyFrom(e){const t=new He;return t.unityNote=e.unityNote,t.gain=e.gain,t.fineTune=e.fineTune,t.loops=e.loops.map(i=>({...i})),t.fulOptions=e.fulOptions,t}static read(e){this.verifyHeader(e,"wsmp");const t=new He,i=X(e.data,4);if(i!==Te&&hA(`Wsmp cbSize mismatch: got ${i}, expected ${Te}.`),t.unityNote=X(e.data,2),t.fineTune=Ea(e.data[e.data.currentIndex++],e.data[e.data.currentIndex++]),t.gain=X(e.data,4)|0,t.fulOptions=X(e.data,4),X(e.data,4)!==0){const s=X(e.data,4);s!==Lt&&hA(`CbSize for loop in wsmp mismatch. Expected ${Te}, got ${s}.`);const g=X(e.data,4),I=X(e.data,4),o=X(e.data,4);t.loops.push({loopStart:I,loopLength:o,loopType:g})}return t}static fromSFSample(e){const t=new He;return t.unityNote=e.originalKey,t.fineTune=e.pitchCorrection,(e.loopEnd!==0||e.loopStart!==0)&&t.loops.push({loopStart:e.loopStart,loopLength:e.loopEnd-e.loopStart,loopType:qn.forward}),t}static fromSFZone(e){const t=new He;t.unityNote=e.getGenerator(l.overridingRootKey,e.sample.originalKey),e.getGenerator(l.scaleTuning,100)===0&&e.keyRange.max-e.keyRange.min===0&&(t.unityNote=e.keyRange.min),t.fineTune=e.fineTuning+e.sample.pitchCorrection;const i=e.getGenerator(l.initialAttenuation,0)*.4;t.gain=-i<<16;const a=e.getGenerator(l.sampleModes,0);if(a!==0){const s=e.sample.loopStart+e.getGenerator(l.startloopAddrsOffset,0)+e.getGenerator(l.startloopAddrsCoarseOffset,0)*32768,g=e.sample.loopEnd+e.getGenerator(l.endloopAddrsOffset,0)+e.getGenerator(l.endloopAddrsCoarseOffset,0)*32768;let I;switch(a){case 1:default:I=0;break;case 3:I=1}t.loops.push({loopType:I,loopStart:s,loopLength:g-s})}return t}toSFZone(e,t){let i=0;const a=this.loops[0];a&&(i=a.loopType===qn.loopAndRelease?3:1),i!==0&&e.setGenerator(l.sampleModes,i);const I=-(this.gain>>16)/.4;if(I!==0&&e.setGenerator(l.initialAttenuation,I),e.fineTuning=this.fineTune-t.pitchCorrection,this.unityNote!==t.originalKey&&e.setGenerator(l.overridingRootKey,this.unityNote),a){const o=a.loopStart-t.loopStart,C=a.loopStart+a.loopLength-t.loopEnd;if(o!==0){const Q=o%32768;e.setGenerator(l.startloopAddrsOffset,Q);const c=Math.trunc(o/32768);c!==0&&e.setGenerator(l.startloopAddrsCoarseOffset,c)}if(C!==0){const Q=C%32768;e.setGenerator(l.endloopAddrsOffset,Q);const c=Math.trunc(C/32768);c!==0&&e.setGenerator(l.endloopAddrsCoarseOffset,c)}}}write(){const e=new aA(Te+this.loops.length*Lt);return tA(e,Te),V(e,this.unityNote),V(e,this.fineTune),tA(e,this.gain),tA(e,this.fulOptions),tA(e,this.loops.length),this.loops.forEach(t=>{tA(e,Lt),tA(e,t.loopType),tA(e,t.loopStart),tA(e,t.loopLength)}),rA("wsmp",e)}},Nt={PCM:1,ALAW:6};function As(n,A){const e=Math.pow(2,A*8-1),t=Math.pow(2,A*8);let i,a=!1;A===1?(i=255,a=!0):i=e;const s=n.length/A,g=new Float32Array(s);if(A===2){const I=new Int16Array(n.buffer);for(let o=0;o<I.length;o++)g[o]=I[o]/32768}else for(let I=0;I<g.length;I++){let o=X(n,A);a?g[I]=o/i-.5:(o>=e&&(o-=t),g[I]=o/i)}return g}function es(n,A){const e=n.length/A,t=new Float32Array(e);for(let i=0;i<t.length;i++){const a=X(n,A);let s=a^85;s&=127;const g=s>>4;let I=s&15;g>0&&(I+=16),I=(I<<4)+8,g>1&&(I=I<<g-1);const o=a>127?I:-I;t[i]=o/32678}return t}var ts=class extends Ut{constructor(A,e,t,i,a,s,g,I,o){super(A,e,t,i,pA.monoSample,a,s);h(this,"wFormatTag");h(this,"bytesPerSample");h(this,"rawData");this.dataOverridden=!1,this.rawData=g.data,this.wFormatTag=I,this.bytesPerSample=o}getAudioData(){if(!this.rawData)return new Float32Array(0);if(!this.audioData){let A;switch(this.wFormatTag){default:hA(`Failed to decode sample. Unknown wFormatTag: ${this.wFormatTag}`),A=new Float32Array(this.rawData.length/this.bytesPerSample);break;case Nt.PCM:A=As(this.rawData,this.bytesPerSample);break;case Nt.ALAW:A=es(this.rawData,this.bytesPerSample);break}this.setAudioData(A,this.sampleRate)}return this.audioData??new Float32Array(0)}getRawData(A){return this.dataOverridden||this.isCompressed?super.getRawData(A):this.wFormatTag===Nt.PCM&&this.bytesPerSample===2?this.rawData:this.encodeS16LE()}},Wn=class Zt extends ke{constructor(e,t,i,a){super();h(this,"waveSample",new we);h(this,"wFormatTag");h(this,"bytesPerSample");h(this,"sampleRate");h(this,"dataChunk");h(this,"name","Unnamed sample");this.wFormatTag=e,this.bytesPerSample=t,this.sampleRate=i,this.dataChunk=a}static read(e){const t=this.verifyAndReadList(e,"wave"),i=t.find(r=>r.header==="fmt ");if(!i)throw new Error("No fmt chunk in the wave file!");const a=X(i.data,2),s=X(i.data,2);if(s!==1)throw new Error(`Only mono samples are supported. Fmt reports ${s} channels.`);const g=X(i.data,4);X(i.data,4),X(i.data,2);const o=X(i.data,2)/8,B=t.find(r=>r.header==="data");if(!B)throw new Error("No data chunk in the WAVE chunk!");const C=new Zt(a,o,g,B),Q=ae(t,"INFO");if(Q){let r=TA(Q.data);for(;r.header!=="INAM"&&Q.data.currentIndex<Q.data.length;)r=TA(Q.data);r.header==="INAM"&&(C.name=ie(r.data,r.size).trim())}const c=t.find(r=>r.header==="wsmp");return c&&(C.waveSample=we.read(c)),C}static fromSFSample(e){const t=e.getRawData(!1),i=new Zt(1,2,e.sampleRate,new mn("data",t.length,new aA(t.buffer)));return i.name=e.name,i.waveSample=we.fromSFSample(e),i}toSFSample(e){var B;let t=this.waveSample.unityNote,i=this.waveSample.fineTune;const a=Math.trunc(i/100);t+=a,i-=a*100;let s=0,g=0;const I=(B=this.waveSample.loops)==null?void 0:B[0];I&&(s=I.loopStart,g=I.loopStart+I.loopLength);const o=new ts(this.name,this.sampleRate,t,i,s,g,this.dataChunk,this.wFormatTag,this.bytesPerSample);e.addSamples(o)}write(){const e=this.writeFmt(),t=this.waveSample.write(),i=rA("data",this.dataChunk.data),a=rA("INAM",ye(this.name,!0)),s=rA("INFO",a,!1,!0);return _(`%cSaved %c${this.name}%c successfully!`,f.recognized,f.value,f.recognized),bA("wave",[e,t,i,s],!0)}writeFmt(){const e=new aA(18);return V(e,this.wFormatTag),V(e,1),tA(e,this.sampleRate),tA(e,this.sampleRate*2),V(e,2),V(e,this.bytesPerSample*8),rA("fmt ",e)}},Xn=new fA(219,0,l.reverbEffectsSend,1e3,0),jn=new fA(221,0,l.chorusEffectsSend,1e3,0),ns=new fA(129,0,l.vibLfoToPitch,0,0),is=new fA(13,0,l.vibLfoToPitch,0,0),KA=class Wt{constructor(A=G.none,e=lA.linear,t=!1,i=!1){h(this,"source");h(this,"transform");h(this,"bipolar");h(this,"invert");this.source=A,this.transform=e,this.bipolar=t,this.invert=i}get sourceName(){return Object.keys(G).find(A=>G[A]===this.source)??this.source.toString()}get transformName(){return Object.keys(lA).find(A=>lA[A]===this.transform)??this.transform.toString()}static copyFrom(A){return new Wt(A.source,A.transform,A.bipolar,A.invert)}static fromSFSource(A){let e;if(A.isCC)switch(A.index){case O.modulationWheel:e=G.modulationWheel;break;case O.mainVolume:e=G.volume;break;case O.pan:e=G.pan;break;case O.expressionController:e=G.expression;break;case O.chorusDepth:e=G.chorus;break;case O.reverbDepth:e=G.reverb;break}else switch(A.index){case EA.noController:e=G.none;break;case EA.noteOnKeyNum:e=G.keyNum;break;case EA.noteOnVelocity:e=G.velocity;break;case EA.pitchWheel:e=G.pitchWheel;break;case EA.pitchWheelRange:e=G.pitchWheelRange;break;case EA.polyPressure:e=G.polyPressure;break;case EA.channelPressure:e=G.channelPressure}if(e!==void 0)return new Wt(e,A.curveType,A.isBipolar,A.isNegative)}toString(){return`${this.sourceName} ${this.transformName} ${this.bipolar?"bipolar":"unipolar"} ${this.invert?"inverted":"positive"}`}toTransformFlag(){return this.transform|(this.bipolar?1:0)<<4|(this.invert?1:0)<<5}toSFSource(){let A,e=!1;switch(this.source){default:case G.modLfo:case G.vibratoLfo:case G.coarseTune:case G.fineTune:case G.modEnv:return;case G.keyNum:A=EA.noteOnKeyNum;break;case G.none:A=EA.noController;break;case G.modulationWheel:A=O.modulationWheel,e=!0;break;case G.pan:A=O.pan,e=!0;break;case G.reverb:A=O.reverbDepth,e=!0;break;case G.chorus:A=O.chorusDepth,e=!0;break;case G.expression:A=O.expressionController,e=!0;break;case G.volume:A=O.mainVolume,e=!0;break;case G.velocity:A=EA.noteOnVelocity;break;case G.polyPressure:A=EA.polyPressure;break;case G.channelPressure:A=EA.channelPressure;break;case G.pitchWheel:A=EA.pitchWheel;break;case G.pitchWheelRange:A=EA.pitchWheelRange;break}if(A!==void 0)return new XA(A,this.transform,e,this.bipolar,this.invert)}},as=new Set([l.sampleModes,l.initialAttenuation,l.keyRange,l.velRange,l.sampleID,l.fineTune,l.coarseTune,l.startAddrsOffset,l.startAddrsCoarseOffset,l.endAddrOffset,l.endAddrsCoarseOffset,l.startloopAddrsOffset,l.startloopAddrsCoarseOffset,l.endloopAddrsOffset,l.endloopAddrsCoarseOffset,l.overridingRootKey,l.exclusiveClass]),Je=class ue{constructor(A=new KA,e=new KA,t,i,a){h(this,"source");h(this,"control");h(this,"destination");h(this,"scale");h(this,"transform");this.source=A,this.control=e,this.destination=t,this.transform=i,this.scale=a}get isStaticParameter(){return this.source.source===G.none&&this.control.source===G.none}get shortScale(){return this.scale>>16}get transformName(){return Object.keys(lA).find(A=>lA[A]===this.transform)??this.transform.toString()}get destinationName(){return Object.keys(p).find(A=>p[A]===this.destination)??this.destination.toString()}static read(A){const e=X(A,2),t=X(A,2),i=X(A,2),a=X(A,2),s=X(A,4)|0,g=a&15,I=a>>4&15,o=Be(a,8),B=Be(a,9),C=new KA(t,I,o,B),Q=a>>10&15,c=Be(a,14),r=Be(a,15),m=new KA(e,Q,c,r);return new ue(m,C,i,g,s)}static fromSFModulator(A,e){const t=B=>{hA(`Failed converting SF modulator into DLS:
6
- ${A.toString()}
7
- (${B})`)};if(A.transformType!==0){t("Absolute transform type is not supported");return}if(dA.isIdentical(A,jn,!0)||dA.isIdentical(A,Xn,!0))return;let i=KA.fromSFSource(A.primarySource);if(!i){t("Invalid primary source");return}let a=KA.fromSFSource(A.secondarySource);if(!a){t("Invalid secondary source");return}const s=ue.fromSFDestination(A.destination,A.transformAmount);if(s===void 0){t("Invalid destination");return}let g=A.transformAmount,I;if(typeof s=="number")I=s;else if(I=s.destination,g=s.amount,s.source!==G.none){if(a.source!==G.none&&i.source!==G.none){t("Articulation generators with secondary source are not supported");return}i.source!==G.none&&(a=i),i=new KA(s.source,lA.linear,s.isBipolar)}const o=new ue(i,a,I,0,g<<16);e.connectionBlocks.push(o)}static copyFrom(A){return new ue(KA.copyFrom(A.source),KA.copyFrom(A.control),A.destination,A.transform,A.scale)}static fromSFGenerator(A,e){if(as.has(A.generatorType))return;const t=I=>{hA(`Failed converting SF2 generator into DLS:
8
- ${A.toString()}
9
- (${I})`)},i=ue.fromSFDestination(A.generatorType,A.generatorValue);if(i===void 0){t("Invalid type");return}const a=new KA;let s,g=A.generatorValue;typeof i=="number"?s=i:(s=i.destination,g=i.amount,a.source=i.source,a.bipolar=i.isBipolar),e.connectionBlocks.push(new ue(a,new KA,s,0,g<<16))}static fromSFDestination(A,e){switch(A){default:return;case l.initialAttenuation:return{destination:p.gain,amount:-e,isBipolar:!1,source:G.none};case l.fineTune:return p.pitch;case l.pan:return p.pan;case l.keyNum:return p.keyNum;case l.reverbEffectsSend:return p.reverbSend;case l.chorusEffectsSend:return p.chorusSend;case l.freqModLFO:return p.modLfoFreq;case l.delayModLFO:return p.modLfoDelay;case l.delayVibLFO:return p.vibLfoDelay;case l.freqVibLFO:return p.vibLfoFreq;case l.delayVolEnv:return p.volEnvDelay;case l.attackVolEnv:return p.volEnvAttack;case l.holdVolEnv:return p.volEnvHold;case l.decayVolEnv:return p.volEnvDecay;case l.sustainVolEnv:return{destination:p.volEnvSustain,amount:1e3-e,isBipolar:!1,source:G.none};case l.releaseVolEnv:return p.volEnvRelease;case l.delayModEnv:return p.modEnvDelay;case l.attackModEnv:return p.modEnvAttack;case l.holdModEnv:return p.modEnvHold;case l.decayModEnv:return p.modEnvDecay;case l.sustainModEnv:return{destination:p.modEnvSustain,amount:1e3-e,isBipolar:!1,source:G.none};case l.releaseModEnv:return p.modEnvRelease;case l.initialFilterFc:return p.filterCutoff;case l.initialFilterQ:return p.filterQ;case l.modEnvToFilterFc:return{source:G.modEnv,destination:p.filterCutoff,amount:e,isBipolar:!1};case l.modEnvToPitch:return{source:G.modEnv,destination:p.pitch,amount:e,isBipolar:!1};case l.modLfoToFilterFc:return{source:G.modLfo,destination:p.filterCutoff,amount:e,isBipolar:!0};case l.modLfoToVolume:return{source:G.modLfo,destination:p.gain,amount:e,isBipolar:!0};case l.modLfoToPitch:return{source:G.modLfo,destination:p.pitch,amount:e,isBipolar:!0};case l.vibLfoToPitch:return{source:G.vibratoLfo,destination:p.pitch,amount:e,isBipolar:!0};case l.keyNumToVolEnvHold:return{source:G.keyNum,destination:p.volEnvHold,amount:e,isBipolar:!0};case l.keyNumToVolEnvDecay:return{source:G.keyNum,destination:p.volEnvDecay,amount:e,isBipolar:!0};case l.keyNumToModEnvHold:return{source:G.keyNum,destination:p.modEnvHold,amount:e,isBipolar:!0};case l.keyNumToModEnvDecay:return{source:G.keyNum,destination:p.modEnvDecay,amount:e,isBipolar:!0};case l.scaleTuning:return{source:G.keyNum,destination:p.pitch,amount:e*128,isBipolar:!1}}}toString(){return`Source: ${this.source.toString()},
4
+ amount: ${this.transformAmount}`+(this.transformType===2?"absolute value":"")}write(l,t){K(l,this.primarySource.toSourceEnum()),K(l,this.destination),K(l,this.transformAmount),K(l,this.secondarySource.toSourceEnum()),K(l,this.transformType),t&&t.mod++}sumTransform(l){const t=vA.copyFrom(this);return t.transformAmount+=l.transformAmount,t}},bl=class extends Vl{constructor(e,l,t,A,Q){const n=(e===219||e===221)&&l===0&&(t===i.reverbEffectsSend||t===i.chorusEffectsSend),a=e===Le&&l===0&&t===i.initialFilterQ;super(Ol.fromSourceEnum(e),Ol.fromSourceEnum(l),t,A,Q,n,a),this.destination>kn&&(this.destination=i.INVALID)}},GA=960,JA=il.concave,wn=[new bl(ql(JA,!1,!0,!1,sl.noteOnVelocity),0,i.initialAttenuation,GA,0),new bl(129,0,i.vibLfoToPitch,50,0),new bl(ql(JA,!1,!0,!0,v.mainVolume),0,i.initialAttenuation,GA,0),new bl(13,0,i.vibLfoToPitch,50,0),new bl(526,16,i.fineTune,12700,0),new bl(650,0,i.pan,500,0),new bl(ql(JA,!1,!0,!0,v.expressionController),0,i.initialAttenuation,GA,0),new bl(219,0,i.reverbEffectsSend,200,0),new bl(221,0,i.chorusEffectsSend,200,0)],Hn=[new bl(ql(il.linear,!1,!1,!1,sl.polyPressure),0,i.vibLfoToPitch,50,0),new bl(ql(il.linear,!1,!1,!0,v.tremoloDepth),0,i.modLfoToVolume,24,0),new bl(ql(il.convex,!0,!1,!0,v.attackTime),0,i.attackVolEnv,6e3,0),new bl(ql(il.linear,!0,!1,!0,v.releaseTime),0,i.releaseVolEnv,3600,0),new bl(ql(il.linear,!0,!1,!0,v.brightness),0,i.initialFilterFc,6e3,0),new bl(Le,0,i.initialFilterQ,250,0)],Me=wn.concat(Hn),kt=4,ul=class{constructor(e,l,t=!0){R(this,"generatorType");R(this,"generatorValue",0);if(this.generatorType=e,l===void 0)throw new Error("No value provided.");if(this.generatorValue=Math.round(l),t){const A=k[e];A!==void 0&&(this.generatorValue=Math.max(A.min,Math.min(A.max,this.generatorValue)))}}write(e,l){K(e,this.generatorType),K(e,this.generatorValue),l.gen++}toString(){return`${Object.keys(i).find(e=>i[e]===this.generatorType)}: ${this.generatorValue}`}},lA=4,tA=class{constructor(){R(this,"velRange",{min:-1,max:127});R(this,"keyRange",{min:-1,max:127});R(this,"generators",[]);R(this,"modulators",[])}get hasKeyRange(){return this.keyRange.min!==-1}get hasVelRange(){return this.velRange.min!==-1}get fineTuning(){const e=this.getGenerator(i.coarseTune,0),l=this.getGenerator(i.fineTune,0);return e*100+l}set fineTuning(e){const l=Math.trunc(e/100),t=e%100;this.setGenerator(i.coarseTune,l),this.setGenerator(i.fineTune,t)}addToGenerator(e,l,t=!0){const A=this.getGenerator(e,k[e].def);this.setGenerator(e,l+A,t)}setGenerator(e,l,t=!0){switch(e){case i.sampleID:throw new Error("Use setSample()");case i.instrument:throw new Error("Use setInstrument()");case i.velRange:case i.keyRange:throw new Error("Set the range manually")}if(l===null){this.generators=this.generators.filter(Q=>Q.generatorType!==e);return}const A=this.generators.findIndex(Q=>Q.generatorType===e);A>=0?this.generators[A]=new ul(e,l,t):this.addGenerators(new ul(e,l,t))}addGenerators(...e){e.forEach(l=>{switch(l.generatorType){default:this.generators.push(l);break;case i.sampleID:case i.instrument:break;case i.velRange:this.velRange.min=l.generatorValue&127,this.velRange.max=l.generatorValue>>8&127;break;case i.keyRange:this.keyRange.min=l.generatorValue&127,this.keyRange.max=l.generatorValue>>8&127}})}addModulators(...e){this.modulators.push(...e)}getGenerator(e,l){var t;return((t=this.generators.find(A=>A.generatorType===e))==null?void 0:t.generatorValue)??l}copyFrom(e){this.generators=e.generators.map(l=>new ul(l.generatorType,l.generatorValue,!1)),this.modulators=e.modulators.map(Vl.copyFrom.bind(Vl)),this.velRange={...e.velRange},this.keyRange={...e.keyRange}}getGenCount(){let e=this.generators.filter(l=>l.generatorType!==i.sampleID&&l.generatorType!==i.instrument&&l.generatorType!==i.keyRange&&l.generatorType!==i.velRange).length;return this.hasVelRange&&e++,this.hasKeyRange&&e++,e}write(e,l,t,A,Q){const n=A.gen,a=A.mod;K(t.pdta,n&65535),K(t.pdta,a&65535),K(t.xdta,n>>16),K(t.xdta,a>>16),A.bag++,this.getWriteGenerators(Q).forEach(F=>F.write(e,A)),this.modulators.forEach(F=>F.write(l,A))}getWriteGenerators(e){const l=this.generators.filter(t=>t.generatorType!==i.sampleID&&t.generatorType!==i.instrument&&t.generatorType!==i.keyRange&&t.generatorType!==i.velRange);if(!e)throw new Error("No bank provided! ");return this.hasVelRange&&l.unshift(new ul(i.velRange,this.velRange.max<<8|Math.max(this.velRange.min,0),!1)),this.hasKeyRange&&l.unshift(new ul(i.keyRange,this.keyRange.max<<8|Math.max(this.keyRange.min,0),!1)),l}},xe=class extends tA{},fn=class extends tA{constructor(l,t){super();R(this,"parentPreset");R(this,"_instrument");this.parentPreset=l,this._instrument=t,this._instrument.linkTo(this.parentPreset)}get instrument(){return this._instrument}set instrument(l){this._instrument&&this._instrument.unlinkFrom(this.parentPreset),this._instrument=l,this._instrument.linkTo(this.parentPreset)}getGenCount(){return super.getGenCount()+1}getWriteGenerators(l){const t=super.getWriteGenerators(l);if(!l)throw new Error("Instrument ID cannot be determined without the sound bank itself.");const A=l.instruments.indexOf(this.instrument);if(A<0)throw new Error(`${this.instrument.name} does not exist in ${l.soundBankInfo.name}! Cannot write instrument generator.`);return t.push(new ul(i.instrument,A,!1)),t}},jn=class extends tA{constructor(l,t){super();R(this,"parentInstrument");R(this,"useCount");R(this,"_sample");this.parentInstrument=l,this._sample=t,t.linkTo(this.parentInstrument),this.useCount=l.useCount}get sample(){return this._sample}set sample(l){this._sample&&this._sample.unlinkFrom(this.parentInstrument),this._sample=l,l.linkTo(this.parentInstrument)}getGenCount(){return super.getGenCount()+1}getWriteGenerators(l){const t=super.getWriteGenerators(l),A=l.samples.indexOf(this.sample);if(A<0)throw new Error(`${this.sample.name} does not exist in ${l.soundBankInfo.name}! Cannot write sampleID generator.`);return t.push(new ul(i.sampleID,A,!1)),t}},De=22,Pn=new Set([i.velRange,i.keyRange,i.instrument,i.sampleID,i.exclusiveClass,i.endOper,i.sampleModes,i.startloopAddrsOffset,i.startloopAddrsCoarseOffset,i.endloopAddrsOffset,i.endloopAddrsCoarseOffset,i.startAddrsOffset,i.startAddrsCoarseOffset,i.endAddrOffset,i.endAddrsCoarseOffset,i.initialAttenuation,i.fineTune,i.coarseTune,i.keyNumToVolEnvHold,i.keyNumToVolEnvDecay,i.keyNumToModEnvHold,i.keyNumToModEnvDecay]),AA=class{constructor(){R(this,"name","");R(this,"zones",[]);R(this,"globalZone",new xe);R(this,"linkedTo",[])}get useCount(){return this.linkedTo.length}createZone(e){const l=new jn(this,e);return this.zones.push(l),l}linkTo(e){this.linkedTo.push(e),this.zones.forEach(l=>l.useCount++)}unlinkFrom(e){const l=this.linkedTo.indexOf(e);if(l<0){Zl(`Cannot unlink ${e.name} from ${this.name}: not linked.`);return}this.linkedTo.splice(l,1),this.zones.forEach(t=>t.useCount--)}deleteUnusedZones(){this.zones=this.zones.filter(e=>{const l=e.useCount>0;return l||e.sample.unlinkFrom(this),l})}delete(){if(this.useCount>0)throw new Error(`Cannot delete an instrument that is used by: ${this.linkedTo.map(e=>e.name).toString()}.`);this.zones.forEach(e=>e.sample.unlinkFrom(this))}deleteZone(e,l=!1){const t=this.zones[e];return t.useCount-=1,t.useCount<1||l?(t.sample.unlinkFrom(this),this.zones.splice(e,1),!0):!1}globalize(){var A;const e=this.globalZone;for(let Q=0;Q<58;Q++){if(Pn.has(Q))continue;Q=Q;let n={};const a=((A=k[Q])==null?void 0:A.def)||0;n[a]=0;for(const s of this.zones){const F=s.getGenerator(Q,void 0);F!==void 0?n[F]===void 0?n[F]=1:n[F]++:n[a]++;let d;switch(Q){default:continue;case i.decayVolEnv:d=i.keyNumToVolEnvDecay;break;case i.holdVolEnv:d=i.keyNumToVolEnvHold;break;case i.decayModEnv:d=i.keyNumToModEnvDecay;break;case i.holdModEnv:d=i.keyNumToModEnvHold}if(s.getGenerator(d,void 0)!==void 0){n={};break}}if(Object.keys(n).length>0){const F=Object.entries(n).reduce((o,c)=>o[1]<c[1]?c:o,["0",0]),d=parseInt(F[0]);d!==a&&e.setGenerator(Q,d,!1),this.zones.forEach(o=>{const c=o.getGenerator(Q,void 0);c!==void 0?c===d&&o.setGenerator(Q,null):d!==a&&o.setGenerator(Q,a)})}}const t=this.zones[0].modulators.map(Q=>Vl.copyFrom(Q));for(const Q of t){let n=!0;for(const a of this.zones){if(!n)continue;a.modulators.find(F=>Vl.isIdentical(F,Q))||(n=!1)}if(n){e.addModulators(Vl.copyFrom(Q));for(const a of this.zones){const s=a.modulators.find(F=>Vl.isIdentical(F,Q));s&&s.transformAmount===Q.transformAmount&&a.modulators.splice(a.modulators.indexOf(s),1)}}}}getSize(){const e=this.zones.reduce((t,A)=>A.modulators.length+t,0)+this.globalZone.modulators.length,l=this.zones.reduce((t,A)=>A.getGenCount()+t,0)+this.globalZone.getGenCount();return{mod:e*Ut,bag:(this.zones.length+1)*lA,gen:l*kt,hdr:De}}write(e,l,t,A,Q,n){$(`%cWriting ${this.name}...`,b.info),El(A.pdta,this.name.substring(0,20),20),El(A.xdta,this.name.substring(20),20),K(A.pdta,Q.hdr&65535),K(A.xdta,Q.hdr>>>16),Q.hdr+=this.zones.length+1,this.globalZone.write(e,l,t,Q,n),this.zones.forEach(a=>a.write(e,l,t,Q,n))}},Ke=38,Tt=class{constructor(e,l=new xe){R(this,"parentSoundBank");R(this,"name","");R(this,"program",0);R(this,"bankMSB",0);R(this,"bankLSB",0);R(this,"isGMGSDrum",!1);R(this,"zones",[]);R(this,"globalZone");R(this,"library",0);R(this,"genre",0);R(this,"morphology",0);this.parentSoundBank=e,this.globalZone=l}get isXGDrums(){return this.parentSoundBank.isXGBank&&Ft.isXGDrums(this.bankMSB)}get isAnyDrums(){const e=this.parentSoundBank.isXGBank;return this.isGMGSDrum||e&&Ft.isXGDrums(this.bankMSB)&&this.bankMSB!==126}delete(){this.zones.forEach(e=>{var l;return(l=e.instrument)==null?void 0:l.unlinkFrom(this)})}deleteZone(e){var l,t;(t=(l=this.zones[e])==null?void 0:l.instrument)==null||t.unlinkFrom(this),this.zones.splice(e,1)}createZone(e){const l=new fn(this,e);return this.zones.push(l),l}preload(e,l){for(let t=e;t<l+1;t++)for(let A=0;A<128;A++)this.getSynthesisData(t,A).forEach(Q=>{Q.sample.getAudioData()})}matches(e){return St.matches(this,e)}getSize(){const e=this.zones.reduce((t,A)=>A.modulators.length+t,0)+this.globalZone.modulators.length,l=this.zones.reduce((t,A)=>A.getGenCount()+t,0)+this.globalZone.getGenCount();return{mod:e*Ut,bag:(this.zones.length+1)*lA,gen:l*kt,hdr:Ke}}getSynthesisData(e,l){if(this.zones.length<1)return[];function t(c,h){return h>=c.min&&h<=c.max}function A(c,h){c.push(...h.filter(Z=>!c.find(U=>U.generatorType===Z.generatorType)))}function Q(c,h){c.push(...h.filter(Z=>!c.find(U=>Vl.isIdentical(Z,U))))}const n=[],a=[...this.globalZone.generators],s=[...this.globalZone.modulators],F=this.globalZone.keyRange,d=this.globalZone.velRange;return this.zones.filter(c=>t(c.hasKeyRange?c.keyRange:F,e)&&t(c.hasVelRange?c.velRange:d,l)).forEach(c=>{const h=c.instrument;if(!h||h.zones.length<1)return;const Z=c.generators,U=c.modulators,m=[...h.globalZone.generators],C=[...h.globalZone.modulators],W=h.globalZone.keyRange,J=h.globalZone.velRange;h.zones.filter(u=>t(u.hasKeyRange?u.keyRange:W,e)&&t(u.hasVelRange?u.velRange:J,l)).forEach(u=>{const G=[...u.generators],T=[...u.modulators];A(Z,a),A(G,m),Q(U,s),Q(T,C),Q(T,this.parentSoundBank.defaultModulators);const w=[...T];for(const Rl of U){const cl=w.findIndex(Ul=>Vl.isIdentical(Rl,Ul));cl!==-1?w[cl]=w[cl].sumTransform(Rl):w.push(Rl)}u.sample&&n.push({instrumentGenerators:G,presetGenerators:Z,modulators:w,sample:u.sample})})}),n}toMIDIString(){return St.toMIDIString(this)}toString(){return St.toNamedMIDIString(this)}toFlattenedInstrument(){const e=(d,o)=>{d.push(...o.filter(c=>!d.find(h=>h.generatorType===c.generatorType)))},l=(d,o)=>({min:Math.max(d.min,o.min),max:Math.min(d.max,o.max)}),t=(d,o)=>{d.push(...o.filter(c=>!d.find(h=>Vl.isIdentical(c,h))))},A=new AA;A.name=this.name;const Q=[],n=[],a=this.globalZone;Q.push(...a.generators),n.push(...a.modulators);const s=a.keyRange,F=a.velRange;for(const d of this.zones){if(!d.instrument)throw new Error("No instrument in a preset zone.");let o=d.keyRange;d.hasKeyRange||(o=s);let c=d.velRange;d.hasVelRange||(c=F);const h=d.generators.map(G=>new ul(G.generatorType,G.generatorValue));e(h,Q);const Z=[...d.modulators];t(Z,n);const U=d.instrument,m=U.zones,C=[],W=[],J=U.globalZone;C.push(...J.generators),W.push(...J.modulators);const X=J.keyRange,u=J.velRange;for(const G of m){if(!G.sample)throw new Error("No sample in an instrument zone.");let T=G.keyRange;G.hasKeyRange||(T=X);let w=G.velRange;if(G.hasVelRange||(w=u),T=l(T,o),w=l(w,c),T.max<T.min||w.max<w.min)continue;const Rl=G.generators.map(H=>new ul(H.generatorType,H.generatorValue));e(Rl,C);const cl=[...G.modulators];t(cl,W);const Ul=[...cl];for(const H of Z){const x=Ul.findIndex(j=>Vl.isIdentical(H,j));x!==-1?Ul[x]=Ul[x].sumTransform(H):Ul.push(H)}let z=Rl.map(H=>new ul(H.generatorType,H.generatorValue));for(const H of h){if(H.generatorType===i.velRange||H.generatorType===i.keyRange||H.generatorType===i.instrument||H.generatorType===i.endOper||H.generatorType===i.sampleModes)continue;const x=Rl.findIndex(j=>j.generatorType===H.generatorType);if(x!==-1){const j=z[x].generatorValue+H.generatorValue;z[x]=new ul(H.generatorType,j)}else{const j=k[H.generatorType].def+H.generatorValue;z.push(new ul(H.generatorType,j))}}z=z.filter(H=>H.generatorType!==i.sampleID&&H.generatorType!==i.keyRange&&H.generatorType!==i.velRange&&H.generatorType!==i.endOper&&H.generatorType!==i.instrument&&H.generatorValue!==k[H.generatorType].def);const O=A.createZone(G.sample);O.keyRange=T,O.velRange=w,O.keyRange.min===0&&O.keyRange.max===127&&(O.keyRange.min=-1),O.velRange.min===0&&O.velRange.max===127&&(O.velRange.min=-1),O.addGenerators(...z),O.addModulators(...Ul)}}return A}write(e,l,t,A,Q,n){$(`%cWriting ${this.name}...`,b.info),El(A.pdta,this.name.substring(0,20),20),El(A.xdta,this.name.substring(20),20),K(A.pdta,this.program);let a=this.bankMSB;this.isGMGSDrum?a=128:this.bankMSB===0&&(a=this.bankLSB),K(A.pdta,a),A.xdta.currentIndex+=4,K(A.pdta,Q.hdr&65535),K(A.xdta,Q.hdr>>16),Al(A.pdta,this.library),Al(A.pdta,this.genre),Al(A.pdta,this.morphology),A.xdta.currentIndex+=12,Q.hdr+=this.zones.length+1,this.globalZone.write(e,l,t,Q,n),this.zones.forEach(s=>s.write(e,l,t,Q,n))}};function ze(e,l){let t;return l?t=e.find(A=>A.isXGDrums):t=e.find(A=>A.isGMGSDrum),t||(e.find(A=>A.isAnyDrums)??e[0])}function On(e,l,t){if(e.length<1)throw new Error("No presets!");l.isGMGSDrum&&Ft.isSystemXG(t)&&(l={...l,isGMGSDrum:!1,bankLSB:0,bankMSB:Ft.getDrumBank(t)});const{isGMGSDrum:A,bankLSB:Q,bankMSB:n,program:a}=l,s=Ft.isSystemXG(t),F=Ft.isXGDrums(n)&&s;let d=e.find(Z=>Z.matches(l));if(d&&(!F||F&&d.isXGDrums))return d;const o=Z=>{$(`%cPreset %c${St.toMIDIString(l)}%c not found. (${t}) Replaced with %c${Z.toString()}`,b.warn,b.unrecognized,b.warn,b.value)};if(A){let Z=e.find(U=>U.isGMGSDrum&&U.program===a);return Z||(Z=e.find(U=>U.isAnyDrums&&U.program===a),Z)?(o(Z),Z):(Z=ze(e,!1),o(Z),Z)}if(F){let Z=e.find(U=>U.program===a&&U.isXGDrums);return Z||(Z=e.find(U=>U.isAnyDrums&&U.program===a),Z)?(o(Z),Z):(Z=ze(e,!0),o(Z),Z)}const c=e.filter(Z=>Z.program===a&&!Z.isAnyDrums);if(c.length<1)return o(e[0]),e[0];if(s?d=c.find(Z=>Z.bankLSB===Q):d=c.find(Z=>Z.bankMSB===n),d)return o(d),d;const h=Math.max(n,Q);return d=c.find(Z=>Z.bankLSB===h||Z.bankMSB===h),d?(o(d),d):(o(c[0]),c[0])}var ve=Math.PI/2,eA=-500,we=500,gA=we-eA,qn=new Float32Array(gA+1),_n=new Float32Array(gA+1);for(let e=eA;e<=we;e++){const l=(e-eA)/gA,t=e-eA;qn[t]=Math.cos(ve*l),_n[t]=Math.sin(ve*l)}var He=(zl=class{constructor(l){R(this,"resonanceCb",0);R(this,"currentInitialFc",13500);R(this,"a0",0);R(this,"a1",0);R(this,"a2",0);R(this,"a3",0);R(this,"a4",0);R(this,"x1",0);R(this,"x2",0);R(this,"y1",0);R(this,"y2",0);R(this,"lastTargetCutoff",1/0);R(this,"initialized",!1);R(this,"sampleRate");R(this,"maxCutoff");this.sampleRate=l,this.maxCutoff=l*.45}static apply(l,t,A,Q){const n=l.modulatedGenerators[i.initialFilterFc],a=l.filter;a.initialized?a.currentInitialFc+=(n-a.currentInitialFc)*Q:(a.initialized=!0,a.currentInitialFc=n);const s=a.currentInitialFc+A,F=l.modulatedGenerators[i.initialFilterQ];if(a.currentInitialFc>13499&&s>13499&&F===0){a.currentInitialFc=13500;return}(Math.abs(a.lastTargetCutoff-s)>1||a.resonanceCb!==F)&&(a.lastTargetCutoff=s,a.resonanceCb=F,zl.calculateCoefficients(a,s));for(let d=0;d<t.length;d++){const o=t[d],c=a.a0*o+a.a1*a.x1+a.a2*a.x2-a.a3*a.y1-a.a4*a.y2;a.x2=a.x1,a.x1=o,a.y2=a.y1,a.y1=c,t[d]=c}}static calculateCoefficients(l,t){var X,u,G;t=~~t;const A=l.resonanceCb,Q=(u=(X=zl.cachedCoefficients)==null?void 0:X[A])==null?void 0:u[t];if(Q!==void 0){l.a0=Q.a0,l.a1=Q.a1,l.a2=Q.a2,l.a3=Q.a3,l.a4=Q.a4;return}let n=zn(t);n=Math.min(n,l.maxCutoff);const a=A/10,s=Xe(-(a-3.01)),F=1/Math.sqrt(Xe(-a)),d=2*Math.PI*n/l.sampleRate,o=Math.cos(d),c=Math.sin(d)/(2*s),h=(1-o)*F,Z=h/2,U=Z,m=1+c,C=-2*o,W=1-c,J={a0:Z/m,a1:h/m,a2:U/m,a3:C/m,a4:W/m};l.a0=J.a0,l.a1=J.a1,l.a2=J.a2,l.a3=J.a3,l.a4=J.a4,(G=zl.cachedCoefficients)[A]??(G[A]=[]),zl.cachedCoefficients[A][t]=J}},R(zl,"cachedCoefficients",[]),zl),yA=new He(44100);yA.resonanceCb=0;for(let e=1500;e<13500;e++)yA.currentInitialFc=e,He.calculateCoefficients(yA,e);var fe=new Float32Array(1e3);for(let e=0;e<fe.length;e++)fe[e]=ke(0,il.convex,e/1e3);var pA=class wA{constructor(l,t,A,Q,n,a,s,F,d,o,c,h,Z){R(this,"patch");R(this,"lockPreset");R(this,"lockedSystem");R(this,"midiControllers");R(this,"lockedControllers");R(this,"customControllers");R(this,"lockVibrato");R(this,"channelVibrato");R(this,"channelTransposeKeyShift");R(this,"channelOctaveTuning");R(this,"isMuted");R(this,"drumChannel");R(this,"channelNumber");this.patch=l,this.lockPreset=t,this.lockedSystem=A,this.midiControllers=Q,this.lockedControllers=n,this.customControllers=a,this.lockVibrato=s,this.channelVibrato=F,this.channelTransposeKeyShift=d,this.channelOctaveTuning=o,this.isMuted=c,this.drumChannel=h,this.channelNumber=Z}static copyFrom(l){return new wA({...l.patch},l.lockPreset,l.lockedSystem,l.midiControllers.slice(),[...l.lockedControllers],l.customControllers.slice(),l.lockVibrato,{...l.channelVibrato},l.channelTransposeKeyShift,l.channelOctaveTuning,l.isMuted,l.drumChannel,l.channelNumber)}static create(l,t){var Q;const A=l.midiChannels[t];return new wA({...A.patch,name:((Q=A==null?void 0:A.preset)==null?void 0:Q.name)??"undefined"},A.lockPreset,A.lockedSystem,A.midiControllers.slice(),[...A.lockedControllers],A.customControllers.slice(),A.lockGSNRPNParams,{...A.channelVibrato},A.channelTransposeKeyShift,A.channelOctaveTuning.slice(),A.isMuted,A.drumChannel,t)}apply(l){const t=l.midiChannels[this.channelNumber];t.muteChannel(this.isMuted),t.setDrums(this.drumChannel),t.midiControllers.set(this.midiControllers),t.lockedControllers=this.lockedControllers,t.customControllers.set(this.customControllers),t.updateChannelTuning(),t.channelVibrato=this.channelVibrato,t.lockGSNRPNParams=this.lockVibrato,t.channelTransposeKeyShift=this.channelTransposeKeyShift,t.channelOctaveTuning=this.channelOctaveTuning,t.setPresetLock(!1),t.setPatch(this.patch),t.setPresetLock(this.lockPreset),t.lockedSystem=this.lockedSystem}},$n=class{constructor(){R(this,"velocity",-1);R(this,"patch",{bankLSB:-1,bankMSB:-1,isGMGSDrum:!1,program:-1});R(this,"gain",1)}},je=class HA{constructor(l,t,A){R(this,"channelSnapshots");R(this,"keyMappings");R(this,"masterParameters");this.channelSnapshots=l,this.masterParameters=t,this.keyMappings=A}static create(l){const t=l.midiChannels.map((A,Q)=>pA.create(l,Q));return new HA(t,l.getAllMasterParameters(),l.keyModifierManager.getMappings())}static copyFrom(l){return new HA(l.channelSnapshots.map(t=>pA.copyFrom(t)),{...l.masterParameters},[...l.keyMappings])}apply(l){for(Object.entries(this.masterParameters).forEach(([A,Q])=>{l.setMasterParameter(A,Q)}),l.keyModifierManager.setMappings(this.keyMappings);l.midiChannels.length<this.channelSnapshots.length;)l.createMIDIChannel();this.channelSnapshots.forEach(A=>{A.apply(l)})}},la={masterGain:un,masterPan:0,voiceCap:rn,interpolationType:Gn.hermite,midiSystem:Sn,monophonicRetriggerMode:!1,reverbGain:1,chorusGain:1,blackMIDIMode:!1,transposition:0,deviceID:it},NA=20;async function ta(e,l,t,A,Q,n,a){let s=0,F=0;const d=[];for(const h of e.samples){A&&n&&await h.compressSample(n),Q&&h.setAudioData(h.getAudioData(),h.sampleRate);const Z=h.getRawData(!0);s++,await(a==null?void 0:a(h.name,s,e.samples.length)),$(`%cEncoded sample %c${s}. ${h.name}%c of %c${e.samples.length}%c. Compressed: %c${h.isCompressed}%c.`,b.info,b.recognized,b.info,b.recognized,b.info,h.isCompressed?b.recognized:b.unrecognized,b.info),F+=Z.length+(h.isCompressed?0:92),d.push(Z)}F%2!==0&&F++;const o=new nl(F+NA);El(o,"LIST"),qt(o,F+NA-8,4),El(o,"sdta"),El(o,"smpl"),qt(o,F,4);let c=0;return e.samples.forEach((h,Z)=>{const U=d[Z];o.set(U,c+NA);let m,C;h.isCompressed?(m=c,C=m+U.length):(m=c/2,C=m+U.length/2,c+=92),c+=U.length,l.push(m),t.push(C)}),o}var Aa=48e3,XA=class{constructor(e,l,t,A,Q,n,a){R(this,"name");R(this,"sampleRate");R(this,"originalKey");R(this,"pitchCorrection");R(this,"linkedSample");R(this,"sampleType");R(this,"loopStart");R(this,"loopEnd");R(this,"linkedTo",[]);R(this,"dataOverridden",!0);R(this,"compressedData");R(this,"audioData");this.name=e,this.sampleRate=l,this.originalKey=t,this.pitchCorrection=A,this.loopStart=n,this.loopEnd=a,this.sampleType=Q}get isCompressed(){return this.compressedData!==void 0}get isLinked(){return this.sampleType===Il.rightSample||this.sampleType===Il.leftSample||this.sampleType===Il.linkedSample}get useCount(){return this.linkedTo.length}getRawData(e){return this.compressedData&&e&&!this.dataOverridden?this.compressedData:this.encodeS16LE()}resampleData(e){let l=this.getAudioData();const t=e/this.sampleRate,A=new Float32Array(Math.floor(l.length*t));for(let Q=0;Q<A.length;Q++)A[Q]=l[Math.floor(Q*(1/t))];l=A,this.sampleRate=e,this.loopStart=Math.floor(this.loopStart*t),this.loopEnd=Math.floor(this.loopEnd*t),this.audioData=l}async compressSample(e){if(!this.isCompressed)try{let l=this.getAudioData();(this.sampleRate<8e3||this.sampleRate>96e3)&&(this.resampleData(Aa),l=this.getAudioData());const t=await e(l,this.sampleRate);this.setCompressedData(t)}catch(l){Zl(`Failed to compress ${this.name}. Leaving as uncompressed!`,l),this.compressedData=void 0}}setSampleType(e){if(this.sampleType=e,this.isLinked||(this.linkedSample&&(this.linkedSample.linkedSample=void 0,this.linkedSample.sampleType=e),this.linkedSample=void 0),(e&32768)>0)throw new Error("ROM samples are not supported.")}unlinkSample(){this.setSampleType(Il.monoSample)}setLinkedSample(e,l){if(e.linkedSample)throw new Error(`${e.name} is linked tp ${e.linkedSample.name}. Unlink it first.`);if(this.linkedSample=e,e.linkedSample=this,l===Il.leftSample)this.setSampleType(Il.leftSample),e.setSampleType(Il.rightSample);else if(l===Il.rightSample)this.setSampleType(Il.rightSample),e.setSampleType(Il.leftSample);else if(l===Il.linkedSample)this.setSampleType(Il.linkedSample),e.setSampleType(Il.linkedSample);else throw new Error("Invalid sample type: "+l)}linkTo(e){this.linkedTo.push(e)}unlinkFrom(e){const l=this.linkedTo.indexOf(e);if(l<0){Zl(`Cannot unlink ${e.name} from ${this.name}: not linked.`);return}this.linkedTo.splice(l,1)}getAudioData(){if(this.audioData)return this.audioData;if(this.isCompressed)return this.audioData=this.decodeVorbis(),this.audioData;throw new Error("Sample data is undefined for a BasicSample instance.")}setAudioData(e,l){this.audioData=e,this.sampleRate=l,this.dataOverridden=!0,this.compressedData=void 0}setCompressedData(e){this.audioData=void 0,this.compressedData=e,this.dataOverridden=!1}encodeS16LE(){const e=this.getAudioData(),l=new Int16Array(e.length),t=e.length;for(let A=0;A<t;A++){let Q=e[A]*32768;Q>32767?Q=32767:Q<-32768&&(Q=-32768),l[A]=Q}return new nl(l.buffer)}decodeVorbis(){if(this.audioData)return this.audioData;if(!this.compressedData)throw new Error("Compressed data is missing.");try{const l=ge.decode(this.compressedData).data[0];if(l===void 0)return Zl(`Error decoding sample ${this.name}: Vorbis decode returned undefined.`),new Float32Array(0);for(let t=0;t<l.length;t++)l[t]=Math.max(-1,Math.min(l[t],.999969482421875));return l}catch(e){return Zl(`Error decoding sample ${this.name}: ${e}`),new Float32Array(this.loopEnd+1)}}},ea=class extends XA{constructor(){super("",44100,60,0,Il.monoSample,0,0)}},Qa=16;function na(e,l,t){const Q=46*(e.samples.length+1),n=new nl(Q),a=new nl(Q);e.samples.forEach((d,o)=>{El(n,d.name.substring(0,20),20),El(a,d.name.substring(20),20);const c=l[o];Al(n,c),a.currentIndex+=4;const h=t[o];Al(n,h),a.currentIndex+=4;let Z=d.loopStart+c,U=d.loopEnd+c;d.isCompressed&&(Z-=c,U-=c),Al(n,Z),Al(n,U),Al(n,d.sampleRate),n[n.currentIndex++]=d.originalKey,n[n.currentIndex++]=d.pitchCorrection,a.currentIndex+=14;const m=d.linkedSample?e.samples.indexOf(d.linkedSample):0;K(n,Math.max(0,m)&65535),K(a,Math.max(0,m)>>16);let C=d.sampleType;d.isCompressed&&(C|=Qa),K(n,C),a.currentIndex+=2}),El(n,"EOS",46),El(a,"EOS",46);const s=Fl("shdr",n),F=Fl("shdr",a);return{pdta:s,xdta:F}}function Pe(e,l=!1){const t=l?e.presets:e.instruments,A=l?"pgen":"igen",Q=l?"pmod":"imod",n=l?"pbag":"ibag",a=l?"phdr":"inst",s=l?Ke:De,F=t.map(J=>(J instanceof Tt,J.getSize())),d=F.reduce((J,X)=>J+X.gen,0)+kt,o=new nl(d),c=F.reduce((J,X)=>J+X.mod,0)+Ut,h=new nl(c),Z=F.reduce((J,X)=>J+X.bag,0)+lA,U={pdta:new nl(Z),xdta:new nl(Z)},m=F.reduce((J,X)=>X.hdr+J,0)+s,C={pdta:new nl(m),xdta:new nl(m)},W={gen:0,bag:0,mod:0,hdr:0};return t.forEach(J=>{J instanceof Tt,J.write(o,h,U,C,W,e)}),l?(El(C.pdta,"EOP",20),C.pdta.currentIndex+=4,K(C.pdta,W.hdr&65535),C.pdta.currentIndex+=12,El(C.xdta,"",20),C.xdta.currentIndex+=4,K(C.xdta,W.hdr>>16),C.xdta.currentIndex+=12):(El(C.pdta,"EOI",20),El(C.xdta,"",20),K(C.pdta,W.hdr&65535),K(C.xdta,W.hdr>>16)),K(U.pdta,W.gen&65535),K(U.xdta,W.gen>>16),K(U.pdta,W.mod&65535),K(U.xdta,W.mod>>16),{writeXdta:Math.max(d/kt,c/Ut,Z/lA,m/s)>65535,gen:{pdta:Fl(A,o),xdta:Fl(Q,new nl(kt))},mod:{pdta:Fl(Q,h),xdta:Fl(Q,new nl(Ut))},bag:{pdta:Fl(n,U.pdta),xdta:Fl(n,U.xdta)},hdr:{pdta:Fl(a,C.pdta),xdta:Fl(a,C.xdta)}}}var YA={compress:!1,compressionFunction:void 0,progressFunction:void 0,writeDefaultModulators:!0,writeExtendedLimits:!0,decompress:!1};async function aa(e,l=YA){var X;const t=mn(l,YA);if(t!=null&&t.compress){if(typeof(t==null?void 0:t.compressionFunction)!="function")throw new Error("No compression function supplied but compression enabled.");if(t!=null&&t.decompress)throw new Error("Decompressed and compressed at the same time.")}xl("%cSaving soundbank...",b.info),$(`%cCompression: %c${(t==null?void 0:t.compress)||"false"}%c`,b.info,b.recognized,b.info,b.recognized),at("%cWriting INFO...",b.info);const A=[];e.soundBankInfo.software="SpessaSynth",(t!=null&&t.compress||e.samples.some(u=>u.isCompressed))&&(e.soundBankInfo.version.major=3,e.soundBankInfo.version.minor=0),t!=null&&t.decompress&&(e.soundBankInfo.version.major=2,e.soundBankInfo.version.minor=4);const Q=(u,G)=>{A.push(Fl(u,Wt(G,!0,!0)))},n=new nl(4);if(K(n,e.soundBankInfo.version.major),K(n,e.soundBankInfo.version.minor),A.push(Fl("ifil",n)),e.soundBankInfo.romVersion){const u=new nl(4);K(u,e.soundBankInfo.romVersion.major),K(u,e.soundBankInfo.romVersion.minor),A.push(Fl("iver",u))}const a=(((X=e.soundBankInfo)==null?void 0:X.comment)??"")+(e.soundBankInfo.subject?`
5
+ ${e.soundBankInfo.subject}`:"");for(const[u,G]of Object.entries(e.soundBankInfo)){const T=u,w=G;if(w)switch(T){case"name":Q("INAM",w);break;case"comment":Q("ICMT",a);break;case"copyright":Q("ICOP",w);break;case"creationDate":Q("ICRD",w.toISOString());break;case"engineer":Q("IENG",w);break;case"product":Q("IPRD",w);break;case"romInfo":Q("irom",w);break;case"software":Q("ISFT",w);break;case"soundEngine":Q("isng",w);break}}if(e.defaultModulators.some(u=>Me.findIndex(G=>Vl.isIdentical(G,u,!0))===-1)&&(t!=null&&t.writeDefaultModulators)){const u=e.defaultModulators;$(`%cWriting %c${u.length}%c default modulators...`,b.info,b.recognized,b.info);const G=Ut+u.length*Ut,T=new nl(G);for(const w of u)w.write(T);qt(T,0,Ut),A.push(Fl("DMOD",T))}$("%cWriting SDTA...",b.info);const F=[],d=[],o=await ta(e,F,d,t.compress,t.decompress,t==null?void 0:t.compressionFunction,t==null?void 0:t.progressFunction);$("%cWriting PDTA...",b.info),$("%cWriting SHDR...",b.info);const c=na(e,F,d);at("%cWriting instruments...",b.info);const h=Pe(e,!1);at("%cWriting presets...",b.info);const Z=Pe(e,!0),U=[Z.hdr,Z.bag,Z.mod,Z.gen,h.hdr,h.bag,h.mod,h.gen,c],m=Nl("pdta",U.map(u=>u.pdta),!0);if(t.writeExtendedLimits&&(h.writeXdta||Z.writeXdta||e.presets.some(u=>u.name.length>20)||e.instruments.some(u=>u.name.length>20)||e.samples.some(u=>u.name.length>20))){$("%cWriting the xdta chunk as writeExendedLimits is enabled and at least one condition was met.",b.info,b.value);const u=Nl("xdta",U.map(G=>G.xdta),!0);A.push(u)}const W=Nl("INFO",A,!0);$("%cWriting the output file...",b.info);const J=Nl("RIFF",[Wt("sfbk"),W,o,m]);return $(`%cSaved succesfully! Final file size: %c${J.length}`,b.info,b.recognized),J.buffer}var ut=class{static verifyHeader(e,...l){for(const t of l)if(e.header.toLowerCase()===t.toLowerCase())return;this.parsingError(`Invalid DLS chunk header! Expected "${l.join(", or ")}" got "${e.header.toLowerCase()}"`)}static verifyText(e,...l){for(const t of l)if(e.toLowerCase()===t.toLowerCase())return;this.parsingError(`FourCC error: Expected "${l.join(", or ")}" got "${e.toLowerCase()}"`)}static parsingError(e){throw new Error(`DLS parse error: ${e} The file may be corrupted.`)}static verifyAndReadList(e,...l){this.verifyHeader(e,"LIST"),e.data.currentIndex=0,this.verifyText(Qt(e.data,4),...l);const t=[];for(;e.data.length>e.data.currentIndex;)t.push(Ml(e.data));return t}},Lt=20,kA=16,Ct=class Ht extends ut{constructor(){super(...arguments);R(this,"gain",0);R(this,"unityNote",60);R(this,"fineTune",0);R(this,"loops",new Array);R(this,"fulOptions",2)}static copyFrom(t){const A=new Ht;return A.unityNote=t.unityNote,A.gain=t.gain,A.fineTune=t.fineTune,A.loops=t.loops.map(Q=>({...Q})),A.fulOptions=t.fulOptions,A}static read(t){this.verifyHeader(t,"wsmp");const A=new Ht,Q=P(t.data,4);if(Q!==Lt&&Zl(`Wsmp cbSize mismatch: got ${Q}, expected ${Lt}.`),A.unityNote=P(t.data,2),A.fineTune=Vn(t.data[t.data.currentIndex++],t.data[t.data.currentIndex++]),A.gain=P(t.data,4)|0,A.fulOptions=P(t.data,4),P(t.data,4)!==0){const a=P(t.data,4);a!==kA&&Zl(`CbSize for loop in wsmp mismatch. Expected ${Lt}, got ${a}.`);const s=P(t.data,4),F=P(t.data,4),d=P(t.data,4);A.loops.push({loopStart:F,loopLength:d,loopType:s})}return A}static fromSFSample(t){const A=new Ht;return A.unityNote=t.originalKey,A.fineTune=t.pitchCorrection,(t.loopEnd!==0||t.loopStart!==0)&&A.loops.push({loopStart:t.loopStart,loopLength:t.loopEnd-t.loopStart,loopType:Ce.forward}),A}static fromSFZone(t){const A=new Ht;A.unityNote=t.getGenerator(i.overridingRootKey,t.sample.originalKey),t.getGenerator(i.scaleTuning,100)===0&&t.keyRange.max-t.keyRange.min===0&&(A.unityNote=t.keyRange.min),A.fineTune=t.fineTuning+t.sample.pitchCorrection;const Q=t.getGenerator(i.initialAttenuation,0)*.4;A.gain=-Q<<16;const n=t.getGenerator(i.sampleModes,0);if(n!==0){const a=t.sample.loopStart+t.getGenerator(i.startloopAddrsOffset,0)+t.getGenerator(i.startloopAddrsCoarseOffset,0)*32768,s=t.sample.loopEnd+t.getGenerator(i.endloopAddrsOffset,0)+t.getGenerator(i.endloopAddrsCoarseOffset,0)*32768;let F;switch(n){case 1:default:F=0;break;case 3:F=1}A.loops.push({loopType:F,loopStart:a,loopLength:s-a})}return A}toSFZone(t,A){let Q=0;const n=this.loops[0];n&&(Q=n.loopType===Ce.loopAndRelease?3:1),Q!==0&&t.setGenerator(i.sampleModes,Q);const F=-(this.gain>>16)/.4;if(F!==0&&t.setGenerator(i.initialAttenuation,F),t.fineTuning=this.fineTune-A.pitchCorrection,this.unityNote!==A.originalKey&&t.setGenerator(i.overridingRootKey,this.unityNote),n){const d=n.loopStart-A.loopStart,c=n.loopStart+n.loopLength-A.loopEnd;if(d!==0){const h=d%32768;t.setGenerator(i.startloopAddrsOffset,h);const Z=Math.trunc(d/32768);Z!==0&&t.setGenerator(i.startloopAddrsCoarseOffset,Z)}if(c!==0){const h=c%32768;t.setGenerator(i.endloopAddrsOffset,h);const Z=Math.trunc(c/32768);Z!==0&&t.setGenerator(i.endloopAddrsCoarseOffset,Z)}}}write(){const t=new nl(Lt+this.loops.length*kA);return Al(t,Lt),K(t,this.unityNote),K(t,this.fineTune),Al(t,this.gain),Al(t,this.fulOptions),Al(t,this.loops.length),this.loops.forEach(A=>{Al(t,kA),Al(t,A.loopType),Al(t,A.loopStart),Al(t,A.loopLength)}),Fl("wsmp",t)}},TA={PCM:1,ALAW:6};function da(e,l){const t=Math.pow(2,l*8-1),A=Math.pow(2,l*8);let Q,n=!1;l===1?(Q=255,n=!0):Q=t;const a=e.length/l,s=new Float32Array(a);if(l===2){const F=new Int16Array(e.buffer);for(let d=0;d<F.length;d++)s[d]=F[d]/32768}else for(let F=0;F<s.length;F++){let d=P(e,l);n?s[F]=d/Q-.5:(d>=t&&(d-=A),s[F]=d/Q)}return s}function Fa(e,l){const t=e.length/l,A=new Float32Array(t);for(let Q=0;Q<A.length;Q++){const n=P(e,l);let a=n^85;a&=127;const s=a>>4;let F=a&15;s>0&&(F+=16),F=(F<<4)+8,s>1&&(F=F<<s-1);const d=n>127?F:-F;A[Q]=d/32678}return A}var Ua=class extends XA{constructor(l,t,A,Q,n,a,s,F,d){super(l,t,A,Q,Il.monoSample,n,a);R(this,"wFormatTag");R(this,"bytesPerSample");R(this,"rawData");this.dataOverridden=!1,this.rawData=s.data,this.wFormatTag=F,this.bytesPerSample=d}getAudioData(){if(!this.rawData)return new Float32Array(0);if(!this.audioData){let l;switch(this.wFormatTag){default:Zl(`Failed to decode sample. Unknown wFormatTag: ${this.wFormatTag}`),l=new Float32Array(this.rawData.length/this.bytesPerSample);break;case TA.PCM:l=da(this.rawData,this.bytesPerSample);break;case TA.ALAW:l=Fa(this.rawData,this.bytesPerSample);break}this.setAudioData(l,this.sampleRate)}return this.audioData??new Float32Array(0)}getRawData(l){return this.dataOverridden||this.isCompressed?super.getRawData(l):this.wFormatTag===TA.PCM&&this.bytesPerSample===2?this.rawData:this.encodeS16LE()}},Oe=class fA extends ut{constructor(t,A,Q,n){super();R(this,"waveSample",new Ct);R(this,"wFormatTag");R(this,"bytesPerSample");R(this,"sampleRate");R(this,"dataChunk");R(this,"name","Unnamed sample");this.wFormatTag=t,this.bytesPerSample=A,this.sampleRate=Q,this.dataChunk=n}static read(t){const A=this.verifyAndReadList(t,"wave"),Q=A.find(U=>U.header==="fmt ");if(!Q)throw new Error("No fmt chunk in the wave file!");const n=P(Q.data,2),a=P(Q.data,2);if(a!==1)throw new Error(`Only mono samples are supported. Fmt reports ${a} channels.`);const s=P(Q.data,4);P(Q.data,4),P(Q.data,2);const d=P(Q.data,2)/8,o=A.find(U=>U.header==="data");if(!o)throw new Error("No data chunk in the WAVE chunk!");const c=new fA(n,d,s,o),h=nt(A,"INFO");if(h){let U=Ml(h.data);for(;U.header!=="INAM"&&h.data.currentIndex<h.data.length;)U=Ml(h.data);U.header==="INAM"&&(c.name=Qt(U.data,U.size).trim())}const Z=A.find(U=>U.header==="wsmp");return Z&&(c.waveSample=Ct.read(Z)),c}static fromSFSample(t){const A=t.getRawData(!1),Q=new fA(1,2,t.sampleRate,new Ie("data",A.length,new nl(A.buffer)));return Q.name=t.name,Q.waveSample=Ct.fromSFSample(t),Q}toSFSample(t){var o;let A=this.waveSample.unityNote,Q=this.waveSample.fineTune;const n=Math.trunc(Q/100);A+=n,Q-=n*100;let a=0,s=0;const F=(o=this.waveSample.loops)==null?void 0:o[0];F&&(a=F.loopStart,s=F.loopStart+F.loopLength);const d=new Ua(this.name,this.sampleRate,A,Q,a,s,this.dataChunk,this.wFormatTag,this.bytesPerSample);t.addSamples(d)}write(){const t=this.writeFmt(),A=this.waveSample.write(),Q=Fl("data",this.dataChunk.data),n=Fl("INAM",Wt(this.name,!0)),a=Fl("INFO",n,!1,!0);return $(`%cSaved %c${this.name}%c successfully!`,b.recognized,b.value,b.recognized),Nl("wave",[t,A,Q,a],!0)}writeFmt(){const t=new nl(18);return K(t,this.wFormatTag),K(t,1),Al(t,this.sampleRate),Al(t,this.sampleRate*2),K(t,2),K(t,this.bytesPerSample*8),Fl("fmt ",t)}},qe=new bl(219,0,i.reverbEffectsSend,1e3,0),_e=new bl(221,0,i.chorusEffectsSend,1e3,0),Ba=new bl(129,0,i.vibLfoToPitch,0,0),sa=new bl(13,0,i.vibLfoToPitch,0,0),Dl=class jA{constructor(l=p.none,t=il.linear,A=!1,Q=!1){R(this,"source");R(this,"transform");R(this,"bipolar");R(this,"invert");this.source=l,this.transform=t,this.bipolar=A,this.invert=Q}get sourceName(){return Object.keys(p).find(l=>p[l]===this.source)??this.source.toString()}get transformName(){return Object.keys(il).find(l=>il[l]===this.transform)??this.transform.toString()}static copyFrom(l){return new jA(l.source,l.transform,l.bipolar,l.invert)}static fromSFSource(l){let t;if(l.isCC)switch(l.index){case v.modulationWheel:t=p.modulationWheel;break;case v.mainVolume:t=p.volume;break;case v.pan:t=p.pan;break;case v.expressionController:t=p.expression;break;case v.chorusDepth:t=p.chorus;break;case v.reverbDepth:t=p.reverb;break}else switch(l.index){case sl.noController:t=p.none;break;case sl.noteOnKeyNum:t=p.keyNum;break;case sl.noteOnVelocity:t=p.velocity;break;case sl.pitchWheel:t=p.pitchWheel;break;case sl.pitchWheelRange:t=p.pitchWheelRange;break;case sl.polyPressure:t=p.polyPressure;break;case sl.channelPressure:t=p.channelPressure}if(t!==void 0)return new jA(t,l.curveType,l.isBipolar,l.isNegative)}toString(){return`${this.sourceName} ${this.transformName} ${this.bipolar?"bipolar":"unipolar"} ${this.invert?"inverted":"positive"}`}toTransformFlag(){return this.transform|(this.bipolar?1:0)<<4|(this.invert?1:0)<<5}toSFSource(){let l,t=!1;switch(this.source){default:case p.modLfo:case p.vibratoLfo:case p.coarseTune:case p.fineTune:case p.modEnv:return;case p.keyNum:l=sl.noteOnKeyNum;break;case p.none:l=sl.noController;break;case p.modulationWheel:l=v.modulationWheel,t=!0;break;case p.pan:l=v.pan,t=!0;break;case p.reverb:l=v.reverbDepth,t=!0;break;case p.chorus:l=v.chorusDepth,t=!0;break;case p.expression:l=v.expressionController,t=!0;break;case p.volume:l=v.mainVolume,t=!0;break;case p.velocity:l=sl.noteOnVelocity;break;case p.polyPressure:l=sl.polyPressure;break;case p.channelPressure:l=sl.channelPressure;break;case p.pitchWheel:l=sl.pitchWheel;break;case p.pitchWheelRange:l=sl.pitchWheelRange;break}if(l!==void 0)return new Ol(l,this.transform,t,this.bipolar,this.invert)}},ia=new Set([i.sampleModes,i.initialAttenuation,i.keyRange,i.velRange,i.sampleID,i.fineTune,i.coarseTune,i.startAddrsOffset,i.startAddrsCoarseOffset,i.endAddrOffset,i.endAddrsCoarseOffset,i.startloopAddrsOffset,i.startloopAddrsCoarseOffset,i.endloopAddrsOffset,i.endloopAddrsCoarseOffset,i.overridingRootKey,i.exclusiveClass]),Mt=class mt{constructor(l=new Dl,t=new Dl,A,Q,n){R(this,"source");R(this,"control");R(this,"destination");R(this,"scale");R(this,"transform");this.source=l,this.control=t,this.destination=A,this.transform=Q,this.scale=n}get isStaticParameter(){return this.source.source===p.none&&this.control.source===p.none}get shortScale(){return this.scale>>16}get transformName(){return Object.keys(il).find(l=>il[l]===this.transform)??this.transform.toString()}get destinationName(){return Object.keys(I).find(l=>I[l]===this.destination)??this.destination.toString()}static read(l){const t=P(l,2),A=P(l,2),Q=P(l,2),n=P(l,2),a=P(l,4)|0,s=n&15,F=n>>4&15,d=ot(n,8),o=ot(n,9),c=new Dl(A,F,d,o),h=n>>10&15,Z=ot(n,14),U=ot(n,15),m=new Dl(t,h,Z,U);return new mt(m,c,Q,s,a)}static fromSFModulator(l,t){const A=o=>{Zl(`Failed converting SF modulator into DLS:
6
+ ${l.toString()}
7
+ (${o})`)};if(l.transformType!==0){A("Absolute transform type is not supported");return}if(Vl.isIdentical(l,_e,!0)||Vl.isIdentical(l,qe,!0))return;let Q=Dl.fromSFSource(l.primarySource);if(!Q){A("Invalid primary source");return}let n=Dl.fromSFSource(l.secondarySource);if(!n){A("Invalid secondary source");return}const a=mt.fromSFDestination(l.destination,l.transformAmount);if(a===void 0){A("Invalid destination");return}let s=l.transformAmount,F;if(typeof a=="number")F=a;else if(F=a.destination,s=a.amount,a.source!==p.none){if(n.source!==p.none&&Q.source!==p.none){A("Articulation generators with secondary source are not supported");return}Q.source!==p.none&&(n=Q),Q=new Dl(a.source,il.linear,a.isBipolar)}const d=new mt(Q,n,F,0,s<<16);t.connectionBlocks.push(d)}static copyFrom(l){return new mt(Dl.copyFrom(l.source),Dl.copyFrom(l.control),l.destination,l.transform,l.scale)}static fromSFGenerator(l,t){if(ia.has(l.generatorType))return;const A=F=>{Zl(`Failed converting SF2 generator into DLS:
8
+ ${l.toString()}
9
+ (${F})`)},Q=mt.fromSFDestination(l.generatorType,l.generatorValue);if(Q===void 0){A("Invalid type");return}const n=new Dl;let a,s=l.generatorValue;typeof Q=="number"?a=Q:(a=Q.destination,s=Q.amount,n.source=Q.source,n.bipolar=Q.isBipolar),t.connectionBlocks.push(new mt(n,new Dl,a,0,s<<16))}static fromSFDestination(l,t){switch(l){default:return;case i.initialAttenuation:return{destination:I.gain,amount:-t,isBipolar:!1,source:p.none};case i.fineTune:return I.pitch;case i.pan:return I.pan;case i.keyNum:return I.keyNum;case i.reverbEffectsSend:return I.reverbSend;case i.chorusEffectsSend:return I.chorusSend;case i.freqModLFO:return I.modLfoFreq;case i.delayModLFO:return I.modLfoDelay;case i.delayVibLFO:return I.vibLfoDelay;case i.freqVibLFO:return I.vibLfoFreq;case i.delayVolEnv:return I.volEnvDelay;case i.attackVolEnv:return I.volEnvAttack;case i.holdVolEnv:return I.volEnvHold;case i.decayVolEnv:return I.volEnvDecay;case i.sustainVolEnv:return{destination:I.volEnvSustain,amount:1e3-t,isBipolar:!1,source:p.none};case i.releaseVolEnv:return I.volEnvRelease;case i.delayModEnv:return I.modEnvDelay;case i.attackModEnv:return I.modEnvAttack;case i.holdModEnv:return I.modEnvHold;case i.decayModEnv:return I.modEnvDecay;case i.sustainModEnv:return{destination:I.modEnvSustain,amount:1e3-t,isBipolar:!1,source:p.none};case i.releaseModEnv:return I.modEnvRelease;case i.initialFilterFc:return I.filterCutoff;case i.initialFilterQ:return I.filterQ;case i.modEnvToFilterFc:return{source:p.modEnv,destination:I.filterCutoff,amount:t,isBipolar:!1};case i.modEnvToPitch:return{source:p.modEnv,destination:I.pitch,amount:t,isBipolar:!1};case i.modLfoToFilterFc:return{source:p.modLfo,destination:I.filterCutoff,amount:t,isBipolar:!0};case i.modLfoToVolume:return{source:p.modLfo,destination:I.gain,amount:t,isBipolar:!0};case i.modLfoToPitch:return{source:p.modLfo,destination:I.pitch,amount:t,isBipolar:!0};case i.vibLfoToPitch:return{source:p.vibratoLfo,destination:I.pitch,amount:t,isBipolar:!0};case i.keyNumToVolEnvHold:return{source:p.keyNum,destination:I.volEnvHold,amount:t,isBipolar:!0};case i.keyNumToVolEnvDecay:return{source:p.keyNum,destination:I.volEnvDecay,amount:t,isBipolar:!0};case i.keyNumToModEnvHold:return{source:p.keyNum,destination:I.modEnvHold,amount:t,isBipolar:!0};case i.keyNumToModEnvDecay:return{source:p.keyNum,destination:I.modEnvDecay,amount:t,isBipolar:!0};case i.scaleTuning:return{source:p.keyNum,destination:I.pitch,amount:t*128,isBipolar:!1}}}toString(){return`Source: ${this.source.toString()},
10
10
  Control: ${this.control.toString()},
11
11
  Scale: ${this.scale} >> 16 = ${this.shortScale},
12
12
  Output transform: ${this.transformName}
13
- Destination: ${this.destinationName}`}write(){const A=new aA(12);V(A,this.source.source),V(A,this.control.source),V(A,this.destination);const e=this.transform|this.control.toTransformFlag()<<4|this.source.toTransformFlag()<<10;return V(A,e),tA(A,this.scale),A}toSFGenerator(A){const e=this.destination,t=this.shortScale;switch(e){default:_(`%cFailed converting DLS articulator into SF generator: %c${this.toString()}%c
14
- (invalid destination)`,f.warn,f.value,f.unrecognized);return;case p.pan:A.setGenerator(l.pan,t);break;case p.gain:A.addToGenerator(l.initialAttenuation,-t/.4);break;case p.filterCutoff:A.setGenerator(l.initialFilterFc,t);break;case p.filterQ:A.setGenerator(l.initialFilterQ,t);break;case p.modLfoFreq:A.setGenerator(l.freqModLFO,t);break;case p.modLfoDelay:A.setGenerator(l.delayModLFO,t);break;case p.vibLfoFreq:A.setGenerator(l.freqVibLFO,t);break;case p.vibLfoDelay:A.setGenerator(l.delayVibLFO,t);break;case p.volEnvDelay:A.setGenerator(l.delayVolEnv,t);break;case p.volEnvAttack:A.setGenerator(l.attackVolEnv,t);break;case p.volEnvHold:A.setGenerator(l.holdVolEnv,t);break;case p.volEnvDecay:A.setGenerator(l.decayVolEnv,t);break;case p.volEnvRelease:A.setGenerator(l.releaseVolEnv,t);break;case p.volEnvSustain:A.setGenerator(l.sustainVolEnv,1e3-t);break;case p.modEnvDelay:A.setGenerator(l.delayModEnv,t);break;case p.modEnvAttack:A.setGenerator(l.attackModEnv,t);break;case p.modEnvHold:A.setGenerator(l.holdModEnv,t);break;case p.modEnvDecay:A.setGenerator(l.decayModEnv,t);break;case p.modEnvRelease:A.setGenerator(l.releaseModEnv,t);break;case p.modEnvSustain:A.setGenerator(l.sustainModEnv,1e3-t);break;case p.reverbSend:A.setGenerator(l.reverbEffectsSend,t);break;case p.chorusSend:A.setGenerator(l.chorusEffectsSend,t);break;case p.pitch:A.fineTuning+=t;break}}toSFModulator(A){let e=this.shortScale,t,i,a=new XA;const s=o=>{_(`%cFailed converting DLS articulator into SF2:
13
+ Destination: ${this.destinationName}`}write(){const l=new nl(12);K(l,this.source.source),K(l,this.control.source),K(l,this.destination);const t=this.transform|this.control.toTransformFlag()<<4|this.source.toTransformFlag()<<10;return K(l,t),Al(l,this.scale),l}toSFGenerator(l){const t=this.destination,A=this.shortScale;switch(t){default:$(`%cFailed converting DLS articulator into SF generator: %c${this.toString()}%c
14
+ (invalid destination)`,b.warn,b.value,b.unrecognized);return;case I.pan:l.setGenerator(i.pan,A);break;case I.gain:l.addToGenerator(i.initialAttenuation,-A/.4);break;case I.filterCutoff:l.setGenerator(i.initialFilterFc,A);break;case I.filterQ:l.setGenerator(i.initialFilterQ,A);break;case I.modLfoFreq:l.setGenerator(i.freqModLFO,A);break;case I.modLfoDelay:l.setGenerator(i.delayModLFO,A);break;case I.vibLfoFreq:l.setGenerator(i.freqVibLFO,A);break;case I.vibLfoDelay:l.setGenerator(i.delayVibLFO,A);break;case I.volEnvDelay:l.setGenerator(i.delayVolEnv,A);break;case I.volEnvAttack:l.setGenerator(i.attackVolEnv,A);break;case I.volEnvHold:l.setGenerator(i.holdVolEnv,A);break;case I.volEnvDecay:l.setGenerator(i.decayVolEnv,A);break;case I.volEnvRelease:l.setGenerator(i.releaseVolEnv,A);break;case I.volEnvSustain:l.setGenerator(i.sustainVolEnv,1e3-A);break;case I.modEnvDelay:l.setGenerator(i.delayModEnv,A);break;case I.modEnvAttack:l.setGenerator(i.attackModEnv,A);break;case I.modEnvHold:l.setGenerator(i.holdModEnv,A);break;case I.modEnvDecay:l.setGenerator(i.decayModEnv,A);break;case I.modEnvRelease:l.setGenerator(i.releaseModEnv,A);break;case I.modEnvSustain:l.setGenerator(i.sustainModEnv,1e3-A);break;case I.reverbSend:l.setGenerator(i.reverbEffectsSend,A);break;case I.chorusSend:l.setGenerator(i.chorusEffectsSend,A);break;case I.pitch:l.fineTuning+=A;break}}toSFModulator(l){let t=this.shortScale,A,Q,n=new Ol;const a=d=>{$(`%cFailed converting DLS articulator into SF2:
15
15
  %c${this.toString()}%c
16
- (${o})`,f.warn,f.value,f.unrecognized)},g=this.toCombinedSFDestination();if(g){t=g;const o=this.control.toSFSource();if(!o){s("Invalid control");return}i=o}else{const o=this.toSFDestination();if(!o){s("Invalid destination");return}typeof o=="object"?(e=o.newAmount,t=o.gen):t=o;const B=this.source.toSFSource();if(!B){s("Invalid source");return}i=B;const C=this.control.toSFSource();if(!C){s("Invalid control");return}a=C}this.transform!==lA.linear&&i.curveType===lA.linear&&(i.curveType=this.transform),t===l.initialAttenuation&&((this.source.source===G.velocity||this.source.source===G.volume||this.source.source===G.expression)&&(i.isNegative=!0),e=Math.min(960,Math.max(0,e)));const I=new dA(i,a,t,e,0);A.addModulators(I)}toCombinedSFDestination(){const A=this.source.source,e=this.destination;return A===G.vibratoLfo&&e===p.pitch?l.vibLfoToPitch:A===G.modLfo&&e===p.pitch?l.modLfoToPitch:A===G.modLfo&&e===p.filterCutoff?l.modLfoToFilterFc:A===G.modLfo&&e===p.gain?l.modLfoToVolume:A===G.modEnv&&e===p.filterCutoff?l.modEnvToFilterFc:A===G.modEnv&&e===p.pitch?l.modEnvToPitch:void 0}toSFDestination(){const A=this.shortScale;switch(this.destination){default:case p.none:return;case p.pan:return l.pan;case p.gain:return{gen:l.initialAttenuation,newAmount:-A};case p.pitch:return l.fineTune;case p.keyNum:return l.overridingRootKey;case p.volEnvDelay:return l.delayVolEnv;case p.volEnvAttack:return l.attackVolEnv;case p.volEnvHold:return l.holdVolEnv;case p.volEnvDecay:return l.decayVolEnv;case p.volEnvSustain:return{gen:l.sustainVolEnv,newAmount:1e3-A};case p.volEnvRelease:return l.releaseVolEnv;case p.modEnvDelay:return l.delayModEnv;case p.modEnvAttack:return l.attackModEnv;case p.modEnvHold:return l.holdModEnv;case p.modEnvDecay:return l.decayModEnv;case p.modEnvSustain:return{gen:l.sustainModEnv,newAmount:1e3-A};case p.modEnvRelease:return l.releaseModEnv;case p.filterCutoff:return l.initialFilterFc;case p.filterQ:return l.initialFilterQ;case p.chorusSend:return l.chorusEffectsSend;case p.reverbSend:return l.reverbEffectsSend;case p.modLfoFreq:return l.freqModLFO;case p.modLfoDelay:return l.delayModLFO;case p.vibLfoFreq:return l.freqVibLFO;case p.vibLfoDelay:return l.delayVibLFO}}},zn=class Xt extends ke{constructor(){super(...arguments);h(this,"connectionBlocks",new Array);h(this,"mode","dls2")}get length(){return this.connectionBlocks.length}copyFrom(e){this.mode=e.mode,e.connectionBlocks.forEach(t=>{this.connectionBlocks.push(Je.copyFrom(t))})}fromSFZone(e){this.mode="dls2";const t=new tt;t.copyFrom(e);for(const i of t.generators){let a;switch(i.generatorType){default:continue;case l.keyNumToVolEnvDecay:a=l.decayVolEnv;break;case l.keyNumToVolEnvHold:a=l.holdVolEnv;break;case l.keyNumToModEnvDecay:a=l.decayModEnv;break;case l.keyNumToModEnvHold:a=l.holdModEnv}const s=t.getGenerator(a,void 0),g=i.generatorValue*-128;if(s===void 0)continue;const I=60/128*g,o=s-I;t.setGenerator(i.generatorType,g,!1),t.setGenerator(a,o,!1)}for(const i of t.generators)Je.fromSFGenerator(i,this);for(const i of t.modulators)Je.fromSFModulator(i,this)}read(e){const t=ae(e,"lart"),i=ae(e,"lar2");if(t)for(this.mode="dls1";t.data.currentIndex<t.data.length;){const a=TA(t.data);Xt.verifyHeader(a,"art1","art2");const s=a.data,g=X(s,4);g!==8&&hA(`CbSize in articulation mismatch. Expected 8, got ${g}`);const I=X(s,4);for(let o=0;o<I;o++)this.connectionBlocks.push(Je.read(s))}else if(i)for(this.mode="dls2";i.data.currentIndex<i.data.length;){const a=TA(i.data);Xt.verifyHeader(a,"art2","art1");const s=a.data,g=X(s,4);g!==8&&hA(`CbSize in articulation mismatch. Expected 8, got ${g}`);const I=X(s,4);for(let o=0;o<I;o++)this.connectionBlocks.push(Je.read(s))}}write(){const e=new aA(8);tA(e,8),tA(e,this.connectionBlocks.length);const t=this.connectionBlocks.map(a=>a.write()),i=bA(this.mode==="dls2"?"art2":"art1",[e,...t]);return rA(this.mode==="dls2"?"lar2":"lart",i,!1,!0)}toSFZone(e){const t=(i,a,s,g)=>{const I=i/-128;if(e.setGenerator(a,I),I<=120){const o=Math.round(.46875*i),B=this.connectionBlocks.find(C=>C.isStaticParameter&&C.destination===g);B&&e.setGenerator(s,o+B.shortScale)}};for(const i of this.connectionBlocks){const a=i.shortScale,s=i.source.source,g=i.control.source,I=i.destination;if(i.isStaticParameter){i.toSFGenerator(e);continue}if(g===G.none)if(s===G.keyNum){if(I===p.pitch){e.setGenerator(l.scaleTuning,a/128);continue}if(I===p.modEnvHold||I===p.modEnvDecay||I===p.volEnvHold||I==p.volEnvDecay)continue}else{const o=i.toCombinedSFDestination();if(o){e.setGenerator(o,a);continue}}i.toSFModulator(e)}this.mode==="dls1"&&e.addModulators(dA.copyFrom(ns),dA.copyFrom(is));for(const i of this.connectionBlocks){if(i.source.source!==G.keyNum)continue;const a=i.shortScale;switch(i.destination){default:continue;case p.volEnvHold:t(a,l.keyNumToVolEnvHold,l.holdVolEnv,p.volEnvHold);break;case p.volEnvDecay:t(a,l.keyNumToVolEnvDecay,l.decayVolEnv,p.volEnvDecay);break;case p.modEnvHold:t(a,l.keyNumToModEnvHold,l.holdModEnv,p.modEnvHold);break;case p.modEnvDecay:t(a,l.keyNumToModEnvDecay,l.decayModEnv,p.modEnvDecay);break}}}},Tt=class Bt{constructor(A){h(this,"channel",1);h(this,"tableIndex");h(this,"fusOptions",0);h(this,"phaseGroup",0);this.tableIndex=A}static copyFrom(A){const e=new Bt(A.tableIndex);return e.channel=A.channel,e.phaseGroup=A.phaseGroup,e.fusOptions=A.fusOptions,e}static read(A){const e=X(A.data,2),t=X(A.data,2),i=X(A.data,4),a=X(A.data,4),s=new Bt(a);return s.channel=i,s.fusOptions=e,s.phaseGroup=t,s}static fromSFZone(A,e){const t=A.indexOf(e.sample);if(t<0)throw new Error(`Wave link error: Sample ${e.sample.name} does not exist in the sample list.`);const i=new Bt(t);switch(e.sample.sampleType){default:case pA.leftSample:case pA.monoSample:i.channel=1;break;case pA.rightSample:i.channel=2}return i}write(){const A=new aA(12);return V(A,this.fusOptions),V(A,this.phaseGroup),tA(A,this.channel),tA(A,this.tableIndex),rA("wlnk",A)}},at=class be extends ke{constructor(e,t){super();h(this,"articulation",new zn);h(this,"keyRange",{min:0,max:127});h(this,"velRange",{min:0,max:127});h(this,"keyGroup",0);h(this,"fusOptions",0);h(this,"usLayer",0);h(this,"waveSample");h(this,"waveLink");this.waveSample=t,this.waveLink=e}static copyFrom(e){const t=new be(Tt.copyFrom(e.waveLink),we.copyFrom(e.waveSample));return t.keyGroup=e.keyGroup,t.keyRange={...e.keyRange},t.velRange={...e.velRange},t.usLayer=e.usLayer,t.fusOptions=e.fusOptions,t.articulation.copyFrom(e.articulation),t}static read(e,t){const i=this.verifyAndReadList(t,"rgn ","rgn2"),a=i.find(F=>F.header==="wsmp");let s=a?we.read(a):void 0;const g=i.find(F=>F.header==="wlnk");if(!g){hA("Invalid DLS region: missing 'wlnk' chunk! Discarding...");return}const I=Tt.read(g),o=i.find(F=>F.header==="rgnh");if(!o){hA("Invalid DLS region: missing 'rgnh' chunk! Discarding...");return}const B=e[I.tableIndex];B||be.parsingError(`Invalid sample index: ${I.tableIndex}. Samples available: ${e.length}`),s??(s=B.waveSample);const C=new be(I,s),Q=X(o.data,2),c=X(o.data,2);let r=X(o.data,2),m=X(o.data,2);return r===0&&m===0&&(m=127,r=0),C.keyRange.max=c,C.keyRange.min=Q,C.velRange.max=m,C.velRange.min=r,C.fusOptions=X(o.data,2),C.keyGroup=X(o.data,2),o.data.length-o.data.currentIndex>=2&&(C.usLayer=X(o.data,2)),C.articulation.read(i),C}static fromSFZone(e,t){const i=we.fromSFZone(e),a=Tt.fromSFZone(t,e),s=new be(a,i);return s.keyRange.min=Math.max(e.keyRange.min,0),s.keyRange.max=e.keyRange.max,s.velRange.min=Math.max(e.velRange.min,0),s.velRange.max=e.velRange.max,s.keyGroup=e.getGenerator(l.exclusiveClass,0),s.articulation.fromSFZone(e),s}write(){const e=[this.writeHeader(),this.waveSample.write(),this.waveLink.write(),this.articulation.write()];return bA("rgn2",e,!0)}toSFZone(e,t){const i=t[this.waveLink.tableIndex];i||be.parsingError(`Invalid sample index: ${this.waveLink.tableIndex}`);const a=e.createZone(i);return a.keyRange=this.keyRange,a.velRange=this.velRange,this.keyRange.max===127&&this.keyRange.min===0&&(a.keyRange.min=-1),this.velRange.max===127&&this.velRange.min===0&&(a.velRange.min=-1),this.keyGroup!==0&&a.setGenerator(l.exclusiveClass,this.keyGroup),this.waveSample.toSFZone(a,i),this.articulation.toSFZone(a),a.generators=a.generators.filter(s=>s.generatorValue!==L[s.generatorType].def),a}writeHeader(){const e=new aA(12);return V(e,Math.max(this.keyRange.min,0)),V(e,this.keyRange.max),V(e,Math.max(this.velRange.min,0)),V(e,this.velRange.max),V(e,this.fusOptions),V(e,this.keyGroup),V(e,this.usLayer),rA("rgnh",e)}},Jt=class Ct extends ke{constructor(){super(...arguments);h(this,"articulation",new zn);h(this,"regions",new Array);h(this,"name","Unnamed");h(this,"bankLSB",0);h(this,"bankMSB",0);h(this,"isGMGSDrum",!1);h(this,"program",0)}static copyFrom(e){const t=new Ct;return t.name=e.name,t.isGMGSDrum=e.isGMGSDrum,t.bankMSB=e.bankMSB,t.bankLSB=e.bankLSB,t.program=e.program,t.articulation.copyFrom(e.articulation),e.regions.forEach(i=>{t.regions.push(at.copyFrom(i))}),t}static read(e,t){const i=this.verifyAndReadList(t,"ins "),a=i.find(c=>c.header==="insh");if(!a)throw new Error("No instrument header!");let s="";const g=ae(i,"INFO");if(g){let c=TA(g.data);for(;c.header!=="INAM";)c=TA(g.data);s=ie(c.data,c.data.length).trim()}s.length<1&&(s="Unnamed Instrument");const I=new Ct;I.name=s;const o=X(a.data,4),B=X(a.data,4),C=X(a.data,4);I.program=C&127,I.bankMSB=B>>>8&127,I.bankLSB=B&127,I.isGMGSDrum=B>>>31>0,JA(`%cParsing %c"${s}"%c...`,f.info,f.recognized,f.info);const Q=ae(i,"lrgn");if(!Q)throw new Error("No region list!");I.articulation.read(i);for(let c=0;c<o;c++){const r=TA(Q.data);this.verifyHeader(r,"LIST");const m=ie(r.data,4);m!=="rgn "&&m!=="rgn2"&&this.parsingError(`Invalid DLS region! Expected "rgn " or "rgn2" got "${m}"`);const F=at.read(e,r);F&&I.regions.push(F)}return I}static fromSFPreset(e,t){const i=new Ct;return i.name=e.name,i.bankLSB=e.bankLSB,i.bankMSB=e.bankMSB,i.program=e.program,i.isGMGSDrum=e.isGMGSDrum,se(`%cConverting %c${e.toString()}%c to DLS...`,f.info,f.value,f.info),e.toFlattenedInstrument().zones.forEach(s=>{i.regions.push(at.fromSFZone(s,t))}),i}write(){JA(`%cWriting %c${this.name}%c...`,f.info,f.recognized,f.info);const e=[this.writeHeader()],t=this.regions.map(a=>a.write());e.push(bA("lrgn",t,!0)),this.articulation.length>0&&e.push(this.articulation.write());const i=rA("INAM",ye(this.name,!0));return e.push(rA("INFO",i,!1,!0)),bA("ins ",e,!0)}toSFPreset(e){const t=new Ne(e);t.name=this.name,t.bankMSB=this.bankMSB,t.bankLSB=this.bankLSB,t.isGMGSDrum=this.isGMGSDrum,t.program=this.program;const i=new nt;i.name=this.name,t.createZone(i),this.articulation.toSFZone(i.globalZone),this.regions.forEach(a=>a.toSFZone(i,e.samples)),i.globalize(),i.globalZone.modulators.find(a=>a.destination===l.reverbEffectsSend)===void 0&&i.globalZone.addModulators(dA.copyFrom(Xn)),i.globalZone.modulators.find(a=>a.destination===l.chorusEffectsSend)===void 0&&i.globalZone.addModulators(dA.copyFrom(jn)),i.globalZone.generators=i.globalZone.generators.filter(a=>a.generatorValue!==L[a.generatorType].def),e.addPresets(t),e.addInstruments(i)}writeHeader(){const e=new aA(12);tA(e,this.regions.length);let t=(this.bankMSB&127)<<8|this.bankLSB&127;return this.isGMGSDrum&&(t|=1<<31),tA(e,t),tA(e,this.program&127),rA("insh",e)}},_n={progressFunction:void 0},ss=class jt extends ke{constructor(){super(...arguments);h(this,"samples",new Array);h(this,"instruments",new Array);h(this,"soundBankInfo",{name:"Unnamed",creationDate:new Date,software:"SpessaSynth",soundEngine:"DLS Level 2.2",version:{major:2,minor:4}})}static read(e){if(!e)throw new Error("No data provided!");const t=new aA(e);se("%cParsing DLS file...",f.info);const i=TA(t,!1);this.verifyHeader(i,"RIFF"),this.verifyText(ie(t,4).toLowerCase(),"dls ");const a=[];for(;t.currentIndex<t.length;)a.push(TA(t));const s=new jt;s.soundBankInfo.name="Unnamed DLS",s.soundBankInfo.product="SpessaSynth DLS",s.soundBankInfo.comment="(no description)";const g=ae(a,"INFO");if(g)for(;g.data.currentIndex<g.data.length;){const m=TA(g.data),F=m.header,k=ie(m.data,m.size);switch(F){case"INAM":s.soundBankInfo.name=k;break;case"ICRD":s.soundBankInfo.creationDate=Fa(k);break;case"ICMT":s.soundBankInfo.comment=k;break;case"ISBJ":s.soundBankInfo.subject=k;break;case"ICOP":s.soundBankInfo.copyright=k;break;case"IENG":s.soundBankInfo.engineer=k;break;case"IPRD":s.soundBankInfo.product=k;break;case"ISFT":s.soundBankInfo.software=k}}this.printInfo(s);const I=a.find(m=>m.header==="colh");if(!I)return this.parsingError("No colh chunk!"),5;const o=X(I.data,4);_(`%cInstruments amount: %c${o}`,f.info,f.recognized);const B=ae(a,"wvpl");if(!B)return this.parsingError("No wvpl chunk!"),5;this.verifyAndReadList(B,"wvpl").forEach(m=>{s.samples.push(Wn.read(m))});const Q=ae(a,"lins");if(!Q)return this.parsingError("No lins chunk!"),5;const c=this.verifyAndReadList(Q,"lins");JA("%cLoading instruments...",f.info),c.length!==o&&hA(`Colh reported invalid amount of instruments. Detected ${c.length}, expected ${o}`),c.forEach(m=>{s.instruments.push(Jt.read(s.samples,m))});const r=a.find(m=>m.header==="pgal");if(r){_("%cFound the instrument aliasing chunk!",f.recognized);const m=r.data;(m[0]!==0||m[1]!==1||m[2]!==2||m[3]!==3)&&(m.currentIndex+=4);const F=s.instruments.find(R=>re.isXGDrums(R.bankMSB)||R.isGMGSDrum);if(!F)return hA("MobileBAE aliasing chunk without a drum preset. Aborting!"),s;const k=m.slice(m.currentIndex,m.currentIndex+128);m.currentIndex+=128;for(let R=0;R<128;R++){const b=k[R];if(b===R)continue;const q=F.regions.find(N=>N.keyRange.max===b&&N.keyRange.min===b);if(!q){hA(`Invalid drum alias ${R} to ${b}: region does not exist.`);continue}const w=at.copyFrom(q);w.keyRange.max=R,w.keyRange.min=R,F.regions.push(w)}for(m.currentIndex+=4;m.currentIndex<m.length;){const R=X(m,2),b=R&127,q=R>>7&127,w=m[m.currentIndex++];let N=m[m.currentIndex++];N!==0&&hA(`Invalid alias byte. Expected 0, got ${N}`);const P=X(m,2),cA=P&127,CA=P>>7&127,IA=m[m.currentIndex++];N=m[m.currentIndex++],N!==0&&hA(`Invalid alias header. Expected 0, got ${N}`);const Y=s.instruments.find(H=>H.bankLSB===cA&&H.bankMSB===CA&&H.program===IA&&!H.isGMGSDrum);if(!Y){hA(`Invalid alias. Missing instrument: ${cA}:${CA}:${IA}`);continue}const j=Jt.copyFrom(Y);j.bankMSB=q,j.bankLSB=b,j.program=w,s.instruments.push(j)}}return _(`%cParsing finished! %c"${s.soundBankInfo.name||"UNNAMED"}"%c has %c${s.instruments.length}%c instruments and %c${s.samples.length}%c samples.`,f.info,f.recognized,f.info,f.recognized,f.info,f.recognized,f.info),s}static fromSF(e){JA("%cSaving SF2 to DLS level 2...",f.info);const t=new jt;return t.soundBankInfo={...e.soundBankInfo},t.soundBankInfo.comment=(t.soundBankInfo.comment??"(No description)")+`
17
- Converted from SF2 to DLS with SpessaSynth`,e.samples.forEach(i=>{t.samples.push(Wn.fromSFSample(i))}),e.presets.forEach(i=>{t.instruments.push(Jt.fromSFPreset(i,e.samples))}),_("%cConversion complete!",f.recognized),t}static printInfo(e){for(const[t,i]of Object.entries(e.soundBankInfo)){if(typeof i=="object"&&"major"in i){const a=i;_(`%c${t}: %c"${a.major}.${a.minor}"`,f.info,f.recognized)}_(`%c${t}: %c${i.toLocaleString()}`,f.info,f.recognized)}}async write(e=_n){var k;JA("%cSaving DLS...",f.info);const t=new aA(4);tA(t,this.instruments.length);const i=rA("colh",t);JA("%cWriting instruments...",f.info);const a=bA("lins",this.instruments.map(R=>R.write()),!0);_("%cSuccess!",f.recognized),JA("%cWriting WAVE samples...",f.info);let s=0;const g=[],I=[];let o=0;for(const R of this.samples){const b=R.write();await((k=e==null?void 0:e.progressFunction)==null?void 0:k.call(e,R.name,o,this.samples.length)),g.push(s),s+=b.length,I.push(b),o++}const B=bA("wvpl",I,!0);_("%cSucceeded!",f.recognized);const C=new aA(8+4*g.length);tA(C,8),tA(C,g.length);for(const R of g)tA(C,R);const Q=rA("ptbl",C);this.soundBankInfo.software="SpessaSynth";const c=[],r=(R,b)=>{c.push(rA(R,ye(b,!0)))};for(const[R,b]of Object.entries(this.soundBankInfo)){const q=R,w=b;if(w)switch(q){case"name":r("INAM",w);break;case"comment":r("ICMT",w);break;case"copyright":r("ICOP",w);break;case"creationDate":r("ICRD",w.toISOString());break;case"engineer":r("IENG",w);break;case"product":r("IPRD",w);break;case"romVersion":case"version":case"soundEngine":case"romInfo":break;case"software":r("ISFT",w);break;case"subject":r("ISBJ",w)}}const m=bA("INFO",c,!0),F=bA("RIFF",[ye("DLS "),i,a,Q,B,m]);return _("%cSaved successfully!",f.recognized),F.buffer}toSF(){se("%cConverting DLS to SF2...",f.info);const e=new os;return e.soundBankInfo.version.minor=4,e.soundBankInfo.version.major=2,e.soundBankInfo={...this.soundBankInfo},e.soundBankInfo.comment=(e.soundBankInfo.comment??"(No description)")+`
18
- Converted from DLS to SF2 with SpessaSynth`,this.samples.forEach(t=>{t.toSFSample(e)}),this.instruments.forEach(t=>{t.toSFPreset(e)}),e.flush(),_("%cConversion complete!",f.recognized),e}},os=(_A=class{constructor(){h(this,"soundBankInfo",{name:"Unnamed",creationDate:new Date,software:"SpessaSynth",soundEngine:"E-mu 10K2",version:{major:2,minor:4}});h(this,"presets",[]);h(this,"samples",[]);h(this,"instruments",[]);h(this,"defaultModulators",Nn.map(dA.copyFrom.bind(dA)));h(this,"customDefaultModulators",!1);h(this,"_isXGBank",!1)}get isXGBank(){return this._isXGBank}static mergeSoundBanks(...A){var a;const e=A.shift();if(!e)throw new Error("No sound banks provided!");const t=e.presets;for(;A.length;){const s=(a=A==null?void 0:A.shift())==null?void 0:a.presets;s&&s.forEach(g=>{t.find(I=>g.matches(I))===void 0&&t.push(g)})}const i=new _A;return i.addCompletePresets(t),i.soundBankInfo={...e.soundBankInfo},i}static async getSampleSoundBankFile(){const A=new _A,e=new Float32Array(128);for(let g=0;g<128;g++)e[g]=g/128*2-1;const t=new ja;t.name="Saw",t.originalKey=65,t.pitchCorrection=20,t.loopEnd=127,t.setAudioData(e,44100),A.addSamples(t);const i=new nt;i.name="Saw Wave",i.globalZone.addGenerators(new kA(l.initialAttenuation,375),new kA(l.releaseVolEnv,-1e3),new kA(l.sampleModes,1)),i.createZone(t),i.createZone(t).addGenerators(new kA(l.fineTune,-9)),A.addInstruments(i);const s=new Ne(A);return s.name="Saw Wave",s.createZone(i),A.addPresets(s),A.soundBankInfo.name="Dummy",A.flush(),await A.writeSF2()}static copyFrom(A){const e=new _A;return A.presets.forEach(t=>e.clonePreset(t)),e.soundBankInfo={...A.soundBankInfo},e}addCompletePresets(A){this.addPresets(...A);const e=[];for(const i of A)for(const a of i.zones)a.instrument&&!e.includes(a.instrument)&&e.push(a.instrument);this.addInstruments(...e);const t=[];for(const i of e)for(const a of i.zones)a.sample&&!t.includes(a.sample)&&t.push(a.sample);this.addSamples(...t)}async writeDLS(A=_n){return ss.fromSF(this).write(A)}async writeSF2(A=vt){return $a(this,A)}addPresets(...A){this.presets.push(...A)}addInstruments(...A){this.instruments.push(...A)}addSamples(...A){this.samples.push(...A)}cloneSample(A){const e=this.samples.find(i=>i.name===A.name);if(e)return e;const t=new Ut(A.name,A.sampleRate,A.originalKey,A.pitchCorrection,A.sampleType,A.loopStart,A.loopEnd);if(A.isCompressed?t.setCompressedData(A.getRawData(!0)):t.setAudioData(A.getAudioData(),A.sampleRate),this.addSamples(t),A.linkedSample){const i=this.cloneSample(A.linkedSample);i.linkedSample||t.setLinkedSample(i,t.sampleType)}return t}cloneInstrument(A){const e=this.instruments.find(i=>i.name===A.name);if(e)return e;const t=new nt;t.name=A.name,t.globalZone.copyFrom(A.globalZone);for(const i of A.zones)t.createZone(this.cloneSample(i.sample)).copyFrom(i);return this.addInstruments(t),t}clonePreset(A){const e=this.presets.find(i=>i.name===A.name);if(e)return e;const t=new Ne(this);t.name=A.name,t.bankMSB=A.bankMSB,t.bankLSB=A.bankLSB,t.isGMGSDrum=A.isGMGSDrum,t.program=A.program,t.library=A.library,t.genre=A.genre,t.morphology=A.morphology,t.globalZone.copyFrom(A.globalZone);for(const i of A.zones)t.createZone(this.cloneInstrument(i.instrument)).copyFrom(i);return this.addPresets(t),t}flush(){this.presets.sort(qe.sorter.bind(qe)),this.parseInternal()}trimSoundBank(A){const e=(i,a)=>{let s=0;for(let g=0;g<i.zones.length;g++){const I=i.zones[g],o=I.keyRange,B=I.velRange;let C=!1;for(const Q of a)if(Q.key>=o.min&&Q.key<=o.max&&Q.velocity>=B.min&&Q.velocity<=B.max){C=!0;break}!C&&I.sample&&(_(`%c${I.sample.name}%c removed from %c${i.name}%c.`,f.recognized,f.info,f.recognized,f.info),i.deleteZone(g)&&(s++,g--,_(`%c${I.sample.name}%c deleted`,f.recognized,f.info)),I.sample.useCount<1&&this.deleteSample(I.sample))}return s};se("%cTrimming sound bank...",f.info);const t=A.getUsedProgramsAndKeys(this);JA("%cModifying sound bank...",f.info);for(let i=0;i<this.presets.length;i++){const a=this.presets[i],s=t.get(a);if(s===void 0)_(`%cDeleting preset %c${a.name}%c and its zones`,f.info,f.recognized,f.info),this.deletePreset(a),i--;else{const g=[...s].map(o=>{const B=o.split("-");return{key:parseInt(B[0]),velocity:parseInt(B[1])}});JA(`%cTrimming %c${a.name}`,f.info,f.recognized),_(`Keys for ${a.name}:`,g);let I=0;for(let o=0;o<a.zones.length;o++){const B=a.zones[o],C=B.keyRange,Q=B.velRange;let c=!1;for(const r of g)if(r.key>=C.min&&r.key<=C.max&&r.velocity>=Q.min&&r.velocity<=Q.max&&B.instrument){c=!0;const m=e(B.instrument,g);_(`%cTrimmed off %c${m}%c zones from %c${B.instrument.name}`,f.info,f.recognized,f.info,f.recognized);break}!c&&B.instrument&&(I++,a.deleteZone(o),B.instrument.useCount<1&&this.deleteInstrument(B.instrument),o--)}_(`%cTrimmed off %c${I}%c zones from %c${a.name}`,f.info,f.recognized,f.info,f.recognized)}}this.removeUnusedElements(),_("%cSound bank modified!",f.recognized)}removeUnusedElements(){this.instruments=this.instruments.filter(A=>{A.deleteUnusedZones();const e=A.useCount<1;return e&&A.delete(),!e}),this.samples=this.samples.filter(A=>{const e=A.useCount<1;return e&&A.unlinkSample(),!e})}deleteInstrument(A){A.delete(),this.instruments.splice(this.instruments.indexOf(A),1)}deletePreset(A){A.delete(),this.presets.splice(this.presets.indexOf(A),1)}deleteSample(A){A.unlinkSample(),this.samples.splice(this.samples.indexOf(A),1)}getPreset(A,e){return Ya(this.presets,A,e)}destroySoundBank(){this.presets.length=0,this.instruments.length=0,this.samples.length=0}parsingError(A){throw new Error(`SF parsing error: ${A} The file may be corrupted.`)}parseInternal(){this._isXGBank=!1;const A=new Set([0,1,2,3,4,5,6,7,8,9,16,17,24,25,26,27,28,29,30,31,32,33,40,41,48,56,57,58,64,65,66,126,127]);for(const e of this.presets)if(re.isXGDrums(e.bankMSB)&&(this._isXGBank=!0,!A.has(e.program))){this._isXGBank=!1,_(`%cThis bank is not valid XG. Preset %c${e.toString()}%c is not a valid XG drum. XG mode will use presets on bank 128.`,f.info,f.value,f.info);break}}printInfo(){for(const[A,e]of Object.entries(this.soundBankInfo)){if(typeof e=="object"&&"major"in e){const t=e;_(`%c${A}: %c"${t.major}.${t.minor}"`,f.info,f.recognized)}_(`%c${A}: %c${e.toLocaleString()}`,f.info,f.recognized)}}},h(_A,"isSF3DecoderReady",Fn.isInitialized),_A);function he(n,A){return{...A,...n??{}}}var rs=class{constructor(n){h(this,"keyModifiers",[]);h(this,"synth");this.synth=n}addModifier(n,A,e){var i;const t=new Ha;t.gain=(e==null?void 0:e.gain)??1,t.velocity=(e==null?void 0:e.velocity)??-1,t.patch=he(e.patch??{},{isGMGSDrum:!1,bankLSB:-1,bankMSB:-1,program:-1}),(i=this.keyModifiers)[n]??(i[n]=[]),this.keyModifiers[n][A]=t,this.sendToWorklet("addMapping",{channel:n,midiNote:A,mapping:t})}getModifier(n,A){var e,t;return(t=(e=this.keyModifiers)==null?void 0:e[n])==null?void 0:t[A]}deleteModifier(n,A){var e;this.sendToWorklet("deleteMapping",{channel:n,midiNote:A}),((e=this.keyModifiers[n])==null?void 0:e[A])!==void 0&&(this.keyModifiers[n][A]=void 0)}clearModifiers(){this.sendToWorklet("clearMappings",null),this.keyModifiers=[]}sendToWorklet(n,A){const e={type:n,data:A};this.synth.post({type:"keyModifierManager",channelNumber:-1,data:e})}},Is=class{constructor(n){h(this,"soundBankList");h(this,"synth");this.soundBankList=[],this.synth=n}get priorityOrder(){return this.soundBankList.map(n=>n.id)}set priorityOrder(n){this.sendToWorklet("rearrangeSoundBanks",n),this.soundBankList.sort((A,e)=>n.indexOf(A.id)-n.indexOf(e.id))}async addSoundBank(n,A,e=0){this.sendToWorklet("addSoundBank",{soundBankBuffer:n,bankOffset:e,id:A},[n]),await this.awaitResponse();const t=this.soundBankList.find(i=>i.id===A);t!==void 0?t.bankOffset=e:this.soundBankList.push({id:A,bankOffset:e})}async deleteSoundBank(n){if(this.soundBankList.length<2){Se.SpessaSynthWarn("1 sound bank left. Aborting!");return}if(this.soundBankList.findIndex(A=>A.id===n)===-1){Se.SpessaSynthWarn(`No sound banks with id of "${n}" found. Aborting!`);return}this.sendToWorklet("deleteSoundBank",n),this.soundBankList=this.soundBankList.filter(A=>A.id!==n),await this.awaitResponse()}async awaitResponse(){return new Promise(n=>this.synth.awaitWorkerResponse("soundBankManager",n))}sendToWorklet(n,A,e=[]){const t={type:"soundBankManager",channelNumber:-1,data:{type:n,data:A}};this.synth.post(t,e)}},gs=class{constructor(){h(this,"timeDelay",0);h(this,"events",{noteOff:new Map,noteOn:new Map,pitchWheel:new Map,controllerChange:new Map,programChange:new Map,channelPressure:new Map,polyPressure:new Map,drumChange:new Map,stopAll:new Map,newChannel:new Map,muteChannel:new Map,presetListChange:new Map,allControllerReset:new Map,soundBankError:new Map,synthDisplay:new Map,masterParameterChange:new Map,channelPropertyChange:new Map})}addEvent(n,A,e){this.events[n].set(A,e)}removeEvent(n,A){this.events[n].delete(A)}callEventInternal(n,A){const e=this.events[n],t=()=>{e.forEach(i=>{try{i(A)}catch(a){console.error(`Error while executing an event callback for ${n}:`,a)}})};this.timeDelay>0?setTimeout(t.bind(this),this.timeDelay*1e3):t()}},$n=class{constructor(n,A){h(this,"input");h(this,"output");this.input=n,this.output=A}connect(n){return this.output.connect(n)}disconnect(n){return n?this.output.disconnect(n):this.output.disconnect()}delete(){this.input.disconnect(),this.output.disconnect()}},Es=4,ls=.03,Bs=.013,Cs=.03,hs=.2,cs=.05,Qs=.003,st={nodesAmount:Es,defaultDelay:ls,delayVariation:Bs,stereoDifference:Cs,oscillatorFrequency:hs,oscillatorFrequencyVariation:cs,oscillatorGain:Qs},Ai=class extends $n{constructor(A,e=st){super(A.createChannelSplitter(2),A.createChannelMerger(2));h(this,"chorusLeft",[]);h(this,"chorusRight",[]);h(this,"_config",st);this.update(e)}get config(){return this._config}update(A){this.deleteNodes();const e=he(A,st);this._config=e;let t=e.oscillatorFrequency,i=e.defaultDelay;for(let a=0;a<e.nodesAmount;a++)this.createChorusNode(t,i,this.chorusLeft,0,this.output,0,e),this.createChorusNode(t,i+e.stereoDifference,this.chorusRight,1,this.output,1,e),t+=e.oscillatorFrequencyVariation,i+=e.delayVariation}delete(){super.delete(),this.deleteNodes()}deleteNodes(){this.input.disconnect();for(const A of this.chorusLeft)A.delay.disconnect(),A.oscillator.disconnect(),A.oscillator.stop(),A.oscillatorGain.disconnect();for(const A of this.chorusRight)A.delay.disconnect(),A.oscillator.disconnect(),A.oscillator.stop(),A.oscillatorGain.disconnect();this.chorusLeft.length=0,this.chorusRight.length=0}createChorusNode(A,e,t,i,a,s,g){const I=a.context,o=I.createOscillator();o.type="sine",o.frequency.value=A;const B=I.createGain();B.gain.value=g.oscillatorGain;const C=I.createDelay();C.delayTime.value=e,o.connect(B),B.connect(C.delayTime),o.start(I.currentTime),this.input.connect(C,i),C.connect(a,0,s),t.push({oscillator:o,oscillatorGain:B,delay:C})}},ot={enableEventSystem:!0,oneOutput:!1,audioNodeCreators:void 0,initializeChorusProcessor:!0,initializeReverbProcessor:!0},ds=Se.consoleColors,us="7NzTkjBNEyDgsW3btm3btmfesW3btm3btm3b3H/P9hY24ns6+qCjuk6rKjOy0kzGUBgAAIAICQAJAACIEoDHB2pY6B4AqKHQ2OeNKR09zRPMAWtQyF19CgQAgAbmf7/KGLqasTHS/e9hYAD83zfK/15TO+N/JqaOvP/vWAAAwf9G/vOf//znP//5z3/+85///Oc///nPf/7zn//85z//+c9//vOf//znP//5z//v/t41ywFIBL77zjIzgZaPzNxhtZtrRJppRVsY7SsYZFdTlkBWpkHaZ1G5uj3Zyl+ViV95isHUKWqmkRcMn25YmG7omGbomwBZnFz4nHUVXWUjLtrFQtr7dbqMt7huHvHJ34LRZ3wYwiJiSPr6xqzoxcbS3Bg3WEz32dEhbrHsTDPd1AFXd7/uRDYmkDh9e1cJmdL1fgxmPynS6vIaTUJdYj6kTaWn0VNI3R/sFYMM/30cFHIT6YEvZJuzdARTeH4rIz89odHhFpgHqle34vPTJNP4aZwbn5YOPJ89FLEAq3wGBt5l0N3789y7aRopjSWPJxee/0v2jLS9qdsu6ehpW8g69KsS7xlr5DtOgZ4hrmG1c4YzULCFkZJxENh+7rmzKc8FnvwgxurFd8tShiZMsEZLEMZFcpMZt1aS59fZiVLV1VHRNVG9CdesWTTsjcdKXUM8f3lgNozvmar1EBhXegXTKO2xPCgdQR8NDMm4kX0i9a+K/FNqccbVASIBEfk7TbeS2rZgaZ0zbqfJ6blhnZFTfAie77qMFADw2GdHahyKRZulPkdWYZMBmBpQyL8pZnOvvzggqr9NPbl9TFtpU2fPMWu1fZeS5Ev+dDgh5f/bJJGoq/RMqLS8c86pI+RI8SffrylmpWU5Cnt5pLHtCASgx2xuAyvFAdWkvC+0vvZl8Sezw5lBPKlTgCAhMX+SaFHK2zbBk0XgE3guG4rRgiW6zpjOyvgsxQZ7WLq4J2Ihfx1E5B8zRcHz8k4CUp3UmVbN2O+8aFhADNj1X1XNJYj8yENYNknZM4RhhWR39l5JEYn8cRMcIceivGmU2ErtMYxlZfP23TY1hDupbAbjByNWhbgGiMuiVG4zqk9I7oqp9NkX3uYfDB7GfJI5F5ctVdwO17KiBR2AAWFAQLv1gRFITAcZDKLnFPXDkzDudPRvc1qAneROC9a/ZCh5B1eFlqUX0GlsN9GxnrDpPK8+UvcfN8jLGJt3WhjVDf/gKK/43oUzNCDiBoGchAS3Pjxb0cm2qz0JPGXABUJKv1ZotldBHXsxaUOu5WxGuBgRecqT42vQXi5DJfRxBhqBAReeoD3gW1i9wQ0S0zHoOEQ7fTd/rEsyG8OVLhR3/tf5zEyJWjfXvulFK1rVlMc8b47p5HBtkTZLXp+A8k1kdyxaXYi7xowZr1cDA0VQ3Gzkg+rJVFU9tLpZ76MEZ7hIk/Vu7psyhwqI+gR6YIzg3kbNpMs8cJOgKPHTMCwzwJTzaJAA9oKGU40zjfMq40pGrEBpqo79b0Unuk+E9AArzRgIzKhQ1iRT4ziQwrEnkZHjx87VYF0h+Ugc3/AbZrfB4gZO9AERBO7CIPFz9RftKGq9JQ9oLg1DvuMKdIEqraLuY+9Mqrt86ds8XEXEOfafLq1t5THpxd75WubI45SVNXvVv4r3FG9KCytKp5AbqdSYia6Ii8C/EhK0BjZpMqsDPpUUMMciiiRuNFmXXEk0piYCkt8SNcVeTWbFyR1/dCFZpDrsPZNnvsFcLVwKhjL4IvBv3VIlOg/xq4RZDkSRLIsQ5G4NyqZCjrRjYgZPTNIX9X45hkwkywH0mRMWThmaAPMFfvHM+MW4egfU1qF+8+26WBDIYT4eHBDCauRaWJw+T/afnMyLMwrk1+dzYcgNKdF/optcKukC9ZyN59NuJh/iy6szOmgy/nWAU1lTCYDU1YlLzq07AHigB3FN9PE9yPLY3sJ6+XEBVE+2wV3f70y8PslAiNXhyCvuW5F1aS6qc7n5X3c7yCCpR0EX91kwrxpU+PFZOmWZq1lScmVuEG/mJ08aDAw4fBfKg1r5tJZsJFuUplfggmZVhEz6iOHaTeNbXkEy7TSpvyyjNIvLOCN1Q742Lq6dFI2QP2GapQWe7++PyjOOMjFjKBjViw+7/o9YCJ649fjg5z4qQO0C/ygKApi5x1AHCg0Ei3KgtuVjiwmv+2t4Q0CpqnZ4t/DDkyVhgPk7tiNEVJ2gdPR8o+HNxJZ9VIT4U7vFH+Nkysn6GSbUhqLHz/vtmaQWljAr1tDy/U4VA0hXcCwFClR5UptAb1uc9cmCd5HY57nC0fVFQD+RlngSJw7Lj7SH4DN0Uk/PZk3+KY3Gy9dDxPe59HF913ZIKhpCF2qrqEYzKwrJRe+x61rpc5I6vUVIBepxmeL1ad9oa+oGGXkR0wLNSJI3VPBqlPT4NpYqXLSx/C6rmLkZSiJqzJSd8fRvjF14C0SQMHZlOkDsDCFZP7KthNJOXOrr4flbD1kvOtRTkz9GYSsVNxGjJk/SyNWbBlKSwnnw0dJyTog21VxnMtTpA/dagZbNipe8LFmD5UDc6Y3cdqxkXnnz6Qiqnvq/kjB0Q9SWZAVtDptSfjObIJJ4xrMOexBfRbKy2rPHbkMHo4UDjQxgr1HHlGbEKjlLG1TIIwkYGiBxQQqxIQAq9yN9k3YYA8cLsQ17BES9v2YO/et0B8QLwE5V8nHnfB4DQM1tEf8IaBZkKZjSl6Wrd2ddnIvFFuI7V8JeDlwGyCi6JMCoFoLLlxG3CIjcg251aUZzsApnCIO/r+sRAWUO6xunAv0Bj2sj96irhmZxh6jVVYaCsL9Qar4tAD8Aqhv0lrC7aEYLv6GMiIUpDwzRAFcIMBQPQOCP9153uSMkBKSIVlwJA8O+BNQPnkmBnhW+CNzy17FHHQRR5/BQ88e1TisdCLotDWZeVpjg42nz75HQLOdqLBkdQxRWKJBqLSa0jYtdiqGY/CBKoe2uLRD1T7RvzZcNl1VLR/MCajNDpyHexi4iEYQytQ1lgHAYczmDfGNUgQm8ucwv2MRbf+CxVUNQZXD8d+ZAIpcCN6BwP9ZPSidWXNyg3a+f76zhxdFaRjRWaOG4o0WuEY/eJkzqaTOcF+l2kb71dHZoBO/atSiB+WJdSlKCyAfL3nRYLhKD1GpPpE+gIuUptsC5Ezap1lXHmsx/AojtO3i2pwwQZW3fd4YdKACjNeGAefikHt9buTgCpJ6j0NmeK5NfPWPpkuUxoQTWlJK4W/A9AUEhczQr6Yx080MN4QmHwj7/WPnjPiJCwQeI5FD51I6RW3hB/fVBMza8zLd8M1AK00BSWv/31rRSBTT/Pg707aNqmbWeuXpWjt3CADWuiGg8Ra3bVa89niL046M8vAOQjIZ+A7kJpcbQ4zRCUXpqzJUvuQmX1FFUCZcEVP30lRX56uEM/jJj5DH7b4hRCzJ0DRmr2FBfM9NxarwQmz2pv9EETkvGnRHWgrkJBWG1WueuihU5nhbKgVTk1TS4pB+rIITrMOo3kGKJkPwUTTt63tZtufakU6y74DtE9bXaF66jTOZQUk9ygc3EI0stkvm4YWI2BMWEQ8IoYzY+efwZ0c/OljuUluRGCefEupYHVbXCjMUOh0V8gdAEyoqX2dChedkZyZXNu/bttxFdZj3eLlM+Qg5vOf+tFFp3fcO/RFCGheDz7rlkYiYiLzbgYML+NatU5nwLTqMmS+o7sl3WZyeHGfPRKDikqf7JI6XBFrp9b60DUiyoADk2nc7IF5bCcjCRLKoWzLDW3F7SAjM8Y0y4uPUhhVuqM/kG1DCJGeMsJmVjy/pUget3iDMQvVBeIMsCPZ2ahRLir7f340ZfPfUaL9urXQ1gw44WZD1AfD/vXyOFgYhZvqTxuQeD+UbFAavgb4EhqzqcRL0CIuC4viqziAGRcTjw87DaJatSIFj8B06I4RmixFLbvxGobFJqvfNDIfVdRLhg6fmSKrUbEanrjfj2bBxvP8TH0aHCL3FxF3br0UDQg8p/jduCvcSSeo67nWexkZw7Neq8qA7YdNtjDLZcz5CgEeXi+kBeXRkOx/+KN5UVqBurttlsYtGYRekx0ncIzKRrSegEdKwgVeyJu6CcNPkHNyVqXlbEi1GLhYwyrOgTfoiTxvLdM0YCsSCG7EMjWsiqrQyecWdHQRzrDC8t4FrfFiKxyTxK42Ml1by8XT0qQmTQove7zLQ9wkTI8SZjemX06Bjq+h9RBNjLRx6F5l1Rt8AMUdBCbS766W6o7K0+Z3a1n/itUh1ugYDP+nUbDa0LMR8nTHStXlfREZAfFumRkCamng9Xo+jvGFGdA+OhJ9deBy+qIfuRQ5hOgzGFNlz8L9GwYC3+2t+uhcfQrFbypCvdUgNGeYkDOkKvskoISryDTMMSWUXBydiZDH7m+3T9jc1eOn10NHt9u/1j5LDygwxtdb/1qNHXfYtezBqku6yth8ugTJy6XSMLNRC1P7YYiIPQ30zIE1va94eVxMEx5nnz/Y6FKARtMm7RqXsC4EKeCHbTaHeCrVIYohfd35F0FySLiviPTiMhzE9LU54U5oRQ1TOZnaKUWkc1IiOgyipIWHlyLMtzpEINEztKGD0D+7DpFZuskvqdiaeCOlVVUFuBiMAkbftoBb3HU0ciov/41Gz6Ve/aMYLI9wJX1CPALgahSsFAtjBMijxgp2pgiGDeQRGg/tEP6QWOJ/vHoGxQf78AB8Ja0KrI2QSvGlQTiQZuKnt5UQ7PKmOJGBHjVa8n9eoYArNb/gAlpBw7yhkbKtkfnG8JidgjS1sdhh+tsEKrimovsqK15y/eHtUtAbGCvPooJLg21guO9SiWDXN+puQX6vc5NzFqgB1CsjceKihgVSxmsxCtZZkhQHIvBtjlN0pW7XbOSjeGURsGZeHrutdNVu5XmlawOXx7ttC0Y4oYfyL7pnpvYaXvvNCYC7jDESETILkthJCdf5f+DSmB4HUFPkEOWyfK/y3M/HZxGVHICJhKFDo6w0r6nFHqRHovCy2A8PRr5r1P+QKTJqmWwaQhl9ccv6ii1l3WCzkbuPOa+a1/ceoovojwd2InkGnecWg0Wr1VAJfLdjrzYi0uvBysrar3Cag0WsHaBWvxHAU6ExSaHqDfvR8FGEXgvO4Sy7T7aW10bIb6KApHD56KpJCOWS2vjuvKs+OaavD1lb5/KTydt244lSh5lSGbdYwHRPlqCiJzghtZ8HJroFPiQE1gCM+MypvNlMAAhUO8JWiWLYwKFDYtqUP/g0qoCgNOGmwrheyjcPh7n7t+K4Jr03//LjKnyANkOOr6RPqkXluVKLFpqZacDwdrk3OplaRSTtYlHOFMlseTGsppbloCQRzKH9hTb6tFkUSDXAvGqx5EKnhkLYg0TeiiKwc6w3BZZHGfTBME/HhnRux9E8fNX4tiCGo+RNg1sNOALZjgw2LPlYVU8l+nKWBu7Qa28FqPcUaE/XT8kmFDEn2OEWnHE2BXjoREzPUP7lE8BmNWbLV/Gf+GzoBuctDxJP7hrVOt7IUp+Nitw9JP1piOG/8w159lPRSAI0xaig5xcaWfSU3P4dKZdl6EvGa5b7+nxF3De3EIaojBF3BnXFrv0U/7raORpSz4TFxb39fZjCIjaWI1n6zATAAy2sOnI4ZWvkwApYr3E0pEk+4LMcLrbveSGzwUSbxx0HpAIsj55wQhEYqxefN4UHkg03cpg2dUB9QWFLcCz0oy13Sfc6a4dS8uCVDQg1tj9ZSAmDVgMpcaa990AFo2jEDZ2u2asPhN9blwhkt+IXWFF0qVTB2rJz/koLSnqmmU38FJ1UCmTS5jhXMk26AHNFHaWjW4BIMBSdbJH3XtACPBXQiLkO4+apUt6zQiDitIRug0pBZ8j3VY8gmk//ibKYwl4Ty2tsrcyv12Neo2Pn5adjdgwQz/VnxGNFD7fjhFaS1DdcSpCg2kjVlZPFCs3XDtYJenP2UVIo3Hpg8jKwunlGls0cbmfwQ+BXiSCFVMhgO8UvcdEyA0GRhkRUzAEhsWX8kYCnlnWKvvjCRWxsQ4KX1dBem8DS2xQ4rBJtgxvHIXfTWZoBhHe3SFsbS3KpSRwEkZolIpkLXgfS/X2iVtlpEMtr7QwLA93FS+Xtg5OUXDJwO7Q4gpa4sJ2nqpFv+EEBAf/we/J0sevZlThjZjyBXVy6hWsGG5KK9rmeDUiz0AB4nDmio5NUy6LuBDRlU11Gx8eFQpzkiLkRx0e439IokhAt91+5DCGK7cHs/XrUQNln0Va+mcT3LY/23wo0Y/0EEUgqkzBYmLMOCksIDoG/2Wns7wdOcuAcobUUIZeJ9XGMjOF4KOSNq8Evu/IwrWvE7xOSKHPDwjnS3MbWnd1rKL1eGSsFmpiPKA+5VS29PF+igjyLthwrBWv5RUG0cba0AUMuM6twtSjB/CZ5hVShwVK5ZZs5J0Pq+kX1s9jm8g9I11mOG1wRuoY/liCBk6ZOUP/KV65GJiZu0afgT0JPM8HwCBp8oF/IrM+TaXtlyEHwwzUhBgrBwjNooS1aZrUSSaC+zENldviSIZMBsQEKL2tUryO1aDEO+tlh/pMLjDqm63lrZPwvV+LYhEtyejJHdVhLIMJz6Bv+V+5GmNrtqMcnHk7MeUL+5z2Nh81IVRjqPux5uPTGkHUaBinJRIBtbDQuEGgv0SN/R+D65UjFSbB2NJ4s0HPl8I0cdTZKQQ4cZoc62e8ao2k1ipSsLrLPsRFkyJ2SrteLMPWSfnuz7SMVmCBqJZ46ZvdkcybX7ELVfxWbaIVIMJXEIcKcWbjNoxkRD8oi6wc9jZDsvYICCQE98F8a2EFIh8bXRa/JNXXH8AsAxQ9pDyy0FNYhtIsCjLi3/XtaJkvppEzMzqiNHGnd+3cRVtBtGhTbV7ZbV49ANXVTjoCZWEKZdfVw8ZDNNrCwnUiCtx3190laRGuY7ZIivocMma3Cx9J+QjJVi18Edxbu9E61f2USwSKcRDL+Z89GrK+cxmVCpxFLeJB9ii/Oe7C6kG+7+HIe1I9nETg+RUA/mtQ3WRTRIzXYAya8lBFax6UZ6PolUFauiYFQS42IZeiPerjWY6ZOwmI+srQuss06/tSKro7+ZVnSjctcrWQF4ZESgek1byb66dhhKN9ChKKoeukB3TE7aPCSIyXC8iuUEgKtQrR2vR/bonTHMiSxgn0tq0ZJyCDOoCEeR0dMDYhF/OfPkvW58MqU1agPALy8Tt+1I2Hpew8M+vNvcPSXVSRbIPOeqcZhR7mI9f5wl9nRrFvIWJK2qg2I05/QRS/jdCuDcMSQDSCl0lXH41B2CtdGpgRuMq1nNZt9445+9KVYUV2OOjuI3J46w5wEjQ7Beoz3V9x9a0URTmncte7gbD3v1vQ8JF1mrGCdn1wgUdZUOkuOiPJ43SMlv010xjKvVOve6CnS0lUpg3JXytNCW80Bky/3sqOcS4CLfBWhoW0RkOmtaIlNUfMwBSjkQyODbXi5+YBcnImuYYs1FH74HTEkzKTry0egErFvTAbjmt6uL+FoWkEVLFzC3uf1W+J/fcbewI2Iv6E/kW2g7CTPgHslKX7XCoK3N2YVBKnCZbmxuhG35ZoFg6upxtPngY4EZNoG7cGSoTdQs1jJNVB//LyNLhP/h9BOz8UBX6h2CJbQiGsJMuT9mVBc4eRnDipL/RVAf5dc/Y23BgYVfbfFepecBRhxVawWMuKio9/lFhgp8I6UMgFrDwE1Cjm/nQrqb3juoc8v+RoxohJccS0qzSW3l7s9YFScyHeKK4aakQFl2SSLjHoanMyngNYZgOChtoJqyxWA/wgraONDpancU6qakXDBUcy5bmdiPKFXT4L2orSAeONdMrJqCiaQaxoVsmjRwchshxZfhFwmpCKmIaQqgJGJ2PtYQPLpa9iHJiTKrZhLEUdhf3cc7IXkSMcsulzV5qF/m95syvNSkzJdEJ9SVkQdcyBj1APb/fUX+t0R993f6wtfN4MFeNICVxhicddti0RLZXqdekBJ6EdRApHMfanpj4bfoc5eJLLV8KLAFP9bT4wZ/T+P4vlaDM/f4E3ZgJLnYN1JBGn+J99wNv3qw00ZJUVTccP8Hx5y1ODYnRcF8PE9lr6gobIat9t/Ud/xoPdVjY65e+677cDiMFOx55fuxaV9A7/pDq7iH4VPd3+jwTbRfZqKgmW//Zb5IaAwk95JiQLDBvvPtUlYxSHSBBrBPltohPVy0lk/d43Mk5IWmAeLr+manRVp950milRSi6ho378bNxiWj4QL2v51xXXfd9Gy4Z4k3RZfNBMvHimSExlFFIj7Yk8SjgCEHt5NyaoPkpIPL62cEZjsy3bWRefsJFuzrdpSl7hbx2Iff80feltYHZYNbzPCmqT/YSR7RwKTvdB/y2Lf7AmuDnVZSOyYqJ1MNhLcOERgJLKHnb5h5pHq9plFPV5563SQoOxdZTKfQFsS9YeqjF3EWcnT1IG1FM5WXJbAq1lkHhfv8FkTLuqFMEL9h5pj4l2IQVF96Jn+QuqwI5aFbDG0DJnCYA5fowlc1KGK+myLmtDZ7iPY0SXHY60Rt5oE0V7jGhHsiDLblhRKebHZbcQNgJ+0sd2Kjy1AjlNYZFsEOqE4YCY7NLgUB/hM+dwqkBuFpLQxUFgNWB397akOtZvj5kBZ2kp5vMW2amo5mlsycqkdaeMfH7TJgFkcJvLsCM+rxAYg/5Zscsb3pNiv9wIJMT55iGLWcs8vxPNNQMUyPKy5GqlxIeMThL4U7dWB0ZYbKAT4eG/RM+46vUQrCFBmnYINnU9G0o7dcElZ6EVP/8MVTiX+qKPWS7uNZEjmYYKIXYDS0ac1YXSXBL3OywybDcyvo1pzxJU6rosdocOIVNjUE5DnO5tfm5VrU7lDIvUsPXwlBTtQrTlwGZBqL5zAg0zRCOrfcEspP0QwwYT4uGvJfDKVr6NOkRk/B1rXfNlIiG4granIiiqXJ0sOBRQTQRXUiY/Oj+JxpWmKnLS/RQ4B6AWQmacFiYarLl5if8QgmC6gqWyJmpyVvveQzkWWSE3ecj6PuMeFuY/1Zf58aiGDvJyXeFeaGQZ7feLbYJgS1nDBmkMOpBdEj6I0KjJWir8fT8+x20g+bghE0hHByVPvnc1IDtMyDl/elDTgBZaF2p5WgYcfF10fR43CndmXdx5MpkMJYhRSudCNOTkhNeSo7pDi3sgiWETvFKy05Z5dGLJgpKU975hfgBCALWYYisoK4NsSEIRNfmkQ7WwiYK6tuzJCFuVUtnSiIN8VmFLIKjEj9cYVhWbyyhQ4E+9AmpoIaxkJQfjfVRMzdtAm+6SUg54BAShT48hNakMfnlZG/lTDAZXo4mAki6m3Z9IrvjJjCS1lJL2FujiTZ2zrxVS2nt2R079RokewmupfjssoVL64zU1tds2WHLdflPtAazFYtU3XEn5LkisWh8mjBnO1UIPBRU/IvYyiIyJRMI5PPRLd76sZikIyEuQuFuRqFlUz9TNmxnv2PfTmjNKQirSFKLVyUWvJV86VrShWSmTif6HxFv4l6h76mGTOZvM7bkGkq3NGli53lsQuuR0EwbmZJH/KjODJ+7PKghc5WEjGFjjiu7ENeCBTp+WcXMxXWuPi13QnNloe1ZcnHiQw5Na+dT6KNZWxe7+Yzn+3gFxnLA1+QS7Umhu2gEl47rj6BUCb/xpOJsggiuHrFYn6bUumPHTdj6P5g9sTc5KkyUpbzmz8TdUxTdjwlUZkEx5JepD/DzYXiSPb3tjryNSX3vUZm0V6IOgYlhO0j/NkJ0bxxP0pe9H5/41bNeZBk5oxKsbF35KZOWpdgJFJ6s8hyrTOyFni6pFNzg/mcIa03UmN+6QyTN/AL5NJLUJwmnPDEEORK8ZrBa6jcE6hY06PamWpjMKychcl4VzKVrMOXhIrKBLhPDm0FGh09ri44SxexJHZy0KvZqeOY22gIjeYRHHRC2TyTikz2ZUibTguqjBvfMRpYYxMceFd6jDwSlP5/GAQWoZVokcCbsWlsAiZXlaqnZc63mAlUsZLWA65eLn7dy2KiUWVHCzvt5L1m1D4FYWxKbxPXOINnN4kDXy8HdNntt0qLK3HLGn+puklHe7s2aUqLrpdxwGDUxoKVFW7PwOThB001Ms4ABJyVy1W9eZIZyAAs8j5F9RukqGIPRLpSOwhM4ixXlrjiSw4zeqoo8tojgqUEH51cPNMrmzOTvAOI5ggvthYzpjuYNJN8mpbTobtI8BsnAGa1/TY9FuFI0bVHFhwu6HcXAJWvxof9qy+C5AOxLPHGwhZCRbVEOnB5iaBwXRXoOjG64Bl9uIQyQTpuCU20e0MHP5+b46OSM1Mr3vAN37mNKlQ9Y89xwStHd9xaZkUsEe4+vrGIY8YlLoDwBUG7snUDusCFxx4SgJSYyIrIFhNhfEmTJXz67yMGtLxdJlhwp7H/dU2Z10NhgCm+FYJ1Kj7LoCOvr0OeNPi9ChZ49UTzPW7OnG1PDaiAPackr/VpXLKaGtjvO5TXaFPwaWv6G3U+AhOw4GolYcoSHCdtV4cnU0ctFh+Uq5FotStWQwCgQfnvuJFEd6fpU1kpS8C9eVLHVjEm14s70a4UR4EO6rYuZaS9K57HSXHLbe7lg+tvguNB1J9BD3dz+mnPQmRON/C1HiFhrhC1H/plU5y4JqGZkuaKvOQp2V9JZr7IhtCKWCHrJZm5plXqVDPd2OcnU71Upfqyf6qcnubhfpuUD8HxD/+qxcFD0cdQDkApwPAJYQOjC4H5/n1mH8YCM7C+mLf5+X35l/fOkcZlxst0gDVXQqinDLAcQODtX/KZ+EI2AU95rv6CpB8hAVQs+g0rz67BuigkG/wBGXMPNh3UA676VyvdFWgnh6yV+M/JQBFAQYx+t945Y3Q9vEPvDSEyT1h9Zq+oiXqljFkFzdFtFh9rIhjLiRdQUliN3FeLKeotloTTwcivc0prXCpRcqeCsKQGEN8Gf37puZhO5VFhxvgjR5zmD5b7/HJFn6xRZzHIMzLDGhfaDVGTN1du6yAWzJinMBlT2zbMi6LSryPB4JKVAoYBuQMWid6UrDQ+TMmpCuE3+gSKq542RsoakM93FaNjUhW2aM4/iCcYJYLJmHDhG/dMq5jSg3dFErxNI7edl078IIg4jNgArs9V7cmemx3AxVRAnCHekePacsOuF/lLx1RKw5vlyIZrMZGQTblgtdG8vx10AiFEpA/mnXTwKmMHI8M8iioIGxGXVNMjDng2Z21BRJLB8DRjQRdrC/xejGgKFg4fOKGWMrLjBTs4VQ8gRFhuB+149TNHZAbBEFu6GMtQDMKZlildDV3sbJMKU9jqfUSL7lCcjfZ6lY8/65cnVKe4Q2tpCuy5FMUONXHC8K1nRlznjXll6ws+WmftPZQF1nvbTdYVfZt5cti0KhNHmRFCw5Gx0vOfz8ksdc+EWI6t0plkTQLdfD295JO9YDstKJCW9JSCRzMG3DuofcZNgHPBaHRvplKuE68SIifS7A78cAPFGMuCGfrMy3ElEErFkkW5zQm3v9gO5vIDkxnxibEvmL1f8UbKkb3nrWL4U2Jr7Yd9WxaUEr5r5nTq+GmKJB2E3S4E2DjS0OioC0+EIhZRl1ib91CKl1fEGhM1MRDDXaoBgRYqfA3fdDPxB/sekVdqW4EG0XWzS5YtV0E7+KqhfygZzOzmdBJJE7R49sWIHhQAYcKSUyq5KODRRiexInMedCEVhfyZ6Q7ZWJZVDLxNmFuTB7Izcbb7N74X014xlzjS0uxYnTBFZaVQsJhBRUGrXd+me6rhTQkbjMOfQlhGeENVEnJyNOsTMhr1TvzwuurPjmamEriNiWLl98gdITZ7o15yTepWZYc4TNF1qMR/stnJue6GVWVSAAYBbOOsmELI/hRwqttNFnVlfN8gfCEJEKho/ESXUfmm6YhBFRscBVac9Ek208nFJE+uQdo1Xlojw8+4AhmFgF1acZkicjlPCZ56HpsOFLEg9FKGImaihxfyMWJYEl3likVYGEQQ63fH5RsLs4lOUPpREMLDzSnPpJ9FvvqKGQoRGPCPHhG7GgOa4BwONsvvyVjSQlTCKkGsJREi000YNi9amfDTBMQEnkHhZe5xIkcF2xlWuIUtSM0xVwmtHdHJulvlZW7Ajs/xIomBkuFApmOhB03aWS7Hmw/jxt/mMjjoCiEHCKxVfzCqh3b1qfvAcw+qpfwJityHqt5ZETK0EMJlmTta2eXDyuB0IWiMdWf9+Xmn+4vi1ujNhxVhuDqzcAqbnlKtPQNKrEE2X9WRi7Uynnynan84KHnLVbV+4QNjmyJFkQyiJsjLmom+uBIAIKe1COxaGUkT7qlIRI9o00kncXBZBoe5sODXdMHmONahOmgiNbGCuQD/9mxrNDc14EhqUdN1u05jXZPFfFyLPuHK/IAG3SRMAvF4pmqKI4LVAv/D7+GDXF9j4XBeq3XKkagNdYgToUjnIvQVJoLBg52sFzlgxMhRFDIn2RTJgAsWmf9YBZo7KcYtTI1rt3+rxEiLWy78ghLQ4XZ5hBbuGw04OjZdEotoTAvD0F7MUbj2fob2S+jOIJH9nKY62PLuFHszWmUFMR+zNIyI8TFkD2cp2ZcQ4mhmqzsBDhHXjOBErxbjuT4O91w1YHZotRGPcV35FX/cyylDjtTBs94QfQj7J+icrVjQhkOLJb1lWIp3VitDxa4Bg/1tTziD8kwQpSaQenGzsW2I+plBasRlEQqSV7Gs7SFsGFweAh9H8lXSqWSCr8AfMRlAxOGpwjagH+XUA4FnhDSV3ABRF4OIRp7BNACkMMIC1hjXxvwXtVwpQUu6lTzPnfRZZBsZfBNUYfxUrVOM0Ar5lb4BHCgjWlE64OejOaHlWSG2SGqW4yQFHiN6BNZ9GQGEoFesGOP40moId4SyBLYJA4PBD+oFVN7fRMQiteguHhJ+TQjF48SZhQ8B1YJ8aRKwUO1RiiTHb5zGmicvhACdF0gRWkaDVS3XzpdCmLRuQiKl2Ub6CfWpRZC/Ag2XAdMoZILeAhHpRiRk0IQBSudSrojIqhD48Q3xxWIjc+xd8qiCq80o6Q2O/2kQ40H9PvgWMAoW1jp+FZNMxaYRcZDgz94ye0gq8rwIY2gACv/6xhLlUSLpw+mUIXIG26SeARrtKjc4K6k4B6+faggNYUwX4KdasRJL+8ZhhjYxPOEs5Bg9KF6wHh85LQToiq016Y5hFul8ZjSoe4vBQJ8eEU5/pcr6mA8/wrGnIYdIYbWKR9zDGGNYI4hwwP3y/COfD/XhVknFHoSlPXXMLt+lUmgbsWAkqshim1E/8z9TLZa9STSIFcnKS12U3cuvjXX/XSSUMmX+lue/np+sGDy6PVJIX8SfIuSO2cPCAsYyU9rk0Nf5hR/RJSIm8divHBEVoySrh94Rc1bg3pgHMVf5zfDPBBbLjDHQzSzG2jpekb3pwBUc2kCH07eYxeJG/jFiyUaJaGLKI7Zxa6wkMgZTWKQlYhXUrWTLy5lNtwJWJMGxPuhWO4PEpfasqSYFskKLI2iqU/6sbQwIfatOxzTwnNsExp+gmswg7N/XleqxzoUtRWrmosH3732JxL12Yv+Jp0Y7+8fHzBfl9mAriBEfcn9cynArc4z7mMeNiUZe7G+iMMp3UrY+qMsNqiVzrSwZcb5X4gmnlLPf8LgWBTynxAxPxRKe+cO30eITVfp7szUpfdRCoNXHkqosoPeZLuuQW16Jpx6BmrldRwxj4VS/ZNaAFiN5EaxYZ7DvfecQDLNPUNmE8I1DXkxehccihuG7JIAIRnkIt3U3gWHZCZpLTYByqxOFVWyZUx3bkYC+YBmTzebFvIkK46mr5l7Qz1Q8iZcjC2S8fLJ7dJ1Jh+qHkbE1Qy03Oe/Nh73QK7F8S8r+AsqCeMX/s3qxczMJKJy84h3h5+oyQrzrTqN33C08In0rKjBlmrFhJmJ5eJcoKHXKCC7qLuvQAgz7EcW6pSYuyX44bkiVOiSePkx9rTB/StjxoR0GmaU6wdKGo8+JmAxgcWqsRaN6oJpCPJCK5XUaBuZd8lyYd8wX/DIIs9BIgl8Edx51kJj1ig//6hjpa4yeligquPeMTHUGQq8Z3YwVPDKAacVclcFqXleVOQNpcS3niDrh5zPyt+7KWxNg1T08OhcZKZXvrqUPBlyRLlWEjhQWdqRtHlQ3od1boQzFMNgN6q3PMO7AXq26H/V7t6oc8ggJ1zFfVHkHTIfOI59rtR9fymliRDti+b7lXePwd+Qrav5hX2JUZeb6thT9wankT8gxKxOV54lBjEes2qV/oqs7wuWnjJQXNqah/8OOayZ+IrDYZxx8NJrVSkHfigRKdKZnvOpAqKrYwWq82xYBlPs6sPHiE68IqWum0I82vrDs7IuUN3RNbOt34Z2hAY4vQAsQ03qBacdfiQzeHCGcoVRqx0TGVJQgByIb2DSOPxntSsfUnecBA6VxNhsQNH6cKGoX6GYcMoQ43hRDJa0qZrWFoF1NJBJFevInTDJF1BARz4KfKU0urcarMCII9YkBl8Bg0zWXaA52EUhV9iug+MYvmzZe0SccDH9tVyow8aZd7KzWBbPCEbU4NUsKTg/YW5ZpBPyLwUnjaCLK2eLuE8r0i/eR98cbrKlWTDOhHN37vYvVIRbaDGOxxiXqzoLBAofDZhVwaOxEeLtKNGvQkYJVxrMVeC7E/xtc0uVAtUOfICnPc1EyjRBUw5ZlGVHmnAGUSndZb6UHFjYKhm4jfDQslxXC4W8xR5Qy6Ip+kzxAMFnqyMPg6oVDKCg9dP58qvreg55GR/esBxBTvUXQtKntC+HQ2Yb8N9rfE+Z0SedAUPwdTIztx0e5mD+911col3zA0HWJXNd28r+JqIsdzgrOOLMcPg+j167KPDP0clgrKqZxLtEAONdh7GkRy5D50xxMnd/O7WA1gQfqgdDlwsvcdkCYEBB7qlGsKcJ3gm3DcXirrTSbPuPRf0mzdp5Ukhq17d3oac1YvBrISJWHDZxCkYgqZuAo9ufazxJWY/9NcIDib+9mm/AcMeNu+O6ILcRk5SvhFbT9Sx7nzS2NVo4WjgWrTmi20bmlKItWcjGFxpEjQdKKC8uu/yjcEP+nFJpmDvSMKiUfD3j3TweAvCgPBvwq5zyj7JZ+R6+TWNal+s0j4ZfXkdh9PiInTs4WLVOwiOR7I3EsnSD7JuI1yq7TtS+HkFdgB+nW4fZgFm/zbhg+xv419RX1VotzNifgLDqCbvhkaK4JHZDiV+w0405Un1JDy8mXfZUSX/62NMA1Y8xW4jU9qC0uaEstESUAGBegpOORxTHNva6Odz4LL6e8VZiAWIeaTQjIG5bq7Y/gltsUPjI3tg6CeFNgc1RMCEB3TdWN/LLAepMnJSORqNa7h0uv9mOjNVwYfNIqlUjQxxJmJMc6i7go3KuFQNaUu2lCiU0DLagzz9vv4/HuZUnfwaGEvb67lkjUb9UW8imOL6vCHHFlcaowokgTXCakmGoGl72si6XVCVV+eC2cZuPcvU1gVl3BzKjO4gkghEUNguxLqKr9w8BaaUUgJXDwtVtqaQIktF00tygvaNwq0jlp2piKziEeqDqOnCUlTJFLXOXzvWCJMHPJGeVWtn3Hh3GhxAahnG792hMLb0NcSD8Dmi7vjvKxJGyttTbCUCfptR8B62HfRslQu6nJcInxQ2s6yRZ7tTDVT/GrqHS4vH7w3C/dx9bSWOMBPVdLOnPEKks33dTBg/fmqbL3pvJCE0k9WDHmkMWfzDWpf+2LKZDsTWv+rNATJEps8sOWTWF/iDx29wcSqNGaGsGsqQK2RyCIh9ofA6M8pcPPdzFQNM69UHu3r16e42PKLahYSdHBlpvUpnllCh0hp3CSS55aL++4gEqhpqcB0DkXorFVkmEnSxyY3EPKw2LDXjQBU9RkMnOEBlclRnSV+VJTIpakAe/PagDzx953lYSM98DVV1QxrSKCp87U7jWxTXP5AIXYtYT/2VBAdBlfiXq7+IH7mDUZBta3qWeOV+CeyrjVBK7wJapE7E9ybfjgJj2+HNnFTIsYpT5GiJZCHArR3TF2HcDmfmAcxLZS0O+oJr4xzDM+vYUShklTwO+Vu1ICQljScgTQCHZRmskr0Omw9ahOsERpbyp+66hgb8tp3W6Oay5iRN0/sOUuAUrQtBMw0uOpoWZsUpTOA+7pCFeh0rUyrwTgyaPQRQ5P7JejPPB3lWtE5kKOyX8+gjcwYbkXd+HEM7nGwIKUGyedUty+0+8JD2JAIzZCx9LvIXC8oNgimq6g1JWv6WKqjSYQb+Ns60htubj5Wnl+I3S1cc8bnbdeJctWQilJMRcYZKZkuvLLXGG6yaDonUNWddjxQUqSP+uJkrtLa39g62I4BkcFlCLRyvJlww2qfHnPPJNCp8cLiI7nremy+JOaKG2ShhbBXCtxiXKJxa5txaKOEFfWqKyAGue6jl/axFKilhsv8ZZnfNEh1BfjBEDJUWjbKLlOnlFGWPMlKn4VQSupy5JrUPfhOJXTOyt3XjEK/ZBqMrN1UHc2poobB8qIx3IR4EKB7/nFr853gA447REbw5ByJxjnQ6oB5MSTDjcLKu4LupnjbThiTgQ9cjA/dFcTlXJoov8BRwNToN6s4fT9VkUV03D7J/E+VEQ1xOkpupqmtIink6mw7Wpcl1hFlzggRuUpQL5VtkrtyREuFfgo5tXMrYtyz9RfSOfgBg9qZDW/V5i9yhhQg9tRHkg5TsKTvrDHMBW7gThDde04qFGKOj1iVeqxZYaJ03LntzWeRPeRGIVZbPJg7lD8TFlmszECSXX5WKCqN2QoR6zwhWMrjI9g/ldooB+Cqt64bBc2zW2K9gdkNaSZbDHnfNwZr9Z7BB41M9YkG+tqSV0C+LmoeARhjhFqw0vRwE+eJwubJAdEE6MgMSX+6q3RY456LuxHImpOCokhKlTDeZE2jyH4dnCEqhP1SrvHvpp1thX6J+wK5KneCbe5XXAziquCqsQSJaI66A84A2926K9c/8k29PYaINyT4rUnIuMfVzQ1q2cyTUHzJ6cg6hn4RUFbGTLiujE7RMD5HShlfiyk0oJASv14gANuKaan3TMtyfRNCdsqNEy9PdaM5GewdFbqY8qSEhdy3fKMGHzmPi/sxvktXEHq7IWXUO7nUd187kq5Y886k6dvyjQOTF6WYUCOg1RPltOaNt1pRQh1FO35keUvVTOkhR8pMEglyPunt6BohnysyB8/bEhg7duR9uivVWPVesKiZRVd0BoWV4HjfPX+jk5EaSKMtyXSP7byuAgh9WdrGrwJMpbdSqwdW5S2nl0n/1K9KZiC6O0yeVwMjqOcRbZAD/aKK9QaVubZFMFAgIkWfJvOSBbnrZwsH9PpmSnGN9ROYSKpA+YFMhndfQ+DSEcjL68A/XsbKR69GCr2ETqltKBJMNl3U6SLSRVMBA8XmDJCIwvJ/m3ROsZOmspGMHuelETCanv8k8H3BeEHOfGqM+1GE4QRv4p9IugAib2Py8IoTl3B0iilHQogUmZD9JmK2itFcnu6KyBkFc5+fHqKIISutmJN4VzoY/pFgTYzf0glySLlDc2HbxqHNfZGe2QIceHUazz0W58Ns1Qcjvz8XUeqyc8RCZrW3GkbhhvdzUet0eQArbj5T6786c6nhZljzLBW9yN3qLgTatfLqonVrSIMapiySHd5kH63dAf0tWWao9B9B7B7BDhJPIe1WoM8O/8aWGHgL2XlteEW7ebSmjkyxYgSkD6bHWNCuO00dr/1CdzOOGEfdzpzslPcTzm4W6iUkVPGU3gL+6l2YN2+8hlshK7pxIvSsheoUxGH1UJhJ0QL8MKLsiT/j8nImkDr9x4Z4zw7pFCV5WG0tOVeY6KZ+DbKbZU8t0/BQCqQGR/PRFYhX+FJOhODXY68kYGw4XpaxyP45vluZ4ehY9Osj1pJWirHuNLcTdgm62ta4JU5K6JJH9R4wjrPdkApHV/V7BHFJ3IbwwPzbkj+7Q8lT9vOvmFebK5sVyekBMvtf9j4Nq/arbpLLC7VU7AjyMZmTtywiKSCRFV2y8EWpVBfCMzZp+/Io3scnaRxhC+UgZF6iJBpdaqLYGUZaEAGPASqnS69YB/6xChDMumkp56diL/kA0zjoR31Gugmwe6vGTOzwN0ZfNa43XLLmTKg97HlZ6Ru2LbMI7crw9GNlWxqTIsTI4xtEzcnMW+3+Dk5dDGH+6fuuSsZYE4ef/aTK8XtFKV9BtIjrJ4jqGGbrwL9dXieynb4qRD3o4jvkORLO0tdOMvSCwPJUpr/YGVDHLNKWZ7kLre5IJIagzuIgZdGvUyxTRNifjFLDWlBFM2hSCemL9pTDs15xhQOertuGslAR2ehaVoFM1L6uUPPeMZUbh+V0HHpJoQi58h2xrGg9ae52KYkCfbAzrN5ZGGCYN0FsykT1qFvGPvwomc5uloGUfhou4SnPvGpVDOFSz9+mXC6hUB5QycmWZjRho5jDtBZ6cZ3Sqv+Fu1Z96codguSt9pQsEVTxMit4nKjtiO0skChkdjBRRJ+Sbqa1dvdHHF2sfaKQVG6AoAnENczBCmY0LWCWadZxx7eroMWdIWjr+jaFtKG4t1wnq8jibRfcI33XXu+bBdvryBvlom9Z9DZnlBcgIm7MiuocbqBFXNezNYKPXjQtwS0pxnoAUc1gcLEgIqS5VFcPIxuRzCxRWb1s+XiT6gKme16hSkULsFrXfV+3RJ6ay/9SgPPuMXsXwPChn/QqSM0Ew6Mr7sDMRZVkc9GQdCndWTdU/n4uCZe6NzkbvVmy4qqKawOPJEmnYZVUncvbDyrcsaETvNRdD+I2iP7CoYdBDj2Gy5efEDqVXREdzGh30KdKaNZ3GaWqLi5f7GBYE1g1yPaZyuS4kK0yG0xKiC3iP3bnh98Ttqa8/1UQqqvFLTVl/Z2BeJmwrxW7nsRDuFrfUO5Jn1Q+ViQcYTFgN5PAi2lNcRfwG9EMW0MAO8qpsf24+bpUf92RofbepENDh5mouVsN1k0SD7XoDXd2I/Lpd1hu7lsKQYYJqPGEq+2Z0XnXigYm2r6kmhLning3gsS7mGZQsPUnEiKlxlLzAvKeNI/DOBZyJc7J3i7+i1sf9fdVSJOH29V0LDQigXHyAzmVYU0UP/IYrUQSOtsmnqFR5FUuvckLEXdUAsd+OLonjy4SaoD3PtbPZtnSLvji/dkCw8UL4dHiGP1rFzq174VNU77b41x3ni7Bhb8op5zxOKCo0RgTUJVSrBYlCMFuJn8gZhPxIcHJ6KUSyXIdrrALQ8B1bhcsL3JJaLHv6SO5ed1c1bag3MdwYtkZk6wf/Ndiys08O+wjV1jUHMvIQ236shJf4qFJf1zZKM4UrLTqHDZckAIhdGW/MyOHC3UEC11t21FB7mxNGpyH84/o7NXBgqUNSO9MZBljQEsJcpeTahareZUqkyb5EdXY8nJsFyA4X5H0xhR/uBGmE7mygQT4qjsF7GB7WLaUT+SIC95aj6MlcSDwuSR85pLdLFepol1YWIHkGoeRvMstRVaxaoWLhH+FVMP0UBsvaYg2gmjHG7YPim+qVllRMeIISEqutJ+Q5thqUnSenJsM+ThL4mAmQ7QrZ4nnDUkrvygASPN1pQLM7nlb7e9+NRsnhVsYUAwfp55g53nrhPpYXSKuoGkGha0EMpEaFijboSRF4HY4LG/26jhWdHxWxrXMh3ShjDb0x6h1iD0Rx2k3mCXi7w8U7uXb0eZmfyWRPR4rCGWQqIvoIrr6MZ+QKHSjgVzCGO6zy9nqZxHMrc+q0MVZVZ5tJPdTUDXf9Y/pNlLOpc++FUqKW6Tds4bWE9edG2PjtKlgnVTwQG6U+XiBhfHRRKzLxiM0mgkxsqGSSPo4f4+uxqGwE2A3yd5OhzhrqS6bRDIiL65VuYu2Wwkzc1NTrxegdR+RmrG2hjpXFzH+MLnJ+JFWRKMYyeyRyXJjQ2Qog3ZJaTQcooGewRyhUxyYQiwka50mQPoPFiUFQ9m855Q9YC0Nh5LywcVOHixQjNRBpfgk0Nck9oHXKBlHfLsxFOlsrIkEyabl2RXBo0Ze4/w5sfp5FftK9roEOm+RwJZPOWfCXYFS85/fwZKfmbbDXcynApRYIz0knXml17ZlxnDi9aEMpEMksmQCzgndpFQvMZynESGuXN2rVnKeFGXal7hBEwh4pU4sfjRMG6npD5jea5ZhcdE7dNUZ9bJT17H1fC0ryMczMteprBwTH0O/p7obz45DGTTjfNvCS43GozGFURNEjEqiprx/NaUtRa+Qvk/QjLKV1EhLgNu/FA1bTK1bNsUVV15c+Fx+e5Cpxb0OWRmJHpok16ggjVdJt2LpjuSQk+OnrQ4k/cq4StYZF9ncOeT+c9yDl4OqSZUnMtAdjyPrwd8ynf5wGSZaDvkF7ev41N4kYNRte8RzGyuTpy35SncuSrlCj8kUavlUcQ/p/pt0VLhmh5I2pySo4PvkkcQxu3QRv9x0XMA7pu4tUTm1VhlW51x+Fu0QBxxHso1kmefKbhx+kSzS1dLv/UB67A91OfZOAMKWJq2BsVqnZeKLIDLVBCLrgQqpvwfQojas+J6AjMC8KgQ++VztS+kIANrm5Uir8p+vYr3TsygxHyCpBPzaKqv3hxcZh4zJqJc7PXaUbe/tGL384Ai2JgozDHS48s1+d2vawy7MxWEy1Ixfm35XQldmajqDJNiMRDqvT4dPyrshImqWOPj9HO4ONIoVAzlyxGa3GbCfr30ibl0E3IeYA0s5rbko+CZlH2UzL6B5pHDb9xKuhd9gfJUkKR8G2MoOKFCjoDTxuAooaSsB61QrUrilFKsTEpi26QsH20VPTEV+MIL67f97+RiQWOT3/P0c2O6sd3qJSIgGqoO0tCTyWqcZkQ0kytQQPbFPEACM10jx4n9Bn8BzIXMTPPCWFImUP3nymuj+HsG4YOMitmXjyNdnLRdSLGR2Vk4j1H5w5s7iCD8iCET+C4/m+gC1MHBgFzlTtSBLMVq7jj9+i9l2aQxrqtM6/CyOLEA6alq8SBPujsw/BZo0iXnTs0FRFZt6tHq/Q6ZeLRWVIUF64oBNYMx4I1HpfErqCURpDC6jeAi/BdTxOCPn2FByJ9UoBQZv0EOaMtRlmM4pTBI4sw2YWrIrNzScypm3uxEh0a2/uFwAICDYSM0IoopxhOJANqB/e4LegmqIrIKKt8KkSvtNlg/lpENldaEmw2xMe9koqRcj+1Tu5RZAZiN2T9R8GvezilFkW8T6IcdEWt4VYHn4EPmYPrWwoxuE7kAJ4bRiURIG1BpRVYPdBTjRWeJZsnreA5eW7sdCfmlmSBltuCDd4AtNsAR4zyRNmBjL4SQJxJQzDrt7Qy3yV6z6wUAHZE+X8ThgQGwc3Axe5i2+2p6fezfpKbhIs5EE50jzy5I2nC4a6zKZP1CkgPGKjyJZioNGmfDaL/tO3LGEkVxiBlJAiVB83kGdoLnQYr7kgrEsGA6+PwmY5QUXw5wOePI21MZhlrunOw7Pis157Yv1FZOOoXgQ24HcLGwgvv5a9hWEKnDDdHwAoBfppCocxXZcMH0y2Z17BvVEk9oBU2Cab+ZFyrXSfHKImjkqIMProaqWNfI3uJGYrDhfyfJRK6+AyFutBhFsQrXHVFb1TfIluBZabGjY9E5bTat2JT0C6rRQOIexek2iolb9et+3kAb7GxzdU8M8/EyewGZRuf21m2wm6Q5kRpqu1ogSmQXJWEs6sBUxAMUfBytLHERF3JEwbSj3iaNqQiyHZkNYwbG0GJLj/bIlMPKJg3RJrkQkD18NscNrwlCFXjQpBDMToUSBkQ8bd0LZ9cao5gPkGmK7subiOrKHf6hu3BjLXWSUMAVRO7pjbXFEEPZY9WoAVO4cIkKoGKPoGiR1mlTAQckyPZYjElgKyDyy+QXAO+MAUXZBaWCQ6B/oebSE4xg1INpSSD+bm0GelBIRJkjgef8U/J6QE9a7jQf4OGg7SB85Go3SejeVqILdEO25DHvAkKCq5/zonSD6uYm/rAlz2w/RmaQxYaUIFRdwX14JHyWmiC5jNWw1PI0cIb5AwYn1UZCEbCns8k1QmFmIetOxomzhjScTdcGZPLjD5dPkSHulO/E3uU1UhKXUhKTz13lwlmmAT9lRIesgqKyKyzFg742K8HdQOg2OG/Z/VFB8ZEda8LK+BlDjf2AWDxYYdOocgQRS1iP/AvR1PB7nusQbIHFDlCjoipS7QhcvXXX99ROQ0A3iovpzaLKxUIjvFHxDZQDci3/Y1+pVkEnZHcAVJNjcH86Qm9szoyCvPTI720o34UYxNjTjWvBdcrRhm//ErMdKjjhpWX6/ZoVYJ69lUB6gxsUYI/6AlMp3yDXs5Mfm2/kYcgCnCBmFkkUJwmCR5VpjGTyCkEv7dZGBEHURY00sk5NZvMCyubsTZCg5JE4bWS42JXA4IRnTnJERssPFdkrZBdqAcIeIMEMfijtcmNoRE8L+d6GEKjUyFNYJ6h3pwbTFpNkNY84cA+2O8wJ5AneLz93fCCDF3Z7+k4AJ11Pe2WLh4CucoXagaFxUXKRvE32+PyAGkzU0gMxvTyQMz1e12j7UaNn8yZL2q7pAEn7zgd7gfoWUgEtVx9gwKN9ItlJozcW5VT9oryvTcxjshSJ5OjClWVykjnJRrg7iaDygsXw4lRTPrR/M09aQBB7ElmkuaAYGGt4oIwGdooLlHggHKFILsYxl119sSd783K6tJtcI8WYAy1upGM6EfDREgv33opAzUJ864jiVoUxKvAjICQTgKxzdcfG3LoAC1SC/SlmTs5kCkAbjoKSxa1qmmIIMi3CBE+W+mE1n+2FkpFaNfWo1bwQuatrEqR5OXhVvmsqgp2dlHZJJ9GOXss3slRLhlUIdW/Sdvvqo9fJckJmx/GHnIYJkhHnkAJNzyC1BNekpFhwcROdc+quGQighfH0jsb66HbPHM/6fckJnNiEGTnh8Lgr8zrKu5du7KR+0SrKJrinzzf2uBQtRJlGmegU7f83neV5gs5dMuyEpSPWteXiiiUPi0fbiEwbdCKv073x/8LlTVNnrP6hLhiLWBYO1y/Rex2sulVXhY1D8GFipcORuU9PfDiWnXepz/nmCAfrj5m2VAEUkhL3u+3ATfGoq24cgxPhn5y6RRRMXvpZ+LbonLyGXuhP3ccbk46pnpe5JjDXQSG6nyUwOR9V4Sz6KSrea8cdI/nfMhnMO7XX0JhDV32VhM2zyQcV/XNcfpur6Z3gIUJlDvkJXf6xmoObm/RnuU2mrKvbMiVhoCgpBjmmYgZPaMJ1DbMHYzCcfiCHG7f0lIhpraylicXVTID8aPZ7D+LqpIGbKfA2RSYfvmPt70etsceZwSgadQSwvDJ3SlYrAYZWOp1SSd/KDOuHs34sP8iBNMe9rVBD8IKI6zOWRy8jhCxZjd5R07XK9b8cJu2g2/oUBsSBMzowYMRSjZxp6+I2MiWPQvubxnY75L9kU9lXOLEQssPEM/iLoYizWzR6UxVW1jjR2pD9K+WNmSNmHxFHBBFwgqN0XJn0nwoxyJICIoB4lyj1u+3DBlPGoZVOABg/NFPRDacaMZJr3nwXaQ8DaCEM5XgiBBLC3xrPt6sRDicc9XynsJhXyc9y21RoTmuEf91Ve1OjQ+ZhLloiPzOFAP0CiHa75SknXuBXHcnaMAAlOpe/MCNlJSX4y82klDm12xCQp74Lb9oKANt5Zpp4oaRkk2bPAcHJmcwShpPQcIpZFaUqNwEjVPwRB1Lih+wVQIwFi00vh1CJn98XlXhuZ1fz/xMGfoQWQSBRNSSEqwKeWsQVvxilg4JZhYMuilefBTrbg0Ah1BzcSVu3M78k40DGQntKJVrlByTVGkFPBOaots1tBOO6PBTnULTLGRLWDeKtI3M+vyCxq4ULItxjuSXOO8AFBvuXvGS/lod1BW5mjgrloIrSaWjHmhQp1gF5eFWR8ayFcg6yw1GJcF6OdEw96lAP6Skbdgs8KhOfFHOV2+cgEah13ZclwyqXcKtgVsgYgWTT9yDaZ/DxN2u+kOPea1c8oese0ZAdH/nn1nFEppZBYtDjym8Sn2mA1fZA0adRCbg0xBF4TYB6qVBFIfl70wE6TpgWnRd1oAVVwYt7CUnW2t7/PvHDZnyfcL+VG2iFPZKPE9uMsKwtAF3mmYTaFs1ZDBztH7Z86y/gDGzgJUeKAOSBNcHG+SFI6Ke1pers4ZQ++owor1YG5LRO8Tj5FQG1U3AcC/MYXvD5nAvpvAC1yQ9V8qn1bDK+IyhS3spkiZB8Psbx3DN0WUu0jXsVmVE8DPiPEVEJQBD/U38RVz5nHr0sbsmVaOKa9MRIXQvpIh9eixPo33Qsx9/4EGuQ7+dSETaJBh0TCngVOUY2c7FMtco9Risej7YT+HP+MmOhi3K1LQFD6dwTUae+AioKJIlRAvFlssqd7vhg+EdsFb1SE0jm8aySkgOGRs1zWDVPVPbODcfOAIADDzxM5WhlVRMmGI+q1USlNkQpSvDeSFLrTe6EDEmz866dMlIXYSW2UL04X3z9DeN1Mx3v7yEWFgHMwVbV993Eeqc5imHJex5ObVR92U7d11N+IJWLEgZUCtFoVj1ZCNe41disUjwZtxsUiRlhvJYjhq+O4F8Yl2QulI5oCRJuvSJssHYd6Fnl5kSGhFpojshoOZarmggmgSGQRKSCah+fcgFrgs11IipDxi3VTCfbEiJ6D4X/R+4CupFoUNSeb/d9UByycB/2CycSoRuk3J5S6KmL7q9aOt9qCEf0hE5ZbaN3374+TYuhNILx+bb2FKFhHugifCbg97x0k0CD7X+QXhY1QXWP8Krl5n6dg5PzTTcPcu6hfYRM3nPEoo8xDeQ2O+9qya9hXZCuoILaXyehMEEotoKNyhNOAxfkVQy1zlmTDVZwVwmFGgalcFSOXi6Cb4glLObZlULqxrIrhxGWnV2/vp2vlD/gWSTsEaE5YPNKFkn1tIPQbKnSGEU14V8QsxwSqQx9CSlXUrGikhQstrVUevG/n1FgIxeT0WgYdl9EuwDoUiZm3DOeZFDNEpld8C6dZHfViVz1/8xeWGAyYSGM3uIYCi+ZNaaLc14che1Is89Y1OMrYGftXt1TovO5IJtBrrh58qaSiNilPaP7Cr3VaK41C/1hzux2gHIh1k4WGOON3VkPjvf2fcLGXQW5EvZlBLlfz9IuW64tKhPhOVKE6qxcKKbT8gnqc5BoyTVLsI+lr8rRmu6fWqhRb7RkqooBXgeWinP3B6BBY5pVdt1NDEbwOWBejzJQOe4hjLyEI9AjFbibwqnDJJl+B02MJMXShjq7o7VMRiVLoVL+sJgwDweBwk6bUfWaX90deiHyDC2uclBhL3fA2WkcZJgpSJfFn/VAsSD64RexP4XX3/KJxd/EXzUBzBmeuOHnhMQwVongS0YiYCjMX/BC1pbSyFa4pF29NLw1d3FxjfTpiVIoa5A0pLwY69WbtR0oMxj+fbcyOvKtFoysd8ZU2dEPedTrdHuAcKl/won5uxZeFG79ockpIderr8+u4cbdOLhpSxh4NvMiC4SnqxHtKBRHmyrwWGHQ5kqCpwoPKCw4fc6uN9Njz0gsnLQlxjmQbEfF3ubjjBbiZCYQ+yyoKD5OFEBHJBBDF1TM/9ZbKbj+M6gmjxUFrASbcr3Foo7DUqkTfTqxloo/alIps68INFJtsMfHQY3MS4q5KmUK/cTGO3j2dQjirMt+ou2GK1zjaue+DDtIpjmmUqMheqlx1qf32xRdXzkWZWOv0CWZrnahGvTXow+N9qfKq/kwnmskZhNJJg4nOmL0FKmAajZAKBSeuzfzmNyjGadfqk3+frNQa0f5bNM0xKD0l8ABG+X31AIr1D4wGWtueJbqVpuIVNnl7GOKFaBBNrX0jh+i7IW4Uwu8uk8wmKOKPw+lWIjKZaYVXrSLLqKWlotaru9Apd8MIBKc9+NgSZgeHKoJF6xo2eiQr6YhF5DkdeDcHDuiTzxdWHAwyD6xSIU5JPsFlJ6Y2Eq+F7JAiF0O0IEiLhETgjN2iy4Lve5FHlLGGlXkBTkMxNO1B95cBxJMjHmGXaA+LruX+NLgOG0cK/2tNsTX5gKIRYLShkqAmZS622t57S+WlzZ3KfRQ5Nbc4Y3S9P7SrVyVDkSnW9+YtwqVihCbPbjYKEQCvSoaCmIugY8K0ssp7GXnB/rtcf5m8wqGEnde5uB2dxTyqFdg6AMCE9ZDPiTb5KxkzmLj2Aiu99PQVypMkR5dOQ1WjNKn3JZcyIS3jDe0r6ZIIz2LwtXO+kGohbr63ZZOtpp1nz+jUXIC6eKbQI59v6sDInPs9tuVLh7UiioqYAJkarPivzWQyr3Lrpv97eijBRJ8e64lqhc+GH1LFwbW1X/TaGC0P/aZIAxsMcyt3PohkvxXlrRJ2MiSSiG1Gf0ByOT7IYWbNT0vMD0jpSCzYhFKYqegMwmAHdZqUsFDDmjU2cC8yUVdydaGvf1qrNfkny/YWLUC6YimFrgFTMmGLxidzd5X8PI1HiVPlcZoCF33tj5nVKwNcb2SWd/7uQPCMgIeS4wGw5ehporOCPZMjWcV59LAnE3+NP0PlidNEp2BnhXJpPe4qPDooaaoP5thqFAioD0pyd5sUIqGNK/EjPe2Tg6l6B/05vH0XIBmhie98mpScwre5YR5pJMue9uSBvJHusRlb/39dvmbY+ZPfc16gGhpyCVI46x1X3hhPYMd+jUQ0kgmQrG8OjVygi6BXbUJQO6AHQ1sWeK3ZJguizh27udwXKYmEnmrYjm/10s8H485TxWi8FjFo2525J4PdtULY6fy3ETQaJajVx5BqhuUUl4tNcImFB2VSQw6H9R9lW20smnQwAgfphduhqEOg58NfdexDUKZrYkpFB1pDEa9JMuNwcaR949JX75OK9DrDFurOHIzfBcKnTU1gtXs9msetg6JCY3ErjU4brV8TmdSYNH3I3lBWLqUSf9cF0QIBowxTkX5Bhg2TYKlEr087Y4u4IMAgEo2ehOIh1M70nDsLVid389ZqXqCY59skun8J7SaXrlr7CGPfVVoDFGMrQpWWn3l3ufIyVVQsRW00VGqIp1GNzdjYXuz12R5KZerN7V1OpT24zFRTHvqWOr3aUn1l1RLcDG+BYcuMPvv6TKvs22Opw6QhwdZTcWwDZYU1w4CK8GiHIXQK4hAyqE5HVfVUEXvkvAHBMh4EVQDrizMgsdcjV7yQ7sz6VXeEdbx0Tsq8awIUAw34ABalyQjR8kQj89X6HF0V/SGNnLfJwiCcH6hEUhMeISbSwEIC+UISaZDqn6lYZYDlQY4yvOHf5Gv3o/dY7hRweix7myXs5IguVmeqfcnIMru3yZBusTfRrdRtVppqyo9XrIrlBEGR3hegPotlAlFElME2+q71tnqvxYUgbt5Z4snQYvIYMpUZBR46khBuMw4KKyNWy2H49TBQuDQGJbXwYRXpgp6hsKg+2wRXGAj25lF/pL4uW9H25wQtUHv2FrDkImQSZhqHN+W6LZj2vpPO0Ls0XbOsKDpqJjc5bkE3Hi00I24Ln8RSWWxTx+zbfV5TlEgoDYoJib+u1K6iqRuhfMRNNmh4P1jc406qoiNb3Is9t1845bexSRqNi625x9NApguHhDxoH7qKVxxpDHJYz9ckkdc9KM8qyGHpA1hmVJjJA/2cxMsEaVR5skbToa4KnDxwX0ruvNlQZFEaibTSBC9a51B9Mb+AoCSdsf1yVdQfHctJJK/pHU/ZeLpltARUSdX5nmyOZNkYOjg+spRv1N7ZEbOWgrMiZ9yyOLtUQCvMZF85BOJkL/z+qgyjNy4SDxcW5YB1HcUHcS+IcYMrh22Ldb7QGnFV8bp9s3XL7woCbeWB5WEad1xkwZ8wgmEEv4gZaTCO3NOUAN30MesniFl8PnCPMtoim8Vw66xXdIWJbFWKUuCEdYG4qMlm1KjRDQ8fH0VYsOxIcpb5QLHrsQoSQVEiKbsZwzr1wUSJs1rL73A6j+hBrVdH7rMe2otcqm4+XXXZr14QXSE06BVPuSWQ2/jgGRwbU4cuepctmztOXpBCIXDtr9bV+DeoEZ0qEkDgrRB8WjUcsnBGk5flw8cdWA+Uh+IS9lWwj+ZPKAExg00l9rn2xSrlRI7nyTfw9f4uFBXXB297cPdHVnZRhNirJc+f00jc+u23lVlVp5jyxXb1V3gCTbkMakM4h9RxRJpUbzLOe0Y9ylaSU8dfgyarUHG61k2loKtLfd+RF6C4MuTNpfooU0GPTzEKpUDBB6g3q5DvRzj7Q0Z0G9OVJR31XUPIf+GpC+ESO2LOsastzzTeLbh2IC2/tfzmN48x6WNkvZjxzpZ4366NTMNQsKCPM91UX8Xt6yLzq1DqzVLJ26GcHcACQtiCchCibwoVPA9LE7lbcyFy4gSk3m6GTdKCQoRMkoMkg/F89ZVfubZpRFSBRDzWpYB21eLUsqJNo+Cfksh2i73HtMTR0ZHQwNKjpd9DMzeqK8qf56hj+LipTiR4annye2WbElFfFq/5l3OS1D7/sGF5kAaRWPDzD6WlKCa2ny+ElMLjljpAYaKtTnFf1pr7bnbdWQYYdcDQ8eZeenuXlLNbypGDYQz8QyBEjyQhni3scod8k8hPWSayVnUtFNLYSqcEf7Z4Ai25JHvcAJgTyWanqquq2pIitgXFY6tPwuuK/5fcR/arDMPIMFAbxW+0oe9S1Opvnmzx9P5UwqT6dK48CPPYQqvhD7dEfTTymt48QAbEg3WRWyvAdwLp7bCQdRTjR4quZgzZjw2myq5H83QiBISWhDNHkzMQtaQ/5UUga2hxqhrAJ++67s0dOjGtjwsdXWBiwNfYvaqUh4CgS8yJFI0hP+IQitnNNH2hzCTNKzwtogvquu2zwoqhNJ8POHYgtQ5bj6qslLp5kUsYlKpqCsenyxRF5FL2GSpx7NbqkEPHjzM7pK7WW9w8/ZQLXFFZTa8Mvtm9RCNiazDNhipVoFdK7CA2UeHV4MXGtK/EzvUN5o3coXyYLXIfg/vBEPSjmObbnmA4TB5WXkW8LJ2r+VEw4AIWzdASKsp4klQum0zHE0hsDK+sgQfr8owTXbvxWE7w5AKaT6qEFke70XSx+iH9tUaRkR98O29y+B7AIEk0JpzGpDRRF2AqUd7+W76tYUr4jQm/odpje+s4aJCZIvHteqOmI4RzQrYO1HLuL9c7T7ff3eTGPtfDpo5vv2YPJ0malB8YKUbE/YsLsX+1EDqYg88ucjW0NO7Zd8SBk14lJCQ+49uEzuCsADc7wZWPtMXRRRESZUl063IimxMCJLbRxz4Osv/gEhdQxEApL9XSl/lCOrGR7l+esySRe2BlHV+xCIZciOPdd0x83X2GlCeyKstFirCwFMaxtU8nCsUwqaQ/2/puiZPiIiJIaGmNg8pCeAjkS5lTz9lrIWh5TdDl/1QSERnPytXZ+giWFfTYGBHrQZ0lfqBl3c0chkgdoLKygH6WW/Sm8R0QJiNOGgSce32dTK9T655ZCgaJyeyVGtCClyX02HrirA85POOHYXemfTXQo2/HqMIpUY156sXimopOoz1BeQm+/Udpglx7F+oa8bTquWbWFbyiJzAU+mJ8jNTyAtDNx0W9LnFkUO7ZcyFec2JMTmFuVYDXNz9WEryHBJDeroj3qlxjf3dbIaPZeB3kO5b3/GxqHOxkajfrG986awnz84NL0GyypWVk6p6jCXJunVNvJQpkX6kCc+/pukLeLoqIQdE5b4IDjkB89mo34uHegqkr6FfVcv6vjPshkyMGMjZxbUJbhi1SYryThic2KVHb6bjBtFe4obX4m7h0UmUjLKVAfWgYwtsdXawXBsxKnaUIqe/Jyjm0b2Kxj/8XjOELzvSH3Y892fDPXrepKtLoeNRQiQTSOGArgocNJMlw2ptg11j3m6LyXKtkV7j5VkOlk+Tf1R5/0a6zR+uijHPgQri1BYq6KUM1lTjGXy/LUpm1WKWad2g8e6gPVS+tMRP5/a0AfZGazYWhi7GRagUTNYIvuTTupjTZiQkOILJjgN0SmiykjVgsqE9zBEJ21AMnmepARPimOv5WiQP3xBLKyIAtl1lLt1dds6Jlhhutq2i+K+jR8pTIEqHkymv4TEh2FD4oTzBco/X5FB5ZWm0ftIKnHNnYJv2/A3mJDTylwwG/jTiZFrldESB8oLb+0O1jBJw/YE9AL8tRDbSORwXOVcDvZnIs8vlGxETU6gZC2Er17yGhJLFIaa10U/AIHYuKo7dl8CtQ71i8SmxeoY9ME4XJAT1Dx6L+o8846S6AuDwu/HnRDQqQooL6L7DrhOrZmTNJLHmrARvt6w+EgpffwjPAECQuXWHJczYsWHqdk54aUiJwLRVob87a5GsLjOELYILJJ11Odb5OmoSP2DM8RD7dqB1lY1DS9F6BvOxolsuS1W2mascxVbMj+I8YaH0n31JVrIROYqtdlI5GR1GJLzN16quyfd8i7q5NqpjXSUkwaZnRSg8duZCXQAN/KgqMQAyeUUcyuuPanzFkI8581CsZODx27jFQVTsjWh5FhGqQjFBQs4RUUnlhbRil+GTCJvxDrmpTdOA8pv/Vzaq7dXMgsvkS/GST9HaES+6jFPc52+x7DO3Xb+FDK888mbai70gj0lwIlRC9OxNkXVsl/nxL8v6bvUtzgHFG1LqKn79Xj8eQPpEZN+H4Buxq8hQB9gQNTVLFEl3pKLxhj22WQkNvmNFi0LdGiCHwk/D5DUn4X7fbmqzDF1PnOzM5hPfRqUhjpPNwccR4jC6M0Jo3pao4elDfS9Geun72aM0HhkhvbsM9QXzA7Gv2opuYfmYCD3TkawJ63+x7YL6umi4jGVcJajQm0an8nkFdDtDuvOLT25poBYdJZma6LvKLv7ptuzW31fgwRaWUYGgQI6L68AzIUq1lY3/JRx1wldHKnw2kwoAGIvQqUHUixDZ3ZgZMFxKldqwhJTpC4PDAIQpFIqu8mMZiIax8mn6FHAOyuEkpNfh1j0lvRfH1bhU2TCWhRzbOf0JDW0CO+CaU/krZ1wVZCQIvDwsWE/IrbI1t0SBxoKEFGDhKt7aIyB3Mqr3GGg1XQl0DSToQRULdikBSjmWUTchk1U15CVB1E692XrStw3YEA0jfyVpDCR2tKGi2Ln4CugLWXJEBeGiz5DskX880OvEET09iNVtmCoyTjAbKY33dMKpEc3T99u3BmhnqQaGPMQj00y/mrjLZEvrz/WUcaBqFeDwCGszdIdXE/gikx9k9ZOHKqUAaS5skH77CrIOgEHl+EIeoS/quG8ZsmcYD4LOmxopzW5smksl4qZLUI4CxgtpAFdUAKXsQENAAIcdwA5qpR8BrlFagwZZR7cxpEdTc9JpYBCzOFqCaaCQYdJcpE0+DaEIBqz21QqgCTBIA6U8MENtrwtNwaeggBa0bxCyuX7xuKLEbD/Q1DIWA0HhFG1ScNvww2bYdK4ANAYRB+sodwAFAclovYfhfrPzY9fleI4pdQMdIsgV8oIRr8nyGTEJxCj9HpChBhpMEKBXo9FwU8puvwidExiIclZZirvWn9Cd/ZH47srBfqIx0TZkyWJUz02WEBNS5OBoENdgR7TT4jNFztosK4KG90xLpUlvGPCBUXWCfMNS8wxlrESjj12sbcKlm77zzku4mWaEKBHKJP3lQNv3tRtTpgYYA9Qwweij5mhbWbd77SE6HjZMH068M8ulU7VShmEOOQBBjN/DaFpWfmjZIXuTKM7quMTLCECmlmbB8WFIqJY21yjwPI2HSihzLFkw9bOd3gFzVW/RAsm4kYhPFag5rCBlH7ozy1kDIgeOCsHaybN1uBrHdvpjHWhYrRxeZaUZExsqmguMDMhqpZTwdg7mFy/njL2S32uVaszJPi9eMhWhoM2t4MM6YAkDXnGPra3ygPuSAsFW/uMY853n5+b8h6cp4oGAPq87LN5onJVi4q+vhmXT2MWo5Qg/hF7M8Ip6dRPXcAXOcCHBRjkRmjcIbM97AxKym3TmXMSg62EHondaF6fx5xO6fNVElecKQ1I9kE6v5kKXa+5/k5ky1bSRz4UuzkOEkkF635ReWsFob6oNBwayAXiQLGTwhTaORO4qHGLIYfpyfJAGwcxboM8knDP5x+TfHBJn5MUK9sW2AlCTaxTptjPam1tw0rvOFo/TEyQiZsAr/JCTVDJFTFFzqn9SoEdVuE2GOEnuwkNDrgx8l02Dcgc2AJyYKNorgRPJNFi3xZmcA8sVtW0pLiippRmyP5a9Z3nXIO2IKNBGm/1dBBeuO+XAYH/G1w2E2uUUT7oPVevsFPaJIlJ3K4ihekCDV47CAKyi+L0QIBO3Esl3FJAqiGyGLy4RWjOpkVFyQFMq/ASWxYhno1YZTbYClYg4xH+VE6dyMkpvkbGiCH5pF2cQDEtzVBi4GroLBWwSH1ozOEFSvk00eGKyKNF2yfZvD+GoRfqyzp7VRWHrRzk7AKmtFiHmCHS9y9KKMpiGKWCZrq59hmKScj8cwNah+vru8irtNqFGMMNML1ylgKGi/QpHSTEOu6hkh/deAgQSR06wn1E8tyQ8dlKMgrZFXeNfp7MLVCp9LS6MtxPbwLAUcZK8gXvgMXoqyyBUpZw4rm+NJXyihhzfTfuj+gVz8WOyH1mqBiAHfRQU1P9tFpVw1gUR6UuPe71OPInVpEUzzvyJcJbRNCP3ghGiiCEgGJKMGzEKIbgIgjysEGo0sNHQobRIITS2+cbv20ACUqiyjEfgXmV9106nzyOH3NmEtvyZZGg9WpGUMPuchy4n8b9A3gjNtrpFgA8eoZHrqp1PPe0AB4FtpALSZfQ5xYCwzsQD5URidtMh8/I/U0USSjLQWZig2v3b/FCFf6P8DdGCLn2uos/g/fNF/VmiCJDBcJf2zXCACIWPmbI90QcGGV1F0c00gRsFRmgc0r4Yr7UDSU3Wn4Uo4wjM9hU/bXixhLERxkWgyu5ZEdhiYNpZ4KU+W2q2UnCRle2NEJj1LnGMtLtUwMSb4lhHqB/Djht0CAI6PIphKMFHYtcKhYci3tVvcDAST60lnlfKlouLqjwPgFk3ikATd5SSd493j31VP+CRHE83RxjUbQyVabRHjYGMbxcgzdFAl+qtS25qHWIHaw/UUhkWIiBnaCUj4wTk0Ji4EC0QB1oZ6CMx+W77ml7xuxG8esyWvNs2nn7tgSpEFJXWS2o4l2x3R0+ILps9QWvAJcsOAUNWyKPw7CDuG4zy13kJkay2MsWSWBbqJyVsbzFT7GPmOXeD3bELThh6SiTKqddYw1APdY9Hwgw3CmoPqb7upCvintu3+/IAxiSoNKByKThhANAKG9fqSX4GYiFCh81SMoCVk5+cmUmkj2+xc6E+5K0CN3W1n55WOyTyyFXOBkjvg+GkHFUP0D8NFvCfDWbrkPKwQiqWJKK02H/ySsqu60NEvdRD5OEJDWhTXJlVcvncXK43vNl4Y43TDNqsPnlOgI7K8zKjIptnD1nj1AB6MjkM9QDj5nfIXE+QjjwBhVU0LiykhLqbihR590i478O6SSRGKreazVAvZq8deSa4fZ0zJ78YLKQRphCN6oO2Ffih8bVhqQlPGfMys2rrtDfFN3aJh5nQwkVdPYh50GYJ0wepP9BZgteMZY+csWTc+N0TUQKf6jkNzFwRJemFHuCZaqyJ9Gp+3zvco8KK6bYc4m0BbistEdQF1t9rkG127Igu0T/iyYlmK52OhjAxR1knjDFyDdrqYWsHZ9zOo5qi2sGIGrLC4XxJvOpMgA4On7VQmkb44jKomYbSI8m5SoC54ljPD1s7uqyDFf7C9gruLGiEKMCqU7IYvlo6YTmkkmIg7fluj+aWwydz8ZYM9Lviih1V2AUdjDd/GjHfKFOI8NupPWjI5bAXzOIWtp1mQNE2Fb2ZkOd/4qmdRhHWMlO8hZGYTw4hh+gRKWlGHcItrTBGe6zkSWDVNkZQWxBreT69cNUkaySjRouHbLFqDG8jOeFOI61DeyNNWpsnNM0Ripq6LUApFLbXSB8mG+JXo6tvbPtAOY7YKeCcxM2UeEqhjgIagakaQJ+m8Px7KT5/kZmZJRDyTsqD0ISJVLUNdWrEL1JbbNPeGUxfpmQqT6JTOx8/uHexLQQ+37s+7nzMtwPHNw0Ly8TsLPMY2jWtMBi3m+iAIikW3pEgZYEcNZckzQcRP/7EwvbBFb78LlBKC2cjhIN15msISUS9iNCHdxEB4J67QIiou4axubMzRIWAjFPqeHCt1kMkB131ZIEyBYz+j5eHdRvQPZen6Jt1t4M0i/9aTDDmYT7y4EBSa26JPASgJ02XacgqG85FswlLzXCNwEaqwQu+Y6rdggZCT6+Bt9OElIViaIrJLRV1dfaMUlMYHsnHkclazcjLVIKfxmWbUvQhBCKvWtnPwpPPvjcLZaQlA2ZzRFA2CFQLiNVq6rfuIIUYdyF8pDeWT4cnOdvw8cLrXEtDC6dje4q72PpDgLUcVYBf7CUQiHySxGEryKP7Al6YJfFagsueYejkBK3ByCEhqx10eIKCEwPimxZxuE1LncNQdGwephbI6dJ6Scjo9AHznqKn3KbKSxD0uSN0iXSxYi01gYtoGsAqBO2l8uHnDuSDq0gqGO5W9TR1+XDSCm9uXOKVIdMYn7zeDOI6XUiIBs1D0nvlU1TpmwehMKT6US5IKHpCTzUX7qYyTdh+Q+hlFg0yPl7Xl30xqMuZ1hiK/RIbsBNbGS4PPighTSJh0G9yiL41JJqsPWi5dlmdr1+P3Z1fVkEm8fBcCqSpZDcFoidesMZiDGIURVWhHl9FVyfyLwkr4pMfBMW2NIqRvIVi7yKdd0Jcv4IjlHiUlq3oBz6najZkLmS3Io1kEIFW6KCpwfTU8dwck5S1Jhyl0kOMZfv0WKKtdhZXh7CT/Kxxbi+zLxBM8eAsKchYlkh3/3zAqslCVvv0CKVCnXbGxHqEIhKcVtlALTBQEqWEj1n9RBbL1kSPYRjtOL+ZppMTMv9d/F0EnThJgO8NMTkNdbVpigUpBuFWy9cVg8Gj9k7ZE3DnhO0pNWkUOD0o1Zzll/I6cZCr4gP+JLWVrb7JBirqP20gBL1XWaAk4Q8ZJMxTFlEYf1D9Px+QZvOUiRYLnuNbm1KRlSMUUDMf3+gknfkwbey5Btvx1MV5p7dA0MnDnDjAYUx2JYrM0/ZvuhTQ9xeNetTy47r1DMl3R0v7CK7VPcIUlCS6i59cy4dlvlZva5hHkUsBp05qUZ6ibnG+CKmHFFl5aFma1NnZ3sITkfISf/iB8Cf9EiGZJGaerwJwSMT8e27f8kb0MhGhmnu8oQa6JTgzYFBKY31lfyvMVc85DfGwB3g3mpngyfOebLPgMITIZ/62tOjunJQRlWo7PGb88IEERy01U54JljCfjBMAOfRVhR8Rc4Z9QyxWt1d40iteoKhta9RN6Eri2ObdidXLY04VKogPMkzmBNqiCFCME6NY/SawB0U0+2gR9uZ6hEgql94w7KORh+vjJp6vaKnpZDZ1Jt7DTy1FazGaKcMfCG7DZ4oax6bsLU0pCOvtvXC5zZ6NEysLPcJEOs7hFJ0yGrTw2FtNcEcCh16wX1sq1bFKGNs1a8fEbYW3AuZhbxKBI/tPc2r3qgvwr4U0FyKLfEbc5ztw2S3qwWg6HMCPTpOBxXlIQR3EEjSkMfRZAZP2pVe+zovDuJ+yN5yOLKdOB8CEIRadFPDHNTX7PUKKBZD2gh0khB9Ium+JTIzro8H7cs6zm3L9y9QTN0EodI6zJjnwUqgK10HJLmpD342Or6M4i0qWXZcUoH0O26Gwwpc+BpZc/Lq3soUqWxKUirsgxWTH3SVfxIJoFpm8KZfLSIqseY/VevCjIV5likWWTNhBCL//TYJplWl/dgKH8onJ83SZPgo99pQTGKxJQu3337FJYyUDTB8UShNAUBGkVD0jqU8y9TDVeMguyBv8l5Qcfyn/D7Kqd2mIaRf23PErOw4qlIW1ZpA2ePFMDYkzwXYU1VYiVVfIcM7/PMxoJEHBDcxryp/ZCkOqW88swNINgUSWvvMbbUVeklVpd5KoTW3OkKJNaVms9pAckZfqiDXidV5cG3FDZXbbl/DC6y5DHVlDBVz4bA8efiwueiIezmLOqxrIV4yaptakI0/T73/zWGrEm5OFdrFYGYM01EKV/RGDR2QMOVke3WJ11/JS84qEwAGPwOpq76nrCtiHdPuiotEaSk5TR8ijiPEz7S9CR+mPGJDQuK0qjGJTMznY0fRKzQfZMLJ13tWqm5aHLgi2f3yR/OeHubMoC6ydrE2M0Yo8tlggt3IRoRCp9+2KdvviceGpiPTqk+F/g92jpIreewJHjsFXgD9h2eVMcfoL3sIoNU3i4RIWsqEBAQniTc5v5OLf0319Lz5txpQ0GmwkrykuJcE4bDcI2NnjarlnMuhwX0/dw91cc2PchFJabk8mEIjdSvCay+Z9TaJ3+I/WYLNWcQLzaPFQlQSaIx4lTQToF9mFhSGI3P4eIpGV5orzRlCFWCuSpslDC/f3HeN1AipauWxpAhgqKB6uOJ/ObpzOr7Fv9p2LQypEjiryqwKm1f2nKnMXJWRUje/DfcMJRDMnra7LwVR01UzhqVDUM2PWsKHvHNIob9MttSJkUAsDqFpVeIV5tc1OMOA7T1qNZJPy8obqaSlNxTuI5chpDSG1bwZ+YGIVdc0GckIpyKUJG8xHLQ6qCbQULqTjmq7pLRwY7NX4mgUTOuxtonk3/IH9uijUSl5dprDyyZg21EkXjyIhrOgjmhoQmZJOkHUDfD8IYgmscdgoK8HQFN6evxwvdEKqspYG8XpdQaL1JMELYhvlOUFVxZ/of1BZMctHeS2JSSLHy5pop1cXsTjUlK14moglKkv7HCf0zyK5osTkZrQjuiUeMEYBUlQJ363fZKq8ElpQ70A9XpHKQhMscSIfyv6GrvogyR4F6ikzwmlmmFqyrXX/KN0NrCcTTc+3ZV0n+1be0Wn10sJ4ezCd1QqLVQ0TNrk4qMqc8sm8/ulsJgyJc96yZipf54Zq4aRxk4JwcztWYUhiINcPhgvGLu0Mfzn//VyXcjQOj6BFGxvZ39KVMopOj79ha/8hoVkRyebj43qNEcaiScz1XeLbCR/9hEGSyhLtRk2sKYSzciuVmyzTfddXrm0nyJaAhMXFRu8ZRudf9Vf+aDBkELTCK3KdDf6SsYkSeeygd/MsiAlA/+fmski9uJrk7A7zGfKzt6i+/h6S/Cvns+QcVzF/DAiOgjGG8FJG6Rplkr3lEwi6j7pgS66fjCQpEC3KtCBDEv0q4rztnRoiowe7D4boH5u+NzOwWPB/cclno808icFHcGxFvcCTIxUE2eN/vwCF0JQxjCiEdH2dZfwtPuxreoOJ26hWEnKaopkNkURD8hoVkajNfpARD5rYNUJuEowrJBFsUvWipOihaFuTvttA9Gf5i/xWjWjBFZ0xs11HkoQ7tDauSL/LRRUlyoUibSB5w2mk8PXEv6zwhm9/iVajhQ8WWHUrQS2rEx3vwDH64LLxZldW0joZKnFQvZFlKqdiFCDg/DqQxidoIGnC0TGMDZBKdyR0/MP05aZvMCRxm9/e2iRqx1j2Qlqx4dKkq91FZL2YS7yeIUMJDSUgAmul/xhut68eU1aqjpAbQeb/w501T4RfFSghXavqfXgBGjLjNZarIfffGr6sXc8K+LYFt7M7Wut+8O8Nqy2BSXrkx32WnCM4gZSM753O2SMGKXVwrD4jiaH2yy5lavrWsRc97kov3jDxFA8wi4unLuUUnXU8tatS54RlVM3yTBkizX215g4rvzc/ElkJUk5Gpw/X7Qwk1zKg8WMw2Im3gpCzQorCjdi6lewDkpbvTr8ewuM16mhKc2puVWxeRJlS3G/6a7oAz+Mmn+V9lprDl4QawK+VHHdnGiCxToMqKCcjDyZqjjM0Rj3tJ2yHA9O8YzMMtKekhlaU7tBe9Qdcr4iTJ3QhxUZNZWsOvJTit/XWnMhOu846bjvvfhcTuQlMyCwVprOc/iZGU4HsIrV7S/hm8vERlJkN4S2lgOjIkFE/JI6QO23TQZs1/yY1MQSwwfSmE6S9R7jWKko/NcG1EdUeEJ9jB3YnaJNqal6Z7zQabaL65G3QUd5S6kISQvnGYHIsxzOhjkgZ8427i1y0oDNIfMyzWn1eJtR9lAWEGJghmkV7oyI/ncnSnBFhpji6pSMJk4ritR4L+c1n4Dt15UKpm6Hzle+SCnjQeVaLfhfOC3mi6JugViPiFPc3nKYJ9WIxChsxc8i7tHPjUUO6DtqBulFufbJYwhGGx6b+Wrb1mGgX1QpgLsQRGjrCjTpg8hIxidVYsOvDrnaozkKNIdOUmuHk5GHaxOv/ZW5ZApoOSW0yyk0Bg61JTLqTNbFV+OXTvm8CE0UzqgXnaUNho1TTYoyvmqvJEbsC2gFsnlTOilchq2SIU/K63NqDN1nNdwVXEOzivR+OdPPe78zsKY28r75DN+oa604KcICvMqxvsWJ7d+sTBZbmvypi685SmB56rqfE3G1/smbwyJaEzJcvDUobIdMENwh6Rl0gEEnVju5Rlr7MSw5q+ShfteVeukB0j2Qt36zE2n7MG9m698D7+4zop8GoK4FGJBA4XlBzGTgFYaFX5xWG9i1nS7mO8rEOUP3HS/HsvqJ/aqAUyBi7iaxp7JWVSQXL2/WOuH2VjsjZrjCgCrwc4SeSLXrXFQiXYCP5RCCCfTCQQQp8+jbIZkk6dvZGpf3gcKST1tKy2dYj4/IMOi4B9yux1U0pnLPCH7Jey3PUM7kUnHVJg+RhjGn5zGr9xWWYAEQCkL28rKZOLOnt2cBqxJwYlzip3LlxLTsuyPEuIrsRsCCOSTzbMpNVm8p6TtmwHqJ56mplusTdN+yI2rOmhr7nbItQb4QpiaiMdW8sMrtu7Nas2TkMuDpoUHdbrXVPN9usMBo+kxSZ5J6BG6xc7rlk2U3WT1nq8/ucEjxV1ewm3Mw7tvv4Y+qDSCcCZP45XI8cxASw8sfm24OGsT4Xhi+ne1FIjbzAiRlgi8x5JJMcDXof6IXszOOkheivdsAckHFEVQ/pmdnC6zVSjb26MwORLIp2HIVr/JNwitjkyoO69Wmu8mfc0SjqTyyaFaKHVuGfTJMJo0WsGXiGmNJNgLLmvi83eclz0SlEsSq0/PpTWROY9/mxRsV5RYGuhVfaDksJIgn0uFiEeJ3dHpV9n3vBqcLQKW9pujGFgdjs01DvGViqNtZkpHEV/d/aKbMGqhMaZiuDWQYdjTXZNXbweXqpQ2UsKbHYVwLRmFdx32Awiklk3xexOjcjKNWEOSWNBY0GmJqY5/0l/mSg/d/IXJ6hEcoghiHKPUXojnvYJZcTyy069SuQyry6H/5d4zW+EdsBypDMQBxb6NJFlOu2q3O267+AVrugq6b/jN82k9CcZNJRVoia4HV8G7AtkaOCfxFefLenbgZbIsUwdCbDfFyfvLVLP3Vci2pEITsZqo8SX7/5/LGF54XlvVy1u4413V3RDt+XMeKK8DOgGz2KPcNlGgTAE8R7uJWjoEldQq1bNISnKhkrbqaspli7XZ2ojouDapoIaxa0bWOSbo5pyKtN2qhgXwqnatdjQbQJjlHTTwTYl3UN8YhvbvaawWtwp0LQfb6WqRV5WIXfU0W7BS8fsQiBIl3tMT2ajscQGW0cnVt5I6BMqInaBrsFmCaSyKIas3c2Mbm9eOR0y7le6SNxkq2Pq9qTCSlsqi+RTY1HIrFYcvfiEiCrOHHowiQ3lKM39nFeAP3FfFjUWKIT+tTsq2YR6Pu7WE0vhzlMjuCTBuZ+S+4yfzJdfszXV5p5dg6fWKyRpyf07MMaSTwahyhGMzyO/kji2MqnWhJySZM3AbA7fqyCa/JVWGshnjmkyITiGZbnnmyhRNNfFOGmNsUIueI5oVqAaIHsWTsXF9BTCEW5LXH4XDrdnxTX5lcm9QWeI1xLClwmNm2xIbeU6T23zEa2M5pt5AkikqsyQlqMiI9ESc3ZB78W7H7lpPjuXjslCHEj1kxVS4/su+MViXEXwVhMw+9RJlM6x/x1Zn7JfLeQKilwQHRhyolFMmj3yMyo2sdkewzg1QCi+V8XGxtdiyt3CE+LZC129WT9Uo+Y4C+NzYgiwjp67NHRFfnGVwpjexM76EqTby+qRGgrYqJ9n0SBhSqy/nhmxXOS66posg4Y8QRGDh6adIH/qVJpx2+CTB8eojWquZJU11B19Bh0fADYUbZcgACnz//hZqAIqSgSrBBgE9AIm/oT6p+cu18/6Tn+jCJofAyFWI4A9izYx5UFcu5SbqIgQSns1XQQR51cKJl9sdfgTYJNJkVkS1wMcBqx40o5CthtbBSNJRT+rSh8POWzH+HmJUTPlaZoZMmtw5hdxEiYkpqxEN46enG4X+AILsT9sbDWvEAKqd1EHAhpmZulS1saw8SFV6qNHzHIzLxRyKuTnQQUbJeQgZXJG6CqWLI5CTOlSq7nhn+DUMlfelJGeQhsXM3CLBx9vmJsRcRVPRuSOUqB1Wasw/w2hqKX/abIl/JwNEB5T5BxW9B+MuOv6+ivEIvQYE2zUiqf4vCZtpnurZGaWOKEQfjHEpCBMRJNmR/he+oOHlIlXs4Sfxfi7HT14ujESMkz/iKqmT+L5Lp/0VhlrFT8yP9gh0mxe5NR7pnMnejso3Sen+9bUVgipJnyX5r7odSkiIx3KC9VRliqdscdyXdEVu1ThC+fou483aG3n80UnWG2CsPdbCkTsvIuLeZBcUbYU5rxNXtKutEy142srcLQrRHVavRqOzXyklVqkN3vdYj/Hg2/xHVEC+yYMmK7+wI6Z2PUX/oI1XE/L3P7UGoyt63bQXV+lKKUqniiRhEydMZyF1v79Ha4mpEVZiO41+S73ATAOwB3BndPOX2ht3EIHHj9jAHsThpCLK4m1juy8dC+fnG8RPKuPdfhWyOKnMbSlTbN5iYVuvtuX6ZKpjmyR2Ck6scktl5PpckRN2+jD8m46WqWhghOVUqYJQzRBUB1BeRt3baU+LUhUZib/AoOx/1jugO0E7648J4AEtQpoSFfvdukGgnENLVh8UaIbs0Ia40qLDGH6NNIZM+jn46pIW07xSSy4jTLoMg5Z0gf7hY43VcoV3L1Z1KV81Rn1aVyzC7iTDYWmCEavQ0bxCM/TT8LuwVWPYqMQr2nV1BhlS17HxBhNrw++9J3HwWzw4hHr+uZ2lrvIz6oyAXPTiu6rQI31kKjQJlJ1uWBJmoqCUAu7fboTAfOosNWv3DEdMUlX2rwaF+Y54T8IqDajBPSC/ecqAuKQvTqzB2kunnFQmcCnvYEnL9i4f2WQggaz86l9whiQ+7ldzL9Fo44+5klCjnvDhjQS/ZaHidRCcSWPl5Y43r7EoVHf5LvEAeoYSsimXxBj67PsOBwLnKrbSrhGq10NyknDKNZluLKJ56E2JTu3pqCu9V+ALbMPR2R+djYh8E9LHpFE+A4rNFRE20nmZxa6uDhiq+AZ5t5IB4VpClA1FDpe7lGjUjKZECEVaoozoLmmCOCQ5OlD5qNBWwcplXLmxQemmhXm98GUAFnZ8oaygwun2Lz3x3xlzlFPdvrj1CMBtVXpvhhcw33DOeqvB66WK4IiWi5xsp9FbsW7XfGrGisefUnPEXs7YmImdTHd9IVaI2nqMq1OxlBMclI1fdtkpM5VjQg1WIYsVb5wvkdE9S3uKhlbsFPQ7lTttIdPtjDhclX0aPKTOUGBqdRTkBlKt1iLNV5IZ2g+YISeAlSpCv8ZbrsXSq7RJftKxRFSXGWjWAYkXl5WOwn2fvGZ6f0WwznWWTUYQgkUNHnJ5RLFaClpKfTlOaWq0/rpKh2Sn6k9OonbyYU27n6eugnGzg3F+35qfnOiIVYupXXNtI7tTpFpqmCpVEUIO1XpqXYJ+/GoRMaQOudTxbSbdpWMXm8fUqOf+0RZ70UTXKTSa2sJS6rpBi/ryfGe217EfruiVMgfRFw9nrxifO8pVtLpYz65qcTVUthjfxGxSazo6qyg0JtKIt4LVtg0cKXsjtv6kbCZVJq5clppQl4W8c9hTf2WuFXVNyyvbkJnXFLkzUc/krBPCSlskMAOSM8Ksy4kXBVfFTRoFWDO1bzEgRrj9ADtPoLg/w8nmr1AZxvMZ9U4b6eelOpvovPPjlEi4eC4zYt8XmoxP+5va6jrnnohvc1fx4JEKpTSdJZaQImm7x8HFll7CwlqfDOX+r+PsRFuJHxzdINvVz1zDGfV/U4OdOt0dV3tbv9OBIcsKz37PD9+dg/IweUaoDEbQF+CmwUECaRHqouQsPSN85XGOXKpkbbSucwXYZc6JwGTvI4ewllpdDe/pieYotpw4vHBHGL2OKLN1kB6E31IoKv8fVkUQ+nZmwmLmJl6aKoRu/rW4N+JVybGwXGNodFsUv6n43w9g9bOOEzjORLzEFtAb9RCxi3havSnBL/o0mYiJiTKJPQcOnbcAZ35mjS7TAh7EyL3pZ7sloP7yRR/r7QaE8wfXyunnJt1E7uKtPLEeH4s2d6MBIsGUn6hVy9xqW9AatLoVSewq0pBFFJXFSgmHvGBmxNTEmk/igHHvszXdppfDpApYm6zcSV+bj5AlPhZ/zoV4/gK67IaoDFehpixka/bqnhnniVEB3NC63E0hT4gBuvyChUdo2s0MjLLCMCxVXDRRPhAlUG0hl4l2mGgFMdoeOthWSo4oW0O4C8x6dwrFNGafGO6yaKfJscaL8ikw1TnwlpWfekFDL4ldQzjFcUATkKXDPv9U2dm/qK0k96vBog66YmM5nTc31+b6dno6qdwOFQX0tyUqm546G1ZFPNxIg1XCTUwfkXvqQyAmMhR4E9FMeKLcDSUU2X8qWByEFMSYkTQz3GkDiSHic8GJHJyUdjOf5McVcQSScaR9ISpkSwXZnJqHIUY4CrWyQpeSIhK6wXtQuoXhwkEsBiQiNfvwJdOfq0/HxTfRIHaAlZgUoOlS4aYm2tF/mHMbtJcEWCZagFdLxZ4VhaLECPRioUOMYdsDBEN5wMSIR7ab4i7Tow90SmK4VoRwcwixA+nWJLkxvffKaWlUjbQ2MuTR39H3EBklFCeTezxRLo9sQiGdQJ1CYlDF6qnMYij8AIUsUqFA4QDXoho8t19cP4bKqD1y9o5Zvqlqp98sWOBVm7hrDSkDQPq4unTj2J/e7zghQDbFvCwx5w8sM/ITO5DLe8DTSMwnm6wfOlySciUAsyGYPxzyWOh61CnmlIWads8U5yYgNjgsQGMSF2EWnzFX+81F7CNwj8Lzw4TRdhEhDwFJPdH/CdxeHe3iPKI1DExdBg2IU8STxbK66VQFegqUTAEYxsF7MqlkGSK5GZ5KOdrooIO7Q7/w+GaYUnvWe1RjPozAWpDh/1jwkQIKed/hHYJATi0AQCRSQ9XhoVYqBhj1hZJEiLvzKlNFhUyVPK0CjwTtXLmLWpfkcwLwCIxhlKJOVYNn64tXzl6DULrI8R57dzJ8NrFSyH5omslCZQJqkF7rTR16IdeRrahhrYy7RnbQhVJdxF4G8IIKAJrGT+1FjILP0wrKHufhv/AmwrajGmROecMDbTIzFR5r8+EGCuzkC9h0y/hBmzkyBgHOLSMwr/kw7UbzVshRhFQ6QoomRQZ9AQaG1jkV6HFw+nOyAryrsZ4cR8LGRFyqBGwg62bZKR914SXslOp45Yo2X0Xa7hNzOkVOJuM1bjJh7pA4ZXerYekGUjLUXTrUAmtlEmw/9uCSAI7lRv8XK6On/IJPLjFpPwLYtBm0/JtFpzjhWandaALABObkQYsQc1PFOMsaUuUX/CAjtr/dLjcLNA0MPRi8+kfoC20ffE/C3kToQgRMGkpNHBGTbIC8WNljFdb+Zdk8fxI02u1WPujEYpzlDiOvHWrss2toDQ3tLMRlgmeCcUdrOk0xCsAujkOivV1SUIehq2xAUCIeXXV8Wf37Kwm8FbhowI3JTrddy64DKzCawiIGbL5bkZiRvc+qobTPUEPGLG2t3KvCG9cDwCU2B3U201i+mkm6hAbCx01KkmoYd0idQ1iHuGkASelCRnfecD+jVmbjByzWiDvW96W+JxqAEylGDoeDaHq67w2boBAdZwIL8BAy9T5skJJmFnhUTHUe4Aznf68V+9cE78EO4Eu6U+tEsJHiHD7yWJRFDlSWM57yVv7kpnQYB038bmSAVcoxJ13gf6aLyzcxvAqAlxob/skmnAayCDmjbdcEMzGIJyNzU4Pn6A/oUQnFlDKcCMUpEHCiJDSEauP2Hl14u5H0Gmo7rIG71HjYr1p5WyMEex1BLLi30IzsB1IoycYmYk7GmhkO/CkhQKmUVCPpqbrs9EgrBwhM4VNQkxhUR7TjeBT2xqLEtHkSRLzggfcUY5cUgnDrjPWuChSGh8bfz24Tiw5iiKsy+uavSaKjKFbhvbSM2KELBqUZOdPg0woGdK2/zCDXLh4biBYuvAsZ+ymyxRy3UAMoF54EtMjNBQcCNc9mTTyVP42LVpMQObs85rsl8xTI/q7ArD3IUeV2gR8EAnKba2pS0fK3WMRQ6NT7mvRFezFYr4m1BHoEdgNgt9TtSBra81pwUFB7igzJxpybCsA1UtBQYjIJi8BVB4oPdXQdRFfZML+hp4kKhQqyKR/5WVKqwekm4aUfZldyS+Xs2cgKwoCXg2ulE9jkB8eIHyQebEEKs1PaBRE9oEOpAIPFB8dtv4kwo7WtuGplGVtGyz0VwI2Tm0lAMhlEgtpUgAzCrz8hpAueho6VnIIOrzziBXolgclnuK0tq2qKBuKciY3LEuJ1PROjKxnMWyjEYMVunM3MVXkC1JmConrUsFGugPQE+C6rQGZZ1RL7rXil4SQ2Qef4JQR25yJrI/IOHBZJkDiCAhChlMzDPWzcRVoEV+M8DGV/1GwgwI4wy2V8BJW19/WgiIknZOokge6pUPZNtRLmrlEsYD5WVoIVh0xPTE0NiYH7l2bHJKRfJmh+t1jKzOyMharpcmZ+YSEWtSPbccHS5OmSjAjxhIpR/05DukDLW6+6r0cDC3iE2ytBTFHvQ0Elt5RihrbMqBwFDiy0leIDcG2IcVCu0afNz7ooyK5X4089F2j1C8lszGK7/A5q5oVGaGvgj1onMRhTaUWmClfHDija6kJ/WapOEDrItHDd7oJNHp3pIRWEdLzr6W51r5kTWprMU7Myr+z5rNnF50s1+FApHR18f34AQuZAXsBBpJK/BdaE2LXhQjXBZT0iEHgZxbK3Tn/j6tOGtpVrKK4WY76m6rzSCCP6nCUf1QLNT5iyexvkRAIA99DCS+bUB1pyJlWSNIeG21qdg4UeonWhFFNe2EkxwGfltNObAKNotTz2sZzfj0x9Q/IPxvM2Pzt2DBJPmLgfizrLADGk6GGsK13al3eCcm6NvgvXIjpwdkeAweuzbKICb1XCrwLCiAajEJCvJaWz+5iE4nRZtiq4DMUyFA60SpV+rEnaLtj/gCbjagl4WIZB+AgZJWsYtgJF4t2PQh4ccOxvxW/yd7ZAiuXihLha/D4u1bYI5iUCWippPH0Gqe1myxEW5iVqpG+puGKnZouIJFPgsALSAgXPJHQmrNXjICenRU9brhjY5aKD3RCKNizr8YRVfGRuUh8INJWsW3AuPosSoX9O1WovzIs30IIYV/p0jugKJBt7OOEIjNMaAy8RWgm3zL5zLNdL0hVwZcaK0HecojSgf6jRD3lg4jp+DrsVeTUDavbE6FaAIe7jOzMm+mRiDcmoHJIgsYschwt7Y1wrbKlS1BBRI7J/gyPqKmOgQuYZRB3eI+/9MsO4b7HppHZNAgvOlz0rMSSa4eWew7LYpOOkMIS+UDRJ84tN2RQ8r2SRlpUnc1iAIwTbmFGD/yHCmzB8C057JloorDRBR+gpcy/pFiULtLWCD285mQBk1nLqW77hxIvDWhTyPRLO2xXmMZd8glO/kvp/VqPnM3DXSAqQTm/YjhWIk9lsuslUE3KcYpi+AZ/69cTdjizSiYlPKnYB4FYRKxC6wlUi9b5JDIVXi/Yx6FyEXZukGUhpECQ2ZpA4QZbzHbpYo+V2a1xSGrJ6zN6Dm29Es7H7YRQ3csfLSAZlLO3VFkFESJ6CfcQZFwqovyX0L0feLk6BqWULhip3KzsZIWhhMG95qaBDMvN05bR493nisLPKHikJDTBsZPLARcTxb1hu8zW/jvqPezLd2wIREQM6U9W6mTtksMWLP0kEqi0yRsaHU6iwxs/PnqkGRwLAMB8h2ZJJrAnaAX8mjzu/RPdHTWiqNI54auTAp8Xo7RyIfyWyCIMgRTKrXcJkF/CnA05+s1VSU8Hi6/5pJ7HHBOYIRRaIcps3AgCzFLwYghprOAbxbUix0owWhp5KpNv5LZJ+cD3SfS89I9HmYmx0In5O0bX8oRazouy5EnvIe3An7hFdGkEX0xKjt0Ef04b5kj2o14xSozYJOFfhF60B7A7gRz5x2RfTDDxJk0F2cJQhEdF4zqYkDTbtlEsspEHTAiEO1MEa6mbcTQ1NIY0aes6yAWg1J7cbML40PLEt1YgGnBJGz4LeLF18GJO6165RvQk+V3TKeIfZyLww2jvAlRbK3+IH9kWjwEAtqa65EkoKcdETaaX1NfuhCVBPjPX2L4T4VG2/By7ixh7uZoXtpo7YESOxpU5SzrwXRWMarSQDE++ioeLR4NiE1LK5wOOu/cBZwdMxQaTnS350mY/wIvKZMedHHgMZ+ps1bwlOr3bUDBHirpHO8bU71sCJOd/J+KB9FcJdLla90anYBPpuO6DVPhiM9NIkgEDRr7yGrh68tNKpXAOFCINJE+brkpWI8sBrhFnKV5+dlJ15OX7wmE/YO4BHTC6/IWlVaKXbqeqTqiFds1qc+Ld5REj+1V8BQDC9WfHPR1XIyfkhxlXZMhwjhJxNaJUi0E5UmU/lPWRMQsMqxnzb44W05YYKaCQqW07h9RXBWTWBQrOXGHCCdrZlxNZqcuQvRAeCATLOgTClWG4JTj1xKCZWydhaLWElpRmOMvNkBIHSyqiKhmX5VzzY5wS1bJTlBxAJ2MOZwzh5jqo6OW0dUik0jEVE/o+XP+2SllNiZ60YNgUDnrSYIZIMKJTYCdulilZmR2ojTHc42I77guzI0FFKOlhbsrf7zWvihfZT98/CkYraQfJOk/99vn0wyTo6RhNh9uGei4xhTK+XVCYrvDUMuTKM0LGNNq9IA0JXEjiWiKgxBMu8xpk80+LfK6bPYYz262SlozJYcFbfd8euFkDHZVDsUgye3NH7I9VP9JqOaBm1C38XoK5L6FjsU+6b+w85OybzMsPSQN8dwU00v1vmaS1fn2ucVQvM3/CkppSZ1zU1VhypgabUJJDHX246rFbWrrE4la0GQFaBRAsi8CRaOm75wuDHN/brwveNlqnaLeWrzaYnnwetWxl9mPj4HwX6xTXqOfbO5CtDzEuMyXHfZcuSUvPjI2pAM9hajDSSTFsqkp8CnJ/Sk+xXpRASRUwL751kKpESNCGMCGurBzRbUvxRLItZTiHqOh/+YpEpBBybVDxPvZZKzyYb2Fc6OmeVkiacxJy3SBSZDpF4I9Dt+MpERldaRjQMHy0o4s5XhXwo6xEpiazdfi0UhBxHbMUiliOFzRmtqSpPqBFPJptVwrPTKAp8WorFxhiad5UkVCDc0UK71xa6KJ55ykrU352BBBzwkD+TfZbq7JT+HJLJGb9gTjtfiO3SS5NFe06noenuk7sl5mWxcS5FK94zo3tLZE7FZRsFJLpW8wTX1BJ8W0eEHjR8nBVgkKWCCCtfZOVBJJ9hBEicq6fRa7EExyQBFZEc3ffTX6FQDKlK95Wa6KAQPLzp3e8UNUv0yYzC61WQqPCVs4UOg1gIxSNapMRrImUj9xBtlzqQzWdQ5eeAk4t1Ubz5GlZQpBa4nnDnG3OOcrW2f30EifFrcMzQCu/L0FKv1qVwIUOpaDzvGAbs145McPeodMa40gmTYS5eQsBUDIi9lIilzrZ9T7W7uY7fG98SzXqCo0X2sG7hfxn0voujzyOyRI1tujbs3GcFZPt89FjezJwglNGxJiS4KX7cvXVHAgmWM6tMWIsDgr9o3avnaGvcTET0cNnu2fyO/jEFpLsX/Z93hzzLnykXFsIgRCzR3GBJ9hKB3JwfhDQehm/fxT5Vp6bUbt+ruyydVbcsNzaMNrcbIZMHvATYYoNqWQGU9jrbWF6GktbPkTOS+7O5mE9/kGAw/UlbDE5QSZbcrhTKTXgyMgggriuP0re48Js44xckAwKx4PKfs9DMfeZDLlFgbmzLssRXnNbBWbdyZDP0ORRRjWFVlIgmZ2kLOv4OMY56wz9AZfZRguptUrpFrR7zTEyQTaexCY9CZuztqqdxSY1cqdyLCWL0OMjnNifbLoR9PkmxxGw2gUJ4rIxR72HT8SStkEks6y+XEUY5+wtTPSzU54ckAKpF6qxVAMjTqFV4xVtIFy8+SdMu/iDGRjIV6OzXNcG/ilE9IvYt54hvzwVsVx6Hm9vPf1WDzSd6OSG40p6ll+v7pVTWUsxqLesCNo/uhMG/tGenvZ3Qa9sVy3n5ci21HikzY0k7Na6AFUE6GDOFp0SOrUnqvL9erSyPCKRhvG+zJXAZnirdTLvS/urhVamxOgsLQ/WiFJel6VY1aaBnX+OjQoLERewfByXbb5l862HdTsZa7XV3TZ4R3MZwZVQSUwIw/XBIzvivs6fF9BwkRRXMBdpdtxSekJVqD1tivkQT/J17fnjMEsUJKkfoPzRLDYIIEcsrgAMfRyoc1DMDDrPcoWaKm1WkOpsxgz6BVtwqfEg3Ws6jbPICti0WbDoBkZMHJalgnnQg46ePEj/QDG00FnzLoC+vW0LxijaSm/Xl6x3SAMoeVEJoxftc602QS2EO1OhnpbBQVYDk1T9PKwgDEUaVpOcIQrj9rX1fxfacUHQEhZG/8f9jb8/gDwOcuH9kaPIvFIFbMM3DTXGwmzn4ifvSrqRZbTxVnQY+bM5rwlbYptN7GM/NasQr7b60vDpHZ+4t5rRrjcnlxHEOE+sDqbVDsqra4T79RWselScLbps7O2WUIqBaiC9OVNKtDv1AQCRZI7kpMKBNe/aUef2xCS1KLUXac/8SN0mdN3icCQRdGxtLgOMPE9mszfFVmUMLWWguQxN7zSRGbFIX8+kyEvEMrnGMWoRYpvmpbCYBgyq0hufdlUVcY7jbXJGNe0iKCSwAo3LsjeRij27o3T3gykcUBPLv9lbuQe6+0NgWETV9GGiXJfjyxsK6WpOIXQl6mCv/6bvowAZhZwxdeW5n8BR+V2cHckLvfFYDvy+NZXPoUqO8MwwqFL/23U1AQ1NaiLm2aFO081v0iTbQmonJFSXdU52T/kn2TdqHCO+7Lhe7ISLHa8PeiLUjB22exrXFaBjJD7jlpFReKtoP/D77phpIHfrPm5/JwnQ/Xf9cuqWUXJgtGinbWDMXD8ZfUpuu6S57At057qm2sxJXY5bFbx6ZJoqeaEScN7V7thzFPhf9pXOkNSWRB23VD2XdDaOZWddkKn161vazpz0Be3NErOrvttRdKcb0LYaTKd/eW/zxE0A5nkKdSwgyy5g3T89ZJJHBwPpioQolISfC+ZyTJyHSOjV5aWRJL4voi5urq5u2GTVjXLM5gbcoyEawV3FDqDTBdosphYgvtbZ02jafwGU0ijb5TnVWWNFpVgq4i/+tqkgSEoYDZysnEUo9rjLNs9y8gy9mZOf1HR+su4S6HPdsCRRSFHX4x2FLiTh5UJwn6N1HTpmNv3ObNmmqiyG34RhE2bAXr4iRaJkFLTuMo0UXcJaUl5Rc6vFHPuR+X4xIxEvBcrxVTd+Uvew5ZU85JOo1COtUbWrkfF7E6MrK1NMSxrUVOxr5iFrksx8efNgJxiqOkog81SKS8O8F/hK22CpBI2uqmXBLScDyk5CYrajQcGo8ujC/5OcjRNhWp7h9Q6tNjT4iOxK/Vvjzn7hDkvRtowMdMMZ72jbjBKZm0eSj48h+TIZDqLKvWUgkbJOC2H11codOliBZ3Z9IBpfzl4xPK1P9Jqx2RjG1TmIQbK4Z89B7tVRvGiebq35ZEPevR4WDkrzcwdeZOFp73VQQ8E0aRoaQ0yw55oZidwIwYc8VGLsPhIdoxQmKANSIBhrYtX9rjXB12q78nkBifXVzQN1521oe+k8UboSHOJziF2Age2A6oevml21lS6dm1z33SxiBuNRBnHY1OJhUpm7uW3+lzACEZCHKBRpd4Qlql6ccDfgoutRzUqfiLjtuZNcQchXP4GINCY9DKxdSS+bKpb+883LKfDSI3IWa50Q9UAW1vt0msYgYXWqzcOssBXPjHHV6AXEdd0+rqksnrVpAtE/g56PD9htp6vJR6sCYi4pNso3JqXATIoElMOf5XBS8rrC2HlqrRVfzdEqWQ01KNVK94KhLvCBu2H3nqNFvZMXmzGx7SyVBLEEmGnlgcIvePAa5HMxwtPNDzysJU1/wiE2Ygh+N7p/6E7dWIoijc0fvdju7qp8nt1xm9hk651+J58DaRslWq6fFWrtz5hO90wx7Q241YL5A1KF41UkWfEdt2gIqIDfLWrcvRBK1dRzDvGo3ie3403J1hSmQjQcQIkShAGtKQG7kpt1LE8dPfmaQiy/MJRJZlAC1asC6UbRqK1qF1Vw8QpWJSuwxX/IJ76GeCuFlo04lLSI5w9fqihNixw6b5js0ZlblI/JWYTgU9OGeWZKFkc/6SySP2K+x4/U/9JKK5jkuoyS1qQciU8lWRE2ins1jA+dQWrVLEnO36kD0Y2JCFpJ09W5dhAQU9ZTjKJkXDN2DYcsJPO7MFfeUNsaiazBm2Iu/kKLAWX+XndgnMpxl2TccFvCKITg9YqI5coOt15Hkz+rDdf6jNaNFqEy9LLAphkpj7NvFdgKv4tPQD2bWbeDJX2LzzrtmfQ6EBBf6uvTLJTTgzEIuNWr+w/LTMTJq61fsyH+RYkipS04Rbr0ZejroM8CQHBrT4kMkuCeO6xOXOGw4zwEVhKx3cEeK66kywZGRU4V8xD2K2vXxFlJm6oJ72nahOjJhJwF4ZjBdKjYgkf6EcnWj+MqeeJVi67WguSi+Fb9Iz5mqjLJop4vnkr9m3hczAknzLW2ShFRUbuPOudVe1+4WrLfymBUdj13rHekAjUuGRS6rkrGnaBbI2A3Z2EWMesC16X8hSc5Y7nqmk0CNgipXll4HfMvzkSQNP6v4944T+5sMZfo8zBVN5HpwhpQSV5JzMYiVAlTK+SSmsNonb2RfT7IWHA30t8NQcrOpuAWrmKnNWZ3xbYjb90JfbIYvctUQ/a2HXGKbnKjWp5A+UwrcjESxf2FTjk0ricgrJ4ZZTe8fw2axCrMIW3ekwI1+jwEw0hRYYXfNsOs83DCov1rgSqEKiUw1bOEnc04AsIB3GzYXQkTHiIekiXwQyczTkbT/SJ/qU+WgEWsdbEc+tEOs0Q3m8KDEGHus/jFw2GG7RkBNa+nkHTyYPAzPebNCgleItsHN0GWEC5mKyuTL0gmoN7LjKqFyDdJWbyHawzaH6xPBp0f2F52jFJ2HT1wr8eNClrQY+mSiHKHJFwGG2gi7YSEeA5KokGH8NJI5RtxYUlG4FgoriBAxJpgHiAomjUFZTQ/haV0Kr6a/NuXkeoBdJNt2MkWvrcJvEDip0hCgbD7u2V+X/6WmedRHVkNfhj/wYhXyOIrROwEOm5QTP1MbyesED3TprsOAmKC6l7xg04E6CeGxiLfkAhRUR2boW9OVgmiuC82NadSFYdhQUKc77sEHhKHMXp/acIqlGUJngw2IoNYnIWhPcKHvtGMxLlicVFGBTkbZU/AsMfJKDj4w1s58YSDnJqh2JRcU+5jLaMZLoPjfHh6i0jFCdrgWYCmZlD/nE+skG95LiLMuZb3Eh58CQjD70wW/BKsUiIIBZulo5SY8AnUQwF6FqLz1Tl/dwjiR7afSE+8UeTrnofyFuTSqayPWDysCI8VKWkKVfins0RDIqzNVWAVxDVKtWzSHSXPiicYP4FcFwTUDbWnh3+R15DH0nC+ZUm/PhVmkHAT9lvxhokttBTslTm9E6jdLIFxT8I/rvQRhB4E5WGAIeEjnlD8OY+cJN+qkicOBa59sq9qrZsCAEjmgg0oUKBu+yw+R20WLBCUzXamHsGTd3TVTNWadHVQJ2lOLTkPZzbCnsDADCSGaYgl/pU5J0O9VD06y8jxARTcA5AikXnayLfWoBl91L3IlHs1pEXXAhk58sdFrQr0LxCf5Y8P3y/mgpUAXO5byc8uAMIKRllHeDk5d8IQEunQRTkWiDNgYiE/chVxUQY6JrtKtt7JbIFFlL56P2mZW6kfPbQ94eXyN/HPafDLpNA72eXfLKQdHpW0KgOcDGIDLas+BiRc2scmpBtn4gqj+5CA0kgv8MBhb0BUCj+onoG2zKscSozCjTsRTG9DlLwrWbuGxiadsAE559EfgvrJdmSBJPCU9KiS1FQj0UtEJEFVkiPFRRw/uyqE7VmwzzwyjZtdv0Ijlprnni+DZcB3hHwOSKrGlZChwkBKiSXnBQlDcek8ILknp2LyDN8FgksidMmDd3vBuOw5OarltQis5EPkn9HS2wxhoLPyBHSrXnBxu4V+EcyExw90Ml3Zoo+y/XvQArwVJ2z9CN4UaCgzPNnBPUyCKpNaaGNx4cBCbp9lz+xTbLA/WqGQhVD3OOYaiHQPVfhTuFCMYxYNeyq9pimVjKZVftu6hxu+4CRI2CB162ZDvgZqoDjSRLryHa2iDTV9+oliqR7dPkciV9A/Qu2TLArCogLTFwBfnTcC51v/sHU3BbAmKJhiajaomMNfyVjl2npNZGJSDCRx5C9QTTQ5aqLNSKZBCzoc4EjgtK+n9eBL2YQCZXecHRCDb5yywO5R0kdiFhgWTbjlGe6CGOKajLx9BYt+cA5fVwL2Cr7/2NaNoyGWYHC9DO2V5c6YQE8I4MPpqECZH0TlZoUt9PoTJymBpLZx1YX+El3ij/cxgIrHXYGYzCFKH6QBC+VVXB2B8glLon/aLq9uEBpMekSgCQM1xR8e/7hLFbZdUVOqiChA547GMaNXgg0czJaggX5fxBdW15aRVhzHb2pxFLb3jiEip1DVZxyoplIf15qlZSOMKSObxsmU1ik1Boe3TJFbalClMvuDCzWWSA2PvMjyCJI2YvQ4jVaXotbggirK58v5TdmhVIERJSPBQ33SnBBYcdzC6uAVRQ7pr1of05PVTpJBJRsidbUION8n1YPEPwjw5wMwYLjyeiBWwQuzXiu+V5YaU5FfmD0r2lzbaMjtk5hB90oMFhe97XEIikHXTRxcXZm6HEyTUe69xJZ6TPxoOpl72GHAlrHVyLMiuzs6LYRJE+AEhCuHtgngDBShQyYonh9qSPh4diuFzR7MlQbc7WIdlnyPCtDtTwbuBQcUoLikpw2+GGEbBNCzHIztAlCooQkzVTy3NyYSrsqYoQzGrTerXiOYaNpkD/3PRUqa1CbW0aG+DE+FSzpRSRT4I/8CPOPQAvadlHQEptJmEzlNhZSBA0CnxRlITTDhIStOHAkTlatw10MWEierVlNLVfGchpo6L8lOZQpDJGRd2XYJ2yF6a5EWUmtMFApnQ1yTQFbjB2BydtsB5pPPC2U3yqbwb0QGY8vjRX/eN0ismb5XE3m7VN4jeS/OKKjXPwh8KBvn17sBCeK1oS5EdxT8ZSPFTBKC1U+YcHhdIxaJ+hfR8C7GTiZCXrcwTyFlCCpAAurAs30WsD34clO01MAUzFW3chH5Ns2QZvEfmY9PgFfItk+qw86DjrcjZAqgd1dIWIEXSWa2U4hYINK5w0QaiFBDvcFuyYXBcdYjMDPAC7zTaLscFK45KdSVx6WJ0l1Qx23VakSbh6KbnQwJ2YZ9COcKG3uc+cM1t/UkA9KhsQ8p4zEt2MGrdsVI6ayK1ogFCzSOP1JXTGfiSyfNOVK20u3asENLuXLIwsxw0wi6ClhgYj97c4FAuoG8AUiV3Cc/fAaN5/ypcWG5CTnjyn5upihyApmcOrSrCvFXVI8iivbRhkYrSYsheVFFHt1F7mreiFoZq25YXtHOM6+dAfQHDVdpZu82ErY21+kJ3IyKwk/vD783BEJTklCZ2yJb2RsnJo+/9n8uhgKiEWbVqcC8qvwz75O49FlX4DI51s3kCtwIvYmnUlBDXAEERVTt7fVG/Gnip4Eo3Q3n5WmhnFRWkRdU7b5VuHO0ylVpqT+EuiIBnch8y+xesEiRn1nFqsjHbkO4irpNYxKViFrMLCIVO+EEVOm0AkWsAjwVrvM/FnKXIvypP/Vg0ZmHUzFgN8EfHWK74geuX6h6rozMwPg5S2i8PvC5Ss6MO/HmDUOROcZeQi+rJyhTiG5YmQ0CHExeBq2+Ms0EfAdY+W1zZFuR2JNzoflTeIEYA3OoFuBp9gfh0Y76iYzuYi8mo+tl4Z7YjwdqtKiLBfsFQ1pGDSGsPVlwcHJS3eTluak0SMFWiqiKio0m5iqbi/JL8gypi+Fn0eLF3Xm1vCiVmy5ZPPL41G/ohMcnYbejhrcszpS5CSTryB5BQwyuWcPFEXp8KYOGfAncMCI3djWXUubyfkKKHxHgyS8jWH3kEl3nJAEwib41YVyMvqnjwM9WyLyMhpdhlijDK/GwnydnLtsc7lfzM61PjadQQd5AsFMqr4b0HLWJxOQPlEdPrLwoI38dUFtFK1EnrtOCOgbo2kLSiEgRRJ2nKOWpGnVYh2dNOktRVAN2SGJVomG96SIWAi0HhSKyri1gERCA4gIbmBCQPp7T3MeRZ3dph3EuJUhcYh6XH64zVtj8XZkOeizxI35O2VLBAjrKaAMHqOogrIYBOssSNTGPqWTeyNKveQm0iTif1+3lvnzbaiUKbo6CtyL5DsjjoXfoopuC+C2l4UA9URgdh3WjIZBQz4d8fk5iABWIXsI8ywHjfX/dw+eFW14mnIreUZPzc92fkeOzdWWifr+UR/esAbfhzsC03tB5B5s4+QVvvsBwlfvWM/2iJZobcYs3Zdl5r87cjP2ri0m4kf3huYyKXJdHruC/vwKMbIPDuI6mah9SngZVaDFU8UJO/HIMN5zFhY+KU1EDybr1bRGF2InrBLfozXNhDTo5Wn9BoVMRjfrUMr6n53cS/JUThELjA3P63k1GdFgEfoKQWoZBTv4m/kaZQj5lZp6F40ybTkND8qCKRs8oGiegUHmkUfPy/oIOjkag/yshP6bLiSOOU6CH/Frd9zBPgF+BbLEOzDvIfBsKCjqkCfmT/YqoEkEsAI4DXXC16t063EVeUo9oBdAssfSp+azuKujuzKsQHSEtUGBW85PhGhDNZXeihkrTTTl2klqPJXpoFOaBwiguwuchCC8kxKuLJtrGuVO1PBb6Zwif3ZTb1t0s6bdKACnx3n5q+e36HnhYjiLE5mTSrfBQmalAuJb3/O3s4pw5DR0Q3mivcqURb4YpZA8tf6iiZNptig3r+W8LlBdKV1OH4EWobEgqXOsSwRd+CQ4e752RFJ/t0fpArnN1mk0AiXT8+kWk0ixbVJFswg8MY+GUq/EB+slKUpuELRbJnv/kWrTQk7u0J56Ngjw5CA84qzgAjcrGI2kgSe+cwWFeL0sIFppWd7aWeFz4uSuUHSBbPe6M5ccZ+Y6DCkO3cCV2rhFDcwXkWLr36QZl8m0Qqvvksbm13qZ5qvRT16H0lXGTguypAkvNzr+tsmwYVb4bfJ5BdJAH3gKeZnqdnQ+0JqCHLbMh53y5r36UlyRxQUvayKLOH/LZ3GxqaNGGoFSRda7SZAwJiYjOQl4rykXWJlTLM5/YGtBIQCJSFz+mLVtH3ja51Fipuk+2s9QNkxl+voOUrcPNvhbrKc/aLajwxv8kureUDMCIomjUQBSRAkQ/QaGyXg6ezNEUCnevWJFXERJ3xQowKqubM8JwPVlARHANQaFLP4yc2XRFwKl+uTiujfRBJrWYriRaAkKF61JpIw6TTz67qrLbYifastG/XRFWkqCvw6Ie4XDEtZa97DLxOS2TOyIebh37LXEIqnGExSnF7NGpI4v7stLtNI8FoDzB9uYXfUgUXA9mXl8Ex856imYTS4ZPGtaIYfEpGKsLEL9Z2Zifiok3I2Y3c40W9IuS/uTan6KK61pY8TBm0VZDfpQzP7ESDQWnWi9xB4pPaTF1+2SKMyDR/XiITLz4j2RDdtqkky1E9Au+tGiAoJ8nnWEBOYgqgB+11NpohGVKPUF/MKzijdMCHaVNOKzrxkH90FrJ/fRL1XW1a6eAkc3O15aok/C6sJRb7sMYDmXJQpWiR5zOf47cOrT2OAQ6thHmZS0L/ZzhRsEy6f0VVgnbu3jUOXpk2ELlS5PNosty1MZNPNF7blPdrQTME8blsldqZJFJ33haHIzsWjR9zM63xfb01IYMYlR2EV2N0Poi885pg9T1aRCoNjisO9VmXXeB7A92WGLL4yaBw17dF371Mxz4uI+SLKnsjrWiTBS6KZ3VwnWE8J8XSFgqSbD4ofbmirMiNC6mWjPtLfG41txEBbSYGpwfNgAjKbTtCkveFvV/EimwKye4hCleDzi2UZkMrihpyn7aRrw8TfQ1ECvxIjdMrfv2I19FQmLD3nw1I3qkJt1c/US1CFpd+5pLX5kBrSdd5slhvrN6mK/6mgr5l73FQ1UR3z5myFAdxk9TApKATNLKtNEJgnWIj0xafTFQwJ/Ln+XTNmOn++6bXutbW/68jMSLARMS5bUSPUwiPXOnxm1gFrsdrGNB0Cv+lymFNcoDQkd7hvGe/ZxCHLrpWE1iaoW0cqaSETYFH9mRicQke7ypEJkAebGvROSUCUhCFFHkBWapuutotIvi3MIRnFV+MHorD4ZPkMAW8tXKRk52Ru7+JZBL8lvaAjDMl+zBZu4Wc+Gu7eYTeTohC6bPf/SZ5Hrd2sj2bN+KRdf8xZXtyRccWXNjqULke9qKqREiPZFlgOFBCFh62Bh2aBusqmVYIHJm41VwGNIQiWZzJ7wrsU3gVODNKP4pOF7rpWj6t9ZnqFoRspatNzAZ1qo1WSj+AycRcgklLCVK8QnQUPlEVeCIbEXzLKD8de0kwmw2DWV00c0KDZj5f4Maa5DqVZNnzVVN1/RGGBC0JvEcOW93dwOMA6kkIR2vOhp5jZuTbScuPM48/agqLjcLXRFHX5K16vQjQ9md70g+5+k/h+FIQYpBNTMwhOqkWg/jF61qdM3zDjXYdlU5rpRt+1kVXGPSinylflfjj7+IbH1oDpkNvBx/O5xBnZymlwz6ythj0RUrkLGRYgRQVo7X4xoRetPjJ34Iec8T1OGKK3HdNa/+GZrs1+0SMYzGecj5YV+VwqTY2e6CJ75dBMqFesWWHQdwQbXguuu6YoBAAE0iEbUU3kE4LeYT3vMMJM4W+MqwbzfWAor0p4C6fPwmez+Myu7LTu54tVRzm3WRvnDknyCOzwu7QWIiZzx4IoCkxT3gMXBP9KpOCd4xutr81JFO50/CKPNORYWPhUaJEr3ILWMBMmRZkIIzvUlvIBKcESfy90EilnUL7iJ3WKqwfcFfRDVvaw5UH/u83HUzdw3maBehHGotKE8PSvIDLOK6rCP1B2Rf8gZlDKGDFKmwLH+VwTk8ggkQMnL+jI8Juds8+XjHmvG5SeI3ViY6jn5MKj3TLnkuvT9OBzmC6Q6ccpmqnSCWzZMQnQHY0hKkyxsNQGmrILapgUVje8LpqIoYiEZHEmSzezJVeGpAD6qNiAcyDun1Pv28iMYxEd6QMCuMyC9QfXJOBWJnBd5PKhafmeqGYoWE4Q3E64lP1VLrHhhN0E/ewkSMK1KtdV0ehfAIust3E9VkXnFR/pFof6ZeDOqk6fDnkD3FSq1w+DWEewY0Vs3gvhGhfYSIKxiKqkTYkMGMS4r0h0CZmukyVaSprqiwemVXV60CsJ1nfJud3hUaOItnFkw0qtUF8lHYJjTB1sch2lBgVDYXXpSam11nvFuZw9IePKZ6k5fRSecn08bbaGmKsazQMBNIGouH9oTjQr5Udg41tmj6I1H8HLsUvII3AnH2RkRVvNqD1exvtNFVZbgkA985rbqyaCsFpzNVf5ZGTO5WijoiUAn40Yj6nZLvmoUTpEhvxvipE3ehtophFJZhveAontKNfbQKpZbFCJqVPJLZNsvycjIkfWFlVZtbxQR3FpQicm4Xjldm976Z1F14X8/6oHE1FuCerU1bhnF+5fekpowr6lk+q/334ww3xo07fZJ2lfBIdjKvMxgthmXbbIYSWNM6T0j+VZ+QHv2q0o0k6HdSdDGfT3aTiKDcyjmMb3ENhMguFde/l/i0ZIGBph3zcHAmRvLCgspTvT1jcfL13Xkpy37rCDRA0UjmMGJh9BlJd1Qi0NAzXwAi9EphKmsJABHN//hZGANiTgV6A8YCMAKsAM0ABACPAnPmoArXwkB3qZhvnz0A/T5dASwG92eDvZLLSZFfx+eOF8tntfyzHwCQXQLJ7QSQGHtsGtD4nWgqyo6H0yI59c2GCbcfi5WePNFMke254cWA5P2hV8igOuBq4MmARi5YYaBIRuD4sGlNABAyhjEuAFKezm37aAKERuu0Yk/pc4duPLjIqFAZM7SwMxPSD1SbAz2Wq/Mqf+k1Ng7Ke2hwmlb1i/mebcNGE6tz4IOgx4ROc/VqdgqkzX7oeZwrZ0Wcmp84Y0ESZU2NamRivj5jXWYJkDOVTTzeYIiZW06TyOcEQ3/0PkxNFwz9ZE4G2BCfWkqZUBgjXS7ykBiQI0YI9MOTExxStEJKejx3x7mdSZuLBEPFhUAe+CZSbN3RMrBFKyTkHPS8xEtcImL+VzTdqdICgEhAokiJtZUZfoNMLxl4r0JsC7v5xRRqgxJJa3EoJTeWbRtj1EbfJtIw35AlEO7vJPwCegXxwIqhF/xS2nII4A4wPjPY8MR+9Vlx4PqqFfjbpH2TmhOBoMxMy36pq0YjqdxyoICXJ07jA1/uswo6To4myoTS0oMwWys5t4ogi0AgMGpDaaAatDxhyGy9JlYuQMtVoslDe7tIQncWzF2AVP4rUalScmkRZged4o/tAeP28oYQUSzDjzA2R9lurcHyln2tpKLayBKohcvNJVFS12EWgoweEUgEICYwE1PpMOWW8uKD4ejHgxqKpRURvXzLQgo59e1syVzTNIb4zP2YW8OOMMRMxtErUwqmwgUsAbfrrTEn9KCQ5qY6b923AJHc8cxfIH90zlXLyuWMt40y3WVn9hP41d/5nTfroSZtxqY6zoyO08D5WWS6K+RJSZegmc5wUyG8DrCgVFKob7T5Eem8yRb+kEGcVoy0rMWdm7fz0jBJoHh+ELRaV2e/RsTqexNov4zsktMIGit8JEN15UZ9HqyllzpxeWJnbPcO9qqRarVGcKyFkQLIyn90dEI59HMsVwSR6bf2pkJO+JTZblK4p1EdeWMEC/hE1ogVTgF5oHCKj0DHYjCxoE03IOmIqYNHScji2B0UBqIgZPU3H3blMf/7GVnz6mmV5dDMimah0DBhCYd0GJwfcXWF8ijrzlysYgYjwabEY0pjPUn66SkQFLWfZyFQlhqQvVFNeZ4HBcei2wLvozwKQy/Q3Jg6pbJEgeyWML/KIBu2NNgG/ukVxPjYwQ4nEBS9xqWfgFHTiquhtbQm8czZAKWqTwyPOu1AFkXEaGb1Tr6R141Fhjzm90dCNv6oNELZKvE7rM8MvVFEl2pMM03jH1C8SEDl5D9GP/1jpX1lpdL9NiIGFUzZoJRU+cvamNlnL+CI8MKzNOTYacKMVujjAx3BPFI2HlcPNHxUCGXUwDEFpX3qByeZzC9vAyrh7xGU9jUUTLciyXCCf5WglnpChXPXpvirE39svqYUaMBOGE2HmhAyExPx/Zws2BID3x1B5xqOmyj9F8L8Tp8RBjE4MG7hTjCydU4Cy99WKp1iWveqCJQfiOQWmXtdiazc5wJr+w124Sv3fklB3aVchv8ZUT8mpbbbjYzxnSU62ZTxXWenJIMGfrSVIgQEMCvcXaZLMRMFYinVOx+oGXiFxsoR2XvY1T8CECqdIuMlF7KnV85TCSNn3LYOYqnAraQEqHSFDo3SAWK46T1VII6fElQCQ19TGix6O2IxJ1IFDb1LZlEtJOCFEm7sS69VkWq4IoYEIkr2yBAZraFk3ZYTAkq037R8UI4WZw492GpzAcZIry/9MSDVD3RE4440p25dxqMI7pgcTmjigzdBymnn8KhdejnrCP3Fzf9qYkP4RAYQ++wO1Cjiq42ya998mf4jHERkXqCjJ7WFwzjcZstGe+1ZsrFUp5ZVo4R0sKyYTLmkaOD3BKy41KGHSioLMMpauauoMovfOKCJTRC/EFltoYg8REh+Oczgc5MhgloR3+Ke0LbAV8Y+WdEIyU/TbjoZXzzR96v1UmOdxpgpfNuu1RjLJ1ySyKa3ERkWBuTTKaU2FgMfDtsTLUl/SXXF4AheL8mVaFpzG0qOm2Gi7UClbqxqDHcTHfMMXLbsApzC5S1RliyyQT/T1W6BWjT4VjshCTd5oJLcPA5p5XWl5JJns1yoz7hj4cQIYXmNxLMC8FSiVzKCZHG8eCEZtHTsOocQ0tS7QiQCHBF9jYqxUyN0VIwQu+8mXkU1oM/eAnteYEZkwQFQox9G6OxSZx0LkitLUMh1IVf/URg7z2O6g4gI4fzLoYRzWXqAZU3CRR34zsgSCZaMCBOmFVDUhnBnjg0kzWQbeP/zH2ieAvYJxFfcFQsbTZje/kZL2F0QYCAfaPDbS0Vm63lUCdwa/409UFV87spSK7H67uvQT7VoXUQy9K2CxlFyz9WQZtgEHV1GMRLREezcpuLhfRNNvkdn0Ox5etCK6xqF1/Go2lwFpO1Q8B5u8NuSaoDpUwI4Q0LZ1soDD0xOQW/7GcuOpRiwo433sQWUfeLhKW08aUHXF45aMZGmQQegXppZPPccDJ/RRxb24QkUM0hwyDJxNj+t4nU2dBj5QrU3afnI/PSBWY7EBJ7isJwYFz4jMdGneXWoNJNkQnGkwubbhOKELxJ0L3NQacGW9JSKBwZoSsTIr46kRQETQCKtme9SDEwB67U4KC8b+EiDBCHZ/GmiLu98NWUCjWXBM5rFE9DAsHuQwntXyVmiRhxQ366FA99HGN6JPJgQWX9ffK62p2L0uvxRJG5YqBjnWZVuuInNKySiiMPH0fhUA16smHJknMEWqmAikUHF4stpxhYUHN1WBzAsjkAYiF/JHJbeUinoFW6+u//rvlayaaIXtkwAmEEhD1HNnkrMRVlM7kaOlTAcwFh7Fkr/1fdqRkFhtq6iyTTe8s03kJuBORNRIyE3QDVbzDbNpavxrrZgpaLRKRcDDm/pvgykuNLL//AvxPToI68QKQrnp8+jnYsTUkn2x94DiNSQ7MWPoJk0Koa+/Qu126JyWDmCc9c1nAKPti/404QSRBVXF+fXNxhl6bCEviyAgzYSUYLhfNyi3YkkmYEEzq5TAmQjY6ZuRHfNBAd202z0EdtwluKZ4+mhhHfUCZNxG3Kdm3ZZC7Fh7gQsJpARt1Go/aG7To/aXZ5MsYAMh6kgSXz6lcHx06uRmdCk5FuaN+aryUAxtV0gX+gd2+gRZAcZJwvsj3tkAacPahsU+oxc6Dy5bB60z62bQog05yR5Y3OH1MfEF6m7oPFyWW965eRgOlxztdrWEC+Q+y/qwrdydBDjkRX30GoDrjtouiNjTfoPbs+d3C4OWq4HL+BPtiKMTI2nHhwJl9aYLgY20buzjqAhWpPY5NCyZXEPZJRKecIU0rkfYqVPFl51I/jdPcrt17iilXinFd0Q41AW3F+1+fNp0lL/BeMG16kwz9JuMAKNXD/DG4gGuaHnKw/n3S750G1+8Lf2/7kVpZXOiJzhjyJ6BbKlAYIXhJEKQl4CRyDzAbl/HMAqxbvRjjjLp1hOAziC4mj8hk+kSPFHrYoWnaaoyyKnaovpd9tdnG+jqh6uVlMk4qJ6+WfjV9w+ZSUEDNAJLh2Cd8lwqLXtEeAF+LLXfgjVRlgZKDQbxgMT1Uo7M05DcWZSNyQ3ltKcj42nCuEjoNpwnJpl23VlDZt8tWnakQnXNA0rMrQVBXBt8CckMcegKoQqyoLYWCErxx3QUy0tTGrJ3mBKMdttdyuJgqN30RntOWlS/8JoEiBwhSKhtAp1kG4QdZDpGphM8cQ7IjJ1OykxkzW7qwWJTjx01chdCZmc95waYkK1k5nbS9IBl9unHiT37YldLeOG0OYPA/6e10Oa9tgafBGBtT2dcUGK+XMtlEgodB/UFeuPEDFeCICr4qRvVF2+RAbcRMDtCi+4Lur/DaGw25NWekrF8pfqCk0vEfW8PzCLvbK2NasEX4EL5wgqQprjuBXQI7HHlzqqEfFvscHjLRRpaETSPsJZ/oiYkxCooYwfZ5zUmoPq385ebeRYvbF6LEX5WhlpV2yZDlkJIpygCDJ3LKKCg6uHfq91C3IUIqxTuUUT7AEU5ApzgMp781kzthdtSC47mTR3PM0wAw4T0PJdJE2PT8HmERICfOhNdpJvwr697gcP41u/Q8pGTWpp6EsiKLn6hoMk8NHb9sU0YcgOaRvkm09GQpmv/WgPhx97qvKFN2x8w147VzQyc5Wxr4qoKCuDvJSYgo/TGGD8sudkw1EUJglhj4TxZO1B3lErabql1d7oKhcMXTunHb7C+pLJyETeVwF3KfCMZEIY8oqeqXd0eI9C4exuyOVD404hrByihAg+txHtDjkFvQ5ZN2kcsGolHicqSGpWCg2EOlu1rPiPrj8w3QoeIGjFGjaDGWf7iojoUoR4LIn57Kkl1RtgkwiX63elB4V19meoDvDiwjOTZOIo91dOhkzbsRu6805yvQXEFFAvQ4uvBIqYBCOQcLeGkwHFLNXUO/zqWxLw3FICmtDVA3AV4MAknPWHe/smse9/aT0fJ3Hfo84POpP1JEjt2rA759hi34EFtIyMtwNBla3zuQq00VA3d8RQDhpLo2cpn4i56d1zOob4hg/skTmV+GXy70sseZ/RYsJm0CsVBLbnzPT0S1OiSbAMWqHBQPWhWwacnUMdB7yG2SLu5zT7KBHbxU5UC1RUQS47vcOftSU1hZI9+eyi+wJL3bUdCDADaSvxLCJbqG0QHE/JOrOP2cuvrRFnTJA02pr1JW90UCS3uexXF4Q4lrqwwixNtH1++WAyXFvORseQ8O0JbCeqgpnyiwTAkHQJhRGxjy0W0Wp2CW6hpvw7wyBNz+W/A0X1JVjoQ8kMlupBa5CSh3tr42si6GpoxAhgKvJO2kuZHMwJaGAu2UWySmNxzuv3Y5lJEsuE81OybADzkQlZnQQnp1WNGGMGgTomeOSpcUhqma4dEZmC8YvG+4veQ1rHNfjHX8SJ8ykgMi8VIIJ5SkCnFHbCXGydcF3eNRe+ejl7tFd/u+53JoNT3YoVRTDWPrSJNrRXxEdrpduYF+5Ip6I8c7tU12/7nEMNC6disdLW5eI0VV1szqCEu4lMt+Klb8hoVTaRKlgRTOk0wZZNZeaClTBaUBtIhRjm32hlsRTjdSJ2eUwcB7F0mA1B9oOLSVwqfwnDWmiW7Dk8BAWDEalLatuQ8EgLg0Ha61W/sAhSQNsjTtcmRq1A2c62GixVCQO8Kiqjddpp9SeqvMJd6N+nbh+rYsQ+FB7cFFgphk7qaQbKOvuErBHtW5lS3zJeJWfPZ/lnYyRmRBO81K/MpKx3e0P8kwoUMSjWpVqQVajgY4xCVMb6FbCGjGlCoEh4i1zD+yr9pYE0t2tUOfEPpFR9Lw4JCKpJqnFOWUSIE3SrnbCFMU2S0ofhyVxdKcNNXtb5URpFoYMjdWIluM3YGJYYhFGefo0iscxciet0ejWxhLoCq59SLLYIUNjc7QLrUkaIXYWGEGNx5jDl3xIewffOJ0Fc/A1OAiJaEI0pvW0nLwGiPcfl8o3wgynTCB0Ox0KSh2tPJ7ItTMifGVgh0SnU+3SE3yv2+u4hXdllIi+OtsEtdckeNR/rk8QynSkWqqn1rn6R1WyeGSULXCPLtsOyp55lV/xET5BuUPZduDAk71Yhm0wnXDVS5hEjsduzUreV0MHKrrgEkZfr/ZmvimNMzApKlMiEAbsjQywKdQjXJ0ho6/FjtqIhkR9CMRJQ+92zEGifcACPTMGnPeJft3xknJdizrg4/atpoZkaeb3khbQoxKAndjFc3zXDRWRtO/vJLavAV8i1G1Pzz5qoaPl0rKZ6WrpmjYbPReZCKEnmf9FjaEJhhLEZs4Pw6OoqM4OUkS01hChVU7IrIlsc6mNHPOJyoNRsyGjbVAMnJWnaZ0tYdLbn1CM7OeY8qnqmY+m4OQIvRRTyYFNp6pI91j9XQG7VHt8AmdI1mQbWmTMkMpTpUt4KI3w9yWPO7FZT/t1lu2A5ECYxUAID/RAZut9I89udtORsslFs1wwm1OysPUVZPqXhaEd8fcJM5+nVptsxtTyefrBgK0Plb+cVisq0rGkCXolAu5Z4K2mPsZ4PplvGeQjFHdoDGlZdLpdN1PI8fUWpkL1DmFgK1LCYrpN8t2rWhFXIyQEbc8l8WBu6aycKmhydNDNu/BL8j+y8Rn0CpEoi6ZMeyjxu2s99X6ImLmOld/W3efEEYbcxe+nRbNM4jPpdGY29Ba6UTskpVjTfYtwy60mxhTl1o1P17otksEQ5nvn1HfDC+GUxrSkhNBsVPioSlSzt91YgPK1MXLbIWS0EV0KBSVuq7z39HO03WmVtwJZctuPNV/R57tCalMD2pdsZrDBVtET0JbcJorsoyCKNKK369iM1+ByMnjb+mFnQz2hAG4wrO2C+BLil5Voo1nfCmKhO6Fck36XHtku+Tlp/pT/gBIlleTqj8VZoWVDQ87Lnq1dSjUclK2hmnjKun7opYQZeIx/XBrvaSnPdp7/oDaUvCY46QQVNqmLVwyv8XSlTK16lXWwn+Y8a3xMg3Rq36KEfdpzO/J03MHS6dSs8On/dkAYtcB7orTZordxhYWjWkdZ/Y5O5EMI3dd9aTYmqu5CuJoGww5WM23KuuBKCpk4m1ReAZxQ8bQX2giJKV07yxx23Z0hnfOw9YVeIvabNsuUiUpCfkQzMigBAJX73UlWh/ORtdoNU9NfejM2WpvYZNVoXNQEDcMvncE08tWgsfcGK/x3mdKwi8oq0REDcf0WVld0K2mm0YuxuZXN05EVtMC89tXBAmP+UYR7/lxJEG0HMcSXogWYpvn2nzY397+jVGXLJJYKT9pyubIVSmqvp/VruzHGZWKo66RBO4TaT82k2tcPg3k5KVPTmLL4OsXrVKLmv4X5rXWd2nO9euVu8r7PpujX5/Wvbi2pFp9SszHAJJ/Cn0AEHVfAscdfrqPNHNGiphvs/6uY2Ncqr/K+yMKhknY3D4wIvjnJhrpcQcipJ0KD/SiBaFAygR+Sgeh6T6mHEiauhTTYT/Kl2BLUXK5dD6u7GhaUSw0ey+BYJI96ZRNFfUDQEgQxCdgQ1SUkz0rMks1VpRxnt4xk8TkCpg5FDvLKu65lUcEsIgCWulsQTGfiJYmCNY7qGNMYJ9vRKpb+l5Um8QOcmu5qtiUEQCbM1T0agp0na10OTnp0kUBDdv2K12YGaIfl/n88zTKAF8hKot7Z7OjMSNKxxUxnRRX2kGsJfKYahWxH82F+H3zDDqUcPs5t98aBhOQVHg1lwzxFQdqh/Qd/p2pBjyPhDAG9gkJ/gz6VIVq6/JfcIez1UIhfysTw40FpxiouQckWYnA0nEZycr5GROSTJSl7q1sOWDbjesT3uSZfUiEAyojSePp4CrulYSlEb2em/BuYrKvZfwWWUilI35+sMoGpnsIpdRvKKHi6PxQgHvLjr6w+6UP5qaqYDksrnglvlySkBZxm4j6fuUJY090mthZOMhBqMMepaNsEXRFRzCMYIqJS151Xw6e42fKjLQZbSN7aUZ32xiE+ynvlhPIWINayHS2K4EwbQ2/Ph3sR2WnbK145jTcZ8mm2ryO4XB4GVPYqopww/O5QrbACjVR4uZ55KM2UThmuDk7mSpShXskHGT9IeQrCrKpWNpUj3PLLn52dPXNVsXoviQq25Kv1299dFlpoS1w6yBKQEMFw5Vdajq3wiNnoYFhRdnelsZQVhJm/VOUZVhmLGotrqdGNR4n4kJEgrCCjQfx9NUaQfHfPaR04lsMr/iAb9fgo/QWhktmrcemHApDXUjPzzziIjd6CwiC/ig3qu8yd20cehNyDchbtYrGVQzaVQFLd+KxJDYeTVNsvsHoq6ZeyWE7jjlA5z9JW46KJ7E35cA5ZeE101cUoXpS0e9GJnCwchamM/mFcd5WnbNjk+TixJLiMjmC3BA2sXDwBQrwMhKBIFBFB2bG/cK/6XxoboPPEExJpNN4HC5Vr6UFWUievC+nEMi6wiH6cKle5IuLdsVH3o/vbi0bqRo5+p1VDUalVU3tZwgmJCBKGjqvlxH0XClBgq/59xSc6eq+FH3nHp++BzmgtkVUsH4rAIt6d3apBskbnGUiSlEqFkmcfcyKS2eZo6JDU38uDMpFVPFT1sf7dErL8VIcmYmoK368hWU73oyXIB6Z9XApOgW58U7PldPWpJLW/kxxT1Y+gxavOIzghqwbEijRHT2fQIg8yEsJmp5M1qj8yu4mstNpOK82KBM9EO4TeWtUmJ/Okx1yJlDMcmHrFqSZJvGZHEqYvHaXULYLXZzw1bHUGO9DrZVWbORfF1R4h+xTYRr/KxqgSvCdYo7SDTTWb5QEj4Q3AiGZvNBfCiQuDX+cYZCLyIiM4SDXDbUcriv+HJngyn15WRoWOu6Y0yryIXaJXvoQwfptmyNkTzHLQURzAhVW8rFNyCyNkoguBArQuRkK6SVpRifuOOUJOCUABQCugZWC8YYFhtNznsfdSzittVRk919QJL1CRlykvidDtuPaWoXskhNnQwEstkKZsMCdSwQQsZLlJqN8oLwZzYuYIKo1gaMkKKtEvATMTHJRtd0FDlnF1Qwkzrku94QLZwS7NAnVV9TsPUk48vXXiMiYuDLqnq0CAgS0romTniqXlcSrLLYuH4geDjSQrbONyZDapxwodvAxOYXXiHOqCB6UJj/9zQtfQNyb3ea2wD2JMbjmR7oS4JHUkZ5FXaCma9qaPUtLkj2t3KU/BEFr4CSkZwpJSa4P1IuYRWFssXPHU4MSLCGHuX/lcRF2NS+8w18MiPiHhH+M7bsmcyUM/fFbxXszQUVZkQY6Q2Qm3KRUxDJyDmCG7gbx+9wL3cmnNj0tbRAVgSFYDJBqWP8pjBKq91+XWl3FCYkM5ozzsQQKEeJVxcCr7RLSVCYuAlUICEqojdGnwbYWZM1JBqYiytqCIsNYUIc1NSLE9nPqgWRdNta28k88kNtT3ciLQE7lWohI9fGQ4W0yIXQ22VcRx6qV/gSkORc8MWCGAuUNY/IMr9uzRVC8VBRThg3WKRZpdwxX1l4nxqU3Nrw7P58SNv1Ms622XS0ARMuda/C86AXq6MBUgM/POMBYOC+VGEYABAB3IZ2ZgB0YC/PaoJgxKE5GJneOBUshp9xH6TlAq250B8nuvuOJEHLXdiN0NatIEZz73UMxdsGYlXWYW+LPmBfPKB1lmqNKlM9XumA0BnALwIm8B34xMkCIipAXvMzwTL4fIrEFgZqBcGl6gRQvVWCWDk1mKhLRpJbIeRPbNv1KLDw5NGzMVP0QpvZIDpaoeDyKyREC2QYPiGPFuhgndotNWZDNKD0JgyMI3tir3GED/wbsCcE1PYKEd0It7Mt5PzzNDz7uTb6QQdHtZXy6GtZgT2M8IVkcwUD5SDrro/nt6auaASJtaGTiSYMJaWj+3NKCi9e+dzm1w9Iay79gvDD9HOzjzjFiqBEhKhbKu5gjuA46dOMHzXrG+trC6uOaTpKfx98ygr7G6BTIK0S/isJzXHbWwro65cXICRX8GQZHM+Qkw3J5t0dfeCTOb3tAyNskLW9Kv6nECKc0kZwve+0S6AkAt8C7H7FsVzdDFr0LOTHT8BRGHd3i4PIWXgn0V8QqQAgqtxzA1VuIIOYujVYnwWI8tth9TftR/QmQ/8YH4HdQmf4ukZWT0AYIwousYgVJo9Tl9DXWI8ql/N1HkvzpYGsH1uzJlSgYHOcXgxg7wSj4jC6OzfXy/14vpK803GFbjCrgEG4cSvYKcEYeTegIwEUFmAiG+XJhYA0FE3rLunpZmQ4SFC5qF2EVXQanOyc9yioRQY2KfR1M04C8gtEKFGqEJpgERpBcaBEoxQkwDPB/IKv7wNBesI+nZQEVITUXNoVlG2TnZoJMyTeoDd+VGiF6f83wkab979VOrtnzSMJZBzCicdhkTLBRoqZEpkhN0jjKTH8ZISB0YE6Bg4gROwefjVtxqYS9sH+VcPBKUsmqZ7R+TCDylvI6rz0cO40WY9ikFbEq+dp/WUURVEkfgbvxbypbSg2CFsQRHNZ/BaN1DNSeio3z7dctW0ReamC4XPvhuSKUlnRLnhosb4xPpKw2Y/vyom6MbWlUFlWoJyz9EfaBf2TtaVPbU0oQEV220S7IXmOCa0aQam8CW/YR87pzbHuDLvCKwwmlCuW/Uj1+jFIgtCNAd2MYYGMKMqFT+iS6fvxh7ohb/+SPETSVWnKiyyM6xZi1vxPDtf+Bnc5iVtHeVHvBxzz9oZkCs5NGwhpawDOBCwXqRVp4p6GuMeFb3/AmISxM7BCBrT+wFztCIljNc3iI0EgyCk2qGTVTAUk141Oo/Juhano+0q3PpikdqlSFjtMObUdmX7GjNySjERVdbQiy29MdD7UTWpEjNy4TPDawjlr1bx2ry42NGi2bflMZuOT9e8TqKwPbEL4rr1XIMII6G/LeBQwow5/XEg4Umck6jI/xZNPmOzZIR8gBA7bBomYmMASlqMesJMDbRiKlODn6kX3yiRRihg6uQ3NJPhN4qlAo11fwrrzqGK+fcCMfNSLVRxINCW47dHnl7tCIdFADgTeXlXsUtsphO5Far5TH4r9+zV+pmW3xksikCrnikVPySuUwEFOWHPKE1q1Q+o+f9+cAv4VGY+E3biAwoqlRoMTxSIBOIt7vRBtyLlGHjMXkHQCnATjmbG+dBQXZ3xfsOxNF2XSdKvYIwIj311dD5KWmVStsJeg+mlRkrVliBfG3jtnPK/PSw0HTCi8mJ8BX5pQykuqyHsVF143mWxPw5Y4FhQj1A5VA47kzEaEBXITKUVixFhHBOUc/bZ8ByjD/H3wjHOhfN1FjVZVuK1f1q9x07dTfkqLFB8o0pBhIiiPcOmPRrAkQkZtyGnh6YTAPoAGUjLuEFNO3tfgijcZ07qblC82NXAQbuBMsYmTfcZX+8V2olwahoyK7wZ0xyBr74gQGp0kxZ4cwpKOaY2vcX0myWyJhu4Gm3QZGH6kzBvpuRNQ75ZqLZwvxFS0i5e8ytdvCC9jJFXdBF9MEINmVQ1861ZBT5r/wrhzDGPjrLZ1tOVQtLiRjxgjTB5Va3FuGvFiQ2J1uGFQjtR0C9lPAxjwytqM2fet7BJyRTKQXWYKWl3xTvUsxHZsJktdv0zpf+W9rhuVGvFcMuCegnoRbiDl/tfHzZSihhAEYM5ILLxJieZmbc4AVhRxMuxnSriQkQZ3N0fL2r+7spi741IvMFydf+2EpEbb/ia+YgRAxgJoxrAQm4rodiCeNLsKhV0PfNtG0Bh7/OxVVIold6atTpQ81qhiNo4D1lD4I24fomMQsiLq/nQnYbm0M1I6L97DWR7jmksOSwIBsQsG3BTqeZD2aOWxh3BOtednNTInjPf6oNNellQkLANZqLA4l7Tk7wdWWAZAJqQabvj7QANHvaPYI4bI8EaKIFsKDsnBoPGV43lwgROQkhNHFY5tNdIQF7ftqOmpiSVyxrqZ3yxTZDKPDW7PCQPo60RUJ0B3Zam5L5FzyFX13qfiLhgRzqIUF7DAqRmSd6QYxRkD5rA+YEG56TFR1NrHeK99mLByl8vDYFpkL40V4wG1pchqL4GrqlZIt2PGY9vci/lNFNzdSZE00THn1FuSDctVw27xjrvrgkWTlFYG3gS0TafPIqChzRpflA2hZ6lWDot2CoUWakcsznoINnR7GWYJkuiLCwGT5phfByFUoVbd0eqGxdNKY1wUcs9fNPKNEqnak0R/dBT4yAhw5cqIKItbGnfaEpTOgYR6BDNrW2Ur8axlI4cEQqaWVGpiTJYxG9DyD45h8UEmiw5gUWUjnohgJ0BYDaXJ7LMeJR70PwDHhYS5orSKSyLjfFNCtlCMhWnTz2/2X5u9db3k5Ky4HSngMD/MJEAZiv08roKXu914K3QQtdVhxxKjvt/b/Ep9dLIykZJXNNUO46eRakaYCRF3skaE4uLk59eOw44wV92umqJHDQDHE+7oFinbIyrL2TX2Oh9qqAaL3kkioVVJqJcIh7Rgqp4tWSm01HSrQlh3A6NOWBMmpiufNxSB2IzMIXCVxe33wQg0pgV4K5WlFTgPeUUOQ2XTgp0xm6xtYQlTZpQ0HWPkChUfJ/BiYlkgiWxhbLGBlREuhF9WW5iVhbRSHsBdV78tAt88+zlWUIE1JaTw17sfiN20upHS9gl4tE/WNqzWqjnDy/X16pINJDhszzc/JZRJYoYQ4Wcumtr4Vo+VIUqm6WSSKuy1zcBCLFHo7JcwsFdDV+y7lL70IyB6wK3zZhI2cPkZ+YDOzNzDkzxW/03wTCS4BQJdkY8StDJUmaOqYjzvycv9pVs1BDBm33Yf6zEzfbl+hbIPFO3LUAnRUuYP7gFt5zAdQWuNkqdAsLUBlinaiR7W7NbnZ/KjAVn1iBCq/6tgUTF7O6GkWEPMMUBucUyFsRTR4wfc9eURepi1wEobw/9Osw/kXzGhe3ZERkYqLKlNbogby+88gqZZ81TPVyMhW1PAZ4Zwk+sdbv7L8mKjuW/JG4XXptnnoj9HVsHbfheiaLonN6a6dSWDFFYfEjcTWPiYb6mnwCRtBVbPoKItvm5jx1VKM20xmWsxRcd+A5aMrJNgy8cegXtRop+mqGblaHjGg7NWP2SM4kLfdeqB+pBeYwJIFF2hwaWU9VLCDgeqydOiIHP/QKfV//l5x6Llkn2L/EYGhKPkO5iVIKtQvBCILMLhEoiAG1k1a2O8bWOoRsR2gJ7GyXrUE6q6RzGpXYZ3SyoXtPNYZpRJKY6fS3TZUgJz9wUlgCEcQk2OoI6ycKyT8ZUaaiFpZKDxEGqoQjSVULeds18eX7iBFXHA+lAqEQwmGMLF6Zo3lMCr0ILP13eS8ihunxQ5m+99fyNTNvQYWZVvDSeKqPIKRwms30PZVUUA5NSShS4bCShQBGFIBqI89LUCTsEZ1gUa+pOxF6EFnvsq0GfPK4LUOHr07FjDUSDutpsPnv+rS/y7hpSyhK8hbTOWCtDDBy4Y02vIwuMVGj5Mpm2LnORDLlmN4SdOulWihks5noVL+EqfWGlryO8mCQNOWERTY6QDnoxQSenFEoUX+iTkaksjAEubY+6vfIjpoKzkkXUSmh4Q4R0y6gCVmuxIg9ynW3UYeJvVtycLp9C8eThEI/Q3M4W8qFEKPWEC7Pz1quu8+GmRd8C48h+cxRow7YZhOapo83mTSEPIvR8wO6E2KziUjozxoNhtwFnCshBgkNYYplg6dENApto0BF4jevegO9X0estGC+JSATRmfmuT4VhuU+SmjzJ9MZ7HXiZLt9GPWJzjUCdk+NfFXklsBECiCrX75hl2JRZAlDmzhrWZHgM4Lu/BCrlmofmR583/qSguWFjfYn1t7lJrq9QG/Cc2i8T2rf79h8hlIKZeNy7vyurHPOXAeeLk8VNRU2FqQTBWuISQRQWoWl65reKS3QEjRFN+SyfhMHQeVjGcmXfPjB30OmgUP0BgBMQaD2aaQaCrauwIvEjIFCwtLEhhX8rZFAe/JExJENbJKbFIxrzt7c2G9kLbSa26KRpTjSTpCOUOstukq24GGJ8tSiklfpU5jhDCN7xle24bs+bjHb+qvMaZs4aIivqNUWPO7STMTtWuZE7g8Zt8mEdyNi7d/gyzP6aCGjx4VG4OkQHO8D8O5HO4p53aGLMszGyzJ/fzaJ6EZDQ7vhY8YxogQLQY2ZK/TbChF9iVLgCn+GZnixeVBbboCmZiMlU2kAz/x1yl0xTAaIuDNmlSkSHs7xSEclkZnymvjabXE+I9xHWjNbg2fSoPkOIsfp85fYatT4pO7EGubUtKPkVcSwVHE17eWhNzBd1SKY3EyRzeH6uwToq/zjGUhsLMYUKi1ze05ltRTIotNggdVy4o1Fpp/7ZBDerKmq7KHG7ffwB4RkvVHhwcFCkW/+Ek0skIXFhMRlcYnjPSLtBKQLgBzJrtbEQWKrwnZDo+9fCcOPChcev7aYyJz6tazOuH/xTJuNQ8xBTQVRQBpTSr+8619/ZzE2ZUvYSoTcVXlRAsBVEl/kF0jgxCp5wIk6fOkHy0+vChYksytVBfd519PGuc0UmDW1EICER5gIP9yBGRTmQbQd9ISJy0fJq1fNgV8+nkBZnp+yiaDWS9QQM5eJQjNGOMJsf2em0ZaOgGteY0lDlmiAhQwsAZFkvzcGsu2aDEQ5j+CE9oEM2jQkYlFPe8kgbUHFJSEVOCFsp1iA4tyLpzXJRQrP7NR/ubvKQWqrr1D0vF1a2AoGPUzGGVv8g83eRqTwdIdqRt9pzWqX1EDbj6JbthdSeV8ruZKLLWwrnz0B9TN3OJ1yogI8wg5+aJpiImKaKBT6IEXLyLl63KtjudL54ltYWrHqkCPEUlr5TiBUM9sbKI/FhASUdWyoNLPyEC8Vp0qJfL69xHLBwu5P0bbAptTKG2fSfq1Iy0rHo/GiO7I1nhS5ASi4PX4ExvS+GXCFzlfRmKCjVa8S9Yy/M2o2WkVz+40IwXpQDjyM7wW/p7d1Op35htJKhNTtOj9WM59TJ5BxJz/jtGQ4Rc0NH2FGgbgUDHkYIoqgIAP+rZumEeknKK5moGLlkr5RMqAPb70lAUivpEpdCEQ00IIWHGUH96KR03p6Ceg7CBr1i+g5Jg5GJOcspWXluEYOsw5OcbMM/e2Q3mq+CItSGVKcbtOlp6JWC3FJE2oCYCLG1ixpV/5dYxEwRXEfSTJVE3mjL2hg8WNRRP61d4df9LRPVzoI5Xpb3eqMBgfEkHIaiqI5UoS/mBDukN2whZeFDvQiKrcvbP6k/4E81+PvWmJKQnxyiRMYeaLAxAs1vjWMbvjv4UuTLCEEyuRPTRggTsCEz9T9Sl5y3CZJeY70O20QbFvu7TXPmbiX3ZTVXkrJleKU8SESGWd4ma+KvDRh3sAfEtjSE50MYnzSNef6K45U/WcppOV2lA8ks9lij+npQaGvSoS1DnuJSwU2J6t6tCSlaFRCjGXrMPyXSxffC3lS4wTRngye5Vj02y06rNUN230dxkwghz9Wtoj/ANgV6qiZu2fJkMtaAw4rO5FcNeRrDe7Wt9t2vlsi08U7JMzyEYz3W8oxAnaFiw8VjlwChcjEnES8YIFNGGjMhqGWcLqVPxRZ/n1L42JCvCbn91Mt6wdVceaTbanzaSq53i2qF+CCBVNuw9sdjyK8hGiZ6So6IU3dcwLxlBoX/qql2Zu2sss/hyrNxi7e8kzcYx5Z6xzB7jBcoIEltGaH1V1RX1r4bF2EI0p2/nelpn4rUzS6O2EPbupPt1GkAEspbcLSBYzBfGE/eQus/RjfnJ7gtiiFVdJBV3FhuDSrE4W65rSPKcerFsAwR5qo0tb+rShLimf5BfsQR1SG4vj6Sy6xhnlUQ/YfZKxhOmiBiCrLUrNcERzmixkScXQpgrEJd6YQtCsgK1uqG9KJEMQ0qpYEtWy4hZvQmHSMr7GoPT9XSq6YFZInQG8kUSX6E+pv7r4jNobKHZzcJbqavS0rdpximNcBfcTwowvgvBcKXUFsEnObcIPcFDcklCaJdu2g/zQhQxOVY7jm7UfJg1dlI5yt1DFBXtkfdUTX/lmgkckuoxp727triLI5baiDNMzp/FYEZh11San26dvjUMZ3AuNYbP3Ql8pPQtwShiSdAaSh61C0gqCf336Jgo7VwVNzgQXD6n/nTSZphj+yEr4fdthew9VvBmQhgk9B0xx07RS/p+S5+52U4E2G4J3siJ0KlUR3oEbwlKvmaQ4yfoFhCI65v2OBNvVpPK3d4iPyYUmlBPr9QjrT+7Kch3Bsq8RxE4PAUML9wAWXuun61FcR8sgMzNpozYcm+K0CN/4i3Xpjk6HE2kxrEpotX1dynS0tbHprPYfb0/mFQz9EF9GfoU9wUgqeuyQ6FKSubn7vsmh1K7sYzxKrBBTGm9siYLmfzKav5ThOBF8Lm2ul30j4U43XetZK5ZL4dR/6ihGkKsHDFuL1GOs0axvv4IGThMQurFoqYlkF4BDsS4cylUNzTXhcNxLWFuUR1BvkLkuZr0eym9FSg8tIiJ2wdFB/MlMI2gbxlX1vG9L8MUaeTimvu007FPNsW7lmcTs6NEiTfzSRsEtqFMASgENEQfPCnCMOrP3+p8lPQUfK5myWa2vxRg6tTWW0J185Ez0aJTu0opgKWl668qRAMKmAEFexJxVUqEMkyQiY2Q3rAJzVGNScj/iOcykNsQz9tbkIaFvXLaZs5g7JG3j3EL9ZqMIJmYBtyYCFBkaGnEUOIevI8l+TFosaiuGmqGrNwmMBG4QfjoZanyYNQvB/9YTMML04p6LETNIkKZOE5skRKKWYQjTju4F1hFJtjuQlp0W6qLEuxFjTzoUpCJ6JtkXSKQ/WXv6efKlQqNTqvJlq3rGdhKLHEJifcS5Sqqy01gc5vZa+rwSr/KxcGZGmpBvvElUJ1vppm1n5qryryYb/F8OjKE1GA5mn22KVaX+ULrZZYM+76M1im8bPOB/We3Cqr/CJxeqH2db1GF2aDgm/U7E6k4+wCYLKQSErIVTL4OrGkBCb4Zn3sPJabtC9ExlcwBly3UzhqgRTq41Zrvdv915MeJqX+PjH3S8fscRZA0IppvRqQasClGd5TOlV7ZEpSVhA9MrtHkzVzE+09qav+PRY3+nZYypVPqghFCeMFkih6khX+audP2Nf1fEkjZSJ/nOa8f2HPFvWVMRAygM3dLkodZG+y1c3cQisIkLqKXlaWaAsz5fXq2zqqrq5pSwyJCutAUGQp8/holRc3vFZQI5JvtJKbWzSdvJBjRFFowgqKoI6nK4XjnCDUg6VkfWIa0wvQhpHlo8pRJLSDrpRytNIOV2Itd0cowvlEITDF8p2bV/XVdQUDIfhmVtLp5VzD6qyusX33BZKeJy/SR5wc4m/FvzXLBzFs6SXtVwMwEEUe7qjbYh4nbEGYsBL9y4WqwVU6Nq2YeJt1Hdok9x6m7MQ///hZGAR3Tv/sAH0B5AFCAEEAUQE2/3/mpDrQPlObhvjTjr2hPL4AAz6MLHBMwIfto7vAWqpwvFCUiTdBHQU/NiICM/Lm5f+NV1jVIf5NclU2RkMkE9pr1HWyJ8+Ko7admqkDukVCs7U3QbRJmilJJkru6WssVnlEihNy3PV+QRqWbGPsSJt3hQlB1CJo1uX06LplCOPikVJaDa7zpWt/seZAkBlhI720c2OhExMcvCnkTiVsvo0/DkBxTwaFOdOVFRbca9N0Vo4X1FrthiiHkiLaaHRC9+Waq0RcTgE76ucqI5U203BoJM/dQsshFKBnZUa/YQPzXriWDjggd1gIXYFd4ETzZMIq0+nZzxowSBqi+LKEH6LpFV6JRfQTDHITKt6v7yZ+twhBJK5GMTF2t9Fa/lOb1I66EkIuOtE1kucBushFQ+J49tXHBTeTBqEjV1DsvR5H60Y2BXMsbjcePEA8uyyaNoNwas6HWuWW8UvLVvTsFnswmvgJgc+oV+tkrWUEgSoI8hiF0sbdHWKMAS8497VbJ90jxSJ8KiHqzOWpglFHeofddib+BJHETpig7ZL6bJVMuqZV1/14kbQdFymwvxB3+zhY6xNvOPjSIe/kjDPPRpDs9ijKdy/UfOqRGWxVAW/t/bhCZXkLPqeZbvgUxqsrz9YhTyyk4qkRby/I5Ah2tT+6rV9LvjFCpX1hATuZSxrrK+kKoKKQ1ys5Yp/3Mx5G/KfLE1ByhLzheGoehrOxiVSiBewrlfmL+NI9+eCj9qGftOI/F1LyLz63QFb70pXfCkFFxxnML1WJZF4IB9PNYVzciEZdaOq84rIjhMad6X5FOW0PcKDQVs5nkuEPk55UQT4xvGxtacOrpqYipRLiYArcwWz08KocB2s7bjC1QlKCJfZ06YXeXhLkFZx0CIODcRmdCrUy5jeQqOIVUgii9MgZ+wRLtpMZ3aNrXs9inzqbk8tfzUwhkdEGOLlCkbpkP2P4km0O9RsWhDXYrkzAgnjlYTQTB5BoUdxjp+gdaIpvKULca9nsAVFH0CbFcLjmFtXhAnnnp7z6ArSQZ1UbFNKqaHrH0JggmWECwL3GYyDvqzrHgme6LptGcW8AguT0x82UHJ+7do7Zu0G24r1JOgkJGpNrVo7vOrHrQJaKWsPVC50eUgWi2M4x7Jrx9lsKFCTXcBFPrTpaaK8Strp20JfcO0RsN9ZguzYkB6TJubyV4T5edR2U2Ic5vnKqL1uPfmIbfYCoVbVcYVwRUwmzGmTH0jMKkbKU/kJbpPhyjZ6Tlmw9RSOZb4VWEIKM3pjiZ4tXLRXS9clfqzgRwHpFBVtJst5tL0q6Zgtjd/f1HSYyOksJ6xSx3yO2lQih/Q054JOOARfPUKwbM8PJRn8L2NTMJN6aDE038ch/Kl5Mz2P782QDJCFuhkco3+dwja/oD4QzwQQlfpcx682EXMucKstHLS3SYq3hEXshHEoF4P/XbH7pwdc5WxTr0pPPl5N8wEm5ajDKbqS646b8qWqjCt4GxS8vFyZkd0NCwUQNs4le3LMhaQ5/lnwlpDkJ5LPVWb63bWoFcGg/L8X0fTN+JG26r8hXqmJMKY/lm7jsUOuYW6uRxO0LcOoDF5ZpP+923iBa2f7OQSINWNLQ+zXCiy5gsa8EzWXDZWimVuaFYcNz+mt7UKIZOjhFOwu8y6/kSNjifDlnyHOkaOcnQsNqmxr2lTOICOMZSXqUEqnIW7l8Qpt3+l5o37gkl4aEq+/yKanhed5oqAjCdE6rKFDDG3QGB/IXQR6IcqNEy9diKl70HUa3oaacb9vUTqnVM9jh5aZdm1GZq1mJfOiiMLvgiIl9iCiayrxfysKxfUs5CVqfft8TXLf6EF8C9O15iaLpkwYGSU+RUfOor3u2SS6nsJnAjGBjpJZpNi6ONXpuKuzP4xwgLLO7eJWqSsZlf86Xb+wlHKPUjX1Q9SzbO9f10JOIaIiqC2oT1YwCvfP3icr83rRrNuEs69YDtH8IJ7qYKHMXUAKjRkJ6fP5Tg1YgzPOAcJ4HLzZ46JTCdDQvsu9dNzkid65kpuOo/+Eg9YtTxxOHLDcFc6W1rF2Icr1r6URCDK9mfZohRI2rqCHoWpghCrd/Wn/akVWWUu7tkxKPnfE+3y9tHzxdP9Jxz8v5ocJGtHDaTxPUZtUTNBOu2EIdDJDmVGLcliiu4MNWorNpRPiGoNLcJwORzDse4hB3GOQrvGNyrSs1dBVtt0aqH4b6UZEH5XjmPSXzsUvOqxQkgp/m82PjgIl/944tCm4CQri8TJhzyndwrrDGQF6+9VTbm0x1+TpDk91yBTi6FnglQ0dkEsRV5WpYN/AgGEsSRE5bpzITmOhzFF2DFo6rxArOc0TxU2/DJGXLk8UxzAz6L9TfpA652Ahn6JQLA8+jIcSowrVWNXYivA3mOYiItq8JVecv2EsZmTYEmfY0A0oreYPLhLAZzYFBKMUw8hoqXCEROaTfHWA6tqiNzanvFW83ueriD2VWxPkxcG7VF+MVpUAhReNEjrCs9eKk9Pefv1fK+TXgsN4kvi+pE5LadtkSi3NX321IZiijfex9p39Cyp3VaGY0KwTGVl1vjiNBzEcPSabE2qXHZSge+Ls42G27I1OMpmqol+mZ7VlCbZkguJalXO862LLr5JitOZdLMZJ9OU6t/XUnQD3WbMj0dI/laIh5NFOYDE0rzdUhaUbxBmaK4+28qO5UQIPWt1pnwveV6V364d1ZmS2d8zX+E6eARsR5EkSJnSshXG1bSPKskUGWcbDWOq2jBLx2Me8s0ugSlBWtKi9SxOr+NyFC4AlFAJd9RJyIVXzgMw2T+UwoPREKADwM8wIgYtCqKiIMCcu51LJaTnd+qSF1wBSsLlEtBcAu6oN7nm/9vx9Qdsw6djyAKqMtLJ99B6KGgPvhu/Klp2e2wpiWFx9ZfW5qstboitaiSKdYunKdCZLBCl0EYHr0M1dojbEJURYkKQ52FHUgbAzP8p6h1B3I8DYjG23oK3+ykk1dkNJ4+iGbzG5P+iHv+WhlCHZE0eA5plaKYyhmE4JgKGIXw/skSekRcp7mayLG5XOOnmNDApvQpZhm/t/Dg2WJ64ARNChsyF5WNFOVOmRvNKVY7bCTg4vTyx7eVBxp+ejoA9fJ6zRFVUvYSph7U6wP9K3a/EQuiYgrSYGdCTOfVgs2rsv1JN1+ZOUTg1FTzsQkKUYa52oZb3q84WjCKIH2RZnWcYreXloy+q74eO2r5FXl8sGQD6sGqcE/6ib136wvA67ZZy1q03QQHXtJRmlh3s22Sg3Fv9oCy1+atLMXtWhynu6dvIX5l0PZbD5jVWB1k06JU0oGmSoP4ts7xbKBcMUYXS4011pEaWVojjkXy79EKcJrvyEj4ZYKkyDukkFE+jJYvCeEb5o5CF6DTpD6l7445JMYEnvzzt60azV6VLWbONx9rVSRBYCTYg3e3ZhWM3Dusj3PekJyej5CULzgtqmlk3NBjxXah29oim8o4/tjgU4l9sHN+7mYHpNcWHj8jrKfov71dgl1FlWVM4uPK9xxAUvbrw0oeUxKJFUb0oaAN7htOK6588l7GsRSXGcOkoLTseVA2mAx0zRF5bB5PWx5DUod8RJ8l8Wuxi2W3yFaDSqCnOTCcNFWc+yRIfVvvDViI3SrZuZatpsh2M2hY65arJQWJf3KqCWNwLlxLFmuo2pU/Q1xe87cKllh84MFFloMIFMB4b3STkubjrN2rptDxxreR/R3X3jrKG8ORrir60YzYMT9SSQbWwqAUUVjp907glRk2HGpLiqBXrPWwDI8r2548vyStZPcfiHUwXTS1Q1Y19o74tBe51dr8rsRZm551WsB5PGvVmM34iqdZMUfTmUxbW1izzv93EqLJf3ayo/UNCuJNdjafGNMboyO+tyVQzaRaSlOUuk+bdtvUFStgx7Nluyb2611KdFHD5ppvi24/wlBONWDOcYObUNU3LJxlGjKTxKOGhNM/DQk6q5JbqHftbVYkcpw+qo3B0Z7Gyz/QKxNWJW4SjPN//pqPpSCqYm/rxxKzOzxuEGrS4R6G82J8FH7RM8DleyrrlP+ONP3k1iw5TNvb5x0i5NqCKp2zqBV4Q7gsGpMbwmAPE5Y8AL+endLjAfrKVRh0hF3U4X3JI1Y9EZ8SjLW8+jbi5qYyYS41dXMheTumyH/DThYk+SG9M8XsUhP5T+dYAsYjYPcQQQpBSUW0wAS94jpu80qEC7RN0vNisPYQxJWSU3FJvKgqc7AsdZaNhwEPJiKkrbnEtGMlXVslRTx4OUww6PpPhz3aohGnicyTn6WYxBRE7NaavYaYRcNnA0aS+1fbRMtDAHVCIWI1LRbsddUFMA0oQJoZ/jJDPBBQhg9yqEX+QnHaSBnkBOYEnUwPwzMIYEDH7gEGIDumrNgU0B113BfO2iWrt8Qje3wFmr1xqBz+iGLroxmBKIvfynf2Nbat9N8uJ/g5J6XzASXWBH3wzuNIdPkmcUUbt05sVBUVhFcJsItiLtfXV+ow8KNBpBIO+dymi1KgMW9CNwPt88LSZFeEUHsIOf8nsZg1twG5GEJKhoKk1mVRQcuWGoa43ZGR4SKSlbUH/tI1Fp05OF30uLJHxmqP84QVobQeMsnPsZS8fC3up481CDVOsGjoohMYeMNqFlpSxQqjTNiwzIIslpZGKa3mzoPUQn6MvqxNc4WG8CbewJkqORnPl6SsdYKL5XJMZTDHRG449iVhCk7P+V2jN/s03O4BBgQVZ1whhzk6BCnfNu9TdnKlPApfbdZWKHLToKvlHdpiO5hILEjKhfhG5iHlN6SZDDcSPKpIM+JD6RuVXABXTvXiPo1HHgJTK/GREagBkrQun3Ik9K3W1cLEgUihCxR/6sgpjUjT4spedQKA5dBQErOpgjUFMQNEkVRwnBb1BLUstaP2uil7ePmvorzCclyBv1B+kgNJrJPMCXToXDNWZGD7iPcNiWXUylRS5LORNCA1BL59Zg2ClgnjIomtQR/oP6vwhZBRvG5Z5DYDwV2vDWtmCI9MJGoj0Q5jr++FZYrbWazxSY9hwNEbd9d+u1OI8Jtxmas+9UZwPKH9QolVoVgmq3Hh7sOdDQD4hkn6PTe58CxAPr1/G+KbNikYR1cC0EXnZjQwqkNgYiVtQBCOaSWb3ftEmJVRGglBmN8+gasE9f7Tg1wshI+YDqXZl/tmAiRnjoB5xU8aU3l5Y9F6Q9AyVaBOY2UJFSh+u9cR2BKEvYaV3PiLYoOBc+xXROm9Z9zmjMrcdCILO5YdUibkzfII0ECMw0QFcC9DUbE9XpOaGJN6O57wrAmX3XxgSHhtSFWrEpBqbMQv6GjAdlAbwM+x+AD8LcChMkUmzuDZxPxIS/AQBOTtQIn/lgbGOSdbNmW96LoGfmziIa7F5Z4aRLwWEUE+oE8rE+Sn+rzYxUBNzJRMSYcLiE72C5gWsmlNWSlI9XHUyy4kDRYXRAnFQE7xIUZMTkN6IIXD1fi8Nc2H+D2B8wbmIpfeCjKc3Vsb8y7dg4OBID+3Z6FzlQlzhkgQAM0/yIHilIri7zp+riW0xdoz0ka6mb78sGlhX0Ylxnn8Etx1MNg+J3Swm7AhaknYK1FLMoljpKTL82QsgMG4YiJ7+FvUiXmEyVFLgDECzumHGYyMAFwPsO2B+F4ygTatilx7CbVdCcWNnDxtckglVQOnMU7yR5YhwbDXfX5QSDL1k1+/UwRy5eNKtCE4rejhWEwQrjGTUU5CraoOu0fMvRazQnvP6fOcQOYmZ2rhQIS4fxWIn7Tbq4+GzyanI8WpFRckbZlbCK1+6sFfRfjVIMndv9eDMnNXW2FGQniKDInFLjK9aeGlsaEjMhuFMKkbp6sXQlFUWilhqGzY6+achyzoGMqyxQt2s0KH4yBsswLCWwTe9qUUtQV3a7OCEGkpJfHdeeyhSlgg4J0r+kS1E2ctMVb8mcwQxvQSVJIryBZwpQBug3rkn5TiPrmS9xjQCCm1BelYeGQ1wOuP9lD9sgYQCQKdJAlaiyN+pa/gj1XNhcwsaJZTwou51Y4tc+uIfxWRPxdw0Jpr0I88wJEgRq1XxTZJyfjT/A20P+ceblXdMiq31fDIe+6We8tso7JiytCvayAFaVG7rGsL5WdT+el2CtSyKUGTKdDWLCniuhJpmHAyuuxK4P8qhOIeVEwboBLwtJlmVxzb8vRmllhUWMus+uZkSYeGeT+TUfn3eoCpkPA1HI4N4rscEX8QL9qBcAWQ1QOHhj57diDNpfkSAuFJZ9BpXFGDbk2S3EsTQNbOieMHizQvCV+2vhghkhBELg9LqWqS4hDCh03Qzr5sGvNMDCJ6DCPsF7JULGjKvrgTY2BqAQdUvDdL2j6QXNXg3XiO+gV7Vr8TOC0WhLXPxwwISznRNFNudCpLD4kpSq6GuGG76Yuq3vWLIwZ6QiHmPYfVmAzK7i3DZKy9Ym6hz82f0TIQpXLbaVg2ydkILsf0lwFda0uVpc6ECsUhPUEg4plP7NxRwFCQlZR7aZBueoF4YBvOPYU17M0pdvgD+qWeiBW5cVEQIdt+KQSD525RqGscPfmBi/D/3HIkfYUhKQd059bNe4xkbVwNp8hIpvklu7vgYLLLJBS88JWTGHPXaKg9hMiYpg1KrfffFPf9YFLh8J+QnhZAEHUEGpPPvPSPRJqMeMsx49eLZ3MDkY/85LSZPOFltpmI9hBQirUPJpCJpCAEaxqdKGqo5ijyKPwi/kp9QAKuO8No2AiC5q4g/lGBUjJ1nU+zL0zR3M2tt25K18j1yt1nFbnNAISpWAQK9MYUhdmMPKvTicZzOHproQtm9cEhDWjnFG0JGOWOqGBEGIrGyyEIIUV3wNjkdTNFw7DcNmIiOqz9/a0qBOpzRvrO0uL996IrCYaKM7K01h8zorpY4+FjvFXJWohgSGIbxvpa55IHnAIWAky5Vzd44JKHJrvkNF8gao2u+McpC8wSC5+yZcJvgeLoOhZtxOxgC56AZ5r6/VYFNYddEb8gt1fz+aN2RxYFtarPtoqMGyED9bGkTZsowbuQkRtT0+wshTucK7lfWILIkkjx+ghUTQRBihauCkbFqBVP4VcRdZd1OgiLSl6s6IrbWfGKKlFNghN0Qm2yQQIlQmzXRSsFQ1L8fceoEZQ8ehD2SY1sPNqRmh8gFxzaHxHDZTwSGkInPKna8zWPUJKJvNoHI1NmwprzJ5N81Nqu3flV3ZO0QH/bpUdiwmc4woX6I5/Ug4sFgkGx0W3EW6EsbjgLYIy5QPIM/qQgY1uymMJWzPTcoq6S2b42vT7SXCGw6n//hUyYQ5Ij4guM/74H/XFIcuuAlwb4cleCU9pGpLy3N28+hcEYkJlCtpiiI8SbjhHmbAFaG2CBe/pefk1OBCUIhUht1tjgFtATGWCDdsRxFA+MiNVb4OEWp8iFw2IQUxBOpFKukiEPR3GtOKfO0mdft94dB0NeJ0Fj+hieKvVVebh6hQ4G4bz0OKep1MvUyd3JyIs4TBj5y0Rbocud1yr0pPFZ8Z/LV9zwFuTIi1jiMTXB2ydqZ57oaUL6G5M4YRWZarS+jVgt6jJs0heBGlmbXl7JkhD2umJr7UUyhTagEAlMQz8x+i3Ay1HlqHtfKMeRQwHaLuFBGrLfenujWufIMcn30no5gmRCYn3tg6pWxGSeEmLYIS8FsF99AqafmvHo1+ZgSMruGVWxs9MvBdEwVydBU+5xwrT0HJfNQ5qKev9/a1CyHOca3lQGaJ/jk471zokIp1OxmEJ4IJXRCS23+3R8llwROY+pQn84YpQasICG0VNt47/nCXQoMAYcxclGOEbKU8CBXsIE6XnJFVTiJ/VCumbJyUuYaBaKoYuq16CMAQQ/w5g5cWNh9LQEOMmTP0cMRl+SuLe0UPyffM9L/q1xs0DS2k8dKtX5/PcB3fQATUbL6Am4/gScRJNxbPH1kLTQaSJ0hhFtIuIOfgIMEUVBqTylLh+ftdtMCFxNiu2i7JEPllyPru9hg6Adgc8vlCeTHVpoghTQ3GUJQE6AOQAXoAxgTKBJXNSAWnVIwXOsEv3nODmrZ0qmLc3Nn7JFUV8hFibIypGTCMSH2YXnPXaNSkKUph6Dtkw++FKmPkiXR69MXO8MoFfpLDfLmPGqw6q8Sece0wqaU9wTogNfvcWdEUmSjRCizaf8dmQmqxS8HxRFkd5yj0n6WFfy6TTS9FEQbo9PSUEOoYJIaJoigNX8SvYG/q7MMhcyRv00uv3MunI2mTZFMY6iQnqXOJKG6Eg0LSu68nOV9WLwNKpb0NuFx777vM1r3jXUbOHhNU0DCULsaMop5tFciz/9F1RiibKBWC62dqS79nYo2OVDo9UEmHc5aRq4xKFf7ZLjfDaAbUaK1ebboU8iuLKD2hqCXXXksRpEg09GpoOLsNy7FHTDRS87kYq15Q+oToIMizmcSmfmOxtL9qIAsL5cVY1CelJmJXbqQp3afWLrlFrqoIB46kH40bARE+JAuF8ZF2Y2Us2RVBuFqoyTWPNp64cOYsoaIRMCtiZzaSUFOOnKsKaoCv6Lqp6TnLPlfKo54C5DzNQHYXWOn+ccStQM5KSY6TzI2S9SSqRgQ20psOtzvJUNfRD13wpNNNRvsEQiyFjGX1Yu/RcFxyMd8u73S2GJUZMo1S5n6IZxEUE3XTIB0YohMyE76lOxdl103pGN9oNRGsApVHmxVa2vM9OWooGfMtmhAYrUQJo6kmNqJapyTBbS72y45p3R0NJSl/crVmhAWQq+v3k4pUmcNofdGwOsufmlCTG8/hF4b/FqwyUVvdUUQ0GJcT2XF7RY2QfG6maA5DHsLtFlW3x5EdtSK8y7qlm+vlKeF0KtU8OpIKs+ie3eulmXngN8q6fZ2S6+tRBrHIUtZ9f4PZsC0bQ/V2nK/e25Kfpa4j2EL5m6+cuUF+N0WGKCMWMvFFa1+yvPvTXqdk5nGt0iA4cEYQlMKbnHbxRt4MWUuf+zwnBXHZP4XKJDjHybd4kxIsUlNOWuGkcufX4UVIWwheGdSDCSC6DZcpKcYzUJp8zfcnCGypfkWfNyK5oL5X7AlU38/hVH7z+mcqUFlJKh5Atfl/NidBqSbgwPjAopR6BFX+Cr1cO4Ed4nu4s++Z/ulVaknCJBTA8pOtotv2zxoaUQw4qBWa/tho7PeZh9v2vNj5DV5H4bIiMHHCTVe0P+fUp8gE+F+J8UJQpc6AhKKvUbc3DSufaeVvejTH6yJriSRj8rs65LTsbLsvhx6FcoCfUhV0sfZ6m4RqeUIovm8EesljAkDv41ietb3uGVt3ZDl3mKKYcwRMBOBAqkbZtTreIKCTfzVN/tTLTDkiELrlAitVaHKnjn9WHGDjP/yziCHZnY1ZS0sSRhEJ4vO8UzVJym7mHJsxK8w5IjFCGi94gyhCNMG6unCwi/J5Rz1FmPYELtWVpgTVOErL2Y6inGGIbM7NC9RUmw72Ic93Wdd3IleQ4il9U+awjH2LtDvkv9PRYt4M2pHdc9EtRZztoaTeAhQKwFccDdtlcouLwIo1VdDsLiQPyzJmbkA4tEUaynLVOkCyCTApR/Kd0+ygwnEG5U6n3ibMg+FIKh3cevXOmlFNl6ipnEMpoUmXpUfWPzU7JYVYshVIQ8RYZeXUjjqUZkP02EcRs39Z1JG6cTMdS45Phs6k2GNLqvrsoJ3bSwokNxz/qW9T2UDdWtZK0y80quiZ81HFVO1lvdB/80JYTbeaeGswkBL81Q1Ge770jDabWgCupcSeen9sf7mlOLN4xSOVdQHANYZK+JB8+6WXYjfQOKs2cJbyzmqeRwwImWbu22On6JpFDZoJNU48H80P7wugZIgG4mFSwl5E5TxXJVfHfCqzud04ufdZoFmIT++TiM6+TvhdBGtGaP4RVOPu4EP6xXzAmZwvQjoYTVPvfPSHMsHUcgQkQj+wWxWUbMXGV275L8oqxkfvbUcu8SGUcFw31m6m7XhMtN4LuEKuIIYhxl3VHnpGj3pqqZlxMwhHCDY8rqmqukxMOXqQb66fP6zhOSY+4+SrCesgvicM12mq7tqcdRY+95IFk2JJSsN4wGrJaFYYJ8ceu/sNciadA+xI8lpGr1yxO1pU2fAFc2OzM5U/riISikVhY8mc0cauuoXd55hyeayrmCSC7OsEqs6Kzoi+xvEWpNlb1dCpOPb6tSV4T6OVPj6HZpEHgCdaiWAnOe1/c1tNjwzs0s78/99f+u/gJIk/6Vyc8SgsTJKHl9b+QUA1y3K9sFP47jZlOCOyImPS5zQ5ncEHa1xrMUNBjubiejBBiYxXjaVpwkf24hKkTb+33XnE8yHfSBsOnfxddYukgQTp1tHWGUkxHMGyKB1CIEboNm4slikC6pNonW2P9aDcnvXjbdafdC+3IGYOQNV/YNGL8SHgcPrZlDDlXalUMs5jg6AYRoFXK6b+pfT645DAUcJy5vmLkivs+X0gwWaUUQbpsmD/EwdPjsPoxF5hcmGbzomGReX2bPM68FNUpInHW1ncQItn9jlheUPjXah6GrOhei7e45d8DwJTiszZ9c+6xXtbybZ9I/VTlSKyzJe26Eu2Jwuz9NVBBS8yGdm7GAu+V3gPEpWrdfdc2RSHhZ/gOQLAUeaU5JBQsw3mRZVjKq+iR9zEq+1hHJkSvDLbsG8FaslO1fFesy3LLbnqDkefLYjAy6RFcJRkHynltgvlsSKYEqVK+m3OWIlgsDEil5hbF2tcuHI1ioTy8LQsnydgWUKqfe2Figh0w6OKvu7oTeMv65eibq5mWDw3p36keN5lVPMpsQ0uLuOEWzqvR0sMiapRlLzTuNJmPXTuWlyzRWDqHRGVfMumk6sIhiW64n6YETFzJf6xQE50arLvBXt7s4zYVcpTobhjGPxETDHYw/ZunSiWUJyKJId2dKpFrhbp0MrlmfrMOsZYyn4CmawYtX8U08D9f2xhCAWkISd3hVHxzDViZtL6jkhlR0mzP17lhq3yRfQqKQ5r1RJ+V2YlAKjdhQVPzInHxM6j6gazVS0TU+401oPn21r0hdZog0BMtgy6lxHHWIcazbdu7RAWLRpAcw8/QeEpDjJH7uUl6QfSRdLiuNGk3gZVtfUfgZ5wAginwg2BTQghxE5jhIDNmn9IH0Iu+q+Nm4NJJ9zXYjoNbgm6EO6bYmZXhvBEFQJTywirHjcr0aTijg/xBybrq8SKkXXcYY+xp7YiXAS1A5KttlKjdXEJUYgPUlADIAIkTMBgkz8pjIgon/wzZp8TIbcbnIL4CqQdYxswKWbsL2xS3cxGi3JqUuS++D5fxGKOKnq0MU2CwCseYPUboJgJ4MDoXDmJjlSlN+49oNDXwhkDQ0AW9EXtIvZILeTRmn36bDt+bFKAhDIHHw4DGYi7jgAh2uZ2lt4fM5j8D3vMr6PtWWaQJt5WcLgxfOk8mKWFZESJ9sBD0JsJsyJlyeLrMyb1n2jAGjRAwGn1wWdFXk100zvNAnpFn/F8i8ZyHH7B9K0y+nU4nYNkDSQYK0+oDMOXoZOyY+kMEeKDcxrURGSC6hzA4JCAX8N+7g2sgCOk68fzqhV7MsFjmnSxX9MOU4eQ2BhvjAy5Im52nVIa/vEeIPuW5Zo1TYsmSdmuU0zdIikrxjcu+7M32aIkuCfHS/wu5Y6oDT0tSCVNueeplkNpOkeQYliEPp2V1m1H541pPiKikiEWuo8E22tOUXfoX0gy7L38Ql/O+3ey41I0u/a5KiPrBCrbdpOzGXQcYOcBoQSwKrflG3gA7wV09XdkBZT4xoIhYuTUXvJ2HxApoIdqhdHqbRXeqaRgFYCEBb5/aRLmOQ/SW2axXBHP4wm5n0UO2itAo+ADuoAZjV/yrEQlkHIYzUpqhGitDkzJQpbqtx0AXM1IjXl/FroCVwdscWmHfiTmjV9YkZR69Eqbrpsaduq+XLGPN0EWs7R2wyJ0xUm0vkTpc4BYB5AoZ5vxW634XQO8xsIIw5uJwKv9bmOiwwpRfgn/PJgQTMY4+oRYTV4WqJLaS30U3ycw6Ec9BGp6wcMg7OUMoLZFvCehPDVA1iENUVQw/MnqmWBWN6gnIJYSBaz8Qdgf+FTRLblD8FO2yEktLuJF5r+Q6Ms3p8LAJCGrAfJv73Bzgh4SNjySML4sCpuGbEUIp4FsHqBHxRalscvUeE823/w37Yn8DYB5xTRKWLWM5aq1pmlUPUN3UjUN1K4czhbvKTJWBROGdge7KTJlS4yU4m/HlnH5i4MDjCSuQVBXgZx1FgVdApcxKyhPUeihtTempAiGRCTbzlgmlqG34Xz6exk+JQ02IFN5nE2DQKYCnE0HOJaTU8zbTXhNkgZID9L4D0CoiAhTAZnGPGO2DBzNFWBTVIPuTgf0jtKUgPlDfUqQ1iEsStwdArvBLHuZjZIsggsxj0PJWhIYcTxQhSHDLdzikpCo5btuaMlHjjsTGcrgInOd1ERRuUs7Kp+WLTQw1/JhXNnNyLFvCT+Ddr5czfJMioBCC+t2R80QS4qk29VZKXtfEgwItoy6g1ycMGNyNOIKtkdWbd7Rh7PWQlgXACwniRyDjMN7UDnjCgW3AW439KLyWcR4qJlFTJjkQXIVMxrK014MCRo960ZyJrHRoGisLDGQP0wIRGYg5QqTX1OGT+DBIiQ5QQwBow+SWF2jr7ktFdJUJwQadVZnRxiBkjYJQaHNK66c0kWwLRJtyTIshNhd+IwXwPLqN9p/9HmCEiVdn9U4qizJXcTGSRk7JQuo+5J22v0BMYW4ZlgE3HVBUjanMdtDpub9/ggxTawhM3PPI39PWcpIHoyeAeXLjLG26NFsXxCvFTbeJhLT9fRaUJIIdq5TPVJsewQHFo1Q/OWGpplCuwzXs6AKMO2zF7ElxYjObfTwTuQsxpSchQ8KdRztar+PHhkSWBpKKcvXpeXby6kQxAwjysqIws2OZG9h4IgBUqY36bLSMZNzG4P/ljE/jnu1lG60BYQpKINAeRC44KJHffMK017GmsCsgQTi7FrwzLksmpTlhWrGjh8PtA+IBmq4B5VvEd4pE31G9rZdgm6UBxpMuQEWIsAipBsq6CAq6MqUAorsi7dVzkUIEEFF+eQfr7loUqnTVsXBX/viEsam0eoasOHsx1FNEe7o9/tGeGaKTEFi8kCDPhMyFaqkVFfo5teWe4pjq7fdjcri6yphoay5j91ZdlOZ3SMcYxsAtJ4ErQDS8xqFxvxMV3JRk+qFhV2Bx2owFKZGOdkCd0I4soigTQcGBrp0S0dcDKRZz+E1BrF1yT0DfIIRcZxqlx2a0UU0qOBbGEHNgU889GYAx3nJlrXU5jB/JNYkXXIRf69cKmCMuhC5Fc/tIio0b+7z1PNYIlToRJIpFuSdPn3TGZ28OeIyTXilmFdoym1qguVSD7uBOi3FcryzBWtcl5M1lJ9Q0slSIcJ/iKrW2yyJRF9ks515yjUArjgUMmvcKHOpdJ4KP+pm0e2e5m4ILWI7FJLOK1ohZFKa+kKrpGYEATrtpgiiRpPsFrNuFgRFIiUxEf0SsEmBJ3dg/v6IQgMhowU5cea2xOxD4q9/09Atwwj9xSkYjkTU0yIjcxnIRtjEEXzepfDqLsCvLW8QFu0Pg07oCcrRW+HjY2joIiaroln7wOlbJCbyI/ATkzCOkTWrLw0O9biorL+QYUPKdpwUwpqmi7q3g2+V+zH2nvos4j/iEwgDABqHSwe5jzITylFn6/C9czLVavRaZwaN+6swqcI8TwDgFlIfCNIMlhhVgQkFsdShA5x0+tbSWDgRAQv3iKF9guzUsJQU9jmQa8FAe8TOtUrOGPMKTknMzb3Hhs1egnBqDeq3DKVH4tExaC4iIG9Z8smaF645XjRGm7j119kqwJ8iezQ9qZeibq+abEB6NIzRlWdAKGqYkBc3OFs/LDoP7qTSDAfxf9Uk+2L9Z1F/rBDGOgXJSFk7hDgezmvL7RNSm7Mc8oTDO+zV4qUXXlv4YG7IPaOR1A7JVuww4gRima4MzKkEWnWfEgLM+zS+zybMjThZgGNMScG9nna10BGxNXy1Dnn7Bbf8hglhTExEClrDBbnWBKpyKIKc8jqKQULymEs63GntsQ0vZLyIExIa6AELCPnaYBBH80Zx4NT9+Myc9hSPG46/05KKA/uY5z33jx1QpayafDcHAnBqxmFfVToMpkDGSJoKYIfcAyzjJLxJrQczKNXTBMUZVVyIvF6xs6OlIwtBJoWv7a1jG1Sl8CGv0aQM8oYTdrRARyZmP16JoeswBQmR2QfDsOXve3RFlt4Mud5H1hJnM0VU7bw6rR5Ll2C/NQHY97iHQVeVQgKb+cCYYplcJ0En4ATtuyJerF0y4qoqcccvXCjCEzp2BfBwgqJWQQuql/RI/Sdy6oCFqN60ZbY0//44uCSiuAwTWQeM07ZCsG4TUfKWwwj0zO1K10F0PKEDiJalHBJcvL7SXelbAF5XQXWGSU7FXoKy3MKAFkIoj5zOKL6bcI1Dsb6R09EC5rwIIAvdgc1yixjiv+1G/d1RyWCA/yU5MQovEuLNr4pG7BvJZ/uiGwOQW+OVzYTo3D6c6L72IbFvhdwrqF5RQd+eciPGSI2DToWFsGiNFBIrzwCKnODzOymA+4tKXNXbxxUC3CneEnZNl3toRjhUx4C3ToO0ER1iRJtLWRInubP7RMeGF4SPBLglDvKlzJpdBwqbgyQa/EQoiw6z6DSY+HCa2q4sWntlJ0JXTyskdTY0KRZQ3T/mqu7W7Tu5VmXMSnHkZhwFRIgLMN0RggpDgxedCaw9skXXSBBgmQEBA07fBiSRo85uIM+3QW43oWdwjuDmXozzQYGco0wTNwwSto9WNDZI5GSCiKmWngjBYkKmmFuMrbWsSJ6mDwBJxw4ZdbI/C/QArxxLLQr43Cs6FVSXCMCIpPecOW9xonrP6pSMVdjC95GNAsonPpMBH2HabmoZAQIoLwRMYZRZdN6Mb5IXVBReIMUbsh8lAQo84n64xIsYjbfPG3iFHCAIM8Ygpzg6EmabblVpsCJ071PGBFbbA4zuF9OOPLjsglZv1PbMhOX/hBmQBJtfEfcvU56bAz3sBU1zIdAzBIadEbff4nauBFPzDilmklt4I/kNRCP+VYDbGrLmFk4M6jX+zXco5GVd+8WRn4qO1EcipnpKys3fepo5Hp3B18UwTCL4NG8M6glrNvqyjswaPs2itJGELhFmX2CN6ViSaXZuw0FdExV+hK8M/tTilxkzsz+KuuTG0W6WWBKhHqx8iAG4/JLwtVmYLN7qxdrv6Y6wdeZsyYdgFWoDUjkl4r2BJN2hXS8DMMmm/6J9q1EklxRdfeTe3MkrBSBL06VQq7s40KzMrdisnk9CodVw3JBZYh8Nig6bpQiMY+EZY9xT/O9Uz4D2mY3wpTHd5yEZpEuECcTPoZkGsBbBKnLZcr7X2D/s3syFpMgs5mAiZV3uOJXKvhxX1ZJpFWOoToOxrJGqAhKiM80syHZ73264TeRi3EVvg+81eenIg7LR6WMjFHsF/JmBGiOx8o3Qe4+vgL/XkAlzJ9o0hzK37t0tswsRqTcixVF1KJ2SMrEqKXhzDmIxaBsSDm3ZMSLAhkhQ/XAW7x5EvBQELGjfgSJXYFJ35gUGI+bpPJYeQvY5K+ypD7PFMKjpULsyYlMHYpLSIO6KXiZDGVpHURP0h2DYCQJMXS+nEHSzxKETSyLTVnSpkkduTt6YQWgRWKsmLuQ3HuGShJlCza02OyDWlYIFo1/fhoAPa1AomwMHZF7kloQseGxqkgpWBGbLRimiBNQzsd5dH/pdzHX7j/qxl2osSOVwkrQbvQxxkCXZ0OrRCONwElJueQm+mWrISuloIcp1S3pnTYSzdlhjjwdwI/h/yVXaQkSF3Js1EPiIzl8YI0VKe2IPQ2g16ejTTdCv/MhHzDyp2yIRsZdI82SNvyNNCVe6Fj2VV2S+yNOq5alnTpPsKhmGGUwYjiOPKYKJIx+NtLoaSB1BA8QqMn6EMbynGUEpDRy6SG55b9MTNE+/ypq34hVe6b2IsQkaREPcp8sgA3xj/+FkYBXBOAJgAfgDQAFD/jwA9AvACxuapg8VWaUdP4PlOl8GEviUHCgkSd+Id+suCKE72+8UXJASwJHwx1uPWfUq8SJsdMqqTCls0KCYDEDsk0MddKe3re3khbhTnrTmSy3tzcy6q6os5Y0bYDUECuZFzXUmIJSLsr5Ri2ENeJe16wKzTY3xSjfuJ7gXgrp26l9/03VTcK9Rf1MSOeFLAt2LVhcYFs1FS3qiCsCgzqGVE4iBeRhjlpILWnKrVoE0eM1Ijam/4n8MvpKumiSgcrPUb/Bxt0bkr97bSnoRwiGXLo07gNUOc2SbC+wdab2EwScVhfW3eARNsI6IOaF60W55VW0hIwkJTGoW39ZvpgTQUF3ZUu4LjGfBAFYU3YEz1N8UaIKwjq/oG7jwZNvpCRzbbvLBRdFVvNSIS8m22rzxka595MR3QU9R4B9DqRnqJK3sO2cYrMwkqElGmbgBXtWLm7zCzmgZ3sUdsmZoW5zve3k3ss5NhKU9zk3a5FhVK5C1SU1QsS+1ofpDz06H28AoYipDEuG9ynp37K2fODQ/6LfsgzPGuRr3+iwCEY9NJAC7MLGi9RdQjf8rUtITXvrS2eOMbYbCuI3VxjRdS4p9y4B2WDEBajEeyPFDbh1gjUhGaMQV1/xBWkVx9Gwk19YDMgQFIrfOxH3Kl5vxb56VRQDJVRoiGlUxNqwChc+eX4IDWsyftHNdGYX4a37L72k5KceAzaaIWx1fXD7HcLks7zitDfoFuQ2r7pzz2p8hHwkn6LzRzcUAh3Bpp5jlL9BDjHEITzF3K6R15pRIymjnsKlaos7kGr8PRo/Z60dRhgFLXdSreU6j6hapDA8TRn9XfxHuc1ywd7KHbh5xrDTMSksTNYuMwbNXpy0kBUeSHvV545RJnuTjIsAtqm7+tT8p6THUaTscdxJLTYfa55nYaNfTmIjsO+ZiiqaXehdUZrx6aV9ZZM+05KOpo6FuukDYaaiSJE4fMZ+8w3lWdBSWSIoLysHZW15YMCN18eI348I8X8mqk0ZRLhJ416DOzC5ms80n0nscx2H7TX5JtQkDoi+innieJ1V+Uv4GJLYTc1q371erDQFh/2ByEP8T+LAod1m8Em0kzFoQjbBao7VRKI8WX/3jmbQEZ4jAywl3plrPEbu75q97ikxQaMtgrlmzDh12qtY3HGTJ2AgkkdeZRrEZuvUy6QrItOXkzsT1eHlZdfcw6EiUwlmdY5DGnl2iGKBa4I60P6FvXYlQv2XFwyLBHEapYCU3osKKLvg+szcKnV0B98GZzGWVOiek/RlgxuhNUQuU0w2u+KJK9wdYoSFxVcURkDdkqmKaScjXMauT5MusY6mvgdf+VL9Us8TbBxiS3G7/e1TK4X1DOTbf5z7pxCffDSMXs5fu0Q5OSCCrKtBNc8NbYfqhuVNi62lZv1AQb5N+KG6oL0FB4e+KyVjdvd4uPAR0Wn0fgQHPKVd99JVcn4bRG/LUNifrq0Zg6X4jUqbYiARbIqpbVcJoQSsy1fjRxEmnKUqtrUr7ZtkqSw0FL+K2XWKzmSZKsJrSF7+y5GoyldQy12ZDo8cPjED+XDjrCyeXbWK8GR31AYDWoMtyAJJD4hwGKN9bIlU8kpeGGMJlRdFmJrFWFlsWtOXFxDRluYN76TvTF/GYTRTFUQNOp3DFWgPods53uElwV7v0Kg0uV38x+j+Aix7oiTuiyVcljcdkNmkwntqb9tHk8Lja9X8fukzoMos0534vBMSvhIpVVq9HunZReeuyXPgoNW2hLDH5m04Xt/q2CkWFPLYvkrhr/RKnMfwjnKJ7RJ2X4uSgLMpyUhHmGtvf43OqEmRWgo8U63b1dOfYMfEkPehMJbz9vfjzpygUj0ifhgHYVEvVvIRoWfo+t3lhxs3Lf38n7ab0ySdGUUjdu4xsn7BXioNa7UXooNhlMNHm9stxfWS4TFPt5zo/g6hUZJ+bhHjuKyuKkkJZTQ7SMoAw7RaOQQKKWxLJbkFBPuzghMCyEfmmLoDBo12uMwxAkyYUjNBBvPIx8XRoxQensdH3JGzr5caHvObLTSYm/ZktPnuRg9bVVAXPDbL9yBwEvzvRilQ41FtiDKDkpFbJ5lE8Xlts4sqA4SSZe8Fugshvt7p4jK1YmGlliuFC1hSNVEGZaGTe/tGiGVbSkaenNS6DnjcB0Ba6WsL8W2wKvIzlLSi/pOxKB6vfSnWZldbMQiJrMqnfJKnDc+GZhQe8yVws3Bw3PJLK0vdEK2KbqlVo2vvIuEPojo/agqrst0rGPZTOlXK8Ui7I4qOE1dFl4pGoIavFZ80RQjKTOK2nYW/NEbXAZI488I++eYivo0Bewls0qJGBbqmyArfWOiJhw0+/yvGmN3ohg5fUCya6HpC2Tfu/qCan6WVDRRRGoIymoztOl/mICGLMFdWvoSbqY3reIfrIFY5LBnFWCAZyJvV/X1vDziSfnrUF2MaqueX8oH1gMkIPgkOjA0FdR2VpnaT5FhLGMIvl2UPEZWwV2Z0tM4VDOK86Mkg+ydGM86TLUrtEveCr8DwPlLLIKuh9uRlho10D9THuo2iDEmJZap1JyWIqKAOdIdHnaddua8w6YR8EaYf+Nx+6EpAi671Gz72BOCsu2QRSSHGWTJ+BXTRCBn6J6Z1+IEx16nVE4KgZAhhTj2sWWVloqp2JFSG04cWfW8UYigg40qwViuMzKWJbkas5/+vebtdDSbQycqglykmXp+CaL0KlbtlxgkBQG9ohsSEViPOsSaMftZLEv9e19muOs3itmRxhPHtgHPj8izvTT4+YSLeUx07/jKyR5bgYRBbXL3fiBSSW5swThFD5dwNWwx/Cr8qbtdU5vPEgt3zZe0+4aZBizPutkclWyJFDwAaFqD1Og+VZEG6B5PMXHfkTObelV3V6/0VWHJXZwy/9VCbu+Zmr/mYq0uLYbJeyKJdI77UMuvBfCEVwTAnbX5vJWVteljkaKw/rMoOkGV3C1/vz7nLImijelEIhyL1UgwqL/raabbK7OdaMrqnFU7B6bmQzJm4xZMHSRqnpQdRLXU0KmXhTaXg0FavfWaLyDAzCBwaA8jT7VkaRDcHFS61z0XK9KO6GR0cp4qXGBf1aLUoEh3m84oXTPntXMIWbhfYdhz0EakBDMTmLAXgzRWoQKDsXGQDcLc3RQ1+58aBA2dsh0RD8vALpBZRb9mRIIOV9nioXksNsIEEijhc36qJQNjoUTQEfm3s8qkT1LaY2mHtUxkrDiLnkI/JeqlGAvCpRpWZYbfhujhdQrOogOr8XoJQUJhJZomKL7L7OBcwQhEP0ilfd0GNbGplgnDxiiS1NqupYXI0aFmJdwpaw+qoKRCxyZLnMVOJ/KLKw5dc8vWU9UWJbjLortm8mdSfuT4JXKPpb+CFUjrP71FTDWjEc7zaOQZtu8h3q+vTNoTVJRnFRkOmoLNPDKScCNlpFGSLthcmLjKLQ1ImkTFKa07f062lgVen8EvKvB6yVoZR9bFpg1onFXr4XDS5gDx9AS5c4QMC11Xv6SpkG6fRKzVSkmBDsmkrVIoukhcIUe2PDNFTw1jG7gyDkxS8ic7jtln2X/i5lfmCME+OIeWwLz78tR40TNlSI572dg03o2tJTKw2uCkukyf6GtOF3lcd5Ovvh9zOdfPUlQO2wCERsuF1Q7v2nxXze5O97KQL0R6XVsvI/ZEGKbwtXERr8GgNTu6s9PpLx6Uh9//8qW/Xcd2u2tzWYLpFZ9ZN9pWEvmlsG69kBDHYxk9VNSIK810qll/mUk4W9seR45eWt5Stl2hHN1aUrBDNBHIu3S0upi+9/8PnFh399WhybC3Jdr1kS0Mel01QYzDBfXlZ6TwCfwHk02U2P3sGhMKXRho7VlDMQs61ug0/XQd2JRorbN1Uyddx6XuNK63Eleo9Pr8GTWmINi5Ey5Bf4QqMd6FzB6GkasiYjlCd2y1C4pem0ZmmF3c1J2Tq4EkNvBrsTW2krO5q+ZRcB1kVSmmpEeI4ih87dmDmu68LBVXK63FKLbtsyO6LQ6p55huo1heqjOGEjYVKhX01CLf13bKJY6d99HV+UA2hVmUzhYG/I8QREUZx7opMexXVqnpiIWmkzR3KZPVEbucOxmeElwVAnNS1qfarCzOSLBi6N7oUtzS0ekqHM+7ImVjOwoJZJG2HMz2NJY/nJ2f0Ces2hpETPcVCuPgZwyF9dX/6xW42eN3bY1CNYtPESXpAqljdpeF6JJSKnQqRGKcReimM0H9W1I15pbfLWkWQ8pMHChPn4XhyGXkk0x5Q1LUSOWtgzH+DCszsmlRESO1vbEFe2OyZ3KMJhReyYYtDP3MIPGUVlbbdRhHCZAMZcicybbB4cYUbP8ZeeqXXoHX870rbaMLrhAL6RtDc3PE+dIahlkSShCFqs129qyMZk61fYr2WFUNS4vzAmJYREN7wqJdc+hSDGJdX+uYIQ2GbuFOZA5tpFS5TOcdZqeilDynr6cQ+8k5IsbQ4DM39bb3t/mr5LxdcbynZV648psv5ym/+lWG8YyudpQPY+NI8aACdS3kanJqHW0LV6yNtLHDqhBdTtuugthqRyN3yWT936Xu6VWQU3HoDGp9H48haCPJLSUF6rXvP+kJY46l6pYze65ZIOiRgFz0VMvpW3E67n0Gg0tq+dY8RPs52GrhscybMkSvP8mUl7louh4U+Jzk8gu4vCH2RN0ENBQWiSvPaHDVLm7XnZtFElmL8CXArFBnDjnfP7Q4hwllRoaicCKgsIPII874AwQp0+wBSNLRLwo7Ll7myDgArhTxa3wrW+IQJ1urZIHw/EjA+bqWow+eeFywAK14FNskUfriK0QlIWMs03cEQlbqyxeW375EnbgrCW+1xkv8uVGFkgmAEwEcZ1j+rRsTJZlQE8H6aRyAzVEuZNvqsEaBnjuh9lRSdtAN53kUFoHKZ5/01oRWt3OZ8kaBLrv/Mv79CIcx9IVXFsihiP6gKFEJR5O0cfs/KlyFzF3yMBd/MuSpWPcTQJt4jI1K9OUGjH0MOgiNFqRZdDATrsN6HCaKE0NB0pjFTkEghIqbhIYgwuUki/Q3VcMBcjlqcBXCkHaB2PAs1RcF1FZBk7Y64dxqbtmd3Zta+iwGQLYgQigFQM6X8lWDxpKldDJk2JVsQjQgQrjOELpRN9XcRA66Hc5K9KFDUF+yAIA3CY232QbG5ey7jSbIp+Fus4l6iTSqE3BdPcBxOQAm11dL4zSsw3IVnkHSOaeGGYuKAT064FnvvQMCJASbI5sQsVCahtiPWMghRsOzdPY4AkgjDfHmANv5XAzgbQubb7CE9hq2wBK95PtTu2y0K4cQOBdjxgZczP4xRAYTJGWJsAhBmRYEHbhEkYB6czUDvJgr/k5KMa7G/jAeypyJfWpMNZFcJtvzpb6qT42Ni3CFJ9wV0c/h4jDjjyoRnsM4LWux6iwSV5ItxClsc03iwnbCS0IORPzmf8szXyLmog5OMq4RorhIjRgSTyxuitM9CjYdgEVwSkx1hpKjJCTeYJQyi+s2c+g8r38vOx9ddJLB1nbQxzoRMKuROgl4VSjKAkZn5QYvWm7ivs9J8DGGwcN43qNfyaBK0g/vwKd2hiCcHcKLXV8A3kfdckoOM9lx+gLI6xvuQo8sTV3de5zfdjjLeE1tHd8zO8vqpWWpP08b5JI6SicQlxEIQv1J/IUDa7i78Blp9vgLY8Q1W0RKJShfwbiIheF+iqJCgT43ysDZzogZm44gzxLmwSZfFzLNkI6CIL8X7CUwNhkkQq0Ye3WVT4wEElgzl0XpYmueqDBMeRSkNFOvVn4uev+XjQHk130ekcJAcaHAt4xphUjaF3oF3Ai3Bik8BsPwNgxjZnxkgfHGwNdaNSBC6ZQlSVL6vBF6s80u5oEid5lnwwn0TD4Wl3MBCXD5TUZT1R4P2TOEtWMbR5kYe6KKRGNbuYALWLBSmLPgEGFOTxcVuC2xN+ss/WroEl+NZBPBSDCLhQ8bxVbWoF657Wy+zrGGk5OejjTIG0CiLtwrx8npVlVc5u230KUpthMlOV8cBPABjAWRcocRBWZLiLRqSSQCS4P29Q6PEqXJxuCzhXmiOolVIoy1lWZZp4RT4IgDPTx0hAcwtzAMMYWKdntuzlGlIdRbeMFSFz7YqPNHG2PjYVgU0HdZ6XM8FkkkLHjzPExZ8x2p5xyPrVKSYoiWQQEYNyfmV94AJpwauSYqhSfmdN66hLVwFO8zbH2qnOEk2390L86Rro486KoMjwAlzPArAKRaSmpsqaXJ5ITu5C93/5MhQGZx9ovyTOCbAWpgp/a5x4vA8BYF2dII1eJHfGMPI/qM0NkHsApu011ba24G6s1FxyT99csqmSEDjYJIzBZe1225rMockQWaYkHtkMrgiIoDCF2SkOCKRwTpGNEoinpkSS4gyfA9Q0bgrfPe3dSi2FAs8gW/yWjKnSL5dAQotgGAewbhPkIjGylaJagv4NZqAXYSdbrIXP1yl8LXOGiG8M4pskmLpEBmEe7dK74s8ES8KhbFSpgsjfsxmjU3iX3zldKbsHer2utL6yUQ2CNm2yQZyGHjOTzLjY4dGGmr7IEZsMGtRNDlqtSmaMfS3xdXzwFQDmEgjl0C/OBuA/Ag1jpP75SIqVGXULZtQZCuMYVepGWRipQU66MJjxzrzu233SrZPY+3oUBxuVjQb904ILM/Q+M4DSGTxozHWBEqYKSrHaxBoXHE3x/y4r168YecUa5B8gRDSFWqoMdBXtUaWJAwBCKAQjGmSC4DMDOHur7BQl6O8hh5oA8zQIwkTOBbp3gpBQcuO505FMwhYI+HG5hJ09SefFGTNOEmIKBLkmdhHSSaQhhTvoMqkgvxBqK4lFAc0FphD4h6mBDvvKvyaPnS28zVBthXGQGiIEh0Ylb0/WywJ2TDUcSSYgg+bnyGSmHNos7nEHZpbs8OAelD2z7WWB6BgALZ7jFhte0z0KF+G4Qxe1JUP4OWzVb/ZixGXcYbgkQyc+GK5LmyOstC8F2qPYEFLBTIDK8l6LjAJidyGn2BHVBW4ouw+GUeJzjS0LMthPet17XZxjlDKB4hIcyclyVuQ8S5IRPH+AnJwGHl8OE4ioLEDeSTmjF5+Ondz3U5KuLO91qMKNU22PUfg480U4jxzLGqU7T58uAE2xlUrl4ysrgIFyHAR8AgGB/n3QyilCzkliMgdzxAg9Ww9aQJ1cl9pKJ6hRhHuYhCNVnPSfKFBBhIB3O030iOyIO4KAaL6DgARKCf6XGYBHhkhocSQUIo7NyPwpM41BGP9xPyH2YImVWMqcWkhdW0HC0OdY+cMQJTo0UYikOe6O+4hRhEiAHk9Zrx3rsXYRxhQBpPWuyFyFa0SirSz0T9a7jLYdBBl6nHY2i6XuRw+izCCBeh7jabJeD9dnD5IotLJX4cGj98VAEEa6/VBItoU4RqOjUsKxXMy2QZEJwCfgJX/sP/ZAMWAJX+p/2nzVLJi3jLHs8R0HzPg+n7BAo1WFyrDjsKaNyGwkjDhWP++FcEEC5udcqIYrT/aMvUtMa6Z1r4uJLYq1QGZMoyNDIhOjRNOJo9Z6yZblC2AMd/5vLhF8smForStRdz4akbCV29YeYtCPy8ydmBFQYU/KIMi3GjO9mCPyZzZAT+mLGKaPBHhIqbkUu09tPQStXVvr+ONoQbAEMuLVW2dlwTOup68ysRFbCsrguf7Jjh4GhkdmFIVJmugUmcOmlNjnyVJw6Gem/Vl134GoZGBMqPgS1HPmDtgX5AHot8OSHwZ6xMxrqJQ5+lqUQGTYOZFL0rpsXPe4TH9yt0+yq8kOX0nydMcrGQJthOXLBOQh0qmAhQUBR+zwlmf7k+tL/tJqY0L7ifQr9QutIugneTlB3RsT6ISZUmi9xLfTeY606YKKXdbki8zeVHtVztPrBFTiIwZc2UCGnUSIkV6F2CHAV/9AQlmTuMGXnrj3VEbjzlab1UYiIC0oioLoUaFaKfieBYzKEyShO4sjL6jrSyeCFEffvPEsctC6hzbhuaRX0PsCUeMq5nh8FIQ+CsIMnSxXdOqEcXTF6vefq+IgMQtinuFWpYA6fyQYYUDlFpOwQvR6Vk3RY9PenAS4kO9CnPd3K/wiJkpSVjntlQrLrigLIu+PE2jpbGptzUo7MG3924Sm6IpvVi3xfyVQk6cCR/x+HvTSDlK2q6EH+KMCdlg6S/x5ytKSMjUExP3t1hSFUk/7o6HJVrOXtb1Dbipq8sWi0VRUdg23eDn4R4nssvQ9hwFX8PQyLZqPBY81MF0ZpyXKKyKZh/5eKJaEyWOwJXjOPdkq7fv/1/5PJvZtlwG6Isvvd3dxr+Xxn01RdsyQaYFjoMbvFqWZ6TxXeObrVVhV7opw3R9y4jK2hDO2KYGDSkd5WcRV4XCv0JCv6dMqWvge+nZoV8TQyFLncngV6Zhqep/KwtiLS9X1as8bdlyoiqojoFFHITvU3/LNIW4rfBwdDtEqgkC8k6kkUr0G4GJzAmiwQHp8ehU7bokUVnDZjClYI3tkiIJEGcfDO5jsfb8Mp+XNWGNsWsq43uhQGJpAn+rbT8l1hlQUBkizLmmxctBaIWnEHTUm4nq5p+VUqS8PQScZ3nhzaF0lVvkFm+b2drcwrdv4OKUxgBpplN8bgUUeAcDdt0mEu5Z1es9A0nzq2vrrokr3yJcbybhdUjljPq/ouSZlX5bKuCoKKyak31TK/shKVPMdboXIxh2KJspflvRHN4T7vCr6g8hGUSNKqzSfTkz7mqrpUIx8LFypSnoewDroVqgyI2UBQHpjAmBYMt4kjNg0mUeucs6V1nOZV2K7KelO+hLW2qcVw3QiqzGO65EXpjKqq2kv/DoT7MQ/+b+JJJ5VBEc7PGyD8VdJJ9HaKJesiihFKz8Wnf/NdBqDgpjW6vw4W673vM5SbUPfEkOYWkl0jyeuJpsEhv4R1ytlgSl224rt1c6WglDjfBHNmJgKMFPidi0LHwG4+bNQ+U0eXwm7oLUezUbDjU9djxUuQ5/HTrj122wXbuQTJma1IMWg1iTw6yuLeNAnifoIosQQ+m4xPM9tWoI7pA5JQCfL2XQwtl3WGjOivDHEoU8kc3znnGcQYaFGkK0fPo2vTUoLhoG2FSq8hrOO3KFfENaKip6F/ee6Cj53Kf+FEd9DuDMoVc64p9kFKfk23qCBMVHVWZP7UN7oFJJ1keYI+EOYYolU+K9p5XS/m9gRzi5FRUtiTypnJllDBs+HkG0O2dUQjD4eS3vlx89EF7lXykDQpGBKWGKg6WUSvrwVJKm2EqX8TP5OxOMmq6JTO7H16TQNAiRASIjypn/VI1qPIy7lKbOBfP5CBmysEDtUfk1FjCs3SeT/zp7W8Utcs9zoK4KkFNDYhZuTCbRZtk0MM2dFJ8MqBNErW6t8+GO/qoWuSnRVB6Djhj3bDtuuIxPAnDTmG4PxCc+SqSMhGDkyzivF6X/AF5k5J+K/a9DEIqTZERDKPpaiZVNs35JCkViyanFKlvzfAx+aVurcCbK9Dphjspf7afmSHapBqL//Dg0ZScmfUGvVTtY6RqByGSzPZSB2CgjgEoSu244ljuVWY/30o+TTWnLKrgjoOiDuBIxVVCDh9ZcSDu6Oi9zLiFFCU6bqCRRB2Kra2qWRsbb2QmCQOlLkumvGUVJl0C4BPCGOV/aIINM0xreGkyFXzvydVVjTxuSLy2o3PC9eiKpXV8QcvWKMyhCT87Vr8UlL7TyMVdpXM0asyKGVq8GdbIMEkj0xTnxh+2l/mPYqFSghsCXW3BJ7MxnUTxsTJbGPokjNUg1ymiAVi+sMZAem8WmmyVB6Zo45mNeIfqZVZlWdZOQ0mJMSwB2BdjcvU56zXo2ajNQ2UP7uHblOi0bkTicWC7JNCep3BTiEnFwx1b2kv+5EnoWbpEZRY60+eIRu9a24wKsy0jq8USociGYbXgMETWBrBKcwGrFAWltmFeSkIgp8OL2U/CxthG/OH39NvCGx/UKVLU4HHHf2xuLBk7Ex5XdwNQR08g56AJZTfhV2S7KTXca/+OcuhuhOVUz9QQOt7i25rWxHM3FrdukPqxS0L+gq6OfwGjwVFFIK/fiab0ahjabVpTKfGQS7zeFNO61sqcmfwhQbtWko1KfNYIV++lwPTFJvuZfUFd3Mh2zf1v3E1aUvJPJ0F7ZsDTl6IVVMD/6QvSFX1Ap8MUThGgVyrZs7zxITSskZ18yrvIucRoXgT7nWuQkDTxA6jk0rxVYlCfFvO9EopHlgcFCx+UfJtD1ApOixNYs8QmVg3Uv2djHYuw12vJaijY0E1MMpJ3I0YNNVI+Zx43UntekEPLnzEtzWosVKwlMbIMpRP9XUV009nJ2l0Or3UTHubY2aSIPImzm+QRMlN+wZybLPTOFygid4en1+meZX6XjGSzpPSUQYhh9EL18Dy/7Rp4Ns8BUKwL+0fkokAEPtEr5shhfZKVleovKmkLDDEZCYmMMQZ9KYwTMVBJ+5vEZWxcicQy8zpqEuxT5JxQRGVYhfMK2c6VNH9vfnrPz4SpXRQGLSlaMmLAJsiv7JXgvIxu3z3An2U4Cf0Au8vhySrrpnu6fWxcRpPtW1wGBi/djLMAWlvwoh+LQp9DSPsIqwLfMhXeq4kc+8FIPW4goKutMy4qMD6qcqcJSeLnUdOBLmv8gn3e8FhhDpKYpR5xZQvX+9H0veBGiWdT4k1z3XMk6i0uFJbB6TG7XX9jRXvbyN0kVKqNo9qNHll185BnFDVLGJA+aE5yY7KkVZRq1NaZ4L6nKS+lMUtxIaU3yZUC3RnCJaqHy5DNnAjStyswEBNDbtHovhdIdel6OBYprAX2TdiejFLxlyIFBuUeQWtItDNvn9yqTVJw6yWDtmKrp6YkEI6TGQqy1OBZPf60iaBtSwdq5odlcvJIkgRuKfklvoTiBimOLIn5SaAskmiz8hCY7ot57snw0kJVy1eoN2TaM/aURRdLOhN3VNlewhgnaDK9TPWnc7oOdUk8FU5rnfBjurRGLIweDMd5Mm+6664ckJOXqVcvzMRUU4hv3was2ln7B10d8ILH7S2KywVVyzg7aRq/sa/4N62kztK27xZoRQ2+SxlZzW2+5ycYX9IhRNR96sJJuzTquWXUKv0JFBo9tGmHUS1XY/q5lOild3/sjqd5UrGbxfONDc8iiGFMVFb3LcBV6L01GlqXsjQsBSYN2VHXXZamJZ/ajiyVQJlXze7Qp+5VqOMVLupBZLED0H+jM4TriMKdyjNDyJo3e3iVvd/1l1yfbbu1r3zq4ze87Vk/H00MN0qNMVDM9iU7yStpedmkqnvbYpe8uBw3C60vZapJjPExdu4u6qZqoU1S67cTXbMUls2l+/MEiybqD7fFTONHsZVLZAv28vgdlt6yv6cnryaJXYaZXnAfwmLNfDu6IlxYEVixaiBTyGIBrTaJytkOr+8tuPjMcTsR0hkbkki4MleVG9xV5jMGp/e0obOvuY7F0CtqSf8nSRP5VpzgMwizUzyo6UTH5JVaEwXDOycUQ8pA4wOH++e2xEL1B0Nupb7dWMm1tTYrnrT5eTeHT4zsewOwS4S43gicaEpkTVpIWjLt4JCY63txYwn5LlRsmnwkEi63bGqSWaVbw9st9+gnD9kcsEMbIIDkAgUxC6sTbv06yDWJc0RpPxLCzSqr0qEIiDaMt7axAFaksRgEWsi9fgZcuh7Puh1PMPOf9GbtS5CuaCaC5aPewEoNBndhlbE4ZMnuT68Gq7IfyfG7Is38I8MiJ/rqYQng0OySiMU2DXG0vPmSxegIPe0Y+a6IfOLnnLrPJJXkKR7fjTPsd+t/5KpKKYluqQqEXmgoRkapYJJtaOdWeoH4UB3KWLrrRif0nMGFkaGDSWswyRrR5IjNofp56k0+PhtFHWmTVCHoVATyXy02qSYZslaaI2avs+ZswkRcz2EM35AiDr6UEivNrcSSfSQ2LUW45E6cIRjePcm63k14JLuIjaCxQjiJMMi/o5nS6JYLzcUCu6LtBElHnOLkC0utKi66tDMPir7uZ3Lij0FeM2QOf0KoudOjkTD1zXERjZKo5av6Sa7JFu4gqmzjnXKXoJN0kxBi7qiZZysYNUdS+sE6EsnkQ6SfMOz8Hs9NlaU9fduW+UAtu9m/np366QnRWI96FGyW133yJMSKIVbtHWv9HT/Q42JubWoTJYaTldZnB5VcNgUCCIYGHITOuMhb42rLO8i2vb7NcKdmu4vHs1fvnAnmZVjvJ5mXQLKmloJikb4y176Tt6bLsQueXI4klpGKJN2ruRugVVbt+s0RUrAMDgG42yt3Jl5F0E8cBGaZtZQ5K0+V6Q+vXddcRZpfpo6kDOYkT7WGD1CpheB2Y++4ugyhJekoJLn6/rufxDSDIRlbdcVdC34iYoMSose9UVaED/SfRVFYkuX0uhF9PyJlpJ9VqZ/Gb9NtTFSzrrYgkY50a3BcJWe2PkCZ5AbCVlEKdkIxRuQi/HSmPax2EZ0OUsypZVrrkmuBYfIsyyyHajdnASe8wrawuoKaV3yqCpo2PYWwuWXrF4QJfucx0/cffm4XDV+RMQULEf1unDizBWyqqvk010C3MIbXD5LQcYr7D3u7R2nZJLkPrM30Ou2ssTZm7MiKq3igJHGEW1A8H7k2qZlgGQpjmLIhyVXjEdvh/EmOyrCf3zLO8oa41WRq9E+duaGsiN0Lnx8UfL+m/i4EXnym89tmV1s1jFBkL607VUYlPn98DRhje5hM8vxoFo1je1a/qRjrbgIhlI5pqglhAtHPYxN4O4CWMjK1j8MrRfAamo8jud1553odVeUZ+MVvFTVvgXFdnYUoryd+RD2oScl6/NM/3wmyUdWkYGgcRCVTsZP87+HQWR5SGT3aX3A0PHzJw9V32pjJb0o8h1F0EFimLmN22CI6NglleBKELtVDRmm5yKx7nIEwrRfRAVW09BRdf3whiStvFaTwFpG9YSmQFCiaXtgNjxeRC7okWK46yWb0oW+SUrQxk7mPaxp8fwtNF78wQGD1nLEK2/8IFmcbrG0vMz+cwNtjt50aSs+Y2Q6JL1ubp6FT/SbQrr05dyZf7zsdVV+Q4SIv/0jyyw/uuSX1cIVtH26ch8C/k0e6LV3wJ5yqFK0e63D0eRwdhS6kcgEoNg0MQ7tLuQTFwDN6FdGVyvRIKMrQJtthdzaASIuIMSQXz9UOZG208af2nJcyKO6YBuuQcCPTVk4iwj8iLDW9ES6TTXTJ890naamG+sfcHOaUB0g0lCaKRFyKlo5BsfVpGwQnQmDYIFoL8SVeUtByuaw+rTeckfBTE1hZnh0FRTV91S2lXRN8zXYOJ8nKEUWoLMnuLZkECvi3G3hnM0w7y0+0LDolSCcB5QsyU54n9AQMUi9cfI20vyujHWlKnEI6dUOM4BF3uJeMIQwA1ipTtK5QpGqnw4EdcDJIp1HyCIHwGq3+lZP2WIOTJBF7AalG0XMd/Xwhc+BbnIlzxk7o+FxAg6ram10YzAApcxLIS/N83xsjhV3S2xSuDpcTOEKgP9cIjqLYUKCacaFMEMYVAAJLdU4rPpF92IbweT9YjO6qFGZGx9KET734wWJB074H2et57oymlBNzSUKYQDHMxETYGOBHh7Qg9LgPI7hnnnQEaAaoMqdHSbRhGOEB4IEmBQHdO0Fx2AUWea73LgJ9VoYZdowLSjRBJoVpqcbNwKCiTOcZm0W4iQjSSZma+BHlbQpwGE3mWcSedHYPBIWpnMQFN925bC+NlKAIMj1mPOXEC12emZQFeDnByz7a51FqoqiO5JMoBXHIJVHmSZDQCsB4F0GC/bMRKtTReaj4j3IZXuUJ9w48wk20rmYzMkgMl5vf3QVlIRjLreD+eiaB3CSM+iMGGhZSrx3C7XsjuOjYRcEsIH6RXoF+HKsyxmZt6utWASq0AvjtvSTdrgLaHce2J4kgXHma5msImF2tnQdgXQJgLKlyXwZst5tcuQp4tKC7nxbGB/u816ZC7zkBtwAp1Rtgc4JGEIhBiuuoEyki4Fcpg5holwuhNEEJCpbZw/JVWKwxZI+T0EXyiAjE1dD41xfX5Hg0hBxpKnaixljLNN08vgc8Wjo7Yb8hTgm5BkPAlNEyqov4kMhQLoluPQlZbjjwqxVMBZEa1wOgKgKRJpMJMTJ7gNF9i1owOwTIVIyFmk3aj73z1dOK/BDDLryd8q5jKoj2Joo0+rMCOAxj1owW48FcXQS38SIJe5pxgry3boI5A9JLlOcLCZtqQJA5Ve8wuwEKFkRSugAcE8Hb5jtCYGSTQpFqYAzDwUTSQ2suqM0kLDoIDrT00YakzTRx+5G5sw2QGq+neQId0dpPwGgEZV7qPbJNycUs5IlHkriKN4qFIdrwwcmBaFNsPo+VTDoIll+x3Wj/S8DSYBFF0WrSs9HCxbe1TJut7hiy49DB/B1s9ybaqmSOZRUpXyu3Jfw2KgyxKY+SrGCJtEKT/J1lLFakUPxZDyWrdz/WIgqfy5KLdWEx8GALQEmMRiCHWD3vF/6NFEvOdX4sgGhXuEND0B7qg1dqYILtrEQcNGhDnBAAK4/Wj/o8syFkRgIwNl1Jx+Mk/03HQKZTuzxrKu6NryfnrTyuTHINNqKhtXcsP4xA2gN9iEqP4pwsRNH+qyXKhj6AS+SU6lkipRJqyHYYVH5zkKkkm3tf9ibO4zFk0j8BmEAT4YkHDjDU/r8qbaKIxhxBxDYAneKMbnUOhQ8rCr7+0umQwVIexbwQH+f4yECv3CQ/iaa7xdKDeEj820IcxQPPTH9iIgqAkHg0EZQTgxbCJX6gMiRV4pD75FmBBgiQBak8BEwYhgltlaUo7E3PrRGi2TYWhMuM3EZ2KlSGuEX45OQJheEr9r4Yj6Cmxk61h6rCLijwJZ2K0BRAaYF2MadEhxHSCVEhj6xdmBF//hZqAY2Tv+J/6cAQ//T/9EA4gGIASvmrpa7iHQXPPEsnkliFv14guLCrUrbNpedsqRZL3E8WJih0NejuBCi+EDuAQvdKLwMlqEU2Ut2ECJaUVbyoC0vUGzyOs3S1p2Cu3gU6AXyJQAUuTevjA+E2k7pCqhRSat66JVTVascgxMj2SozPIwVm30XroqQ9CEQeozuuwTip2kn8JFyGQg99e9Hr3TrjxyNNOW8WSeyhJh4Ev6G/hVgzXKEBTpvG9M5MCJnW0mNQn/v9gXlxRRtOMX3AJB+GurBCxYsyfaTgKS8MT5bOxSxPO3U+iyWrVW4XglW3Akq6068VUEemH4I48GCaQz4eCza55ISogtQujcKBU3LbLWdYWXHQn3w0/0WUxD4yn6jHFAmeixt3/QnCsnJSuaWgPmb0pscKg6H3XV02ZiH2KxDydikrinnOXwsVojddNYASiAmayaRpwaSG0DRp8fJzeyOdrzpEKXOzd7aegktUx8oa+ea5vnBuuiQNZeUCyxcQqu47bbMEIazMks6C2WIYahXEh9MegX0nQlyyccEamg8gYaeRMW36T5ZbkTtpK6FbuV+hALQSQidrWTBmO/CvBHGT8D4WJiYqg6VgqF2goBmbQ01HclGJ9IkxMnAjcTDvCLC9sDU70xFNxHEQscpJHdhTNaUaDbO0h0FbTeK9y0eyRHKaunEpEgpJOd5d0LNwKNULziiqGFtJ5SYXwQ5x/TAfmXnOF4ph99g7UWRE88uYU0uia/3x7RFQi86zsbbjJqWITmusBnp7j0x6wPIQMnTUdbWI6Cu0onVooxh1GSn1ZR11F+1ZzBaFlgCu0d1fZ+PU87xKCcha4hVTrOI/1WV7yP6ULrrTqxId50lSVLiExbWxqKJsCVPS038QiSmYqmKrBafrFL0da7UaER3erhTqw84hC/M/5p1Wpbcmdy2y5TAudUtkwqIh8GQuqz/L5F4qvHPPVi4kSGPBxEMwMFspGFyRlw1T9uMQTJWhtSpuAo7DVx6n1RWjqTOvdKSdUmZYPZ3zapICEUc+IN520ekvhnoqgTVhMZnJsdni66VpbazXSng3gnbqArclBpTFuJ3CYMtBlnxXpYTOZ1bceyV4SMxDQpZaMhW8juTq64+7B4zCLU0qqR1nugJ3G39LW72UR8sXziInStpVMpvoO9IlWTDxbUOsxV3asDnXnij3FPe617p2J3oRXJRJ+sfuOznunYQmYocPz+uRNPFdQybHJTH427+TFXephgkVMXPJESWNcbEloZMlN4C2XqQKGqnq2yuJNAwol8IVHFaIjxk4SItMPiXNFFSPIV96KanTqYYRPkv01cH5+0E7CGd/JUEzCcrQ9uhR72xe0xoE0tlFvX/ns//+1SLuyCV5ibmFgb97DUlLf3pkQlUbOUgppdHOwO8a2Vnxi8TzBs1nyu0wZNuWgunbRK1k/2qdyP6S4K88Z9YJL6m2HyVffrIhnyHzKjg79bK2/+B23fvlfnyflctvwplMhROFxoLFAKAYXgvWdLvyeLjVZUHvx6qrUR6pXp8UENfUVPCh4iXjymOXc44L0R0cH7TP9RlyQ5QpWB2hBm0Q/eOZAricrqdNRORNWlQREf+ysAkto8Y7MNGQIy3zpt/6iNe4hHy2sx515PjC4x8NlsuZ1rZYuphyq2VlNbJLXer53Emnb2+O7uEiu5+/+nPzZbDK8lg8PfusNTtlvYTzkSgSxFkOR9uYENYNnwaHSgLVpKr9vOmrR/n00yr2uSAWChnr8o2VumbKcE7nlYYeFvj/rUqshMCjwEYSig8mYr5KxfHS8Y/nX39xVMISDgOuXTaJ0Biq5MZZwIZFr6KgFCzl7Pujt7P3B1WLu62KpXbvQtzFv2KEBRtB0KOdZL1tUx5Kkmu7JsvSeezGw07re0qRSPU6LNWPLbxSpCZklJkYt0jqFfqq/SbP/l2TCIFmrTnyqrSs4S4vO6Q6C/LOBy+vrX/xsKlW050CAKv955N0CaYbvkpZwQ1ehYnA2kByWVOu6tOknyxyKpVDEa/ZlueU3cVdICwvVSpc1gSKu7lMSkPNq3fh3o9l7SN/7wnKjdNnoVvKQsNj4suixX8auUEgdKx90pQ1rXjjM5fZFYCsJl+7hxkFaF/ahCT4YaG/YjyLoqoBFmzRWX2gkvtiqiCwKO2yyljla9rCyyDJ2oSYRJe1HC4LEl6K+W6ZcUZTWdXyTcTdjES5Po+TxL/loIOBgI7WrMGfVG5hMghECmNX34GNDJdyHv4d3/VMaBklPR5fh/+UilxNIlLsb1U7KnYNYIiM+vhLqjKZoUL5tVvpd1Uo2YgaTepKBU2LQy55Nw9PAs75k1TAVUhW7yLl9SUmK3it0gg7WhXrQUqEwHLj+R8axHUmmWiKYKTL20nRmYHri78pj7jLPaTrSuve1VYMxa0jHWKwNNjpel1fl0OashmJ0SqrJJOPffV1V2KwmUzWb14gWaPcg5mb1+OXhJtY21+9My8QQ+K/egjD7tY0tep3u1I0Ni5bROpNAzeinLRYkopUIzeRscT8X/kJ6ozdNF9HISHNTXyIyFUrrxuzbn2ZxR7cYVJZpnmrs+2WGUfV0WKg1/i6T3UeUbfXNPf5jZct5xduvGEeiou/b++tf9BS84opDQqIVGwK/hWl3ZghS+RJa9rEr/u9ucCX9Podl2pJxr16Dqf9gYtSPpBjDbKW1kn/ObwLye83TyQfe5PfqcNBGK3sTcLVfqYeMJTjZnCzp6TZsU9qc8bf/K+Wcfoar716haEc1SCLNrPYpj6FXMwN1aZaeFBrr1bXZMe64b9Fy3GqkSNJkbkRZ/9wXcwkUuY1ybSHVNqVbgrkJLVCUtpi5edRTFpAamIQtxbpOEi53zgOn7aEbH5RwxbKzqCFXS8fCR+JB5FIl5XOaK+SZG2Lq7pfldarK93KVeYkZ1TD8mqZLWoWdJ8LCvjxDotsWX5VOI+TZTtfeYe8lLpbxk8hcr8dpmkIvdEgIbLoi2czdqlzrX+wmMrq2ajueTwnXy4WwkC3ZK8nNS4rkX9p+h7VYZCvlVPJ7CDkZijgCqmv6zs5m6WXBcI5QpGlSfEFKZIhM/Em3VAS7iXH2dr2VDmSaHMNVJD5U1JXkJ4QkVTc2P93yiKbOYcTCZiVTfFpa6z8SdZ5CkzktpME9d1WBcqZydPj5LnKpO9PLYuLXUSx5TrzhP9Tqv5Qr+uvjcwlOxUDCWtk6PFwZyz11lWInU+4ch2/pxG1GUkmkffjqdPWFAZv+2VF7RRBeXkpcPQvba0oOKP8qpfYEBrOBKCZa7No0vVfFZhS6SrOHrmM3cNi7z8D4yo9lpX4wqGRlRXISGv1KZJR5vHGKWvnUzcxBNqlfsFRWUkfgZCiFosMBUBQlidHxv9IwKJadFt/DD82vT0Hc/RuN5FUWM9+S+GnB+S6iIWJjfe+eFABEFkeEICzhEMn5hYvqjf9C2iEdjUoi8wd0jORIGwD8bdDCQnc8F6K8Z+OQNQOLEDrbExaGKCYPjMAaQwR7yJ/0F8kL/g6aWVAVDuF2CdxMSZ0aiRt70i0jJiCxzACaPI3MDvDTRUMCSOoci83zgmkxo0XWsGHPIn4gY6S1ezoboVcXoFtGBQBFCGBwe6B2ctWzeUBha308gIRVCNY/IFY5IysJpt1bwFPY1AIdZYWLMxJXCy9gyWVKHraVgNRtzpg/mUEnMJZtL2mca5SGTCMWJ8JBzKXS8+GAwAG5SGViPAH4GoFOllBOZ4yIR0EsiUD77nCaLoowBNOpHvxmbAGNiIgSzVagydFGkwFLGiogrsgbGk5ESYoaTAf+47vocLqEUVII1hcN1tqItdEDAT3OvxciLk1ZrhuHIuBKXDaeP7+ziswAIuGieyGmv8cwg2/bmQYii1R0nA1nzhdSONtSLiICAnEUDcIvt9EO6EkGJdHg19ycwmkDn+iet+Cms6VOM63I8IwQl4jlTAFEYMr4esDuB8DMV0wsxYLUohsX14kF+VElq5tiepTKymQjHJxSDmJ5LMhgq2Q0jHp8Iz8Gxereq53MZT4DDXMyuQM+LimCvOM9aQI9cfz9ibBbLm7axqeLLVCYcI9rSVgTU85s79xGjiHWmm//E0yDejZFZEJpgjnzcgCCIvl9g/6VRuC1fatZTonJLXsQgkXOKiZhoky9+/dwiaRCEAIqYL6SE0OiOfxEDeWQ1d8aUl8S8Skw0HjkcZuE0ewYXF8aj+mrY3LRzMMdCXWgn7EG0PBpcrqkU/mD6Kwugti8JCIQyMxXApSEb7xe4gi1yQEs1Jd0E+fYHMLUpxUwzAQwrj8PQcgFUgN4uFtsIStMs6SnQyLQoTXY/ZEo8hUnWRejCsBtAmtTEVQF3g8lBCsDUZVl1NzafTERcLHsFgOTz2qIhI3sgY3wokhrbH0th2tBgIJkNfVfN6oEMpOT/9jnbQChA7hGf1grJR3AwiMBaI6iHn87qc990WAxZkpRO5CL4TV3GgCq+JoKQ9FEICUDaiwAeSEeVxQ+zC6zEeVRGFgDvP2BrEYGoc6A5LhKRWCYzHF2EpPZc60TYJ21aHUfSOaFJZ6BOtgRUJQFoh42WUjUWySJgDkyI8TnpBNDYHLO46huHe4V3VqnGQ5CEYV7gYalxJx2MNMT37nP78bQQRcKbwFsHMBGCWIXSmxPE3s7UBqL5JEZ2lapRoD2kNqKoK/bBpuvc5Az8OsTwQEwOKoaE2CICtYdEQyhT1CnKQjOoHYI/cQiiPZp8QQJYMz4BYVWli9vRCIJtA0vY9FG0hGaipjmWAcKgD2O1FJCe/AdToDwvjc/gnENOAlUbtHdouIYV0bLFUllTLJgE4bsPJsykAT5S6bikBLoIKr3HYyw3pM5+bKXrjnasHrW/lcN+xdZP2ILQ1JZyFNmCgS4y86r4jYNQNKJ4t+6JzhJJNSNpSKKMo8y51ApuChkdnxz0hYygVRJXGPaXZ18WwQ7E8frqHxJqISCI7Q1bgyVwT3CdbfSSVogfLwlCyQbM1lO4kTEoJMj5EELjDfyFPXclnEFG+pNqchEgMxudysCcX0K8fVdbVGsQRu3/3zsJNkZjzNUxMwPyJzG6rlFemMqofFm5jxkVIu3yXWqs8r/eDIEwFcfjb1TCc2JXa2BKk3zxfcynjReU8ypQuN5MRxNZRRbvxID6IQ9QAk5RSfz2RzMY3rem5Op+nQQvkezBDdvPzsF043Zc0aSMdH60JgdCLv2zgWgkuwPBrDEE8SHFfMUY/naKqzVe+PKZ4qiK2ARuZ9Ioyj9+IXBkRZu1Lvo77kRk04cyq8KeithvGiOIuUg2dAUHBha2InWs+9BNQZRJBWQQmrcsTdxjooHQyKKUgeyOSSUHQVVdImzBI/T0wQiKIyFGNHoOQMeDzEVKb4+kaOkoH9Z706bjvVX9jPv1PbAxPhuBmGuAHJvJo4mlf1vz4NUwNXUkymBBFhtHtB3CtcTsI6BWWyNKe8yzNP4SlYojoW150rZ5rQ9+7qbb0ZuXQtORdT8OBnundLHAt5SHr2bTvKJFeemeu2YRZWVYPEXKj6jQYBRCQBAR+YoXBTzcZaX7QUQSvMe6LMGLYY0FizBMLhlIiKOVYUnY9lk5hKU/krvxLEe5jKj26jDF+lGMDyRCOzITDRbdY3qG1L8yyMrL98CgAvWxFpQB2SvpYJRMgYqOh8IKu/1Zg3nFJWY3X+uCoWyS3FgTAHDA+BGHxzCGRpuWhKVVYsjXApfULMc8LExqOBmBPX3oTyEji7fLAtVSydIy1cY8QaQhGdm7ehcXgYH2bEewUDQNToF3aJbp3HRosChDCzvLIjhTgFMymB7NSCKvIgoiYfk42KsVa/PCNyZ7sErvomC7uC5tysb8X9eUiiHJHnUv1e6OEBWOjjyIAE1LvVVlMNC0kEY/MlRKRxp6HEclXscBqOggHZL4iuDiA0yfB4HCNQi8v4+ubh0Q1uGtIndWCVXQR1KZ8SQnlKLtCZmIyYNTe6rjDKLvFrRdGRKclR9hLRPGg5bEU6wdd8ll18IMklBfIMVHIwIU5ret6etxKpBtWVkRhaUU9sDIsYsVsfJ9B/jCrBKmd+zo1BC5p5xNfn+vVBLf6pEcRnMA5FKQdyiGvi67p5GY85wYcFWRtUH9F/EtFQEKJ23Fi4aDQUyEorGgkPyQrODoAbSeBmXDJCziw0LDq4NEfmD2wIiDTY0g8k0QwIIR2WsTCXzK/FEqiECmhjorXirIZcSS0h0Q7efkrBKQJv0tmBk6C++F7mu+1NfbSYnP4mP1preFK5OTSrdai9LJ+PP6T4+xRRkWmzvAXvliPqKTKCfkaeBBmh5wjoi0wkk5nFKIcSVJCJQQlMBOMQL6lg6/jc2LFlYVzfZ8P117v9+II4IoQw8McO8NG8S1h5gBTdOtLSbPhicBtLVGdzKQqdRIIBCL7m99D4SHs/kCoomfi4d00WyyXhSBCAZJo1oZ99Mrf1Q1dBWCK0W+W4hrDTGmBIERAI8ZS1UnieIhkIu3s0TKKx/cUlwU1F8PKVLIzxD4QUdHK50pkVhG0+4hIhvHGy+n1JzaBdMQ/edDZKqUEnQ4H4EF2Jblb8tRl2JwBPgAaABt/+b/7YAbACrQF181Yr3/o4CaNUhv8zMQP+ywGGqTYDMOES04OFUFZC60+XMXJg4RAax0NysRbaMTYWFGxXz0HUOnsDw1pr22KiUwjkqWy58QvqjdKNEl1PyLTuUvFkUIwi/pB0nJrUrQQa2H8s/F++KCeJgkvq5rRYUJIppU468HNKZ1/oIdpauZk+/TQ6f7XIex1DZijEBKg24WgRR0TRKEka49kc/qp5Kcm3JT0ePSEPbvKpWJ+E0R2jxVMIEqYsw2NkZyAKckTvxYJcnJzsPMZ1HMr14q0IZibstFherPm/U2lCBNy6vZM5EFl0oq0ImPHzeKxX2rtRW88KJKhs6jSZmKmFfEGjGMqhHx1LuERM5xYc0p44Uk+KRyXS22mYep+yxKhGFV9l9Rz8if6iD/5J4ZtTtRPGkFQR3sDwsrOcOQHe1yiSVAfZ2Xap8AK0lLY4+LwcuUp9RWJ+mFBEIuH8gqAvMj7H1NHkAlMXuCZwRa1VbXuiXIptWypNoFbNwwidkT+sbYHEG7IVH/Txq2rqSjvbUcIWznj2FBTwyHc+FWciiUvAHdXnUZeUEAc3IwN8Y2X+RoVbmMwVkoyUpoVM9MH5jia8EaI2aD+uoTSYRpxZImSkx1EIlFNfWEhYlrJ2RlvmwfdO3Tj2U3hWcp2kZkmY929Ic5FuJmxb0l1EYTmcHiMWcIs6cOEVnt1M5xIeatW3YLqvElHpnlRfD2oroFVI9j19TTEdCiUCFqXjWP/Y+o5BVlIrOv1+1Lgju61aY2xX5/OZtYc+cO82ZD1WI+PlH3Jlpjhmszo8XJSvsKNAQRsZYVp8+FyaJTqastq5zkocnd+kyLrJ82CatV9A4RUDCTArMEY1J8jZtvJ7RPqotRGCuflb7kyGvh9poVKQtSUxX+9p0l8od5genb99rlPq1bbqiYUIoTZQq4k6pKVdBnUMIpL0yMH3KhuaNpWIEVw6Fh8RqGLRZ10tPtPyTaNPZ6snKRNHJis3xtHy5J9vzngqMS93E1mNXClRRge0gMJ51KYxSNJJkgyNnwyIFRmdBNDlydX7p8eIomT3UJpWAjK9flhdo2uK23+gX6iVn+DUDnfpq6zIufs/LP5eqUJz1o0XC7kE+KPsoRHFlvuu4aRmk6KVkE6qhKs3IY1VoinHscEjDLtDBFTQ5venCGtTUemaRS17ZuYtg23hOugiccao4rYQCAzGad8rFGihBEJUTvSK7nH83KWGckvkXMxCo/Udtv7aCq4CrbUlVYFK22NUomOKKklSnKqQdtsvnO/yfkxnuxWKw8MXptx3lpCUzUs7+G52mIa4vHEsKT4vKk3MrCl9m1z49gvxBAolJi+HpWN2NHEyG0LmM4Nq+FO9TqqrR5Xe3DZBCWMWm7S+pvwxKk5bx2Ffb7IXUQKu/RqllufNtrxtNiymwwiYaRCjjPgjs4kUxLe3CfeHQpfi33EAQZF220qvPoYLhnx2u7rK4+te1g8F0yMtZAWGGcg+HRpPsYdotYpqC1a4wyTigV4Og0Wl17o1eBR+42PT1thQlMQpZF+gzliZ1AsKWsUK7IUjz17Bau41KjUGiMyGSKm95UEx1EB2sPq32qhr6MHh07h/NrOjvlYVitwdHnkkUyjyFrKl7mOlI8Sk/yteU5v/0EqYmMVNA9nbDUtgvYxfsTye7xKogKRoN14XC47EMuvMfqCcaQkyT/brQ1OMVutYXCsieHCdNDv3eyTxYXsQMLY0K2ZMNOq7b61fcAIqJ47yT/dxYFSakpELlNIouW0nB5H04yyQLvLTh5CR9rWAz1JsM0pubjeJaIiITWMqmXxIoAfgi9cc5y992Wc8bGQ1aE6ts7WGTvqKVBooZDiC0QFV5iq142yf49GtJLh8zjwJHlXuPMikiQfqqcOvAmCuyE+Rdq5c2nxlVpDH5u2pFSsF/1KSBkHgwXDQdBMU5PHO3zSFFQNskd03Qgj+o8W6POdBxd0j5KKJhH8Zo00QvSQeqEYleRUF6Ssp9PSW2FfNQRPo0uX37RNXnNgF/t0RdlUuIoy2FC6Vf/XTjn6kjiZHEWxFGQX/QZVAjokWdBBaNXNAxOublIdH34801OIhjWqQ/dZoi5U/+uTh0FUCYCNf9ctYkMha2YvCoIzMBQ63eFb8hD8DtHcXNKs6rpkqQgXxw0253dQn9SRVsI4CP3yWnp1Epz0xZsqTBA0XvbHzE1hJ13oJTBpn+oEh6LifngtUbhq9R6ZW57a1cXkszikBBOjlNeSnhzW3yn9ob0bbkZVR4pObtOrrDFuvL6MtwudCLTTeKxqDZVTMCVVH0p4irzFPF15954mxSO5e6j4qKsOjW3I5Lq8YyuI0maioCQXwrieq2x3GjNkuCQoJdv0o3SMp43JXdrvKwOUbfsn87xjkn3WWbzc+PeQqUoh/nS/liPwpnAN4oR4/j/eGjCCv4meZP2b+CZbzqa+GnCE8HvYvqeS48FOpXsq2ls1Tf7ozrN5p2mfryxaYtYaI4SPuBLXL+VfncI42rkcaof+h55cuxKhrt1S1B4SzitJWShDbx6aJdDk1olZ8ShCKPhZ1xJujW54c03H+XElWdPBer29Gp6QmNsluwqCP6GjXCz5WepssmyQepTJjNXGWyy5h1If3HyXFGIoMiaGAUnBJ8aenk3NFFCuCmAnoVpg/cJjR/2JTk0hnKvL9u140sokmCXKRXDhxJ1EFW6UqhAEFTTMSu4kxLHrI5oottOmgm47iF+++Ih29GwCUmck5V8958XC6O9ySNtcEi6qfzCQ43DbJDb9qKQ2OPO+pnQaeBu9O5k9bM7pJValxFl9lPGIXTKiZkrHwp9HndU5l2ZNDtHpI8gnww9K2EQpHYgn3Xi/Ely0ldFsW/1ZcIrbNGqE6KTqLmsVuVTXbJnuQmG+V7DthbUt1fJK0pummneyNzzGp4dplKnxGTWGB2C5oZqO3b2X1FBFb8aax3OIZZJJ67NFSXejR8AxTbNUh1Hyac/KrFEzqS37kdiNIcy4hpyeZo+GnnrQzS8uvJRxeOkvzQWnFWItPIacYS5fSSE5ZLJ23dev+T5X2lFq6Kkc7DKfPnWdGybT8qvQ0XnFZeFX9pBIgBXSSyoqZmNApiD+unWbx8ONC1t+aKsTBU5Muj08xWJ9aiGksyNkF62Oy6Wwuagy2YogVrXV7pQbq4mXceJJhp47Se3rIEQnrbFdZQdXa+iDUWUzlciGFbfY8QQZbYi6pzCfEjW1SRsFb3HXl69NcVzIUbD1LfxKl6z2wwwJg761VJMKrPHkbJNApPMyJXIt0ya/6+JqgEtutq1rQc5d2ihnj3xFdWVBKJYspo+K/WRLD4Kp40JTHM0aNJu27RvhPrIjx/FAVyBbnpUO6Ua0Jkmy1sIfjq4GrzLTY5A+ugqqojW8wpddZrKpAlGDLjOmw7ytKkZbOJKl//Yn+UFIe4WEqH7ShEnzJ8IX3PyTFT4WnUI/jFQac+uVeVw7hXdUiS/723uyV7X5xwq0vik+it5oQ9P1gYtUdepEdi1TFQf2SL9Tr7aOK8GkdgzDSdsXkcIQ3uLnSmgJ+p9Av0H9fWpCPqQ9bS5OzTikBPKcQOSCmlDSat0F3Z85R2cFabV3kKnbAL9ekiIsW3PIF4qNIalHLzQbYysnV2pUBnufUYdttlYUwdDEFeqy0wQkyZQ4n1UgFDWWN36DsXJ0P6irQnb9qPMysqH6MiLli68RK2X2EuqJAOetrh5PpKd8+kuiblGrjmpIN5K8WeKcPBoM9FJUcoRzwQ4rLp27cUjmKJQgCbEi1t5WUyHIBYZaLhvTRL/FEA1SSMUyxOD+YAI8NhakSW4vj8B02gT30KrIe6RnBCL8g7UWD0nk8FyfhVeSJo/MGPwP1R0zdcY/HBDTLxaoPEcZPPlkikF4ggnMW4FQ3gf4u8AqjIqd4h/4mFaINBvPn+dYcAZvLmLBIR6yTq4jyQXc8Yr5xgTA6yZL0uQby445DP5aKidEqBGCiDDKNo001YGw4Z1IXwaJDVSQ8vU2hzr42sZ74AAE4zQ3VI/tCiTgfYIQuxiI9Qn9wLR2k0jfzRgXeIS2BKbYbcn4DWLNSijDNf7vy2OHFPk+dcmI1VkCmEkZnVhi5KJU7YTg7gDSEbRCHimbnaCD/r55hV629oKYNJ09I5CpwBIqRTzQvnX6suRm2RrBa95TNVFC4FuT6l9itT04dodQBjBdAcYto1nzs02No3HNIJEkT3DVlT4gncXtKziQI0Q6nDfKUkTOTBrEVpkZl0yylD6uAWn3dynD7lXpJtQh+k2YnCLK3G6uacXTgHCoDlcwMYzQvhl+Om4SpUSoP9is5Dwimw4lbMQvfYpVvKMiqNQE8C0aV6JnDEqsg8gI9FBnhkiyRg7swoE4I/3Hyh8m2oLmLUstPSAqHcvnDTGUGmUMPTvJCgcYlBCNg6JgqmMLJWCE+670pUgG2FyU1v5P7MLaQyx2s+uNam9QRv+g6d8gw2ULySxrQ6z49QkrAgBeO2AYmOwRSCI6148Oko/KxN/pFOlidDDcZ+F0tUjCqcgFxDsw0neXuQCPARgF0FaLMhaZZqqvKtkKkhH/fB6BEqhc+d2S0nLGkiY02ElzQbJlsFzg4RBuxBn8RAqItTibVI1mUKpVZFXH3/n20FcRRcI5QAUAzBAsjyLdeswGUcoKHootakJ8EyhwYoQ7bDBx8TSoBuCkDlssnaP5YDSIobzEEQgKwhCMMZrql8s8PHaId9OKDVItUIKICOMUVoLAMMs9MQPE0Y7FSki6wjtIxU8b/AUI8yYekWdoF6CmcgOZsjvC+kg/g+3Uxy0KaHiu/yocWUSvEJUo3IaJbnyVYGKT/aAjcMvXOWz+ZvRABKgV35Ur+PKzKWyCYJhDAMA8Cjv0YFQWlIRYiT8MKyQyM0HICEyQoUAi10TxxJkJxsSIhHqF2fz3F/jv3ObziH52M9ONHYry9WdAEaBU/01VkM0uCYCIDVD5N4krjVcxZJg5Chdv2BpvbfXrm4KenAiA4RdjBAsYEaOJ+gEsMSSJJLJhnj0Y6h8wqbFjD8KYLg9Dk46sjxUnXmpYiWo58I3558ptEjZAmREniE6LjbGznAYnGCgBYEzpBV1ohvASohWC5EkXOs6xQJqiArEPDMgIRDqImncWNLKgRYPyav/TlS2NVHnPJtOgQ7uZCvuSFsxTg5CYBZCIL8DxNVsRjKTd9GY8oEcPrDejN63Sh3iwjm0HQYIdib/eUk3ZIuJ5zPIE6ZqyNe8ld24MNC0oiIjYLgjiSS94SV+RBVeZV+oVFWnhnh6p9IAkmQ5bTbzk/dhO+HATgXr9U4sZgWZPXYnHgCFAZgeQIWdcIZA/xLUrrDKmEd4lMWLTiIq+589u0ivfAI90xTpJcOFLDVJNJM4ruYjiFSL1Zoui6ZksXCuEK+zm3VJpSiU9mcpBVF4VdPKJI9AUI0zU2ko0TUDIFQET6iCSdWFaiTlXDbZYjt3sTNUhi8kyXx04zhKpp4megy/bL1EYRWPADjLVhBmHUpIP/h98/ll3i+iQN0hxbsgIg00MT2Q66lWLBhGdSCWZ7tXZwzbNsWIJeQ+Ubkso6Ef0BF2M8jPVJlr0QhGuK569k8EIhD+EP00AniaFBZcRTC4ai0G4hCS9KG5Fab1IQ7XD3F7zQ+lIsFleY+RAokj0kN8PvWh346ZfCyYYmS4vR2dSJF4tlsYVsPU7+E/4IiBJ58pGATJRiTBZZoOkLIgRieIVBwAMg/DGTRGGIvbE8SJGviIZTFDGB2RYtVyX2KQA1wKoykNIlGQQQOoL9t5brBP5CD1GALlDIsbL5tvUx8lN5t4tBVFoCc5rgE0Ht8Akg6TGGmKCFFvfgowaztYTZvWytapfhnp1Kp2fZ3qSxEBTReZL0AtPh9GIDKLhBr7gohVQZUq9q1NvLiRgLx9qSTCDJ+CNM6ubJiuG6Q09JzqjRpDnZaFGo71YIQWsEjxxrVE1L1xxOdsaJQd15KOarKQ8VfHV73VnWKsjEinIiSTjaGcr+dNVsZDstkyjpK9jj7MUb4QLDPQfAZgnhEh5AH82gKyF3WZnJNGp9hhG5iM5RwNM3IVscKpKKN6fQYTYCN93iWXCg+xUJE0VYnpOmSJGyyRxUEFcIIrmz6F8VtE1Lr9y4fPytQrbkxkIXmjkHv2lj+4FO6G661GvSz5SnfIk1y3suixHyNLPficEPliPhpdOcxhGoez8zlIL1LqwgdO/fhDGArxVaj5DstdKxl0alAUztQA4i2+xFstRU1JFbqSoctUkXzsRkqNzO0WNrWU0nkI+bUHgeR5u/E4FQeqea6weQFSiUMoaXpENrHcqoSe7Tn0RRM5MpXYNtajvWoK/87WGEhgAAUAU3qiiLh3omexKKpAPx8CEI89BsSxK2LO9zm/be5DvY6Gl3KEEvHaqQQYKqocricLQCxZ7pAlxJXpSrfyvkWz0ig+senjwuGp0FYdG0zODtyGzRi0Tdc37ZOMsnzIIoeR117kRNEJFLEk4jHTe2z8NUDC4mVQGYSRq5SnWItVzsJab+ao2JwDlyLqjmwTOHsG4iyCWd+sFTXGsJxgq5INYfhlhVkOOPtWncRSvJgmJmwVA+Ec3Ua3/L1IIQ0CVmIUBtE97PoVf7skIpNklVLzJHdIEpTlfpTeIXpwF2LmRHXxHQK6YjLTiCGcyqMwpn5Jkb4WYjiMoP0uT7/VosLB0WpItonSVLNCn66W8Ay0YIYE+ShnVERPk1yFPGWbskoEEEntMf/j4aQRzsRrZSVC3OqPsrN0U3dNY3iC2J4OnaEqT/CE5rBB/Sb5VibaPMq6UKL6pssdiBqPSOqLWy3Wkw5PChEmGGJ5bCaL3l2zEfgN0Xe8sqBRTkDtkSgAcKDCgQxHLaanjgIg0JI9GYjAIiYK1P0KIEymazZzL04S8Ykh9shPOFPhh1QpYZVtTknyT9jQIkb7RgGCrrdYLZF3lJC0682hPnka27mOFkPVK9kWghB9jHXc1HnCRb+UsWmWSTDNh5JJb1+VUgmEkRnAEDgiuWpKcHGOD5XteTBfeahX4jSkFxENZiS8Qz+ETcq2DKQLp4SNxBR6E5jVYY6NlGwdjINLhd24khfBEB6CuD1nWiNsAx8QegQZza7elFkKpE+F2OMuyfb0KTREKgR22YSsjl5yqh5x7sLsW5FtclqCOIScds2TJqz/c7Cn81JmICR/ZvqY6FRSyG8FfsJkaKbkj25xBCw5fYsLKW64k4JV6UZg8xs1HWj6D8VouKdOCaG8QjxKA0xrihEOw/7JJTA5aRxeESIl3ij2eOyXK24qgXx2Xm4SQoVQN1mw2gTR1DzbTT+fZ3f2MroTy//hZGAd+Tv/0AAsAAQA5AGsASgC9AJTmsOq2In/fIrlMPgCCp7z4iOolzcMGU2qPSn4Gj+ohJVGHh8L9QAeH758tfyIGyu56PudlqoBH7qqWV0h5bi7WdZHyTThYy5RHQ2Y6z3p2eU+DFWCClGiSmzVkKss1lfC7z4lwd/qsry1tPeIU90YMLS5v3a9cgQEt6DK/H2ft7op8Nxozmdx2azH1vIoRyg9XspjAHzVSNClH6vKpey9vnsdq4Q75mckzCrwilTv1DkMIidFsj2wicQEMkrTsUy3cfjFxD9mfuR2FKZNNzqteidklVtVl9zW+BXc/QdhRlOCp7iUU5LQp1F3d1FfkSu1vUUgv+4BOXGjkJlkZtMhVYsbwyVirnfJEObSnrEWp8PgCGsGPvT6Y0JtSqyUbO7jlAT5aW7nSmnuaMljstVkDk7tC2VlhS9LAcFAwCWTybNZx8peWquO8uHahENK90ny79X44JVRwWHmh4Lywlz9FLExff9pKPi99ZU2CxmolX5zwyQaWCpepKuB7Tj/gJy9ub6DLnmv5Xjs9bBkO/Jid0rfROx5AcgrCOpVZyMuNVn+aeuiIaf/p/QZTpWUu05ydecTWYMbh20gL5uc/tMcRfyVdTT6zrslEZcvvyddLMqwzkf+5b7kbjfneyQq4p0GJf8Of2s6AyrHUn1jd7fsDJeSCX1mv+5l8T1S/PvCV3h0xzwqCihCSLdsMs7Jgs9qVUSPh55xORebYjM05u+zwb10IF0P3MWfFazCtel+vpVWkc3WMIeOULfddeqvRka3nT/+WppluOJQsZMkkLh4sFomBmUFLE0WHYZct/XPMSxXiLhiJnV8iW3vlJI7UDjVaFsWq35hgjiqeVxGFUXklogE7gv93wrahAvISICAKECBAGfAXF4pOApdBE0ri2MHF58ZECPBe9mLyIaOBnHI6d6BXngkgFsEUwWeoC2TzcIlIRyVVxOmHCEd9bCgBfNAAIwvGQ9awJoEsRKlmWBn8Iwpq4QmYqQCGMROIIhZJJTJ+62hdzUVwysG9ySZBpA4GN3JATieCWFIUQDgAAwzkpWDEgBqfAoNaCZaa7RT+B/gApE+4h2nVhTrKIaOhp7ilV4oygI8cchzWHVAP1UXWBK7f7UxKcHB4fLj+7In8TbqdnxbyaaVc5ZWTGZFygcfoJgX/RzAxGs+hIVaxBKVbxjzDHFYZ7phXlV2zT0AUblAQBvE8mE9fX16kTjiWZlZYCCCZf7KsYyKIuYFpN9c7mGB1ik3lIrqKE9oupa/cOF4HtRFL5KKLFWqyDENgTc7L1rwl0blQiFgi2fkmmfuB/O5sSJlrUss1UftJ59/gR5RMG37IdVXcspWDR2BhCMF+hp6rQFOJYq1l5KOun0OMSRdf5fJyv1rYikin3OhyWRrmzitXnXpd8RPKV9mgn8CzRAyCtrCrrmLjdNlFxuROeqdRHHhkQ6kqvoWUuXB53VK7e0ZL45UgucKXpdrfhKxbFzXddNZ5yP+3hAv4Sgv+8iOeaO+CciLVCFJz2hFZVciYKRvsadyULFKCv0s3lRfDtoFtOZ+18BMyd5Vwm7trMs2qm1Nk6xCdZAZGXG8shkyFXZ5vdmWU1AXstBUUl5qfhXEttZWEqIyIpEApCDhUe1HwfsRPONwil3tRTVN6bF0iEzxw2jWLj+oLj0bSPuHyVh0O9LR9Kic5c88NRqDrvZBMBRnuPL94tXh42Vl3iqnbJEJ1gjLsvhHw7/e2coIDnlmKmMW2tStYUw1u0pvq2FcOMgQzz4vOXOsSeKjGVkTCZ1G1FST8hNXfsSLaJyi7oauppwhFqi68uenkQC0RtWiI2X92ada84am7JE8Z8Q3XV5r2zODDF2r0ElO87CxeLgQH+1yubsPLUdtKaUeRnuvxxcdQuqZu3TOlv6iiVCmduHrQiooYRAH31rtFGroi5o7KPaUhzXNNoSL4GkNcgTlQ/JvuhEy65vkgwnqSJCAukIcODVoqI2ohaJbOsN6cQkV3yZhrdu+U8m3z7+VQR381/GjaPISvNV9LoQlDRo6HySJwNiIEUUQMeXFLnbhbPn6EBunFXYPWjkzLOERVmXrGSUPjxnPY9sq3r0RQVCwFcjhbVper+0xwj+NBwPQApWBxeuNbllnsCqQFj8CPMSJujwIREHGcVdWrp4KVCZ+IQ/mU4OOxN4qphB9ZOIS4rdahGaKR45taFYclCa2Eg0AKATghypdiPVO4J44EcG0cBVjeUZZnzfMFAh9Rmh7JLYcKZ0thYqBydQTS8AryQXwajIYiqk8H9cQVcMxLKI3DSkBlQgVYRDWWQ9pZ3WI7QK1gg4rymD6wBI5jk/L5uF6ynZT5XP7e1pwfvqTZNCU0HAjw3FwJFFl6qZtqkk3r4nfz5pnBxA0gCMd4SYki7TYq6lqXFN+ROv7CoVhHnQIyXvOtfzO/VUiK9L5CJMWZ/p9BQYEgQXYpElT2LR4eDojn+YVxsgDb+cO3DgMUuiDgI5rxFkK4U4zdCQkZlpKCVAJIITSQbVVkgTIutZOOkjPxYPY3zER/pRnxzElK9oxBKAqYlBufkYJdsLSXuFUBLKGG+D7y7Flybe1N8n5nQOQoMtdMHck8DbD3IZqPStuCEmP5hSZ/gEokUtMuLe5BIorctR73RD2pgcSKC87pNBOmLjaFNUDGUOOblpMAM1szUPXivcMPqi5Q1i+Llcm6BDvJjJsUgaRTKl7Yg2Sn/i9C7zmX+WU4GMWExuFLpG7+3fXa//EctBJCeEAzmsDDUObqCIQhGQJBMZEF+bSLrtCGkt0wYZApvwmFNScz05E13SXLgdmrKkEz/rYqVbc0gnBOwzrRUE3zCL6BawC9pOy+YH8R5hZyt04mIijr3kZbP9BNAEkMwjYxaqPpv/xrK+2MiFYRPCbHI0bIai4IucNmS/A6tY+6AXwewLDkWuZCxvKyLvQoP7Thg9T3GmaOSPELMqJCDtOb3X6IEoEJpItJJVqyxSHAlr/lRa0VaTiQtEQDJ/BZawUQtTnkRJAqgbS44SN3ZDH0GHIfEYfPZ+AjUA/pZLFQE83jERAQDy7II5fSPg1uDB4s2FBYt+vnL1sEW5By00G6b+RaHEwgbPUX4pilrw2P4g7DlSbLi5H5mMRRxIvpHWSqcWpOGgT/Kjm9k02cYT0DZRFbihUN10oJhZFR1WBlDlDdaDjPT8Uqy86N/yApFLgVWw3YR2rrMuip2iNGbmRnX+Ku6ls5sOpTFc/FQUbNCxnF5HEnUgDotHaTuVJR20++MJRnos1yaiMGW4xqwnE2nGsNXxrh4UDUwTSUfD3/TEq3eypowtHA7pZZHeXGKeDXL2yPZQ3QxUuELSYpgVy/YXOaruhi16K7vSQmPeIvEgWXhmfaMi/VNRalC9F3FwEPtEuZPr0wT6GBRJYwGtyob7SKEBbVrq90+9WUh4DWLJ8tnZtR6dnjUhLmdDLaUmTjg9w0lwr8CP8Ur3aWiYfQIgLqGp16vmWCijirQ0QlvnTFuFjAkICWrMxQCUKFlAa6ItsFXU/7xAyWokPdmVffcUi/lhOdw5qXhYYGuxn1Q9RmQ5QLiOKYtQubGwI+wHJb/zRLFgW9CTEVO8kgnhdif8fHr3U22PMlxvRdozBeOBnNTLShMg0EdCRPQOwyrLm3h4Si7Ozv4Wo8grog6Ifn7I0NYWGrUtwSU8spJQ9nq2WfKM75a2PxRzYGAvHyUwMzoQj6E0QoSrq6sVL9tgb9yamwIDz+GIBndgt2TtDLrPrWSd5TKZylGs9wCoEqktn6mlSChtwrTIPwQ0eLfjEnn6RkFHSIThTwzL2C6xVTeYwiAzPBYcoLUayZGOuJ/TwKouBMdkk9nMDHdLQZQTQrhTCkIM++zBqDgTzeBOgDkWgSRvWwoXTdQCo2Gf1rJRLU0lmpPpdNBYNg8BWgcBoQisGVqZ/oQFRNZ35DlKa2S/p1J7KRa5fIoWg24StDGhq6Fu1DYEta6RpmiNmcio8FeCpr/WfXFe9GXQ4BQ4gKB5e4HPyRe5LQ2ah0P2QNw95wTrov0QSH5RJR867Zqa4o5F4DdnVdNmdksZu1FRblMPCcG2beiocAXtqz/qY/MmDlqLLusizC8RKaGHQbGoN0M7iWQyrfksDg0OiwPFAVKAUxZKae8eEkhudZxFmGQBc/evw4UhcLQBHF4rKVnIsoTJYV7ALloUGMmI6GW322OUEpqCSQj7c0ERwAYXc9gbSK8jUuWyi2zVoJt8DkH7f+GQ4k5ZUVBCjbnTF+tTnf16x/hfdfaUF1pBc/kYtOQi+YgFcrD4TSVjSNKI4lfa223Ger7kpTy+RtcQrFOdf0fvRsAiPvAEojCW4lBx4wCUUtCRNKcQpo6BAjVuyAdDfLJCEWzfJBjuAOgngskmt+ocpTsOBy2nocEEbeiioMw/OC4zXzR1Ycq0sivE/qp5PCAkLCNf9vwFUtmXWVT6zV1h9q3ruCT0MEFvBaFgAtL5X2mJBRqru5FU3H24WCYpYGEEkO++xvJMM5oAXhtD9WUB6RSD9LI2Owm5k+nsKRPM1Ab+Igt2eYwiSohIE1IM2YnbgqYgkD6E1Fd8Qur4RwVUkKid46zkXHb4kDUVpu0WH0PwOOIkAMDUogKAPYIgpuUmrktvgnIEHuokf7neasHGzkpoI2ynZVmzeqxd98GAZ769kE733hqENB4S1MoBHhEJWVjJ0Aq2W2tVSdJJYYaSKbH37aK7kjEW89bGLmyw4VTe4R1o4HJ4HEkEYTNBlg8VqmPjH3CVeheWxCK7uwusLSz3mIhEWO7gUpam4KZkTlBJVlD0kID2plkln2CD+5AlVxKRT8U13rUIiCQ9X+Nya51XiFwYi65pKZ19W31A4tqZWZ9cxJTqz9Qe4KaPpFfebi0q4RjAUhIT79hBEdJc3I+dYgqV0cdk1kXLQQGSwu5MfFim9JlibJrN59cYrubyYSoMCG+Jbb/q2Rp4TiEXB+YhIgqrQVj0HusbywWH0a4Ab9pmwr2hOUBQNwpVycrbief5e8YOx03PISag92gATBdhkdgvrZlG0SmIxpbiawCC6AzoAkHU4AWwfOhefBVysd7zjRlRwcit61OSJbnfLKTBCmfBigFaatVBwf5irIN7PTO88I50X/mI4i4h5s5Fadroq9vNLPGW78ohpS81HLH/j09kdJgx+6+AnNotuZ3D4ur/kuOENyrNU8JTkKlWUtoTgNYgJAgLWhDsfTvJmg03F/AL0vDiSBTv6cxMQEq6gZ/9Zf5oInyWFWKfOLAvqI1+4zWOoSgKGUKRVopCCRTPRb6yqp6L+TTTz24s/dcOhCYBac06KhE6IOj1Jye5u3EFnI7gifwJv55MCqZG87ajbtzAzHGKJiEUn7jVUKiHdfJR25Y7CwaOM7ArxmAjlkBD1KyCUC2x4ps95Hs7pcOROn1KlzUsb62TouOCcv/XDAQqEbRVJjoFDMpAXUISj65NrZ5NUGJe23b4K5jrbT+cW4q5B7x/96Qtw4KWXsFgMSrutODB7Xr79peLwJYODt2XNvvmsL89P7mmYlpqOXyALD4DXGJxAGkhiWMowFInn8cKlCeJ6Yhfp3YCgji3nvnRAGijmESf/iv1HRJp49YAx7wZJ2EBJKhHGbiP5DW/w42uz1n5epMTdQFj8ztsTiNmKBabJbMpsesQVxJkbJEDzPwNlk/DO1Lqn69BCRgNQtyd6H1P6W64aRVfQyt5Obk6+SQv+GRKIBuC4FgrxT2X24/pa3WUhIdi0KDhdCTdEUeVPTAHjZq7MQCcfdW6ao5qTWCoY/QjFb/0REDdvQCOjpNJZdyC1OsZUmyL/+n1HHmaXXa4k0nIkijZo2ZqVZtfGgVEcdvWxq+BGb2jc0tKcR00kymMJpKVwcEtC44ahRiruBH0Yq6sEqHoEpHXn9Gn6slfu0OjY+dXqTm8+3U7h1u5j6eymaZVsTUB9yn9Yb8NI0vnhyt2wUOpucE46PAEQvDuczHG0cCyqhaqpxlvEBoJIuogq6jCJbcjkfgkUFZZysOWOnIIOB2Qwgi29CTB1amY7gSjGSkwUuCqlTVy+VrqPi5Nyf/ScS1T6JqOjm8TVrfdw5vTPB3PX6GDBHV0YV+aljxohfes1SrLzx6X7qOk8N5YqlDE/eYxtIrvk9FckzD1kYGv1ETffMlIbRKbEoiLAKj6IRQNaVsNY7lRJ+nFlOrepsjalkXHGqXijjNybdmtiaIKecrDdTKjogVKZGX7TaeMWyKa36FcnqmNaRMyNWXKnP77eW/O1sJGSqUy8rjuOaKWSqBJllCwXGAXKLgs1PNeM0ohzfh6NQWlgVkV/WUGio0z+gKlr1J9Xpya1MbPGY0umR6DgIwrGFiTDZQpZOC4DYMOfVmjlFaP8VCMnIo+zDklldF6oJNiJt1/CYgQDxBODsue6PnDkHcQ3JO/x8AewD2/7n/If7N/lP+Fuaw77k8dv8ywSj+X4HR/cEE5NdCJ0OHMrSfcd33WNZBIRfVO/ZKBCK7op0e5p3MLwhCLWqwsHQWSb/kcnOZ8FCd6e49zl+mvZS6PV7AFpj1XWnaHnmdeVs/u5jGMxcuKyS8Lu1VRKTvhPSZdWVgQtKs54e6lSJyrpyJ78pOhcELz4cokdH6IYR1pb/kBUIZx60eVDWXMLW4kNUTio4ETvQHy52mZEfnRkexvY3WWiSl/0wgyQBrExXkmUwh6G3Q4sn7ACBjyoeJOnwmlJe5KhydC7zo7MWYokMYP9Mcj/Yl7BszXcVILk3i/NXgeqWNnfIsRFtOVc7tpt94e2Xd5WyGL2SE4jlwvyKFJ4m4ohdPdl2o/TeKOceRCFBU9AI0TKwZOKiNRhI5azxTL7tgl7AzspDV0cgPJhIBEpXsCgHb5kPocn/XPWmJ5rCK332jnQYjng/HDYK9XbjplxRRaCsGQDB20erT66a9vlVmFfi8/Z2a1r9zrNRznn/fcXjCYiTLjGwVDIW3AlGNTKIpKTbo88iX2LWpluiPEQxN2XKHtuWLoDLSmyhhsJWMJsLyqCqiHB34hFMkovzW50eqV5iUxENddtmOUKnqWDBOWTV9JK+uy06KRRt2oMRGR1drzVT7bjCniRyIR9WeT7UGle10DPX3dy2O9KqvBRFZwVHze4OjRtPy6Ib0lx1M/lV2g+aXraPpMbbX+ARSJ2egwEj9/CVJqceWUxTWhV6lSdzO/5KHYLpwQqSrXCxiR97aQRV0ejKOFAex+KlNUTRs+tVZe8RsfK9sm0hYqV10CS3xD1LaOJ1QqQSbQkWIuZkuYvvt4pDloh1PNx60qrjxRvlZlTjWcmrC8KHnx+HXTbFp78TBQJNVHJzfo1KifkSgocUlkTEIq0t+JKQikj4aoKWu3ePJjYBM98lQIOhnKX1n4bJqefPTuP8uNRRUAvoyuw73Y6pdXYKrssXGt8qZyIdUV0f9e81YE8pOYtFvJaUG1ESSE5+p+e0X3hzyucEBE8lwMhq+6hrZW6SIzbhkcKbdC9vL1DQ9YrxF4ccuWqzMdBUcXp+2hRy01uevlWsW+QGaoUt/KDplEWIXsBSIoz1kl+uTXv7yLx4rN1QJCKzt9sJWDA8zHTcdySk6Vh/JZhJ+mi5FpLe7+eO0mpT5t9G8x/eUaBGI3XWqVvOPnoYGdvv3Gup6chqaSj2lW0cYhEuo6p/sa7ouvBMf5bVfARH688+0ZiImMBQewL7OJ/y4E5BpBI5Ch7KV711+u4Hw+4FX8IjWO9pa2qd2pzFnKpJLfi1cd8M4Fhbw8PUGg2eaGHhSidFbBglsZP0vfBYUwiRgtiz4pGitk7JtffGSUjMZ/jR3CRJE3UFxQ8amOnt+/8i2e8ryzuOJ+YF4vMTswmpybj22t/moPhuGX79rPna4uaJRZZWKfF4q0TLHvatz5BJLJDKuldmrawtBrXH8KKcadCmFtvv15394rN5hLVfrffNfskoFRMjQkf6XxZm0uau4YT/1WFxPFUNad+ZjV1kbQqHCXVewvuIGY233wTiey2ASLckJY1DBwhAi6Sf41XyjjDxOFLctliw27oJhQRnapP2F+pggM6RmuuT9InInUUkZtl6v5lybZTUdlUu/oB3mcWmOXhvkpdz/lkFpdonxJHKyGR65xr5PP+CFPXTKeMrUkpcAiHoS1y0nEY+On8gqhc9FRK5VW8y8WTGyHUox5Pu9FsEVjFUT0ZeGIJ0gO4tj+Njw6LK1YHPHTCiXwdxaAdl9qfCgXNQ5UT9aRU0yJxNVGFQe370pu+I0GgCtflNA+mefnU7JpGol53xFdiPdHc2VXP4QpAvjDXBYTD4WiYG1bGZYDIx1P2zscIYkpJts5RuDHDDRgam1DFkwrxZXZgxHu/SA3mxZ+I8VZjEYZQIBAE35IYbTIQASkvgP5mf109WxOmkg+zycTDa/C4upHYHVPBKdSyyeJZ6BqxTL4jgK/0dlmky0WEu/HGLlD5GBV/e1LkGbbhQZo1DwCkOPeyU1CL+JIqEJZQkuU43WhneS6NMpJHxlsecnI1lRLW64ULRYEY0NfoWSS3FmmWQrglg3IToRDsOANYIhWA1kIwwd6a6IwhAUgR8lQJYOFoCqBH1BrEo8cKGf4koFl0ChQLpdyq3pEHwJOE4hBBkCeOEf5U/S2cwdAtTQTZ+0RNhNXM1ji12y+dMy6Z6oUKAwId48ejuQRrZ4+BHUho1DU/7UprNxVZTl2anIukcAoOoURRFsJ4RhpitAumgI4xgDrKEZlFIgedzJONRO+POXV6nUdy6DJkaplpOIgRta8t5iMXjD3wLqkjLWzdnaxqoieUQE3zwL5h04Yz4NoOF4E4ALY8jxgcOYuEsOkwQChTxqawI0WZTk1xP7UwcZ8AELMrvIkqTKzksCazjBgm5V+miYZIryhChKph8jdsfGIeEiZr/ylXg0Ruti3UT176LfJSkJZMQguOtRaolgZOhXIxna6T4LD1LYPAviUwL+vmmvJofT6dqAKaoUAIgCONMYphtmhkvliM4GMiHnemhdyEdyMBAICdsS7VCmF5XqkGULn1YNtbI1K2DkifQ1viarkkC+SbhKSuFbFZXF8QXRBMyzfjXh8YVppk75tKqi5RGIt+8b08bCKUyDbDVoAeGsOK1NGI1B0BXTSkQEBYt302pmycS4yJ5CkVPOJCX9bb/A+/BiLeJfeqkPMfQEVZBUAxiWJEqg6EoWAMAU8tn0YOaJ2JikxESVEIJcgUU1xGV5Z6pfFMH6WzBdUw8nfOYSqkmio+vqtlr7sW5sA+OkffNSHZw47jmZtDFP7u4iCsFIXZ72xmjRS4hgnOQXPON0yjIeQ0jPTVCOdiyNqC8k8Lo0tPjyLC6VgyGW6zEzciE5xAzWcrAl/CKN2pMIgz4gxiCEoOoURMBiCbP4YY7UL+5KqKDC7CidKHFwJnhTYiNJ5986s672NSWegxRqcQzHXaps6mLLy2pBhDGGSlegXM0kN3/iizt12cGMNwpav/ll9EYinhOJkdBSy4EJmGp4NhdJ81yQvZOQg132fuM5qPC27QrRJtJOjK3mNoTFFHM+cE9bDxvP6HNU1BmGqIPxYFOZVZCMbpYlMHvDxsmFf3BlXWqSP/N+4nRCQNcm1OFaz3G5Ud6N+XbvscZCIcRbasTazM+bwY4OwoJwnAEgG+e5qMVzyLJFhsxeKSgjZBYFogbSiQFNjTkFoFmkdzXyRC2/TE2H7oYkJ/Chj5Ixj5kO5KFuZ+7PjcdMrS0haScEhSBrP4hCtPLWwx+RvQh32tx6w2mXscxTHDCTJR6jEA0ITTxkZZy27uFqntKerGnlh9UBQylhPr7TnHx301lTGp0kF5QM4ohl+jrnfkOQsC0VgVCoKCHl6ELY2oSeEwMjnL66Qk4AnU1jPea29xDKUYZzeaxZ/RCXpSSujpm8y/lZCwm2FsxTEJQLAQi0CYc4y43M2PFYzC6HIUZ2RKIivpAUZotcKolx23wtksGhyGygV3B8JBxqrO0Q5RoZBEQ+3oUIRVAiIMkQC7/w29BVSQqi2GROD4V8t3GjGsqx5lwbieTrAGjG3pWtQhlWxoUsqeFeGBSG/d7Ihz3h7HsIEVsG2DQjqhHD8gnMShbNJAjRuNF/nnnP0ViIGOWpBwjPZruEw9rUi8+KR+MR4KSR+rk7SoIhRR2N+6DKQe9LsxnpkTzqh8id+Dmm5th8482/CzAohSRCs1BZSSOECp66NPqzMuy59vmfy48ICIYw7XRdcR9IizMNrS+NQ9J83enl9LQdMCPb8FgoSxGvocER6rSQ1EMxAJEwpbCzLRWBzm4W5mzYgkNhffjC1bIr8goqMUGJNjn+USU8aeE8bh0eQD0B3GWuB5DQsQdghKBHFRx2y7fznnmyYCs/OA6BglF8iwh+yhrzp7cY10uZ/B5jG4d10vCnBE7Fwg/iAvSd6V5PLP/JuCzJQcFcSbxrTrzhKR2qWAMyiEt4Gs7dM1N6Ep1ctSOoxdE5PJozFZ7Yew/7jkvyk3uUSWsnqxzfimUhMhQhWrSHLK7CHIz9ST0nSNyvhJaQHCiIs4FH89b7hJFx8FAhASTRQIl3CgIWRPql86hMJQa86Uvil2AjuRkeXPuxvWzMx/V4XEAUroJJS9cuCjQ5zONemhwymF8eC0sEd1RLF4pGr+CsB0A/6JQqMA14hTPCVUtstVzmfxibhFcNBFeVlx2MkYkISjDlCdNeOrULWgh6cpPVWcEs/jA433r6WBwHviHoswVRNTUVlymR5GI/HwRmpeLfUzASRRSEIjkJWJugysswxCySTSmneLpaIiLHV77vS7QiSFInawhCgG9FSD9XDqtETkvjtciB0BgGMXgNAeX9x0yJNv2igkoCIFkmh6IZ3PNfoxvVoKSmQ15LkUEh+GRS5kI5NKV1KDiQQZASVz/LyqhC+BCHEJoQWgUq42YDljeAKjiK7PRJoEdBXvt8LZI/FyCspzcGaZbG/B/htOgihqECBBegjFGuRnkW4aH8i1Pl4fTMhK8/LajkK2mm5KPca/PTKs7wGZLFexCYBHNC1JblhWliQx/6NI6yZJ3jJgwBAv+XSc1xJBpebpfRz4RFAZZs5HyF9WXsQsS0bmEOkPSe5hfXYWMYKIZj+1vC7nbWlvxkqcQb5zNpZboyBsF6D06J6kJSwX/FYKxBDitEQ1DpdiBAWdG8FAwAKJGvTEmzX/utZ2UXHobAHBgj5/x+8BiLtAcy4MBVkOdqol7faLNFQ2FMgZKGqRiH4juqaUR9svgih4G7sI20HxNBvPwM/pmekSwmBI0BqWifvW4zHNXdauHlwC8BfhRtc11VSAMja3DaUQpAjdXfxbcnIUY9WO2I1SpAd/hSjvyPAiYOCGlOINZ6nVlZblxn240BaMwuzvACoBtAKYnTkJBQcZqKU13UqWwsOrO18wgKro6WIXeAR+uLCpq75kTu1U8Oz9rCiFUYwTvxmHE+l48mopG8K6pEIXCKZXlJ6O62F97dtzdotcPZSCgIe1hxsIJAWwbzwDKKQPxKJ5fpgqjhCRYqWYDYJyWHgUf3J0B6b9eDsTKMh2en1kEsGEGsdjYnDMHmEBObjHRK7BKJYSUpVrEfEsIcot4KlEQXBadloYsK0IEoVGNymApK4bwmcRMghdhDLGJVPAuzVFjcRpDKkFnwUmNPq/FIMVomE0CiSkZjj4O1ttEMkGphrJS0wtDnFZBeHxbFxhupJ9cD/ckFEtfDQZLmawRBJd8TAgCmOrcnMsL3I1/0cqtrUwFJqbuKupWOaRb1CcqI1tajlzIRUUaXeKpadevRls+7vHtCQBH6AVElsZHJnw1mjXQ4d8QsqB602neHHipp/akXUijbnY3JitrQ0hWGAD2m1EIz4WnNq6KHNs8MUp6ZLQfVZgTZJLEz0pTARoCxsrBNG1yLcYv1kYTMBe5/PQbOIPYEPMPTiTHY3Osb+w56NDbtUe5dt04hUbR8sCXQVdl/dk8MwsewPILGRPnEd8yMuIJTBGJ8ZDkddChpTV9AWNw6Ma+WwuqywqZN2ZeLj/Xq7lQh7XrdNw0QYmFF6tqRRQG+pWnYLhO6Jv3PbRiAtGc6mYdhTT4ijcsW76+jCWUFpnQCLs0EqgLblQ+Lrfg9lS01HMgiG9T89cwyxuAgHeCPgzj+pJrwEMRjwUlML8FbORleuQxDI92N970Va6C8EbYRElGqZDV0LfPCKDFXGo23dpnhrfGVo23X9xJfnMraBv5i2pOsZQeVPWWt6Vuv1ec/x6SiQqHTgcnxXlkphfGiqiQ9j4ZK5DG1WFM+s0KbUbEClyerM6CscLyKh13en3CP3WBn34FREK63jC6lIh54YgWCYe4uX1Vip2gSjAeCB9dgaH09nbUQlYmIs2NwZwikRO9vQTBVZWk3l1R8J9l1+LPDxK3dpxBIrrpIa3EaOmUhOmYUCFemxEBPky7v0vOoRwiYICHSQobz9Z6yShdgusSb/bUiJLoRZDl4GckBfNQwPxkV7SYFLKaAiSim9u44latIJiD0V/uq9jmA5qQVG9CJ+faWpgmBJ5mpJoGVtW7G9o30XYlOrZQwUXYUF4oaizTCRwwCGlrTS5mEQ1Cug6+jkaU8h2GOiTYs37ZeloQxym/FxYSN6Cf+WkHg6bSwoSVmGReqUi2/LH2Zya7rZbnyKG17IGCtBNeL3MvwZEKfLNxlWBaNtDzgpaiA2KFGA3MiRIb1dY3ZFhCGzsizNzFdM59UPvuT/1Ia1mF7SXUwsylEKPtwH9VFTEEIZAEYDUJ85R6zD3Mw/hZUATrK1Cj3U/28qbiMI3ikcWzjPnLbo9sRHiVSOIFF2NBtSEVKq7oNoVj14KEbh1MfTD19MRXJv9pQFaZ44eMgrhjRCZy+LFERt67Ao0vrK2o0Bcs/7xZlSs6IohSy//4WRgIU07+yv7T/yz/hf+6AC8AxwEN5rQysoJ90ysxNc4PokS97QTMtp3ZSA1JlHZa2xlukh2M01I4z5hnGslRGmQv6zHF8X8yncOm8M+iduFEhcHJbVxGGEFTV9gRy0hmUPyun5SCsNICEJ4YmIQyk2ilH/yC8EowjqEMQ0zM3SQvMrS1pzU4/EFU7OBoM8dNVrUSh7mqpLQ83950V20hWOR2CMJbjA23o9iTBO08Q5BEKiogYmVDYimglE2i4SHPGZGQmVpiWQSnId1cTBNbnSNJ7+yPdRnlJ3s5+zOECRG9L/V39VhDJNJuwdp2BfB+iHV8TGlRyOY8MOWv9WimkQE4gEmxEVIaapSwgWRd1jEFLKfLvResdvxaF95IJ7AwooVDwhMd73xrRk+dqUT6JI2CcRzIMtxid1cnF08ujuLyT/jfvyL8ZbCOYS9J4G4jcbiZUF7Ie6OfCj7ycqIibWtU8afvZ/VaoyV0t+bBQKq81vKZ1qvb5TyKS8QL9+TTgy47y7ssSGOYZCgfbE/Eu4OoSclKxThoiISHFNc9feSHQps6MJAsJZ4nNhwaJbJwX91mG6siaFNpoutMXuOPr3TfPn33n2J1KZDNXQTchHvlnooIICUxY7015LKAz0Etet6jBwqha6jPdwD8aoht9UpGGZh3LKrAL508eiQ6wVSp/miaaAvEBP3CTGQKehpRyaZa5Ck3l1te0HCzC80Jd3LEZsJZ3GzpGay9+WpFi5Z3IywOt9SIHfPilhlwxlt66UbMJdFqsvZJKlDqjKZIST2sqExM0JNfzdcBgjCGypqhEh4eetLURBgWoDBbdKs9GtDdHvtSfJifK4bmAKqy2h2tnwsylQQ6IvmjIS+rWG5oN5Zqez2zGLzgLGYVLFRBLYsxRWNqGXomgOToa9MbXcmKOfRg9ZpEjjo8DfmqEufQzJu5Rb2V/uJcBNYLK1/CDZ49pcyhqaiMt03BvsNkdcChHdx0fE527vvRrifkHaLiAWC4MKDvspsrdhIt1BVJAn6kU8lI7TNTnOQfHNGEg+w13CzJCA4xCMn1OstjmlApwkmn/T0NmeAKBnLbasnbqFpdiVFoRinPTKAyET0MqehcRStJeZBonNb0WuDC54XJn0lJidF9a0F4HBdwyuirRY31y7hNsgijYGLKVBTnb7uBx2p6Soxr21//D0dkCMwTE5lbwLJ0wRDV/9L9kV2SMOjUCjAqo74heMhFE/VpLa0Igq7yghq2Pmg8IUyye1UAiPJBXrUDZ8W7E6dgoT6E14ft0rL729lUsZHl/nvMk3ReUkNHM+FDFxO/WqVqWjF7W5a6HW9KOv35MQ57CT5j5CaJP6RbjSBEU+TDTJ0Wtr6WcaWlR4Xc+jUhuLo92jXBDTdFxlF6oMn7bJxcuKtDUMyRwmQ8qKki2/EZtMEaVVWikfTD4Vdyi+oDiWZ/v+tWaq2stnBiVaU7x2GCML8KNXb40OaXop1i2A0YqTUWaSQgmz6j/bdPN+ejgGcahsmbrdKQDULe+1XylHfZUq19D0d7aTqNrmmZuaO0mFU4ISFCh8mT1w4dyW+Lq+zdOXX5fSKE+9P0wxJcQtCghF0lZRDwE2FcbME1Ar+IWqb02xU5qojKQy8iRqx3siejui2v13Af0IYFNQswo+gmtsFf2nVcVxkB6fDJVG7a0v4k1l/1N7+n4lG43BSewzqePvnh/hItQRWQBfLKUc6Mw69vPJTgieShSzQ5fMs0aztDWMciMpNVQsNCjA84VbhQJOtvmwdeeW0UlOJUPn1ztXmp3x8VmPUYEjpY4moSkyAaTyyhtQTUJBaSFlSWdOWvMtpB5ScqhZhnFBNl5KukpzJ/tjy6SJwYqUGPXk+8bypu1OLLQdtcYPkKKxyJFbReImjLT6Goi/L697F/0jlChWsR264TVOxAzNWRSajle0tiOnp9BlUJxeP7a1MC0vogjleZfQMq2vJcZbytpHWXk+EoVngK8KZGro+HZYQP3JQgIyu0JMBCiwbrQQayLHRXJav6KsGcsvKib4Xta4Y5SdmxfkT9iIO/spmwhEY7a+ardNP9kEP5JUrLaP3gKxzHtZFOk/qrJp0KClUR5lhbo96+uf8lt2qXylk6ZfNTN7YaeuIPVsF82aERenWUSSU0HHa+3qUP1j+vm2vGo0oe1BSaFxJRLFvU4661uCloERtM0DF+8I0a8jOX75W0ci9NeSehia4WBxVEip3kFU9Lq7o8ciu2WFJJRJCUkzZ59XRqjwaDu1u7IWZ2qfAvQluRNsalSCcu3YuPWxvvXL2CKhE1OJRLESSVJbazia/imQ6JWK95MEUNj8DM9lkyAt0V1upINBzgmk0kh3NROB0wCKPiGjJYIiYIZC3poMltxoI6mK5aHf8UjL2yfldhbUGFWEbbNmgkbQzt98SiyRahL84TJcfTkTogRB0J7IhltNeaAEEGYVKTkU4dNAdyTVUBrHkLQvDvBYHCYTu6Gob8aGY18SMmDtPVaNGKitaUgLwzTf1buFhKR4roMgnNcHPOo2SGrD0BNhj3bRNaMQ4gVSlkjIPEbvl0xtDbJRSv1xDZM5ToTCurKnRRZ0zi6I81geudc2DKzZoRsx3Yc8XloP5AUD/iyK6i4c5kSBrsxtyUlqxjZbaGtKxKNEbuF52NDwBBnzyVsUiVT7yzSzNQvsarMFH4xTNJGJL3D/7BBEGgfGqApyjsrJ1LCtepJiexrJhKNiehS0RybElr/wDDvxP5A83JynfQZ45C+Ye5XQFC9GmeJ9lCKNPHI6UB9+MFHQCQVRdaEcYE3dP+EpIIAwEPbrgNRJ6eb/1gWthMl7mCIGicGHqqq0rvphkT1Bk14keZPhSaklTQzLUyfyKgwT68UFutCQIHD4IpmSat76qd0BieDJZhuhdvOayYFhwd/1S9PT8KWuqZ+VYyVDnNxChn5aBJSX9FU0KCsqRF7EKzxWzhekpjizW+dakixzD9h8jQRJbzi64t7RIUZlCF1oHqKWHy4eJEYl2/ak0H3Q1IdW+1pPVk3k0S4YamuW1neH23o6BbrwcpGzDAWEmmYg8HVW1P1xlSN79WMLvgSS2RUcLpXG98SFeJzvN+d7wsBiMxiJUXEgrhVNFwSQrxgICeJX8YG4+7s5so2iug9bpcidmOj/XhATj/H/lvTakGh2EPTjDNHKZIwIOMXiH/y/l5oMHVUros33WUJckjp6epZEtLQ2IuvreZr/hJmmoWfeuDP+HCtWYBQcYhQXLBLKihEESeuCUShI5E1hk119BGte5l/Imw9dJNxy41a9uNyahIzChrga9AikkFQwkxHTQniESp96IXoFQ5JhETJ9PJqZa21RLszudQTy00yCsoFhLgINcb6nW7HVYD4ctFNVKTsR6VtM3FdhNShql4uVDZQ2y3Bm0pmXVLrcHGbl1QUvtMWKYynIiWqsfvNhRYaDAgqYhixJReJD9NxcoUU+csqftRgMlmqpEsyTtGAu7vOoIO7ZxrEmTDEZCrWlzO2zfP5h2qvvVNlmDIjitQhW1zTzRtdIgUMEhavX7UuhBgwasahhsC/EQlGXgrO9a1wv2k7wWtZ+lw2p3utMuaIFogrve9a7O/msqLutI96UFbM/Pqz4l9YGaPNUsDjusYaXS3IWJyxrZ9uhBITDV5M3r3uqIAoSANqVJjMDBiv5MdPhRW62J1ty3WdVNkogUEhSYcUBAitBapP7jMsM1yxDq1Yeax1TSCo1Yio75e5jSC5rZ1yrXPv7fniqtmh6SZ9ouW2e/hyi14QuhAfF4qBngI7PwFZaaFyMpZFevQa+/eN/J8XwkrjBO2Hkk/7Ee2hWokOLAxTmDEl0oiJbuRqFJaNjGzMi1jcbKnX4TLWt4sUvQmx1fCcyKeKqtjtlTbt2seS9ewcdy7KhqqQwEV3qQ+Vi5ktJM5aoLDbHLklUvGBPm5xLFadGg44rTRoR+a6w3oaIgsnjT+WbLzczk4QK5Ca0p57N020VbiZ+6cvV5P6wVNOvFVHQpsGSy1EWbYusayq6zB8bpEJIWFY+Fp5qJaWaNBjcZ+V/I2+LEq5stbjMu4aTrMs38Jc7RW5LQ3N+x9IuVI0esUGvASKSIYAp0GEE1su6Gfk5XWViySyUodp03QRi4WIbawsavBQvZz2fqnSgQVdT9r8QziKJSMgM7uw2D1PZtc42Vlh8WNLxuR1lf5pdos1brqvUWYTIfar//UxBxkeWQL1yGoSJMDJRlX/jaSWyLDfJ5NHY0CuysMDxJzFsINwUkhNc3+atYBUOBz0JVylq9cFKcmcPnMrOsxCXXpbozWWel2KJAkDegF6skwCDNiTWd7B/i1xJAUjO1OtBKliI55Mo8PRHWIxMdFYmnVP4/8MWaZKy5RyrlgT4AQl+OveqlW5frSY6PBboUJ6Vyvxb0Gi1mWrtR2RgpCFsrxJa9eLjQk2kTwlNxGwtyss7zqRQvq/MHk8GaFB+/zOKXtnRi/ltrCsxIFNy7IyIUp5afxxRGf+Nr1U5ZJJ0ndqG1ztzSeDeQh2v7H3YSJl1JZa/FST5kfn5/w8vlNrLqaXNAcHwhuOl0HSxIPBYIDhjrwQdc2e1tVuk6UdzOQDPVMDekgDoBWtGRi0eiycGSJWWPRZkiNAiNnqS1hIHZBOCNKAoKMUpS+Ckap0uL9gTHXxOMB27RjVuNBMrMHId8XzU1TxPFACdsBs8UUB5II76XnEwbGZaeBGFAJgErgxzKULyk8me7UJHytOF6VklbsqFNMSSo4mNMYsTMOLZg3cig9kDrYG1gShcGI59bqioCxCF3gYtEbqTP2uyDbCLtctmPNbh67Cd2VEQde3bIj7cQuSapYinmSHxuYLfwJBHWv9Fva0G6ncAl3BIZixlUnZWGiCcfYHuOSGNdBnSV0n28Vudu9KxIjEtYg4FScAIg0B6RE7F7yjBWvA0qKgQHT3ykTdgCvR3ZfOHAOdwuhKG8QhzimzC0u0lZ+tL8Eoh20gQ94LnUZoDoY2ICkSskEbixGj00dc7yu+DgISkN32hSJ4CDdhvgu6aSC9sXRCSMBOCAuFA83HcIXQmJnpBOqLysbTICTycOvkGDEoGZAUAZsSNUeThcJkLFj6BCrDMC5tjtASCPTtZ2kM2OHYQc8GiJiKvD87S+xGK6WsAlmBwPQXFLgjvVO07sY9c5tNSAROBEfobQ5ZZMkpQGC5o0mEpabpUVHPZ3QHheUBACeMP+uSlIKU48FZ6D7YtmDwhZCyi8SdwTrLzcOjIRd2ENCGo22Rn9x7+U/EyBQVrkczMxJg8h6GALi/ZMnEDVHhx/dGpVj0nNGO4ISrhJQC1pv3CvBuZxDsH5GCQLgWJxmXHQjEbIHQHk4OhMCoAwBfvcc6dllS4mAgGYZ2EoxDMk5l/XlHoOaHeAkBaD0pJQgHHzqRLlGZol3vwqqFBIuNuaabT4JIDp+KR2+lANRU3MROxMAwdo99QGWy/kWh24PdQBAEFw58U7zBfYJPoIA4tUlN8NOFtVOHaQwKjFO1tZaWmxQa1apA5IVCZRguqLgLLmS6hEAoegH49PeCstrTdjq7LO/1fSpCvMKU7aWUsrRgFTAPQbgoXPBgJgJEZfq5TnNYpVR3ohEygdXH/WghB6fbARoi0DbkhD8WlRSfdrSDC3HDhjp94gNiY361hUEV5A6PVwjMaxSEhFaai5V4IuWT1ZiRFSZ16XLD+cOw7YsgjCUBJ/hFiIRsP3xUD/wNxMh6tynzwo60CxkXBkCJBGqKT1SLVlIlC8wHo7Jbq9z4i2LgNCkw8H7+zD5gRKpLQnXAyP16tP/qVJhhBhZK+GDWVET7V7U3STxV140y5YpEMZkIjjp+eYBa+SlKE9AFY0YEeSJFNmR1E4qzSxMqcho9Kmz7QDoYuQynEXVmuOW4/DfZyageFd5ZvBNvvjYp4caLYrRCtxclPecrCofnlQTIGnAlNsuRSUmKRiRLSQu36JzhUnE5ZQwaPHwg4v422zJVI6Tv+f/0b/C/6a/nT+lf7c/3zms96ywnkfMmkxrgrCkz2UhNQbLgjFJPMCfJsFbkjlaWkZMRHKRjCWdlcsgOhfaqoDnRdys7zHOARhEh1l5F5OZ6uT8avDZ0OMgbNx7Ofg/vo2L5IMQqjePRYKiTaeuJAzSLi4ubpzdYd8yiXpumyQ7wQ01CiZBFIRJXVC4/Jac1JjgriiKwrr8ISWer2Gg/Cg84kODTELSFnU+i5HhFRGdZIU4fryqsbOgXy7nomZJLBIgXAiOBDauBsC8ls2fnWT+oomhrDuERxNEOnQ1rGVJWcVlfV5Rzq1VQW7Aam6td5OrEuubI9sBCIRs1kIfpibSmya+8igo6iB9OZIP4F28/M8RWcbjHqjcLkuNqVIK5G20BLYujOQCzmYFdDMZYYnHBhj6wIEPH6aHB5K00tJwzDMtnMvyiW/K6BqhwM68dTNh3z0Gm49YtNQVVNUyVrpNtJccNO8NBJ3K6f9aMt+2huRUJxpJLlWmwYyqRx+hLN7nqnwiETJ5K1EgSseGh3twmWgWHBaa0ryrH4EfyFZ5MvYT1ju80KSjnERXuzUVR8WEmeVHnuNJWQvjWGsVGZMHEIkVrqQ03gkU8iFfXXTpcQLD0jLqAoZFC6gGA1FUJ4KoUYGlYW0bXf5q7CztBxsjoV4iRTSqyD/pR6Eq1U3EpOalI+M+F82RvU+XyTuaKr81aVK8c4iQvzlCm1xu8uvEvzsJMv5SBxoV98m/9yRpH5Rw9Dtya/lKTu7eNTtHSNNerlhq6zDpFGGWNUS/+a1lrJaQuzEOrS6XRGwctnZKrkBwWHVe8RotH+II5AilEpMPMlny3EImgI6syraeMdt4UQSEphwICEW0LUfqdRIYKurR4NbVjEMWmtfJfUVrHTrvdEuDZPcjuaxCkD5Eu123OhuVuUFqIOrpkKyCzLyohKeH7zQoC0R25aQiqRugu5S7x3t84VyaITKRjFgXdkGRUxVTcpAQ0NeTzQlUY8W73JeKuJ6lySo+9Hy5Yqb3Msm/j2VisxFCeESjKqEyXOLm1muDBO9w1O7lmsYm9/mEvotA84RDprCiv1Hbq9cKm0vAwBx70yImJoQuQw+v9tAniAC8VWLD/qVVKqUsxCNjB2nR5wQdZkX9+wSxFdpHLGjyKflgp2XAVQaX83T76kKEk3zG9rwkXAxOmDu1pil3YRMwLdZXQ1zCqtQht1y3X7Qv2JQxWTaKoeKxIUiC+5SZGzVibtpbpcHqRvDyeTiIy0oU/ZtmNWcsZanHfPK7mn7VDvvsUoc6tqRC8QHe1QBcDcPrUpVfGix6R1eMS0OJHKdGPm+RbfEFvM5MpmStBvIRUuPDKYFu/fiHFFAUCrahGQq3o6TY6sEJmvyiMlv7+xxV1a+gluAbkOAhbNj92PiAe76yJYnm5hjCbVGzqiaIGv1OzecNnHCgHulVayR+ERa9KwgNB56MsLzXC+vnrWtF87JYJpSqbNQlY0SHG8s6U+ujxaoK/lDQfBJOUqZLeXqxmtiwQxfowtyurOwyj0Xi3ytJkxCPOF5sQL6MJ19iviKpQEoqmZRx6mDcDqKWgSGHLHz1K6WQX6GjXuHwqK+npIchtVJKS4Jgt0Xajx1xkngWTeJ5Ex7M2HFrXFVk9Wnp3veHhlhPPkIWWeuqM7QjmUJgr92Kc4CXohpSshJGDyx2nxAcnGBC5MikzdWqK8RZavHcx1OFHSq2H/J92uRBqlPnRy3fBGJ8Roh/UGClXCBJT8ke9TvO6MZL/MowU3UnNI0DU23/Jq/tsUkmgzHpSyHZoNdfGhx/Fj7Xt/xfi6iOwsJz8sD7s3fLgoRcIkMLjRvGY/lvdKKkFarfKCZ6MQlOLTYZlpZ3z6Mko6aX2+kI6CW2hJbxSxp3jJk7RmfVcg+vZfIDgLScFuGt9513Dt3SVFvpS++mXqbX9bZ1srbLdSIcCkVGp8GwRV9wk4ylft4l33suKz+TexjJBWZSdJ3iM2ruGJssMxp0FZtXh1vnhJLhnxL/pSsbhjux86WIrAodEMYSUVESmMiRqxoK5HBnWGJUKBtWyeBUdzQ7mOpQiaYyDGqzc9dVgH5gRKJJIk98+VchJ/sEal7dnUZik3IwEFeMlPJMJ1AT7Bzp6a8VPVUw5HsqwCeE0iFA06wtTczlP4dthHRasUSQZFqctbt0+sux3uGltJXBf6H5HeGIoCUv0Ls9c3DmMpzbFBzL2zlioXOcm1BoQoszLknNi2KpapEbrWt660Cil2WWKW1JN5xSWq6i5YVo9GBgwLyb9fx0odOn96IcVhXWaWsPj3Og05pORS631s9InRWlBRrX5sq7itU2oXSZybSCSExivIKORxOZMI6lkUuqsWckCdRmiI20M7ReRXhmh6fz7DQckTnS7Nl973ULoDgKr3t+BTCmlFvEIaSSUfZ2JRDnkcjJjvlneF+cj21lTQk10PUFWUFqUUIq0Qs/KFQVExbts+hSblwxrSOTbUMoK35sZxdDmcnrGPYJRsdwSl9NU6zX1ZX00jITt+yZWlWLcuMY09iSWWdh3O6tA4QihbZjIE/QNacl012QvIOZl1ccu1Q7meZZ4xbsVD59Iho7dkZsaCFZ8PwpCcWPYHOQOy4+/pStbp39D6v3HrsfdxpUkSes7NZJOLa2KdoWXDEJIjakhbWlTascc0xKfCvWhfXu7sLhiMEch8sZWvCQLIYS9aPVJCnSMLOjftMmHR7RldS1r8M0OUoT7+4gYySgt6GFX8Fyz421fTt0sFY97VmvMWTKRqVv5Nh50oZSLfTjwn5qIWOQ/oyv6jSF9ddCIRALAI/4ueXKZLbOGBOYa7zdWLJYWaa+IpOYcVVaNuOKrqespocqWfv/S3WqycSrBSBvV9Z8CwgtDoMyKbZ3OzH5WoGacrvde/1Q1XDNwdETVv5QCLYREhgEQsRdfiSRyBAesE2njEjZY8+J1O+t2efVPRMMXPf4/aXPX9pVrHrQyJBy0KsvDm77tl/YoZldhVGFtk+2JCqW/3r7LfUOvguXOm7JFRvyBekTakKhX1XpGGxi88Z3tveUQ8uAQWiJH6K97LyiWp1hHmkrMgQ29nQ0WYvONXAo6RFv3OEDRLwjUFAIqypbdcn0VNBLTCXlJG6iiTnP2u1oGDQ2k/QtK3CUyJe5G/Ifzxct0I1rUnxU3ykVi0319GJCjMRM/T3hvyc0Wav3aEbXGP98ZpU6C9HM6lo5pOTCjaZFGfLS6M5EVtabGR4yQmdOf2SWM2ZAkPMl9/KTF8QVCxwd05pjGBBXBbDQnDyzK+3qYBD/aX6DyYq+ZjpP+mKlvaZcebUEVyR7N4d31cPfKbipWvmR+aheBE5M4qw506VRYmoUFpbxN2fN4PL3wXaSRxKXAUl51UIH1T3RfMIo9zpOSDK/qPdOv7lVl9w6lkThRCWok+hYxQUhocBEDpTEJLOi8f1bi1TXJZrlJPvzKs3HKhS6UyNSfc+azWnxOjZRrycOPK85759lLr6oUvrAUB30U90xQHCN5MzVRXH+BB7NsTkxdkJMm/bl93morHaUl2xFmQs2z7hToCvGjQUDKyORzIG+wnrLB3T9RadMdNdnaC2fFarAhUOGrPmvNlWDc10Jda36JbG2QEasIYYSiBkLMVzY2zczM4xSdGDgiR/9f3RpWEh6Zyp0KrxMTptSxJs58f9hvSTrD8zPMk0u6cvs6K0YgkQOuuTY5+pFCQzY0QIjgyET4zIvOOcTDiVuixjyQaVerb8yLcFDlRf65hn33QGVZCkTbwpp0KZFc8+B+n1JjQZyO9xuEMjQa2KX8UsuasmKk+3XnUq8D/v5LNYtGBUlSWm8NPSAXf/vKaWj7N78SL5ToyVQtwmeUFK+J1+IrJhOp6McHSbIF42J/qbszpFzbq3oeuKbVjewkV/tXeNuTraGS+dgmynq/Qzu2t262obHs0o817N+iAvq7zjj5RxbjJ7RFoWmFuTsA4e9y9WigpFYl8kV+i8KIRUQLuts1z0H0tx4UCfFo8FgU5MS7Evk4yKgzaTmxGem/zkmEsL22TpL5XUUafE+o11LyR2Rji6o7NVbpGZ7vv0JGq+k+s4Xb87HzL1ks12JY0Orb7cVCxfYkwwCY6EENR+CjKZ6rHraILFMSEb7s469rLEnxkCXY/wV1bSXef7Ye67bIXbNbNi7AFv+QGWL4MRWCpchJQSkBlcLNPC2qZJzu0NBnQ9Nvj39t+hEgYe1+YOgCyBtP1hAR8lH0fl4sV18jt8zyqaui0kWj5wqIB59MaBwYkauFrG+ly1bgLmA24We/H1lHTKZZl+X1uSEhEQ7G+PIseMzokaVKCxfNcyt21PTKq8JcNP6vduag1KSw8fquPm63puuXjG0Zhk0ZdtB3aM9DsozjNIKzAir+Pjk6QJ1xcmqMC/PY/ccjw0t5kGE3aEe2j3BQjFulnwRNzOahSThShfmKQm1dddSg5odJJ9rePLD2kd9QaeW6t1CpChS9eH+ZLKarIhIoQjta0TYtaHoikXgatSZ/745yvU57efHZewvxsCNsPalWeBC6oYQwPQFJkDYJzOp6xoKFKiVFGGyBiFEURFRtcM7iF2oXWLHIahQ2akkpnX3KJdOLQsATmBYZKUmifZTuuDJYaAiRkJ1oj034Mihxyv9AQh4JAI+BPET1hachFe4tuKhTAlllp2QwhsUGQ0aaqiMtF1pqAAIQFwkRnE6oa8CsNoCXQXvV44XWk0UjFA6Hq2lGWrdcRhKml8QZSrUnOoTfBQzBWcELLw9clpWDsVGWDlCRBqhIJCRwKg+GHIQFnisatFkBAOQShp6tIYpoSak5LEYHogFDDwt1rT2mRMQIoMrEFrVa7EsIO5EvXHosO8z9U0yB4pyHkARLi5tGQBSBeQiUQsQ8AeUS6x/I+8yclGORZZ2UZIN1fCo7P3p8SBoWDUJLWVzdXXqI6Zbra6TEIhYVjsNDA+LDzuk4Pvi4SBP6xG8IDUKwNFJGwLhXZ6lnmRV6m0ALm4WushfSCFAIIfwfg6XC1wPCAmsXRFmAWjWEe3MiVTBaArD5Qb7NWRUMjANQu/GB8D+RuRhOC5J8kBNGtwX4D4ZIDWefL8vLmG4zfWSImXmt1ddNozGojLWJTXmIBp1nIahpyJaU9x8IqrgiCwKSCJyAtGYcIRiaDYgESJNDJCJkjASC8geMfTs1zJlJRMzSn5ANHoIPgb6CuKEX2j6cyriW/OgC8pPZ3mOD8xi0apXb9L0l4bBU6p8AZTgRlSV1o46JtFa0od1mZaEFJoSDxol4wysNQeAkAAOaG9Uj0FxIHwkTKiHk9Oz8tHi+Y0+xIo1u9anP9OQoSHl7woLBkFwLpQYelfrOFavaACr0OjYLzpKbC8djkMyQwDxAGoRg/BvAKiusdtgmnujTygwEAvdswuC5MIn2p74DGEYK1l87lWN90QcnKr0oKFBQ1h0YClepES5+DBk2XMb2eIbm1wxFIjF06kXuw7EZ16jppyQDKEFRoLxg4GECguhBMixcCQtXJ2qMcxDMCggAnUsSEJBsXEoQMBYUIyhsVE50oezabDwXm+wpFqNabjcVgjgBbOTePCEe0NiEivyRGAkaTKiwAmhkeiUXEgQG0O7Aen3xLarrIR2JS1A6wLP/gZFYC9Vv9UYcWmh5Ft5VivaeIA1Kx+McB5gL4U9VxNoEQIJB9N95EcA3RdGLqLqtBVnnepXfjzgMXQUisJCzAW+s123geBMcEMyBpGnS5RavDoIWdRi3BexPytY3y7hxtoTkGjxJYqSnxw8Vw4dSOSDANATE8a7hMypHp7qNwfhkVCxqcyEv3iHMOzscagpajgSmAv0AOBSySop2FBDeIzwgTIFyJknZmpA8nPhLOzU5hiEyPY41arblud/ZKTR+Lkybfs/asIOdmmgTEO8UWBQIS8NpWFZMjg6dxjLpWsuZW2VVJ4qsR62QASEIQul7jIy3q7XLkaSrP/4WagJG07/z/+m/5T/gv9p/zv/NP9X5rX6rcSIUwThdT3mwjW+NgS2Kb6pCHJ4QrqRSjiM5gP2gw9+UnSoSGAUe4N2Qs7PvouD5N1OpkE5mThfc9XAoH5qUoXBEJyt/PPFZwIGuaQiMzxh0/ZxiNMu2o46svcR5ZvszF4ziTs58YE1RnLSVZYo293925A81gED4JFwmyMX3kWZt2XQY0k421zoFMXNSclWEHD23nq0nkG6J0rwCF55koXo90PtKQsvimgtVM+4HLqS0zUHCZGjTa726YDIPKHMNGelqjTWxUg8dGnaJBEzI5ORCCeMISDOnDEiLdE6mrWcgadHhcjc5DZQnaFiu38XSu4iFWQtxyQiPABUgOvTUnClkzk1xo3MmQsIsaEVx+0K/q9uscH4bLJXxXjb1FopvXRFCK/I8WkaDf/lX29VdIl0WA2vF/JHsvLiCzM7hpKmMki1eUiaFjC6Q+J0nFPKRQx6V1MtZu7I+NMfIW1aH96SjaHXdGFlwYEXIbS63ouy1izV5kxfQiYqSt/TzCH5Qg7+5Y3Jbhh3VAsa5RkADI2dCPNVP50r2JFP1g08Uz0+iuk9x7LMfBAicnw2FdsLQGdEUfxibbvUgjt1ZlFagwcxqinQd5ooDR3eyFElCCBgRDgakjPLqtQMVwTsiJvMBSZBd7Bo4FJ0U/VE8KtBbzHrEVWl/4tRkxJGzDYTY1N36LaqLQ8LaVVw0uBqwaXQsZ+5LnFK36suaUxMVbePxrzSGhYTpqmOJApjud93Rc4KK4rddeKwU5MaNCFAoQOlZlpzbO6RtFaQXLyoiT6evkAiWLhkRhdpw8bzK3VPkhiV5qTmbU/MVktMDuXGGMvhZr70qwhidGvbEViEFzzFNuyoYPExh3c0lLlR84J/mVXNcEArekkzjE5OY2uknlTRAU1L1u9JVfCoTqPDLaOqlVGiOQGrIXdGl1KyKO2Av7SwbSEwUDyX5MvwwpvQM+6mfFdydhWTkt8hZmPdzWNHLclg4fHREfJinsinTNjYkU4CZM1ioenKvWPpQrPMnbWCLNcS9I5vZAqJBPggIuOshPusSR3qOINIR/jDf/bEi+AFlwEK83KhP1PdVP0ys6WGlQjTzIkZnB0WHlN0bO8oY8XslhaQXIcKSuuJGpwZeO2NGcMHEtNALSIoMevrDAcCegXyi7AeU3+IC5CyJIGhSpcd6X9kbdq0wzx5tmLnBCltJ0pWPUQUKJ6m1Tt84Kadeop/af9497O655DpE5BoQQIO2z9nG+dbWX5IlMfohYkbhnvW+SKBMJ3S9Jd7tdTHqozIYrJrkNK9BEwGiO4lpym7K3MFyD2axnac7pWZnC8EDA4KODifEr0veqKQfgk2vQfvidgEQpBtLwkyYGNEZ0xJJEVTRpxqr2fwILWVPl2FwTzl86bmFppGhQd4JTFGV7kbpGclSjA5JxuTrsZHBp45XEQAwNZOmIiwEhbVUwrkLclqDTnbvjPMU+D1+HgpbMara6EdzIh4QKGTRYVQNyitYzn36ky59o7nS/s1Q8fKae4fLf4NZ9kyMlQqyDQpQ4oWlXlxMaKUEZdAVSj+2iZmuM/CzS6Sy4OBeI66dkrRDVLELPEF3+AxsRtj4hReriDRjt/xylRIatmMDqYnhxqFdQipTJ75KkkxnxpQ4MuoqUSWT++87rhWSS3OM0NetZ1nZMVDwciBzcRfOP0zEd3mMLAbi73W97ac6JDWnL/29NJxWkKWKcKHws2mfLn0XS00/XJDBds1F/fiXql23f8MYC/9Lci14L8mZiNlxIRRZol2hVAxYJmVd6DWlb+78O55xGJuPPZZ1v5HBURzTzKf7cCTFycaS3aJJ/EJZlxyjdFGiX5RIlsy/kwnl/dns5Bpw/0VfogS6CWACLUGRLKVoSYnipUZ+CUxLNrebl9rqjy7KaCyeIvZLPZrmF39hVq3d7IUWRbbs46OFXahPMVpprcYCKQuV011p79H71ZBipeSu9b4Em6PZjezNCYkurSvDfNJGESf9im4XvrCPI855rmXI5HPV6uDL6JMlkTEV1stv8fXKKZ4qtomIiE5YPLaTLa2SDE5cGLFIjW5GKV85X/Iv69L8d8K0aP7f10xqh3JvmzVGcamRoNPRy+7yTrSpCwzizgW4w4z1+JViep6ijC1lHoHFplngSDLMSiQIxR1N3S4U6rWBXCm3JUK5H3WlipVLFjA2TCOrHN4Up/CG9uSX1upXjuFGXl3ItnuhlGUwQS6lmg+F5C9qt2ZtiaNJP1Goxh+Ydll6GtWT5lDtvB1BdEV14YyqkEZmUUqyjpQRsil/F5JtJc8UBRita/lO5l1cj9lp71ouvypsCUhgcmSjKrbyAZa0UD24wTKaiSeDqEgMH10GtttG82lHJG5XPgSxjnYIvS5DDgIkBCqvW1PlnDRySt5ZCUjubc2U3zRKFrFdEr7thjtjY9yELA8NEEFEcwhoTHMbNSTOSLptoMeNJdSBUrqEnyps1yzUuzX1J0lR/Jd2aTQzkkRFCeH6+oKtb89D6Omy0hRYeW8oZbZ9DZmrkSwpdVhVc29dsOkvcyS5oSR3fF3ffMK6G6vf+0sK1kdMPJsvRRVV24mKGHFrUSrBszQ+qKtZ9WUMsFJRfKupqnRToXGPCKyd8gCVlL1nTLZQpPRXjSorjlQtdSynJXik14OEDYu7XK5ZFSa0QFPcaFVghzZq9K508mO5AI290xXHwnIlGyRVzuk5T+FzhcuUJs5MPGMbfYSUQN+YIcoE4zCF53II1Gb9dQ0XURfaHywJ3MEV/WV/lenOX6mzkrz68u+py8pkLZ6L0/u0CYmfJkSusaSrThTWGCRbbG4rUimunJ5gTQsCBu/RrbU9WsnauZTsSO3KrKD3HLOJO2Av2EC8ULSra4zlUI7Ch/WbJCxW3/mHydPNP1bsVoFyDy4+Ro40uWKxwRimI8RUJ0/3xS5mIjBQYPVZJZ7e9R3wJV5K0XSCrFNZwlrtKe0bJzx2lSN97p0lRPWVz25OI2QycToFHefCejUnFComy1nmwgw+5KYGL0XccuIR2JWl5vLliS1jCKayyPs6bEWUhRkQxK2Fh/bKKCVZWxdRZb9pU52aiKFovhujcSGVtvDWOLJNPFxs06MkFOPqvf17ghoqp5z0jS58r0AmfEeNsLCxZNUosMLNtoqP2zBTdLj/4/sjN+/4EyRPQ1xh8FBG94mss0q+YJp0nG8WlalESpde+iobo3nX2RXMRSJqHHKCx1FxxXNPZwPfboNJM2s0Tv3GImcpFQkQG8ynDdLazSfVYhEsk4z8zyjOlXcsNt6WsUocE6Rt+v5b1ispQTrGbQsVDBoLP1xSTqKZIEUFRqiyRzXxGMcvfU6iYsJF9JfpFzHW6RqhEJpEXnDJ4QDtpDxF6IlORap4YrRikYEPaNtuSqhqmn7o9ot8Q2Ipo9uxRLqmYodupA8RoUGTgWsudauSIllN3f1mGf27Yku+bPHBMhmESbyAu/VzZ/F/f8GOubGpHdmzV94pULrH2K3nJFJymziJln1Ds9Gj6pfGz+bcPpFPsyruZtCbAoyM/Y7YuNlKvP+M3zhVxN6pimBTUirKizSXiGDTqXpVR9hxJIgU0SJ9UlUX1TpE9ejXBE/9D8KlySxvonv4LyEYM23hRFI6aq1KbDK+AhDfmUngVpyCpHFsj0UUJ0cO+SJsiWpvvlDR8z7RPGTQ6PDjqmDVPTGIXbedTlC5aRtkTOT/mvVm33RJHtiIo8gkKhsPWFtHEEb00hVxx2J8ou+WB6Q2x3iZkhRNGyddgWad8MfXNkAlp25lYsrfRUV+XsmWhVfqVHPO6EaRplSUQwo2faWVF5Fxl9/1CtQFPNqjr2dV0b6rktntf0uFajHy2Dq+0hqVzoUJalOHR9pa06ibTdoM89s6fkFNC22jBErj2qlRBNo3h5YRsuEqLohQuSLQ6ClRUu+XseHQyGBrJyb5m5sJq1Sh4IkcbHqcNlW7yHyryzkEDIqASNHgV3l8oUHHCT8KZOKhFshDb5EUkmqmbXMc3bmGhYihvUCXjMbVMDxpU7FIYOiZcCdAgmhvhFwtQUC1HA2N4UJCI8SMCAoJEFxTJlGLzpc+wyXAmsroHZgxMUWjp5EgHQDaRTfTdxohGw5+yQTIkj0RYlkIOWzf4/GtFRZYzwYwFV18dEhioZJhaAnn/b4+yKCwxo6GEyKkgDx9dq5y/EfEV1gVr0xkD9ChoICAXqlSCAeRTEhgRWahsTVAV3nQXmuMhxlJj6mYuOtQUm/JFUwMVJSDGwZ4EMIapJgNKijSEPyTCKd6CYIrDaQ0HaBAp42LCpNRNSoQs0kWO+kIiiTTtfo9hQQ04tBTGg1422dOx3KNdUcHz7PU1kJkbFxfQToT/SjDFpng0LCgkegsSYmUBqRp1Ci6wqT5bEYrmzr74InBeohQx1LlKSTTOkOcNM6L7OdNlabsOUIHq4aEkxJVHUiR9MqWaUaKfM79QddZQb8aYvQBR1URFApsUMlrXpt1QRsTPiXXC4RvtEm+3w0JKEPhEfXSInXBh20gEBhYJKIpcEYJI5XrRQftzVkYgCIsUwQI8XaCOKq8FNBuyKm1lqNViRQ4cIpOW0846iIQNc422KxA8BUTGCOC6JmqT+tQGh4fMLAaKmT3kFjxLxCQfpjT7ZdMIsedMf4RTHwXqbdJpkl2BxRxxgIR8TDpoSYBZxZ7ISGAggdi/93/AzcI3BMQkCcAC65s25u4NCSi2zUjz7mhlJkUWJEAiYHHHFV8BKRnUhXiTkrZB2AFwIxCfKpv/xPxqloCAcLHBgHtzC1TFnyrYLHjukWSFCYjVt7o2MiKxkJppkhZHTGkGqYFAYEdHD4VyBJzHKvMQMCRJEjj9CJ66vsrEX93dFS4OvIg+NoOtwgFBwCA9XjAzbvlHXghYiII8D3XzJIXHkAfGmLjYLobQ6ypatE1SwSMI0d/952z5IEjx5zYZemyvh23lXSTRleD9U7IJwoVqU/0UGCiv6KQdkogoHCjKA1umbxRHzuB2x/K4rnREu1FKXxXjVntkgSHRMGrCQJADTBPVOrxJ/GbdmOGWSvcd99hQsNZfx9qBbuj09QU1ai9vzRD4ZquxbDGBpkd890mgQkUNHkzOBrDJdEykNIfGSBhLBuLGSfZTvrjAePG04AAQASAAwgBzABl//z/4P/lOa4O6iciscHYYBNlyMc/WUE3dHUFuyNpu1RT8U95LzSXUOKUHymtd0vPw7O8VanIhMRsFfBpKcxFuYkFy7g8BCdQY4gfBBPFxEO5hCgRygcJ6hlliyVlq9zG8tcnPPkxN5E/P8a/nTzei7K+kf+taJEgbtyzn3HBwxKGwqNcWNH0XkLhGZlkn0r+lsiZkuNrKBQrRedDXdJMlII29V1bkTejIYr6F+0UT3LM/ttAvHpNUlq2e7x5yWsqbsaDMvrgvxX6iXG3cXdh4KCUo/QzzSEuqNjRGJ3BbZwQKtXV5hJpAv37W32rlyWom6VjteVsh9DUshaCDaIV6mdXZlRO1O4jilCIae35BAzBJv2RAQHJc1Snuy1r6Hqu+0IciPleNd4NN533LmOZLtpDMxkqkZeU6FEa6EohWmpFLEdYMXsTibE5TPser4/0p8AhJ5pTI2DOTWVLqmXNFqSZMlOIjXYubfqnTnnw5f0XgspXTS36b+c1EcvT0Fcd4qDOt0xH1uy6uZO2RyTeCst1snltLSoanZNRbqJItTfFR0P3VdwOTKqtymcbCt/VrzCmMVkt1Ft6ymfq090b9aI1xXQTAUV3E1mJa7FI6p0G0k9gssH5n/IZ4Q1dHsoMixwmMyC7rChbNI2GAZ/PDosIEKbUYEzP/ZkZa1owhxqglhuHglGnMZ6akmiKJiNIF4cV5XMCnqo1ZpxaFcINrvYIaipA9jcMaQGoz0GgRjOfCj01YKsKYZ34jFteupJMksqickNNnCWRzlv6N3uOldEzg8sFmtlLqVTkocqNyuMUEI+2DFIlt/s1VtGL3NKjnA/aUo3+tjvabOCu9Zt1FE3L04iwUFQo5royjgjZu/uQ1vVFeSVBhidfiYQTkhWbLMyRCtMOPOhQCTyLiWmS/vhuhL+WD/jtLzhIpOzW0VQV8dx3qaOqf6ImGOCIURr1wxJRBgxjEPwPOe1pUGX7bsXWZ0ZUAhHpgUDQHudknpcGAeQgRkFSQvh5f5RcwZOEgxMjOT70/AwdbMvw858M2CmcEi8iQS6LBhKOQT6s9Et5iC/tyMyRbsyCaBaOZ9kfkaY64GtuVp0njRTbhHJMJE91UmCiXIOPmgxFTJBQipa8jQaUlEWe6fnhECsfdAKxUqGdCU0nepxSGWBwwfEFRKiIrp7a2OyMmkJHhSvaMJ7eoTfEFK4SGpuJQ7vBD7Wq7mJcZLAxn4Dg/uG3OkoHGrC0rv3u8kNFLF3IgRLxGELP8m3bxPU+7kgIC7BSobRrroqBt7J0IrmO9fvXk+vHRNouX0cQxDBU6kjYdOlBQ1Lh1pblcx1MvpRqe4WJyEJWvNMlRbRSZBjV2m9twbjCvOGRUR/CKUkogng5ltHx8XcF4gEeHK5JKspTdbZCS+TO4GZrQQEoVznugtkJSW1looR1NVWSHsXY2yQI9hpVYDehBVVSl4kYfV5OwZe8M7XyDsZjwsb1mSnFI/Oc+JEQBNUJxeXKKPv7JYIWaNguRk4Qgx+aCas3S3iQva8o46jSXsTH+ag709xwld6/vq4NTgw86pKg9UvGVopA+OImWLPG+qX2ZFnLD4xP6eWfDwLMMpXuyVVvumBvms+dJkUNXV1nF3KE33eslj2d7ohEiaA6POuA0uHwwVykQ7Q2Ew2lA3Oqvt2/f6yxtAlmoIQ9+kzunw+eeTqIJorTtvmJtR0nZhzTXRQh7aNQg04cuRK5NOAIHZlvMuuDOnWkLVZm1jYxD+XbxEOl4tGPInaCAoFHuqZYOAws8zYpqqSxtEihrwTGRkFubr1Rcej+lm5KGvtqwuF0yYOzUbc5JxoKDSOlqv7Ql4jkJErZku+R0aPUJZ4FQQRER2T5q6U1EyOTjpeWj8aCQnq7rHZTihv5WL2nPPZxdWFF7NpCNfczH/+dKWLrUvqiwogYrA9kp63ZAqoohPSNcrYq6hHIOy6QsfiWo35m06qXXARKEMim9s7qurdSjveFrWGVxam1S/sCCQ1C+gNE7AT5lSY1rK+uiotWE5mubk2BPolY00nqZTg8Ic6OhHM7XsiEyyFmArrapDhcIplUEZW4EmHTtSROZUe1mudLsR4pFeGyW/ELRgTyvcnSvEdScmQrP5LsEPP72k/XoOvV+gkycDn3GENT1ZMkdyyYRH1sewQlrSQLCYGClqxpx4+rT+pua/N1doUtVx96MwqYe9HNG3UldA75uFNCNsAkICGScidO/T6Kwr3ZsNBlKTThI1Hyb25b9zL6hF+aPPlTqmx7IpYauMFLRm2Cdp/xAl0uW9FEggGAYyqskOhGukWm+UMnaf+8YHP3EtKlFWflqh35rFk5zElFUVzIT0ghw1pi8RCMMH4glpYTnJJPbGSYl/w9bP1LXRQthd8pfG/8UQl+XDEVbCYkFXoL2MibSJDBHfCbQOKMCt17QaX9S4sfil6aMNluvYuGP+tJSxwEWtvG2BdENakNK2fGRP3ZEvTU7QvSNuXYnlLPexybfzdG7t3n8TjbX/zOixLbRIGm62JTUg9OFV5anwL985V0mf34ThueVVCZuARSxhq4axEJKbIr5KiBBmpB0ZMo68yJEdF82OG8lMCnKxaDCwvSqsLpnIIimpEzsbnnto3thwLyMoSohDlJlGmMD0EhLSfBfTp69Pqe8FGdQil3rdKOif5wrZfcKjuYt3iQu99muH2uJFpciJGuu38W6H6v/iJ0WNpbq5Z+JaPudiVXbr06pInfkDXnw8KGvaQ9cjHZWkLsv+506nGRJbvNxGhO1R469CRL6+jb+Ng/RSvJbUv5VV7BQkhJIQhxiPNFhT52+b5CNWEnvhnbKPmc5fnmaKFxyaiLP26JkVp2/MeP/jctd8UDisL+SiWWihCZfxPKy1dh+rkr03Y6CZR/YyMotOSzL5Lay1Ud0yFD6E0v0VclxE4s7cOG6ZsTEaKC+zz8tHqxIy1WyPhYzQsl2eda+lEzRECjWWodTDljSMiar07k7PFV60XA3f1DnE32S5d3S1PlYnRmabONBe7FhNxfzSqv3Fon/G4rS2XYzpWuRkioSd2g+Pfj9MlpPGshRIPSgTuC3i/fBhp+HJGJK3why9kzEnn3rgmaseTn4sKfm/Uloi1QIt5J7sO+NjVqRSTrLwyHw3rjEloVtJ4fJ1+u2pJWab63ag+4jbipK97PYlttCO0RCJ1aYcbEYOyp8u3KwiQ1CK90jTUha8nf6/sFpmuQnO71OfzTzp1PVmDoVqVG4z+GCrKS4qg1a0w1mX9QzUyXVJ26RI+pEdMQhS05QsGPNPmy6wQvmteSerUgp2er+qzFlTFchsYljGJtsk7XpIMkpupHbywS22EiilYdkepsRGDmutkKSfLxEZOyNAXSz7M+W6W6jF+Wb/UhqKqQSi+ofY5XJ5KaMvLbInxS4wQpGJiwCfWVEDxc6tJq19iUHnDDuePCk3xrdC3tJ3dguF+WuZSCLc3ovkZYb2Hk7O0Q4o3Q2QVHTRvF3aRCRZEaUNMmRsiuZnXaEunBdjHjq0zYIxuJogfUT86YCLx5mj58yL0ShKicZHJAxcoC/PS4VPGssNOWSU03vJ4p5BJW7eDhRRJaH3elBAfqSCgMEq1xYvmPxXj/yOXQhOVtZ5pnSqtJjrw8ynGMj/lCh6yLHUhQPiITcttPv3av/wM3X2HcSkwcdCfiUT9O/8m9NsSoP/1Ii6r0rl0iqsvMg9if1v1596RxUCIsPVNlmVZ0CJT0p8avvekkhHQj57XxJSoKRqkV2K0835d3twG9GROcjSsGPStTRG+YSbrT5hZQYSo/YESBMt0KZyXddXrpqkbwQOCBEkQ1bcn5iRya7yuR22YnWo/mmxfd7TSfi3nzo1EnprS2pTlTSduZnRNqelxwcp7UsY4WRw6HqTzRFmDN61yPI5wyYsla0hBSWdNNdm3k1DwNemcoXtKKrIU6/P/3dUVLq4/5n3Ewy+SLMFNCdEmpzEBgr076Id0K/LICs2VVLs1FSj1iNH1Bao/LGuWKmWMpQmrc5s3Fpq3/az8Etp2dYd1a73h2XTdhEORNbkW1k7EK56hKEvRYR/9uVGoNPtmxuN23BiL2pOaSzir+rNqDc2NENYXqyE3zWV3RTX/kEcezaHpC3cn+nvZpkRMsdEwtE/B+2rlyX47iYak388/tcgW7ImWuC4SlFPPW17E2k/W95/UmC9CeHIZ5evPvcnJNau60c9jZu4bZJlrqC1MIcQhK/skfjJGoZszKurGWDnhrc6UnkBjyaZ/iIwnsUEFTKYmwYbCuojx7zSvJoz8DZrb0NArKRur4fHDhq/Rc0LDOSUfb6MTBUzKwgk0zRD27vye+plm7VVGpULsrVhEbInXMTPuTvO33yjZq9Wil2Zi7hr65aQu8eyysLSdMqkKVa2fbkvJyt5MkKnLTn+ck/drOVSX0Z6uGVjw0Y1phVVYhbC4XBBpFI2ZTpIJ6UkCA7/ihRvCUaa3JZ1kW6lKKWPT2cE968kI6+HJSgy8BaZsiHIdEwqcCQPmhdygAwaXsb2JzqZ0znDTC7Jn5KzTCUHL8IQSF6222wY+iX7nXtwlMEyVksDQycBxFeHUjIFJmgg1z1nDR5LDzwnHrcxMak5CKAoEA0Xeo9w4Sg90/DM9EV4VC5hwBIW0GOcQX50sMWTZ+Iygvh2cnoYBouIeWy0oTnrgB/sBZ+u5lCmWgajQEGs054nCkOp9shB7WwP+FsIfuS0vHyWu15oDmZkblbyMbxBI0GomIMmywIHrWLeVf1zrgj6V0uZhsFo4ibh9hQIiMvEdyFPteBkcEwiXOPB4gAVt0yRAKZGrZxENIGoM6a1h44MIxwwAPSV1Tn5TYYI7fgQHPSwlogblLD/GcTssOtPTDG1sqPzfhumLLlhE3EORLII1+Z3oatjV0CwWkhy9RfCNE6OcJSI8ECYJpQyaLzh3cSUElbzCQommCFDq9bisWnQmkBWDF0HksdgZqQkuRJcESYy4hVEGt57Z+//EMpu7BhfzidcHJQhxtKNyEcBcq9k5SYcAj8KBEhL8F/I/xErlSMtmF0bSKipijdO9xAKhXOJKHeW4lsQuFRL+xDiYIkY7MhTzzd6EA6HkQgIBAKgMTcpAgsfoSFUjbWthRNkfgn1IoD1iQMiLSJMpL/6yZowRxZiN8stYBKqCA5kcrNQQcDF5CLMBCiCuWFGi2tDsMlJyKINDeDhydjXoSUdsm4BSERhMUI9IxMhjfDRprN+sHm2RXu1VfC0RCFZhVyJVK9V8RtRpYERgZE2lglaARglJSzoISgIlf77ZNUXMQO+vPONlbMwFxEOCBjAUnzO5n3uNRrP0M+kjT2YSm8Iycr4Al0zReipBYLuQxk2aIvnJUbFmxaiyFXbNNNLgNB1PFsCYC1rwjM3/UYRG6ZR25uLlXzAQiJwH6MXih7s2VdWdbcl47Go1I2A9FCfqiiuwXFaN6ChwvX7nFYkcUCQcRKP6cEvjHZ+qecnwakJFeX0ERmI5QQe+IwnCEMAJsl2cq4Jo+iSzQWQFd3nxOfqLwzyuEPrjIT1hitBZsS3yHqZCnhNqm5ZeUSkpnj3Dr++0A0CMp3SlI/EhCfUhgEx01ZzMjB4B0NfgiOpj0Uilu7OysU/OUCNWT3AeDPAWrCZyuFZBvJiIQ6/NBUEE9BobCDF0U6ZNTxBRrGvp4YPAzoJyVX3ctyCMUidwTO71FmEoQcyJH0BboeoH4Vp/+KM0SAgpbDYkSZmKvJMEnBr0HZI+mLAhGynsaGhVcIh6Ik6zsjCEchETjQLVNad2E5MY3hQY3wbd5JouljYRJSeJP95COFinJCk5RL8UiGi5NGJOCxD6MnAWSRpxKbu4wc49AwEndsLtaIEqRk5ek1y/b4lmTHvi8oOFridlatQkpjSAMWv/+FkYCl1OACEASQAwABv/y/9u/1X/TOa64KRgg+MbQUuN/yKWffeCqzlhrQDUSAVIzrEpZ1IklJHJRfmY8ua21JjUTFskG9n6ud9Vvh98QA6NSUFj4uj2U5qqYxDL/+8scQX6Yi7Ur6CWIywtX2UxZlQlE5pNRM3VCCxSZnzbPCHiH6cXhSKHSdbKIrJ85OtIvr38PGWOGBi8uF7Kpr/TTB7LdTBTDTBPLPHOmUkqSHxAieUTcKDTRfXMmTy8/TqRoqGb77ZMiorJs6VR0GNLNyfPBMflr9ZwVsBmzJm51/lyptJ79wiy30ae+kQp6zNOxvw24nkQqO6YNyYiCw7dhBugJwtK3CoQEZbQkOErPYkxX0yWPkyZ9dt5hRfJfusqrvYkbBwgPxyx5QKp3vtyBLRwzIon9XMXqV0nh8s0yhqksKE8ibguzR6XbUUK6tjQ8LWacjC4RzWadL0HrKS6aTzWGJ2+0zinW9zJyP3JOoX0tJkGNhr4fYKl+ucS7aCWi6ad3nb7/uW7Oo+OkX5RCS+cNsj6TEqQDDTbNI0k8iQTVTevyev/Vsi13WiUe3ejcJUpIsmk5mLtrM56s1MPJaIj5J5PMrsQyzSzblKnZhZx0sUxkAJGJCbN0DRsiZIFiC5DGj9w8gnlvr3zcx6MXEfM6TK/TQtnPk9eHilnTfdy5WrcW4TONmRj3JQYMHH+2dmeKebXBVPx3Jj3mpP+815qrCS2cUQ2hgYbjKcx+fpp5tkSyOB0+Ummr1SsVlcsqZgTzvIYMRA0beR3JUspPUgMYRrELyKrEofsdVie9TOnIcGtXF9/P2ShBGKiACt1MmzIfNH1SCxhV5pXlpounnp44V1T3fpCKoSF7vAhXQzEvNt+iGdurPY9iGeyeeDr66EywTyWINHll86GTlCmzk32IlemgixjUPfLMLq4kkcQtD4sGKJGgnJA3iBkvVTQpCd9LRl5XmX9pN2lFRHxvApSZ+xfpkyR185QTXyQVpNO4+pdZwh+Zi/IeMJqhG9wEDn+llr6UfVNZnNDz5EW9LfkjPoEvDY5GkW1+KDl7rwUaFpc4SbigrL0+909EkniBasV5WNuiZDsVFeCxB9g88yTJ74UPZy1WIv8f9P0rk3Itr7VZvLclc+F0f0LhcwQI5Opd5YkZWif7Flf2+E64gRslwarKOQebuPhObV0KyKiRs7nq6hJ4PXstxE9pxwgV26FdrRKTX4aQaEXUH2M2Wm3N8/d8fZlatsqfyR/wW36JGbgqTQlemPPcL7fK3qzEgPZf47E6h8wZdlraamWXYMnHmg3w9mjRveyYSzmWVazcT1y1NMrNi5lATGf6F3C1zGZWEC7CxRHHzvAgfcpHjqYQK2seOabimSGCeNi49QyuUfuTXciiyXI92iaihBrV9gHSZ3JlxNtyr2uIYumLOG9/ubwqfUpEBtie9dRU1842mImz0WfnkVSexAyZJTV7+DUgMhHpsXeUNFmUEecaBxkcbp8IsJbujEWjauK3/jew/QwktjOA/YmiHuYdSatENsKYux0hF7LL5V9MkcFHKbBH9QkVWOT6SAs/ctYJgh0lcq7fpMVd6G9CXQJJW8iTUU+yJLVDLXm6C5BnTosfO/Knxlt0WNFdENE1EwnJa0jVJjSkgQQkzHznVkrWZ9aJcYPMN9UMKqSmzlrXmzYaR139T8W0TWcWcat+V1FMK9Rl4kuwSo2h8BPKcbtq/0d+FO0Kuy3zrZEhhPgh561j7hmm24oo+vxoQ2W3RyKPE3OM+eCVSXWIKPFAKheEKBKkKyK/hYq6yqXUz9G/Fa9FHUnv5X5oW2c2nmrnQza4TxauRkmm+i2m/f/2J8mnyJAgKYlzpq1cw2yQJOG2g4DwNREQpIi2GWOgo1T86UJK9o0clc9dN9KcrVk3qLKpmHAYASxI+qSxc4UscDG/kkn+oN4KY1jaXJ8+WMd9xk8xxjwl2113tatmubVWSJ0drSjq+mxbk3IEbo67qjMK7lnJe27nQxcYr6yZyn4wjRVKLF0sMk0HKquURkSAhvOfZMy8zML/JoFUwl34rwphuTKFk6MmRKWWP0/E1mFGEvufMGIomc7VpEKDqhjV4unooL121udONRSsWI4kKtjhFSQ3VSX0or1D4bJn+iCAj6nsVOECAlRttvHXJPQpi8lJasu5dW5woJYb7JNLqtg2vViXuBLKlGg9+L0ygYTilZW0yaYfY95JyGS9M2uQVNImKnn/VORvKmRAvQ2SCzXFw9IJyhpG08SEa2xIv3rYwVM+UyDpFlm0VHArFI1GIFztPLpdlwKeUt6ueOfSrfmlpFci6M621lDwQYCynlVfRMwkyOOvqWSGvlzAOS1si5vrKUoeJ7b7O+aEudtMmvQkQCh+dFiF2bvJFKf61J9Wvo9OSi/OzyqQmMcONFXXH2MNVeaoitFRKQtr6lMCR74MXaK+ZLhnM2gQ7SPsiap71mz61gfJL4KkdTVW/JHXucqLMRJudSy9Oip1jglrYukHVGDt3qVvI4r5IEPnHGN9VlkvVSJAyRJqM+stPJ91tZIt3eoUf98/KXFnToWYQXdQm6LjryRpdPVZVdc5XtyTJYqscZum86aXINt25AhJ6JeScJS0zMhlFlO806qZwJKGHSy6Y8FUMLW0hRStWEbiNCCK+xjlJU/vk//ZA6MBYeeM5bVP43UmC8yScyoVNhcAPVI0YDnT3GpPEImgxFLjI1sDZsF7guDCIVGQggnpF+YwmOX9cMhxqMwhNxYiSggmkhAXqEoEARHc6TZAQrNdEg55nTiKK41Ld9JQPu6GFj6qMCx43EmkfDo0ryuDBwcHuTTyuumLoOhAmRQHwgeLif6mXjCYwAeQMzUPXIeecD3gROCpEtOvxcZA/91cFnVMklDQ5oVE6yxUk08lMTuOs+KMdSFiTBNn7MG2sMNMD3SNmpjMsr4W4RVfUAxkITwlE1Ek1BW+FxIxVjWyw2uFBtldxkRZIUL/EXREXux4x/8saLFgJzqqCwAa4DYW3WW5waXWEsrWbiRVlX+1PqUWouGh9TawSXmNv3YaEiLQemrJXxkZiKkiR84DAxcYCZPz7WMAX7jsgiqIWRnpoe8qGns2IpSWyz42EhTqmFlHmgIMgfHgqfIj4YE4ibcw6Dlbo0SRtciRChRxVzmePl131i0m6YRcWcNNtipMzRjo9AEGExhgEBLDpjdElqCLjMfRx+LZZbjipNzC6rZV8XqAVWAl94fKIiqhBWv1hCvzJR7SkmyQ1Iadf46PEtbR4zQjsK4YnWook4TYdLvA5ITOEYGCtwnzy4cFWkO6OogmFjCc7CgyNMeJxL2W/kiPXSYsSedO5Pim+yXgVIhRv6x/wdHzBHRa73drvJNGlQKRyeUcRSswyRQEHpj/SOFNU1oohddgYEe1FOPIssIK7Is6srbxgQLFn4J5nAPgiWSG0TSxA2rvuZTNn/Ys8HVBRJYcAHU1AuEDC3l6A4gHk3RAf5GNb0Rpcm8MXzOhUoP5NFhCDyc9Cca2WwW/5BV21TsmQqwAQI6eaCVsPkGRcqGRsOEpvEmixDgCCIFRIQAuTXIi5AINjFYaA4cAF9Iuu4aG3sMtX49tAlkh86eRkTgRuVimJMCoEFIGihN5aDchh1ChgPkw4rg2YDbrE4own0sFFCBI0RT2ZMZRf4EkVUTZEmmJL7XaJZUbJRZPl9VESjVhRDMfRYMzsTSLXTeipV8zBdcPbrHnHmA4JBek0EmE6zSENxKm/ECRMPridJSu/CSiz4QAgSYDAq6co9x5nFPLtnnUPAsoG7CEwoJAA75cFAgebExp+J02DMfnQn62bG0jBCqoirmviWEiCl3pAJkiOMJ0igh6SXHsAtA3RSG+5LvVM7NxR3wgAkWi0AkUABECQAO1HuhQXEEkfWhKKTsc59oeiETDq6ab6F5/aEHAYXovoggdcEhPiXTRLqF/JoE2bum+n9g1kNnDTTnYDWS65EOjAsOiQ6IczZHC9S4yY0TtvUTULBjqCIBIeDYpYMUwVBEYzggZIhgIMDRAnJcmiduH9VCIFErJkbsqCbnRE02jFyWS58ntXipMWNDCqlBIPSBjfxyI14Zhmfy3qDQ3jkqiK51f51++tqqs3vnGSYoYDwg1wVewBYjoQJkMPcIJKRryj3RM62YM6Gx0eziWGodUGTRISmLyZ9n5htXDH7FZDCZ46rfcGYztxDSThzupIWCjAC+gVkFOxNyhnqVCBJzyBE1GLRJIsFDIB8AuOB3Ymrh8tr3CCSXiFkhBQ8hlHHrpEFEkNp4dXrqK6sXU3MybRIn4s7C7QwHU4YgPpDmDigwir/j6eq5wKMGjDnHjwx9poOnId4laqCaBiDhv9FYZTIj0JRXlCIJoEe0Jg0h6BXoZNtXdPgd+AQrVEjd/EBdlEPcJDrskwssUUHBgsw7Esov4v0KJS2o1iMeWWgat2jZsK7fCYRkGQwJI5TED6LRg0UxsUow0vuAAsbDfGR5FgrcQMyXgR4QV4jjoIuhKOLKz1bchZL5fNGyCh5UrHcpyxIQpgUMDwhrhCQsv+kcl001z8IwKCgAuCJq8SZ4iZEmelASSMAODoZEtGqJeTUONPEf32/9RtBfKImTSKxv/9jVcKNECw5UzDMQ8x1l+7AcaKCqC8UB1NkBcswERN8iE02WBlXFZYKXyesJHjlDAwWByK45QWPSUJBQnaV0kTMR9O68zLsrIxzKXkkDChKV/IU7EhIb1bUeb+2yt2JVE6zJN8ut6GtsiS3CFlYer4omucMMPFMCGSc1YM4fWKMiVJ3uuyJj4vcbDoBos3ztLlCPE2ST+rSWSOQwNLGHrKMrtosIiCl3y+cTltVVFoVfQzl56pS4QFMtcREYGBEKz50fCRfekbrxbrmsB44q0CANIuCTmsrPpBHokmyZeJ/KmXyo/YKBQZM8TB5URUKHBbokpvUUGSQqAOgLDjfhVUg82Us6XIJkhITrCmMei5X9pmvYgpjo5j1t9rBFYxTCLEvqhc2E91cVLQIqXx4FK0TAB8AFEAMwA+AEMAOgAP5rqKpXyKqwwhPK6P4NeFW5ZH1BBFYrTTs8nKahT21LSC1DwxaJ/SjkPk29helJCL7QhwUYGw5PwcC84ZbSgvlIWL+njb5bwylhXwArHAsf5GJYjFSoXEQToOVlp2nPqsKO4EcX3lUHVQzZZRw6S55Ry28oGTuWNJYO1uceyB62asSyRhmsXNYsxrroS1MOqK5ULCLGlzwjpyyt3pWFL25v7ckRlZAU/hw0jgVL8i5DBK6iW7XiDAga606EzFG7oPYAcI4Za1RcSSlpC+4fMlucsUPkSmvz65RAgltRnI/leQebi0lGQieo7ztK2VlIaC4gfLSJWvXTqqVjEjKq+0KfxYKOSXBvEVfl0P81Djgy455phlXbaXZfItlZGrZnn3UddHO00UZ0j7rW++mc/bMiJVoWYqEwpTo0ClwwqRKEzT2vWP28OLEt/viPQg7yv2kEaEmklzWr3LCDD6FQf7S5FnaFrFFWkOqSStF0/0Q2+lktc0zQgcDWBCSxzh4yAO7wULJyZ7Q6D+NEJMJCriBg8aQFoBOdcSRFWvJi2mmLEHxiQLkLcdoeTYJk35zZRIkUxUJAJUSL+KQy7rpetw1oUSM91jcjYIDqhChqgo6W0miVYVlSl0KdGq9qBAkOHRnQA74eo4ESo6S0qGGVI5r7uatHaKNpabsstWLCqmvCn56fnTxNUw2EwIl7ejMkjIMSHcxSf+kanZauZwMb6cf9xQ3v57zIy5MMqMntoCqinaLJEstz5aJNJMadcef1p6qrXmZ4kGbDGyUYeK3yQ5oi4UEbUlXKouhvVpKgpTVkyCJYSISlHtopo058zg5SU1Wxb5FOZNrx2ilg0Roe+U7vePimfeHCaDfKpVxys8GGH5Qc6bm95aui0/1ZYFXQ6N7zC8y0RC4rPdVMLQ4ZuiMnOqUNqKH6wIOxykcvEJkkXoJ0ls1FXWuSVTlfK7krY5QSkd5VhRn13AYSLmNPeokQ6DDi7ktFUoplSrtCoJZLrvmV1z/Bk2gKaUSOFh4BZXgQXi9Y7wFQfUGDlq9V3SkS1AdwASBI2qUoNqriVpxLhJ4lwEYMXiyu6Lg69PR5WpcQp5pGA2oSSKH6pmwQBgfu5B1jsYqEBwFLD0hlX9CpMhYEnTCIVWNmjSuJGVhs5N5E5tEVFql+SkSuh/xGhJubPWUXFxOc+kjBjij9IPC6AFhKFphgTJhMZ1dLJTOye1QXOUbKRRIgRc1sEc/U9SONbLLgxBeJE+OqW1ruVn4mMLhJzbwsNAsNVZFK2lKPhre7U3J7UtmXfLCN0uN8hIeFOtUQqVN5elRL7lm8KtTnogejH8C8IAIFaBioruWSKyfcRqwssLpEeE6hFQWar1GCqcVYiuWmtnaulOfNhPE0r2mKC4ayySCz1zPWohTO65plhPL2ss5FmAjLmGZsHAP26CFUpKk+eSWxpLPVGQt4KUvlldSVhkcNkaBn3zvgVcwJ0gUsPfk/lkLniLIfA2EnJGHwo9me2Vc1GIQA8kLgfgBqwYAvt8ZMKFBAqxoI02aFAgA0DY6IT82lV6IC0WaQkLxJ/1bvN5+uid/DENMqpNJEEaysk9urBHiiU40q7NFeZohFInOMvRJLEdTIBKCle1X2GP24icgiqd5Z7K9KZ7UuSTPxr+xn/vw0PMYP4qCXR+kdZYXNLzOzR5arRJUhRY8W2s37sXiR7VMiTXqEcc9H1XVMUo64FfhLZXVY/qEUL7dwhP/ulG3BY730VnT1jY02jfI49ZPkt/vcECXiXH/EXzCJY9yHA7UwxX2rXmLC6kgdR0FwnucdMFcl9uUcNYt5qjs7ut5y0x2qV34OxP9CQYVJJ+kNVy5RJhPAUKyoUSqZ00ncSdIsRoXrFUIMYfUfSnfJfviZoX3vH9GVjAj4Rlgk8MkuOBNbs6c6tkNcwzt3QEKczKQihVeacSLrIaVos8qihYbY5Y14RsOklBaS/sNjdqTtLq6yPD4yWN4fNFU/mbpkW7R3xSxIbM7CCW2niVjz3WxjtThNui9SoZ56tsYm9NZgmaX8Ubmjx8RwI1RA+rHM5qwxnW3urn1d33zWaKrTPfOIl3+7mWy5MvHWgoLgAxSNmibkiXo4QoBgdT62TXwINFHgnaXGCc10+gqkciyVDCJjjCA4ASCdHjJuk5erdW+74y4OJJCFpA6y2P2ZaiA0gCXwA6oiGnLMIqAo8DdF0jrAeXBh2/jZUO2bJ6h0/8JR9RwXMHB0UHCwdzO8WTHFmC4GEAO0BFWiduyIBKufLGYbEUHDVB6ROqePtes1Pq1iPhI5J4REgAsBV8ZqR6Egqw6yr1UyV+rM4eLCAsHojxTdvHQXxiobsgLqw7I5dpKKToi+FmgYKAups1bUf67RK607ZnEMueJGXRCYCIiCh1XRbpLvUEucXv2CJoHivrWZNXJ3Zkq6PRlBHp2jApbbCG0hIFlRZKynAQZietBEvjy1d/VXfTDO8ibQ6WDIZiDYkJf8hQFCExk0UGgpAoHlvJf5rV9vABfAAx1ov5tl+RJNU2uhwOnyDe3KrEamzoKVh1U26aRYC6JI0DkCulsXdFGWqCL7Kq4ySU2Z2JZSQlbsiO1GqnIRrA+3YMdVKX2m7uqfZAoYNiDWJbtpkgq6y5+EgRtoP4OVxDz5ZHHTHmq0puJXfrPkT3EJqHHpVoOi0XpsUSE4pbGQsLEFTvlZGvouyjuoms3r23NbsNNMi5W5m34IfUK3q2ZIiYKPCK1UgtWdkUIaskC6SLJjbbbfr/gmummyh0vILEqfBLXe1X1lWSTJNlptf0vhRkKH/P/jkIRYFS5UtXMhK7Q4iz9FhD3XGu0vgg+2TEGLX1Cs7oKLZFGRDh8j0/8bKmhPtdHwh5J2secntE2cj+sbFeSpOyRQy299ZrBoWzQWFaE6v+UtfPaoVNVcFcc8EVuX1+SRaxquMGFHTPyOPSnL9DrnTZLJGQGwlonUPOfKY4hspU/XNKixcVrOe5revVu0kNa2PuBijFXPOMFxkRIxo7HM2MtMa2BYtw8WYTFzMM1/a0RKNufdK0cxxpJE0HCcmCRJVz3yvuzX+XZ2FJ2FW1NvH8YBB7+RbnSpK7o7BGVjwIARo0O6u0swGAM2uhukU5BuDEq6UUBA6UYFFMR6fa/zH5zrXM/5Pvf3vu9PzfPCh2q1PQt+6muGaaw85o7mZS1gM0NXRbVyyasmwpkuhXA2uCQgiVqEluFCe38fPqhcO6dwSWtr/UHcmEY/rSaOPSSWAfAGvXj7depvbZuLW/pp04g7kvn8J/Sm1LGlsioTMYaq4Y04WkRsXpYYK/kM8Ckj8zp1ebBxluHyZt+TfHrb/ww+cnwD3ATEd58/Z+3SQgI8kJDOdXTcm7payZTApUoB4rBaMixDOh75PdL9PwAZhIL5zm3ACaftq8gAOFVC/mwrJjfO7ZmT1ecBTd7Ap6XBxH0/Qpbb4nfgA5PH/BVG0rIOPNaH97C+r0OLjaXfssMLsmE6g4NCqardD0+nNp98pqxUIf0nmSYwacZLzACKrf7nW2L/eSegjtHlw5wbu75dojIH9T6nBoBBPpw/44vrct44KPNzT1lLr23tVCXHDxzLrFqgv9r98yOEbHz5D4Dgq+Bn3PnbIBF0uF5XmZBZkTc6FWmc0a2PE0n97lk1eaK1+dfWIvmPlvxOnZp69WW3bpb+GMLiv1Gk2Wgf5tSo7+VgtONW982eXF2l535RfCGljiovh4z4YdEP5CEtrf2pB6iGdnVuiTNvua5DoV3koM5QG1BeS1ykWFzwPyRtUTcby/PACPUC+FupE8eeDYlGcsTR+28VXKXCGbI5JXMsZ+eQgR4vVX3+T5/YoiXZw2o+7azlHZhQQOHMmFzUpVMr6tJMSzf1B/2PrOpruud7DPdeHt0t5a9encRkQgffgdQagiriOQ1X91H23jEGXCWb57da2USOJNLu9olAhcXjVYTvp9WtKnLRhKiyMOfRvGXR0xkXpIFmcwoLwrdKQNJ+HyqrnOMFaDDn6RulOZLOy7NyE5Do8fyE7cNNxzG5LDeGcoVB8812kpqkHWrALElux+RePq9Ro8o5w963aFWolaetzKWZ2Zl7MQu2rvymeQYfdd5h20uQL8onS6Xym1pA4AWJR+BAbcz6MsY0Yrw75fIttrsxdYiqeUSLFJd6j+2C7TwOplQCqKwAvKCUH0zrB6Y/Jy7sz5s2JuPLLSNibNPc5fGuWhPyKgbrv2+agxec+P/MO2PqAxqX9LWUZrTBOf/8EaEQzRiQ7ifiUTEXIPoOMo9lwbU/5FyNlOW7y7bF/76RfxLOwh71NJRcEnHG2fgNGvMFX0M2+gl1xgS1tOKESL0fjjAPz+SnnCV3Sbhnvz36RGAQ/3hOUD21kN8jscGodpM3o2uKk1fgxoFc67Y8TiAUb0OZlO0qziwoKItYvc49Bn0Z+H6lG5m2+MLmZigU5uZWPsPG1mHIwpEZl1eqQy8r5VWlvzfkiWimov4vGew4BsHmkPJrwZKWf6/Gb5AByG1zfUZwZWgIN4up5a4+5rCmebzogqoa+/QbecG9ypESkqn75Vj11SE1DMTPcIdlSI9ujLiAYyNCP7n9YL0Du4ph7thdvhxZZpVwgWQC2TRiwT5GMqL2rlZcLgy/skjp/T8Vc84z0jTTZC8HWYN25ka7NenRXNoMIT2pmu6IR4+wBVh5KhXAN3sjo52YU/lU4o6h5ukuMWUQ0f3zu09Vvnc2j9/k929aqG9BgwdKcRmIHwY/1JpNMzVZBqNtjIsvnz2a+gs9ck5gABYP2APatngW9FOjl6EWUW6JRpF/6p9APIs2O8wSD6hSD6b08yR4YpXKxucwSDLeK9V7XkNHwXqF7q4mhrrqnG85143E3TobeAQevlR/As7jwF8ud71xZ4GUopul0fzSNxoc8cs3MjnYowzOlliok60/BLj4qast29iPLNMaGyhPhLHX196pmR9GJC2qX0k+vfH6S6enWwreWd84siOSjtY3Eyln/mPfsiYOW4n2fzac3GLSP2Nbk/IfcfF1nL2LXPWBM4jwX4Mhn9YtEWkewdX+Dg1BPzVooGYjopAlBBdFoYC0LJM2bq9bIAXORP1/BUtroUvWQFZJlkDmQ2ZApkqGJLu32xeSf52p+O3gKf2Qfd89+NN0rL+bVpOz3WpGXFRt0jXNcU0TjmcX3WkwYEHiaaO7tVP9XvlzvZJD2ARC7d5egksKpLjlqW2nkdJ+pBXLXoGDcL5vMrpMjeDhgdnfeagQ+1J70FD5/qNRRXVRK8qLeXH4t5GZz+9nTaNTsn0IIUPkAAcmstdqe2cIoxmWC2dPgHYRpaLFNltrxKtJ4wmB8o6rSp1JNa+fNeigoJEWr2yQMGbQBD10AzgzRMcG9uWJUhUbZltO3uI0JAPd2D3T6S+d+KnkMW2FkmUKBezeeKuqU/5nLpAMRk/NEiplO6pa7U4jHn0RU1sFcs0lj8ygG5pQj0QsG7zbIGbrl0ZnhfuniaQ+aRgfqFY7bj+8rljNiKF1jYK9YI/f1coeyfVK5ZEcUkKRs4Axe52duMyBNKBK7pww2O3Oxbrmy2YZRmk1qoT4DApU6HrKrDD97ZG8rLHynW2iHMVoMPD7t5O+u7qLrXwMs5FMsznmnfHnysgFBfn1+5iUSC5NoaKHJSo3FG4RN6TWBDSSjz6uu/6tqAC3HTuQ100rIelup9fwSl/t7+fSSnzJlUAcbGc5X+qMwQoXYB/j/ZwUX7E4l2k1kZnuvBVhSZEvNWEKQuUPbRkza2BJZE/J05E7GoK3FQfiTzPjwhzXupw/xvetFq4auM46vG80E7/SirwEXv1kXeZbjnN+/9Yh/IRGT6pj5acqaWNewcb33ZyKsLREuWvPB3vaillE4j0nugIRiVm/SKSi+BNMnF1WFvJf/894Q3Qm9tngayOySN9QmS8yzd6nn9COYn5loQMstZJMQqJ9vq0riBRxyaIrkQrYBlS3MG9D8xbSQydt0wyM47o3Q/WY/M0a3T4lChBX/YQhb0uP3YPAKrxhOHAf3iobHwUWGQGKP0KD6OVdkLfhZ/33ATiiIqgwoij1DUX9Lqq4mlywhGno2b8Km5mc/H7uCarrh5LX5NKx7bbxyDCgTUMkzIM//RYE3ZpZafytY8rsc1PY+l+Ef3bF+7rfcMXaI0rm5c+RORETAJG6LN8yn+w2okpkySdbWKM4E5hHoxNRjHwbxrU1+QxKK+4d5eLrxI+Y4z+/pS8quKcs87OmSm6gxFExYIuK65VzCoTnbKFkCJ59W1t01liu+lVyrSzwqY4+gOV+NAef/HBLB/eXgEj0eLIoI6ZwHsFIE8nSkPrf5Y9vmoH7gcKL+wkfLEHLwmWZGbqJqvLv5L9KKdkahgNayrM0hWbLybD6viqhpkLL97pH9J43UFDx68NYmtBmgkTAS1nHHCm8mkfZ0JuyuBtyp0aS06howO0n10gBbqv5j1+ZqCcHtZgEWalt4C2OmhQsTyzV/vT/gV3L901HxHJVMdsrGMOsz8B/afEEDgnw8AzExGS4unQ3SxUdODUjyEv0BANF6XPCHnif93PwR85boK52iPbUDAEJLUFO7BDDCX7BHSB98kvHxXfjLRF2/B4BOcjp6ZciG30nGTOi6cttX++hONO5GnjM1vetxCwzDHLCfohUls+1Grqleo4Y9ycv/i01qhaoeNbr+0kBAut/E7UDRZbgyKelA1Bnsi36Xs2HJHzaXmhj6umWcDS6+8UEXnV6OLVANFr3+ka0z+PRB6fnw9weWNsK6hYqm5viydQbIbXq/vFKhVpgTIjIPs8f2raeyaSl+BONGQcYg2jYlfoI0rWN9nklh2lzwTPe+VelfeorkWTRGGO7t8mckJSbSuSg8wY27AO4CpuMn9EAXMjdn0Nysg+mkSOahqfF6s/CUW9zwqYOnf6QTIa7gzrcXHq8pC7tdRjVBbKUNpzbUT6VdQyXXoeXn8t+2YBsszS/nwUPgsxPJcLaHHJTtx0HHsxpv9/8o6PUo3nVnfEG91NoTtTKYlfBlRGbg1GnUfrqwv11U4f/5vVb0O6n0oePLY6b0lxN2OofHzYo6iOL3nO4kStKRg/qBgvXitjxmAuLNtPaH5m7s67Kx7hwjwX+MbKRz7PcWRL/knqpxhFyuB6oxYpPw0g/bgQthHKg5d6Q1Digu2UlZPXciGEg20La8aIzR0TsnwLhvmfn5sgXy/n8jjlLsmTS1C408XfOakwtS1edGY3R3ye/O0+FIdXzxKwgKv0euetnEUsWglLb21qRW5fMDYUU74QvvQjP6xcyPYJA2HcXd3feyNwjJsAF2ptDWKwMqzTNmDEFL+h4Yhzl4ZiFFFunZPkFuMDj2nE/SkLhsMeDBzGYzV9jQ6SqQ3NEHq5IYGXX87nFnw1vKx0wnIFvZ+LlIxON3KVOiXNBx/Yqvsrh9/cLKNLsHmQUJ4l8lx98pMYoE2J9L6mD5yNYn1qlmY4/Taj6AW/TrC/jGZV5yue+tuOZsGIqMza/RoydVDI3TTQF+5OfsbQN9iHqjqc81x+fvhq4yRgUjYLB+nHaaMTDBMsncWKpTDT0IfuAx6lz4etlGZxWgbd4PFDpJ12OpGg8DiS7mEKAh92nfiIRZi+pm3/PB101emYgrtyfAw79HbRGqtYUg1lGNcFZQwZ1BauA9ELpTdDauwl2LDJmjwubwRj9mRAL7JBfzPVznLfQMKArQeauXuWbLwilqnzN0sYM+82fYbNac35jjbqPmzyoMxTawx5KcJ1SN2AGQ+xz485XDda5vFi/Cg54sYN4HF9iIqNNFSM97rM+uwD82ub5oSNo7JwTdiFj3SD6Y/KzwFpcSl1/WMKU9ddtCckfrE/Sh2yFs/lqnrd0rK4hzLkgleePywbq6Z3ElkN7ZgNqKfV48mbatVSyCMEfxCVXKqY1eJ77ziDBtObbtiUMUHerp2LKbJx/mmfbomOvYONezUh6VR+RFq+uSX7sV+TYiRMdg+dHEeLoUs0CmvHUOUnZJzcPo05fP4pWa58miq4TiRrGL0xfrehY//HgeWTOKaJWXRLlx5NXjqskCrPKtnBpG7V8tGAQ6xqKGJc6dc5yTPJBLMZ1ZnqFrfe8kaYzByj/l4aXNbkI6LVp04yUjZtzkDZkrlyUNxeZ5QWtBG2qsnO3wts3JQKN6y27EyfXg0l3f0xlDoHiiXWc1b31w9JzN0PnHgeEowdvQ3K9LZ/DgCRwpqj24X20KW8gNqLH264O3b948kP1SosEUXKP+enEuMAcdiEcslz/Sf7vcvOHTz423+f4U1Uxj5TenCfU6nwTNEhZCUhkTElz+GzUDhCNj2NU7r/MbiwVSlOjXOe5XZq5iu0W3nmyQu8XHa9Ep3KXX+vyKjk/xSzYfPKcsFTJV18ipn3n7Vr/dNpbIEQrLKZL1IFZPM8bDpg/dJy0aHUTXJJkEOYL0WoZo/5lF5j6R4um7EwQlHk4hyaJBMXxhI+aNZ6M6Ep9Jh2zcgXVMysx3vL/mokB/KJ82ev5zP1j6sKhVymLRTm4nO6QZCdkJ+C3w9lYZ2ITfV9JlyPC6jJdLc2J8C3KuewHj0haTB5KunA5SiD9q659Ji8o6rPlgMwooncXbqHLEecfESnwQ2Etr4RrIfGnnyNPvMwrHq/hlFhHZZNXK7tam1f/0PklQPMxBJ+a7Dd7jexVq8Xv7tpWAhz21aHRq+9LlmyOX7ExLfqf6grqzlvfz/DKAGpW2BYJx9NeV9v1WywYCFe/CTSYG990SHu3Jg3xKqol3VW5nsxVISFVugGvOpiBRcmMViPMSKhIQ1ZHIEPJ0Ee7ya6galV6Ju8wOzKsUb+nqYymEJRkRawSGGupdfVf2AVB34oWQe9qh5grQkXTpQJ1r7FI1JoW+795mTPPzDLe4nKS+1lF0UZghvfvt055zrfiXPu61g0/xWRP3Q3b/Too4uWgbT9ukLJAeYfFjTnfb6vv3EAs0AG4Yt3Sb7XZqOS1vD6L4mwc1WD7If8rg4bfLEWrqW1C/22fyYsPLuZju+j3j3FBc8/1LbYtNkZFBsD4QT/OdmX5MoDHuaNuPWaxvMJdhwLTpiDvxsOuya5j1UBaqr/nc399N0+5gllbQKjVvUKCPswWXw0NQWkkexqV7rtI/CXy/Xiv9yJ5OvxtDcKPJ463Piv8tuC6aTc73jrANyz9h8a3fwRdZr6aUcyXyBz3I6SaUyxQArVi8LM+pPbIvOm4Oc7nBftHhcTz+y1Hl3v/0Qlb1fEo79m7y8TGswvbVu5rEqmLxuzdSHx7c1btA+6imvpFdD/CUhLHZw7sgPVU/Jqf19ivQdoPLJoNigqdrMWBayNb9/7U0Q4HEepLqUvaAcC3x3MR0eL4OAudsvbl57MJrMg3WvuEwgQeL1QOb6QP0uzPsFnGAfuQZm9Jl4BHOqwJMKp2771/kUxlZ8lBqApTEfgRc0Ld1L1lHMv3hrBjVglLcd8Y/7SsGINsmZzWZlr2DUJpnJCc8dWgxLVkPR3LG0dQ2rbL+riUn7Zz10vcn7FrZZ3QWl5cM4yT1oGP6l6Euaiz5R++0RVX082PcHTApUg/4XJKZC/v59OUvjsClj+MGYcO1DuRFxxSzY3dCc1F65uDvrVPjOvnJM5uC0tsrj5iUUhomYCUto5JTs9Pfy4s32X5XpGZIHFRdstm1UFXve6Re1X7Hx1z2aqD2k3JPF9yX4rGG743GgHsALIbr298lNnHTkn/ytqgLz4ZYnQ7GwToAsXxY94dquC3K0Ys3PYAGz5GvKsz8oawktWdISPT9TUH163XhZO3ZVmXxb+r0XykZWUOrE1rFQo8Kk9CMNLpA8nIi8nIOQDUNwNDZQXOXvm+Nv+3rHy6FQF2/820lDG7/9KQUZaNL5r+pYlwJ6jgb/icVHPDco3FzehePtMBFrccCVMsNOKurH2PodtRPxFayBigVgBFO3EtRrS4gpglP4wafm7W8U7/uLYrWH9ljCq1c4i90M5qErmtfJOvREQmoVJlbFuQM9F/Ra9XcbkrRyfGtkiTWCaFsaS17B4e1KNqnIebG2iRveZKD5v2ZekYrMDBNGCaX2fbxonVTaDU/4ogD7okGzK/zg1NPN2Qyx+zZ7iIDGxF6lhzomh9xJzoeU4fbLiV086QGC0/a3GzMzLegQq4SV6qcIJFKasxNxBtJqnMT3LmFxBMbG8UHnnzDzImR4WWacCgNTv0UuQSfmqjyODzdAWuJBfV+YzSP/NMIg7F+4wig/TLqjMBalncKiyKodqoJ47bXiHfFaPHCDSFkO7bcKuCzrCMmZIX9HTd+xbU4teYrJOQlROOSU4A8L9Hw3ENMEWqO8yeRsjByKfkELIQBSS5X+QMo3xV89uab/QV7Nrtcpl/DMHl1MKisVm6C4WNYsF1nZu0TD382avyfMXMKSX8rQd3Zyqy/Ghct6No4i50mlKRUpfmHKmewrOudRx2aU/gKEzoo0jakbyCcuDtdcaEFKOE3FrrfKous3php+gYcr5RhIr7d0haaNL1gdVLwT/2nH8ntg/Y3uu6pNo/D6deRgN9QWCaYnadtcfm66j33LDfTwYt1LtbuOe0GU2A5opldBXtBNn0iCd7GLWzySqhXXTtffMNFJm56+/VMXNIFqsZ6KJP0eXJ6MOkCBX6SsW7MJ742cVxvsocIA138u27rddOIWXdf0iTwiVWeTdVNDcluZmdhOXxOhub4bBli9oVGePMMQLHOEQVXkWdETdjhwgyYn0gVmbKU4ZmZJTmn72YCZgw6/tg7XPspBf8/hzRe3Mfp9Q8cWwCtqhZdhIEuTLOldIJf9pzup7ItbOXF3qSCsHuYz1vWG0ivrv077y3G/Ik1K9AWiAlr8luAY1sc7C0LMxeCP6ONIu2hbZ0BadPqevZdMyKpQ10a/yzsVQRC8eCaWPXOF9hyJuH1Ux3v6PV4gUPP6jlCX66fUtg77/UKou9cU1+/53NBtPjEspoJt8UG87ZmlbM0b4JyvM2wvMFzbWsNY2NWtlD8Feh6QubjFK91ODvippc3r+cIJr8w46yjB8fOYxM7xB18Me1L0bjdfj/k7SD8KnEw4oPSnzKe99EkmE1DxxvmREbA7Dgy1cvq4xpeOh2SRtBtzFtrO4erLtyehvuA2tqQcN6pZ3WXOiqmTr+jwFrDXMpPHJEAZ3bsGTB6Jl6ZgOBdfG8WyfVbQj7/7YeadN8JEIM9PnPbv3qqxMZF/1WGGOQU5Vle7iNCSCVCX4qmtFzcGqeIAIx4smsbIIn3HnLi45DbZKq9xVMeGMq9YCteV+kGpdTHnL+avxlJ2/f2lavAJ967P7K1zdqoiZrO+HFzt8BemoaLuOTd2LNpLei3DVqScPSX53+e8ZADj2KdFJhyKJ+DYy2wBSvL5gYLhUACAw1oA+0EgyVJkTnpZP8DXeJFydGxraCaECmzG1+eOVPQTG5/RJA63y1w/gPL/GzhzQI0Q0KObpPLFmTbYb07A/y72j9noAadQVZuPub3PJNA5TnPTDflH52dgC/12Wueb/57g5ofpyG4l06SbigjtVQGrvZBkPHd8BjnJ+1BUpmtwAOkj5p4nXS8/VUYhhfK/hlGDd/dREkUpUyioq9v9bvV/pX2d2hvJbBIJr1Jcl1wDq29lNagASOq5/7PvpeqUDDYVVRRhsNtqjwyunVg3QvnwLlxOpuVAePGrxOgYDAv5owCUk3NNle8LpdVaRtzWfA4M9MiYMwNubit1lUt7+d00HTNOLpPxe+Bz1T6C/aNMv0u1PFYOU0srlGWna3/sOkxr2yWFUvpgPAAp2obZ1U0eYRWjwhcPewMLr8boGiMSdtE08dQfn2fcb5OFqANtlr6ur7c0Idw7UCZyNR/So0G8Z9eIDJaYZm7NaUf9qqVEbFDxYrFxNdoc81tQdjZtq/4yxyqa0D/QVR0Wk8VgfK+exz2GH+P/qC+e51N3jQjK5PC18oIL43IKbKZzdzfnzOe/T3CdcqtKHIVifWLVzYpOC3U91cN2xcm3+AGpK44v9tgaeizZGCLjItq9AwVDLobE57bo+ZJe6b6W9dT/7+MfH5OTjNhnajhKsFQ2N47zofm/rCYae645GyiFsJ14vj/5LJpiLK5l5qy1VY3hs56v8Qe7w7owhsp/yPOgW9uPIVKiLeCzMmMP9Ir/Zo+jMbFFzke3qYTCec/9g+Uahdm6e2f87hK17cJs6oQl4rVZ2xvop2sFVBJlzr/fvuwPC4jwlbNCIvV9RW7bkns3lZ+eUE6gCv2kbns4Nb1alu2n7x9czL7mFdJoncVOdv/9jdI3B20YBoRc2Sp5aZoLyShEsfPASU3rllI2RSU+IYzm/fe05JT5bynyp0ssuoWtNepfjZ4QtFbHJopKb3F+OshM+tqoQi8/s75bUNGUm9m0GEmvLoOUSzBtowj8ftrmdKKkTF+ovN2pvLenf1osXeOVS21Ena19i4s8FfZj6b59YaHvkZaoe6418DS38bJkQUxQhbZnJbfFaOtdVNviwrJ2B0ZIhLBXlDwwXj9MzLHeqOihYAk9qxgExzFqNzNGUPodPJumpxSDIqmJl6+CfaBSww0/BWPSEUkm4mLl2iaTMdm64Y7hpEv6OnpfT4qwh/aT7NGOJOvHBCTf9BVbX0hSY9G8J+VaC+ugs9n/voldheeqLilgrXnKveoVAM41dVapTTqJe3nfVBR1lGGfFDWm/Wr4NmDh33U2aw9ArM1M2Uj/b3L+ZH3FJpO4mQdvY5vHdwZrqJakq73fqL70e5ZTzd0UywBX23rXG3O6Hz9K6CezTth4YigRs58ytvCbaizePHJBcz6gROnoSaICETfw2XQcIxYip+9JZm01O6Zog8kKZgAOdmoFjHCNmCwnqfdOuI/sATeg2tku1TtXQnlidDfjLBvub7Ef1lkjZyUsHT1vspHaMebpg8ghQbn87ihV4coUNTb4b/Q6UZRK8HbTAqQTGrHX3XShCXxPMdk/gE9GiZzwQ8kb7yyKkzK+bqM3/ou1qDZS1hdEFzKkA5Rmgm6vNS/LN3ZduhPbXp8cmGWgsfg/+GVihXVhhVIz3kh0wK/KuELJeV6+a8SM+R5JuklP7bKiTOTHNvmHDpAafQUjbs1fx7/dRyX19rtFj97urb21rLrQvgj5m7brn2JtF+BphPqOAozlXnfGwHVT+7SFy45V8No+abGVq38e4Hln9wBCnJ0a3WBCOZmdxxmV496Ym1F9ffVrWTXtNSL1LGc/37hmPZKoXVekxytMYYUfZaZU5fc1QljRITFzsMm/MKZkTtk0KbEJxCMZwNmw1Y549bgz7aKthm55BMXWgPnFmTKqnWYTG2upQGUqoloz768zkplZnP/0KS112+M6rIvWZRmE38bc6Z27hr87h7pYM+3udWodvmymtDVDwmTXuUKVFK741CuPigVGDAs1RRLdOqvyse3WoRpVFU8Ywlbxo8x4Ilm+MMUh+T4BlOQkPCVpN1df6aJgh+8XuHXAZ5BacTHAZgC15u6dmobxdCWB29+NqHh4VdFP4JTlFB07d1DUzfpvWt5tNf1hPVtULLJeiXMxYlfyf1PiSqEf/BcF8lRGEyPgsblSz7GaUefh7Ny11mixc3p9Cp7yfKloaNda46MQw6USy+6a4yw5Y7cYnPxrW6qxaicf/xhtn2q8/0Za8InjjJmW2tBAVIVC8lljD7jA0EFAbRnI1K4/UgVsLFwylxy1JhfX83R3TwI7VNlnvZZx/e2n0bgwW/UvCSL/BzsSVssOveb8j6IYC8WV1fpWgK9gMOmIZpHCjJTh+nBZvkth3b2Z6ViYoO2z0QcMz8OP94WfRZWLQCe9/9jzr/dAKE/tdWxf6WCtCXVKS9CXuMaQV9uw6jAHPfOWbHyEqU7/QzMyRBx1k8FjHg7oxOqWjXYZ2zaxLchu6Ex6lmXXaJLptNiXVVVwirdpiwR9/VQemP6b+HI8iIM/MRkpiTVOxHLFOaz7ymdvyBHqXcys8QtYh00Wc9GURxQqu0ZJSlAI6G8fZygobcoUdV5/qjbsbwhk85n0JH5Wq0tDjgSu8orU+an9dX2pKAvvySFSOce5seU/pDZpo8IfuYuuoP3lXf/J/jroEH7GDUylqQ520l7wfS9pjL9N/hVlnIm4wPz4adzC0MoRXyrUOMTOcX1ht3AslBjNYmPVQzcNKQ/YUOQgxeqkrzzGDyKlrLuTPt1Y78PA0jhEY8HeUn1YlC7IuIWcmNV7TW0xudvTfgn4tbSKDyTW9IHsNa+3akXV7MjVLTX6ITrKNX84gUbtaXJtoVzH1ltIrgDxaNoxL/L0GmI8OScZBxkrGSMZGByOjIGHYhd8eLNOMjPrXeFP9EUrmX+XYspwJVQT09IZEHcuUhNYXya8ffYhSvMSurkHyNUnCTOWJ6ihPqI5+mn+W998Ex2BVOa3U4+63jGuluwd/47y57xi5fNkaaREo8iL8Ym0PeZ08JIKQ1c8F8sykNUw0GUtxo3nuETk5BCuqaf0hazO+2yJ2z1Ylpl1bv0nxFB/CH5NKrXwavSRZ/vcGK/69ocPwRVzWnnkL551TXY1RrediqBUG8simWrSfCt0SN9SsL1Ro1b1T86+OIOcYX+Kp8rrjR8HWc4pwyJLLaPyKHj5I47WrG0sTZAHyUJISwb8Uzq0kwXWZzALanPA4wvu5zDs8oCLnqvdrV47lR7FLeFccBuMEidj+c/KjbfwRllMhcaXj/BcLcwmHmM/pI03cTc+JDlx4NUtU4o/Ec8yku3/Bg/1NEo/vIPzi+wWU5kB3N5GvYUWmASg+TqtAQCLi9PVbvf8c+ViID8fFtBI87pDbo5tH4vgyv0zigZCYjxRcpcQp66//D9ChKx6KhrqE/T0wc1ciezvIP1xiSvXmJh77xO3xPuCk0NuqrSULpvwWNmmeNyVYZ9UmjDynLmxT9iUCnDRQV87L+7z9vCwVuthUyf8YyazhI0F+3/roK2b2gWNb+g6NgNPg0xcFYZUlj5SP8LlHIE5bxeHfz8c+flQuoEHeFjppEooaSoxGoFA3GY0EHd4tq7YUtSvpfSFELPjsC1RiM+yW7x1TZ83rJ/B1XEPL9sjHIsicoEYHzcHJ4RBmnW2Jc6PfLboj5cvLnO09lRIGjfkIm+7bLPZlPRgy4bp+INPilw0hWq2kMsfzRWg7MHxLD387KdeK8J5r/48dzqFpo9GP5KPYEbjbXNbcPPBmPUm1xDdULn7p5LNy2aC5q/WjSZxsGRl9rFBsG1d3FWjg/mFI0J269G34ADfyj6sSKVBdq2q5yA6IgsY70EZ+laFQqKA/X58Hq9JRRzGUnOkivtKyxwWDQ2EakCNwuxsA/RLboQf3v34+SNm4Z+G5y3AAZgN5UdhupG378JQqRpcD893SGoo3uknp0fAi03MKv39epcWxfcIc3jAE0kGvglyehLj0nl53odeA6pVnPMwscUs75gS1h/oASmOwLoGM7HVJjigcNmljmt+3Kvjgm4kghCyc4tMjchnVrdnoehLgd/THbO2ZP8a6kfCduDDHAdw62THTGFP9FZ7yDeKS6ftPV6emciD6uc3o6p+BobpSkqzM09wBm6lgcZ/nasYJk3eXuyEXqtvi7JF4G75ndrUtt2cn1TX4g6DsPXIddD1IzaryOVjt6KHqqfN4NLBo/gJjWEB4eeO63ZSwYuGG10s5E3MKavxsM89ClJXt9cUoBRXWefEmIjw2jypKHnqz9sc8Wc3/7XPoSbKE10vPw7y+kFssbLYE30WyqCRc67zN8DtSfMGqbWBuhDkZGDM7dbe8y2L7enGROk/n4M+KHn1gCq00ZtjPlff1hkkoJWywI3Rmb+zB87OBnssAa0wqjECFA/4p94JIleERjaOLz2z8c0kVFIf/gUgdBWnzfVOmrM2iGmtIqfY17UR32LrK8riRwavKZZvyx23Ah16R0hsBigx/wXYNcex/wJJHXbPhlEdwCknSrLV5QCxq/fGjzpENqpFxVYQ9seroiEYq5RFW+00/O8Phw0vth9Fg3tEKaIG848zLr3ZQtAUYRjR9SZX5eEHua9jBwV31c6pZaDU0Io2pGcYYhD/4jxrQ2GEIvrfDP3P4IZi7caRANnnod07ebEzLQ2yZ6kacnAHt1V1kBa59WIZU6+WHWLvwqJqXB2FQSg/KI072lkBGxiVCqJRXAMhrsr3JbvwpEZ2g9SvqcPHyLNf/tqgMRhmerzoKUlv21CjUP/hsdZjU6IAPcRlcXrFcnINGvBJLrPVjcoZi70VsHtCyqSkY3PswHPgCj1WRkaq7VJmp81Qr9qrOEfJI2eyqJ3c7lRukv611MtxC5kd7w+iXLfA4xxAtH9AoPCefh/CftTe6wEHfU805TS2oL9mbew3mzUrmNVbP4yZpNaMDf67Xjwa6QZ4I/63oFQSiH7keRphW6zhXsX7H5XkzWtShZZ+GzB9HyuI8kqFcc8RWuMmzbRuj3RgbzbG0Ya2J4Q8/Dh5mgRBtw9ZfR247dRgLVuXH5RW0RJ5rOQl8Wf1ny1s/SG8JZkVhmXUVgBkkFWdfMRJDbMlka6NL/05cjPqaZWRDCptGvvzOolVJda6HfzINzJx1XjzXzBcGyhdbiJwx8J0K7i9ZgztUORv2QhqSHwonHmQq5+6xhI2plAV3xsnZ0ha3PDuz65vlVobpghcI45190x7x8p053S/yWVy136MQ2AdqClNKr2SJcI+32EoWMuCl7rpDwZl0/m5dh1D08zMf5OMbKzxoGHEYnuA+DezKJO66keGJr8vHsPKmnXO6DSsze4JpON5WtuyTtVZdLVZvRpFF/59jLv0hMbTpdIVvid5bM/s8plSspDfBPY17UF/7uiHTx2MreVJNUElSwnOs/MTEBxwAqHqy6lIyZboe05jBPR3LvS9RRSVPU91hQK399iEmFztqH7jLRR5n7W9LI4bI4Yqmj5B0v8408WYt5BqzMmCZLdcN1nwMMziIhyv5tARklZrnfLpRMKGHzSE44qP/kmcC4l9ogRSTQB670PhdYK/pYv105wM77uIQhgj9LK64VLNNS+7WO008/I9Ngys5HMKlBIEabh5pQbknpZWN3R6iG6QHqVndwUwNVKzlZ7xwWbMp6LSt+k71U6rxsll/tYrS0R0FOOMdUG06UyJIJ3T9NB3LLU5z+vKrYsz+b+YXytW7ME3xCBfLVDldTZ4q2OWdYOsqffuwYwbiiZwFSMQQimd0fp2fKZJqymRUUZYY+aRYmhIvK2ZslZQgYbfP2STS2lmeWp7GY64r/w2UzGvY6JLXyOQm7xw3yls6e5a5Fm6gs2pieOT4aYomh4WbT1Foucs7UPzj6adG0KAea17dUpqgFVXD49Ao4BRt6Oxy6d6L8SutDXWvpnUsw0UHs0pq0L+B9oNrR3IKKoQo0qEgP5pL7ew460YriPurq0VRuyWtvXPh4UanBa0yXez2sapCrTcCUw0FZvC8+pzcbXduF/MagqZj1sJ9pLAtn2HShQlGDKYKzhkjRtCfDwA4tybVlTG7S7zwxNPbhPE7zTKhEsL/DR2p3M6QqOLfZIGNHcMpPo0ThEMWhi63CdTP+S2GmU3UBjeua6OSvLogDhnJSMdfHKImpEY6sgz/lQt2wl1pehg+X3Y3ks5Zdv3vCRetpCtA5J/8OXI7nb7+9FAgzfK4O5f4xORl9KEcSo43pwqi+0vxd5ViOpPF/VxEs+8mIu3XYAJfzLO9s97H9g3KoGsfCZ0GW6cGVGYJ64aGd2zoCpyY3xlqlc6I+UMXZ2iX0aOUnx/wr/hh7FkEBbADpVyUweW7s8kn5/MimD08gnQH7OTM+Re9N3D7gqwiwbak93L15STCG75vjE5lnL5M8mF65NgEJNjmp/vjyrPAEJIoLM2XFA3iTFtintrCAfaed8KB3uCgMxU5o1OJgcl7/ajxLp8l84IjKwknnDpihnUTnQ6I/dDdxEqx0THUPd51vDWoNelXkuDhLzAuo87XjwsIEZrtr+2KGwmL916Kh0VZtw0avNjAav0RGYh66++TUWAZk/rjU3NWA/ZAnBHlOAj9ZCVfwMZHRQqhe32gkvyIHkD0ikz0Hqe4KQmuGXE3uJ5PpFcMZsen4IG+id8XY5GO9AwuKhSd67NANakF/oRZHwFgjFv1GmTEVcPQAwjqDRTnnBD59njl8xPeWNpL6ZjXLeyX1rdWu73fYPMSIvbiBcTNrILthedbduw8/MgpxWizNrm506yY++4IpbvKo5wm6tsht1tB0rWXzlpUUwfJ9TycEp6c8Vn7fjMF8KhqCJtI9Y3Fi6LTCWekbT2LHHCnGgUA7pE7heRwLA4DDTm36fddKXaqGk3LKEb0GYUkHEO/OW54kv7JoIG6pywgnAOU5SPMPfmBz4eyAXyC97edcF9+Nf4VbrTx43ohnGqL+OfTsabHQJEcLOb/28a3XbrzRtsIqBpbMbFw7ThUQB+aGnhW6lPDGfqG3bLzjMEMN0Ujg1hFR89F9o9JBdE4f30vE3hvpSU2qrsBYrc54rfSlnvfXs7chhYGZnd+niV0XlPxNdJIPayVtE8unOLkPBRPrP62QV5d61eZOA3Dkoqw6JWVn6RaeUUYGbYLTM89G4461wr7N9LwHrp5TWTvLrgxZ2BvwQ0/Htc9Xn4OMjcKYM5+mGCmZKYuTYA70WZyieZWT6fiV0aLX2C3GeykQo5lrmSA+rIwN/6V8AOXvX0L2dJ0Ek/CXL9YjKvuv7AobXhg7tSLyXW/y+l+7b99fo4M73E5z525TSw2MMaieuEv/iJEvi/qOYCGm/EtO1qHm4ghXCRWWqIy921vcEGBXlaLrr3WgcFEifadiPJ82jz54LCuOX07qrKzI1W/PeFfJS7i09M4YDE/bht56fcjPH/Or/o4qBTfTsXIdf4bErpP0k7tIrKLICQOgFs3sKqjYEULux5wX8XveqI3vyXd0DIMHvwiHfIWu8S8CgdTPpa/rGrNq/GqPdjTKUbDOVbxmHajvhueaK/UyiS4+CKOxFBYZCzEWF8q9Av7bPjnNOiI57iqyTsxOa6bpl3wHACJaxDOfEfcUmyfA5e576rqSsSY6/QOXa2UDNqMLMUzfErr9NDIfi77JYW3F9XJ7WFKPbkCRH/Ncz75MXEa+bN+HZsdxet5cLlQQKPilj1CS0wA2armpORKVlnRecaKnd2CS3KdY54aRWWegsC4DkENPp58+hePutlELG6dfz8X70zRG5Ik1Tcq6wzTtyEHjTi3T/c1D/ENAZyks8/pjjfSvFSOPXPEo89H9BpDaqLWb/e9mufI+u/+k3rCFFnhxc1u0KJqYqNYqm3Ldmk2cbn+a67JtQY31lCSjuysxV6ZTIjSHPozS99fiGrMW2aQ0tAKXj+seNbmx2n7Jfy+o+S+W0yeXm228Ci4Fnm3PI70ZWxM+1NMrNoTfGu8BQvCYNOotbJ+FoK89u/QsfpPwHsIBH+oS0tlxqOdgeG5OwWZ+YDSt3Ra/Y/GVOFNPCtsIsyrad7cYEqNO8YuyXnEPl0kO8R75kZ/NWLK6byhHBfuhoUUcY+n7khBNwcXG38WDtd7EcNpNSWsjXLF/xfPoPdIwRkFSsCqen+nPZC1GNxiOXWcrn/tvHhqmGqqyspj6vwrdJpkHUa/nnjdZijE9GIPiPkHuvtHX9tB/7qDjP25GsElO/3uYV1F//xEaJkFl+MJ0CIfye1gDRrXkR8weMW7tZHfceb9kP048ukGhyM5B7dXGx85/afE0HqdQq5JRh9EJI508yvH8NMZU6z09hBjMxRC0y1pqummRhtNKqjJZvxKK3Z4F7Y86iGz9VjvZnQvMHyxK47BYhljppJjDUuBlzx7a9x1MklKSuuKRIUovCtFuvp1dqRSnxNFy63tmukLGIjn6AUOJRuWD5UIDzlwgxoJBWsDn+0KLQhhtj9q4V8ZMm0m8FX0vTjLcaxR5EClQybZ/AqWbI8gpVbQ4o9zPra8catR2dN9659KjbVk7wnC4wkVOFofSZbBqdVKU61LMi5sV8Mk7rFWyoLmHxQtb31ad9rZilO40mc6wKNUs86yspVPW3j1+iR1XGMoZVitCP/eyyjaeDqPQErbEMhWKPWHt8G2vELz3kRMHIbVBRWTmGF+nLolW91Ew1M+N9G4TeUVPztv8Cfz5IPj9YHqdWjZbBVqaJy24yPdbUYDfF0yuzfuTTlE1PKxrYYpb+r+snz8qp2RWOygrKwdZea8HOrGYMxzQnqDr+Dn1fjUoYQjjzAVS2rXvSzO/WklHjT5/5FiOsIr4eqkFz8MZBatypjJDdbUCOzi2UtMp/nxjl8HQE2vF5rIGGZ3JmoFBYktKP60zeHQDEx9Ry2YKsOuRfg4+sTwEE+YWld1PIjp6SBW7D0Q7HL9Omcz6PcXH2MqHWY5p7cy7Y2Kf9PR2++Ud6B02q1l06S6fMbjsWwdn83LaalOt4lmQh8/PSMDOz5/z4Io9m3/f6d/84Q1KatfK7XDVWpyU0XGzb0Ear6YMTjxYyhi6+e9Uwf5cXv1gkRQg9IFOoO2eVXn3z3NzAVMOA89lBEu7n8JmeCr3gfbXWqcudsTh+knGBiJNpeZk+vPXWxw+GAnh/rBFxkzJ7yC38GpJobcItn+RggftPo4gMwgEH+szqlGOIVBSisNCTV/psmX9GyQNDC/DMmgO+HoR+45+5vDl0fjqEye30RODQhw3REep5rdrHM1ntSVVp8wDGtDPBdv9A4pOD38tHPN6kOswgcYznRh057G/en7eiEpilVkFzjhALI0z48SJKZh2QTXw3T4hd7VM5PsyisE8PRegX7aCKNeVNpwoks+7ZxekTros5GvceJWuHp5Fx+VGs+t17lXWezWg8/lurfV0hhbOnf/9z3onSMwdw7/HH6zMKBiEG4o4VWIff1Z7Idy/HNKC9dSwwrxdwLUqVs1DZWQ1PTcUTzlaK7MbWw8Xlt65xbojdamFV6bhYlTqqJvOZ7x3vopk9ooFM2tzXxw2/G0fwGmMjl2ZXj1orbKZvfIO+FLKgOOtn7o/1j6MFde4iyJlpqEtOF+JVx21dTHb1NPA5jiLYD8182OeALvPUC+5wz7bFNqLNL2y3TTRyqnyT/omOSj7Inesb2+iNdJoWP974n3iRmrZ7lCu26Ic/9RJvPFEcHLKrLeYrH31W976P3nZY3Vd2yLu0oWsJL6RJwc8MlWP+dA8GoT2lwaolN0a+wEeLbVsz/1ftYyOv+6efULV1MECb1sNfjlEv8rRvg9Vz8U5stvOFVgnwoy1Jslpi7yTQlDSvcXmw/A1uFm60A2Z+41AjdrSeF/dm68HrI79YPoV1CiTqnOuJ2FQgkHaL8L75HLMHp2/fuaKKU8m/It+fJ7JuV1m9p2tutSH5scVhVJmzKRHXw0xaa3joLyVntNG6HOhigk0qyRZp+uf6SJqrr2gvIdpSv5sp9sZrZuewz88MAqZAorvvMoirg+gzTLJoo4JuHoQxTCvBMEM4mjDsKuWWniYIdQkJbizFZ0SPsnIxlshI5ti8dH0VeKUziIfdY97xbNND4h+VgS0UDhB0SmIx9z9S+lP84cNL1zCppsQjWkG4A9MzcIukzZp7m3rHWvjfoTs36Y27Q/0ox/H1jpgGFVQyxKzO1+mHa9zS8IPWHaMvNYfCgYwvm3ga05OMJjrv6tazikzMExecH8Io2aanIJk9pr8oWBMWzrwDf5rVn4qO0Z60MRqaSw6b4c51nsif1REor+tzREdc2P4P5OvMR8uDwaKArerK701ZGFl2iaGSYu/tn+xPD8HungjnruIsUI9FutgZTTSkcTsccVppu6ZP3MLtLlp/L4Vr1xbMONcAmNCvClBhC+bRPvziWMn82HnuoPF5CO1c8XqHf0L/2euwn1eUwIxoh0wvUbqFAXRdH+2jOBlzi5Eebtt+XrrYIpkeuKDOJ6D3S6bDerTLqd8nXF4a1ap/KWLJW+pJqd6k70TbkXsU9p0lUm4Fg2jmXyeE7Xvz2FOEjV0kFU36vmpZvpYboVfyFnfhIj20gsvFHGu95yjyPziFMSoa+3s9233OS2J8xHs3Po6neJWN2aa5O40l3Zo8dyapOAl/mzrQPRlT47uil6dxXvNxXeqcU1Yc2e2eIlTg77p7VUV6BivN9cCa/xL8dlasc/ueqZZcTRt1d9/2nQMO1nwNbi+FHokdbohq7BY2sD5NWtE/aX+5kMJd4N5d6U+Ia7uBy+oxdCffw9Vn8qtK5RnaGLfXpWUH++IK2mxZ0riq7yC1bhX+8u5pklrlos37Tbq7bKu/nKViTRqpx9GwOsN+VuJn7a+2by/2n68Y5wsQlQv8hHiXQkoqazOTyg7vD5CnGw9Dqp93n1j6q2TYQt79AvNwRhcsw3sa8WU+yNtGemqtNmwqvWOQDNDLqcilyA4j666RxhWtdu3o2xpUcHlsYYmUaZzQL4j7NeH9vuBPXu04jYXZYaIo0OwO0aDIYDH4ZbeHz0jhXzVL3qLa+wW795ntmoZnIn/9N28PSCwYdxEkf9nPi2j+1HlaqHN0UpbakdWttADa8PJ06l5atmjRBhGo///aRl6DJaM4t+y4P8PkIzi769dmO3QA52osOIBH0RxHFLi0Ht19o6KPaji6NpDsK6RnyOmocQMEKlGGSoMX0Lh1Yv/Irt/DjW0t5Qiibi3voi7hYeoW6E/DcxpCy+AymL0oULvKzGRrJ8AbxaSnnFUhVHFD2DwtYeNQx3QqEZNSt5D5aW4ztrO2WVqKLJPoD3FyKCqL9EklXpf8dyxZPujpOB39ti2YGi7BwXj0HVTzqAQe62WoAweI9+jDHBSwzJfX2m7Lqda1h1maFVX3hiSSQp4dqxNiSucsSc+tEkkxTxXFzPpnG7RiKGJewmdSHJSYAMl8jawyTpY6lddVJHAiCYmUmSCiawTYt5EInUCHvYYrzuPex1JA2S0iuVUKv+Ob8p48SwjrynUN20FtPD7fWq1apcTE1O5EXibWbWo2oGvOEZTM1zCVG/IkD69xiqnydg763b9/bR3+WPIGiZ/5Wr1GMVPzHRRgHgwFWO7LIDwFLy7bkveBvlUR0dVnBBYETZWbi8wM8yoCbDAeRvpODk9sF5NS0ELLWWc/ei6A5MVE+RO6ZBBZsV++WSOxnuAt0uqBJxU8FNUYI0wOIPwhKOj8U6rzef/dDlzLh5H6KEqbY/ZzxZlWKQkboGOCW800ZJ/UsEt3W6uHcsfGI3u2tE5poJhCoGekksFO216WL1wxOl/dDeQoAbxnaYwnfTtUv0Phx96NNRpNTpJpZBsfw4PnMIZf3ysDNXoyydDSUGCJHYS8mUP+yRpeK4GUzt0/493XOHzRbRzka/6SyRTS1ZCTa63Z/DmzktDOJdGzoQ9tGAbSkLkwhyualCGF9ga4h0v+YpliRNcMnhVyDquPMTdPNe8QVXoDcDuhbxStGPlD5/L6595mdI14s3R8tszRBrS65cgWKJJu1R1w/6Q+urx3Let1/Z31LtaHv46mauq/LnccDe++4qE/Rj7n9GEsf/K94S9foEwXMEwM55k1oD+u9jyrGz7zlPJ7ArW+ANra61Cq/kRfBpSG8cSYtT80lIgTV/ooZxP6S717Ij7b1OpQp6A5W8G5c1XfvUCsOp4TWKT0bOjmsqF781x5XVdd+4La8/ViST0PTwr9fmU5KJh2HAfypDQKQE+4km9txcQ91bWCgccye1p7yvhPxS4Wu2tfZYTYgqXn1bY7nI3y2YulY+RIJUnZiVZD91jGb5/di7/3gwln3NSb1RxT4//TnCj/mjMR3vEqYOCGQQRUfFfMxFf+KrizZAQLFUG/WK1dtdTm5ExZimB1JzltLMLD/vXEfg2KsGT52Ymj+NPPvfAyX/C+yuhelw5y1tLDJQK9I8WgQ5Q8Pnsts2prvF5fPfd7gcT2xejo+olj46i9f7wJwlexQCduZ9ebtp5sv4BCxEWtCSw4W2cfsgD8yGPtCOQqvnXMQ3+H25p1lkt0ODcV4uiY9NTJhz9zDflcXgK4i+51bz7v75wV/RjRHDTB7p3t9zkgKr351fGiC/LK8Rmce8k2GvtWtikwM/j5O23136cTiXUosWwJDWYSLIzH1b8wuqFjeXP6qlhxyFH9XloDDZpK7o8JruUriU8bQxvFLC6eAaKO56avUJ9Bw5KJTFV3C4QursQxxnz0wEfGmmU5BL4YKQVJlBNtJ8wTTOfYOs6HEWi7eP4ynTTS4wf6Xs4tNj4H+l/9Xb6w6ZatMc+kBj6GZZWdfI60VB2S9A7bxK1Qw39MSoo4Xt0l/V6Yr1mPC3u/ENd7T8ZsjTH8oZwJY3sohbtSlT9HeUA6haTaHvivkBVk49/hTfYXnbzfu0LCkq+Q17YPZ7SMg8fx6Ey+CvPtO3nP3bmZBtgfjQtbd6H0Vj7WkVHLYnz/AN4cTxa8l1D4lglzKI5Lyt76Jb7xBl4absKLhowIlphT2eQ6wqJm3F70QVNJF2Lb8snwt6WbhbwKQgFLjjHEoWk+1EoaHs8HZa4tO2r+G9waYgFvVY5ZXXiU7ajAELegPDk/51i896eNqj7+Sj3Y4kEOxrJzLY2G4QBvYgmSN+3l0zPgRdiG+sQB0RxqzJy0KGYSoHixa2/Kuq/DSKYnussxAKr+YZCvwKWbz/ePF2Nm2F3ZKd8AH4amSBOc5yTWjIgL/70TjerPSQ17rFqJBKIBYRS2CYI+YJsjZgR9U5T1m/lTWj0jZ7qR7LOO+qVqqBv0L2hU73BQeXutRJL81QhgyYqw7dpDfQ08pegvDiGC0CfYg0sZgeJs6Vg0bSl7+DsaJ6yeLD7fN7E7e8osLvHw3gQDwgGy7Hsihv65Fw/PAQSVAn6RzBSlB8blVVJUdtsECw45PLjbIscBnCrAbpzHlKQCZGoCaPzssxtahIlJO5aIGNXnPqeiq+4ODMWvJ8kSYGKTNElKCz5PEHGyZeecbDFkcUi/dfKbjBop1pMqcSfyzWF20MG7UFGfiPFBpYFAH0FGq+EDQj0BoAKQAMgo/VDkh3f1H0O0ZKjwT0lYoaZOHNpyClq25cLRC5rYlWo92LwgUHfuH2RsryQkKl2oVX3ZSpeOhlfx//oKnUqrV9fYDnOOmVBSuWO9X0+cfeZ8hjgVSYqeHIxsEIYSlvG+epnGdCp1wV1/QmrxLwStJ3A119NBHMBQcjQECClQ4FNNP2ykS1FuA4BxA8ziLxxo4Y95DjYTJRG3H4y3NmAw+fOjRSpVB1wzmKv7Uh/IAr4kYOCkvNGtZ2U3wj8lOYuJdfrshv3Gw2EjxnbOQvAopI5KLsfY718t7kZq5CQpRvkQ8Lk1Yz0gBag3+HyV7Tuwl7MwSjoMDMmIE+RPL12HwBi/DKhts9GTkdw1jdxQuoxOxAhjYJqRavVRWb6N+CNxaCrWBDyRhNqBK1e70eJNE8BOOc7PdmXgtsbOQXE+fXP42sDFxnKqfTFKdjp0FB3UWafagfJjYXTb8YL0JdUb4AA/d18I6OaAQkSbY1HsTJ3OU2Kgu6/2gSQNZICiJS8gbpFiQJB55PgyATVu4fgGHVG6iH+htKZBjLGGnxOQG51VC0ynlV4gAFmnibHTDfiyhGl6rePdeAq193QYo2idHr6+urzWpgrBFyIpUgBlnA/ftPjuKVo6KgOWQBT+KqUpVCyV6vokSE/Nxld2I4TxSkvyS+f9idQqtCZxuv6ShTIUZVwFjtIB4AjBbCDuau9DYEsZCCB50vIMZj7F+YL+2iypyFZSaUpnqqqZBJk0NUkKeBEapuxwd3TbOd8Ku6/gICID5KcdOIBi+yK1EGdGfYVWA9+cnVpoD9bsMpNstdv9CHpoKaxktcjnIEszMvxWAITCioFHqONtIU82KUixO98VSCYfXhvORIAGoSYurX+STAJFFHnRbgCQE3URlKONgv6xI8tHR/FfpkA9aeYtahYyFzAGAfQJBfHmGqMYd1swG9Uer54f4xEhrr/RP03R0WaIfSxFFAxtMqFRQsMBnKRA2QojwmYXKkWJDX5hihlf80YO+o7YMDzP9ukFNd+rhZ6cvlWr5djUgz2LV9/GYPVYKI0oBi1vWAmLSiIKZD2XRSrL8i66fs4Yw5mEaTKnZJBbLaOeVorALQQgaHZdvB0I6gglCSYdrSbFybR8bX5AqlOr1/JQA1lmXIscWNR+mnkOtxGD5YBy7SH/eZHS/6zSLAKrV6MZQQvSv0DfT/52/L37d9Xf5/99cmJyUbguJKA9n8iZCnKgYNDd50weNFf70IJn82qBxmPom2Yur/on+wdBvvVvbMHNkuDeuytBq0Fw5/pWwhSt7Zuczpfa23wp3Pcx1fOPgsK4eI/2ZkuOT9kAVIAyJQ+lY3hwMeEwL0P6ya0pX8tU9cmjiFd0vHOKpszm/VOdwG+Z/Uut/Fj7BbkCPZ7nE9ugZmii+v9jRL4S/P2g4Snn9lAOViYuMIIidFhqHKeNt5/b4DIbJ0paPfG/vSlcMvv+TaPmIDMKKCKPAVm8taGNVhTSv/vly4rlq8Kf/clEhLAMXTk4kceNGrG1N7KEH+TH50sHQ8x6nkk/oFCYweDxbhq05ZBj8579nBzZflMoAGMMbPB/FSRAHNTT8wcRQAeaHGnmOP+dQaWNqanxR+MSpgycUtbsQ8j7vQPR96I7wZgVOY2np/BOdQgiBFPD1l19wF51Dcgwd3+c2npwxpaVaEPzsvRjU5V3s7wkMyhB4493/kq68JEdwZXF51g4LU4OX/iEIyYg4p8wRPHrxEIRApIiDbJKozWj/z5YODk5SauE14r6wN6uQeuhFQ5gfl/gbWcOPOGTCdLvyJ+OMTxRedGjOYuo/cC3LjYzEplih7fdLMnPHpBodgg8puJBkklH3utgPFPHRuR1ebxc8u5zMKMaIHNr4xNBCG12s2tDc+nAv8MLHNmsLfQZlbunje4ZGqGRRk0TAVrEqD30EK5oSaIS0cezXSoTA4/o3C2ayh7bOrId6xYleIgYgjN+Nt0Z3JY/iRR6r/mh2HvLU8+OK4w43mUWqAZz894Dzz/lj96b5y7c7HTkpMawhji+M1YoVpXMpXzj+NsZkH//BrTvb6hKu2A0vZXlQ8zJ1Ds08E2rLEPHwKHmXrkR95bQblUcjC42C5m1bmiCdP+lASBuAqLnPTttnZmc/0TjsrqzItmecNsDf6C3Vdug7orp97WKkHNHPktTPepmvuyBfshZVRKmhmtes/f4wTmmOQL6LRuYz69i0wCtjSa4bfbrbYTBIw5rY37KSW84L86PEway7cEeXdnHdofKYdivet5Zwaauc0uTPrZt+gY2gu1Fu8zT1TxHaV85Rv8ofPXqNZmiaAwQwQHmt6183cT+zKm5TxYcKQdDuSPPWOs1zO2BwoMGuKtXyTuZNBVPBF7oknL3KCTWl566S0mxdxw100w4z+/myfx5t78v2z877Nl9s+3o4DWWTQgFZU1nz/GFKTuERtaf6aK8gT2sK1kB9kggIVoPRc+b5BPgsOo+/uTX2fSr6Mi6xwvY5l+6o7mnsDJPd/K+QEoK2hIz/uqFVej4rgv43CrD39n6kj/iwFmNPNNrpeniRy70F0pDZeQ8qsJjyUShjuut1FBVtXw1LHJYB4OmZScD+9wumI+otqftQy8KoaFxAe5fdS3mgXxRBM47146SQguyFziMa2tGb/YtqaN/d3t2kkN/A83mWiQilGDsuclS4Xw1WbmzzQUlaa1CpQ9WrN0lxPYPTTsZu4uF1DzU4UNUrxRTU52WfQMEeJJ0XBp+AOsHaz4Rt+fmROfMHZER5bKR6SLOPzVBwqtI4bLGK+n/SfRWutMg+3ktOPWeErikUxsW5+Sknijr+yhpqHm2OZYc+Z3LTB9NXlQ3mzeZIASrQP9K6D8zD8ykV99lfEj1sSopiMgbPFWQrDvu3Qa422hr22jeUeGkordt8o3K2XZXFsL6SINRwBbiapGl7rcqjTKu9RA7sUEx5P1yZ3qivnQXzvj2j9ppJ7JJpinNDQU5QaapDqHYoCs55ZuiBhl7LgFLLfmQQE0E3jqaGTPsvxuqfzzISWo0/i4qvaoUtOeM6OibfKM6UNS4sr+xOhREHO5TtcjdbvUIcUkfpkWWq/84N6qBwuP38BZLaQlC1zUJQschK739JrV903KZ/KWphIEkuzZT1v3AlHLHnoto9+NTJ0FzPvC8n1JJlXvImkTpvb86cIau3GW2bcT1XfhaqXOcvW3iEOCqd6cEqNO/eazqTXxcQcJhy6C+mtqhg772zofIYW4egHrCgvIzhDny91w3tr3jxcMLjdn++lcmPFIWTUhZYy6DH1+O1SXe9dnelTeHSNxeMvsIdV7u4L9cgemWunlJHPHfoHkT+BO9F8o6UN/XvnH0wVvHvq6n9DZW32CbRpn8G7vu/lyer6GWxmbuZtcCWeIqOTuautXbTQ8/9UExh6aN2m+fS+jRetK46xF80fvvKNGJnkyu+2WMM7SUDvWeEpnaVBHIXJDF6dYLkbXbg37qPzq+1XiigacJQ59oW3k9If7xCirZmhc7+5Pfy/5SsVlAGOCZnn0vRA1oVqpvOfuT+41PEgSNJrGGpSC+bygcr3fYe36YwU/HhnMzwaC28y8dh2FkuwAQo/l6mn5zpXUlJWmMjt+aAXeFeA/yjypJFaWziBB949oFngSmFNI+KKFzYoH3T1qVh1tYoFjsD03kxLTPkOMBryuUPNFeb2Yda5vFtRo+vw+OD8iRkvEmEhy+dWIzbA5vv3hPJPFqLqdKcGOxkRhzE6LftcE/dX7r/SXerblSU3PZ7rj2xjIPpThUv8pNxlvgi1q6E53PHzD9Jlb19HIrobNQ9/caB0nZC57Vqhx2qiClf46TtAi3gzO5XGy/dayNae6e4543V16WPc82MhkweDOt8y/1TFYb4jBxro0v1A0UyElRCXf52+uJVik5Z2mWnVtjGBOoh5OttAbmJdsCNoaFpdrm0MaF5DsCNMmsD0vraBaRXNMb9qKtvp2KvCWjbuFIbMC+W1bW0byKIPIe1BSVintwy8Q27sAgDN/a6mDI3TZLY5GDYSjcb4OHUxIIaL0Eiiq44oZKDiqXXwzxlQ7helAstAbKp2KTsU8utFDmdaDn2PiwGrIPYQtGg6WgvVgobUGsFcPDo0hQk+BLVIUeNYMJ/mpYRn34JcLGAN9MAFkKwKckSFJ6TdmFd2R6z/P/e0PkgBI6I/gUthAMjyYbyqGN25Q4L/bvh6YkMRPaQ3qchDiH+PpsGdSLfiv4cXcUBJQ5WkgtUqMSqm4SoJKr0lq8ZKrHCWo7gffkcYNd70aKX/28WERyZe01Qlx8pCnXwwpcoAPY1g1d9FnayHZIEf2GJCsKhNantRcXVErllmnQNVPqVpVxA1lQJu1flOYxAPsMpY8udaoYspruP85nbbGpbL8qezbfjM/7WeXAPQLWNM+tbslQrmFHlaVVCsImVWokKmloZf8hQPwvptqA5jcNZGaOlf3Yx7YzFKm6nFOiDUL7IwB9KMFHac87YEQ6NMNtojXV9VG7P2efnsW7XMIOTm3LpADJB4KSXAtGPLdI9vbTFGMpoLgeoYZ2e0GUVBRcB30Brv+U5WKpShAtCpE4q3pIovI/SerFXeZ0TeeDo+AMxPsiHcJtqqnzBof0RT+DhZ1yTRIXHew/10pAMfwQMKxEY0N3WypNFUFFichZfW9mK7EfNlCOM3ZAVCcYSuUghszeF0qeB7zmxfgd4tu2O4ee7xvD4hol8P0FAAhIyNXT1Cm4nYJmUvGi0OmRO2hYtDGnW3zl75QurGpYVUHmkC1+Hdcs4Rt5Js3BV5VPLljWOAASPANy3aevoynv1jt50/omsVLJqgEuFls+vX+2v/92gwMmL+Hf7f/rv398HdtF3I8Wy1o2fNF7uk4rP4NH1oKTjvMn/MYMuKwuY1SOPdyoN6SKLUPrC0rKf+dFkNFY0hXeymBkZblUTwo/QaS8znIUL76ABWgO/zpRW+X2MKB33I27ZziUfR3rHkX8IaOlzHdKyHEMUaVduz+fu5K4L2PFngCePajr8qEzEMdjuez6sNlCUlV64YE6akhN3wUHpxfB6PnAKLh8EH/J5l3ypor+XFEhTJH9cTx3CQ/CijB+b5jhzofsV20nZUXKo7/WiONq/KLgaaKh87XlpuYaJi49tninWMQVTUsyLz1VaanzKiUOPRwBJrKLcUg9UPwM//zcgZy4MtKMsfO55JOaC1HwuP0x4Yk4F0iCmZ/5D53WHhHaNtRlQScmSd+hYygVKJeZjenbTqKCYN5Ceq6BL/JQ67NSgyC0myWOgBKRJK7wehCjZwl0jmqcTiAloEUsW2ISkJ4fMo0DtU5yRmoR+SWKAeD0OjAmlsBxqDsWz/zNRgtdTDpwfuk237AjEGLTft6ZEvp1TOr518zDYERkkzFJAP5QZhEuGzFZV3Z2w44R2JSAGRQ44HTgJQkV/JLjsNgkqJr4DVB9nvuW56r4qcO65uj+pksabLrx7MZ1a9z+YB2AyW5psoHjm4cKXzpoDctqvC9DadXJ6U9H1pVADSf+st3Cdv2ohKIV9JMoFMNkMBdk+wtqFNNTg3Hw5PgsXscibPFw8kMtjHUcWuT1i9SowAPQu8A8TcPiHldBtgzu9RUjNloL6nJxaRZVoI4YNdoUoGJiQo2nq8Zyskv44FKuPhxpGwkrAq/oxFtG+SZg2bAgUxGjiYGeJpHsIfe79C61pExyfr/Du9rz1l1yVvCmFdNwg2o0F2I2ZJXzZKO2HgfnDm+8h1JkCXrCmXHzsuAglH2++UkaPSUturxV86Lxun0/AR2g0Hq3mYbKAk0KpVOquDl8H5hYmV8yvmMW7ns5FKC2kiiyaK6NkwOpZhmYsiTQgx44c/eO1JCvZmAZ/+PAUr4U8p7ICVDkNJ9kFDJWp+t3NgvfRMtkeoEWkIuz0bs7BCxVDUSNeWy7OguhXd2s9AHFh0knQlC62g+rIJoL+yd8DjevVhK06XmSQS49UUeSL8SNN9ULw1vNYQ77xkKhU6STk6E+BMbHjMWGPFtF0y/coR4gDoJf/6J3n4Z65oVo5oGf9KRg3welnmFZd7ShHm2MnW4yrrj7TpQI67zILRhevj4B9CxU2UyetIBjvVIc2lGWHwEti53Kco0RfYDKDnsmIVk0QISmcJT8ZS+PKLIMij7GH9qRnop057CUKG08/YuYRdvLwkhUQBhkMfTWkbOSaZTQq9SSQjAzeFICTDhb1PnotZwcmi2pIEksaA88Gp1aWazsOEdWOplJyFfPRWWSxwZeXffYE3QaUT15yGnRPuk52/gSrkbUFBrUOzQx4Na4nk233oTTAI893MqNBP7kXHCe46+X8NZJuMP74P0sNm9VHb1WGeJXFow9Vbav213B29PuUfHswVGDXV19S56l3nu7f2Y2R8CPjC4TY1gmtOsEIgNj1WHg7Ztq2s2Vcq59lJ3o8QwqhxBSxq+pJRJ/SXB7WMN3fT0GntViUz0ynuneZNNCfEzeqCz9sjrh1HzVZNp4823Jzzt5KAJqUWp+T+7wawskkB23/bE0+VuuJsxr/ngsFWZ6cNFYQ0NO+CMrFZbrVLg6NHzVr0PZdIaqv6MYMFX4A4DCeCaSBPAVC5TGfyEOPbvJ6I3p7M2O05ziEIqtkgKQTlAa4aT3Jzm/QYmbOveuTrLgouEXBugEN9olaS9s79AdJ8yF6b/HokJZxZlCNS0Zuzu+6O1lL/rSYrpVR9NlYg+Pa05L5Ob7O81MoCDE2y17yeYEGMa3VuCqD+3i7zb1sH0O7QOMBPRoOufJ1c5mkTbIbwSYATVPJOqj4VWPosE2GItHADD6We2UCpViDtKs7oIy0MBArujoVAOLYCnjqz61iBQaRiBoHNEkg0C7FBIGCTLXjkPC2TKABEwXLRlmrAK6Xi/oiqiwRvhEgQcAHla+ehI+GiWXoLAD9QGgnjtQQkw/LClOb1rHvvQJhYw0YSmJOIjU3vHgGjQHCuyhAIAABBgr2cGWM2jUW4py42RJb0ZTEa25WYQcgACDcnR4COkyHX2Q5vwlyuiEPTFLDkI+k94I7N3KlXJreWiQgv0k0F+Iwj9QBBMGkVFLzORQnDNzGNXu9VbDYKop34Cy4vnwmBz7AhQcgoBiBe29VhxJOJBKoEtCISYFQInmAJq0Wekhw/AHCFolDMCTC5M8USXfqjYWYC7BAAKQAE0oXLn5FR4O4b7XP/uhihqRg7LSAqwdYySSwoBLE/Aw19Hv9JcACWJOyKB79BpbhAYjMoNWM0IKohSptCzB6hIFJeHgpAcgoarnNTcQ7CnRNTNmnC16A/LekhWMBESgwDlkkWWwt4Iu/OrJPnwtSVJMDjyQ2WomW2JZpAE7v/IwFL2esIYg1V+9FOi2Uc52xTSvwSVhzkCKOzEjEYYkMhG7g9qQ2GcOCoYAK2HVS0maAFJufEwBEJWhxeEQouvL9gD8ZTX7OxZZCjmfpCurX8LnQpCAgF5SqeWw0ROcYM6QYBgQciJOnU2KGU1iyPDIIF61Kr/UbxW1db1fe1Poc4RBWLqtwOQ21GebasQ8EjbpZ2bM9lVh3hQ9DL4MaUUE2Brc2SQqJ+xqgSDQYFw5xQULBIGslWiAXh4MSgJwFgUSvVMZiF4KJ4XTHIywjFpSvPDxEez/oJU8HK06CgCBkJZESXJoQ2vzqUFQAGOzHzUvp7OdBQ6t7DNAqA8ujlqjApekJJMmhWDyVLt+oKHEONsbSdSkDAWfmCPmgC3cnO8BZJnBANcTAenFEMW3Ao+qdMCnjbzwvgjGX1j4zx/a1T3JgLTGwl6Bo7FSzPFNAowhMBrGL9KFAzUeAYzsZiOLdIEbBPMNPAQAJjii5ET2Qx1ztkKnUU/zP0TIedfSI3lKb3Kf58AEPJ9svc5xHCxmXHvUhTqkW7kKGAmDn26GXf1KeFg9aYf3SPlvuazEWjiiPOXj8uOaC/2DDe+DAUaJIPKAEqNg9eJr+e5Rdu1G2Mv1hzIzhvGflDDyB/JLqAP+SygVhW0e21PARWYtwZT+MzmTiyq6dSKhX8lNAy0if9aQTmht5hL3quFOePEh96MRKAVUyUiIvdFt15lxJkHZalSAoFTFYWu3+ncFJQyhWkn8TcdJ3uN2cqbHuCBPURLizY0EhPiDjpK1VH98Y7tqlKt4dnM99Kb/9F9dVBsGv0mEM3RuScv90Pggoeii+goa/CnvCKWb57Aby60xgB1ZDZx5+xl1Oq+Un1cM7+78y3j7qzOe1lBZwpfMpUr3R/RYbRn8LufcPal93ZDDKX8n+rrUxzbKa5QMAbVlGIKddUymCssv7l+Wy154QLOG/Fjoq406hcffdUqcVInF/fwtnwhjbcaR7ZJkYY9j98l5sMOB36Er+8fxquEssosD71wjFARrN+vD5Ra6IPsadE30fPluYc2u3H1Q5lsFt5T9PjVzCVGT4YT3V+M3ds3+mQItP8vS8A/fkHSey0/ocX299YTdRfI0djthjiQkwCpM+ev1m1VtmQ4JkF8eyzPgVppRcF6uVPgxYT2qQGz+KLWNomFgFdqZrn936PNMrmiDvjmXj+L3w2ztr7Av7j6rLRx9nXJTiS1OSiu3IFBRzLDn2nbDgdoNV3DDzLzWe/cr6hoKWckurNCtX6Wig65dDqIg9SmysC+vd7Or7znnpXC0yMI7kUbHJx+3WWsswwivTawDRjqNQgYPp9uEaM4SITTTA+9O9ROE06zVyU+eAseWVdmyR24F84mm0D4umGlMrnJe2dEekFM7b/7gZGwMbNFo2HZzWTujYhb6hg/egVy19/lJuZzr3A+g+9wCumF+XgxoN/tc97KzZgUuv7XabQGpSWY3nygEidcIfOBiffbn1o5yNe/vlM+fKeuyN6vgOAf939akJgdk3comCMUZWYo/eIszoQ55vFf4YucUIyT7ON5vxnO8gD4VPdYEBqyRIRUgXDIiRHqbVHcPiTvp+X0RVthE0bP9PIb1pAlbH4STfEU93XmYikTl79tXC812n3K7BHw+aCJOkHL7IWGGzWkGumoQSlE+JF8hzw6MyzU2HLtJOZBanaCf0wjxGaCx711gka9LNPSIopzdDuMMijvaHUk5gxvyp3wHlR7f0IsRCuxWJqO3fzVKDnhlWBVCU3qjdoQQ1ptHszvaVHP5g3CP88cJ3NsHBBk50c0RplBcNyZKjyu2ltSzs1qXqMTlrcKuiJWK5XtwWx/FdE89pHUoCp3onDGBv86qWXG4pbxzwBLc3dqM3/JtyBjCUX0T4kR3Xclq13lfbyztZIPi40Fhb8qCTQ/CHHhACFSDKSc/6pxDwe8zMAM2of8iVE0zRQ/F/qtmLt4P9UCm7NWSG/3oX7PkCtOfwiJQSnTbZmpzjyaiWJi1ylz8bL7h94Qmg9dSDDnxqEVrMt7nXKGvQtH+qTMH4nYexZe7GsPg+onL5RvWV7Rk5MjEfRD1YrW26o5cd25eKubWHKwgFmOvVGVcm1C0cJ8ZsGAaIF2AbY2VR/UWs77dpVFhXCe+b7MOUObtRlE+PCytlaC/NGTl+QUgC2risCaEiM8Eeke5kDdUfaSUzWoIcyK3dp5zDVHQJurMuMkYzlKiA87BJN/7vRTJHHhOhVdQ1MhyFSO3KGLf3kB6Tv/5veiPnlwZ1+ty00hGjrO8R/3WRa3A+MC6/B1mudg+FyEfwvLl7jxjslvdFXYNaf1Xm54fIyC2izmK33HSmXbnbWk8vj0vOXp9Ko4Auyf6DSGky5K+6CzSaWmSQktfwUacyzbz/tQdtXtLuqi4cPSLWlGhOtre911w/EjwQAOAtkpvfw7jmEGKmBqYj1/dfQbk5RT9dwmDwqpef2NTGYpFQj70/LEG2Qv4akpinZGgWUxAGl6fYoPa1ZACXFbU/5PRsgbBDInqrfRvPpvqvtlkpQlOomM+lEEf/khB+64/SXYxZiMwr+adMAb1ReITCi9/bUnFuBD4t7jHiQ8T5b84octHh6QF6Jiq4+84wmNk1AVfmHes13MK17rAx4BmYrJj5LXykPJuMgHP3kD9aG6kGcSIkKx8swQX1Hrib5oW/CNG/6p7IDAJhxj3ec4+xyRuTf/fWkt94UQAXAjNScku/UnECza7w26VoCQy5IUukGwSxgMVJd04WR3lteXce3fePOaiZZ9nQQg3LwjQL54OBNA9oyYHAeKJBJj1bRAIsN0BoagGoABhN/Wm/Y1vFkqnf2NhjLHRNxk00gUlbiclIwI2ZVKWbaYRNhTtoSKPn7qOLsMECczZDKHNIjxm+nzX0c5D9ygwaXbYXGqqkTX6lMQg3Cwl68mTWCUlAT/HEEaVDA5dNMpmQE9yKtUTaXfzT4ShL5pJCrOmEohHgP70qvydEKKnOhKefNhbSwoUuXd12ka1Qs9Y1xlFbh4jANFtgoFiG+y8KqAyZMEVfHZ0RXAX06V3Bc/6ExvRVL5Jw5DnhL9kOJ40E0qkCPo3RlZSMAfqSjzkV5UnT7k1EXlNV4gE+UQ2guUdqHiN+Qmn3BIEo7LkdwKVTdOTxn+Mm0RiKwFxqDoHAjIs8JPrb5DLLGq+GdRN/yJs+lGjBwct6P9BiDfyFZ8VQRjQHaAUF7yaP6aiU1jalT+I0xJ25BQ6OdK3iTsd9JNLUgB1S3t+aL8EnKgGb0qmbdaz8D+VjBwlAMZftcCl0RzgyXanp8zGA28m4Zv4lZxCVnadaYroRkSL24SZ5a13HfACz5+okbnIrrBDGX/ROBI/LdKpn9dDEzZyjAlRzIkObAoikjcyhFWAa9N6BP8/USYKmv76QDqKDj1Twqy4pAdB09w0lUtMz4fSCGuAjltMvlinbwT0AcrZ5egYJ6JFbh5B8RIZfsUotI62Lmew/4mWLW9v+Tj2+gggfJT76T1UpUqEND1mBP++DVxgiW9kN+RzXcNxP+P1GYL2QED+7S+qtHTrWK0HSLFnSRu3WNND2DjefEZx0r9JSutMc/U69ZvWHItjr77fyy9e1zT9v4/XkphSamYpuVSvKwpaWkRtBREcG4racGkFCwFHSDbKCsI3obgnDjPRllaWkRPSAu2iEqxIjjdQXROndvBgq7F6hDdpm5nE4eoO7s4dzm6m798vo+f/cd/rE3yzvv9et5er+8878RL+lZ/9Y4+L1PEjVdO3fhuFXRsMWKVML6lXfy8fn6WLooeHcDmX2MvPHWi784U4FREzpUPqfUG9Shycpa9BhcZYpGR7w5uuoGdtL9r433QzQ9WKv9DhTvOhVvOZqa9HcTm7Prg41HR0N6Yl/lLL96yRohXcfg2gPeNm8/aBPk0JZWV3kDfEfYQNFR6WA99F5/BBhIvzNtZj/YhL/mjsD+f55q0dtuz7034OTXhnGBMoaLzcKPIHhN36uasrvwHJxfXpOhrD7CPwajuZ+JcwKxJfPhOysSmKN6uFcrC6DQBZ3NB2Efe3gPcCSl06+iVH+Y31veqq2G7Rmjh8Q5hVVn//d6e48lY93H9KQXwy9ra+Kf1f52zndgJXZ5wvz18+ti5Vxb2GUakHDnrvdQRqr2j8uWneRvKq196nJUmkAhP9EUwnSXJF03lHW8vw9+d7sFEs4q3K66WdBCPf6T57nbO8v9o1xwfHDdGnpHJPopLWr+hPU1pcZJBqPnuvGtTnzYfGKkRN5PxyrnTLCrv3MDXE9PI/RCxsDhhaOmrN/rf2i5HvDagIuJj07mS+OSw1qKJzA+TwR3mvHMKFm/O/9krZ+fhrPn//yd+Btk5cSvp63+zssX5ZjK0R3J26XpNjvTlVT8dyPxA//e7baHEf/SlVCzXY7y19MfW52QdevVHz6kEv7aRb9SOdY+baapmb3HnHCLhaaXm3cGOzwyauOn1n34oydR1vnZ6OhQ4tv5sXv+5VG3nS/61n85JL5+9JTEzxOdfVh15U1Oljnl7+YGFq+U97499kCFLNJNr14FrtS8sqf6QaNA3PTm2R4nFrzF4b66NX1txyQNUD/D/fbykhDOAndj49lHyysp/rCxtidRDgSOHv9wWeuXS10dyErbe0jxlzntES5BZIe60kZt59Ibq4iWyvUY8d7Mmqdzx/PEln85bK/owFHBmxVjmJee08J9Cf70NtiDpmwdC+q+mrq3+5ydh7Jddu7/Val9c/S9XvLuHPrl66YnilsUfeoENgTVNiyNPrayaevqvJS3S9Vk35qtkAzeb5oxNOBI+639Bg/Y/OlWa/iNQWBC1aYPPxzdmuOyh32ippvD8jewz24dOUsEi4Iuy8OvKLzO31FiKr7399K+vPHvzZPWFji/MDi39668Px2wBIgHy6m2fvp/G/p/+qMjRYb+UJ3sB5pe33bMtGqg6uT73vQ3tw6m/HY7c6TB06fZr88o63F+7Se3QgpRYidkC340urSmDbStWmBygS/8ZBqA/Zbb5kl9d9it6JUl/PDbolAmK7CeYaRJj75m6xnEt7nzuLFbx5++HX5WdOsZf/7Il9o8A4uEf8CxaEo+q/7z2qUBsP7PakVgylfXX5oqKJStXEX9dqLkknRm+9CqCDt6gl3wwmde64LNO+Vjw6Uu3q6QdIBU616FbpW2vu32tsGFVVXXj8WX3nPMmvoETX9FUFf2Z6DImHZ6pe9rcjsVXgSlHy6bsl+K4Jxsu99XFHQlp9/CX7QAQQenemYSmLZ+bjzqA0Q+0v41t3JP0Cky9+91cSPzLKWf0owvHiZWDHvLbC6HD+n2vCWRHTw3UJn7shQ59wN/26mH8BmTLubRgw1p0j/bGkX/lg/urv7zZddPEE0Dt4rvw4qsF1SuuXjx6DF7dxDn0NbQT9dm2JfJTfxhbmdnSw34qOWvP8lTfXvn10KW9Rhnt8+V/sK6M+1hxoG/TLPvg0IpntnacTAR//871zst5/yzbdO70WHExZf4Yyog7tGRPSbtWkilvkWJ49e2YuYeHipCmKeKb74Ecsa396w2LCLrm1qdvK46J8MxfgLlh57jj/3zx542/82edSa85/E2xbPkC/fcdmXRB8ps7l3y/5n8h84vP/6TSLIZ3YpPC0dWN/C/SqMohu760Vte1/I+URw7ycLsx2P/4+Bcz5xSikym5K872rz76e8biGxBlhM+3B2clLC79+Bis7fzsnVUf13ZKkHhb5lxadVVWG8pr/c8WyjH7txJmpn5Q4rhhvFfw3UPjoTdXytrPe2ySzF389Tcv722/BxWv2KjNq8Fz/r6RWDCZ6+zRd+eVfHTZAZFYYubsDnJXfzB6utkye3rv44dY7o68hbvNe1SyT63CUygmETtS73CqmDp5sgc6RHPg988AS8SsUiqj7ctPgR5Iy4qvbPkTAtPaDuA5Mfbze+TDEB9dmMo+Fb0MMudec3Tnw7EcyPftGbGlVmh/FcncZZ4d1eqktZwIedSadpeV0p4Vh0eywxbAi9bpErVWC8HPbTEjyJxr33f87dOqxYfZNTFrL7XV8po5SHHGYl98LPTR0E4SInOkvJUx5NSRq5+ootw+0ARGgdyji0j9Tp4HO4rMZ8cUtGcoL6DalJEOSzqbSsWYuQOn0DKlGIWHdVXpJmq52Yzmaas/nAC6XpgzlAfosTB2y7yqli3UjePzb0EpcntVW04Tm6+ThzbkRCCSt/UlBM/ei3Aqcfjj29V5B5T+vF+Oid3dboMWBlokebWGPrDv3K7n3RwjYdQAErCNH7tMt/Td6okwUQtuKOMDXSmCVGTu+qn7T8d9eAU1sREOqe2uEsbm+p62AB+m9kyN9/xBxn5OGmtbpOQYONRrPIdti+gorgwLJ/bsw57iD/0og1i5c9tukVgOJL5c0yW5jQh+/EzuNXfxecBY/BA2km/Y8M/03FMvH5svAdlMT35cbMhjKdW4sLiFPWcU/ZfuGMVKUYbq1Seuygp/bfBLWjQkBEF71C21CV9U1yp35Hrh65yxnIwSyfii2LQV239PmqcEj6G5ERHg+YOd1aZ8RfZPfKiFeCbpwjosIYEj/KWNvwPRQTYhdAIGqD5V+sjVtIwbx9qGETYMl2GVEcjcwdn5KT5SbZL875ZyIfIPPkxEWNG2HBG/VgKa13z8qLg1I2kAzq/KsGFA4b8XAMpmqgzKnSPprdFz3H18O5wxiXX0YVfhW+fsxcJf95uhFlLLDxvGVPvA09GDveaWGCUpsXvFLUA4F531zCbrTQl0otkiAxT37LVFq06F7cK8XFNVAgKgesQArE2zXeAPiViOeR2lDjuffY4v0a5bYkeKeMb15LtH9PFQ1ELPNhNPjqi6eDmVgiWqBCnCufI9vAGAQI5F7S7t1kRn1Ag3rH85XgiSPMDaW1BKLgJIZ/XL+fmLV+xUCbvId9A+PjsxKrbrd0efPHvFMxIaIVRebcSQXVvmANH+Qye2PmSVmUmEpdpXFQIz+Qz/mtvS1P9BoHj3zgvQOdYw/GKHEAYwsHfiu01qNr938sGWLzQSPRdcDCHtERGS2iLdmRwRWaK1sCNipX9wY4CBQ63tlfzMypaij7c+Uph7tS3ityvtGhyTJ8fmuYfH0Rc8L93IU0yzFVThmveVaijXeN9h5P/76z7/HdSujeFgSuj4leMXRiIG/KrUKTYCkR5Wg7nJwrJ9GJ83fJQUvrR7OKC1QJhv5BCHhdwaGTm2J4pgsZ7/e/9fz//59B/LxtTd4WO9jyYiXfz5ZMpPu7vR7vd3S28n9CdKtrdmo/EfJK4qaTEIN+TMqpGoXj6Sf3KgaNlH/024EMxYkVrZ4mqDD59Yl1yXvPaV5/rzVBnbzg58+GIPyxaz9cRuxpqoTY8rWdljd06feOGLbfXmH56UwzUtkU97OP1/vaNdu/ulnV/Vxfz0075lvLG/q+/fvYrx35Uuq32gHyDT3jG8rxw74l//Z4/moPzmC2+sD1w5tox4Nkm30/km1Z29dmanEVlSJHW3VyUIFtjf1Jr/+t87qUOaGP9vDhsG5uwV9iO6ibQ5fdptxqwyg15/KufactzPf2eVpqb5gxXaN30719+AJRlEvH2pWXrxxfkRq26h217JiF6biO58YWfD/E3PvBg71bV915/rXp0RJTWqrihE+Ice5/Hu6vV7/7FCAYrWZNf8BZLwN8X8lxOlF9rbLywgX2t9dUN9c9uhtzI3fzsG7OtDEtnUdU863vnaqV0HRUdp4s0OUBCfl/+fivb4d8SkiPX0LOibpe3mrryr+UdKzqz+oKZb8KgLzaMxmfNA2lz7zsp/xZ06snuW/rDjXXfww/HExTf68z78qc7uuYMoX7bzD4u27On7gnU+8P2cY4/a/wJc/q91P95IeF+rqZLpcz/AUMdMsLoUn7h0/aOmpj0l49L3zD05siOZK55JW1l9oaS2dNOLYDJVs1aRI6bp3AbzGY5tV95/4l9ZN+d22/BSIPe96Z/W1gz8fTxxVQ6y7EX+sdPJNeRwRz7nZsGmZfvshq2S10XCcIyd9dlKVP3SmKWMY4E1GocTdBz57VSL4Xge8wpGLekOunLYG+CRXtYIJJYSHIsPIsVJMpmx2mvL1M7d8oyN2VYJraTOLpBIDm+6T1aSloi3OfY0GSOFnHRr5q4X5Ol+IGBfqQG93T8QD0tyBjZUtYhxcSl7LtQSKXYLQemrP8/ws/fMfjGNY193cKy9Wfw2hyPGRqFlg2I12/rD0LldaexcL98wkpDMhzAZkcaH1OUcg/35qlHx8xO7Doj/iLIyI9gKbtnFjv4odSJk/vLZfXzOyXcb+ZBd3TJ3n7oX6ysLD9iPPfMMd35Ty28owjqhu7nOKtnKQteOsjFk9VeVSsmejJV8QGzFIMk1TkvC/CtpolIWlF7pVxXYZw3l8LbqHKgctZMpcrLdIMdDB9mXzoxseDOMYrHy4j/bfZQttvO1EV4u5GcLFa88bHcc6tLbLU8t9ztzd7zqG84DL1wtFeZIwCIJoJK/zacVkMy2XKmUn2OuFQic481iiXfazErXAxS6IIjiIn44xfXbhBkrWBglzOXlWNk5xGkSDqApoS/62SyJAxPNCUqhFGmY6Hacz+Hle78RzbXp1SzNMJ9jD2cu/O1rEoV6TZm8pXrr/TBQthXgRI7lSgVbUaIvQ8JArPn8NvYX/6x90AJ9MwtmIUDsSIq40s+HqljDS279JPqn7BurhdGZTjleEgiwhEk36X3lufPNMjFgqkTmi2+HNd6qSWgCcyByNSRGlCAlF1fekx6oCYuvamwe48RXllYBuR1sV/701atQJyd3wsTCjlZvLQLQCcecE+egc72JM4W/rN7GgjIClN3BNq2fPxY7haNNqttFGbrT3ewzEhDs+EAJJlRD/VyUo8qciCmqDnbEs7XWsdreYcXEW2VTnGxH1xFUa+hbiVTlx3Zt333EPaeFtRNQM+V80AE/t/jxrcvwZgtbPeDxm6tirb0t4cJVQydJd9flSbFkvf7LNwEkWgJ3tHFRK9D24ZtvjyTuvTIb+1zeDiEAR43t7P58xsSZRV6NtUIPkjoSZKvUapss4kq8Fncs/OGrovnp6YcjxDu4YXlATpjAVt0hWvnhxh1hVShf6XdQKNdsPbtxE/8h5ER3bD+E6Q8FoRRMX7SeEut98nnTM48uMT4WFIbzJEaluPe7ntraIK/EIkfDwrygasxQ3qhSmqJu4ZBus1bYmPsGeCJwZcsQCTX3x3HOwy70taouOR9OzYic1R2vHdtcedw8MULm5MCJmT1iygK1CEszDe5m29SIT8yD5O3Bq5wrmwYdt/gYKW5qWRdJknotckS1AwIk91Y0j5UO09sRYvPKjy0CisMKG2GzRmSYTt4+WgnkAZ/lJU7g6mbdxPUCecqibjvwPoxYfgqLEyGztp0reOT6i+VJzAXyc8w7bhxpk3DCYg9sQHvdnKiNv6yovfKx+1YY/zoK+Ou0EIXYDS2BSDJsfepAMHruT9By3slEfubKigA6doVzDGphKyM5YN64GB1Vi3O2NpMJFB+abTictbrJfbYFCUMTAxnq3Xt4tzPdkNEfJ5JDmFojwXjM0873C89Njo1hyflleVox7bgI3wLj5igu7miZ89nVWG9K7IXanSibzR5u3u/G0OE6J0CotWEsXqR4RKjJFV+ODnsagKPM+jPsiiojpm7j1DC+7l9b2OmZNk7c5qRji7XyFQdLwuSc0CkT15By4g3xL9AAZcfxDEIf9WYzlB4hrkir0mSlnvgSIO3CBXOesY8AgL65Pd0KY7X5z9IFZ5VsPPGl3KPaYDagOFGCSiQA3aB9SdDddH9uRp8CQypFy7j8yqGjJWUpYkVBrlHopohDBb9LIuC5mV/o7H7oEGc8ZwhRWcQtUPkcttNAZJievY8Veo6be5l6LB5DxK7zSGytXd6+Te5w3Pyvc0Ej8MJ0TuzsnBTaODbScy63iUbYKDeGioxk2y8EGli3Th2LqfBdAewIgKM7+Zw2aeWjZpkt69rGHPFwyrIHJN6ColercEwG8NpfHpQPF9TaWx60UFUtH0tfCRR/unU6LT5WTPEzxpC46Rut4paGZuCVFEkKJweifmrcqW315cVf5BzsfUH7f+4pqAR/MvXk/pOHT/5kRcyI935xnfXHz6Wocjkm7zAVv9Pw4u2CUq3HDKLud6LQbQp+7cOcWLu2VH3uMOWhmscmkVyoM0MLuWjQ/Y7t2uG27zaDHQ2wBCdJrimK+6pzacyVHu75ZPDDAjilXPmyUJtTnZyaehpImaMFBUFrEUbau/C67M/opVek9rY+3RHJ0o7EdX1grFasCUfQap+O4zFnx4lp35aUMbYkPy6jqxP9qL1inCqOE7SJMUdMb9dHdSfoi9ohb9rqCkQrPhIb3gHk5fATI13b5GhX1f5y7ZFhoxbc0XEGuKwWGoVRETua4JRP+W9o9xx8P61WS5f+C+vIVKzIPXgun0+WY+iLO46V1X9YZHZI7nzSpzgsn/y0DMngytv7EpEU58qF+frdB6oUKdpPQfBgXW6boAiGcbRt8/IyZLkqP7j420mh8US5eCX6Ryr63tJlfdcqqgwUDdCS0pWA23Gk/e/1nhdlMRJAi3bIs+GFBavQHvlO/oiFkB59RvfNiUN4aoeRiNIehdHkCPzEz0j03JjruPF8XMSYZnjhDX7tQbdj3bDSI02BJegHdLnx2aLhNL6A6DOB8pX9YKf12BbFjl0/sMcvgoOJINCWmhYBpw44y2LE62aQ58TQ8lzFvJuxHQu1KV/hvtK4c35pGn9xMrq4Kngk9vA7gWH6XL1Bm1MDvOdLusKyNCuhPSLOl31J9xZo31MRaD5ezn/t6Kpu/HTpHpe8T6Eq70MnswYHKN3wf18SPoHNBOe2VXFv+ZEu82BZ7XBwFVnZMkbSwO7O9JlP+2JGeloAh7j1u3fPPFsH0Dh53p7X8WYjZdvYZxxzuLR2O75DQ2IZOs3YGcVzFfThkhbcjmq/khIIdjV2XIJ/d3FJBvlBigzX8iXwoW8Fi/veyH+67YUBRIaN9TmAHuDdT6K6unNrL/JT2uhftHZjZ8dHB/eWvocgqr4cWcnBmIjPTt/TFkQYQ1gyZOgKKla67YfL3zxxQlFyvCWu9sVB9LrcayB/BR7skJ+OdR9b98uK/af7iqDiKBi1u2SlPoyAyxPzDma98bczQteFaSPAjYNm6b/yN+AFnCppH3jH9xLBlz53gNkSJTfzL1olY3ktjCuC6pyTnMeRJZ00vje+asE1rv5hbtq6M0FYqM7TtfO52pbtpy4JYuoLuAtTe9tPdDRkOHogyWokucQoNf7A3lm9beMWCan1Y0oXALEhcSXIIi9zVgF5U2I+T6ze2So2tHKe1YTnkLhh1CSVXbPEhrFRlni+4hJt13GsbLXDMzZCn6IyAvH1NMZJSoPFY364GRN6UIQtTQ7keEGdR6OieBb1mOQApWJTBywAi2H0lCQILoOGIcuL9occrziUbaM8wNwJn9odBvARvmSVObqU8NcpcS/7bTL3FgxzLKDFy+te3pyPYThKAgRPjkIjFvWom1yWna4yByWz4+u5HAwJ0sJwMVQGocLwcCSxktAQXIMda4YtHEDYv66TjmxeLYxmNokIpRcZkkRqKB8BsAwookHtakcGdZ/zOKVvd3R8lRaJrtRqLS4KKA6yC8tmWNha5xzURYeJiSiunlRk3Gq6tVRcXh0+RZEWi5WrdXFpyItatAqDqixRaGBymwjpzOJQF+1GNgYH8IcGf9i3OQ0QiUrZhIqDtjZbT2KVFnos2lKpE/pakA1sIciysEUAp9XCTYj3JsTKPr6Isuu9ytHwShGPwxapA7VYZsFzQDOrSssaiQq5vVCvGkNQ1F/FYUdCFA/38DVfBizieBzKDHRDQ6/gSpKk6HiCa6YvL2sRIZexnhYWJ9o09MAWRljPSWJjcQuMj4eNTEdDPlKFwOsR8xEAYH4kb5li3JD2TgeGsCEloB45q8LC0dVKMdESr7WiCvnEkAo3cSwYB2FzaFRiZ8NnpsRuCARwdd98vBlCULGSy4GgFFdLWTKEiK9zctjxEE9WVUjSNjWNorIwzBbzTGUFG68Ij6Ll19W1CRhEtbFMiAXhFfaaR7qLruI9a+MrjW4OrkFJFFU8x9FSS4/L9Z4wl104LNIAlcRCg1cG87xKBEQVE70iCSjRjrRwyImhfuWYyoadALmRzMVwUJ7X+rlIQQZg5v+w3tbOUoohCwsWjpQFcSFdV0OwEINnlgUbGGAgiUFRhBIYRQUiKHrzkegMkBaCKLtPo3RYCT8YjUiMHFKKLoWogfjlmcgzXRUDYfiLPip9ZCKI6VWacDZyYza7I8po0UuVgQY19YysAbHmvW3AIH+EhcawSCvZwTbO9WpTfR4vSU67LGqxFdgcJs/BS5yQhctALzxeLZFUgxoxeQIF/WkxPJIEcMonNnAJa+KTN56MPpl+65fnf/9ybH75TxjxR2bEQ7CmDuoU/Vf1X3Rx6UunPtxTlSTpB/Ynjy6R7zwCTfdl1ds2JXSAP7HPXm22PTe94cHAjeDa87+lJVdQ5zB77yvCgeXQOt/idVNPj05S4pdkVQv6xYXlF5rSJCu9GdXIiXf+7cvtubw46vWu/v6SxYloBJN6OSfiZI33P4/gialHBbtL/ir+vOTVQ66bLRIkhjy1T/WOoor6RUv8+f6CrP5EvRkGR0qAL4h2DVxlcqVOeMb921NDhyNXZ5ScMO/9rCF2ip9pbXusClOB9VUzNc/jV6qrVt/4bBERkJ4uG3q0c1gm+sIkEB7gffve198/pfxkx3fH7DYdc1esNxGgXaLwcI9tzjEdSVp1d1du6xun2cnX2ztmj+U4jnW/ueN5DpZQ9NYnk3as3ChfVfU6wp9bcGBhOlonqhg8+Menl4weZO9BLO90DD+z8Ne2ac1p+7otXyal1DSkJS/8pQMcjA/Zf5kq/1uxZ84vLxANvVfOjuUmLV4/6X8s7FqcuW5LeaI/j9i91oePyVYMZgvSoYrqP94LprTkvmXOO79hX3Wwc1U6/ugKwj8sKx2+EJcGfTqvJfNLd/BI0hevF1O/HVDskbz2mjND1ybaVdVPH0/rkJj7+6HTTzectL/wuMnsnyu79F3gJprnWYLFn45Ys+tI/Nv8loSp3H9VBf5XsPb903fpa7MOD31JjScez/C9VPufDPNYda5M0om8Mz8pI073elweMJMb8IRC/OvrzbUGKobTfeNfe39d/0Xtql8DjgPmw4tc6JKu7/9S9lxyELAq85k52RW/8q9/r1ig0vBC6c9xb4uuyl6tm3r4xZr0jHRNFF2998N6pO3ySxPKUE1NZvGnzQZ1ZPg37UWRMeMP7CUDE1bgZ9j8pvNvzXvX/kPlviq6o5UUFKBbGss3OKo/X4KeqXiw8R20KuVE9UYMmZfWMe+ZbXfB90ISiaJgcWbpn/f8W9ZndzqVP/b2Q6+P/UCc6XtSmnYcLHixd6x4PQoTXQL5+598hnYEApKEzibRIdBZosDE2XD3+fFrDtExySf7XxuTzGT8/NXFjvbOftlp+D/Zq37VBrSqN32Jpm7Bex+ufO2jVN3QejhBOt1/g3N8a/dJ/Q8Py9ctjluNiSjt2Kl3xAMXOarf27/7BM7g533M7zjwe3CBrP29CKKJH8d/iGFE057nvv/h18GYFJVjgwq4c3rHv1UL/rFkFTR0obsobaVWMqu0ZePqs1dOz5rX8O4Kj2rbgOqZx3VtGtWfX83vEz3T4S5wkfepy1S79ivV38ef/19HnPZz7YGyJdX8NXp9zbM3iozexWsD6y5eFXz4PnzTBiSe1XW9/op533dXjifW/NAB5y7e9th8dHHen8euVoymY1JRu21ccSLYsHr3B+c/v61Fp7JhT6g14VPxYU7f7eunGcfvnM681OXo2g5tTsnFbRUFzvcHJn4Ibfiw9PuT5kwZ8c3Jfd+UPO5YKbiRSbyiPYjsWr5qjkg0nFnyIq3/9ctw496G7UcvODd9ZG8Jk3HY1PoZ5ShrB9LDtC3ki+1aWpwjfsxtj7c1I+05i5XtqxhrpD/i6VhtJtE1Z0kthc3pIBmTIcC2tjPHOOZ46pMLyBI9kNQdMQ/YMXaC6SlNUjl+U7Z45L32MujI9P7tmLsj4WkwDMyU99qH1cky0j4QfmBf2tssCw+yja6AgVVQjgSfhoUVItTRMo8fOYuEwxB1G6wRLPjrw0RJNGDdAXISM5AUjxgvPlY+SzLB7xMv31ET0iRyWZrjyzqgwjD+Tj4kadk50exnOAeeiS/uAKfz9Mn8DJe6Rq62nObGXu/oj0JA368ipFqe0xKm2rk1j/Bmjuw0i7tsG+vtsRVVVWoDJt7BwceBCw9MordHybE3JBCRAxSkgWFpQAq1OG2WVmyOGuuV1AZudCNiKme5JEXTbiTYxsYN32SKlIDYH5Fk12qtJAfX9xM7E8yBLvWVU+M5YSBrVzlmRyLIPQWOKMqY1rp4LSOmjGX6zrPTqsrzPjmxmO1nqW9gwjDOGJ9rptAWQWlCzX9A7rGhKwdKw9gjyH4n0CLTTmivtOmzoYOleODLluhzZw04ChmgX4dROCqsCKieXCQHE//S/ytgj4/m5ISZ7eQnJ863cD49sU7ZjrgKJuf1riL4Bls8OwwgoY6d49PWD48DtxjXLIicWM0lIgo98T0p6mbtgcUH1kL2XF9e/l+Ofi47XpYg2XTnXAXQwqlSffKfOxFCQ0niwoSRTjvZxsmJNywcTYlkWVibaNE5Hh/k4dpezI8eibZZxc2eZx/x1QhExCaonJr1E5GjanyoBbwsk9nYsg5zTlg0+Ns/7S71AUCL/cORw6mOnr/+urZ33zE1xuFzqI2yN+0rO7aYjQa12qwsb/XHDoJvi7xmYEjLjTXgPRZl2JCO5fFeyJusGhkIjVjY4gx21HwDmTAjNuA0iwptDxJRZYmxZZj47Odpy8ZyOwweCOOdg4ZOZH2p/bGSQfgY1GWUQt+fUAYypJ03qrgWWLtscUtOvM3iHaA5zT5NjkTdbE9MEkW+EjYrvLktcWENArLHtGltTYcxk4VTSKCX+vhmhOXeFbFTW6XcuYPYoOVY/ahNlgIEi/M+k6k7JF1XXhJTL1+JO/7lnyBfvENwU0I0Cx6khY09awE5bChFnBi+CH9l5BjnRMZUmghq2cXhx1i1Xen1v+lR/6J9FNu0IDQaSeYAJJC7o4wt1Od29i4yvvLLigup36U9oxPyUciOAga66PnHPLTyYIuYmWRCXVg3f+idMULCiViISsR9TdFDrURig1Ts5ogEUfaeFeEQJvpGwRHnMChzIyy1zo3OSIzDkKhcr+CcSKp6xsL7RYg6oJOrtKHzK9IsqZiDj7B3QL38Lusb0PmL9iUncnhjbGv420idEkXbvwsAYu3ChC3NOSf+z43Bn1vICnvy55PHT3578suTB09+fPLDjPiNWwf+J/j2llIZLW58PtkeXgxzTo/8ORIUczosyPArYvzhUwqgiMczafeK9R52OJtAKcbUzIUi1Y6aapDNVrKs0wc79OEwhJhRSssWtnA4zdoUxAR7SLA2Mh5h9QqFrHYErhVa2WHxuBCgrOfJpwFDULlTwydZ5+xzXSi+vA/EyI6Mc7Biikc7+Xln4afe4zeUlUgWVMm7t09AK5QtK62J5ZMPjgmn7lXg2LAG0P1ena1Ym4e28CFaYw7c2qHMzZlGyqr5xvPgIDCjeLMemW/HKmQ7tzp0pHZRsOEogC+4sqh9IOUKUP47zfQ8yxwjZnXJnWygbuDIbTTlfK7qlzSW5pnSVUA3KZgFJttSsIACkMf5Utp+OzxweN1B3JlKSyQ++u75JDPlE1aM/VgOnG3z1bqs5+Eg5zM82aGRy34pqr3q2qdt+cL1eVEuShrelpQQqwi8rCWlzzjzURcCJ5BBn5icw02cgNzTK2t9Lev7DD57ydONvgUR28pUkpZjcnQHeXRONbaWfGcoZ35ZXLne27S4jibK4Vz7EWiY+KngCD650lhuPC+R5kh3rNUTdVE6I9FYUtJJqBZ38rWULVLeWSUsOXkMuEjGSn+QxjjJwg6wStyjLev6lxoPdp7YNWS9F6EyMvOEilTn1zi1X1w72+vKR1SSIZKfaC5Mjahatauz/FplixzsaHyzW1txJeq2Qo8fbMgnkmFVbn75gVjJ+deTxxHh9a7XcxoM6vZxbIP4zHC5REunz2K1YjqhAxSrx/S7IFuYJQ6EMdvcIDK7rpfphWElSNICEYCQohLDwFye3AhCGkTGIblYQ5jb0CpEaL9aDLAoEPCw2tSWDgiAxUM1YVzOPUYcTkfifS0sbbN5ShcHOsNdAQk8bqBIHxheuQnoVQc1fqSalZZfHY3IC5QAn2Qj3qC4EJ7ilhSzF1DDEXblJAOY5oqLmRwAwwUoUTmz5hMhhmPhsiG8hx3Ri3GKQUtgcBJiG40jvbUQGTErW6NEZfoiMd7LgsTXhjNG0wBYn+aPFR0hcDUQCYvjFyrR5lcIg0fS8oZErsAuBVteE5e/k/pKruFYWak1t4PrhA+l/lDPyXxorQO0WjLWl0LvXnWSrHikkAt/qvP485IPrxqE+gIuyJd8x5MreXFP3YDe2kFotcIvFQs+uj8OFZXxoJOAVnbqPj81R/TswMEsMfsKO4wlMeBqqwUFAbtIpdEuwZmBg0koDQEWl/LgLJ7OCMmLQAmjELGJagXbjmMQbT7f5RWSeI4F+YmL9IzYIkn/lIUmBksQjZKcy6RT2qdx8wDLYGVRQw4kkUXGsTvYlH3eTrtezJgFDaSYnyyBz+JGarilithC59z7rR5r3/Jpltreotf+pjWS/TQQZ0/+ZONNULn3W9olsca6/rUqp2THu9eG8I5YoFHiOa+AVk/GnKFJqnP3nkfHBNUHtfiYIxuWdpiwRxZoOkay6Fbqvwu016w/SaNK916FJSlarb7CcfNc3ht5C2CT1JxinUj9FrvjHDimJSVbtJNe4dk53EZxqin5LU6FQb3cC28b+xnOjUgSlWFu64biQGdHmnY8P8VVDcdjWLawOKajarhvfGXsYN3GK73E799fH8a4sJQwu7rI5XRcqoINqUCev1mLQOISn2Q5nmxJ6VWPshsgiSGSQ1Yj0ZRfTfEoYhAl/3tk1MFqZXfXKEnVmnhdLZ/1Gw4tCwmU9rChTi5WaEKVZ90JGOeIvWQBUEoQPDHIohwyoDRGoh6khWagVjAolcfXhE1QFqOmhRYbOYvFEXAgwwQqAJEEQlkBoXIXxLwWryUZkngMyxzBUYWwMq4HhIX9+CZuDK1uq9dBSkpcr+C0J0lZZKTyxyQ3RNEcHIuIN6AN+uXiLp1FRjWbSbkuEovg/fRVKG82Q0BQvD75GD5MJOn0rvN53PciF7Ev51IFRZVOFEZuvv5gRwHWpsVzghIvtqO46trkwypj7DsvjV3bweQAIaoU/eeLX8Uud3n/cb6PkMiO50gwAOAFHPdr5UcXGO8/b2wZPzTenSMjEG1QsmCSueVYbpkuWojA7Bz1yLVESyNb2wvZAWK7hNOMxQtAgJEVlO4ZsuU1b7ZYJ3tKbBh/oKo0IKmyQsiq5QU8QCq60GSQQ34i36uVqxdqxuujIzJ4vbpIgeVY2r1Y6F4piSAAVPCg1+Dr8KqHUXYXBwWtoBWaSLnsRZpDSoXMGNYDIvDgEXbYHFM9iWBCzA1x8cIey5gkcuhclJqibGGbs8PCWW8/i+5T0xgMszlOHrc4zYdyxHtBoj78IUeJNWv8kLWeSWpD6h56zH2Q6SMqUtgjOaNsJYmjs3DWbFYMK475CGb+HRp58iDup1IcumCcUinJDskva6NoyQfvz170vQJ1NMT1Uuo2tOhbtCPh47fsw1KzhICjiuqc/xyW2ztS9nW56LNj+JSKH3nKggZhfGJYV74XsO/4/eYQhQqW4fQt+8C9aRU1KQGFIOe9TRmyAvr2ezfQM9zLEsn2no0SKAfmz+20G7Q71g5M9rav70fMvX358oKL+fkVFZ9mG6z8KFRvv1i2Pi9ZWGYuu+ZKXWdcXF8gvbkJywHkpPhYJ1EQNlf/qS6XoWi6hytU/pxg6k3+Up8L64BhR+ra1zuT8RP5Rm2gLVA1ue4I/iSTxQayiJjx/MH/XFKUGHOgIuEheKzL97HZsfgYn8/IK/sQBCVsBzeYy3duEtsdJuVPDSk7G7/2/ZKMYqgYk/BHzu57deuHQqOVQplulffgHyuW23Uob8OzRfxntVqJpgWmQagAWVrxKDjYUn2/rjqj7Zbuuh7PzVi4KDd5Mv+dlf3kixQewHfpcCa1lwr9qhPKb17pMsS6G4uGc+QDGMiPCEOeInMkBP6MUbrgH7+aU85ewztkRGxRmXCcOlxQYGpCXUx394EdJQunUp9xJCVXNcUOjzVIUO+Y9OuIxlhJsjD55VB/IWp4m6d2OvicYgnwLUTrZN8l1T7+V2qV0UBLGrqvLTh6ExWTiPjsFcljaf+/V1d8ViLEjbleYnEHHDi/rk+i4Su6S2D60MO148NVNIDZHQdhhWTHIPr1ph/ZwNcw6pPS61BYYM5dYOD3dJeOSba9e3sH3NJHG/q80zNTvfso0sEBOuLpq4eGw9LvDTP3L62laBmO6r7VHH399nuwJJU+SMjCpNCssJiYmBLq4OA7CiHxFvXuOXyvrzzXHirPr8K96Ee6Y2lwrjAviJgiqsR29WapKv+pYicwXxiyc1oBTA45LS77emOEMEpngVqV7VwME6JAZUsY8hxQPNGMTziVXWMZLisBaKJG0tDoBqPNL5DP4akw8UorYgDRexHDK80jvVhCQIxDqhiOUmyW5LTYe59KGvF6WSSKMdsTa0hVobOhLkqogOdQzNihHEDQJ1KFsaL+m4hocmJNLLZx2EBZQKCSDcohyi0GAQWPcrIkT7EhUj5XO80Un/aoKbGackMhRGxh59IFB2s4NLWD8tzmi7GQtYzyw7gpYEb1lbZRAHL25qjlhHJpLFxp7CgTY5gmGhg0gPJdZ9Fw6gaPdGugET8Wy1ygUoybjjNsZOYAyTOFu/E6xJoM0LJ66pYJFNfksPboVXeSIkJcpipG0kd6WL1u87ig/7eq/HZa3Uz05+BWtpbNqZymMTXDRjJkrtfFZonFOk6snuKFs9wEXYZud9ssUbRQg1gREmLwPczKh+wRhJWneErGR0BuPJFuzZDEkGoEe3v2aTGOjXp7MWgU5JhnSasxM5kcy9G3giSbbvUAtTEX3EKHbjM7no/DmGXuFBvG1QMwSSonwwAvZD1lVrdpCJCrL3fZDJlQG0THOTDMJalz6wE/EK8HswVtkE8C+ZQjlBLBTGJTlF17UAGQbQ7OEaSEXMUBWcx95gCQH4bEWgm63QZR/lh8jdjHzCRIwXRhKDeH9GvEe/TNGARawlR8V3POaVWzVq7QWVligQ5yuYCAhZkJuJod6m5kq6m0w2wjFMXzOgGMoMahA/iXByXxhFc00gvXH5JHYj0eNqxjMbdffxIsVfdzTALmqfMAXFIoDGKUxQKOTTYY+1T66UQ2B4T8tIUzjWEcPxqN3YKj5DWcKVjLftpu1LgkfBnLLIOVchNWqTM6+/XKn7hZrhEpCEA8tp2DdCKaSCqhdw7DTPPvjAt4SqYoYthyL4fGQCdGNus7dKR6ik0ic+XCCXasLCwS76AS5U0gW42o7ym7qKGRDraBWyRRh9za7EAl7hpUqiAXMr+COAjUX+YYLaxHYR+Jq5oYw4vLF9jNJZNoPTliTVJyvxg2p3OdZCQf7ARIJWnBGTuFydnhstyftxeN8sISOMis11uagACAIT/OB7yrPz8YHcZKDGeHQY42QA2TPQiGoijXAuQV61loM6mCLegh6WVe3RhqY2KhYWJoRFwFi/wcoHlIy9eyZvnIZZQFtTjH/mVRqknShzy8XoE3RRNcYx29rwywQCPkFGAFwzsllzdsUVMIgOWEg4AvPCObF7a4OywIJzM1UTjbAfOZr2ETPBfCZeJx7MAY2UOOuPWOeAFFUpalgrrJTm6FpRnWJqEGGYcbZ1UQDcpB4gabvKWDRqZTW9pH7E+Fp6Ako2UdFi7tZIxTKg4Iqur9ELu5kvw/FRwuL2TQ7OMnv/+/zx8Mtv1r5mTzf29cGP209fvec972v2pY4eSAQBKBDn2uwkoA/M0GFYbncdBAnoZxhppKSMsUYAL8WBNKjVuRhdhqmd7pWGZVoAVZRqiHuoc1bDUm8MBp0gIuVb+P0YWmC10QImJ5wOZ9PZpAAxGF8LCCqWZMPWUVoKcKQLl5YnLU6tnNxY0CTtcaC8uaAarkpxVBPwdR2qB2nuxbpr6UktEurxwip5BZa7hYbP7O9PBcbgyS+YkFoSHUTVK2WmOs+Wdu3ubAGqCGSOkvIZP0mNFiyeoO1KhnqRo0shckenqNm7oc03qHSEEoCklBksZN7OinNE4igSTbaREBFGrkxESgwZNW47Rkqt3xZpCPANMZDuTGvUc69QwssGHFvIdoRlQ24ow2Gjd+IkWD9Q+hbjNtYnu/kUNTDeaWyIa/IdSOqa0ehb/RPImrg0nJxM+KmbppffYCC6/nViH81A3AwhZ+Gwtjje+BuCeyQm4UMYpOYQ2MFRwGlbSOA1CjyDzkL+mQZQqcdnVhVhA2TMtgHeHyNmY7CY+TfGCrJDzVEvSTy3o0vRUhZBrPfSRE32Cot0ewmo49FnVErI1DXCjlt6gMYv2ohydFAwBlI8UCjXT6P33wNfI0oKZSnF55owfZswfhosyhQpHnOb6A+hsPV69MLgHU1+g16jticjqUWAhzELTTTD4cGdAkEUpyxCNU5QINpmFCGtoDeod1goeTugK2yaN0YGqfejSZSsnCSLUyHRmdiWKvgg5JURWdXyDG3KZxKIOedmNzipc5zapKzIjlg2vyD87moAqS9CJjpJ+4WoYiD7svOlSwCAS0E8FKfEAnQKowGK8kXkRvqYfNNPOC7m9StawMAoRGiumVMgOjbpl9l1ekI9Er0F/6i1GZ8oSBnJYmUUqKfmkF6myVBjPzZdrQFC2kCWl4RvoCUGBBZbqy/MCM3zaXIm81gSq4SSoFof/N8j0TjentujIXeVh4XSNli+gIanxuj6pCWrNC2XN32k8TzlbQRiQdl5Lpfu9zhzYjQA3sNRJoEixUXSZUGtAQlPkyUDTpOuWLMhbOLcx3DjRmI6CHncdBgHnSzeltSCIAjdfiTvb63Yh1aUmgx48xwjKA6+KJX/MLPQ4LLbibkYK69Z4TmVgMZFEoybtR3TojHmfVB2iBMki6cZwokXpGTpqOf496SSrk9KIZPLTTQvV4voIZ6I8bptg6z2Z/wzYRrregB6MUcvx7E0akZ6PZGQq5Qd5ARNc4FMOYlour9coAHK8x5TgP8T4BUTR9mc2FBPX7DONv0kYbiSyb1KN03XWiAAWL01G6UTSIoq6fjaNIlLiGDkRkRHvkL4dGrFlzSZ5f3+5R6cxdRKrnSjbiSUIkhuHXAbPf6VF1H65DeMrJSIHNUs+UE9JoWQOuR1uVlzB3AWqvlhnnygnZyvAQ6dJER4QvmFoVO5dyYiYZDJssyJ30YMYGTgY6FQLRT6TgqbWwCZTFRBe665ReKptA/4nsCHopqtVAV+rpwv35LhSR15A8VLx++j6wubfUcER1OsVfMiJVktTxaGJ2/yzSA5ahPoW5f2uDnjndC36OupSNBrnEMpLGMY9tYd73qEvF0ARW1XSqkg72yPW+KLpUl8BnC5ynsGzWI0w7PESpsK3bbfpfvn4IhcCFAh61M+Msz/PgfqDRi6Ig6gS5+L2d3k3M7epghGMU2Q36d9MaZFpDqK17nTXFiMYGo8+jdEMx4qJ9lE95kPgZ4U1Re6K8znTfUlgfqFnhuBie9AijW3kzRR5mFaEMiT5gDu1HlpETLjRbUW1r8vucdLZb98CpJpNmBVP2IiqcUPAyoouf37M1fsiSLbO69aFpLxavlzddN1anBwGTuX9F3dd/P//3j09WPzn45ArTYep///5r7ucv7znx6N4f+5/aBg/ExAVZT0lqh9ryta6+GckGG7v4H/EOrRzw4eb3Lwhz8qO4z0qe/tzsm07l39KipS03N0iWA8IrwAJ+y9ajncG+mPKZbUv47IfJQyWkJAZwvrt4VsdzE1IEn0o5GOoWLhJ2XyH4JcSgwlwAlTfwuXyN8MLndRLokz7UD6C3O4aDHcl56pNFMLh43LmwTGc9egL+0yK256Wx8OgVthT8FuSh+hQtZRkv7kFX+BNSymASNLGFrbsHesl1z69DkDurYqIUIHe1mHRgf/4deGAv+I5YiFTt6UKA3fL2VP7uX7Xlbbn9OUk5GdZqjuPVDV04DfUf0r4HSrpcDgkzZmYhNBTMLzEPqOaNojSQsqpl2mht64F7jxXhrWOCNMdffK0LgcYkW12HMUxvPbq4/UpHvkIuC5i9JuFDJMEg+SpW0BGxTr6rZGrZjpIyAZ+v+DbabvUSsZqkqKNewSJOUWDvFFaEynJ0K18I7B8+Y4+T0KBxxF5Ttt4aITpfboAqLlq9ks5l7V91p4axdfK6csB/vg9VCI8EO94wpbxOtZ6TxLVE4dMSJbnwy6Ygxwu1xAbB2pWTaYqE18xT7Sd3YIbhHj0SAWjH+EO6mES44tR7zNSV48hvvyX13c7Q0nzGTA0e9aqoPHXr1VXkak6HSqY8WDSH4lchSOLjl1ffdI9FiE/H4n0pvcNu2ljQUG1FYOgHepIYV2zrel3+8KEEQP3CNk/M78sVHRULtYkQIUFf0ln79eZDd3+9Q+aXqs+wAW1u5Y6MMVcV/L/ZsZ9Zao8kgaIc47dl6+L8z35r4sgRDtSXYuGW/fFJ9cDV5BepzhuNAvtV7LU+BIJyYjoWclNwyuuN/fyTk+s/nUoay2G4SHGKb2Fu3l95Hun0fdiOW7m4/ai5bB16+1Y38W+dd+W3azuBxJhcCV+IHp/KKdGZtcSmjf/NBJC/pduUu1vOkyfK05AoQrFdGzPg4NFy4FjmkTPmil/IGPkHZ/wi8D/3+B+zx9AuixAcfn9+1JKUfVMGTCvWoki4ssWTnLthveyLvyUtOuvcCE4H+cpuLx+EJJ+tTb63wFtHetdwcs+8rHXad2yT71xI3ssf3hGyp0YBcdq/vho6LLdTFDHtvwLRt+UbZM5H/4qF6zs2wWmKLrzLSlsHuSvyy9tixvb7mC7EirrTEa6Ibc+ev9PbchSOyVCn3BvqJr2yQnTMvOKGfIeQXptsL3XTvpfTnpnwvdezKMU1yMG0Vt9YE7SoW1sQE/tz4nnfupIFmNgRsKJUF4GEdmwm7qguArk+VIE6tV1BdL3r5tZiUsLvcJ/uBlrug2gf5/0W3om2VDZyzJITUOhKC9a1F0kh497Px9CrR+A0oVV1/g3+nKi01JgxTKstkByKOv/uQd9UDmKUvL+NL2+3xt8UxnBKogXMooxfVe21o/+UQS+VwyTzgzT0zKS4JPkCnJHDIQ3D4fXv5phV1iJCu6N9IHZl/qfVqbvHcMOCZPTlIHc9WrD5qu9FCb1oKooix8EVsdq8ctXBd/nVGcE4n2FHsgh8A9TSVSuKlmwJAMNcRYXdnhxz5akFlR4p99MFOi38YmKSpwqfQDhpUzlzxSRO/hO6aQU/jpu8Azwa5gNFfDlNLKjOuijf/2mUY9WLeD5X/sKE/aPBjBQ4wHnaYaYlWH7dpt0Z5IGF1SjpRFJxomqB5jJ+W/aCvyyqY6ui/6BL2zKGpLcRT2E1ecZrkzMSqK+E4Tjwspx8Pn9b0THVO/7GAvnk+He4zxJPlOdu8R9GNnHoxeuqqhT5AVlBmyNW23bz4W1XQSXp5cCS3/zPxr4f+BHMkSd2lngBH70Xy29Ah+OteLlhpWPlxzE0NO7SluC/qmjhhEbykzzXgWWnfksdSpHs09E06uHLtR17ffVtOf94Jb5kl52dcRt4iI7DMNgnIQ1k30eX+i7Nu9OVM//dFWPg7/YT3FLSnD8VsYpwd/B3L7xW2teW23YZpXMfF2DlMJhcNX57L38dsTnP+WJte26dMFAk5NpdpR1FG3fvtvZLXMP7Hm7oHUptgNf748539pnboKPoRR3R2LE5Z7GOmZqstUqlGuSGaHGU/j1uTgnYEcfH6Mzia4WOHeVQsvYTMOo8HXfEuy2i+rzDvFur9FmjMPu5Yf782r1L+fp9RcDbDMjqk5wdezyN9/8aJANSvgLPb+NK0NjO5Cz6tO6Xjj0XX4eRtHUL2D44VvueQ1hWF7Q7hyoO7P5R8vx5bAF0IgvymiGfV3saWfqv1NShE6vh+xKfxPhCX1dFrmgwWdtFcKfzf5KOr9J+J25rqThT0/aNDjXsQhpwLJckytJNS94p2q29fdEtsUD25o84bnLhPwsLFu5MkmAoTdBVRgJE0/hOe7fD4CLWl52g6HP/B78ELxY++ZkREn948t2T/zJH7f0n92aO//s3/sdPv3sK7f13GOc5HitsdFgA6GVYDIhS+2wMGNRkehCksZ70TAwiXHV/jeg3bv04biYpH9nzfJbBWTwIiJBkswyvVr+rftRETb6unFoah4BO1hlSvHF+z6CVkonYQyjpQDIMdLz++F4VViczYGtxQ890iKRGk3rkanJ/eaWxeq6bkB5EU+iGaW8rGsoiuK2IqnrLDW4khhXGl6WDQXQR31ZDqAwLoeDD+r0DGkX6DIHpp3seYs4Fy0AnvbWhLoQG9L6FjPkvhC+cBkrvDphwMyoTBVHn7434LixOCjJWzAJQgYBE8SxQdlnVoEcwESxAycuh3b8CuprtMjiehk30QVltnbebwYvxBWSrzWNmvkHyD2R0wiMj3CXBZZZqwk2g7vXP4698SbqYrYucRqdAyLliAVM4oqFbZsRzrDr7GRfjsINhpXNY9OZadXOTlKmbbLf1i5JqsGrbU639Ji5EfUUgQdVp6mS5J4oKIU2YGxMAc+QksJIrCBAgby/Y4QH/+XkQpPbheJNPbvbvR6gTixmuCw0SDKsUob/zxzLZ5hVIepCiSBB5jgj9YHT8CeLxBccRlX4qvWWTau5ZpxjjNNRTQVo6NT1FBfdVz6aHI039gmmlExmI4Ya+JEe5DkTR81/UZqYF4sK3uDhefxqRCTJXUr3dhVghFfLRTQqe0UVzrMD6h3BpcaHeiYZSWsWNC6uvWdaH9CpItcKHqDToIaQno8v8PoyNIqr7aG+FlIYJKar/+QV/ADPWTaEI2Q/7PT1eKbqb7WSb0YOEQiUySNGhweEEszUqdDpbjpObJ2gByGIqS8+0JzgZa3L2XQQxKH2afGBlJsD5azL1POpGis08vSiJ4NHmmeJpMLiEtHVr5KaF/leCdWzcDPIeyDhdG409XrPNx0Oy4GIAa0qGnIOwNoA3EH71DWSIGrxUXcy+ezfcKSMRRgnS1X2AoD2hu2goCU3rcROqSVFwWDTFmQ7t6VmonaZNqIeu0VSJbELmfsCEFXVmPNMtCHosGeRFrilE2go37yeH17zp8zNRB/NUNrU7RNdnasfrezotAWzksvlOIDgLzVhIBF1D7ngN+Qvac0l/gXNaaVWGqFMEZSNSlij3XAsyVboH7LlfDEZvobF8VZACfFZtiPRlD0lRZzKN4+Yas02QbNJnrb+MIdMPHiXolT/vg+sUNzL6LSHq/wjU/Xf8XTDW49jDCgXNVPoNBusY00mSfiEUJLL03eMU4rHCBj+MObfqpzFvzyfmqaTxfr8Oogkl5daZ8ZWLmc3kIjl9n9drUj/MyHCW3AXMgdJavdfneyjwycwkDeMbdeTjPsyI18434sWkXH+VNy1NLe6hN9PqUfSkSFWDmYOD0nSVgjZTB7mQHh363zhsVkiD5NL410Bedn0wAHsWwtN3TVvN7qeSmDWN3aVNy5jzgRApQO+SUNAZjRMyzNV6Uem4Y3UmadCRVhwvDipk/EIRRf5trC1aQwZpPeWcnRLMKuaN6n7HSlR+AvEpbBjmzvtvNxRElUNdAn/9tOUDjQK1EgrPfxehHhlHc4MtQgNNQzc8PNowKUT3ldWhKwwzcJKXGmHW9jCRQUqKxxMSatS0brtPJgCTfDbvpCuETkZS1OWIWaO99Z/M6unS+DUKPUN0yFaAMnhOsXSvzuzGumwCHjmGlvkIlBboUYpElf2Yaiu+kp3dzt1Ok05bsQsMcqujDZ7BxwIGzVLdHJczy3N32XPxhqwyjVsvqT8EpifJyn5Jz9aZr2uOD8OYv8dmQEfX6EcV4yY5Q4f3eAuZrfzXJ388/dePT5Y8ufjkNyZc8v7f34ed/GLy+jO9Dcihv9RMUpEnyyLrxHy3Vkm6K1comzlTFLdWdyset0IntW3QdVyr0qSxu8PYIqZPjH/DJhSoCeM/F6ZUN6vteXn/RYiBBk4bFsbqpTlsQBcmVooxxn97osWg7nubHcaY3uJxD9tAIYjsKUrpH9QLo6PDLNr0gM6KmhFuq5wE5TAEasUmYW8YDxAJJbN2sNuZJpHQEFYNNZv7wkDUo4amohexGcIQiaMQjOm3aEGIvBZz9g4CZMzhOUAtxlmmJ0FIbOBBVrb/bRbTj6eTrewl2AK1TbmbJV0qMnWIzX3QkA4Oy2AP2ttyjdiHDXXVvacOj/Ex+87Go3xYCxaJ+hmhaC06pT2oS3oNrO9L0Qh3jeViR7625zaIfb14YmL5i717d0pSufvacHuLJKZT9Nxy6WHp5puOKtxaV5GbBhFmbJP/PZVz7cW1Xbl+yYI2nbZ7MGohVjewI3UhEd8mXPD+kVx4Dz9qIT+qo8ojWJv7btHFNC4oKW2LBuvuL6jCu8/fDPJRu52GTr0wXADt/vF5g901WHuMIz/8+BxW+v6r91rmqYIq+yqfP4qZjTLMmV6wSP9xbDV/cYReiFKd064AfWs4BhFsdW4CYwvvDVjM0KAT1Zd3TXajLykEY5Jo7fjQyYu5UT75QK7u7XVKfRf00dyrPsplSo4Y0Habh8dhFKJTs/6okl3Gy0uQ2OlVjxfAODaNHuUQ9H8Wwotj3iek5EIpM9rNeCLwv0q4YazOMa2wE4reF/jBrV4dLP2qvP3EiR2M0DyVWFEoxttfIsaIAeF30kc7utFFBNSRe2NpH9mPB3IT0H8GU7YQWK54ee7yPPEKM2505ZKnHbErJY8fxw10gLHv7IygYbhTUe/5cGFHClFeBm6LKu+qN7IQDae3GmZBF3hzMSjkroEADP0YHPGZtSUAZnCpwpTkvg7ZGBqO1dvNDHMV3xWAMAMyF2xXU0wjC4xUQXX4BVICmFAVx8dk8JD6a4HauRYHQNgahZmolEnvZUEXOAiL1HBYJBiGhwF4DovZzB886OdDPRYOGfoATsHIZJyRH0TkyAyf5eKpSbsprd4+yimw4vpUdJJitDT1g4eYH6qKvy0CITRkYcsBvBKqhfZwjeCtERKBEKELAkTNeiBhlGjNk7dY6ObtUxYxlAFK4LBCOl1Il1hm80qYr4rXnSTYYhGGqpuxedYWgo3xHG5/8/rCUlEZF7ZpACyWVHA58WvAq+ED+DaGJkJdSs4tE0UuImw15p8J3K2FUDRQ32JRQZQN6sdoMRYNDQwIlyMYTKggx6JBmOMCLRYLylP2ipLdF3u1pdBWQrYCD4ONBKO6MNFMvhro4IkJ8eZgmIkdz0EnrqhomG8vIMBWwTnr7GlvJfPDmIzM24ow9R52u1w9rLYTGAsPA0v5dL2ydi8v3EyqW7Tc+hNiGCAD9b2rxpmECuppV3rVNgBLMDGixCiAYMSNMRdSbxFwxNABoIScZgMmoaBjhEkL0PtwdQCPL/Ko9KjeSwitWpZlxMONDB4kQSq5OJIzMlo5bEGRLzEK1AB1tNoFuHY9xTWPDKhpCoWGJKZ5NGwRq40aPs+BiuOJRLbEO53i5VIzUouWRSp5hwN6C7tAAQjVqDjlSLSgJ8Xv5Un4AO5YANk4QUaIpCi7zRjLYWtYA6vzQQ8gVB4St5hIupQwd9tq62REONfEKE/qTpBtKK3vJaPkIvGUOmjzgTAHVGWARiz5ZWarq4Q3gxhHVaThpLHDmNDv8+NhGVzYMAG8DA/gCWRznAFtp3zoachesFS4FRqRY/UIrkOSIYYotMvrjnXZSElEFNpcGhnbrGUHIJcljc6E0hJRLSyaQvvnY5psxsAg9bGH56A5rJ7AkbQszoMHMiGLPs1WbfExa4RUMbqj2s40syPGJFTbTUMvh8mmWEZ5vGiOZf5glS0MRTuH0gF1GqxulzASno/H1iLcjSCPQx5us4BGWCBD5HpxsyCtW8BDwGzACbk6QBwe8bbwVQjyXFg/hGEQ5mEv5UyRFoKLIFqLEGC8SZLqYrvatYxlt3M8zEgoGi+0GQ4CJRSFZgAPA80aQUBEXjL7I/uLFH0ceXwzhgtdPMypIZXAXGk+hI6Ki1r64pth9bDWhPCAQpQRpgw4Xz2CHmEXgwyRR8l92CtsRkRGpNgBVDWPETQDaqcwjc6F6Nh6qxMJrIJjEBxOAzBqKFsvNtRJSACuGVGRZAoPz2W3LTvPrSc1WfAIOGKpMRIa8fyfJOrDvQIfIgnjoThHPCcAae13KSYGxs2RAjlqgAMMbWR69QEGdMGh//NqCp8qZAaSgv/vw2U+UayomeP1jzo/vHju9T+bp7wv/aOtmdNttjT8ZEJpzsQySsH70EDj6nFquZTVnX5QFYlzaEaT7WBDQKyyYcft4JqMKYTMJmmBrRGhxoUm1PmtwZf8OlNiORFaAPmVd4pjMc4UeInlN8986crYHGAqtx6SsiLpZiWxaHZ0JMHbK57TJfBaWlYE1IMorff49WhaK0rZDm/V765H0Yd5WKQe3TxF9mM2yDdluL6CCWmhrYVJZrRiUk/a8BpzlNKpoatVOcdl2PwGtSd82fEsk3SpkbIzcogF/sVFuslJ8zSPmr3XbwLMxGOACBbI4nhrxCvwJnQyDmnAsrEyTfZC2F2r59GcFHcNGVg7XGLpcfkJbhfWH6mlLOwk9oMppa0rNlcC9QBzB3PrmAzXA8ol1pnoAvAOwiXAPXUpAVzHrKtu42aLS/YQswACmQR+Ohoi3K+ng5bBfCJcfYkbaZ72KLpxaponBXkE5dTgLgJtlBLRREDA6Bpz0amNjtmX9cHw6NgaPY/ZemRwcl6FxfdwrkxtpaZOTHTj+pBvr0WKSDlpz6lJCYmkI1dTpOb0/Kso0AjYGIBKMwOaklwN6z096SDQ6jyEWlC0o3NKZTsIKslpG3OG1mUb5y1wKKsSIGRimQoKpU8jeGMQ9aiWy14kTZY7JM1X2UrYhFE0Jbf2i1AaX8PINVflBPqc9hJ6xJdcyLxfMKFBpFSA1nkur0FkGhTT99ZEwqGKjmByNS+FRC22SMUsTciHDsN0HXoD3Yf9ETAHagFIxbh81a2Z2GpusYLqNwfw6jHavya2BobVzEgKJ3tNCtqrEeM17Y+rIzKM0EExXk83yRrnokSSNIiAFG0a0DirUw6BVsTD1LOi7H7vaBM65e9EZPHuUZT0TDEWoL3ezf6CWbOyEaUT8mTB9jgQoc1csR7d36RAFyUHqX4RlYXN3eO9oPd5PWRXfjq4DPVjZjcyrCfl21uVIXeh+SISwCrIQ8+gHiIdRZLGHEzJn+FhGhLk0g3uzZd4JErHNlhAHthVhNRFmy8pz6bfayCMU0oLSXT4pLL7UTLmVMfISoKnyEZu1bxcQ4zTAmv0ZMk0pUg/pSHRfWa/edKTPopSPWIr1+nxgtH7jJtlflwTTBmHuntMx7txgjB4FYzjAFxSf5Z8+XQSF5uLoI+d7gLxCtB3Ru8B6Qjn77AzmA9yYTOZEd3oNnfcmHu7AY8U+BsK55WO+EboyJhwqayAx4TryYGmx05aAwjoqdNLoVHZK8705xhdVzDlcW/vmqtgk3/DHr3SX/iGfEX2rHDSMwvMxPNV5GSkUaRPBRORqEvVbEqukS0H5QSYVbw+Za8lS0RNWy177yjkZdNWkurFS4mhnpsPhshJQhnyouQluv53xbPhPKUfi5AiGeSeH3S0jmCL2C9Rpwx0NGdY7zZy0sgvj9p6FFOgnxOO3NxtyXAOUR7nWNd8QnCrBtMRAyKzLbZJ8/caNJTOXYP4SGYmNhK8rfFZKzG/AJERs5TPy7ecnhUNDTunZaXwBG1G0el0pLDR/6tCiu5tZThgo6iBCHZ3m+hCThBEeT3SEcc8W+/6GxJMHUTJxcjgwrmfMDht2pfOXY1Gb/6MOUUlIgr1RwAHVev3iZxLaQbTI0YTedo35Bw5LeVZjrEjslagPu4aKTMRp3Fcg0qBGrpMsmmPX0/6Kxj4aSKe29274mo6ms0VWVUChN77Fm+iVZ+d3uq6jLaKcQ0jSdJN7Rnk4CtRlBs327KNa6ZtDKQwoL5nzRa/ngghSYbjtsdTDC8D67sbxOu9oQzHJE6I14cUaWgjofQA+eKaWnNPej5wGa+f8tGhYMNupU+2Rm7EhUExbcm+T/BQz3BD6fL/A2P3/9/nW+ZvPzx5MHPs0F9TZ/effABXnvHWfPgOi+NAwHDWKOELRnktUtTF6OqdsK4aTEGVHSr95YJ0EAHcGvwVLETbGvVBnJ/iUmFzqWDX3BVdBE2iNiiYndRlQqWy4J/TU8FLRJBAe5Z0babamUcUjmOcYFaJIj3uXMUIDRshJ0UXilSCWy9xmrxLE1xmBYBjxaQN0x1WmbNgulBTQ3i7cQ1dgGar2j0LntPTkQnqfcJsUoZ1ZhtkWo9n51IN+DMhV8tgInXG3CPD9cF02/5+DbLoNIim1yFIIN5frFo/BYKW8CPkDBYg6V+DSWA6mk60mSiXsoNyIdcL6HwdEUQvEchsNMqvzaApkthYoDyEMl6VRSDYuszD1O3tszKoFmShCKup0XuSVDoRuA9y8cirAF3V6OX5fORxqY+aYr755Bx0JgZdlh2iDQyZgel0D0FVjWC/dE1K0OdVqZWWKHR6Wgb+wqj4KtTnbAAG+c3qQUTGlGO8LFswmi4iUYbpkQTPfr+XR2ZfpoL1D0ZCQU+UqsdCh5lP3FOnugZqDSGJkGZGlrxJjD4HN554jaIxYTMRDdeWOXsOujWWZf6thE/hlHY5/PpQrzFhLabi+MlBV7So52A2c7DcVZIIcXmuRe862YHIMRE6jSKtquCiqE9nmPA45Vb3iOuZR5ZXfhmnaSsSrQnSyxeaMxtsMDY3W/X8GH0JVdBqyq8jxvYzNYCCa2LXYMuyD8DbBD0ISCLTLqsZCRTcDFE9UiMBwITrPl0hzTK3khOe7L1SJAlxtXKJUY6UcbS5absx32b23EgHXYoUp91wXTTUCmiknqAqwZFEMwGRVibG6G1N8kjy01M+B0E0mFWJYwV7765xopRPyqxunqyBU4Z7ZVYXNQrMvdxgxuoCVRg+HSRPyIO0UUib02fMSbL1JB1fuMYaxXBUDHU4U91dlkXYYLeefHCyGAGT4QE9ei0qGC4RyQwuWsTsVdPpvxlFhPTqMoveaRSpRPqgas2dcFW+Bp0pY+i6l58FsDwoQI2Q+zuR4kQfwvxUysLzXN9XKGDyWI8qVGRIBX/bD0MpnRqeNanBTHowLQ098BD4dtmfw3AD5FN0w38+LAAvE2Q6Zrxu9ouOQ+QQIq/u8Y1O8jXZnizC/N0UTai2zyRgzNKTN64AG5OQ6YeFRDTk4T6ijYLT7FEyGfIz3RopyueQSJUuusQqJ1RwDG94TTaI6ZGe7rpF0hRr1hYmzI1jAluDrnoB2c9PH1QPM2hKD/ImlK1S5nG57ym6hKOoE52EG/QeWhMNBfN7QlOq4llcQYbHkZSEurGe0xbX3xYEdd5JlzWqzOT0GT9uwvJKDVZA/0y2gue6i/bnJuEVKh10JwsnEBkiNjFrHc87FiMuKNTAlTWiZ+6k2woYpEigXx43ISRF7Ymuv18QeDOfuYZiKc/zdXLYMicigWFoXJTiG0CPg2iWecLWynBquDbUqrx72ax6aiqotL1VU3kfeEBZqRkM9TC+jnuYKVuvMn3YL9iLMIxPhpPxr6IDBSteZaAg485BK3X6a/f0niDZVdZQb9NTjNeTzquteGKP1wP1ipYvQHbN00xVcdmEjmP9lpmDHsab4PMABCjf+TbK/DPahDBV//tTqLuVNjunSbzx1jxMZEELDDZdgtQhJiT4esY8AxNg8hverx4KyBlmIHTwLYY7q9UZ+egAoURtRUxaAo4sFvVk7KZL6HQmmU5jNFMXehgP5S/fFsh0nCQGMzTEkz1oyi8uAIM12PZnfw5OmXi0VeJs3dfoDAc0YHRrlyZ0hwySnncD1FSPzbysFeEyTCB5qgyvUfvj4xC/U1HQG236v+I/hlXIRLQeP/mLxWJFMjCAy+LNDMU9uXvxbm8p31Ds/8ey31ksApX6RkcXypjC+XXG34G6gs9yV+ACdFKPwf/oCSFKKilEi2Rn4GCK2UcTaVk1m28TBBLN5CYUSfQWeDq5gLKZQHedoseawqyy8Q4lxWjU3DKwpIek9dVuAjyYLVMzW2I1gq9Jkn6iD/08LsxGA/BfFDXoYVJwdUm81nREOVrMde3ZGzQrnWxSQdLQLeJ5Ux14uaEaVBXXd+Na8SufEapCKaJHeKMyX6dszzRyyEnugybhGrxhvbyEzLDMdnILXMeHaeZn6JN2YSKNv+dxkiw/U/2w0GiWrXiuSUoLqeNJgWImRuUEmdwpcgWc6P7uuCLE2MEqbLjaTaRlr0AfFiCabFBGuGis21jbUJeG3r6O50cfBRgUch8z8xQzAh744TDzRoX/i7k83sx9XrBzujXEvDujGtDP2MAaQUZ0DHqeeDATsFXtxDm2nrP39L79k4XzzS7Sk87Af3DP/YWczK3Y0Kj026vR5tNMewaObDlgtBVuAkP6zwTmFBuWRzCCGS9dqvGAyTXFysdvpcuoOxYugXRrZIUV/TCVFEyRrZ8xjzKAzF2sovlcTQYyPcFoaw9PM+kcd5zBKV2DEymjFK2n9aOEu3B9j9P5rxQEEADG7c6khaVm73MH5W/tZ+ttmIVZ5zMvA7tDQQSdZp70z/YVnwDGmVFmc1uIMZeFB+maldSNbIYQ0wdHzioSPEF9MGDy10DZtlrN3qZAPaK3zIc1sEBlUo7sOByLNTShtiaGIzm0/37QOp1BnTUjfmIUGdckwy87LWwB8KNptsKKTnvVtCBDNVex9A/N5UaghpPGpSnnInNQVZaRRKar9O4tuG9SEF2ez0vON8swfKv67r6GzSqKbqhnjvxJxoYQjDCpqekvpxTZLor2E+ZD1hSLTLcdARHvzKoVDJIhyjKZmW2NKmOhHlGQXdAMka3sx7WulDMuN+OyGiici3bwDnnREfKhxo3JCu6Gl+ry/NitNTx3g5OxbZVlf9dXP8Wuv4Ng2PrO7HHifvb/Uefo9GX4z7pl1PU3Rc4Q5bugoxgdT2YI7U1PCic0TnawH6csDURoshj1mMyhHuoB5W+QrlcVJ88NFJop5laWJQsEvFGXgqB1xhr9Z/GU5aEgsJnpF7onZVwzVcLjoYEaE16SQV028oeckjUaRZaOEDBzjHoQ9KEZlXKt+7lljSg9j6dAEMUjIzHaTzf5lLQAvcG4nI7ebuJdNvsYOcrW8wQNaMDsJPrEfbq2G4OYArQTkWv0iiXP8roxLeVC/3O2x8NYwlSwme4qmP1cfB3brWOkhuGC6QHMJdPwWusIFJ0FSlFHgRSgHjLb9CjPh9xdk/I4OFxbU52OUqPhqBgmJl9qMEnG+2lquLjHmU1kjIZ6uGYyiJmSyEVJSENZxigR/kk62rG0GGT+3Db0oKfytgetYLrXpSrspuOQFEY2cfm8aHAkJKu/K83QGWFi2S0ia+0Lsqdf7kEnvCAoq2a0xYV+TN/aa26VPQ7eEzDRsyAsIENyW2cSQizUEebH6Wq/1lbbqBIpJ/bVJBBooPoZBDdqgvWXCe9STKRqYDbpaGK9C3VvexggGnSwCQ2iCt690orxeTyfi7zVIPT6Ql1rGgRKl4uk1zCX+LOGR82sl3DcRPYyOW6Yoc0emXla6ScGj6uIfQn6HjJgnpY1eof1X2ZVFpqaZlE9TgZSMUzhNat/44Op2bJ485SDykgCGUojKRFsOqjoAJ2X0lGrEyUnFii9SZ+gynsakrz245NFT2b//YT5/Pjk6SfPP9m49r8TWRXXH69ivRnVE9f6dSmrX8ccKdAolY1O0k0LuoI8ar/ksrbHS5HPPcUuS9IJTEkppxmDPjS9FCLpT3fKejrlWwkyWmMvUIwtQyh0WQY8ThjzGezjQabIq7MQUWpUEnHPpBKA0QJUpQ4+NCsyGZfhkWsukvTQbrPzuX4voVI/ztIHRM7CpKR0TwoDdhrhNbwFZD0t+B3yc/aWqGhsVE17GM9qj6e3ps7BQPegcb4mOxgKotEa6/PXJpnKzstIyBbd00CNyOXwG3r+V88cniojeccrM9wQ0PPNU3S8WbVV78jWdyqgaUZHq09BGVXvUobcTH5iHmOkupvMBud3a5Fg8grQVKi3/pkJ/bl7dOsKVK7Pwg4xtZ1qPqGkD+YvmkLE2Dxev0h6UCJSlTHlEZrZxCUK4cJI3zJVWaYoyYbfwjBPYsVh6zIZwRw8fsinJ+k3B2oJcYPBmT01GrzPHIxW7GnQ3Ar+iDJuTDdGZFwubDIg0e4XSMZ3PMLor/TGfF2jTuOE45KCqB/HynjX1+3TEelMlU1IZ6M94Cq+AG+8jWH0U9Kk3X4GeVJBJnHSNM30sRZeHI85paemmEmazN5qK6YbNLpCWBSs8zvvUk50nPGLEhky80XfY9V8aLgApCFfMPDgYA/y1oKgV90azkQfp9DPYpnRqPtKtzvTLzMIxV+CIgweGF4xnBDAHiS/Hi0cntF7ZiC0GYds/t3wZENTtkyA9vR0F9xNktEGj5PI9vBsujXKM7uVntH/080s4cEXiCF3aIpyjRJ0pOFalkB5Nuh+KcH0m3HLeg/wFo8WhPyVGMdqVhUWLlrEZdBUOAOb8fXSbP1t7BUGnKk0cv1biP5wJEPizGKbpHuzp2lmGuYlSxZWfXq9k2xnNo0pJNKSZZy3r97RQ5KuDg9N7IPQ6c98lmBBdmiffuyy3iWDsXhz9kPsf0ngJ64RuuI085RumGjo0s8grVd5JI287hXOvTY9gBegQaV/n0c/Cv7bpCIY53i905IEengPPliw17dEOT1jcoIKMj1bhhNrkgj00CElRfWgch0U7DqGEIikToaJska6YIKXkkku5pqZ2CsZQgdZNHVfhesK4PKGepK6xLVBAf2MKQp8so+YRV4WIfSR0wCzxf2chN5HArjZ6WnyPd6H4Zo37iLSdL2TrQ+1oxRtkFYUqAQq2KpEskOuQNOM3gloR9MVQy6vAi7o0pmi8QolbSvrTMpQ9tAMAJpxofR+GRbxPL2vaZZsBiLJ1o0iT8qwKdulMtM6iAlHC1BPtP60rgBZrZqcmFIyKQo44SnA4L2jEF5yua5qSDkG19QlJ3iI7CTeMplpKTyV3aEiapyEGMOJ486kZZ4ZpvBvXRdCXeORIuRnwvlnCGXWcy/zKvgv1uhVW8roQjNje/bbYF2D0XXaybC1aMb/x9P7wLdx3XeCjuN2BRumVNJNRIeRPcnDjOEwMjNDyxwJIn1AbsNHDgEd6fbMVPmD7BAIs0rMBVRbsGmxvoOA+jbXIvNgkkMNgaoLk3Ga3XipbBMlOttH5O7DR40AHZltrdSNw70RELaKrQVU27Ao4r7I9taMP3EcisTMvPm93+/77xW2RX4sTVTrhcETL4QFbfWLna++tQXnD/X/jp/rC+3+4Rytnm7vfPhL7nKl48E/3kN7bhT33nl/eNL76d7lDLbk5I3/u8P+kNGD5x/Eudlf9dNvn3G5vHnWmA+nfl+pEA+sP1ui/9jWxZcLN81luVMcjIQeGp3ijbuTZV96r2FgKOlhGwdGVLYnIOr88nosuoxAd1MoowlbgqCY3/xqmCXPbQOabg9/I6hfWV2LRcLcoyx0rAXuuW4WP1fp3BM5IeHhmNphuvkIdOODz6li2MNSgXvVFQoZ/tm1bG0Hk8yVncyVdVbW3LYNyYKxk4tdmdXWByPJMz0bTNR6/s/xVs/9MdfQHW13uAG3/w5CEm5X/urbex7d/PS/f+zKX9x48CMkk//aVZbmfMcClhHbr3f/39OZtHEsFdib0KzM+U3B+EKjArOB8B1iGIGX0WBfdqFz3T/1OunTGsa/OpvaH+ARvepdo4ORr4dc4/00djJVmyKCcCT3j6METhlXtuCA48+WOt0H794W71q9a/5xBw36D4MguYLehPdT8T3hpG10vTULM2pskuTvXRsKuMr3qKcC34FJLmkE3qSrx7nrsafctroWgZZh848VMyy3D066Ip1ANOkRd3XP4Y+TPx0aDe7LrKBQ3R2X6fKLAbaIhWN/x3WPu9LRc0ZKvaJzLxfupN5P6Zn6+nj6HFd+xtV7CABCJkZmFF32+/VvnxfpSlogBjPJhf7wDP7LnNdN99Yj/Z3kHE4rPTDRi9C5QX/4Bve//ITDLkS0Le9h/9A+m1moGF5Xuwlo4K9PsHyv6M8U/JM9IlrpkvnOeMlco8iZsNcj5h+5zu2Bp5nLk57ZJxMT9Yz8VXwIsnG/GXxZ1ASIf4S+r3W0Revq4aGp+aF/84pxMgmJejemtPnY2LX6Xolljfa7LOfHgx+cYC8Aw4mkEqbi8Y4R1ewW0nuGvelYwfMQZeJsIS1+3vDvI1c/jtb5wirNXNzyJdsztT8a0s29Z9ruI05aoRt/MVW9vInmTnuheJbMd2bszUcepvtWu4wgTCSrwft/VDwvZyC22ZM0L+VdQ4HhBe1m/aN3+p++jyRT31TEr//68wCUes65xSkm9Q/Njhe9h8IuWuh54c6hYOLKX35f6vkhbowghgRL8AxzobfIjv46LCwZo/uHvRbBZkNm/adGSGYtop8zD3/OPoMTQASX6Oc24Utjbj6cN0b2AK1zV3uukbLcxSSl0nnmzjFvQyFcjG7xpfv9k727x34VJS38vVgVY/E5/hnF2taAxfscYfXA78vt4f/KkiT5xNVMKhds//ikloX461fD9/z5IN1Du0mv8B9efVGJAPybvHev4G1LcGOYZ5LJq5Uv/VgzaWz/EBP1WfSlhdl9vwq4vxMSrSUbGK8NcdX+r2kmfliKMMaG4sQsn4MuKOXMB5ZV8oKmqupkZZKwoU7ZPyI/+Y3jq/ssU4ZTZkLxvGvEPu57UFv8Q11wXV97nHv+IGP2vnuvID7OXfxwwJJ//9C6/4TliIES9bA3o3Tw2OpEw0UsU2gLEik0GL95JVOaRA6CS7rmSrIl80H6yJ+NKR9QQ99E6mBqn3nfQX/YellQPL0XnO9qBtU+GB0nPrPX4JjEuDMfPFM1Rh94RBGsFxN3gjoT9/Xpt/N5ukbNt1IanEOBPaNRsOJHvtCLgazXJVXdWzojnnseYkbYZXRK944saRevFF0CYEoqBmNDg9nP3rnFdS1Tr1BX5hXyAu1d0pfs8SkYpOCG2TMs0ol+xvpi42lyxXJyVAy7TemDz6+ynrNhbXXICA6eCvqp2+zdEnXD6V7cS9ao56GhzorKF0vaoksTkmfEu+xFqvVNusxXrPknEF2ruS5bdY8Q7MD6tU158OsjImOFpQwnD2tm0qBtHXLFrDw5NftA8c5Ox6DSo0yQp5f8Wk4D77Ie1M3++2OGP8xR0SZPGU92PhQR0nnVzZwz7tVYl7JZ+PUk87p4WhLMw0OpSY+M++os3PXOGETc5p6w7fQs1rSejbhqej17vuDLOB5i3bCFo//usPVbyKP1tQfwByKUL//hno+d/4/L5Cv/Nvzc//rvb63d4YrFTnjBZ6nxzK87/NBaZqs9D37lRRxtLGSgV030lH22ea/bWB9R3PNa7V9qyexca9T6zK8C/qH9E4a+PRTsyji+N/gh+vp3iNofznDByzJO+VAk8qTuJYf87Q7zkGtxwiY1IxwODmqmmrrLx15UMfGlRfNVi0uZ69CTdoih+RDZfCqbJOb2OVfSvMelQ1iaMaa/p7O6ZjRRS36kENu9AdGitsWzGfnxzUqX8Kc/K8xHYl2Z0gsOwthcbc8RBaeUBzof9vvbv3VGOrKVTK33ZNYed7buXqWjXfruKWrZRvpgcMKybQZN4WF/TJcsnuTvPzQijBP4mCNa8aE/sLivf4J2ryZo4M5g+3B3xmHiEL1HwvU9pr7w2drgviT7jHXmpW5+Wd4fcHlPa8b4WZcybxt+Kp+0+AL9ZY1CjjvfxRdV3SlplxdFU6aCftVlH5qe/3JnLhDu0/iF7C87hDuM6P0BhnaMrIYO7eN3Rn++HvW4+kLupPHDWldRE/UXu+dRm9a0V1PtiRd9cnY9iCVvOdf8w+j3Mm8Gyl8G4Ph51mMMV+iezkUfk6s3Gq4e5lIEygVn7dhGnrtXU59X7NKuLtRBRxvtTL6vNuZ70T+8RzN0yzixYaqfdTjpJlUv4YFXupPz7Y8BOQjue5GwDF/6wiXXlpmmUNGKVBLeAxLQYGvhnvnAuddG2rJL/rBwt2FUrz3k38eU/cMu6b/4U/oRtJf83uzLcDoHf58SfnxTsE0XF1vu7yf+X1k+wYOJMBcTEgaw3uzWveKImJmfnLu3h4XnAyx/UFuNfXFfveG2C5z09i4cyxZJGqLUWCwp08ugde1rUl/mByytCnCeGvTssPkdRmTtgiu7XDTu1+epIKfU7n+6W+x4IRWY7BGMMKjCtOdFmTVq93F3quMFyb3weyPda1/XTcWMMVlfGBaB8g3SOVkXn9tavcbk9lNaj/mno6BsXp73+4f7/QH5S8zocNu8p6ESUr5A5C8mUIGeUP5GJ6tB/YeS9cHU6l1Mjs8HiJ29zNOuWNyYuuKQpGffLD17ybmCF59vfVQ/ovFYliGdQf/fXVx+et9fdjhr2n+y38iuSEV35hzYEym5YjR8adNYjQ3RUueDoW5TwCy38bvDYurjrvqLRuSuFXiXEJoK1s/42OSNs0KjWxGgJC4a5rw/4fX6H5pxBWl3alUn5k+OscwCNe5LeoaC/hEPN7PoNarUx9S7i4NB4N7Jq3Mejt1/xCsJPenBr4eFzKI8Jm16VgqmLQ4GXMXl7PlM1sh6heLduirYWUE/I5BLvaYY+4QIw5x7w/j5wvz0FdxAsnItI1m5KfMF192jT+pbs2N/E9k3Hzk2PziVPD3Z61PFJ7uY0J5QBObBLe9x1Hs8RrBr+Up2x9B/iX6IP+lHS6zI99/lOfvpK5ddGpOHCvzOQf+UQ/jhL8ajsGACJ+VyvmB6+6Leu/2DCeeFzYcbAPoUwbW8uefzAntoCBSnxc4VPT03mLlNv3K37sn8zT5T6H5h6qwqBgOzAZleVcRPJF81qLuweI/w+GpoWe6qjAagX4cGYJ9pCkhpmLuw/abfGI2/YSpuco/n0fT6OOFuK933efXiCp2fJkf/NpNU3QWZcp2vnNeF2LfuAtOyic27sdcc6ft/Xm71xh9vG2r+Bvzju4gb/6fm+5Xviff86OfL+R/85tXSGx8V38AnVUXjnZhf/5wXhS+QxeZocSPYPt6o71V/7Y97nczqA0SkIcG/r5RmfaWOPaGA16WyUsz0lt228yNEFDJSmaRZMZhm/4lnzvxjtwJhPWLdhjqOnfnEedNnZTL1s2SLOrLOPMlC+jvkT2nP//WSwMRv0EBqDI8ilYpujZCfjpAzLsFljEYCB//4MVdiXiM9q5d7Kl2zw23h5Lx2iNs9vwhknXOEyYZ++7PSy4epH7p36KMPtid0xwgcYXtFE0Bc1JPM3R+fH6UoAG67vvaF2UyF6faDQX+Ectehp19KjmWSa1G4D18offwM2blGl/yVUwifs7m9KIxG3dg0K9qNK6XxbXzmDIazBQ1M2HHjtOY1iyvn5k9sZ9bowl3qwdHEh5PiiBJwG/cV1LURA5d7Y1azWbw/zgHeUsVkabmYccxs/77NaybhXlXalqylKCjAYSb1WDWz96xfz5gEFgLv4VFJ/FhwTKTFsMrIhTXNmLqqflptwzg7RM+Spc5PDR2DBaP7ng+mFDMSFviF3OMrq1P80po/mbWMpG0nG5s9ybXw5aKr58y3UDxOB/wJ6vbfnzEHDwSPb+Oi5/VMbVQny7h110uBzKtFAiu8KpXunzhaBRIEYF83dPDibqZvPPNPe02ssWSKfpS5a//y93IdghD7g7Ok0oGUA5P8fKeo0tUY7WbJVDvr/g4RvNJZt10aRW2PDe8Zcy8EJhJipyRlnMyVwpK+axvUdZBSRVkdu3dPQFjXuhdfUXslo0twVR2zPTb1wjAomn/1TaK8pPcQtDI9t2vtVzvk0BrkZMab1OW6Z8L20Ej48sQWsYgc9vQ08lLSqtD5WFDfOVP5PaMTo6hrYFwOIjpr1ToV2bfFVzVBTq7sH1384ZbkIg7Wt77xJQlYZd9ou/5gWOg1zew2X8miaS5mLDHxXcoeimQ2RSqeOC+PbZwa1G2/PzUYvZOrrx0I3MsIyIS7bJNkTC+bOz4hsBrdMxg7oG0Wl7pMq9tkqdVoZt0/hrztuZSe+TvdlD/2MY0pDIbhLRfXskZcHAS3k9KMdxylYIqhrEqWoqJ2bssAxEFnvzuW9MzJ7drdnaJ+HlB2/2nwA24TeolfxDcjHfe4edLykNoTLPexfVdM4iQ3PVYejXiOxu4PnpjjmZ756N37NWWRMRmvg5akWSZkrY1Jl7fnAvYzY7xKnAvorFcBx+wxe5I7YmzknoPEVXBdatPMtNGZGnc7Z8obVhmoZBKC+J+9+vIKzWy0g6+gwtaYPNp+rlvyFbjpbEk92Egzb8nOQoAVyq5O5Vp/l5zMmHdH+NT6ASpH0dLWdOvQGcbXnhwRxtZ/V//0Z7DXdBf4XkLtwlJYIGIgk4sAR06+9uwBjXl7uOehSTFgoRmrRNV7lbaoXSx832Up/O6kSpzP7q1avz6lJ8XA4w3Pec3cm+GrJ2rUevPEni+Pe4kq8INDjAWWOo2nNW45W15BKw1qxl9vt4XnLO6BUghgtPzKGk3LzpnUkwkNtcm3JXacqoQMsFKpkGulQ7rEnaVjppG6D1Nbb3J1YgF8csig+OFqFp2vpwrNDM0UH4q2TZpyxw9/0PxzfM3g68+bf/aNP33j3f/jiZ9kdj6392N3dJHus2cQ/bEnqgyBHEex/N4n5Qkv7P3ayteDFFi2T1qYeGve39mWFgdHUuG776pdffX7N4qkDBeRbI9q/e0xwLeIgbe+Oe67JrkA67ClcwpOMD3qLl26iDM82JEbVnK2k/k77t0hhfqqhi7WUq81vhvqw+hjCnAgYUscNNer6LEFycC1fLOr4Fn1OwZM9k2X23hZ1hvzmuCbP+P2MKqtds7+efLcbKQT2mHdYsCTtzvm9zmv4OOaJl72ET9KxKfxskbl0bIvZW0Mhsl8gsg4b6wyps13vSuRVy3sJcZQpFAohRVDE8PrdC36Py5QeiU579c2H+uZjZhuXknabnSuoYUURX8YmyC9n1utzcjQ43Dz4Q5qHvx6rOPBCTHq/m5wbCsVVw0dUfLpT/3L9o4Hx4aJy7X3529VTKQJYGK2rKshIgb9HRAtHApeT3anHd4WmdoCnkYjI/84qKdJd9JrGakzdup3w+qzHcrBSX8w5NK4qJNKJ8kuq8JPnoZZhhsBNzR6TZLKZdYDvfMh0dBSQ3HqKru8e5+47s6AjO8gP1VnH7UsYWuPP7xGM9mz6nwMr/X4i4enGxuA68omdpjTuHNi8iVPwHt3aKMl1QEXmhYTZWlP9Puo449KxP3CxiQrVThaNZJUHwoeqwWNXAc5tzSo3QYamfzzvnDv61xs/yQCpEj2iNejqj0vWJkCE2NUHOophedEikcq7D36OR5/+A8DBMonZ2s97loLULKkFeofBupuJs9PsgVaBC/ofZSw3Bs29CbdrN9YqVGBZLMsw4oSsUsb66MLmNYDhYYY1HyVQWcD1b3LzK5RecJm7nX6wiH/PE0fBDWkD55A3UwlDu7LJm1GSteZOGqLnS2c6RL0wMd+rUueT0Vdnq2C80fnMrvHjLuQIKS6N56e8E47xpTNk6VVLu6nejFAMn+qO0sdip5I9hiDY2l31vk1HVu4i0B/xljGPM/ItQui/9TXaAZ5/fHSTLedTqfNM97ezJXrVur5NmwL8tbgYOy7dsYs92Sx5a+N3ZwrlUlxD80X5WBHat9/6ZzO+4xBreecjxS2lhtJrpjcdYZ87kwt+AnV2O/XDyFDY0hDeyJGjqtbP/1Upycz7w+7TCH80nrCXSyqbV974M5ISKRHhmUEeAgupeohs/GCXea2EUtIJMWP1cYMXcB7KN37mIdxUyCqlI40Huc9W3WXiw/MB4f00v450WjXicqJ/NwPV6nqyvC2dnPApmoNb9vL11wkFU13/5dYrJ0ml1+9IIyOKQbEt6BABseki0hOMWjfyOoYWxan7HPQqgSEXPz8K7OdkIe8gVedeg/+wcJC+2inGB6cANwimc6acT/1iuPzmtHJjaFQr2W2BfafBPqXVsST2Zz+KnP5oP/5jctki640yXYf1Os//rq/fV/y5k++HpM8LyjuYmXLLGZWftc/5Lc+iOp5UvoducMYkQJGdGkspR9sB6DPnxzzYesLy1ryU+H/eDmV0lF3OXfta5R8S2Fm6Mgz0a9kCovdduHNKORjROlvB0hT5+0pbp+h94IaEZ8cChiRcbV7NS4//TsdZD4w5xHI7Mc/Kty5nGvvumkMTs6GM9aLTjY3CSI1ee7BG6utLnf/pzWADXfecQe4u1uIE2pUCj2/N1F76i//9q96PC/8izvupBhAGwZm4xfU7xix0xvBj0XhdrxXcOPum0OdaekkRrncvlQguqZlFo8SfuRKJsM8FT9uvWn/xquEL7ixpwm1B3bjJf/U0rkYyDpQyWgZ13/vEVhTvQL3uHwqwmDoACRSp7719Yi/Q+lZDdza6DRV3Oznb64mWjhjSnOMwZGjpaqsnXclz5xRXMokbKnVPkoUOz/OkRGTxHaaCn6y2xQP6CanO+A3k7/Wmn3jVcMyOv2Jtn2pKOGm9BnpDFvXuGHEiYMGQZw+d/TvjcGhIBogsnUY6yfVuZLzj4jIiRgHzVFg7typE4Yzp4r7H7/IGfCW5MJgzH5JYZkNLNxi7yupY4aOTtdsoFt5mZgXAAqfuWcdBt/k4dC7flwvnSpAqHW2/0C0tl9zdJt4azQVjIM9xFJelCf+tmDscy6ge9YisQ6X3GHPOesJ5IMsZs/3JOtnOOdRIiezvabbXrFS7X+wSVKDxxF3yq0byeWH6dpwKlmU1jvkA0MjmbmeWjvNaVvreilydgT3txvvP/2mgMZxOyydCwOngTooPqqz3rlsGRk4pQmiXj6Ke62fB9sUpCuJXoIefPSCBkUfAo6Bgv3ig4D88aydNIYPakSQuzJoxdjnz3S4flhBqFousX6/VmrZe33G2Mu+vrjtvMolstB5MNEWuiZ+ccSVBhiTiiLm3tX9t4Rs90firjJFWNpQJJaLDm9QNekRkiI9J7177cVlIpAz4pC/g01btQOPf++Z5BK2YpdaGT8c6XRlGotFcVKtTF5OFkhPa1TofiWgvuUAng3GoqbNeRv0SOLuIFUOl4Xzlc4kR9LMTamsCCl6xUwflcT22v5YwMP8lPUajBhJc+E+a5VaPHPuXe5iYVvYyh3oWtGFua98DuFQLg6tIOBrTmtj3lwXUFFj1H/K3+W76vNVguMcp+QGw9BGGVz1FP7SP5UbZoKSfUlV54ODo/ugfY6MoEKgd+AexDwzBTNu90toNJLffuFuf0CcVPaaXjk44pkELPSHWiab+fB+XR7rWdWMwrnzm8QI+ZLcQ67UDnR29Gs53ZhRM8ZlRTBfMgJknQqOyruRLrWBvewM+WBkpw66xMMU13jbPmMSG/DRx8w7B4MRRCy1bUQGJ2QorsMez6MSo7JuJ9ciI6Juhr7t0VixpxRY05IVyHm1deMJ1aNDuTWX7lkLGzGeLA+bZK4f0ht/1E5pvbMB4hwRUqNxewD4GjU/CEPHuo4OfzaoM9Vbb8ixLuzM5vJaSHHYIzAJnIoKvWnTtTV2gTAPcCmX6uPGJw5HkpVguBbrJDXtBeDDBSfbza/AlD0wvuUSNvQ13Ui4vJJd+8PT+87Jk67VDtehoRHrH2gBZ7YbYaW3jxalR5Q2XjDdlahwdbUA7FPHD2PkO3soDKpjcmjWzD4Uaf3zaCe7CjTaqA0NTahVUV+Zxpr3fy1MMmd2vz4MEYXBhplYVVxGl7k0NCFDqjLGlYfnWvE/oByNMfKtk8nKdDKZZNnPudylEVf2RW6cPKwJqU4L1A2G5tXfJw1TfADKu+//eHBInAe/1oJ0Aeg2bzdvXR66cb/ytzMvzDw2U1st/MldBXlYyfDky/0Brmz1NgRSniRFwVpliv4Dlyl++YQRhstgzGEHNSdzIW3WTjCrAJ7FRXl1byk25bCUVfl9bvUU5fZ9RucrIfOPZV1d70Q/kZWSWc4GjCkojlId1mcJIqdikS7nzSept8+vkd5XsgY/j1GxPRY9emRTpmJKF2TddKVznf3pJUqZuxQXRs68R4GfZeb1i/Vu47U10H0Z5hKSkvLKI2W4YdBQmSgbToq5X1Glzyqmghkx40A5rVcvGZO+Fe1cE+50rjr2AgwSHm/3psd7j+Q2DkQrqBauVHvnZ3+gqFYRIpqz5t37DCY+XjHGL5EdD8lF9DKXqcsnmNZrY3dO9qwnLNSxpRs4XT0YhWh73h88YMmJLXLllurO8vmAUD4cV/pG8E3mVmY9QiX3RvgbsTN7QQEpxNzqNYWEeQb/wyRSTZOHTdNFvZ1j5JxpIyEwYRz/GbBTpYe7jOBEavhgHQxcp0x7PtCWgoPHvcuKN+jftxYYmz9WnI9QyA5uihHqEoe0Wc34/Hok4S0FyCY80oVS5JMytrktayHXlUTlFr8EEIvklZQxSiv3D3454ByimWRWpT3Vp2R6zZ2BAiOWeOhY4Xs/ymCjCgj5mJbJdWbOzL4riQgOrMH+fGI++sjU7LQDMLgrSs2rN+bpRwlP+UdetitP5DTITRJV6HtKtBZSwH+9Ew47f6phofaN0nOPzWobmvLoedc9Pd8X27tI1lf1D02X9pUV2/rhjfnYE1vivtkQ4dkXS4E9gfc+FvnWMDEvCz6PeOIa0JWE5DYV/Wr8IHpMvBCm76axBnEcphWqhvvChv6LDr6QyLVnhe4K/EvphcAlc9PO9CQXAS1eGkvyfvzsN4Ph59Zo3wGnwECJGQnV/8VPdlflCPTKYiKbPf/yYso/iB6ACOsf01cSy6sjLl+ty9B87xuhDyDyoaZg1mJhwPrA8B7UC+d7rrxuaGmgRCKepEgfogUAhVZOXzSc7E4WeoPU4PDe8P+2EBshUtJtdPpWf6DL+wy4xL3GnwX3ZSuR9gBJm071p2uxDmnWry/8kfxVTL2r48asbptKKjZtejA7iGPczgCyXYvOLVo0bXQkSwksodVBbavaKMidUUNP54B9bml8woMhD4u618NTwfasKc0nVKfUAXUzmKr+X5w8PDrVanOLn1XSpf36mcyfUd+N1ZDKKqfretaxBMUNhf2xVyRvm34GzDPHUij4jDgE5HAXNHiEerKbEGMweQSHkxmDU7WA3Lnxpf6pSgeFqRefQ6Zv/kGjwV2INF0bk0E3HPH0nhkgylYW8oLcFF/MOnnkPPSujZG4l2SvaZcaAuhbv72i88jIgJa+0x/8GN16+Niv/VPJ7KqTZZXp1GUImjvxy9EmxaYuq0w+8Lh1ZstPPzMud+KT+dvj8tCYPP1KvMdo13IBKbFJivMTvZvG70YAYjDLZtSGGiveNyLlBoP0PHxYl1cdkARbxDiwn5KsJc3i/pY+ydzWIlkIcHEqezU3km5xG3cagPMeOlmkfYB+gx1vnP5Mq2ntJBqK6Q4a1v/2tVP5i639//ofhi9Gz/3qjo/8zht3wmsTfEoeHJF8vquJNVRGasr6Snz1CeeD0ZCvqCqoUa8qQc2aTaS+GvQj789RX/t2He2gNT/Fkp6+SXH045YxJZ2/R24PTo92peLzg5BRpcb//XdEraIVEY2HNnBXY0mj0zXQWTSrGUcw1d3HF2hVt8p5gRNj6pwr/8FJ41TikgsCHrnLUNFtRIaCGrnsPS+PeAiEHFu9DLfDtv7df2RGJ0rnfsoVV1ug8OauVm81d7fOkNkEawAyc7gff538zVF8xrRrFbxV8CsMqAHNBfW0XnUlbli5gBDpWKXnXCG7SBa/C2WPZZoSvUfEIQp2kh890vZ0h1cegtAsBChxr0ce1NK5pOrLUdavmze2RPQkvCoaDge/4qqewFKBMp+ZzKC9KmKS/kNcWPhGrD045azG7oNs7FgN/boeH8vUThIzw/KzqMjDR+QJssTbPjbSmQG6w4mKnJe4mizY2ABiY2k5DskpXOPM4A7/vmpmNkyADnyH95Q6jIQpdl67Yei2IMcL5XvzUHRyHAjniVlGV7WnYHE5MeBRDPQSZr8/qA3Ix322/PxBtnUDFT+7ERkBUZH0rgU8SneKVh3HyrsYWX5Mju3bytYC/JfHD4Vn/fcZ+4yuZNo1d/as6e7ha1MmV83/tCeswK+mcscrh3395zA7OVdS2k76NFf3iroNiLnyBRdOfS0UNqG0X+pwKX87H/nXftsmWzsmWCzsZKFnqwP5PVQ5CObEXwq7F77YZS+MI4Nk8bqUyT3bbopdL3mIfbnHYYrp1d/UL5GbEBIS37cvl3ULSY6uHrsIgqe+klZNFS9dIhdr50hupQv64dPah0/vI6ujI8TsXoILA/Ch1Ud9KxEaL87Hb37weBaMeEKkmgmh89L0jcY9QqYqwry6TkEjbWmSG2Kyl8IboSXNYC7T5XjT+T2YhUSY+2Y75PGhkp/iXZMPTPMaRFVGSIX77LzqaRvh3qPMknoAQDvinKrNR0YePUhJMUhdukmS4ocag4FFnvhyMLzRxVzdTO7wMVZ6wpqlZiqoGYHS6KTPsBbC/Cp+xBvQ2NrGZdVrWufRT2liuzHmMnPgma286piiPxIbHT84esxW3PnDuqL2qiZZ6RK1l3I0w3ds/mqKpKhIKwHvoWivia1aMuXwUufNX2q8UDSGvWpAUJV3tMwr2O6dUijsFKWWDv69iaRzVkJbqlf7AwrmgUtt38aAs/S7/vbRBTSir+m5YDKdzPY9h77xpWRyPpy9BkjggmPzRRdCYmM66zsBuDkS5VyX45JL7mo8HN40Amtf4aWn8DZeynWYFdo3LBqR4feoa6fAXHMQ7vUa00ujIWUAKK7EJVUx33YV7UJrrsOJ0m98EBKSxtCYp3zRqmLjAy7qrqMw1V43S+gZprLVHaAUOkDV8ya6geBwqzORK1PVGM2IWkGkJSg1GuaNRSntMKMdGr8hbYHda/gTAyYCUb8VlYj37Wbrq9n8FUwVD+Jv38+Vr53affuZM/W/e++htjv6f3WnVhuDADR+2TxKWG2CuFeQiKN6+gKna+CZIa7JctyvamnwJET5CXE6Wwlz756ngxdIEdaH/ToZP0TrXOKK4mqmvbP+WcQ2JOvJ15F5YyYf1Pr9lFzwGN8KxvNEBeAmx9rH37/susK2lD2n4Xeh3iV/6K1LHifJSFYRZ3Q5bPsckeMcxAU62t6uL/zMNg6sYP+MZjJmDVTSSXOTdS91zgeZswX7k1T9VHvsaiwM7ZDN0u+ek0Bskj4an2DiRZ9NQHV830zpm6j5368QZJKf00SqnGsLeSr7Q+FaQBWnjMjt2YlMqV1f0e2V4JPDoK1cYN5MFKqK7Tgp54L7VxTBh6bKeQ/nmfIj+K3EObuW4O6i2he75QN/G+cyNihx/zgLxjcBJJohCGDV3mzWGM8N7pvHMLJ6cqnK2GPqnmAnVweao1lTbo8TyWLbZnemUevMLJwUT/0bBM72sE3bV7XWEm2pDikf+ZsT0Lf4tcyNlDZXqCTE0YBJ0sLDE0b8agaAj6zlzDUI0EpDkz6IBnRmxGG7KCB2p9qnW+ae42cP0bsTUIdJkmUMjhe5exkk1YAqKGMPt0eX0fU6meQbTFUsA6y2HhwRqbrXskCuY8dMhRTep/Nz1tVtFb3VlsKZ6y0zoKDg+Ydhj1W0SjDxUhsGFO2cydagcTb/kVhzG1800X1MQTuLX7U+3fxunKx2upnL+NjEbEDSstoFYvFupDSR76xQYx/zYnD+bH9wv1aY1YS0b4XmZWgJJkScnKN8BpPcblB/iCp1cYT8PGmKw1w0Ot1366/4dlbHN4DHg9ff2piPnI6fBRLOFTH4r6zMun7JReQgNdrHT3xGfAJTtwuldmM4F1Z9NihFEChX5VFamjpD6psVI3FeBK6Ad9Cr5P7zI5gJI+EkP1caroUtRhRMGtyuyl/shII/p6XJosIw11hyXA44UHc5oPsCVz8IOg1uJ89JxmjAneS9zAelwz8pDEMO3vb3hRqOZzXL/CztZT02yAMN2MhIrw2Fkz8Sxe5uJMKHICQfY8ZdS/q2dXHB5GJHkg9Oba7v48VeudNdd6o4/NVaoI/8yKVi7DqHOcztzO678JiZTWlW7gu+tRCwLD+gVFD8Gf6Ib/W2Cvu3dubQ8Wuqa5UqA2p2KY4JgnkRyvUwVebjZjmdVVYTKqYsl/E1NqEuYebvTjp8T6x9LXr2eCH1FDCsy4QLkhgns+GRK5ZJpbSrZz74lHkd8Bj1poZzOvetRjpzzPgy8Ct5NSxkszZX5O3a/YG+EcWIdNUG9b3dmdwDCrmGKCpJ0S1C5sfBWN/2R4bw4Xe2jM5l3SNgp1qNdhtPBsjfTLjEGUTpRvvvs5MgSo/8XP9giruBKCAtbIsGn3/zmh+SrVWojCGcJVe/aESsii6iirpoJar/BK+cGHYN0pdAn/rg7o9GJXe2Mqqn8Eo720YkuU2K6kFY5i3g2d7klXqpU2tIvZYRt7NMHPtlRO/96mOtXvP+z2p3fOSOj/726y78fWf1yPLDMKoVvnDg9Y6//N/e+B0CWd+gJgZP//5Nxb5ABCOG2f+6FDFAy1AuyYlLc89eIPAQu+Ax/Cxxmtsn1ijKHVDSgVhEN+Kv+DBix1AixPdMWMdBLgLIIEob6GR1zq6PWR+cQnYXTXJG+LUB8ooPFHHAPjMEVJoBFev5O+XCDHpJW9bMuewO1hsxhkV/9POvnEjWRo21YET/bqw1KcnUkjuPPiaQzU/4ZhMY/Pel79aaPwl7IBz4pMvXsFFp8UPHtmznx6F0Y6tRaB3zS5En6jlYZF+GAWgGlaeK/M+NaXt+pJxEh9qpJHefz6tGp+qgP9dfZi7AVarFPJ9RM9ZlsUOmOGZirrc0ceJiZi3M9xxLtSf5TLJcJ/DSIc9r/T5T/UwppHOhQJYm3FbdQF7AZp//i8+2A1tP8dgU37bTLViWrITFwGvTvxyroo2oi9j63GalkG+VoPZTMX/w8RYRk62uhfBpRspbkoIGORjDWQ+lMSN02LQ46GuHZf8dwBNICQQuYac4+5nBiUUTdCGUICpBh1rhxnPA6bKoBKwq+F4H9zm1Mq6SF4lVmuxxyr6iEXXhAcP/uaWK7aG1s4qdwv3uEHJjhEu4g2P164KT0tkrf3+41R5tmYqQ5JSjakHvuQQhfOEtzsulCcXlJQ0XbKuV4FBd9o+PtVD9I33U9DpE1nOxqSJ/paSfIwsTpqScnsCyiq/5dQS897KgDt6kk/zVDYDiq2E5xDTUzzkoe5VLyyJeW5qtHUBkKIqcZ4/OeypTb3l810XtcERP89EOBdo4r+/8umamhiiQP7VESRlx9EYsvDY4VdIsKLbLPdB4O47C18OKOA61jbaqlcsqOR/T0eW0WtzByYVTmJ9dHgzff+AJdlQ1RR6B8j49QBrjXjCznGTtNQ0uobMYVY4k9mJ85G3gQ89ewjb5FQmi5/b7TD5lvK4ofCXqSk1xcHHNpMVq0yYruvRSOzNG58czVvKQlktoSYhGui+oymu6TFX0QeX+BHBpfpiai1KjFInhyBUDjat9nUPRRyzjiUJ1A8sTo060snDKfyxT2zcftuqQoByOjBAv4gRtr22dyQ/bcC6oAyn9MqInxbjpPTiob3nEWJRvms1DWu3UVHILWk6zONfAnhRGDzRxbykBh0bFH9oLnSqRzzusqnG3rG9dRhU1lkrHKsPIEYlol0gDThiv58p7XSbZEmeAIhSlwzroSlMEHDv9d+dNvnIfETuktPH8NcQlZox9yVWdGzfPzw83uMLEziNFk0vJpM0HDB/3VU6PKMI9WL9y/Kh5DguWv7AStCTE+qvGMHnMtfMuAenvgjaivdif2A0/HBdko0MM3me2nY7QV28pe6aZHBzDWQtJIxS22SaXW8hVpAs/8fRGjFbp/ITkLdigbDvVTTFymrI3Y4tHUN4CmG98AJxXQ/2j1G7Y4jEGISM7FXddVten7tiP1vKhO3rw1Ye/H1Pf2Xr8ke9+cqvx1WfSv/PDT1h3rIbMc5Cbnh6m0srngRaicKnc123beOdI6oHVYPCnQLiu2hnGjT+uuxAcYrQ/236flbUr2lqVrEcNbcsUw1wVS6dB2gBVSCVrulmfwKtaiu6BhCSkZN7RL/7AhaA/E9295LNsS74vbwraVfJe4MfBCc9gSIwnlbuDnYJPIpe3VTMEJ6VHhXnvQC6EdJGdFILjDWanxsy7jZNnpVwipWchCc44RocRicVve7xeFb2FA/F0IVs0FUgFrCwI77ENClsPVi/xNOg9ynfDVP43vU6PeRaYA6R12n+tGlrupByLaH9NBy5hgyonz++ZymlcytEjZCPSaQyOxoAeialTw/rm5QGtCf92Ud5n3WQ95ugUuyx3SpfA1yCmAVk8oVBjRIxDDwKCG01obcSgGyPpSyVN/AposKKpO86sxQSPHGGrsbGiYEyw1fGBvpDLlA4VNs8cJQ/qYsBOu60boIeXvqzhhfG9A9htHCmj+s0WPwF1t/K8GP8zAP3tCT6vNeZPa5fqyBYch+xiUZXeC7RoIqhyxwzH6Ko8JUixThWxPO0JWA4G6WktFRtjLstMRe1l2EI6ycUKJeolcphWybICRD65EiakOH4eErZ0Wwe0w9wIMa+A8wMmc6GjxjlI+MDt3vQJWYny5DvhOlh6rD+VZeZHG1vG5D8icAjySkXKcNgyxE/I5zzoNeJ9QdpI82IPLyryqIV29QJXr0rqYsMxc/oLbvtmhh2OaVY+PTsTkB7ULE8mBXSRoPmjCeg1XWvHjeD+SPt42kOq7ycrIGMLcrh8cSkGs5z+hu1dywuDeqkDiC80xJPklZbJEErkrKxV6FHbB245hE2XXkxpqXE7U0bReGUZS5n7amPWD5tyDKfNkyqbe1qvy2vQzftq4IylvLMyBrcP8kCYsUvZnNjpPSp4FRGeIFXGSjbzGMjzXjl0FgfCCKTuajsQ09+7bl6ihr/DBxowzMzCfPA5m9SpeF+mKtN5/ZULkvLWlkqQs8KIquDoB6vK+6bnACCKsQA9qC1fNTIpfyAVm0kudIJe8s+cxrRy014dkQpmt2P2dWAPT3jtWtz8AMkJC3HbnHNpwP1b0O9cLTiRZBK5RS4Y4aTpzgUto5zduC8PgDGlD5vJaytQvvR9o13PfY+7zCza+zujtmWOqIIxNrtfu5SiArv0GpXN7lSHK9hJ0Katj8yGvcl51Jt+nYMnBc7PMnleuwbNm7oWXtMcNlf7uHvTCKehwJ0NoU0D0wKX6o9HxEGd58kHVYeHxbC6bZ9vQXuGtvzttKjtFDi9iTQPaAyIeQR0pFyomxnLK6PbQDCpcd9ydy5C+zvtHIDg1QEwBHQtshp315EgwbzzQYoeo8e2Zf6EQlLDXpH68sTJn5VHBPT2bhM9hAknUX9cPn1qX5p8d5RKj2EONDeiihfPUfRj+mB7fbXO4mf+p1Yj+YmHgy1/LL6aGMQ/As79zuqjJ3vuvuMLF6WvvVb58vb/5foTQKk6InE7oBPnr751CSox6NjQKhrBk1x6rKzIx5Mw5KMXzHA1JEYemAWDeQPJJi9116upyQyAOoxv1tV5bEymnBDfduA65G2D+0odyb7IU/d0b2hrx4FMBp+RIzqyybhTJ765qkvuzKvQ7FV7NkajCu2FzXghDnS2kPxJp1lvMEbmp6pqUj0ioQ9bGO824l6pG1izJCYSV3EeDxqgoZjGgbz0OHVuN1Wfg7nIiAvMJR2RsnyAdzMJp6kMANa7BNo4Ck16Ml/br/PX8UMULBMVaqhn8ZZXJtiPnzAgOm+LS6p1tkXakOT6M5Dc1DpN85xqmYqSjgWpzWDX1Ob15D+EKYeYpgNoWZSYlpV67lFRH5DEELbJPBfjOQhEocnVnMXdrRxIbjVF00zt029sUP5z3nSIEQAjLSyGlFeNk3+HudaIPc4gkqVSFese0z6uAweercc6TIspMgK8lVro6pEQJjj9hUJR/oRZ+d3ZyD7zUCL5MqMWQ33nvc5mz3oAqo3T4UpsXGDO0VRIlTWrMmaMApOpnDBTVIMH6eXlUoc8aYFQsADvInUguxiLaTdqWL9AqEl+Gc/StaUuJGfHrpveDHbreV10drgPxpXhvawSw8Sci6qpU6G30q6qb7VdM0JyUJuNztNFB1XcYWzLnO10Vk/kLNu0VhHuq9ZVRLGUSeOyZwt5i1Qqq6Eyd/eYA+zDCcv0MOQkmTt5nCmiW5DtlefkQD6zBjZkJ8t7rycZ0Oq4GFj/1uMYMNupctJIvOMHfWOS2jhhxmAswQvOHN4ewAdpSzrnMUtD8ZJpOJiBZVqMMC5qEGqaPrEzeNzMLBtUsXJ+q/LUEgU17xJj+trYo07dc+P6GSpPLcFiMVAbsirgc4ut9Zh2qbCv/93bfCftEnEb8oApxrHxvrqmpWj91flIHISN3cJqDfgRFNv0wO1kjMloGFQIszoL9kULewkeOHp97EzvW4uX1T1R0bZIrYvLOjCP0pfL98JX3St2GiM9l4QbufuBpBArl5DndS6eTpjOB7TYU5XUpst0HivF5Wgy04pblvXy+miUyV9OAA7gCNs2dNX7GSJHgom1fdwsoF3jV4NTpnLOiE2fA+yHMnPaPw4oVtZ4U8ZuU8K4yO1bJsoZ5jyusz1RZlvL2jp8Kav7XkdndAgLg3vB/mRLd9nX1jtxrBJiCh99+OsBaVUvTef/WkNwRm2fwUnd0N77VsBlw2KipaasjW9ujBuaA5+XK3+jrEb8Wg0qp3GAhhPQUmHw7A/SuAMOCDoG/Aq8Oycg4sNlZcxrxolkOag7jT7dKcqnYphMqHnRthrdSWYrLokf2TMGRZwrElWu7dbGRd2FPCqn/FlPvRSkaxpXMRqxJ/6BPuOD+gFNhGRXdkqRf0m7M6aT/RW6xQfv2IevvYAo323+Mv7k6I/+B89PT8QO1d7/sO/Ig3fMyPGlQH/0QX/n4eNWpvSkpiiX7Vbjz7kcMaXwtgvAXbTp4LVEBYgEuMm7c6G4bV9G1QRq4LCkPF1WhjnEmtotKIUlKMuqxnRtujaDna+9vb2TLPkHL3/L7EWZQEDfX8Gqc2pMpkhxJfNf1Y3nlHe/57cA6QhuAyvexZdC/RLzHGnT0lkbakYQOyhm4llU3Xe3PFXMx+uRyB95iz3bPgVKw0C5bETXdTwzZAyx2bB8LXYXe2eZwnmtuO5sR2a9oNSiaoUfZaofsVPZTClyHp6xXVNhmC915xIEHgyo26+Dp2LoB42omW9YaC0BeThOfQc2eFIJaNfUCpLsBa8c8FyK7KeuveJQBRxli5n3BwMDDZYEdRK5zzSenewfV0R0cEi6MJXfcGOiDWMyejKnQiv/MykzdNo9RdNXvbiK63JXU1suSa6rnr2Z1OPWLTNynJulgCAfX3v6a1WBpSYVVyv/Sls7BZmdM+fsMD4fJrXjG7ysAy56i8hRy7nMMF8MRgUfYM9CedzKIPs9Qu+m3U49bwAUb+WdWDZ/VPBhFwcB8M4E/5ZOgH3iGqtDJ676oHKRx0Xt+gVZr2FL/nGEsnFZB1oO7H8wuBR3Oz/W6lXem0xLMn2QmkeE66Vx3watTa/FOruNUzRywD+Zv76FZiwJlU4TceCWjOMZzA+ih9AinU8LA1VFUjKVVqM5Gla7WaxDlzjznAMLz4uM4HXmDdUuURuaMkg2L1UhmnjKm7ERb4UAkrJse00dSYnmsjsV4m8Y+qUVSLswJ4tfiq1++T4rLcB2WEFAj877YnSRIKVP9yWFlWGSOmnXs8ZIg2Qqg63xw1uUBjCR6lsEgkw5d7//2SoEP0iJoSqaf/nJYMipDhSMMDpFfatfL4UQtbk0NDjuAf7vZE3TKVjZ2Ri0EWwV+i9mhHQzrlfCq9AM+ea171dwYBimiLo8KX7RRFsI3azbwulnprtRFZ9zgFOiI3ZVRu25dV00oj21BVMwon1h9bzc2RDQBWUlCTU4Rs+/UhTMbKU9HLDmE91XxWnWktf0dxjR+mo09fVEDzMSUvJSG3VbZx9rZCoYygWJ+ZL2u1BrMQbcnNFLP2uY6AjAo8rUnawk8g1+gYC+8ZW07Tat0llFwORWqAekw+rM8yqwwkMH9v14QtStHdANCD2brUUiownG3VugSs5iTcEygoIEBZIYLV/VeBmKvDr2Y7QKY7Na47qY3EHSFmJ4xshlD9Z7iTKSejoqqXyMOQuxriToR3R2FjE/t2PESvCYxhJGBIAv3rpCYwCPmnPziBxOozyvDgMPPbb0VPcW+gwBcId5OVXGI+Tx1Y4cBe2JHnOTmLfdpnEynxqTBCWB0MUxksydrOkIUwCVcgRGvgi1dq6ZwGKZG5tdTn/z+jOtTrFrYAj9YevrjlavWO2RDz77e9H16Nk/qz74EdkfEnqcibwK8k6NG3SXeiWRliULNRtBopc/0IyOp2N+iNdrYXIVoRdlTEfRCZ5h4gItBTsZamItQYinbpyKHpWpz8H1bInBqW2XNTsCBhzwhjEUHGdY8lIFdKShe6Dj8xDoBLnUQirba8exIHMd/VML1Ls7ApTlMfSU0+gZjOM2+VC/kVeMjrUoKXVZTgU0QuzmKlwt+gUFFcm6BHCUwf4Wu86IdVFcDUHZ4FmUtZYmJBikP1kBdh0/AG11Mv0ITmowpxri8yrZyqZ7iooBdJKq8k00wF5mOKb+cAguDGbcHxwMSDmYGkGkJ82/w6mLB+MQT5wVBH/UZLuar4HmZHx+UrjlY5lS3fCH/hZ42lRtikPCZbFFVbuOwleFpBVTZh89sh6XTP80K+KwFAJdFC5WDI5HRWcLrU+i9TucWw1H3AQhRXb3a3OjsNFP7zAmfjGo25e4IHe+DOf2c9W8AsPqdqq9Q9oY5yQ9AJDRiwFHjmvGUBRbjNRTiXUO6PXscj1jQoWaERRRq7LChQQjVZWJ/nHJ5VPMttCf2a2JQKQwJA/o2fIyWZ5FFmqvEVhBsKoDrr40vYQ7HASX3FtWyu6NhBwFFgU8bApKuBadD3j56pjrWgU72ADETf9acrNSy60U1MlVB631eRycz5bz1zgC2mQoEkuOade+isan0pUvLDOODYsbXWmRYjRAzb5doVWtRo2uWsfdEdhVRifSZC4PscFjD43SOlWMIDxOcGGdXeoo19sGA6kHJp9Yo/MI/UUDYDsNi38fyjFkCJmLlVgCOClalhb+et0yVUQOrsVh927/1vSOze7xoN7y2kL7vgwstzgNuTbGnsONiAxh9CJzHPoCZw19i24toirUaPiDyb3Y99xwTnakGStXeTcgfXxuvO2P+jIMhzeSOuYEki4rGYxxSMHegIsnPZDN8Hwp4av34H1ngzO0NLZKIeXxFsmPh6/B9CoPYybgK1NlHHUBTgynqUw3mC9znQ1L8AZYZf8D5EMYQk262kHKjqlVPb6tDLIv4dHF2RZQaDQHxPZYEKFNZSUV/0VUjs5HAkkuMRxzWYmZ/ZZkBD/50Lg4dRkvH3XMShxY3gWIjn6NhymjaNYJKfDF3OcLaCWyr8U0W4xoQGFmdlmzXvcJ7kZqUD/bjR3/2bAIT96oXsXtUJyMUSelkJruG2aKZGTBzkvYJX/9fJlTJw3qglQmOE8WIfRVth0jWgTZ2L4KMsLgED5IPbWyw9E+oCtkLnS7keB8yCXw7grNnYJrcJCWX1KZjQ1dh1mAVnHuSYeHFL0sjH2mKI4wREBmF2LwElZ+qW3hPBimCo1VjcUi7VTaazL5GPOKdivct28wGEYB54AKCrACYUpu/V2f35n7yV3/z1v/dv7Vjzyk5yJBumP6FgK6ta478tRCCDYycRn5E7EGBNMvb64Eo9CWiFHjOOSyJbp375qufGceDau8WDViQWhwLGP/SOWuolSL7augoBtdqJtlXoHPOF83e1azszrXDQi67KsKrHemDLBUmxtAWgPO/AmgzGIbHFCcH+4m3CKdW5tijEI8FXVJau2+WiO0wwTJhNQJ2CNsTvVSWMKn6H+m1f5RCbI836t2XhmTZvc5MM+imTCJx4ieJTfMgBkEHojACsglSD/+UT8rmtacBhVKTUsLh/BJsV0FnUrkaWqMpG0IpyiwHmLMGKb7ivVbR2FZ1JRSJGqMzeu3jQOsoax2JB9FEcBh28GTKyeKV2zE5CSTl+rOnDguArzEHKauxKh7YZLLZTqcNUGFpe6y7XMZ8zPlnF2BgBF21riZtUvDe13QGWFs2t7hfAApruGFcZXl34xmbjpgJUgjSH2z/mMG7YdS+F+DDT+KuZ1JcFDFugB/YmPF3YtKeybIS4hwdUq0TOx0L7y/fA0RA6moIhX5QMkf/ugRONg1dCQ/N1jqacSOQg4BQ/wCQJ5bKIAhL65nKRhSD3WGnKLRBYlJvf85LrePQKmUcHY5v2HWB0fpmj9GXyerE49BkQtqdQUDzR4t974ELd6g/oLcla0KyqE3YayAngg7ETpNy84zQF048JUacfRWPIcLCdUrQ/nVloM9EhyGGEBDyo56n21gJ/AUeTWJiDBPsbtYYnKMlo6X9AXa8gQZySox954Otj5sMVmK0TIe8ubS/plaOx64gVoqdjCzWBenMWHtnCXVS5j3xEgsFqi+uq1aWXRhyKVB7oZ+6/VkNYgjU+miEfvyjnGfeQzHKZW36gaDrwXuwEWnFjISiM+e4sCygU7EN+py7KS15eAlAMxTGooNmt6cvtxjZarGVP6Wi/uc5BZZrIWbMBb0mskcqg7TJAlyTMkIYUQnSLEStGYOEa6PmKriw47jsk0pD4u5XdLtnsZBLIJGmZnlm+YpbApwOfTw6hNZbhdgY2kxj3qyL6r2B4NxiUBvQxxowpYA/6gG9JyGP64of38Okmx4WIyAB1TOTrOuIqqE+2w1ycWrcfEAXkvJZh7Pq0Bf0CsAWngWLtLKmJhAJ5cA5KRiFIpLYrCD60WPz8JjsJ3LxR1UO+7ypHu2jC07syw7XImiC3tFLPaY4e7VAMnPuQ5GfTgqcS00H9OziwMNI4obbZZr1KOaK5jNod+Tg11m/1fMVKSmCa0zsyTMZWIXTuF1tn32+X4/5JsoxPZymvC1BAOoNZYK7SDg/YBeYUszmE4CVml0po7IaA3qgJj/RKYUPtjBtlV4miVINs1yS+0KQ8EFIBnX5XhliH7wvYdbPd8n+4Zavd5vsUH8VfXe/szDPR9fe+r0t37xxr9A/JzLQimZUYTHFI6dFfMuFN61p+zV41clQQ7qGG4KNzi58EsIVwFfIZcN1WrTNoJlcrsBly2xalS96jPBsQgSAgvzFRRlZjzFxGhpROg2gkU9B/svYdmlaUjuglCSDQi5B86CvPcDk8RjUP8DvWK9XDIiQfx6LvWsAruy/3ZRjiPrvoxpBLRe3Llcxhll2y0xT0txOS7hIGfMqqRapdJRYAsn69Iu0k5jYAcXrkLhhH0cu8hYsR9zbXkbtB1cHkLvdr5iLwXnYyCPGeupgd/MWUZYwv6FpM851GSEkFR0HN8wflXUij1lgqEKkMsyAovO5vzIgwTsUEjNTOWbf63zo1wCnX4M7gBXpgVyys80iAnaPEV9Fnu/nsR2L7b/4TBAVWi83Pw86v6ikqlFsXdH/NTk/R03Ez18N4NdAfDamnYpA6XiqZDwfhAIN6TFGd5d+qQRQ79JWD+PgKeAGcssmZX7cIQcAzmLTWbrYnZJ/wBW8YPBRd8adepJSx4xSQ5x3uZZHNX/YQju7+YOrBdmKW6YTh6WOGxi8yGr4SpKcXBdpQC4bUbgsxBYFZZl3OHtVcoesTJzko12Cuod//QqvPCoKaRYPiJGZR0LJgqzLgqs0s2AD4MwRLQbk9r+OE2ubtahtiM4ic3Xir0h5b1x+xogkCgMesakB75owGtHjUhCcpzVaSuDGU1/35QeU10OKybRncXF4IwYYObdAUlSe1kq1tmCEVTprDguR5FrFFIG41Vg9SiohOFTbnCjE1dqo9Dfxr96uaeiZWZncsmiwuE3qYTq/bSE9pWpqs8wEpzAaomuznndbtaQndQJ8Fjhk0DXBwCucUTlY3nZXB7pj4GpVQGhOgor88WXYGWiFxCdnnSgiMdWqfTUdxBjSx8FznWMt5A+YxIzrhEsVLT8L05HXTZxlkntGQnRD06r01QhUDNzp487Zg1PH30lDolKeFYT5INJ40Ag5GOD03kB80BAYtsbcbA+YidOHato9qKFCAH8hNok1KLMP4XM8bXg0z8fHNTei8E8Z0KwMMzOqyDfYDePXuBZBut/+h4UcuGxf5SiiB+4ipVCrCLJi6GGoJIPZhT1SNJCIqegqj9YJr6raM06eI46yRXwbHIsdPfoTJ41HTgkFJwLn2u9zycbylGLNZmBVytgdJjpRQOLCYin6uJHXCMkF2XKsiT4tnwspuMjSjL3sMo4pBFL1NkpqIcjGj+iAtFhsaHxHk4g2bDkoRFywbVrPO9I/4R7igoJ+uctPIvu3HANLVmrx2DNWCd1XZWStSEdU63ONqiD1PfS4GCc3MgFbuU0p256zLaEmeuoqxLZGmoVuX8udh+pPlxAxnDTeeSJgfvf+Aglt2O4Kw7GLG5vV8VEA+/Wlq87wzkEl1jgkmqcgFgUMyeCzqG2VJDwlRucNmYaXpIK6pu/jBl54N1QQZ2FmCb3nLfFigC6f1tFGCpc6rCVtHqQvVW48FEZEROlVwIML+6JdBTrYGUy4+zkU4jkgnLhu8cdR0rmoh5BgYV5INWaOmxevoZYW0nEmRPjFy/gAFkYijvLYrzh2fsYqSdLdD5sBNS98gypvoN2puWPsXmTSk25g93CZLu4Y1imjWoLyQND9JhTWLHLR7DbpRFXvA/92n/mOEVESyJvYQtcFAaYorkysjMLESr2XLyb70EWjfq1uBtVAK3L9+uOZSQA4gZjITgc+PyXkCgEyZYD+ZR8mj+Cw2QACuAbwfOeX3b5oIWBGE6oQkRaigVDtVvOhZZWAljJauTj0s7ue3ButkIVVzsbqrZT9eOoyxtXoSxrYSmdxtQmccqcZ/O3jQ7UNEDnpFHbV/omJnjETcEfBJlMsjSB70aeFhWXhuuWDRNXy9phIsJDGnMGmoDfQdvgWUJskF9QJIyFeIt10xiGCLMl06kE+kd6+IdoE0KQcsdRjTgM0pW4UxfhZwniMELb1xDjAC+A3vVr5ns40JRhiM8FT+P4FAXMbIEk34ac3egChsPySEcD2TScnEXAkqGtfwVEEtAvKNHIgKR6+oP6O5Me1Xsx6TimmhZuLNHGlgjYFyt4pO8p00HdwD5xIpOtDdFuvGnbPjkG0VEiTZB0jlRSCJIoScVCUnNAYquRSNfOHBi2PoBil52VOINfMjZOcs/C5zYOpKTGYe+qdTDkCr6ao6WfVkAhg+MDIutWD51stkiODJZ3lRdAXyUrnUWJOxA9Serh4NCEMSn0Ci7pIHctNzNp6LczucSuft6DdKyWCJcwPdcsgwWN4NNgagf34UFXqK8MtwUM9KkRhFttA7DK1L7VqSiqSt6jtQ7A6S4GwtkIlfz6O/DHsjCXwmDh9ArltjWvr8b8z2tmfhltBxYBHpMtnhGfRP80taBZ5JZwFJof3Nu2lqsXfGGekxqM/uydAx1kDlO3yJEdMRQq4GwMWnTnhjgvTbq5ZMQiiM8ptcemy6QuRu4qlEbM1LALLwVaMyfPF5XmxVSoZT/AfwBKUelVJ5OLHnogpDAoKOE2OG50XMayQZqacLBj7Fmd+bCltlYyhte3cbynQJpQr53HGamq0vIjXmWkTAfISiwgNc8ejhpRNBLGzIrucMdh1NvK1MerlClvBAhid4pAOq8eHQx2qKgaW7jyUkIM/U1AHBfWYiOBgOLtTiYr+oY/WAbOBeO/Dt+EXRkMBlT8tpmmgTR3jHlp2f8LqdXiHfjcb6veP0N7H6l6P33wG5/8dLWaDl598COIfSK3MciBPeKHZx7SjQdMZG4vC7J/Co+eNFU8CcVXC0YmWa9t9lPuZl586wUfUiVl/XJZjG6WQsxpiHrTqaGuh6qmO2thrpkupDpE/ZU8movKVGaOM8oxEwKORRVu2uZhxIlu1zoh7q9v5w2/jkWJM4urCNu5tckOhZBEqsNhRY1xJCLnrwCzgyHhGzkI//Do2gGVqGJDAfoc5ANiDm9frMugFtl0lvRSFau8SnysFgeymUHNamLEdTuZG5Arm4cOlBL9uqjXD9FVWuWkYPwRR/4hKCLgs0dw3200qaUH1N6BmAasVmQDwC3xsQm6hVV/dO/DtNuyclQ1ZpYHAIK12CUx8Q9BTclFJVAnYC++qUIR4i2yzFIumgdI66ryptqK7cRZFaL2XsKwd0AfIHeu0+sNNSzUl1Q4R6X3dGw3drcxg7Nt65HQGqW2sX9wKPIEuPgaZOgvMc2u7jjJAmIskX65Gkf7hKkiOHk6ol/B59sNYjOARFmbM82ZAtR/ig/FFmcr67m4txIW7bPc9cjVBsSYaHJAnTP5Q38sCp36Z2SmfFZhm/IkHisZQJuPzhXYdTy/Tt97AO+dq4gPv3lzRX9v8BR6aOw/sWDwsm2vDwI3zU0OFGrtp+Ald4lhcSRn8bMquehRwQHS2gHaCtQvzagNvtdVg+A9FnsgP0Pwf/VT04W9yVmgzQJvrlNpV9taiQWHLzsqtvFWSx9L5JsbOoAJIDPGAxC14n9BuQTk0K6EgpXRoF4lP9Zb7VYwpl+VylLZtdeFO1RIt4bKFy/y1lQJmSNEGCVq5RCYJKFB1PL1tWHjyagg06WEIq3eB87dCPAjF0yjDHTXBS0ryxlWuTTFfSq5ydhyEdBz+aoX6YdtdA/CsNRbFRib0MUBN9NE/PHYuFtlQFdpglRoVIUQzAWYRGMsVwNOi/Ye9asuYiRFV34iw+ltdBjmo0xRgjh5FlOlomyjPuK1UoQf62a1REXnMJUQzid5iC/dFktgv1WNINS5Sp0m84KeThtPnqY+VQFvu5ZQD90HTaERG/xWJxcDuwEFy0g8PRjy5QY1qNZM86rqGtSXocfDWJBsFCqg6sdJoaZfAGGMbRPlHWOSisSvWkhP23lJkPZerkROQ0HGM6gA1406dF/wdpBKmUmtyu4VR1RINK62AcUwouCNqkZ7K/c5mjqBQQbSUD9kp/rNHRusFdw7oWaTsrfF+AUvEVCuUi3CCFCtKcftvIAcAxgYkkYQoTTR6yAccTR1q3U3Oh9TnGxzW7rVhjdceCgS7ge7EUuIwRO84JFPATBIlrTNgY0/uePx//51gb+x/tM9n9z941+fXbjxkXcXcOThCdtRy8TMNcUQUzMMUw4efRdoByrNxkZj8M2jukIEL4em2MZzFbiKDVquAVeMYzWIccw7dRARB4LTqEOMC68W+VHS2Kt8vqI5FwSzrdMkDYn9HMVvpVNIo5hETjR3SkgcwY3FH9MbUpPDkOvUS8ctR26PJDBZviwpN3bO78YSGFzcsAmAl5/zjJh5gkRjNN3g2KplxSthzFuWPB4UsxXK+7QrWUSxVfdaDExcLYi9Q0ygJk8D2UCrkXDRYLVpw06WQhZTDmfS6VW4g7MO2kyXoM7h34/jEmMdxgMJl+eoL4MPiEdbtsvdG4AgEQxQNEZWENRr5SXcAID4DWTx1tqnUjgFcFJ63+NOIj0ArxrqDBbNJpqSRWPa3A1SpgJzNg5oJlQjkvEcQlZA7g+zZ+EsYBZZoV4Bogwin2Y4UYEWg5N4ithQT1ENblzCDj4vx2o4e17jryJ+GuLYjKnaFXoB2yi+D4KqZE5vdIPojVG8BfyCAggXwJCvb8tm1bBkdJoQWUF2a659JTi2MUp9l3vQ+rXO5rHMDFkfNY14s+WSYDeNocFYCym+xNc7FBQjL5rb07SedFQBxmX9tYV2rD7BvCo/gF4t6aRNZaAB1QHuJKS5tRMwd1BVM0xctEyPOJUcnBnbGaj8sDjuv6XKcbzBu/Ds47mPGDPOLrYd6Qi5gNRSHFDfbYyhj5jaQBtBN4JMPo0KvHWD5ULgINHp1c+7GR57COCBDx1RX0xfBO5Rh/pzkgBczLK4qJ09gwzqOHZ38tJr2EQwSbbeEe08X3hqNyql0Q5ZW76aXgsGg3zZhfk4mcW8erMJVBGXEPlDKORfN/Zl3k5TdYmt4VAPvJYhiWwW5WEMKZZjJDzbexnBMwLe4STXhrTNo6LVqCAzUhNhIS7KdCBeqGY5oranuNpQpBvO3VSyd2NorOQAHq4jjgYdOFO5DzMRxZFutVD3zyAKBoCN4Rpw7sC2assYmqVWG8vasOrEaaOmmQAjFPz+o6kJsovwogy6vhaYGW0EIwDOsV3JIxFY4Y7Cpip4jDAGEYVWhw7oOXqhF2e+YTBbCyWlKhcf+I4EyeVqANoez+FEYy2KLZ2aUlr+Elc8Sg8kGHW+V0Adfm0Udhj4TrYAkq8M1zBKYE8UgdOjRffVd84LVMJjhXPcgikmTRoDzwJOHgP7UYvQm3aJw6N1A5IIbEvH8xsz2OFwVqbDCmfZa3EcTicCDWLvw30hh9QdUzlE+/NF+An6tWw+196h2emoV0kFYZn0mQ/piM5Yi2LtHGXgC+HETIHcQDYTZC+uCwX8e0NbOyHHJuXcKM5v/ZP/5X9sdXMPHBr6Zynff5thP/WznhP7v7+vunDg9F/8LqzjWI0WcGZESJh1ALafTEOZE1BK2itNZuEAP9PLXWLHACyyOLyGsKjqsN6rO5XgGkXWjrxlNVenQUZuSgSCGwetztAwX/APIcEc2QdUDkn8Nq/FRmS6MsK8EqnzVYQSQqUAc6xCfl4HajqoQbu7cfwyh80JGdw4AYTxZqPFSAycoHAQ3MjYkjxVR2aABY1zax8FHKLIjrMUMqZznS6AODE6RGPR1soZ2FQQPEqsLZyuBDI0JJkDUE7UYu2jusOuUgjEcDE4ZwYms1y7DisnaPZWWaVvZbP8K1VVhWMFKTLOb3ir9gqIh++pjZSF5aOrQVrEn4bgFNv4bFxcrkUbAocWHjLCywjFXkWn0cmP+EpIG1O5dBNTip6+RyX17kUDCBFHYQLQ8RyAGxENIwtiFy1BODbwvjvfhMyNnBchvCIp23z3e9hNUEk7cVISrzasXBAhmej3SG009gzucvC+JC5wYzAkJEAJIWrO8hlfnPElV6hlTENEBpZBq/cPYwgFp3H2sAYyDavVqffrtZCKoUJQ2+ID/VHm6nlzfC97/+7WLNBSoiPr5TEzhpqIT1/BBo5/EGlb3EgM6Pl3uvI418IIQFbKlUMh4rTCpKjZF8Hr3MGl/tC7dbyWgmmM20W4IQDqqu/D1AxvKFU/pK7adErDMayF5DW2LHhsXhqcNg29jMH/cIzCwcuWq3B1UJKGCU3w5Wpwb4LUAPfVHhe7GMlfpUxKS2TOIyfmZ4CeYAhFpBPa5w36viRty9E8QYmWsLWsIM0f2q8CWlKE+rDqIDDZPPBEFUIMA6GUqSnGB2LxXVyChR+E4h/UdrFhkjwfaKJngfktR2sJ6R8NnL+yC2oWCSHMyeJKABu3GkTMeCOKaPi/GMrXZsq8OqgV4FKzm93lQisLF3Mxef2cl6+BIRy4zqCtAduwEIOTa8EfDIYE9uEMd878totS9+YAOJRQkWAKQYOMc9RQ08s7edSSwBlj2rKqCkHyP9B5GtEruD0OCJM8kBLw+jdakd9oKOk0XgjMbo+RqjFz06APxaKLNWOC1AK/hUmkMvjHfCtkk+zqPGiiGyV154Icd96heIS+ZH+olsjXMGhmjY4VutNwbV31SFIBiDdTfJmdfBOLBl3AFN6xVpe9jFTrEDYKrK37Wn2gY0FYJEmYswHJqzjlwGaARfXa6djzPs1ptOF+QUUtAf7C9+1VpRA7Qpqt0QkBEYsbkJBL8sxg5ECnuhpS8HKD6XT14RdYDXYUtyiQgsYjL1LPIT2Z3GnBaNR9xd7+bx1cyyP8AMR4O87Ezy7ede1/+cOdz701tvbmHThuBVsS0i0WMA+19JVYsuTmW7ZKoXzAT/iteEoC6/cj0BtYnwpL5vOIBPAZHdvvAsjEPcV3AQEuUTVH+1k9wx/CKIA4f92uDQ7Ff4jgEoS8S5CAkUKRIA1sk1fi7wOhnkZIeT++9e3ayMBaCDTVsjF58yxkYyk4/IK4x3N4V+tO+vBp0Gu8QiGfBHhYOoE27K1ksm45pJaASgjzhW5CIdABNM3ohG9Iuo6NJQrB6CKZDdRmjsJXDrFkDE653G+kVNRJYncGgY6Wip19TPI5jZaodGHSZec4BvXA1l8D5rXw77Br5ZfoUdxkDOWksAhOvQVr6ca750H+ucSIziQgUwkj0EKLi1h80ibPA+DZ4AJfbHFm7DnTQFRda8eMwN9CJNO3C9DKAs+D/DlSgXmnuTcVkkQ47bHAsXnYVy+ofACaDS6t0KPcCwLtpy45gBzboZZooQap5UENYrzrIGldxtMJJXcVOqW2iOaIoSjgnfcM0DS1gDOnfNhC/fpj7WiTAQHg+JbQuyQPp7OyqyXPgujJBbt87K2atoEiB4JNdQ1ItArRSSv3A/BPJF94V8XS68EuUiZNNOs+43kYcgHpn4RCeg4ID6JXjS/TgVriRp5LA2K01QxL0so0VoQkB2du7pi85tcY+mLWGny5UKyHqqrXuA8voF9v9QTkbb4bwLowG6jB2HWmGbpxFGLIjGszIJTa25Eh2HBAmsRiNK/gO8FzmdJJAIoVzqXmxvPnYN+jABBq8Alivi80EROTdvIyBawW7AJ53GLf82XVgk91B6KQObSlsRG4O+A1y9Rzn4SfyJhEewe2QrqNQDEJhyZhOcNj8Ux3oTJSzqzCd5OswIxjxPT5+ELcqYTQHYacnWxtEi8mcNPWZLqAE0YwOg+ndwB9Nn9bsOzd1smVqFs9KKdn17TLzVXQTri8vMv1jG1t4+xVYHVG8GMnkLIAe1PkE1fMBcCFLcRjqwzlbSnaaAiMWzA0q+Ik4kuAUAv2wdPxXLw1gECz4kFTgPnhNMXbA8/YBoRZM+DS3wQ460OB+iQyJZsDr4MaQIMoQzcW4rUEv2D4/Y8b8fErJhqVVWrnYYkEsNYXMu/te5bikIAcReKHjTXWwC6b5t3lhlclVyU0cMDlWsS+Xlc434VMFagFLhCwCFtUIOiHEBkYSdTBjMVV1v/08aRwNNfh5gg63Qa3TCxgcc36Bv0wBL4vuSzcaKA1Yj8nC9SNCVJAWi9UL6XQTsN9G43QMbwRxYbEG2Uk3nI8ptOmtN1gwptRcy+5kf+tnO7Bfwtq9f/v1JrNqnDloaeFT++W32575U/+BaRwJgL41HzesaGEhPaoFEfYaLuewY1afAvsSat84pBmzFeUG6c35YDpcDfaVVzvL3eBRZgAja3GNC/soKBHsCjeSUi+Jnttp2WexeUjF5AGZzILnTJ8Vlph8Sysa75awDCMmy1JMdSlhWbD2+pf4xjvtr2uJoyqmYYHfCBXa/ou9kcoXW97JA5OQ0NmplPYxS0O0l7nvGjB1D+h+N6LTIN8bp+aI78MSSi6AGdOnfomsERBgWiv6QN350PsEqQw6hHHKZNd6s7pefwGy6yFboHezm+EMN4dQOgXFMCwJegX8woGsrR0kJniV3A0JiULerkuvY1ABGzrTVDiQPlxR3ZMI98yY8Alvz6NwlDt15vmllNIyzNVo6UTzJsDSNna6676zpJ3QTKBxkU4DgPQTlQP9/aKQ8O5QWweraURDPBbTQUKTtWdsZyy2mRN7DbKwS5eV3K0UAsVFsF7+dhuJJGjTZxqEzV9rLkRMtWWbilGdbNRJ1WS36XiCIeVGIpD/GAPEigKGIpc96LDeyfPWSGZNYsIrQeHArNFcASeVlnbKmZu1DqldLyJiRxUDLfygCyb09BEY1TNVLHi4aDaQIVO0Xs3KEJgm9t2w0BH1xakjxTYEn1Nc24gGhVaH7XpQbeLzSt0tkX3BekizrUBrAU04pA2tzYhj5CdXHtCbX0vZqwBrb4lTzkZWKutDKtjs8KTA1ICZL6EmJsKbT6rZZMQ+NFGP93CfxknwbhDVERgQMT+PcPEUBkwSKTYD9cPKtN0xQRMJkkgAgMYioNlFZM4gvjXtFIs9LaSyXWkWpC6g3PIkBYF5JoONLZy9Db5qcmAOi61sEn8/7xu51+HRQj/hK4TEYYz3NyLsocWCdsMBlbj+SUIl4oxvY5aPAA3pjF1EQFwvTUKbLIdlbWBewAS+SsSNM2t/mAO7w1MAAZ24dHQrR3kZbdUily9mPf8WoP5F8widDUkTZJVydwYOg02Gi/f1VIVuHPRCGEPprA1Ndgu5Kbi4AzUNK+xTI7ipEoTivlmq8tITWVv1UZDBeQtdBmxGRzIiTuEhhqYQel0e8KFWWTayucroWstnAB9JJj1TH0juhs7djkJeYSL9wUzGyEkk+noVXxsI7QxTDbx+Ut6fhdgBQ6d6UmrC4kBgHHRtmAk2uC4ucZMJGFj/21tp60Lze+yhhxJtGnVfm3bI1SlCEBXqrbFaDP3HMIeKKYAbDInzYEmXgZ9jkvVVLzu7BRLIVNMiJXM+lcRGvjfvloGiY8fvbqh/7+Hhc6jn/2vDznuOxIQOocaA9yHvRUiQpIL5Xdg/O0wa9FaLKAWkZJHIXIR9Rp18kIZ20XIeB4H+jQFnHXUGomsstqPaJaL+QaqBcP3i9GWXaJc64DOiV0Y4B7A9PjchXwNJ3OQ0jQzByI4ZEa6jXDt1hUC8MGm/hjKPoCHWtcaXW5lfyKiNdRkmFjxEkFg4XFyeIRBhFK5ivlJr30Bi7ZFewICUvsb6D4KOORIu4EtkjuLcsJXBZYEyaJWQVUWnEbDddWHBb6FmaNvUhAvH0748uJJJH6kGZRINxH4PITViM+/W/MjmW4qd8CgCyOAbCA524s2CG2WeU36dt4IQ9mLZqM2g6MJGtJJu8Wy9JtqK6wA/mCUSQdWWgl1GXNrbDD0IY7Rp76j8PFDtm+EFnEiZvtpeOpYDvNDCXbCm5nt/oBwGaFFDVOCqQqAG1SVMr250wSYhLvDMLntQCihXuOwcqPRwFrD7nt2Q7d3UNWBHNIbeBfZ2jTbLV8BUYtXrpIYGCBN7J8S9NNyCM82fpje9iAshiRr38KvR5wrvWV9CI9O68gOUw41HoEbOoR+LlTAFbUm8wkFh1AomIyv47w5ek4tQy7RmguA5TllRFOj6uIlEZscugpsfAl55hch2Q8bZssVGBVDEAvFxVgIIgQqufJlEH02a+BHOBBRdO+A6C+ix9RxJF+m1qmybR96brS1ku88A7rfGgzggSP51vMtGEYI3sfWWnHAMk9Xd3Vy47K0t9VyuGtfAjCHUtPq+1B2Wp3x1O50a4L3NYRaaCk29CyusBbUGhzH27TwudN+/UPqrEWC+i90hMZMN0GX99EdQHag2HIzHjHj3Mi1UxUzq7BSojvz04sDZexBsD5g29bXv4KFRvuRNleKfugP4hE20ba4c3GcBgXXXOKmvYwZ67cLu0Lf0/upsqan4mazoZQ5AMAC+mggJ9L/IbV6VAuCg6oEt3NEzyHEfyMEIVtLII0QqRpOEIajBULVbL4hA+q/e1KcKZC64jOeDBlRukCRPQmhVksal23wgdtlwD24ZbnQhlbIQfjLmu830PQyfjd6tlZ/CjgFeIWpwDaDl/k9WgCGI1PYtudn8GpiE5WfRkMGanIXRl+OJGTsPMYms+fyxjRkEfBlwuQYDPHX8aaWhc2W6A09h/G80mrWTX5U3dUBTlYCvDFQNaLQIii+CsxTKNuCuUwhFZ3G95cAw0yzbUw26EzEHPjpCzfzLQTeRCoE9uCB2rO0FwYVlLi9t7hlzf/nWKvzEr6t/TPfeec/G17/09HP/82X+772zHu//PHhkTvcLZz/yAmAj6gcgEaMA1tkyRiHbAoX4YO8sbmi38x8MJlHKF4J//dXTOm80fkbhM7bGJaBPjRDqDQQ6qxO909jp7XTIWm3FSJpsoJVQMPmM5B+ghvR8LQIdNAZKsnf5AR2ytZWAe0M7kQAwgb0/AvRXb0JlRzgRxyiTvoxzsE/VW099ddx8InzsiC1Xh4EGBL2wx3LuokD0dAKcZQYaxtNSsPJNWEUwr0GAYiuwryZbUiAjvBpBOssGNt+2lyWQ/1dNbpCoXguGNM4gay1wfkaOPd7FzbTFgTMphvSzbTPmGn2+0OZhuKk1Q2Qc6zfD68HFY2Ql4PraOEUjQY+dQt2d/ILp7U8KJAAnC++vDFz/bcvIj67cRsJ19ix3TWtMQCTnArjU2izgi0MGUaKD8lnKNkzgKdbg8G9UJbOUHH6KDmLNyIKCDGeZsgbBtuP5ht1G08pT5qvQfEFIwC9sFOw6xBTIA3QeAD6EkzCO5VABu8F4KsVDS9NBesVO3Zoq0U328yZs1s4bYLwXHCGc7fxAE5Go74PptkV1KL6gJNFvgxu4Ot45c3WBdZiQw8UoEOHkhGwZtkYx9yNDr2BFgcwBJ6G2QSea8yg22i9OBVTGpBnYEIFyN2EngDPSVGkH5SN0xD5+kNS2UnnYANo9gOJwp1watiQCXxS4qTN3kcZAgBgGSP5Ffzr1hZldEw7zk5jrzGz05ARvK95wUp3c7TzSRzUxck7cdLwNTgmZkZadG5T8b3vc9JI4MIfdqpl83CHj0MoYGJog5zWIyNgsArvgYfksensYJxjlhGqJpbtbB5XC5RK2RJu5PFabXNI6nc2W50d7ovFMJxeN6KH4X7AhVTrJL0WRbZM5hY+MrRUEuQi8EhpLIQBCNH8bRQaLHYbyhazFmzKeHsriPCRY6gWwYQkx70W77dbNPiAEcKiiyKvm0vWtkkKazgH/hn8OTS6LXzHLhvxMgSaJbbdBjmoq7s1nJvWxowv7TMx65NW7W6+/WELt/cdbmmDUFQh5NmF+sN00txVC+UJZGOI7Wrx9szK75jdOzjQqOX00TCunDRmNhtSA1oRrdE62hoS6+c9a3jQ0bU4b0vYLE9eN0JAriU4DPzP0oHdKN42aDOx3yHOFXextc5DGExy2xyAaet/1oLPDsZC/XrLiG0800abuI0Ob3UsgH1oyOG3MS3jhsXxIVoBZk7OmEn4AJG3iBwE5+ZNSEiMGY/Smhj/+a+dOz6ae+sl9XPajXrur579Uc1/B3HwbqUh6LoF6xygTHAiy+TDIK63kApO1WaKODg4IScEvOMNT0vkicOogHXVVYVfz8OQhCKcee80sucNuhoF1ANQs6rCR4KsER/mE/iazUx9EUmOLWZ4B/LGKszc8qlnaRPtap3KM/16Co46dy30frOFeu6Hh5g7wF0Bp+NSG3kEMCbgjEmX+VXsG1S9l+QSUHXiJYXFslX6klWfPLnRAmEKA8LmbghbuwFnGpA7SXJ+ipuHi6K7TXEebc/ROMxJVjI1xpoEb2tzt4afhX74Bvw8xrQRut4AIVdHvnmoiQ+co3m4XSfxkwZsjPie3RCUpnjWCJVovcZvb+CsE3+0imwG2ms8s9P6MBWIVTAUtHADh9X5wHvYQksJjvRDYp4TjEA1fxMhp61u3Rg6DQi7Rvumyi7wb75btQ7ItNC4Ghpe+OvoQNwpsFXsPB5QgVm1zjKylFrGMjTuaFmtWajpMQ0EFtESFQ4Di2pbQ0Ql5c0dxPHBPwg5S8tiRvLPSxz1GsITkD/tHara8C1AANbaWdCf1WYaAwVmOmwbPRvaFZTnprJClzf0wuuYCjrQAwF9r1L09g25C1tplDQpZNU4PnIN5UaODzDa1tpWz6jIrWwQuxaAj5DDRVl7TiHNJp7dZj/dJg306Q3ApV6pdZuKGGTBke/kGAevCWt5vGjMvO5c2UXwhFQEnp4ucLWS5zogv9j0YSC2eN7+6ff8NAfYFDCcY5x+TrKBIuHiIRPn8iePtl5iLMw8af0CqXx0NbS5i5NTTQhZTbshNMjSA+U8yU0n36S1EqSMrRAtNGnofrYH8AgR+dH5fZKHMhlmwVoAfz6Ijg4jQi5xEaK4AXQNOCec5WZQ6nD/bXYb2ynd+1stoGMONAawtSHAkB7SEaRD1WpDBQe+MCOBZ8BiugCUjdVGKc6qx1ueS/taOJnPrN5MBZQWj30xLWMptE18SKEkm0aODE4VACWAP9QirWewgLFgHnDVRlpwusM9qvFsDJoAYDMUIkIJ/u/WwoG/qRbaoLD0YwP4JfCbGg3kUGs0c6tK0eAWTKjVq22YKFoQciVQxnoCqQD89XxLWC+fNB4QLqrSuY3BqLLVwKPr16roISWUv5+M+PDNqIyZv5fqEvoOBJ5ekkP1ENZHqwcb1dLV3YQA1zgWInqVTh9ezq7aA22bKraU1XganoyCMebkfbk8lhiiHT+gmApOGidaJZR6oKiFiPSCgeC6nc8LrYbrU2eC/ywx++9/Vf/9hUDfsZMn9v7FU9GZr7/3f95xl8NuloGBYl7BaSz9eEpgJiTUOfStIYzebKflpQBIYANHxhzA61AWiiiYALUZ2r/+KPRctlOHDHqAQ9l3lOSRugYPSQvolm6SndasU6P9FS2Z99XRxF4w4HlAQ9Vb3UEMBPydVGJNU0WNPA4Ri0lAeZdaPxq1BOeUTO/C5MiqRTTcuNYQvT0AVgE3P2ucbqHOB4I4XqD5IRi+eqsLIqz8HmeoxjDaOTDvWiXsfejlwCg5ALxA0hdWoqdbGDTaMvVmAeQmil+L0g29D1ABnxhYfaJGIXFBRxLAcXEwL57s1xqoY9JtLMJt4DNYa6/zgVsY6vE0qwNwsMuJBrMXQLUOtE0j6ZDht+IpkrxQ35bjiA5gzeY50NQYukcqLc86XjMjVGDXsc+RjP33qHit9BUfzpWmzVb0a9JcwxVytZSAD6AMko0iprkSxzZr0A/1XViRjC6smb2o32xgh+Fw+UjsQLQulY0DaEF9TTSpDk5CLyO5wpgBD4HHid3F3FIVtOcVWkOED5QAKp6Nmd+bMd+B0hay6oaKTrKqQu0q4GE8hWcW6EevgIB24EwDQCjMsinNIKoSKaczdanZYupYBcL/UH2FViIjZYwiLXuHWq9N1cFW5EH+bct0Jw9OJb+Dn1+jdXCbRtyB5SQChHQRUBl+8ru10E0AtaTeRLXVjZPgVpoNMaRU0eK19E5S/e/xqgMGazInB4Ap34IVdPY+piQDdBOKVh8SRVGwQRqHMvm9UfSRAygN6L/RivQlHACTjnGiYaEa5Kgi+dAlWwgS7h8cJ2U0yKdb47h8En0bGtTDg9P49YAxZzA/4GM9hwWB2gz9gDE20BrroB65jUNyNyiqMIZo0Bw2+olpGOnF4V5WC6H84C7sAMlpthYofNwn8+S2CH9rCyNDXVfL27UZ5DL+tguSfokRFpNh6w43d7HAlqjUD1P2GWItoxkJRqivnHm7AqJxEKNGOV3FORpYxZXBeB3TQgvseLvF6YJczP9/TZ1RiCP3fccvpaU9uGRL8tAmpDmWzmpYKImRrkm0p9UEb0p37nSa1u5LoBRK1VUPTB5ORx1dtBpTHG/Tly4zW5s5azU9UG8p9KGs+2Jq7FI/1JPoNEb7UBaMjwN1x4LlbDTT8412NL9+/nt+6EFi7larmfnP///7fX/f3/f3+xW6sO+QHe1An4ILdIjCMcs7o7K4MsNRvUh3e46wEoLvR0EVj6x9Nru8qt1v+Fhoul1wCxEV4CFAqEJZslJYC/n528pqKwZn4ObT8uqlSN/9ZaGx84jCmSCM0VIN6RjEGdZer/lFu4DhHkLz0JzfLGz+KeXc+wSJI4tv/17FfdJx2vT5ePZnST47/+9X7nxy+19+9u+/0v/V785+fixvbF5oadVtzR3VmzugQRPuRe1G9/0QUMmoYc3xvJXUK15DQ0BeWxImR5W13ckD7M9mjZhEOxtyXDH7qY7Ym4aGqB3TCrnperOXqqbDpk+Ao/VoiD3ILadFpkmTGDp56EKvUx0BgXM18qpd06N2DpSyyoFGDvtCY0QV5FDlWaKAJglAc8KltG8uo9emQZXFIvFpY0AtivlAe40+6QhnVfcjFXyEM+rVnWZr6Eq/FiN9UkIxy7jkrsG1U88pNEbS3OHEf0sttnesnVA5NiAzCi3FTnINLclgOqnjeDtluDCIIjCuhs+dMB6TXIBKPSsKFnHCZnezaxo6EXG6/BTBi7N9iR85TRoF1REsNUIEImxenAu9xMvfK7bpH6lwYilLVem1G1xkkcySHKNufxY6Orf7r9GE1vUN7WPEqT51hjjwJp0NlQ6dxftU4UNVJA67ilRykxhLWUv+DJxuK8C+w+kos92TA50JOFSQESaQ4DbntKzmGzg9t2ys6XkVxORK3iEeUQxSklFpRXAMGMPNUnro2AtPnfnvg6DvMkUMaTDfXecDKo7ygsz1iTWpB3HsEluc1j4z89scIt2kmTsCSK9UHrM8nxauKyY4jAP2R6H+LVP/iGhXO8Z6aZG3cjbMCcGUBjF63VJcBPcDDgJXKkmSKQtUXR3yQw5sVbBKMTjuRAVKyMafNos2Rfg6iJ/kOoW/GIcJYd6hKQkDyUztE5vwTwutwMCZnC+KP8gg9Y8I2qjgvEanKMZH6BWj7HRdDd+2orlnILYvXkWd8oCaG038OCPWtdjWyhKoHUYTRc9ggXBSe0CFcvlR1VyjHiq9SIUWUJvgSpWYqD1qM2adTY43QJMRTEIUX0G4HHn6IHH1kKs8f06IkMqpuXn3eYpp0GBGKBAfFa3xphuMaDDEOhDCskdInfbbLHovK7avKPQBkUpSiXZa/S4D7nYmezm5I96Oi8Ns4gqAu6oQ+cfQVb1Y+8jVViE6vVFttsm7TnABl3dKV0Che8JxYPtDC1GzvxBwFG+4Imjoaw7VVtd9LQwox1alP9h7N0L1Ayi3XO+k4fuvkhKlxy2aFwxcULymemDAPRD3lfZRU6ScdvWLdCvm+Lxbv0ai04Rrp9trq/T++0N36o4bnMdXrhoKSv3u39T/P4w6h1IH/1Ws/GBy66lh3e1eTL/yyq+XySGjYcwcjqNjHmu+csEXqXwqIWtp8iodE26IIVWcV8lJPQtFAlT+KmXdcqqfTQKfGI0Ou0N+dBRB7FHhi/x+Xc+CA6rnEN6DSDRaM/CGKZW0DUQ3JXWMZi1fjURPn3bNFBWkezKhDaxd7TZwXsyrhh6CXKVPhspTw/BDnRlj2JQOqTO2K4fY+UsF8zj8tLi4XkR8wOHDn6I69WYtaEiRh6nzGrMqC7e+1m9mbjazaKDiO3cauxlCzq+TtKf/0Ll+4BydQYN4a1aIh7LolW1u4CSIaROXFDEXQUaNkTDjWR0K5l7Z4Cm0yRM0iyxE4eXCC22lSFWYa96gdF2LlknBgdnISnylwcgmupKDLWTU+gXIrQPuUAcDXHQ9Xp6Eyu4YGsEs9Egd/hUbS6sWIAelgMZCZflGpNAhS+AA7UEPjCDaf6pwxHl5RK7jl4itJ0B3CinVoasdpxKU6cqQ0d/HNM6C4p8by8byx6otVwqcmgJfc+sQ7y10/gymJOJYK06HRTdaXaCLTfGm2I0qbwkS7gFP6OE6Q3f5ELVOUO3WeAe8VtY7BVFwEhLHuvc5J1kxe+TxxfgYgNJAnosA/xZvmhEgWprqhMns35/CKkfPAbIbmXt+NXAUq6/sLiNGbyg9idp3tZ2Z9R7z+pA+BdxIgTVRWF8ilKxld5nyc7x+b+IL4yctKCIsxfOqrV4HLKxOpE04BRY2cYSopbg+uA6+SiRlrgZhDwcbf5hT7xVWa9CmVUlXVEE3v7RzEUHerE08owXrQzrKpNrbXiUDaWBE4YgQZik3UqzNmjEg3ddItOoeDMc6m4UVueR+L03Vogqfy9s0BtRFJXILvvosXKQuLO+nJPUO20p6JSfUWYE/iR7BHB5ROW6rgJwhUIjt0YMMXEWBFhw4PRxX4O6eS2FlqC4naz2iyZU+gWoDiynTvpxiOI3iJs0IeTMcyid47q5iq8ji82bXDedFus4pr7/O6eIctzVj2V8KDL+N7tyOZxszk0QOp4LLUrxB0NDhLV1r0kmJtwro5PgAy0CVA9KOG/Ci6O2M6FgdofCD7gZJ9741UC4twcGtvoIkS4mynv2p/G9euPLzP/jy8tM3Z03vlS8pzhQQOTcvpbAHnAQ9+K5VfOGyS3pHYRbGMVZoJXfuSSh30BmNvbfrhrvJLipLMCDgQwnA6aAPlZ1GjmWjoSchXSJGqj0iv2YtuHf4RQf5joG8ojUB2pO7wO7lxOJ6tYEKg1ODQOucSRhQiE3yLp5UzVpuptEHHYcqGyi8iZuO6KXk9+RcvM32ZRqCysfxC1r2hJ35LAxVarSZLZSAdVFfQ+QphdQpd+ZOaD4rRIURKcZVbcRq6WTSLH5vhFpPmw4hW1QZHd46hzGnY8fWT7EC2lTLd09ussE8OmsyVbdrntSbSIE2Sb3F3CnhBvWHyM9B/dSpyymLCkaf1XZ7ITHNXB2BqslOV96jfbFCwyXtCAFD6QQMjpcfIzvQhukKrjUYIz9blBwa+qrWDGoHSvxofeJ3mGfHMJ5SiOO2r7hAZG04RRtZjtZo7aK9WQqgCVPtKUJR5uur8CVeQX2epUh6aMLRgQodtWeNSRTrAHwalLyPq9cLXWBX+hmikJQImq7TDZ9KLGSbAwNGV/uIuFEBLdgRM5YbKPeXC3TtEfERSGSMRr2lGJqv2gd09IJAhtCWCQaIS76J5Q3630yBmM/kVmvmOmhYpTCk33FBThVZnnXIAwFJ1UFd+2rnXOppMh/crEaT/WWFE+FkEWE8hLpk//3EJoEODiZSUZZToARi7N0xYSYMQsCIzSHvTzixhRYYw1iwfVSc+E2UY9F76SXygtfMJUKttvaQhFsFFhVKmJ190gwMcj1wOECcGWgVK8Uk4j6hMAMuYQrA/yQ8SADbFoESgpeA7hVKzkY7NOKIFBtrnKkSkXPeQnwtzjJ3Rr/EDlTFFZZ/y1qe0tXAjcjTPGn0yeoWt/7okQIg2cQnsdNwedaOO3nabewiCYFWhq05aY1rzrc6/HsEeCMbeMntN+knYE7LWt45MTdcfZdBgaaxDpxTfHVp54OXlbDHpNjq69wTe1tx5Mji1JKlsPdvlBC0rGJ6ENNawhE09fioN8MBASefc35igfpIDqfuSyhq8HsFi93yMe2tUZh5+gdbTSsNEMJ3XIxecN5EK6CHMrtrTKh3rC1U67RaTsowdH7yDxcVCNLe+OGzPmTRP37/uX/7/d4FSan/wj4xIq+xKNHsi25IwDG/ROsmgDJYjLzG8UqpsNkKW1rORUi7j61s6MkRkg8kMhTMeno0QHD0Ortp4DPTP86p0u2mQ4xeOskdmwDVMAQehx8vtCg7QUoj0Kl5c6ob5pdBko3e3BT0GLxWisOm7ATXkKlKhpT1qxC5dc4k8cYCsk2QAOvGFKjsyZT8Z3uBwYn8hafPSRPmKEbHcEf71S0qR4AY8rkmU4jW+K75HrJgPIRzh7wJu1Skxm4S4UsjERrNg1214N4R+q0JLRtwaKb7Xoy0B3LY7zdTb06KYZs9MjeR13hT3ZtDjSTsv9zyDfalzGwTSZdjn+BWT2cW4wfqt32MXBTlTjOv16KxNYUHkscNxMQaF89xrANfBopN5akwm5K4IyVQkRET0TQ5YzZo7JdRauRbL/HYZ/D466BooeqlweDfoGC3ecjcRjQ18IHzRFfawyIOZJK4Az/MRMKcldm0h25IowamQK5B2I4tdhhZtVMXL4jzpaFJibigJrxFYgtuC1QRM0Ogbg/8hyQg6ZXLVYdz8+0V4qvwKtaV5MWey6pXBP1h4hohL9csjW9oaG1idA6afDjftKIsHVncMW/0VqvC9kFrprnr5Z85P1oBbfwoMFS/Sdg6n7vm4XNcXN4c+uJ/TvUYFP024UUcY5I27XD+NXNVRUcrSwkyHhbOy+ZWUI4kxsfPaxnBvBse6xzWUKJeTtMAmGZ4cLYgTAJfMrb8eSNAXI0siXJ3u6okyiEd8vnAqtKSC3QXEZWM66zCtkGEWbA+n+ztppErJp09vWrroJK5CIE1P3wHQUoNzaTg7rn+N0yJh/HYmm82zeEMwRF7zWM7Kosm7LBEHQCqNSZD3/zO5E0NZbxEeEAB3iXBlZ0BPUMORo2+PdhzI/XyJa/1t7PJzlCivk2jOHfjhNLDEd1WDCmVpQ83Z4WCvW5phxYNox5jDiioKhX+ltmk+YUvhRv15t5f/ceXUM81JItqrFnpI9dcQuDMIPEQlSQ7EJ6sEuRQF5y3ZZwjIA1ALlIlNhlMPGYpGFHiwNUiV7tJkE5O1BuGw/jjGsYyGuwFVbyjZQiqqabcZ71sGewvR1KBa0A8zX5hrh9PxPHASdATPZrqUYIsxB+y2FY8ObFNNkeCwJefgkVy8PGs6YvT8sfXAwbq8PAH3xnuUmZg5i9YIzb4Af0cVTTdG1+r+XQkmtXt6fI6Gw/qyGkdAPvrzp8EJZTClrBYOkvvyWNzfI1vNqcF3IhXtN81QyPHXYQDjkDC1GAZChYwdVonzWqfyXV0M/DEXGvrw6meibrNrr1guGo3CxhPLU1cFJ2h5B3OP0HMy3SxdHu4nPXJPnk1tB3cYkPpGeijB3voAZmQZio5EJDaZ/OyHRuMypmcNJVac/BmDGbtRBXeib3VmG0xcbZPjW9yaE1JwESH9Q9u6pE+vqFMoEzUL+M/P4L35Xc9NCk+0iXjLe3MYDDp4C4ZIay4COUjInreZI8q45w4LTRkHg0eq9tBOeNglHjmwxrbM/eWlBE2fM5b6mMyRad3o7hhyv5kIRP60uXOTX2wkzBouMsr519Ef2wSqQ/8CN4TKzTYR+tkR3Nz+MSM1+qNVwMkdi3/dOjSbdVHBeNYR1jeqs39DB+QcxGD76QsVKTEi2nmlp5AwRS3uXfccXh+aM4QE2SSA8nFr7rUo6iNhbF6j6mdipA14in6Ia6vzD1eBJQX0Gb35f/BeCoCV5FYV9zxdV4x3VZzOJloocxwKvQOoDZ5gt4fepzEMJ8MvTOCKM+Xt6knxOrlXUpGYup4Q1f8tyrUo2ms6JzWGJJWnRcZ2dZ5sJzm9sBgmVyG583auR2f8m6CMwqycR1MMcG+cbrmGzlfHUVipEmPDZeekYzxwwaPegmrLg8DgnHVXOQX1HORZ99ShKDCe59XrbT4LecHS13lw1d2f/gFfbH338X76x9cyIMh0XwXd9y3lVPmarwigI4tIT3HZ80SKZh3a7wtCCl7vEX/2VTigIeFuwuNd4ZuzIGP5jXs5TVzMsnNEn+B7la2JZJDa1HWoxQ3tc8Kxkbhjhnja0/7vGFzShcsD2N1rMNMVydBmY2TwI1UQv4xxlTTMnluK2VCR7J0/DvaqZuPzFRwJcrEkSqvKEGb3e7RZr3MREDs7JLct4CV9J6VdznmXvSYgTiret5WeyAjvNoyuyZ1E6UescrIaWVRwkaKjZF1cN72xEpcWOPZVusBb0ptoHH9Vo2LBc/c5F3znIJx5RjgyosZFGuhwSkIK1JLV4o1Mt+nrNWslYuW/xmNUtE94JFzXhiDdQB4Ur25DGyAeyzjh9h2t+l9orOGpsFQipwZBASfdhRO9RnHkrWf0+ab88Qpl6lD8/swCiEQIGSGTvdHhkAsSbDQgDv0OFbOHG/P78sRFJbOdaZ6CxRCN6KQPmdAd14ceGtK4BFU/jUqtnjGkJIxiMoBQQRhbLJz6o5+qmMQz7d0Wv5C/ZA7Le6a715o7NHU4KxE/PVyhKEYhrzoocdKEgWxMSQ73L6YvxQYeUcE0z7+hnLph5azhZLJ5pIWtoDDe1mOA+YDOe0QGwIyWuWt535J48Ks1H16B/mlYx4+En+wr8wHUHBR3ELFNeas79zd5Mzmkz3KRfR48kmdb/prCGXDVWZGYnP3n1cufq7kMH6dMxqyr+ktZkRqb3EPpPDCnvBGubWIwyxH2ugmBYWJAoMMWWVVY8NAOtkR0tuoNoif0jBnzamd1+ZmjyW5/AQk1VloHwXQhq5EaxvvtnmccggLS/MYOdAGOyjSjamO411jNiIPeQnPhXj4MsuUO3dIoxv87aXdqHqrNm9RGrJ60TuxjIpaD/zoiKoZq9rtpc5ll9WVt4r1P352gtsnf3j9cOmHF0pMBDrgbBWtx5yoW9ZJ0/i9obcUleiwfReDRok0o1FwQwv6KBSsKdlWujfTHsZ4SJw68XilPP2gb+dDVGGVB3RYGPjxnHFFkfGAnAFZyNA/0yQcuMkuzpicZChPzMcKIF8Bh6Z8tRsnu5hEIFgXNGTwKeS2bhb6mCWb1eb1Tmn8OPTzdt8DLd7nTsUYAFxKyvyfn3s9pbK0sAGEaDGeX3kLtA/qkXP7BOqBHma+O6dWLnHZQuONPHAu86tgWfrz0JCZkzj0kyHxhla0zmgJD1dGU5C52TDwXaKOa9GiXyNbn912z51tw24Lnj15TZ3s51t8qtCW9+A8XD13S0N3tGU/Ngk/KMHgiROHYDchMd2aJOST/ZBfStwg9GW2rUVz5CMMtRmUMtqq8rj3xlbMlvNnjn0Mr0lmSSlv75j3uyAHIYMJ43VohVMYYkxbqMDUTpl1IGuVspDyKXla6AeeznRfxbG4Pv8YscAzC3+YUTVYOrwRfNv0HiyJEeY1hZLExcfeZmwKb4dlW2jV27gdZaVKU+ZxYRRM/YFW9qcYoHEtJxJL3DTie09hWQvN1YoK3znVwcQ/bLzO0avuTnsUiIUYcPBuEGMnkSwTtgLyby59cscsL6CRHKvq/Lg2dHUhdqdagO/uN0dNIofE5QVhylS7mpldJ7sdD/xyKeXW0IuUNyLkNu3pimP5V6ifgGVkzxNbF3ixfEQl7Knve5GNoILLDZJ2mKIpfKtHcCqgZ5le5J7WVaw6QJ0b9unnhlSHMvR1vKG6nnmlR+swJHO86VO8Jr0rsHRCOqrYXmuz4Qm1BbMFDmfVB6/fAi8xt+MONiHDrYE218gINIT/69o46idm1gfcMXB+Snwa7MMmnb+uxE1IOmQ9yeg7ahQa05WyjinMwnP0U0Lyp/sAMVyOsmxDj81zo8jOemX7L+Rp+7cLv3bvt36AT/77+IJhEVT3FcA7oSL3uJlKL+idvgWoP2nmPk5obk/kRnoDEsocHqVVOzlIiRhzX45upHU/RQaQHNT9UsIxXazZed/3uUGM8p22LNaa/7RuRNFob1HtcwhGVs5DhlEi8YE01400To6sak2urm3fJbOJSd5mGxlRvif7V+TGVX+Df7JTuSdifcg1sb5H0cjNFuXcXpTIZmARLGIBFo7/WXl/vxRHUs49ieVgsWSc+POb0yN+dPShHCjnInIgogCJIhX+bv4bj9d/80KM6cbFWGiy/Cl8gcLhcEkcIUY1ePwUW0Im9YU6wJ+OBPKOsj3HhD/K3ZV1njYKB/3AiHhDTh1z5BuRP+tTlu6yqrgPkDGbkqYPbFY6jnIxrqhiF8KbEqfimhmzNgp8ZUd6OLY2LQ5ewaqAYfxVZIvSixe4VGVUAAEkQCtzJHBc/rsNd9UPCGKBjIT3SgimvJryna+9QGhGYsBWTi8SlQKMo4j7NqZsg1U/Sq3ihvpoKuSwOcYYzX2+R+H8rxGQyieHnf8D",Kt=atob(us),ei=new Uint8Array(Kt.length);for(let n=0;n<Kt.length;n++)ei[n]=Kt.charCodeAt(n);var ms=Se.inflateSync(ei).buffer,rt={impulseResponse:void 0},ti=class extends $n{constructor(A,e=rt){const t=he(e,rt),i=A.createConvolver();super(i,i);h(this,"isReady");h(this,"conv");h(this,"_config");this.conv=i;const a=t.impulseResponse;a?(i.buffer=a,this.isReady=new Promise(s=>s(a))):(this.isReady=A.decodeAudioData(ms.slice(0)),this.isReady.then(s=>{i.buffer=s})),this._config=t}get config(){return this._config}update(A){const e=he(A,rt);e.impulseResponse&&(this.conv.buffer=e.impulseResponse),this._config=e}},fs=class extends Hn{constructor(A,e,t,i=st,a=rt){super(A.map(s=>Gt.copyFrom(s)),e,t);h(this,"chorusConfig");h(this,"reverbConfig");this.reverbConfig={...a},this.chorusConfig={...i}}getCoreSnapshot(){return new Hn([...this.channelSnapshots],{...this.masterParameters},[...this.keyMappings])}},zA={time:0},ps=class{constructor(n,A,e){h(this,"soundBankManager",new Is(this));h(this,"keyModifierManager",new rs(this));h(this,"eventHandler",new gs);h(this,"context");h(this,"channelProperties",[]);h(this,"presetList",[]);h(this,"sequencerCallbackFunction");h(this,"isReady");h(this,"reverbProcessor");h(this,"chorusProcessor");h(this,"post");h(this,"worklet");h(this,"_outputsAmount",16);h(this,"channelsAmount",this._outputsAmount);h(this,"masterParameters",{...Za});h(this,"resolveMap",new Map);h(this,"renderingProgressTracker",new Map);h(this,"_voicesAmount",0);Se.SpessaSynthInfo("%cInitializing SpessaSynth synthesizer...",ds.info),this.context=n.context,this.worklet=n,this.post=A,this.isReady=new Promise(i=>this.awaitWorkerResponse("sf3Decoder",i));const t=he(e,ot);this.worklet.port.onmessage=i=>this.handleMessage(i.data),t.initializeReverbProcessor&&(this.reverbProcessor=new ti(this.context),this.isReady=Promise.all([this.isReady,this.reverbProcessor.isReady]),this.worklet.connect(this.reverbProcessor.input,0)),t.initializeChorusProcessor&&(this.chorusProcessor=new Ai(this.context),this.worklet.connect(this.chorusProcessor.input,1));for(let i=0;i<this.channelsAmount;i++)this.addNewChannelInternal(!1);this.channelProperties[pn].isDrum=!0,this.eventHandler.addEvent("newChannel",`synth-new-channel-${Math.random()}`,()=>{this.channelsAmount++}),this.eventHandler.addEvent("presetListChange",`synth-preset-list-change-${Math.random()}`,i=>{this.presetList=[...i]}),this.eventHandler.addEvent("masterParameterChange",`synth-master-parameter-change-${Math.random()}`,i=>{this.masterParameters[i.parameter]=i.value}),this.eventHandler.addEvent("channelPropertyChange",`synth-channel-property-change-${Math.random()}`,i=>{this.channelProperties[i.channel]=i.property,this._voicesAmount=this.channelProperties.reduce((a,s)=>a+s.voicesAmount,0)})}get voicesAmount(){return this._voicesAmount}get currentTime(){return this.context.currentTime}connect(n){var A,e;(A=this.reverbProcessor)==null||A.connect(n),(e=this.chorusProcessor)==null||e.connect(n);for(let t=2;t<this.channelsAmount+2;t++)this.worklet.connect(n,t);return n}disconnect(n){var A,e,t,i;if(!n){(A=this.reverbProcessor)==null||A.disconnect(),(e=this.chorusProcessor)==null||e.disconnect(),this.worklet.disconnect();return}(t=this.reverbProcessor)==null||t.disconnect(n),(i=this.chorusProcessor)==null||i.disconnect(n);for(let a=2;a<this.channelsAmount+2;a++)this.worklet.disconnect(n,a);return n}setLogLevel(n,A,e){this.post({channelNumber:le,type:"setLogLevel",data:{enableInfo:n,enableWarning:A,enableGroup:e}})}getMasterParameter(n){return this.masterParameters[n]}setMasterParameter(n,A){this.masterParameters[n]=A,this.post({type:"setMasterParameter",channelNumber:le,data:{type:n,data:A}})}async getSnapshot(){return new Promise(n=>{this.awaitWorkerResponse("synthesizerSnapshot",A=>{var t,i;const e=new fs(A.channelSnapshots,A.masterParameters,A.keyMappings,(t=this.chorusProcessor)==null?void 0:t.config,(i=this.reverbProcessor)==null?void 0:i.config);n(e)}),this.post({type:"requestSynthesizerSnapshot",data:null,channelNumber:-1})})}addNewChannel(){this.addNewChannelInternal(!0)}setVibrato(n,A){this.post({channelNumber:n,type:"setChannelVibrato",data:A})}connectIndividualOutputs(n){if(n.length!==this._outputsAmount)throw new Error(`input nodes amount differs from the system's outputs amount!
19
- Expected ${this._outputsAmount} got ${n.length}`);for(let A=0;A<this._outputsAmount;A++)this.worklet.connect(n[A],A+2)}disconnectIndividualOutputs(n){if(n.length!==this._outputsAmount)throw new Error(`input nodes amount differs from the system's outputs amount!
20
- Expected ${this._outputsAmount} got ${n.length}`);for(let A=0;A<this._outputsAmount;A++)this.worklet.disconnect(n[A],A+2)}disableGSNPRNParams(){this.setVibrato(le,{depth:0,rate:-1,delay:0})}sendMessage(n,A=0,e=zA){this._sendInternal(n,A,!1,e)}noteOn(n,A,e,t=zA){const i=n%16,a=n-i;A%=128,e%=128,this.sendMessage([oe.noteOn|i,A,e],a,t)}noteOff(n,A,e=!1,t=zA){A%=128;const i=n%16,a=n-i;this._sendInternal([oe.noteOff|i,A],a,e,t)}stopAll(n=!1){this.post({channelNumber:le,type:"stopAll",data:n?1:0})}controllerChange(n,A,e,t=!1,i=zA){if(A>127||A<0)throw new Error(`Invalid controller number: ${A}`);e=Math.floor(e)%128,A=Math.floor(A)%128;const a=n%16,s=n-a;this._sendInternal([oe.controllerChange|a,A,e],s,t,i)}resetControllers(){this.post({channelNumber:le,type:"ccReset",data:null})}lockController(n,A,e){this.post({channelNumber:n,type:"lockController",data:{controllerNumber:A,isLocked:e}})}channelPressure(n,A,e=zA){const t=n%16,i=n-t;A%=128,this.sendMessage([oe.channelPressure|t,A],i,e)}polyPressure(n,A,e,t=zA){const i=n%16,a=n-i;A%=128,e%=128,this.sendMessage([oe.polyPressure|i,A,e],a,t)}pitchWheel(n,A,e=zA){const t=n%16,i=n-t;this.sendMessage([oe.pitchWheel|t,A&127,A>>7],i,e)}pitchWheelRange(n,A){this.controllerChange(n,O.registeredParameterMSB,0),this.controllerChange(n,O.registeredParameterLSB,0),this.controllerChange(n,O.dataEntryMSB,A),this.controllerChange(n,O.registeredParameterMSB,127),this.controllerChange(n,O.registeredParameterLSB,127),this.controllerChange(n,O.dataEntryMSB,0)}programChange(n,A){const e=n%16,t=n-e;A%=128,this.sendMessage([oe.programChange|e,A],t)}transposeChannel(n,A,e=!1){this.post({channelNumber:n,type:"transposeChannel",data:{semitones:A,force:e}})}muteChannel(n,A){this.post({channelNumber:n,type:"muteChannel",data:A})}systemExclusive(n,A=0,e=zA){this._sendInternal([oe.systemExclusive,...Array.from(n)],A,!1,e)}tuneKeys(n,A){if(A.length>127)throw new Error("Too many tunings. Maximum allowed is 127.");const e=[127,16,8,2,n,A.length];for(const t of A)if(e.push(t.sourceKey),t.targetPitch===-1)e.push(127,127,127);else{const i=Math.floor(t.targetPitch),a=Math.floor((t.targetPitch-i)/61e-6);e.push(i,a>>7&127,a&127)}e.push(247),this.systemExclusive(e)}setDrums(n,A){this.post({channelNumber:n,type:"setDrums",data:A})}reverbateEverythingBecauseWhyNot(){for(let n=0;n<this.channelsAmount;n++)this.controllerChange(n,O.reverbDepth,127),this.lockController(n,O.reverbDepth,!0);return"That's the spirit!"}awaitWorkerResponse(n,A){this.resolveMap.set(n,A)}assignProgressTracker(n,A){if(this.renderingProgressTracker.get(n))throw new Error("Something is already being rendered!");this.renderingProgressTracker.set(n,A)}revokeProgressTracker(n){this.renderingProgressTracker.delete(n)}_sendInternal(n,A,e=!1,t){const i=he(t,zA);this.post({type:"midiMessage",channelNumber:le,data:{messageData:new Uint8Array(n),channelOffset:A,force:e,options:i}})}handleMessage(n){var A,e;switch(n.type){case"eventCall":this.eventHandler.callEventInternal(n.data.type,n.data.data);break;case"sequencerReturn":(A=this.sequencerCallbackFunction)==null||A.call(this,n.data);break;case"isFullyInitialized":this.workletResponds(n.data.type,n.data.data);break;case"soundBankError":Se.SpessaSynthWarn(n.data),this.eventHandler.callEventInternal("soundBankError",n.data);break;case"renderingProgress":(e=this.renderingProgressTracker.get(n.data.type))==null||e(n.data.data)}}addNewChannelInternal(n){this.channelProperties.push({voicesAmount:0,pitchWheel:0,pitchWheelRange:0,isMuted:!1,isDrum:this.channelsAmount%16===pn,transposition:0}),n&&this.post({channelNumber:0,type:"addNewChannel",data:null})}workletResponds(n,A){var e;(e=this.resolveMap.get(n))==null||e(A),this.resolveMap.delete(n)}},ys="spessasynth-worklet-processor",Ss=class extends ps{constructor(n,A=ot){var s;const e=he(A,ot);let t=Array(18).fill(2),i=18;e.oneOutput&&(t=[36],i=1);let a;try{a=(((s=e==null?void 0:e.audioNodeCreators)==null?void 0:s.worklet)??((I,o,B)=>new AudioWorkletNode(I,o,B)))(n,ys,{outputChannelCount:t,numberOfOutputs:i,processorOptions:{oneOutput:e.oneOutput,enableEventSystem:e.enableEventSystem}})}catch(g){throw console.error(g),new Error("Could not create the AudioWorkletNode. Did you forget to addModule()?")}super(a,(g,I=[])=>{a.port.postMessage(g,I)},e)}async startOfflineRender(n){this.post({type:"startOfflineRender",data:n,channelNumber:-1},n.soundBankList.map(A=>A.soundBankBuffer)),await new Promise(A=>this.awaitWorkerResponse("startOfflineRender",A))}destroy(){var n,A;(n=this.reverbProcessor)==null||n.disconnect(),(A=this.chorusProcessor)==null||A.delete(),this.post({channelNumber:0,type:"destroyWorklet",data:null}),this.worklet.disconnect(),delete this.worklet,delete this.reverbProcessor,delete this.chorusProcessor}};const qs=Object.freeze(Object.defineProperty({__proto__:null,ChorusProcessor:Ai,DEFAULT_SYNTH_CONFIG:ot,ReverbProcessor:ti,WorkletSynthesizer:Ss},Symbol.toStringTag,{value:"Module"}));$.AudioButton=Ee,$.AudioSlider=Ue,$.BarInput=rn,$.BaseNumericInput=ft,$.DEV_MODE=je,$.DummyAudioEngine=dn,$.MixerControls=En,$.MixerLayout=na,$.PartControl=on,$.Placeholder=ra,$.SpeedInput=In,$.TimeInput=gn,$.TitleText=ct,$.TriState=nn,$.isDevFeature=Qt,$.isDevMode=Si,$.useAudioStateStore=ne,$.useElementSize=te,$.useMasterAudioControl=pe,$.useMusicDataStore=fe,$.usePlaybackStateStore=an,Object.defineProperty($,Symbol.toStringTag,{value:"Module"})});
16
+ (${d})`,b.warn,b.value,b.unrecognized)},s=this.toCombinedSFDestination();if(s){A=s;const d=this.control.toSFSource();if(!d){a("Invalid control");return}Q=d}else{const d=this.toSFDestination();if(!d){a("Invalid destination");return}typeof d=="object"?(t=d.newAmount,A=d.gen):A=d;const o=this.source.toSFSource();if(!o){a("Invalid source");return}Q=o;const c=this.control.toSFSource();if(!c){a("Invalid control");return}n=c}this.transform!==il.linear&&Q.curveType===il.linear&&(Q.curveType=this.transform),A===i.initialAttenuation&&((this.source.source===p.velocity||this.source.source===p.volume||this.source.source===p.expression)&&(Q.isNegative=!0),t=Math.min(960,Math.max(0,t)));const F=new Vl(Q,n,A,t,0);l.addModulators(F)}toCombinedSFDestination(){const l=this.source.source,t=this.destination;return l===p.vibratoLfo&&t===I.pitch?i.vibLfoToPitch:l===p.modLfo&&t===I.pitch?i.modLfoToPitch:l===p.modLfo&&t===I.filterCutoff?i.modLfoToFilterFc:l===p.modLfo&&t===I.gain?i.modLfoToVolume:l===p.modEnv&&t===I.filterCutoff?i.modEnvToFilterFc:l===p.modEnv&&t===I.pitch?i.modEnvToPitch:void 0}toSFDestination(){const l=this.shortScale;switch(this.destination){default:case I.none:return;case I.pan:return i.pan;case I.gain:return{gen:i.initialAttenuation,newAmount:-l};case I.pitch:return i.fineTune;case I.keyNum:return i.overridingRootKey;case I.volEnvDelay:return i.delayVolEnv;case I.volEnvAttack:return i.attackVolEnv;case I.volEnvHold:return i.holdVolEnv;case I.volEnvDecay:return i.decayVolEnv;case I.volEnvSustain:return{gen:i.sustainVolEnv,newAmount:1e3-l};case I.volEnvRelease:return i.releaseVolEnv;case I.modEnvDelay:return i.delayModEnv;case I.modEnvAttack:return i.attackModEnv;case I.modEnvHold:return i.holdModEnv;case I.modEnvDecay:return i.decayModEnv;case I.modEnvSustain:return{gen:i.sustainModEnv,newAmount:1e3-l};case I.modEnvRelease:return i.releaseModEnv;case I.filterCutoff:return i.initialFilterFc;case I.filterQ:return i.initialFilterQ;case I.chorusSend:return i.chorusEffectsSend;case I.reverbSend:return i.reverbEffectsSend;case I.modLfoFreq:return i.freqModLFO;case I.modLfoDelay:return i.delayModLFO;case I.vibLfoFreq:return i.freqVibLFO;case I.vibLfoDelay:return i.delayVibLFO}}},$e=class PA extends ut{constructor(){super(...arguments);R(this,"connectionBlocks",new Array);R(this,"mode","dls2")}get length(){return this.connectionBlocks.length}copyFrom(t){this.mode=t.mode,t.connectionBlocks.forEach(A=>{this.connectionBlocks.push(Mt.copyFrom(A))})}fromSFZone(t){this.mode="dls2";const A=new tA;A.copyFrom(t);for(const Q of A.generators){let n;switch(Q.generatorType){default:continue;case i.keyNumToVolEnvDecay:n=i.decayVolEnv;break;case i.keyNumToVolEnvHold:n=i.holdVolEnv;break;case i.keyNumToModEnvDecay:n=i.decayModEnv;break;case i.keyNumToModEnvHold:n=i.holdModEnv}const a=A.getGenerator(n,void 0),s=Q.generatorValue*-128;if(a===void 0)continue;const F=60/128*s,d=a-F;A.setGenerator(Q.generatorType,s,!1),A.setGenerator(n,d,!1)}for(const Q of A.generators)Mt.fromSFGenerator(Q,this);for(const Q of A.modulators)Mt.fromSFModulator(Q,this)}read(t){const A=nt(t,"lart"),Q=nt(t,"lar2");if(A)for(this.mode="dls1";A.data.currentIndex<A.data.length;){const n=Ml(A.data);PA.verifyHeader(n,"art1","art2");const a=n.data,s=P(a,4);s!==8&&Zl(`CbSize in articulation mismatch. Expected 8, got ${s}`);const F=P(a,4);for(let d=0;d<F;d++)this.connectionBlocks.push(Mt.read(a))}else if(Q)for(this.mode="dls2";Q.data.currentIndex<Q.data.length;){const n=Ml(Q.data);PA.verifyHeader(n,"art2","art1");const a=n.data,s=P(a,4);s!==8&&Zl(`CbSize in articulation mismatch. Expected 8, got ${s}`);const F=P(a,4);for(let d=0;d<F;d++)this.connectionBlocks.push(Mt.read(a))}}write(){const t=new nl(8);Al(t,8),Al(t,this.connectionBlocks.length);const A=this.connectionBlocks.map(n=>n.write()),Q=Nl(this.mode==="dls2"?"art2":"art1",[t,...A]);return Fl(this.mode==="dls2"?"lar2":"lart",Q,!1,!0)}toSFZone(t){const A=(Q,n,a,s)=>{const F=Q/-128;if(t.setGenerator(n,F),F<=120){const d=Math.round(.46875*Q),o=this.connectionBlocks.find(c=>c.isStaticParameter&&c.destination===s);o&&t.setGenerator(a,d+o.shortScale)}};for(const Q of this.connectionBlocks){const n=Q.shortScale,a=Q.source.source,s=Q.control.source,F=Q.destination;if(Q.isStaticParameter){Q.toSFGenerator(t);continue}if(s===p.none)if(a===p.keyNum){if(F===I.pitch){t.setGenerator(i.scaleTuning,n/128);continue}if(F===I.modEnvHold||F===I.modEnvDecay||F===I.volEnvHold||F==I.volEnvDecay)continue}else{const d=Q.toCombinedSFDestination();if(d){t.setGenerator(d,n);continue}}Q.toSFModulator(t)}this.mode==="dls1"&&t.addModulators(Vl.copyFrom(Ba),Vl.copyFrom(sa));for(const Q of this.connectionBlocks){if(Q.source.source!==p.keyNum)continue;const n=Q.shortScale;switch(Q.destination){default:continue;case I.volEnvHold:A(n,i.keyNumToVolEnvHold,i.holdVolEnv,I.volEnvHold);break;case I.volEnvDecay:A(n,i.keyNumToVolEnvDecay,i.decayVolEnv,I.volEnvDecay);break;case I.modEnvHold:A(n,i.keyNumToModEnvHold,i.holdModEnv,I.modEnvHold);break;case I.modEnvDecay:A(n,i.keyNumToModEnvDecay,i.decayModEnv,I.modEnvDecay);break}}}},LA=class iA{constructor(l){R(this,"channel",1);R(this,"tableIndex");R(this,"fusOptions",0);R(this,"phaseGroup",0);this.tableIndex=l}static copyFrom(l){const t=new iA(l.tableIndex);return t.channel=l.channel,t.phaseGroup=l.phaseGroup,t.fusOptions=l.fusOptions,t}static read(l){const t=P(l.data,2),A=P(l.data,2),Q=P(l.data,4),n=P(l.data,4),a=new iA(n);return a.channel=Q,a.fusOptions=t,a.phaseGroup=A,a}static fromSFZone(l,t){const A=l.indexOf(t.sample);if(A<0)throw new Error(`Wave link error: Sample ${t.sample.name} does not exist in the sample list.`);const Q=new iA(A);switch(t.sample.sampleType){default:case Il.leftSample:case Il.monoSample:Q.channel=1;break;case Il.rightSample:Q.channel=2}return Q}write(){const l=new nl(12);return K(l,this.fusOptions),K(l,this.phaseGroup),Al(l,this.channel),Al(l,this.tableIndex),Fl("wlnk",l)}},QA=class Nt extends ut{constructor(t,A){super();R(this,"articulation",new $e);R(this,"keyRange",{min:0,max:127});R(this,"velRange",{min:0,max:127});R(this,"keyGroup",0);R(this,"fusOptions",0);R(this,"usLayer",0);R(this,"waveSample");R(this,"waveLink");this.waveSample=A,this.waveLink=t}static copyFrom(t){const A=new Nt(LA.copyFrom(t.waveLink),Ct.copyFrom(t.waveSample));return A.keyGroup=t.keyGroup,A.keyRange={...t.keyRange},A.velRange={...t.velRange},A.usLayer=t.usLayer,A.fusOptions=t.fusOptions,A.articulation.copyFrom(t.articulation),A}static read(t,A){const Q=this.verifyAndReadList(A,"rgn ","rgn2"),n=Q.find(C=>C.header==="wsmp");let a=n?Ct.read(n):void 0;const s=Q.find(C=>C.header==="wlnk");if(!s){Zl("Invalid DLS region: missing 'wlnk' chunk! Discarding...");return}const F=LA.read(s),d=Q.find(C=>C.header==="rgnh");if(!d){Zl("Invalid DLS region: missing 'rgnh' chunk! Discarding...");return}const o=t[F.tableIndex];o||Nt.parsingError(`Invalid sample index: ${F.tableIndex}. Samples available: ${t.length}`),a??(a=o.waveSample);const c=new Nt(F,a),h=P(d.data,2),Z=P(d.data,2);let U=P(d.data,2),m=P(d.data,2);return U===0&&m===0&&(m=127,U=0),c.keyRange.max=Z,c.keyRange.min=h,c.velRange.max=m,c.velRange.min=U,c.fusOptions=P(d.data,2),c.keyGroup=P(d.data,2),d.data.length-d.data.currentIndex>=2&&(c.usLayer=P(d.data,2)),c.articulation.read(Q),c}static fromSFZone(t,A){const Q=Ct.fromSFZone(t),n=LA.fromSFZone(A,t),a=new Nt(n,Q);return a.keyRange.min=Math.max(t.keyRange.min,0),a.keyRange.max=t.keyRange.max,a.velRange.min=Math.max(t.velRange.min,0),a.velRange.max=t.velRange.max,a.keyGroup=t.getGenerator(i.exclusiveClass,0),a.articulation.fromSFZone(t),a}write(){const t=[this.writeHeader(),this.waveSample.write(),this.waveLink.write(),this.articulation.write()];return Nl("rgn2",t,!0)}toSFZone(t,A){const Q=A[this.waveLink.tableIndex];Q||Nt.parsingError(`Invalid sample index: ${this.waveLink.tableIndex}`);const n=t.createZone(Q);return n.keyRange=this.keyRange,n.velRange=this.velRange,this.keyRange.max===127&&this.keyRange.min===0&&(n.keyRange.min=-1),this.velRange.max===127&&this.velRange.min===0&&(n.velRange.min=-1),this.keyGroup!==0&&n.setGenerator(i.exclusiveClass,this.keyGroup),this.waveSample.toSFZone(n,Q),this.articulation.toSFZone(n),n.generators=n.generators.filter(a=>a.generatorValue!==k[a.generatorType].def),n}writeHeader(){const t=new nl(12);return K(t,Math.max(this.keyRange.min,0)),K(t,this.keyRange.max),K(t,Math.max(this.velRange.min,0)),K(t,this.velRange.max),K(t,this.fusOptions),K(t,this.keyGroup),K(t,this.usLayer),Fl("rgnh",t)}},MA=class oA extends ut{constructor(){super(...arguments);R(this,"articulation",new $e);R(this,"regions",new Array);R(this,"name","Unnamed");R(this,"bankLSB",0);R(this,"bankMSB",0);R(this,"isGMGSDrum",!1);R(this,"program",0)}static copyFrom(t){const A=new oA;return A.name=t.name,A.isGMGSDrum=t.isGMGSDrum,A.bankMSB=t.bankMSB,A.bankLSB=t.bankLSB,A.program=t.program,A.articulation.copyFrom(t.articulation),t.regions.forEach(Q=>{A.regions.push(QA.copyFrom(Q))}),A}static read(t,A){const Q=this.verifyAndReadList(A,"ins "),n=Q.find(Z=>Z.header==="insh");if(!n)throw new Error("No instrument header!");let a="";const s=nt(Q,"INFO");if(s){let Z=Ml(s.data);for(;Z.header!=="INAM";)Z=Ml(s.data);a=Qt(Z.data,Z.data.length).trim()}a.length<1&&(a="Unnamed Instrument");const F=new oA;F.name=a;const d=P(n.data,4),o=P(n.data,4),c=P(n.data,4);F.program=c&127,F.bankMSB=o>>>8&127,F.bankLSB=o&127,F.isGMGSDrum=o>>>31>0,xl(`%cParsing %c"${a}"%c...`,b.info,b.recognized,b.info);const h=nt(Q,"lrgn");if(!h)throw new Error("No region list!");F.articulation.read(Q);for(let Z=0;Z<d;Z++){const U=Ml(h.data);this.verifyHeader(U,"LIST");const m=Qt(U.data,4);m!=="rgn "&&m!=="rgn2"&&this.parsingError(`Invalid DLS region! Expected "rgn " or "rgn2" got "${m}"`);const C=QA.read(t,U);C&&F.regions.push(C)}return F}static fromSFPreset(t,A){const Q=new oA;return Q.name=t.name,Q.bankLSB=t.bankLSB,Q.bankMSB=t.bankMSB,Q.program=t.program,Q.isGMGSDrum=t.isGMGSDrum,at(`%cConverting %c${t.toString()}%c to DLS...`,b.info,b.value,b.info),t.toFlattenedInstrument().zones.forEach(a=>{Q.regions.push(QA.fromSFZone(a,A))}),Q}write(){xl(`%cWriting %c${this.name}%c...`,b.info,b.recognized,b.info);const t=[this.writeHeader()],A=this.regions.map(n=>n.write());t.push(Nl("lrgn",A,!0)),this.articulation.length>0&&t.push(this.articulation.write());const Q=Fl("INAM",Wt(this.name,!0));return t.push(Fl("INFO",Q,!1,!0)),Nl("ins ",t,!0)}toSFPreset(t){const A=new Tt(t);A.name=this.name,A.bankMSB=this.bankMSB,A.bankLSB=this.bankLSB,A.isGMGSDrum=this.isGMGSDrum,A.program=this.program;const Q=new AA;Q.name=this.name,A.createZone(Q),this.articulation.toSFZone(Q.globalZone),this.regions.forEach(n=>n.toSFZone(Q,t.samples)),Q.globalize(),Q.globalZone.modulators.find(n=>n.destination===i.reverbEffectsSend)===void 0&&Q.globalZone.addModulators(Vl.copyFrom(qe)),Q.globalZone.modulators.find(n=>n.destination===i.chorusEffectsSend)===void 0&&Q.globalZone.addModulators(Vl.copyFrom(_e)),Q.globalZone.generators=Q.globalZone.generators.filter(n=>n.generatorValue!==k[n.generatorType].def),t.addPresets(A),t.addInstruments(Q)}writeHeader(){const t=new nl(12);Al(t,this.regions.length);let A=(this.bankMSB&127)<<8|this.bankLSB&127;return this.isGMGSDrum&&(A|=1<<31),Al(t,A),Al(t,this.program&127),Fl("insh",t)}},lQ={progressFunction:void 0},oa=class OA extends ut{constructor(){super(...arguments);R(this,"samples",new Array);R(this,"instruments",new Array);R(this,"soundBankInfo",{name:"Unnamed",creationDate:new Date,software:"SpessaSynth",soundEngine:"DLS Level 2.2",version:{major:2,minor:4}})}static read(t){if(!t)throw new Error("No data provided!");const A=new nl(t);at("%cParsing DLS file...",b.info);const Q=Ml(A,!1);this.verifyHeader(Q,"RIFF"),this.verifyText(Qt(A,4).toLowerCase(),"dls ");const n=[];for(;A.currentIndex<A.length;)n.push(Ml(A));const a=new OA;a.soundBankInfo.name="Unnamed DLS",a.soundBankInfo.product="SpessaSynth DLS",a.soundBankInfo.comment="(no description)";const s=nt(n,"INFO");if(s)for(;s.data.currentIndex<s.data.length;){const m=Ml(s.data),C=m.header,W=Qt(m.data,m.size);switch(C){case"INAM":a.soundBankInfo.name=W;break;case"ICRD":a.soundBankInfo.creationDate=Yn(W);break;case"ICMT":a.soundBankInfo.comment=W;break;case"ISBJ":a.soundBankInfo.subject=W;break;case"ICOP":a.soundBankInfo.copyright=W;break;case"IENG":a.soundBankInfo.engineer=W;break;case"IPRD":a.soundBankInfo.product=W;break;case"ISFT":a.soundBankInfo.software=W}}this.printInfo(a);const F=n.find(m=>m.header==="colh");if(!F)return this.parsingError("No colh chunk!"),5;const d=P(F.data,4);$(`%cInstruments amount: %c${d}`,b.info,b.recognized);const o=nt(n,"wvpl");if(!o)return this.parsingError("No wvpl chunk!"),5;this.verifyAndReadList(o,"wvpl").forEach(m=>{a.samples.push(Oe.read(m))});const h=nt(n,"lins");if(!h)return this.parsingError("No lins chunk!"),5;const Z=this.verifyAndReadList(h,"lins");xl("%cLoading instruments...",b.info),Z.length!==d&&Zl(`Colh reported invalid amount of instruments. Detected ${Z.length}, expected ${d}`),Z.forEach(m=>{a.instruments.push(MA.read(a.samples,m))});const U=n.find(m=>m.header==="pgal");if(U){$("%cFound the instrument aliasing chunk!",b.recognized);const m=U.data;(m[0]!==0||m[1]!==1||m[2]!==2||m[3]!==3)&&(m.currentIndex+=4);const C=a.instruments.find(J=>Ft.isXGDrums(J.bankMSB)||J.isGMGSDrum);if(!C)return Zl("MobileBAE aliasing chunk without a drum preset. Aborting!"),a;const W=m.slice(m.currentIndex,m.currentIndex+128);m.currentIndex+=128;for(let J=0;J<128;J++){const X=W[J];if(X===J)continue;const u=C.regions.find(T=>T.keyRange.max===X&&T.keyRange.min===X);if(!u){Zl(`Invalid drum alias ${J} to ${X}: region does not exist.`);continue}const G=QA.copyFrom(u);G.keyRange.max=J,G.keyRange.min=J,C.regions.push(G)}for(m.currentIndex+=4;m.currentIndex<m.length;){const J=P(m,2),X=J&127,u=J>>7&127,G=m[m.currentIndex++];let T=m[m.currentIndex++];T!==0&&Zl(`Invalid alias byte. Expected 0, got ${T}`);const w=P(m,2),Rl=w&127,cl=w>>7&127,Ul=m[m.currentIndex++];T=m[m.currentIndex++],T!==0&&Zl(`Invalid alias header. Expected 0, got ${T}`);const z=a.instruments.find(H=>H.bankLSB===Rl&&H.bankMSB===cl&&H.program===Ul&&!H.isGMGSDrum);if(!z){Zl(`Invalid alias. Missing instrument: ${Rl}:${cl}:${Ul}`);continue}const O=MA.copyFrom(z);O.bankMSB=u,O.bankLSB=X,O.program=G,a.instruments.push(O)}}return $(`%cParsing finished! %c"${a.soundBankInfo.name||"UNNAMED"}"%c has %c${a.instruments.length}%c instruments and %c${a.samples.length}%c samples.`,b.info,b.recognized,b.info,b.recognized,b.info,b.recognized,b.info),a}static fromSF(t){xl("%cSaving SF2 to DLS level 2...",b.info);const A=new OA;return A.soundBankInfo={...t.soundBankInfo},A.soundBankInfo.comment=(A.soundBankInfo.comment??"(No description)")+`
17
+ Converted from SF2 to DLS with SpessaSynth`,t.samples.forEach(Q=>{A.samples.push(Oe.fromSFSample(Q))}),t.presets.forEach(Q=>{A.instruments.push(MA.fromSFPreset(Q,t.samples))}),$("%cConversion complete!",b.recognized),A}static printInfo(t){for(const[A,Q]of Object.entries(t.soundBankInfo)){if(typeof Q=="object"&&"major"in Q){const n=Q;$(`%c${A}: %c"${n.major}.${n.minor}"`,b.info,b.recognized)}$(`%c${A}: %c${Q.toLocaleString()}`,b.info,b.recognized)}}async write(t=lQ){var W;xl("%cSaving DLS...",b.info);const A=new nl(4);Al(A,this.instruments.length);const Q=Fl("colh",A);xl("%cWriting instruments...",b.info);const n=Nl("lins",this.instruments.map(J=>J.write()),!0);$("%cSuccess!",b.recognized),xl("%cWriting WAVE samples...",b.info);let a=0;const s=[],F=[];let d=0;for(const J of this.samples){const X=J.write();await((W=t==null?void 0:t.progressFunction)==null?void 0:W.call(t,J.name,d,this.samples.length)),s.push(a),a+=X.length,F.push(X),d++}const o=Nl("wvpl",F,!0);$("%cSucceeded!",b.recognized);const c=new nl(8+4*s.length);Al(c,8),Al(c,s.length);for(const J of s)Al(c,J);const h=Fl("ptbl",c);this.soundBankInfo.software="SpessaSynth";const Z=[],U=(J,X)=>{Z.push(Fl(J,Wt(X,!0)))};for(const[J,X]of Object.entries(this.soundBankInfo)){const u=J,G=X;if(G)switch(u){case"name":U("INAM",G);break;case"comment":U("ICMT",G);break;case"copyright":U("ICOP",G);break;case"creationDate":U("ICRD",G.toISOString());break;case"engineer":U("IENG",G);break;case"product":U("IPRD",G);break;case"romVersion":case"version":case"soundEngine":case"romInfo":break;case"software":U("ISFT",G);break;case"subject":U("ISBJ",G)}}const m=Nl("INFO",Z,!0),C=Nl("RIFF",[Wt("DLS "),Q,n,h,o,m]);return $("%cSaved successfully!",b.recognized),C.buffer}toSF(){at("%cConverting DLS to SF2...",b.info);const t=new ca;return t.soundBankInfo.version.minor=4,t.soundBankInfo.version.major=2,t.soundBankInfo={...this.soundBankInfo},t.soundBankInfo.comment=(t.soundBankInfo.comment??"(No description)")+`
18
+ Converted from DLS to SF2 with SpessaSynth`,this.samples.forEach(A=>{A.toSFSample(t)}),this.instruments.forEach(A=>{A.toSFPreset(t)}),t.flush(),$("%cConversion complete!",b.recognized),t}},ca=($l=class{constructor(){R(this,"soundBankInfo",{name:"Unnamed",creationDate:new Date,software:"SpessaSynth",soundEngine:"E-mu 10K2",version:{major:2,minor:4}});R(this,"presets",[]);R(this,"samples",[]);R(this,"instruments",[]);R(this,"defaultModulators",Me.map(Vl.copyFrom.bind(Vl)));R(this,"customDefaultModulators",!1);R(this,"_isXGBank",!1)}get isXGBank(){return this._isXGBank}static mergeSoundBanks(...l){var n;const t=l.shift();if(!t)throw new Error("No sound banks provided!");const A=t.presets;for(;l.length;){const a=(n=l==null?void 0:l.shift())==null?void 0:n.presets;a&&a.forEach(s=>{A.find(F=>s.matches(F))===void 0&&A.push(s)})}const Q=new $l;return Q.addCompletePresets(A),Q.soundBankInfo={...t.soundBankInfo},Q}static async getSampleSoundBankFile(){const l=new $l,t=new Float32Array(128);for(let s=0;s<128;s++)t[s]=s/128*2-1;const A=new ea;A.name="Saw",A.originalKey=65,A.pitchCorrection=20,A.loopEnd=127,A.setAudioData(t,44100),l.addSamples(A);const Q=new AA;Q.name="Saw Wave",Q.globalZone.addGenerators(new ul(i.initialAttenuation,375),new ul(i.releaseVolEnv,-1e3),new ul(i.sampleModes,1)),Q.createZone(A),Q.createZone(A).addGenerators(new ul(i.fineTune,-9)),l.addInstruments(Q);const a=new Tt(l);return a.name="Saw Wave",a.createZone(Q),l.addPresets(a),l.soundBankInfo.name="Dummy",l.flush(),await l.writeSF2()}static copyFrom(l){const t=new $l;return l.presets.forEach(A=>t.clonePreset(A)),t.soundBankInfo={...l.soundBankInfo},t}addCompletePresets(l){this.addPresets(...l);const t=[];for(const Q of l)for(const n of Q.zones)n.instrument&&!t.includes(n.instrument)&&t.push(n.instrument);this.addInstruments(...t);const A=[];for(const Q of t)for(const n of Q.zones)n.sample&&!A.includes(n.sample)&&A.push(n.sample);this.addSamples(...A)}async writeDLS(l=lQ){return oa.fromSF(this).write(l)}async writeSF2(l=YA){return aa(this,l)}addPresets(...l){this.presets.push(...l)}addInstruments(...l){this.instruments.push(...l)}addSamples(...l){this.samples.push(...l)}cloneSample(l){const t=this.samples.find(Q=>Q.name===l.name);if(t)return t;const A=new XA(l.name,l.sampleRate,l.originalKey,l.pitchCorrection,l.sampleType,l.loopStart,l.loopEnd);if(l.isCompressed?A.setCompressedData(l.getRawData(!0)):A.setAudioData(l.getAudioData(),l.sampleRate),this.addSamples(A),l.linkedSample){const Q=this.cloneSample(l.linkedSample);Q.linkedSample||A.setLinkedSample(Q,A.sampleType)}return A}cloneInstrument(l){const t=this.instruments.find(Q=>Q.name===l.name);if(t)return t;const A=new AA;A.name=l.name,A.globalZone.copyFrom(l.globalZone);for(const Q of l.zones)A.createZone(this.cloneSample(Q.sample)).copyFrom(Q);return this.addInstruments(A),A}clonePreset(l){const t=this.presets.find(Q=>Q.name===l.name);if(t)return t;const A=new Tt(this);A.name=l.name,A.bankMSB=l.bankMSB,A.bankLSB=l.bankLSB,A.isGMGSDrum=l.isGMGSDrum,A.program=l.program,A.library=l.library,A.genre=l.genre,A.morphology=l.morphology,A.globalZone.copyFrom(l.globalZone);for(const Q of l.zones)A.createZone(this.cloneInstrument(Q.instrument)).copyFrom(Q);return this.addPresets(A),A}flush(){this.presets.sort(St.sorter.bind(St)),this.parseInternal()}trimSoundBank(l){const t=(Q,n)=>{let a=0;for(let s=0;s<Q.zones.length;s++){const F=Q.zones[s],d=F.keyRange,o=F.velRange;let c=!1;for(const h of n)if(h.key>=d.min&&h.key<=d.max&&h.velocity>=o.min&&h.velocity<=o.max){c=!0;break}!c&&F.sample&&($(`%c${F.sample.name}%c removed from %c${Q.name}%c.`,b.recognized,b.info,b.recognized,b.info),Q.deleteZone(s)&&(a++,s--,$(`%c${F.sample.name}%c deleted`,b.recognized,b.info)),F.sample.useCount<1&&this.deleteSample(F.sample))}return a};at("%cTrimming sound bank...",b.info);const A=l.getUsedProgramsAndKeys(this);xl("%cModifying sound bank...",b.info);for(let Q=0;Q<this.presets.length;Q++){const n=this.presets[Q],a=A.get(n);if(a===void 0)$(`%cDeleting preset %c${n.name}%c and its zones`,b.info,b.recognized,b.info),this.deletePreset(n),Q--;else{const s=[...a].map(d=>{const o=d.split("-");return{key:parseInt(o[0]),velocity:parseInt(o[1])}});xl(`%cTrimming %c${n.name}`,b.info,b.recognized),$(`Keys for ${n.name}:`,s);let F=0;for(let d=0;d<n.zones.length;d++){const o=n.zones[d],c=o.keyRange,h=o.velRange;let Z=!1;for(const U of s)if(U.key>=c.min&&U.key<=c.max&&U.velocity>=h.min&&U.velocity<=h.max&&o.instrument){Z=!0;const m=t(o.instrument,s);$(`%cTrimmed off %c${m}%c zones from %c${o.instrument.name}`,b.info,b.recognized,b.info,b.recognized);break}!Z&&o.instrument&&(F++,n.deleteZone(d),o.instrument.useCount<1&&this.deleteInstrument(o.instrument),d--)}$(`%cTrimmed off %c${F}%c zones from %c${n.name}`,b.info,b.recognized,b.info,b.recognized)}}this.removeUnusedElements(),$("%cSound bank modified!",b.recognized)}removeUnusedElements(){this.instruments=this.instruments.filter(l=>{l.deleteUnusedZones();const t=l.useCount<1;return t&&l.delete(),!t}),this.samples=this.samples.filter(l=>{const t=l.useCount<1;return t&&l.unlinkSample(),!t})}deleteInstrument(l){l.delete(),this.instruments.splice(this.instruments.indexOf(l),1)}deletePreset(l){l.delete(),this.presets.splice(this.presets.indexOf(l),1)}deleteSample(l){l.unlinkSample(),this.samples.splice(this.samples.indexOf(l),1)}getPreset(l,t){return On(this.presets,l,t)}destroySoundBank(){this.presets.length=0,this.instruments.length=0,this.samples.length=0}parsingError(l){throw new Error(`SF parsing error: ${l} The file may be corrupted.`)}parseInternal(){this._isXGBank=!1;const l=new Set([0,1,2,3,4,5,6,7,8,9,16,17,24,25,26,27,28,29,30,31,32,33,40,41,48,56,57,58,64,65,66,126,127]);for(const t of this.presets)if(Ft.isXGDrums(t.bankMSB)&&(this._isXGBank=!0,!l.has(t.program))){this._isXGBank=!1,$(`%cThis bank is not valid XG. Preset %c${t.toString()}%c is not a valid XG drum. XG mode will use presets on bank 128.`,b.info,b.value,b.info);break}}printInfo(){for(const[l,t]of Object.entries(this.soundBankInfo)){if(typeof t=="object"&&"major"in t){const A=t;$(`%c${l}: %c"${A.major}.${A.minor}"`,b.info,b.recognized)}$(`%c${l}: %c${t.toLocaleString()}`,b.info,b.recognized)}}},R($l,"isSF3DecoderReady",ge.isInitialized),$l);function Zt(e,l){return{...l,...e??{}}}var Za=class{constructor(e){R(this,"keyModifiers",[]);R(this,"synth");this.synth=e}addModifier(e,l,t){var Q;const A=new $n;A.gain=(t==null?void 0:t.gain)??1,A.velocity=(t==null?void 0:t.velocity)??-1,A.patch=Zt(t.patch??{},{isGMGSDrum:!1,bankLSB:-1,bankMSB:-1,program:-1}),(Q=this.keyModifiers)[e]??(Q[e]=[]),this.keyModifiers[e][l]=A,this.sendToWorklet("addMapping",{channel:e,midiNote:l,mapping:A})}getModifier(e,l){var t,A;return(A=(t=this.keyModifiers)==null?void 0:t[e])==null?void 0:A[l]}deleteModifier(e,l){var t;this.sendToWorklet("deleteMapping",{channel:e,midiNote:l}),((t=this.keyModifiers[e])==null?void 0:t[l])!==void 0&&(this.keyModifiers[e][l]=void 0)}clearModifiers(){this.sendToWorklet("clearMappings",null),this.keyModifiers=[]}sendToWorklet(e,l){const t={type:e,data:l};this.synth.post({type:"keyModifierManager",channelNumber:-1,data:t})}},Ra=class{constructor(e){R(this,"soundBankList");R(this,"synth");this.soundBankList=[],this.synth=e}get priorityOrder(){return this.soundBankList.map(e=>e.id)}set priorityOrder(e){this.sendToWorklet("rearrangeSoundBanks",e),this.soundBankList.sort((l,t)=>e.indexOf(l.id)-e.indexOf(t.id))}async addSoundBank(e,l,t=0){this.sendToWorklet("addSoundBank",{soundBankBuffer:e,bankOffset:t,id:l},[e]),await this.awaitResponse();const A=this.soundBankList.find(Q=>Q.id===l);A!==void 0?A.bankOffset=t:this.soundBankList.push({id:l,bankOffset:t})}async deleteSoundBank(e){if(this.soundBankList.length<2){rt.SpessaSynthWarn("1 sound bank left. Aborting!");return}if(this.soundBankList.findIndex(l=>l.id===e)===-1){rt.SpessaSynthWarn(`No sound banks with id of "${e}" found. Aborting!`);return}this.sendToWorklet("deleteSoundBank",e),this.soundBankList=this.soundBankList.filter(l=>l.id!==e),await this.awaitResponse()}async awaitResponse(){return new Promise(e=>this.synth.awaitWorkerResponse("soundBankManager",e))}sendToWorklet(e,l,t=[]){const A={type:"soundBankManager",channelNumber:-1,data:{type:e,data:l}};this.synth.post(A,t)}},ha=class{constructor(){R(this,"timeDelay",0);R(this,"events",{noteOff:new Map,noteOn:new Map,pitchWheel:new Map,controllerChange:new Map,programChange:new Map,channelPressure:new Map,polyPressure:new Map,drumChange:new Map,stopAll:new Map,newChannel:new Map,muteChannel:new Map,presetListChange:new Map,allControllerReset:new Map,soundBankError:new Map,synthDisplay:new Map,masterParameterChange:new Map,channelPropertyChange:new Map})}addEvent(e,l,t){this.events[e].set(l,t)}removeEvent(e,l){this.events[e].delete(l)}callEventInternal(e,l){const t=this.events[e],A=()=>{t.forEach(Q=>{try{Q(l)}catch(n){console.error(`Error while executing an event callback for ${e}:`,n)}})};this.timeDelay>0?setTimeout(A.bind(this),this.timeDelay*1e3):A()}},tQ=class{constructor(e,l){R(this,"input");R(this,"output");this.input=e,this.output=l}connect(e){return this.output.connect(e)}disconnect(e){return e?this.output.disconnect(e):this.output.disconnect()}delete(){this.input.disconnect(),this.output.disconnect()}},Va=4,ma=.03,Ea=.013,ba=.03,Ia=.2,Wa=.05,ra=.003,nA={nodesAmount:Va,defaultDelay:ma,delayVariation:Ea,stereoDifference:ba,oscillatorFrequency:Ia,oscillatorFrequencyVariation:Wa,oscillatorGain:ra},AQ=class extends tQ{constructor(l,t=nA){super(l.createChannelSplitter(2),l.createChannelMerger(2));R(this,"chorusLeft",[]);R(this,"chorusRight",[]);R(this,"_config",nA);this.update(t)}get config(){return this._config}update(l){this.deleteNodes();const t=Zt(l,nA);this._config=t;let A=t.oscillatorFrequency,Q=t.defaultDelay;for(let n=0;n<t.nodesAmount;n++)this.createChorusNode(A,Q,this.chorusLeft,0,this.output,0,t),this.createChorusNode(A,Q+t.stereoDifference,this.chorusRight,1,this.output,1,t),A+=t.oscillatorFrequencyVariation,Q+=t.delayVariation}delete(){super.delete(),this.deleteNodes()}deleteNodes(){this.input.disconnect();for(const l of this.chorusLeft)l.delay.disconnect(),l.oscillator.disconnect(),l.oscillator.stop(),l.oscillatorGain.disconnect();for(const l of this.chorusRight)l.delay.disconnect(),l.oscillator.disconnect(),l.oscillator.stop(),l.oscillatorGain.disconnect();this.chorusLeft.length=0,this.chorusRight.length=0}createChorusNode(l,t,A,Q,n,a,s){const F=n.context,d=F.createOscillator();d.type="sine",d.frequency.value=l;const o=F.createGain();o.gain.value=s.oscillatorGain;const c=F.createDelay();c.delayTime.value=t,d.connect(o),o.connect(c.delayTime),d.start(F.currentTime),this.input.connect(c,Q),c.connect(n,0,a),A.push({oscillator:d,oscillatorGain:o,delay:c})}},aA={enableEventSystem:!0,oneOutput:!1,audioNodeCreators:void 0,initializeChorusProcessor:!0,initializeReverbProcessor:!0},Sa=rt.consoleColors,ua="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",xA=atob(ua),eQ=new Uint8Array(xA.length);for(let e=0;e<xA.length;e++)eQ[e]=xA.charCodeAt(e);var Ca=rt.inflateSync(eQ).buffer,dA={impulseResponse:void 0},QQ=class extends tQ{constructor(l,t=dA){const A=Zt(t,dA),Q=l.createConvolver();super(Q,Q);R(this,"isReady");R(this,"conv");R(this,"_config");this.conv=Q;const n=A.impulseResponse;n?(Q.buffer=n,this.isReady=new Promise(a=>a(n))):(this.isReady=l.decodeAudioData(Ca.slice(0)),this.isReady.then(a=>{Q.buffer=a})),this._config=A}get config(){return this._config}update(l){const t=Zt(l,dA);t.impulseResponse&&(this.conv.buffer=t.impulseResponse),this._config=t}},Ga=class extends je{constructor(l,t,A,Q=nA,n=dA){super(l.map(a=>pA.copyFrom(a)),t,A);R(this,"chorusConfig");R(this,"reverbConfig");this.reverbConfig={...n},this.chorusConfig={...Q}}getCoreSnapshot(){return new je([...this.channelSnapshots],{...this.masterParameters},[...this.keyMappings])}},_l={time:0},Ja=class{constructor(e,l,t){R(this,"soundBankManager",new Ra(this));R(this,"keyModifierManager",new Za(this));R(this,"eventHandler",new ha);R(this,"context");R(this,"channelProperties",[]);R(this,"presetList",[]);R(this,"sequencerCallbackFunction");R(this,"isReady");R(this,"reverbProcessor");R(this,"chorusProcessor");R(this,"post");R(this,"worklet");R(this,"_outputsAmount",16);R(this,"channelsAmount",this._outputsAmount);R(this,"masterParameters",{...la});R(this,"resolveMap",new Map);R(this,"renderingProgressTracker",new Map);R(this,"_voicesAmount",0);rt.SpessaSynthInfo("%cInitializing SpessaSynth synthesizer...",Sa.info),this.context=e.context,this.worklet=e,this.post=l,this.isReady=new Promise(Q=>this.awaitWorkerResponse("sf3Decoder",Q));const A=Zt(t,aA);this.worklet.port.onmessage=Q=>this.handleMessage(Q.data),A.initializeReverbProcessor&&(this.reverbProcessor=new QQ(this.context),this.isReady=Promise.all([this.isReady,this.reverbProcessor.isReady]),this.worklet.connect(this.reverbProcessor.input,0)),A.initializeChorusProcessor&&(this.chorusProcessor=new AQ(this.context),this.worklet.connect(this.chorusProcessor.input,1));for(let Q=0;Q<this.channelsAmount;Q++)this.addNewChannelInternal(!1);this.channelProperties[re].isDrum=!0,this.eventHandler.addEvent("newChannel",`synth-new-channel-${Math.random()}`,()=>{this.channelsAmount++}),this.eventHandler.addEvent("presetListChange",`synth-preset-list-change-${Math.random()}`,Q=>{this.presetList=[...Q]}),this.eventHandler.addEvent("masterParameterChange",`synth-master-parameter-change-${Math.random()}`,Q=>{this.masterParameters[Q.parameter]=Q.value}),this.eventHandler.addEvent("channelPropertyChange",`synth-channel-property-change-${Math.random()}`,Q=>{this.channelProperties[Q.channel]=Q.property,this._voicesAmount=this.channelProperties.reduce((n,a)=>n+a.voicesAmount,0)})}get voicesAmount(){return this._voicesAmount}get currentTime(){return this.context.currentTime}connect(e){var l,t;(l=this.reverbProcessor)==null||l.connect(e),(t=this.chorusProcessor)==null||t.connect(e);for(let A=2;A<this.channelsAmount+2;A++)this.worklet.connect(e,A);return e}disconnect(e){var l,t,A,Q;if(!e){(l=this.reverbProcessor)==null||l.disconnect(),(t=this.chorusProcessor)==null||t.disconnect(),this.worklet.disconnect();return}(A=this.reverbProcessor)==null||A.disconnect(e),(Q=this.chorusProcessor)==null||Q.disconnect(e);for(let n=2;n<this.channelsAmount+2;n++)this.worklet.disconnect(e,n);return e}setLogLevel(e,l,t){this.post({channelNumber:it,type:"setLogLevel",data:{enableInfo:e,enableWarning:l,enableGroup:t}})}getMasterParameter(e){return this.masterParameters[e]}setMasterParameter(e,l){this.masterParameters[e]=l,this.post({type:"setMasterParameter",channelNumber:it,data:{type:e,data:l}})}async getSnapshot(){return new Promise(e=>{this.awaitWorkerResponse("synthesizerSnapshot",l=>{var A,Q;const t=new Ga(l.channelSnapshots,l.masterParameters,l.keyMappings,(A=this.chorusProcessor)==null?void 0:A.config,(Q=this.reverbProcessor)==null?void 0:Q.config);e(t)}),this.post({type:"requestSynthesizerSnapshot",data:null,channelNumber:-1})})}addNewChannel(){this.addNewChannelInternal(!0)}setVibrato(e,l){this.post({channelNumber:e,type:"setChannelVibrato",data:l})}connectIndividualOutputs(e){if(e.length!==this._outputsAmount)throw new Error(`input nodes amount differs from the system's outputs amount!
19
+ Expected ${this._outputsAmount} got ${e.length}`);for(let l=0;l<this._outputsAmount;l++)this.worklet.connect(e[l],l+2)}disconnectIndividualOutputs(e){if(e.length!==this._outputsAmount)throw new Error(`input nodes amount differs from the system's outputs amount!
20
+ Expected ${this._outputsAmount} got ${e.length}`);for(let l=0;l<this._outputsAmount;l++)this.worklet.disconnect(e[l],l+2)}disableGSNPRNParams(){this.setVibrato(it,{depth:0,rate:-1,delay:0})}sendMessage(e,l=0,t=_l){this._sendInternal(e,l,!1,t)}noteOn(e,l,t,A=_l){const Q=e%16,n=e-Q;l%=128,t%=128,this.sendMessage([dt.noteOn|Q,l,t],n,A)}noteOff(e,l,t=!1,A=_l){l%=128;const Q=e%16,n=e-Q;this._sendInternal([dt.noteOff|Q,l],n,t,A)}stopAll(e=!1){this.post({channelNumber:it,type:"stopAll",data:e?1:0})}controllerChange(e,l,t,A=!1,Q=_l){if(l>127||l<0)throw new Error(`Invalid controller number: ${l}`);t=Math.floor(t)%128,l=Math.floor(l)%128;const n=e%16,a=e-n;this._sendInternal([dt.controllerChange|n,l,t],a,A,Q)}resetControllers(){this.post({channelNumber:it,type:"ccReset",data:null})}lockController(e,l,t){this.post({channelNumber:e,type:"lockController",data:{controllerNumber:l,isLocked:t}})}channelPressure(e,l,t=_l){const A=e%16,Q=e-A;l%=128,this.sendMessage([dt.channelPressure|A,l],Q,t)}polyPressure(e,l,t,A=_l){const Q=e%16,n=e-Q;l%=128,t%=128,this.sendMessage([dt.polyPressure|Q,l,t],n,A)}pitchWheel(e,l,t=_l){const A=e%16,Q=e-A;this.sendMessage([dt.pitchWheel|A,l&127,l>>7],Q,t)}pitchWheelRange(e,l){this.controllerChange(e,v.registeredParameterMSB,0),this.controllerChange(e,v.registeredParameterLSB,0),this.controllerChange(e,v.dataEntryMSB,l),this.controllerChange(e,v.registeredParameterMSB,127),this.controllerChange(e,v.registeredParameterLSB,127),this.controllerChange(e,v.dataEntryMSB,0)}programChange(e,l){const t=e%16,A=e-t;l%=128,this.sendMessage([dt.programChange|t,l],A)}transposeChannel(e,l,t=!1){this.post({channelNumber:e,type:"transposeChannel",data:{semitones:l,force:t}})}muteChannel(e,l){this.post({channelNumber:e,type:"muteChannel",data:l})}systemExclusive(e,l=0,t=_l){this._sendInternal([dt.systemExclusive,...Array.from(e)],l,!1,t)}tuneKeys(e,l){if(l.length>127)throw new Error("Too many tunings. Maximum allowed is 127.");const t=[127,16,8,2,e,l.length];for(const A of l)if(t.push(A.sourceKey),A.targetPitch===-1)t.push(127,127,127);else{const Q=Math.floor(A.targetPitch),n=Math.floor((A.targetPitch-Q)/61e-6);t.push(Q,n>>7&127,n&127)}t.push(247),this.systemExclusive(t)}setDrums(e,l){this.post({channelNumber:e,type:"setDrums",data:l})}reverbateEverythingBecauseWhyNot(){for(let e=0;e<this.channelsAmount;e++)this.controllerChange(e,v.reverbDepth,127),this.lockController(e,v.reverbDepth,!0);return"That's the spirit!"}awaitWorkerResponse(e,l){this.resolveMap.set(e,l)}assignProgressTracker(e,l){if(this.renderingProgressTracker.get(e))throw new Error("Something is already being rendered!");this.renderingProgressTracker.set(e,l)}revokeProgressTracker(e){this.renderingProgressTracker.delete(e)}_sendInternal(e,l,t=!1,A){const Q=Zt(A,_l);this.post({type:"midiMessage",channelNumber:it,data:{messageData:new Uint8Array(e),channelOffset:l,force:t,options:Q}})}handleMessage(e){var l,t;switch(e.type){case"eventCall":this.eventHandler.callEventInternal(e.data.type,e.data.data);break;case"sequencerReturn":(l=this.sequencerCallbackFunction)==null||l.call(this,e.data);break;case"isFullyInitialized":this.workletResponds(e.data.type,e.data.data);break;case"soundBankError":rt.SpessaSynthWarn(e.data),this.eventHandler.callEventInternal("soundBankError",e.data);break;case"renderingProgress":(t=this.renderingProgressTracker.get(e.data.type))==null||t(e.data.data)}}addNewChannelInternal(e){this.channelProperties.push({voicesAmount:0,pitchWheel:0,pitchWheelRange:0,isMuted:!1,isDrum:this.channelsAmount%16===re,transposition:0}),e&&this.post({channelNumber:0,type:"addNewChannel",data:null})}workletResponds(e,l){var t;(t=this.resolveMap.get(e))==null||t(l),this.resolveMap.delete(e)}},ga="spessasynth-worklet-processor",ya=class extends Ja{constructor(e,l=aA){var a;const t=Zt(l,aA);let A=Array(18).fill(2),Q=18;t.oneOutput&&(A=[36],Q=1);let n;try{n=(((a=t==null?void 0:t.audioNodeCreators)==null?void 0:a.worklet)??((F,d,o)=>new AudioWorkletNode(F,d,o)))(e,ga,{outputChannelCount:A,numberOfOutputs:Q,processorOptions:{oneOutput:t.oneOutput,enableEventSystem:t.enableEventSystem}})}catch(s){throw console.error(s),new Error("Could not create the AudioWorkletNode. Did you forget to addModule()?")}super(n,(s,F=[])=>{n.port.postMessage(s,F)},t)}async startOfflineRender(e){this.post({type:"startOfflineRender",data:e,channelNumber:-1},e.soundBankList.map(l=>l.soundBankBuffer)),await new Promise(l=>this.awaitWorkerResponse("startOfflineRender",l))}destroy(){var e,l;(e=this.reverbProcessor)==null||e.disconnect(),(l=this.chorusProcessor)==null||l.delete(),this.post({channelNumber:0,type:"destroyWorklet",data:null}),this.worklet.disconnect(),delete this.worklet,delete this.reverbProcessor,delete this.chorusProcessor}};const pa=Object.freeze(Object.defineProperty({__proto__:null,ChorusProcessor:AQ,DEFAULT_SYNTH_CONFIG:aA,ReverbProcessor:QQ,WorkletSynthesizer:ya},Symbol.toStringTag,{value:"Module"}));_.AudioButton=st,_.AudioSlider=Xt,_.BarInput=Fe,_.BaseNumericInput=bA,_.DEV_MODE=Ot,_.DummyAudioEngine=Ee,_.InitializationProgress=ie,_.MixerControls=se,_.MixerLayout=Un,_.PartControl=de,_.Placeholder=Zn,_.SpeedInput=Ue,_.TimeInput=Be,_.TitleText=ZA,_.TriState=ee,_.isDevFeature=RA,_.isDevMode=uQ,_.useAudioStateStore=et,_.useElementSize=At,_.useInitializationState=oe,_.useMasterAudioControl=It,_.useMusicDataStore=bt,_.usePlaybackStateStore=Qe,Object.defineProperty(_,Symbol.toStringTag,{value:"Module"})});