(function(){const l=document.createElement("link").relList;if(l&&l.supports&&l.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const d of r)if(d.type==="childList")for(const i of d.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&n(i)}).observe(document,{childList:!0,subtree:!0});function t(r){const d={};return r.integrity&&(d.integrity=r.integrity),r.referrerPolicy&&(d.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?d.credentials="include":r.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function n(r){if(r.ep)return;r.ep=!0;const d=t(r);fetch(r.href,d)}})();function Vu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var fo={exports:{}},Mr={},xo={exports:{}},f={};/** * @license React * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var un=Symbol.for("react.element"),Zu=Symbol.for("react.portal"),Uu=Symbol.for("react.fragment"),mu=Symbol.for("react.strict_mode"),Wu=Symbol.for("react.profiler"),Nu=Symbol.for("react.provider"),pu=Symbol.for("react.context"),Ru=Symbol.for("react.forward_ref"),Tu=Symbol.for("react.suspense"),hu=Symbol.for("react.memo"),Fu=Symbol.for("react.lazy"),oc=Symbol.iterator;function Mu(e){return e===null||typeof e!="object"?null:(e=oc&&e[oc]||e["@@iterator"],typeof e=="function"?e:null)}var Yo={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ko=Object.assign,Jo={};function Tt(e,l,t){this.props=e,this.context=l,this.refs=Jo,this.updater=t||Yo}Tt.prototype.isReactComponent={};Tt.prototype.setState=function(e,l){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,l,"setState")};Tt.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function zo(){}zo.prototype=Tt.prototype;function ci(e,l,t){this.props=e,this.context=l,this.refs=Jo,this.updater=t||Yo}var oi=ci.prototype=new zo;oi.constructor=ci;Ko(oi,Tt.prototype);oi.isPureReactComponent=!0;var sc=Array.isArray,Io=Object.prototype.hasOwnProperty,si={current:null},Lo={key:!0,ref:!0,__self:!0,__source:!0};function Do(e,l,t){var n,r={},d=null,i=null;if(l!=null)for(n in l.ref!==void 0&&(i=l.ref),l.key!==void 0&&(d=""+l.key),l)Io.call(l,n)&&!Lo.hasOwnProperty(n)&&(r[n]=l[n]);var o=arguments.length-2;if(o===1)r.children=t;else if(1>>1,J=y[x];if(0>>1;xr(bl,w))Ber(We,bl)?(y[x]=We,y[Be]=w,x=Be):(y[x]=bl,y[Fe]=w,x=Fe);else if(Ber(We,w))y[x]=We,y[Be]=w,x=Be;else break e}}return E}function r(y,E){var w=y.sortIndex-E.sortIndex;return w!==0?w:y.id-E.id}if(typeof performance=="object"&&typeof performance.now=="function"){var d=performance;e.unstable_now=function(){return d.now()}}else{var i=Date,o=i.now();e.unstable_now=function(){return i.now()-o}}var c=[],a=[],U=1,u=null,Z=3,W=!1,N=!1,R=!1,h=typeof setTimeout=="function"?setTimeout:null,V=typeof clearTimeout=="function"?clearTimeout:null,s=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function m(y){for(var E=t(a);E!==null;){if(E.callback===null)n(a);else if(E.startTime<=y)n(a),E.sortIndex=E.expirationTime,l(c,E);else break;E=t(a)}}function T(y){if(R=!1,m(y),!N)if(t(c)!==null)N=!0,dl(M);else{var E=t(a);E!==null&&il(T,E.startTime-y)}}function M(y,E){N=!1,R&&(R=!1,V(b),b=-1),W=!0;var w=Z;try{for(m(E),u=t(c);u!==null&&(!(u.expirationTime>E)||y&&!me());){var x=u.callback;if(typeof x=="function"){u.callback=null,Z=u.priorityLevel;var J=x(u.expirationTime<=E);E=e.unstable_now(),typeof J=="function"?u.callback=J:u===t(c)&&n(c),m(E)}else n(c);u=t(c)}if(u!==null)var ae=!0;else{var Fe=t(a);Fe!==null&&il(T,Fe.startTime-E),ae=!1}return ae}finally{u=null,Z=w,W=!1}}var S=!1,G=null,b=-1,L=5,X=-1;function me(){return!(e.unstable_now()-Xy||125x?(y.sortIndex=w,l(a,y),t(c)===null&&y===t(a)&&(R?(V(b),b=-1):R=!0,il(T,w-x))):(y.sortIndex=J,l(c,y),N||W||(N=!0,dl(M))),y},e.unstable_shouldYield=me,e.unstable_wrapCallback=function(y){var E=Z;return function(){var w=Z;Z=E;try{return y.apply(this,arguments)}finally{Z=w}}}})(Ho);jo.exports=Ho;var xu=jo.exports;/** * @license React * react-dom.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var Yu=k,ke=xu;function F(e){for(var l="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Zd=Object.prototype.hasOwnProperty,Ku=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,uc={},Vc={};function Ju(e){return Zd.call(Vc,e)?!0:Zd.call(uc,e)?!1:Ku.test(e)?Vc[e]=!0:(uc[e]=!0,!1)}function zu(e,l,t,n){if(t!==null&&t.type===0)return!1;switch(typeof l){case"function":case"symbol":return!0;case"boolean":return n?!1:t!==null?!t.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Iu(e,l,t,n){if(l===null||typeof l>"u"||zu(e,l,t,n))return!0;if(n)return!1;if(t!==null)switch(t.type){case 3:return!l;case 4:return l===!1;case 5:return isNaN(l);case 6:return isNaN(l)||1>l}return!1}function Ue(e,l,t,n,r,d,i){this.acceptsBooleans=l===2||l===3||l===4,this.attributeName=n,this.attributeNamespace=r,this.mustUseProperty=t,this.propertyName=e,this.type=l,this.sanitizeURL=d,this.removeEmptyString=i}var de={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){de[e]=new Ue(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var l=e[0];de[l]=new Ue(l,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){de[e]=new Ue(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){de[e]=new Ue(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){de[e]=new Ue(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){de[e]=new Ue(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){de[e]=new Ue(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){de[e]=new Ue(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){de[e]=new Ue(e,5,!1,e.toLowerCase(),null,!1,!1)});var ui=/[\-:]([a-z])/g;function Vi(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var l=e.replace(ui,Vi);de[l]=new Ue(l,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var l=e.replace(ui,Vi);de[l]=new Ue(l,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var l=e.replace(ui,Vi);de[l]=new Ue(l,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){de[e]=new Ue(e,1,!1,e.toLowerCase(),null,!1,!1)});de.xlinkHref=new Ue("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){de[e]=new Ue(e,1,!1,e.toLowerCase(),null,!0,!0)});function Zi(e,l,t,n){var r=de.hasOwnProperty(l)?de[l]:null;(r!==null?r.type!==0:n||!(2o||r[i]!==d[o]){var c=` `+r[i].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=i&&0<=o);break}}}finally{Br=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?Xt(e):""}function Lu(e){switch(e.tag){case 5:return Xt(e.type);case 16:return Xt("Lazy");case 13:return Xt("Suspense");case 19:return Xt("SuspenseList");case 0:case 2:case 15:return e=vr(e.type,!1),e;case 11:return e=vr(e.type.render,!1),e;case 1:return e=vr(e.type,!0),e;default:return""}}function Nd(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Pl:return"Fragment";case Ol:return"Portal";case Ud:return"Profiler";case Ui:return"StrictMode";case md:return"Suspense";case Wd:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Ao:return(e.displayName||"Context")+".Consumer";case Po:return(e._context.displayName||"Context")+".Provider";case mi:var l=e.render;return e=e.displayName,e||(e=l.displayName||l.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Wi:return l=e.displayName||null,l!==null?l:Nd(e.type)||"Memo";case al:l=e._payload,e=e._init;try{return Nd(e(l))}catch{}}return null}function Du(e){var l=e.type;switch(e.tag){case 24:return"Cache";case 9:return(l.displayName||"Context")+".Consumer";case 10:return(l._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=l.render,e=e.displayName||e.name||"",l.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return l;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Nd(l);case 8:return l===Ui?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof l=="function")return l.displayName||l.name||null;if(typeof l=="string")return l}return null}function Sl(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function qo(e){var l=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(l==="checkbox"||l==="radio")}function gu(e){var l=qo(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,l),n=""+e[l];if(!e.hasOwnProperty(l)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var r=t.get,d=t.set;return Object.defineProperty(e,l,{configurable:!0,get:function(){return r.call(this)},set:function(i){n=""+i,d.call(this,i)}}),Object.defineProperty(e,l,{enumerable:t.enumerable}),{getValue:function(){return n},setValue:function(i){n=""+i},stopTracking:function(){e._valueTracker=null,delete e[l]}}}}function Tn(e){e._valueTracker||(e._valueTracker=gu(e))}function $o(e){if(!e)return!1;var l=e._valueTracker;if(!l)return!0;var t=l.getValue(),n="";return e&&(n=qo(e)?e.checked?"true":"false":e.value),e=n,e!==t?(l.setValue(e),!0):!1}function _n(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function pd(e,l){var t=l.checked;return j({},l,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??e._wrapperState.initialChecked})}function Uc(e,l){var t=l.defaultValue==null?"":l.defaultValue,n=l.checked!=null?l.checked:l.defaultChecked;t=Sl(l.value!=null?l.value:t),e._wrapperState={initialChecked:n,initialValue:t,controlled:l.type==="checkbox"||l.type==="radio"?l.checked!=null:l.value!=null}}function es(e,l){l=l.checked,l!=null&&Zi(e,"checked",l,!1)}function Rd(e,l){es(e,l);var t=Sl(l.value),n=l.type;if(t!=null)n==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+t):e.value!==""+t&&(e.value=""+t);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}l.hasOwnProperty("value")?Td(e,l.type,t):l.hasOwnProperty("defaultValue")&&Td(e,l.type,Sl(l.defaultValue)),l.checked==null&&l.defaultChecked!=null&&(e.defaultChecked=!!l.defaultChecked)}function mc(e,l,t){if(l.hasOwnProperty("value")||l.hasOwnProperty("defaultValue")){var n=l.type;if(!(n!=="submit"&&n!=="reset"||l.value!==void 0&&l.value!==null))return;l=""+e._wrapperState.initialValue,t||l===e.value||(e.value=l),e.defaultValue=l}t=e.name,t!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,t!==""&&(e.name=t)}function Td(e,l,t){(l!=="number"||_n(e.ownerDocument)!==e)&&(t==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+t&&(e.defaultValue=""+t))}var ft=Array.isArray;function it(e,l,t,n){if(e=e.options,l){l={};for(var r=0;r"+l.valueOf().toString()+"",l=hn.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;l.firstChild;)e.appendChild(l.firstChild)}});function Ot(e,l){if(l){var t=e.firstChild;if(t&&t===e.lastChild&&t.nodeType===3){t.nodeValue=l;return}}e.textContent=l}var zt={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Bu=["Webkit","ms","Moz","O"];Object.keys(zt).forEach(function(e){Bu.forEach(function(l){l=l+e.charAt(0).toUpperCase()+e.substring(1),zt[l]=zt[e]})});function rs(e,l,t){return l==null||typeof l=="boolean"||l===""?"":t||typeof l!="number"||l===0||zt.hasOwnProperty(e)&&zt[e]?(""+l).trim():l+"px"}function ds(e,l){e=e.style;for(var t in l)if(l.hasOwnProperty(t)){var n=t.indexOf("--")===0,r=rs(t,l[t],n);t==="float"&&(t="cssFloat"),n?e.setProperty(t,r):e[t]=r}}var vu=j({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Md(e,l){if(l){if(vu[e]&&(l.children!=null||l.dangerouslySetInnerHTML!=null))throw Error(F(137,e));if(l.dangerouslySetInnerHTML!=null){if(l.children!=null)throw Error(F(60));if(typeof l.dangerouslySetInnerHTML!="object"||!("__html"in l.dangerouslySetInnerHTML))throw Error(F(61))}if(l.style!=null&&typeof l.style!="object")throw Error(F(62))}}function Sd(e,l){if(e.indexOf("-")===-1)return typeof l.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var yd=null;function Ni(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var kd=null,ct=null,ot=null;function pc(e){if(e=Un(e)){if(typeof kd!="function")throw Error(F(280));var l=e.stateNode;l&&(l=Gr(l),kd(e.stateNode,e.type,l))}}function is(e){ct?ot?ot.push(e):ot=[e]:ct=e}function cs(){if(ct){var e=ct,l=ot;if(ot=ct=null,pc(e),l)for(e=0;e>>=0,e===0?32:31-(lV(e)/tV|0)|0}var Fn=64,Mn=4194304;function xt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function lr(e,l){var t=e.pendingLanes;if(t===0)return 0;var n=0,r=e.suspendedLanes,d=e.pingedLanes,i=t&268435455;if(i!==0){var o=i&~r;o!==0?n=xt(o):(d&=i,d!==0&&(n=xt(d)))}else i=t&~r,i!==0?n=xt(i):d!==0&&(n=xt(d));if(n===0)return 0;if(l!==0&&l!==n&&!(l&r)&&(r=n&-n,d=l&-l,r>=d||r===16&&(d&4194240)!==0))return l;if(n&4&&(n|=t&16),l=e.entangledLanes,l!==0)for(e=e.entanglements,l&=n;0t;t++)l.push(e);return l}function Vn(e,l,t){e.pendingLanes|=l,l!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,l=31-Le(l),e[l]=t}function iV(e,l){var t=e.pendingLanes&~l;e.pendingLanes=l,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=l,e.mutableReadLanes&=l,e.entangledLanes&=l,l=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0=Lt),Qc=" ",Gc=!1;function Qs(e,l){switch(e){case"keyup":return xV.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Gs(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Al=!1;function KV(e,l){switch(e){case"compositionend":return Gs(l);case"keypress":return l.which!==32?null:(Gc=!0,Qc);case"textInput":return e=l.data,e===Qc&&Gc?null:e;default:return null}}function JV(e,l){if(Al)return e==="compositionend"||!yi&&Qs(e,l)?(e=ys(),Dn=Fi=Ul=null,Al=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:t,offset:l-e};e=n}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=Xc(t)}}function Xs(e,l){return e&&l?e===l?!0:e&&e.nodeType===3?!1:l&&l.nodeType===3?Xs(e,l.parentNode):"contains"in e?e.contains(l):e.compareDocumentPosition?!!(e.compareDocumentPosition(l)&16):!1:!1}function fs(){for(var e=window,l=_n();l instanceof e.HTMLIFrameElement;){try{var t=typeof l.contentWindow.location.href=="string"}catch{t=!1}if(t)e=l.contentWindow;else break;l=_n(e.document)}return l}function ki(e){var l=e&&e.nodeName&&e.nodeName.toLowerCase();return l&&(l==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||l==="textarea"||e.contentEditable==="true")}function jV(e){var l=fs(),t=e.focusedElem,n=e.selectionRange;if(l!==t&&t&&t.ownerDocument&&Xs(t.ownerDocument.documentElement,t)){if(n!==null&&ki(t)){if(l=n.start,e=n.end,e===void 0&&(e=l),"selectionStart"in t)t.selectionStart=l,t.selectionEnd=Math.min(e,t.value.length);else if(e=(l=t.ownerDocument||document)&&l.defaultView||window,e.getSelection){e=e.getSelection();var r=t.textContent.length,d=Math.min(n.start,r);n=n.end===void 0?d:Math.min(n.end,r),!e.extend&&d>n&&(r=n,n=d,d=r),r=fc(t,d);var i=fc(t,n);r&&i&&(e.rangeCount!==1||e.anchorNode!==r.node||e.anchorOffset!==r.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(l=l.createRange(),l.setStart(r.node,r.offset),e.removeAllRanges(),d>n?(e.addRange(l),e.extend(i.node,i.offset)):(l.setEnd(i.node,i.offset),e.addRange(l)))}}for(l=[],e=t;e=e.parentNode;)e.nodeType===1&&l.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,_l=null,Xd=null,gt=null,fd=!1;function xc(e,l,t){var n=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;fd||_l==null||_l!==_n(n)||(n=_l,"selectionStart"in n&&ki(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),gt&&en(gt,n)||(gt=n,n=rr(Xd,"onSelect"),0et||(e.current=Id[et],Id[et]=null,et--)}function I(e,l){et++,Id[et]=e.current,e.current=l}var yl={},se=Ql(yl),Re=Ql(!1),Jl=yl;function Ut(e,l){var t=e.type.contextTypes;if(!t)return yl;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===l)return n.__reactInternalMemoizedMaskedChildContext;var r={},d;for(d in t)r[d]=l[d];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=l,e.__reactInternalMemoizedMaskedChildContext=r),r}function Te(e){return e=e.childContextTypes,e!=null}function ir(){g(Re),g(se)}function Dc(e,l,t){if(se.current!==yl)throw Error(F(168));I(se,l),I(Re,t)}function gs(e,l,t){var n=e.stateNode;if(l=l.childContextTypes,typeof n.getChildContext!="function")return t;n=n.getChildContext();for(var r in n)if(!(r in l))throw Error(F(108,Du(e)||"Unknown",r));return j({},t,n)}function cr(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||yl,Jl=se.current,I(se,e),I(Re,Re.current),!0}function gc(e,l,t){var n=e.stateNode;if(!n)throw Error(F(169));t?(e=gs(e,l,Jl),n.__reactInternalMemoizedMergedChildContext=e,g(Re),g(se),I(se,e)):g(Re),I(Re,t)}var Ae=null,br=!1,rd=!1;function Bs(e){Ae===null?Ae=[e]:Ae.push(e)}function rZ(e){br=!0,Bs(e)}function Gl(){if(!rd&&Ae!==null){rd=!0;var e=0,l=z;try{var t=Ae;for(z=1;e>=i,r-=i,_e=1<<32-Le(l)+r|t<b?(L=G,G=null):L=G.sibling;var X=Z(V,G,m[b],T);if(X===null){G===null&&(G=L);break}e&&G&&X.alternate===null&&l(V,G),s=d(X,s,b),S===null?M=X:S.sibling=X,S=X,G=L}if(b===m.length)return t(V,G),B&&El(V,b),M;if(G===null){for(;bb?(L=G,G=null):L=G.sibling;var me=Z(V,G,X.value,T);if(me===null){G===null&&(G=L);break}e&&G&&me.alternate===null&&l(V,G),s=d(me,s,b),S===null?M=me:S.sibling=me,S=me,G=L}if(X.done)return t(V,G),B&&El(V,b),M;if(G===null){for(;!X.done;b++,X=m.next())X=u(V,X.value,T),X!==null&&(s=d(X,s,b),S===null?M=X:S.sibling=X,S=X);return B&&El(V,b),M}for(G=n(V,G);!X.done;b++,X=m.next())X=W(G,V,b,X.value,T),X!==null&&(e&&X.alternate!==null&&G.delete(X.key===null?b:X.key),s=d(X,s,b),S===null?M=X:S.sibling=X,S=X);return e&&G.forEach(function(Ye){return l(V,Ye)}),B&&El(V,b),M}function h(V,s,m,T){if(typeof m=="object"&&m!==null&&m.type===Pl&&m.key===null&&(m=m.props.children),typeof m=="object"&&m!==null){switch(m.$$typeof){case Rn:e:{for(var M=m.key,S=s;S!==null;){if(S.key===M){if(M=m.type,M===Pl){if(S.tag===7){t(V,S.sibling),s=r(S,m.props.children),s.return=V,V=s;break e}}else if(S.elementType===M||typeof M=="object"&&M!==null&&M.$$typeof===al&&Cc(M)===S.type){t(V,S.sibling),s=r(S,m.props),s.ref=Gt(V,S,m),s.return=V,V=s;break e}t(V,S);break}else l(V,S);S=S.sibling}m.type===Pl?(s=Kl(m.props.children,V.mode,T,m.key),s.return=V,V=s):(T=Pn(m.type,m.key,m.props,null,V.mode,T),T.ref=Gt(V,s,m),T.return=V,V=T)}return i(V);case Ol:e:{for(S=m.key;s!==null;){if(s.key===S)if(s.tag===4&&s.stateNode.containerInfo===m.containerInfo&&s.stateNode.implementation===m.implementation){t(V,s.sibling),s=r(s,m.children||[]),s.return=V,V=s;break e}else{t(V,s);break}else l(V,s);s=s.sibling}s=Vd(m,V.mode,T),s.return=V,V=s}return i(V);case al:return S=m._init,h(V,s,S(m._payload),T)}if(ft(m))return N(V,s,m,T);if(Mt(m))return R(V,s,m,T);En(V,m)}return typeof m=="string"&&m!==""||typeof m=="number"?(m=""+m,s!==null&&s.tag===6?(t(V,s.sibling),s=r(s,m),s.return=V,V=s):(t(V,s),s=ud(m,V.mode,T),s.return=V,V=s),i(V)):t(V,s)}return h}var Wt=Hs(!0),Os=Hs(!1),ar=Ql(null),ur=null,nt=null,Ei=null;function wi(){Ei=nt=ur=null}function Xi(e){var l=ar.current;g(ar),e._currentValue=l}function gd(e,l,t){for(;e!==null;){var n=e.alternate;if((e.childLanes&l)!==l?(e.childLanes|=l,n!==null&&(n.childLanes|=l)):n!==null&&(n.childLanes&l)!==l&&(n.childLanes|=l),e===t)break;e=e.return}}function at(e,l){ur=e,Ei=nt=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&l&&(pe=!0),e.firstContext=null)}function fe(e){var l=e._currentValue;if(Ei!==e)if(e={context:e,memoizedValue:l,next:null},nt===null){if(ur===null)throw Error(F(308));nt=e,ur.dependencies={lanes:0,firstContext:e}}else nt=nt.next=e;return l}var fl=null;function fi(e){fl===null?fl=[e]:fl.push(e)}function Ps(e,l,t,n){var r=l.interleaved;return r===null?(t.next=t,fi(l)):(t.next=r.next,r.next=t),l.interleaved=t,tl(e,n)}function tl(e,l){e.lanes|=l;var t=e.alternate;for(t!==null&&(t.lanes|=l),t=e,e=e.return;e!==null;)e.childLanes|=l,t=e.alternate,t!==null&&(t.childLanes|=l),t=e,e=e.return;return t.tag===3?t.stateNode:null}var ul=!1;function xi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function As(e,l){e=e.updateQueue,l.updateQueue===e&&(l.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function $e(e,l){return{eventTime:e,lane:l,tag:0,payload:null,callback:null,next:null}}function Tl(e,l,t){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,K&2){var r=n.pending;return r===null?l.next=l:(l.next=r.next,r.next=l),n.pending=l,tl(e,t)}return r=n.interleaved,r===null?(l.next=l,fi(n)):(l.next=r.next,r.next=l),n.interleaved=l,tl(e,t)}function Bn(e,l,t){if(l=l.updateQueue,l!==null&&(l=l.shared,(t&4194240)!==0)){var n=l.lanes;n&=e.pendingLanes,t|=n,l.lanes=t,Ri(e,t)}}function jc(e,l){var t=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,t===n)){var r=null,d=null;if(t=t.firstBaseUpdate,t!==null){do{var i={eventTime:t.eventTime,lane:t.lane,tag:t.tag,payload:t.payload,callback:t.callback,next:null};d===null?r=d=i:d=d.next=i,t=t.next}while(t!==null);d===null?r=d=l:d=d.next=l}else r=d=l;t={baseState:n.baseState,firstBaseUpdate:r,lastBaseUpdate:d,shared:n.shared,effects:n.effects},e.updateQueue=t;return}e=t.lastBaseUpdate,e===null?t.firstBaseUpdate=l:e.next=l,t.lastBaseUpdate=l}function Vr(e,l,t,n){var r=e.updateQueue;ul=!1;var d=r.firstBaseUpdate,i=r.lastBaseUpdate,o=r.shared.pending;if(o!==null){r.shared.pending=null;var c=o,a=c.next;c.next=null,i===null?d=a:i.next=a,i=c;var U=e.alternate;U!==null&&(U=U.updateQueue,o=U.lastBaseUpdate,o!==i&&(o===null?U.firstBaseUpdate=a:o.next=a,U.lastBaseUpdate=c))}if(d!==null){var u=r.baseState;i=0,U=a=c=null,o=d;do{var Z=o.lane,W=o.eventTime;if((n&Z)===Z){U!==null&&(U=U.next={eventTime:W,lane:0,tag:o.tag,payload:o.payload,callback:o.callback,next:null});e:{var N=e,R=o;switch(Z=l,W=t,R.tag){case 1:if(N=R.payload,typeof N=="function"){u=N.call(W,u,Z);break e}u=N;break e;case 3:N.flags=N.flags&-65537|128;case 0:if(N=R.payload,Z=typeof N=="function"?N.call(W,u,Z):N,Z==null)break e;u=j({},u,Z);break e;case 2:ul=!0}}o.callback!==null&&o.lane!==0&&(e.flags|=64,Z=r.effects,Z===null?r.effects=[o]:Z.push(o))}else W={eventTime:W,lane:Z,tag:o.tag,payload:o.payload,callback:o.callback,next:null},U===null?(a=U=W,c=u):U=U.next=W,i|=Z;if(o=o.next,o===null){if(o=r.shared.pending,o===null)break;Z=o,o=Z.next,Z.next=null,r.lastBaseUpdate=Z,r.shared.pending=null}}while(!0);if(U===null&&(c=u),r.baseState=c,r.firstBaseUpdate=a,r.lastBaseUpdate=U,l=r.shared.interleaved,l!==null){r=l;do i|=r.lane,r=r.next;while(r!==l)}else d===null&&(r.shared.lanes=0);Ll|=i,e.lanes=i,e.memoizedState=u}}function Hc(e,l,t){if(e=l.effects,l.effects=null,e!==null)for(l=0;lt?t:4,e(!0);var n=id.transition;id.transition={};try{e(!1),l()}finally{z=t,id.transition=n}}function Za(){return xe().memoizedState}function oZ(e,l,t){var n=Fl(e);if(t={lane:n,action:t,hasEagerState:!1,eagerState:null,next:null},Ua(e))ma(l,t);else if(t=Ps(e,l,t,n),t!==null){var r=Ve();De(t,e,n,r),Wa(t,l,n)}}function sZ(e,l,t){var n=Fl(e),r={lane:n,action:t,hasEagerState:!1,eagerState:null,next:null};if(Ua(e))ma(l,r);else{var d=e.alternate;if(e.lanes===0&&(d===null||d.lanes===0)&&(d=l.lastRenderedReducer,d!==null))try{var i=l.lastRenderedState,o=d(i,t);if(r.hasEagerState=!0,r.eagerState=o,ge(o,i)){var c=l.interleaved;c===null?(r.next=r,fi(l)):(r.next=c.next,c.next=r),l.interleaved=r;return}}catch{}finally{}t=Ps(e,l,r,n),t!==null&&(r=Ve(),De(t,e,n,r),Wa(t,l,n))}}function Ua(e){var l=e.alternate;return e===C||l!==null&&l===C}function ma(e,l){Bt=Ur=!0;var t=e.pending;t===null?l.next=l:(l.next=t.next,t.next=l),e.pending=l}function Wa(e,l,t){if(t&4194240){var n=l.lanes;n&=e.pendingLanes,t|=n,l.lanes=t,Ri(e,t)}}var mr={readContext:fe,useCallback:ie,useContext:ie,useEffect:ie,useImperativeHandle:ie,useInsertionEffect:ie,useLayoutEffect:ie,useMemo:ie,useReducer:ie,useRef:ie,useState:ie,useDebugValue:ie,useDeferredValue:ie,useTransition:ie,useMutableSource:ie,useSyncExternalStore:ie,useId:ie,unstable_isNewReconciler:!1},aZ={readContext:fe,useCallback:function(e,l){return Ce().memoizedState=[e,l===void 0?null:l],e},useContext:fe,useEffect:Pc,useImperativeHandle:function(e,l,t){return t=t!=null?t.concat([e]):null,Cn(4194308,4,oa.bind(null,l,e),t)},useLayoutEffect:function(e,l){return Cn(4194308,4,e,l)},useInsertionEffect:function(e,l){return Cn(4,2,e,l)},useMemo:function(e,l){var t=Ce();return l=l===void 0?null:l,e=e(),t.memoizedState=[e,l],e},useReducer:function(e,l,t){var n=Ce();return l=t!==void 0?t(l):l,n.memoizedState=n.baseState=l,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:l},n.queue=e,e=e.dispatch=oZ.bind(null,C,e),[n.memoizedState,e]},useRef:function(e){var l=Ce();return e={current:e},l.memoizedState=e},useState:Oc,useDebugValue:gi,useDeferredValue:function(e){return Ce().memoizedState=e},useTransition:function(){var e=Oc(!1),l=e[0];return e=cZ.bind(null,e[1]),Ce().memoizedState=e,[l,e]},useMutableSource:function(){},useSyncExternalStore:function(e,l,t){var n=C,r=Ce();if(B){if(t===void 0)throw Error(F(407));t=t()}else{if(t=l(),le===null)throw Error(F(349));Il&30||ea(n,l,t)}r.memoizedState=t;var d={value:t,getSnapshot:l};return r.queue=d,Pc(ta.bind(null,n,d,e),[e]),n.flags|=2048,sn(9,la.bind(null,n,d,t,l),void 0,null),t},useId:function(){var e=Ce(),l=le.identifierPrefix;if(B){var t=qe,n=_e;t=(n&~(1<<32-Le(n)-1)).toString(32)+t,l=":"+l+"R"+t,t=cn++,0<\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=i.createElement(t,{is:n.is}):(e=i.createElement(t),t==="select"&&(i=e,n.multiple?i.multiple=!0:n.size&&(i.size=n.size))):e=i.createElementNS(e,t),e[je]=l,e[nn]=n,ka(e,l,!1,!1),l.stateNode=e;e:{switch(i=Sd(t,n),t){case"dialog":D("cancel",e),D("close",e),r=n;break;case"iframe":case"object":case"embed":D("load",e),r=n;break;case"video":case"audio":for(r=0;rRt&&(l.flags|=128,n=!0,bt(d,!1),l.lanes=4194304)}else{if(!n)if(e=Zr(i),e!==null){if(l.flags|=128,n=!0,t=e.updateQueue,t!==null&&(l.updateQueue=t,l.flags|=4),bt(d,!0),d.tail===null&&d.tailMode==="hidden"&&!i.alternate&&!B)return ce(l),null}else 2*A()-d.renderingStartTime>Rt&&t!==1073741824&&(l.flags|=128,n=!0,bt(d,!1),l.lanes=4194304);d.isBackwards?(i.sibling=l.child,l.child=i):(t=d.last,t!==null?t.sibling=i:l.child=i,d.last=i)}return d.tail!==null?(l=d.tail,d.rendering=l,d.tail=l.sibling,d.renderingStartTime=A(),l.sibling=null,t=v.current,I(v,n?t&1|2:t&1),l):(ce(l),null);case 22:case 23:return Oi(),n=l.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(l.flags|=8192),n&&l.mode&1?Me&1073741824&&(ce(l),l.subtreeFlags&6&&(l.flags|=8192)):ce(l),null;case 24:return null;case 25:return null}throw Error(F(156,l.tag))}function pZ(e,l){switch(Gi(l),l.tag){case 1:return Te(l.type)&&ir(),e=l.flags,e&65536?(l.flags=e&-65537|128,l):null;case 3:return Nt(),g(Re),g(se),Ji(),e=l.flags,e&65536&&!(e&128)?(l.flags=e&-65537|128,l):null;case 5:return Ki(l),null;case 13:if(g(v),e=l.memoizedState,e!==null&&e.dehydrated!==null){if(l.alternate===null)throw Error(F(340));mt()}return e=l.flags,e&65536?(l.flags=e&-65537|128,l):null;case 19:return g(v),null;case 4:return Nt(),null;case 10:return Xi(l.type._context),null;case 22:case 23:return Oi(),null;case 24:return null;default:return null}}var Xn=!1,oe=!1,RZ=typeof WeakSet=="function"?WeakSet:Set,Q=null;function rt(e,l){var t=e.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(n){O(e,l,n)}else t.current=null}function _d(e,l,t){try{t()}catch(n){O(e,l,n)}}var co=!1;function TZ(e,l){if(xd=tr,e=fs(),ki(e)){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{t=(t=e.ownerDocument)&&t.defaultView||window;var n=t.getSelection&&t.getSelection();if(n&&n.rangeCount!==0){t=n.anchorNode;var r=n.anchorOffset,d=n.focusNode;n=n.focusOffset;try{t.nodeType,d.nodeType}catch{t=null;break e}var i=0,o=-1,c=-1,a=0,U=0,u=e,Z=null;l:for(;;){for(var W;u!==t||r!==0&&u.nodeType!==3||(o=i+r),u!==d||n!==0&&u.nodeType!==3||(c=i+n),u.nodeType===3&&(i+=u.nodeValue.length),(W=u.firstChild)!==null;)Z=u,u=W;for(;;){if(u===e)break l;if(Z===t&&++a===r&&(o=i),Z===d&&++U===n&&(c=i),(W=u.nextSibling)!==null)break;u=Z,Z=u.parentNode}u=W}t=o===-1||c===-1?null:{start:o,end:c}}else t=null}t=t||{start:0,end:0}}else t=null;for(Yd={focusedElem:e,selectionRange:t},tr=!1,Q=l;Q!==null;)if(l=Q,e=l.child,(l.subtreeFlags&1028)!==0&&e!==null)e.return=l,Q=e;else for(;Q!==null;){l=Q;try{var N=l.alternate;if(l.flags&1024)switch(l.tag){case 0:case 11:case 15:break;case 1:if(N!==null){var R=N.memoizedProps,h=N.memoizedState,V=l.stateNode,s=V.getSnapshotBeforeUpdate(l.elementType===l.type?R:Je(l.type,R),h);V.__reactInternalSnapshotBeforeUpdate=s}break;case 3:var m=l.stateNode.containerInfo;m.nodeType===1?m.textContent="":m.nodeType===9&&m.documentElement&&m.removeChild(m.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(F(163))}}catch(T){O(l,l.return,T)}if(e=l.sibling,e!==null){e.return=l.return,Q=e;break}Q=l.return}return N=co,co=!1,N}function vt(e,l,t){var n=l.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var r=n=n.next;do{if((r.tag&e)===e){var d=r.destroy;r.destroy=void 0,d!==void 0&&_d(l,t,d)}r=r.next}while(r!==n)}}function Xr(e,l){if(l=l.updateQueue,l=l!==null?l.lastEffect:null,l!==null){var t=l=l.next;do{if((t.tag&e)===e){var n=t.create;t.destroy=n()}t=t.next}while(t!==l)}}function qd(e){var l=e.ref;if(l!==null){var t=e.stateNode;switch(e.tag){case 5:e=t;break;default:e=t}typeof l=="function"?l(e):l.current=e}}function ba(e){var l=e.alternate;l!==null&&(e.alternate=null,ba(l)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(l=e.stateNode,l!==null&&(delete l[je],delete l[nn],delete l[zd],delete l[tZ],delete l[nZ])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Ea(e){return e.tag===5||e.tag===3||e.tag===4}function oo(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Ea(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function $d(e,l,t){var n=e.tag;if(n===5||n===6)e=e.stateNode,l?t.nodeType===8?t.parentNode.insertBefore(e,l):t.insertBefore(e,l):(t.nodeType===8?(l=t.parentNode,l.insertBefore(e,t)):(l=t,l.appendChild(e)),t=t._reactRootContainer,t!=null||l.onclick!==null||(l.onclick=dr));else if(n!==4&&(e=e.child,e!==null))for($d(e,l,t),e=e.sibling;e!==null;)$d(e,l,t),e=e.sibling}function ei(e,l,t){var n=e.tag;if(n===5||n===6)e=e.stateNode,l?t.insertBefore(e,l):t.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(ei(e,l,t),e=e.sibling;e!==null;)ei(e,l,t),e=e.sibling}var ne=null,ze=!1;function sl(e,l,t){for(t=t.child;t!==null;)wa(e,l,t),t=t.sibling}function wa(e,l,t){if(He&&typeof He.onCommitFiberUnmount=="function")try{He.onCommitFiberUnmount(Sr,t)}catch{}switch(t.tag){case 5:oe||rt(t,l);case 6:var n=ne,r=ze;ne=null,sl(e,l,t),ne=n,ze=r,ne!==null&&(ze?(e=ne,t=t.stateNode,e.nodeType===8?e.parentNode.removeChild(t):e.removeChild(t)):ne.removeChild(t.stateNode));break;case 18:ne!==null&&(ze?(e=ne,t=t.stateNode,e.nodeType===8?nd(e.parentNode,t):e.nodeType===1&&nd(e,t),qt(e)):nd(ne,t.stateNode));break;case 4:n=ne,r=ze,ne=t.stateNode.containerInfo,ze=!0,sl(e,l,t),ne=n,ze=r;break;case 0:case 11:case 14:case 15:if(!oe&&(n=t.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){r=n=n.next;do{var d=r,i=d.destroy;d=d.tag,i!==void 0&&(d&2||d&4)&&_d(t,l,i),r=r.next}while(r!==n)}sl(e,l,t);break;case 1:if(!oe&&(rt(t,l),n=t.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=t.memoizedProps,n.state=t.memoizedState,n.componentWillUnmount()}catch(o){O(t,l,o)}sl(e,l,t);break;case 21:sl(e,l,t);break;case 22:t.mode&1?(oe=(n=oe)||t.memoizedState!==null,sl(e,l,t),oe=n):sl(e,l,t);break;default:sl(e,l,t)}}function so(e){var l=e.updateQueue;if(l!==null){e.updateQueue=null;var t=e.stateNode;t===null&&(t=e.stateNode=new RZ),l.forEach(function(n){var r=bZ.bind(null,e,n);t.has(n)||(t.add(n),n.then(r,r))})}}function Ke(e,l){var t=l.deletions;if(t!==null)for(var n=0;nr&&(r=i),n&=~d}if(n=r,n=A()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*FZ(n/1960))-n,10e?16:e,ml===null)var n=!1;else{if(e=ml,ml=null,pr=0,K&6)throw Error(F(331));var r=K;for(K|=4,Q=e.current;Q!==null;){var d=Q,i=d.child;if(Q.flags&16){var o=d.deletions;if(o!==null){for(var c=0;cA()-ji?Yl(e,0):Ci|=t),he(e,l)}function Ia(e,l){l===0&&(e.mode&1?(l=Mn,Mn<<=1,!(Mn&130023424)&&(Mn=4194304)):l=1);var t=Ve();e=tl(e,l),e!==null&&(Vn(e,l,t),he(e,t))}function GZ(e){var l=e.memoizedState,t=0;l!==null&&(t=l.retryLane),Ia(e,t)}function bZ(e,l){var t=0;switch(e.tag){case 13:var n=e.stateNode,r=e.memoizedState;r!==null&&(t=r.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(F(314))}n!==null&&n.delete(l),Ia(e,t)}var La;La=function(e,l,t){if(e!==null)if(e.memoizedProps!==l.pendingProps||Re.current)pe=!0;else{if(!(e.lanes&t)&&!(l.flags&128))return pe=!1,WZ(e,l,t);pe=!!(e.flags&131072)}else pe=!1,B&&l.flags&1048576&&vs(l,sr,l.index);switch(l.lanes=0,l.tag){case 2:var n=l.type;jn(e,l),e=l.pendingProps;var r=Ut(l,se.current);at(l,t),r=Ii(null,l,n,e,r,t);var d=Li();return l.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(l.tag=1,l.memoizedState=null,l.updateQueue=null,Te(n)?(d=!0,cr(l)):d=!1,l.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,xi(l),r.updater=wr,l.stateNode=r,r._reactInternals=l,vd(l,n,e,t),l=Hd(null,l,n,!0,d,t)):(l.tag=0,B&&d&&Qi(l),ue(null,l,r,t),l=l.child),l;case 16:n=l.elementType;e:{switch(jn(e,l),e=l.pendingProps,r=n._init,n=r(n._payload),l.type=n,r=l.tag=wZ(n),e=Je(n,e),r){case 0:l=jd(null,l,n,e,t);break e;case 1:l=no(null,l,n,e,t);break e;case 11:l=lo(null,l,n,e,t);break e;case 14:l=to(null,l,n,Je(n.type,e),t);break e}throw Error(F(306,n,""))}return l;case 0:return n=l.type,r=l.pendingProps,r=l.elementType===n?r:Je(n,r),jd(e,l,n,r,t);case 1:return n=l.type,r=l.pendingProps,r=l.elementType===n?r:Je(n,r),no(e,l,n,r,t);case 3:e:{if(Ma(l),e===null)throw Error(F(387));n=l.pendingProps,d=l.memoizedState,r=d.element,As(e,l),Vr(l,n,null,t);var i=l.memoizedState;if(n=i.element,d.isDehydrated)if(d={element:n,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},l.updateQueue.baseState=d,l.memoizedState=d,l.flags&256){r=pt(Error(F(423)),l),l=ro(e,l,n,t,r);break e}else if(n!==r){r=pt(Error(F(424)),l),l=ro(e,l,n,t,r);break e}else for(Se=Rl(l.stateNode.containerInfo.firstChild),ye=l,B=!0,Ie=null,t=Os(l,null,n,t),l.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(mt(),n===r){l=nl(e,l,t);break e}ue(e,l,n,t)}l=l.child}return l;case 5:return _s(l),e===null&&Dd(l),n=l.type,r=l.pendingProps,d=e!==null?e.memoizedProps:null,i=r.children,Kd(n,r)?i=null:d!==null&&Kd(n,d)&&(l.flags|=32),Fa(e,l),ue(e,l,i,t),l.child;case 6:return e===null&&Dd(l),null;case 13:return Sa(e,l,t);case 4:return Yi(l,l.stateNode.containerInfo),n=l.pendingProps,e===null?l.child=Wt(l,null,n,t):ue(e,l,n,t),l.child;case 11:return n=l.type,r=l.pendingProps,r=l.elementType===n?r:Je(n,r),lo(e,l,n,r,t);case 7:return ue(e,l,l.pendingProps,t),l.child;case 8:return ue(e,l,l.pendingProps.children,t),l.child;case 12:return ue(e,l,l.pendingProps.children,t),l.child;case 10:e:{if(n=l.type._context,r=l.pendingProps,d=l.memoizedProps,i=r.value,I(ar,n._currentValue),n._currentValue=i,d!==null)if(ge(d.value,i)){if(d.children===r.children&&!Re.current){l=nl(e,l,t);break e}}else for(d=l.child,d!==null&&(d.return=l);d!==null;){var o=d.dependencies;if(o!==null){i=d.child;for(var c=o.firstContext;c!==null;){if(c.context===n){if(d.tag===1){c=$e(-1,t&-t),c.tag=2;var a=d.updateQueue;if(a!==null){a=a.shared;var U=a.pending;U===null?c.next=c:(c.next=U.next,U.next=c),a.pending=c}}d.lanes|=t,c=d.alternate,c!==null&&(c.lanes|=t),gd(d.return,t,l),o.lanes|=t;break}c=c.next}}else if(d.tag===10)i=d.type===l.type?null:d.child;else if(d.tag===18){if(i=d.return,i===null)throw Error(F(341));i.lanes|=t,o=i.alternate,o!==null&&(o.lanes|=t),gd(i,t,l),i=d.sibling}else i=d.child;if(i!==null)i.return=d;else for(i=d;i!==null;){if(i===l){i=null;break}if(d=i.sibling,d!==null){d.return=i.return,i=d;break}i=i.return}d=i}ue(e,l,r.children,t),l=l.child}return l;case 9:return r=l.type,n=l.pendingProps.children,at(l,t),r=fe(r),n=n(r),l.flags|=1,ue(e,l,n,t),l.child;case 14:return n=l.type,r=Je(n,l.pendingProps),r=Je(n.type,r),to(e,l,n,r,t);case 15:return Ta(e,l,l.type,l.pendingProps,t);case 17:return n=l.type,r=l.pendingProps,r=l.elementType===n?r:Je(n,r),jn(e,l),l.tag=1,Te(n)?(e=!0,cr(l)):e=!1,at(l,t),Na(l,n,r),vd(l,n,r,t),Hd(null,l,n,!0,e,t);case 19:return ya(e,l,t);case 22:return ha(e,l,t)}throw Error(F(156,l.tag))};function Da(e,l){return Us(e,l)}function EZ(e,l,t,n){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=l,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function we(e,l,t,n){return new EZ(e,l,t,n)}function Ai(e){return e=e.prototype,!(!e||!e.isReactComponent)}function wZ(e){if(typeof e=="function")return Ai(e)?1:0;if(e!=null){if(e=e.$$typeof,e===mi)return 11;if(e===Wi)return 14}return 2}function Ml(e,l){var t=e.alternate;return t===null?(t=we(e.tag,l,e.key,e.mode),t.elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=l,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=e.flags&14680064,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,l=e.dependencies,t.dependencies=l===null?null:{lanes:l.lanes,firstContext:l.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t}function Pn(e,l,t,n,r,d){var i=2;if(n=e,typeof e=="function")Ai(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Pl:return Kl(t.children,r,d,l);case Ui:i=8,r|=8;break;case Ud:return e=we(12,t,l,r|2),e.elementType=Ud,e.lanes=d,e;case md:return e=we(13,t,l,r),e.elementType=md,e.lanes=d,e;case Wd:return e=we(19,t,l,r),e.elementType=Wd,e.lanes=d,e;case _o:return xr(t,r,d,l);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Po:i=10;break e;case Ao:i=9;break e;case mi:i=11;break e;case Wi:i=14;break e;case al:i=16,n=null;break e}throw Error(F(130,e==null?e:typeof e,""))}return l=we(i,t,l,r),l.elementType=e,l.type=n,l.lanes=d,l}function Kl(e,l,t,n){return e=we(7,e,n,l),e.lanes=t,e}function xr(e,l,t,n){return e=we(22,e,n,l),e.elementType=_o,e.lanes=t,e.stateNode={isHidden:!1},e}function ud(e,l,t){return e=we(6,e,null,l),e.lanes=t,e}function Vd(e,l,t){return l=we(4,e.children!==null?e.children:[],e.key,l),l.lanes=t,l.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},l}function XZ(e,l,t,n,r){this.tag=l,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=jr(0),this.expirationTimes=jr(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=jr(0),this.identifierPrefix=n,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function _i(e,l,t,n,r,d,i,o,c){return e=new XZ(e,l,t,o,c),l===1?(l=1,d===!0&&(l|=8)):l=0,d=we(3,null,null,l),e.current=d,d.stateNode=e,d.memoizedState={element:n,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},xi(d),e}function fZ(e,l,t){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Ca)}catch(e){console.error(e)}}Ca(),Co.exports=Qe;var ja=Co.exports,Ha,No=ja;Ha=No.createRoot,No.hydrateRoot;function lc({source:e,config:l}){return p.jsx("nav",{className:"top-header",children:p.jsx("div",{className:"path",children:e.sourceParts.map((t,n)=>{var r,d;return p.jsx("a",{href:((d=(r=l==null?void 0:l.routes)==null?void 0:r.getSourceRouteUrl)==null?void 0:d.call(r,{sourceId:t.sourceId}))??"",children:t.text},n)})})})}var po,Ro,To={exports:{}},wt={},P=(Ro||(Ro=1,To.exports=function(){if(po)return wt;po=1;var e=Bo,l=Symbol.for("react.element"),t=Symbol.for("react.fragment"),n=Object.prototype.hasOwnProperty,r=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,d={key:!0,ref:!0,__self:!0,__source:!0};function i(o,c,a){var U,u={},Z=null,W=null;for(U in a!==void 0&&(Z=""+a),c.key!==void 0&&(Z=""+c.key),c.ref!==void 0&&(W=c.ref),c)n.call(c,U)&&!d.hasOwnProperty(U)&&(u[U]=c[U]);if(o&&o.defaultProps)for(U in c=o.defaultProps)u[U]===void 0&&(u[U]=c[U]);return{$$typeof:l,type:o,key:Z,ref:W,props:u,_owner:r.current}}return wt.Fragment=t,wt.jsx=i,wt.jsxs=i,wt}()),To.exports);function zZ(e){return Object.fromEntries(e.map(l=>[l,LZ()]))}function Ir(e,l,t){if(Array.isArray(e))return e;const n=new Array(l).fill(null).map(r=>zZ(t));return e.then(r=>{r.length!==l&&console.warn(`Expected ${l} rows, got ${r.length}`);for(let d=0;d{for(let d=0;d(l.resolved=t,t)).catch(t=>{throw l.rejected=t,t});return l}function LZ(){let e,l;const t=IZ(new Promise((n,r)=>{e=n,l=r}));return t.resolve=e,t.reject=l,t}function DZ({header:e,cacheKey:l,columnWidths:t,orderBy:n,setOrderBy:r,setColumnWidth:d,setColumnWidths:i,dataReady:o}){const[c,a]=k.useState(),U=k.useRef(e.map(()=>k.createRef()));function u(W){if(!W.current)return;const N=window.getComputedStyle(W.current),R=parseInt(N.paddingLeft)+parseInt(N.paddingRight);return W.current.offsetWidth-R}k.useEffect(()=>{const W=new Array(e.length);l&&Oa(l).forEach(({columnIndex:N,columnName:R,width:h})=>{e[N]===R&&(W[N]=h)}),i(W)},[l]),k.useEffect(()=>{if(o){const W=U.current.map(u);i(W)}},[l,o,e]),k.useEffect(()=>{function W(){if(!c)return;const{columnIndex:R}=c;if(l&&t[R]){const h=t[R];ho(l,{columnIndex:R,columnName:e[R],width:h})}a(void 0)}function N({clientX:R}){c&&d(c.columnIndex,Math.max(1,R-c.clientX))}return c&&(window.addEventListener("mousemove",N),window.addEventListener("mouseup",W)),()=>{window.removeEventListener("mousemove",N),window.removeEventListener("mouseup",W)}},[l,e,c,i]);const Z=k.useMemo(()=>t.map(di),[t]);return P.jsx("thead",{children:P.jsxs("tr",{children:[P.jsx("th",{children:P.jsx("span",{})}),e.map((W,N)=>P.jsxs("th",{"aria-sort":n===W?"ascending":void 0,className:n===W?"orderby":void 0,onClick:R=>function(h,V){V.target.tagName!=="SPAN"&&(r==null||r(n===h?void 0:h))}(W,R),ref:U.current[N],style:Z[N],title:W,children:[W,P.jsx("span",{onDoubleClick:()=>function(R){ja.flushSync(()=>{d(R,void 0)});const h=u(U.current[R]);l&&h&&ho(l,{columnIndex:R,columnName:e[R],width:h}),d(R,h)}(N),onMouseDown:R=>function(h,V){V.stopPropagation(),a({columnIndex:h,clientX:V.clientX-(t[h]||0)})}(N,R)})]},N))]})})}function di(e){const l=e?`${e}px`:void 0;return{minWidth:l,maxWidth:l}}function Oa(e){const l=localStorage.getItem(`column-widths:${e}`);return l?JSON.parse(l):[]}function ho(e,l){const t=[...Oa(e).filter(n=>n.columnIndex!==l.columnIndex),l];localStorage.setItem(`column-widths:${e}`,JSON.stringify(t))}function gZ(e){const l={};let t=0,n=0;return{...e,rows(r,d,i){var o;const c=l[o=i||""]||(l[o]=new Array(e.numRows)),a=t+n;let U;!a||a%10||console.log(`Cache hits: ${t} / ${t+n} (${(100*t/(t+n)).toFixed(1)}%)`);let u=!1;for(let Z=r;Z<=d;Z++)if(Z0&&Y.length!==e.header.length)return`Row ${H+1} length ${Y.length} does not match header length ${e.header.length}`}k.useEffect(()=>{async function Y(){var vl,dl;const il=((vl=V.current)==null?void 0:vl.clientHeight)||100,y=((dl=V.current)==null?void 0:dl.scrollTop)||0,E=Math.floor(e.numRows*y/M),w=Math.ceil(e.numRows*(y+il)/M),x=Math.max(0,E-t),J=Math.min(e.numRows,w+t);if(x===Z&&W.length===J-x)return;if(isNaN(x))throw new Error("invalid start row "+x);if(isNaN(J))throw new Error("invalid end row "+J);if(J-x>1e3)throw new Error("attempted to render too many rows "+(J-x)+" table must be contained in a scrollable div");const ae=33*Math.max(0,x-n);try{const Fe=++m.current,bl=Ir(e.rows(x,J,N),J-x,e.header),Be=function(We,cl){let ol=0,Cl=!1;return()=>{const jl=Date.now();jl-ol>cl?(ol=jl,We()):Cl||(Cl=!0,setTimeout(()=>{ol=Date.now(),Cl=!1,We()},cl-(jl-ol)))}}(()=>{const We=[];let cl=!1;for(const ol of bl){const Cl={};let jl=!0;for(const[uu,cc]of Object.entries(ol))"resolved"in cc?Cl[uu]=cc.resolved:jl=!1;jl&&(cl=!0),We.push(Cl)}h.current=ae,U({type:"SET_ROWS",start:x,rows:We,hasCompleteRow:cl})},10);Be();for(const We of bl)for(const[cl,ol]of Object.entries(We))ol.then(()=>{m.current===Fe&&Be()}).catch(()=>{});for(const We of bl)for(const cl of Object.values(We))await cl;T.current&&(T.current=!1,Y())}catch(Fe){c(Fe)}}Y();const H=V.current;return H==null||H.addEventListener("scroll",Y),window.addEventListener("resize",Y),()=>{H==null||H.removeEventListener("scroll",Y),window.removeEventListener("resize",Y)}},[e,N,t,n,W,Z,M,c]),k.useEffect(()=>(d==null||d.publisher.subscribe(U),()=>{d==null||d.publisher.unsubscribe(U)}),[d]);const G=k.useMemo(()=>u.map(di),[u]);k.useEffect(()=>{var Y;r&&((Y=s.current)==null||Y.focus())},[r]),k.useEffect(()=>{U({type:"DATA_CHANGED"})},[e]);const b=k.useCallback(Y=>W[Y].__index__??Y+Z+1,[W,Z]),L=Array.from({length:Math.min(n,Z)},()=>[]),X=Array.from({length:Math.min(n,e.numRows-Z-W.length)},()=>[]),me=4*Math.ceil(Math.log10(e.numRows+1))+22,Ye=k.useMemo(()=>di(me),[me]);if(e.header.length)return P.jsxs("div",{className:"table-container",children:[P.jsx("div",{className:"table-scroll",ref:V,children:P.jsx("div",{style:{height:`${M}px`},children:P.jsxs("table",{"aria-colcount":e.header.length,"aria-rowcount":e.numRows,className:e.sortable?"table sortable":"table",ref:s,role:"grid",style:{top:`${h.current}px`},tabIndex:0,children:[P.jsx(DZ,{cacheKey:l,columnWidths:u,dataReady:R,header:e.header,orderBy:N,setColumnWidth:(Y,H)=>U({type:"SET_COLUMN_WIDTH",columnIndex:Y,columnWidth:H}),setColumnWidths:Y=>U({type:"SET_COLUMN_WIDTHS",columnWidths:Y}),setOrderBy:Y=>e.sortable&&U({type:"SET_ORDER",orderBy:Y})}),P.jsxs("tbody",{children:[L.map((Y,H)=>P.jsx("tr",{children:P.jsx("td",{style:Ye,children:(Z-L.length+H+1).toLocaleString()})},Z-L.length+H)),W.map((Y,H)=>P.jsxs("tr",{title:S(Y,H),children:[P.jsx("td",{style:Ye,children:b(H).toLocaleString()}),e.header.map((vl,dl)=>{var il;return function(y,E,w,x){let J,ae=hr(y);return typeof ae=="string"&&(ae.length>400&&(ae=`${ae.slice(0,397)}…`),ae.length>100&&(J=ae)),P.jsx("td",{className:ae===void 0?"pending":void 0,onDoubleClick:()=>i==null?void 0:i(E,x??w),onMouseDown:Fe=>o==null?void 0:o(Fe,E,x??w),style:G[E],title:J,children:ae},E)}(Y[vl],dl,Z+H,(il=Y.__index__)==null?void 0:il.resolved)})]},Z+H)),X.map((Y,H)=>P.jsx("tr",{children:P.jsx("td",{style:Ye,children:(Z+W.length+H+1).toLocaleString()})},Z+W.length+H))]})]})})}),P.jsx("div",{className:"table-corner",style:Ye,children:" "}),P.jsx("div",{className:"mock-row-label",style:Ye,children:" "})]})}function hr(e){return typeof e=="string"?e:typeof e=="number"?e.toLocaleString():Array.isArray(e)?`[${e.map(hr).join(", ")}]`:e==null?JSON.stringify(e):e instanceof Date?e.toISOString():typeof e=="object"?`{${Object.entries(e).map(([l,t])=>`${l}: ${hr(t)}`).join(", ")}}`:e.toString()}const Fo=["BOOLEAN","INT32","INT64","INT96","FLOAT","DOUBLE","BYTE_ARRAY","FIXED_LEN_BYTE_ARRAY"],Mo=["PLAIN",void 0,"PLAIN_DICTIONARY","RLE","BIT_PACKED","DELTA_BINARY_PACKED","DELTA_LENGTH_BYTE_ARRAY","DELTA_BYTE_ARRAY","RLE_DICTIONARY","BYTE_STREAM_SPLIT"],jZ=["REQUIRED","OPTIONAL","REPEATED"],HZ=["UTF8","MAP","MAP_KEY_VALUE","LIST","ENUM","DECIMAL","DATE","TIME_MILLIS","TIME_MICROS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UINT_8","UINT_16","UINT_32","UINT_64","INT_8","INT_16","INT_32","INT_64","JSON","BSON","INTERVAL"],OZ=["UNCOMPRESSED","SNAPPY","GZIP","LZO","BROTLI","LZ4","ZSTD","LZ4_RAW"],PZ=["DATA_PAGE","INDEX_PAGE","DICTIONARY_PAGE","DATA_PAGE_V2"];function AZ(e){let l=0;for(const t of e)l=l<<8|t;return l}function _Z(e){if(!e)return;const l=e[1]<<8|e[0],t=l>>15?-1:1,n=l>>10&31,r=l&1023;return n===0?t*Math.pow(2,-14)*(r/1024):n===31?r?NaN:t*(1/0):t*Math.pow(2,n-15)*(1+r/1024)}function Pa(e,l,t){const n=e[l],r=[];let d=1;if(n.num_children)for(;r.lengthi.element.name===r);if(!d)throw new Error(`parquet schema element not found: ${l}`);n.push(d),t=d}return n}const te={STOP:0,TRUE:1,FALSE:2,BYTE:3,I16:4,I32:5,I64:6,DOUBLE:7,BINARY:8,LIST:9,SET:10,MAP:11,STRUCT:12,UUID:13};function $Z(e){let l=0;const t={};for(;e.offset>>1^-(l&1)}function t0(e){const l=e0(e);return l>>BigInt(1)^-(l&BigInt(1))}function Aa(e){return e&15}function _a(e,l){const t=e.view.getUint8(e.offset++);if((t&15)===te.STOP)return[0,0,l];const n=t>>4;let r;if(n)r=l+n;else throw new Error("non-delta field id not supported");return[Aa(t),r,r]}function n0(e){const l=e.view.getUint8(e.offset++),t=l>>4,n=Aa(l);if(t===15){const r=tc(e);return[n,r]}return[n,t]}async function qa(e,l=1<<19){if(!e)throw new Error("parquet file is required");if(!(e.byteLength>=0))throw new Error("parquet file byteLength is required");const t=Math.max(0,e.byteLength-l),n=await e.slice(t,e.byteLength),r=new DataView(n);if(r.getUint32(n.byteLength-4,!0)!==827474256)throw new Error("parquet file invalid (footer != PAR1)");const d=r.getUint32(n.byteLength-8,!0);if(d>e.byteLength-8)throw new Error(`parquet metadata length ${d} exceeds available buffer ${e.byteLength-8}`);if(d+8>l){const i=e.byteLength-d-8,o=await e.slice(i,t),c=new ArrayBuffer(d+8),a=new Uint8Array(c);return a.set(new Uint8Array(o)),a.set(new Uint8Array(n),t-i),So(c)}else return So(n)}function So(e){var l;if(!e)throw new Error("parquet file is required");const t=new DataView(e);if(t.byteLength<8)throw new Error("parquet file is too short");if(t.getUint32(t.byteLength-4,!0)!==827474256)throw new Error("parquet file invalid (footer != PAR1)");const n=t.byteLength-8,r=t.getUint32(n,!0);if(r>t.byteLength-8)throw new Error(`parquet metadata length ${r} exceeds available buffer ${t.byteLength-8}`);const d=n-r,i=$Z({view:t,offset:d}),o=new TextDecoder;function c(h){return h&&o.decode(h)}const a=i.field_1,U=i.field_2.map(h=>({type:Fo[h.field_1],type_length:h.field_2,repetition_type:jZ[h.field_3],name:c(h.field_4),num_children:h.field_5,converted_type:HZ[h.field_6],scale:h.field_7,precision:h.field_8,field_id:h.field_9,logical_type:d0(h.field_10)})),u=U.filter(h=>h.type),Z=i.field_3,W=i.field_4.map(h=>{var V;return{columns:h.field_1.map((s,m)=>{var T,M;return{file_path:c(s.field_1),file_offset:s.field_2,meta_data:s.field_3&&{type:Fo[s.field_3.field_1],encodings:(T=s.field_3.field_2)==null?void 0:T.map(S=>Mo[S]),path_in_schema:s.field_3.field_3.map(c),codec:OZ[s.field_3.field_4],num_values:s.field_3.field_5,total_uncompressed_size:s.field_3.field_6,total_compressed_size:s.field_3.field_7,key_value_metadata:s.field_3.field_8,data_page_offset:s.field_3.field_9,index_page_offset:s.field_3.field_10,dictionary_page_offset:s.field_3.field_11,statistics:i0(s.field_3.field_12,u[m]),encoding_stats:(M=s.field_3.field_13)==null?void 0:M.map(S=>({page_type:PZ[S.field_1],encoding:Mo[S.field_2],count:S.field_3})),bloom_filter_offset:s.field_3.field_14,bloom_filter_length:s.field_3.field_15,size_statistics:s.field_3.field_16&&{unencoded_byte_array_data_bytes:s.field_3.field_16.field_1,repetition_level_histogram:s.field_3.field_16.field_2,definition_level_histogram:s.field_3.field_16.field_3}},offset_index_offset:s.field_4,offset_index_length:s.field_5,column_index_offset:s.field_6,column_index_length:s.field_7,crypto_metadata:s.field_7,encrypted_column_metadata:s.field_8}}),total_byte_size:h.field_2,num_rows:h.field_3,sorting_columns:(V=h.field_4)==null?void 0:V.map(s=>({column_idx:s.field_1,descending:s.field_2,nulls_first:s.field_3})),file_offset:h.field_5,total_compressed_size:h.field_6,ordinal:h.field_7}}),N=(l=i.field_5)==null?void 0:l.map(h=>({key:c(h.field_1),value:c(h.field_2)})),R=c(i.field_6);return{version:a,schema:U,num_rows:Z,row_groups:W,key_value_metadata:N,created_by:R,metadata_length:r}}function r0(e){return qZ(e.schema,[])[0]}function d0(e){return e!=null&&e.field_1?{type:"STRING"}:e!=null&&e.field_2?{type:"MAP"}:e!=null&&e.field_3?{type:"LIST"}:e!=null&&e.field_4?{type:"ENUM"}:e!=null&&e.field_5?{type:"DECIMAL",scale:e.field_5.field_1,precision:e.field_5.field_2}:e!=null&&e.field_6?{type:"DATE"}:e!=null&&e.field_7?{type:"TIME",isAdjustedToUTC:e.field_7.field_1,unit:yo(e.field_7.field_2)}:e!=null&&e.field_8?{type:"TIMESTAMP",isAdjustedToUTC:e.field_8.field_1,unit:yo(e.field_8.field_2)}:e!=null&&e.field_10?{type:"INTEGER",bitWidth:e.field_10.field_1,isSigned:e.field_10.field_2}:e!=null&&e.field_11?{type:"NULL"}:e!=null&&e.field_12?{type:"JSON"}:e!=null&&e.field_13?{type:"BSON"}:e!=null&&e.field_14?{type:"UUID"}:e!=null&&e.field_15?{type:"FLOAT16"}:e}function yo(e){if(e.field_1)return"MILLIS";if(e.field_2)return"MICROS";if(e.field_3)return"NANOS";throw new Error("parquet time unit required")}function i0(e,l){return e&&{max:Yn(e.field_1,l),min:Yn(e.field_2,l),null_count:e.field_3,distinct_count:e.field_4,max_value:Yn(e.field_5,l),min_value:Yn(e.field_6,l),is_max_value_exact:e.field_7,is_min_value_exact:e.field_8}}function Yn(e,l){const{type:t,converted_type:n,logical_type:r}=l;if(e===void 0)return e;if(t==="BOOLEAN")return e[0]===1;if(t==="BYTE_ARRAY")return new TextDecoder().decode(e);const d=new DataView(e.buffer,e.byteOffset,e.byteLength);return t==="FLOAT"&&d.byteLength===4?d.getFloat32(0,!0):t==="DOUBLE"&&d.byteLength===8?d.getFloat64(0,!0):t==="INT32"&&n==="DATE"?new Date(d.getInt32(0,!0)*864e5):t==="INT64"&&n==="TIMESTAMP_MICROS"?new Date(Number(d.getBigInt64(0,!0)/1000n)):t==="INT64"&&n==="TIMESTAMP_MILLIS"?new Date(Number(d.getBigInt64(0,!0))):t==="INT64"&&(r==null?void 0:r.type)==="TIMESTAMP"&&(r==null?void 0:r.unit)==="NANOS"?new Date(Number(d.getBigInt64(0,!0)/1000000n)):t==="INT64"&&(r==null?void 0:r.type)==="TIMESTAMP"&&(r==null?void 0:r.unit)==="MICROS"?new Date(Number(d.getBigInt64(0,!0)/1000n)):t==="INT64"&&(r==null?void 0:r.type)==="TIMESTAMP"?new Date(Number(d.getBigInt64(0,!0))):t==="INT32"&&d.byteLength===4?d.getInt32(0,!0):t==="INT64"&&d.byteLength===8?d.getBigInt64(0,!0):n==="DECIMAL"?AZ(e)*Math.pow(10,-(l.scale||0)):(r==null?void 0:r.type)==="FLOAT16"?_Z(e):e}async function c0(e,l){return await fetch(e,{...l,method:"HEAD"}).then(t=>{if(!t.ok)throw new Error(`fetch head failed ${t.status}`);const n=t.headers.get("Content-Length");if(!n)throw new Error("missing content length");return parseInt(n)})}async function $a({url:e,byteLength:l,requestInit:t}){l||(l=await c0(e,t));const n=t||{};return{byteLength:l,async slice(r,d){const i=new Headers(n.headers),o=d===void 0?"":d-1;i.set("Range",`bytes=${r}-${o}`);const c=await fetch(e,{...n,headers:i});if(!c.ok||!c.body)throw new Error(`fetch failed ${c.status}`);return c.arrayBuffer()}}}function o0(e){e instanceof Promise||(e=Promise.resolve(e));const l=e.then(t=>(l.resolved=t,t)).catch(t=>{throw l.rejected=t,t});return l}function ko(){let e,l;const t=o0(new Promise((n,r)=>{e=n,l=r}));return t.resolve=e,t.reject=l,t}const eu="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IGNuPVsiQk9PTEVBTiIsIklOVDMyIiwiSU5UNjQiLCJJTlQ5NiIsIkZMT0FUIiwiRE9VQkxFIiwiQllURV9BUlJBWSIsIkZJWEVEX0xFTl9CWVRFX0FSUkFZIl0sZWU9WyJQTEFJTiIsdm9pZCAwLCJQTEFJTl9ESUNUSU9OQVJZIiwiUkxFIiwiQklUX1BBQ0tFRCIsIkRFTFRBX0JJTkFSWV9QQUNLRUQiLCJERUxUQV9MRU5HVEhfQllURV9BUlJBWSIsIkRFTFRBX0JZVEVfQVJSQVkiLCJSTEVfRElDVElPTkFSWSIsIkJZVEVfU1RSRUFNX1NQTElUIl0sY3Q9WyJSRVFVSVJFRCIsIk9QVElPTkFMIiwiUkVQRUFURUQiXSx3dD1bIlVURjgiLCJNQVAiLCJNQVBfS0VZX1ZBTFVFIiwiTElTVCIsIkVOVU0iLCJERUNJTUFMIiwiREFURSIsIlRJTUVfTUlMTElTIiwiVElNRV9NSUNST1MiLCJUSU1FU1RBTVBfTUlMTElTIiwiVElNRVNUQU1QX01JQ1JPUyIsIlVJTlRfOCIsIlVJTlRfMTYiLCJVSU5UXzMyIiwiVUlOVF82NCIsIklOVF84IiwiSU5UXzE2IiwiSU5UXzMyIiwiSU5UXzY0IiwiSlNPTiIsIkJTT04iLCJJTlRFUlZBTCJdLHV0PVsiVU5DT01QUkVTU0VEIiwiU05BUFBZIiwiR1pJUCIsIkxaTyIsIkJST1RMSSIsIkxaNCIsIlpTVEQiLCJMWjRfUkFXIl0sd249WyJEQVRBX1BBR0UiLCJJTkRFWF9QQUdFIiwiRElDVElPTkFSWV9QQUdFIiwiREFUQV9QQUdFX1YyIl0sdW49ODY0ZTU7ZnVuY3Rpb24gZG4oZSxuLHQscixpPSEwKXtpZihuJiZyLmVuZHNXaXRoKCJfRElDVElPTkFSWSIpKXtuPWduKG4sdCxpKTtsZXQgbz1lO2UgaW5zdGFuY2VvZiBVaW50OEFycmF5JiYhKG4gaW5zdGFuY2VvZiBVaW50OEFycmF5KSYmKG89bmV3IG4uY29uc3RydWN0b3IoZS5sZW5ndGgpKTtmb3IobGV0IGY9MDtmPGUubGVuZ3RoO2YrKylvW2ZdPW5bZVtmXV07cmV0dXJuIG99ZWxzZSByZXR1cm4gZ24oZSx0LGkpfWZ1bmN0aW9uIGduKGUsbix0PSEwKXt2YXIgaSxvO2NvbnN0IHI9bi5jb252ZXJ0ZWRfdHlwZTtpZihyPT09IkRFQ0lNQUwiKXtjb25zdCBmPW4uc2NhbGV8fDAscz1NYXRoLnBvdygxMCwtZiksbD1uZXcgQXJyYXkoZS5sZW5ndGgpO2ZvcihsZXQgQT0wO0E8bC5sZW5ndGg7QSsrKWVbMF1pbnN0YW5jZW9mIFVpbnQ4QXJyYXk/bFtBXT1obihlW0FdKSpzOmxbQV09TnVtYmVyKGVbQV0pKnM7cmV0dXJuIGx9aWYocj09PXZvaWQgMCYmbi50eXBlPT09IklOVDk2IilyZXR1cm4gQXJyYXkuZnJvbShlKS5tYXAoZHQpO2lmKHI9PT0iREFURSIpe2NvbnN0IGY9bmV3IEFycmF5KGUubGVuZ3RoKTtmb3IobGV0IHM9MDtzPGYubGVuZ3RoO3MrKylmW3NdPW5ldyBEYXRlKGVbc10qdW4pO3JldHVybiBmfWlmKHI9PT0iVElNRVNUQU1QX01JTExJUyIpe2NvbnN0IGY9bmV3IEFycmF5KGUubGVuZ3RoKTtmb3IobGV0IHM9MDtzPGYubGVuZ3RoO3MrKylmW3NdPW5ldyBEYXRlKE51bWJlcihlW3NdKSk7cmV0dXJuIGZ9aWYocj09PSJUSU1FU1RBTVBfTUlDUk9TIil7Y29uc3QgZj1uZXcgQXJyYXkoZS5sZW5ndGgpO2ZvcihsZXQgcz0wO3M8Zi5sZW5ndGg7cysrKWZbc109bmV3IERhdGUoTnVtYmVyKGVbc10vMTAwMG4pKTtyZXR1cm4gZn1pZihyPT09IkpTT04iKXtjb25zdCBmPW5ldyBUZXh0RGVjb2RlcjtyZXR1cm4gZS5tYXAocz0+SlNPTi5wYXJzZShmLmRlY29kZShzKSkpfWlmKHI9PT0iQlNPTiIpdGhyb3cgbmV3IEVycm9yKCJwYXJxdWV0IGJzb24gbm90IHN1cHBvcnRlZCIpO2lmKHI9PT0iSU5URVJWQUwiKXRocm93IG5ldyBFcnJvcigicGFycXVldCBpbnRlcnZhbCBub3Qgc3VwcG9ydGVkIik7aWYocj09PSJVVEY4Inx8dCYmbi50eXBlPT09IkJZVEVfQVJSQVkiKXtjb25zdCBmPW5ldyBUZXh0RGVjb2RlcixzPW5ldyBBcnJheShlLmxlbmd0aCk7Zm9yKGxldCBsPTA7bDxzLmxlbmd0aDtsKyspc1tsXT1lW2xdJiZmLmRlY29kZShlW2xdKTtyZXR1cm4gc31pZihyPT09IlVJTlRfNjQiKXtjb25zdCBmPW5ldyBCaWdVaW50NjRBcnJheShlLmxlbmd0aCk7Zm9yKGxldCBzPTA7czxmLmxlbmd0aDtzKyspZltzXT1CaWdJbnQoZVtzXSk7cmV0dXJuIGZ9aWYoKChpPW4ubG9naWNhbF90eXBlKT09bnVsbD92b2lkIDA6aS50eXBlKT09PSJGTE9BVDE2IilyZXR1cm4gQXJyYXkuZnJvbShlKS5tYXAoSW4pO2lmKCgobz1uLmxvZ2ljYWxfdHlwZSk9PW51bGw/dm9pZCAwOm8udHlwZSk9PT0iVElNRVNUQU1QIil7Y29uc3R7dW5pdDpmfT1uLmxvZ2ljYWxfdHlwZTtsZXQgcz0xbjtmPT09Ik1JQ1JPUyImJihzPTEwMDBuKSxmPT09Ik5BTk9TIiYmKHM9MTAwMDAwMG4pO2NvbnN0IGw9bmV3IEFycmF5KGUubGVuZ3RoKTtmb3IobGV0IEE9MDtBPGwubGVuZ3RoO0ErKylsW0FdPW5ldyBEYXRlKE51bWJlcihlW0FdL3MpKTtyZXR1cm4gbH1yZXR1cm4gZX1mdW5jdGlvbiBobihlKXtsZXQgbj0wO2Zvcihjb25zdCB0IG9mIGUpbj1uPDw4fHQ7cmV0dXJuIG59ZnVuY3Rpb24gZHQoZSl7Y29uc3Qgbj1OdW1iZXIoKGU+PjY0biktMjQ0MDU4OG4pLHQ9TnVtYmVyKChlJjB4ZmZmZmZmZmZmZmZmZmZmZm4pLzEwMDAwMDBuKSxyPW4qdW4rdDtyZXR1cm4gbmV3IERhdGUocil9ZnVuY3Rpb24gSW4oZSl7aWYoIWUpcmV0dXJuO2NvbnN0IG49ZVsxXTw8OHxlWzBdLHQ9bj4+MTU/LTE6MSxyPW4+PjEwJjMxLGk9biYxMDIzO3JldHVybiByPT09MD90Kk1hdGgucG93KDIsLTE0KSooaS8xMDI0KTpyPT09MzE/aT9OYU46dCooMS8wKTp0Kk1hdGgucG93KDIsci0xNSkqKDEraS8xMDI0KX1mdW5jdGlvbiBFbihlLG4sdCl7Y29uc3Qgcj1lW25dLGk9W107bGV0IG89MTtpZihyLm51bV9jaGlsZHJlbilmb3IoO2kubGVuZ3RoPHIubnVtX2NoaWxkcmVuOyl7Y29uc3QgZj1lW24rb10scz1FbihlLG4rbyxbLi4udCxmLm5hbWVdKTtvKz1zLmNvdW50LGkucHVzaChzKX1yZXR1cm57Y291bnQ6byxlbGVtZW50OnIsY2hpbGRyZW46aSxwYXRoOnR9fWZ1bmN0aW9uIEJuKGUsbil7bGV0IHQ9RW4oZSwwLFtdKTtjb25zdCByPVt0XTtmb3IoY29uc3QgaSBvZiBuKXtjb25zdCBvPXQuY2hpbGRyZW4uZmluZChmPT5mLmVsZW1lbnQubmFtZT09PWkpO2lmKCFvKXRocm93IG5ldyBFcnJvcihgcGFycXVldCBzY2hlbWEgZWxlbWVudCBub3QgZm91bmQ6ICR7bn1gKTtyLnB1c2gobyksdD1vfXJldHVybiByfWZ1bmN0aW9uIHZuKGUpe2xldCBuPTA7Zm9yKGNvbnN0e2VsZW1lbnQ6dH1vZiBlKXQucmVwZXRpdGlvbl90eXBlPT09IlJFUEVBVEVEIiYmbisrO3JldHVybiBufWZ1bmN0aW9uIFFlKGUpe2xldCBuPTA7Zm9yKGNvbnN0e2VsZW1lbnQ6dH1vZiBlLnNsaWNlKDEpKXQucmVwZXRpdGlvbl90eXBlIT09IlJFUVVJUkVEIiYmbisrO3JldHVybiBufWZ1bmN0aW9uIGd0KGUpe2lmKCFlfHxlLmVsZW1lbnQuY29udmVydGVkX3R5cGUhPT0iTElTVCJ8fGUuY2hpbGRyZW4ubGVuZ3RoPjEpcmV0dXJuITE7Y29uc3Qgbj1lLmNoaWxkcmVuWzBdO3JldHVybiEobi5jaGlsZHJlbi5sZW5ndGg+MXx8bi5lbGVtZW50LnJlcGV0aXRpb25fdHlwZSE9PSJSRVBFQVRFRCIpfWZ1bmN0aW9uIGh0KGUpe2lmKCFlfHxlLmVsZW1lbnQuY29udmVydGVkX3R5cGUhPT0iTUFQInx8ZS5jaGlsZHJlbi5sZW5ndGg+MSlyZXR1cm4hMTtjb25zdCBuPWUuY2hpbGRyZW5bMF07aWYobi5jaGlsZHJlbi5sZW5ndGghPT0yfHxuLmVsZW1lbnQucmVwZXRpdGlvbl90eXBlIT09IlJFUEVBVEVEIilyZXR1cm4hMTtjb25zdCB0PW4uY2hpbGRyZW4uZmluZChpPT5pLmVsZW1lbnQubmFtZT09PSJrZXkiKTtpZigodD09bnVsbD92b2lkIDA6dC5lbGVtZW50LnJlcGV0aXRpb25fdHlwZSk9PT0iUkVQRUFURUQiKXJldHVybiExO2NvbnN0IHI9bi5jaGlsZHJlbi5maW5kKGk9PmkuZWxlbWVudC5uYW1lPT09InZhbHVlIik7cmV0dXJuKHI9PW51bGw/dm9pZCAwOnIuZWxlbWVudC5yZXBldGl0aW9uX3R5cGUpIT09IlJFUEVBVEVEIn1jb25zdCBIPXtTVE9QOjAsVFJVRToxLEZBTFNFOjIsQllURTozLEkxNjo0LEkzMjo1LEk2NDo2LERPVUJMRTo3LEJJTkFSWTo4LExJU1Q6OSxTRVQ6MTAsTUFQOjExLFNUUlVDVDoxMixVVUlEOjEzfTtmdW5jdGlvbiB5bihlKXtsZXQgbj0wO2NvbnN0IHQ9e307Zm9yKDtlLm9mZnNldDxlLnZpZXcuYnl0ZUxlbmd0aDspe2NvbnN0W3IsaSxvXT1DbihlLG4pO2lmKG49byxyPT09SC5TVE9QKWJyZWFrO3RbYGZpZWxkXyR7aX1gXT1iZShlLHIpfXJldHVybiB0fWZ1bmN0aW9uIGJlKGUsbil7c3dpdGNoKG4pe2Nhc2UgSC5UUlVFOnJldHVybiEwO2Nhc2UgSC5GQUxTRTpyZXR1cm4hMTtjYXNlIEguQllURTpyZXR1cm4gZS52aWV3LmdldEludDgoZS5vZmZzZXQrKyk7Y2FzZSBILkkxNjpjYXNlIEguSTMyOnJldHVybiBFdChlKTtjYXNlIEguSTY0OnJldHVybiBWZShlKTtjYXNlIEguRE9VQkxFOntjb25zdCB0PWUudmlldy5nZXRGbG9hdDY0KGUub2Zmc2V0LCEwKTtyZXR1cm4gZS5vZmZzZXQrPTgsdH1jYXNlIEguQklOQVJZOntjb25zdCB0PW5lKGUpLHI9bmV3IFVpbnQ4QXJyYXkoZS52aWV3LmJ1ZmZlcixlLnZpZXcuYnl0ZU9mZnNldCtlLm9mZnNldCx0KTtyZXR1cm4gZS5vZmZzZXQrPXQscn1jYXNlIEguTElTVDp7Y29uc3RbdCxyXT1CdChlKSxpPXQ9PT1ILlRSVUV8fHQ9PT1ILkZBTFNFLG89bmV3IEFycmF5KHIpO2ZvcihsZXQgZj0wO2Y8cjtmKyspb1tmXT1pP2JlKGUsSC5CWVRFKT09PTE6YmUoZSx0KTtyZXR1cm4gb31jYXNlIEguU1RSVUNUOntjb25zdCB0PXt9O2xldCByPTA7Zm9yKDs7KXtsZXQgaSxvO2lmKFtpLG8scl09Q24oZSxyKSxpPT09SC5TVE9QKWJyZWFrO3RbYGZpZWxkXyR7b31gXT1iZShlLGkpfXJldHVybiB0fWNhc2UgSC5VVUlEOntsZXQgdD0iIjtmb3IobGV0IHI9MDtyPDE2O3IrKyl0Kz1lLnZpZXcuZ2V0VWludDgoZS5vZmZzZXQrKykudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKTtyZXR1cm4gdH1kZWZhdWx0OnRocm93IG5ldyBFcnJvcihgdGhyaWZ0IHVuaGFuZGxlZCB0eXBlOiAke259YCl9fWZ1bmN0aW9uIG5lKGUpe2xldCBuPTAsdD0wO2Zvcig7Oyl7Y29uc3Qgcj1lLnZpZXcuZ2V0VWludDgoZS5vZmZzZXQrKyk7aWYobnw9KHImMTI3KTw8dCwhKHImMTI4KSlyZXR1cm4gbjt0Kz03fX1mdW5jdGlvbiBJdChlKXtsZXQgbj0wbix0PTBuO2Zvcig7Oyl7Y29uc3Qgcj1lLnZpZXcuZ2V0VWludDgoZS5vZmZzZXQrKyk7aWYobnw9QmlnSW50KHImMTI3KTw8dCwhKHImMTI4KSlyZXR1cm4gbjt0Kz03bn19ZnVuY3Rpb24gRXQoZSl7Y29uc3Qgbj1uZShlKTtyZXR1cm4gbj4+PjFeLShuJjEpfWZ1bmN0aW9uIFZlKGUpe2NvbnN0IG49SXQoZSk7cmV0dXJuIG4+PkJpZ0ludCgxKV4tKG4mQmlnSW50KDEpKX1mdW5jdGlvbiBwbihlKXtyZXR1cm4gZSYxNX1mdW5jdGlvbiBDbihlLG4pe2NvbnN0IHQ9ZS52aWV3LmdldFVpbnQ4KGUub2Zmc2V0KyspO2lmKCh0JjE1KT09PUguU1RPUClyZXR1cm5bMCwwLG5dO2NvbnN0IHI9dD4+NDtsZXQgaTtpZihyKWk9bityO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJub24tZGVsdGEgZmllbGQgaWQgbm90IHN1cHBvcnRlZCIpO3JldHVybltwbih0KSxpLGldfWZ1bmN0aW9uIEJ0KGUpe2NvbnN0IG49ZS52aWV3LmdldFVpbnQ4KGUub2Zmc2V0KyspLHQ9bj4+NCxyPXBuKG4pO2lmKHQ9PT0xNSl7Y29uc3QgaT1uZShlKTtyZXR1cm5bcixpXX1yZXR1cm5bcix0XX1hc3luYyBmdW5jdGlvbiBHZShlLG49MTw8MTkpe2lmKCFlKXRocm93IG5ldyBFcnJvcigicGFycXVldCBmaWxlIGlzIHJlcXVpcmVkIik7aWYoIShlLmJ5dGVMZW5ndGg+PTApKXRocm93IG5ldyBFcnJvcigicGFycXVldCBmaWxlIGJ5dGVMZW5ndGggaXMgcmVxdWlyZWQiKTtjb25zdCB0PU1hdGgubWF4KDAsZS5ieXRlTGVuZ3RoLW4pLHI9YXdhaXQgZS5zbGljZSh0LGUuYnl0ZUxlbmd0aCksaT1uZXcgRGF0YVZpZXcocik7aWYoaS5nZXRVaW50MzIoci5ieXRlTGVuZ3RoLTQsITApIT09ODI3NDc0MjU2KXRocm93IG5ldyBFcnJvcigicGFycXVldCBmaWxlIGludmFsaWQgKGZvb3RlciAhPSBQQVIxKSIpO2NvbnN0IG89aS5nZXRVaW50MzIoci5ieXRlTGVuZ3RoLTgsITApO2lmKG8+ZS5ieXRlTGVuZ3RoLTgpdGhyb3cgbmV3IEVycm9yKGBwYXJxdWV0IG1ldGFkYXRhIGxlbmd0aCAke299IGV4Y2VlZHMgYXZhaWxhYmxlIGJ1ZmZlciAke2UuYnl0ZUxlbmd0aC04fWApO2lmKG8rOD5uKXtjb25zdCBmPWUuYnl0ZUxlbmd0aC1vLTgscz1hd2FpdCBlLnNsaWNlKGYsdCksbD1uZXcgQXJyYXlCdWZmZXIobys4KSxBPW5ldyBVaW50OEFycmF5KGwpO3JldHVybiBBLnNldChuZXcgVWludDhBcnJheShzKSksQS5zZXQobmV3IFVpbnQ4QXJyYXkociksdC1mKSxtbihsKX1lbHNlIHJldHVybiBtbihyKX1mdW5jdGlvbiBtbihlKXt2YXIgYztpZighZSl0aHJvdyBuZXcgRXJyb3IoInBhcnF1ZXQgZmlsZSBpcyByZXF1aXJlZCIpO2NvbnN0IG49bmV3IERhdGFWaWV3KGUpO2lmKG4uYnl0ZUxlbmd0aDw4KXRocm93IG5ldyBFcnJvcigicGFycXVldCBmaWxlIGlzIHRvbyBzaG9ydCIpO2lmKG4uZ2V0VWludDMyKG4uYnl0ZUxlbmd0aC00LCEwKSE9PTgyNzQ3NDI1Nil0aHJvdyBuZXcgRXJyb3IoInBhcnF1ZXQgZmlsZSBpbnZhbGlkIChmb290ZXIgIT0gUEFSMSkiKTtjb25zdCB0PW4uYnl0ZUxlbmd0aC04LHI9bi5nZXRVaW50MzIodCwhMCk7aWYocj5uLmJ5dGVMZW5ndGgtOCl0aHJvdyBuZXcgRXJyb3IoYHBhcnF1ZXQgbWV0YWRhdGEgbGVuZ3RoICR7cn0gZXhjZWVkcyBhdmFpbGFibGUgYnVmZmVyICR7bi5ieXRlTGVuZ3RoLTh9YCk7Y29uc3QgaT10LXIsZj15bih7dmlldzpuLG9mZnNldDppfSkscz1uZXcgVGV4dERlY29kZXI7ZnVuY3Rpb24gbChJKXtyZXR1cm4gSSYmcy5kZWNvZGUoSSl9Y29uc3QgQT1mLmZpZWxkXzEsYT1mLmZpZWxkXzIubWFwKEk9Pih7dHlwZTpjbltJLmZpZWxkXzFdLHR5cGVfbGVuZ3RoOkkuZmllbGRfMixyZXBldGl0aW9uX3R5cGU6Y3RbSS5maWVsZF8zXSxuYW1lOmwoSS5maWVsZF80KSxudW1fY2hpbGRyZW46SS5maWVsZF81LGNvbnZlcnRlZF90eXBlOnd0W0kuZmllbGRfNl0sc2NhbGU6SS5maWVsZF83LHByZWNpc2lvbjpJLmZpZWxkXzgsZmllbGRfaWQ6SS5maWVsZF85LGxvZ2ljYWxfdHlwZTp2dChJLmZpZWxkXzEwKX0pKSx1PWEuZmlsdGVyKEk9PkkudHlwZSksdz1mLmZpZWxkXzMsaD1mLmZpZWxkXzQubWFwKEk9Pnt2YXIgeTtyZXR1cm57Y29sdW1uczpJLmZpZWxkXzEubWFwKChCLFEpPT57dmFyIGIsQztyZXR1cm57ZmlsZV9wYXRoOmwoQi5maWVsZF8xKSxmaWxlX29mZnNldDpCLmZpZWxkXzIsbWV0YV9kYXRhOkIuZmllbGRfMyYme3R5cGU6Y25bQi5maWVsZF8zLmZpZWxkXzFdLGVuY29kaW5nczooYj1CLmZpZWxkXzMuZmllbGRfMik9PW51bGw/dm9pZCAwOmIubWFwKEw9PmVlW0xdKSxwYXRoX2luX3NjaGVtYTpCLmZpZWxkXzMuZmllbGRfMy5tYXAobCksY29kZWM6dXRbQi5maWVsZF8zLmZpZWxkXzRdLG51bV92YWx1ZXM6Qi5maWVsZF8zLmZpZWxkXzUsdG90YWxfdW5jb21wcmVzc2VkX3NpemU6Qi5maWVsZF8zLmZpZWxkXzYsdG90YWxfY29tcHJlc3NlZF9zaXplOkIuZmllbGRfMy5maWVsZF83LGtleV92YWx1ZV9tZXRhZGF0YTpCLmZpZWxkXzMuZmllbGRfOCxkYXRhX3BhZ2Vfb2Zmc2V0OkIuZmllbGRfMy5maWVsZF85LGluZGV4X3BhZ2Vfb2Zmc2V0OkIuZmllbGRfMy5maWVsZF8xMCxkaWN0aW9uYXJ5X3BhZ2Vfb2Zmc2V0OkIuZmllbGRfMy5maWVsZF8xMSxzdGF0aXN0aWNzOnl0KEIuZmllbGRfMy5maWVsZF8xMix1W1FdKSxlbmNvZGluZ19zdGF0czooQz1CLmZpZWxkXzMuZmllbGRfMTMpPT1udWxsP3ZvaWQgMDpDLm1hcChMPT4oe3BhZ2VfdHlwZTp3bltMLmZpZWxkXzFdLGVuY29kaW5nOmVlW0wuZmllbGRfMl0sY291bnQ6TC5maWVsZF8zfSkpLGJsb29tX2ZpbHRlcl9vZmZzZXQ6Qi5maWVsZF8zLmZpZWxkXzE0LGJsb29tX2ZpbHRlcl9sZW5ndGg6Qi5maWVsZF8zLmZpZWxkXzE1LHNpemVfc3RhdGlzdGljczpCLmZpZWxkXzMuZmllbGRfMTYmJnt1bmVuY29kZWRfYnl0ZV9hcnJheV9kYXRhX2J5dGVzOkIuZmllbGRfMy5maWVsZF8xNi5maWVsZF8xLHJlcGV0aXRpb25fbGV2ZWxfaGlzdG9ncmFtOkIuZmllbGRfMy5maWVsZF8xNi5maWVsZF8yLGRlZmluaXRpb25fbGV2ZWxfaGlzdG9ncmFtOkIuZmllbGRfMy5maWVsZF8xNi5maWVsZF8zfX0sb2Zmc2V0X2luZGV4X29mZnNldDpCLmZpZWxkXzQsb2Zmc2V0X2luZGV4X2xlbmd0aDpCLmZpZWxkXzUsY29sdW1uX2luZGV4X29mZnNldDpCLmZpZWxkXzYsY29sdW1uX2luZGV4X2xlbmd0aDpCLmZpZWxkXzcsY3J5cHRvX21ldGFkYXRhOkIuZmllbGRfNyxlbmNyeXB0ZWRfY29sdW1uX21ldGFkYXRhOkIuZmllbGRfOH19KSx0b3RhbF9ieXRlX3NpemU6SS5maWVsZF8yLG51bV9yb3dzOkkuZmllbGRfMyxzb3J0aW5nX2NvbHVtbnM6KHk9SS5maWVsZF80KT09bnVsbD92b2lkIDA6eS5tYXAoQj0+KHtjb2x1bW5faWR4OkIuZmllbGRfMSxkZXNjZW5kaW5nOkIuZmllbGRfMixudWxsc19maXJzdDpCLmZpZWxkXzN9KSksZmlsZV9vZmZzZXQ6SS5maWVsZF81LHRvdGFsX2NvbXByZXNzZWRfc2l6ZTpJLmZpZWxkXzYsb3JkaW5hbDpJLmZpZWxkXzd9fSksRT0oYz1mLmZpZWxkXzUpPT1udWxsP3ZvaWQgMDpjLm1hcChJPT4oe2tleTpsKEkuZmllbGRfMSksdmFsdWU6bChJLmZpZWxkXzIpfSkpLGc9bChmLmZpZWxkXzYpO3JldHVybnt2ZXJzaW9uOkEsc2NoZW1hOmEsbnVtX3Jvd3M6dyxyb3dfZ3JvdXBzOmgsa2V5X3ZhbHVlX21ldGFkYXRhOkUsY3JlYXRlZF9ieTpnLG1ldGFkYXRhX2xlbmd0aDpyfX1mdW5jdGlvbiB2dChlKXtyZXR1cm4gZSE9bnVsbCYmZS5maWVsZF8xP3t0eXBlOiJTVFJJTkcifTplIT1udWxsJiZlLmZpZWxkXzI/e3R5cGU6Ik1BUCJ9OmUhPW51bGwmJmUuZmllbGRfMz97dHlwZToiTElTVCJ9OmUhPW51bGwmJmUuZmllbGRfND97dHlwZToiRU5VTSJ9OmUhPW51bGwmJmUuZmllbGRfNT97dHlwZToiREVDSU1BTCIsc2NhbGU6ZS5maWVsZF81LmZpZWxkXzEscHJlY2lzaW9uOmUuZmllbGRfNS5maWVsZF8yfTplIT1udWxsJiZlLmZpZWxkXzY/e3R5cGU6IkRBVEUifTplIT1udWxsJiZlLmZpZWxkXzc/e3R5cGU6IlRJTUUiLGlzQWRqdXN0ZWRUb1VUQzplLmZpZWxkXzcuZmllbGRfMSx1bml0OlFuKGUuZmllbGRfNy5maWVsZF8yKX06ZSE9bnVsbCYmZS5maWVsZF84P3t0eXBlOiJUSU1FU1RBTVAiLGlzQWRqdXN0ZWRUb1VUQzplLmZpZWxkXzguZmllbGRfMSx1bml0OlFuKGUuZmllbGRfOC5maWVsZF8yKX06ZSE9bnVsbCYmZS5maWVsZF8xMD97dHlwZToiSU5URUdFUiIsYml0V2lkdGg6ZS5maWVsZF8xMC5maWVsZF8xLGlzU2lnbmVkOmUuZmllbGRfMTAuZmllbGRfMn06ZSE9bnVsbCYmZS5maWVsZF8xMT97dHlwZToiTlVMTCJ9OmUhPW51bGwmJmUuZmllbGRfMTI/e3R5cGU6IkpTT04ifTplIT1udWxsJiZlLmZpZWxkXzEzP3t0eXBlOiJCU09OIn06ZSE9bnVsbCYmZS5maWVsZF8xND97dHlwZToiVVVJRCJ9OmUhPW51bGwmJmUuZmllbGRfMTU/e3R5cGU6IkZMT0FUMTYifTplfWZ1bmN0aW9uIFFuKGUpe2lmKGUuZmllbGRfMSlyZXR1cm4iTUlMTElTIjtpZihlLmZpZWxkXzIpcmV0dXJuIk1JQ1JPUyI7aWYoZS5maWVsZF8zKXJldHVybiJOQU5PUyI7dGhyb3cgbmV3IEVycm9yKCJwYXJxdWV0IHRpbWUgdW5pdCByZXF1aXJlZCIpfWZ1bmN0aW9uIHl0KGUsbil7cmV0dXJuIGUmJnttYXg6TGUoZS5maWVsZF8xLG4pLG1pbjpMZShlLmZpZWxkXzIsbiksbnVsbF9jb3VudDplLmZpZWxkXzMsZGlzdGluY3RfY291bnQ6ZS5maWVsZF80LG1heF92YWx1ZTpMZShlLmZpZWxkXzUsbiksbWluX3ZhbHVlOkxlKGUuZmllbGRfNixuKSxpc19tYXhfdmFsdWVfZXhhY3Q6ZS5maWVsZF83LGlzX21pbl92YWx1ZV9leGFjdDplLmZpZWxkXzh9fWZ1bmN0aW9uIExlKGUsbil7Y29uc3R7dHlwZTp0LGNvbnZlcnRlZF90eXBlOnIsbG9naWNhbF90eXBlOml9PW47aWYoZT09PXZvaWQgMClyZXR1cm4gZTtpZih0PT09IkJPT0xFQU4iKXJldHVybiBlWzBdPT09MTtpZih0PT09IkJZVEVfQVJSQVkiKXJldHVybiBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoZSk7Y29uc3Qgbz1uZXcgRGF0YVZpZXcoZS5idWZmZXIsZS5ieXRlT2Zmc2V0LGUuYnl0ZUxlbmd0aCk7cmV0dXJuIHQ9PT0iRkxPQVQiJiZvLmJ5dGVMZW5ndGg9PT00P28uZ2V0RmxvYXQzMigwLCEwKTp0PT09IkRPVUJMRSImJm8uYnl0ZUxlbmd0aD09PTg/by5nZXRGbG9hdDY0KDAsITApOnQ9PT0iSU5UMzIiJiZyPT09IkRBVEUiP25ldyBEYXRlKG8uZ2V0SW50MzIoMCwhMCkqODY0ZTUpOnQ9PT0iSU5UNjQiJiZyPT09IlRJTUVTVEFNUF9NSUNST1MiP25ldyBEYXRlKE51bWJlcihvLmdldEJpZ0ludDY0KDAsITApLzEwMDBuKSk6dD09PSJJTlQ2NCImJnI9PT0iVElNRVNUQU1QX01JTExJUyI/bmV3IERhdGUoTnVtYmVyKG8uZ2V0QmlnSW50NjQoMCwhMCkpKTp0PT09IklOVDY0IiYmKGk9PW51bGw/dm9pZCAwOmkudHlwZSk9PT0iVElNRVNUQU1QIiYmKGk9PW51bGw/dm9pZCAwOmkudW5pdCk9PT0iTkFOT1MiP25ldyBEYXRlKE51bWJlcihvLmdldEJpZ0ludDY0KDAsITApLzEwMDAwMDBuKSk6dD09PSJJTlQ2NCImJihpPT1udWxsP3ZvaWQgMDppLnR5cGUpPT09IlRJTUVTVEFNUCImJihpPT1udWxsP3ZvaWQgMDppLnVuaXQpPT09Ik1JQ1JPUyI/bmV3IERhdGUoTnVtYmVyKG8uZ2V0QmlnSW50NjQoMCwhMCkvMTAwMG4pKTp0PT09IklOVDY0IiYmKGk9PW51bGw/dm9pZCAwOmkudHlwZSk9PT0iVElNRVNUQU1QIj9uZXcgRGF0ZShOdW1iZXIoby5nZXRCaWdJbnQ2NCgwLCEwKSkpOnQ9PT0iSU5UMzIiJiZvLmJ5dGVMZW5ndGg9PT00P28uZ2V0SW50MzIoMCwhMCk6dD09PSJJTlQ2NCImJm8uYnl0ZUxlbmd0aD09PTg/by5nZXRCaWdJbnQ2NCgwLCEwKTpyPT09IkRFQ0lNQUwiP2huKGUpKk1hdGgucG93KDEwLC0obi5zY2FsZXx8MCkpOihpPT1udWxsP3ZvaWQgMDppLnR5cGUpPT09IkZMT0FUMTYiP0luKGUpOmV9ZnVuY3Rpb24gYm4oZSxuLHQscixpLG8pe2NvbnN0IGY9KG49PW51bGw/dm9pZCAwOm4ubGVuZ3RoKXx8dC5sZW5ndGg7bGV0IHM9MDtjb25zdCBsPVtlXTtsZXQgQT1lLGE9MCx1PTAsdz0wO2lmKHRbMF0pZm9yKDthPGkubGVuZ3RoLTImJnc8dFswXTspQT1BLmF0KC0xKSxsLnB1c2goQSksYSsrLGlbYV0hPT0iUkVRVUlSRUQiJiZ1KyssaVthXT09PSJSRVBFQVRFRCImJncrKztmb3IobGV0IGg9MDtoPGY7aCsrKXtjb25zdCBFPW4hPW51bGwmJm4ubGVuZ3RoP25baF06byxnPXRbaF07Zm9yKDthJiYoZzx3fHxpW2FdIT09IlJFUEVBVEVEIik7KWlbYV0hPT0iUkVRVUlSRUQiJiYobC5wb3AoKSx1LS0pLGlbYV09PT0iUkVQRUFURUQiJiZ3LS0sYS0tO2ZvcihBPWwuYXQoLTEpOyhhPGkubGVuZ3RoLTJ8fGlbYSsxXT09PSJSRVBFQVRFRCIpJiYodTxFfHxpW2ErMV09PT0iUkVRVUlSRUQiKTspe2lmKGErKyxpW2FdIT09IlJFUVVJUkVEIil7Y29uc3QgYz1bXTtBLnB1c2goYyksQT1jLGwucHVzaChjKSx1Kyt9aVthXT09PSJSRVBFQVRFRCImJncrK31FPT09bz9BLnB1c2gocltzKytdKTphPT09aS5sZW5ndGgtMj9BLnB1c2gobnVsbCk6QS5wdXNoKFtdKX1pZighZS5sZW5ndGgpZm9yKGxldCBoPTA7aDxvO2grKyl7Y29uc3QgRT1bXTtBLnB1c2goRSksQT1FfXJldHVybiBlfWZ1bmN0aW9uIGRlKGUsbix0PTApe2NvbnN0IHI9bi5wYXRoLmpvaW4oIi4iKSxpPW4uZWxlbWVudC5yZXBldGl0aW9uX3R5cGU9PT0iT1BUSU9OQUwiLG89aT90KzE6dDtpZihndChuKSl7bGV0IGY9bi5jaGlsZHJlblswXSxzPW87Zi5jaGlsZHJlbi5sZW5ndGg9PT0xJiYoZj1mLmNoaWxkcmVuWzBdLHMrKyksZGUoZSxmLHMpO2NvbnN0IGw9Zi5wYXRoLmpvaW4oIi4iKSxBPWUuZ2V0KGwpO2lmKCFBKXRocm93IG5ldyBFcnJvcigicGFycXVldCBsaXN0IGNvbHVtbiBtaXNzaW5nIHZhbHVlcyIpO2kmJlVlKEEsdCksZS5zZXQocixBKSxlLmRlbGV0ZShsKTtyZXR1cm59aWYoaHQobikpe2NvbnN0IGY9bi5jaGlsZHJlblswXS5lbGVtZW50Lm5hbWU7ZGUoZSxuLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLG8rMSksZGUoZSxuLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLG8rMSk7Y29uc3Qgcz1lLmdldChgJHtyfS4ke2Z9LmtleWApLGw9ZS5nZXQoYCR7cn0uJHtmfS52YWx1ZWApO2lmKCFzKXRocm93IG5ldyBFcnJvcigicGFycXVldCBtYXAgY29sdW1uIG1pc3Npbmcga2V5cyIpO2lmKCFsKXRocm93IG5ldyBFcnJvcigicGFycXVldCBtYXAgY29sdW1uIG1pc3NpbmcgdmFsdWVzIik7aWYocy5sZW5ndGghPT1sLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoInBhcnF1ZXQgbWFwIGNvbHVtbiBrZXkvdmFsdWUgbGVuZ3RoIG1pc21hdGNoIik7Y29uc3QgQT1MbihzLGwsbyk7aSYmVWUoQSx0KSxlLmRlbGV0ZShgJHtyfS4ke2Z9LmtleWApLGUuZGVsZXRlKGAke3J9LiR7Zn0udmFsdWVgKSxlLnNldChyLEEpO3JldHVybn1pZihuLmNoaWxkcmVuLmxlbmd0aCl7Y29uc3QgZj1uLmVsZW1lbnQucmVwZXRpdGlvbl90eXBlPT09IlJFUVVJUkVEIj90OnQrMSxzPXt9O2Zvcihjb25zdCBBIG9mIG4uY2hpbGRyZW4pe2RlKGUsQSxmKTtjb25zdCBhPWUuZ2V0KEEucGF0aC5qb2luKCIuIikpO2lmKCFhKXRocm93IG5ldyBFcnJvcigicGFycXVldCBzdHJ1Y3QgbWlzc2luZyBjaGlsZCBkYXRhIik7c1tBLmVsZW1lbnQubmFtZV09YX1mb3IoY29uc3QgQSBvZiBuLmNoaWxkcmVuKWUuZGVsZXRlKEEucGF0aC5qb2luKCIuIikpO2NvbnN0IGw9VW4ocyxmKTtpJiZVZShsLHQpLGUuc2V0KHIsbCl9fWZ1bmN0aW9uIFVlKGUsbil7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspbj9VZShlW3RdLG4tMSk6ZVt0XT1lW3RdWzBdfWZ1bmN0aW9uIExuKGUsbix0KXtjb25zdCByPVtdO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSsrKWlmKHQpci5wdXNoKExuKGVbaV0sbltpXSx0LTEpKTtlbHNlIGlmKGVbaV0pe2NvbnN0IG89e307Zm9yKGxldCBmPTA7ZjxlW2ldLmxlbmd0aDtmKyspe2NvbnN0IHM9bltpXVtmXTtvW2VbaV1bZl1dPXM9PT12b2lkIDA/bnVsbDpzfXIucHVzaChvKX1lbHNlIHIucHVzaCh2b2lkIDApO3JldHVybiByfWZ1bmN0aW9uIFVuKGUsbil7dmFyIG87Y29uc3QgdD1PYmplY3Qua2V5cyhlKSxyPShvPWVbdFswXV0pPT1udWxsP3ZvaWQgMDpvLmxlbmd0aCxpPVtdO2ZvcihsZXQgZj0wO2Y8cjtmKyspe2NvbnN0IHM9e307Zm9yKGNvbnN0IGwgb2YgdCl7aWYoZVtsXS5sZW5ndGghPT1yKXRocm93IG5ldyBFcnJvcigicGFycXVldCBzdHJ1Y3QgcGFyc2luZyBlcnJvciIpO3NbbF09ZVtsXVtmXX1uP2kucHVzaChVbihzLG4tMSkpOmkucHVzaChzKX1yZXR1cm4gaX1mdW5jdGlvbiBTZShlLG4sdCl7Y29uc3Qgcj10IGluc3RhbmNlb2YgSW50MzJBcnJheSxpPW5lKGUpLG89bmUoZSk7bmUoZSk7bGV0IGY9VmUoZSkscz0wO3RbcysrXT1yP051bWJlcihmKTpmO2NvbnN0IGw9aS9vO2Zvcig7czxuOyl7Y29uc3QgQT1WZShlKSxhPW5ldyBVaW50OEFycmF5KG8pO2ZvcihsZXQgdT0wO3U8bzt1KyspYVt1XT1lLnZpZXcuZ2V0VWludDgoZS5vZmZzZXQrKyk7Zm9yKGxldCB1PTA7dTxvJiZzPG47dSsrKXtjb25zdCB3PUJpZ0ludChhW3VdKTtpZih3KXtsZXQgaD0wbixFPWw7Y29uc3QgZz0oMW48PHcpLTFuO2Zvcig7RSYmczxuOyl7bGV0IGM9QmlnSW50KGUudmlldy5nZXRVaW50OChlLm9mZnNldCkpPj5oJmc7Zm9yKGgrPXc7aD49ODspaC09OG4sZS5vZmZzZXQrKyxoJiYoY3w9QmlnSW50KGUudmlldy5nZXRVaW50OChlLm9mZnNldCkpPDx3LWgmZyk7Y29uc3QgST1BK2M7Zis9SSx0W3MrK109cj9OdW1iZXIoZik6ZixFLS19RSYmKGUub2Zmc2V0Kz1NYXRoLmNlaWwoKEUqTnVtYmVyKHcpK051bWJlcihoKSkvOCkpfWVsc2UgZm9yKGxldCBoPTA7aDxsJiZzPG47aCsrKWYrPUEsdFtzKytdPXI/TnVtYmVyKGYpOmZ9fX1mdW5jdGlvbiBwdChlLG4sdCl7Y29uc3Qgcj1uZXcgSW50MzJBcnJheShuKTtTZShlLG4scik7Zm9yKGxldCBpPTA7aTxuO2krKyl0W2ldPW5ldyBVaW50OEFycmF5KGUudmlldy5idWZmZXIsZS52aWV3LmJ5dGVPZmZzZXQrZS5vZmZzZXQscltpXSksZS5vZmZzZXQrPXJbaV19ZnVuY3Rpb24gQ3QoZSxuLHQpe2NvbnN0IHI9bmV3IEludDMyQXJyYXkobik7U2UoZSxuLHIpO2NvbnN0IGk9bmV3IEludDMyQXJyYXkobik7U2UoZSxuLGkpO2ZvcihsZXQgbz0wO288bjtvKyspe2NvbnN0IGY9bmV3IFVpbnQ4QXJyYXkoZS52aWV3LmJ1ZmZlcixlLnZpZXcuYnl0ZU9mZnNldCtlLm9mZnNldCxpW29dKTtyW29dPyh0W29dPW5ldyBVaW50OEFycmF5KHJbb10raVtvXSksdFtvXS5zZXQodFtvLTFdLnN1YmFycmF5KDAscltvXSkpLHRbb10uc2V0KGYscltvXSkpOnRbb109ZixlLm9mZnNldCs9aVtvXX19ZnVuY3Rpb24gRmUoZSl7cmV0dXJuIDMyLU1hdGguY2x6MzIoZSl9ZnVuY3Rpb24gdGUoZSxuLHQscil7dHx8KGUub2Zmc2V0Kz00KTtsZXQgaT0wO2Zvcig7aTxyLmxlbmd0aDspe2NvbnN0IG89bmUoZSk7aWYobyYxKWk9UXQoZSxvLG4scixpKTtlbHNle2NvbnN0IGY9bz4+PjE7bXQoZSxmLG4scixpKSxpKz1mfX19ZnVuY3Rpb24gbXQoZSxuLHQscixpKXtjb25zdCBvPXQrNz4+MztsZXQgZj0wO2ZvcihsZXQgcz0wO3M8bztzKyspZnw9ZS52aWV3LmdldFVpbnQ4KGUub2Zmc2V0KyspPDwoczw8Myk7Zm9yKGxldCBzPTA7czxuO3MrKylyW2krc109Zn1mdW5jdGlvbiBRdChlLG4sdCxyLGkpe2xldCBvPW4+PjE8PDM7Y29uc3QgZj0oMTw8dCktMTtsZXQgcz0wO2lmKGUub2Zmc2V0PGUudmlldy5ieXRlTGVuZ3RoKXM9ZS52aWV3LmdldFVpbnQ4KGUub2Zmc2V0KyspO2Vsc2UgaWYoZil0aHJvdyBuZXcgRXJyb3IoYHBhcnF1ZXQgYml0cGFjayBvZmZzZXQgJHtlLm9mZnNldH0gb3V0IG9mIHJhbmdlYCk7bGV0IGw9OCxBPTA7Zm9yKDtvOylBPjg/KEEtPTgsbC09OCxzPj4+PTgpOmwtQTx0PyhzfD1lLnZpZXcuZ2V0VWludDgoZS5vZmZzZXQpPDxsLGUub2Zmc2V0KyssbCs9OCk6KGk8ci5sZW5ndGgmJihyW2krK109cz4+QSZmKSxvLS0sQSs9dCk7cmV0dXJuIGl9ZnVuY3Rpb24gU24oZSxuLHQscil7Y29uc3QgaT1idCh0LHIpLG89bmV3IFVpbnQ4QXJyYXkobippKTtmb3IobGV0IGY9MDtmPGk7ZisrKWZvcihsZXQgcz0wO3M8bjtzKyspb1tzKmkrZl09ZS52aWV3LmdldFVpbnQ4KGUub2Zmc2V0KyspO2lmKHQ9PT0iRkxPQVQiKXJldHVybiBuZXcgRmxvYXQzMkFycmF5KG8uYnVmZmVyKTtpZih0PT09IkRPVUJMRSIpcmV0dXJuIG5ldyBGbG9hdDY0QXJyYXkoby5idWZmZXIpO2lmKHQ9PT0iSU5UMzIiKXJldHVybiBuZXcgSW50MzJBcnJheShvLmJ1ZmZlcik7aWYodD09PSJJTlQ2NCIpcmV0dXJuIG5ldyBCaWdJbnQ2NEFycmF5KG8uYnVmZmVyKTtpZih0PT09IkZJWEVEX0xFTl9CWVRFX0FSUkFZIil7Y29uc3QgZj1uZXcgQXJyYXkobik7Zm9yKGxldCBzPTA7czxuO3MrKylmW3NdPW8uc3ViYXJyYXkocyppLChzKzEpKmkpO3JldHVybiBmfXRocm93IG5ldyBFcnJvcihgcGFycXVldCBieXRlX3N0cmVhbV9zcGxpdCB1bnN1cHBvcnRlZCB0eXBlOiAke3R9YCl9ZnVuY3Rpb24gYnQoZSxuKXtzd2l0Y2goZSl7Y2FzZSJJTlQzMiI6Y2FzZSJGTE9BVCI6cmV0dXJuIDQ7Y2FzZSJJTlQ2NCI6Y2FzZSJET1VCTEUiOnJldHVybiA4O2Nhc2UiRklYRURfTEVOX0JZVEVfQVJSQVkiOmlmKCFuKXRocm93IG5ldyBFcnJvcigicGFycXVldCBieXRlV2lkdGggbWlzc2luZyB0eXBlX2xlbmd0aCIpO3JldHVybiBuO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBwYXJxdWV0IHVuc3VwcG9ydGVkIHR5cGU6ICR7ZX1gKX19ZnVuY3Rpb24gWmUoZSxuLHQscil7aWYodD09PTApcmV0dXJuW107aWYobj09PSJCT09MRUFOIilyZXR1cm4gTHQoZSx0KTtpZihuPT09IklOVDMyIilyZXR1cm4gVXQoZSx0KTtpZihuPT09IklOVDY0IilyZXR1cm4gU3QoZSx0KTtpZihuPT09IklOVDk2IilyZXR1cm4gRnQoZSx0KTtpZihuPT09IkZMT0FUIilyZXR1cm4geHQoZSx0KTtpZihuPT09IkRPVUJMRSIpcmV0dXJuIFJ0KGUsdCk7aWYobj09PSJCWVRFX0FSUkFZIilyZXR1cm4gTnQoZSx0KTtpZihuPT09IkZJWEVEX0xFTl9CWVRFX0FSUkFZIil7aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJwYXJxdWV0IG1pc3NpbmcgZml4ZWQgbGVuZ3RoIik7cmV0dXJuIFl0KGUsdCxyKX1lbHNlIHRocm93IG5ldyBFcnJvcihgcGFycXVldCB1bmhhbmRsZWQgdHlwZTogJHtufWApfWZ1bmN0aW9uIEx0KGUsbil7Y29uc3QgdD1uZXcgQXJyYXkobik7Zm9yKGxldCByPTA7cjxuO3IrKyl7Y29uc3QgaT1lLm9mZnNldCsoci84fDApLG89ciU4LGY9ZS52aWV3LmdldFVpbnQ4KGkpO3Rbcl09KGYmMTw8bykhPT0wfXJldHVybiBlLm9mZnNldCs9TWF0aC5jZWlsKG4vOCksdH1mdW5jdGlvbiBVdChlLG4pe2NvbnN0IHQ9KGUudmlldy5ieXRlT2Zmc2V0K2Uub2Zmc2V0KSU0P25ldyBJbnQzMkFycmF5KHhlKGUudmlldy5idWZmZXIsZS52aWV3LmJ5dGVPZmZzZXQrZS5vZmZzZXQsbio0KSk6bmV3IEludDMyQXJyYXkoZS52aWV3LmJ1ZmZlcixlLnZpZXcuYnl0ZU9mZnNldCtlLm9mZnNldCxuKTtyZXR1cm4gZS5vZmZzZXQrPW4qNCx0fWZ1bmN0aW9uIFN0KGUsbil7Y29uc3QgdD0oZS52aWV3LmJ5dGVPZmZzZXQrZS5vZmZzZXQpJTg/bmV3IEJpZ0ludDY0QXJyYXkoeGUoZS52aWV3LmJ1ZmZlcixlLnZpZXcuYnl0ZU9mZnNldCtlLm9mZnNldCxuKjgpKTpuZXcgQmlnSW50NjRBcnJheShlLnZpZXcuYnVmZmVyLGUudmlldy5ieXRlT2Zmc2V0K2Uub2Zmc2V0LG4pO3JldHVybiBlLm9mZnNldCs9bio4LHR9ZnVuY3Rpb24gRnQoZSxuKXtjb25zdCB0PW5ldyBBcnJheShuKTtmb3IobGV0IHI9MDtyPG47cisrKXtjb25zdCBpPWUudmlldy5nZXRCaWdJbnQ2NChlLm9mZnNldCtyKjEyLCEwKSxvPWUudmlldy5nZXRJbnQzMihlLm9mZnNldCtyKjEyKzgsITApO3Rbcl09QmlnSW50KG8pPDw2NG58aX1yZXR1cm4gZS5vZmZzZXQrPW4qMTIsdH1mdW5jdGlvbiB4dChlLG4pe2NvbnN0IHQ9KGUudmlldy5ieXRlT2Zmc2V0K2Uub2Zmc2V0KSU0P25ldyBGbG9hdDMyQXJyYXkoeGUoZS52aWV3LmJ1ZmZlcixlLnZpZXcuYnl0ZU9mZnNldCtlLm9mZnNldCxuKjQpKTpuZXcgRmxvYXQzMkFycmF5KGUudmlldy5idWZmZXIsZS52aWV3LmJ5dGVPZmZzZXQrZS5vZmZzZXQsbik7cmV0dXJuIGUub2Zmc2V0Kz1uKjQsdH1mdW5jdGlvbiBSdChlLG4pe2NvbnN0IHQ9KGUudmlldy5ieXRlT2Zmc2V0K2Uub2Zmc2V0KSU4P25ldyBGbG9hdDY0QXJyYXkoeGUoZS52aWV3LmJ1ZmZlcixlLnZpZXcuYnl0ZU9mZnNldCtlLm9mZnNldCxuKjgpKTpuZXcgRmxvYXQ2NEFycmF5KGUudmlldy5idWZmZXIsZS52aWV3LmJ5dGVPZmZzZXQrZS5vZmZzZXQsbik7cmV0dXJuIGUub2Zmc2V0Kz1uKjgsdH1mdW5jdGlvbiBOdChlLG4pe2NvbnN0IHQ9bmV3IEFycmF5KG4pO2ZvcihsZXQgcj0wO3I8bjtyKyspe2NvbnN0IGk9ZS52aWV3LmdldEludDMyKGUub2Zmc2V0LCEwKTtlLm9mZnNldCs9NCx0W3JdPW5ldyBVaW50OEFycmF5KGUudmlldy5idWZmZXIsZS52aWV3LmJ5dGVPZmZzZXQrZS5vZmZzZXQsaSksZS5vZmZzZXQrPWl9cmV0dXJuIHR9ZnVuY3Rpb24gWXQoZSxuLHQpe2NvbnN0IHI9bmV3IEFycmF5KG4pO2ZvcihsZXQgaT0wO2k8bjtpKyspcltpXT1uZXcgVWludDhBcnJheShlLnZpZXcuYnVmZmVyLGUudmlldy5ieXRlT2Zmc2V0K2Uub2Zmc2V0LHQpLGUub2Zmc2V0Kz10O3JldHVybiByfWZ1bmN0aW9uIHhlKGUsbix0KXtjb25zdCByPW5ldyBBcnJheUJ1ZmZlcih0KTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkocikuc2V0KG5ldyBVaW50OEFycmF5KGUsbix0KSkscn1jb25zdCBEdD1bMCwyNTUsNjU1MzUsMTY3NzcyMTUsNDI5NDk2NzI5NV07ZnVuY3Rpb24gV3QoZSxuLHQscixpKXtmb3IobGV0IG89MDtvPGk7bysrKXRbcitvXT1lW24rb119ZnVuY3Rpb24gVHQoZSxuLHQscil7Zm9yKGxldCBpPTA7aTxyO2krKyllW24raV09ZVtuLXQraV19ZnVuY3Rpb24gUHQoZSxuKXtjb25zdCB0PWUuYnl0ZUxlbmd0aCxyPW4uYnl0ZUxlbmd0aDtsZXQgaT0wLG89MDtmb3IoO2k8dDspe2NvbnN0IGY9ZVtpXTtpZihpKyssZjwxMjgpYnJlYWt9aWYociYmaT49dCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgc25hcHB5IGxlbmd0aCBoZWFkZXIiKTtmb3IoO2k8dDspe2NvbnN0IGY9ZVtpXTtsZXQgcz0wO2lmKGkrKyxpPj10KXRocm93IG5ldyBFcnJvcigibWlzc2luZyBlb2YgbWFya2VyIik7aWYoZiYzKXtsZXQgbD0wO3N3aXRjaChmJjMpe2Nhc2UgMTpzPShmPj4+MiY3KSs0LGw9ZVtpXSsoZj4+PjU8PDgpLGkrKzticmVhaztjYXNlIDI6aWYodDw9aSsxKXRocm93IG5ldyBFcnJvcigic25hcHB5IGVycm9yIGVuZCBvZiBpbnB1dCIpO3M9KGY+Pj4yKSsxLGw9ZVtpXSsoZVtpKzFdPDw4KSxpKz0yO2JyZWFrO2Nhc2UgMzppZih0PD1pKzMpdGhyb3cgbmV3IEVycm9yKCJzbmFwcHkgZXJyb3IgZW5kIG9mIGlucHV0Iik7cz0oZj4+PjIpKzEsbD1lW2ldKyhlW2krMV08PDgpKyhlW2krMl08PDE2KSsoZVtpKzNdPDwyNCksaSs9NDticmVha31pZihsPT09MHx8aXNOYU4obCkpdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG9mZnNldCAke2x9IHBvcyAke2l9IGlucHV0TGVuZ3RoICR7dH1gKTtpZihsPm8pdGhyb3cgbmV3IEVycm9yKCJjYW5ub3QgY29weSBmcm9tIGJlZm9yZSBzdGFydCBvZiBidWZmZXIiKTtUdChuLG8sbCxzKSxvKz1zfWVsc2V7bGV0IGw9KGY+Pj4yKSsxO2lmKGw+NjApe2lmKGkrMz49dCl0aHJvdyBuZXcgRXJyb3IoInNuYXBweSBlcnJvciBsaXRlcmFsIHBvcyArIDMgPj0gaW5wdXRMZW5ndGgiKTtjb25zdCBBPWwtNjA7bD1lW2ldKyhlW2krMV08PDgpKyhlW2krMl08PDE2KSsoZVtpKzNdPDwyNCksbD0obCZEdFtBXSkrMSxpKz1BfWlmKGkrbD50KXRocm93IG5ldyBFcnJvcigic25hcHB5IGVycm9yIGxpdGVyYWwgZXhjZWVkcyBpbnB1dCBsZW5ndGgiKTtXdChlLGksbixvLGwpLGkrPWwsbys9bH19aWYobyE9PXIpdGhyb3cgbmV3IEVycm9yKCJwcmVtYXR1cmUgZW5kIG9mIGlucHV0Iil9ZnVuY3Rpb24ga3QoZSxuLHQse3R5cGU6cn0pe2NvbnN0IGk9bmV3IERhdGFWaWV3KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpLG89e3ZpZXc6aSxvZmZzZXQ6MH07bGV0IGY7Y29uc3Qgcz1NdChvLG4sdCkse2RlZmluaXRpb25MZXZlbHM6bCxudW1OdWxsczpBfT1IdChvLG4sdCksYT1uLm51bV92YWx1ZXMtQTtpZihuLmVuY29kaW5nPT09IlBMQUlOIil7Y29uc3R7dHlwZV9sZW5ndGg6dX09dFt0Lmxlbmd0aC0xXS5lbGVtZW50O2Y9WmUobyxyLGEsdSl9ZWxzZSBpZihuLmVuY29kaW5nPT09IlBMQUlOX0RJQ1RJT05BUlkifHxuLmVuY29kaW5nPT09IlJMRV9ESUNUSU9OQVJZInx8bi5lbmNvZGluZz09PSJSTEUiKXtjb25zdCB1PXI9PT0iQk9PTEVBTiI/MTppLmdldFVpbnQ4KG8ub2Zmc2V0KyspO3U/KGY9bmV3IEFycmF5KGEpLHRlKG8sdSxpLmJ5dGVMZW5ndGgtby5vZmZzZXQsZikpOmY9bmV3IFVpbnQ4QXJyYXkoYSl9ZWxzZSBpZihuLmVuY29kaW5nPT09IkJZVEVfU1RSRUFNX1NQTElUIil7Y29uc3R7dHlwZV9sZW5ndGg6dX09dFt0Lmxlbmd0aC0xXS5lbGVtZW50O2Y9U24obyxhLHIsdSl9ZWxzZSB0aHJvdyBuZXcgRXJyb3IoYHBhcnF1ZXQgdW5zdXBwb3J0ZWQgZW5jb2Rpbmc6ICR7bi5lbmNvZGluZ31gKTtyZXR1cm57ZGVmaW5pdGlvbkxldmVsczpsLHJlcGV0aXRpb25MZXZlbHM6cyxkYXRhUGFnZTpmfX1mdW5jdGlvbiBxdChlLG4sdCxyKXtjb25zdCBvPXt2aWV3Om5ldyBEYXRhVmlldyhlLmJ1ZmZlcixlLmJ5dGVPZmZzZXQsZS5ieXRlTGVuZ3RoKSxvZmZzZXQ6MH07cmV0dXJuIFplKG8sdC50eXBlLG4ubnVtX3ZhbHVlcyxyKX1mdW5jdGlvbiBNdChlLG4sdCl7aWYodC5sZW5ndGg+MSl7Y29uc3Qgcj12bih0KTtpZihyKXtjb25zdCBpPW5ldyBBcnJheShuLm51bV92YWx1ZXMpO3JldHVybiB0ZShlLEZlKHIpLDAsaSksaX19cmV0dXJuW119ZnVuY3Rpb24gSHQoZSxuLHQpe2NvbnN0IHI9UWUodCk7aWYoIXIpcmV0dXJue2RlZmluaXRpb25MZXZlbHM6W10sbnVtTnVsbHM6MH07Y29uc3QgaT1uZXcgQXJyYXkobi5udW1fdmFsdWVzKTt0ZShlLEZlKHIpLDAsaSk7bGV0IG89bi5udW1fdmFsdWVzO2Zvcihjb25zdCBmIG9mIGkpZj09PXImJm8tLTtyZXR1cm4gbz09PTAmJihpLmxlbmd0aD0wKSx7ZGVmaW5pdGlvbkxldmVsczppLG51bU51bGxzOm99fWZ1bmN0aW9uIHplKGUsbix0LHIpe2xldCBpO2NvbnN0IG89cj09bnVsbD92b2lkIDA6clt0XTtpZih0PT09IlVOQ09NUFJFU1NFRCIpaT1lO2Vsc2UgaWYobylpPW8oZSxuKTtlbHNlIGlmKHQ9PT0iU05BUFBZIilpPW5ldyBVaW50OEFycmF5KG4pLFB0KGUsaSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoYHBhcnF1ZXQgdW5zdXBwb3J0ZWQgY29tcHJlc3Npb24gY29kZWM6ICR7dH1gKTtpZigoaT09bnVsbD92b2lkIDA6aS5sZW5ndGgpIT09bil0aHJvdyBuZXcgRXJyb3IoYHBhcnF1ZXQgZGVjb21wcmVzc2VkIHBhZ2UgbGVuZ3RoICR7aT09bnVsbD92b2lkIDA6aS5sZW5ndGh9IGRvZXMgbm90IG1hdGNoIGhlYWRlciAke259YCk7cmV0dXJuIGl9ZnVuY3Rpb24gT3QoZSxuLHQscixpKXtjb25zdCBmPXt2aWV3Om5ldyBEYXRhVmlldyhlLmJ1ZmZlcixlLmJ5dGVPZmZzZXQsZS5ieXRlTGVuZ3RoKSxvZmZzZXQ6MH0se2NvZGVjOnMsdHlwZTpsfT1yLEE9bi5kYXRhX3BhZ2VfaGVhZGVyX3YyO2lmKCFBKXRocm93IG5ldyBFcnJvcigicGFycXVldCBkYXRhIHBhZ2UgaGVhZGVyIHYyIGlzIHVuZGVmaW5lZCIpO2NvbnN0IGE9VnQoZixBLHQpO2Yub2Zmc2V0PUEucmVwZXRpdGlvbl9sZXZlbHNfYnl0ZV9sZW5ndGg7Y29uc3QgdT1HdChmLEEsdCksdz1uLnVuY29tcHJlc3NlZF9wYWdlX3NpemUtQS5kZWZpbml0aW9uX2xldmVsc19ieXRlX2xlbmd0aC1BLnJlcGV0aXRpb25fbGV2ZWxzX2J5dGVfbGVuZ3RoO2xldCBoPWUuc3ViYXJyYXkoZi5vZmZzZXQpO0EuaXNfY29tcHJlc3NlZCE9PSExJiYoaD16ZShoLHcscyxpKSk7Y29uc3QgRT1uZXcgRGF0YVZpZXcoaC5idWZmZXIsaC5ieXRlT2Zmc2V0LGguYnl0ZUxlbmd0aCksZz17dmlldzpFLG9mZnNldDowfTtsZXQgYztjb25zdCBJPUEubnVtX3ZhbHVlcy1BLm51bV9udWxscztpZihBLmVuY29kaW5nPT09IlBMQUlOIil7Y29uc3R7dHlwZV9sZW5ndGg6eX09dFt0Lmxlbmd0aC0xXS5lbGVtZW50O2M9WmUoZyxsLEkseSl9ZWxzZSBpZihBLmVuY29kaW5nPT09IlJMRSIpYz1uZXcgQXJyYXkoSSksdGUoZywxLDAsYyksYz1jLm1hcCh5PT4hIXkpO2Vsc2UgaWYoQS5lbmNvZGluZz09PSJQTEFJTl9ESUNUSU9OQVJZInx8QS5lbmNvZGluZz09PSJSTEVfRElDVElPTkFSWSIpe2NvbnN0IHk9RS5nZXRVaW50OChnLm9mZnNldCsrKTtjPW5ldyBBcnJheShJKSx0ZShnLHksdy0xLGMpfWVsc2UgaWYoQS5lbmNvZGluZz09PSJERUxUQV9CSU5BUllfUEFDS0VEIiljPWw9PT0iSU5UMzIiP25ldyBJbnQzMkFycmF5KEkpOm5ldyBCaWdJbnQ2NEFycmF5KEkpLFNlKGcsSSxjKTtlbHNlIGlmKEEuZW5jb2Rpbmc9PT0iREVMVEFfTEVOR1RIX0JZVEVfQVJSQVkiKWM9bmV3IEFycmF5KEkpLHB0KGcsSSxjKTtlbHNlIGlmKEEuZW5jb2Rpbmc9PT0iREVMVEFfQllURV9BUlJBWSIpYz1uZXcgQXJyYXkoSSksQ3QoZyxJLGMpO2Vsc2UgaWYoQS5lbmNvZGluZz09PSJCWVRFX1NUUkVBTV9TUExJVCIpe2NvbnN0e3R5cGVfbGVuZ3RoOnl9PXRbdC5sZW5ndGgtMV0uZWxlbWVudDtjPVNuKGYsSSxsLHkpfWVsc2UgdGhyb3cgbmV3IEVycm9yKGBwYXJxdWV0IHVuc3VwcG9ydGVkIGVuY29kaW5nOiAke0EuZW5jb2Rpbmd9YCk7cmV0dXJue2RlZmluaXRpb25MZXZlbHM6dSxyZXBldGl0aW9uTGV2ZWxzOmEsZGF0YVBhZ2U6Y319ZnVuY3Rpb24gVnQoZSxuLHQpe2NvbnN0IHI9dm4odCk7aWYoIXIpcmV0dXJuW107Y29uc3QgaT1uZXcgQXJyYXkobi5udW1fdmFsdWVzKTtyZXR1cm4gdGUoZSxGZShyKSxuLnJlcGV0aXRpb25fbGV2ZWxzX2J5dGVfbGVuZ3RoLGkpLGl9ZnVuY3Rpb24gR3QoZSxuLHQpe2NvbnN0IHI9UWUodCk7aWYocil7Y29uc3QgaT1uZXcgQXJyYXkobi5udW1fdmFsdWVzKTtyZXR1cm4gdGUoZSxGZShyKSxuLmRlZmluaXRpb25fbGV2ZWxzX2J5dGVfbGVuZ3RoLGkpLGl9fWZ1bmN0aW9uIEtlKGUsbil7Zm9yKGxldCByPTA7cjxuLmxlbmd0aDtyKz0xZTQpZS5wdXNoKC4uLm4uc2xpY2UocixyKzFlNCkpfWFzeW5jIGZ1bmN0aW9uIFp0KGUsbil7cmV0dXJuIGF3YWl0IGZldGNoKGUsey4uLm4sbWV0aG9kOiJIRUFEIn0pLnRoZW4odD0+e2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcihgZmV0Y2ggaGVhZCBmYWlsZWQgJHt0LnN0YXR1c31gKTtjb25zdCByPXQuaGVhZGVycy5nZXQoIkNvbnRlbnQtTGVuZ3RoIik7aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nIGNvbnRlbnQgbGVuZ3RoIik7cmV0dXJuIHBhcnNlSW50KHIpfSl9YXN5bmMgZnVuY3Rpb24genQoe3VybDplLGJ5dGVMZW5ndGg6bixyZXF1ZXN0SW5pdDp0fSl7bnx8KG49YXdhaXQgWnQoZSx0KSk7Y29uc3Qgcj10fHx7fTtyZXR1cm57Ynl0ZUxlbmd0aDpuLGFzeW5jIHNsaWNlKGksbyl7Y29uc3QgZj1uZXcgSGVhZGVycyhyLmhlYWRlcnMpLHM9bz09PXZvaWQgMD8iIjpvLTE7Zi5zZXQoIlJhbmdlIixgYnl0ZXM9JHtpfS0ke3N9YCk7Y29uc3QgbD1hd2FpdCBmZXRjaChlLHsuLi5yLGhlYWRlcnM6Zn0pO2lmKCFsLm9rfHwhbC5ib2R5KXRocm93IG5ldyBFcnJvcihgZmV0Y2ggZmFpbGVkICR7bC5zdGF0dXN9YCk7cmV0dXJuIGwuYXJyYXlCdWZmZXIoKX19fWZ1bmN0aW9uIEt0KHtieXRlTGVuZ3RoOmUsc2xpY2U6bn0pe2NvbnN0IHQ9bmV3IE1hcDtyZXR1cm57Ynl0ZUxlbmd0aDplLHNsaWNlKHIsaSl7Y29uc3Qgbz1KdChyLGksZSksZj10LmdldChvKTtpZihmKXJldHVybiBmO2NvbnN0IHM9bihyLGkpO3JldHVybiB0LnNldChvLHMpLHN9fX1mdW5jdGlvbiBKdChlLG4sdCl7aWYoZTwwKXtpZihuIT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgaW52YWxpZCBzdWZmaXggcmFuZ2UgWyR7ZX0sICR7bn1dYCk7cmV0dXJuIHQ9PT12b2lkIDA/YCR7ZX0sYDpgJHt0K2V9LCR7dH1gfWVsc2UgaWYobiE9PXZvaWQgMCl7aWYoZT5uKXRocm93IG5ldyBFcnJvcihgaW52YWxpZCBlbXB0eSByYW5nZSBbJHtlfSwgJHtufV1gKTtyZXR1cm5gJHtlfSwke259YH1lbHNlIHJldHVybiB0PT09dm9pZCAwP2Ake2V9LGA6YCR7ZX0sJHt0fWB9ZnVuY3Rpb24gWHQoZSxuLHQscix7Y29tcHJlc3NvcnM6aSx1dGY4Om99KXtjb25zdHtlbGVtZW50OmZ9PXJbci5sZW5ndGgtMV07bGV0IHM7Y29uc3QgbD1bXTtmb3IoO2wubGVuZ3RoPG47KXtjb25zdCBBPWp0KGUpLGE9bmV3IFVpbnQ4QXJyYXkoZS52aWV3LmJ1ZmZlcixlLnZpZXcuYnl0ZU9mZnNldCtlLm9mZnNldCxBLmNvbXByZXNzZWRfcGFnZV9zaXplKTtsZXQgdTtpZihBLnR5cGU9PT0iREFUQV9QQUdFIil7Y29uc3Qgdz1BLmRhdGFfcGFnZV9oZWFkZXI7aWYoIXcpdGhyb3cgbmV3IEVycm9yKCJwYXJxdWV0IGRhdGEgcGFnZSBoZWFkZXIgaXMgdW5kZWZpbmVkIik7Y29uc3QgaD16ZShhLE51bWJlcihBLnVuY29tcHJlc3NlZF9wYWdlX3NpemUpLHQuY29kZWMsaSkse2RlZmluaXRpb25MZXZlbHM6RSxyZXBldGl0aW9uTGV2ZWxzOmcsZGF0YVBhZ2U6Y309a3QoaCx3LHIsdCk7aWYodT1kbihjLHMsZix3LmVuY29kaW5nLG8pLGcubGVuZ3RofHxFIT1udWxsJiZFLmxlbmd0aCl7Y29uc3QgST1RZShyKSx5PXIubWFwKCh7ZWxlbWVudDpCfSk9PkIucmVwZXRpdGlvbl90eXBlKTtibihsLEUsZyx1LHksSSl9ZWxzZXtmb3IobGV0IEk9MjtJPHIubGVuZ3RoO0krKylyW0ldLmVsZW1lbnQucmVwZXRpdGlvbl90eXBlIT09IlJFUVVJUkVEIiYmKHU9QXJyYXkuZnJvbSh1LHk9Plt5XSkpO0tlKGwsdSl9fWVsc2UgaWYoQS50eXBlPT09IkRBVEFfUEFHRV9WMiIpe2NvbnN0IHc9QS5kYXRhX3BhZ2VfaGVhZGVyX3YyO2lmKCF3KXRocm93IG5ldyBFcnJvcigicGFycXVldCBkYXRhIHBhZ2UgaGVhZGVyIHYyIGlzIHVuZGVmaW5lZCIpO2NvbnN0e2RlZmluaXRpb25MZXZlbHM6aCxyZXBldGl0aW9uTGV2ZWxzOkUsZGF0YVBhZ2U6Z309T3QoYSxBLHIsdCxpKTtpZih1PWRuKGcscyxmLHcuZW5jb2RpbmcsbyksRS5sZW5ndGh8fGghPW51bGwmJmgubGVuZ3RoKXtjb25zdCBjPVFlKHIpLEk9ci5tYXAoKHtlbGVtZW50Onl9KT0+eS5yZXBldGl0aW9uX3R5cGUpO2JuKGwsaCxFLHUsSSxjKX1lbHNlIEtlKGwsdSl9ZWxzZSBpZihBLnR5cGU9PT0iRElDVElPTkFSWV9QQUdFIil7Y29uc3Qgdz1BLmRpY3Rpb25hcnlfcGFnZV9oZWFkZXI7aWYoIXcpdGhyb3cgbmV3IEVycm9yKCJwYXJxdWV0IGRpY3Rpb25hcnkgcGFnZSBoZWFkZXIgaXMgdW5kZWZpbmVkIik7Y29uc3QgaD16ZShhLE51bWJlcihBLnVuY29tcHJlc3NlZF9wYWdlX3NpemUpLHQuY29kZWMsaSk7cz1xdChoLHcsdCxmLnR5cGVfbGVuZ3RoKX1lbHNlIHRocm93IG5ldyBFcnJvcihgcGFycXVldCB1bnN1cHBvcnRlZCBwYWdlIHR5cGU6ICR7QS50eXBlfWApO2Uub2Zmc2V0Kz1BLmNvbXByZXNzZWRfcGFnZV9zaXplfWlmKGwubGVuZ3RoPG4pdGhyb3cgbmV3IEVycm9yKGBwYXJxdWV0IHJvdyBkYXRhIGxlbmd0aCAke2wubGVuZ3RofSBkb2VzIG5vdCBtYXRjaCByb3cgZ3JvdXAgbGltaXQgJHtufX1gKTtyZXR1cm4gbC5sZW5ndGg+biYmKGwubGVuZ3RoPW4pLGx9ZnVuY3Rpb24gRm4oe2RpY3Rpb25hcnlfcGFnZV9vZmZzZXQ6ZSxkYXRhX3BhZ2Vfb2Zmc2V0Om4sdG90YWxfY29tcHJlc3NlZF9zaXplOnR9KXtsZXQgcj1lO3JldHVybighcnx8bjxyKSYmKHI9biksW3Iscit0XX1mdW5jdGlvbiBqdChlKXtjb25zdCBuPXluKGUpLHQ9d25bbi5maWVsZF8xXSxyPW4uZmllbGRfMixpPW4uZmllbGRfMyxvPW4uZmllbGRfNCxmPW4uZmllbGRfNSYme251bV92YWx1ZXM6bi5maWVsZF81LmZpZWxkXzEsZW5jb2Rpbmc6ZWVbbi5maWVsZF81LmZpZWxkXzJdLGRlZmluaXRpb25fbGV2ZWxfZW5jb2Rpbmc6ZWVbbi5maWVsZF81LmZpZWxkXzNdLHJlcGV0aXRpb25fbGV2ZWxfZW5jb2Rpbmc6ZWVbbi5maWVsZF81LmZpZWxkXzRdLHN0YXRpc3RpY3M6bi5maWVsZF81LmZpZWxkXzUmJnttYXg6bi5maWVsZF81LmZpZWxkXzUuZmllbGRfMSxtaW46bi5maWVsZF81LmZpZWxkXzUuZmllbGRfMixudWxsX2NvdW50Om4uZmllbGRfNS5maWVsZF81LmZpZWxkXzMsZGlzdGluY3RfY291bnQ6bi5maWVsZF81LmZpZWxkXzUuZmllbGRfNCxtYXhfdmFsdWU6bi5maWVsZF81LmZpZWxkXzUuZmllbGRfNSxtaW5fdmFsdWU6bi5maWVsZF81LmZpZWxkXzUuZmllbGRfNn19LHM9bi5maWVsZF82LGw9bi5maWVsZF83JiZ7bnVtX3ZhbHVlczpuLmZpZWxkXzcuZmllbGRfMSxlbmNvZGluZzplZVtuLmZpZWxkXzcuZmllbGRfMl0saXNfc29ydGVkOm4uZmllbGRfNy5maWVsZF8zfSxBPW4uZmllbGRfOCYme251bV92YWx1ZXM6bi5maWVsZF84LmZpZWxkXzEsbnVtX251bGxzOm4uZmllbGRfOC5maWVsZF8yLG51bV9yb3dzOm4uZmllbGRfOC5maWVsZF8zLGVuY29kaW5nOmVlW24uZmllbGRfOC5maWVsZF80XSxkZWZpbml0aW9uX2xldmVsc19ieXRlX2xlbmd0aDpuLmZpZWxkXzguZmllbGRfNSxyZXBldGl0aW9uX2xldmVsc19ieXRlX2xlbmd0aDpuLmZpZWxkXzguZmllbGRfNixpc19jb21wcmVzc2VkOm4uZmllbGRfOC5maWVsZF83PT09dm9pZCAwPyEwOm4uZmllbGRfOC5maWVsZF83LHN0YXRpc3RpY3M6bi5maWVsZF84LmZpZWxkXzh9O3JldHVybnt0eXBlOnQsdW5jb21wcmVzc2VkX3BhZ2Vfc2l6ZTpyLGNvbXByZXNzZWRfcGFnZV9zaXplOmksY3JjOm8sZGF0YV9wYWdlX2hlYWRlcjpmLGluZGV4X3BhZ2VfaGVhZGVyOnMsZGljdGlvbmFyeV9wYWdlX2hlYWRlcjpsLGRhdGFfcGFnZV9oZWFkZXJfdjI6QX19YXN5bmMgZnVuY3Rpb24gX3QoZSl7aWYoIWUuZmlsZSl0aHJvdyBuZXcgRXJyb3IoInBhcnF1ZXQgZmlsZSBpcyByZXF1aXJlZCIpO2lmKGUubWV0YWRhdGF8fChlLm1ldGFkYXRhPWF3YWl0IEdlKGUuZmlsZSkpLCFlLm1ldGFkYXRhKXRocm93IG5ldyBFcnJvcigicGFycXVldCBtZXRhZGF0YSBub3QgZm91bmQiKTtjb25zdHttZXRhZGF0YTpuLG9uQ29tcGxldGU6dCxyb3dFbmQ6cn09ZSxpPWUucm93U3RhcnR8fDAsbz1bXTtsZXQgZj0wO2Zvcihjb25zdCBzIG9mIG4ucm93X2dyb3Vwcyl7Y29uc3QgbD1OdW1iZXIocy5udW1fcm93cyk7aWYoZitsPj1pJiYocj09PXZvaWQgMHx8ZjxyKSl7Y29uc3QgQT1yJiZyLWYsYT1hd2FpdCAkdChlLHMsZixBKTtpZih0KXtjb25zdCB1PU1hdGgubWF4KGktZiwwKSx3PXI9PT12b2lkIDA/dm9pZCAwOnItZjtLZShvLGEuc2xpY2UodSx3KSl9fWYrPWx9dCYmdChvKX1hc3luYyBmdW5jdGlvbiAkdChlLG4sdCxyKXtjb25zdHtmaWxlOmksbWV0YWRhdGE6byxjb2x1bW5zOmZ9PWU7aWYoIW8pdGhyb3cgbmV3IEVycm9yKCJwYXJxdWV0IG1ldGFkYXRhIG5vdCBmb3VuZCIpOyhyPT09dm9pZCAwfHxyPm4ubnVtX3Jvd3MpJiYocj1OdW1iZXIobi5udW1fcm93cykpO2xldFtzLGxdPVtpLmJ5dGVMZW5ndGgsMF07aWYobi5jb2x1bW5zLmZvckVhY2goKHttZXRhX2RhdGE6RX0pPT57aWYoIUUpdGhyb3cgbmV3IEVycm9yKCJwYXJxdWV0IGNvbHVtbiBtZXRhZGF0YSBpcyB1bmRlZmluZWQiKTtpZihmJiYhZi5pbmNsdWRlcyhFLnBhdGhfaW5fc2NoZW1hWzBdKSlyZXR1cm47Y29uc3RbZyxjXT1GbihFKS5tYXAoTnVtYmVyKTtzPU1hdGgubWluKHMsZyksbD1NYXRoLm1heChsLGMpfSkscz49bCYmKGYhPW51bGwmJmYubGVuZ3RoKSl0aHJvdyBuZXcgRXJyb3IoYHBhcnF1ZXQgY29sdW1ucyBub3QgZm91bmQ6ICR7Zi5qb2luKCIsICIpfWApO2xldCBBO2wtczw9MTw8MjUmJihBPWF3YWl0IGkuc2xpY2UocyxsKSk7Y29uc3QgYT1bXSx7Y2hpbGRyZW46dX09Qm4oby5zY2hlbWEsW10pWzBdLHc9bmV3IE1hcCh1Lm1hcChFPT5bRS5lbGVtZW50Lm5hbWUseG4oRSldKSksaD1uZXcgTWFwO2ZvcihsZXQgRT0wO0U8bi5jb2x1bW5zLmxlbmd0aDtFKyspe2NvbnN0IGc9bi5jb2x1bW5zW0VdLm1ldGFfZGF0YTtpZighZyl0aHJvdyBuZXcgRXJyb3IoInBhcnF1ZXQgY29sdW1uIG1ldGFkYXRhIGlzIHVuZGVmaW5lZCIpO2NvbnN0IGM9Zy5wYXRoX2luX3NjaGVtYVswXTtpZihmJiYhZi5pbmNsdWRlcyhjKSljb250aW51ZTtjb25zdFtJLHldPUZuKGcpLm1hcChOdW1iZXIpLEI9eS1JO2lmKEI+MTw8MzApe2NvbnNvbGUud2FybihgcGFycXVldCBza2lwcGluZyBodWdlIGNvbHVtbiAiJHtnLnBhdGhfaW5fc2NoZW1hfSIgJHtCLnRvTG9jYWxlU3RyaW5nKCl9IGJ5dGVzYCk7Y29udGludWV9bGV0IFEsYj0wO0E/KFE9UHJvbWlzZS5yZXNvbHZlKEEpLGI9SS1zKTpRPVByb21pc2UucmVzb2x2ZShpLnNsaWNlKEkseSkpLGEucHVzaChRLnRoZW4oQz0+e3ZhciBOO2NvbnN0IEw9Qm4oby5zY2hlbWEsZy5wYXRoX2luX3NjaGVtYSksVD17dmlldzpuZXcgRGF0YVZpZXcoQyksb2Zmc2V0OmJ9O2xldCB4PVh0KFQscixnLEwsZSk7Y29uc3QgRj1nLnBhdGhfaW5fc2NoZW1hLmpvaW4oIi4iKTtoLnNldChGLHgpLHg9dm9pZCAwO2NvbnN0IFk9dy5nZXQoYyk7aWYoWSE9bnVsbCYmWS5ldmVyeShQPT5oLmhhcyhQKSkmJihkZShoLExbMV0pLHg9aC5nZXQoYyksIXgpKXRocm93IG5ldyBFcnJvcihgcGFycXVldCBjb2x1bW4gZGF0YSBub3QgYXNzZW1ibGVkOiAke2N9YCk7eCYmKChOPWUub25DaHVuayk9PW51bGx8fE4uY2FsbChlLHtjb2x1bW5OYW1lOmMsY29sdW1uRGF0YTp4LHJvd1N0YXJ0OnQscm93RW5kOnQreC5sZW5ndGh9KSl9KSl9aWYoYXdhaXQgUHJvbWlzZS5hbGwoYSksZS5vbkNvbXBsZXRlKXtjb25zdCBFPW5ldyBBcnJheShyKSxnPXUubWFwKHk9PnkuZWxlbWVudC5uYW1lKS5maWx0ZXIoeT0+IWZ8fGYuaW5jbHVkZXMoeSkpLGM9Znx8ZyxJPWMubWFwKHk9PmcuaW5jbHVkZXMoeSk/aC5nZXQoeSk6dm9pZCAwKTtmb3IobGV0IHk9MDt5PHI7eSsrKWlmKGUucm93Rm9ybWF0PT09Im9iamVjdCIpe2NvbnN0IEI9e307Yy5mb3JFYWNoKChRLGIpPT57dmFyIEM7QltRXT0oQz1JW2JdKT09bnVsbD92b2lkIDA6Q1t5XX0pLEVbeV09Qn1lbHNlIEVbeV09SS5tYXAoQj0+Qj09bnVsbD92b2lkIDA6Qlt5XSk7cmV0dXJuIEV9cmV0dXJuW119ZnVuY3Rpb24geG4oZSxuPVtdKXtpZihlLmNoaWxkcmVuLmxlbmd0aClmb3IoY29uc3QgdCBvZiBlLmNoaWxkcmVuKXhuKHQsbik7ZWxzZSBuLnB1c2goZS5wYXRoLmpvaW4oIi4iKSk7cmV0dXJuIG59YXN5bmMgZnVuY3Rpb24gUm4oZSl7Y29uc3R7ZmlsZTpuLHJvd1N0YXJ0OnQscm93RW5kOnIsb3JkZXJCeTppfT1lO2lmKGUubWV0YWRhdGF8fChlLm1ldGFkYXRhPWF3YWl0IEdlKG4pKSx0eXBlb2YgaT09InN0cmluZyIpe2NvbnN0IG89YXdhaXQgSmUoey4uLmUscm93U3RhcnQ6dm9pZCAwLHJvd0VuZDp2b2lkIDAsY29sdW1uczpbaV19KSxmPUFycmF5LmZyb20obywoQSxhKT0+YSkuc29ydCgoQSxhKT0+bnIob1tBXVtpXSxvW2FdW2ldKSkuc2xpY2UodCxyKSxzPWF3YWl0IGVyKHsuLi5lLHJvd3M6Zn0pO3JldHVybiBmLm1hcChBPT5zW0FdKX1lbHNlIHJldHVybiBhd2FpdCBKZShlKX1hc3luYyBmdW5jdGlvbiBlcihlKXtjb25zdHtmaWxlOm4scm93czp0fT1lO2UubWV0YWRhdGF8fChlLm1ldGFkYXRhPWF3YWl0IEdlKG4pKTtjb25zdHtyb3dfZ3JvdXBzOnJ9PWUubWV0YWRhdGEsaT1BcnJheShyLmxlbmd0aCkuZmlsbCghMSk7bGV0IG89MDtjb25zdCBmPXIubWFwKGE9Pm8rPU51bWJlcihhLm51bV9yb3dzKSk7Zm9yKGNvbnN0IGEgb2YgdCl7Y29uc3QgdT1mLmZpbmRJbmRleCh3PT5hPHcpO2lbdV09ITB9Y29uc3Qgcz1bXTtsZXQgbDtvPTA7Zm9yKGxldCBhPTA7YTxpLmxlbmd0aDthKyspe2NvbnN0IHU9bytOdW1iZXIoclthXS5udW1fcm93cyk7aVthXT9sPT09dm9pZCAwJiYobD1vKTpsIT09dm9pZCAwJiYocy5wdXNoKFtsLHVdKSxsPXZvaWQgMCksbz11fWwhPT12b2lkIDAmJnMucHVzaChbbCxvXSk7Y29uc3QgQT1uZXcgQXJyYXkoTnVtYmVyKGUubWV0YWRhdGEubnVtX3Jvd3MpKTtmb3IoY29uc3RbYSx1XW9mIHMpe2NvbnN0IHc9YXdhaXQgSmUoey4uLmUscm93U3RhcnQ6YSxyb3dFbmQ6dX0pO2ZvcihsZXQgaD1hO2g8dTtoKyspQVtoXT13W2gtYV0sQVtoXS5fX2luZGV4X189aH1yZXR1cm4gQX1mdW5jdGlvbiBucihlLG4pe3JldHVybiBlPG4/LTE6KGU+biwxKX1mdW5jdGlvbiBKZShlKXtyZXR1cm4gbmV3IFByb21pc2UoKG4sdCk9PntfdCh7cm93Rm9ybWF0OiJvYmplY3QiLC4uLmUsb25Db21wbGV0ZTpufSkuY2F0Y2godCl9KX12YXIgdHI9QXJyYXlCdWZmZXIsRD1VaW50OEFycmF5LFJlPVVpbnQxNkFycmF5LHJyPUludDE2QXJyYXksTmU9SW50MzJBcnJheSxYZT1mdW5jdGlvbihlLG4sdCl7aWYoRC5wcm90b3R5cGUuc2xpY2UpcmV0dXJuIEQucHJvdG90eXBlLnNsaWNlLmNhbGwoZSxuLHQpOyhuPT1udWxsfHxuPDApJiYobj0wKSwodD09bnVsbHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTt2YXIgcj1uZXcgRCh0LW4pO3JldHVybiByLnNldChlLnN1YmFycmF5KG4sdCkpLHJ9LGdlPWZ1bmN0aW9uKGUsbix0LHIpe2lmKEQucHJvdG90eXBlLmZpbGwpcmV0dXJuIEQucHJvdG90eXBlLmZpbGwuY2FsbChlLG4sdCxyKTtmb3IoKHQ9PW51bGx8fHQ8MCkmJih0PTApLChyPT1udWxsfHxyPmUubGVuZ3RoKSYmKHI9ZS5sZW5ndGgpO3Q8cjsrK3QpZVt0XT1uO3JldHVybiBlfSxpcj1mdW5jdGlvbihlLG4sdCxyKXtpZihELnByb3RvdHlwZS5jb3B5V2l0aGluKXJldHVybiBELnByb3RvdHlwZS5jb3B5V2l0aGluLmNhbGwoZSxuLHQscik7Zm9yKCh0PT1udWxsfHx0PDApJiYodD0wKSwocj09bnVsbHx8cj5lLmxlbmd0aCkmJihyPWUubGVuZ3RoKTt0PHI7KWVbbisrXT1lW3QrK119LG9yPVsiaW52YWxpZCB6c3RkIGRhdGEiLCJ3aW5kb3cgc2l6ZSB0b28gbGFyZ2UgKD4yMDQ2TUIpIiwiaW52YWxpZCBibG9jayB0eXBlIiwiRlNFIGFjY3VyYWN5IHRvbyBoaWdoIiwibWF0Y2ggZGlzdGFuY2UgdG9vIGZhciBiYWNrIiwidW5leHBlY3RlZCBFT0YiXSxrPWZ1bmN0aW9uKGUsbix0KXt2YXIgcj1uZXcgRXJyb3Iobnx8b3JbZV0pO2lmKHIuY29kZT1lLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlJiZFcnJvci5jYXB0dXJlU3RhY2tUcmFjZShyLGspLCF0KXRocm93IHI7cmV0dXJuIHJ9LE5uPWZ1bmN0aW9uKGUsbix0KXtmb3IodmFyIHI9MCxpPTA7cjx0OysrcilpfD1lW24rK108PChyPDwzKTtyZXR1cm4gaX0sZnI9ZnVuY3Rpb24oZSxuKXtyZXR1cm4oZVtuXXxlW24rMV08PDh8ZVtuKzJdPDwxNnxlW24rM108PDI0KT4+PjB9LHNyPWZ1bmN0aW9uKGUsbil7dmFyIHQ9ZVswXXxlWzFdPDw4fGVbMl08PDE2O2lmKHQ9PTMxMjY1NjgmJmVbM109PTI1Myl7dmFyIHI9ZVs0XSxpPXI+PjUmMSxvPXI+PjImMSxmPXImMyxzPXI+PjY7ciY4JiZrKDApO3ZhciBsPTYtaSxBPWY9PTM/NDpmLGE9Tm4oZSxsLEEpO2wrPUE7dmFyIHU9cz8xPDxzOmksdz1ObihlLGwsdSkrKHM9PTEmJjI1NiksaD13O2lmKCFpKXt2YXIgRT0xPDwxMCsoZVs1XT4+Myk7aD1FKyhFPj4zKSooZVs1XSY3KX1oPjIxNDUzODY0OTYmJmsoMSk7dmFyIGc9bmV3IEQoKG49PTE/d3x8aDpuPzA6aCkrMTIpO3JldHVybiBnWzBdPTEsZ1s0XT00LGdbOF09OCx7YjpsK3UseTowLGw6MCxkOmEsdzpuJiZuIT0xP246Zy5zdWJhcnJheSgxMiksZTpoLG86bmV3IE5lKGcuYnVmZmVyLDAsMyksdTp3LGM6byxtOk1hdGgubWluKDEzMTA3MixoKX19ZWxzZSBpZigodD4+NHxlWzNdPDwyMCk9PTI1NDgxODkzKXJldHVybiBmcihlLDQpKzg7aygwKX0scmU9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTA7MTw8bjw9ZTsrK24pO3JldHVybiBuLTF9LGhlPWZ1bmN0aW9uKGUsbix0KXt2YXIgcj0objw8MykrNCxpPShlW25dJjE1KSs1O2k+dCYmaygzKTtmb3IodmFyIG89MTw8aSxmPW8scz0tMSxsPS0xLEE9LTEsYT1vLHU9bmV3IHRyKDUxMisobzw8MikpLHc9bmV3IHJyKHUsMCwyNTYpLGg9bmV3IFJlKHUsMCwyNTYpLEU9bmV3IFJlKHUsNTEyLG8pLGc9NTEyKyhvPDwxKSxjPW5ldyBEKHUsZyxvKSxJPW5ldyBEKHUsZytvKTtzPDI1NSYmZj4wOyl7dmFyIHk9cmUoZisxKSxCPXI+PjMsUT0oMTw8eSsxKS0xLGI9KGVbQl18ZVtCKzFdPDw4fGVbQisyXTw8MTYpPj4ociY3KSZRLEM9KDE8PHkpLTEsTD1RLWYtMSxUPWImQztpZihUPEw/KHIrPXksYj1UKToocis9eSsxLGI+QyYmKGItPUwpKSx3Wysrc109LS1iLGI9PS0xPyhmKz1iLGNbLS1hXT1zKTpmLT1iLCFiKWRve3ZhciB4PXI+PjM7bD0oZVt4XXxlW3grMV08PDgpPj4ociY3KSYzLHIrPTIscys9bH13aGlsZShsPT0zKX0ocz4yNTV8fGYpJiZrKDApO2Zvcih2YXIgRj0wLFk9KG8+PjEpKyhvPj4zKSszLE49by0xLFA9MDtQPD1zOysrUCl7dmFyIFM9d1tQXTtpZihTPDEpe2hbUF09LVM7Y29udGludWV9Zm9yKEE9MDtBPFM7KytBKXtjW0ZdPVA7ZG8gRj1GK1kmTjt3aGlsZShGPj1hKX19Zm9yKEYmJmsoMCksQT0wO0E8bzsrK0Epe3ZhciBVPWhbY1tBXV0rKyxNPUlbQV09aS1yZShVKTtFW0FdPShVPDxNKS1vfXJldHVybltyKzc+PjMse2I6aSxzOmMsbjpJLHQ6RX1dfSxBcj1mdW5jdGlvbihlLG4pe3ZhciB0PTAscj0tMSxpPW5ldyBEKDI5Miksbz1lW25dLGY9aS5zdWJhcnJheSgwLDI1Nikscz1pLnN1YmFycmF5KDI1NiwyNjgpLGw9bmV3IFJlKGkuYnVmZmVyLDI2OCk7aWYobzwxMjgpe3ZhciBBPWhlKGUsbisxLDYpLGE9QVswXSx1PUFbMV07bis9bzt2YXIgdz1hPDwzLGg9ZVtuXTtofHxrKDApO2Zvcih2YXIgRT0wLGc9MCxjPXUuYixJPWMseT0oKytuPDwzKS04K3JlKGgpO3ktPWMsISh5PHcpOyl7dmFyIEI9eT4+MztpZihFKz0oZVtCXXxlW0IrMV08PDgpPj4oeSY3KSYoMTw8YyktMSxmWysrcl09dS5zW0VdLHktPUkseTx3KWJyZWFrO0I9eT4+MyxnKz0oZVtCXXxlW0IrMV08PDgpPj4oeSY3KSYoMTw8SSktMSxmWysrcl09dS5zW2ddLGM9dS5uW0VdLEU9dS50W0VdLEk9dS5uW2ddLGc9dS50W2ddfSsrcj4yNTUmJmsoMCl9ZWxzZXtmb3Iocj1vLTEyNzt0PHI7dCs9Mil7dmFyIFE9ZVsrK25dO2ZbdF09UT4+NCxmW3QrMV09USYxNX0rK259dmFyIGI9MDtmb3IodD0wO3Q8cjsrK3Qpe3ZhciBDPWZbdF07Qz4xMSYmaygwKSxiKz1DJiYxPDxDLTF9dmFyIEw9cmUoYikrMSxUPTE8PEwseD1ULWI7Zm9yKHgmeC0xJiZrKDApLGZbcisrXT1yZSh4KSsxLHQ9MDt0PHI7Kyt0KXt2YXIgQz1mW3RdOysrc1tmW3RdPUMmJkwrMS1DXX12YXIgRj1uZXcgRChUPDwxKSxZPUYuc3ViYXJyYXkoMCxUKSxOPUYuc3ViYXJyYXkoVCk7Zm9yKGxbTF09MCx0PUw7dD4wOy0tdCl7dmFyIFA9bFt0XTtnZShOLHQsUCxsW3QtMV09UCtzW3RdKigxPDxMLXQpKX1mb3IobFswXSE9VCYmaygwKSx0PTA7dDxyOysrdCl7dmFyIFM9Zlt0XTtpZihTKXt2YXIgVT1sW1NdO2dlKFksdCxVLGxbU109VSsoMTw8TC1TKSl9fXJldHVybltuLHtuOk4sYjpMLHM6WX1dfSxscj1oZShuZXcgRChbODEsMTYsOTksMTQwLDQ5LDE5OCwyNCw5OSwxMiwzMywxOTYsMjQsOTksMTAyLDEwMiwxMzQsNzAsMTQ2LDRdKSwwLDYpWzFdLGFyPWhlKG5ldyBEKFszMywyMCwxOTYsMjQsOTksMTQwLDMzLDEzMiwxNiw2Niw4LDMzLDEzMiwxNiw2Niw4LDMzLDY4LDY4LDY4LDY4LDY4LDY4LDY4LDY4LDM2LDldKSwwLDYpWzFdLGNyPWhlKG5ldyBEKFszMiwxMzIsMTYsNjYsMTAyLDcwLDY4LDY4LDY4LDY4LDM2LDczLDJdKSwwLDUpWzFdLFluPWZ1bmN0aW9uKGUsbil7Zm9yKHZhciB0PWUubGVuZ3RoLHI9bmV3IE5lKHQpLGk9MDtpPHQ7KytpKXJbaV09bixuKz0xPDxlW2ldO3JldHVybiByfSxqZT1uZXcgRChuZXcgTmUoWzAsMCwwLDAsMTY4NDMwMDksNTA1Mjg3NzAsMTM0Njc4MDIwLDIwMjA1MDA1NywyNjk0MjIwOTNdKS5idWZmZXIsMCwzNiksd3I9WW4oamUsMCksX2U9bmV3IEQobmV3IE5lKFswLDAsMCwwLDAsMCwwLDAsMTY4NDMwMDksNTA1Mjg3NzAsMTE3NzY5MjIwLDE4NTIwNzA0OCwyNTI1NzkwODQsMTZdKS5idWZmZXIsMCw1MyksdXI9WW4oX2UsMyksSWU9ZnVuY3Rpb24oZSxuLHQpe3ZhciByPWUubGVuZ3RoLGk9bi5sZW5ndGgsbz1lW3ItMV0sZj0oMTw8dC5iKS0xLHM9LXQuYjtvfHxrKDApO2Zvcih2YXIgbD0wLEE9dC5iLGE9KHI8PDMpLTgrcmUobyktQSx1PS0xO2E+cyYmdTxpOyl7dmFyIHc9YT4+MyxoPShlW3ddfGVbdysxXTw8OHxlW3crMl08PDE2KT4+KGEmNyk7bD0obDw8QXxoKSZmLG5bKyt1XT10LnNbbF0sYS09QT10Lm5bbF19KGEhPXN8fHUrMSE9aSkmJmsoMCl9LGRyPWZ1bmN0aW9uKGUsbix0KXt2YXIgcj02LGk9bi5sZW5ndGgsbz1pKzM+PjIsZj1vPDwxLHM9bytmO0llKGUuc3ViYXJyYXkocixyKz1lWzBdfGVbMV08PDgpLG4uc3ViYXJyYXkoMCxvKSx0KSxJZShlLnN1YmFycmF5KHIscis9ZVsyXXxlWzNdPDw4KSxuLnN1YmFycmF5KG8sZiksdCksSWUoZS5zdWJhcnJheShyLHIrPWVbNF18ZVs1XTw8OCksbi5zdWJhcnJheShmLHMpLHQpLEllKGUuc3ViYXJyYXkociksbi5zdWJhcnJheShzKSx0KX0sZ3I9ZnVuY3Rpb24oZSxuLHQpe3ZhciByLGk9bi5iLG89ZVtpXSxmPW8+PjEmMztuLmw9byYxO3ZhciBzPW8+PjN8ZVtpKzFdPDw1fGVbaSsyXTw8MTMsbD0oaSs9MykrcztpZihmPT0xKXJldHVybiBpPj1lLmxlbmd0aD92b2lkIDA6KG4uYj1pKzEsdD8oZ2UodCxlW2ldLG4ueSxuLnkrPXMpLHQpOmdlKG5ldyBEKHMpLGVbaV0pKTtpZighKGw+ZS5sZW5ndGgpKXtpZihmPT0wKXJldHVybiBuLmI9bCx0Pyh0LnNldChlLnN1YmFycmF5KGksbCksbi55KSxuLnkrPXMsdCk6WGUoZSxpLGwpO2lmKGY9PTIpe3ZhciBBPWVbaV0sYT1BJjMsdT1BPj4yJjMsdz1BPj40LGg9MCxFPTA7YTwyP3UmMT93fD1lWysraV08PDR8KHUmMiYmZVsrK2ldPDwxMik6dz1BPj4zOihFPXUsdTwyPyh3fD0oZVsrK2ldJjYzKTw8NCxoPWVbaV0+PjZ8ZVsrK2ldPDwyKTp1PT0yPyh3fD1lWysraV08PDR8KGVbKytpXSYzKTw8MTIsaD1lW2ldPj4yfGVbKytpXTw8Nik6KHd8PWVbKytpXTw8NHwoZVsrK2ldJjYzKTw8MTIsaD1lW2ldPj42fGVbKytpXTw8MnxlWysraV08PDEwKSksKytpO3ZhciBnPXQ/dC5zdWJhcnJheShuLnksbi55K24ubSk6bmV3IEQobi5tKSxjPWcubGVuZ3RoLXc7aWYoYT09MClnLnNldChlLnN1YmFycmF5KGksaSs9dyksYyk7ZWxzZSBpZihhPT0xKWdlKGcsZVtpKytdLGMpO2Vsc2V7dmFyIEk9bi5oO2lmKGE9PTIpe3ZhciB5PUFyKGUsaSk7aCs9aS0oaT15WzBdKSxuLmg9ST15WzFdfWVsc2UgSXx8aygwKTsoRT9kcjpJZSkoZS5zdWJhcnJheShpLGkrPWgpLGcuc3ViYXJyYXkoYyksSSl9dmFyIEI9ZVtpKytdO2lmKEIpe0I9PTI1NT9CPShlW2krK118ZVtpKytdPDw4KSszMjUxMjpCPjEyNyYmKEI9Qi0xMjg8PDh8ZVtpKytdKTt2YXIgUT1lW2krK107USYzJiZrKDApO2Zvcih2YXIgYj1bYXIsY3IsbHJdLEM9MjtDPi0xOy0tQyl7dmFyIEw9UT4+KEM8PDEpKzImMztpZihMPT0xKXt2YXIgVD1uZXcgRChbMCwwLGVbaSsrXV0pO2JbQ109e3M6VC5zdWJhcnJheSgyLDMpLG46VC5zdWJhcnJheSgwLDEpLHQ6bmV3IFJlKFQuYnVmZmVyLDAsMSksYjowfX1lbHNlIEw9PTI/KHI9aGUoZSxpLDktKEMmMSkpLGk9clswXSxiW0NdPXJbMV0pOkw9PTMmJihuLnR8fGsoMCksYltDXT1uLnRbQ10pfXZhciB4PW4udD1iLEY9eFswXSxZPXhbMV0sTj14WzJdLFA9ZVtsLTFdO1B8fGsoMCk7dmFyIFM9KGw8PDMpLTgrcmUoUCktTi5iLFU9Uz4+MyxNPTAsZmU9KGVbVV18ZVtVKzFdPDw4KT4+KFMmNykmKDE8PE4uYiktMTtVPShTLT1ZLmIpPj4zO3ZhciBsZT0oZVtVXXxlW1UrMV08PDgpPj4oUyY3KSYoMTw8WS5iKS0xO1U9KFMtPUYuYik+PjM7dmFyIGFlPShlW1VdfGVbVSsxXTw8OCk+PihTJjcpJigxPDxGLmIpLTE7Zm9yKCsrQjstLUI7KXt2YXIgY2U9Ti5zW2ZlXSxrZT1OLm5bZmVdLHZlPUYuc1thZV0seWU9Ri5uW2FlXSxwZT1ZLnNbbGVdLFg9WS5uW2xlXTtVPShTLT1wZSk+PjM7dmFyIENlPTE8PHBlLEc9Q2UrKChlW1VdfGVbVSsxXTw8OHxlW1UrMl08PDE2fGVbVSszXTw8MjQpPj4+KFMmNykmQ2UtMSk7VT0oUy09X2VbdmVdKT4+Mzt2YXIgaj11clt2ZV0rKChlW1VdfGVbVSsxXTw8OHxlW1UrMl08PDE2KT4+KFMmNykmKDE8PF9lW3ZlXSktMSk7VT0oUy09amVbY2VdKT4+Mzt2YXIgbT13cltjZV0rKChlW1VdfGVbVSsxXTw8OHxlW1UrMl08PDE2KT4+KFMmNykmKDE8PGplW2NlXSktMSk7aWYoVT0oUy09a2UpPj4zLGZlPU4udFtmZV0rKChlW1VdfGVbVSsxXTw8OCk+PihTJjcpJigxPDxrZSktMSksVT0oUy09eWUpPj4zLGFlPUYudFthZV0rKChlW1VdfGVbVSsxXTw8OCk+PihTJjcpJigxPDx5ZSktMSksVT0oUy09WCk+PjMsbGU9WS50W2xlXSsoKGVbVV18ZVtVKzFdPDw4KT4+KFMmNykmKDE8PFgpLTEpLEc+MyluLm9bMl09bi5vWzFdLG4ub1sxXT1uLm9bMF0sbi5vWzBdPUctPTM7ZWxzZXt2YXIgXz1HLShtIT0wKTtfPyhHPV89PTM/bi5vWzBdLTE6bi5vW19dLF8+MSYmKG4ub1syXT1uLm9bMV0pLG4ub1sxXT1uLm9bMF0sbi5vWzBdPUcpOkc9bi5vWzBdfWZvcih2YXIgQz0wO0M8bTsrK0MpZ1tNK0NdPWdbYytDXTtNKz1tLGMrPW07dmFyIFo9TS1HO2lmKFo8MCl7dmFyICQ9LVoscWU9bi5lK1o7JD5qJiYoJD1qKTtmb3IodmFyIEM9MDtDPCQ7KytDKWdbTStDXT1uLndbcWUrQ107TSs9JCxqLT0kLFo9MH1mb3IodmFyIEM9MDtDPGo7KytDKWdbTStDXT1nW1orQ107TSs9an1pZihNIT1jKWZvcig7YzxnLmxlbmd0aDspZ1tNKytdPWdbYysrXTtlbHNlIE09Zy5sZW5ndGg7dD9uLnkrPU06Zz1YZShnLDAsTSl9ZWxzZSBpZih0KXtpZihuLnkrPXcsYylmb3IodmFyIEM9MDtDPHc7KytDKWdbQ109Z1tjK0NdfWVsc2UgYyYmKGc9WGUoZyxjKSk7cmV0dXJuIG4uYj1sLGd9aygyKX19LGhyPWZ1bmN0aW9uKGUsbil7aWYoZS5sZW5ndGg9PTEpcmV0dXJuIGVbMF07Zm9yKHZhciB0PW5ldyBEKG4pLHI9MCxpPTA7cjxlLmxlbmd0aDsrK3Ipe3ZhciBvPWVbcl07dC5zZXQobyxpKSxpKz1vLmxlbmd0aH1yZXR1cm4gdH07ZnVuY3Rpb24gSXIoZSxuKXtmb3IodmFyIHQ9W10scj0rIW4saT0wLG89MDtlLmxlbmd0aDspe3ZhciBmPXNyKGUscnx8bik7aWYodHlwZW9mIGY9PSJvYmplY3QiKXtmb3Iocj8obj1udWxsLGYudy5sZW5ndGg9PWYudSYmKHQucHVzaChuPWYudyksbys9Zi51KSk6KHQucHVzaChuKSxmLmU9MCk7IWYubDspe3ZhciBzPWdyKGUsZixuKTtzfHxrKDUpLG4/Zi5lPWYueToodC5wdXNoKHMpLG8rPXMubGVuZ3RoLGlyKGYudywwLHMubGVuZ3RoKSxmLncuc2V0KHMsZi53Lmxlbmd0aC1zLmxlbmd0aCkpfWk9Zi5iK2YuYyo0fWVsc2UgaT1mO2U9ZS5zdWJhcnJheShpKX1yZXR1cm4gaHIodCxvKX1mdW5jdGlvbiBFcigpe2NvbnN0IGU9QnIoKTtyZXR1cm4obix0KT0+e2NvbnN0e21lbW9yeTpyLHVuY29tcHJlc3M6aX09ZS5leHBvcnRzLG89NjhlMyxmPW8rbi5ieXRlTGVuZ3RoLHM9bytuLmJ5dGVMZW5ndGgrdDtpZihyLmJ1ZmZlci5ieXRlTGVuZ3RoPHMpe2NvbnN0IHU9ci5idWZmZXIuYnl0ZUxlbmd0aC82NTUzNixoPU1hdGguY2VpbChzLzY1NTM2KS11O3IuZ3JvdyhoKX1jb25zdCBsPW5ldyBVaW50OEFycmF5KHIuYnVmZmVyKTtsLnNldChuLG8pO2NvbnN0IEE9aShvLG4uYnl0ZUxlbmd0aCxmKTtpZihBPT09LTEpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHNuYXBweSBsZW5ndGggaGVhZGVyIik7aWYoQT09PS0yKXRocm93IG5ldyBFcnJvcigibWlzc2luZyBlb2YgbWFya2VyIik7aWYoQT09PS0zKXRocm93IG5ldyBFcnJvcigicHJlbWF0dXJlIGVuZCBvZiBpbnB1dCIpO2lmKEEpdGhyb3cgbmV3IEVycm9yKGBmYWlsZWQgdG8gdW5jb21wcmVzcyBkYXRhICR7QX1gKTtyZXR1cm4gbC5zbGljZShmLGYrdCl9fWZ1bmN0aW9uIEJyKCl7Y29uc3QgZT1hdG9iKHZyKSxuPW5ldyBVaW50OEFycmF5KGUubGVuZ3RoKTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrPTEpbltyXT1lLmNoYXJDb2RlQXQocik7Y29uc3QgdD1uZXcgV2ViQXNzZW1ibHkuTW9kdWxlKG4pO3JldHVybiBuZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UodCl9Y29uc3QgdnI9IkFHRnpiUUVBQUFBQkVBTmdBQUJnQTM5L2Z3Ri9ZQUYvQVg4REJnVUFBUUVCQWdVREFRQUNCajhLZndGQm9Jd0VDMzhBUVlBSUMzOEFRYUFNQzM4QVFhQU1DMzhBUWFDTUJBdC9BRUdBQ0F0L0FFR2dqQVFMZndCQmdJQUlDMzhBUVFBTGZ3QkJBUXNId1FFT0JtMWxiVzl5ZVFJQUVWOWZkMkZ6YlY5allXeHNYMk4wYjNKekFBQUdiV1Z0WTNCNUFBRUhiV1Z0Ylc5MlpRQUNDblZ1WTI5dGNISmxjM01BQXd4ZlgyUnpiMTlvWVc1a2JHVURBUXBmWDJSaGRHRmZaVzVrQXdJTFgxOXpkR0ZqYTE5c2IzY0RBd3hmWDNOMFlXTnJYMmhwWjJnREJBMWZYMmRzYjJKaGJGOWlZWE5sQXdVTFgxOW9aV0Z3WDJKaGMyVURCZ3BmWDJobFlYQmZaVzVrQXdjTlgxOXRaVzF2Y25sZlltRnpaUU1JREY5ZmRHRmliR1ZmWW1GelpRTUpDdUFTQlFJQUM4c0JBUU4vQWtBZ0FrVU5BQUpBQWtBZ0FrRUhjU0lERFFBZ0FDRUVJQUloQlF3QkN5QUFJUVFnQWlFRkEwQWdCQ0FCTFFBQU9nQUFJQVJCQVdvaEJDQUJRUUZxSVFFZ0JVRi9haUVGSUFOQmYyb2lBdzBBQ3dzZ0FrRUlTUTBBQTBBZ0JDQUJMUUFBT2dBQUlBUWdBUzBBQVRvQUFTQUVJQUV0QUFJNkFBSWdCQ0FCTFFBRE9nQURJQVFnQVMwQUJEb0FCQ0FFSUFFdEFBVTZBQVVnQkNBQkxRQUdPZ0FHSUFRZ0FTMEFCem9BQnlBRVFRaHFJUVFnQVVFSWFpRUJJQVZCZUdvaUJRMEFDd3NnQUF1Z0F3RUVmd0pBSUFBZ0FVWU5BQUpBQWtBZ0FDQUJTUTBBSUFFZ0Ftb2lBeUFBU3cwQkN5QUNSUTBCQWtBQ1FDQUNRUWR4SWdNTkFDQUFJUVFnQWlFRkRBRUxJQUFoQkNBQ0lRVURRQ0FFSUFFdEFBQTZBQUFnQkVFQmFpRUVJQUZCQVdvaEFTQUZRWDlxSVFVZ0EwRi9haUlERFFBTEN5QUNRUWhKRFFFRFFDQUVJQUV0QUFBNkFBQWdCQ0FCTFFBQk9nQUJJQVFnQVMwQUFqb0FBaUFFSUFFdEFBTTZBQU1nQkNBQkxRQUVPZ0FFSUFRZ0FTMEFCVG9BQlNBRUlBRXRBQVk2QUFZZ0JDQUJMUUFIT2dBSElBUkJDR29oQkNBQlFRaHFJUUVnQlVGNGFpSUZEUUFNQWdzTElBSkZEUUFDUUFKQUlBSkJBM0VpQkEwQUlBQWdBbW9oQmlBQ0lRVU1BUXNnQWlFRkEwQWdCVUYvYWlJRklBQnFJZ1lnQlNBQmFpSURMUUFBT2dBQUlBUkJmMm9pQkEwQUN3c2dBa0VFU1EwQUlBWkJmR29oQVNBRFFYeHFJUVFEUUNBQlFRTnFJQVJCQTJvdEFBQTZBQUFnQVVFQ2FpQUVRUUpxTFFBQU9nQUFJQUZCQVdvZ0JFRUJhaTBBQURvQUFDQUJJQVF0QUFBNkFBQWdBVUY4YWlFQklBUkJmR29oQkNBRlFYeHFJZ1VOQUFzTElBQUxzd29CQ1g4amdJQ0FnQUJCSUdzaUF5U0FnSUNBQUNBRFFRbHFRZ0EzQUFBZ0EwSUFOd0lFSUFNZ0EwRVlhallDQUVGL0lRUUNRQ0FCUlEwQUlBTWdBVUYvYWlJRk5nSWNJQU1nQUVFQmFqWUNHQ0FBTEFBQUlnWkIvd0J4SVFjQ1FDQUdRWDlLRFFBZ0JVVU5BU0FESUFGQmZtb2lCVFlDSENBRElBQkJBbW8yQWhnZ0FDd0FBU0lHUWY4QWNVRUhkQ0FIY2lFSFFYOGhCQ0FHUVg5S0RRQWdCVVVOQVNBRElBRkJmV29pQlRZQ0hDQURJQUJCQTJvMkFoZ2dBQ3dBQWlJR1FmOEFjVUVPZENBSGNpRUhRWDhoQkNBR1FYOUtEUUFnQlVVTkFTQURJQUZCZkdvaUJUWUNIQ0FESUFCQkJHbzJBaGdnQUN3QUF5SUdRZjhBY1VFVmRDQUhjaUVIUVg4aEJDQUdRWDlLRFFBZ0JVVU5BU0FESUFGQmUybzJBaHdnQXlBQVFRVnFOZ0lZSUFBc0FBUWlBVUVBU0EwQklBRkJISFFnQjNJaEJ3c2dBaUFIYWlFSUFrQUNRQ0FERUlTQWdJQUFEUUFnQWlFQURBRUxJQU1vQWdRaEFTQUNJUUFEUUFKQUlBTW9BZ2dnQVd0QkJFb05BQ0FESUFFMkFnUWdBeENFZ0lDQUFFVU5BaUFES0FJRUlRRUxJQUZCQVdvaEJRSkFBa0FnQVMwQUFDSUdRUU54RFFBZ0NDQUFheUVKSUFNb0FnZ2lDaUFGYXlFRUlBWkJBbllpQzBFQmFpRUhBa0FnQmtFL1N3MEFJQVJCRUVrTkFDQUpRUkJJRFFBZ0FDQUJLQUlCTmdJQUlBQWdBU2dDQlRZQ0JDQUFJQUVvQWdrMkFnZ2dBQ0FCS0FJTk5nSU1JQUFnQjJvaEFDQURLQUlJSUFVZ0Iyb2lBV3RCQkVvTkF5QURJQUUyQWdRZ0F4Q0VnSUNBQUVVTkJBd0NDd0pBQWtBZ0JrSHdBVThOQUNBRklRWU1BUXNnQ2lBRklBdEJSV29pQVdvaUJtc2hCQ0FCUVFKMFFZQ0lnSUFBYWlnQ0FDQUZLQUlBY1VFQmFpRUhDd0pBSUFjZ0JFME5BQU5BSUFnZ0FHc2dCRWtOQlNBQUlBWWdCQkNCZ0lDQUFDRUFJQU1vQWdBaUFTQUJLQUlBSWdrZ0F5Z0NEQ0lGYWlJR05nSUFJQUZCQkdvaUFTQUJLQUlBSWdvZ0JXc2lBVFlDQUNBRElBRTJBZ3dnQUNBRWFpRUFJQUZGRFFVZ0F5QUpJQXBxTmdJSUlBY2dCR3NoQnlBQklRUWdCeUFCU3cwQUN5QUlJQUJySVFrTElBa2dCMGtOQXlBQUlBWWdCeENCZ0lDQUFDQUhhaUVBSUFNb0FnZ2dCaUFIYWlJQmEwRUVTZzBDSUFNZ0FUWUNCQ0FERUlTQWdJQUFEUUVNQXdzZ0FDQUNheUFHUVFGMFFhQ0lnSUFBYWk4QkFDSUJRUXQySWdwQkFuUkJnSWlBZ0FCcUtBSUFJQVVvQWdCeElBRkJnQTV4YWlJSFFYOXFUUTBDSUFnZ0FHc2hCQUpBQWtBZ0FVSC9BWEVpQ1VFUVN3MEFJQWRCQ0VrTkFDQUVRUkJKRFFBZ0FDQUFJQWRySWdFb0FnQTJBZ0FnQUNBQktBSUVOZ0lFSUFBZ0FTZ0NDRFlDQ0NBQUlBRkJER29vQWdBMkFnd01BUXNDUUFKQUFrQWdCQ0FKUVFwcVNRMEFJQUFnQjJzaEJDQUFJUUVnQ1NFR0lBZEJCMHdOQVF3Q0N5QUVJQWxKRFFVZ0NVRUJhaUVFUVFBZ0Iyc2hCeUFBSVFFRFFDQUJJQUVnQjJvdEFBQTZBQUFnQVVFQmFpRUJJQVJCZjJvaUJFRUJTdzBBREFNTEN3TkFJQUVnQkNnQ0FEWUNBQ0FCSUFRb0FnUTJBZ1FnQmlBSGF5RUdJQUVnQjJvaUFTQUVheUlIUVFoSURRQUxDeUFHUVFGSURRQWdCa0VJYWlFSEEwQWdBU0FFS0FJQU5nSUFJQUVnQkNnQ0JEWUNCQ0FCUVFocUlRRWdCRUVJYWlFRUlBZEJlR29pQjBFSVN3MEFDd3NnQUNBSmFpRUFJQU1vQWdnZ0JTQUthaUlCYTBFRVNnMEJJQU1nQVRZQ0JDQURFSVNBZ0lBQVJRMENDeUFES0FJRUlRRU1BQXNMSUFNb0FnQWlBU0FCS0FJRUlBTW9BZ3dpQkdzMkFnUWdBU0FFSUFFb0FnQnFOZ0lBQWtBZ0F5MEFFQTBBUVg0aEJBd0JDMEVBUVgwZ0NDQUFSaHNoQkFzZ0EwRWdhaVNBZ0lDQUFDQUVDN1lEQVFkL0FrQWdBQ2dDQkNJQklBQW9BZ2dpQWtjTkFDQUFLQUlBSWdJZ0FpZ0NBQ0lESUFBb0Fnd2lCR29pQVRZQ0FDQUNRUVJxSWdJZ0FpZ0NBQ0lDSUFScklnVTJBZ0FnQUNBRk5nSU1Ba0FnQWlBRVJ3MEFJQUJCQVRvQUVFRUFEd3NnQUNBRElBSnFJZ0kyQWdnTEFrQUNRQUpBSUFJZ0FXc2lBaUFCTFFBQVFRRjBRYUNJZ0lBQWFpOEJBRUVMZGtFQmFpSUZUdzBBSUFCQkVXb2dBU0FDRUlLQWdJQUFJUVlnQUNnQ0RDRUVRUUFoQnlBQVFRQTJBZ3dnQUNnQ0FDSUJJQUVvQWdRZ0JHczJBZ1FnQVNBRUlBRW9BZ0JxSWdNMkFnQURRQ0FCUVFScUtBSUFJZ0ZGRFFNZ0JpQUNhaUFESUFVZ0Ftc2lCQ0FCSUFRZ0FVa2JJZ1FRZ1lDQWdBQWFJQUFvQWdBaUFTQUJLQUlFSUFSck5nSUVJQUVnQVNnQ0FDQUVhaUlETmdJQUlBUWdBbW9pQWlBRlNRMEFDeUFBSUFZMkFnUWdBQ0FHSUFWcU5nSUlEQUVMQWtBZ0FrRUVTdzBBSUFBZ0FFRVJhaUFCSUFJUWdvQ0FnQUFpQVNBQ2FqWUNDQ0FBSUFFMkFnUWdBQ2dDRENFQ0lBQkJBRFlDRENBQUtBSUFJZ0VnQVNnQ0JDQUNhellDQkNBQklBSWdBU2dDQUdvMkFnQU1BUXNnQUNBQk5nSUVDMEVCSVFjTElBY0xDNmdFQVFCQmdBZ0xvQVFBQUFBQS93QUFBUC8vQUFELy8vOEEvLy8vL3dBQUFBQUFBQUFBQUFBQUFBRUFCQWdCRUFFZ0FnQUZDQUlRQWlBREFBWUlBeEFESUFRQUJ3Z0VFQVFnQlFBSUNBVVFCU0FHQUFrSUJoQUdJQWNBQ2dnSEVBY2dDQUFMQ0FnUUNDQUpBQVFKQ1JBSklBb0FCUWtLRUFvZ0N3QUdDUXNRQ3lBTUFBY0pEQkFNSUEwQUNBa05FQTBnRGdBSkNRNFFEaUFQQUFvSkR4QVBJQkFBQ3drUUVCQWdFUUFFQ2hFUUVTQVNBQVVLRWhBU0lCTUFCZ29URUJNZ0ZBQUhDaFFRRkNBVkFBZ0tGUkFWSUJZQUNRb1dFQllnRndBS0NoY1FGeUFZQUFzS0dCQVlJQmtBQkFzWkVCa2dHZ0FGQ3hvUUdpQWJBQVlMR3hBYklCd0FCd3NjRUJ3Z0hRQUlDeDBRSFNBZUFBa0xIaEFlSUI4QUNnc2ZFQjhnSUFBTEN5QVFJQ0FoQUFRTUlSQWhJQ0lBQlF3aUVDSWdJd0FHRENNUUl5QWtBQWNNSkJBa0lDVUFDQXdsRUNVZ0pnQUpEQ1lRSmlBbkFBb01KeEFuSUNnQUN3d29FQ2dnS1FBRURTa1FLU0FxQUFVTktoQXFJQ3NBQmcwckVDc2dMQUFIRFN3UUxDQXRBQWdOTFJBdElDNEFDUTB1RUM0Z0x3QUtEUzhRTHlBd0FBc05NQkF3SURFQUJBNHhFREVnTWdBRkRqSVFNaUF6QUFZT014QXpJRFFBQnc0MEVEUWdOUUFJRGpVUU5TQTJBQWtPTmhBMklEY0FDZzQzRURjZ09BQUxEamdRT0NBNUFBUVBPUkE1SURvQUJRODZFRG9nT3dBR0R6c1FPeUE4QUFjUFBCQThJQUVJQ0E4OUVEMGdBUkFKRHo0UVBpQUJHQW9QUHhBL0lBRWdDdzlBRUVBZ0FHUUVibUZ0WlFFOUJRQVJYMTkzWVhOdFgyTmhiR3hmWTNSdmNuTUJCbTFsYldOd2VRSUhiV1Z0Ylc5MlpRTUtkVzVqYjIxd2NtVnpjd1FLY21WbWFXeHNYM1JoWndjU0FRQVBYMTl6ZEdGamExOXdiMmx1ZEdWeUNRb0JBQWN1Y205a1lYUmhBRElKY0hKdlpIVmpaWEp6QVF4d2NtOWpaWE56WldRdFlua0JERlZpZFc1MGRTQmpiR0Z1WndzeE5pNHdMallnS0RFMUtRQXNEM1JoY21kbGRGOW1aV0YwZFhKbGN3SXJEMjExZEdGaWJHVXRaMnh2WW1Gc2N5c0ljMmxuYmkxbGVIUT0iLGllPTQwOTYseXI9MippZSszMixEbj0yKmllLTEscHI9bmV3IFVpbnQzMkFycmF5KFswLDEsMyw3LDE1LDMxLDYzLDEyNywyNTUsNTExLDEwMjMsMjA0Nyw0MDk1LDgxOTEsMTYzODMsMzI3NjcsNjU1MzUsMTMxMDcxLDI2MjE0Myw1MjQyODcsMTA0ODU3NSwyMDk3MTUxLDQxOTQzMDMsODM4ODYwNywxNjc3NzIxNV0pO2Z1bmN0aW9uIE8oZSl7dGhpcy5idWZfPW5ldyBVaW50OEFycmF5KHlyKSx0aGlzLmlucHV0Xz1lLHRoaXMuYnVmX3B0cl89MCx0aGlzLnZhbF89MCx0aGlzLnBvc189MCx0aGlzLnJlc2V0KCl9Ty5SRUFEX1NJWkU9aWUsTy5JQlVGX01BU0s9RG4sTy5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLmJ1Zl9wdHJfPTAsdGhpcy52YWxfPTAsdGhpcy5wb3NfPTAsdGhpcy5iaXRfcG9zXz0wLHRoaXMuYml0X2VuZF9wb3NfPTAsdGhpcy5lb3NfPTAsdGhpcy5yZWFkTW9yZUlucHV0KCk7Zm9yKGxldCBlPTA7ZTw0O2UrKyl0aGlzLnZhbF98PXRoaXMuYnVmX1t0aGlzLnBvc19dPDw4KmUsdGhpcy5wb3NfKys7cmV0dXJuIHRoaXMuYml0X2VuZF9wb3NfPjB9LE8ucHJvdG90eXBlLnJlYWRNb3JlSW5wdXQ9ZnVuY3Rpb24oKXtpZighKHRoaXMuYml0X2VuZF9wb3NfPjI1NikpaWYodGhpcy5lb3NfKXtpZih0aGlzLmJpdF9wb3NfPnRoaXMuYml0X2VuZF9wb3NfKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQgIit0aGlzLmJpdF9wb3NfKyIgIit0aGlzLmJpdF9lbmRfcG9zXyl9ZWxzZXtjb25zdCBlPXRoaXMuYnVmX3B0cl8sbj10aGlzLmlucHV0Xy5yZWFkKHRoaXMuYnVmXyxlLGllKTtpZihuPDApdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dCIpO2lmKG48aWUpe3RoaXMuZW9zXz0xO2ZvcihsZXQgdD0wO3Q8MzI7dCsrKXRoaXMuYnVmX1tlK24rdF09MH1pZihlPT09MCl7Zm9yKGxldCB0PTA7dDwzMjt0KyspdGhpcy5idWZfWyhpZTw8MSkrdF09dGhpcy5idWZfW3RdO3RoaXMuYnVmX3B0cl89aWV9ZWxzZSB0aGlzLmJ1Zl9wdHJfPTA7dGhpcy5iaXRfZW5kX3Bvc18rPW48PDN9fSxPLnByb3RvdHlwZS5maWxsQml0V2luZG93PWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmJpdF9wb3NfPj04Oyl0aGlzLnZhbF8+Pj49OCx0aGlzLnZhbF98PXRoaXMuYnVmX1t0aGlzLnBvc18mRG5dPDwyNCx0aGlzLnBvc18rKyx0aGlzLmJpdF9wb3NfPXRoaXMuYml0X3Bvc18tOD4+PjAsdGhpcy5iaXRfZW5kX3Bvc189dGhpcy5iaXRfZW5kX3Bvc18tOD4+PjB9LE8ucHJvdG90eXBlLnJlYWRCaXRzPWZ1bmN0aW9uKGUpezMyLXRoaXMuYml0X3Bvc188ZSYmdGhpcy5maWxsQml0V2luZG93KCk7Y29uc3Qgbj10aGlzLnZhbF8+Pj50aGlzLmJpdF9wb3NfJnByW2VdO3JldHVybiB0aGlzLmJpdF9wb3NfKz1lLG59O2NvbnN0IFduPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMCw0LDQsMCwwLDQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsOCwxMiwxNiwxMiwxMiwyMCwxMiwxNiwyNCwyOCwxMiwxMiwzMiwxMiwzNiwxMiw0NCw0NCw0NCw0NCw0NCw0NCw0NCw0NCw0NCw0NCwzMiwzMiwyNCw0MCwyOCwxMiwxMiw0OCw1Miw1Miw1Miw0OCw1Miw1Miw1Miw0OCw1Miw1Miw1Miw1Miw1Miw0OCw1Miw1Miw1Miw1Miw1Miw0OCw1Miw1Miw1Miw1Miw1MiwyNCwxMiwyOCwxMiwxMiwxMiw1Niw2MCw2MCw2MCw1Niw2MCw2MCw2MCw1Niw2MCw2MCw2MCw2MCw2MCw1Niw2MCw2MCw2MCw2MCw2MCw1Niw2MCw2MCw2MCw2MCw2MCwyNCwxMiwyOCwxMiwwLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMiwzLDIsMywyLDMsMiwzLDIsMywyLDMsMiwzLDIsMywyLDMsMiwzLDIsMywyLDMsMiwzLDIsMywyLDMsMiwzLDIsMywyLDMsMiwzLDIsMywyLDMsMiwzLDIsMywyLDMsMiwzLDIsMywyLDMsMiwzLDIsMywyLDMsMiwzLDIsMywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwyLDIsMiwyLDIsMiwyLDIsMiwyLDEsMSwxLDEsMSwxLDEsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDEsMSwxLDEsMSwxLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywxLDEsMSwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDAsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMyw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDYsNiw2LDcsMCw4LDgsOCw4LDgsOCw4LDgsOCw4LDgsOCw4LDgsOCwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0MCw0OCw0OCw0OCw0OCw0OCw0OCw0OCw0OCw0OCw0OCw0OCw0OCw0OCw0OCw0OCw1NiwwLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYzLDAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsNjIsNjMsMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMCwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwyOSwzMCwzMSwzMiwzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2MywwLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYzLDAsMCwwLDAsMSwxLDEsMSwyLDIsMiwyLDMsMywzLDMsNCw0LDQsNCw1LDUsNSw1LDYsNiw2LDYsNyw3LDcsNyw4LDgsOCw4LDksOSw5LDksMTAsMTAsMTAsMTAsMTEsMTEsMTEsMTEsMTIsMTIsMTIsMTIsMTMsMTMsMTMsMTMsMTQsMTQsMTQsMTQsMTUsMTUsMTUsMTUsMTYsMTYsMTYsMTYsMTcsMTcsMTcsMTcsMTgsMTgsMTgsMTgsMTksMTksMTksMTksMjAsMjAsMjAsMjAsMjEsMjEsMjEsMjEsMjIsMjIsMjIsMjIsMjMsMjMsMjMsMjMsMjQsMjQsMjQsMjQsMjUsMjUsMjUsMjUsMjYsMjYsMjYsMjYsMjcsMjcsMjcsMjcsMjgsMjgsMjgsMjgsMjksMjksMjksMjksMzAsMzAsMzAsMzAsMzEsMzEsMzEsMzEsMzIsMzIsMzIsMzIsMzMsMzMsMzMsMzMsMzQsMzQsMzQsMzQsMzUsMzUsMzUsMzUsMzYsMzYsMzYsMzYsMzcsMzcsMzcsMzcsMzgsMzgsMzgsMzgsMzksMzksMzksMzksNDAsNDAsNDAsNDAsNDEsNDEsNDEsNDEsNDIsNDIsNDIsNDIsNDMsNDMsNDMsNDMsNDQsNDQsNDQsNDQsNDUsNDUsNDUsNDUsNDYsNDYsNDYsNDYsNDcsNDcsNDcsNDcsNDgsNDgsNDgsNDgsNDksNDksNDksNDksNTAsNTAsNTAsNTAsNTEsNTEsNTEsNTEsNTIsNTIsNTIsNTIsNTMsNTMsNTMsNTMsNTQsNTQsNTQsNTQsNTUsNTUsNTUsNTUsNTYsNTYsNTYsNTYsNTcsNTcsNTcsNTcsNTgsNTgsNTgsNTgsNTksNTksNTksNTksNjAsNjAsNjAsNjAsNjEsNjEsNjEsNjEsNjIsNjIsNjIsNjIsNjMsNjMsNjMsNjMsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0pLFllPW5ldyBVaW50MTZBcnJheShbMTAyNCwxNTM2LDEyODAsMTUzNiwwLDI1Niw3NjgsNTEyXSksQ3I9OCwkZT04LG1yPTI1NSxlbj0xOCxRcj1uZXcgVWludDhBcnJheShbMSwyLDMsNCwwLDUsMTcsNiwxNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNV0pO2Z1bmN0aW9uIFIoZSxuKXt0aGlzLmJpdHM9ZSx0aGlzLnZhbHVlPW59Y29uc3QgVG49MTYsc2U9MTU7ZnVuY3Rpb24gUG4oZSxuKXtsZXQgdD0xPDxuLTE7Zm9yKDtlJnQ7KXQ+Pj0xO3JldHVybihlJnQtMSkrdH1mdW5jdGlvbiBrbihlLG4sdCxyLGkpe2RvIHItPXQsZVtuK3JdPW5ldyBSKGkuYml0cyxpLnZhbHVlKTt3aGlsZShyPjApfWZ1bmN0aW9uIGJyKGUsbix0KXtsZXQgcj0xPDxuLXQ7Zm9yKDtuPHNlJiYoci09ZVtuXSwhKHI8PTApKTspKytuLHI8PD0xO3JldHVybiBuLXR9ZnVuY3Rpb24gcW4oZSxuLHQscixpKXtjb25zdCBvPW4sZj1uZXcgSW50MzJBcnJheShzZSsxKSxzPW5ldyBJbnQzMkFycmF5KHNlKzEpLGw9bmV3IEludDMyQXJyYXkoaSk7Zm9yKGxldCBjPTA7YzxpO2MrKylmW3JbY11dKys7c1sxXT0wO2ZvcihsZXQgYz0xO2M8c2U7YysrKXNbYysxXT1zW2NdK2ZbY107Zm9yKGxldCBjPTA7YzxpO2MrKylyW2NdIT09MCYmKGxbc1tyW2NdXSsrXT1jKTtsZXQgQT10LGE9MTw8QSx1PWE7aWYoc1tzZV09PT0xKXtmb3IobGV0IGM9MDtjPHU7KytjKWVbbitjXT1uZXcgUigwLGxbMF0mNjU1MzUpO3JldHVybiB1fWxldCB3PTAsaD0wO2ZvcihsZXQgYz0xLEk9MjtjPD10OysrYyxJPDw9MSlmb3IoO2ZbY10+MDstLWZbY10pe2NvbnN0IHk9bmV3IFIoYyYyNTUsbFtoKytdJjY1NTM1KTtrbihlLG4rdyxJLGEseSksdz1Qbih3LGMpfWNvbnN0IEU9dS0xO2xldCBnPS0xO2ZvcihsZXQgYz10KzEsST0yO2M8PXNlOysrYyxJPDw9MSlmb3IoO2ZbY10+MDstLWZbY10peyh3JkUpIT09ZyYmKG4rPWEsQT1icihmLGMsdCksYT0xPDxBLHUrPWEsZz13JkUsZVtvK2ddPW5ldyBSKEErdCYyNTUsbi1vLWcmNjU1MzUpKTtjb25zdCB5PW5ldyBSKGMtdCYyNTUsbFtoKytdJjY1NTM1KTtrbihlLG4rKHc+PnQpLEksYSx5KSx3PVBuKHcsYyl9cmV0dXJuIHV9ZnVuY3Rpb24gRGUoZSxuLHQscil7Y29uc3QgaT1uZXcgVWludDhBcnJheShlKTtyLnJlYWRNb3JlSW5wdXQoKTtjb25zdCBvPXIucmVhZEJpdHMoMik7aWYobz09PTEpe2xldCBzPWUtMSxsPTA7Y29uc3QgQT1uZXcgSW50MzJBcnJheSg0KSxhPXIucmVhZEJpdHMoMikrMTtmb3IoO3M7KXM+Pj0xLGwrKztmb3IobGV0IHU9MDt1PGE7dSsrKUFbdV09ci5yZWFkQml0cyhsKSVlLGlbQVt1XV09Mjtzd2l0Y2goaVtBWzBdXT0xLGEpe2Nhc2UgMTpicmVhaztjYXNlIDM6aWYoQVswXT09PUFbMV18fEFbMF09PT1BWzJdfHxBWzFdPT09QVsyXSl0aHJvdyBuZXcgRXJyb3IoIltSZWFkSHVmZm1hbkNvZGVdIGludmFsaWQgc3ltYm9scyIpO2JyZWFrO2Nhc2UgMjppZihBWzBdPT09QVsxXSl0aHJvdyBuZXcgRXJyb3IoIltSZWFkSHVmZm1hbkNvZGVdIGludmFsaWQgc3ltYm9scyIpO2lbQVsxXV09MTticmVhaztjYXNlIDQ6aWYoQVswXT09PUFbMV18fEFbMF09PT1BWzJdfHxBWzBdPT09QVszXXx8QVsxXT09PUFbMl18fEFbMV09PT1BWzNdfHxBWzJdPT09QVszXSl0aHJvdyBuZXcgRXJyb3IoIltSZWFkSHVmZm1hbkNvZGVdIGludmFsaWQgc3ltYm9scyIpO3IucmVhZEJpdHMoMSk/KGlbQVsyXV09MyxpW0FbM11dPTMpOmlbQVswXV09MjticmVha319ZWxzZXtjb25zdCBzPW5ldyBVaW50OEFycmF5KGVuKTtsZXQgbD0zMixBPTA7Y29uc3QgYT1bbmV3IFIoMiwwKSxuZXcgUigyLDQpLG5ldyBSKDIsMyksbmV3IFIoMywyKSxuZXcgUigyLDApLG5ldyBSKDIsNCksbmV3IFIoMiwzKSxuZXcgUig0LDEpLG5ldyBSKDIsMCksbmV3IFIoMiw0KSxuZXcgUigyLDMpLG5ldyBSKDMsMiksbmV3IFIoMiwwKSxuZXcgUigyLDQpLG5ldyBSKDIsMyksbmV3IFIoNCw1KV07Zm9yKGxldCB1PW87dTxlbiYmbD4wO3UrKyl7Y29uc3Qgdz1Rclt1XTtsZXQgaD0wO3IuZmlsbEJpdFdpbmRvdygpLGgrPXIudmFsXz4+PnIuYml0X3Bvc18mMTUsci5iaXRfcG9zXys9YVtoXS5iaXRzO2NvbnN0IEU9YVtoXS52YWx1ZTtzW3ddPUUsRSE9PTAmJihsLT0zMj4+RSxBKyspfWlmKCEoQT09PTF8fGw9PT0wKSl0aHJvdyBuZXcgRXJyb3IoIltSZWFkSHVmZm1hbkNvZGVdIGludmFsaWQgbnVtX2NvZGVzIG9yIHNwYWNlIik7THIocyxlLGkscil9Y29uc3QgZj1xbihuLHQsJGUsaSxlKTtpZighZil0aHJvdyBuZXcgRXJyb3IoImJyb3RsaSBCdWlsZEh1ZmZtYW5UYWJsZSBmYWlsZWQiKTtyZXR1cm4gZn1mdW5jdGlvbiBBZShlLG4sdCl7dC5maWxsQml0V2luZG93KCksbis9dC52YWxfPj4+dC5iaXRfcG9zXyZtcjtjb25zdCByPWVbbl0uYml0cy0kZTtyZXR1cm4gcj4wJiYodC5iaXRfcG9zXys9JGUsbis9ZVtuXS52YWx1ZSxuKz10LnZhbF8+Pj50LmJpdF9wb3NfJigxPDxyKS0xKSx0LmJpdF9wb3NfKz1lW25dLmJpdHMsZVtuXS52YWx1ZX1mdW5jdGlvbiBMcihlLG4sdCxyKXtsZXQgaT0wLG89Q3IsZj0wLHM9MCxsPTMyNzY4O2NvbnN0IEE9W107Zm9yKGxldCBhPTA7YTwzMjthKyspQS5wdXNoKG5ldyBSKDAsMCkpO2ZvcihxbihBLDAsNSxlLGVuKTtpPG4mJmw+MDspe2xldCBhPTA7ci5yZWFkTW9yZUlucHV0KCksci5maWxsQml0V2luZG93KCksYSs9ci52YWxfPj4+ci5iaXRfcG9zXyYzMSxyLmJpdF9wb3NfKz1BW2FdLmJpdHM7Y29uc3QgdT1BW2FdLnZhbHVlJjI1NTtpZih1PFRuKWY9MCx0W2krK109dSx1IT09MCYmKG89dSxsLT0zMjc2OD4+dSk7ZWxzZXtjb25zdCB3PXUtMTQ7bGV0IGg9MDt1PT09VG4mJihoPW8pLHMhPT1oJiYoZj0wLHM9aCk7Y29uc3QgRT1mO2Y+MCYmKGYtPTIsZjw8PXcpLGYrPXIucmVhZEJpdHModykrMztjb25zdCBnPWYtRTtpZihpK2c+bil0aHJvdyBuZXcgRXJyb3IoIltSZWFkSHVmZm1hbkNvZGVMZW5ndGhzXSBzeW1ib2wgKyByZXBlYXRfZGVsdGEgPiBudW1fc3ltYm9scyIpO2ZvcihsZXQgYz0wO2M8ZztjKyspdFtpK2NdPXM7aSs9ZyxzIT09MCYmKGwtPWc8PDE1LXMpfX1pZihsIT09MCl0aHJvdyBuZXcgRXJyb3IoIltSZWFkSHVmZm1hbkNvZGVMZW5ndGhzXSBzcGFjZSA9ICIrbCk7Zm9yKDtpPG47aSsrKXRbaV09MH1mdW5jdGlvbiB2KGUsbil7dGhpcy5vZmZzZXQ9ZSx0aGlzLm5iaXRzPW59Y29uc3QgTW49W25ldyB2KDEsMiksbmV3IHYoNSwyKSxuZXcgdig5LDIpLG5ldyB2KDEzLDIpLG5ldyB2KDE3LDMpLG5ldyB2KDI1LDMpLG5ldyB2KDMzLDMpLG5ldyB2KDQxLDMpLG5ldyB2KDQ5LDQpLG5ldyB2KDY1LDQpLG5ldyB2KDgxLDQpLG5ldyB2KDk3LDQpLG5ldyB2KDExMyw1KSxuZXcgdigxNDUsNSksbmV3IHYoMTc3LDUpLG5ldyB2KDIwOSw1KSxuZXcgdigyNDEsNiksbmV3IHYoMzA1LDYpLG5ldyB2KDM2OSw3KSxuZXcgdig0OTcsOCksbmV3IHYoNzUzLDkpLG5ldyB2KDEyNjUsMTApLG5ldyB2KDIyODksMTEpLG5ldyB2KDQzMzcsMTIpLG5ldyB2KDg0MzMsMTMpLG5ldyB2KDE2NjI1LDI0KV0sSG49W25ldyB2KDAsMCksbmV3IHYoMSwwKSxuZXcgdigyLDApLG5ldyB2KDMsMCksbmV3IHYoNCwwKSxuZXcgdig1LDApLG5ldyB2KDYsMSksbmV3IHYoOCwxKSxuZXcgdigxMCwyKSxuZXcgdigxNCwyKSxuZXcgdigxOCwzKSxuZXcgdigyNiwzKSxuZXcgdigzNCw0KSxuZXcgdig1MCw0KSxuZXcgdig2Niw1KSxuZXcgdig5OCw1KSxuZXcgdigxMzAsNiksbmV3IHYoMTk0LDcpLG5ldyB2KDMyMiw4KSxuZXcgdig1NzgsOSksbmV3IHYoMTA5MCwxMCksbmV3IHYoMjExNCwxMiksbmV3IHYoNjIxMCwxNCksbmV3IHYoMjI1OTQsMjQpXSxPbj1bbmV3IHYoMiwwKSxuZXcgdigzLDApLG5ldyB2KDQsMCksbmV3IHYoNSwwKSxuZXcgdig2LDApLG5ldyB2KDcsMCksbmV3IHYoOCwwKSxuZXcgdig5LDApLG5ldyB2KDEwLDEpLG5ldyB2KDEyLDEpLG5ldyB2KDE0LDIpLG5ldyB2KDE4LDIpLG5ldyB2KDIyLDMpLG5ldyB2KDMwLDMpLG5ldyB2KDM4LDQpLG5ldyB2KDU0LDQpLG5ldyB2KDcwLDUpLG5ldyB2KDEwMiw1KSxuZXcgdigxMzQsNiksbmV3IHYoMTk4LDcpLG5ldyB2KDMyNiw4KSxuZXcgdig1ODIsOSksbmV3IHYoMTA5NCwxMCksbmV3IHYoMjExOCwyNCldLFVyPVswLDAsOCw4LDAsMTYsOCwxNiwxNl0sU3I9WzAsOCwwLDgsMTYsMCwxNiw4LDE2XTtmdW5jdGlvbiBWbihlKXt0aGlzLmJ1ZmZlcj1lLHRoaXMucG9zPTB9Vm4ucHJvdG90eXBlLnJlYWQ9ZnVuY3Rpb24oZSxuLHQpe3RoaXMucG9zK3Q+dGhpcy5idWZmZXIubGVuZ3RoJiYodD10aGlzLmJ1ZmZlci5sZW5ndGgtdGhpcy5wb3MpO2ZvcihsZXQgcj0wO3I8dDtyKyspZVtuK3JdPXRoaXMuYnVmZmVyW3RoaXMucG9zK3JdO3JldHVybiB0aGlzLnBvcys9dCx0fTtmdW5jdGlvbiBHbihlKXt0aGlzLmJ1ZmZlcj1lLHRoaXMucG9zPTB9R24ucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGUsbil7aWYodGhpcy5wb3Mrbj50aGlzLmJ1ZmZlci5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJicm90bGkgb3V0cHV0IGJ1ZmZlciBpcyBub3QgbGFyZ2UgZW5vdWdoIik7cmV0dXJuIHRoaXMuYnVmZmVyLnNldChlLnN1YmFycmF5KDAsbiksdGhpcy5wb3MpLHRoaXMucG9zKz1uLG59O2NvbnN0IFpuPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMSwxLDEsMSwyLDIsMiwyLDMsMywzLDMsNCw0LDQsNCw1LDUsNSw1LDAsMCwwLDBdKSx6bj1uZXcgVWludDhBcnJheShbMCwwLDAsMCwxLDEsMiwyLDMsMyw0LDQsNSw1LDYsNiw3LDcsOCw4LDksOSwxMCwxMCwxMSwxMSwxMiwxMiwxMywxMywwLDBdKSxGcj1uZXcgVWludDhBcnJheShbMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV0pO2Z1bmN0aW9uIEtuKGUsbil7Y29uc3QgdD1uZXcgVWludDE2QXJyYXkoMzEpO2ZvcihsZXQgaT0wO2k8MzE7aSsrKXRbaV09bis9MTw8ZVtpLTFdO2NvbnN0IHI9bmV3IEludDMyQXJyYXkodFszMF0pO2ZvcihsZXQgaT0xO2k8MzA7aSsrKWZvcihsZXQgbz10W2ldO288dFtpKzFdOysrbylyW29dPW8tdFtpXTw8NXxpO3JldHVybntiYXNlOnQscmV2OnJ9fWNvbnN0e2Jhc2U6Sm4scmV2OnhyfT1LbihabiwyKTtKblsyOF09MjU4LHhyWzI1OF09Mjg7Y29uc3R7YmFzZTpScn09S24oem4sMCksWG49bmV3IFVpbnQxNkFycmF5KDMyNzY4KTtmb3IobGV0IGU9MDtlPDMyNzY4O2UrKyl7bGV0IG49KGUmNDM2OTApPj4xfChlJjIxODQ1KTw8MTtuPShuJjUyNDI4KT4+MnwobiYxMzEwNyk8PDIsbj0obiY2MTY4MCk+PjR8KG4mMzg1NSk8PDQsWG5bZV09KChuJjY1MjgwKT4+OHwobiYyNTUpPDw4KT4+MX1mdW5jdGlvbiBFZShlLG4sdCl7Y29uc3Qgcj1uZXcgVWludDE2QXJyYXkobik7Zm9yKGxldCBmPTA7ZjxlLmxlbmd0aDtmKyspZVtmXSYmKytyW2VbZl0tMV07Y29uc3QgaT1uZXcgVWludDE2QXJyYXkobik7Zm9yKGxldCBmPTE7ZjxuO2YrKylpW2ZdPWlbZi0xXStyW2YtMV08PDE7bGV0IG87e289bmV3IFVpbnQxNkFycmF5KDE8PG4pO2NvbnN0IGY9MTUtbjtmb3IobGV0IHM9MDtzPGUubGVuZ3RoO3MrKylpZihlW3NdKXtjb25zdCBsPXM8PDR8ZVtzXSxBPW4tZVtzXTtsZXQgYT1pW2Vbc10tMV0rKzw8QTtmb3IoY29uc3QgdT1hfCgxPDxBKS0xO2E8PXU7YSsrKW9bWG5bYV0+PmZdPWx9fXJldHVybiBvfWNvbnN0IEJlPW5ldyBVaW50OEFycmF5KDI4OCk7Zm9yKGxldCBlPTA7ZTwxNDQ7ZSsrKUJlW2VdPTg7Zm9yKGxldCBlPTE0NDtlPDI1NjtlKyspQmVbZV09OTtmb3IobGV0IGU9MjU2O2U8MjgwO2UrKylCZVtlXT03O2ZvcihsZXQgZT0yODA7ZTwyODg7ZSsrKUJlW2VdPTg7Y29uc3Qgam49bmV3IFVpbnQ4QXJyYXkoMzIpO2ZvcihsZXQgZT0wO2U8MzI7ZSsrKWpuW2VdPTU7Y29uc3QgTnI9RWUoQmUsOSksWXI9RWUoam4sNSk7ZnVuY3Rpb24gbm4oZSl7bGV0IG49ZVswXTtmb3IobGV0IHQ9MTt0PGUubGVuZ3RoO3QrKyllW3RdPm4mJihuPWVbdF0pO3JldHVybiBufWZ1bmN0aW9uIFYoZSxuLHQpe2NvbnN0IHI9bi84fDA7cmV0dXJuKGVbcl18ZVtyKzFdPDw4KT4+KG4mNykmdH1mdW5jdGlvbiB0bihlLG4pe2NvbnN0IHQ9bi84fDA7cmV0dXJuKGVbdF18ZVt0KzFdPDw4fGVbdCsyXTw8MTYpPj4obiY3KX1mdW5jdGlvbiBEcihlKXtyZXR1cm4oZSs3KS84fDB9ZnVuY3Rpb24gV3IoZSxuKXtpZihlW24rK10hPT0zMXx8ZVtuKytdIT09MTM5fHxlW24rK10hPT04KXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBnemlwIGRhdGEiKTtjb25zdCB0PWVbbisrXTtuKz02LHQmNCYmKG4rPShlW24rMTBdfGVbbisxMV08PDgpKzIpO2ZvcihsZXQgcj0odD4+MyYxKSsodD4+NCYxKTtyPjA7ci09KyFlW24rK10pO3JldHVybiBuKyh0JjIpfWZ1bmN0aW9uIHJuKGUsbix0PTAscj0wKXtpZighKGUubGVuZ3RoLXQpKXJldHVybjtjb25zdCBpPVdyKGUsdCk7aWYoaT09PWUubGVuZ3RoLTgpcmV0dXJuO2lmKGk+ZS5sZW5ndGgtOCl0aHJvdyBuZXcgRXJyb3IoInVuZXhwZWN0ZWQgRU9GIik7bGV0IG89aSo4LGY9MCxzPTAsbD0wLEEsYTtjb25zdCB1PWUubGVuZ3RoKjg7ZG97aWYoIUEpe2Y9VihlLG8sMSk7Y29uc3QgZz1WKGUsbysxLDMpO2lmKG8rPTMsZylpZihnPT09MSlBPU5yLGE9WXIscz05LGw9NTtlbHNlIGlmKGc9PT0yKXtjb25zdCBjPVYoZSxvLDMxKSsyNTcsST1WKGUsbysxMCwxNSkrNCx5PWMrVihlLG8rNSwzMSkrMTtvKz0xNDtjb25zdCBCPW5ldyBVaW50OEFycmF5KHkpLFE9bmV3IFVpbnQ4QXJyYXkoMTkpO2ZvcihsZXQgRj0wO0Y8STsrK0YpUVtGcltGXV09VihlLG8rRiozLDcpO28rPUkqMztjb25zdCBiPW5uKFEpLEM9KDE8PGIpLTEsTD1FZShRLGIpO2ZvcihsZXQgRj0wO0Y8eTspe2NvbnN0IFk9TFtWKGUsbyxDKV07bys9WSYxNTtjb25zdCBOPVk+PjQ7aWYoTjwxNilCW0YrK109TjtlbHNle2xldCBQPTAsUz0wO2ZvcihOPT09MTY/KFM9MytWKGUsbywzKSxvKz0yLFA9QltGLTFdKTpOPT09MTc/KFM9MytWKGUsbyw3KSxvKz0zKTpOPT09MTgmJihTPTExK1YoZSxvLDEyNyksbys9Nyk7Uy0tOylCW0YrK109UH19Y29uc3QgVD1CLnN1YmFycmF5KDAsYykseD1CLnN1YmFycmF5KGMpO3M9bm4oVCksbD1ubih4KSxBPUVlKFQscyksYT1FZSh4LGwpfWVsc2UgdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGJsb2NrIHR5cGUiKTtlbHNle2NvbnN0IGM9RHIobykrNCxJPWVbYy00XXxlW2MtM108PDgseT1jK0k7aWYoeT5lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoInVuZXhwZWN0ZWQgRU9GIik7bi5zZXQoZS5zdWJhcnJheShjLHkpLHIpLHIrPUksbz15Kjg7Y29udGludWV9aWYobz51KXRocm93IG5ldyBFcnJvcigidW5leHBlY3RlZCBFT0YiKX1jb25zdCB3PSgxPDxzKS0xLGg9KDE8PGwpLTE7bGV0IEU9bztmb3IoOztFPW8pe2NvbnN0IGc9QVt0bihlLG8pJnddLGM9Zz4+NDtpZihvKz1nJjE1LG8+dSl0aHJvdyBuZXcgRXJyb3IoInVuZXhwZWN0ZWQgRU9GIik7aWYoIWcpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGxlbmd0aC9saXRlcmFsIik7aWYoYzwyNTYpbltyKytdPWM7ZWxzZSBpZihjPT09MjU2KXtFPW8sQT12b2lkIDA7YnJlYWt9ZWxzZXtsZXQgST1jLTI1NDtpZihjPjI2NCl7Y29uc3QgQz1jLTI1NyxMPVpuW0NdO0k9VihlLG8sKDE8PEwpLTEpK0puW0NdLG8rPUx9aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGRpc3RhbmNlIG1hcCIpO2NvbnN0IHk9YVt0bihlLG8pJmhdLEI9eT4+NDtpZigheSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgZGlzdGFuY2UiKTtvKz15JjE1O2xldCBRPVJyW0JdO2lmKEI+Myl7Y29uc3QgQz16bltCXTtRKz10bihlLG8pJigxPDxDKS0xLG8rPUN9aWYobz51KXRocm93IG5ldyBFcnJvcigidW5leHBlY3RlZCBFT0YiKTtjb25zdCBiPXIrSTtpZihyPFEpdGhyb3cgbmV3IEVycm9yKCJ1bmV4cGVjdGVkIGRpY3Rpb25hcnkgY2FzZSIpO2Zvcig7cjxiO3IrKyluW3JdPW5bci1RXX19bz1FLEEmJihmPTEpfXdoaWxlKCFmKTtpZihyPG4ubGVuZ3RoKXtjb25zdCB3PU1hdGguY2VpbChvLzgpKzg7cm4oZSxuLHcscil9fWNvbnN0IFRyPWAKSDRzSUFBQUFBQUFBQXp5OTZYSWN4N1V1K3R1STREdVUybWVMeERiUkFFbE5KZ1lIUjBuZUdyZ0Z5cjdiUGc1RmRsVjJkd0hWVmEzS0tvQk4KU1JIZ2dJSGdBRktjQmM0ekpRSWdPR0lnZ1lqREY2RCtrZjhVNTZLNkd4SDNJZTczcllSc0dSTFFuWldWd3hxK3RYS3RsWWxmMFY0MEdBWisKVVFlNm1CU1UyKzlHbnZaVW9rdzVHb3pDb0diOFJMdCtVb3VxT3V4TFRSTDQvYm9ZYXowWXhmMkozcGZVdElxakFSMFhJcThXNEpkaUZGY0sKVWRSZkRWUXQ4QWQwNEllNnJJTnFPYXBvNDN1NkVzVjgxZ3Vpc0pTVWRXWEExNE5GUC9TcXFvVDMxa3d4RFlLeVZsNmk0NHBXYmxuRldoWGoKcUpMRXFhNm91RjhWQXAxV283RHNsOG9ZcHc1VTZJVjYwT2dCSFlZWWo2dU1Ma1JKdVJxWkpEWGFxeWhQbDlHbXJQSGVza3BDVmRHZitXRi8KSVloS3h0K3ZDMmlQOGFGZFAvcjNRendUcjI5MS9sU09BaytIbmhuMGsvSVg2Qi9EOEFiUmgvRkxZWUsyWlRXZ1MrakxhQjI2S2dpcUtpa1AKYXZ3M1NFMUZoMm5SRHlwVkZTZDlrUjhtWmQ4RXZrbEtVWVN4YW04UTh4elVCdDhWVEFWelY0R0pNSndvOXQweTNtOENaWkpFSzB5M1VpdmkKbVg0L0xBMzZRYUR4K2FDS3ZRS2VMZnF4M29NMTZ3K2pRWVVPODlXd1ZNSDZKNWhzRUNtdmhMVTNPaWlHVWFJcnFWc3VhcTVGV0lzanQ5OTMKb3pBS1hSMWduOHJZRTgvWDNpZlluemdOZEJucnB2clVQajhzUm02UUZnSTFhQUp0VEZrRlJjTTlSRi83bzFCdjZ1ajREL3pIdU5pZ3ZhQ2oKV0xtNkVLVFkvelFlMUxxL2lML0xJSm9TMWdtYmlQM0cyTXM2eEpyMDkrdHFVbFVHbmZyVk9Jb3FuK3o5L0RQUVM3aTNWZ1U5b2xNODA2OTEKdFJpb0V1aW5INnZqRlRHZkJPT05zZWNKYUxZdnJWUVRySmFIL2pBR2ZBOEtCaTFpOUxWK3JCWFdJU2xpWDFTYVJLQ05PTytDaGxUUUQ3cXUKRG1CTlBQUmZBYTFqUjVNa2pjTkNoQi9RQ1RnaGlDT2owempZWUxEd2NSUm9QQXBTVEF5V0czdXJzWStCbCsrcmxzQWFsUUVWMS9CTUFsb08KRFFqR2k2UHEzMERUYmxTdGJjcDM1THJhVlk5SnNCQUJkc1BIeTdBK1ZmQlp2dVFYc1FhSmE4eGZTckdxNFEzaHU2V2tNOForWUl4SmdIa2EKNWFNNzVlRWREdll2Nkl2S0lXaWt2eHJGbUp0SjFuKzlyYzBEWFhhMUYzcXFVUlFYT0crczRkZjUzdndnNktZQ2Z0MWMzZGY1S2ZZeVZtSC8KSVBvZVZDRm9LQ0F4ZWYvcytGZG5WYVhCSU5iYnBMSCtYeHZXLzNGUStVa0Zld1BhTTZWSW14SjRBbHRUcW1Jczc3UzFPUUhvSnczOUJQdkcKZnZwQmg1VkJ5STk5bFNCbnlOT1k0dWFPNmo0c0hjWStpUGxHUVRFSzBhY2ZHRlhFdCtoWlZZMExPUkNqNzJJUURSWlVvV2FxS2pUZ2kvY3cKM2cvd0E5WXhvUDBFZkJjTSt2MCtaRUppRWhCTzdHUDZwZllBUERpb1ZYK0N2ZGdObVFPK3g1cUVCbnZZaisydXhXbG8rdEtnQmtuV3Z3bjkKbFNJVmxDQUNETjZudlpMMnZlNmMwWWw1SDkvbCs4eGYzc09ZL2FLendVUVI5aEZ5QW5TWXBBVzlYNU1hUW94RGU2RHBCTndjWWV0QVhuRmwKMDBmVmZTNWtRQm5yWHNBNDlvT1dCeUlzc2pLMUdEd0xtZ3lxR0tPUDlYSkIvMXZ3cmo3c2ZhSktwdUFuQnJRVmdQbVNmZ2l3RUxUYmhRVXUKWWRIKzJ2dmxGMTZhMUw2Z2ZGR0Jya1VwMWozQkV2bGhuOXEvMzZWc3FtbFQ5RTE1Y0hBd0gvc0dmUlpNTmRZRG16QVAvSzAzWTJMYndZOGUKeHJHbG8yTmpBWHNPS3NEWTRoQ3l4Q3RFKy9KRjVjY0J4b1AxWXQ5eFg0bzVhN2ZzRnplOFV3V2Q2UUUvK0Y4YmNxQ0p1QkxnV1EvMFVJVjgKM3RqUjBjRlplckVhTEtkZ2ltcVVGTlBRSzRDUHlyRXVRcklFL2JwbUV2UlJCcjJEOXlIWGRiQUp4R2hTUDhHandWZTl2VG1LZk94SjdlTmQKZTNOWU02MTgwQnlINUhzR1M5c1pxb0ZhQ1F5UitGWHp4ei8vK2M4WUIyU2pWd08vbTlaTzU0ZHF1Zm9YeU80QWZCME1Rc0hzTDIvTi9yTjkKWFlzRDRRUjVGZVJiV3JaOWlINnFxU2xEa3lSWW1rNFhOUENmN1YzdFpXaTREN0ZHa0RGSkRCbm12UHV1QTIwU1lEK2hYVUJWR0VURmg0enEKOTZzSjloODZDdm9oMENYUVRCV2I4UjdXZEYzTHVoYVg5QTJaa01kZ3VncHhqd2FEVnJEWHBkU0huQTZ3VVFhdkJwTW9TcVNvMHU1WFN1LysKOGFQTlFRcGRpMzZ4bEowZ3Fsb0o5RlpPS3BRU2dSZW5wZDFmN2RvVlFqNkZXTU8vZ0ZnRFVpSFdmb0E2QUx5RjlYTkEvM0dzZzFvQk9zaUEKVnJ5MFg0ZktLRmRWOVNCb281UUd4YjJidDJ3dGc5WkE5MGtKTWdYQ0g3b3ZqU0d2YXBzdy8vWHJXenRiTzNNOUZRT2g1WU4vL05nemtDOEYKRGM2QkhOKzc2YU90MkhwREJzRDhndyt3aUVYUXcvOGR1bWdLVWMxQWh1VFJSVzdQbDcxN0N4aFBQL2F1dGZPSEg2QzhhbGczYjhQWC85WDYKYmFvODdFMjlEUXEzRGYrRDBLL2ltWFhBSGNuZVRYL2VPdUM3a0g1ZXpkT0ZwQWNUZ3l3TFFzMXhSb043TjMydzFZTnMwd01xMkx2cHc2MEIKMWg5MEMzSlVRUlg4RTBZREN2eGdTanJVenY4ZE9tT2lJbVJUUlNlK3lISFRWZDRDMlpqR1JlQ0FLblJKVnhMM1FPZjZyZCsvc3dILzFSaFgKc3dCNmdueUpPenBhT3l0KzBPKzB0Zlg0Y1JRQzUzZ2VlR3NRKzJRaVA2aW1pV252TSszQUJyVzltemR2L2JSMyt4ZDdOM2RzVlo2cVlLM3cKcnMwOWZSQ0M2emM2NjZGaWs3MmJOMjExTUIvb1dZaDZYMVVnVzdyYXF6MG1Tb1BQUHYxaUYvZ1JlQ1hHR3J5M3RhdThxZWNqckMxRVFOZWYKUWFkN085N2JXZ0hXMnZyZUIvOEFEV2cvZE12L0E4d0Y4dUtZVjlhM3RvS3VZK3hKU1VPbmdyUkM0SjdRMjdybHczOThFeFcvV2YrdjFrN1EKMWthMGJTU1FpVFhpaG1nd0tJQVh0cjcvd1QvK3FnYlVGcnl2NWZzZld2NWp4NWIvMkxybHZYLzA2V0p4MS8rejUxUEkwdktBRDNVSDBqYkEKRitoajlkdVVPaFQ4QVBxQnJrcXdkdmtDNk5BRHZaYUJSU0F2Z0pIQ1pPdVdELzd4eWQ2OWU5bzJkMndxUnREVTZHUFhGenVkZlJBNFc5OS8KN3gvYnY5ejVQeDc2Nkd6NW9VWHY4OUgrL1g5QXZ4blFUckwraDlaT1lKRUVyTjZwZ09aKytLR3IvWi8rdi9LZlFmLzBWLzdQbzBHOEp3SE4KS2M4emtCWUIySEZmWjhzZmZvRElpa0xzWlI2S29hUGovVmFzUmEwUG90NkFxTUN4a0xOUkVXdlI2bXp1NkFDTmc0ZXhHSUIvd0tuZ2liam0KWWwrVEdpaExBMVA0VVppSE1uT2g1MHA0TDNSaS9uMnMwNTV5Zmlma0FhQ2U0S3NRZk4wUFdvR21VU0gwNFQ3UWlRdTZiL0dnYzkzQXI3WkMKK0h5STU3QU9IVHYvdHROOCtLK2VyZ1I4U1FUcy8rbFByWVBZTjRDTXFBcmxFVlVUcVB4QTc5NzIzd1owRXJadC9tQnZRSGtPV3YvNnE4K2MKUWhvQWwwZjluVCtzYS9sazE3YWQ0TGxXVlNoQVhxdHd3NlkvZndSOFZxWlE2R3IzUVZ1UUpTbHhOSENDWDlYZnQ3VzgwOUd4dVRVRTBQL24KcG45MS92TmZuUzJmUlNVSGVpVloxL0tIUDBCZmxxQlRLd1hJcDlidjFyVjBrQ2F3RC8zUjF2OFBjZzFyM2JQT2JHMXZkL0FncENMeGJXbEQKNjNjdGFPcEFiNjdIOUtwZXFxRC9WSkwvNjU2UFc3R3gzNlpSZ3YrMmdNY2hJWDlZQjFKNER6L3Y0K2NEL0h5SW40L3c4K2ZOSGZMUEp2eHMKeHM4Vy9LRGRaclRiakhhYjBXNHoybTFHdXkxb3R3WHR0cURkRnJUYmduWmIwRzRMMm0xaGYvaHNFNzdiaERhYjBMWUR6M1RnMlE1ODE0RTIKSFdqYmdXZlFBUllEUDJpSGY0SFE4UE1SZmo3RXp3ZjRlUjgvNytGbkMzNDI0MmNUZnREdUk3VDdDTzArUXJ1UDBPNGp0UHNJN1Q1Q3U0L1EKN2lPMCt3anRQa1M3RDlIdVE3VDdFTzArUkxzUDBlNUR0UHNRN1Q1RXV3L1I3Z08wK3dEdFBrQzdEOUR1QTdUN0FPMCtRTHNQME80RHRQc0EKN2Q1SHUvZlI3bjIwZXgvdDNrZTc5OUh1ZmJSN0grM2VSN3YzTWVNT3p2cTlUVnYrRExXRXllTi93S3hSNWRWMVdCT0pKdWlxQXNja2tSZVYKZ2N0ZENDejFhallxK0JEUXI2YVVNcSttQm53UGVzTVFjVVdRU3hFdEV2eXVYT3l0NS9kRnNOMGk0TlFRdXBnV0JhUXBPRFlvUmQrbXIrNFQKMVlib0V6b0NVQUNjQXgxVVVIMThIOGs1VXFWVVZWTkF6REFDU3dKN1E0WUZxVTlWQnlPbkZzR2VVQkNPY2RYSCt3dDRaOEFHUWVUNUVmZ2kKNXJqODE4OWZQM3o5RWo5THIxLzhPdlQ2NGE5RHZ4NzY5YUI4OXZUMU1qNWR3bDl6YVBVU3Z6K1J2NVplUDhOM1MvaGs3dGZoMTVmUjlpbisKbWYzMUtIbzQrdnJIWDQvK2VnRGZQc0x2ai9EZnkremo5ZXpycS9qM0luckNVNit2dmI2Rno1Kyt2b1MyQjlIdWluejZBdjAvZkgwZVAyZncKYy9uWFEvaDhGdTk3K3ZvQzN2LzA5ZnpybC9qc0JmNjVnZWNPdlg3MjlzRGI4VGMzMzQ2OEhYNXpGei96YncrOVBZeS94OTdNdnBuQk4zZngKL1pHM28yL0gzaDUrTzR5ZlEvaUV2NCsrdWZmbU1YNC8vT1kybmgyVlBzYmZIc1F6by9qc0YvUjBqNzlKMjNIOGZoaHQrZDlEYjU1SXI4Tm8KUC94MjVNM1ArR3djYlViZVRNa1R3L2ptQ2Q3K0JOamRKTmg0SFFXd3BoT1k1YkNEc1R0QWRiVDZDVGtLeEljeHZ6WFUvclRzQVg5QVE3QXQKZkxmb3czSW1xSXlyTkhPaG9vSHlZRzBCa2NGTWgwaUlQZUEvb3dGcTB5bzlCb2J1QWdOeXBCRUhjMzhRdjlCa2k2MEFCakNrNVE0N3V3cUoKRHV5RDkrbzRobUVjUXZlcVFwUW05QXNBV0NZQnJjRkF6UDRFTmdta0dZeFFvTU80Sk80Rkk3WTVxWWV3MllWWjZxYkdoZEVUMCtnTENqUmoKQ05GZ2d3aVZLWG9sWUxjcjJqc1Z2THZtVTdQU1cyQUF2MFBhb2V3ZXJ3ZmFnSjRCSEFJK2dKSi9GNEN4RS9PQWlSM0ZycTVTUWRPUWhrWXIKK2FFcTRnbm9VajhCbGt3MXZSbjRBcmdHcWxQdlN5SkFWeUprOUl4UDhXeVlBTVFiVTBqOUlCSFRGMHBBQTMybFhnM002Tkc4RGoxRFV4UC8KeGRLVllRclQ1V0xBbWxCclVNZG9ET2hEVjRCSFAwV0lWUnZRUUxtbVhQVDN3YnpHZ01JSTZDK201d1hZRkRnTE9sSUZNUXpzbUJhdCtUYUYKZnNhU1ZIVTVyYWdRV3BxdUMxLzhDOURPMFBaZUFSenB3clJ4S1ZxdzRzRG81UUIyVVNqR3p5QkVqYVpEeDlDYllqeDJEUkVSNndLbUQycysKVGNvd2svQXNYbWV3MkVsNWtPNFpUdG9ENmJuRVlnbVhNNjBrc0Njb1ZPS0V6cFRhRGtpR2ZscHdNWDFMMkZCWXFvR3FhU0tQdU1aMzFGSXgKMDdsTUxoWTJ3ZWJGRGtBdDZhcWFWbWtlRzFXdEJyVlB1YjhGNEtwU1dvVndwSitFMUlSZXNLYUc1cmpCQnNVUVVOaGFDc0ordWxwb3BoRncKQXhxWUZJOVZsVHlMN2tsYkliMHVJWW1HdmlQdDdTV3hjdURtWTNJQVJGc0lmRUJ2VG9TRkxTclFMLzFLTlpXQ0NMbGJCdE1QTkgwVjdaeWcKUjIrVzhRQjNhN0RLQWhwTEt1bExZYjRtWmZvb1lGZWFrSU11MEUzZ1J2UW4wQm5IQ1dwNlJJeGJjL2x2Z0dNNldBd2xhLzhndHhsNFRvZFYKWDd1RTlYNVF4RVExelVweUh2UzhYNEhKcWtnZFBveEF3aDQwQnluVFphZEpQV0MvMUMwWHVNNXhWQU1xTXYwYW13Y1VnL21STE1CZ0RsY0MKWUQwcHk0NFNYZFdpWWhFazRVWlZ6Y1dFaVFVV0IzcmdUbHV2SE1SQ1RIOEk5RWVjeEVSVENyWTRwaHFGMkZBUk1qQXhDSGQ3S1RJK0k5V0IKVnF1MXlIVmhhdXBpc2hXNDNaUkJ4UW5YQUNZbEdZZCtONVBHZ0R0RnZwSUVqSTNtV3FWSjFJbmRTWFNlOWxlRlRBSmpUd1gvUThveGVCbW0KQ25TTEpSN0VwM2d2emQ0UVV0Q25jOEl0ZjhYKzZJcUVoSXpkTXNHUHBxZlAwTTFvdkNndHdKS3FoVzRDYnFJVkhnMWlMM1d4UmphQTlRS3oKbUhZcEtHRUFHd3JlcGJmUzdDQmY5bEp5RVhqWCtzVFRDRHNxQU01emRRY3Q4RjZLelNyNE02RGZCU0NYRWtFa05ReDRDblByQkRYMDlCaTYKNUl5aWN3S2JaelNSSytWNEtJUEdCbFN4aFBnem9ZdlYwTWZHYjJ0a01OamsySHhEWHk4RmQwenVEa3N3b0xmMGNNdEtCTjN0bFJUeWw1dnMKN1NGem9sM29KUkdrRDJDRTcyMmdBN1JBandnOWZ1eWxDQ1BOSjNrSGdYaDhhOFUxL3hxTUpyUjEydHRoZ2ltUEJscXBWazEyVWNyVFd1M2MKUldLbEx6am4wcnFEZEF3VGNlWEN2TWoxa0ltQitOVUFuUml3aFAzOTJwUUFQQklNOTcyZU9LSmpHTi9XMk1GRzBSMkVOSjRiVTNmNEpSalIKZzVEUW5nSUJZMEdNN3FGSFJvZmZmTjM3N2grMy9MbVRXSGZmTnlScUtBSU1MZXdENWZlcGZYbEZxOEdBWmNwMHZUbjBIUk84UTU2RzBLYWgKR3NqMTBBa1FpdGVMM2tTUUJWWUQ4ajZLZTZsN2lES3hneEFLOUJPYlBsVVY4UkRBN1BaQmMrQ1VXRkhsWUI2YmV4UnNPR0F2TUNPNEtGYTUKdHZiMnY5TUZhdWlITW5RY216MWtZc3d5S1ZQbmhYUk8vTVZnQUFtWWx5UUk4RVVKbDlEOVdzVE9hS2l5d1Z3UDFoK01IYWVVc1ZEMGY2TSsKMzAzSmtBOTF3aTFwZ2ZsY2M3NXJvVWVTSG5ORHR4WkpCYXZ0Z1FhKzVXSW5zZmdNQzFGTXh6OWtCNFlMWVV1L1NFS3ExSDY4bVNhVitMUHAKMHpNN3lOamdia2c0U25TZUV4ZzZsT2dJeFZyVDUxMGh1MUNyVVo3NlJ0emJYa3JSclBjcFU0ekI3WFNQYlB6K2V6RlVxam1NRlp0SHQwUXUKb251aHF4QzM5eFF4cjlqUUorZnBhbEoyN0FrQTJOU2xsT2RwZ3pndk95RmpTaUhkVkdhUW8rSm9PeUZjdW5OMFgwTmxZVWFmWStaT1BwL3YKYWdkMERVc0ZUcHFISUE0OWg1MDhWZ0I1eDNFTjBnTEVyb3ZVRlNYOURjOUI4aFhTQm1DSXdyZllyaXBQVU9TZ29LczlpWHZvL2pFY3ZLTkEKSVJSQU5IVURpTEI5NEJJNkRjbzhwVEZVdUM1OXpZNkJFRGVBYXFHNGhvMnpBWlJLSjdyM0RURUVYWjlHc0R0SnFGOU9Zb1FaeWVjZW5RQ2QKZzFRbm1KdlJHMW83Yzg1MndpTThtdTdyb3p1K0Nwa1kwTW5UMDlycEZ6ZTBVY2g2Q3NBUjhNcm8zWVJXbUQzUFhmWnBzNWVxRWtxQ2s5R1YKbm9LS2N6MTVFN3ZkQ1NVREJGaDN6aVU2TElQV2FwdmZFOUdYcEZVZmRGa2pEcXVDNlRFSmtJYjRxZzFsUng0Q1hmUDRRQWYwRDVwMjE1aDIKbmtCMDhvZ0NBaVV0RmdzK09xVm4zOUQ5MTlFUFRsT3dZOWUxMEtzUFRLTlQzZTE4OTBQblIrSUY1SkhLZDdSL0ZRK2JYTTdYQjFtVmViemwKeE9SbmdsUkR6M0t1cHNwUjFFcG4rVFlpVUo1V0dURGlwaDdZUUdtSkRtYXgwcnRwczVnZldyR0NkSFIyVmlsVjZGSTBQRjh3SGZzKzZPamcKcVVGTy9MZ0ZxbzVFWWNFcVBrUVowVnNBQnV0cXAzTVpNNEp3YXVQbWthVHltRWZMSHlwa0VnZjIvcDkzYi92dnJ2WTRLdW00U0xmK0R2TE0KWmpwTWVjaGo2RW5xQW1NbUNYM3haalBIQWdnVzlyYzYzMy92QlBRTThqUW4rR01IUkpvRGNuSjRidWNOY3NVcDREcjcxTmIvOTZEeFFkVmQKOU56SGdBNDFIbnZBZmlQOHhZSlZFK3FaN1pTZHJjNDczWTVIekVxdkIxMHRGYWlqZmwycndMd01lS0tXcHh2YnFSSTdnNmZER2oySmhnZ24KdDRuTE1VaEFUZzlXcFhmdnRxLzJrclljSHpnMjNPakFscWM3b1lVQU56L2dBd3lJS3hYeUpRUmZRc3Z3QUl6UU9ncXI1Ri95VEV2VUJ0ekMKVXdrNWFqSFVsQTZkYnlHOUx0OHBMeXJvOWR4TTMrdmUxRUdGME1uak9pZS9PVi94ZVlpV285c2JVQVBiczRPWXF3QnhxRGR6cE5qazFqL3gKbCsvcHhBYi9RUk9YeWVLYk5uZmtIS3BZaUw2ZWRTMVVFTjJlRHhCQWpzY1hXSERLenBZL0ZvdEZNQkVnQ3hGZWp2QUJ5aHFQdGRMN3ZFbDQKQVRpckdscUhNK3doYnNVaEhsVzRYTVFjSnkyblE2WU52TmJtMGRCcWVUZElPdWw1TlZ2ZisrZ2ZYVHk3Yll0VE1CcFBuaHdxU0tEMWZqRVYKcXFiYnllVTZvUXlnajdocW0zZ2lBZkd2UXJyUkkwckQ3cWo3UHpidmRpaU5ZSm9YZEpkZktUbjR5ZlZzZElwOWhyODVPYTdmNTN1ajZuYWUKMk9WQ1BSalVkbUpQK3QzOVdyQ3lIeEFyazBuZTd5bXFiM005Kzh0dGJyaXBBN3ZadGluWDJra1UzczNUUXVpM05LaFJsaGc2a3pxeGVsM3YKMEdNUk9EejBnTEpiSjd2djlOR1dJTWM3M0swOE9IZGR5eUJ4Q2M4K1RFcHg0L0dvb3dDbTZVL0lXK0Nqbk1Neld1Qm5ESTFPRVBEM3Q2RFIKTktyNEpvSXRBaG5xYVRuYm9XZkVWRk1hb0s5bUl6cE5YbDFQZkVoY29JQkUwU2NpTUo2bms2RE1GSEtHZnBTWVExUG9yQUtSQ3JoYWdjcUsKMUxmcHF5bDZWWXg1OVRpSVZDMzFWRkh6K0lIZUVBQ2poSFptaEZFbGthR0h4UWdGODR3MlV2UjJCR21KUjJTMWlFZVQxZ0dDRlNFQ0FGMFkKK2xRNVBvVUJ2Wm95SElzQ1FFczljZHJRZW8rQWZIVkl2QWk3eVNQREV1enArTlYxd0NMTzJQWGp2c2lJMjBiRlJGYUFGbWsxS3RPTkttU0EKdDBGbkFKcEhVTy9LaER6R0p6VFRuS29DQjJvZXJmbmlCNElvY1gxVkJMVGs4WkVQdUllRnJVSlNSSVVVMHlTNmpoVklMT0NmaWlnU0tDZmUKajM0TE5PSXdCSkFCWHZUcWNTWGlKS00rL2dsYzgycWh6Q1pjZ3hyZ3Y2c3FhUjh3TXRCUVhFeXBTUENpcUFUN1FQa2w0T0lCcmdzZFdBQjgKV0h6dUpaYTNndmVBdHFDdnNYZDBXWVZoQkFFR0FPVml6T0FldW1BTkZzZW5VNm9NVFJhYkNLQVhLNFZWQlRPK2VoeENjdTJQNkZnUTM1UVoKNEpoVk5hcGhwQ0ZCRmhpT24wVXUyRG1XNHlQWVNCZ0xoWWpMeCtqV012U1NoQ1NhOE5WMTJueSsyRUN3blVCR3JneFgwWllNU0J1WU8rd0EKREFPckFYU3RDWk4xRlpvWWFwSGQ0R25HUXRBdEJuUkxMeHBvcUJUUTg4WlhZeUVxQ2lLWjFyRmR3TkFIVlg5cjMyRVVqU0EzS3RPcE4rQ3IKUGdoZklPaFg5Nmx6U1BJeGJHTFFUWjhDZVlPZVlYNnBnQnBaQjVwbU1OQ2NrajBFV0kxTWtQSzRIcHVNcmdLdUc1NmdoUjNUVHlpRXhEQUcKbHdlZEEzZzVSZ1VpOGFJQllDWkR0NTlSbFVMRVExdVA3WHhGYkN1OG9Fd0txeDBBdVErckM5bFBJdzdUODEyRnhYZzExUmZ4VmRneXBZV24KS0FyQUJuNXNVaDF3QkpFcGlzZUdIa1p1dDB5UTZ3akxuZjRvN3FxQ1JSWVJsaW5TYmtMZEVHaWY0UmVGS0tBTEU2c0dJZ1Q0NG9CZUhaQjkKY3hrSGd5ZGdhNEFZMkNNSGRKMDdqUTU0TGtYWEp5WElmVklubVoxOGdwbFFLU2tDWnZ6bWlyMlZnT0hSRlNVTGFLMkdkY01tQlJXZ3k0Z0EKVXB5cE5DdUFVSHhNaTlPSDdBSmxZeElRK0pRbHdQTlZjY2FLd2FaRXFCbWZ4N2pjTXRvYkFPWVFQUGhZMDMzVFIrU29GVjJ5NWwzYXFwMWUKUkMyTmpxSHdDWHBTNjFRRERSazY1MnFHd3hkMVVlQ2hUQnhyZ2VFdVQ2L1RLZzFma0I0TVc4cWV0QUsxaGFkQ21McVVQSVExb0VCWUJ0VzAKQUgySnB4Z3ZBenhsU09jVnNHQ3NHQ1JFNTVnQm44WXVKaFRMSVdzc0hpZFlGVnFnaEdZb2psc1c5d1QyaDA3SFdKY3dLajlobkF2WUZwWVMKeHduZWpZSzBFdExTaWlFV2FYR0x3N0JIKy9SY0FFaVhrbklSOGcxbVowd1hPQllPdUE1VURGbExMc1lFdEhqSDBrb0ZLMERMUE9icWFxOXEKblUzN1lKNTVWY2c2dHlZcUlLR1ZUeFlGaExmU0JIb1hrZ1RXSExCRXlSUGpVaHhkUnB5RVFGSStkbnBRelBXcUJqRnFNbDZwQmdtWkV1dlMKa1ZBRWM4ZU1NMElQcmxCU1ZDd0NCb01OTVVBNkVLRmkwMEtGYmdqNkFzWEphdElxbzMrQTBRS1lTM1FUZWVMZ0JUd3I4NlE2bGY3TG9OUkIKRUExbUtqNWI4MldoVDd1SnVBV045ZmFDckNGYjNISXNjVnNWakJBRVQ1OWRXV2dzcExMRk9ERkhpSHVRR3VjS2Z2czJWWFRrSlpRNWRMQVoKT2lDNWc1eUZ4TFR3b0FyamgxbEpLeHRyRmZGd0dSWVUrc0hTZjBhWmcra2tkRXBoYlNtMkswVHdHckpaTTJwSWUwbFVLZ1ZhM05DZ2E1NGUKazI1OTE0VWlCUlVSVjFWcTFHU0RLa2xnamNqaGRWSVVKM2Rac0NXam0zSTlqR25USHVpOW1BYkN5VFd4VmNWanduMEhMWUMyWEF5SDBxbGsKL1pCRzczTVpoa0lQUUluN2l2R1VaVEdLVVBPSnVNU3RoOXRndnpBMktBZm9KOFo1UlBFQUtWTi9KU3RHTmdlQmtTa0pMcWlIWGN6RU1Ib0EKZ0ZzMkkrY1EvTkVwbzVPU2VIaklVeVFnMENUUVdaRWdvUVlSR2xSRTBOQmI3TUpNSnJmNm9jVGJLVkxMRG5IZVJiTEw0cytGVlBHOFFPL2kKQ1NURjRTQWRtQ1hsMWlyQzQ5anN0RlJtYkpjV3NLM3BneS81SWNldG9KbDh2Z3NLd1NVV2h3Q1Jzd0pQL0dTRTlveDlVUngvSk9lcFFqODEKTVJFWkRnRTE1OUxlaEJ3QXY1YzlUVWtkQ3kyQlk0a0JVb2lMcE1KWXdab3Zua25oTlMydWUvT0Z5Qll2cFh5dzNrUTVPekNNK3RJZUlZVjEKTE1FVThnTndMbGF2Ukc4N3ozY0x3anQwNVRFYUM2eGpQaGJaUlo4c0xTTjZWbDFacTRKNFdZRmlZMVVGSFdEM3JDOE13b04wRGtpWDFEQUwKMGw0VmxtUFNaZ2RScGJ5dE1PU25SSThqRkh3S2NReFp6L2dXZ0IvMDNldkdmalhCR09pY0o1SFNxb0hJODN4eUtoMWhKSHZPc1UyOENGaEgKckFPb0VBSkJDUTN3SkVWN2RLNW9iNGVzSVJhWURyUXluUlVxWUh3aDR3bHpEdXdieUEydUNXejM3K2kxd1FDTC9yNUlqZ3MrRVRyUE16eG0KZ3d2aFFRb2d2Z0JjdytRREJkUlYva29rWVNJejRqa0crVHlCRFBLRS9yY0xwOFA2U0pPYXVJWXAzMHBSMGlzU1RGSFNBNmtKUlVNcWNiUlcKSTRoRm5IQUhZODF2UGhjSkwxb0l0RTMzZksvb0FoSHpoaVBRM3J0aHdWUTc2ZFEzV2d4eGg2bzY5THJvdG5WNFB1N0xlVTEzRHN3S2JDSFIKZmNCS0F4STlRV3RvcTdPM3JCMlBIcldTbkV1WjdicysvdlFMNTNPd0JQVXlIZld1MkFObGtjeEtUSXBQNVMwVVBJblpWY0ZtNjE2UnBlQjMKY0lPSHY5M0VIZ3VBZDhEcHZjSVgrWmFXTDBOeDZtaVBKa3V1Wnc5d3VGOFZaNVlwUzJRQ2RnMDlmQ2xTSXBhMUZ5STJvZmdUZTBYYWVKcE8KRzdwdmc1cXpRZWRMK1lJdU0rNGlJcDFnSWlBY25nTm9pUUxFRDArZHhMV2JHTUpDbVpWdjdQR1R0NFVHL3ZlRWRKNml0OVd0OFFRSVNrNWkKWDJIUTcyZVVIcVc5MEU5UFFkY2cvZHJFLzAvcFZFMUVHM3JFTTZIZUhVVjBDQ2hHZjRwRHBPVWJpdXljZUdCRkRodVRjOXBodytYRkdvc2sKTWxVb0lmNXlINlBST0Q1c01LU1pQeUNjR3hZbHltcW5kY2ZTSHMycGFwWGFETXlUNjVIRFJjTVkxMzdEQ0dBeHdWeDZiS0Z0TUdlTVZtK0QKVWdkSzVMSVJCR00vOTRpRzdTckVHTXNnbFVzc3AzVGlsOUhlOTkvVExjVDU1M3A4cThYQVk2cEd6cy8xTU5ZSThrU0hzRDhoMTFMS0VJQzQKVU56OFpoTTlnOStMK3VFYTRpTTVUY25SYzRPM2s0ZzZPUk1sdWt3Rm0rU01nWitBeUdNZWxCU3hITWxXY1R3NGN1S1YzeVphUUE2V2pMSEgKZlpRYjNpZld1VTkvWVB6MTN0MXRIK1hrNk5IWkxsb2c3L3dkNklZSGhYNGsvbUxndDVDeFFUSFFadEwzMzZsRXFwQSt4ZGNDQkFVQm53QUYKZ1E5ZzJaUzQ0MlJOZWttYzczd1RLeXkwcWdsNmNmRktlZzF6UFdXUkdGd01IdWFSditVSXljaDVhcWNzZ3lmTzF5NVlDc0xkM01PMk5rYTIKUWtMNVNRMlRZYlFJbmxlcGVNT2NUWEthRVJVUytxZUowNHdTVjlkRzU5UFFwYU5FZXpYaElBYzZCUHBGRG83emxPamFreE9oMmpjazF2eHUKUVhSMFhHdnZjOUdZZ2RHT1g5d2ptQTE3M2E5cnJaMFNTeXVtZFVtd21Sd3ZtNTJDZ1g5Z2tPNTNZQjgwMzQ0K3U5cUxRdUZ5c3BrdkNoNlcKTXdyVEpaNWVIdHc0SFZWOFZsRWdPZ3hMVE9BWVpnQnNOOEVubnB6SEdVYk4rT0g3NG95aVV3aWNSVHNnekJNUWJWQURLaEViQUt2M2pVeEoKS01FSWJ5bzVLZDVZRk8wbTZFdGkwV2tCWTVnYmhEdmlYc0dCcEYzMjdOVnlQUzMvU1dHM3Q4eHRodWJCVFBzSWFXcU1aZTlxNTFGdnNRWWMKaXk1ODJETnhUWTV3dTNlSUZCVkhuS1BraE9VYmdYRThobFVlNWRJQWRMR0x0Wlh6bHBaZXNRNmNuWFFHdXdRbXNaejhHL0ZvZTl2b3ZuWVkKd1J2VXZIK2ZMK2Q2bUFQQWNWTGd5V202b2RtY0dvbEhvSlB5bi8vcWxEaUVmQ21GOFJNREh6RFNsU1BjeXROWjdYMUpjT0h3V0NQblFNcWwKUEpIQkpzTkU0R0dZbkRWamxRQlRpc0F1MEdnN3JDVUdneGxTVkk2RWUwWDd0TFQ4SFZJNVVTQ2JXS0lEdHVKQlJsZkhSQ2VKckY2dTFmbVQKazVNZDd5bWs1QWc1eHpXZmk0Nm14aUdTckFvRXBFem1NVld1WjBEQ0RzUUdqdVVzRXhvS1lJV1dZRUxYV2lMWUhwc0h6UlNxZ1o1K2hqOGIKeW8xY2p4eE5tMjQ1SDVZRFlhY3N2WFZZaG05cCtUUjBIQW1UMkFNN3RkOXZrMFhFT3lBSHQ0dkdsN05CcDAxb2FiUElIT1pJNUhvNnhPWDYKcFVpNU5oRlBGZElWQ0lOMHkzaEdwMFBZMFpIZ0NDUFdRYXNXNjQvbzI0OFpHNWR6SEdza1NNOXR3dnpRWDd2MlZiZktrU3B6SnZ5UVJqc1EKSXdNNWpKeHJySk9qYjZmbEQrVEJIZ2FIL1FHZmV6MHQ4bTFMUVpVWk54UnprMHFNdEFWUGxtRFJWbVdPSnE3aTN4SXhNN1l5TjFVL045cVkKSGxwNWVib3hmMkQxbHpNcnk5ZnJCMmJ3ZVRiNXNqNTJhbVh4d2NyYzBNcmN6OW53ZzJ4aXJqRjl2WEZ5cERtOWtGMmV6Q1ptVmhadjF5OGQKejhhdjE4OC9XejMvQk0xV0ZoWldGdTVtcHc4MFIzL09ucyt1dkRpd012ZFQvZXJ0eHFXajJmUGJLeTh2TlErY2FUeGVyRCs2WHI5MHBQSHkKVk9PWGkvVWpRL2k5T1hNWTNmSzl5NGM0cEYrdU5jN2NxNDg5WDcxemJ2WDZVejQ0TkZ3ZlI4dVoxZlBUcXpjdU5DYm5zdUhISzNOSG15OWYKMWs5ZWFqeTVzZkp5R1k4MFgySlV6N0pMOXhvTHl5dHppMmpaZkhxNGZ1NWk4KzdJNm8xVDJlU1Y3TmJ4K3VONzJjZ3h2bjN4VXYzTXMrYjUKaVd4a09KdWVyNSs0MXp4K01wczdtRjFhcUQ4Ynd6bzA3aTlnWHRuRXFXenUwTXJpME1yOFdIYjdaVFp4dEhIbWF2M0pZamE1MURneXltOW4KejJaM0R0YXZYS29mT1ZySHMrY2VycDVmckY4YXdpLzFjL1BaaTRuczJQbVZoUWYxaVpNclM1TWM5c0tKK3VTVDdOWlB6ZVdMV0RRc1NHUHgKYXVQcTdkVURwK3R6Yy9XeGlXeCtPVHMxbmcwL1cxazhoLzZiMSs5bDAwZXk0WHVOQjdJZEwzN0tUbDFvTGs4MnJ4OXJISnpQUmhjYlI4YnEKbHc4MXpqek5wazZ1ekoxcm5EM1duRjVxVGwvUGhvODNuOHpYejE1c0hueVVqVi9MaG05ejJPUDMwQzEyTmpzN2dwM0tqditVVGQ5b25IaUkKUlZ1Wkc2OC9mWTY1ckx3OG16MS8xRmljYU9EWmUwUE5tVHVOeFpIR3JhWHMyRUxqNG1MMjhtejkwZ1BzM2VxbG9lYWRBeXVMeit2WFh0VFAKek5TUEhRRFpyRjRjWGoyOVZEOXhHNzluMDgreXhRVU1wZzRDbURpNmVtRzRPYk5ZZjN3Mld6cTY4dko0NCtVMFhsRi9lbUoxNkVqOTZIMnMKUnYzYTgremw2ZXpJOFd4c3BERzdXRC94SSthWVRWNWJtUU5kM2FwZk9JMVZ6VTZlV0wzNmVHVWVNejNlUFBSeWRRakxPSXBtb0xURzNWTWcKRWxBbVBzZExzMXVqMmNreEVFOTI2eTVHZ3ZGajZSclh6alR1UDF1Wk80MzJXTkxWUS9kV3I4ODNKcWZ4OXRYUlk4M2xDL1VMTTltTG9lenUKMGZxaDRXemtLVmExZWZnVWFKSjBkZnBBNDhpeGJHNDZHNytQVDdKajUwaGRDeWZaLzlRZC9IOWwvbHAyNldGMmVhaitkS0o1ZDZ3K2ZoWU4KUVBtTmUwZXhVUFhaZy9XaEU2QWk4RXMyZERFYnY0cHhna3J4RlFhQVdhTnhjM29tdTNvQ1JBakt3VUp4VDEvTzFvOU9OZzljeUc0K3JGODQKc2JLNHlOMDVjRHRiZUY0Lys3QitmTHF4ZElMY092dXkrZkxPeXVMUnh1THhsWmNqbUFWWDdPa0IwQ3BZRWx3R2J1VmNaaTdYTHl3MWJpMlEKa0JZbXMrTm5zUkZnVzFBVTFyeCs1U1RIUDdsVVB6OE1Vc1RJcytIbm1CYzZBWlZtWStmQk5kakhiTzRjS0MyYkdXbGNPd0MySXQyZXVKdU4KUGVPenh4YXlxd3NnRDZ3dFJvWDJJS3JWMGVPY0k2aDM0VmgyN2xMOXdRMVFMNmdSWFdHUnlRVUxrODJoUTgyWnM2QjJrdUxWK2ViMEZBWk0KZ2p5em5DMWNxbzlodXhjYUoyYXlHNGRXNzF5c3o4MWtKNDl4R2UvTmdoTHcxT29RUk0xUU52MFQ5MjdpRkRmOTlJSDZ0ZEZzZEVSZWQ2SjUKOTJZMjhoZ2p4TUtLVER1Sy9yT0o4ZWFUbTFqUyt0ZzVTQmd3QW1UT3l1Sk5jRnpqN2d3V0pMc05ibDNBT25PbVo0YXlNOVBaS0lieHNIRm4KRVJJbVd6Z0RtWU5sUVh0UUk0YlVlSEd1dVFUQmNoWGNCN25YbkxsQktzWFdYd0wvUHFad3VISTRXeG9ENzlkL25LcWZXV29zSG00c2ptS08KamFsempja240QnFRUkRZK1diOThHM1JWdjNodzlkeHBDcyt4aDQxRFU2dm43NkdUMVRQVG9GNnM4K3JsSzluY1hQUG9iSE5tcW5GeEtWdTQKazgwZHExK2FKRDNjZmx5Zk9kTmNPdFRnR0VhYWR3OXpaY2lKMHlUNDgvZnFoMEdmQnhxUGxyS1g5K3ZuSWNZcG5WWi91VUJwY3crQ2EzNzEKOGczczQrcm9xZXpXWWNoOGlKZlZpeWRCaXBCNHE2ZWZnZDNJS1pqVTJNakt3aStOSS9mSkdvc1R6Wk8zNjg4aFlhNXhoTlBQc0xPTnU4ZEIKY2lLSG4yTlNaTHJ4NjlRbXA4YWIwdzhoU2FoOUZvODJuOXhiSFoxb25IbE9Vbnc1bTUwK25yMDRTeFV3ZmhzdE1XYnV4Zkl2cTBOWHN4L3YKWVZXNTlROS9naVRIUkJwbkhqZG5TS1gxYTlleEk4MloyOW1Ka1d6aVVUYnhNN2lndVh3R1lyLzVaR3BsL21GMjhuamo3a01SSmlPZ0tETGcKekJQeUZNVHl3cGxzNnI3SXo5UFVML2VPWmdzVG9KUG0ySVA2cFVQWjZldnNqWnY0TEpzK3RMSjh1VDUrcXprRW1YTm1aWEU4dTNXLzhmUDUKYk9JbVJHdDk2RUJqL0JuL2ZXUStHL3VsT1gwTHI4dVdoMWV2TDBMbVF5TmtEeWY0MHJGVDJSQ3BsTi8rL0NQMGIzWnN1SDcwd2VyQm01QVAKZUM4bEllVG55RERGMFVsTWJaNmNEdjY5TzRLWnJsNjhBY2FrM2x3ZXhWQWJaMmFoVTBpb2tKeWpDN0xPeC9GVmZlb21wRG9tV0w5d3RYNTIKZUdYaEtPaUgrdmZhS09aSStUOSt2YmwwR3B5SU40TDhzT09ONjBQUUZ4UmxDeU5rbWNXRnhoVG8rVFMwR3hYUXlVT1F0eVFxS0pleEg3T1oKZWJ5M2VRVDhQa09OUEhLTS9BdFpjZWxxNDZmRGZQYVhvNDJwSTQyRnV4RG0yUldJcG9uVm40OWwwMWZJNDJQUE1IME1GVkFCNDJsTUxRbS8KSDgxT1hNM0dKdXZucjFGTlFBTUNFZ3dkSmE0QWQ0K04xbytOWnNmUGt3dk9UNjFPam1TVE4wUW5Dbk5CclU5ZXEwL2RhZ3pmQlpYV244OW0KbHg1amppUTU2TlBuVjRUT3I0TElNUjdva2VZeTV2VUNDb0xNVG5sNEdwd3Jlb1M2aG1wbDVqQlVXL1B1a1d6cFBEbmwrQW1xczRXcGJQb1kKaUtkKytDcS9tajdTdkRtTUJ1RFExWVBUMUJFUWd3dDNWbTllSlFxNitMSngrRm56NVFPaWxQSGI3RzM2SVpFTVpQdDF2UGNZR0orNzl2QVUKeGNocFNMQkx6ZHZMNEVSczR1cndqOW5DZVR3T2ZiZXllS0grWUFrU0FPcWVVZ3U3UEgyTUFwYkk1QncwSFRUcDZvMlJiT1lGVVJibWUyd1IKRkFLNXdmOHZUbVREYzF6VnlXdlovT05zQWx4d0dGeVozYmdDUHExZlBnbDBSTEs4Y1dWbC9pamUxVHhBVFZvL080WWRKMjNQUHdFd2c3SWoKeFlJZ3diWXpSNEEzb0xaV2xxZnJaK2F6aVlNcmN5ZnFSMDVueHgrQ1F5R05LZVZ1UEd6ZVBVaHdNbldCWU96UlV1UDJsZWFKNTdKUTl6SFoKeHVMZHh1TFV5c3Ryd0NHVS85Q0o5NjRES1VHVUVXOUFCdDY2dWpvNTNMeDRvbjRhNnV6UzZzMFR3QmpreDZmUG9lVkpueTlQQTlVMHJrNFIKc2w2K2pwV3ZQMXBzbkR2ZlhENUpoTE53RjdPQXVvZkV3N0kweDRCZ3gwQ1p4SitUVjRFUXlGWm5KMWFCb0VqYmgvRUtvc2VIaHlpMEg0OFMKTVFMQmp0OXJQcmtLQlpHTmdFL1IxVExBSjZpM2Z1NGw0YzNFK2ViMFBTd09lUllJZWVMNDZwMHhvcXdYQ3hTL1EzZWJ4dzVsWUhrZzVLTVgKVjE2Y1dqMy9DT3NKSXFTV3VYUzhlWGVJZ24zaUlCNEJzMEJJa2dleHY4dVhtelBBVVVzcjgzZkE0TnlJcDBlaEdSdDNpZHpBNEZ3Y0tMTHAKbjVvSHJ6ZHVVKy9VejAwQmlRRmRVQWRoaGNldmdIZXdtOEN1cTZPam5OZkoyMUJlUkNQWXU4bHBzdHZZTERSdi9kUmhvb3RMUjZoL2I0MDIKYjc0a3FvRWd2YlNBcFlQV3k2Yk9nN3l4MFpDZkZQSWpZTmhUUkUyWGI1QWpnQjRwRDY5QXNMQzNoMDlBWUtCZTRhWnhZSmptd3h2NGYvM2kKTkxpSlVtVU9aRE8rOHVJYXBjSFlML1dwWS9YSlIvV2p0MFdQVEJJMkR4OG5CMDM4VEkxNS9oa1Y4ZVBSNXIzeDV0SVMrQXVjd2gyY3ZrRVkKT1hRQXZRRjQ0MTB3R1dpVlBIa0M2ZDE0OWdpNGxNZ2ZHbXIwWjdBUG1CM3ZncFlCMUFHNXJsNit6LzFhb0lhbEhBYmR2b0FDdWduOW5vMWQKVzcxNGk0cy9OdGNjUDRpRkFtN0JqdFFmWEsrZm5ZUEt6aDZlb2lZZCt4RTREWnF4ZmtSR0JYNDhlWUlJY1BpZXZQY3BaTXZLeThkUU9vMnAKTTFBTlJCckxsMWQvdWdTaGh4ZlZidzZCeHJBWDJEdm9Ba3l6L3VoSGJqUms5ZHhjNDh4UHpkSEhITS9KRVdKQ0lEM29Ta0NhVzRERXovRFMKNXBYajJmeGM0ODRFTVQ5UTFzc2JWR1NqSThDNmxDZUFyTEJ4eGg3V2h5N1hENEVJVDFDUEhKOEFGMEFUWVdyRXo3ZGZnanRvd2h3N0FsRkoKVW9RRW00ZTVkSWtFOXVJWDBBeTJtOGJMRVVpUHd5QkZiSGY5OGpKb0ZTQU5JZ3VNUm5QcHdtbk1qcEJ2SEp3eVNSRU5tK0w0S0JhY2FucmgKRHZmcnlIM3kxTmtuQUtJWTN1clFOVXBPMHRqNTFhdjNJVSthVCtiWUR5YUlyWnljV3oxL2lkSVkydUhsTERVZHJDckljK0NaNlhtdU1KWnIKWEt5a3k5Y2hEMmtxQWoxT2MydEE4QUp5bm1XencyQWNTTTdtOGhVd0tSUlFkaHgyNGhJZXBHbncvRzUyK3paRUJLMFlhRDBZc0pkdlc1TVcKTkF6YUk4MUFtVUxwUU5xUFgrSGlnNm52akVHallZUEFYNnRuTG1Lak9ZV1RZOEI3RU9uWjBBc1FHQ2M3ZWFweCtTYjBNa1FUcmJDRm42R2UKVmk5UW5WR2lIbG11SHgyR21GMDl1eXdjdDBBVUFZc0pXaGkyeWVJVGNCbUVjMzErS1h0K0o1dDRETzVlV1h3SkVvS21BSXZCcW9MMmg2eWoKVVFiYU9ITTFPd1h6NmlhNENmQ1ZOampvNXdXb1lyNTU1QkZJRHZQQ3Z0TlVCRGRCWXNEQVB3ejZPVTVSUDN5WDJ3ZE5Dc0c0ZkpKa0E2RzAKZkw3NStDWXgyek1BOHRIczBsVkM1YWNYNjdOWFlkbFJBWjI0UitnTG93L2p2enhGZlhya0xxMHprT1hRTlVnYmdoYTBtVjhXVzNLaFBqSFIKWEg2WVRWeUFsVVNXWDd4S2ZqOGl2SER4Zm5ObWlSRHJHQ1UyY1NNc09MejB4Q0oxMEpIanNNcHBIY3cvQVJYVkx4L0UyRUFESzNNdlFiMVUKM3hlaDNVYnFsMzdtSENGdmFhVEF6cjBKQ1VNc2RHUXN1M3krdWZBTGRnSHp6UlpHTUd6Z2RoS2U4QXZ0OFV0WG03UHkrU0hZQXBjSWR3OU8KTjZabkFTMW9wODhlaEJMTUpzNUJsbElid2xDZG5NUEtnN1dKaXNkR1ZuKzhDcnNHZnphdVR4TlhRMVl2SGFWbGRIa0lWa1A5Q2l5Rmk4MFoKSUtKcG9xRHB5ODBubHlGUkNWcHVuc0RjNnlmRVdvZUZOZk5qTm4wTlBBS3hRN2gxLzJ6emwzT05jMHY0Q29ZSkpRTkdBc0g3eTBWcTBzUEwKalY5dTEyY21SS1JNWmJjc1I0L2dFMnFmVy9mclQyNkRyWWdrSng0MkR0d0VSUUdqWXNyMG44ejlESDJVVFYrZ093SW1BNUQvNUJ6VjlOaUYKeHRuYmhMNTRhZ2xtM1JpTm82VmxBdW5KS1ZBZzdkQ3g1V3oyYVAzYUJNVVJqRVNzTnNobTlFbmo1d09rcUFPbkJZZytFSGZLYVRCRi9mcE4KVXV6NFl3aVRiT0pPZHVzYytYZjRFUEE4VFFBQ2hndkFiTm5rcEdqbjY4MmZnZEpQclA1MHNuSDNBTmFLeTNYM01GUm4vZGxZODhsOE5qd0wKTHN1V0x3QTQwVWtGSTNUdUR2Zjk1SEZNdG5IeEJYMGpMNFpnU1ZHTlVyT2ZGMDFCU29QRWdFMUJ5MUVzT1B5TzNtQ3RpSWw2RlRxYWdKOW8Ka3o0b29oUWdnY3RYb2FxdzErQUN5ckZoK2lpd09GUkdMeTQwN2c1aEdRSDhzQ1lRb2FzSHh1dGpqMGhGRXpmcDIxbTRsVDJjSmVwWXZnenoKWEN3SU1QSkJ2SnF5aFppS0xySnNkcFlrQjNWNStDcTR0VDQ5VG9xNmZxVis4bEwyOEdnMkMyVjZnZ2JhMlBQbWt4dTBsVzQrWEwwSzJFWjMKRUQ0aG5MdjhFK1hHL0NPWVJaZ2RSUnd3MWVRNExlaUxwL0RKS3ZqOTJEQ2t1dmpRbnRFU2ZEcEpDQWRENE9pa0NKeGpHQXhsMm9XWnhxVVgKamN2WUMwQ1VKOWs5S0loSklrbXN6L0ZmNkRwNGNhRis2QnJJTXJzNVNtRTRQTnM4TWtNbjJQQXdYVFFQN21ESFZ5OENKei9EWEloZWdFQW0KWm1DVDRuWFFrdlE4d0hLQmRVa2JaSWtlZ3hzdjBNL0tpL01BdmZYekUvU0R3VnJFcG1EanNORlQ2SEFHbExNNmRKQUM5c1JWN0RWQUY4VWcKT2prM0Nsb0N0RzRzTGtQS05lNFJCVFVXeDdCaU5EcU8zSWNkUngvTHlVdU5vd0NCazlqeGxibmJGSG9QNTVyTGw3S1JpNXp5cFNPd1pCdS8KWUoyUHdINXB6bDRIbVdHaE9QTGJMeHVMbC9GaGR2d0FEZHZsUTgzbFNVd0toZ0QwRVoxT0x5NWs0OHRzaWNFL3VObDhPcEhOdzBJNVEyY20KY0FLWTYrUXAwUTRQS2FpQnU2YVhnQlVoYy9pV3A0ZUJZTWsxMTU2cy9qVFJ1RHhFNlhUckxwMkJGMmJxTTJkSklSY1hLS3VQblNPWFRSOGoKNDJDenJwNkE4S1Q1QS9FTHBYL2tOT1J0NDh3TitqZnVIQlFQMVQxYWY4dVhHNEJZazljYVQ2NVJQZ0JiQW5zZnZFZGNOTGxFYitUaFNWRTkKNEpHYlVGc0NtV2pqVTROUEg2bWYrTEVPNERkN1pIWDBtRWk1U1podk5HenZMNnplT1Fmd1RJdmozT0hWKzdORTEzTkgwWWJyTUFMcm52d0MKTTN4bC9zanFoY2ZaOEJIc1B2MVJMdzZ1TEV4bkl3QUdSeHNuN2xQSExkM0N2aE5EUGp3RnBRdzZvVDErYjVaYWUvZzV1bTJjV1FSb0lYcDUKVEtNVjZwNVlGRUQ2MEV2UU5oMTMxeDlRUjhPeXVIUzBQamRjdi8xVC9lU1Z4b05UOUJKZk83QzZTRlFHeWlIWnoxNXRIcDNBZGhPZHppMDIKcHErdlhuaFduMzdhdkxlWWpZdzNsaGViTTZjZ2hNRTQyWUdmaUloZXZGaVpQMEdqYjNxR1cvYjhkdVBvVUgzNDZNbzhBT2RjNDhRTW1mb3EKeE5FaTEzejVLZEhJRlRwN2dlSzRrckNVankxak9tN0tNQTRkRHZpTTYvTmkzNU1ReWRnUGZkZVBFbDlYcWxFMWlyOU50WnN5VUlVbm5sNGsKQWJPaEJHd2ExanVJbFFUT2htRlVLY1JhNG1mRHFvNlpoS1VZdnlvaHBjYjFVMDk1Y3M0ZXFUUkVuOUtQOGVRVGlacVBxN0hHZTQwdXZWb0kKSlk3VURFU001WkRBVXNOMGtsQ1ZWWUc1eXlVNVNHTklycEhRUWc2YjBTamZwbjdWQmo0YWlhMDFLaWlsb1hLak9OYVJUZTVrU0s4ZnF6ajIKQzR3K1JHOWxHYm5tQVRnUE1qaE9WU240YXhHSmpEdGxxTGxob04rcnFWQXJ4dTI0MmdiaFN1eW9oT1lXRkVOd1k0bUZ4WGhTeHVsSmJFOVUKWWNCbU1NQm9RSDZPK2NvcUdRbkFOUktrRzBwVkFDV1J2SWJuVUl4bTVpbTdwNW5QSFJWNXhpYVJua2JpWVNKbVR2aEtnak01UjZ5WUcxV3EKTm5OYkc0bjI0YTdGZUlFdjRaazh2N1dSa0xIRWZ4cVA4VGVZWSt6NnFocDVHQVN6dFpQSTh6bFEvRjRJSktpWVVRS1lhOEQ2SFg3a3hyN3gKc1p2TVE4Sk9wZXdCditzaUtRU3JFbU5sSmIxS2F3WkdSUkpBTFJIS25wSWVWRlRrNm1FRjBGUzM4ZUNjSzZPTW5KVWJpVldMR0xOaysyYzAKS0ZZcWtyaEJJMUhYQnBQMUdXWExuQkVKb3pheDJ2L3FNZDVaOERuVGxERnVVYUM5S05FaDloZVRmYlZnSkRxUDBiSitxQmpYaFBGeVpaVEwKc0tiSWZYWGQ4L2RMM0Nkai8vQ1VaSHNwN3Y1K1VyZ2ZSTmhGanBra0g3KzZ2OC9ITzE0OXJ1cjlwQ3BQRGJ5YThuU2tCM2gyV1ZYTUFxNW8KaHBBemxKVnBRRXlYS0w2Njd2cUJxd3A0U0NLQ0pYelZRNTk0T3VwVFZjeENnbUZOUVNoRUlxZU5oTkhHRWkwY0ZtVzFzZGZjY1liNkdrblgKNVV3eDk0SWZGRlJFamdEaGtDc05ZNWlVeERkNjBlc25yeGQvbmZoMVZMTGtGMTQveE04Y3M5NS9QUzZmUFByMWdPVEtQOGJ2eTc4TzRmT0QKMHVicHIwZndjMGp5Nm4rU1QyYngyM1BKcVYrMG1mYXZmNVJubHlVTGY0cTlTWTh2ZmgzRnB5K1lyWSsvRi9sdlp2SGoyU1hKNm4rTTFtdmYKdno3RHNiMit5dmZ5Ty9RbkdmeVNZZi9pOVlMMDkxajZmOFRlWld3dlhsOS9mZS8xU2Z6M0laNjlhMmNoeno2U2IvRWt4bjFEeHZ4RVB1TmIKWDhoOFpkYjQ5a2Y1QkcvNWRWaG16YjVaWTRBdG4rQ2ZsK2o1Ui92R3RiRXgxLy9IMzBlSVp3K3M5Y0EyUStoeDl0OFZBK2J3eEV0WjB5dnkKRDlkNlJONytVTnJZT2dhc0xMQWtsUU9XMERQSGFlc1hMUDE2QUwwOStlM1cyZDl1ai81MmEvNjMyMlB5KzlCdnQrYmtrN08vM1ZxU1Q0NysKZHV2TWI3Y2UvbmJyWi9uM1BmbDJRaHJnLzh1LzNacVNwMGI1SUQ5Qm0xdnkxTHo4ZTBRZW5KYzJNL3lGLzE1aUd6YStqZC83RkhsYVdsN2kKLy9uVThHKzNIdngyNjQ3OGZ2NjNXMlB5MVpMOFBpR2RUTXNiNy8xMjYrbGFueHpWN2QvL2pYZGRrSkZjK3IyZklYbWQ5TVBmbjByTGUvTEoKdmQvN1JQc2pNb3ZwMzFkZ1dscGlESS9ra3pucGJWcWV1aU9mbkphblJ1VERCOUpnU2o1NUlOMyt4QWY1MVQxcGMxN1dka2g2RzNvei8vYncKMnlOdmJ2UGZiMGZmUEh4ejk4Mk5OOU52WnQvTXY1bkJQM2QvL3h3L1Q2V3V3OExiOFRlelVzbGhoUFVaMEo0MUdFYlFmdmJOTTdRNy9QYlEKMjFIOGZSZWZqcjBkZm50UTZqek1TeVdIdS9JNVc3Qml3OC9vK1NDck82RGZxVGYzMFJQZSsvWUFQbnVPM3U3aDdiUFM4alpIaGQrRzBlSXUKV3M1d3RGSmJZbHdxU2N5L2VZWnZ4OThld085VGIzNlJ0M0pzbytqM0p0LzQ1c0hhVEVieCsyUFdvc0I0UnQ3TXlKZ2V5N3RtTVR2T2xGVWwKSHJLV0JGcmVsTm9VdytqUmp2aG5tUWxHZ0tkWW8rSXBubnFDbnlsOE1pYlZLbGdONDY2TWxrL3dQYk9jMSsvUFlvUTMwZmNZNW5rWFQ5OWMKKzN5RWI1T3hjQ1pqK09jZ3g0dVdJMittdWRyeTI4L1M1ekRlZVBmTmRabmR1TFJoNjZmY0cxbWYyYmNIV1IyRHE4UTFsbjJaa1hIY2xQWlkKWit6ZHoxeGRQREdDeng2Z2oyRVp3OC9ja3pjUDhOdDlyTklJV283anJjTm96MWtzdkhtRVQwWXdoOGZjY1JuUFlhblN3Ulcyb3p1STlia24KODc3TEZVWlBONFZHV0xYak92ZEV4akc4dG5lSFdORUQzNUxtZnNZM0hOVzlmNi82WTFtWlEvS3VlYUdLR1l3UDQ1SzNjaDNtcGJkUjZYK1UKTXdmZHpMNTV6akZJYkpqa0JqRkdrckduYVpDVUdlUWFGRzBFdHNBNkJqeWxWWWxHbERBbGo1VTFwTHFEUktvVmxTbjdVZGhsWSt3bDVDU3UKQWU1SVRxOUUwek5kbjdyYlpnS1lPQTFEeVg2TytEaXJFVENTVjJLVG1WM0RQTTVCSFVqUlJlQXpOOUJwS0tVWFFzMnM5bjZpR3hYV3ZCclUKcWszTE54TFFONkRjR3Zwa3RIbXZuUkhMMGFCVHo1ZmNpRmhMZG5Jczg4VWJDaXcvVWZhbGFJVE5BekJyNGNwOEM4TmRkY3g0VjBiSXNQaEEKbVpIUmdZMjd6eXRQY2g2bHNvZjJCclZFT3d1MmRKbFU3YVV1eTl6d0w0QVpobnd5bmMxVm9VMmU4RXdxMHhYUXpOd2l0OHkwaFRTV09oYk0KTW1IQmtRTEFSVTJpbEtWMHAySytweFJ1aTVtWWdPOHFpbW51Mm9ZbEdsa0NBb0tRV0FHREtESE9EeUJISnpXYmp5RnJ6VlF5aWNuM0VrQ2YKRXRNVUdHbHJHSmJKZUxoQWNuY0oxa0pDZDRZbzF3amlNVnltakRQTVNZSyttRkpYbGRTRWdMRk1OcGRrWXg4Nnd5TjR1MnduNjY2aGIvdWwKM3NmZ1diT1dXMUZndkthcmQzR21wcnpEMGxsU2pobHl0VWZDcFIxZ1JGdjJnYUh4aVJxUTZEc2FDSmk3cEJ1VmRDOUlnWlh1aUdmam1xZGQKUmpZeFdaWEpJNzdoL3JIdUI1YVl4UlA4aEhVMkdieFlrb1M2Z1BUQmxBRXRMWTBOZEpMNkdLeFJJZm11TE40SWVHMnpISXhOeWpBMlBwdEYKdTdobUpERHNBR09BZmNrT0lXbDRmb25Jdk9xN1hKNXR0dVpLaGNZR1YxNHg2RGV3TzIzVFpLeEZwQUlRTGluU1prKzAyN0I0STNHZEFJMWEKNHNZWUtjdjVwU1p4Q3RwbWRwaS9XV3BObVd3UTFEU1R6anptU0RCZ2pRSCt3bU1EZmdSSWlZWEU1eHlsSkIwSXpYZTFwMEhQdWhZR3ZiS28KUUNCMVNTU2V6dzhad2NmUVRhYnlsYlN5VTJFQk5JQjZpY0RYWGxYU0RNTFV2bitubmJ1ckpLMzc3NWJWR0VtYk1pa0hiT1NDeXNFajJ0dkcKOGlGTXlhQjlBOUlvY2FzY0crZG1nM29aeDBkcTJKWXk2eXdwNlVUbUxxa3Roa1BCWDN2c0ZydEsrTmNteUREUFFKSmRpT3BkemZ3QmJyQ3MKdFNIVndUTHAzaVJ2K3NRS0FhZmJDZldnczhQdWcwMXQ4bnBKSVNyNHdzb2V5aEJmU2ppUVNjRFg1SWNkekc0clNUMmlBZ3N5TW1UVEZMVGsKa2tnc3VQWjI2alF4VE9rSlNmTVN2eC9iT2pzc0pwTU02clhrL3FCbTdQeEFVcHgwcjJWZnlKY3F5WE5mMlMvNENSTiszMmxyMjJHRmg5VEEKWVVMMUFQY2hTaVVLZEMzdlpTMDVab01WV3RXVU5xQVdPZDJkc3lIM0RnUE9wVENIVU1pbllrdHlUMEFGekNJQ205VnNZb3RwMjhTYWdpMlMKaUJCWGRsaGh4ZUswb2MwS0lvRlZtVnBUWW9FVWhrbGF3U2t4L05yN21OUWZRZ296QzhoamFHMWM2ZkZodWFTZUhpeHJTMUxNQlBGNjdZNjUKS21HZy9qYXJBMnhPa1Mzd0JHNElmVDR2MGtiWG1PZUNsZC9CN01CU1ZHYkpFVlg3MkhJNE00WkF0QnV0Q0JLU0FpbHExcVV1a1JrSFNMdUcKZ1ltU2V3WENwd0FLYXZtV0ZpWUw0TFVPaU13RDdZQUR0a015WUhOM1VPcENTV0tKSFphYjlORktmeHBMTGVxY0l4bllObzNEMEw3MXBTZ3oKc3hVK3N5SzluRXJDb3g4NmJBVkpvUHpZN01BS01wMlpHWVlxS01RMlBOdVhQS3RBV3BlMnNnNXZkODVtVHpoclNVcU05TWVhZ1prcmZzb3MKa0g3TWRsdUZaVWpWTGs5eTQvOWw1LzY1MWRwTVMzR1NTQ0k3dTNOVXBvSGV4NmhwVWtFaW1RY0ZSczRPYUtuNHBlTTJtMzVuMCtrTWF6TGcKY1piM3hkeDNneG1LMFQ0cU53WW1RMWZSYUJaaEJaVzF6NitrbGJJVmNwQXJ2aGZVSUo4clVvVVVWQUlGajNHeTdMZkVleHVwYllXcFlBVGEKNWxhbnJQWWFLcFBVUUo1NHE5TnJjVWpNRE1WVVU1WkVsZHBYRmxaZ3pVUTNVaVpUd0tGbnZFOEplZWZ0RW15enFHU1hSNDNzR0YwaUYzOFYKUVpRbmprM25NSHVVNjF2UnpOeUF0T29NU3ZraWhydHVIZFFPeTM1dkV5MjVscVZodnJIWmVpeTVoRWtyVndRRUt5aGozNlhvaHZhMk9oTEsKbTFnd1ZLRFdOVWtCTzFIMEU4WkZZNEM5VnNDek1pbldEQklZSFpwS0pQS0ZkZkx3SDk4NExHak91Y2RHaTZjRVc4SDYxTjA1VVhVZ2FGWVcKR21ETVAxTVJ1QTlTdWJTaXVhTDc4UDZLelFlT3RVME0ycXJGcmVaaGtSeldCV0o0dGdJUGkwb2VWRFV1dWJNdFpSNnJ6VEl6T3l6NHNsbGwKUm9yQVFZK3phSnFSMUJBTVFpcGdyR3Vwc3FZMU5Ib3NxWkV1NjQxWEU4RnVEQ1NPSlZuTkJtM2JORTRXQW1PS25MTitQUmtQQW9Semh6SU4KSkljVndod3l4S3A1QzdDMEFsbUNLWmxXTGVLQ3lXcW1OUzlKUHBKeDdLN2xJVUdUaUd2SCtzSThHOVR2MkJ5Y1dJcXVNVTZmdFlyMExnbnkKaHpBV2JiK1daTG5EUWo5ZmZHWkJDRmxPNkpES05uNWpVeUtZMGtFNlkwQjByb2RDUENBc2xNNm9DUEJkR3lCbi8xb2FtZmIrbXJJOE12VlIKVlNyRVFRdFh6TjR5Vkp4eEt0RitvaHR1b3k5bFdaaldxQzB6UThCVDNHMFZpdHBZWnZrdDdYMFoxQ29BR3Q5WUlXa1RXWTBVcDhMRUFLbEMKMzEzTG9yVHBqSXpQQjFJVUgyNGl3a04yeE9iSFNwR3hvRmF5aWJCU0lndjBaNHZVVVBHeEc2c1VMZVhuV1pXaTdGZFpzTWRuYXEySUxzbk8KSVV4aFFTSXZUV1NybUIzS2JFUUxHUlA1dmlTOEZqQVpnVG1FMnkyZUIvcmxlMzl3cEREUEhnc25vU0lwclZpeUhpUzJHNFFCUVcvVEU0MWsKMG1sdkYzbUhHcWRJYmM5VVhBQWUzbGNBYWRPclpTNXRkcFYyV3lqTlBMS295Q0ltTEI4a3BZdW9ya1BtWExKYzFvYU8xbmFXa3U2VDZ0b1UKRjlhTTZFMTB0YXhESmhEbzBJa0tZbFJJZWFaMUxaOUw1cG5ERmNOUWM0NFV2YkVweXdaNlpUZUl2S1hsYzdDUlkzT3pqTVR5WXgrczFDdjYKQXNsWUpBTkRvOE5VeWhzeTZ3SVdpcXdTQ3lhNVBvd1JnSFJqK2l3dGZheFpMTURaemlJNWFjV1dKdXBKQm4xQlpoRVRNMnFzN3M3eWN3cTQKUE5hT1RhTmdEUm5hWStXWVRrUXlMZGxSY3JJRVhFS1VzbXJ4dWhabmh6WHVRT3ZnU1piME54Z2czKzRvSTIvM3dUNlNXdGhGdHVqcFl1VjcKQUFsQkR1dGFiTDZlc1dQUmRrRzJFc3lpRjljaTQwMDIvVURLaTdVNHh1NVl3ZGJNc2dtbnpxQ1d0THlPRGx1dkRmUU9JZ1FNcFFTVHloOFEKbmo1VnVGUHdlYTFDamRkYk9DeHE2bkFEV1J3ZGY3MGJLNmlFVGw3WHdNcmJyTHdXbGpaWTR0Mkpmd0ZWTVhtUDlPa3pOWVNsZ1BpR2JWYVUKL0Eyd0RQYm5BSWlSWDZZVU1zWmxDVUlWaUdwMXV2OXVoWWRVQ1lPSWRVU2QybVFWcjB0SllpOFRrYkNZempiSTM5Z1hIVmZXTzM4M1Z4TW8KRW8vcExnT2NFZE9XT3d1S2dzV3dNRGRIQmdsSW94Z2lBMnRLSGU0bzJwUzBQb0ZIMmRsZm1aSUl5Q0daSnBMd1JqVmgwelJzR29pelczSmQKSEtJWnNtK3RTbktUMG9jdWJjV0tMM1VSUThjdldxTXBzUWxoSGdrSXIyMjNVcUJnczIzYXhHN1p5b3FjWXZjekxUc3YrVk81SG93TWIwMWcKZ3dSYXJEM1N2T1Q4NERzc2N1b251K1d5QVk5NVQrUUw2Z0ZscEQ1ZXJnZXo1RHJiTkZrQVNONFkwTU5yTVp5QzNES0NUVldPU0swS0RkUzQKMWk2WlUvbWloUUFlOWdUcWpNVnBvTmxjaTltbDVJSFlNclMrL0VTMGZaaUtTUHFyMUZCM1JGU2FoTkFQZnhhbCtDUmxBYmlTWmIxWWU5TUsKRkdld0hIRzRKTktVUlRTa01JVUJ5TWQ0WmVsWU1sUHkzVzFDdCttVm1nVU95L2h6TjZNS3Q1TklDVVJGL1ljWDJhVEZya0tObStsOFlTSHEKSHV2c3NDbXZMS2RKOW1EaUVuUjVMOWdEL1VsTnQ2QzJoNW9KRWpKeWVJSkZ5eWFsbFV5ajFOZ3FDY3dacG5ZeWtwVnNlSVVLbG9uMWhHaGwKS2Nscm9zVU9vV09UQ0RlMDJVUXNNU055UGJSNkVyL2FhMDFuVytuQTdFM2pmZ3hDQ3FmcU9DOGxORGNJTG1ocEtWZ2FsTkoxdklhRGVacHIKbFIrNnYySmRqTmlUYlBLZ1Z1VTlLTDZZeGY3dktVUXRrdXEwOVk5cElBd2toMlpHTGxJUUNRWlR3Slh5OEFJZHRKdXUrVU9NRkZQRnhIWmEKSjVkZDFwYXRqbFFDbExwdlBNWktJUndxWWxCaHEraWV3dmoyU1hVN1NXOWQxMktySE9UL3NxOFNPQU55cjQzWWFxd0F4em9DM0NUZXFZQTIKR3ZpNHJhMm5OUStPalRmWWpEM0R5MVh3QU90QTRYOWlWdS9YZjJNYUtBaEYwa1JCNDdIYm5XdmZZMzFJSHJQTDZVa1N6SmRZSUxoSFNtazQKdkxYRzhjTy9zbkpiV2Q1TWdHbHR0UzdKUnU5UmpzQmczdHNRcnBjclJlS056aTdyNFNuQ3RpTXFJOE5FOFNjcHphSGFOaisyTlE1a0tpQWIKV2k2ZlM1bVZ3T2I2bVQxcmpxV05RRldlNDlpOHdUWDNEMHZVU2laOUVTemRZa3RnbUkvbEpoMW5tN1Z6K0d4RmlaNnpsVEVBRUdzc2NTYzYKUUVRejJ4dEtMeUJlMzdCMkhDeHoxc21QbUlRR0hKekVPMnkxa3M5VEEyUmkvbTdOS3hoVUZjR200cjJqdHNaNmZpcDVvaHVsZG1aUWE2ZWQKKzQwQ3k4aWRBbEtMWU1PMlZNb3Nra1ZCYnRhN3RmSFRVRGdPa0pnNzlvbDJlRW1QVFFVMzIrUXd0dGJ5aHordzR0aE9HSlVhUXNqYWFwSU0KbCt0aGFqZFlSbkRQZnIwTmRsOVpWVGJZMGhIZldRYXFwdEoxcTZpeERUYnJzV1hudHIzYi91bjhKM0VpY0lYWVJUUXFFb3hlRXRmcGhXTjEKeFpyempkVDdXeTlpQnJKTVVqbU5YOXhBMlBCcElzTjlsNWZRZERxNUhxbER5eHR1UUM5ZldoK250a0NYVitLSTdHSHVabGdTOU9ORW9aVDcKRlZoUnJMbVVmT1FxNjVkS29QTUhRMXJWclBrWkRwQThoVkhERWpjTTMvRUtFSkJ3em9GRjNKM3ptTElkVmUwYkVzeUJGR0F6WkEyTWY0NkMKMVNuQnpTcHdhYnkzZG9xa3NNbUNDaGlDY241QTFMLzREcUZldDFudksydno2alJXMW9ja1I5cGdsU0FnSmhwY201aW9HU1BPdjJKTkJKRlUKWHluNlpHME0yazEyV3F4SWt4WEwweUo3NnRpQ0s1S1BpVjQrazVJSHpuWnEyS2hJYlNqdXhaQVh4MUFOZ2xMNjZhVHNUeVE1ZWIxTmpNdzUKdHBSTjk2Q1ZwdFR5WC9tbHpoYVpIOHRoY0liYnNGRWJIVGRPcFg0TjZ4cmtldWpIUkw5U2NOT3dtQjJOYkJvRzZlK0dwckZad1E3WWtDNEsKd1lyZFRzczZLWHFaUkZKazRDdHJzZSt4ZnVIZEZtdnNvYU9BcFhta2RNWGYvSmlrdFZhUVlZZDFhKzJ4YU5UbXduZFdDUlZZNjBMUjVmbVoKV0t1T3JXTml0b1VBVEdITjZuZm5LK3ZhMldXdGNtdCtHTmRTT1RZZGxHS2hHQjBvWXZXMDJVSTBYMWc4S0xtZ0FKbS9WNGRRTENka1MzSVkKM3JKRWNDTEZnb3hJdmtLTitsYnFkc2Y5NkJQMENZS3NBWHpTRmNqdjBMbXk4b3dYUm1IaldscDZvU2lkOVZJRmViMnR1bUg2ZFkwRncwWDMKQndGVDFORlNLdGEyZHRJN3FRY2RXNjNIa1ZyWkVLYXh3d1JtS2FYUXVUYmFUdkc5UWg5Sm5yZXhDYkFPdlJFNktQWmFyOHB1TFVuYkE2S0UKdGRSRE1tVjZZS0dXRXZxWGdHUmRxWmxBZGU2d1NoUzFwOW1aOWxNcTJqSkJHOFVnOXBOQksvSjRDeEUyUURtU1lwemJtaXNuU1pWdkJpZmEKcWhNdFVuWW9xTmxhTkxGckRRY3lPbnNYWEJmMjJ1TUUranZ4b29EbG5KTmEwZG9XRlBJQU5kcmFWU2FsbzBuM2loWHBsQzFkZnlVbFRrS3AKSDJDU2JRSGRLVXFValhnOWFGNEo5czMxNUFXR2VsNGtPS3RvRjRUMVY5R0cvaENWbEhkYWpiZkR1bzV0elJ2VGFwVU5ockFHMDNnakhGR0MKRlYzMHlYMXFEYzJpWDB3MEw4RnhlQmxiWGtwMzV1VmFndEFyMm5MeXNOVllTZ2c4RlVpK2RnbnkyKzEyUHNmTDgySmtRL3BaWkZ5MUJVQ1UKSTNXdFdYOE5TOEFLOWhRQzR2OXlDbUsyeEx6WnpLSDFURFh2c0ZhQ3crQVd3ZnF4VkNWWkszTEVDZ3FKYUtkRTZnRUhVZW9WWTdwYTBObm4KNHF6WXhNTXUrbnRnUVVMcGJiZnVZYUwrU0I1Z2lOR0E1VnVwRUEvd0xEWHNQRjZ6QXBGaGF6bzRVbWhFZTU5WnYvY25VaERLa1J1ZmFydzQKQ0gvVnhOc0VhU29GTXlScWlCQ0RsZWh6UFVaR1VPSlZQNkRCN1pLVjNjcXFkZGpzMk5aZStoakttR2RuMkFBSG1pWmw3VFhQMWlNd0xBN3MKZ0Zpc1M0OWxOcm5GMUkxWUNTVjJqcVZJS1FDQVI2RzV2TWhOWlNITHJLMHZ4ZlJabWFhWVdnK1VZNHRlOU94bXVUZFRvN1lYT05XSHpmUysKdHNjZUhLNjRGQ0llOHRnelJVZWNBYTVPQlZ3NG4xdDcydWJ6dDJnYUUyRlMwT0piZ3l6WXdmcG8vajRTRWJWOXhYZi8yQ0gvSStIRjlFdDUKZ0thT0xUVG1pTFlGWWdHeHlBb0NtenJkVWwrWTUwQ3MybUgyV0ZES2V3eUlJeE41YnpFVjUvU0EzTGxVc3JXWW9BUEV4bWRzRkN4WnFlS3QKMStxOEdQS1lwcGRPTklxNDBWenlCNnR3Mk5KbmJid2xodjRDRlpKWmJHWTlsdEloR212TlEydHVhQlduVVd1bkZBNjJqRWV0YmFVTlQxT3AKam1LZmRmbHN5U1BEOHF2NHNaNVo4THBEWWJkRDBMYXgxYWVjN2FrWW1tczFqUFphcXdEc0svUmQxYXhhVVlvOFZxWGJxMHFrejIzQ1ZGdXAKdGlCWXZwSUtMYUIwaG1ESkRaUVFTTGIwd2J1ZnNTQlFFQTVxaHl5eHc1N0gvVFdGVkRjVmE2L1F0VUpkSlNjVERpUys0VmdnNG1qQVNkWHcKOVJ1RitHQk5SV3dkdElpR1pEbGExaWVodFVHcmNBMG1RRlVRaHRyeVZyWnFtTm5PR2creDFQL2hBVGo1SHFMWjBpQXZ6M1JZZmo2RzNvNTMKV3pkVEgwK3ZZWDJLTHMvbnJYbE1hQkt5M0kzRHExTnNhU0xXd3dIZmgvS2Z4TVlrNWh3NXZva2QxZ2ltQk1YcndraHVLQk9xZ3d5cFZVQ0IKWWhEd2Rnc2RkOWl5RUlRSFFMOFdqK2ZhLzlQcGV1ZWZPOFJJYzdvamNZNDR0RjNCUjNLMW0rZFk5RXV6eGZ4YnZSakhHaGNRaG5oZ1VBNEgKWFdPcm4vSGFTcFpPNFkyUUZJQ1lQNWR1elVjcTBzMXhiS200SDhScnQ4RVdFaXl6MkZvaDJqZG9WWjJkbU1kYWJmdkJZNDRYd1RTSnJYTTgKNzRpQ0hoek01N0NmQlRHSVMxTHhQZHJLZGNOYTV4MXhuRmwza2ZuKysrOSs2QnowQlFKRVJWTUw3Zkx3bk5SSVRWSk5EeWVKblZWWDlzWXEKRlVIcUdGdkF6aG9xWFdDblhrQ2xiZFlMYnMzY3ZMVUdreDNXR2hTQ3pEbC85d09BajRwSlljVVdlT2RZaXQwcStGSmJOeTlYQW15d3hSQWQKVzNmUVNKMllxQml5SnBvS2R0aVRiTmF5QzVUY1ZZQUZrZHNBZ2xxYmRmRzAyU0tMWGUyQjM5UFNrbmZFdlFqR0l4VkQvTkxSdjJ2Tkp5NTEKdnB3Qlg0bXRWbVcxeWdDa1I4OWVuQWFDbm1OeHhybVdHd2tLV0s4dkRTZ0l5MlQ2cU45V1Q5elliWWxvdzFyaE5QR3pBZ0ZMa1hmV2FzYnkKZlM2VlM1ei80ajJyWG0ydEdoU0w5N016OGFWNzIrV0tWeVBWKzd2YUNlcUliV3c5UndKNFNPR3lYeUhWMEl3b1lCdkZqc3V6emo5TGc4UGUKNUxXT25GWVNtYnk5NTlFVDUwT1Z4ZEtTbXFXdnJiNFFkTzB6ZTlLckhHR0ZUM1JjRUI2Ti9YNVFzcTJIbUY4cjl5akYvOWFPdnF1OEJCTHMKSko2MDJMSHkwNkdQRXlZZDBBWHZlS1JURkV3U1cwd2taK09PdzFPUEN1OHU5V09SdE5CeGZ2SmZGdmtEQzBlaEg5bDZqYzVhZWNBMVBXRkwKRXRJMVNtOW9ycFVYcVcwUVowREF3MjFLRkZ0VmJXM1FHL2ZZcUFFc0krOFlkT2dUNzg0NVZwLzVvVGdEdXV3eGhxMXM4N2VlcnYvZERwRkkKRnhCUHBDMVlOeXpJR2dQZWloS1dPMWFVZWFmYldZKy82UTZWYTJ2akJDdGhhOEZzM1JhckFwQWNwVERtN2xwM0VhdUxjYlp5Q3RobUt3WnUKQkNsUmI3RDZNcjZqeWdTcjdRaTRjaUZMcWRFWlZ4SjlhNTIzVWhXZlltYnRMTkpxUEV5ZHRiaDNXQXZURnE4eVBkWnNsWldnMXcvWXN4RFkKa25xT1JGWmdLbUlWNUt0bWE4NzVpMk52amtsQVRqenFZc2wyYktxdHQyaWt5RDVHeGp0RTZNYndTRGVFRllJUzBIbDNqb3JJbmtreHptTzcKS3NDZUNlMzUySnFZRVhjRHoyQVRPWUxiWmdTKzJrcDBodHpueDJSZCtnbHBkb04rUG1IRjRTamN2T2E1ZEYyaUMxc2sxR0U1Zmg2ZFdwalcKS3Jmb2JhaFNtcUY3NjVNRm0vMDFEV3BZeGo4NU9TSmNIbkRTN1FxMFJxY1Q2RkVzWWJyNkhMbnRkUDJmMWtNZFdrVHMyQnBxVkRZY2pxMnoKWjNpNU1uZUZaOTVxclJDbzAyVkppbUJMRGlIWmNnTkx0b0VSU0M0d01jQzB2Qkk2NzhpNW1seGdJaVU2OFh1dDNmSnZvU1RJQjRxQkcvNnAKdmZOQ0xoc0I5TFB3WUhOMW43T2x1cTlQYmpQSnk2MUlqcklWVlBNd1ZJaFlMRDIzZFl0UHJwUDBTZFVrQldQenRrOUhWS1RUYld1M2JxU3QKdzV2cGJHRkFXMkNLVGpJR0lQRTZURWNaVzdQVWt3S0NzYTNOMytKUUNVZFNaWldJdW1qcGhmb3hwTWZYb2R1RFMwNTFaYzhQQnkyc0dDeUwKRjVablhlRGlRdHpEK3o2dEw4ZXhKOFRkb3FTQUlGTGE5dG8zNGo5VHNrWE9OcS9peCtMdTNhZTlUbHY5MXZuY3hpanRJVjF2ZENoSllqOGkKbHVJUllpd0tGdnpPMG9uZE9ibjJoSVdnN0dFdzBhK1NtWWlRRmZRcndsaHVQWEN3V0JVaWY5Nkw1YkNtR1hneVRRemtraW5XMEcxUmlnZ0MKdjBEMlJHS2syVUpwUm9ndnBNTU03RjhoYk9MQmlpOGcwZlBGcWIyYmg3TXdYc1V6dDhFV3o2US9zb3B1Ykp5SFEyS2dVcUExd1NOWG5qc2IKZHkzTWdNV3NmaThtMTBaRERWc0ZLeG02dVdaclQ1cDJxMFozeEJFR3JCeGI3NUZYTUhCaWlaaURJaUN3RDFvMFhldDNqQjJEakJPQUZWaFQKajVkVlFhUHRsdi9sTEUvbjVJb0g1VERKSTZvWklpbUhkOFh3RW8zUUhnYkhGU3ZCMG9KY3dSQnJpV1VqRkFORldwaldJOEdQbUppV0czYS8Kc0VjR2ZtakxBVWV5R0g5blNkYjE1Z3Q3ckNwRkpsVW94d20wQTBRN1FtWVJ0Tmx5dlRVaUs3a2VWelNlcmN2NUhXRS9Ld0ZLRFZYd29FU0cKNUszdjM1RktZUnZrM3FaY1Q4b2ErcmtlcDVjT1pUb3RCa1FGUVB0Q1cwRi9ZdjhJZlZud0dNSUdrN2FuY281amp5UG9NZ0ZaYmNqdC9QTHoKSFpFTk9CUStaMXlFbURuT2Y5bXdEVnRUa0lmSUVrOFVVZjBPV2dqZGFXRmE0cTBKYXBFaFlRVUdGWDBlek9vaEhoYlBsNldlOWFKRm9jR2wKdnErM25TRmNzRytqeEpZS2sxcGgxaTdlWEJKZlRIV0hEU0hKcjlXaHRtVmZKVmloekFOWW5qc3k2SkN5enBWZVJMZnhwTUt4SVZ5TUhUQTAKRmNwU3pKRHhXWndBWklPTmhlc3VXRDhmRFNsb3pPNXVoMjZWTGt1dUxWSnVsR2RaY2xRcnpMaFdmRFF2R0QwS3FkaWhQdlBXaDhnekxGbzIKb045aUZOc0NzWTZ0VllocHl6MWprWldSdHVoZm5uSlFTRXdpdEhaWWI3MnhsWUE1YU15R1JBcU9Kc3JDamxweHo3MGpDWk5PZk16SW52OWgKWVZtVWtiUUwrQ2NsREJsNklqRE5IbHQ5VTdEd0FEaVlWejE4YXNHNkxRRytVVGx5aHNQSHNSUmZTUDAvUjI0QTBURnZmV2ZaYkhhdGZxK0wKT3hpSjMzeURMV0pzVVlXSUdzeTF6VExnSHFsN0tVc3JzQ0xtVmxrcjZSdGIvM3FqeEZsSTJLa2ZlUnZwYzdmbnQ5YXZKb0dEY3JpK0Z1UEoKMnBVRXJyVnROaEFsa1hQRFdyL0ZHcUtDMTdXUW03QXJpcUZYVVJpbUxGb2E3TEFCanVMc1owS1JVR3NVQzVDZzF3YUxpdVliOGFFYnkzMWwKdGtSZW00MXJObCs2UENyalpRMDAwaXdIT1BSODRZR2QxdXVnNmRRallqRmxucXZ4bnJhQUozZUJkVFBoejI0L2taZ1ZCbGdOVUU3WTBGSlIKS0d2RkRZMGx1aFpycE9WOW1vN1FnOWIwc25yekcrWHcwakdBb1g2V3ZMZWhVQnVKcURHeGJ5eUJ5bVZodkgrRUs3RFJSdHRCd2NyQ0ZJVHgKS25LSEhOU24xSUYzN0JtZlF6NFROV0dJalcwTlpjZlNtUkUwRWRkc2tYVGoyRU9pUFRaK0NVS0dXMmRqeUwyaTNIcklnM1Z5aHh6RCt5R2oKOUFCVXFLRHBNYk11Y1Y1bnhNVmlpVjlZUHZaZ1dtS0Nna0J1MkhPVUxkN3AySXJmZVhaTkRmYVpFbHpCSStFMCtRUUxDQ29RNjdwUTQvR2EKdFhwNEd1YjVVamk2SUdGTU5URjlBbVgxbUpGYWw0a2hqNVZJSHZTK2hyRXVwdWIzdXRKTzk5ZTlmS2JYSHBQWnNwaEd6bWhCanJJQ2VVb0wKdk0rZXRHL2tkWkE4aDAybFhxU3dVeEJZOE5SdTVjbzMzOWk2ckorb0dDTFBhNWM3bDZ5TUUweEo3eXBqdlJod3dUTHpRSWY5Tld5ZStwb1oKY0o2V0E4MTFMZHNTVnY1VmNvU2QybnUxYWh0NVQzUkFZd3QvNVhyV3FtREtiWXVPQWx5bk54elV3NFdWQ3ZiWXZMV0FiUkVDRHF1aU90KzEKMlBnajNnZk5TVzhVWnFUMm9uZVVsdHJmZWYrMDVvNjdTbWppRTlaYXBpU1NvSVcxdXBMZldhSmxIQjE5SGtXSlRlV0M4STV5ekE4anE5aTMKTXlCcGtMRTRTY3djUjE2eWhaVVZYY29CVk9pNDV0cEg4ZGVHa1M1ZDFFNEUxcXhMNjVzMkd5Vld0cDQ5bHNQRVcyaDl5aDJNbWdjSXZJNk4KL3QxRWJCbHFiZHBMY29waGZCdGNWclFxWVh0YUJMaUtiSG5PTG5HK1ExN0gzUDlvaHoweUVDdkhEMjBOMExYZ2NWR2ZBTjZ3YmdjQTltMTEKZk9jSFhxTEZFemFISGNtTk9pcmcwVm5JOEYvS3dmWWs1YldQTEdiTGcvQmVzRjVGNG45NUROam1kQ21uSE52ckZxQ3NuUysrM092WWN2b2IKWlU4VWhGL3MySnI1ZE5NblZzT0tLYm11eFNyN2ZObHloNHlRcDJBK2oyZHlaTTVjVDFRQWZtTDVZcDVvUnptcWg2SXZpaDFydEl2QldqREUKcEpxN0g0b2xUOWtNMGxjc0lwL292L0kyTHgzL0QzM3Y3emlFVTFodGhpQkkrQy9sdEdOc2xCNUdTcUR4Rnh1TWF2TWwxdFMxVS9EbDdrcFIKc04wNUxJYk1LQkc3K2l0SnQ5aG9LMEE3dG9DMlkrTlJCdVVlV0ZBbi9TYktxVnFmVldRRmZKdmR3RTRiZW1TTHFUdTJLcktOcjlDRFZhdUwKNVlJbVI4cWVZOUxLa1hpS0RiNG90elhIUXFjOSs5YmgvaHFEazhReFFYbEY4dm5PSGd0eGxLcGF3ekRJVi9Uc2lGZWRQdnNXdVdpTk9sQjgKNmY4Nzdlallza09KejlCUkV1bndoei9ZYUZYaFRFalNydDRkWDMyNlorOVhOb0RGVmx0dmw2RHphTi8yMnFmZWh0dytTUUExR3dmdE1TZkcKWW9Rb2l3NjR6SmJsZHl4QU5jN1hkT2pLMldGWlNUbHk3SkZzY2FIRzh0bzhVTE1ISGRhdzlkcHRJWDU3UFZjNEVBWEVLSGdEVC9tVVpkaUMKUGI3LzFCN0RpOGU0RlBIQUhnTzFiT1RZT0xJdTY3TlFuU3dMM2RWdXk2QWJpYTlTaVVVT05nVWcxbzZ0QVM3ODNWNVdqdGpzVlJ0ZCt3bjEKVVRjOVpGeG41a1VEQ2Z4TlNjaGY5ei8vMWJtaG1OcmE1S2E5Ujl6aGRMMUJvMzVxMTBYNG9lc2Rld0JrSEJzU3NsMzdmUkpaQlNYNDZwcG4Kdy9ZbEkxdW5FS2o5a05FbHBmMEFKZ3FFSS82MmpqZEZVMHYxYVdZLzRQMkp2UVNtd3RSZ042cSt1bDZTMnloaGNqQklXaTVVaWR3azVSVlUKcVlRSXN3dVN2elJROWk0SEpyV2JmMmZFSzU1OXZyclArQW5YVjhaK3Ayd09WV1RUOFZtbG5lbStOdTVDaGE4VzhGeWttUHZ0TVV1WXNib1YKREtMQVN4K3AyV3hLZkdSdmtvSTkzQ2Mya1dEaWNyU1dieTVaUlY3RWN1b2x4b2pLcFJ0TUplY1Zmcnlka1RoL3dJYXJjcHpScXdWZXhSeUoKN29pTVRXMktiSktRdmNKSnNrNWlGcURudFU1K2hBSHhscVNLNUxoSE5tUGNhT3NNa211MW1QZUNwWXBwZmVwWHMxRWlZVHE4TXNyelM1RmMKU2VISlBxQXpjUTM0U2xsbkhGYUMyVk9sbEE3ODJCWUFNR3UxQmZpWHI4WE01NFZFVE9TQzhIczFsYVM4U0Nua3ZVek1PdWNOU0JTOWZWRlIKOUlxU2JDdWV0L0U3SlJGeUVOS1M0VzZ3WUF5R3h1ajlWNDlEQ1p0S0pGOFdBN1JKK2ZiS0E4TmJmMXhXTDNCZHRvVHRnNm5IY25HWDNKL0wKcUVSZTZoTy91azViSi9iWEtoT1l5dHErTTB0L0NqZ1BkQk1xdStSU2xBRmo0ZTFDUHUrMnFqQnpuQkxuMVVJb1Y0UkZjaUZZaGRlRVlWbVYKVkFTUWVIL0dXc2h0MlJWN2JUTnRNWjdXOHpDZGZ4UGtNeTRMUEttQW85YlNrSGhwcHB3QThxU0xUaGU1b3pqbUhhTDJsb0RmYjdMUisyemEKalhqa3NSOTBvbEpLY3FzU09kbjNHSUpUVzB0RU5HdFREdFlTNmN6K05vbDIyTHFXZGdPY1VHVHVqYmJKQ3dudngyTGFQU3V1SnlMZmJNcUkKV2N2VzhZaGYrYUFFN3NwOGZjbmJvditKamtkR2taR2VtVm5GVUhRYlI2WUNHdmRFbnpib1NNZHJ1VnhBajBZUzZHakxnem9DWHQ5TXJMK1cKdXlQQ2p1cDBMWmZPU0RJQmdVWllrM1FsVlRBU1hTazVlanpYSGJDM2NjT1lWL3NaT3lZUkZJd3Z0TWYwNHZYRWl3ZXNiSE82MXM2U2FZQXoKTm9QSER3eEVTNktTaU1LMXBCeXZJTGNIc1I3OW9GZ2FhL3NtbmpZNjhzeGFkdEpuYS90c3ZUdk1tN1Q1YlhMck5kOFBlY3NZaVFvNGtJRXoKdnljV1dJVWQxT1JnblJrMGNydHJUTFpRVkFaRkx2Y0FzMW0wdUc4bEtsUnVwcEVZKzRScFJ2OC9XMi9hSk5kNVhnbkt1MUhkNkgxZnIxUHQKWm1GY3FBTGs2UWszcWxBT0VDUkZ5TnhDZ0t5ZThmUW9ibFhlcXJwRVZtWjEza3dBU1VrUkFFaHdFeW5LdGtqSk1tMktJa2hDRUFHQ0FBRUMKSUFsK2dQMmQvR1F3NW9zN2dvU29pWm5mTVBPY2M1N252Vyt5Und1cUtwZDczL3V1ejNMT2VkQTJpRlVnVHFkazdDcktSUEs0SUZ1dVpBVXAKMHArYzNkbjBiU3VpRXIxRDBWQ2h6RVlzbUdKZHBWQTZ5MXNvaldJdk1NNUkvaWxHMStZcERIejd2bTA3ckJ3SWZ4OW1FYXUwRGxuaWNoUGoKRDZncG9uT3crakVQaU1XM3VSbnNSZ1FCN01valpCRXhIL2xjOXN5ZW41c1F2bVZEcU5vR1ZYZXZlQ0NJYmM0aXJxRWNDcndLMVViQWZCNWoKNm5lSmNwaVU5WEFWMVdNVnF1SjhJNm9NekJrZ0k1MDkxVGpRdkxzeGFJaWFBR0FIN1FmSUZXNVl1YldGYzJERFNaMnFEYk84Wkp2U21HRXkKRVFZNmhlL1NQVzJpWmwwNENkRmo4QlBDMU5mc1F4V0pwK3ZTNVFjY0d6SG0xWkdRWW5iZjlYcm5TdDFmY01KWnJFTk5OL0tMWkl4NHUyMjkKNExDeENYRE0raDRCSXVMZFVIUzBpNGZFY2xDUnQ5VlZkczM5dms0QUdPQUNZNDJUL3JvSCtKWWRqZC9kVXdUeGRNUnk3RUR3WXdFZGpQMUQKVlFHR2lLeVQvNGxLV3V1akRYR2ZiWjR6akVnZ0t2ZFI4R29SdGhCUmQzWENjdkdRdDhkQ3RVK3lNT2xhNWZzcTV5ZGpGUnNvZklDZVJPUlkKNjMvUXcwQ0xIZGJGdkxVVk8xSkFwbE1JSVkyaXhSTW1iWndxMUtnaVQxUTE2VTBBQU1GNlZhN1I5amtnOHJiQWxUTXZkWVN0Zy9Pank4cm8KUkhScG4vNFBnamZOT3dwcGRYbkpETTZsRVRndzNJOUU5YXBRMEptaE5yWVdGRzlIM2JKNG9UMzd2ZFo1c015Y1M5MDRRYnRCTUJOUlNrRW0KTUk2YkErem53UnRIUU1CTzBVckpzYzR5ckRHNFFxSysxdVhYeFpzcENxY3EzdWY3aGpTR1ZrYzhyRm0xUS9zYXZCN1l6UjdvbTNHT2IwUDcKM0N4RWNxVlEycTh2dXBNcUUxalhNUWJmYzNROGNKWTB1QnVlZDJJRWNyLzRhdXovNHNsMG5iYmRJSytEL1dDbHRuMFArUlZVQmF2V2hiV3EKZ1Y0aWxCdFFCYVovL1p5Wk1LRmo4KzRoR1dvOUFrYnNmaXh0WDJwMTJkenFxajdLd3JMenZCdlNTMmFLd2lGcmpWZXZtd1R6elJIa1hkWHEKd3ZvWENoWGdVT3p6dHNyTUE3WDl5KzZHWjlTOHNmbG14b0VRZUF6WEw5TUZ0cEZoeVhiK0R6dW1XVHdZZE9zMFI3a3QzQ2ZxUnFFNlVwM2wKVHFINlM4V3MxaDFxTnVKK0hwV2Q0Zms5WEVXNDBqcXJMblYrWUJCcTdwT0x6ck9EeVkyNmY3UWFzSzZCQ2dGS3c5dytiT1ZPTmxidGtEM0YKRjBWVmFxaFN3SmlVN2I5Nm5uRVBtYXdsWjQ0NDVnQWdLcDdEOUpQczUxS3Y1cndtcmNtR2puVzdTYnhENEdxMVdsSmtiMW56RC9GRndVS0YKY3FoMklJQ0xjOCtCMHNXbVNoK09WdUZoMnIwZFI3YUg2OC9PWTBjS2RIcjFJNXhoSGtZc2RyamI2R1NycnVybXpNeHdzZG5DWWZYalRaUnoKNzNOZXVJcEE0N0I1aGhPd0orR2NCTnZISTRvVG5NVTQ3eDhlZDhsNGRBcjJQTkxRdUU3aEMxZ2NkMVRjSTBpK0E3ZXBORGRKaGQ1WTJtMUUKZWdiUFQ5UkFLbmxPelJjS2kzWnJnbFVLVVI5V3E1MHkvM1oyQ2pGWEhSaEZFaUcyUDRmdXVaTWc5aU9CVXBYY1JlNHp0aUNkbFF6RktScUcKTW45Nmt6M0ZIY3dCM2lFdzBCMTgydHFyd21HZkpSWU5uREp5TndxZHEydVRlOHlId1puUElMQ05VTEI0SEFYZE9IMjJUMVFEQWY1SE9EKysKRGtKenVSbkVydUUzWEIxRCs4RHF4UFVERUtqZ3lsN3JWY2RnVis1M083bFhIaDF5UHFtOXk2bzd5UXBYSE84aW84eGlQWm5UaW1tODdISVcKNXFadkFnclRkNkdJZ25XOGNBS0luOWdzZUZCZ3dRMWd5VmxnM3htT3h1dE9UTnJiNlhBZTJoOUhzVHNUbDhHTnRzdUtZTForbFBYc0ZMNlAKZHJHN05xTDljVi84ajZnV1hXOHRnaTEvbHoxYng3MTArQTZvVXkwOFc2ZkEzTUlNRXJJRnRFaXp3Rlgxa2ZzZWhndWhXOWQ1YUVoRkg5U04Kd3hwbnRybW1pQXR4Mk9GaHE4UDJXWVNVc0wrQnJrb2JtTGtIVm14a2lGSXNGSzZETFRoNmV6dUM3OXp0SUJtM0V4dFZ6K3dVMWREWjRWMlAKY1U0MnQ0RCtobWdKb25odzJNQlA4Zk5saWRYOGNNQUkyTnU0aU1nODZwNGh4bElvdnJRM3hGTzBmWFNXNXgyQXJIMFBLaUMxbUhEajNqcU8KcUhsUFEzbjd1MDVoTDV3ODI5d3QvaU9xSEdFZU5nLzZQdDl4a0x5V0crdGFEaEVYZGNXVHBuUTdpQnhKYStCZGJqZlJRYlVIbUM5RWRwOFEKMGRCYmM1aFNZU2JaUm0xZWkydDBGR1FNcmRUdzlPSEhUWmd0eGZvWWFqOUVOZ3hCVSsxaVlDbnkrUXZISGpjT0ZDNmNSMWJ0L0wzZiswLy8KZWVmdURwZ1Q4Q1hkZVI4V29kWEJ5bzE3ZG5rR1lRUWZDWFBaQlVHYW5jNUJZZ2pBK3RHeFBnWGR1UGE4dDJtRG9EallMc3kzZEh4L20vZnoKb3V0VTVXWWRqRWJ6UjJkbTloR2dnQnBJMk1jWVBGcUNDTURxb0p2d21wMWxSSmR3THJuQURJRGJJMncwRDl2a1JoQ05vR3g3RGdleHowT2MKaEZ4TzI4ZXhqenBic1JGWmNtYWJ5RHVZRjFMYjhXajg0bWdnWk1iU0FuSFV5NFBEUGNRRFNpZS9JUjVIVnZjdXA1cTZBa0x6VlorM3JuM1IKTFdhUDJrYTNVY3dYZWo3WUlkakhhRS9WaVd3OWRJbVZ3dWRUNFFTTGpndFdGSzZ2Z2lBTjdjTkZseVJZZEhKV29DRzByNVc5T1o5L2dhQ2YKRjNXaVk5NEZLVGZMSHQ0RFNtRFZkbmVnM3FCTk1kcXcrV2dQMHFWRDAxVC9FYWEzM2M1OE9zTHlXTHpXN3MvVnh2WkxHTVhCcElHbUtkaXMKc2p0dzZrc0hjUXl6YzNwTG5nNTNMdUhTa2lkUnZnSEptSzNtV3k0ZDByaDRSRXpMd3BtZEJjdHU5MkhmSzgrNXRLTDRaTS9wVUlWdnVJV3oKNXAyLzNDd3BsbHFFem9JcnNZQVdhSHU4UUZtd3ErVGY5eVk3WEl4aVZCNGp0UUkwRUx6djdaNXh6WWtHdS96NDV0bEd0WmtQRFFwM1ZEVy8KdHMrWTJZVDZxaFBiTmEwTDY0WmV0ZG5SYXpiSkowQm9Eb2E5N2gxQU4vVzZZR3I0Y08wTmVSejN0emUzamkwQzlMMnpjRjYyaS80MC9qemQKSTZYc2RUczNOcmRZQlZueEFhUjVTS29TZlR5MnlWMjhEK2UzME5GTFRxamNIL0VkQkZEVzZtTXp2bEQ4ZUN1V2ZNTjNtWXlHK1RIQTVpVUgKVXhSdVdMbDVVNUJpYnZzMjB6K1FObkExbU9BaU1oT0dlU1Rkbi9WZ3V3dldZZDl4R2FYQ2V0NXNnbVhaUWNqanF2NGVGZzN0STVGTEZaZEEKVXpVdEc5KzM1bFcxOHdCcmsxci9UK0FVeFB0Mjc0N3JKZTFnbHFSdUNsZjFhTmhQTms0dVBZQjVZejVLSDA2dmJmWTJJNFVOMm91ZERqYmkKd3lVeXZzZ0NRUitsY1EyVnp2SjZ1YWtiaXJaY0lGdUM5ZWJ6cVVCU25laFg3RUtNSzIzdDJiMTFySmozRHpoYnBYR3M4WmQ2NVNNVDdLeDkKeE5tc2c5aS81TDl3RytqUTJySHpYRUN0cFFWM04vMzlQVjlhOEVDZmE0Y1Y3cmNXeW14M0NoZTg4WFMwN1JRT0kzTVJtWmxabFlMYk1hdGkKY0RzMnpMZ1pOWWZyMnUzRzRXRHo1ay82Zi9YbzZPWjd3OE0zWDYrZ0FBZGxONFpJYi82MFQ1U1ltWlVleFBmYTNhaVp6a2g0MDBka0dST2MKZGxnOThIRWNlTFEvMWtXNVBsaXA0U0I1R0wveEFEZXE2TUd3S3JFUDRmeEV5R1o4ODZkMmZkcmIrUDZFQ3FucWhzSFd6ZXR3eTIydE53UG8KaHNxK3dMbkxmUUp4MHg3Q0RxeVIyRWM4Q3NIb0VhTGU5QzhRMllBV3JjZkwwSkJSYmEzemhFSkRlK3ZtSmZvWjVwbWFNY1dJZkZOdTN2d3AKRE44ampKYll4Z0Qxb1M3bFNyZm9xSkd3V2c2ZGhEbllBbUVOekJEYzE1NkhTUXVFUVgyQmU3S2g0ZmVncFh2ejByQnJyc2tqeUtJTUhpa2oKTVNJQUxxdUkyc0JLNFFmdEszdDI0Z0Q4cEpTSnRtTWJKNC83c3JJbVB1ZC9sNTQwYUx6L1Ntckgxa2NHSmY2d05sTFQySjRMZjFBWFZYa0kKK1BIUW5JbGtoZG1GUko0QTF6RkFtTDFFSi9ickVuRkozTTlUSExaWHIxSlJ0N1JXOTFnQnUrYjdhNGl5NEhWRzRHSFhoTC9CVUZFamdnSEgKSGRtYlpxVmtlS3NLUlM3NVllWFE0ekVEUldud056eEx6VDhZZUEvZnZIUUVDUVBGMzBhRDBjMmZyc0xBc1BjZmhsQXlhOHBiKzVXT0t1RzYKanVFK0lRR0NCb2lkQ3ZLQzlkN05jMGdTSEdIL1NNZk92NGQ1eE13TzRxNER6R2VLYzZBNmNrWHFLZllFL0dMejgrWWxjMkFHaVBTdzMwZ3YKUWxGNHJETDRWMUxudFIySi9jVHhzSDRhYktuL21VZW9jWC9hdXdPUUtZL1lkVkFORXRjRFdLVmVxWWNlRnl4cDEzQmRFU0JibHBxbTlxbWIKNXhDSTdONjhCQnFsNjJOZzNUR2pBazNxbStjR1NIMnZRdlBHVmk3MlhiTjdZQytiZzREK1dVRWtCc3BPZ0oyVHZHL25ZYW54aDkrRmZtUXgKOCtGNktYcjJnTVlaWmhmam5VQWZhanc4azNQT25JTWoxQm1tRE5namtKR0daTlNJOFc2eS81Um9BanJsNWptb0ExTXB1K0x5WFIvYjU0L2cKYTlZdVc2WlFQQTUxMzhhZXljNkdSNWlmdWZsV2lmd0k0TTZlZ0ZLOHJlSkp3TXFvbmw5c1JKbTBkV21MRjNCcFBRY2dSOUovRnVXMzhseVgKelFQMVQrbnF1eGMrdlB6UkNTalo0dWRISno5Nkp1a0EyMC84N1dyQzczMzR2RDZYbEh1aHh3czFYZW9NZjNUS1AzZU4xNFMyc0s1elZmZUIKOGkwLzc5ZXovK3Y5QzFRYWZzdXVnOVpjdFUvd2IzeVdpcjAzcU1kN3pWcnltS3NRdnk5Tlk2b0MzN0QyNk9jMTNPbWo0Mml6L1lYN1MvLzQKUGIzLzBYZlo5aWY5L2xlaER1eXF5Vys3QnJCVWV5KzR6dThGdHYwdDNwTzZ3L1lOS0FJL0IwVmYvTVduUGduRlpiczJXbzduZTVmWHdQY3YKODN2MlhONCthNDgrUXcxbHRKL3RRUHZ3Q2hXUWNaL3ZmUFE0KytrN0dBMjJBdnJCYjF1N3BaeDhtVmQ3bTgrcGZycG92ei9wL2ZVZXgrZXEKUGRzRlYyeCtsQ3JJRit4YlZDdTIzMjd3aVMvNHVIem53M2Vvei94ZDZoVmZ3amhSOWZpUzk5ODFiL1ZKcWt1L2I1L1I5Mi80ODE3d241ZzkKeDltalYrMWFuQmQ4N1JuTUc4NGpLVVZUczluYWU1VTZzSTlKRC9iV1dhaXpmbnlLdXJCU2pQMHBYNzlBUmRUSHFINzdocDMyVDB2ZDl0WlAKcEs0TEN3QmFybFNMdmZ6eENkZDhiVlZvOGMybjdkMG43Wlczb2NGcTcwdExWNXF6ci9QYlQwSm45dFlyOXU3UDdJcm5xYmlyLzUramVpeXUKOGhnMWVwK0VWdXV0SzdldTMzckgyc3pydWdMd28zd0g5OGRWMzZRQzhHUDJxVFBlL2tkdnZVMTFXV2dGbjRMR3JpdlJ2ZzVkWGJUTDNuc04KR3Ixb3FmMThoOHF5MEl1bG1xN2FqMVpiaTZYaSs1YTEvSlEvN3drbzJINThrdHE4cDNpOWk2N0srMU1vNU5yUE4xMng5bW4yS05Sd3BYSDgKVXlqSjRydFUyOFUzMzBCLzJHZGZvVWJ4VTY0Zy9EcnZmYzU2NkJyNzRZcjk5YmJmNDVKOTV6SDFKM1I4K2UwM3FiMzd1blJ2N1c0L0RSMWUKcXZOZWtXWXl4L1NFN3U5YXZXZnQvUk8zcnZDNjZMM3o3RnVNeXhsdjMrdDZuK3JFMERHbVRpLzFkOUhucDJRVjJtaTk0djM3SmpXYlgvY3gKZlJ6UFEvM21zeHlaVTlRZlBvL2ZOQzVmOFAvOGt2LzNsLzIvdityLy9jSXYvZkt2L09xdi9mcHYvTWF2Lzlxdi9zb3YvOUlYZm5QYnpOLzUKdTl2LzN0Ly8rMzl2KzkvOU96UGJmdk1mL01OLzlJLy95VC85Wi8vOG4vK3pmL3BQL3ZFLytvZi80Ri84eTMvMXIvL052LzEzLy83Zi83dC8KKzIvKzliLzZsLy9pLzdYL3hEM3creS9aejEvMi8vK1MvLzlYK0Y3ODZiLzlwdi8zQzJ6VXIxaFRmdTBMdi82RjM0aTRscUtzWUtCRWhsemwKRXhRcjN0d0VBMmhpaDAvZFE1U0Y0a293M084NmROZkNNV293RVZKbWpnSm9tdUI3b3RKQk5kcG8yZG5WVURFdkNrdXQ4QmczVDg3ZGVnU3YKQVpJZGRzSmhOaitETWVkbFNuUEFpTzhVenRheDgzcXN0QXlUbG9Eb0RUeXNwYkJGM1p2SW41Tm1idzh4b2NwRktDQ2JENFlnTk1FOHgxekUKTDQxMGhhRUdPeHFPbWVnSDZJVVovRTVrb3JiQTFBZE5DQ0J5TmNOenlLNnNaaDRnMkV1TUZDYjRSSFVNZ0E0by9DS216VXlhUEpmdE0wUm4KNC90SWFWQjQ2ODU2d0x6UjVOc0J2SXowVzBOTUd4em9mZTVZTm9Ha2FMcHdaQkhMYmtxcXhJemE1S2dyRFpnRlE1eVZHUlBFTFFEU2I0NXQKanhGWlY4TmFXcERXSjZRTEZYdTAyekNwYWEyMUViTm1JUDJMVjNBcFFhY2VxYnB4aXk0bDYvcmdqZG16RUZNMzJqQ2Z1VzlUNXdGUHBoWHoKYTlheVpuYkhJdXgzUHM1bXZhN3hLdnN3YWxaRG9zOWNSaW1tVU5TMUlac0cwbnh3UDQ5VVFyTEIvVWN3QllsSHBBNlFHSndvbmxpblNEbDAKSjIzMklEYXRISFhkYkZLckJwK3BXR1hkekxWOXZlb1lRL2ZsbGlKdjNRQ2lOTVJ0SXpUbDZtZzJrZGJXRUt0RWNrdGg5bVV5V1BHK3dNWDIKeTBJRUdrSHZZZkxCMGJaN095c3h5c3pjSFlYTUgza3o5aGxBT1crK1h0Yk52VGF4SjBjSEErVHZTbm5jRHNScGJJRlE0R2VHYkFiYy9pNnoKWmVGN2d5SkhGRU4zdjdrZkpOTkFNdzRYYnU1MG5BOENmMnRqWEhCNXhrUHM0VnFHM2hGQUJoVmx4UXBHaFVCN3A1dTNwcXIyamdXdUVIUFkKQWwxVm1ZcVpnRHcwWk5sZ2NEMi9VUFlrZmt2WlFNY0JPTjJpcytDZy9LcDdkeXlyTFRDZ0R2UkhzeWlud3FEeXVPOThVcnNYbXp5ak5LVTEKNHdHYkxNUU9Wa3k4UXI1YVNucFZkM1IwVUVDeG9SRXBaaVNzSUpuckxuWGNXU2FIdkYrQ2xxTThaL2RPSXBiSmloNHFSVDlpUWhBMGVmZ00KQ0JKVGh4VGN3bmlhNW00NFV5dDJneVVIU3k1SG90eSsyNHlKMEEwKzZxSUk0WGFkTDFjK0UrQUtNZjFyYnBKZG5IbjNUUkt2bWdCR3pkZDkKWWdrb2Z5WU0wUDdZbngyOE5HNENaVU01RjRqL1ZZRjNha2lNd0hEMkJTZ0hZWFpkUXB1Y05aTGRKVlYrQmZCbXBtc21MZ25YbTREZHlUR04KQlBHaWtBSU9VVko2VFhMWnRtL1l2azdkRkh5QnM3eG14c3F1TEIxT1NESmd0U0ZFUzYwblBDb0FoVnNiQTBoUlZwdldlVnRWZ0lNYW9wb0EKbzlnUjhXWkk4dkhLU3NoUlQycHpzSXBVSEVuL25IN0hSdG91bXJGbkJUMjZqalMrMHBCTk9nUDhYcUFQMWwzT0tHc3oyQjByb1ZOdUc3ZHQKY1lwaWVwYTZHL0NxSnZMbk04MjRVY2JkTXhqRnJtYXJIdUxrNmtVdWZHYXpobXlIZVdyS2tsdVB1Ym9HNHNsZ3pkb0Vrb1NaTmQ0RFhnOVQKcmEyQzdMakxNR1B2RmNpcGkwMmZPN2FMYWxHOVZnTkdBQVFlVU9MVVNPbERQU1pJSzJNYy9WL3hZR0ZCcEQwbEhUejgyaTE3NnpocE56WUQKNE5RQWswSnhaMkhEK3hWekkrT2h3RnBZQnBGOVVScGRlQmlucEJIWXA4elRiRUJGQkUyVHdTRHgvQjJNU3E1dUZJRVc2ZTZNdk9nOTFjb1EKcW9aRkpIQ0x5Q1R1SWVRQm01MHRRT2E2Y2ZpQ1FRZExwb2RJeGQ2T1p1WXFsRnhMSFVEN0hEQlh5QjZDdXNFeHB4cmZpODc0QS93VFdlTkEKMlJTYkJDallVVUw0RHNWWjE5WTAyU0l5dWMxRDdOVHg0SEU4YjNQV3hkSklzQzFCVWh4WXR4L2RHQVJPMFFORGpYZ3FOWngwcFNxWml4UUsKRWhQZ0NQYTBydFIrYTBBQ1BDQTc3d0l0c3k1bEJ5UUlNaGZXUXF3elNpNG16Qk0rd2ZCVFpPRzZFQVdtd2JFenRzaXFqekVDRUw3bmM4TWgKYnNBb0xFdDBLcExtaFd2TFZ0MEhQQnhjeEdtMXRBWndBeXlyQTQ0QUxJcEJmNlUzSHBwZE4yWjJtUTlZYjBrTHBLRVdXWEcvOVI5Wk5PWEsKUUdhR3EvczZ2eEN3OVFwZEFQTkNrdEsyYS9VaGZrQ1VYL2NJMVNpYnJXTU8vRi8xamJGclJ1bmVqdGt6SFVmWXNVU0ZSRzJMQUVkNmxZdkIKTU5CaWphZjdxdTVCb1Bmd2hHVzN5NFRVYk15UndrUDBGYWt0MUVKeW94VGEwZlljMk40UHh2WU83U0xyRmhiTkdsSGRMVlRkdWc3dEdqWmYKUVZnZGp3ZmRBeEpWdEgxQlc4dlRxYzZKczlZQzhJekFrajNLU2czeEVFSkIxbUdySGFVaU5YUTRqaTI2a09OR0JmRjdLREFSTGpvZVJ2YXQKaWdSZjE0NkpzaS9kQnQrYWtMdXJnUU5sRlFLMFIweGtXeEYzT2F4bjRuc3ZDeXRBOE1nTU13bFltb2xPU0JveFQ4Sm1OU0oyZ1ozdktONzUKMkU2WDFvakdnMVFHVmpjRW9TQS8zbEJZaWdMNU5ZajM0QWZaRVZRRWFvYW9IQWllOE1TQ1FRNkxyeFN3VkYxWWpQdXVBV2pyOURDRk5qcUYKeTlkRnNxdVNQQXMxcFRjcktrOEZibW15Z3AwVHFZNnljTzF6amc1bUpYYUEvbWg1YWVHQndmQ29IYkl3bVlrdTRqRFpGdWU0V25nbnc5bEEKVXNDZUJ6Sjc0aHJBRUdjYXlVb21kSXZvQmo5dTVyMWFBalo4ZVRkRG0xaEhPSEJBVUdpVXpXVWdsMUZjU3NqVlM3QVRET1lWd1hSS1ZWYXcKeGN0VHl6NnpyejBDaUJSQ2VUNkhBdTZyaHpoM2JaS1I1d1plcGxRcGpsUWduS09ES3hkcnFFZlVldkhNRms0d2ljWkM5cUxITGE2TFNoekQKd1ZHcVEzRjNCeTFMRWhNMjN3Si8yMndPZXBCTXFScGk4RzBQb3kxS1N4enltbVJZRW55K1lkWXk2WExVVzZoOFE2TTAraFoyWWFxTkFvOUEKQWhGWlc0THdpa0VHQlJBbTlUSEszRnR3blg2WWw4SnIyc1h1am5PWkFtcVkrQ3p2MTJpS2J0S0plRWpnOHJKSGtYU01QL2JNVlZobzVxaEMKZEhnSWswYjRDRWxiQVM3elczKzBueHFRbldWSFlSeDBjRm5oS2d1MlZWWTRyKzFiODhVQmFpZ2gxNlpPRStGaGhCU3NvSVR6d2tBSkZFVlEKWXVPaTJMM0p6bkJRWmJQUitCKzVNSTZOLzA3QmJOYmN5RWF1RUoyd1hvMzJrMDFLcngvanRiU2d4T0l5S1ZDYlRuYXVKY2twaTdxUjBnQk4KUjJDQmFhcHh2KytQcUhLSTlKNWdTWFYxOU91MUcyOW0vK2xKcGNkZ1p3U2VsbW9mZjJpYjNpTmoyMHRuSmVEUW05QW1nenV0OUIzOE91RXgKb2Q1enhMYTFBb3A2UnpSdHZsNGZycmN3VzJWZEVGd2lTYldKckk2aklJcFk4M0hTUng3YUFXU3dENlhWWEk2WVFPTXBRM1drSVNpZFBjbjcKT051ZGRoMmxlYnZpWE1FZXExd3ZjRGxTb2dkb2orRVJEa24ybEdSWGJsSk9VTnBzU09iQ2dYRVBkaDA3YkNsTXdkT2NOamIyS1lUczJURDAKaWlSeU1Xc3hwb2ZDN0JHOUFUbEZiTUtZUFgzYjk5ZUJHUEtFdW0wT1crQ0FBUk5KTlhkS0F2ZkUvSlF5dUYzdzIzR3VvOFZkaVBkcEttTGYKS0oxaTZhb3FrSGRYRXJ5UXJpZmtOT3pUM1BUTHdqWEFlOWpIR3NvbE1UUXpXSHZRSjIzaDBrZTJsdW5mMWFyanRJbUR3OHpjSHRjNTRTc04KelJLdmhrSTlER3JhczNDQXphVnZCaFpUVkdxcTlLM3JYbDdTQ1lsYkppVE5IOXhjRjZDR1duT1E3SUw5RGUzSlN2Vm4rUFZJa3VNa0g1V2IKV3lpd3diMFhnL0xsSVdWNTEwdDZTU0EycS9vR0JFbTZSUW5XSUVaczBLY0VMZ1lPMy9vNmZEUm5nTk1XRlI3NTBBYnQ4MkZVaWdJQ0NjUmsKUU9VZFF0dEloODIrdFQ5c3YzaXVyb3RXVjFpTEZTWDdsd0xaNk1pMjdUUHV4cTBDSWFlakpFQUp5eVdKK3ZaN1VVU0pCOGVaQWdleVJodHAKWjBEWVhYSVJVbElUcWFCUWUyZGdYVWZURkllbU5JZXhNNHB0RGhXQUlhbU96ZGZDVTNBUHlQYjVkVExRUmhWMUFMQkV3VkRVSVlsTkhSZDMKcmZTNUFJQjBsdjFlaEk0cnJGZEo5TkdXTUF0YWNFOEEyb0F1TUwxS3MzS1JCNFlOdTM4REVtQTFWRHZFSExDWlNvUWZOTnFhR29zWlNYczkKKzB6QUZCUkRvNENFaCtrb0lGT2FnY0U0RTZNUWxKZzRBZ2NjdXVsMlFhZ3dIa1kxQTZ4cGtFT2k0SUJadVpBM0E4aTlET2pNa3RrUlBXZzgKcUlXYjBORkRBTmMybVprWmx5NTJMYjNSUUxRY0JLK2NOOUVzQjRNb0xHR0hkdGNzRlRYZTRsZ2c5WWRoWWtWYjJOMmxBL2Q2cFB6NnRnTWwKcktOZVk0dm1ycXRVN2JlUlhWbXAwQVcrYndSTHBEbUtxSWpaaGYySVZBU1ZkZysxOUZZUTM1QTB1bjNEQmV5TDNUQ29FQlJjZGt1ck41R0cKTGVZa2RuNGMyd0hnTG9MUlJwWXhteHB4bDBKYVZkQ3lxV3hmUWE4MkVScXlQV3U0YjEwQWFZVjlwQ0MvdFdHV1duQkpiTTZ1QTJVVUpJeTUKTmJQZEdHS2l3UURySTNCS1N4Q2g0amFJdGNNYWRoSXNnTVZJZytGd0JUS0FHZEdJS01KdXdZWWYwWjQ1NlJ6WkF4NWtpUytkZ3dpYW0wMUMKSmhjczREakVBenh0bG94R1lIbmtDazZnUVd0QkJBQzNDWitvZXlqc1ZZanFjYXVNUWRrck5RdEFpbkgwdzhoeHlWU29yVFNFK2llbWdkM0MKbzBRUm81NGtVTzRxdDB5SUdIcUl5RHFxMnllL0hRTkg5YXdpcUg0eDNGOGl4eDdYS1l1MkNwbmliTzRkRDRhU2tRSTZCdUtHTnNHTFNEZEEKellRUXJSblpkYVB1c3V5Tmd0TFhSTW5PbUcyeDZ0WUZsRS9CSzQ4ZzJBZ2lkeWl6SUdNQUIxdWMyUUdTV2xweTVZWmw4Yk90RFlIVDZRZlEKZWpsT20xMFV1T0QyN2h5OU9RYSt3V0RtSVU2dnhneHl5dVdxZWhkMkxTZFV6akVlTFpsR1FhZUxpTUh1Y2RucjNtUS9qMDg3S1hCQnllK0MKM1k0K3d2VGpVWXUzYUg0TElrZ3p6SlV4b01QVHBPRkd1RDA4ZXRRc2tSdmlZdE1iMWYyMlZNYWJGQXVHMUpXdDh0bUlpMjJpY0VFekdKVmIKUWNNc0N4K3h1NUFjd0JVbEg4M1QwMHRTcUdDTE5SR3F5dC9DY1VReXVnd3F1eG0ycDA1QmM4TnNFbGg1NkEzSHM5YUpVZFM0K01QcUlHS2UKUlpDRFNtb2ppR29FSlNDYmxDWFo4S3diNFpCTDF6U3RSMXlzd01ZVkFiNlBkVkZJamNabWlPRHhqbXVrdWN0WU9QWmRUZ0MwY0hzRTJQZTYKVU9aOHQ1SmRYUVhxdkZBd0FidUVYWWUxY0pZV25ISGluYW9aRG1HU2lodzh0TUdXdnI3UFFoSDNIcnIvUHNwQ3dIZWQ3SEh0N3YwYkNBNzYKRHNuRGhFcGt5T0NGTzFEc0RQU3FIL1RtK2daL0Q1UWJVbXZLT0p1SWpRTzVlaTJTRkQzUXRxcS9mbmxzeDlob2ZLVCs2MHQvOVl6OWlZTFoKZi9Xcy8vSzMxeDc3MjZzLytOdXJQN245ZzFkdnYvakdaMmYvVW9DOVQ4LzlRSWc5KytYL2VmN0YvK3Z5dWYvN2hiYy91WHI5azNlUGYzTHQKeWMvT3Yveno4ejlBcmZvM3Z2L1orUXY0NHBudmZ2YXpGejU5OXZqdEY1Lzk5T21YUC8yek01OWMvNVBQVG56LzUrLy84ZTBuUC9qMHhRdWYKWEgvOWt3L2UrdVRhOTM3eDZKbFBuN2orODZlZS9QbnBHN2UvK3llZnZmek03ZGRldEJjLys5Nzd0My84M21jZi9Qa25WNC9mUHZmcTdlKy8KK2NtN1AvejAvRi84NHV3em43MTU0dWMvUHZIcDY5Ly85STkvK01sN1A3cjkvSVhiejU3LzlQcWYzcjd5NUdkdlgvdnMrS2xQbi83TFQwKzkKOGVuNTA1K2RQL1BaK2V1ZlBuUDk5anR2ZmZyaXBVK3Zucno5SitkdWYvK0d0ZWZUWjM3d3lmVTM3SlZQVDcvKzZiblhmdjc5bHo2Nzh2VHQKdjNqVi92MjVQYzczSHNmRlAzajU5b2szcmMwQkoyeHM3dDA4Wno3REFLWWJKbks1VWdLMmpRekptQ0M0YXVnWXNHNENDWnA5MVJQTUNiWVcKOHJZMnc5MnBzU1U5SnNKcjVlWjE1SFRKUGhkYWlKWGFxUklnN3diQldLRUhIWDVhZHdkaHZBMlBoSk9Wa0lRQVhnSFVSNWtVZ3FINk1HYkoKVGRlNTNNSVpFeTZ5cVQzQU5SQXptdEM3MVRIaGQrSTYzenhYMXBzM1g0WjlFU2paY2hqd3FpRnpMa0JhZ203UG01b1pkL09uYTJEcG8wU1cKWTdJRUloT1pWcmNnVGc0ejllVWVhdFU3Lzl3MlhRZFFOUjR4cTB2Yi9wR3FLQnZuYkE4YUIyVkYxVnJyZVd2TXpaZFhSK0tWRUJqcGZWZzcKa3N4ZVFTK3pWN0Z3Mk5SNENrZDVFNjVHR0YvWmM5NExsUmZzQldnaFVMVVNYbm9KRmFjKzZobjJIN0htVjQ5RUFObTgvQjVuU3hrd3ZzYk4KTWt5QklaQ1ZmU0R4WG1ZbUE1QmNZc1RRWms2U3JkSy9GV2pCSm1DUzBmT0RKb3BxbjJSSjdBKzg1RGFLanA5a1lXd1ZCYi9LZjEvbHU1ZjUKMWdWKzdJbW9SSzRpNVNmKzl2U2YrMXY0L0J2ODl6Vlc3TDRXMTFGVjhtdjg4SE54bmVOc2htNzZHcHR4SnI1K3VsdERxV0t3Mm5nSmNEVHAKd3QrK2VwTDF5OC93TStmNSsybisvak4rL1FLTG8xL2xpNmVqU1JlamJMbnUvbmpjNGtKVURiOFNiMWxMWHVBckYzazdOZW41dUplS2xML0IKZXVySHZhbjQ1VWQ4aW1kNFIvWFl4YWhRL2dJTG5EOFZkY3BmNC85T3E4NDZyNkJPdUJMMXprL3h1ei9nVGMvRlhYNFE1ZDdWa3hleWV1MGEKdUtlaVNEd0h6dnZaT3VxRWx6bkhXeTk1YitNQnY4TkM3TTlISjV5S2UvMGdDcmVmWm0ra2F1c3ZSVWVkNUlmVm51L0ZUYzlIajZubE4yTFEKN2Mrbm8wcjlqK0plMzRzdTBnVlZFdjREdnFqZXZzaSswbng0SXdaYWo2TzVlaU42OVRnNzRRMDI3d3hicTY4L0VRMTdISzk3WFhuTlo4MVYKamM1VGJPMjVLR04vSVo3aVJaOHEzcy9uL2JudzdsbisrMkk4NEt0eHIrTnMvN1dvYXE5Ry9qaisxSWRQOEpHMWdrN3p4VFJiVGtmelhtT2IKOWZ0WmJ6RGEvQXdmNFVxMDU3V1lXbS9HVGRYVU56bTR2SkczK2JqcmQ2REFGOHJIa093UzJmWHRNL3NEeDFJOFhCNHBSVmxNQUJaV1pwT2EKeGRKV1lIT1lXR1BKTmRoQXF0MndWTWE3VXBURUZ1WjFhYjYwYXpldWZGQlhEaEJRQTdXSTd1cHd2TGtDYTlJMlpMT3VnZlI1Qkx0VFQ0NHEKcnJJZkpWMVFJYk4wdlkyYVNHZ1AvVHlna0ZiTkk2QXZXOW1qMmZaYlA3MnIrR2laUGZuU1p2QXNPa1ZLWWtmRlJIMmpGS2pFcTB5WW1UaUcKMEh4eHg5ZjI3UndtdG54Q0lUVUlPaWlTemJiUVVmNTZTUTNpMGFBTnZzMFh5VWlzeVNEQU54QlVXQmtpbzZIOExuVTA1VzNYU1hsM2IrZUwKZ2Jtbnpwc2JjbTRxNEhtcm80M0tJcnRtQ1BvS2lkdGEyQnBWcDZxM0RxVVJmQWpGckV0SGdHMlZqRmlQZXpHVzgzU01IMXliN2NCVjdoRkwKNHVscjlyTW5ZUnRWNElOZitOV1VWZnhHd29ReC9XOHUwNkRiSHpnbGRva1JiRjRGNURpNXBCU0YycUkzQzlsTnU4dmV6bElXNEtSemdjNDAKUTNtZXByZW54T3dxK3dkOTkrbm9Yc0gvSFdIUWR0TENUNGx4MUxRWWk4NFpLUk05a1owejFsUW9ab2gxUFJ2bjhCeDFNMHRmUGNPb0lBN2cKQ042K002MEFyekNKRkU2ZkExQTMxU3dMdFVDK09tV2dPcUd5MGlrY3hXRG5kekxwRnhKYVpTWnFqN05sWnVjQjI3NTFiTkZkelMxekdjSHcKMkpoRVluYzE4dTZTc3dPWWhoeDVUd2gydHhMMEEwSmhVbnFOY0dMRk9NRUtqSTNKeG1RTG85R2dKQmV6MGJNN0ZxblN4UkEyVVNOZVBSZ2EKblhqZWU5aEQ3TlBBb0hVb2FMbmxLakN1andHK3dWamN2SWp1b2srUkxSa3BGeW94eFc2OTZmbEVtd2Y3QmFRS0RpUFNQWERpYUNLdHJvNjMKTkt3RE9HeHJwSE9CSThuUzlzT0JvOHljRDE1TElRRWtCMmlMeEM2MTdzQ2NlcldUbUV5c0lzZXlWaW5IdnRDdFl2UlgwMXpiR2tNWkJWZXAKZXRSK0VJdll4NFBWYkFVWTJBby9uaHNKNXlSWnFXeEJjaFc3Rzd0ajVVRlJYS2dTaHgrc1NxMlQwNkJCM0hhRnVlQXZwMzF5WnVZdWVxbkYKS09VSjRYSFU4ditRamlFL2FlU3huQkY0dTV1K0JobUo0SE1zcFl5QXdrcUlHVDJBQWo2c2lMWlNUUVlhODlCS3Fyck9DclMvSEVra3hSSmYKQzFJRXFQcWRoQTdZUGhPNktJdUZZM1RJNldUWllyQk9xZTBLSWYwRWZvcTRGclNXbU1GblN4Mkx0bjJtU0pDUHdHTVVoU0pvZkxZVjE5MmwKS3AzQ1JSVDlaUCtGWmtIVmY0anMrVEZvVGNpWU1sRVBySVQ1TWVDRGJvWjZGSEVoeklDV1BRWjJ3T1E4VmpRZzR4WmZaRGlFOFF4WGJZRDYKWmI5d1dKR2pFaC9CVEFUZ0VZRUpzSTlaMkxLSktCc1VIWkIxdytNeDVrbEE2Y2FYWW03WWJ1RTQxZGtVMUthcUtPWVJUakNXajRjT1VjZTEKMDd1ZVpoNU9pSFRiRWtZb2R1cTFkdjBlUzlvY2drT3NqWHVCb3hvMjRLTkJhV3k4U1hnSmM2dG9uK0lUL1lFZGluYklqaFpkL3dPQlhTbCsKMVNUR0NUZmtWY0F4UGNiOWlFNEVvRzkxa2tKekVCRkhNZ1dEWlBzenF5a1BzWDVsbVBnY3B6cEhiMVZCYVdvemNwMzNiSFo2SWh0alNibjcKWFFsYkhJQW4yM042dmJHeWgydFFQR1o0bDdPUFcvOUQyczNzeTd2VGQ3Y2F4S054Y2hLWnhSeUs2S0o0SXB2WmVBR1o1d0ZyQWRnR0JoblgKaW1zbUFZNmJ5RFAwSnNzSlJEaWdXaktValJGOEc3SjM2MDFpWmxIY2U2MVFJWUs1VXNVajdCNzNKVXZoYS8zQVlTSU9xbVRqVElJKzF3bysKMnJ2N0I1RVlKUmlBcFI0ZVV1RlRZdTRvQzRRc1o2QVJpb01SaForVHlnUDVzSUxsMkZXMnA1dkE3aEdBY3lRcFZtc2Y1aGZRS2JZUEtYdnYKUURKZFdmcTcwT1A1bjFJMlBLRExxNUNjZEhkWFFWL1lOTEc2bHhhU1hYSkhiY2JVcnNXaUxwWUNqcnRLWkpQQUx3bjgyeWdhalBVV2FrZTkKeVdnZ25WNmlzc0VCR3lIY3ZOUEZmNzg5RXp1Vzg4OWhxNGhSL1FnMWhDcnRCd0N4ODlHV2ZjMFF6ekh3a09UOVZka242M1l1MWtJbERBSTUKNkFnNHEzQ0dNQmtJSlI1S1ZpU2dqTUs1cnBUTjRZcGFiZ1E4VXRiYlk2R01TeFllZzExS3FVeEJEakRYV0NPTzloVUNEUnVWRkk0ODVkMG8KZW92TjFWWDNiSTlRWXF1aEtDaExBRU1kTnVXUzBobmZmRVU3UDA5c3g2K0Y1VUYxSTJ3MHhQeWdGeWxDczYyZGt3Z29zVStYa3dPU01QOE4KdzdaTWtrU0dwMnJ1U250WUF0TTN5bE9PV1RkRzlGSDBTZUhaQlVveFVtbzZZWW0zTWFCQUZJeWJwOWc3cTZoVDJpS1pYT3VibzBPV0lwWjMKZ25VcmpZOU1Ua0k3RjQ2R3NZNitiM3pNYkRmcm5QVlFHaWtSeFNrMHNaUlpRc2F0STJPNHMyUFJnUlJIUzZIUldNbWRGQW96di9aMkJKdTQKRzFGalYraXgrZVU3WjIvaUVEUjRIWU10UDNYSGFUOUl6SXIrZzlucEVudnNqTU5Va1JDbW5VaXRYeUo3YlpMRHBORTZjc2k4YmVRcVY0M08KMzVkbTJCcEFGOXc3WjFKeTFCRWhEUG1ERDBwUTR1L0dMcXFUcmlHcXFPY2VtbUJPOU4rWTBzWStQaHZ6WlRhaGdoc1Znc0N1a1BJd3pSSTEKYVdGQzZ3aENub1RxS2NSeXk3T2hsQ096SUhoZmxacDQrdmt0Y0ZvUldFYnI1b2lEenIzK0gzWnZ5aC9qdms1SmVRUzIzcHFMREZCOG1aWWkKZGxhN3V1M3VuSDhJWEZaYkFSSXFxQ1pETVZoQTFuWGxoSFA5VWloUEROYWFvdzY0bW5mdnlicS96NlFCN0kyalEyUnorOFhLSklGcG1nUUwKM1kxOXB6c3NqNWE5dGQ2Z0hPMkJtRytOa2piRXZTVDhlUXZyYjFSSkd5ZlNYY202WGtFTk1WcXFXOGxIaEMwZ2tBSHRxejRKNWE0aUNaaWwKRXlJS2djYXd5ckREQ2RRSGo3UkVEcVYwWGJVZTVwb1RVeHFxVWRxMEoyaFlwMzMzb2VTTDkrcVlPUWZsT1VDOVN5K1kyWUZkbmdaVGs3Q0oKck4rbklnejNnY1dzQ0FHUzhZSUtxQkFqMCtWRXlBdWlJYnhXZDE5YXRTbkR1M21md0p5RDRTVEJYYitVU0N1b1B1eDJEanpOaWlPb3ZrZFoKdnJETGNUZG9iS0FuQ1V0Y01WY1JpSnFlS2cwZFRQYTlLL2xaeDBEYXpFOWRWOGZvSU9GYktFOEFBV1pQU2d2TlZBbENTL2pRbk5kSjQweDAKY01mTUZxdFZBczBoR3c2WjU1UVB0N2tXR25MSnNDeGFjbFZaSUpnK0pFbkQ0ZUFkd0lWUUFFc3JvRS9MMTNaZ1YrUkkyY3RDU0h2Z1FoS0IKb1ZDbFZCNEhVclV3QzU3b3BySllxNDVDUDE4WUo4MGY5SjlReUVDekpHVEU4ajVVcFdkcHRpSk5DZTBSRklSM1RjeUtDc2MxOVRwU0ZHSkcKTVgvazZZWCt4ejN1WnNYa29scGZUOEJ2S0JzZ0hXczd5RU1wSnJNL1dVRUJJZTRzcHl0dlgyZ2hCYXJFWkROaTU4Tk4wejE4eDQ0ZGkxNTEKaGI1QnEyNkw5UW1mM1YvQlBRS1kwaVFNY2xFU29nODluWVN0Tk1zYzhUdk1xWWRTTE1qT0V5L1MrVkNLRlVoSmtER0ZpaVc4clFWZVlvRmcKbGFPc2s3aFJKV0J4d3JNVGpBM1JuMTI3ZGtFVWJWQ3NnMldWUEVqSERNQWVwOWlLejNZQnJMcU5QY0ZPQUJMWEJ2M0QxWVI3eUdMVVhkMXoKYnhYMnFZZ2lMQUVjWkpSQ05XSHBCdzFYdmFoNVdGcEhxZ1RxS0JKbXEzQjlTbGhHVW5wRS9FUlZRZUdSTXJPS1RRTG9Qb0dXUW1GbjJ6YjIKUGFJaVlWL1pSSFg5TzZDUGFRTWhyNE1DRTVMQjY0NHJyM1Nua3MwWVZWaGswdkl6V3dvU1R3NFRVemt1THk5bnJ4MEtrdEljMGxteW43L3EKYXAxbFg0Z0JrRC91VGxiQllSdEsrWGxwWFFiemo1R3hTdDhZd25OZEI1Ni9hUm1aOElWcTgxdUhWS2JjcWtHZ2tRWXFLNGIxdTQ3cUs5SG0KTGkyM3dBNzdDc0RGVjVNUEFlNE80a2htYmJwSEQydGtpMXFVOG1IcCtaUmgvUitwVk5pWm1qU3VzZHVieUZOQ3FNZHpjdFkrOXVRcVdrRGYKbEdORUs5THN6bXBrcTJlc2RjWmpVUWR6Y2o5bkU1MXFmK2FIRm81eTRBempWb1VpRFNPNmJUWmFMdGtVc0F0TVFWKyt2NTlncnpOZWw5aEcKRldlaklvdWhEVlNVblNKb0J2ZlZsZlVGRkh0bUV2Sk9nSEdpRVRUTWhHSjBVVHhYUU1oS1Q4bGRYdVhFaHV2anlyRWt0Z1Jvd1FkUTVJN0cKTlhmcGFRNDM1ZitLU1RIZWdpSVRFTGpyOUNFVWhSaXNKUlE2ZGJEbHA4d25GTm1kUWtSdzlLMVhXRmc4c1NwWmtKUzh6S3Bwejk5Z3BNMnYKcW9nem9KdjlRblhCWk5EdlBPcHpVdmJBUVlMNDhlUnVEOVV3Ulh4MjdtSGRVQlJ3R0hnMUZLelhCNnFqeGY4S1dGd1paa2xUSjlabk41MnIKNCtDTkJqYkh0ZzRBRVhuQWxoRUJQMUlSL1FjUmIvRndxZnEyWHdBb2UveGd0Y0lXS2J1VGc0U2ZPTGFZWlpSaWZUU0JJeUhjVUpRT21DdzYKclpLbFFMdHpCQjhSekFiaHVPYUtVR01TMXdMbmZvTEtZaDl4MFVuWDhNYjRBaHZDNDMwaFJTSFdxNGkzTTBFakg2enF5ZEtwRWdHNEFJTk0KT3h6a0hKTlltZG5BZTgwZ0kzQ1Z3NFdLY1RWTDJrSDdSU0J4MkFjQUhVQnZrV3NWS3g1STRWUXJULzZNOXB6eEVQNThLSVp5c25LUGRYQWoKSXAvQk5pa1NxWG91TWpYY3FjZmFEd2l2SS9ZYjkxRFpyOFRRYmhKSXJiaEwreTRReGdJVjd0NjFpOUJwM3R4TG1BVW1oZ3JGWGpFYkcvS2cKOEZzblZnT2hOL2ZBNXRwd3pEQnFGYnFTZW1jWlZiZGt3a1FVcCt5NUg5VWRiM29oT1N6NkluWTJ3TjIxK29zRWIwNGMyM2trSkhhUzkwSnIKcmxmYW9lWDRJbnZzYnFMSTkxUktyeWhIVW9mR1pVcVdyeUlJQzV2d1FNVUdSSFlVUGw0b1pqOEVpNEhBbVR5WkVqSTFlZUJIS21IbllHTTIKMkcwcEI2OVJScEZOTDRWY3dLWkMxUlRNQVdoeDhzb29mazYwSjlBSGd5MUhRUXFKckxYUGlWcjJCYVRHT2NOY0RBT0F5YnBSNFVTV3NGTmMKaXFyRUUrSmptUmlDUVlGMXdPTGpMRk1xd2hUZVhSa0dkTjNqckhBeHlQL2dMcnJxY1RnVzdtbDBGWitUVW53VjJBeXpIZFZ0b0lhUG1kYUYKZG9BS1BXdWRyd28zdTZ2WVhXM2kvNHQzcHBqTVFncHc0Q1NCczBRSDBqTVNDMGxWQU1WbVpCZU9VcXpBZHM2UmJTM0Q5WTFrbzI4UDNkaloKTmVscm9xQ2oxNXRsaEkrMnl2YVp3cnlFVXRHbUZTSHhZWVJBSTkwcFFhcHV3QmdqTVpLRnc3d3dSdnRqYjU5ckNTZWdZS04xVlA2bXFUTnUKa2dSQjRiaFYrMlU1bldxSm43N2tRVE9VdmtNY2hkQzFlWlgrNnl3c1FPbmNjNlFVdWdQTU1kVGU3YXlGRDdaYU91dFJDUHB1RVVERGZzbysKU044V3lvZC84NU8vK2VPL09mTTNmL1kzWno4K1FaVzNTLy9uTXhCUUdzS3RoTDlmcWNJbWR4ckNjeHA0YW81b29xcVpUVmVlUFh4M3ZGTDcKNTJSNzFhNkdSaVJOaXd4cTBzNWFxZllGWGt1b0xyQTQ2ZjVpN2pzd0MvbEdWeWxqZEl2M0NBaHZQV0RWRmQ0dHVHYjFnSG9IYXN0Z3hjRlgKaVhaZEpmQld3d2drdnRBb0g0OGRPdXlYVkxPRGFscktHRE5yYnJZQnppTXA3K3NwRlF1cVVjdXJaODlqcjY1QXB4Q3VkeW4wbCtCV3FyMWgKYlE0OFdoTTZkS0Q5T0dpcGNlWmY5VWdab2dwVjlBdmdWOWI4bTVkUWRDR0pTNkRlaXpYVGJKMUhGSXVzbVhaMzJKaG5tMWs4SlcyOGEwaFgKU0lFTkhBbHBySVdzUXNVaXFYUlpxRmQwaFVwRWIwbGQ2cU9UL2hwK3V3Z05wZy9mKytnNXFpaGQ1NnRQVUJNSnVsTnYyYzkzN2YzTEg5NmcKSGxQU3BhSXEwblgraEk3VkI5U1plamVwU1YxcTlhaWs1TVM3dkJQYVNSK2RUTzlDQStzcXRaV3VVclhwQ2pXdzJGSjg3c09YWEx2cXVuM20KYlZkS2NvVW9hVnQ5OUp5OUF6MnNSL1dVU1VmcW1pdE80VGUwN3pqNzREMytLMDB2YVU5ZFN3cFpwNUlHMUFYdkRlaGx2U2ZGTDN5Q0xjUzMKdk0zV2xsQjV3dDBldFo2RHd0UUgvcnh2MjVOZjRIZXZ4bSt1N3lTOUxId1BxbFR0ZmRINkcreDF0Vm1LWWxRUTQ1MmZZRis4eTcvNVhYdnQKVWJ4Q0pTcU55THZVL3BLRzFOdnBPUzc3cU1Wb1BVSDlxNWRpM1B4elY3TXJYNHVucHVZVzM0V2FsL1NwN0g0dlU2UHF1aXVPUVF2cnZROS8KbE81eG5TTjZ5ZHQ3QTMzcWlsWVlqL2Q5OUVPVjdLcjB4ekNXMXFjWU4vWkI2cjhidk85bDZvZjlpUHBaNkpQVGNWL29tYUV0UGxMU0pQc2cKWm82MUVDcGh6OW5WTkpiUGZmUzRxNGVkdEcrZTVEWGVwc0xhQlNxTG5Vclh1L0RoWDZUZVlGdjRKREVqTHRpVFE5ZnNHWTdSQlZ6TFIvazQKbnpZK3AzbDJuYis3cXBlTitYdWF0VkkzWTc5ZjFXOGZmZGZueG51Y1I1YzRkNkZCeHZaUnJlelpwRnFHc1gwZlQ1UG0vWHRzdCtidTk2eE4KcCt5cUY2R2lkZXZzclRjL2Z1cldxemdwWEJWTVA2VWhkZzJxVUZLWGt1NFhWYmhPM1hxRHlscFBmL3drbExic2M5TERDcFd4K080VmUvVlYKNmxXZDBHc2ZuN3gxeWI5eHpmVzR6a0c1akFwU2ovSEVPb3ZmN04rVDFpcW9kYjFKL1RCODQyMXFUMEZaaTJwVzl1NDdkdituN1RkWENiTXIKMjNQZ0tuYWZkNkNxUlkweWFwbmR1bTR0T0l0djJUZk84RFhvV3VsWm9SbDJQdlhHMDk2K3QveHpKMjlkdHYvYU03QWRwNUttR3ZYUCtQbWYKaFI1YlBCdWZ4dnVONm1KU0xYdFV1bWE0RXBUVStHem9vVGY1UEQrbDV0ZGJhSXY2Rklwbzlob1V3cndQN0hsUFVudnJjZnZ1S2JaR0NsMzQKM0dYMjVDbnJvYmZ3Uk93SHFzRForM3dhS1lsUnNlME10TTNTS09Cemw2Z2xkZ3BLWmxBZFk5L2pqazlKend6cWFQNDUzTzBOOVlTUHRMWFUKNzhiV3VMS1o5NzFyMHIyZXh2Z1Z6QXlveG9YS21WL2xQTWVTOCsvV2EvNjhKeldLVkZSNzA5cCt5cDcvOVZ2dm9JY3hFNjAxajNIYzNySFgKTmNQVTU1ckpiMURwN0cyTXUvcmVQdldtSytXOWd4blQzRGs1Vks1REZXbFdwVWFZSWR6ZGdoYm0xK3MxZjFYbk1vRnZVZVZhV0xpZU85MmQKTmd1V0dHTXcvaVh5WmFhYjhGTzhXTlUvVWc4SFJLZDRqbzJ3R0lSa3R3RElxb2dyMnV5V3pjWmlZcFdERnVHcHhxVUZwY0hwU1NKbTV1bHUKVC80SGFxMGFNY2pNeVA0R2kyUzMyZWc5U2FhcnM3eXJCZmhVRWlHQTUrQUFId0Z4d0YzMTZLN0VlV3FWdzNHL2U1OUhOQWxyQ21nSWRZUzMKM0l1c1JsNHZlWFk4N00wNi9HSVRUOEYwU0NOTXowNUlMZE1KWVVvR1pEV2EvSGJkSFcwa3E4MnpOL05mZWVqTDM2TEcxcmVTbFRTcWxMeGIKZ3BoMm0rbFpYR3F6SlJ0bUtWbDN3ZTJhbWJrM2FKT3FGeU9vSk1KTmU1QlVYbHdkSkNTajZpOFh5cnliaXdxemZtOUhvaHBzT3NJeS8xdFYKd2lwUFFpVlZkMnRqTUhLUm8xQ1FRZGloTjFwc3hsdUFOaXJ4QTF6TzVBR3lvMmpXaHk2VGRkOW1lVXo4dmIyZHhocnhpRDV4Vnp2Y1NXV3EKQi9WK0Y1VXBsaGFpWk5QeWFJTVJ2cFY2MkIxV1NlMUsrRFhPTTR4VTVCazlnbFZYRFFBampXZjhVcXkxbWRtV1BKMFdLZElOeGh2OFcxY2kKUTJqWWRlcnEwT2tGbktEN3Y3UlRybzJCTHpMWVMxWXlDTTlSdm9SOXBqaHBlUDFydUtMQ2h1Wi83MXRiWno1aXBOQ3dPM1AzMitSQ1plVEIKY0xZeHB3NGVQRkV4Zlhsc0s1WEtaTGtnQmdVVlNoYXNWdTFhdS9GU0N5MWlaRVdVeDVvbFF4bENxL3RINkdoYWczZk1yMnVLeis2Z0dVNVAKcTNkWGhZcGtqQ3QwV3Urd1ZwQ1puWHFzakh5cnFpdjVxd2g4YUpHMXdRV0ZJK2prUmtVUTBuY0RsdE9zcEZobGdjcnl2c2p1YXRkUTZGYloKeXBwdkFVQUNtZ3FobVhDQWphY2dtZkoyVkJnN3FqOHBGQWZxcGpoVG9jSkxpajBPQ0E5QXl1Vitsb2tva0RkYWFnR3U3YjVqMTJHWmJGd2kKR0RMY1FJb1Fjd09kb3k4MElpTkpDbFNGTTRlS2NSNVhBeE1QU1huNTBrbHZzRGRoYlVHYmFQM1JaR2ViN0lQNHVnK3N5clJ5ZHFEM2JXUHAKZ1JzN0FKeWdqNWxJTUdYTjJJRFFpQVE1ZmRVbVM0MjRobTNiUmNJNU9TUU0wMU8xSkR5QlR3aUJqM0czRW5tVGtKUm11THEzczdEVXdoczkKeFJFaUxUNVQzVk5GWm4xcElTWDRvbndpOW9lYWFsVGlMWk1jU0RrNEhGU3JuanZ3ZkVGVnFFZzFnNEh6T3RBZUFCZDRmVmlyL2wyMXI5MTMKVWdWTHdKUVoreWI3VVZFOUJ0b1NiN2FZYlNIWTZGOVB1cnZJenU1ZHUzNGJNUlRYdkZocUlRK2tlV0tVOTNaMnpDY2hvYlRtQi8wSCs1R2gKS3FKZ0gzSVRya3FFQVBSUStCM1JEYlBFZ2lKbjFIcnFsVEVXQWFab0RyVEhlTURTT1gvbHNiTXNaOEdkblNpZmxQRnVONjdkYmZTL1VLa2MKWG1ISG9pMVNUZllrQ0lJYWgxQitRMm4zdmdOSUVURUMwcm12N1RPaHdqdkxMVTZmd1ZjdjM0UXZPTDdodDFLOFpYSHIyR0xoWjJlVXdVT2sKMFhNcGpPZHV1ajVFdDgwTEZBNmdVemEvR1hqSWVtbmpmNDVoNlZLdVlsVjk1aklDSzVPV2ZkRHlRYkVGRlpIOFB5cUJRY1hqdGdCSlE0U3QKWFAxdjQ5b1BWc1hER054bHhhS3hVSXZDbjlpdjMyUnBEV0RKOXNRQlVBQ05oRWcwRURGVnk5WG9jbE1Bb2dlb2xpNjJOZXJlSkNCK2NNNDQKZ1JKeWZUNXA0dlVtQjdMTmZGU0U1cU1UNXlhTW5aS1JENmlobHlYajB3UHJXQktFcm1KMmp1aFdLSWJRMFdIa3pyRGU3QytjSUJnc1QrNXkKMjFTc0VhRnhWN1FwS2JsRDJ5ZUtlU0FXbWxDUkJRcTlLRGpkUkxWUUtXUjRsNmdtSEtUNXFNYVJzbWVWQU0vVTZ5eFQzRE1TOUdZUTJaU0cKb3Q4QTFhRlViVlFBb1RXdkxjUW90b2FiUEZ5aEs3VDVzMnFGTlRYd09zMkFOMlhUbFRJQTVUaXFkRUl4aDZoY1V1aWo1ZzhoT3l5V3puNlEKQWltNitzREJCNk5PRXNWdkJrT0E1TnAwVmlGMUVhcUplTUV1aXBUYVIwTkFqWXhsVHNzOVNlcHdGaE9PWFdLMnNxUEdZeWVRaE5EQ3cwMFUKMnJDTEJTRWFrWHRndlhEbk5pNE1hVWMzUnRxamJzWmowNWhjMjJlaUNNMlN3NElQNmR6Y3FyWHZBTGJsaWJrb213bjVtRUFvc0ZpY0szalEKSU9vTGZpaXhRdVZBaWVZUzZHcFFOT1dFZzNCM2E1U1ZSUUlpaFVZcWpyb0VEMjFjaTRPNlBzbGtiYUpxbkYzaFhoWDZ3bXFLYkR4VFk1SUUKclhzVEthSUk3aHB5TzcxSjFBVkRtaFQrUUVsYzVacnY3NWkvRHQrenIyMkk2aUN3V1VEQ21xamNhdXN0aXZmWXdITDV5eWhyTnJCMFJIRXYKSlZVS0VTQW15Zmh5MUJURGtpWklrVm1wVGdzekpxWUFHMml6aHhKNitwck5kVW4vYlZRdGVydHdlVnprSHdZODhabnZwY1pCTkowVlg2V0cKSzlBcXNyc3VxV2JOMjVBMUNZME5POG9QZUVHNlR0aDMxcXAreXZHMllFbE9HQ2Riek14azltU1NURzNQbmlWeEYrNCtRc2lhU25YWlhUc0YKRXVpVkhWL2ZRSm5IV2svQnNtd081MVBSSnl3YVpsNXJ2ck8vUFoyQ0cyTlBvVVFWcCtmOTQyUkU0cEJDcXNMK2JBL0xMMkZIOXcrNDlZcS8KTnV0akllU3hVbzJPVmhMUGlFSnZtQnBKYUxxWFhOb2pNR0lDQkJvSkFxSnQvY3c2VWkzY2RlaXU0cjlBRmNERldnbnA0YkxwcjA2RXVxTlcKb0gzTklXSll2OTNXWG04VCtrVTRRZGJRK2FRMlVGQjRRcWJFdnRaNHdoN2w5WDhDWXNWVGhLclV3Skp4MzVRK3hWenIrZ1RWeGRyNTBGUkUKd01sNVRhaUIxaTZXb1J1WEt5czRHNVNXWG8rSVFKTnlSRVhyalJkUkRUWHNWT0V6bVorWHVSaGdieDVmY1FidmppTGU5clY3MjAwWDJTb3YKdTZxTm5oTUZaWUtwV3pSMFM0R2JHQWRBVUxVV1k1NEJuUnN0U09weXdFd2kxRzJsYXZsNWR0Y3YzMzlJTmVEMnRkWTJER2kzVnU1T0lZTTUKZW9BMEtGUGRYOXdMMDNDRkdXSE5FaERITmlqV3NrRmJMTmhZN3J4V1FpM2VUL05XZ0VqQVRyeWpFbXFtTDJFL21zTXRzcEp3UTgvUTIyb2sKMXNLT29BT3RQUmxvUXNyd29ENWlGN3NjdGpCUCtDVy8rMGpHNVd1S2xsZkt2VStucTJZVWM2cWprTHloZlUraGl5cm5IMUZScHBDUHhnZHkKQ05HR3N1QVVkRU5xdDJaWnJZMkVwbGlacERFT3dobFd1RG4ybzUwUVFrMGw1TXk0Y0VzWGkwRHA2eHFjd0VGcnhlT2NBMGlnN0NvY1lyZVUKR2pIRkE4QTVFYm9BVTY0MU9PZVdGdExKV3NrL3AxdWRkcGpmUGRENkZ5MUR0S0VQc0pONXV2a2lSVWFpUk5kb2c5cU9icldKeXNUaksycHEKUTBFS2dHUVpjQm5UMGZhZjRPSHdGbHA2WGdvVDQ1MkUwVUVsZHBFOWE0VHo0ZXpTVkxnVGxqNUVubVZNMitvbERvQkYyNEk2Q2NNbVVFK0sKY0JRbE1ZYjJ2NjJ0T2luejkxQlROU280cjVEenlwWlJVSWd6NDZqNEJPeUF6Y3JNVDFVdFBoU2NFSE1JRW5TK09kUzZSZ0dpbzBLUE0xS1IKRWs2enBPVjNOa0UrUXM2N1RONmluWWlZV0JUeVVRMWxsRXh0SWFHL243QnhkVC9wN2xkZHgwSENVZEZQenAzRStpT01qZG9XZHQzN21VT20KalJKeXdoa1dERVo2NHhxTU5tbGJPbU9vRHBJT2wwaW5RYTk3QkRhWGFtZGpYM2RkVE9JWnU0VWpqUWhhMHpxQnpGMGphSWljRTQ3YlExU28KWU4xdGFrYzVMM09VN0Q0dWFTd0RJTElMbW1qUUhTUkpqNjJqQ3FTRU4wTW8xV3l1QTRrUk5OZENFSnNSNVl6b3VObE1EU01reGVYS1hncHEKbHIyVUl6WTNpdHBKTnAwNWpVQkZQNnc1U1lmTlJqSlZteWpLNHRobXI5L3NHYXp2TmJzbDBkd1RGLzdZYUgvaUdycUlPTHNOS0VYSU5BTHcKU1RvVlFja3RpbnNtaW5CZ1Q3WG11SS9DN3FRRWJSbW9EdXJmYmxhK0RTcXF4aE9uSmVsQm1Bc1dESFo2eHZEVXZ6U2JHeDVjT0hBY2h0U0cKS2haYkt2K2NISFZpZUt3Tmg2dHFTMk1jVE9jR0cyREJHdWlOWmpKcWduVDJ1eE52NHhWMU1tMDBHWEFsQ0hQUk1iaFlVa0tlTVNybTRUU1UKeTdRR1FUd1FVeU1xeXRLVTRFUWt4OXI3QVJCbHdrZW9jUnRWeVA5YmgzVU9STElibElYUUdnUWFTWjJyV0FCNlM1Q0gzdVR1TmlleHZhVy8KK0JEYWRKaGJiZzNPWFMybkFyZDFHVVNIN21PTWdzbmdqcTdMNTBUOThTbWdJeEMwVUpKM0FLRlRPWm85ZlRzeEZpa1J1RVFIdElDTU9XVmQKQlJLVjNZZTFOWUFuZ0psbEhwcGdYRFFvZUxnTE51YVVjVXlZS0pxQUxpRlVjOENLODRtWFZoeUkrUDZJSEZNbnFDYnRXckFNdEZYWXpxMW4KWXl5OVh0UFppbUM3YlFwclloU1ZOdkZIQ2xodG45a210M3Y3RFByWFQ3STFnZXJ6YXJuWVhya3VhUEE1UjRkcmZsQWsyMXVoQ1BiWlVYbS8KT0NTR0NRaEpuMGFKaVNGcjQzcHVSb2h3K04zQUx6WHlnNmhpU0pYQWxwRlJyTFpuVnNqbVlhR0UrN3dqaTlNVUZHZ2M5QjJGNWQ3dkVtc3IKaU1IUkttanNDV2dvZEFoQytjM09ZRlE2ckZlRzlYaVRESGtkZGJVcnBOcVNocXFvNzZrdEFaYnhCK0RtVUo5N1dBWDZsQWFrbmpWS1ltTVQKZ3hDZ2I2OXc0aFZ4Q2NXTXV0VTlSUUMrdTU3OElYT1dXVlVaazFZeExMdTJqL3JPYmpsSnF2NGdUdXFBQlBwdXJEcncwUEpvVTJieXliU08KRzI4TUVPSEFrQXV1bmJUeHZWWUUxZDI1QmFuNmg3d0FqQitCdDQ2MUgvVHZ4d3A0RUNjUllHUmlZRVpkVitzKzZFUWhiMkorZ1NZdEt4eUgKWjZrVE1rNHluYnlNRDVSRjBzMUcvM29ia3M1b1BYSnlBZlhQcVp0SFV3aFQzYWRCb0I4WnhxTDBScnQ0MmJKVWNVZUhqNk1XQTlCdG4zMm8KOVpwVnM4TlhTOEs2SDRWYTZEclo4U3NUZFkzRDloMSs2c3BjamlMZUFoSEpIajc0L2w2OVl5VHlEVzlGTWZCZUcxV2I1OUlUY2RBbHAyR00KaEM5V2lLd0MzNVF3UDY2ZnI4MGZESTJFS1RRbXhJRjdrV2xiYXdVQjhCMC94MU1aRHNEdGl3MEltQkpSeXFydFhXcHZlbFNHbVVZZGdvTTEKWVZyZDBQTFl5bWl3MjdyZ2J0dFVnZGFVaXdyak5LbWZJYXZzSE5CQ081am1IZFZUbGQ3eHk4UG5pd3JDRkltdFF2VGRqVUx1UnQzdVBWSVoKcTJLMzM2aTN1QzQ5bHVrQlFXVlN3KzRWN3BnU2hrcDkyMjkyUXJKK05tY0p1NVJiVkpFd3V4dmFhVVUrakkwSm85bUxDRkRTb3NHa2RUZkIKemk1MEt2eFhGTE5JeExqU296OGNJWWVES3ZhcUNITGRENjNxVVhlNTc1WlRMZWxwaWhkRFJqR3ArTkFEWlBZbFpacFdSbjBVSmZlT0NnUTEKTm9rTkdWUk1neWs5eklpM3JEZHMwSkRsYldlSmg4anVzMTNRWDAwMFNoekNEWllsUkdudmJrTW5VWWtjaTZFTjliUUtNM05lKzJEb0M4Y3QKTEFwb0tsV1VZdkhLWi9ISXFmdkFZUjdXbGdVTHp3c1hqNkxNemgyb2Ixb2dlRXoyd2hyT1lKQTJ2UEExeHFKMThLRDkwL2Qra0swaUY2M0YKeDdlYVFWUVBkUW9Ib29ZK3VaYmpoTjIyelhsWDdETlBncGpSN0lFd2lybWF0eU05UHJ2Ync3RWJKYlhNL3FUVmNwaUxRaXhqMUozWmlvZ0EKeUUxZU13UUtzejRFYnRhRmFydFlFQkMyT2V3aFJmRDFFWUx2MWN0YVZBVnFqZE1ZWWYyMXJzcmpmaDBHbGlPeWNiZjcyb2hBQ3VQaXhKR2MKS3BXRG05akJzU1o4M0dDSHg1VFRVY3VSbDYzRHVldnhLa3hXaFUxSUhGRVNncE9MczVDR0ZmOFJJMjI1ZFpOby9ldlhVVktzbW92S05nVW0KYlJtbGowYXRrOGtFUnlLYmhuMUtqa3UxSDl0L0N0bmFzRlRKaHp6WVd2eXR2dE9jc3pTRWl3NnRwOFpGMk9ubFU0Q2YrNWtJK0h5SHBydVQKVjBRK3d3UU4xZ2Y2ekl0QW1YbVFZQ0k0L2IwMkJoUWNNTCs1WXJuSWpqRytsUjYrcHBIamRnbVdrMXNya3FmaGVzTWd1RXlCRy9rUXJXNzcKZEFFZmtFemt4RDFVbkd2U3ptWFdTemlJSkhucmFYWDQ0ZjdFTG5RUGkxZzZFMjVhaHBqWlBGY3NGUkJrRzAzQy9JcGNCQTBTR2FkYWtsQUYKaHFQYjkrN2pCd2hON2lYcFdUQzVGRCt6V1E3RDJFZklud0tteitiblU4bHBsL3U2bW5Pb2pXaXBPZ09OcDRPdDd4OGFOMThxdnNWNFZNRUEKVEpoQVRJWnNSWUJDTWpQY0JvTVhRdGNvRVM2aUtwRHNNNVFjNlNsV0RQZUZJaFJpLy9RcGdjOEZZd1lrTmRuOVNmcURJaEp6cnNqU0tNR2gKSUtxZEl0d3RVZG0rSXUxaEU5ejlCVGZyNExTN3d3UUhWdUVROWxhcmZqWkhRMVl1RFQrcklBV25VVi9WMzZLOXFENlNkbnR4cHpqdEFZeUsKcFZjay9lN05Ob1R2T3poOC8xWm1ibzd5OU1pem1ibVZ0dTE1MTRGbzhvaEwzZCtXUVlSR0xXdkh4YnF4R0pya01LV0VGMkkzS1hYb2xmalkKZE52VVBXZnBxNUJkb25NRnYyN0xoTUpRVm9FazNhN2JHaW9XUk91QzlTMjRUeUltMjJDMWVIUWFUK3c3RW16RWdYWU9qMWlDMXRnZWx2UDcKbmFGaDdwSGZRbFZ4eXA3TGd6QjhvNGdMN21aYk5RSStaVnRlUzZGNVZZb3J4MzI2Qk54V2p2aSs0OEFhck1uRVRKSm42VFpYeXBZY0hiamkKQmhNbjhsWmg0YldyZTQ0OTZqSWFmUnA3WHA3QjkrcDVKL0ppVGlTWTQrb2tYRVZrUFFjRjVIcVVCbU82Vi9taEZEVGp1dWo1Y2tvNkpNcWoKSTg0eWdEejVBWW5UUkU1dEE1cTBSZXp5akM5WDBMUnJ0Tzh3V2V5eWc5elgxOU81ZWFoTm5yT1JpcE02S1pmbFNaUHBQdWZtK05kVkNHbmkKZE9pbVoxTzEvMWZQUW9nK3NXS2FFSXJybHVvK1VUeGEwZDVXSnhJcGwxVUdpRzZlS3pWL25TYlREelpMU2RpRkNxYXJIMUE3dk9XZk5FRzQKQVkrUVJSUjRMQUlNVW03V0ZDU3I3T3BDaDBRRktkN05UZmNRWmVRdFdnWk9JdU5ZSStHeElwN2RMYnR1V3VJVHExRE8xUzJTY0svdE5tTXYKTDkvQUhZVk9MK1Y3RXplbWtkelBxbk5PeHQyNkZKR0hjQUc0aHRKKzVBZHNsWGZORm5xNGhQWjY4SXFhZ2VkSzJiK2VUSVZNQ2xQTmEvWnMKWUxrTjFSeEVqczBhd2hPSGZpUjdFbjRXQjREZXJVWklnRnRvOHBDSzVKZ2JSYmI0YTkrMmdQVTBGaFMxc1p0QVhDemt2eG5Oa096RG5rNngKSnltRVpRamZCdUhpcUk4VnBSYXdveXdzSktHbW1RZFZFMVpZb3NBNzJ1L1FyZk5VeFo1VXVOTmNvMjRGZGZXZERLZHh4d3d0c3d4Z0dqMUkKUEdDYkJabFp5TUtOTHB3SkF1SnNrZUdEc3ZZdnRBQ3MxV3BoNGVqUm8vUHJnOEY2enl2c3FNMFlnYkNXc3l5MllzOUQ1MFhTNFZPVVVabk4KU2wwdEhCTEF0bnQyLzU3Wmx5cXVPSUZ3WGpRb0EvcTEyVXZpSE50c25sZjhFUllWNGhUZXR0My9PYnRtMUNpeEV6SExmM2UvdEt2OXpNNE0KVThYakdWbXZGUnV2NVJZRWcxSTdhOTVCZHlUNWpqdDIzRE5tTWcyZXdoeHhFVWM4SkpYeXYzc1JSUmtNL1FUcVF1amJmVENoSzJxdmx5cmUKTUlmYkRpeG4xemNzYTFXZzZBbTQ5MjNBK3FHcTMyOG12U1BXQWVXKzFpeWVXOElvdXlZZmtNTUxEaDJHU2tySS9BTXRZa3VuWnovTEZpRFQKbTJTSXRCbUhId2xvbmRDZVpjL2NpSDBoOXBYaG1Kb1VDSytsaVJWSnZMMVpKTkJMV3F0TzhYeDMxRVVsSFd0d3F5Qlo5dllQMm9HL1l5NkQKNFVRMVVxRFdVaG9kWmwzYmlBd1UyV1JSeDkxbDBhcktMTFdVMWM3ZGRuaXRzdHgxWFFyZElhQmxocmJyeXQ4U1NEL3BnOW96M21XZjhVWTMKV2I4dHBXSnFOcWFwekRjT0hSaWlhNHEydEpwaGlLcTBSa3VjeXJOZk83Z0RmblMvUy85bTFzRkd5aWZPRjVtREVXaUIxYXFUb1l5RVpXZWEKWUhFL1k0ZEg2V2tBSkJ2UnZXU2QwNlZ4M3dURjFqSnZxY3I2WnpGTDlUODhOak00SkJGSGJvalovTWpUT3dlZ0d5RERZaTVENS8rTzYwbzYKZnB3NjZncnlORVVxcFQzc3ROcThDWVR1U0hoUUFUQ2YvVld4NVJPUDEvb1QrNE1uSFZyMVltQWxOMUVQVy9mZEtEZTNmRjhsYVdKdng3NXEKeG1ld2JHbjNPOXFKRVFrVlBCcU9xOFdEWkdzdkxOejlnUFU0eHNXTHJVaEhTa2sxaElsanI4alFvMFZTZWJQNXN6OXJROUl1Z2JiZGIvMFIKU3N1dC9kZWRPNWUvM2NiL1o1THJ3VXJ1Q1RRNDV5V2w1Q2s3bDF4cFo2Wm1PVGl5TFJVVm5BMzVCQnFLOUtFSnBCMzNXMlZRck50VTFDUTAKRjYxUHNuT2tTS1hNQzJabit6SHVtWk8vRUZnSk5FZzZSNjRuSm5rcXRvM25oVmZiV2NxeXpGOGUwOEtWVzNxRWdORWVRcnNld0kzVWcxeEoKVzI1ek0vTjk1RVBwbTdTQWZXb0ZPcnAwSnNkMktyUmttOFBXc1NKTFVleE8xY250ZVRPK3krNU5BT0RTbUxibkkyRXo3b3V2TXh5b3VMTjUKQVRnTFZGbzNlRDdXL3E4a0plOU8wY2N5cG9QU05DM01jTFc2TTZxbzIrZVhzMmhpZGt6TlpNTllKQld3SWtxMGFIZkJaaGJvL213dG1LUFQKVzR2OU9UT0dpN2dWb2JpaEY1ZmxQaVpLN0FScHdYekxFVnlnSG1HdmNOU2wwbXQ3MGJITjNoNmRRYTJxQmxSdGtiNVV5WllrbmtwSHFrb0QKbG9OblU5RnRlOEt2MlBIV3VBUCtVTGJQZy84UjRoYUlZZTNrVGZZTXM2TmpoN3RDWEY5d2FXMjd4UnhHVmpOSnRLRGNINHFTRXliUUZFa0QKUi9vODlMNFhzc2hEd1NyS0czWFhKc0dpRGFsZGY0VTRYTzExVXNKSzlic3hMZ2pndTBPSzcwZGwzMjBaTzhxcjJmTEJBb2pFU3AwQU55aEsKM0xDUWZaMnFqcXFhajYyVEJ3YW9EczZwTkpjeHZacVpiYTNQYTN0NUN2VlVMWFNPVW93aDhqdHJMbS9CR29ZNzVqdEZxMWV5bGUweitIdzgKTXNmZDgrTGIyblRPekV6bTJDT1ExZ3NOdVJZb1dkenJXWTE3NFBXMlowU1R3ZXkxcjZhdEdJTnhCNFo1UVhET1VKd3RVaWlaMDlSREhkOXMKWVZCN3NvQmlrWVcyUThhRTV6VzVHRTRPaWZySVZSNmZ0ZGYzRlMyNE5ZTUdGeGxhb1N2VWx0cS9uRk5hbEtsamZIV2x6Y2tUV1M1OFR4WGoKenZ4cUJKa1pzdWwycXphSzBUTFVXbHBQMlR1SUVqT2o0bXNvbG1KUEh0WkgxOFBTdkh1ZlpWdVZDNkdHVHlTNTI3Qm1rZEVEbXdOOTFzcWMKWTg2MnZXMVpiN2IrRGlSRk9QMEpuMG5CSWNoS0Q4SmYyTXB5VWR6a2VuZU9WL0NkN0lETWdueUZQSDR1cGU2d2plcEt1c2FhMzZOQVNwRmsKM1E1a3RoQ05PTi8zTW5lcW5iUUZDdm1tOFJwdWpPMHZsVDZtN3hibmwzK2VPQzhHZTRhYVFGbmN0d2hGTXlvbThUcUVxVFRzWjI5ek9heFMKQWhDL0IrQzgyV1M1VFowWGhlaEtnTUN6a0tValg0RytDNWl5RFdqQ2x6djhnREFJcmhGbmZ4TDRYMG45NHlDbEtySHpsLzNXazlrK0U5QTgKaDdXazZ0VzQ0QU9lQ1VxTGR3dmJLMXdMN2NPdFloMktHSllRL0I4M251WUx2QlEwRitQTVphN1duemN5UmdnVjZhelJ2MjNjcjFOSUYybUwKNjZnL0tGTGViVmdGUmJRM2lYMFBjM1U1UTh3em1lWTVPWDR4NmpCbU5samtNSlJGUzBCQWR1WUJiSnUxQU1Tc3k2QVFIZDVpYlVoUFcvR0YKL1puZmtTVVZuR3VvMVl6YmNFK25Ick1iaHd4L0NtQmsrKyt4NEtqaXViTHRxc2pPTXVYcFhIMFdka2JodVNPQmVSUUNwZ2FiMDFWUzNsMW4KRFdPbktpem8rU3VtTG9tcmFaQ1FkYjRQdDRsVXEzVGtZQ0ZQT2N4bWZ0eUJVU3NXaUl4b25ML1dMQzV4Mk9IS1BRbGh2Qy96d1IxcHlHbWMKMGZhYXpJYnBTMXRNN1V5bGhLRWNSVi9ZVTVrbEdWVThUTXphU0JwQlI3WFdWd2E5N21MU2xtTm9tTVhvQ1JkS1JDWHNhUzI5cmxhdENVVTgKV0ZxMitIbzVMQTRjR0hHRlVGeTFpWFVzKzFuem5ibEtWOWxqRHI5RnFITStSK2lTNjY1aDVMZUlOWWkrYm0zcEZRWlRJL3E5UDhWU1ZKZ1YKMWtRM2ZCTS9DN0w4ZXdHRjZNSWRtb2ZhZ0hPMjd3MzZuaWtuUUNhRGI1SXpFM3VMdkdYaFhnS1k2S2c2b2pZVE5IdzQ4dlBMcTh3cjdMc1YKWEFvL1c5azNibThUclpWeDJZT0x5azJUbVNuZklUTHdnNnRVaXhHV2ltTmlIZG5zaTcxeE9UdWNFdVBKK1pWT2tXMHlPbjNUeVdJN09oK0oKRjdCOXRmVlpvZzRFWXc3TW9SV2NzQU5zOG01RXV4cGNaelRZNmlSVmNDSmYyVFhVa2MxaWNkdER4eFhKQnJkYkNGZFE5cHA1ZzhZcmlJeFUKaERveGV4clZOSXgrOXNJanlBZW9QNTBjMVhMNnVCODZGWkErbXNjOVJCV1duNFVHQkpBeThZWHNhdG9ydEYveHJLOUNCMCsxZHNPT0pZSzQKSExLWVp1d2RQRU45RWFTeXY4d0lKckptd3h5eXIwM3pweUJpOXVCcTFmcVJ5QU9FL2hybVV2Z3hXSnNDc212bU1LRndOUHpaNFBrNnh0aXYKbjlHOWZKOVVxUXdlT2dtKzFRYXRNcmQ3QnArbkJLbTBabG1sUFV1OGNFdHFVQ3NPenM2dXpuS3JPUzhsT2RXYkp3RkFGV25wLzlvRHVNeUIKQTdNaStkUUVBaiswc3Z2WTFVTlZIUm5DVlZrYldGUXBlNHh6ZkZpbEpDeldXK1R0NjB3RlB6QnkvcnlqV0R1d1Y1RUVncitRQWZSbmRIWEYKRUFaUkxObDJJU0FzUFQ2NGw1NVJRaE41bFZMMlZUcHo1MExSait1b0FYNU9aU21hTE00VDlQOEpjNk4yMkhxYU9jclR3aHpwSkF1RzlVa28KS3FhOTBaVTBQV09XVURmWk9aVlVIN0IxK0pwRkFCcWZsOStPWWpxOU5PZHRmeU81R1RIRzFrb2dMSHhUQnpuTHBpZEV6bEhXZE5mYUNJd0cKMEVXT3R5VVJ2ZDJIb2NZNlRybFY3MXN1L2xUSTI5NjdsL2JrVjJtWEJ1TlJNSWdFUUd5Q2VZMzV3T2h3SmVwa3l1S09IUDdrVEI4dlRFdWIKQVAxV01zL3ZkSEMvdnRZWHluR3MreHBYV3pOWHRSSGFRenVZTW84NjdMSnRlSTNQNDhhSDlsanQ3U0cvalNQUG1SSWVRV2xqa3BtZE9XUjQKeGcvMlFLYWpQVzIxZ2M3eVYySFJGM2R2QXRvZCtYanRMVVZrRitlU1hjUnNmSkVra3RFLzNFYnF0V28yb3prdlp3K2N3UStMS2tIOHpTWXgKMHlmMjg4UzgwdDdvNU8zK2dIc09GbzFzbzloeHF1VGcySGdkYUVGdWN5dFovRWQxNnJXZVUxMXBXSlVDTlhFLzJXVEZDTSsxYWw4UzgzQTEKUEpQZUJNSXFKUFFoaG9aUmNUajNrWHBWdldrZE01c0ZzbHYxWnVRcDNNN0JoaHR4bTVMNW10UXRYTFArWk1GQkkyN1hPU3FjNTBQTjhhTmcKZmd3MkUwc0V4SWJ3ZjUzRjVHZFoya1BtV2U5c05Bck5iOWpoamRBS3lWZWRDN29QeG1Va3lEWDUwR0U3TWM0VEZjYkYwUzJva3NCOVF6TUMKYTBEN3BIcFNoL2lvNTNHQVVlQXN3cTZYdEVickk3UnFGelhMU2JlMlh3TDNxc3k5MjRvdDM2bXA2QmRFQ2ZLMGx1dCtrb3RRM0Q3QnVrVEEKR3ZsNmR4Q1VkWms5blRpd2ppVnlrTXNrem1wVlhoQjcrNUF0SXUxZE92dURiZXI3ekRqaXRDVUJYVzU3RXhWY0V6eWREb1cySDh6T2Fxb0UKYjRNVU51TFNBNi9kSExrR085MWxHME56QWYzVCtrMEhQWWxOaUR2eGhMSS9NKzJmM1F2L3gvL2UvTTYzN1AvL1lXRzkydkZOZUFKSGkrcmIKaTI2VDhDd0hJU3ZwWkFlaUJJVy9Od2FKVEpQb0xmQ0RiTWZjU0dlWmJTR2lFRGJiTWdKUVlxY24rMGQ3VWFhakJKVm96K1A4d1k0cXkrbDgKK0NMMTlTNVJhZS9sajQ1LytBSFZDYTlTb2U1Ly9QMUc2SXRCa2V2MnVWZCs4YlB2ZjNMMTNPMFhubEJWYVAvOTJvbjArKzBYbi9yRm4zMFAKeFplZnUvcko5ZXUzTC96eDdlOS84T24xRjMveHd3OSs4Y1F6bjc3enR2M3Y1NmR2ZlBMZWp6NjUrdTRuMTU2Ni9hZlBmdkwraXorLzlPN1AKMzMzSlB2bnpjeS9jdnZUOFo2OC81dXVPYVhEcmlhRmdCbEZiQlNDQzFZSEg2NVFxdHkyU2NiQXVhK01PQWpUZytUaCtKcFF3eXk0NGxMaisKelpkVmxEbGVIelNxVE1mb01pb1ByWlFQbHl5eUxCUjRxV1Q5QkRXWWRYMGdBK3dUOTlVclE5ckRyRHBzcHJhVUdGeDNjd3pqTlhBU1FSUjMKTGMrbWpsUi9ReDFNS0d5MnoxZ0dNZ1BYVWNFZ05LTTdVSncybmd0NksvcmQ5c1gwT3k0V3ViTUs1ZTQySzRjclJMeHVrS05Fb3ZTendDRXAKZ2crMHhVcVVIeTJwM0FmTlFDajAvWmpLaGllZy9OZnFRb2J1NWtmUFNFMFM2bit1eGRqcWRrSmQ4amhWSDZuS0tQVkp1OEpsNm0rR1dtR28KY1VLUk1kM3JvK2N3aHprN0wrYlhjZDFPYWcxS2pUTHV6Yi9mLy9COWFsVyt6WmwvQlg4bDVVS29GYVpyMnFkd3hiZW9VM2t0dTFlbWpVaDkKeGF2VUZOVTlReFB6Y3JyK1phb2pocmJsVmI1SFpVM3J1NytrNnFaVURwTk9wbjI2N2NOSG9YTkp6Y2gzN1hueExGQTBmUXFxb2E3WWVTblQKQ3Iza1BYd0JDcDFRRi9VK2dRWmxxMjU1Mlo2ZS9XUGpFbjBEOWNhTDZGZDdvbmRkZWZFQ1ZVeS9ZODkrMFY1ekJkQVBML0VxSDlqM3ZwTnAKU0Y3T252MEMrMG5LbmUrNmlpaTFKNmxpK3E2MzdtM3BzSExFOUptcmZLYTNYRWNWTXdCUFJoMVA2a0ZLTGZOOXU4TjF0dUNxWDhmSEVjcVYKVkphMGU5c1Q0dThuMkFMTXo5UzJEMy9Temx2cFlISnV2V2MvVC9xc3VaWjlGOC95QWZVM2IwRDVrcU40QlpxeW5JRjhjdnZ1QjlRMHZjRCsKVVh1bHpmcUI1cnFOMTlXa0ZJdDNQM0FkMnZmNEhQNlpxV2U1a1kzRlZkMlBjKzVHTzRkNVo4MkFxN0crcU05NThzT1hzN1h6bmpSaW9TV2EKVkZRdmNSNjlqK2ZqMDdicjVUTDYya2FZNnl2VEFMM2Nhb1JhV3g3bHB5OWFLNTZUanFxdktTbmNhbnpmNXhyQXZQMnV6ZHozdVc2TzIyL3YKdWY3dWszbjd1UjR2K0FxOHh2Ry9RSlhZazd3Tzd2dU8zYXVkd3hqSGRoMGxQVlROT3ZZMzlwOC9keTFiNjUrc052ZEpWbUcrRUxXa1QzbjkKY2RWQVI4bnBLQzN0SmFSVkk5cys4Q3pmZWo1K3VSSFZzZTB6TDdjbHlOdnJxSkQwYTlrMXowYjVjcGFaeHVzbitjcTVxS1o5T212UGNaWm8KdjlGK0h2OWVidHVHb3Q2cFdyZnVlNDNWdmMvRTlaK1B6N3dSOWRCVGlXb1dFUGZQNnlsZTlBcm11cWFYYm4rcHZWZDdYNVh3Zm9xL1BNL1AKdjVrVnhiN0syNm0xZXE1MytPL2pmSzdub3lyM0IxR2EvQW9icGtMdzBXeTgva04yemt2VHozaThmUzdWenZhYTQ2bVhubzhDNks5SHFmZFQKV1gxNTFaM1h3NTduZmY4aXZxWCtmeVg2SkQydmpleDd2Rzk2eHBQeG1aZjRJRmRZTmY3WktOS2R4dnJGR01FejBiZHh6VmVmekFxYW40MjcKcDdFK0hnWEJ6MFNOOHBQeDdHZGpqSTU3alhqdnF4aEh2UDRHci85alhqYjF1VnB5Z2UxOEowYjhKRjlNbi9sT2xHNi9PRFVmdk4rdXNldE8KK3krK0x0SWNPQjVQcmNMdXI4VzlYdVNUbmtTOWVHLy8xYWdGZjdWOTVEUnYvUXJzZjN6K3hheXZMc2NLdXNyTG5vbitQT01GN3RzMnE2OSsKR0NYVUw3YlA1YjE2bk8xNUlqN1A1dUhLcDlubUMrekprK3lsaSszWStUcTZFYVhrSDgvMmpjdngrcGwyRHF2Zk1NZmVpSzljaTgvck0xZGoKblY1ajgwN3prNXB2bXY4dlJaK2Nqa0c1RW5OQWJiN2lEZGE0dDNNMTllRVRzZDZmNU5XdVJKKzhsdTBQeDdObnpQWWNmNkxvVXR3M3RlY0MKcTlXbmZZYjN4ZFhPWi9NbnpjL2pNVXN2OHkwV3N2ZnhlaUdiWTZkaXpyekttNmExcHJYd3d2VCtlWnpmMGxvN3oyZi9JSzZqK2E5Ti92bnAKUGY5YWZPYTFiTTVvWWwvTTlvR2ZSWis4RVR2NWFkK2o4Slh6MGJBZjhJblM5Uy9FQ25xdjdRZTg5WGk4ZFRaRy9FeU1BbHVpYm1uWCt3dFQKZTBVN3VMSFdmSjVmOW9kTis0UC9xYkhRM0h1RzErZTA4VjM2UW52RytmT21majdGUDYveU0yOUVJNS96Wi9UUFhJMEJ1cGc5NHhQeDd3dTgKd21XKy9rNTJWbDd3NzJMZjBIbjNhaHAzcWtWREYvdHBLaVMvVFQzcFI1UHE4NlZiNzRSaTg4Y25vQzc5OFNtK2ZvV0t5SzFXczVTVVQ5MjYKU0RYdnBBT2VGSlpmenpTVzM3UXJ2QWxkY09ocGh6STRYcDNTRUg5TXl0aTQzOGNuL1Y3aEFWTlZtcnJYZXYwTnRNblZwaSs0NmpoK1A0ZlAKK2pYUGZYeVNWMUo3M3FMdWRWenpkWHZ2RkJTcDdUcFgvZk5RNkg2Y240Sys5Uk9oVVU0VjZWZVNOdmxidDM3Q3A0RFcrSm5zdms5U241dHQKYzRWektWSmZvbXEzRkwraHpYMEt6ODgrRFdYc3Q2aHYvcmoweHFWZFRSM3hTOVNmMXV1UFVzWDhyUGZiNDN6S00xS3N2blVXejQvcjhOVXIKMUV0L21xOUR4ZndzK2lCOWx4cmRydGQ5aHQ5NDA2OHYzWEsxQjlkK3g1L3h2TTJEcDI5ZDRoWGZTbnJkUDh2K3ZVd0ZiZS96VnV2Y1prYmIKSitlaGgrN2ovb2FyYTdmYThVL0U2MmxNb2U5OURYTXZ4aUtlOGRacmFJMzZ3YTdxaXVQV1g0OVR1VHpVdldOY01QUGU4dm56cHYzMkpLK00KK1gvZC9vSk8rbVcySU9iR0dTcStuL1cyWGNYcmpDc2k4Z2UzdlMwbmlzai8zZ3htSm0xd3g1NVNVbU45UFBUb1piOTloM0xURVZhbStERFkKZUlQTjJSMU1oa2l2WlFJVUR5SjdLcUsxV2c5WHg1c2VjWnpQc2NFNUpyOVoraHdTczgxdFoySld3SGxBQjhGenRxMmVVdTF5MXAxVTVEMjAKTk1sQVA0S1N1dlAyVHllRVJJZEt0WWQ4SXNKaDl5Ty9zN294aHV5SnlCYWUrZDNMNUY5a1poaGtqekRzMWhCbHJUMmhrV0VndnJnV0lIUXkKQmU3SlVLL0ZwckpRWmIreVJ5SE9QUUdEbzhDNEMvNWt3UlRrU1RvQ2tYVVllbFpScGIwZFJEYVQwdG5COFJiU2c4VisxT1RLb2NWRlc5ZTAKTjVsN2dBRnZoOGx1SFZ0c0c5NUsvZFZWYzNjK2QrWkhnL3VRbGQxdlhUYmJJcENvTE5EQzYxd20yWVArOTJRZ2tqbVBaSXMwaVhGSWN0K08KVVY2RENnZDB3aHVxa0tEeTgvM2dGeUtLMTY5S1pCT0hwV1F4aGxrdXJxWk9Ya28rRnFyWTUxM0YySGFJcVkwa1lrc3Npc3NNYmdoMTB2SzIKQWF2SU1VQXBoODFVaE92QnppT2R3YXh4cElJTzJ0eTlCeXAyZ0p2bWVKTldVSVkwUjF5SW5FN0FmSkl5dkRVbnhHaTR3aHpjb0VoN1V1dDEKS0lYRGh1dVF1aFlPbTBXclUySFoyUnhtZlNpRHdpRHJ4ZlNGVFEyUkhTSXdYclJhZFBiS2w1RldwQ292NklsNTBoVDVsQ1BNVVlNMTJzcnUKNyswc0ZobHg0ZUZ4MDVKT25GemlRbXhqcGdDVTFuUG9ubEFkSUR1MklBSGhqTFVGWkQxYWZKTXBvRWhIenVRQjdpSkhEWWZPUUNYdGlzQXcKV1Y5N2hRSVZ0UzlickpXVUJWeVAycldxUEtWaDAyV290QU1GMW9lY2x5NmZTVnlDWTBReS9mS2xCWlZXaUsweloybTQyay9BSUVuU1dySFoKZFppS1NVT3Z6bG9rNWp2dWsxR3ZlNU8yTExPdEJlWmVwQVV5bkFJTExXYklVUWlYSnRtNzNrVG90Vy9sVURadk4wYzdZQUZMT2Q1aWtKTWIKV2oxLzFXMm03SWw5Wm4zUHdyR2R6WVk5eTFHYmpUdGJQZ3JYcVRUcW1VMTVJRU9RenprS1FuaVNERjlVdFhKMmpzcjBFb3VjOWxuZXBjVTQKSXRtYkkwWmlxMVorQi9ScGlDOUJmU2pIdU0yMUNVMzc2SUlMWWZPNFN6SjVFdlNJMnVZOUYrd29WNFV5YUNXWkFlK1JMcnpudlB1WlJtVWkKVWxDcUJhbE9mQXE2cWh1RFRjVFZWUVpjQlA1U0lONDBvN0FsNWVqUFJ0dFp3dFZJYTRkQXdjU1FKQXErYW11ZU56bFU3NHU5RVA1UlFsSUsKblRycGlnd2ozQ2xhUFl2bHFVUnFBZzY1L2xBTVh0VlZpc3hoU0Fmc2JOa1pnSklqNDE3ZmgxZTF3WWxZREhIb2hGOG41anZBWXFrYTZINkEKSlRRaEJSOElUVS9oVSt6a1MrVisyeDIyTHZzdXNLS2k3ZzV4MGgvNXd4VXRHY3kyNWZtY1ppSU45dEFWQ1p3V2hqN2p2V3lmT1JDQ0dJU24KRS9KWWNMNVVPUTUwM2dzYnF3U3dyNTg2T3RFVk1qRTdIZS9OclBTaEVBckFIaFZJVWtINGtvb3FQcHlWdkVoSTVNYVJWMXBaVG9QY0dNUjIKbStGSmV4UHM4VnRib1Nyc2d1RThYYmkvSlV5K21WYkVwT0pqUzFQb1l3ZCtpd1d2TktneXJJZVFMQTRSRmNsYXMzd3JzcEJld3BtWDFPS1YKa0VEVU9lV2tTS1FxSWtMQWlKaHhTa1NDL0dEN2J0VXhDNHBhdWVabHpXcHhYc20zQ0luOUVNMndiU0tWWjI2cFpQWXhhV1M3VkRaU3N5bVAKTFc1UUVCT0NMTE5KL1dtY2pnSGhiQ2tDblNLV21iVE5FckRHSnNLK2ZQZHZRWHZXZ20wNWNUWlQrZXROY2lacEUrY2s5eERpa1ozbjJpMnkKZWp0RlcwZW1sdVpsRXZVcFcrNGJKWFVJcDJHUHBvMHVvTmN5TDZhNUJOWWNDZFhoWkxCVHNXVUtRUEJ1MGtkTlNITFJrbjRENWs0U2s4UVUKRzFFMzJuWDhpaHdQVCtweVhlbzRiQXNaRjYxa1d3SDdZRFFZSEM0QzR4UGFVWnc3R1dHb04xbnlQWlUvUWl4Yld5ZTBiR01xRUdCVmdJSnEKbjhnRUJLRWdHb1JXMjNMdGRhL25ZLy9rQk4yNTNEeHVRa2Q4SXE2Q3p3TlhMMlBCWUFJZzI1cWV0dHJ2Y3JhaUMzNjJYSzdtRU5WS0hja0YKQXpEUXRYdjJaM0M4dVFQVDdvdWZwK3dWREdlVW1IRTVJeitETWRQc1Rqd1BWd1ptVW9mODFXeE9BYzNRYUowaUUvY0VJTHlwbTZSY2xlU2MKSFlvU2xQRW01RWNKZ0JPOUt2UTVJREFCVENEK3lHbWJUV3NKOFlJKzRjWm1sT0NRT0lSVktHV0dYb3VKeTdDQkZCN0hMSk9idWxiM05vdFEKMk40cEZxSUl2bEUxZ1pNaWlKVGFLVnFqcEc2ODZIMkk4WGxOWnV6dERsZ1RrR3dNSHNscXhVcWVnSEMxaW0xdFVSRzdpR1BGQ3FMQTZ5aTAKN01lNzJXS0JEM1JWSnE3SXRoQ3ZYVzFiVGtYRWVacXdZdGl2ZTdXVFZ1L05nUGJGdm53NUo1RjlmTXhsTTNReVpSVzVpcExNb2lwUnZtSmUKRTM4YnVqTXc5ME5FZ0V5YVVKQ0N1VHBsZXliT2FpUFpEcWx5QU0zMzVWWTlhN0RXQ2tVVGUzV2tTdUNyNkhnQ0FJbkFFeFhTT2lUbnFSMnAKb2ZyMC8wTzJueE9FamVoSUZIMndoUkdVQ093aDZiUmxyWnhVRmFRcG5FMXZxNFNPV1pnZVBQNDJLWDQ2V0Z2T21kdVpBd1Y2b3A4ajRMK0UKZmg0SmJiblFRTUhLeUVHOWozTU9JTWNtVjdXdlp2SkRRcGE3LzVGb0E4NVhicUZiU1h5ZXlNSmdNa2pUUEthYjNXZG1hbFlsVmRGNmtGQ3UKL0VGdHhOQ0NhaTBoZ0pDSk9ON3Awem1ud3BJT3hKbmVWRktpM2ZMaUE0bHNpL01ubTdDMkoxWlJFOTc5ZXNrSVFWQ0RxRDZQNmVSYmxmYncKd0JiUDVFTlM5cmgxU1l3V1N5WlJLMXN4YkpnUkVRc2dtZFRsc3JrYWNnV0h4c05KVURMcmQ2UDhDSFZoUUdQem82M3VaOFNoaFdYQnNZS3UKbklzM1pQTHNqVTZGa1B0eXYxMjdXQjQ5MjNTeUhvcDVjNnRwMWVtZHdxVGh4LzZjWk5ONzlSR3hwSHoyUmdXUTN1U2VRWVlWL21wdSsyZkMKZHBRMWFnODA0VGg5c1FlWDJnR0JBZWwyWWZnd2k1WmJhYXNhcU5vb0ZGWklSd240V2pyRDh1Zm91NDBhd2Y4a01qUUoxNWVlTkt6a3RLc0oKVWVtYU1qbVZwZlRDVlk5d0JTL2tETnN5NXhjVHBCVzFTYUorQjNISElIWEloYlEyZXFXdHNndnQ4VU1KUW13V283MTRwSTdOMjhHVjhqZUoKWGd3ZnZaV2Z3b2J2aGZ3WUZuR0NzaGlQR1pQWkhqdEJLUjB2blFEWjltN05sbUhXUzRtV2FvMkVreVZYWkU0NHl6UllSV0EyYmNhTGlhTkoKa1ZzMWRGOVM5S3MzS0x2N3pZSTBhNWphN1cyY1dSSmU2cW1jdzFMMkpIVHBUQlFKTHVHUUljb3pVYTVRM1R6ektKT1ZpdkZpdkRlcWlnUUUKbjlvdDkxVGQ5cENnRkZZQVVwUFRSUTNqSWlQd284OGVDb0lPUTBEdW8zUlJDYjRBaitjb01HMnkrUUp6R1J3YkI5RW5zR2hwRzBtQ3JTOW0Kbkl5bG5QY3d5YXBaNGJBZ2d2Wm9OVFNMTWhlSExMOFcyaDNZQ05JMkNFYTNJNFhWNnZRT0xEc2l1Y01mc3M2dGUrSHdjb2Z0OSsxRjBDM2cKVDRadVRmN1l6YktIZmhoSEhibnluWXl6dXg0c0huandVTEh2dmtOM2Y5VkY0bVY1amxpU2FlSDNHN3ZlWGgyaERsVnRvYlkyQlRmeXdFQUEKYjhlc1BOTXFRZmNtYlVRR2UxL1NEQmcwbVl0Z3V4TDB1VFpEQzgrbEJ6WDljLzJaUG8yRk1DeGE2TGVvdU1FeWJxckZuTDNZN3NnMmNSYXoKeWhSNzVMbUdBbXZTZHhsUitLL05FUGo1b3JOY1BldmZXU210RjhyaWZ0dVpKK1ArWU5nY05vdnY4T2JOVjN2Nm96L2hUMmw0L2ZYTFZQSHkKTkFRaHB6MHMxYlZXZkV0NWtBUUpSY1A1aDVka2JDdWVsWnNyOWZxWXErT3VBYzVNMUlhOVk2NjRvK3lxTnIwSDErcE5VRlNZb3pDVEl5cTIKdTRaRTVrOUVRa1Urd2g3SFpyc2ZreXVDMkNwWXpvMklKR0xsc3QxcjREbDRmeWNuWCtGakZSLzFPeXpsd2JubHZmQU5mL3QzOS8zMmwrNngKL3kxTnBVYmlwMDBPODA0V3B0SkEzOTZSTDh2NUpwTUdtdDAzMVJON2k3NTVGZnVHdzNJQ2tzRlVyR2ZxeEZuOEdyREJvekhMWlV6bU9zdTUKSnNYVTNaZjMzc0daWVh0bk5icWo4T3BUYmlQUEZYbndmcWxYWjZva0xPeVpLaGRta3FMWXEwY3NyZVJQcFBTSENnaDFpcG1wQUhvcTI2cnMKR0xwTXpEWUljVVpKQ3M4dzVCcEY4MnowdkQ5ME1SV3NrSnhFNlBKbld2TUlmclRDSmQzSi9GUWN1OWlmcC9BYWpWUTBKamlTaWdMdDNKbjMKL1VNUWRTcFVDWU1pbFg0d0lMa0M0NmxJY2o1WTh4dHRVYStwK0FUZWE0MFlkWEppMHBZdGMxbUtpcTBkRTk3eHF2ZFNPMXVQa00zV0hsbFQKSzJCR01iYkdyZE9wZlIwN2ZhWWxXRXlsVm55VHhBWVZYTVMwL25LRkI5dDU4blRFenF3V25JMzduVzFOQ2J2YWxLczdzelNWa3NpVWVzRjcKOENvTyt0NlNwcGhuWmtnelN3eHlua2ZKWnFqYldCSVkwRHNXaTRlYiticGI3TFVaMzFaWDJMWHJ0enRUMjJraFB0UitjellIQUxFemVoN0IKeWJYY0dDMm1NaXk3UjNrNEJOVjFyYUVwbW8wNWtxcTRiSEgyYlByc21YKzR5WlpPVnVnVmo2WHRMVExqWk52ZHJYMXI5dWg4Vm45c1ZpYjcKcUl0L2hzc3Bib1dwVkI3SWM3bHp4VlRVWlA4amxaMDlVV3ZPVStkL2dDSk9nODAyNndRYkJjay9taVIwcktXSkY5engyYWtRR0pRSDJ3cFoKbVQ1ZVNvNEVGNjVOelRIcHhlZTZRejF4aCtzUDJRNDBzd1FWWVZ0QXlWOWRucnFNMTAxMGgyWjJLa1crYldvTFc1N0tLTFhzU3JRMXE5aUgKb3o2bkp5OUwyRGxpUXg2Yjg3MW50Unl1VUtMS3RwVnVOVFBsQmNkek1sT3djMkVxWUp6VnRWTWh5R3duV3BwS3lJYWpxT29waCtyL2Z2MEQKdS9VZjF2LzkzU2RHQ3Y4MGJpVDd3bU9KeWoxZjNEV1ZXcGhLNHl6UllIUjFvcW9idVgxWUg1MWk2bkNhbVhKMmkyclZMTittTGlVTkxHczIKSWxXdDJnWDZjMm5LbjZGU0MzVmx3eUNUQ1k3SWFFMi9ORXBpVGtVYkN2ZnZQWkd0bUhMc2JoNUw5MUhwVERtdVUrRzN3a3VBK1VnMzdSdWoKRUt2ZWlVMGMyQXRNeENKeUMrNUErUDRTb0FxaE56S3RuZGdWVVdkTEwzQzZKZWExbDJ5MWc3VS9HTFdPR1NacThnZG9VWnZYQjJVVEJ3Mm8Kb21ha3lWc3pFN011YWQ0VGI5Qm1iTkRRVE9qT2ZiSzI0UHUrUFBWVVpIVit6SjFOSnduOXY2V3BvN21ZTW1kVVR5N2FROThoeVIxd3gzUzYKZHkzRE55VzEyeDJGeWlmaEI0Z25wL1dteXRYTFZJeEtqaG5ESFhpRjhUVkl0OVJRdHVFaXo2TFZOajJtN0pEdFU2dTR5Q3JOTW9RU2V6VXUKdW4xcTNYcTFaejlOcHBMTjBrNGJobzQrYTd5bHhFUVdrb0FyV2VSYWVGblJqeFI3V0ltanhGZTRGbTd1cFVIM0k1NFVwbG5ZVk5yQllDWFgKYVh0dFN5MGd3cElWeFM1UVhoSkFvV0RRVnFrcUNlOWU1SmJ4Rk82bW1QSWxpOFVwL0ZLbTFNQVZrSUdlbWxZZGl1Z0J3QU5TSWV0TXU5Mm0KVWF0VlJvdHRhbWZQU3ZkOS91eW9pNmtKTTJXWEF4cmxRdEZvSVhYN1dZb1NjekRTd0ZKN0dsWThoMzBmWVErbUhQa2ZvbDVjY3N0VjNUSDYKRFNvcW5MaU1tdko3eVpQTlJQRjJieDNMZERROFd1aDYzZ2dQU0dMQzErMjI2UWZNNDZUWUlHMHY2bm1reDROOGNnZWJLSjRnanUyVW81Y0MKeEFyYVpUcWZoVlJBTWo2dGF6TjV0QzlGWWJnWFRJVnpwNW81bXAxQzRnbTJRcm90ZUxadGhJMXpNRlM5c2Fxb3NaR0NPUG5xYTZwSS9hbGYKZG1kcWdwN25TWDN0ekhFUEc3aHN2cnY5V2QxQjcvazJMenN6bGRMTXloSVdLdURCakIxVEx5MlBGbnVaaDJCUzNqb0o1aE1Gb3RTdzUySjgKU1NOUXRHY2xxMGdGdmFXMkxoTUxrU0NNaE5xMldBSGZnSG5hQWwzS3JYcFV4cnJkUHBQaGpScFhwZ3h1c2RBY1k2VkpqOTEvMzcxMitueTEKb2tRSjg1QUpwdFpnUit0RzdYWmFWcWsvcHhJbVRUTWVycWxDU3JMa2twWWFrQU8yQUJtN1c1MTh3ODdPMXFOUHFlaVFuTThNdlFOVGRubDQKV2FsdVFWYTVUOVdFUXAyY2tXVHY0cXA3VjF0eFB0WnRGYUhkL1ZQK2tVNVJIR1lZTlM2bFZPcHRhaWF2WnVvNjlza3BwM1Y3dmFZaTF5eDgKdFFhOWFOVWRRTXVBSEt0VEdqN2g0amlhYmxFLzRQMnBPZUd5YW9NMm40VjQzRmFWamZ1K1ZxbkM3akl6dGIzRmFhOWRnUDJTenBYWnFlVS8KQmRnamE3K0ZBcW13OVdoRHhTNlVWWXNkZW1FNW4yakZGRVNTNjJnOEJPalRWMVdybTdQb2x1ZmEydHEzWitabnBqZUtqVlJRaHRITFZIc1cKS2FxcGljM0VTOXFYYUVHa2dKMTdpdUVSdFhYRjdTcFRxUUttdUZ2czdsUlRWckxhamRZanN1MUgxRCt4UTI4UXlVTzh0RHpsUWs5RjFIWjYKOWJGMkw0ZzhnMmZnWEdDTVoyUGd0aGlSYUF1QzI5MlRpQnp2bVdWajdaT3kxUVBEeVZxTnlaTHpvd2NMSGdHR2phcklyc3ZzZXFqVTVGQUQKKzVIakpZck1XSnJaUGpNVkkxYzFyMVFlSjhFN3VTdG03YlExMDRiY2ZVWWloZUpJaDZOZVhFRUd2MWNtOGIybnZTYUtzSFdtOEJaWjVkb0MKaHkzM3JJalllK25EdlozK29GT28wRnVVWGo1d1lNN3NYMnNYSFhtMHBTMEZIR0hZZW9qeVRXM3lsQ09Xb3hVRlprMytac2tnUXlBMHJGK3kKYXJGSnhDMlV1N3gwdDZ6REtrdHk1V3A2ZHJSN3lydDJCYVpXS2JBb1V4MEdvb0dUTE14ZzRBVm8ydDZYM3lZdklQUHgrR1BxYk1UbWtWbDUKclJmRmZhSXRWRzZXUWl1VExmdU1TVHZQcXRKWFN3VWVBNSthVmFoSjV4VWpXSzV2YXJQQVQrWW0rWCt0R21nV1ZJUmxISjJ1V25xREloTk0KYzJpeXI1VW9tdXJMck1oUGRFVmpBdmVSK1RrYnJQSzZxdExaS2tCZkZVbWZmTktpMmRNVFlVdG1pYWVwUFdSTHZuSlVBdDIyN2ZOM2I4dWIKWjhlVzllNFVMREFTdEc2ZmVkYkNGOFZVOEh3MWRnRWw1S2J3K1hPdFJoWWdmMVArKzlJVWh0eFcyRlp6ZUxBQmJiem1zRTMzUEpidzRZL0IKL1plYXhvZlh3RjF1LzByV2ZhYXpVRy9wTDdMVHlVY256L3NHVlFpQ2daKy9kNDA4OG5lZEkzODlaNlhidTM4aEx2ci8rRDBvQUxUWC9PaVoKRHk5U1kwQXFDTmtuN2YzblhIdUJlZ1A4NjdyWThjN3l6dS93aXJVQWZQQ3I1S2RueWd2MlYzdE5xQkdjbU5JQ3lEandIMzJYcWlQUWM4QTEKTDFMdlFCeHphQ09jU05kNG56ejBKMUt2VUUyQ3ZmRSsrZkIvU25iN1JUTEpuL05ldVVHVmdhdFQzSDJvQmx3bUcvMTlha3E4UFBWOFlPby8KbTNRWlRsQUw0dTJQSHNYZFdwVURmTktaL1JlY0dYK2QvSHEwNTMzZU5kMEJvNVQxeEdYK3ZFVHV1Mzh2dmZmZWh6L21wOStscXNFRlo2TTkKZnV2c3JUYy9maXI5OW5Rd2hNaml1a0ltbC9PcFduYWJXSE9KeC9ZV2VVZXZrVTBXakx2Z0diMWluN2xpZjcwOHhlSVNuK3JzcmNzWk8rbjEKL0pOc2pWM1RXVld2aUUzbHZDZHcvTjZ3N3ozbTc1MGtaMHBYdVhMck90aGQvZ3dud0FHelR6N3AzM3VMN0xFelUweTJhQXNZYk5HV1YyNmQKSi8vdExlZHNuY2dZWks5TS9YV1d6L3MwZUlQNDYrT1RMVmNyT0dCK3YvTmtqTDJqYTdJbno5cS8xNXpKOVRSWWNINC84ZEhPMlZXdTJYZkYKWVh2TU9XSm5RelhIKy9QSmpNLzJDbmlJN2Qzelo3QTduUVYvTGIxM1hYeEFGRVV6ZTFDQW11RmlLb1Nwa3lncXZmaUIzNW1PNm1ZbGhiR2QKZXZtVklNRmd1OE9HNXJsUzVGeSsxUmJNVy9xdDdtQ1ZtbFFNUHJxeXAyMkpGYkpFUzlNQjQ2bk1uRm0rMDF2NWRIS25hUU5oNnhYU2VsTWgKM1JtQ1NGWlJtSGFWVU50SVBjSFBCM1JSOGNPVXJNd1ROMDFFZHJ4Vkh0MVEzcnRUWk5aZU9seWcweWxRNHN6MDRSZVhpdmg0RzBhZzh6d1YKMnFZdm12bHJPeGFuWE5VcDA3K3p2R002QzdjeWxkTnBuM2QxTURoY2Z5NkN1UEJ0OU5VM1pUdnYyYldZMXhDeEMwUWRjNy9VL0hTeUE4ZHMKNWgxTm9iNW1adkxrc1oyZFM5T2prcVhmY09YT0ZMYWcwL0kyK0c1YlM1Qi9laEkxNXBVOHRoU1c3Q3hQUlEybnJhOGxjM1QxK2FPRFliZVoKaTJ4dG9YU3RGL0NPRytVVkgreTFoV2xyelZwMXRPcjEycklGUmE3aXZuMDZtT0c5NHNXd1o3S3E3V0hTZVBSWDFvMkF2MTR4MW8yOXhGcVoKY25qMlRLZXFsb3JwVkh3a0E5eDYrVEpyM2lkSjN1a1E1eGM5ODJxejhTSHI3a2tyTktkbXRHa0w4SUU4RFJaQklFN2t0cFozcDVoYUt5M2MKVERNZVRtMXJVejQ0eE9vZEhDdjJiNHlIcXh0WjRXSjhlTnJ2SmI0cld6d0NzbXdRYW1aRzNMZDN6T2FXbHNZNkhyZEpPRlpkMnFkWmJHZTQKM0FQTUNoQ21sNWFtOE1zWjFHTTg3TTB5eHR5NnBNM252SjlJeThrY25tSlg5cE5YbXdXczJqUUY3NXY1UFpra0lEN2ZlaTRLaEJWVFNSWEcKamRyK0MzYVZlejR0b0xjQVluSjZOMXMrbW1wYWM2cFFDdlViRUMvSHBmZG1OYnd6b3orODJkRCs5WkxJWnBpR3BxVDducm1RZXhaTndydTUKUnJGd2FLbnNDNklwVTNtMktBOCtidDJCSWxSeUdYTEt3NUJGN3R2WmlPWUlLc1poZXIxeUsyMlU1RVMyMGRkVXUxTHZxdWlNSTJaWEpsa2QKZVkwZ2xyTnVSTFR6dXFyVGEydGdxMXBxUUZySEFqR1UwN3pUZTZjM1JvbkFKNzh3QzVPRks1dkZtYjdXVjZsRmUwSU0zdkwwRnBTREhCa0sKSFd3OU5CeHNsZXVPdGtrMW1IbmxyRmhBRVlTZFJNaVFySnk1OHV0OVFFS3JQdUkvQnhFdnRXZHM4ODY2MFFIbXBkS290RnNWdDhLTUdIdkUKNXF6ODJDT2hPam1OWjVGbjJjYjdwempVMXU1cGRJL2l1UWxPbDVOZGZMRm5XZkNwVFhUN2pEbjRlU21yTkZlMXlUQW40bmhKckRMTlVMY2sKOXRSTmtZT000NGdScDNPeG1JYmhZR2xrTlhla2ZGak1TaE54UjZveXFHS0c3WkdxNG9jNStBdWJXK0tqWWtWVDd1TXNaVG9rMEpSVWdKNE4KUlk3em1kN1V4ZEQvK1k0cncwQ3U1RXpJQ2lWdEUybWtYQTBaa05CMXdZY3Z1bUxWNlJkY3hzUVZmbjRVR2lrZlVBemtuTXZtK0x0WFhJWEoKVlYveVZpVlZtUitFc0ZJU0ZRbXRMZHczUHU4YVN0YlVwL2lWODZGQzgwRUl5MXpMdEdXc3pZOUNZd1JmK1RHdi9CUEtucHpPVktkZURLbWMKNS8zS2ZxbVhRak5IU2l3dlpKZjlHWlZobmdrMWxUUFJqS1FQSXdXazErTGRONlpFaDF6NUpKUi9rbEJZR2hUdnlkTXU2K1NTWENmNDFoc2gKK2ZKbWZQMWthTHk4bG1uZ2hDUVVidlRuMFNyZFZ4b3Y3MFRqWHd5WnNxZEMxK2cwMzVMczFVbmU4VWxlV1lwaDN3bEJwN01ob3ZVS2YvOUoKNkJIbDhpOVNLL3BaS01BOHk1N1JsVitJKzU3aVBIeVc3YnlCZjErbG5KZXJERjExQ1IzOGZqcjY4TGxRcHRJVG5ZdjU4ME0wQnBlU0d0aHIKdk5UVkdNVFhmR0w3STF5TDU0MmU5TW4yTEwrU2xLOWVEN0dqRDBKRzZYSjAzZWw0M3Rjb0pmUlNmUGRNWE9kS2pKSG1SdEtSZXkwbTdlbVEKSkhveFZJRE9aaXBuNzhSazFpMk94d3BLOGxOSlJlZDByS1lUc1JzOGtZM0NqVkFFa3I3UXl5NDloQTgvSHlQK1pxZ1NuWW0xOEtoZnl0ZlIKZCtLQ0w3R2YwMzV5c3QwaXZEUFZwQi9GYkE5ZEw3K3l0SDB1eG9kanhucFBKdEd3NkRwODdIbi9DdDZTWkZOb2VlSFBOK05HTDhiV0JCV3AKWWRQOFRsNWpZK2RvT3N2RGwzTXRkL2Z1WUxBaEF6bHRjTThzZlE2R1VVenh5bnIxOHVlODRwRnpSdWR0TCtlbDVsZnRFRHJjWnJhSzZmTmsKNStkTTJwbTRmdktyeTJtWGZjZmk1M0pEUUM5M3pkeVJnYktuK0p5dDJ1S1RhQTd0Q1QxMkQ4VVdkd3FYRExwMkh5aWpxT3NZVnZVU0k3R28Ka1FhSmdHcXZFSGl0dC9BNXoyOEdjSXk4M2xpU2RZbmFzOTB1NFhQMzBmZW9oZ2svTEVKczBYeHVBQlkrRnl0d0RXU3pUSnVKWFdHek0yMUMKN2g1Uk9IeHY1eHZJM0IvdUxGT1RwbWlSbHhuYUczQzh4Wm5QUlF6bWl1bHNma2tUVzlZYStKS2ZjOWFYMHYwOXc3ajR1UTRRVHFFMVZZblYKeWVtWnhUVGlLWE4reE12TTZuREJDZ3BYTTN6TjVPTlMvNkd6M1BtY1J6VlRGRk5wVlZ4NDkzL0tpQjJlYjdxcldpdk5EcHNWb1N0SnFCUjMKVGg1UlZYRFhxNGR3MExkR0cvYit0OUIvM3pvQytHcm1HbWEvQ3VqeU9UOGt3OEFDNTlIa3V1RDR3a0ZsblZKSm03emVzRGc0V2o1dUorNXgKcEVZeUlLY29JN2dtZTZFL2tLM1lXWmFyMG1JbGM0b2p4N3VZeG9OT3o2NWR1M3g5N0RUenNFVEJENUUwUVhsUmZDanpveWs2UXVjL3E2MkgKV3F5cm1NR3Jjc003MHc3L3pudElvR1dHdVd3Ry9iblBMWWR0eloyVFErVTZNdjZ6elk0LzJ2VmZQMmZhTHMxLzdvVjJKaWhBZGdlYjlmL1YKZFhXL1RaNVgvTHFXK0IvZXVxcVNhSEVNbzVwVzRyZ0tnYTVNYlVGZFVEdnRZbkpzSnhpY09QUHJrRVRWcElVQXBlMG9yVlJHaGFhV3JyU2sKR2RBVW11RlFRcVR0SHBFN0x1Rm0wdjZMUGVmcmVjN3pnWkJDWXIrZnorYzV2L003dnpNd3dIN0RnSXFQWVFNeUtHUkJRTWZ2WTE3N1BQb2UKV1ZhaFh3SWZwTWR3aGgyL1U4SDZZalhHcWFqMTBLUExqMzQyLys0OTJuNjA5ZWorbzV1NzUwQU5HREZ6aW9QY1I2UjdCeEh3UGlMd2QxRHIKR0JGMjgvL25HS2tBSkIvMWZ2MTRCMnYrM3FOdjhld3ZVQ0VZOUlTM01TYndKVVlSTnZGYmlsaVFvakpxUHVQLy92RWFnV2M5WmRiQTdlK2UKeHpnR1JBYzJPVHF4eVZHQmgvZ0VsM2JQc1E0dnFVWkRER1lIOVlaWFNjM1dQRCsvMys0bi9IN2JHQzlCcFd4enhxYmZIbmowTmo0cnRjOW0KRUIyUnFJQ3ZpY2U2WkFyWFBnOUlOK1BLQ3ZHSG54YS8vbEZGRWxaQnFlM0pHcDkvOThrV2FPYlI5WjdjQXBVeXZJUFRKcU96UHJKYWZSZFEKNzAyK3gvdWozdDY2eEJFOG5iTnZ6Uk9jcFUrQ1ozU2FkM3kvYm1lcTA5UEZXbXdzbjJLNVJVeTk5QVRMS3VFZWhXc2NrdHg0cFFzblZjVUsKUXdGYnBtTTJWOVQ2VVhNL3AzVllBWXJoUktyb1NpR1kvRTJJQVpKZTZGY2l3U05YWjQ2Uk5VWnl4UnN0QnN1YjQ4NVpodjRpaEVTYmJzSEgKcXZPZE9aekNPSm1sdW1kMkdFcEtkczJLT09JcE4rd3BlRWdMNUNwWC9NZ283RHFDT1hNVGVtWUxVT0x0S2R3eFJTbVBZLy9YSUJJdFBkSXYKd3VyMXRaTE1FWVhRK3VDMTFORUJPWGRCckpteDRqZ1V6UnZPM21pMlQyTys2ekQyaTQ2Q09BaURUM1pKN09qNW04MkdPZi9tQjBBajFZcG4Kb1VIVnA0Q2JER1hRQU4yME9VQlJvR0tnd216b3NlSkNiN3IwNjJLMTRGaWFscEI0dWxscksxZ1NZQ3pxelN4dklqb2U3blpaYUE0aDBVZHcKUGVTWTZIUXFlSFJnY0V4VHlTWGFCdnpNR3lRa3FLUnh4TnFFZXQrc2RhZGJTOFZxMExWN0NwQnEweXcxb0M0N0NXTVFGZ3h2QmhzcU1CbW4KTThKUko0ekZaVGF0V2c1VjVadlpxVllibURWZGtCSU1URWZpR3RWN2RzUllQU1FCNFk2ZDZDQ0VsWTF6eFZ5cDRHRmZuMk1DYmZzdUI1dHoKSjJ0UXVRVFUzVTZaQnpIZk5rdGdZa0dyemRSbW03eCt1RXdlYy9DN1ZBQ0tLMmhKRGFWTWpJTmozUTZTc0g1ai9waWJnb3hoTFlSRFZCK1cKbmtCMUpHUzhLQ2t3b2tVaE8wVlhVMlZsTjRtTmlNdmg4SEhCMUlTQ0tlUVFaOTNicFE4eHhid3NxV20yUGJpc0ZOaFlpRDdtZmlvVU1JUEkKUW5Vd0prcElMRUJhSHFSS3RPcTVwL3lGbUNtVHZhbDRVMjJtdy9ONGowemtQYUZaVUFEK1dLWUxQWnN4TTV6cEZjR1RoWUs3dk5VeXJoQWsKOG1idllpUXp0MGFKcklXT2hzYmpRQmt6dExSNSttSFlIaDJpdzBHUkpBVFBvYXdUZFNJTFZZb3doYUl5K1M3RWlESHQ2a2dWazJKSXJielQKdGxreGNLQ1gvQzJBNWxGakVWdXhFODV5ZGJYUFcxQi9VZmdvQ0FGenJvMjlxQzZCamZuUXM4akphL1ZzV29FdXhFdE1xNjRaSmx4aGswaUwKTm1tbERCVWNvZTVhMHc5S2pZZUx0SGNDN0lwMUtJb0V2R2NaMnIzRlRzbll2RjFibVBIUUFwZkRBNllXVkNWc3lBZHd1VzZyMC9BVEdUSnEKSU4reFluMDhqdHUxbHoxUlFwNzdUbmtTdGwwc1ROaFY2NGVuWHdlbjBPZ2h2QnliMnRQY2hMaUZkVXhxVXprSUp4aWZMRnlFTGNoOVFQRHcKVWVXVmtxTTBlcksyWk9iN1ZNNTRRbm5maUF0UlNiWVJkWWJDdWNzOHJiWDVneVlJclBJbEZDSVpLNXIxL0hTdGJ0d3ZaQkhEOXRjY0xMNjgKZjBLbCtRMUV6MXc5cXVxK1lSSE5ZZVVKa3EzMHk0b2pUOHBlcWtRM2pGTmM2eDB3RzVyWnQ0Q1BKcE13bXZ1RnlDREw0d2JTMWhOcDUyVFIKeUhQc1RLbndXTXhDUTYwWWVaUksxNHh2RDQvMVNybmRNZXN5WjA4MjFBQ2xBZWt5QWNVcVFEVzc5cklTNDVBNmlTNFBhelF5QW5XZ25QaHUKbnJnaEhnODVGTFhHTW9vc1VEYWFId3FDZmRqYUY5WlV6YnlBQ3ZtNktEbEdKVlRSWTYrOGVPam94T1R2angzT3BDdTBhQS85TEZaRFRNcnIKWUVSVmZMNGYzR3dzTWpTQVR5ZGltd3R0eUNvTkZoZXpWdmhaVDlDdmI5UzY1bmtiR3RGeFJoVm5UWk9wRFBtMUFnWWNYWUxTWG5yYlpxdjgKVkhNWnVRSm14dkJicUpHbVBBWE96NXhHcFltMnlpSFdJNXpNOHl3eTIvMmNEUGlvRW0wMEk5SHU3ZWRTNElyZWhuSFNWc0YxWUs3aXFMZXEKSDJBVCtwbU5vaHpsOGs1a1UwUDZBTzVzbmlJVlByUE4yYkhtaGM1d293UTZiNHFDd1ZqMzJhSndwTTh3aG42dlpTSEdOQms5YytUWDlCeS8KR0lDb1pyZlRaUkVmc3hHM0YzSVVrUENTTHhGOTBkWFp5TnN6UTQxU2hLMzJ6Y1NSY1lhYlhqZGpaYXJUT1dXNUFVNHBZNDVHVHMzR2JpWHYKMmkzS21QYmFuRlhaKzNDZDhWNGI4TE02Vll5bDRMZDVFNEdQaHFVdnVMWnd6M0hWYVJYSW1mRi90TmRUVlNPcjBSSTVQcGNGb1hZbGRwS0oKM0NjNE1BdGRaeEpNZE9ab1NCc3pnWnhoR0MwenhzcFp5RGtWTHo4R1pGL1E3Wmh4QVhITnFtYnpCRlY4Rk1HQVNBS3pManRIUjBJemRBaHEKalpNMTVOVFlNWWE0bHdjSUd5TS9ad0dpVEZSUGxTWXNLZDJZNitKQ2F3UHpKMGlZVkJUS01aK1JtUklXYmowRXlDUGFVSktMYldXQk04cFEKRlZram5ha2tXYVJPa1ppTVNLMmJBSGhrcDZ0Uk5iZ09YNTBTc09vb0cwSUQyQXlQTGtyOGdzQ2gwTTQ4cDhCT0s0czJnblVEemRraHpvOFoKWDVZR2swVnVzcy92MWlzQVR2NUYwMnA1b0lWZzVpbnpuUlJENVdBSFZsNFFoR0gxdkR6SUlUTXVuYUlFOHNnTWN1SEJNS2NjU3VqZlRnK1MKUDNLcHRpa1NUS0RQbzNUZjBVL3dzMzl4RlkzOFRIdHZVQkJZR3BrL01SOXc3Y3pvaXhiYWdsUEhGT21qR29oemRYQ0pZRi9YUjJtaHJLUFAKTVllelJBaksyZkdUT3NNQjMxM29kVVc2ZVhGbzFNbjR0RWhmdHVsUjdiQ0pjVlBOdEVRY3Aya2hKRVBhYW50SHN5QVk1ZXVUNERqRUhSWjkKdmZKU0NSQmhkUlB1eHl4eTUvVzNoS0xaOElQOWhkWk1mSjc1Rm1xNlBQNXM5NlBIUHdOM0dldUZVWjJ5OEpQclZBVU1tZVRuQWQvbHltNzMKZ3lwc1V0V09NVTcvazkxTGpLcmU1UXB2Z0tzQ3JydURmek15L1BoSFBIT0hXT1hJcDM2QXZ4SEt1Mkh1UjJqc1BXU1ZNOGFNREcvbWRmUGQKQ1ZIK0dldjZVVjB6dWp2d3Z1L3pXd1RQQTVneUlyamJqQmovZGZjVFpKNmZROTU4bjdGZXFHejNJNlBKMjhqKzNzWWFiWnQ0ZjNwVE9JWjQKK1BMSmZYb0xydElHZC84VWo3K1BOZVcyb2NvZnhsc3ZDbUZnUXdLeUZ6Q2l1b0t4NlRzWTdhWDRzaVV3cUxwalhNTHBuSnp5bllScnR5UzgKZmxHaTFSVFMvVnJWdXZwT01RRW8zcTByY0FrN0FqNlhzeUR1ZkJWLy80cFpIRnhMaUJnWFYxWHc5NHdLdTYvaE02eW82ajhQMVh0WnRveDkKaTc1YzV6TTg1WTdVUGxzVGNzaUc4QXIrZ3RmZjRMZzVjd21JVjBObGNXNEpSZVNCdk9ZRlBFV2ZSUzJqMnBuYmNGMU9VVlY0SE1mZ29zVFQKTmJsaVJ6RTMxcVdSUDVTTzJGTDhITldHamtCaXVRU2FDdkpRdWw3WUNJNk44M2RISWZCcTNxMG9Gb3F0TnZVQjhqR294WGFrZCs0SktVS1IKaXp5bXgwV3BnYldPdit3Z3crUWgxMjl5VDN0R3F1a1JlK1NxVDAyNUl3ZmZ3QlBQdURkMTkxcVhIcm1NWjkxbWdnb1g0Nk1CZGtQYTVMWlUKNEtLbXV5NWx0cVNtRzkvOXRqZDY0Wmp6eUo5Wng4OHZDWTNoWXlFRlVaRTdlcDYvcWZZL0w0LzNnWXhuMjg0M21aZmlhRVVQWlBTdXlmUloKa3hKVWRvd0o2OFo5UXQyMHB0cDUwMTJIeUNFOEw5Wmt4dG5DVzJ2NGhEK29ZbkJZTVJEK3ZHMnZFOGVSdk53VWw1R3lhbzVhdzJ5T2RadlYKSU5XTTRKZ3Q4LzhQWG5VZTk0blVhUXJqUTk5em5zZ0ZqRkQ5aEZFcXVqTGt0S3hoeFNKK0hxbHhwRDY1aTlHdXN6WXlkUk9mYXdXeU9iaU8KejQzd1huanNwdnltSEVxQllCYjNqM1M2TStWOXI3NzZhbmtKUlh6QVJ3aEJJWFI3NGR2UnpJWUNJaFJHVkp0VWZZNGlxTGVJNnZkWXNUTTkKWGRTU2RpempOd3JsTmlCVUw2Ui9ZN0ZFZ0ZMMlVwQWZBbWFnRGxseERNZGFXUzlaWTZFWWV5UzZvQWQvVktoRThaaHkrZkRieFV6ZmNCRkUKU3hyTjQrOGNtWUFVMHptMGx2aUdKNDNWVFpjNEVBYWVRZnNnaktua2RZdnFaQmFQMDNKV2ZOc3N0dTVpZjl3enlQakdjZGRtWUlVR2lKWUUKS3JEZENZZ3FKL28yQnA2d0piQ1RLU2owV3JXd0dJVkJYZ3RDYjRpdFlLemZ1MVlXZWF3SFlyeWxnR2loVjkyalY0a2hxU3lObFFSa2RnWE0KeU1uKytNYVg4a3BJa0txRGwzQ09lbUdaTDJIZ0lIc1A4TmZwMk5MUTRUTUJYTzFUbHVGa0piNGtRelNMWW9uN2JKNEpJbkptSXN4TVFUMXYKQmdXTUx6MERqSlpvSXJSbWhWU2xYSmp4ZXEzUm5DVmNncGdqdVVLU2hOV2p2VXArL0JFemFOaUpPTGg4cERIWWFneVJrdHhKSVdhRFN5eHUKaGtoN0RZMnk0b3pYdDdHSlh2RDZtVEN5YW93WUMxZTU2YkpjbUNhT2hTOVlBMFBYZE9EUXRSY0JwNS94eXRIeXFrRVFyQmhvaFdGb3V3TnAKejE3aEJ3akZnZmMvTjlNRFljVkRJeE1qOGJndmtRNkRhRUVBc0RHc1M1T0p1b2Z6Q2hzcTNUcElHMUlCTTRFNk9VTU00bitDUDJZeEFEbmIKeXYzeWJKM3BTUUhXaHJNVDdCVG1NYm81WVpheDJhbFdUVjJzdVdRR0pJdWljSExLUWs3VkNWUzdNUkRvUlg4QnJ2RkJ1OXIwTkJSZDZLa1gKUXU0NXR6RlBLd2ZlS1lXNENBSVhZQVdPT3dLWG1HdG9xaVBQTkJlRnM5NjJMaG5Bay91b3hDNFhtMVBtblp1b0xGS0RZR08zNTVJV2FiY0QKRE1nRzNZQm5KTGlpamJhS0NJSlZ1WGlka1YzMXlFeGwwaFdBV0JWZUQ1TzNqVC9zK2d1YjBFdHhxdUc2VTYvTjE2UWdpV2k3K01DdE4rUWcKTllXRzNQUkNGOGVwV3NkY2UxRVZBOGp2a0hJV2Jpa0ZDR3padE1FTUNNQ1JzRm5jUVJVL05QUmU2Zmg0YWY3RWNrNXNCMXVrQm5pQVprdUYKSlV4R244V202dkJGSGRoMmcvSWFMamlLeXdBMlBQSkc2QjF6VnVXd09CZm5uRm1MQnFyeWFQaUhnRWdvZGRWRmpTbVlKaGpPd0g2c1EyM0IKTGdoRlFMdTh2UC93eS9zbmVJeVpQNHBEUTZNaElnVTdwQ2RTS0JpMkdWWi9EUEllUTM0dDBDeURSUnFwbDNHYzdiMFM2TWdlTWpOcGNBZ1cKN2NuV3JQa3RpeUdZb3JldHNHWGhMQ1JuOHdRSnVWaVZ6cjZETW8xUXFsWm1GNi9uY3R5QWFnTS9kWmI1eHBhT282SjRDWk9KRVhxOVB2WEUKUU5KM1ptbFczeFNCeW5xTGs2Z3hYSVB0ZXBtSDNvUk5qY1FlMFBYdVpPSHh5TGQ4STErN2c1TjZBcDV6ajJRclpycTFXZVMvV0FhRUxuQWsKNUNWN1BjZTI4QkpyNWJqRWpoMXZuMzhxVmhJR2pkcU9ySTNxeFMvNGFHcmxvS2QrVmEzQWkrb2hMSXB5ZWdTaVVSZGtZb2Q4YTJnWHNjOTAKSkxtWTJEY1QxbHVSK3JMbjlXV2VzUHoyRk9MbnE2WUdQaThHVXBBTzZvK05KallOcHhqbUNxYll5bFZTbmFRRnhReTRiSVBtWUJQbjN5TlkKQlpIUEN2ejBxa2x3WEl6ZXgxYy9WbFB2ZEtmVkdOdzdORnIwRk1kdHFuUHNxcm1ZZzF1NnF3bVQyK2NmMG05QmhqcVNTNGdEaFRWSFNmTU8KM2xjcFc4bGtxTVFnYzUyajJyQnp0RnZUMkx6RFhoMUVJYVBFUzFqbU5DamhPRElQR3EzNU5nbUxXZ1diM09uNnVQZkZnUkh3MzdKRUczRHcKT2hjYkIrT0xDZlBScTNhbFREZXZYQmRwZkVVZUhaVlN3MmkzL1UyWGJwS3FGR1lFOThMSWlyRnhUOUZJZEdPckljVWllUDJ5cERNcGlNUnQKYW12MXFPTTRydVc1UjBHQ05GSUpzRTlQQTQ4SVpKQ2JvSTZVazJVM0QvRk9xM1ExYUIxazUwT290cklSVWFlQzdleWpSQmRWczRRRGlSd2MKSWlVZ2NRaWVqY3FYK1hRSUhKRllGc2p4SzFWMUtyUlhGbHM1Y09rd21vN1RVTktUWVgwSmJ1NG5YdEs4cFBwaFRZd3B0aHIwZnZ4QzhJZU4KT3Rxb210b2dvRU02czJia0tzUExLNWZJUFRDZFdGK1FqOGxsb1pnZmhHTDZDek1MLzFuUHMwR0tyUzhNaVI3TzdwWEgyN3NyR08zWXdCaEMKOE5uamF4ZzFXRUdOSUlxTmJJV3hDMktZbTNQT1loVGdnY1JUelBVa0N1SmlDTnVrR1NUUkI5RFdpYzlscm56NDJUV0tvcGpyQW9lOWJ6bjYKRkEvWnRLbzg4ZlUrb2VlRkozWmFPK2IrcEE2MGdaK2hIbzdvbXlEbWR4TXJyNTluZk8wblJncFhGWGY4REgzMjVCWjg1dTlSeHlkZmg3VWsKSit2TExKUXFGOFpQM2VWeXJONnFJNk1KWlUzR3NnRWNhN0xZUjhzT1dGUUJra1hvVUxoNzQzNWRURzBHaWlQdWxpUnJqUlNVT1lMVExaeCsKbFpTUklsOTZGbzdMQ2hFbE1HTnhSVFlqWERnRERmSlcvWlMzeXcyS1phc00yejhyd1ZDeGRJclpNVFRkQjNMdFYyV1JRUWlORlJyYWFNMUgKMjNRUFUxSzhyWXYrQzlkMmRXVHc4eVhRL1lUcCtMNlp5aVZPMnlxa2JGd1NyYW42NGpXMGVRVndoQnhhME1jR0prV2g4bUtwOUFkZndHTzgKMVlVbnFSWVNMWkt5VEJlZjlxODk3ZDk1MnY4ZWZtNmRmZHEvOHJUL2oyZXIzejViL2ZUWjZyVm5xMWVlclg3emJQWHFzOVV2L252cm0vLzkKODNPYmNyNjFZdjRha3JqWWhnUXZLTXJ3TmVMMkgzSUlqQU05RXJYaGpNdUxFbTZ6V2FWQkJNZUdKMnhRd0dhaHJrc1NhSitqa0hDV0RmejEKVmU2d3pTeTJ5Yk5YVlBnbUNBaCtMRW5RT3hMRCtsSWU3NXprazI2b0lLUE5HcmJ4eWpWSitOV0JtNVVvTmZzeVo1aHlVRXpIczRJMDdldVMKekh1Ums5YTVUZFl3ZjNaSHZscVhBTmxsT1hKSFFuNWZxZE9wZmM3Z00rc1AxeVY3MTgrQzU2ZmRVRkhJNnlwQ1pQdWR6dnBHVHJ3dHJXcnUKL3JWWHVOUjZ3VEdiRVBnSHlveFFhV25Sc0lmLzJEc0pMUWdRVzFHM2tmd2JYTEJDL3pLMTZ4ZXI0UnBJMHlXQnl5L050dFd4YmpFTDVLVmsKOVZTYU5NcWJNYnRBd29aSzJjUGxhZ2hwa0ZjemtsNjVsY2ZwSnIxZVNOM3FHdk12WWZrTTNGRE9CbFdydTNMeFN1WHl1L3NueXVWRGs0ZXkKOTk2WWZPdk5iTi9JM3N4M3VnU1JDUndlbHNveWo4czZUZWk2UVk2RWFhaUN0M3ZLS1E3SitLMXA5Tjl4bzZmYU1UODRrL0wvc3FDeDJLUEYKdXd3RXZUa1FZMUJJSVBLdndQMmFKYmVzc1lGZkpDSlFsZVNXV1lCQXozRFdBK1ZPZVBWaERMMnByQytWanVibmtjczRTeTc5NlFuZ2IyZlcKUUVnaFJhYm51NjFhaWJyQXZIbDN3VGhLLzc1WG9iWVA1MEY3Yk84bzVhRXI4K2g5NWZqajBENlFnVEpTY3FDZWVPR0ZGSjVXNjBFRitmQkoKWWp3STNqajVGdWw5dFpsc2hyRnU4bmJOc1pTeG9xM3hSaWM3MkRWR2VudElhUzMyVWJlUnVEeDNrQk1FTnZLL0hIL0gwNTI4STltWW1IdDUKbDlRakZhY3BjUVh6S1Z6aEV1bERBc09IY2svOTFUTTdkdnpnbTBjbXN1SmNyelFaQ0JsQTk4V1l5Z1I4RDJnTTA4NTBmSlZXWXJNUXp1VzYKN2RQTHdhVDVrOWJPZmFXZWQwRmwyazYrdzRlVUV4YXltWTJqT2dOU2JTMElGZlhlTnBOc2hQSldEaUw5TmJsK3pOVk81dkdZTlZleTd1elEKQ1BMaGVmREdOaXllZ0dNNDNtdGkxQkcvVGlGZHhydFZ1NEkyNml2cDNTSkdyZkNoMUI2aUpmY1NuQUNjSmVtVk1rWkhzSkZySTBsbkpkbXMKczZsd0xMd21WNGdLUjRzZUp6aE1YaG5adXkrYjlIZC9HM0I4emowVExnWStaREVFVW5rSFM3dzhoajNIa20zWUd4ekkwdnZDYzlxcjJFZ2IKTVRrd2c5c0pPa1Q4L2pRM0ttbnpCT0xKeVM5d0xvM0VMUjNOWlo3NWdSbGhOOGZuZEdIaE9jMVpTYTNUOEY3UGFiWXFzak12cVJXS1Z5L2kKWUVydVBIdjlqdm5ZWnhhbHpVTUg5aVd1bFR2SWFMVFhFYTVaWDh4VmE2MWZGcmFYOVFDSUFLZzViaDhyVlJpeTdtOG80cEpsNU8wb2daOGQKdm1iQ25DZkg1VEpLVEJGdmEwTzRXbCtsL0l4MTN4TzZLQ0pQRDVINTFmZXRlK2FPL1I4RXl6WlJvTjhCQUE9PWA7bGV0IFdlO2Z1bmN0aW9uIFByKCl7aWYoIVdlKXtXZT1uZXcgVWludDhBcnJheSgxMjI3ODQpO2NvbnN0IGU9YXRvYihUciksbj1uZXcgVWludDhBcnJheShlLmxlbmd0aCk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspblt0XT1lLmNoYXJDb2RlQXQodCk7cm4obixXZSl9cmV0dXJuIFdlfWNvbnN0IHA9MCxfbj0xLGtyPTIscXI9MyxNcj00LEhyPTUsT3I9NixWcj03LEdyPTgsJG49OSxXPTEwLHE9MTEsb249MTIsWnI9MTMsenI9MTQsS3I9MTUsSnI9MTYsWHI9MTcsanI9MTgsX3I9MjA7ZnVuY3Rpb24gZChlLG4sdCl7dGhpcy5wcmVmaXg9bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpLHRoaXMudHJhbnNmb3JtPW4sdGhpcy5zdWZmaXg9bmV3IFVpbnQ4QXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKXRoaXMucHJlZml4W3JdPWUuY2hhckNvZGVBdChyKTtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKyl0aGlzLnN1ZmZpeFtyXT10LmNoYXJDb2RlQXQocil9Y29uc3QgVGU9W25ldyBkKCIiLHAsIiIpLG5ldyBkKCIiLHAsIiAiKSxuZXcgZCgiICIscCwiICIpLG5ldyBkKCIiLG9uLCIiKSxuZXcgZCgiIixXLCIgIiksbmV3IGQoIiIscCwiIHRoZSAiKSxuZXcgZCgiICIscCwiIiksbmV3IGQoInMgIixwLCIgIiksbmV3IGQoIiIscCwiIG9mICIpLG5ldyBkKCIiLFcsIiIpLG5ldyBkKCIiLHAsIiBhbmQgIiksbmV3IGQoIiIsWnIsIiIpLG5ldyBkKCIiLF9uLCIiKSxuZXcgZCgiLCAiLHAsIiAiKSxuZXcgZCgiIixwLCIsICIpLG5ldyBkKCIgIixXLCIgIiksbmV3IGQoIiIscCwiIGluICIpLG5ldyBkKCIiLHAsIiB0byAiKSxuZXcgZCgiZSAiLHAsIiAiKSxuZXcgZCgiIixwLCciJyksbmV3IGQoIiIscCwiLiIpLG5ldyBkKCIiLHAsJyI+JyksbmV3IGQoIiIscCxgCmApLG5ldyBkKCIiLHFyLCIiKSxuZXcgZCgiIixwLCJdIiksbmV3IGQoIiIscCwiIGZvciAiKSxuZXcgZCgiIix6ciwiIiksbmV3IGQoIiIsa3IsIiIpLG5ldyBkKCIiLHAsIiBhICIpLG5ldyBkKCIiLHAsIiB0aGF0ICIpLG5ldyBkKCIgIixXLCIiKSxuZXcgZCgiIixwLCIuICIpLG5ldyBkKCIuIixwLCIiKSxuZXcgZCgiICIscCwiLCAiKSxuZXcgZCgiIixLciwiIiksbmV3IGQoIiIscCwiIHdpdGggIiksbmV3IGQoIiIscCwiJyIpLG5ldyBkKCIiLHAsIiBmcm9tICIpLG5ldyBkKCIiLHAsIiBieSAiKSxuZXcgZCgiIixKciwiIiksbmV3IGQoIiIsWHIsIiIpLG5ldyBkKCIgdGhlICIscCwiIiksbmV3IGQoIiIsTXIsIiIpLG5ldyBkKCIiLHAsIi4gVGhlICIpLG5ldyBkKCIiLHEsIiIpLG5ldyBkKCIiLHAsIiBvbiAiKSxuZXcgZCgiIixwLCIgYXMgIiksbmV3IGQoIiIscCwiIGlzICIpLG5ldyBkKCIiLFZyLCIiKSxuZXcgZCgiIixfbiwiaW5nICIpLG5ldyBkKCIiLHAsYAoJYCksbmV3IGQoIiIscCwiOiIpLG5ldyBkKCIgIixwLCIuICIpLG5ldyBkKCIiLHAsImVkICIpLG5ldyBkKCIiLF9yLCIiKSxuZXcgZCgiIixqciwiIiksbmV3IGQoIiIsT3IsIiIpLG5ldyBkKCIiLHAsIigiKSxuZXcgZCgiIixXLCIsICIpLG5ldyBkKCIiLEdyLCIiKSxuZXcgZCgiIixwLCIgYXQgIiksbmV3IGQoIiIscCwibHkgIiksbmV3IGQoIiB0aGUgIixwLCIgb2YgIiksbmV3IGQoIiIsSHIsIiIpLG5ldyBkKCIiLCRuLCIiKSxuZXcgZCgiICIsVywiLCAiKSxuZXcgZCgiIixXLCciJyksbmV3IGQoIi4iLHAsIigiKSxuZXcgZCgiIixxLCIgIiksbmV3IGQoIiIsVywnIj4nKSxuZXcgZCgiIixwLCc9IicpLG5ldyBkKCIgIixwLCIuIiksbmV3IGQoIi5jb20vIixwLCIiKSxuZXcgZCgiIHRoZSAiLHAsIiBvZiB0aGUgIiksbmV3IGQoIiIsVywiJyIpLG5ldyBkKCIiLHAsIi4gVGhpcyAiKSxuZXcgZCgiIixwLCIsIiksbmV3IGQoIi4iLHAsIiAiKSxuZXcgZCgiIixXLCIoIiksbmV3IGQoIiIsVywiLiIpLG5ldyBkKCIiLHAsIiBub3QgIiksbmV3IGQoIiAiLHAsJz0iJyksbmV3IGQoIiIscCwiZXIgIiksbmV3IGQoIiAiLHEsIiAiKSxuZXcgZCgiIixwLCJhbCAiKSxuZXcgZCgiICIscSwiIiksbmV3IGQoIiIscCwiPSciKSxuZXcgZCgiIixxLCciJyksbmV3IGQoIiIsVywiLiAiKSxuZXcgZCgiICIscCwiKCIpLG5ldyBkKCIiLHAsImZ1bCAiKSxuZXcgZCgiICIsVywiLiAiKSxuZXcgZCgiIixwLCJpdmUgIiksbmV3IGQoIiIscCwibGVzcyAiKSxuZXcgZCgiIixxLCInIiksbmV3IGQoIiIscCwiZXN0ICIpLG5ldyBkKCIgIixXLCIuIiksbmV3IGQoIiIscSwnIj4nKSxuZXcgZCgiICIscCwiPSciKSxuZXcgZCgiIixXLCIsIiksbmV3IGQoIiIscCwiaXplICIpLG5ldyBkKCIiLHEsIi4iKSxuZXcgZCgiw4LCoCIscCwiIiksbmV3IGQoIiAiLHAsIiwiKSxuZXcgZCgiIixXLCc9IicpLG5ldyBkKCIiLHEsJz0iJyksbmV3IGQoIiIscCwib3VzICIpLG5ldyBkKCIiLHEsIiwgIiksbmV3IGQoIiIsVywiPSciKSxuZXcgZCgiICIsVywiLCIpLG5ldyBkKCIgIixxLCc9IicpLG5ldyBkKCIgIixxLCIsICIpLG5ldyBkKCIiLHEsIiwiKSxuZXcgZCgiIixxLCIoIiksbmV3IGQoIiIscSwiLiAiKSxuZXcgZCgiICIscSwiLiIpLG5ldyBkKCIiLHEsIj0nIiksbmV3IGQoIiAiLHEsIi4gIiksbmV3IGQoIiAiLFcsJz0iJyksbmV3IGQoIiAiLHEsIj0nIiksbmV3IGQoIiAiLFcsIj0nIildLCRyPVRlLmxlbmd0aDtmdW5jdGlvbiBldChlLG4pe3JldHVybiBlW25dPDE5Mj8oZVtuXT49OTcmJmVbbl08PTEyMiYmKGVbbl1ePTMyKSwxKTplW25dPDIyND8oZVtuKzFdXj0zMiwyKTooZVtuKzJdXj01LDMpfWZ1bmN0aW9uIGVpKGUsbix0LHIsaSl7Y29uc3Qgbz1QcigpLHtwcmVmaXg6Zn09VGVbaV0se3N1ZmZpeDpzfT1UZVtpXSxsPVRlW2ldLnRyYW5zZm9ybTtsZXQgQT1sPG9uPzA6bC0ob24tMSk7Y29uc3QgYT1uO0E+ciYmKEE9cik7bGV0IHU9MDtmb3IoO3U8Zi5sZW5ndGg7KWVbbisrXT1mW3UrK107dCs9QSxyLT1BLGw8PSRuJiYoci09bCk7Zm9yKGxldCBFPTA7RTxyO0UrKyllW24rK109b1t0K0VdO2xldCB3PW4tcjtpZihsPT09VylldChlLHcpO2Vsc2UgaWYobD09PXEpZm9yKDtyPjA7KXtjb25zdCBFPWV0KGUsdyk7dys9RSxyLT1FfWxldCBoPTA7Zm9yKDtoPHMubGVuZ3RoOyllW24rK109c1toKytdO3JldHVybiBuLWF9Y29uc3Qgbmk9MjU2LHRpPTcwNCxyaT0yNixudD02LHR0PTIsSj0xMDgwLGZuPTE2LGlpPW5ldyBVaW50OEFycmF5KFszLDIsMSwwLDMsMywzLDMsMywzLDIsMiwyLDIsMiwyXSksb2k9bmV3IEludDhBcnJheShbMCwwLDAsMCwtMSwxLC0yLDIsLTMsMywtMSwxLC0yLDIsLTMsM10pLGZpPW5ldyBVaW50MTZBcnJheShbMjU2LDQwMiw0MzYsNDY4LDUwMCw1MzQsNTY2LDU5OCw2MzAsNjYyLDY5NCw3MjYsNzU4LDc5MCw4MjIsODU0LDg4Niw5MjAsOTUyLDk4NCwxMDE2LDEwNDgsMTA4MF0pLHNpPW5ldyBVaW50MzJBcnJheShbMCwwLDAsMCwwLDQwOTYsOTIxNiwyMTUwNCwzNTg0MCw0NDAzMiw1MzI0OCw2MzQ4OCw3NDc1Miw4NzA0MCw5MzY5NiwxMDA4NjQsMTA0NzA0LDEwNjc1MiwxMDg5MjgsMTEzNTM2LDExNTk2OCwxMTg1MjgsMTE5ODcyLDEyMTI4MCwxMjIwMTZdKSxBaT1uZXcgVWludDhBcnJheShbMCwwLDAsMCwxMCwxMCwxMSwxMSwxMCwxMCwxMCwxMCwxMCw5LDksOCw3LDcsOCw3LDcsNiw2LDUsNV0pLGxpPTQscnQ9MjQ7ZnVuY3Rpb24gYWkoZSxuKXtjb25zdCB0PW5ldyBVaW50OEFycmF5KG4pLHI9bmV3IFZuKGUpLGk9bmV3IEduKHQpO3JldHVybiBjaShyLGkpLHR9ZnVuY3Rpb24gY2koZSxuKXtsZXQgdD0wLHI9MCxpPTAsbz0wO2NvbnN0IGY9WzE2LDE1LDExLDRdO2xldCBzPTAsbD0wLEE9MDtjb25zdCBhPVtuZXcgb2UoMCwwKSxuZXcgb2UoMCwwKSxuZXcgb2UoMCwwKV0sdT0xMjgrTy5SRUFEX1NJWkUsdz1uZXcgTyhlKTtpPXdpKHcpO2NvbnN0IGg9KDE8PGkpLTE2LEU9MTw8aSxnPUUtMSxjPW5ldyBVaW50OEFycmF5KEUrdStydCksST1FLHk9W10sQj1bXTtmb3IobGV0IFE9MDtRPDMqSjtRKyspeVtRXT1uZXcgUigwLDApLEJbUV09bmV3IFIoMCwwKTtmb3IoOyFyOyl7bGV0IFE9MDtjb25zdCBiPVsxPDwyOCwxPDwyOCwxPDwyOF0sQz1bMF0sTD1bMSwxLDFdLFQ9WzAsMSwwLDEsMCwxXSx4PVswXTtsZXQgRj0wO2ZvcihsZXQgbT0wO208MzttKyspYVttXS5jb2Rlcz1bXSxhW21dLmh0cmVlcz1uZXcgVWludDMyQXJyYXk7dy5yZWFkTW9yZUlucHV0KCk7Y29uc3QgWT1oaSh3KTtpZihRPVkubWV0YV9ibG9ja19sZW5ndGgsdCtRPm4uYnVmZmVyLmxlbmd0aCl7Y29uc3QgbT1uZXcgVWludDhBcnJheSh0K1EpO20uc2V0KG4uYnVmZmVyKSxuLmJ1ZmZlcj1tfWlmKHI9WS5pbnB1dF9lbmQsWS5pc19tZXRhZGF0YSl7Zm9yKEJpKHcpO1E+MDstLVEpdy5yZWFkTW9yZUlucHV0KCksdy5yZWFkQml0cyg4KTtjb250aW51ZX1pZihRPT09MCljb250aW51ZTtpZihZLmlzX3VuY29tcHJlc3NlZCl7dy5iaXRfcG9zXz13LmJpdF9wb3NfKzcmLTgsZGkobixRLHQsYyxnLHcpLHQrPVE7Y29udGludWV9Zm9yKGxldCBtPTA7bTwzO20rKylMW21dPWl0KHcpKzEsTFttXT49MiYmKERlKExbbV0rMix5LG0qSix3KSxEZShyaSxCLG0qSix3KSxiW21dPVBlKEIsbSpKLHcpLHhbbV09MSk7dy5yZWFkTW9yZUlucHV0KCk7Y29uc3QgTj13LnJlYWRCaXRzKDIpLFA9Zm4rKHcucmVhZEJpdHMoNCk8PE4pLFM9KDE8PE4pLTEsVT1QKyg0ODw8TiksTT1uZXcgVWludDhBcnJheShMWzBdKTtmb3IobGV0IG09MDttPExbMF07bSsrKXcucmVhZE1vcmVJbnB1dCgpLE1bbV09dy5yZWFkQml0cygyKTw8MTtjb25zdCBmZT1vdChMWzBdPDxudCx3KSxsZT1mZS5udW1faHRyZWVzLHtjb250ZXh0X21hcDphZX09ZmUsY2U9b3QoTFsyXTw8dHQsdyksa2U9Y2UubnVtX2h0cmVlcyx2ZT1jZS5jb250ZXh0X21hcDthWzBdPW5ldyBvZShuaSxsZSksYVsxXT1uZXcgb2UodGksTFsxXSksYVsyXT1uZXcgb2UoVSxrZSk7Zm9yKGxldCBtPTA7bTwzOysrbSlhW21dLmRlY29kZSh3KTtsZXQgeWU9MCxwZT0wLFg9TVtDWzBdXSxDZT1ZZVtYXSxHPVllW1grMV0saj1hWzFdLmh0cmVlc1swXTtmb3IoO1E+MDspe2xldCBtO3cucmVhZE1vcmVJbnB1dCgpLGJbMV09PT0wJiYoc24oTFsxXSx5LDEsQyxULHgsdyksYlsxXT1QZShCLEosdyksaj1hWzFdLmh0cmVlc1tDWzFdXSksYlsxXS0tO2NvbnN0IF89QWUoYVsxXS5jb2RlcyxqLHcpO2xldCBaPV8+PjY7Wj49Mj8oWi09MixtPS0xKTptPTA7Y29uc3QgJD1VcltaXSsoXz4+MyY3KSxxZT1TcltaXSsoXyY3KSxsdD1IblskXS5vZmZzZXQrdy5yZWFkQml0cyhIblskXS5uYml0cyksej1PbltxZV0ub2Zmc2V0K3cucmVhZEJpdHMoT25bcWVdLm5iaXRzKTtsPWNbdC0xJmddLEE9Y1t0LTImZ107Zm9yKGxldCBLPTA7SzxsdDtLKyspe3cucmVhZE1vcmVJbnB1dCgpLGJbMF09PT0wJiYoc24oTFswXSx5LDAsQyxULHgsdyksYlswXT1QZShCLDAsdyksRj1DWzBdPDxudCx5ZT1GLFg9TVtDWzBdXSxDZT1ZZVtYXSxHPVllW1grMV0pO2NvbnN0IHdlPVduW0NlK2xdfFduW0crQV0sdWU9YWVbeWUrd2VdO2JbMF0tLSxBPWwsbD1BZShhWzBdLmNvZGVzLGFbMF0uaHRyZWVzW3VlXSx3KSxjW3QmZ109bCwodCZnKT09PWcmJm4ud3JpdGUoYyxFKSx0Kyt9aWYoUS09bHQsUTw9MClicmVhaztpZihtPDApe3cucmVhZE1vcmVJbnB1dCgpLGJbMl09PT0wJiYoc24oTFsyXSx5LDIsQyxULHgsdyksYlsyXT1QZShCLDIqSix3KSxwZT1DWzJdPDx0dCksYlsyXS0tO2NvbnN0IEs9KHo+ND8zOnotMikmMjU1LHdlPXZlW3BlK0tdO2lmKG09QWUoYVsyXS5jb2RlcyxhWzJdLmh0cmVlc1t3ZV0sdyksbT49UCl7bS09UDtjb25zdCB1ZT1tJlM7bT4+PU47Y29uc3QgSGU9KG0+PjEpKzEsbG49KDIrKG0mMSk8PEhlKS00O209UCsobG4rdy5yZWFkQml0cyhIZSk8PE4pK3VlfX1jb25zdCBtZT11aShtLGYscyk7aWYobWU8MCl0aHJvdyBuZXcgRXJyb3IoIltCcm90bGlEZWNvbXByZXNzXSBpbnZhbGlkIGRpc3RhbmNlIik7dDxoJiZvIT09aD9vPXQ6bz1oO2xldCBNZT10Jmc7aWYobWU+bylpZih6Pj1saSYmejw9cnQpe2xldCBLPXNpW3pdO2NvbnN0IHdlPW1lLW8tMSx1ZT1BaVt6XSxIZT0oMTw8dWUpLTEsbG49d2UmSGUsYXQ9d2U+PnVlO2lmKEsrPWxuKnosYXQ8JHIpe2NvbnN0IGFuPWVpKGMsTWUsSyx6LGF0KTtpZihNZSs9YW4sdCs9YW4sUS09YW4sTWU+PUkpe24ud3JpdGUoYyxFKTtmb3IobGV0IE9lPTA7T2U8TWUtSTtPZSsrKWNbT2VdPWNbSStPZV19fWVsc2UgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGJhY2t3YXJkIHJlZmVyZW5jZSIpfWVsc2UgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGJhY2t3YXJkIHJlZmVyZW5jZSIpO2Vsc2V7aWYobT4wJiYoZltzJjNdPW1lLHMrKyksej5RKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBiYWNrd2FyZCByZWZlcmVuY2UiKTtmb3IobGV0IEs9MDtLPHo7SysrKWNbdCZnXT1jW3QtbWUmZ10sKHQmZyk9PT1nJiZuLndyaXRlKGMsRSksdCsrLFEtLX1sPWNbdC0xJmddLEE9Y1t0LTImZ119dCY9MTA3Mzc0MTgyM31uLndyaXRlKGMsdCZnKX1mdW5jdGlvbiB3aShlKXtpZihlLnJlYWRCaXRzKDEpPT09MClyZXR1cm4gMTY7bGV0IG49ZS5yZWFkQml0cygzKTtyZXR1cm4gbj4wPzE3K246KG49ZS5yZWFkQml0cygzKSxuPjA/OCtuOjE3KX1mdW5jdGlvbiBzbihlLG4sdCxyLGksbyxmKXtjb25zdCBzPXQqMixsPXQsQT1BZShuLHQqSixmKTtsZXQgYTtBPT09MD9hPWlbcysob1tsXSYxKV06QT09PTE/YT1pW3MrKG9bbF0tMSYxKV0rMTphPUEtMixhPj1lJiYoYS09ZSksclt0XT1hLGlbcysob1tsXSYxKV09YSwrK29bbF19ZnVuY3Rpb24gb2UoZSxuKXt0aGlzLmFscGhhYmV0X3NpemU9ZSx0aGlzLm51bV9odHJlZXM9bix0aGlzLmNvZGVzPW5ldyBBcnJheShuK24qZmlbZSszMT4+PjVdKSx0aGlzLmh0cmVlcz1uZXcgVWludDMyQXJyYXkobil9b2UucHJvdG90eXBlLmRlY29kZT1mdW5jdGlvbihlKXtsZXQgbj0wO2ZvcihsZXQgdD0wO3Q8dGhpcy5udW1faHRyZWVzO3QrKyl0aGlzLmh0cmVlc1t0XT1uLG4rPURlKHRoaXMuYWxwaGFiZXRfc2l6ZSx0aGlzLmNvZGVzLG4sZSl9O2Z1bmN0aW9uIFBlKGUsbix0KXtjb25zdCByPUFlKGUsbix0KSx7bmJpdHM6aX09TW5bcl07cmV0dXJuIE1uW3JdLm9mZnNldCt0LnJlYWRCaXRzKGkpfWZ1bmN0aW9uIHVpKGUsbix0KXtyZXR1cm4gZTxmbj8odCs9aWlbZV0sdCY9MyxuW3RdK29pW2VdKTplLWZuKzF9ZnVuY3Rpb24gZGkoZSxuLHQscixpLG8pe2NvbnN0IGY9aSsxO2xldCBzPXQmaSxsPW8ucG9zXyZPLklCVUZfTUFTSztpZihuPDh8fG8uYml0X3Bvc18rKG48PDMpPG8uYml0X2VuZF9wb3NfKXtmb3IoO24tLSA+MDspby5yZWFkTW9yZUlucHV0KCkscltzKytdPW8ucmVhZEJpdHMoOCkscz09PWYmJihlLndyaXRlKHIsZikscz0wKTtyZXR1cm59aWYoby5iaXRfZW5kX3Bvc188MzIpdGhyb3cgbmV3IEVycm9yKCJbQ29weVVuY29tcHJlc3NlZEJsb2NrVG9PdXRwdXRdIGJyLmJpdF9lbmRfcG9zXyA8IDMyIik7Zm9yKDtvLmJpdF9wb3NfPDMyOylyW3NdPW8udmFsXz4+Pm8uYml0X3Bvc18sby5iaXRfcG9zXys9OCxzKyssbi0tO2xldCBBPW8uYml0X2VuZF9wb3NfLW8uYml0X3Bvc18+PjM7aWYobCtBPk8uSUJVRl9NQVNLKXtjb25zdCBhPU8uSUJVRl9NQVNLKzEtbDtmb3IobGV0IHU9MDt1PGE7dSsrKXJbcyt1XT1vLmJ1Zl9bbCt1XTtBLT1hLHMrPWEsbi09YSxsPTB9Zm9yKGxldCBhPTA7YTxBO2ErKylyW3MrYV09by5idWZfW2wrYV07aWYocys9QSxuLT1BLHM+PWYpe2Uud3JpdGUocixmKSxzLT1mO2ZvcihsZXQgYT0wO2E8czthKyspclthXT1yW2YrYV19Zm9yKDtzK24+PWY7KXtpZihBPWYtcyxvLmlucHV0Xy5yZWFkKHIscyxBKTxBKXRocm93IG5ldyBFcnJvcigiW0NvcHlVbmNvbXByZXNzZWRCbG9ja1RvT3V0cHV0XSBub3QgZW5vdWdoIGJ5dGVzIik7ZS53cml0ZShyLGYpLG4tPUEscz0wfWlmKG8uaW5wdXRfLnJlYWQocixzLG4pPG4pdGhyb3cgbmV3IEVycm9yKCJbQ29weVVuY29tcHJlc3NlZEJsb2NrVG9PdXRwdXRdIG5vdCBlbm91Z2ggYnl0ZXMiKTtvLnJlc2V0KCl9ZnVuY3Rpb24gaXQoZSl7aWYoZS5yZWFkQml0cygxKSl7Y29uc3Qgbj1lLnJlYWRCaXRzKDMpO3JldHVybiBuPT09MD8xOmUucmVhZEJpdHMobikrKDE8PG4pfXJldHVybiAwfWZ1bmN0aW9uIGdpKCl7dGhpcy5tZXRhX2Jsb2NrX2xlbmd0aD0wLHRoaXMuaW5wdXRfZW5kPTAsdGhpcy5pc191bmNvbXByZXNzZWQ9MCx0aGlzLmlzX21ldGFkYXRhPSExfWZ1bmN0aW9uIGhpKGUpe2NvbnN0IG49bmV3IGdpO2lmKG4uaW5wdXRfZW5kPWUucmVhZEJpdHMoMSksbi5pbnB1dF9lbmQmJmUucmVhZEJpdHMoMSkpcmV0dXJuIG47Y29uc3QgdD1lLnJlYWRCaXRzKDIpKzQ7aWYodD09PTcpe2lmKG4uaXNfbWV0YWRhdGE9ITAsZS5yZWFkQml0cygxKSE9PTApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHJlc2VydmVkIGJpdCIpO2NvbnN0IHI9ZS5yZWFkQml0cygyKTtpZihyPT09MClyZXR1cm4gbjtmb3IobGV0IGk9MDtpPHI7aSsrKXtjb25zdCBvPWUucmVhZEJpdHMoOCk7aWYoaSsxPT09ciYmcj4xJiZvPT09MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2l6ZSBieXRlIik7bi5tZXRhX2Jsb2NrX2xlbmd0aHw9bzw8aSo4fX1lbHNlIGZvcihsZXQgcj0wO3I8dDtyKyspe2NvbnN0IGk9ZS5yZWFkQml0cyg0KTtpZihyKzE9PT10JiZ0PjQmJmk9PT0wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzaXplIG5pYmJsZSIpO24ubWV0YV9ibG9ja19sZW5ndGh8PWk8PHIqNH1yZXR1cm4gbi5tZXRhX2Jsb2NrX2xlbmd0aCsrLCFuLmlucHV0X2VuZCYmIW4uaXNfbWV0YWRhdGEmJihuLmlzX3VuY29tcHJlc3NlZD1lLnJlYWRCaXRzKDEpKSxufWZ1bmN0aW9uIG90KGUsbil7bGV0IHQ9MDtuLnJlYWRNb3JlSW5wdXQoKTtjb25zdCByPWl0KG4pKzEsaT1uZXcgVWludDhBcnJheShlKTtpZihyPD0xKXJldHVybntudW1faHRyZWVzOnIsY29udGV4dF9tYXA6aX07bi5yZWFkQml0cygxKSYmKHQ9bi5yZWFkQml0cyg0KSsxKTtjb25zdCBmPVtdO2ZvcihsZXQgcz0wO3M8SjtzKyspZltzXT1uZXcgUigwLDApO0RlKHIrdCxmLDAsbik7Zm9yKGxldCBzPTA7czxlOyl7bi5yZWFkTW9yZUlucHV0KCk7Y29uc3QgbD1BZShmLDAsbik7aWYobD09PTApaVtzXT0wLHMrKztlbHNlIGlmKGw8PXQpe2xldCBBPTErKDE8PGwpK24ucmVhZEJpdHMobCk7Zm9yKDstLUE7KXtpZihzPj1lKXRocm93IG5ldyBFcnJvcigiW0RlY29kZUNvbnRleHRNYXBdIGkgPj0gY29udGV4dF9tYXBfc2l6ZSIpO2lbc109MCxzKyt9fWVsc2UgaVtzXT1sLXQscysrfXJldHVybiBuLnJlYWRCaXRzKDEpJiZFaShpLGUpLHtudW1faHRyZWVzOnIsY29udGV4dF9tYXA6aX19ZnVuY3Rpb24gSWkoZSxuKXtjb25zdCB0PWVbbl07Zm9yKGxldCByPW47cjtyLS0pZVtyXT1lW3ItMV07ZVswXT10fWZ1bmN0aW9uIEVpKGUsbil7Y29uc3QgdD1uZXcgVWludDhBcnJheSgyNTYpO2ZvcihsZXQgcj0wO3I8MjU2O3IrKyl0W3JdPXI7Zm9yKGxldCByPTA7cjxuO3IrKyl7Y29uc3QgaT1lW3JdO2Vbcl09dFtpXSxpJiZJaSh0LGkpfX1mdW5jdGlvbiBCaShlKXtjb25zdCBuPWUuYml0X3Bvc18rNyYtODtyZXR1cm4hZS5yZWFkQml0cyhuLWUuYml0X3Bvc18pfWZ1bmN0aW9uIHZpKGUsbil7Y29uc3QgdD1uZXcgVWludDhBcnJheShuKTt0cnl7bGV0IHI9MCxpPTA7Zm9yKDtyPGUubGVuZ3RoLTg7KXtjb25zdCBvPWVbcisrXTw8MjR8ZVtyKytdPDwxNnxlW3IrK108PDh8ZVtyKytdLGY9ZVtyKytdPDwyNHxlW3IrK108PDE2fGVbcisrXTw8OHxlW3IrK107aWYoZS5sZW5ndGgtcjxmKXRocm93IG5ldyBFcnJvcigibHo0IG5vdCBoYWRvb3AiKTtpZih0Lmxlbmd0aDxvKXRocm93IG5ldyBFcnJvcigibHo0IG5vdCBoYWRvb3AiKTtpZihBbihlLnN1YmFycmF5KHIscitmKSx0LGkpIT09byl0aHJvdyBuZXcgRXJyb3IoImx6NCBub3QgaGFkb29wIik7aWYocis9ZixpKz1vLHI9PT1lLmxlbmd0aClyZXR1cm4gdH1pZihyPGUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigibHo0IG5vdCBoYWRvb3AiKX1jYXRjaChyKXtpZihyIGluc3RhbmNlb2YgRXJyb3ImJnIubWVzc2FnZSE9PSJsejQgbm90IGhhZG9vcCIpdGhyb3cgcjtBbihlLHQsMCl9cmV0dXJuIHR9ZnVuY3Rpb24geWkoZSxuKXtjb25zdCB0PW5ldyBVaW50OEFycmF5KG4pO3JldHVybiBBbihlLHQsMCksdH1mdW5jdGlvbiBBbihlLG4sdCl7bGV0IHI9dDtmb3IobGV0IGk9MDtpPGUubGVuZ3RoOyl7Y29uc3Qgbz1lW2krK107bGV0IGY9bz4+NDtpZihmKXtsZXQgdz1mKzI0MDtmb3IoO3c9PT0yNTU7KWYrPXc9ZVtpKytdO2lmKG4uc2V0KGUuc3ViYXJyYXkoaSxpK2YpLHIpLHIrPWYsaSs9ZixpPj1lLmxlbmd0aClyZXR1cm4gci10fWNvbnN0IHM9ZVtpKytdfGVbaSsrXTw8ODtpZighc3x8cz5yKXRocm93IG5ldyBFcnJvcihgbHo0IG9mZnNldCBvdXQgb2YgcmFuZ2UgJHtzfWApO2xldCBsPShvJjE1KSs0LEE9bCsyNDA7Zm9yKDtBPT09MjU1OylsKz1BPWVbaSsrXTtsZXQgYT1yLXM7Y29uc3QgdT1yK2w7Zm9yKDtyPHU7KW5bcisrXT1uW2ErK119cmV0dXJuIHItdH1jb25zdCBmdD17U05BUFBZOkVyKCksR1pJUDooZSxuKT0+e2NvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkobik7cmV0dXJuIHJuKGUsdCksdH0sQlJPVExJOmFpLFpTVEQ6ZT0+SXIoZSksTFo0OnZpLExaNF9SQVc6eWl9O2Z1bmN0aW9uIHBpKGUpe2lmKCJ1cmwiaW4gZSl7Y29uc3Qgbj1KU09OLnN0cmluZ2lmeShlKSx0PXN0LmdldChuKTtpZih0KXJldHVybiB0O2NvbnN0IHI9enQoZSkudGhlbihLdCk7cmV0dXJuIHN0LnNldChuLHIpLHJ9ZWxzZSByZXR1cm4gZS5maWxlLmFycmF5QnVmZmVyKCl9Y29uc3Qgc3Q9bmV3IE1hcDtmdW5jdGlvbiBDaSh7Y2h1bms6ZSxxdWVyeUlkOm59KXtzZWxmLnBvc3RNZXNzYWdlKHtjaHVuazplLHF1ZXJ5SWQ6bn0pfWZ1bmN0aW9uIG1pKHtyZXN1bHQ6ZSxxdWVyeUlkOm59KXtzZWxmLnBvc3RNZXNzYWdlKHtyZXN1bHQ6ZSxxdWVyeUlkOm59KX1mdW5jdGlvbiBBdCh7ZXJyb3I6ZSxxdWVyeUlkOm59KXtzZWxmLnBvc3RNZXNzYWdlKHtlcnJvcjplLHF1ZXJ5SWQ6bn0pfWZ1bmN0aW9uIFFpKHtpbmRpY2VzOmUscXVlcnlJZDpufSl7c2VsZi5wb3N0TWVzc2FnZSh7aW5kaWNlczplLHF1ZXJ5SWQ6bn0pfXNlbGYub25tZXNzYWdlPWFzeW5jKHtkYXRhOmV9KT0+e2NvbnN0e21ldGFkYXRhOm4sZnJvbTp0LHJvd1N0YXJ0OnIscm93RW5kOmksb3JkZXJCeTpvLGNvbHVtbnM6ZixxdWVyeUlkOnMsY2h1bmtzOmwsc29ydEluZGV4OkF9PWUsYT1hd2FpdCBwaSh0KTtpZihBPT09dm9pZCAwKXtjb25zdCB1PWw/dz0+e0NpKHtjaHVuazp3LHF1ZXJ5SWQ6c30pfTp2b2lkIDA7dHJ5e2NvbnN0IHc9YXdhaXQgUm4oe21ldGFkYXRhOm4sZmlsZTphLHJvd1N0YXJ0OnIscm93RW5kOmksb3JkZXJCeTpvLGNvbHVtbnM6Zixjb21wcmVzc29yczpmdCxvbkNodW5rOnV9KTttaSh7cmVzdWx0OncscXVlcnlJZDpzfSl9Y2F0Y2godyl7QXQoe2Vycm9yOncscXVlcnlJZDpzfSl9fWVsc2UgdHJ5e2lmKG89PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJzb3J0UGFycXVldFdvcmtlciByZXF1aXJlcyBvcmRlckJ5Iik7aWYociE9PXZvaWQgMHx8aSE9PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoInNvcnRJbmRleCByZXF1aXJlcyBhbGwgcm93cyIpO2NvbnN0IHU9YXdhaXQgUm4oe21ldGFkYXRhOm4sZmlsZTphLGNvbHVtbnM6W29dLGNvbXByZXNzb3JzOmZ0fSksdz1BcnJheS5mcm9tKHUsKGgsRSk9PkUpLnNvcnQoKGgsRSk9PmJpKHVbaF1bb10sdVtFXVtvXSkpO1FpKHtpbmRpY2VzOncscXVlcnlJZDpzfSl9Y2F0Y2godSl7QXQoe2Vycm9yOnUscXVlcnlJZDpzfSl9fTtmdW5jdGlvbiBiaShlLG4pe3JldHVybiBlPG4/LTE6KGU+biwxKX19KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1wYXJxdWV0V29ya2VyLUJQOW1ISmVMLmpzLm1hcAo=",s0=e=>Uint8Array.from(atob(e),l=>l.charCodeAt(0)),Qo=typeof self<"u"&&self.Blob&&new Blob([s0(eu)],{type:"text/javascript;charset=utf-8"});function a0(e){let l;try{if(l=Qo&&(self.URL||self.webkitURL).createObjectURL(Qo),!l)throw"";const t=new Worker(l,{name:e==null?void 0:e.name});return t.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(l)}),t}catch{return new Worker("data:text/javascript;base64,"+eu,{name:e==null?void 0:e.name})}finally{l&&(self.URL||self.webkitURL).revokeObjectURL(l)}}let Kn,lu=0;const nc=new Map;function tu(){return Kn||(Kn=new a0,Kn.onmessage=({data:e})=>{const l=nc.get(e.queryId);if(!l){console.warn(`Unexpected: no pending promise found for queryId: ${e.queryId.toString()}`);return}if(l.kind==="query"){const{resolve:t,reject:n,onChunk:r}=l;"error"in e?n(e.error):"result"in e?t(e.result):"chunk"in e?r==null||r(e.chunk):n(new Error("Unexpected message from worker"))}else{const{resolve:t,reject:n}=l;"error"in e?n(e.error):"indices"in e?t(e.indices):n(new Error("Unexpected message from worker"))}}),Kn}function u0({metadata:e,from:l,rowStart:t,rowEnd:n,orderBy:r,onChunk:d}){return new Promise((i,o)=>{const c=lu++;nc.set(c,{kind:"query",resolve:i,reject:o,onChunk:d});const a=tu(),U=d!==void 0;a.postMessage({queryId:c,metadata:e,from:l,rowStart:t,rowEnd:n,orderBy:r,chunks:U})})}function V0({metadata:e,from:l,orderBy:t}){return new Promise((n,r)=>{const d=lu++;nc.set(d,{kind:"sortIndex",resolve:n,reject:r}),tu().postMessage({queryId:d,metadata:e,from:l,orderBy:t,sortIndex:!0})})}function nu(e,l){const{children:t}=r0(l),n=t.map(u=>u.element.name),r=new Map,d=new Array(Number(l.num_rows)),i=new Array(l.row_groups.length).fill(!1);let o=0;const c=l.row_groups.map(u=>o+=Number(u.num_rows));function a(u){if(!i[u]){const Z=c[u-1]||0,W=c[u];for(let N=Z;N[R,ko()]));u0({from:e,metadata:l,rowStart:Z,rowEnd:W}).then(N=>{var R;for(let h=Z;h{console.error("Error fetching row group",N)}),i[u]=!0}}function U(u){let Z=r.get(u);return Z||(Z=V0({from:e,metadata:l,orderBy:u}),r.set(u,Z)),Z}return{header:n,numRows:Number(l.num_rows),rows(u,Z,W){if(W){const N=Z-u,R=new Array(N).fill(null).map(()=>Object.fromEntries(n.map(h=>[h,ko()])));return U(W).then(h=>{for(const V of h.slice(u,Z)){const s=c.findIndex(m=>V{var M;(M=R[V-u])==null||M[s].resolve(T)}).catch(T=>{console.error("Error resolving sorted row",T)})}}).catch(h=>{console.error("Error fetching sort index or resolving sorted rows",h)}),R}else{for(let N=0;NR&&a(N)}return d.slice(u,Z)}},sortable:!0}}function Fr(...e){return e.filter(l=>l).join(" ")}function Z0(e){if(!(e!=null&&e.lastModified))return"";const l=new Date(e.lastModified),t=l.getTime();return Date.now()-t<864e5?l.toLocaleTimeString():l.toLocaleDateString()}function U0(e){if(!(e!=null&&e.lastModified))return"";const l=new Date(e.lastModified);return isFinite(l.getTime())?l.toLocaleString():""}function ru(e){const l=["b","kb","mb","gb","tb"];if(e===0)return"0 b";const t=Math.floor(Math.log2(e)/10);if(t===0)return e.toLocaleString("en-US")+" b";const n=e/Math.pow(1024,t);return(n<10?n.toFixed(1):Math.round(n)).toLocaleString("en-US")+" "+l[t]}function rc(e){const l=e.get("content-length");return l?Number(l):void 0}const m0={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",svg:"image/svg+xml",tiff:"image/tiff",webp:"image/webp"},W0=[".png",".jpg",".jpeg",".gif",".svg",".tiff",".webp"];function dc({children:e,className:l,progress:t,error:n,title:r}){const d=n==null?void 0:n.toString();return n&&console.error(n),k.useEffect(()=>{document.title=r?`${r} - hyperparam`:"hyperparam"},[r]),p.jsxs("main",{className:"main",children:[p.jsx(N0,{}),p.jsxs("div",{className:"content-container",children:[p.jsx("div",{className:Fr("content",l),children:e}),p.jsx("div",{className:Fr("error-bar",n!==void 0&&"show-error"),children:d})]}),t!==void 0&&t<1&&p.jsx("div",{className:"progress-bar",role:"progressbar",children:p.jsx("div",{style:{width:`${100*t}%`}})})]})}function N0(){return p.jsx("nav",{className:"nav",children:p.jsx("a",{className:"brand",href:"/",children:"hyperparam"})})}function Wn({className:e}){return p.jsx("div",{className:Fr("spinner",e)})}function p0({source:e,row:l,col:t,config:n}){const[r,d]=k.useState(0),[i,o]=k.useState(),[c,a]=k.useState(),[U,u]=k.useState(),{resolveUrl:Z,requestInit:W,fileName:N}=e;return k.useEffect(()=>{async function R(){try{a(.25);const h=await $a({url:Z,requestInit:W}),V={url:Z,requestInit:W,byteLength:h.byteLength};a(.5);const s=await qa(h);a(.75);const m=nu(V,s),T=m.rows(l,l+1),M=await Ir(T,1,m.header)[0][m.header[t]].then(ii);o(M),u(void 0)}catch(h){u(h),o(void 0)}finally{d(2),a(void 0)}}r===0&&(d(1),R().catch(()=>{}))},[Z,W,t,l,r,u]),p.jsxs(dc,{progress:c,error:U,title:N,children:[p.jsx(lc,{source:e,config:n}),p.jsx("pre",{className:"viewer text",children:i})]})}function ii(e){return typeof e=="string"?e:typeof e=="number"?e.toLocaleString("en-US"):Array.isArray(e)?`[ ${e.map(l=>R0(ii(l),2)).join(`, `)} ]`:e==null?JSON.stringify(e):e instanceof Date?e.toISOString():typeof e=="object"?`{${Object.entries(e).filter(l=>l[1]!==void 0).map(([l,t])=>`${l}: ${ii(t)}`).join(", ")}}`:"{}"}function R0(e,l){return e==null?void 0:e.split(` `).map(t=>" ".repeat(l)+t).join(` `)}function Nn({content:e,headers:l,children:t}){return p.jsxs("div",{className:"viewer",children:[p.jsxs("div",{className:"view-header",children:[(e==null?void 0:e.fileSize)&&p.jsx("span",{title:e.fileSize.toLocaleString("en-US")+" bytes",children:ru(e.fileSize)}),l]}),t]})}function T0({source:e,setError:l}){const[t,n]=k.useState(0),[r,d]=k.useState(),{fileName:i,resolveUrl:o,requestInit:c}=e;return k.useEffect(()=>{async function a(){try{const U=await fetch(o,c);if(U.status===401){const R=await U.text();l(new Error(R)),d(void 0);return}const u=await U.arrayBuffer(),Z=h0(u),W=`data:${F0(i)};base64,${Z}`,N=rc(U.headers);d({dataUri:W,fileSize:N}),l(void 0)}catch(U){d(void 0),l(U)}finally{n(2)}}n(U=>U!==0?U:(a().catch(()=>{}),1))},[i,o,c,l]),p.jsxs(Nn,{content:r,children:[(r==null?void 0:r.dataUri)&&p.jsx("img",{alt:e.sourceId,className:"image",src:r.dataUri}),t&&p.jsx(Wn,{className:"center"})]})}function h0(e){let l="";const t=new Uint8Array(e);for(let n=0;nR%2?p.jsx("strong",{children:N},R):N)},U));continue}if(u.includes("*")){const W=u.split("*");r.push(p.jsx("p",{children:W.map((N,R)=>R%2?p.jsx("em",{children:N},R):N)},U));continue}if(u.startsWith("#")){const W=u.split(" ")[0].length,N=u.slice(W+1),R=`h${W}`;r.push(p.jsx(R,{children:N},U));continue}const Z=/!\[(.*?)\]\((.*?)\)/.exec(u);if(Z){const[,W,N]=Z;r.push(p.jsx("img",{src:N,alt:W},U));continue}if(u.includes("[")&&u.includes("]")&&u.includes("(")&&u.includes(")")){const W=u.replace(/\[(.*?)\]\((.*?)\)/g,(N,R,h)=>`${R}`);r.push(p.jsx("p",{dangerouslySetInnerHTML:{__html:W}},U));continue}if(u.startsWith("-")||u.startsWith("*")||u.startsWith("+")){const W=u.slice(1).trim();a.push(p.jsx("li",{children:W},`list-item-${U}`)),c=!0;continue}c&&a.length>0&&(r.push(p.jsx("ul",{children:a},`list-${U}`)),a=[],c=!1),r.push(p.jsx("p",{children:u},U))}return i&&o.length>0&&r.push(p.jsx("pre",{children:o.join(` `)},`code-${d.length}`)),c&&a.length>0&&r.push(p.jsx("ul",{children:a},`list-${d.length}`)),p.jsx("div",{className:l,children:r})}return t(e)}function S0({source:e,setError:l}){const[t,n]=k.useState(0),[r,d]=k.useState(),{resolveUrl:i,requestInit:o}=e;return k.useEffect(()=>{async function c(){try{const a=await fetch(i,o),U=await a.text(),u=rc(a.headers)??U.length;if(a.status===401){l(new Error(U)),d(void 0);return}l(void 0),d({text:U,fileSize:u})}catch(a){l(a),d(void 0)}finally{n(2)}}n(a=>a!==0?a:(c().catch(()=>{}),1))},[i,o,l]),p.jsxs(Nn,{content:r,children:[p.jsx(M0,{className:"markdown",text:(r==null?void 0:r.text)??""}),t===1&&p.jsx(Wn,{className:"center"})]})}function y0(e,l){const t=new URL(location.href);if(l!=null&&l.appendOnly||(t.search=""),e!==void 0)for(const[n,r]of Object.entries(e))t.searchParams.set(n,r);return t.toString()}function k0(e){return y0(e,{appendOnly:!0})}function Q0({df:e,row:l,col:t,setProgress:n,setError:r,onClose:d}){const[i,o]=k.useState();k.useEffect(()=>{async function a(){try{n(.5);const U=e.rows(l,l+1),u=await Ir(U,1,e.header)[0][e.header[t]].then(hr);o(u)}catch(U){r(U)}finally{n(1)}}a().catch(()=>{})},[e,t,l,n,r]);const c=p.jsxs(p.Fragment,{children:[p.jsx("button",{className:"slideClose",onClick:d,children:" "}),p.jsxs("span",{children:["column `",e.header[t],"`"]}),p.jsxs("span",{children:["row ",l+1]})]});return p.jsx(Nn,{headers:c,children:p.jsx("code",{className:"text",children:i})})}const Go={MIN:100,DEFAULT:400};function G0({mainContent:e,panelContent:l,isPanelOpen:t,config:n}){var r,d;const i=(r=n==null?void 0:n.slidePanel)!=null&&r.minWidth&&n.slidePanel.minWidth>0?n.slidePanel.minWidth:Go.MIN;function o(R){if(R&&i<=R)return R}const c=o((d=n==null?void 0:n.slidePanel)==null?void 0:d.defaultWidth)??Go.DEFAULT,[a,U]=k.useState(c),[u,Z]=k.useState(-1),W=Bo.createRef();k.useEffect(()=>{function R(V){u!==-1&&U(Math.max(i,u-V.clientX))}function h(){u!==-1&&Z(-1)}return u!==-1&&(document.addEventListener("mousemove",R),document.addEventListener("mouseup",h)),()=>{document.removeEventListener("mousemove",R),document.removeEventListener("mouseup",h)}},[u,i]);const N=k.useCallback(R=>{W.current&&W.current.offsetWidth{async function m(){try{l(.33);const T=await $a({url:U,requestInit:u}),M={url:U,byteLength:T.byteLength,requestInit:u};l(.66);const S=await qa(T);let G=nu(M,S);G=gZ(G);const b=T.byteLength;o({dataframe:G,fileSize:b})}catch(T){t(T)}finally{d(2),l(1)}}r===0&&(d(1),m().catch(()=>{}))},[r,U,u,t,l]),k.useEffect(()=>{d(0)},[e]),k.useEffect(()=>{if(!c)return;function m(T){T.key==="Escape"&&a(void 0)}return window.addEventListener("keydown",m),()=>{window.removeEventListener("keydown",m)}},[c]);const W=k.useCallback(({col:m,row:T})=>{var M,S;return((S=(M=n==null?void 0:n.routes)==null?void 0:M.getCellRouteUrl)==null?void 0:S.call(M,{sourceId:Z,col:m,row:T}))||k0({col:m.toString(),row:T.toString()})},[n,Z]),N=k.useCallback((m,T)=>{(c==null?void 0:c.col)===m&&c.row===T?a(void 0):a({row:T,col:m})},[c]),R=k.useCallback((m,T,M)=>{m.button===1&&(m.preventDefault(),window.open(W({row:M,col:T}),"_blank"))},[W]),h=p.jsxs("span",{children:[(i==null?void 0:i.dataframe.numRows.toLocaleString())??"..."," rows"]}),V=p.jsxs(Nn,{content:i,headers:h,children:[(i==null?void 0:i.dataframe)&&p.jsx(CZ,{cacheKey:U,data:i.dataframe,onDoubleClickCell:N,onMouseDownCell:R,onError:t}),r===1&&p.jsx(Wn,{className:"center"})]});let s;return i!=null&&i.dataframe&&c&&(s=p.jsx(Q0,{col:c.col,df:i.dataframe,onClose:()=>{a(void 0)},row:c.row,setError:t,setProgress:l})),p.jsx(G0,{isPanelOpen:!!(i!=null&&i.dataframe&&c),mainContent:V,panelContent:s,config:n})}function E0({source:e,setError:l}){const[t,n]=k.useState(0),[r,d]=k.useState(),{resolveUrl:i,requestInit:o}=e;k.useEffect(()=>{async function a(){try{const U=await fetch(i,o),u=await U.text(),Z=rc(U.headers)??u.length;if(U.status===401){l(new Error(u)),d(void 0);return}l(void 0),d({text:u,fileSize:Z})}catch(U){l(U),d(void 0)}finally{n(2)}}n(U=>U!==0?U:(a().catch(()=>{}),1))},[i,o,l]);const c=p.jsx(p.Fragment,{children:p.jsxs("span",{children:[w0((r==null?void 0:r.text)??"")," lines"]})});return p.jsxs(Nn,{content:r,headers:c,children:[p.jsx("code",{className:"text",children:r==null?void 0:r.text}),t&&p.jsx(Wn,{className:"center"})]})}function w0(e){let l=0;for(const t of e)t===` `&&l++;return l.toLocaleString("en-US")}function X0({source:e,setError:l,setProgress:t,config:n}){const{fileName:r}=e;return r.endsWith(".md")?p.jsx(S0,{source:e,setError:l}):r.endsWith(".parquet")?p.jsx(b0,{source:e,setError:l,setProgress:t,config:n}):W0.some(d=>r.endsWith(d))?p.jsx(T0,{source:e,setError:l}):p.jsx(E0,{source:e,setError:l,setProgress:t})}function f0({source:e,config:l}){const[t,n]=k.useState(),[r,d]=k.useState();return p.jsxs(dc,{progress:t,error:r,title:e.fileName,children:[p.jsx(lc,{source:e,config:l}),p.jsx(X0,{source:e,setProgress:n,setError:d,config:l})]})}function x0({source:e,config:l}){const[t,n]=k.useState(),[r,d]=k.useState();return k.useEffect(()=>{e.listFiles().then(n).catch(i=>{n([]),d(i instanceof Error?i:new Error(`Failed to fetch files - ${i}`))})},[e]),p.jsxs(dc,{error:r,title:e.prefix,children:[p.jsx(lc,{source:e,config:l}),t&&t.length>0&&p.jsx("ul",{className:"file-list",children:t.map((i,o)=>{var c,a;return p.jsx("li",{children:p.jsxs("a",{href:((a=(c=l==null?void 0:l.routes)==null?void 0:c.getSourceRouteUrl)==null?void 0:a.call(c,{sourceId:i.sourceId}))??location.href,children:[p.jsx("span",{className:Fr("file-name","file",i.kind==="directory"&&"folder"),children:i.name}),i.kind==="file"&&p.jsxs(p.Fragment,{children:[i.size!==void 0&&p.jsx("span",{className:"file-size",title:i.size.toLocaleString()+" bytes",children:ru(i.size)}),p.jsx("span",{className:"file-date",title:U0(i),children:Z0(i)})]})]})},o)})}),(t==null?void 0:t.length)===0&&p.jsx("div",{className:"center",children:"No files"}),t===void 0&&p.jsx(Wn,{className:"center"})]})}function Y0({source:e,navigation:l,config:t}){return e.kind==="directory"?p.jsx(x0,{source:e,config:t}):(l==null?void 0:l.row)!==void 0&&l.col!==void 0?p.jsx(p0,{source:e,row:l.row,col:l.col,config:t}):p.jsx(f0,{source:e,config:t})}function ic(e){const l=e.replace(/\?.*$/,"").split("/").at(-1);if(!l)throw new Error("Cannot extract a filename");return l}function K0(e,l){if(URL.canParse(e))return{kind:"file",sourceId:e,sourceParts:[{text:e,sourceId:e}],fileName:ic(e),resolveUrl:e,requestInit:void 0}}var J0=Object.defineProperty,z0=(e,l,t)=>l in e?J0(e,l,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[l]=t,Jn=(e,l,t)=>(z0(e,typeof l!="symbol"?l+"":l,t),t),Lr="https://huggingface.co";async function Vt(e,l){var t,n;const r=new I0(e.url,e.status,(t=e.headers.get("X-Request-Id"))!=null?t:void 0);r.message=`Api error with status ${r.statusCode}`;const d=[`URL: ${r.url}`,r.requestId?`Request ID: ${r.requestId}`:void 0].filter(Boolean).join(". ");if((n=e.headers.get("Content-Type"))!=null&&n.startsWith("application/json")){const i=await e.json();r.message=i.error||i.message||r.message,r.data=i}else r.data={message:await e.text()};throw r.message+=`. ${d}`,r}var I0=class extends Error{constructor(e,l,t,n){super(n),Jn(this,"statusCode"),Jn(this,"url"),Jn(this,"requestId"),Jn(this,"data"),this.statusCode=l,this.requestId=t,this.url=e}};function bo(e){if(!e.startsWith("hf_"))throw new TypeError("Your access token must start with 'hf_'")}function du(e){var l;if(e.accessToken)return bo(e.accessToken),e.accessToken;if((l=e.credentials)!=null&&l.accessToken)return bo(e.credentials.accessToken),e.credentials.accessToken}function L0(e){if(typeof e!="string")return e;if(e.startsWith("model/")||e.startsWith("models/"))throw new TypeError("A repo designation for a model should not start with 'models/', directly specify the model namespace / name");if(e.startsWith("space/"))throw new TypeError("Spaces should start with 'spaces/', plural, not 'space/'");if(e.startsWith("dataset/"))throw new TypeError("Datasets should start with 'dataset/', plural, not 'dataset/'");const l=e.split("/").length-1;if(e.startsWith("spaces/")){if(l!==2)throw new TypeError("Space Id must include namespace and name of the space");return{type:"space",name:e.slice(7)}}if(e.startsWith("datasets/")){if(l>2)throw new TypeError("Too many slashes in repo designation: "+e);return{type:"dataset",name:e.slice(9)}}if(l>1)throw new TypeError("Too many slashes in repo designation: "+e);return{type:"model",name:e}}new Promise(e=>{});function D0(e){if(globalThis.Buffer)return globalThis.Buffer.from(e).toString("base64");{const l=[];return e.forEach(t=>{l.push(String.fromCharCode(t))}),globalThis.btoa(l.join(""))}}function g0(e,l){return Object.assign({},...l.map(t=>{if(e[t]!==void 0)return{[t]:e[t]}}))}function iu(e){const l=/<(https?:[/][/][^>]+)>;\s+rel="([^"]+)"/g;return Object.fromEntries([...e.matchAll(l)].map(([,t,n])=>[n,t]))}var B0=["private","downloads","gated","likes","lastModified"];async function*v0(e){var l,t,n,r,d,i,o,c,a;const U=e&&du(e);let u=(l=e==null?void 0:e.limit)!=null?l:1/0;const Z=new URLSearchParams([...Object.entries({limit:String(Math.min(u,500)),...(t=e==null?void 0:e.search)!=null&&t.owner?{author:e.search.owner}:void 0,...(n=e==null?void 0:e.search)!=null&&n.query?{search:e.search.query}:void 0}),...(i=(d=(r=e==null?void 0:e.search)==null?void 0:r.tags)==null?void 0:d.map(N=>["filter",N]))!=null?i:[],...B0.map(N=>["expand",N]),...(c=(o=e==null?void 0:e.additionalFields)==null?void 0:o.map(N=>["expand",N]))!=null?c:[]]).toString();let W=`${(e==null?void 0:e.hubUrl)||Lr}/api/datasets`+(Z?"?"+Z:"");for(;W;){const N=await((a=e==null?void 0:e.fetch)!=null?a:fetch)(W,{headers:{accept:"application/json",...e!=null&&e.credentials?{Authorization:`Bearer ${U}`}:void 0}});if(!N.ok)throw await Vt(N);const R=await N.json();for(const V of R)if(yield{...(e==null?void 0:e.additionalFields)&&g0(V,e.additionalFields),id:V._id,name:V.id,private:V.private,downloads:V.downloads,likes:V.likes,gated:V.gated,updatedAt:new Date(V.lastModified)},u--,u<=0)return;const h=N.headers.get("Link");W=h?iu(h).next:void 0}}async function*C0(e){var l;const t=du(e),n=L0(e.repo);let r=`${e.hubUrl||Lr}/api/${n.type}s/${n.name}/tree/${e.revision||"main"}${e.path?"/"+e.path:""}?recursive=${!!e.recursive}&expand=${!!e.expand}`;for(;r;){const d=await((l=e.fetch)!=null?l:fetch)(r,{headers:{accept:"application/json",...t?{Authorization:`Bearer ${t}`}:void 0}});if(!d.ok)throw await Vt(d);const i=await d.json();for(const c of i)yield c;const o=d.headers.get("Link");r=o?iu(o).next:void 0}}async function Eo(e){var l,t;if(typeof window>"u")throw new Error("oauthHandleRedirect is only available in the browser");const n=new URLSearchParams(window.location.search),[r,d]=[n.get("error"),n.get("error_description")];if(r)throw new Error(`${r}: ${d}`);const i=n.get("code"),o=localStorage.getItem("huggingface.co:oauth:nonce");if(!i)throw new Error("Missing oauth code from query parameters in redirected URL");if(!o)throw new Error("Missing oauth nonce from localStorage");const c=localStorage.getItem("huggingface.co:oauth:code_verifier");if(!c)throw new Error("Missing oauth code_verifier from localStorage");const a=n.get("state");if(!a)throw new Error("Missing oauth state from query parameters in redirected URL");let U;try{U=JSON.parse(a)}catch{throw new Error("Invalid oauth state in redirected URL, unable to parse JSON: "+a)}if(U.nonce!==o)throw new Error("Invalid oauth state in redirected URL");const u=Lr,Z=`${new URL(u).origin}/.well-known/openid-configuration`,W=await fetch(Z,{headers:{Accept:"application/json"}});if(!W.ok)throw await Vt(W);const N=await W.json(),R=await fetch(N.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",code:i,redirect_uri:U.redirectUri,code_verifier:c}).toString()});if(localStorage.removeItem("huggingface.co:oauth:code_verifier"),localStorage.removeItem("huggingface.co:oauth:nonce"),!R.ok)throw await Vt(R);const h=await R.json(),V=new Date(Date.now()+h.expires_in*1e3),s=await fetch(N.userinfo_endpoint,{headers:{Authorization:`Bearer ${h.access_token}`}});if(!s.ok)throw await Vt(s);const m=await s.json();return{accessToken:h.access_token,accessTokenExpiresAt:V,userInfo:{id:m.sub,name:m.name,fullname:m.preferred_username,email:m.email,emailVerified:m.email_verified,avatarUrl:m.picture,websiteUrl:m.website,isPro:m.isPro,orgs:(t=(l=m.orgs)==null?void 0:l.map(T=>({id:T.sub,name:T.name,fullname:T.name,isEnterprise:T.isEnterprise,canPay:T.canPay,avatarUrl:T.picture,roleInOrg:T.roleInOrg})))!=null?t:[]},state:U.state,scope:h.scope}}async function j0(e){if(typeof window>"u")throw new Error("oauthHandleRedirect is only available in the browser");const l=new URLSearchParams(window.location.search);return l.has("error")?Eo():l.has("code")?localStorage.getItem("huggingface.co:oauth:nonce")?Eo():(console.warn("Missing oauth nonce from localStorage. This can happen when the user refreshes the page after logging in, without changing the URL."),!1):!1}async function H0(e){var l,t;if(typeof window>"u")throw new Error("oauthLogin is only available in the browser");const n=(e==null?void 0:e.hubUrl)||Lr,r=`${new URL(n).origin}/.well-known/openid-configuration`,d=await fetch(r,{headers:{Accept:"application/json"}});if(!d.ok)throw await Vt(d);const i=await d.json(),o=globalThis.crypto.randomUUID(),c=globalThis.crypto.randomUUID()+globalThis.crypto.randomUUID();localStorage.setItem("huggingface.co:oauth:nonce",o),localStorage.setItem("huggingface.co:oauth:code_verifier",c);const a=(e==null?void 0:e.redirectUrl)||window.location.href,U=JSON.stringify({nonce:o,redirectUri:a,state:e==null?void 0:e.state}),u=(t=(l=window==null?void 0:window.huggingface)==null?void 0:l.variables)!=null?t:null,Z=(e==null?void 0:e.clientId)||(u==null?void 0:u.OAUTH_CLIENT_ID);if(!Z)throw u?new Error("Missing clientId, please add hf_oauth: true to the README.md's metadata in your static Space"):new Error("Missing clientId");const W=D0(new Uint8Array(await globalThis.crypto.subtle.digest("SHA-256",new TextEncoder().encode(c)))).replace(/[+]/g,"-").replace(/[/]/g,"_").replace(/=/g,"");return`${i.authorization_endpoint}?${new URLSearchParams({client_id:Z,scope:(e==null?void 0:e.scopes)||(u==null?void 0:u.OAUTH_SCOPES)||"openid profile",response_type:"code",redirect_uri:a,state:U,code_challenge:W,code_challenge_method:"S256"}).toString()}`}function cu(e){if(e.state)try{const l=JSON.parse(e.state);if(typeof l!="object"||l===null||!("urlBeforeLogin"in l))throw new Error("Invalid state");const{urlBeforeLogin:t}=l;if(typeof t!="string")throw new Error("Invalid redirect URL: not a string");const n=new URL(t);if(n.origin!==window.location.origin)throw new Error("Invalid redirect URL: different origin");localStorage.setItem("oauth",JSON.stringify({...e,state:null})),window.location.href=n.href}catch(l){console.error(l)}}function ou(e){const l=e.accessTokenExpiresAt>=new Date;return l||localStorage.removeItem("oauth"),l}function O0(){const e=localStorage.getItem("oauth");if(!e)return;const l=JSON.parse(e),t={...l,accessTokenExpiresAt:new Date(l.accessTokenExpiresAt)};if(ou(t))return cu(t),t}async function P0(){const e=await j0();if(!(!e||!ou(e)))return localStorage.setItem("oauth",JSON.stringify(e)),cu(e),e}async function A0(){const e=JSON.stringify({urlBeforeLogin:window.location.href}),l="huggingface"in window?{state:e}:{state:e,redirectUrl:new URL(window.location.href).origin+"/",clientId:"9c9ac5a3-b324-4df8-a70c-7a8055ff8421",scopes:"openid profile read-repos"},t=await H0(l)+"&prompt=consent";window.location.href=t}function _0(){localStorage.removeItem("oauth"),window.location.reload()}const Kt="https://huggingface.co/datasets";function su(e){const l=new URL(window.location.href);l.search=e,window.parent.postMessage({queryString:e},"https://huggingface.co"),window.location.assign(l)}function wo(e){const l=[{sourceId:`${Kt}/${e.repo}/tree/${e.branch}/`,text:`${Kt}/${e.repo}/${e.action}/${e.branch}/`}],t=e.path.split("/").filter(r=>r.length>0),n=t.at(-1);if(n){for(let r=0;r$0(t,l)}}catch(t){console.error(t);return}}function lU(e){var d,i,o;const l=new URL(e);if(l.protocol!=="https:"&&l.protocol!=="http:")throw new Error("url must be a HTTP URL");if(!["huggingface.co","huggingface.co","hf.co"].includes(l.host)||l.protocol!=="https:")throw new Error("Not a Hugging Face URL");const t=(d=/^\/datasets\/(?[^/]+)\/(?[^/]+)\/?$/.exec(l.pathname))==null?void 0:d.groups;if(t&&["namespace","dataset"].every(c=>c in t))return{kind:"directory",source:e,origin:l.origin,repo:t.namespace+"/"+t.dataset,action:"tree",branch:"main",path:""};const n=(i=/^\/datasets\/(?[^/]+)\/(?[^/]+)\/(?tree)\/(?(refs\/(convert|pr)\/)?[^/]+)(?(\/[^/]+)*)\/?$/.exec(l.pathname))==null?void 0:i.groups;if(n&&["namespace","dataset","action","branch","path"].every(c=>c in n)&&n.branch!=="refs"){const c=n.branch.replace(/\//g,"%2F");return{kind:"directory",source:`${l.origin}/datasets/${n.namespace}/${n.dataset}/${n.action}/${c}${n.path}`,origin:l.origin,repo:n.namespace+"/"+n.dataset,action:"tree",branch:c,path:n.path}}const r=(o=/^\/datasets\/(?[^/]+)\/(?[^/]+)\/(?blob|resolve)\/(?(refs\/(convert|pr)\/)?[^/]+)(?(\/[^/]+)+)$/.exec(l.pathname))==null?void 0:o.groups;if(r&&["namespace","dataset","action","branch","path"].every(c=>c in r)&&r.branch!=="refs"){const c=r.branch.replace(/\//g,"%2F");return{kind:"file",source:`${l.origin}/datasets/${r.namespace}/${r.dataset}/${r.action}/${c}${r.path}`,origin:l.origin,repo:r.namespace+"/"+r.dataset,action:r.action==="blob"?"blob":"resolve",branch:c,path:r.path,resolveUrl:`${l.origin}/datasets/${r.namespace}/${r.dataset}/resolve/${c}${r.path}`}}throw new Error("Unsupported Hugging Face URL")}const tU=""+new URL("sign-in-with-huggingface-lg-qDcc3w-B.svg",import.meta.url).href;function Jt({url:e,children:l,className:t}){const n=e?`?url=${e}`:"";return p.jsx("a",{className:t,href:`/${n}`,onClick:r=>{r.preventDefault(),su(n)},children:l})}function nU({accessToken:e}){const[l,t]=k.useState(),[n,r]=k.useState([]);k.useEffect(()=>{async function i(){const o=[];for await(const c of v0({search:{query:l},limit:10,credentials:e?{accessToken:e}:void 0}))o.push(c);r(o)}i().catch(o=>{r([]),console.error(o)})},[l,e]);function d(i){t(i.target.value)}return p.jsxs(p.Fragment,{children:[p.jsx("input",{type:"search",onChange:d}),p.jsx("ul",{className:"ref-list",children:n.map(i=>p.jsx("li",{style:{fontSize:"0.9rem"},children:p.jsx(Jt,{url:`${Kt}/${i.name}`,children:i.name})},i.name))})]})}function rU({auth:e}){const l=k.useRef(null);function t(n){n.preventDefault();const r=new FormData(n.currentTarget).get("url");su(`?url=${r}`)}return p.jsxs("div",{id:"welcome",children:[p.jsx("h1",{children:"hyparquet"}),p.jsxs("sub",{children:["/haɪ pɑːrˈkeɪ/",p.jsx("img",{src:"audio.svg",alt:"play hyparquet pronunciation",height:"18",width:"18",onClick:()=>{var n;(n=l.current)==null||n.play().catch(()=>{})}})]}),p.jsx("audio",{ref:l,src:"hyparquet.mp3"}),p.jsx("h2",{children:"in-browser parquet file reader"}),p.jsxs("p",{children:[p.jsx("a",{href:"https://www.npmjs.com/package/hyparquet",children:p.jsx("img",{src:"https://img.shields.io/npm/v/hyparquet",alt:"npm hyparquet"})})," ",p.jsx("a",{href:"https://github.com/hyparam/hyparquet",children:p.jsx("img",{src:"https://img.shields.io/github/stars/hyparam/hyparquet?style=social",alt:"star hyparquet"})})]}),p.jsxs("p",{children:["Online demo of"," ",p.jsx("a",{href:"https://github.com/hyparam/hyparquet",children:"hyparquet"}),": a parser for apache parquet files. Uses"," ",p.jsx("a",{href:"https://github.com/hyparam/hightable",children:"hightable"})," for high performance windowed table viewing."]}),p.jsxs("section",{children:[p.jsx("h3",{children:"Select a dataset on Hugging Face"}),e?p.jsxs("p",{children:["Logged in as",p.jsx("img",{src:e.userInfo.avatarUrl,alt:e.userInfo.name,style:{width:"1rem",height:"1rem",borderRadius:"50%",margin:"0 0.5rem"}}),e.userInfo.name," (",p.jsx("a",{onClick:()=>{_0()},children:"Log out"}),"). You can search your private and gated datasets."]}):p.jsxs(p.Fragment,{children:[p.jsx("p",{children:"Log in to search your private and gated datasets"}),p.jsx("p",{children:p.jsx("a",{onClick:()=>{A0().catch(()=>{})},children:p.jsx("img",{src:tU,alt:"Sign in with Hugging Face"})})})]}),p.jsx("p",{children:"Search for dataset:"}),p.jsx(nU,{accessToken:e==null?void 0:e.accessToken})]}),p.jsxs("section",{children:[p.jsx("h3",{children:"Parquet URL"}),p.jsx("p",{children:"You can also set a url to see your parquet data. 👀"}),p.jsxs("form",{onSubmit:t,style:{display:"flex",gap:"1rem"},children:[p.jsx("label",{htmlFor:"url",children:"URL"}),p.jsx("input",{name:"url",defaultValue:"https://huggingface.co/datasets/codeparrot/github-code/resolve/main/data/train-00000-of-01126.parquet",style:{width:"100%"},type:"url"}),p.jsx("button",{style:{fontSize:"1rem",padding:"0 0.5rem"},type:"submit",children:"Open"})]}),p.jsxs("p",{children:[p.jsx("p",{children:"Example files:"}),p.jsxs("ul",{className:"quick-links",children:[p.jsx("li",{children:p.jsx(Jt,{className:"aws",url:"https://hyperparam-public.s3.amazonaws.com/wiki-en-00000-of-00041.parquet",children:"s3://wiki-en-00000-of-00041.parquet"})}),p.jsx("li",{children:p.jsx(Jt,{className:"azure",url:"https://hyperparam.blob.core.windows.net/hyperparam/starcoderdata-js-00000-of-00065.parquet",children:"azure://starcoderdata-js-00000-of-00065.parquet"})}),p.jsx("li",{children:p.jsx(Jt,{className:"huggingface",url:"https://huggingface.co/datasets/codeparrot/github-code/resolve/main/data/train-00000-of-01126.parquet",children:"huggingface://github-code-00000-of-01126.parquet"})}),p.jsx("li",{children:p.jsx(Jt,{className:"github",url:"https://raw.githubusercontent.com/hyparam/hyparquet/master/test/files/rowgroups.parquet",children:"github://rowgroups.parquet"})})]})]})]})]})}function Xo(e){if(e)return{headers:{Authorization:`Bearer ${e}`}}}function dU(){const e=O0(),[l,t]=k.useState(e),[n,r]=k.useState(e==null?void 0:e.accessToken),[d,i]=k.useState(Xo(e==null?void 0:e.accessToken));k.useEffect(()=>{l||P0().then(Z=>{t(Z),Z&&(r(Z.accessToken),i(Xo(Z.accessToken)))}).catch(Z=>{console.error("Error fetching OAuth"),console.error(Z)})},[l]);const o=new URLSearchParams(location.search),c=o.get("url"),a=o.get("row")===null?void 0:Number(o.get("row")),U=o.get("col")===null?void 0:Number(o.get("col"));if(c===null)return p.jsx(rU,{auth:l});const u=eU(c,{requestInit:d,accessToken:n})??K0(c);if(!u){const Z="/?url=https://huggingface.co/datasets/severo/test-parquet/resolve/main/parquet/csv-train-00000-of-00001.parquet";return p.jsxs("div",{children:["Could not load a data source. You have to pass a valid source in the url, eg: ",p.jsx("a",{href:Z,children:Z}),"."]})}return p.jsx(Y0,{source:u,navigation:{row:a,col:U},config:{routes:{getSourceRouteUrl:({sourceId:Z})=>`/?url=${Z}`,getCellRouteUrl:({sourceId:Z,col:W,row:N})=>`/?url=${Z}&col=${W}&row=${N}`}}})}const au=document.getElementById("app");if(!au)throw new Error("No app element");Ha(au).render(p.jsx(k.StrictMode,{children:p.jsx(dU,{})}));