|
|
*/Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const be=require("obsidian"),_c=require("child_process"),dc=require("process"),oc=require("electron"),ac=require("fs"),oe=require("path"),en=require("util");function Zt(e){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const c=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(l,t,c.get?c:{enumerable:!0,get:()=>e[t]})}}return l.default=e,Object.freeze(l)}const ln=Zt(be),Qe=Zt(oc),Kl=Zt(ac),Gl={Markdown:{name:"Markdown",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/markdown.lua" -s -o "${outputPath}" -t commonmark_x-attributes',extension:".md"},"Markdown (Hugo)":{name:"Markdown (Hugo)",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/markdown+hugo.lua" -s -o "${outputPath}" -t commonmark_x-attributes',extension:".md"},Html:{name:"Html",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/math_block.lua" --embed-resources --standalone --metadata title="${currentFileName}" -s -o "${outputPath}" -t html',customArguments:'--mathjax="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg-full.js"',extension:".html"},TextBundle:{name:"TextBundle",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/markdown.lua" -V media_dir="${outputDir}/${outputFileName}.textbundle/assets" -s -o "${outputDir}/${outputFileName}.textbundle/text.md" -t commonmark_x-attributes',extension:".md"},Typst:{name:"Typst",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/markdown.lua" -s -o "${outputPath}" -t typst',extension:".typ"},PDF:{name:"PDF",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/pdf.lua" ${ options.textemplate ? `--resource-path="${pluginDir}/textemplate" --template="${options.textemplate}"` : ` ` } --embed-resources --standalone -s -o "${outputPath}" -t pdf',customArguments:"--pdf-engine=pdflatex",optionsMeta:{textemplate:"preset:textemplate"},extension:".pdf"},"Word (.docx)":{name:"Word (.docx)",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t docx',extension:".docx"},OpenOffice:{name:"OpenOffice",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t odt',extension:".odt"},RTF:{name:"RTF",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t rtf',extension:".rtf"},Epub:{name:"Epub",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t epub',extension:".epub"},Latex:{name:"Latex",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" ${ options.textemplate ? `--resource-path="${pluginDir}/textemplate" --template="${options.textemplate}"` : ` ` } -s -o "${outputPath}" -t latex',optionsMeta:{textemplate:"preset:textemplate"},extension:".latex"},"Media Wiki":{name:"Media Wiki",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t mediawiki',extension:".mediawiki"},reStructuredText:{name:"reStructuredText",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t rst',extension:".rst"},Textile:{name:"Textile",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t textile',extension:".textile"},OPML:{name:"OPML",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t opml',extension:".opml"},"Bibliography (.bib)":{name:"Bibliography",type:"pandoc",arguments:'-f markdown --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/citefilter.lua" -o "${outputPath}" --to=bibtex "${currentPath}"',extension:".bib"},Custom:{name:"Custom",type:"custom",command:"your command",targetFileExtensions:".ext"}};function xe(e,l,t){return typeof l=="string"&&l.trim()===""&&(l=void 0),t instanceof Array?t.reduce((c,n)=>xe(c,l,n),e):(t??(t=dc.platform),{...e??{},[t]:l})}function ae(e,l){e??(e={});const t=e[l??dc.platform],c=e["*"];return c&&typeof c=="object"?Object.assign({},c,t):t??c}function P(e,...l){return function(...t){const c=t[t.length-1]||{},n=[e[0]];return l.forEach(function(I,i){const g=Number.isInteger(I)?t[I]:c[I];n.push(g,e[i+1])}),n.join("")}}function lt(e,l){return l=l??{},new Promise((t,c)=>{_c.exec(e,l,(n,I,i)=>{if(n){c(n);return}if(i&&i!==""){c(i);return}t(I)})})}function tt(e,l={}){for(;;)try{const t=Object.keys(l).filter(tn),c=t.map(n=>l[n]);return new Function(...t,`{ return \`${e.replaceAll("\\","\\\\")}\` }`).bind(l)(...c)}catch(t){if(t instanceof ReferenceError&&t.message.endsWith("is not defined")){const c=t.message.substring(0,t.message.indexOf(" ")),n=Object.keys(l).filter(I=>I.toLowerCase()===c.toLowerCase()).map(I=>l[I])[0]??`\${${c}}`;l[c]=n}else throw t}}const tn=e=>{if(typeof e!="string"||e.trim()!==e)return!1;try{new Function(e,"var "+e)}catch{return!1}return!0},cn={textemplate:{title:"Latex Template",type:"dropdown",options:[{name:"None",value:null},{name:"Dissertation",value:"dissertation.tex"},{name:"Academic Paper",value:"neurips.tex"}]}},Cl=(()=>{let e={};return e=xe(e,{HOME:"${HOME}",PATH:"${PATH}",TEXINPUTS:"${pluginDir}/textemplate/:"},"*"),e=xe(e,{TEXINPUTS:"${pluginDir}/textemplate/;"},"win32"),e=xe(e,{PATH:"/usr/local/bin:/Library/TeX/texbin:${PATH}"},"darwin"),e})(),_e={items:Object.values(Gl).filter(e=>e.type!=="custom"),pandocPath:void 0,defaultExportDirectoryMode:"Auto",openExportedFile:!0,env:Cl,showExportProgressBar:!0};function sc(e){var l;return e.type==="pandoc"?e.extension:e.type==="custom"?(l=e.targetFileExtensions)==null?void 0:l.split(",")[0]:""}function Wc(e,l){return e=Object.assign({},ae(Cl),e),l=Object.assign({HOME:process.env.HOME??process.env.USERPROFILE},process.env,l??{}),Object.fromEntries(Object.entries(e).map(([t,c])=>[t,tt(c,l)]))}function nn(e){return e?Object.fromEntries(Object.entries(e).map(([l,t])=>[l,typeof t=="string"?cn[t.startsWith("preset:")?t.substring(7):""]:t])):{}}const In=(e,l)=>e===l,Je=Symbol("solid-proxy"),ct=Symbol("solid-track"),gn=Symbol("solid-dev-component"),Sl={equals:In};let mc=Gc;const Be=1,Fl=2,Xc={owned:null,cleanups:null,context:null,owner:null};var O=null;let Hl=null,_=null,Ie=null,ue=null,xl=0;function Il(e,l){const t=_,c=O,n=e.length===0,I=l===void 0?c:l,i=n?Xc:{owned:null,cleanups:null,context:I?I.context:null,owner:I},g=n?e:()=>e(()=>$(()=>Bl(i)));O=i,_=null;try{return qe(g,!0)}finally{_=t,O=c}}function Ve(e,l){l=l?Object.assign({},Sl,l):Sl;const t={value:e,observers:null,observerSlots:null,comparator:l.equals||void 0},c=n=>(typeof n=="function"&&(n=n(t.value)),rc(t,n));return[Ac.bind(t),c]}function ce(e,l,t){const c=dt(e,l,!1,Be);ol(c)}function Ye(e,l,t){mc=on;const c=dt(e,l,!1,Be);(!t||!t.render)&&(c.user=!0),ue?ue.push(c):ol(c)}function te(e,l,t){t=t?Object.assign({},Sl,t):Sl;const c=dt(e,l,!0,0);return c.observers=null,c.observerSlots=null,c.comparator=t.equals||void 0,ol(c),Ac.bind(c)}function hl(e){return qe(e,!1)}function $(e){if(_===null)return e();const l=_;_=null;try{return e()}finally{_=l}}function bc(e){Ye(()=>$(e))}function dl(e){return O===null||(O.cleanups===null?O.cleanups=[e]:O.cleanups.push(e)),e}function nt(){return _}function Cn(e,l){const t=Symbol("context");return{id:t,Provider:sn(t),defaultValue:e}}function Vn(e){return O&&O.context&&O.context[e.id]!==void 0?O.context[e.id]:e.defaultValue}function Rc(e){const l=te(e),t=te(()=>It(l()));return t.toArray=()=>{const c=t();return Array.isArray(c)?c:c!=null?[c]:[]},t}function Ac(){if(this.sources&&this.state)if(this.state===Be)ol(this);else{const e=Ie;Ie=null,qe(()=>Ul(this),!1),Ie=e}if(_){const e=this.observers?this.observers.length:0;_.sources?(_.sources.push(this),_.sourceSlots.push(e)):(_.sources=[this],_.sourceSlots=[e]),this.observers?(this.observers.push(_),this.observerSlots.push(_.sources.length-1)):(this.observers=[_],this.observerSlots=[_.sources.length-1])}return this.value}function rc(e,l,t){let c=e.value;return(!e.comparator||!e.comparator(c,l))&&(e.value=l,e.observers&&e.observers.length&&qe(()=>{for(let n=0;n<e.observers.length;n+=1){const I=e.observers[n],i=Hl&&Hl.running;i&&Hl.disposed.has(I),(i?!I.tState:!I.state)&&(I.pure?Ie.push(I):ue.push(I),I.observers&&hc(I)),i||(I.state=Be)}if(Ie.length>1e6)throw Ie=[],new Error},!1)),l}function ol(e){if(!e.fn)return;Bl(e);const l=O,t=_,c=xl;_=O=e,Zn(e,e.value,c),_=t,O=l}function Zn(e,l,t){let c;try{c=e.fn(l)}catch(n){return e.pure&&(e.state=Be,e.owned&&e.owned.forEach(Bl),e.owned=null),e.updatedAt=t+1,Jc(n)}(!e.updatedAt||e.updatedAt<=t)&&(e.updatedAt!=null&&"observers"in e?rc(e,c):e.value=c,e.updatedAt=t)}function dt(e,l,t,c=Be,n){const I={fn:e,state:c,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:l,owner:O,context:O?O.context:null,pure:t};return O===null||O!==Xc&&(O.owned?O.owned.push(I):O.owned=[I]),I}function pl(e){if(e.state===0)return;if(e.state===Fl)return Ul(e);if(e.suspense&&$(e.suspense.inFallback))return e.suspense.effects.push(e);const l=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<xl);)e.state&&l.push(e);for(let t=l.length-1;t>=0;t--)if(e=l[t],e.state===Be)ol(e);else if(e.state===Fl){const c=Ie;Ie=null,qe(()=>Ul(e,l[0]),!1),Ie=c}}function qe(e,l){if(Ie)return e();let t=!1;l||(Ie=[]),ue?t=!0:ue=[],xl++;try{const c=e();return dn(t),c}catch(c){t||(ue=null),Ie=null,Jc(c)}}function dn(e){if(Ie&&(Gc(Ie),Ie=null),e)return;const l=ue;ue=null,l.length&&qe(()=>mc(l),!1)}function Gc(e){for(let l=0;l<e.length;l++)pl(e[l])}function on(e){let l,t=0;for(l=0;l<e.length;l++){const c=e[l];c.user?e[t++]=c:pl(c)}for(l=0;l<t;l++)pl(e[l])}function Ul(e,l){e.state=0;for(let t=0;t<e.sources.length;t+=1){const c=e.sources[t];if(c.sources){const n=c.state;n===Be?c!==l&&(!c.updatedAt||c.updatedAt<xl)&&pl(c):n===Fl&&Ul(c,l)}}}function hc(e){for(let l=0;l<e.observers.length;l+=1){const t=e.observers[l];t.state||(t.state=Fl,t.pure?Ie.push(t):ue.push(t),t.observers&&hc(t))}}function Bl(e){let l;if(e.sources)for(;e.sources.length;){const t=e.sources.pop(),c=e.sourceSlots.pop(),n=t.observers;if(n&&n.length){const I=n.pop(),i=t.observerSlots.pop();c<n.length&&(I.sourceSlots[i]=c,n[c]=I,t.observerSlots[c]=i)}}if(e.owned){for(l=e.owned.length-1;l>=0;l--)Bl(e.owned[l]);e.owned=null}if(e.cleanups){for(l=e.cleanups.length-1;l>=0;l--)e.cleanups[l]();e.cleanups=null}e.state=0}function an(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function Jc(e,l=O){throw an(e)}function It(e){if(typeof e=="function"&&!e.length)return It(e());if(Array.isArray(e)){const l=[];for(let t=0;t<e.length;t++){const c=It(e[t]);Array.isArray(c)?l.push.apply(l,c):l.push(c)}return l}return e}function sn(e,l){return function(c){let n;return ce(()=>n=$(()=>(O.context={...O.context,[e]:c.value},Rc(()=>c.children))),void 0),n}}const Wn=Symbol("fallback");function pt(e){for(let l=0;l<e.length;l++)e[l]()}function mn(e,l,t={}){let c=[],n=[],I=[],i=0,g=l.length>1?[]:null;return dl(()=>pt(I)),()=>{let C=e()||[],a,d;return C[ct],$(()=>{let N=C.length,A,U,w,s,z,Q,E,v,K;if(N===0)i!==0&&(pt(I),I=[],c=[],n=[],i=0,g&&(g=[])),t.fallback&&(c=[Wn],n[0]=Il(Ce=>(I[0]=Ce,t.fallback())),i=1);else if(i===0){for(n=new Array(N),d=0;d<N;d++)c[d]=C[d],n[d]=Il(m);i=N}else{for(w=new Array(N),s=new Array(N),g&&(z=new Array(N)),Q=0,E=Math.min(i,N);Q<E&&c[Q]===C[Q];Q++);for(E=i-1,v=N-1;E>=Q&&v>=Q&&c[E]===C[v];E--,v--)w[v]=n[E],s[v]=I[E],g&&(z[v]=g[E]);for(A=new Map,U=new Array(v+1),d=v;d>=Q;d--)K=C[d],a=A.get(K),U[d]=a===void 0?-1:a,A.set(K,d);for(a=Q;a<=E;a++)K=c[a],d=A.get(K),d!==void 0&&d!==-1?(w[d]=n[a],s[d]=I[a],g&&(z[d]=g[a]),d=U[d],A.set(K,d)):I[a]();for(d=Q;d<N;d++)d in w?(n[d]=w[d],I[d]=s[d],g&&(g[d]=z[d],g[d](d))):n[d]=Il(m);n=n.slice(0,i=N),c=C.slice(0)}return n});function m(N){if(I[d]=N,g){const[A,U]=Ve(d);return g[d]=U,l(C[d],A)}return l(C[d])}}}function X(e,l){return $(()=>e(l||{}))}function ml(){return!0}const Ut={get(e,l,t){return l===Je?t:e.get(l)},has(e,l){return l===Je?!0:e.has(l)},set:ml,deleteProperty:ml,getOwnPropertyDescriptor(e,l){return{configurable:!0,enumerable:!0,get(){return e.get(l)},set:ml,deleteProperty:ml}},ownKeys(e){return e.keys()}};function Xn(e,...l){if(Je in e){const n=new Set(l.length>1?l.flat():l[0]),I=l.map(i=>new Proxy({get(g){return i.includes(g)?e[g]:void 0},has(g){return i.includes(g)&&g in e},keys(){return i.filter(g=>g in e)}},Ut));return I.push(new Proxy({get(i){return n.has(i)?void 0:e[i]},has(i){return n.has(i)?!1:i in e},keys(){return Object.keys(e).filter(i=>!n.has(i))}},Ut)),I}const t={},c=l.map(()=>({}));for(const n of Object.getOwnPropertyNames(e)){const I=Object.getOwnPropertyDescriptor(e,n),i=!I.get&&!I.set&&I.enumerable&&I.writable&&I.configurable;let g=!1,C=0;for(const a of l)a.includes(n)&&(g=!0,i?c[C][n]=I.value:Object.defineProperty(c[C],n,I)),++C;g||(i?t[n]=I.value:Object.defineProperty(t,n,I))}return[...c,t]}const Sc=e=>`Stale read from <${e}>.`;function Fc(e){const l="fallback"in e&&{fallback:()=>e.fallback};return te(mn(()=>e.each,e.children,l||void 0))}function Jl(e){const l=e.keyed,t=te(()=>e.when,void 0,{equals:(c,n)=>l?c===n:!c==!n});return te(()=>{const c=t();if(c){const n=e.children;return typeof n=="function"&&n.length>0?$(()=>n(l?c:()=>{if(!$(t))throw Sc("Show");return e.when})):n}return e.fallback},void 0,void 0)}function bn(e){let l=!1;const t=(I,i)=>I[0]===i[0]&&(l?I[1]===i[1]:!I[1]==!i[1])&&I[2]===i[2],c=Rc(()=>e.children),n=te(()=>{let I=c();Array.isArray(I)||(I=[I]);for(let i=0;i<I.length;i++){const g=I[i].when;if(g)return l=!!I[i].keyed,[i,g,I[i]]}return[-1]},void 0,{equals:t});return te(()=>{const[I,i,g]=n();if(I<0)return e.fallback;const C=g.children;return typeof C=="function"&&C.length>0?$(()=>C(l?i:()=>{if($(n)[0]!==I)throw Sc("Match");return g.when})):C},void 0,void 0)}function Nt(e){return e}const Rn=["allowfullscreen","async","autofocus","autoplay","checked","controls","default","disabled","formnovalidate","hidden","indeterminate","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","seamless","selected"],An=new Set(["className","value","readOnly","formNoValidate","isMap","noModule","playsInline",...Rn]),rn=new Set(["innerHTML","textContent","innerText","children"]),Gn=Object.assign(Object.create(null),{className:"class",htmlFor:"for"}),hn=Object.assign(Object.create(null),{class:"className",formnovalidate:{$:"formNoValidate",BUTTON:1,INPUT:1},ismap:{$:"isMap",IMG:1},nomodule:{$:"noModule",SCRIPT:1},playsinline:{$:"playsInline",VIDEO:1},readonly:{$:"readOnly",INPUT:1,TEXTAREA:1}});function Jn(e,l){const t=hn[e];return typeof t=="object"?t[l]?t.$:void 0:t}const Sn=new Set(["beforeinput","click","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"]),Fn=new Set(["altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignObject","g","glyph","glyphRef","hkern","image","line","linearGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","stop","svg","switch","symbol","text","textPath","tref","tspan","use","view","vkern"]),pn={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"};function Un(e,l,t){let c=t.length,n=l.length,I=c,i=0,g=0,C=l[n-1].nextSibling,a=null;for(;i<n||g<I;){if(l[i]===t[g]){i++,g++;continue}for(;l[n-1]===t[I-1];)n--,I--;if(n===i){const d=I<c?g?t[g-1].nextSibling:t[I-g]:C;for(;g<I;)e.insertBefore(t[g++],d)}else if(I===g)for(;i<n;)(!a||!a.has(l[i]))&&l[i].remove(),i++;else if(l[i]===t[I-1]&&t[g]===l[n-1]){const d=l[--n].nextSibling;e.insertBefore(t[g++],l[i++].nextSibling),e.insertBefore(t[--I],d),l[n]=t[I]}else{if(!a){a=new Map;let m=g;for(;m<I;)a.set(t[m],m++)}const d=a.get(l[i]);if(d!=null)if(g<d&&d<I){let m=i,N=1,A;for(;++m<n&&m<I&&!((A=a.get(l[m]))==null||A!==d+N);)N++;if(N>d-g){const U=l[i];for(;g<d;)e.insertBefore(t[g++],U)}else e.replaceChild(t[g++],l[i++])}else i++;else l[i++].remove()}}}const Yt="_$DX_DELEGATE";function Re(e,l,t){let c;const n=()=>{const i=document.createElement("template");return i.innerHTML=e,t?i.content.firstChild.firstChild:i.content.firstChild},I=l?()=>$(()=>document.importNode(c||(c=n()),!0)):()=>(c||(c=n())).cloneNode(!0);return I.cloneNode=I,I}function ot(e,l=window.document){const t=l[Yt]||(l[Yt]=new Set);for(let c=0,n=e.length;c<n;c++){const I=e[c];t.has(I)||(t.add(I),l.addEventListener(I,Bn))}}function ke(e,l,t){t==null?e.removeAttribute(l):e.setAttribute(l,t)}function Nn(e,l,t,c){c==null?e.removeAttributeNS(l,t):e.setAttributeNS(l,t,c)}function pc(e,l){l==null?e.removeAttribute("class"):e.className=l}function at(e,l,t,c){if(c)Array.isArray(t)?(e[`$$${l}`]=t[0],e[`$$${l}Data`]=t[1]):e[`$$${l}`]=t;else if(Array.isArray(t)){const n=t[0];e.addEventListener(l,t[0]=I=>n.call(e,t[1],I))}else e.addEventListener(l,t)}function Yn(e,l,t={}){const c=Object.keys(l||{}),n=Object.keys(t);let I,i;for(I=0,i=n.length;I<i;I++){const g=n[I];!g||g==="undefined"||l[g]||(ut(e,g,!1),delete t[g])}for(I=0,i=c.length;I<i;I++){const g=c[I],C=!!l[g];!g||g==="undefined"||t[g]===C||!C||(ut(e,g,!0),t[g]=C)}return t}function st(e,l,t){if(!l)return t?ke(e,"style"):l;const c=e.style;if(typeof l=="string")return c.cssText=l;typeof t=="string"&&(c.cssText=t=void 0),t||(t={}),l||(l={});let n,I;for(I in t)l[I]==null&&c.removeProperty(I),delete t[I];for(I in l)n=l[I],n!==t[I]&&(c.setProperty(I,n),t[I]=n);return t}function un(e,l={},t,c){const n={};return c||ce(()=>n.children=De(e,l.children,n.children)),ce(()=>l.ref&&l.ref(e)),ce(()=>kn(e,l,t,!0,n,!0)),n}function Uc(e,l,t){return $(()=>e(l,t))}function Ze(e,l,t,c){if(t!==void 0&&!c&&(c=[]),typeof l!="function")return De(e,l,c,t);ce(n=>De(e,l(),n,t),c)}function kn(e,l,t,c,n={},I=!1){l||(l={});for(const i in n)if(!(i in l)){if(i==="children")continue;n[i]=kt(e,i,null,n[i],t,I)}for(const i in l){if(i==="children"){c||De(e,l.children);continue}const g=l[i];n[i]=kt(e,i,g,n[i],t,I)}}function xn(e){return e.toLowerCase().replace(/-([a-z])/g,(l,t)=>t.toUpperCase())}function ut(e,l,t){const c=l.trim().split(/\s+/);for(let n=0,I=c.length;n<I;n++)e.classList.toggle(c[n],t)}function kt(e,l,t,c,n,I){let i,g,C,a,d;if(l==="style")return st(e,t,c);if(l==="classList")return Yn(e,t,c);if(t===c)return c;if(l==="ref")I||t(e);else if(l.slice(0,3)==="on:"){const m=l.slice(3);c&&e.removeEventListener(m,c),t&&e.addEventListener(m,t)}else if(l.slice(0,10)==="oncapture:"){const m=l.slice(10);c&&e.removeEventListener(m,c,!0),t&&e.addEventListener(m,t,!0)}else if(l.slice(0,2)==="on"){const m=l.slice(2).toLowerCase(),N=Sn.has(m);if(!N&&c){const A=Array.isArray(c)?c[0]:c;e.removeEventListener(m,A)}(N||t)&&(at(e,m,t,N),N&&ot([m]))}else if(l.slice(0,5)==="attr:")ke(e,l.slice(5),t);else if((d=l.slice(0,5)==="prop:")||(C=rn.has(l))||!n&&((a=Jn(l,e.tagName))||(g=An.has(l)))||(i=e.nodeName.includes("-")))d&&(l=l.slice(5),g=!0),l==="class"||l==="className"?pc(e,t):i&&!g&&!C?e[xn(l)]=t:e[a||l]=t;else{const m=n&&l.indexOf(":")>-1&&pn[l.split(":")[0]];m?Nn(e,m,l,t):ke(e,Gn[l]||l,t)}return t}function Bn(e){const l=`$$${e.type}`;let t=e.composedPath&&e.composedPath()[0]||e.target;for(e.target!==t&&Object.defineProperty(e,"target",{configurable:!0,value:t}),Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return t||document}});t;){const c=t[l];if(c&&!t.disabled){const n=t[`${l}Data`];if(n!==void 0?c.call(t,n,e):c.call(t,e),e.cancelBubble)return}t=t._$host||t.parentNode||t.host}}function De(e,l,t,c,n){for(;typeof t=="function";)t=t();if(l===t)return t;const I=typeof l,i=c!==void 0;if(e=i&&t[0]&&t[0].parentNode||e,I==="string"||I==="number")if(I==="number"&&(l=l.toString()),i){let g=t[0];g&&g.nodeType===3?g.data=l:g=document.createTextNode(l),t=Me(e,t,c,g)}else t!==""&&typeof t=="string"?t=e.firstChild.data=l:t=e.textContent=l;else if(l==null||I==="boolean")t=Me(e,t,c);else{if(I==="function")return ce(()=>{let g=l();for(;typeof g=="function";)g=g();t=De(e,g,t,c)}),()=>t;if(Array.isArray(l)){const g=[],C=t&&Array.isArray(t);if(gt(g,l,t,n))return ce(()=>t=De(e,g,t,c,!0)),()=>t;if(g.length===0){if(t=Me(e,t,c),i)return t}else C?t.length===0?xt(e,g,c):Un(e,t,g):(t&&Me(e),xt(e,g));t=g}else if(l.nodeType){if(Array.isArray(t)){if(i)return t=Me(e,t,c,l);Me(e,t,null,l)}else t==null||t===""||!e.firstChild?e.appendChild(l):e.replaceChild(l,e.firstChild);t=l}else console.warn("Unrecognized value. Skipped inserting",l)}return t}function gt(e,l,t,c){let n=!1;for(let I=0,i=l.length;I<i;I++){let g=l[I],C=t&&t[I],a;if(!(g==null||g===!0||g===!1))if((a=typeof g)=="object"&&g.nodeType)e.push(g);else if(Array.isArray(g))n=gt(e,g,C)||n;else if(a==="function")if(c){for(;typeof g=="function";)g=g();n=gt(e,Array.isArray(g)?g:[g],Array.isArray(C)?C:[C])||n}else e.push(g),n=!0;else{const d=String(g);C&&C.nodeType===3&&C.data===d?e.push(C):e.push(document.createTextNode(d))}}return n}function xt(e,l,t=null){for(let c=0,n=l.length;c<n;c++)e.insertBefore(l[c],t)}function Me(e,l,t,c){if(t===void 0)return e.textContent="";const n=c||document.createTextNode("");if(l.length){let I=!1;for(let i=l.length-1;i>=0;i--){const g=l[i];if(n!==g){const C=g.parentNode===e;!I&&!i?C?e.replaceChild(n,g):e.insertBefore(n,t):C&&g.remove()}else I=!0}}else e.insertBefore(n,t);return[n]}const yn="http://www.w3.org/2000/svg";function fn(e,l=!1){return l?document.createElementNS(yn,e):document.createElement(e)}function Tn(e){const[l,t]=Xn(e,["component"]),c=te(()=>l.component);return te(()=>{const n=c();switch(typeof n){case"function":return Object.assign(n,{[gn]:!0}),$(()=>n(t));case"string":const I=Fn.has(n),i=fn(n,I);return un(i,t,I),i}})}/**
|
|
|
*/let Fe;class En{constructor(l){Fe=l}parse(l,t){const c=Object.assign({alias:void 0,array:void 0,boolean:void 0,config:void 0,configObjects:void 0,configuration:void 0,coerce:void 0,count:void 0,default:void 0,envPrefix:void 0,narg:void 0,normalize:void 0,string:void 0,number:void 0,__:void 0,key:void 0},t),n=Qn(l),I=typeof l=="string",i=Kn(Object.assign(Object.create(null),c.alias)),g=Object.assign({"boolean-negation":!0,"camel-case-expansion":!0,"combine-arrays":!1,"dot-notation":!0,"duplicate-arguments-array":!0,"flatten-duplicate-arrays":!0,"greedy-arrays":!0,"halt-at-non-option":!1,"nargs-eats-options":!1,"negation-prefix":"no-","parse-numbers":!0,"parse-positional-numbers":!0,"populate--":!1,"set-placeholder-key":!1,"short-option-groups":!0,"strip-aliased":!1,"strip-dashed":!1,"unknown-options-as-args":!1},c.configuration),C=Object.assign(Object.create(null),c.default),a=c.configObjects||[],d=c.envPrefix,m=g["populate--"],N=m?"--":"_",A=Object.create(null),U=Object.create(null),w=c.__||Fe.format,s={aliases:Object.create(null),arrays:Object.create(null),bools:Object.create(null),strings:Object.create(null),numbers:Object.create(null),counts:Object.create(null),normalize:Object.create(null),configs:Object.create(null),nargs:Object.create(null),coercions:Object.create(null),keys:[]},z=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,Q=new RegExp("^--"+g["negation-prefix"]+"(.+)");[].concat(c.array||[]).filter(Boolean).forEach(function(V){const o=typeof V=="object"?V.key:V,R=Object.keys(V).map(function(W){return{boolean:"bools",string:"strings",number:"numbers"}[W]}).filter(Boolean).pop();R&&(s[R][o]=!0),s.arrays[o]=!0,s.keys.push(o)}),[].concat(c.boolean||[]).filter(Boolean).forEach(function(V){s.bools[V]=!0,s.keys.push(V)}),[].concat(c.string||[]).filter(Boolean).forEach(function(V){s.strings[V]=!0,s.keys.push(V)}),[].concat(c.number||[]).filter(Boolean).forEach(function(V){s.numbers[V]=!0,s.keys.push(V)}),[].concat(c.count||[]).filter(Boolean).forEach(function(V){s.counts[V]=!0,s.keys.push(V)}),[].concat(c.normalize||[]).filter(Boolean).forEach(function(V){s.normalize[V]=!0,s.keys.push(V)}),typeof c.narg=="object"&&Object.entries(c.narg).forEach(([V,o])=>{typeof o=="number"&&(s.nargs[V]=o,s.keys.push(V))}),typeof c.coerce=="object"&&Object.entries(c.coerce).forEach(([V,o])=>{typeof o=="function"&&(s.coercions[V]=o,s.keys.push(V))}),typeof c.config<"u"&&(Array.isArray(c.config)||typeof c.config=="string"?[].concat(c.config).filter(Boolean).forEach(function(V){s.configs[V]=!0}):typeof c.config=="object"&&Object.entries(c.config).forEach(([V,o])=>{(typeof o=="boolean"||typeof o=="function")&&(s.configs[V]=o)})),q(c.key,i,c.default,s.arrays),Object.keys(C).forEach(function(V){(s.aliases[V]||[]).forEach(function(o){C[o]=C[V]})});let E=null;$c();let v=[];const K=Object.assign(Object.create(null),{_:[]}),Ce={};for(let V=0;V<n.length;V++){const o=n[V],R=o.replace(/^-{3,}/,"---");let W,Z,Y,F,k,ee;if(o!=="--"&&/^-/.test(o)&&Wl(o))J(o);else if(R.match(/^---+(=|$)/)){J(o);continue}else if(o.match(/^--.+=/)||!g["short-option-groups"]&&o.match(/^-.+=/))F=o.match(/^--?([^=]+)=([\s\S]*)$/),F!==null&&Array.isArray(F)&&F.length>=3&&(S(F[1],s.arrays)?V=b(V,F[1],n,F[2]):S(F[1],s.nargs)!==!1?V=y(V,F[1],n,F[2]):G(F[1],F[2],!0));else if(o.match(Q)&&g["boolean-negation"])F=o.match(Q),F!==null&&Array.isArray(F)&&F.length>=2&&(Z=F[1],G(Z,S(Z,s.arrays)?[!1]:!1));else if(o.match(/^--.+/)||!g["short-option-groups"]&&o.match(/^-[^-]+/))F=o.match(/^--?(.+)/),F!==null&&Array.isArray(F)&&F.length>=2&&(Z=F[1],S(Z,s.arrays)?V=b(V,Z,n):S(Z,s.nargs)!==!1?V=y(V,Z,n):(k=n[V+1],k!==void 0&&(!k.match(/^-/)||k.match(z))&&!S(Z,s.bools)&&!S(Z,s.counts)||/^(true|false)$/.test(k)?(G(Z,k),V++):G(Z,He(Z))));else if(o.match(/^-.\..+=/))F=o.match(/^-([^=]+)=([\s\S]*)$/),F!==null&&Array.isArray(F)&&F.length>=3&&G(F[1],F[2]);else if(o.match(/^-.\..+/)&&!o.match(z))k=n[V+1],F=o.match(/^-(.\..+)/),F!==null&&Array.isArray(F)&&F.length>=2&&(Z=F[1],k!==void 0&&!k.match(/^-/)&&!S(Z,s.bools)&&!S(Z,s.counts)?(G(Z,k),V++):G(Z,He(Z)));else if(o.match(/^-[^-]+/)&&!o.match(z)){Y=o.slice(1,-1).split(""),W=!1;for(let ge=0;ge<Y.length;ge++){if(k=o.slice(ge+2),Y[ge+1]&&Y[ge+1]==="="){ee=o.slice(ge+3),Z=Y[ge],S(Z,s.arrays)?V=b(V,Z,n,ee):S(Z,s.nargs)!==!1?V=y(V,Z,n,ee):G(Z,ee),W=!0;break}if(k==="-"){G(Y[ge],k);continue}if(/[A-Za-z]/.test(Y[ge])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(k)&&S(k,s.bools)===!1){G(Y[ge],k),W=!0;break}if(Y[ge+1]&&Y[ge+1].match(/\W/)){G(Y[ge],k),W=!0;break}else G(Y[ge],He(Y[ge]))}Z=o.slice(-1)[0],!W&&Z!=="-"&&(S(Z,s.arrays)?V=b(V,Z,n):S(Z,s.nargs)!==!1?V=y(V,Z,n):(k=n[V+1],k!==void 0&&(!/^(-|--)[^-]/.test(k)||k.match(z))&&!S(Z,s.bools)&&!S(Z,s.counts)||/^(true|false)$/.test(k)?(G(Z,k),V++):G(Z,He(Z))))}else if(o.match(/^-[0-9]$/)&&o.match(z)&&S(o.slice(1),s.bools))Z=o.slice(1),G(Z,He(Z));else if(o==="--"){v=n.slice(V+1);break}else if(g["halt-at-non-option"]){v=n.slice(V);break}else J(o)}B(K,!0),B(K,!1),h(K),x(),j(K,s.aliases,C,!0),u(K),g["set-placeholder-key"]&&f(K),Object.keys(s.counts).forEach(function(V){T(K,V.split("."))||G(V,0)}),m&&v.length&&(K[N]=[]),v.forEach(function(V){K[N].push(V)}),g["camel-case-expansion"]&&g["strip-dashed"]&&Object.keys(K).filter(V=>V!=="--"&&V.includes("-")).forEach(V=>{delete K[V]}),g["strip-aliased"]&&[].concat(...Object.keys(i).map(V=>i[V])).forEach(V=>{g["camel-case-expansion"]&&V.includes("-")&&delete K[V.split(".").map(o=>tl(o)).join(".")],delete K[V]});function J(V){const o=r("_",V);(typeof o=="string"||typeof o=="number")&&K._.push(o)}function y(V,o,R,W){let Z,Y=S(o,s.nargs);if(Y=typeof Y!="number"||isNaN(Y)?1:Y,Y===0)return Se(W)||(E=Error(w("Argument unexpected for: %s",o))),G(o,He(o)),V;let F=Se(W)?0:1;if(g["nargs-eats-options"])R.length-(V+1)+F<Y&&(E=Error(w("Not enough arguments following: %s",o))),F=Y;else{for(Z=V+1;Z<R.length&&(!R[Z].match(/^-[^0-9]/)||R[Z].match(z)||Wl(R[Z]));Z++)F++;F<Y&&(E=Error(w("Not enough arguments following: %s",o)))}let k=Math.min(F,Y);for(!Se(W)&&k>0&&(G(o,W),k--),Z=V+1;Z<k+V+1;Z++)G(o,R[Z]);return V+k}function b(V,o,R,W){let Z=[],Y=W||R[V+1];const F=S(o,s.nargs);if(S(o,s.bools)&&!/^(true|false)$/.test(Y))Z.push(!0);else if(Se(Y)||Se(W)&&/^-/.test(Y)&&!z.test(Y)&&!Wl(Y)){if(C[o]!==void 0){const k=C[o];Z=Array.isArray(k)?k:[k]}}else{Se(W)||Z.push(D(o,W,!0));for(let k=V+1;k<R.length&&!(!g["greedy-arrays"]&&Z.length>0||F&&typeof F=="number"&&Z.length>=F||(Y=R[k],/^-/.test(Y)&&!z.test(Y)&&!Wl(Y)));k++)V=k,Z.push(D(o,Y,I))}return typeof F=="number"&&(F&&Z.length<F||isNaN(F)&&Z.length===0)&&(E=Error(w("Not enough arguments following: %s",o))),G(o,Z),V}function G(V,o,R=I){if(/-/.test(V)&&g["camel-case-expansion"]){const Y=V.split(".").map(function(F){return tl(F)}).join(".");Ge(V,Y)}const W=D(V,o,R),Z=V.split(".");H(K,Z,W),s.aliases[V]&&s.aliases[V].forEach(function(Y){const F=Y.split(".");H(K,F,W)}),Z.length>1&&g["dot-notation"]&&(s.aliases[Z[0]]||[]).forEach(function(Y){let F=Y.split(".");const k=[].concat(Z);k.shift(),F=F.concat(k),(s.aliases[V]||[]).includes(F.join("."))||H(K,F,W)}),S(V,s.normalize)&&!S(V,s.arrays)&&[V].concat(s.aliases[V]||[]).forEach(function(F){Object.defineProperty(Ce,F,{enumerable:!0,get(){return o},set(k){o=typeof k=="string"?Fe.normalize(k):k}})})}function Ge(V,o){s.aliases[V]&&s.aliases[V].length||(s.aliases[V]=[o],A[o]=!0),s.aliases[o]&&s.aliases[o].length||Ge(o,V)}function D(V,o,R){R&&(o=Hn(o)),(S(V,s.bools)||S(V,s.counts))&&typeof o=="string"&&(o=o==="true");let W=Array.isArray(o)?o.map(function(Z){return r(V,Z)}):r(V,o);return S(V,s.counts)&&(Se(W)||typeof W=="boolean")&&(W=Ml()),S(V,s.normalize)&&S(V,s.arrays)&&(Array.isArray(o)?W=o.map(Z=>Fe.normalize(Z)):W=Fe.normalize(o)),W}function r(V,o){return!g["parse-positional-numbers"]&&V==="_"||!S(V,s.strings)&&!S(V,s.bools)&&!Array.isArray(o)&&(Yc(o)&&g["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${o}`)))||!Se(o)&&S(V,s.numbers))&&(o=Number(o)),o}function h(V){const o=Object.create(null);j(o,s.aliases,C),Object.keys(s.configs).forEach(function(R){const W=V[R]||o[R];if(W)try{let Z=null;const Y=Fe.resolve(Fe.cwd(),W),F=s.configs[R];if(typeof F=="function"){try{Z=F(Y)}catch(k){Z=k}if(Z instanceof Error){E=Z;return}}else Z=Fe.require(Y);p(Z)}catch(Z){Z.name==="PermissionDenied"?E=Z:V[R]&&(E=Error(w("Invalid JSON config file: %s",W)))}})}function p(V,o){Object.keys(V).forEach(function(R){const W=V[R],Z=o?o+"."+R:R;typeof W=="object"&&W!==null&&!Array.isArray(W)&&g["dot-notation"]?p(W,Z):(!T(K,Z.split("."))||S(Z,s.arrays)&&g["combine-arrays"])&&G(Z,W)})}function x(){typeof a<"u"&&a.forEach(function(V){p(V)})}function B(V,o){if(typeof d>"u")return;const R=typeof d=="string"?d:"",W=Fe.env();Object.keys(W).forEach(function(Z){if(R===""||Z.lastIndexOf(R,0)===0){const Y=Z.split("__").map(function(F,k){return k===0&&(F=F.substring(R.length)),tl(F)});(o&&s.configs[Y.join(".")]||!o)&&!T(V,Y)&&G(Y.join("."),W[Z])}})}function u(V){let o;const R=new Set;Object.keys(V).forEach(function(W){if(!R.has(W)&&(o=S(W,s.coercions),typeof o=="function"))try{const Z=r(W,o(V[W]));[].concat(s.aliases[W]||[],W).forEach(Y=>{R.add(Y),V[Y]=Z})}catch(Z){E=Z}})}function f(V){return s.keys.forEach(o=>{~o.indexOf(".")||typeof V[o]>"u"&&(V[o]=void 0)}),V}function j(V,o,R,W=!1){Object.keys(R).forEach(function(Z){T(V,Z.split("."))||(H(V,Z.split("."),R[Z]),W&&(U[Z]=!0),(o[Z]||[]).forEach(function(Y){T(V,Y.split("."))||H(V,Y.split("."),R[Z])}))})}function T(V,o){let R=V;g["dot-notation"]||(o=[o.join(".")]),o.slice(0,-1).forEach(function(Z){R=R[Z]||{}});const W=o[o.length-1];return typeof R!="object"?!1:W in R}function H(V,o,R){let W=V;g["dot-notation"]||(o=[o.join(".")]),o.slice(0,-1).forEach(function(ee){ee=Bt(ee),typeof W=="object"&&W[ee]===void 0&&(W[ee]={}),typeof W[ee]!="object"||Array.isArray(W[ee])?(Array.isArray(W[ee])?W[ee].push({}):W[ee]=[W[ee],{}],W=W[ee][W[ee].length-1]):W=W[ee]});const Z=Bt(o[o.length-1]),Y=S(o.join("."),s.arrays),F=Array.isArray(R);let k=g["duplicate-arguments-array"];!k&&S(Z,s.nargs)&&(k=!0,(!Se(W[Z])&&s.nargs[Z]===1||Array.isArray(W[Z])&&W[Z].length===s.nargs[Z])&&(W[Z]=void 0)),R===Ml()?W[Z]=Ml(W[Z]):Array.isArray(W[Z])?k&&Y&&F?W[Z]=g["flatten-duplicate-arrays"]?W[Z].concat(R):(Array.isArray(W[Z][0])?W[Z]:[W[Z]]).concat([R]):!k&&!!Y==!!F?W[Z]=R:W[Z]=W[Z].concat([R]):W[Z]===void 0&&Y?W[Z]=F?R:[R]:k&&!(W[Z]===void 0||S(Z,s.counts)||S(Z,s.bools))?W[Z]=[W[Z],R]:W[Z]=R}function q(...V){V.forEach(function(o){Object.keys(o||{}).forEach(function(R){s.aliases[R]||(s.aliases[R]=[].concat(i[R]||[]),s.aliases[R].concat(R).forEach(function(W){if(/-/.test(W)&&g["camel-case-expansion"]){const Z=tl(W);Z!==R&&s.aliases[R].indexOf(Z)===-1&&(s.aliases[R].push(Z),A[Z]=!0)}}),s.aliases[R].concat(R).forEach(function(W){if(W.length>1&&/[A-Z]/.test(W)&&g["camel-case-expansion"]){const Z=Nc(W,"-");Z!==R&&s.aliases[R].indexOf(Z)===-1&&(s.aliases[R].push(Z),A[Z]=!0)}}),s.aliases[R].forEach(function(W){s.aliases[W]=[R].concat(s.aliases[R].filter(function(Z){return W!==Z}))}))})})}function S(V,o){const R=[].concat(s.aliases[V]||[],V),W=Object.keys(o),Z=R.find(Y=>W.includes(Y));return Z?o[Z]:!1}function se(V){const o=Object.keys(s);return[].concat(o.map(W=>s[W])).some(function(W){return Array.isArray(W)?W.includes(V):W[V]})}function ne(V,...o){return[].concat(...o).some(function(W){const Z=V.match(W);return Z&&se(Z[1])})}function Ke(V){if(V.match(z)||!V.match(/^-[^-]+/))return!1;let o=!0,R;const W=V.slice(1).split("");for(let Z=0;Z<W.length;Z++){if(R=V.slice(Z+2),!se(W[Z])){o=!1;break}if(W[Z+1]&&W[Z+1]==="="||R==="-"||/[A-Za-z]/.test(W[Z])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(R)||W[Z+1]&&W[Z+1].match(/\W/))break}return o}function Wl(V){return g["unknown-options-as-args"]&&Pc(V)}function Pc(V){return V=V.replace(/^-{3,}/,"--"),V.match(z)||Ke(V)?!1:!ne(V,/^-+([^=]+?)=[\s\S]*$/,Q,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function He(V){return!S(V,s.bools)&&!S(V,s.counts)&&`${V}`in C?C[V]:vc(qc(V))}function vc(V){return{[We.BOOLEAN]:!0,[We.STRING]:"",[We.NUMBER]:void 0,[We.ARRAY]:[]}[V]}function qc(V){let o=We.BOOLEAN;return S(V,s.strings)?o=We.STRING:S(V,s.numbers)?o=We.NUMBER:S(V,s.bools)?o=We.BOOLEAN:S(V,s.arrays)&&(o=We.ARRAY),o}function Se(V){return V===void 0}function $c(){Object.keys(s.counts).find(V=>S(V,s.arrays)?(E=Error(w("Invalid configuration: %s, opts.count excludes opts.array.",V)),!0):S(V,s.nargs)?(E=Error(w("Invalid configuration: %s, opts.count excludes opts.narg.",V)),!0):!1)}return{aliases:Object.assign({},s.aliases),argv:Object.assign(Ce,K),configuration:g,defaulted:Object.assign({},U),error:E,newAliases:Object.assign({},A)}}}function Kn(e){const l=[],t=Object.create(null);let c=!0;for(Object.keys(e).forEach(function(n){l.push([].concat(e[n],n))});c;){c=!1;for(let n=0;n<l.length;n++)for(let I=n+1;I<l.length;I++)if(l[n].filter(function(g){return l[I].indexOf(g)!==-1}).length){l[n]=l[n].concat(l[I]),l.splice(I,1),c=!0;break}}return l.forEach(function(n){n=n.filter(function(i,g,C){return C.indexOf(i)===g});const I=n.pop();I!==void 0&&typeof I=="string"&&(t[I]=n)}),t}function Ml(e){return e!==void 0?e+1:1}function Bt(e){return e==="__proto__"?"___proto___":e}function Hn(e){return typeof e=="string"&&(e[0]==="'"||e[0]==='"')&&e[e.length-1]===e[0]?e.substring(1,e.length-1):e}/**
|
|
|
*/var zl,jl,wl;const yt=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):12,ft=(jl=(zl=process==null?void 0:process.versions)===null||zl===void 0?void 0:zl.node)!==null&&jl!==void 0?jl:(wl=process==null?void 0:process.version)===null||wl===void 0?void 0:wl.slice(1);if(ft&&Number(ft.match(/^([^.]+)/)[1])<yt)throw Error(`yargs parser supports a minimum Node.js version of ${yt}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);const Mn=process?process.env:{},uc=new En({cwd:process.cwd,env:()=>Mn,format:en.format,normalize:oe.normalize,resolve:oe.resolve,require:e=>{if(typeof require<"u")return require(e);if(e.match(/\.json$/))return JSON.parse(ac.readFileSync(e,"utf8"));throw Error("only .json config files are supported in ESM")}}),al=function(l,t){return uc.parse(l.slice(),t).argv};al.detailed=function(e,l){return uc.parse(e.slice(),l)};al.camelCase=tl;al.decamelize=Nc;al.looksLikeNumber=Yc;const zn={exportToOo:"导出为......",exportWithPrevious:"使用上一次设置导出",exportSuccessNotice:P`导出文件 ${0} 成功!`,exportCommandOutputMessage:P`命令:${0}`,exportErrorOutputMessage:P`命令 ${0},错误:${1}`,pleaseOpenFile:"请打开一个文件先。",preparing:P`正在生成 "${0}" ......`,exportDialog:{fileName:"文件名",type:"类型",exportTo:"导出到",title:P`导出为 ${0}`,export:"导出",selectExportFolder:"请选择导出文件夹",overwriteConfirmation:"覆盖提示"},messageBox:{yes:"是",no:"否",ok:"确认",cancel:"取消"},overwriteConfirmationDialog:{replace:"替换",title:P`"${0}" 已经存在。您要替换它吗?`,message:P`"${0}" 文件夹中已有相同的文件或文件夹,若替换,则会覆盖其当前内容。`},settingTab:{title:"导出设置",general:"通用",name:"名称",customLocation:"自定义",version:P`版本: ${0}`,pandocNotFound:"找不到 Pandoc,请填写 Pandoc 文件路径,或者将其添加到系统环境变量中。",pandocPath:"Pandoc 路径",defaultFolderForExportedFile:"默认的导出文件夹",openExportedFileLocation:"打开导出文件所在目录",sameFolderWithCurrentFile:"与原文件同一目录下",openExportedFile:"打开导出文件",pandocPathPlaceholder:"(自动检测)",editCommandTemplate:"编辑命令模板",chooseCommandTemplate:"选择模板",afterExport:"导出后",command:"命令",arguments:"参数",auto:"自动",reset:"重置",add:"添加",remove:"移除",rename:"重命名",targetFileExtensions:"目标文件扩展名",targetFileExtensionsTip:"(用空格分开)",showCommandOutput:"显示命令行输出",runCommand:"运行自定义命令",extraArguments:"自定义参数",save:"保存",new:"新建",template:"模板",advanced:"高级",environmentVariables:"环境变量",environmentVariablesDesc:"定义导出的环境变量.",ShowExportProgressBar:"显示导出进度条"}},jn={exportToOo:"Export to...",exportSuccessNotice:P`Export file ${0} success!`,exportCommandOutputMessage:P`Command: ${0}`,exportErrorOutputMessage:P`Command: ${0},Error:${1}`,exportWithPrevious:"Export with Previous",pleaseOpenFile:"Please open a file first.",preparing:P`generating "${0}"...`,exportDialog:{exportTo:"Export to",fileName:"File Name",title:P`Export to ${0}`,export:"Export",selectExportFolder:"Please select an export folder.",overwriteConfirmation:"Overwrite confirmation",type:"Type"},messageBox:{yes:"Yes",no:"No",ok:"Ok",cancel:"Cancel"},overwriteConfirmationDialog:{replace:"Replace",title:P`"${0}" already exists. Do you want to replace it?`,message:P`A file or folder with the same name already exists in the folder "${0}". Replacing it will overwrite its current contents.`},settingTab:{general:"General",name:"Name",title:"Export Settings",version:P`Version: ${0}`,pandocNotFound:"Pandoc not found, please fill in the Pandoc file path, or add it to the system environment variables.",defaultFolderForExportedFile:"Default Folder for Exported File",openExportedFileLocation:"Open exported file location",ShowExportProgressBar:"Show export progress bar",openExportedFile:"Open exported file",pandocPath:"Pandoc path",pandocPathPlaceholder:"(Auto Detect)",editCommandTemplate:"Edit Command Template",chooseCommandTemplate:"Choose template",customLocation:"Custom location",template:"Template",command:"Command",reset:"Reset",auto:"Auto",add:"Add",remove:"Remove",rename:"Rename",sameFolderWithCurrentFile:"Same folder with current file",afterExport:"After Export",targetFileExtensions:"Target file extensions",targetFileExtensionsTip:"(Separated by whitespace)",showCommandOutput:"Show command output",runCommand:"Run command",extraArguments:"Extra arguments",save:"Save",new:"New",arguments:"Arguments",advanced:"Advanced",environmentVariables:"Environment Variables",environmentVariablesDesc:"Define the Environment Variables for exporting."}},wn={exportToOo:"Export to...",exportSuccessNotice:P`Export der Datei ${0} erfolgreich!`,exportCommandOutputMessage:P`Command: ${0}`,exportErrorOutputMessage:P`Command: ${0},Fehler:${1}`,exportWithPrevious:"Exportiere mit Vorherigem",pleaseOpenFile:"Bitte öffne zunächst eine Datei.",preparing:P`generating "${0}"...`,exportDialog:{exportTo:"Exportiere nach",fileName:"Dateiname",title:P`Export to ${0}`,export:"Export",selectExportFolder:"Zielordner auswählen",overwriteConfirmation:"Überschreibe den Zielordner",type:"Typ"},messageBox:{yes:"Ja",no:"Nein",ok:"Ok",cancel:"Abbrechen"},overwriteConfirmationDialog:{replace:"Ersetze",title:P`"${0}" existiert bereits. Soll er ersetzt werden?`,message:P`Eine Datei oder ein Ordner mit dem gleichen Namen existiert bereits im Ordner "${0}". Das Ersetzen wird die jetzigen Inhalte überschreiben.`},settingTab:{general:"Allgemein",name:"Name",title:"Export-Einstellungen",version:P`Version: ${0}`,pandocNotFound:"Pandoc.exe wurde nicht gefunden. Bitte geben Sie den Pfad zur Pandoc.exe ein oder fügen Sie ihn den Window Systemumgebungsvariablen hinzu.",defaultFolderForExportedFile:"Standardordner für exportierte Dateien",openExportedFileLocation:"Speicherort der exportierten Datei öffnen",openExportedFile:"Exportierte Datei öffnen",pandocPath:"Pfad zur Datei Pandoc.exe",pandocPathPlaceholder:"(Automatische Erkennung)",editCommandTemplate:"‘Befehlsvorlage bearbeiten",chooseCommandTemplate:"Vorlage auswählen",customLocation:"Benutzerdefinierter Speicherort",template:"Vorlage",command:"Befehl",reset:"Zurücksetzen",auto:"Auto",add:"Hinzufügen",remove:"Entfernen",rename:"Umbenennen",sameFolderWithCurrentFile:"Der gleiche Ordner mit der aktuellen Datei",afterExport:"Nach dem Export",targetFileExtensions:"Dateinamenserweiterung der Zieldatei",targetFileExtensionsTip:"(Mit Leerzeichen getrennt)",showCommandOutput:"Zeige die Ausgabe des Befehls",runCommand:"Starte den Befehl",extraArguments:"Zusätzliche Parameter",save:"Speichern",new:"Neu",arguments:"Parameter",advanced:"Advanced",environmentVariables:"Environment Variables",environmentVariablesDesc:"Define the Environment Variables for exporting.",ShowExportProgressBar:"Show export progressBar"}},kc={"de-DE":wn,"en-US":jn,"zh-CN":zn,get current(){const e=Object.keys(this),l=be.moment.locale().toLowerCase();let t=e.find(n=>n.toLowerCase()===l.toLowerCase());if(t)return this[t];const c=l.split("-")[0];return t=e.find(n=>n.toLowerCase().startsWith(c)),t?this[t]:this["en-US"]}};class Tt extends be.Modal{constructor(l,t,c){super(l),this.options=typeof t=="string"?{message:t,buttons:"Ok",title:c}:t,this.lang=kc.current}onOpen(){const{titleEl:l,contentEl:t,lang:c,options:{message:n,title:I,buttons:i,callback:g,buttonsLabel:C,buttonsClass:a}}=this;switch(I&&l.setText(I),t.createDiv({text:n}),i){case"Yes":t.createEl("div",{cls:["modal-button-container"],parent:t},d=>{d.createEl("button",{text:(C==null?void 0:C.yes)??c.messageBox.yes,cls:["mod-cta",a==null?void 0:a.yes],parent:d}).onclick=()=>this.call(g==null?void 0:g.yes)});break;case"YesNo":t.createEl("div",{cls:["modal-button-container"],parent:t},d=>{d.createEl("button",{text:(C==null?void 0:C.yes)??c.messageBox.yes,cls:["mod-cta",a==null?void 0:a.yes],parent:d}).onclick=()=>this.call(g==null?void 0:g.yes),d.createEl("button",{text:(C==null?void 0:C.no)??c.messageBox.no,cls:["mod-cta",a==null?void 0:a.no],parent:d}).onclick=()=>this.call(g==null?void 0:g.no)});break;case"Ok":t.createEl("div",{cls:["modal-button-container"],parent:t},d=>{d.createEl("button",{text:(C==null?void 0:C.ok)??c.messageBox.ok,cls:["mod-cta",a==null?void 0:a.no],parent:d}).onclick=()=>this.call(g==null?void 0:g.ok)});break;case"OkCancel":t.createEl("div",{cls:["modal-button-container"],parent:t},d=>{d.createEl("button",{text:(C==null?void 0:C.ok)??c.messageBox.ok,cls:["mod-cta",a==null?void 0:a.ok],parent:d}).onclick=()=>this.call(g==null?void 0:g.ok),d.createEl("button",{text:(C==null?void 0:C.cancel)??c.messageBox.cancel,cls:["mod-cta",a==null?void 0:a.cancel],parent:d}).onclick=()=>this.call(g==null?void 0:g.cancel)});break}}call(l){l&&l(),this.close()}onClose(){const{contentEl:l}=this;l.empty()}}async function xc(e,l,t,c,n,I,i,g,C,a){const{settings:d,lang:m,manifest:N,app:{vault:{adapter:A,config:U},loadProgress:w,fileManager:s}}=e;if(!c){const ne=sc(n);c=`${l.basename}${ne}`}I==null&&(I=d.showOverwriteConfirmation);const z=d.showExportProgressBar,Q=A.getBasePath(),E=`${Q}/${N.dir}`,v=`${E}/lua`,K=t,Ce=`${K}/${c}`,J=c.substring(0,c.lastIndexOf(".")),y=c,b=A.getFullPath(l.path),G=oe.dirname(b),Ge=l.basename,D=l.name;let r=U.attachmentFolderPath??"/";r==="/"?r=Q:r.startsWith(".")&&(r=oe.join(G,r.substring(1)));let h=null;try{await s.processFrontMatter(l,ne=>h=ne)}catch(ne){console.error(ne)}const p={pluginDir:E,luaDir:v,outputDir:K,outputPath:Ce,outputFileName:J,outputFileFullName:y,currentDir:G,currentPath:b,currentFileName:Ge,currentFileFullName:D,attachmentFolderPath:r,vaultDir:Q,metadata:h,options:i},x=n.type==="custom"&&n.showCommandOutput,B=n.openExportedFileLocation??d.openExportedFileLocation,u=n.openExportedFile??d.openExportedFile;if(I&&Kl.existsSync(Ce)){const ne=await Qe.remote.dialog.showSaveDialog({title:m.overwriteConfirmationDialog.title(y),defaultPath:Ce,properties:["showOverwriteConfirmation","createDirectory"]});if(ne.canceled)return;p.outputPath=ne.filePath,p.outputDir=oe.dirname(p.outputPath),p.outputFileFullName=oe.basename(p.outputPath),p.outputFileName=oe.basename(p.outputFileFullName,oe.extname(p.outputFileFullName))}z&&(w.setMessage(m.preparing(p.outputFileFullName)),a==null||a(),w.show());const f=p.env=Wc(ae(d.env)??{},p),j=ae(d.pandocPath)??"pandoc",T=n.type==="pandoc"?`${j} ${n.arguments??""} ${n.customArguments??""} "${b}"`:n.command,H=tt(T,p),q=al(H.match(/(?:[^\s"]+|"[^"]*")+/g),{alias:{output:["o"]}}),S=oe.normalize(q.output.startsWith('"')&&q.output.endsWith('"')||q.output.startsWith("'")&&q.output.endsWith("'")?q.output.substring(1,q.output.length-1):q.output),se=oe.dirname(S);Kl.existsSync(se)||Kl.mkdirSync(se);try{console.log(`[${e.manifest.name}]: export command and options:`,{cmd:H,options:{cwd:p.currentDir,env:f}}),await lt(H,{cwd:p.currentDir,env:f}),z&&w.hide();const ne=async()=>{if(B&&setTimeout(()=>{Qe.remote.shell.showItemInFolder(S)},1e3),u&&await Qe.remote.shell.openPath(S),n.type==="pandoc"&&n.runCommand===!0&&n.command){const Ke=tt(n.command,p);await lt(Ke,{cwd:p.currentDir,env:f})}g&&g()};if(x){const Ke=new Tt(app,m.exportCommandOutputMessage(H));Ke.onClose=ne,Ke.open()}else new be.Notice(m.exportSuccessNotice(p.outputFileFullName),1500),await ne()}catch(ne){w.hide(),new Tt(app,m.exportErrorOutputMessage(H,ne)).open(),C&&C()}}const it=e=>{const l=new be.Modal(e.app);let t=[],c=!1;return Ye(()=>{Ze(l.titleEl,()=>e.title)}),Ye(()=>{Ze(l.contentEl,()=>e.children)}),Ye(()=>{const n=Object.entries(e.classList??{}).filter(([,I])=>I).map(([I])=>I);t.length>0&&l.containerEl.removeClasses(t),n.length>0&&l.containerEl.addClasses(n),t=n}),Ye(()=>{l.containerEl.style.display=e.hidden?"None":""}),l.onClose=()=>{c||(c=!0,e.onClose())},bc(()=>l.open()),dl(()=>{c||l.close()}),document.createTextNode("")},Ln=Re("<button>"),Ct=e=>(()=>{const l=Ln();return at(l,"click",e.onClick,!0),Ze(l,()=>e.children),ce(()=>l.classList.toggle("mod-cta",!!e.cta)),l})();ot(["click"]);const Dn=Re('<div><div class="setting-item-info"><div class="setting-item-name"></div><div class="setting-item-description"></div></div><div class="setting-item-control">'),On=Re('<div class="checkbox-container"><input type="checkbox">'),Pn=Re('<div class="setting-editor-extra-setting-button">'),vn=Re('<input type="text">'),qn=Re("<textarea>"),$n=Re('<select class="dropdown">'),_n=Re("<option>"),Bc=Cn(),eI=()=>Vn(Bc),M=e=>{const l={settingEl:null};return X(Bc.Provider,{value:l,get children(){const t=Dn(),c=t.firstChild,n=c.firstChild,I=n.nextSibling,i=c.nextSibling;return Uc(g=>l.settingEl=g,t),Ze(n,()=>e.name),Ze(I,()=>e.description),Ze(i,()=>e.children),ce(g=>{const C=`setting-item ${e.class??""}`.trimEnd(),a=!!e.heading,d=!!e.disabled;return C!==g._v$&&pc(t,g._v$=C),a!==g._v$2&&t.classList.toggle("setting-item-heading",g._v$2=a),d!==g._v$3&&t.classList.toggle("is-disable",g._v$3=d),g},{_v$:void 0,_v$2:void 0,_v$3:void 0}),t}})},me=e=>{const l=eI();return bc(()=>{l.settingEl.addClass("mod-toggle")}),dl(()=>{l.settingEl.removeClass("mod-toggle")}),(()=>{const t=On();return t.$$click=()=>e.onChange&&e.onChange(!e.checked),ce(()=>t.classList.toggle("is-enabled",!!e.checked)),t})()},ye=e=>(()=>{const l=Pn();return at(l,"click",e.onClick,!0),Uc(t=>e.icon&&ln.setIcon(t,e.icon),l),ce(t=>{const c=!!(e.icon&&e.onClick),n=e.tooltip;return c!==t._v$4&&l.classList.toggle("clickable-icon",t._v$4=c),n!==t._v$5&&ke(l,"aria-label",t._v$5=n),t},{_v$4:void 0,_v$5:void 0}),l})(),de=e=>(()=>{const l=vn();return l.addEventListener("change",t=>{var c;return(c=e.onChange)==null?void 0:c.call(e,t.target.value)}),ce(t=>{const c=e.title,n=e.readOnly,I=e.placeholder,i=e.spellcheck??!1,g=e.style,C=e.disabled;return c!==t._v$6&&ke(l,"title",t._v$6=c),n!==t._v$7&&(l.readOnly=t._v$7=n),I!==t._v$8&&ke(l,"placeholder",t._v$8=I),i!==t._v$9&&ke(l,"spellcheck",t._v$9=i),t._v$10=st(l,g,t._v$10),C!==t._v$11&&(l.disabled=t._v$11=C),t},{_v$6:void 0,_v$7:void 0,_v$8:void 0,_v$9:void 0,_v$10:void 0,_v$11:void 0}),ce(()=>l.value=e.value),l})(),lI=e=>(()=>{const l=qn();return l.addEventListener("change",t=>{var c;return(c=e.onChange)==null?void 0:c.call(e,t.target.value)}),ce(t=>{const c=e.placeholder,n=e.spellcheck??!1,I=e.style,i=e.disabled;return c!==t._v$12&&ke(l,"placeholder",t._v$12=c),n!==t._v$13&&ke(l,"spellcheck",t._v$13=n),t._v$14=st(l,I,t._v$14),i!==t._v$15&&(l.disabled=t._v$15=i),t},{_v$12:void 0,_v$13:void 0,_v$14:void 0,_v$15:void 0}),ce(()=>l.value=e.value),l})(),gl=e=>(()=>{const l=$n();return l.addEventListener("change",t=>{var c;return(c=e.onChange)==null?void 0:c.call(e,t.target.value,t.target.selectedIndex)}),l.autofocus=!0,Ze(l,X(Fc,{get each(){return e.options},children:t=>(()=>{const c=_n();return Ze(c,()=>t.name??t.value),ce(()=>c.selected=t.value===e.selected),ce(()=>c.value=t.value),c})()})),l})();ot(["click"]);const tI=Re("<div>Unsupported <!> "),Xl={checkbox:e=>X(M,{get name(){return e.meta.title},get description(){return e.meta.description},get children(){return X(me,{get checked(){return cl(e.meta)},get onChange(){return e.onChange}})}}),textInput:e=>X(M,{get name(){return e.meta.title},get description(){return e.meta.description},get children(){return X(de,{get value(){return cl(e.meta)},get onChange(){return e.onChange}})}}),dropdown:e=>X(M,{get name(){return e.meta.title},get description(){return e.meta.description},get children(){return X(gl,{get selected(){return cl(e.meta)},get options(){return e.meta.options},onChange:l=>e.onChange(l)})}}),fileSelectDialog:e=>{const[l,t]=Ve(cl(e.meta)),c=async()=>{const n=await oc.remote.dialog.showOpenDialog({properties:["openFile"],filters:e.meta.filters});!n.canceled&&n.filePaths.length>0&&(t(n.filePaths[0]),e.onChange&&e.onChange($(l)))};return X(M,{get name(){return e.meta.title},get description(){return e.meta.description},get children(){return[X(de,{get value(){return l()??""},readOnly:!0}),X(ye,{icon:"folder",onClick:c})]}})}},cI=(e,l)=>{switch(e.type){case"checkbox":{const t=Xl[e.type];return X(t,{meta:e,onChange:l})}case"dropdown":{const t=Xl[e.type];return X(t,{meta:e,onChange:l})}case"textInput":{const t=Xl[e.type];return X(t,{meta:e,onChange:l})}case"fileSelectDialog":{const t=Xl[e.type];return X(t,{meta:e,onChange:l})}default:return(()=>{const t=tI(),c=t.firstChild,n=c.nextSibling;return n.nextSibling,Ze(t,()=>JSON.stringify(e),n),t})()}},nI=e=>{let l={};Ye(()=>l=e.value??yc(e.meta));const t=(n,I)=>{l[n]=I,e.onChange&&e.onChange(l,n)},c=(n,I)=>{const i=C=>t(n,C);let g;return e.customEditor&&(g=e.customEditor(I,i),g)?g:cI(I,i)};return X(Fc,{get each(){return Object.entries(e.meta)},children:([n,I])=>c(n,I)})},yc=e=>Object.fromEntries(Object.entries(e).map(([l,t])=>[l,cl(t)])),cl=e=>{if(e.default)return e.default instanceof Function?e.default():e.default},II=Re('<div class="modal-button-container">'),gI=e=>{var y;const{plugin:{app:l,settings:t,lang:c},currentFile:n}=e,[I,i]=Ve(!1),[g,C]=Ve(t.showOverwriteConfirmation),[a,d]=Ve(t.lastExportType??((y=t.items.first())==null?void 0:y.name)),[m,N]=Ve({}),A=te(()=>t.items.find(b=>b.name===a())),U=te(()=>sc(A())),w=te(()=>c.exportDialog.title(A().name)),s=te(()=>nn(A().optionsMeta)),[z,Q]=Ve(`${ae(t.lastExportDirectory)??Qe.remote.app.getPath("documents")}`),[E,v]=Ve(`${n.basename}${U()}`);Ye(()=>{const b=s();N(b?yc(b):{})}),Ye(()=>{let b=$(E);b=b.includes(".")?b.substring(0,b.lastIndexOf(".")):b,v(`${b}${U()}`)});const K=t.items.map(b=>({name:b.name,value:b.name})),Ce=async()=>{var G;const b=await Qe.remote.dialog.showOpenDialog({title:c.exportDialog.selectExportFolder,defaultPath:z(),properties:["createDirectory","openDirectory"]});!b.canceled&&((G=b.filePaths)==null?void 0:G.length)>0&&Q(b.filePaths[0])},J=async()=>{const b=e.plugin;i(!0),await xc(b,n,$(z),$(E),$(A),$(g),m(),async()=>{t.showOverwriteConfirmation=$(g),t.lastExportDirectory=xe(t.lastExportDirectory,$(z)),t.lastExportType=$(A).name,await b.saveSettings(),e.onClose&&e.onClose()},()=>{i(!1)})};return X(it,{app:l,get title(){return w()},get hidden(){return I()},get onClose(){return e.onClose},get children(){return[X(M,{get name(){return c.exportDialog.type},get children(){return X(gl,{options:K,onChange:b=>d(b),get selected(){return a()}})}}),X(M,{get name(){return c.exportDialog.fileName},get children(){return X(de,{get title(){return E()},get value(){return E()},onChange:b=>v(b)})}}),X(Jl,{get when(){return s()},get children(){return X(nI,{get meta(){return s()},get value(){return m()},onChange:b=>N(b)})}}),X(M,{get name(){return c.exportDialog.exportTo},get children(){return[X(de,{get title(){return z()},get value(){return z()},disabled:!0}),X(ye,{icon:"folder",onClick:Ce})]}}),X(M,{get name(){return c.exportDialog.overwriteConfirmation},class:"mod-toggle",get children(){return X(me,{get checked(){return g()},onChange:C})}}),(()=>{const b=II();return Ze(b,X(Ct,{cta:!0,onClick:J,get children(){return c.exportDialog.export}})),b})()]}})},iI=(e,l)=>Il(t=>{let c=!1;const n=()=>{c||(c=!0,t())},I=Ze(document.body,()=>X(gI,{onClose:n,plugin:e,currentFile:l}));return dl(()=>{I instanceof Node&&document.body.contains(I)&&document.body.removeChild(I)}),n}),Ll={show:iI},Nl=Symbol("store-raw"),we=Symbol("store-node"),Ue=Symbol("store-has"),fc=Symbol("store-self");function Tc(e){let l=e[Je];if(!l&&(Object.defineProperty(e,Je,{value:l=new Proxy(e,ZI)}),!Array.isArray(e))){const t=Object.keys(e),c=Object.getOwnPropertyDescriptors(e);for(let n=0,I=t.length;n<I;n++){const i=t[n];c[i].get&&Object.defineProperty(e,i,{enumerable:c[i].enumerable,get:c[i].get.bind(l)})}}return l}function Oe(e){let l;return e!=null&&typeof e=="object"&&(e[Je]||!(l=Object.getPrototypeOf(e))||l===Object.prototype||Array.isArray(e))}function Pe(e,l=new Set){let t,c,n,I;if(t=e!=null&&e[Nl])return t;if(!Oe(e)||l.has(e))return e;if(Array.isArray(e)){Object.isFrozen(e)?e=e.slice(0):l.add(e);for(let i=0,g=e.length;i<g;i++)n=e[i],(c=Pe(n,l))!==n&&(e[i]=c)}else{Object.isFrozen(e)?e=Object.assign({},e):l.add(e);const i=Object.keys(e),g=Object.getOwnPropertyDescriptors(e);for(let C=0,a=i.length;C<a;C++)I=i[C],!g[I].get&&(n=e[I],(c=Pe(n,l))!==n&&(e[I]=c))}return e}function Yl(e,l){let t=e[l];return t||Object.defineProperty(e,l,{value:t=Object.create(null)}),t}function Vl(e,l,t){if(e[l])return e[l];const[c,n]=Ve(t,{equals:!1,internal:!0});return c.$=n,e[l]=c}function CI(e,l){const t=Reflect.getOwnPropertyDescriptor(e,l);return!t||t.get||!t.configurable||l===Je||l===we||(delete t.value,delete t.writable,t.get=()=>e[Je][l]),t}function Qc(e){nt()&&Vl(Yl(e,we),fc)()}function VI(e){return Qc(e),Reflect.ownKeys(e)}const ZI={get(e,l,t){if(l===Nl)return e;if(l===Je)return t;if(l===ct)return Qc(e),t;const c=Yl(e,we),n=c[l];let I=n?n():e[l];if(l===we||l===Ue||l==="__proto__")return I;if(!n){const i=Object.getOwnPropertyDescriptor(e,l);nt()&&(typeof I!="function"||e.hasOwnProperty(l))&&!(i&&i.get)&&(I=Vl(c,l,I)())}return Oe(I)?Tc(I):I},has(e,l){return l===Nl||l===Je||l===ct||l===we||l===Ue||l==="__proto__"?!0:(nt()&&Vl(Yl(e,Ue),l)(),l in e)},set(){return!0},deleteProperty(){return!0},ownKeys:VI,getOwnPropertyDescriptor:CI};function ve(e,l,t,c=!1){if(!c&&e[l]===t)return;const n=e[l],I=e.length;t===void 0?(delete e[l],e[Ue]&&e[Ue][l]&&n!==void 0&&e[Ue][l].$()):(e[l]=t,e[Ue]&&e[Ue][l]&&n===void 0&&e[Ue][l].$());let i=Yl(e,we),g;if((g=Vl(i,l,n))&&g.$(()=>t),Array.isArray(e)&&e.length!==I){for(let C=e.length;C<I;C++)(g=i[C])&&g.$();(g=Vl(i,"length",I))&&g.$(e.length)}(g=i[fc])&&g.$()}function Ec(e,l){const t=Object.keys(l);for(let c=0;c<t.length;c+=1){const n=t[c];ve(e,n,l[n])}}function dI(e,l){if(typeof l=="function"&&(l=l(e)),l=Pe(l),Array.isArray(l)){if(e===l)return;let t=0,c=l.length;for(;t<c;t++){const n=l[t];e[t]!==n&&ve(e,t,n)}ve(e,"length",c)}else Ec(e,l)}function nl(e,l,t=[]){let c,n=e;if(l.length>1){c=l.shift();const i=typeof c,g=Array.isArray(e);if(Array.isArray(c)){for(let C=0;C<c.length;C++)nl(e,[c[C]].concat(l),t);return}else if(g&&i==="function"){for(let C=0;C<e.length;C++)c(e[C],C)&&nl(e,[C].concat(l),t);return}else if(g&&i==="object"){const{from:C=0,to:a=e.length-1,by:d=1}=c;for(let m=C;m<=a;m+=d)nl(e,[m].concat(l),t);return}else if(l.length>1){nl(e[c],l,[c].concat(t));return}n=e[c],t=[c].concat(t)}let I=l[0];typeof I=="function"&&(I=I(n,t),I===n)||c===void 0&&I==null||(I=Pe(I),c===void 0||Oe(n)&&Oe(I)&&!Array.isArray(I)?Ec(n,I):ve(e,c,I))}function oI(...[e,l]){const t=Pe(e||{}),c=Array.isArray(t),n=Tc(t);function I(...i){hl(()=>{c&&i.length===1?dI(t,i[0]):nl(t,i)})}return[n,I]}const ul=new WeakMap,Kc={get(e,l){if(l===Nl)return e;const t=e[l];let c;return Oe(t)?ul.get(t)||(ul.set(t,c=new Proxy(t,Kc)),c):t},set(e,l,t){return ve(e,l,Pe(t)),!0},deleteProperty(e,l){return ve(e,l,void 0,!0),!0}};function aI(e){return l=>{if(Oe(l)){let t;(t=ul.get(l))||ul.set(l,t=new Proxy(l,Kc)),e(t)}return l}}function sI(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Vt={exports:{}};const WI="2.0.0",Hc=256,mI=Number.MAX_SAFE_INTEGER||9007199254740991,XI=16,bI=Hc-6,RI=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var yl={MAX_LENGTH:Hc,MAX_SAFE_COMPONENT_LENGTH:XI,MAX_SAFE_BUILD_LENGTH:bI,MAX_SAFE_INTEGER:mI,RELEASE_TYPES:RI,SEMVER_SPEC_VERSION:WI,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};const AI=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};var fl=AI;(function(e,l){const{MAX_SAFE_COMPONENT_LENGTH:t,MAX_SAFE_BUILD_LENGTH:c,MAX_LENGTH:n}=yl,I=fl;l=e.exports={};const i=l.re=[],g=l.safeRe=[],C=l.src=[],a=l.t={};let d=0;const m="[a-zA-Z0-9-]",N=[["\\s",1],["\\d",n],[m,c]],A=w=>{for(const[s,z]of N)w=w.split(`${s}*`).join(`${s}{0,${z}}`).split(`${s}+`).join(`${s}{1,${z}}`);return w},U=(w,s,z)=>{const Q=A(s),E=d++;I(w,E,s),a[w]=E,C[E]=s,i[E]=new RegExp(s,z?"g":void 0),g[E]=new RegExp(Q,z?"g":void 0)};U("NUMERICIDENTIFIER","0|[1-9]\\d*"),U("NUMERICIDENTIFIERLOOSE","\\d+"),U("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${m}*`),U("MAINVERSION",`(${C[a.NUMERICIDENTIFIER]})\\.(${C[a.NUMERICIDENTIFIER]})\\.(${C[a.NUMERICIDENTIFIER]})`),U("MAINVERSIONLOOSE",`(${C[a.NUMERICIDENTIFIERLOOSE]})\\.(${C[a.NUMERICIDENTIFIERLOOSE]})\\.(${C[a.NUMERICIDENTIFIERLOOSE]})`),U("PRERELEASEIDENTIFIER",`(?:${C[a.NUMERICIDENTIFIER]}|${C[a.NONNUMERICIDENTIFIER]})`),U("PRERELEASEIDENTIFIERLOOSE",`(?:${C[a.NUMERICIDENTIFIERLOOSE]}|${C[a.NONNUMERICIDENTIFIER]})`),U("PRERELEASE",`(?:-(${C[a.PRERELEASEIDENTIFIER]}(?:\\.${C[a.PRERELEASEIDENTIFIER]})*))`),U("PRERELEASELOOSE",`(?:-?(${C[a.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${C[a.PRERELEASEIDENTIFIERLOOSE]})*))`),U("BUILDIDENTIFIER",`${m}+`),U("BUILD",`(?:\\+(${C[a.BUILDIDENTIFIER]}(?:\\.${C[a.BUILDIDENTIFIER]})*))`),U("FULLPLAIN",`v?${C[a.MAINVERSION]}${C[a.PRERELEASE]}?${C[a.BUILD]}?`),U("FULL",`^${C[a.FULLPLAIN]}$`),U("LOOSEPLAIN",`[v=\\s]*${C[a.MAINVERSIONLOOSE]}${C[a.PRERELEASELOOSE]}?${C[a.BUILD]}?`),U("LOOSE",`^${C[a.LOOSEPLAIN]}$`),U("GTLT","((?:<|>)?=?)"),U("XRANGEIDENTIFIERLOOSE",`${C[a.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),U("XRANGEIDENTIFIER",`${C[a.NUMERICIDENTIFIER]}|x|X|\\*`),U("XRANGEPLAIN",`[v=\\s]*(${C[a.XRANGEIDENTIFIER]})(?:\\.(${C[a.XRANGEIDENTIFIER]})(?:\\.(${C[a.XRANGEIDENTIFIER]})(?:${C[a.PRERELEASE]})?${C[a.BUILD]}?)?)?`),U("XRANGEPLAINLOOSE",`[v=\\s]*(${C[a.XRANGEIDENTIFIERLOOSE]})(?:\\.(${C[a.XRANGEIDENTIFIERLOOSE]})(?:\\.(${C[a.XRANGEIDENTIFIERLOOSE]})(?:${C[a.PRERELEASELOOSE]})?${C[a.BUILD]}?)?)?`),U("XRANGE",`^${C[a.GTLT]}\\s*${C[a.XRANGEPLAIN]}$`),U("XRANGELOOSE",`^${C[a.GTLT]}\\s*${C[a.XRANGEPLAINLOOSE]}$`),U("COERCE",`(^|[^\\d])(\\d{1,${t}})(?:\\.(\\d{1,${t}}))?(?:\\.(\\d{1,${t}}))?(?:$|[^\\d])`),U("COERCERTL",C[a.COERCE],!0),U("LONETILDE","(?:~>?)"),U("TILDETRIM",`(\\s*)${C[a.LONETILDE]}\\s+`,!0),l.tildeTrimReplace="$1~",U("TILDE",`^${C[a.LONETILDE]}${C[a.XRANGEPLAIN]}$`),U("TILDELOOSE",`^${C[a.LONETILDE]}${C[a.XRANGEPLAINLOOSE]}$`),U("LONECARET","(?:\\^)"),U("CARETTRIM",`(\\s*)${C[a.LONECARET]}\\s+`,!0),l.caretTrimReplace="$1^",U("CARET",`^${C[a.LONECARET]}${C[a.XRANGEPLAIN]}$`),U("CARETLOOSE",`^${C[a.LONECARET]}${C[a.XRANGEPLAINLOOSE]}$`),U("COMPARATORLOOSE",`^${C[a.GTLT]}\\s*(${C[a.LOOSEPLAIN]})$|^$`),U("COMPARATOR",`^${C[a.GTLT]}\\s*(${C[a.FULLPLAIN]})$|^$`),U("COMPARATORTRIM",`(\\s*)${C[a.GTLT]}\\s*(${C[a.LOOSEPLAIN]}|${C[a.XRANGEPLAIN]})`,!0),l.comparatorTrimReplace="$1$2$3",U("HYPHENRANGE",`^\\s*(${C[a.XRANGEPLAIN]})\\s+-\\s+(${C[a.XRANGEPLAIN]})\\s*$`),U("HYPHENRANGELOOSE",`^\\s*(${C[a.XRANGEPLAINLOOSE]})\\s+-\\s+(${C[a.XRANGEPLAINLOOSE]})\\s*$`),U("STAR","(<|>)?=?\\s*\\*"),U("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),U("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(Vt,Vt.exports);var sl=Vt.exports;const rI=Object.freeze({loose:!0}),GI=Object.freeze({}),hI=e=>e?typeof e!="object"?rI:e:GI;var Wt=hI;const Qt=/^[0-9]+$/,Mc=(e,l)=>{const t=Qt.test(e),c=Qt.test(l);return t&&c&&(e=+e,l=+l),e===l?0:t&&!c?-1:c&&!t?1:e<l?-1:1},JI=(e,l)=>Mc(l,e);var zc={compareIdentifiers:Mc,rcompareIdentifiers:JI};const bl=fl,{MAX_LENGTH:Et,MAX_SAFE_INTEGER:Rl}=yl,{safeRe:Kt,t:Ht}=sl,SI=Wt,{compareIdentifiers:ze}=zc;let FI=class he{constructor(l,t){if(t=SI(t),l instanceof he){if(l.loose===!!t.loose&&l.includePrerelease===!!t.includePrerelease)return l;l=l.version}else if(typeof l!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof l}".`);if(l.length>Et)throw new TypeError(`version is longer than ${Et} characters`);bl("SemVer",l,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const c=l.trim().match(t.loose?Kt[Ht.LOOSE]:Kt[Ht.FULL]);if(!c)throw new TypeError(`Invalid Version: ${l}`);if(this.raw=l,this.major=+c[1],this.minor=+c[2],this.patch=+c[3],this.major>Rl||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Rl||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Rl||this.patch<0)throw new TypeError("Invalid patch version");c[4]?this.prerelease=c[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){const I=+n;if(I>=0&&I<Rl)return I}return n}):this.prerelease=[],this.build=c[5]?c[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(l){if(bl("SemVer.compare",this.version,this.options,l),!(l instanceof he)){if(typeof l=="string"&&l===this.version)return 0;l=new he(l,this.options)}return l.version===this.version?0:this.compareMain(l)||this.comparePre(l)}compareMain(l){return l instanceof he||(l=new he(l,this.options)),ze(this.major,l.major)||ze(this.minor,l.minor)||ze(this.patch,l.patch)}comparePre(l){if(l instanceof he||(l=new he(l,this.options)),this.prerelease.length&&!l.prerelease.length)return-1;if(!this.prerelease.length&&l.prerelease.length)return 1;if(!this.prerelease.length&&!l.prerelease.length)return 0;let t=0;do{const c=this.prerelease[t],n=l.prerelease[t];if(bl("prerelease compare",t,c,n),c===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(c===void 0)return-1;if(c===n)continue;return ze(c,n)}while(++t)}compareBuild(l){l instanceof he||(l=new he(l,this.options));let t=0;do{const c=this.build[t],n=l.build[t];if(bl("prerelease compare",t,c,n),c===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(c===void 0)return-1;if(c===n)continue;return ze(c,n)}while(++t)}inc(l,t,c){switch(l){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,c);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,c);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,c),this.inc("pre",t,c);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,c),this.inc("pre",t,c);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const n=Number(c)?1:0;if(!t&&c===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[n];else{let I=this.prerelease.length;for(;--I>=0;)typeof this.prerelease[I]=="number"&&(this.prerelease[I]++,I=-2);if(I===-1){if(t===this.prerelease.join(".")&&c===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(n)}}if(t){let I=[t,n];c===!1&&(I=[t]),ze(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=I):this.prerelease=I}break}default:throw new Error(`invalid increment argument: ${l}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};var ie=FI;const Mt=ie,pI=(e,l,t=!1)=>{if(e instanceof Mt)return e;try{return new Mt(e,l)}catch(c){if(!t)return null;throw c}};var $e=pI;const UI=$e,NI=(e,l)=>{const t=UI(e,l);return t?t.version:null};var YI=NI;const uI=$e,kI=(e,l)=>{const t=uI(e.trim().replace(/^[=v]+/,""),l);return t?t.version:null};var xI=kI;const zt=ie,BI=(e,l,t,c,n)=>{typeof t=="string"&&(n=c,c=t,t=void 0);try{return new zt(e instanceof zt?e.version:e,t).inc(l,c,n).version}catch{return null}};var yI=BI;const jt=$e,fI=(e,l)=>{const t=jt(e,null,!0),c=jt(l,null,!0),n=t.compare(c);if(n===0)return null;const I=n>0,i=I?t:c,g=I?c:t,C=!!i.prerelease.length;if(!!g.prerelease.length&&!C)return!g.patch&&!g.minor?"major":i.patch?"patch":i.minor?"minor":"major";const d=C?"pre":"";return t.major!==c.major?d+"major":t.minor!==c.minor?d+"minor":t.patch!==c.patch?d+"patch":"prerelease"};var TI=fI;const QI=ie,EI=(e,l)=>new QI(e,l).major;var KI=EI;const HI=ie,MI=(e,l)=>new HI(e,l).minor;var zI=MI;const jI=ie,wI=(e,l)=>new jI(e,l).patch;var LI=wI;const DI=$e,OI=(e,l)=>{const t=DI(e,l);return t&&t.prerelease.length?t.prerelease:null};var PI=OI;const wt=ie,vI=(e,l,t)=>new wt(e,t).compare(new wt(l,t));var Ae=vI;const qI=Ae,$I=(e,l,t)=>qI(l,e,t);var _I=$I;const eg=Ae,lg=(e,l)=>eg(e,l,!0);var tg=lg;const Lt=ie,cg=(e,l,t)=>{const c=new Lt(e,t),n=new Lt(l,t);return c.compare(n)||c.compareBuild(n)};var mt=cg;const ng=mt,Ig=(e,l)=>e.sort((t,c)=>ng(t,c,l));var gg=Ig;const ig=mt,Cg=(e,l)=>e.sort((t,c)=>ig(c,t,l));var Vg=Cg;const Zg=Ae,dg=(e,l,t)=>Zg(e,l,t)>0;var Tl=dg;const og=Ae,ag=(e,l,t)=>og(e,l,t)<0;var Xt=ag;const sg=Ae,Wg=(e,l,t)=>sg(e,l,t)===0;var jc=Wg;const mg=Ae,Xg=(e,l,t)=>mg(e,l,t)!==0;var wc=Xg;const bg=Ae,Rg=(e,l,t)=>bg(e,l,t)>=0;var bt=Rg;const Ag=Ae,rg=(e,l,t)=>Ag(e,l,t)<=0;var Rt=rg;const Gg=jc,hg=wc,Jg=Tl,Sg=bt,Fg=Xt,pg=Rt,Ug=(e,l,t,c)=>{switch(l){case"===":return typeof e=="object"&&(e=e.version),typeof t=="object"&&(t=t.version),e===t;case"!==":return typeof e=="object"&&(e=e.version),typeof t=="object"&&(t=t.version),e!==t;case"":case"=":case"==":return Gg(e,t,c);case"!=":return hg(e,t,c);case">":return Jg(e,t,c);case">=":return Sg(e,t,c);case"<":return Fg(e,t,c);case"<=":return pg(e,t,c);default:throw new TypeError(`Invalid operator: ${l}`)}};var Lc=Ug;const Ng=ie,Yg=$e,{safeRe:Al,t:rl}=sl,ug=(e,l)=>{if(e instanceof Ng)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;l=l||{};let t=null;if(!l.rtl)t=e.match(Al[rl.COERCE]);else{let c;for(;(c=Al[rl.COERCERTL].exec(e))&&(!t||t.index+t[0].length!==e.length);)(!t||c.index+c[0].length!==t.index+t[0].length)&&(t=c),Al[rl.COERCERTL].lastIndex=c.index+c[1].length+c[2].length;Al[rl.COERCERTL].lastIndex=-1}return t===null?null:Yg(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,l)};var kg=ug,Dl,Dt;function xg(){return Dt||(Dt=1,Dl=function(e){e.prototype[Symbol.iterator]=function*(){for(let l=this.head;l;l=l.next)yield l.value}}),Dl}var Bg=L;L.Node=Ee;L.create=L;function L(e){var l=this;if(l instanceof L||(l=new L),l.tail=null,l.head=null,l.length=0,e&&typeof e.forEach=="function")e.forEach(function(n){l.push(n)});else if(arguments.length>0)for(var t=0,c=arguments.length;t<c;t++)l.push(arguments[t]);return l}L.prototype.removeNode=function(e){if(e.list!==this)throw new Error("removing node which does not belong to this list");var l=e.next,t=e.prev;return l&&(l.prev=t),t&&(t.next=l),e===this.head&&(this.head=l),e===this.tail&&(this.tail=t),e.list.length--,e.next=null,e.prev=null,e.list=null,l};L.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var l=this.head;e.list=this,e.next=l,l&&(l.prev=e),this.head=e,this.tail||(this.tail=e),this.length++}};L.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var l=this.tail;e.list=this,e.prev=l,l&&(l.next=e),this.tail=e,this.head||(this.head=e),this.length++}};L.prototype.push=function(){for(var e=0,l=arguments.length;e<l;e++)fg(this,arguments[e]);return this.length};L.prototype.unshift=function(){for(var e=0,l=arguments.length;e<l;e++)Tg(this,arguments[e]);return this.length};L.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e}};L.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e}};L.prototype.forEach=function(e,l){l=l||this;for(var t=this.head,c=0;t!==null;c++)e.call(l,t.value,c,this),t=t.next};L.prototype.forEachReverse=function(e,l){l=l||this;for(var t=this.tail,c=this.length-1;t!==null;c--)e.call(l,t.value,c,this),t=t.prev};L.prototype.get=function(e){for(var l=0,t=this.head;t!==null&&l<e;l++)t=t.next;if(l===e&&t!==null)return t.value};L.prototype.getReverse=function(e){for(var l=0,t=this.tail;t!==null&&l<e;l++)t=t.prev;if(l===e&&t!==null)return t.value};L.prototype.map=function(e,l){l=l||this;for(var t=new L,c=this.head;c!==null;)t.push(e.call(l,c.value,this)),c=c.next;return t};L.prototype.mapReverse=function(e,l){l=l||this;for(var t=new L,c=this.tail;c!==null;)t.push(e.call(l,c.value,this)),c=c.prev;return t};L.prototype.reduce=function(e,l){var t,c=this.head;if(arguments.length>1)t=l;else if(this.head)c=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;c!==null;n++)t=e(t,c.value,n),c=c.next;return t};L.prototype.reduceReverse=function(e,l){var t,c=this.tail;if(arguments.length>1)t=l;else if(this.tail)c=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;c!==null;n--)t=e(t,c.value,n),c=c.prev;return t};L.prototype.toArray=function(){for(var e=new Array(this.length),l=0,t=this.head;t!==null;l++)e[l]=t.value,t=t.next;return e};L.prototype.toArrayReverse=function(){for(var e=new Array(this.length),l=0,t=this.tail;t!==null;l++)e[l]=t.value,t=t.prev;return e};L.prototype.slice=function(e,l){l=l||this.length,l<0&&(l+=this.length),e=e||0,e<0&&(e+=this.length);var t=new L;if(l<e||l<0)return t;e<0&&(e=0),l>this.length&&(l=this.length);for(var c=0,n=this.head;n!==null&&c<e;c++)n=n.next;for(;n!==null&&c<l;c++,n=n.next)t.push(n.value);return t};L.prototype.sliceReverse=function(e,l){l=l||this.length,l<0&&(l+=this.length),e=e||0,e<0&&(e+=this.length);var t=new L;if(l<e||l<0)return t;e<0&&(e=0),l>this.length&&(l=this.length);for(var c=this.length,n=this.tail;n!==null&&c>l;c--)n=n.prev;for(;n!==null&&c>e;c--,n=n.prev)t.push(n.value);return t};L.prototype.splice=function(e,l,...t){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var c=0,n=this.head;n!==null&&c<e;c++)n=n.next;for(var I=[],c=0;n&&c<l;c++)I.push(n.value),n=this.removeNode(n);n===null&&(n=this.tail),n!==this.head&&n!==this.tail&&(n=n.prev);for(var c=0;c<t.length;c++)n=yg(this,n,t[c]);return I};L.prototype.reverse=function(){for(var e=this.head,l=this.tail,t=e;t!==null;t=t.prev){var c=t.prev;t.prev=t.next,t.next=c}return this.head=l,this.tail=e,this};function yg(e,l,t){var c=l===e.head?new Ee(t,null,l,e):new Ee(t,l,l.next,e);return c.next===null&&(e.tail=c),c.prev===null&&(e.head=c),e.length++,c}function fg(e,l){e.tail=new Ee(l,e.tail,null,e),e.head||(e.head=e.tail),e.length++}function Tg(e,l){e.head=new Ee(l,null,e.head,e),e.tail||(e.tail=e.head),e.length++}function Ee(e,l,t,c){if(!(this instanceof Ee))return new Ee(e,l,t,c);this.list=c,this.value=e,l?(l.next=this,this.prev=l):this.prev=null,t?(t.prev=this,this.next=t):this.next=null}try{xg()(L)}catch{}const Qg=Bg,fe=Symbol("max"),Ne=Symbol("length"),je=Symbol("lengthCalculator"),il=Symbol("allowStale"),Te=Symbol("maxAge"),pe=Symbol("dispose"),Ot=Symbol("noDisposeOnSet"),le=Symbol("lruList"),Xe=Symbol("cache"),Dc=Symbol("updateAgeOnGet"),Ol=()=>1;class Eg{constructor(l){if(typeof l=="number"&&(l={max:l}),l||(l={}),l.max&&(typeof l.max!="number"||l.max<0))throw new TypeError("max must be a non-negative number");this[fe]=l.max||1/0;const t=l.length||Ol;if(this[je]=typeof t!="function"?Ol:t,this[il]=l.stale||!1,l.maxAge&&typeof l.maxAge!="number")throw new TypeError("maxAge must be a number");this[Te]=l.maxAge||0,this[pe]=l.dispose,this[Ot]=l.noDisposeOnSet||!1,this[Dc]=l.updateAgeOnGet||!1,this.reset()}set max(l){if(typeof l!="number"||l<0)throw new TypeError("max must be a non-negative number");this[fe]=l||1/0,el(this)}get max(){return this[fe]}set allowStale(l){this[il]=!!l}get allowStale(){return this[il]}set maxAge(l){if(typeof l!="number")throw new TypeError("maxAge must be a non-negative number");this[Te]=l,el(this)}get maxAge(){return this[Te]}set lengthCalculator(l){typeof l!="function"&&(l=Ol),l!==this[je]&&(this[je]=l,this[Ne]=0,this[le].forEach(t=>{t.length=this[je](t.value,t.key),this[Ne]+=t.length})),el(this)}get lengthCalculator(){return this[je]}get length(){return this[Ne]}get itemCount(){return this[le].length}rforEach(l,t){t=t||this;for(let c=this[le].tail;c!==null;){const n=c.prev;Pt(this,l,c,t),c=n}}forEach(l,t){t=t||this;for(let c=this[le].head;c!==null;){const n=c.next;Pt(this,l,c,t),c=n}}keys(){return this[le].toArray().map(l=>l.key)}values(){return this[le].toArray().map(l=>l.value)}reset(){this[pe]&&this[le]&&this[le].length&&this[le].forEach(l=>this[pe](l.key,l.value)),this[Xe]=new Map,this[le]=new Qg,this[Ne]=0}dump(){return this[le].map(l=>kl(this,l)?!1:{k:l.key,v:l.value,e:l.now+(l.maxAge||0)}).toArray().filter(l=>l)}dumpLru(){return this[le]}set(l,t,c){if(c=c||this[Te],c&&typeof c!="number")throw new TypeError("maxAge must be a number");const n=c?Date.now():0,I=this[je](t,l);if(this[Xe].has(l)){if(I>this[fe])return Le(this,this[Xe].get(l)),!1;const C=this[Xe].get(l).value;return this[pe]&&(this[Ot]||this[pe](l,C.value)),C.now=n,C.maxAge=c,C.value=t,this[Ne]+=I-C.length,C.length=I,this.get(l),el(this),!0}const i=new Kg(l,t,I,n,c);return i.length>this[fe]?(this[pe]&&this[pe](l,t),!1):(this[Ne]+=i.length,this[le].unshift(i),this[Xe].set(l,this[le].head),el(this),!0)}has(l){if(!this[Xe].has(l))return!1;const t=this[Xe].get(l).value;return!kl(this,t)}get(l){return Pl(this,l,!0)}peek(l){return Pl(this,l,!1)}pop(){const l=this[le].tail;return l?(Le(this,l),l.value):null}del(l){Le(this,this[Xe].get(l))}load(l){this.reset();const t=Date.now();for(let c=l.length-1;c>=0;c--){const n=l[c],I=n.e||0;if(I===0)this.set(n.k,n.v);else{const i=I-t;i>0&&this.set(n.k,n.v,i)}}}prune(){this[Xe].forEach((l,t)=>Pl(this,t,!1))}}const Pl=(e,l,t)=>{const c=e[Xe].get(l);if(c){const n=c.value;if(kl(e,n)){if(Le(e,c),!e[il])return}else t&&(e[Dc]&&(c.value.now=Date.now()),e[le].unshiftNode(c));return n.value}},kl=(e,l)=>{if(!l||!l.maxAge&&!e[Te])return!1;const t=Date.now()-l.now;return l.maxAge?t>l.maxAge:e[Te]&&t>e[Te]},el=e=>{if(e[Ne]>e[fe])for(let l=e[le].tail;e[Ne]>e[fe]&&l!==null;){const t=l.prev;Le(e,l),l=t}},Le=(e,l)=>{if(l){const t=l.value;e[pe]&&e[pe](t.key,t.value),e[Ne]-=t.length,e[Xe].delete(t.key),e[le].removeNode(l)}};class Kg{constructor(l,t,c,n,I){this.key=l,this.value=t,this.length=c,this.now=n,this.maxAge=I||0}}const Pt=(e,l,t,c)=>{let n=t.value;kl(e,n)&&(Le(e,t),e[il]||(n=void 0)),n&&l.call(c,n.value,n.key,e)};var Hg=Eg,vl,vt;function re(){if(vt)return vl;vt=1;class e{constructor(h,p){if(p=c(p),h instanceof e)return h.loose===!!p.loose&&h.includePrerelease===!!p.includePrerelease?h:new e(h.raw,p);if(h instanceof n)return this.raw=h.value,this.set=[[h]],this.format(),this;if(this.options=p,this.loose=!!p.loose,this.includePrerelease=!!p.includePrerelease,this.raw=h.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(x=>this.parseRange(x.trim())).filter(x=>x.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const x=this.set[0];if(this.set=this.set.filter(B=>!U(B[0])),this.set.length===0)this.set=[x];else if(this.set.length>1){for(const B of this.set)if(B.length===1&&w(B[0])){this.set=[B];break}}}this.format()}format(){return this.range=this.set.map(h=>h.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(h){const x=((this.options.includePrerelease&&N)|(this.options.loose&&A))+":"+h,B=t.get(x);if(B)return B;const u=this.options.loose,f=u?g[C.HYPHENRANGELOOSE]:g[C.HYPHENRANGE];h=h.replace(f,Ge(this.options.includePrerelease)),I("hyphen replace",h),h=h.replace(g[C.COMPARATORTRIM],a),I("comparator trim",h),h=h.replace(g[C.TILDETRIM],d),I("tilde trim",h),h=h.replace(g[C.CARETTRIM],m),I("caret trim",h);let j=h.split(" ").map(S=>z(S,this.options)).join(" ").split(/\s+/).map(S=>G(S,this.options));u&&(j=j.filter(S=>(I("loose invalid filter",S,this.options),!!S.match(g[C.COMPARATORLOOSE])))),I("range list",j);const T=new Map,H=j.map(S=>new n(S,this.options));for(const S of H){if(U(S))return[S];T.set(S.value,S)}T.size>1&&T.has("")&&T.delete("");const q=[...T.values()];return t.set(x,q),q}intersects(h,p){if(!(h instanceof e))throw new TypeError("a Range is required");return this.set.some(x=>s(x,p)&&h.set.some(B=>s(B,p)&&x.every(u=>B.every(f=>u.intersects(f,p)))))}test(h){if(!h)return!1;if(typeof h=="string")try{h=new i(h,this.options)}catch{return!1}for(let p=0;p<this.set.length;p++)if(D(this.set[p],h,this.options))return!0;return!1}}vl=e;const l=Hg,t=new l({max:1e3}),c=Wt,n=Ql(),I=fl,i=ie,{safeRe:g,t:C,comparatorTrimReplace:a,tildeTrimReplace:d,caretTrimReplace:m}=sl,{FLAG_INCLUDE_PRERELEASE:N,FLAG_LOOSE:A}=yl,U=r=>r.value==="<0.0.0-0",w=r=>r.value==="",s=(r,h)=>{let p=!0;const x=r.slice();let B=x.pop();for(;p&&x.length;)p=x.every(u=>B.intersects(u,h)),B=x.pop();return p},z=(r,h)=>(I("comp",r,h),r=K(r,h),I("caret",r),r=E(r,h),I("tildes",r),r=J(r,h),I("xrange",r),r=b(r,h),I("stars",r),r),Q=r=>!r||r.toLowerCase()==="x"||r==="*",E=(r,h)=>r.trim().split(/\s+/).map(p=>v(p,h)).join(" "),v=(r,h)=>{const p=h.loose?g[C.TILDELOOSE]:g[C.TILDE];return r.replace(p,(x,B,u,f,j)=>{I("tilde",r,x,B,u,f,j);let T;return Q(B)?T="":Q(u)?T=`>=${B}.0.0 <${+B+1}.0.0-0`:Q(f)?T=`>=${B}.${u}.0 <${B}.${+u+1}.0-0`:j?(I("replaceTilde pr",j),T=`>=${B}.${u}.${f}-${j} <${B}.${+u+1}.0-0`):T=`>=${B}.${u}.${f} <${B}.${+u+1}.0-0`,I("tilde return",T),T})},K=(r,h)=>r.trim().split(/\s+/).map(p=>Ce(p,h)).join(" "),Ce=(r,h)=>{I("caret",r,h);const p=h.loose?g[C.CARETLOOSE]:g[C.CARET],x=h.includePrerelease?"-0":"";return r.replace(p,(B,u,f,j,T)=>{I("caret",r,B,u,f,j,T);let H;return Q(u)?H="":Q(f)?H=`>=${u}.0.0${x} <${+u+1}.0.0-0`:Q(j)?u==="0"?H=`>=${u}.${f}.0${x} <${u}.${+f+1}.0-0`:H=`>=${u}.${f}.0${x} <${+u+1}.0.0-0`:T?(I("replaceCaret pr",T),u==="0"?f==="0"?H=`>=${u}.${f}.${j}-${T} <${u}.${f}.${+j+1}-0`:H=`>=${u}.${f}.${j}-${T} <${u}.${+f+1}.0-0`:H=`>=${u}.${f}.${j}-${T} <${+u+1}.0.0-0`):(I("no pr"),u==="0"?f==="0"?H=`>=${u}.${f}.${j}${x} <${u}.${f}.${+j+1}-0`:H=`>=${u}.${f}.${j}${x} <${u}.${+f+1}.0-0`:H=`>=${u}.${f}.${j} <${+u+1}.0.0-0`),I("caret return",H),H})},J=(r,h)=>(I("replaceXRanges",r,h),r.split(/\s+/).map(p=>y(p,h)).join(" ")),y=(r,h)=>{r=r.trim();const p=h.loose?g[C.XRANGELOOSE]:g[C.XRANGE];return r.replace(p,(x,B,u,f,j,T)=>{I("xRange",r,x,B,u,f,j,T);const H=Q(u),q=H||Q(f),S=q||Q(j),se=S;return B==="="&&se&&(B=""),T=h.includePrerelease?"-0":"",H?B===">"||B==="<"?x="<0.0.0-0":x="*":B&&se?(q&&(f=0),j=0,B===">"?(B=">=",q?(u=+u+1,f=0,j=0):(f=+f+1,j=0)):B==="<="&&(B="<",q?u=+u+1:f=+f+1),B==="<"&&(T="-0"),x=`${B+u}.${f}.${j}${T}`):q?x=`>=${u}.0.0${T} <${+u+1}.0.0-0`:S&&(x=`>=${u}.${f}.0${T} <${u}.${+f+1}.0-0`),I("xRange return",x),x})},b=(r,h)=>(I("replaceStars",r,h),r.trim().replace(g[C.STAR],"")),G=(r,h)=>(I("replaceGTE0",r,h),r.trim().replace(g[h.includePrerelease?C.GTE0PRE:C.GTE0],"")),Ge=r=>(h,p,x,B,u,f,j,T,H,q,S,se,ne)=>(Q(x)?p="":Q(B)?p=`>=${x}.0.0${r?"-0":""}`:Q(u)?p=`>=${x}.${B}.0${r?"-0":""}`:f?p=`>=${p}`:p=`>=${p}${r?"-0":""}`,Q(H)?T="":Q(q)?T=`<${+H+1}.0.0-0`:Q(S)?T=`<${H}.${+q+1}.0-0`:se?T=`<=${H}.${q}.${S}-${se}`:r?T=`<${H}.${q}.${+S+1}-0`:T=`<=${T}`,`${p} ${T}`.trim()),D=(r,h,p)=>{for(let x=0;x<r.length;x++)if(!r[x].test(h))return!1;if(h.prerelease.length&&!p.includePrerelease){for(let x=0;x<r.length;x++)if(I(r[x].semver),r[x].semver!==n.ANY&&r[x].semver.prerelease.length>0){const B=r[x].semver;if(B.major===h.major&&B.minor===h.minor&&B.patch===h.patch)return!0}return!1}return!0};return vl}var ql,qt;function Ql(){if(qt)return ql;qt=1;const e=Symbol("SemVer ANY");class l{static get ANY(){return e}constructor(d,m){if(m=t(m),d instanceof l){if(d.loose===!!m.loose)return d;d=d.value}d=d.trim().split(/\s+/).join(" "),i("comparator",d,m),this.options=m,this.loose=!!m.loose,this.parse(d),this.semver===e?this.value="":this.value=this.operator+this.semver.version,i("comp",this)}parse(d){const m=this.options.loose?c[n.COMPARATORLOOSE]:c[n.COMPARATOR],N=d.match(m);if(!N)throw new TypeError(`Invalid comparator: ${d}`);this.operator=N[1]!==void 0?N[1]:"",this.operator==="="&&(this.operator=""),N[2]?this.semver=new g(N[2],this.options.loose):this.semver=e}toString(){return this.value}test(d){if(i("Comparator.test",d,this.options.loose),this.semver===e||d===e)return!0;if(typeof d=="string")try{d=new g(d,this.options)}catch{return!1}return I(d,this.operator,this.semver,this.options)}intersects(d,m){if(!(d instanceof l))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new C(d.value,m).test(this.value):d.operator===""?d.value===""?!0:new C(this.value,m).test(d.semver):(m=t(m),m.includePrerelease&&(this.value==="<0.0.0-0"||d.value==="<0.0.0-0")||!m.includePrerelease&&(this.value.startsWith("<0.0.0")||d.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&d.operator.startsWith(">")||this.operator.startsWith("<")&&d.operator.startsWith("<")||this.semver.version===d.semver.version&&this.operator.includes("=")&&d.operator.includes("=")||I(this.semver,"<",d.semver,m)&&this.operator.startsWith(">")&&d.operator.startsWith("<")||I(this.semver,">",d.semver,m)&&this.operator.startsWith("<")&&d.operator.startsWith(">")))}}ql=l;const t=Wt,{safeRe:c,t:n}=sl,I=Lc,i=fl,g=ie,C=re();return ql}const Mg=re(),zg=(e,l,t)=>{try{l=new Mg(l,t)}catch{return!1}return l.test(e)};var El=zg;const jg=re(),wg=(e,l)=>new jg(e,l).set.map(t=>t.map(c=>c.value).join(" ").trim().split(" "));var Lg=wg;const Dg=ie,Og=re(),Pg=(e,l,t)=>{let c=null,n=null,I=null;try{I=new Og(l,t)}catch{return null}return e.forEach(i=>{I.test(i)&&(!c||n.compare(i)===-1)&&(c=i,n=new Dg(c,t))}),c};var vg=Pg;const qg=ie,$g=re(),_g=(e,l,t)=>{let c=null,n=null,I=null;try{I=new $g(l,t)}catch{return null}return e.forEach(i=>{I.test(i)&&(!c||n.compare(i)===1)&&(c=i,n=new qg(c,t))}),c};var ei=_g;const $l=ie,li=re(),$t=Tl,ti=(e,l)=>{e=new li(e,l);let t=new $l("0.0.0");if(e.test(t)||(t=new $l("0.0.0-0"),e.test(t)))return t;t=null;for(let c=0;c<e.set.length;++c){const n=e.set[c];let I=null;n.forEach(i=>{const g=new $l(i.semver.version);switch(i.operator){case">":g.prerelease.length===0?g.patch++:g.prerelease.push(0),g.raw=g.format();case"":case">=":(!I||$t(g,I))&&(I=g);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${i.operator}`)}}),I&&(!t||$t(t,I))&&(t=I)}return t&&e.test(t)?t:null};var ci=ti;const ni=re(),Ii=(e,l)=>{try{return new ni(e,l).range||"*"}catch{return null}};var gi=Ii;const ii=ie,Oc=Ql(),{ANY:Ci}=Oc,Vi=re(),Zi=El,_t=Tl,ec=Xt,di=Rt,oi=bt,ai=(e,l,t,c)=>{e=new ii(e,c),l=new Vi(l,c);let n,I,i,g,C;switch(t){case">":n=_t,I=di,i=ec,g=">",C=">=";break;case"<":n=ec,I=oi,i=_t,g="<",C="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Zi(e,l,c))return!1;for(let a=0;a<l.set.length;++a){const d=l.set[a];let m=null,N=null;if(d.forEach(A=>{A.semver===Ci&&(A=new Oc(">=0.0.0")),m=m||A,N=N||A,n(A.semver,m.semver,c)?m=A:i(A.semver,N.semver,c)&&(N=A)}),m.operator===g||m.operator===C||(!N.operator||N.operator===g)&&I(e,N.semver))return!1;if(N.operator===C&&i(e,N.semver))return!1}return!0};var At=ai;const si=At,Wi=(e,l,t)=>si(e,l,">",t);var mi=Wi;const Xi=At,bi=(e,l,t)=>Xi(e,l,"<",t);var Ri=bi;const lc=re(),Ai=(e,l,t)=>(e=new lc(e,t),l=new lc(l,t),e.intersects(l,t));var ri=Ai;const Gi=El,hi=Ae;var Ji=(e,l,t)=>{const c=[];let n=null,I=null;const i=e.sort((d,m)=>hi(d,m,t));for(const d of i)Gi(d,l,t)?(I=d,n||(n=d)):(I&&c.push([n,I]),I=null,n=null);n&&c.push([n,null]);const g=[];for(const[d,m]of c)d===m?g.push(d):!m&&d===i[0]?g.push("*"):m?d===i[0]?g.push(`<=${m}`):g.push(`${d} - ${m}`):g.push(`>=${d}`);const C=g.join(" || "),a=typeof l.raw=="string"?l.raw:String(l);return C.length<a.length?C:l};const tc=re(),rt=Ql(),{ANY:_l}=rt,ll=El,Gt=Ae,Si=(e,l,t={})=>{if(e===l)return!0;e=new tc(e,t),l=new tc(l,t);let c=!1;e:for(const n of e.set){for(const I of l.set){const i=pi(n,I,t);if(c=c||i!==null,i)continue e}if(c)return!1}return!0},Fi=[new rt(">=0.0.0-0")],cc=[new rt(">=0.0.0")],pi=(e,l,t)=>{if(e===l)return!0;if(e.length===1&&e[0].semver===_l){if(l.length===1&&l[0].semver===_l)return!0;t.includePrerelease?e=Fi:e=cc}if(l.length===1&&l[0].semver===_l){if(t.includePrerelease)return!0;l=cc}const c=new Set;let n,I;for(const A of e)A.operator===">"||A.operator===">="?n=nc(n,A,t):A.operator==="<"||A.operator==="<="?I=Ic(I,A,t):c.add(A.semver);if(c.size>1)return null;let i;if(n&&I){if(i=Gt(n.semver,I.semver,t),i>0)return null;if(i===0&&(n.operator!==">="||I.operator!=="<="))return null}for(const A of c){if(n&&!ll(A,String(n),t)||I&&!ll(A,String(I),t))return null;for(const U of l)if(!ll(A,String(U),t))return!1;return!0}let g,C,a,d,m=I&&!t.includePrerelease&&I.semver.prerelease.length?I.semver:!1,N=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;m&&m.prerelease.length===1&&I.operator==="<"&&m.prerelease[0]===0&&(m=!1);for(const A of l){if(d=d||A.operator===">"||A.operator===">=",a=a||A.operator==="<"||A.operator==="<=",n){if(N&&A.semver.prerelease&&A.semver.prerelease.length&&A.semver.major===N.major&&A.semver.minor===N.minor&&A.semver.patch===N.patch&&(N=!1),A.operator===">"||A.operator===">="){if(g=nc(n,A,t),g===A&&g!==n)return!1}else if(n.operator===">="&&!ll(n.semver,String(A),t))return!1}if(I){if(m&&A.semver.prerelease&&A.semver.prerelease.length&&A.semver.major===m.major&&A.semver.minor===m.minor&&A.semver.patch===m.patch&&(m=!1),A.operator==="<"||A.operator==="<="){if(C=Ic(I,A,t),C===A&&C!==I)return!1}else if(I.operator==="<="&&!ll(I.semver,String(A),t))return!1}if(!A.operator&&(I||n)&&i!==0)return!1}return!(n&&a&&!I&&i!==0||I&&d&&!n&&i!==0||N||m)},nc=(e,l,t)=>{if(!e)return l;const c=Gt(e.semver,l.semver,t);return c>0?e:c<0||l.operator===">"&&e.operator===">="?l:e},Ic=(e,l,t)=>{if(!e)return l;const c=Gt(e.semver,l.semver,t);return c<0?e:c>0||l.operator==="<"&&e.operator==="<="?l:e};var Ui=Si;const et=sl,gc=yl,Ni=ie,ic=zc,Yi=$e,ui=YI,ki=xI,xi=yI,Bi=TI,yi=KI,fi=zI,Ti=LI,Qi=PI,Ei=Ae,Ki=_I,Hi=tg,Mi=mt,zi=gg,ji=Vg,wi=Tl,Li=Xt,Di=jc,Oi=wc,Pi=bt,vi=Rt,qi=Lc,$i=kg,_i=Ql(),eC=re(),lC=El,tC=Lg,cC=vg,nC=ei,IC=ci,gC=gi,iC=At,CC=mi,VC=Ri,ZC=ri,dC=Ji,oC=Ui;var aC={parse:Yi,valid:ui,clean:ki,inc:xi,diff:Bi,major:yi,minor:fi,patch:Ti,prerelease:Qi,compare:Ei,rcompare:Ki,compareLoose:Hi,compareBuild:Mi,sort:zi,rsort:ji,gt:wi,lt:Li,eq:Di,neq:Oi,gte:Pi,lte:vi,cmp:qi,coerce:$i,Comparator:_i,Range:eC,satisfies:lC,toComparators:tC,maxSatisfying:cC,minSatisfying:nC,minVersion:IC,validRange:gC,outside:iC,gtr:CC,ltr:VC,intersects:ZC,simplifyRange:dC,subset:oC,SemVer:Ni,re:et.re,src:et.src,tokens:et.t,SEMVER_SPEC_VERSION:gc.SEMVER_SPEC_VERSION,RELEASE_TYPES:gc.RELEASE_TYPES,compareIdentifiers:ic.compareIdentifiers,rcompareIdentifiers:ic.rcompareIdentifiers},sC=aC;const WC=sI(sC);async function mC(e,l){e=e??"pandoc";let t=await lt(`${e} --version`,{env:l});t=t.substring(0,t.indexOf(`
|
|
|
`)){b=b.trim();const G=b.indexOf("=");if(G>0){const Ge=b.substring(0,G);let D=b.substring(G+1).trim();D.startsWith('"')&&D.endsWith('"')&&(D=D.substring(1,D.length-1)),y[Ge]=D}}C("env",xe(c.env??{},y))}catch(y){alert(y)}},d=te(()=>c.items.find(J=>J.name===c.lastEditName)??c.items.first()),m=J=>{const y=d();return J===void 0||J===y.type?y:void 0},N=te(()=>ae(c.customDefaultExportDirectory)),A=J=>{const y=c.items.findIndex(b=>b.name===c.lastEditName);C("items",y===-1?0:y,aI(b=>(J(b),b)))},U=te(()=>{const J=I();return J?t.settingTab.version(J):t.settingTab.pandocNotFound}),[w,s]=Ve(),z=()=>{const[J,y]=Ve(Object.keys(Gl)[0]),[b,G]=Ve(),Ge=()=>{const D=JSON.parse(JSON.stringify(Gl[J()]));D.name=b(),hl(()=>{C("items",r=>[...r,D]),C("lastEditName",D.name)}),s(void 0)};return X(it,{app,get title(){return t.settingTab.new},onClose:()=>s(void 0),get children(){return[X(M,{get name(){return t.settingTab.template},get children(){return X(gl,{get options(){return Object.entries(Gl).map(([D,r])=>({name:r.name,value:D}))},get selected(){return b()??J()},onChange:D=>y(D)})}}),X(M,{get name(){return t.settingTab.name},get children(){return X(de,{get value(){return b()??""},onChange:D=>G(D)})}}),(()=>{const D=Cc();return Ze(D,X(Ct,{cta:!0,onClick:Ge,get children(){return t.settingTab.save}})),D})()]}})},Q=()=>{const[J,y]=Ve(m().name),b=()=>{hl(()=>{A(G=>G.name=J()),C("lastEditName",J())}),s(void 0)};return X(it,{app,get title(){return t.settingTab.rename},onClose:()=>s(void 0),get children(){return[X(M,{get name(){return t.settingTab.name},get children(){return X(de,{get value(){return J()??""},onChange:G=>y(G)})}}),(()=>{const G=Cc();return Ze(G,X(Ct,{cta:!0,onClick:b,get children(){return t.settingTab.add}})),G})()]}})},E=()=>{const J=()=>m("pandoc"),y=b=>{A(G=>G.type==="pandoc"?b(G):void 0)};return[X(M,{get name(){return t.settingTab.arguments},get children(){return X(de,{style:"width: 100%",get value(){return J().arguments??""},onChange:b=>y(G=>G.arguments=b)})}}),X(M,{get name(){return t.settingTab.extraArguments},get children(){return X(de,{style:"width: 100%",get value(){return J().customArguments??""},get title(){return J().customArguments},onChange:b=>y(G=>G.customArguments=b)})}}),X(M,{get name(){return t.settingTab.afterExport},heading:!0}),X(M,{get name(){return t.settingTab.openExportedFileLocation},get children(){return X(me,{get checked(){return J().openExportedFileLocation??!1},onChange:b=>y(G=>G.openExportedFileLocation=b)})}}),X(M,{get name(){return t.settingTab.openExportedFile},get children(){return X(me,{get checked(){return J().openExportedFile??!1},onChange:b=>y(G=>G.openExportedFile=b)})}}),X(M,{get name(){return t.settingTab.runCommand},get children(){return X(me,{get checked(){return J().runCommand},onChange:b=>y(G=>G.runCommand=b)})}}),X(Jl,{get when(){return J().runCommand},get children(){return X(M,{get children(){return X(de,{style:"width: 100%",get value(){return J().command??""},onChange:b=>y(G=>G.command=b)})}})}})]},v=()=>{const J=()=>m("custom"),y=b=>{A(G=>G.type==="custom"?b(G):void 0)};return[X(M,{get name(){return t.settingTab.command},get children(){return X(de,{style:"width: 100%",get value(){return J().command},onChange:b=>y(G=>G.command=b)})}}),X(M,{get name(){return t.settingTab.targetFileExtensions},get children(){return X(de,{get value(){return J().targetFileExtensions??""},onChange:b=>y(G=>G.targetFileExtensions=b)})}}),X(M,{get name(){return t.settingTab.afterExport},heading:!0}),X(M,{get name(){return t.settingTab.showCommandOutput},get children(){return X(me,{get checked(){return J().showCommandOutput??!1},onChange:b=>y(G=>G.showCommandOutput=b)})}}),X(M,{get name(){return t.settingTab.openExportedFileLocation},get children(){return X(me,{get checked(){return J().openExportedFileLocation??!1},onChange:b=>y(G=>G.openExportedFileLocation=b)})}}),X(M,{get name(){return t.settingTab.openExportedFile},get children(){return X(me,{get checked(){return J().openExportedFile??!1},onChange:b=>y(G=>G.openExportedFile=b)})}})]},K=async()=>{await l.resetSettings(),C(l.settings)},Ce=async()=>{const J=await Qe.remote.dialog.showOpenDialog({defaultPath:N()??Qe.remote.app.getPath("documents"),properties:["createDirectory","openDirectory"]});!J.canceled&&J.filePaths.length>0&&C("customDefaultExportDirectory",y=>xe(y,J.filePaths[0]))};return Ye(async()=>{try{const J=Wc(ae(c.env)??{});i((await mC(ae(c.pandocPath),J)).version)}catch{i(void 0)}}),[X(M,{get name(){return t.settingTab.general},heading:!0,get children(){return X(ye,{icon:"reset",onClick:K})}}),X(M,{get name(){return t.settingTab.pandocPath},get description(){return U()},get children(){return X(de,{get placeholder(){return t.settingTab.pandocPathPlaceholder},get value(){return ae(c.pandocPath)??""},onChange:J=>C("pandocPath",y=>xe(y,J))})}}),X(M,{get name(){return t.settingTab.defaultFolderForExportedFile},get children(){return X(gl,{get options(){return[{name:t.settingTab.auto,value:"Auto"},{name:t.settingTab.sameFolderWithCurrentFile,value:"Same"},{name:t.settingTab.customLocation,value:"Custom"}]},get selected(){return c.defaultExportDirectoryMode},onChange:J=>C("defaultExportDirectoryMode",J)})}}),X(Jl,{get when(){return c.defaultExportDirectoryMode==="Custom"},get children(){return X(M,{get children(){return[X(de,{get value(){return N()??""},get title(){return N()}}),X(ye,{icon:"folder",onClick:Ce})]}})}}),X(M,{get name(){return t.settingTab.openExportedFileLocation},get children(){return X(me,{get checked(){return c.openExportedFileLocation},onChange:J=>C("openExportedFileLocation",J)})}}),X(M,{get name(){return t.settingTab.openExportedFile},get children(){return X(me,{get checked(){return c.openExportedFile},onChange:J=>C("openExportedFile",J)})}}),X(M,{get name(){return t.settingTab.ShowExportProgressBar},get children(){return X(me,{get checked(){return c.showExportProgressBar},onChange:J=>C("showExportProgressBar",J)})}}),X(M,{get name(){return t.settingTab.editCommandTemplate},heading:!0}),X(M,{get name(){return t.settingTab.chooseCommandTemplate},get children(){return[X(gl,{get options(){return c.items.map(J=>({name:J.name,value:J.name}))},get selected(){return c.lastEditName},onChange:J=>C("lastEditName",J)}),X(ye,{icon:"plus",get tooltip(){return t.settingTab.add},onClick:()=>s(()=>z)}),X(ye,{icon:"pencil",get tooltip(){return t.settingTab.rename},onClick:()=>s(()=>Q)}),X(ye,{icon:"trash",get tooltip(){return t.settingTab.remove},onClick:()=>hl(()=>{var J;C("items",y=>y.filter(b=>{var G;return b.name!==((G=m())==null?void 0:G.name)})),C("lastEditName",(J=c.items.first())==null?void 0:J.name)})})]}}),X(bn,{get children(){return[X(Nt,{get when(){return m("pandoc")},get children(){return X(E,{})}}),X(Nt,{get when(){return m("custom")},get children(){return X(v,{})}})]}}),X(M,{get name(){return t.settingTab.advanced},heading:!0}),X(M,{get name(){return t.settingTab.environmentVariables},get description(){return t.settingTab.environmentVariablesDesc},get children(){return X(lI,{style:"width: 100%;height: 5em",get value(){return g()},onChange:a})}}),X(Jl,{get when(){return w()},get children(){return X(Tn,{get component(){return w()},ref:J=>document.body.appendChild(J)})}})]};var Zl;class bC extends be.PluginSettingTab{constructor(t){super(t.app,t);St(this,Zl,void 0);this.plugin=t,this.name=this.plugin.lang.settingTab.title}get lang(){return this.plugin.lang}display(){Ft(this,Zl,Il(t=>{const c=this;return Ze(this.containerEl,X(XC,{get plugin(){return c.plugin},get lang(){return c.lang}})),dl(()=>{this.containerEl.empty()}),t}))}hide(){Jt(this,Zl).call(this)}}Zl=new WeakMap;const RC=Uint8Array.from(atob("LS0gY3JlZGl0cyB0byB0YXJsZWIg4oCUIFN0YWNrRXhjaGFuZ2U6IGh0dHBzOi8vdGV4LnN0YWNrZXhjaGFuZ2UuY29tL3F1ZXN0aW9ucy8zOTIwNzAvcGFuZG9jLW1hcmtkb3duLWNyZWF0ZS1zZWxmLWNvbnRhaW5lZC1iaWItZmlsZS1mcm9tLWNpdGVkLXJlZmVyZW5jZXMKZnVuY3Rpb24gUGFuZG9jKGQpCiAgZC5tZXRhLnJlZmVyZW5jZXMgPSBwYW5kb2MudXRpbHMucmVmZXJlbmNlcyhkKQogIGQubWV0YS5iaWJsaW9ncmFwaHkgPSBuaWwKICByZXR1cm4gZAplbmQK"),e=>e.charCodeAt(0)),AC=Object.freeze(Object.defineProperty({__proto__:null,default:RC},Symbol.toStringTag,{value:"Module"})),rC=Uint8Array.from(atob("cGFja2FnZS5wYXRoPXBhY2thZ2UucGF0aC4uIjsiIC4uZGVidWcuZ2V0aW5mbygxKS5zb3VyY2U6bWF0Y2goIiguKlsvXFxdKSIpOnN1YigyKSAuLiAiPy5sdWEiCgpNb2RlPSdodWdvJwoKcmVxdWlyZSgnbWFya2Rvd24nKQ=="),e=>e.charCodeAt(0)),GC=Object.freeze(Object.defineProperty({__proto__:null,default:rC},Symbol.toStringTag,{value:"Module"})),hC=Uint8Array.from(atob("cGFja2FnZS5wYXRoPWRlYnVnLmdldGluZm8oMSkuc291cmNlOmdzdWIoJ0AnLCcnKTpzdWIoMCk6bWF0Y2goJyguKlsvXFxdKScpOnN1YigwKSAuLiAnPy5sdWEnIC4uICc7JyAuLiBwYWNrYWdlLnBhdGgKCnJlcXVpcmUoInBvbHlmaWxsIikKbG9jYWwgdXJsID0gcmVxdWlyZSgndXJsJykKCmxvY2FsIHBhbmRvYz1wYW5kb2MKbG9jYWwgUEFORE9DX1NUQVRFPVBBTkRPQ19TVEFURQoKUEFORE9DX1ZFUlNJT046bXVzdF9iZV9hdF9sZWFzdCAnMi4xNycKCmxvY2FsIFBBVEggPSBwYW5kb2MucGF0aApsb2NhbCBkb2NfZGlyID0gbmlsCmxvY2FsIG1lZGlhX2RpciA9IG5pbAoKaWYgTW9kZSA9PSBuaWwgdGhlbgogIE1vZGUgPSAnZGVmYXVsdCcKZW5kCgotLSBwcmludCgiTW9kZTogIi4uTW9kZSkKCmlmIFBBTkRPQ19TVEFURS5vdXRwdXRfZmlsZSB0aGVuCiAgbG9jYWwgb3V0cHV0X2ZpbGUgPSBQQU5ET0NfU1RBVEUub3V0cHV0X2ZpbGUKICBkb2NfZGlyID0gUEFUSC5kaXJlY3Rvcnkob3V0cHV0X2ZpbGUpCiAgaWYgUEFORE9DX1dSSVRFUl9PUFRJT05TLnZhcmlhYmxlc1sibWVkaWFfZGlyIl0gdGhlbgogICAgbWVkaWFfZGlyID0gUEFORE9DX1dSSVRFUl9PUFRJT05TLnZhcmlhYmxlc1sibWVkaWFfZGlyIl0KICBlbHNlCiAgICBtZWRpYV9kaXIgPSBQQVRILnNwbGl0X2V4dGVuc2lvbihvdXRwdXRfZmlsZSkKICAgIGlmIE1vZGUgfj0gJ2h1Z28nIHRoZW4KICAgICAgbWVkaWFfZGlyID0gbWVkaWFfZGlyIC4uICctbWVkaWEnCiAgICBlbmQKICBlbmQKZW5kCmFzc2VydChkb2NfZGlyLCAiZG9jX2RpciBpcyBuaWwiKQphc3NlcnQobWVkaWFfZGlyLCAibWVkaWFfZGlyIGlzIG5pbCIpCgoKbG9jYWwgZnVuY3Rpb24gZ2V0X2Fic29sdXRlX3BhdGgoZmlsZV9wYXRoKQogIGlmIFBBVEguaXNfYWJzb2x1dGUoZmlsZV9wYXRoKSB0aGVuCiAgICByZXR1cm4gZmlsZV9wYXRoCiAgZW5kCiAgZm9yIF8sIGRpciBpbiBwYWlycyhQQU5ET0NfU1RBVEUucmVzb3VyY2VfcGF0aCkgZG8KICAgIGxvY2FsIGZ1bGxfcGF0aCA9IFBBVEguam9pbih7ZGlyLCBmaWxlX3BhdGh9KQogICAgaWYgb3MuZXhpc3RzKGZ1bGxfcGF0aCkgdGhlbgogICAgICByZXR1cm4gZnVsbF9wYXRoCiAgICBlbmQKICBlbmQKICBmb3IgXywgZmlsZSBpbiBwYWlycyhQQU5ET0NfU1RBVEUuaW5wdXRfZmlsZXMpIGRvCiAgICBpZiBub3QgUEFUSC5pc19hYnNvbHV0ZShmaWxlKSB0aGVuCiAgICAgIGZpbGUgPSBQQVRILmpvaW4oe3BhbmRvYy5zeXN0ZW0uZ2V0X3dvcmtpbmdfZGlyZWN0b3J5KCksIGZpbGVfcGF0aH0pCiAgICBlbmQKICAgIGxvY2FsIGRpciA9IFBBVEguZGlyZWN0b3J5KGZpbGUpCiAgICBsb2NhbCBmdWxsX3BhdGggPSBQQVRILmpvaW4oe2RpciwgZmlsZV9wYXRofSkKICAgIGlmIG9zLmV4aXN0cyhmdWxsX3BhdGgpIHRoZW4KICAgICAgcmV0dXJuIGZ1bGxfcGF0aAogICAgZW5kCiAgZW5kCiAgcmV0dXJuIG5pbAplbmQKCmxvY2FsIGZ1bmN0aW9uIGdldF9vdXRwdXRfZmlsZShmaWxlX3BhdGgpCiAgaWYgbWVkaWFfZGlyIHRoZW4KICAgIGxvY2FsIG5ld19maWxlX25hbWUgPSBwYW5kb2MudXRpbHMuc2hhMShmaWxlX3BhdGgpCiAgICBsb2NhbCBfLCBuZXdfZmlsZV9leHQgPSBQQVRILnNwbGl0X2V4dGVuc2lvbihmaWxlX3BhdGgpCiAgICBmaWxlX3BhdGggPSBuZXdfZmlsZV9uYW1lIC4uIG5ld19maWxlX2V4dAogICAgbG9jYWwgZnVsbF9wYXRoID0gUEFUSC5qb2luKHttZWRpYV9kaXIsIGZpbGVfcGF0aH0pCiAgICByZXR1cm4gZnVsbF9wYXRoCiAgZWxzZQogICAgcmV0dXJuIG5pbAogIGVuZAplbmQKCmxvY2FsIGZ1bmN0aW9uIGV4dHJhY3RfbWVkaWEoZmlsZV9wYXRoKQogIG9zLm1rZGlyKG1lZGlhX2RpcikKICBmaWxlX3BhdGggPSB1cmwuZGVjb2RlKGZpbGVfcGF0aCkKICBsb2NhbCBhYnNfcGF0aCA9IGdldF9hYnNvbHV0ZV9wYXRoKGZpbGVfcGF0aCkKICBsb2NhbCBmaWxlID0gZ2V0X291dHB1dF9maWxlKGZpbGVfcGF0aCkKICBpZiBhYnNfcGF0aCBhbmQgZmlsZSB0aGVuCiAgICBpZiBub3Qgb3MuZXhpc3RzKGZpbGUpIHRoZW4KICAgICAgb3MuY29weShhYnNfcGF0aCwgZmlsZSkKICAgIGVuZAogICAgbG9jYWwgcmVsX3BhdGggPSBQQVRILm1ha2VfcmVsYXRpdmUoZmlsZSwgZG9jX2RpciwgZmFsc2UpCiAgICBsb2NhbCBwYXJ0cyA9IFBBVEguc3BsaXQocmVsX3BhdGgpCiAgICBmb3IgaSx2IGluIGlwYWlycyhwYXJ0cykgZG8KICAgICAgcGFydHNbaV0gPSB1cmwuZW5jb2RlKHYpCiAgICBlbmQKICAgIGxvY2FsIGVuY29kZWRfcmVsX3BhdGggPSB0YWJsZS5jb25jYXQocGFydHMsICIvIikKICAgIGlmIE1vZGUgPT0gJ2h1Z28nIHRoZW4KICAgICAgZW5jb2RlZF9yZWxfcGF0aCA9ICcuLi8nIC4uIGVuY29kZWRfcmVsX3BhdGgKICAgIGVuZAogICAgcmV0dXJuIGVuY29kZWRfcmVsX3BhdGgKICBlbmQKZW5kCgpsb2NhbCBmdW5jdGlvbiByYXcocykKICByZXR1cm4gcGFuZG9jLlJhd0lubGluZSgnbWFya2Rvd24nLCBzKQplbmQKCmZ1bmN0aW9uIEltYWdlKGVsKQogIGxvY2FsIHNyYyA9IGV4dHJhY3RfbWVkaWEoZWwuc3JjKQogIGlmIHNyYyB0aGVuCiAgICBlbC5zcmMgPSBzcmMKICBlbmQKICByZXR1cm4gZWwKZW5kCgpmdW5jdGlvbiBTcGFjZSgpCiAgcmV0dXJuIHJhdygnICcpCmVuZAoKZnVuY3Rpb24gU29mdEJyZWFrKCkKICByZXR1cm4gcmF3KCdcbicpCmVuZAoKZnVuY3Rpb24gUmF3SW5saW5lKGVsKQogIGlmIGVsLmZvcm1hdCA9PSAiaHRtbCIgdGhlbgogICAgZWwuZm9ybWF0ID0gJ21hcmtkb3duJwogICAgZWwudGV4dCA9IHN0cmluZy5nc3ViKGVsLnRleHQsICc8aW1nW14+XSs+JywgZnVuY3Rpb24oaW1nKQogICAgICByZXR1cm4gc3RyaW5nLmdzdWIoaW1nLCAnc3JjPSIoW14iXSspIicsIGZ1bmN0aW9uKHVybCkKICAgICAgICBpZiBzdHJpbmcuZmluZCh1cmwsICdeW0hoXVtUdF1bVHRdW1BwXVtTc10/Oi8vJykgPT0gbmlsICB0aGVuCiAgICAgICAgICBsb2NhbCBleHRyYWN0X21lZGlhX3VybCA9IGV4dHJhY3RfbWVkaWEodXJsKQogICAgICAgICAgaWYgZXh0cmFjdF9tZWRpYV91cmwgdGhlbgogICAgICAgICAgICByZXR1cm4gJ3NyYz0iJyAuLiBleHRyYWN0X21lZGlhX3VybCAuLiAnIicKICAgICAgICAgIGVuZAogICAgICAgICAgcmV0dXJuICcxMjMnCiAgICAgICAgZW5kCiAgICAgICAgcmV0dXJuICdzcmM9IicgLi4gdXJsIC4uICciJwogICAgICBlbmQpCiAgICBlbmQpCiAgZW5kCiAgcmV0dXJuIGVsCmVuZAoKZnVuY3Rpb24gUmF3QmxvY2soZWwpCiAgaWYgZWwuZm9ybWF0ID09ICJodG1sIiB0aGVuCiAgICBlbC5mb3JtYXQgPSAnbWFya2Rvd24nCiAgZW5kCiAgcmV0dXJuIGVsCmVuZAoKZnVuY3Rpb24gTWF0aChlbCkKICBpZiBNb2RlID09ICdodWdvJyB0aGVuCiAgICBpZiBlbC5tYXRodHlwZSA9PSAnRGlzcGxheU1hdGgnIHRoZW4KICAgICAgcmV0dXJuIHJhdygne3s8IG1hdGhqYXggPn19XG4kJCcgIC4uIGVsLnRleHQgLi4gJyQkXG57ezwvbWF0aGpheCA+fX0nKQogICAgZWxzZQogICAgICBlbC50ZXh0ID0gc3RyaW5nLmdzdWIoZWwudGV4dCwgJ1xcW1xce1xcfV0nLCBmdW5jdGlvbiAodikKICAgICAgICByZXR1cm4gJ1xcJyAuLiB2CiAgICAgIGVuZCkKICAgICAgZWwudGV4dCA9IHN0cmluZy5nc3ViKGVsLnRleHQsICdfJywgZnVuY3Rpb24gKHYpCiAgICAgICAgcmV0dXJuICdcXCcgLi4gdgogICAgICBlbmQpCiAgICBlbmQKICBlbmQKICByZXR1cm4gZWwKZW5kCgpsb2NhbCBmdW5jdGlvbiBoZWFkZXJMaW5rKGlucHV0KQogIC0tIGdpdGh1YiBzdHlsZSBzZWN0aW9uIGxpbmsKICByZXR1cm4gIiMiLi5pbnB1dDpnc3ViKCcgJywgJy0nKQplbmQKCgpsb2NhbCBmdW5jdGlvbiBpbnNlcnRMaW5rKGNvbnRlbnQsIGxpbmtEZXNjcmlwdGlvbikKICBsb2NhbCBkZXNjcmlwdGlvblRleHQgPSB0YWJsZS5jb25jYXQobGlua0Rlc2NyaXB0aW9uLCAiIikKCiAgaWYgc3RyaW5nLmZpbmQoZGVzY3JpcHRpb25UZXh0LCAnfCcpIHRoZW4KICAgIGxvY2FsIHRhcmdldCwgZGVzYyA9IGRlc2NyaXB0aW9uVGV4dDptYXRjaCgiKC4qKXwoLiopIikKICAgIHRhYmxlLmluc2VydChjb250ZW50LCBwYW5kb2MuTGluayhkZXNjLCBoZWFkZXJMaW5rKHRhcmdldCkpKQogIGVsc2UKICAgIHRhYmxlLmluc2VydChjb250ZW50LCBwYW5kb2MuTGluayhkZXNjcmlwdGlvblRleHQsIGhlYWRlckxpbmsoZGVzY3JpcHRpb25UZXh0KSkpCiAgZW5kCmVuZAoKZnVuY3Rpb24gUGFyYShlbCkKICBsb2NhbCBjb250ZW50ID0gZWwuY29udGVudAogIGNvbnRlbnQgPSBQcm9jZXNzTWF0aChjb250ZW50KQogIGNvbnRlbnQgPSBQcm9jZXNzSW50ZXJuYWxMaW5rcyhjb250ZW50KQogIGVsLmNvbnRlbnQgPSBjb250ZW50CiAgcmV0dXJuIGVsCmVuZAoKZnVuY3Rpb24gUHJvY2Vzc01hdGgoZWxlbWVudHMpCiAgbG9jYWwgY29udGVudCA9IHt9CiAgbG9jYWwgaW5fZGlzcGxheV9tYXRoID0gZmFsc2UKICBmb3IgXywgaXRlbSBpbiBwYWlycyhlbGVtZW50cykgZG8KICAgIGlmIGl0ZW0udCA9PSAnU3RyJ2FuZCBpdGVtLnRleHQgPT0gIiQkIiB0aGVuCiAgICAgIGluX2Rpc3BsYXlfbWF0aCA9IG5vdCBpbl9kaXNwbGF5X21hdGgKICAgIGVsc2UKICAgICAgaWYgaW5fZGlzcGxheV9tYXRoIHRoZW4KICAgICAgICBpZiBpdGVtLnQgPT0gJ1Jhd0lubGluZScgYW5kIGl0ZW0uZm9ybWF0ID09ICd0ZXgnIHRoZW4KICAgICAgICAgIGxvY2FsIG4gPSBwYW5kb2MuTWF0aCgnRGlzcGxheU1hdGgnLCAnXG4nIC4uIGl0ZW0udGV4dCAuLiAnXG4nKQogICAgICAgICAgdGFibGUuaW5zZXJ0KGNvbnRlbnQsIE1hdGgobikpCiAgICAgICAgZWxzZQogICAgICAgICAgdGFibGUuaW5zZXJ0KGNvbnRlbnQsIGl0ZW0pCiAgICAgICAgZW5kCiAgICAgIGVsc2UKICAgICAgICB0YWJsZS5pbnNlcnQoY29udGVudCwgaXRlbSkKICAgICAgZW5kCiAgICBlbmQKICBlbmQKICByZXR1cm4gY29udGVudAplbmQKCmZ1bmN0aW9uIFByb2Nlc3NJbnRlcm5hbExpbmtzKGVsZW1lbnRzKQogIGxvY2FsIGNvbnRlbnQgPSB7fQogIGxvY2FsIGluX3NlY3Rpb25fbGluayA9IGZhbHNlCiAgbG9jYWwgbGlua0Rlc2NyaXB0aW9uID0ge30KCiAgZm9yIF8sIGl0ZW0gaW4gcGFpcnMoZWxlbWVudHMpIGRvCiAgICBpZiBpdGVtLnQgPT0gJ1N0cicgYW5kIHN0cmluZy5zdGFydHNfd2l0aChpdGVtLnRleHQsICdbWyMnKSB0aGVuCiAgICAgIGluX3NlY3Rpb25fbGluayA9IHRydWUKICAgICAgdGFibGUuaW5zZXJ0KGxpbmtEZXNjcmlwdGlvbiwgc3RyaW5nLnN1YihpdGVtLnRleHQsIDQpKQogICAgZWxzZWlmIGluX3NlY3Rpb25fbGluayB0aGVuCiAgICAgIGlmIHN0cmluZy5lbmRzX3dpdGgoaXRlbS50ZXh0LCAnXV0nKSB0aGVuCiAgICAgICAgdGFibGUuaW5zZXJ0KGxpbmtEZXNjcmlwdGlvbiwgc3RyaW5nLnN1YihpdGVtLnRleHQsIDEsIC0zKSkKICAgICAgICBpbnNlcnRMaW5rKGNvbnRlbnQsIGxpbmtEZXNjcmlwdGlvbikKICAgICAgICBpbl9zZWN0aW9uX2xpbmsgPSBmYWxzZQogICAgICAgIGxpbmtEZXNjcmlwdGlvbiA9IHt9CiAgICAgIGVsc2UKICAgICAgICB0YWJsZS5pbnNlcnQobGlua0Rlc2NyaXB0aW9uLCBpdGVtLnRleHQpCiAgICAgIGVuZAogICAgZWxzZQogICAgICB0YWJsZS5pbnNlcnQoY29udGVudCwgaXRlbSkKICAgIGVuZAogIGVuZAogIHJldHVybiBjb250ZW50CmVuZAoKZnVuY3Rpb24gUGxhaW4oZWwpCiAgZWwuY29udGVudCA9IFByb2Nlc3NJbnRlcm5hbExpbmtzKGVsLmNvbnRlbnQpCiAgcmV0dXJuIGVsCmVuZAoKZnVuY3Rpb24gUGFuZG9jKGVsKQogIHJldHVybiBlbAplbmQK"),e=>e.charCodeAt(0)),JC=Object.freeze(Object.defineProperty({__proto__:null,default:hC},Symbol.toStringTag,{value:"Module"})),SC=Uint8Array.from(atob("dHJhdmVyc2UgPSAndG9wZG93bicKCm1hdGhfYmxvY2tfdGV4dCA9IG5pbApmdW5jdGlvbiBwcm9jZXNzKGVsKQoKICAgLS0gTWF0aEJsb2NrIHN0YXJ0IG9yIGVuZAogICBpZiBlbC50ID09ICdTdHInIGFuZCBlbC50ZXh0ID09ICckJCcgdGhlbgogICAgIGlmIG1hdGhfYmxvY2tfdGV4dCA9PSBuaWwgdGhlbiAgICAgICAgICAgIC0tIHN0YXJ0CiAgICAgICBtYXRoX2Jsb2NrX3RleHQgPSAnJwogICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGVuZAogICAgICAgbG9jYWwgbWF0aF9ibG9jayA9IHBhbmRvYy5NYXRoKCdEaXNwbGF5TWF0aCcsICdcbicgLi4gbWF0aF9ibG9ja190ZXh0IC4uICdcbicpCiAgICAgICBtYXRoX2Jsb2NrX3RleHQgPSBuaWwKICAgICAgIHJldHVybiBtYXRoX2Jsb2NrCiAgICAgZW5kCiAgICAgcmV0dXJuIHt9CiAgIGVuZAoKICBpZiBtYXRoX2Jsb2NrX3RleHQgdGhlbgogICAgaWYgKGVsLnQgPT0gJ1Jhd0lubGluZScgb3IgZWwudCA9PSAnUmF3QmxvY2snKSBhbmQgZWwuZm9ybWF0ID09ICd0ZXgnIHRoZW4KICAgICAgbWF0aF9ibG9ja190ZXh0ID0gbWF0aF9ibG9ja190ZXh0IC4uIGVsLnRleHQKICAgICAgcmV0dXJuIHt9CiAgICBlbHNlaWYgZWwudCA9PSAnU3RyJyB0aGVuCiAgICAgIG1hdGhfYmxvY2tfdGV4dCA9IG1hdGhfYmxvY2tfdGV4dCAuLiBlbC50ZXh0CiAgICAgIHJldHVybiB7fQogICAgZWxzZWlmIGVsLnQgPT0gJ1NvZnRCcmVhaycgb3IgZWwudCA9PSAnQnVsbGV0TGlzdCcgdGhlbgogICAgICByZXR1cm4ge30KICAgIGVuZAogIGVuZAogIHJldHVybiBlbAplbmQKCmZ1bmN0aW9uIFJhd0lubGluZShlbCkgCiAgcmV0dXJuIHByb2Nlc3MoZWwpCmVuZAoKZnVuY3Rpb24gUmF3QmxvY2soZWwpIAogIHJldHVybiBwcm9jZXNzKGVsKQplbmQKCmZ1bmN0aW9uIFN0cihlbCkKICByZXR1cm4gcHJvY2VzcyhlbCkKZW5kCgpmdW5jdGlvbiBTb2Z0QnJlYWsoZWwpCiAgcmV0dXJuIHByb2Nlc3MoZWwpCmVuZAoKZnVuY3Rpb24gSGVhZGVyKGVsKQogIHJldHVybiBwcm9jZXNzKGVsKQplbmQKCmZ1bmN0aW9uIFBhcmEoZWwpCiAgcmV0dXJuIHByb2Nlc3MoZWwpCmVuZAoKZnVuY3Rpb24gUGxhaW4oZWwpCiAgcmV0dXJuIHByb2Nlc3MoZWwpCmVuZAoKZnVuY3Rpb24gQnVsbGV0TGlzdChlbCkKICByZXR1cm4gcHJvY2VzcyhlbCkKZW5kCgoKCgoKCg=="),e=>e.charCodeAt(0)),FC=Object.freeze(Object.defineProperty({__proto__:null,default:SC},Symbol.toStringTag,{value:"Module"})),pC=Uint8Array.from(atob("CnJldHVybiB7CiAgICB7CiAgICAgICAgTWF0aCA9IGZ1bmN0aW9uIChlbGVtKQogICAgICAgICAgICBpZiBlbGVtLnRleHQ6ZmluZCgiXiVzKlxcYmVnaW57Iikgfj0gbmlsIHRoZW4KICAgICAgICAgICAgICAgIHJldHVybiBwYW5kb2MuUmF3SW5saW5lKCd0ZXgnLCBlbGVtLnRleHQpCiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHJldHVybiBlbGVtCiAgICAgICAgICAgIGVuZAogICAgICAgIGVuZCwKICAgIH0KfQo="),e=>e.charCodeAt(0)),UC=Object.freeze(Object.defineProperty({__proto__:null,default:pC},Symbol.toStringTag,{value:"Module"})),NC=Uint8Array.from(atob("b3MucGxhdGZvcm0gPSBuaWwKaWYgb3MucGxhdGZvcm0gPT0gbmlsIHRoZW4KICBsb2NhbCBsaWJFeHQgPSBwYWNrYWdlLmNwYXRoOm1hdGNoKCIlcFtcXHwvXT9cXC4lcCglYSspIikKICBpZiBsaWJFeHQgPT0gJ2RsbCcgdGhlbgogICAgb3MucGxhdGZvcm0gPSAiV2luZG93cyIKICAgIHJlcXVpcmUidXRmOF9maWxlbmFtZXMiCiAgZWxzZWlmIGxpYkV4dCA9PSAnc28nIHRoZW4KICAgIG9zLnBsYXRmb3JtID0gIkxpbnV4IgogIGVsc2VpZiBsaWJFeHQgPT0gJ2R5bGliJyB0aGVuCiAgICBvcy5wbGF0Zm9ybSA9ICJNYWNPUyIKICBlbmQKZW5kCgoKb3MuY29weSA9IGZ1bmN0aW9uKHNyYywgZGVzdCkKICBpZiBvcy5wbGF0Zm9ybSA9PSAiV2luZG93cyIgdGhlbgogICAgc3JjID0gc3RyaW5nLmdzdWIoc3JjLCAiLyIsICJcXCIpCiAgICBvcy5leGVjdXRlKCdjb3B5ICInIC4uIHNyYyAuLiAnIiAiJyAuLiBkZXN0IC4uICciJykKICBlbHNlCiAgICBvcy5leGVjdXRlKCdjcCAiJyAuLiBzcmMgLi4gJyIgIicgLi4gZGVzdCAuLiAnIicpCiAgZW5kCmVuZAoKb3MubWtkaXIgPSBmdW5jdGlvbihkaXIpCiAgaWYgb3MuZXhpc3RzKGRpcikgdGhlbgogICAgcmV0dXJuCiAgZW5kCiAgaWYgb3MucGxhdGZvcm0gPT0gIldpbmRvd3MiIHRoZW4KICAgIG9zLmV4ZWN1dGUoJ21rZGlyICInIC4uIGRpciAuLiAnIicpCiAgZWxzZQogICAgb3MuZXhlY3V0ZSgnbWtkaXIgLXAgIicgLi4gZGlyIC4uICciJykKICBlbmQKZW5kCgpvcy5leGlzdHMgPSBmdW5jdGlvbihwYXRoKQogIGlmIG9zLnBsYXRmb3JtID09ICJXaW5kb3dzIiB0aGVuCiAgICBwYXRoID0gc3RyaW5nLmdzdWIocGF0aCwgIi8iLCAiXFwiKQogICAgbG9jYWwgXywgXywgY29kZSA9IG9zLmV4ZWN1dGUoJ2lmIGV4aXN0ICInIC4uIHBhdGggLi4gJyIgKGV4aXQgMCkgZWxzZSAoZXhpdCAxKScpCiAgICByZXR1cm4gY29kZSA9PSAwCiAgZWxzZQogICAgbG9jYWwgXywgXywgY29kZSA9IG9zLmV4ZWN1dGUoJ3Rlc3QgLWUgIicgLi4gcGF0aCAuLiAnIicpCiAgICByZXR1cm4gY29kZSA9PSAwCiAgZW5kCmVuZAoKc3RyaW5nLnN0YXJ0c193aXRoID0gZnVuY3Rpb24oc3RyLCBzdGFydCkKICAgcmV0dXJuIHN0cjpzdWIoMSwgI3N0YXJ0KSA9PSBzdGFydAplbmQKCnN0cmluZy5lbmRzX3dpdGggPSBmdW5jdGlvbihzdHIsIGVuZGluZykKICAgcmV0dXJuIGVuZGluZyA9PSAiIiBvciBzdHI6c3ViKC0jZW5kaW5nKSA9PSBlbmRpbmcKZW5kCgoKcmV0dXJuIHsKICBvcyA9IG9zLAogIHN0cmluZyA9IHN0cmluZwp9"),e=>e.charCodeAt(0)),YC=Object.freeze(Object.defineProperty({__proto__:null,default:NC},Symbol.toStringTag,{value:"Module"})),uC=Uint8Array.from(atob("bG9jYWwgZnVuY3Rpb24gZW5jb2RlIChzdHIpCiAgc3RyID0gc3RyaW5nLmdzdWIgKHN0ciwgIihbXjAtOWEtekEtWiAhJygpKi5ffi1dKSIsIC0tIGxvY2FsZSBpbmRlcGVuZGVudAogICAgZnVuY3Rpb24gKGMpIHJldHVybiBzdHJpbmcuZm9ybWF0ICgiJSUlMDJYIiwgc3RyaW5nLmJ5dGUoYykpIGVuZCkKICBzdHIgPSBzdHJpbmcuZ3N1YiAoc3RyLCAiICIsICIlJTIwIikKICByZXR1cm4gc3RyCiBlbmQKCgpsb2NhbCBmdW5jdGlvbiBkZWNvZGUgKHN0cikKICBzdHIgPSBzdHJpbmcuZ3N1YiAoc3RyLCAiJSUyMCIsICIgIikKICBzdHIgPSBzdHJpbmcuZ3N1YiAoc3RyLCAiJSUoJXgleCkiLCBmdW5jdGlvbihoKSByZXR1cm4gc3RyaW5nLmNoYXIodG9udW1iZXIoaCwxNikpIGVuZCkKICByZXR1cm4gc3RyCmVuZAoKcmV0dXJuIHsKICBlbmNvZGUgPSBlbmNvZGUsCiAgZGVjb2RlID0gZGVjb2RlCn0="),e=>e.charCodeAt(0)),kC=Object.freeze(Object.defineProperty({__proto__:null,default:uC},Symbol.toStringTag,{value:"Module"})),xC=Uint8Array.from(atob("LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIE1vZHVsZTogdXRmOF9maWxlbmFtZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIEZpbGVuYW1lOiB1dGY4X2ZpbGVuYW1lcy5sdWEKLS0gVmVyc2lvbjogIDIwMTktMDctMTMKLS0gTGljZW5zZTogIE1JVCAoc2VlIGF0IHRoZSBlbmQgb2YgdGhpcyBmaWxlKQoKLS0gVGhpcyBtb2R1bGUgbW9kaWZpZXMgc3RhbmRhcmQgTHVhIGZ1bmN0aW9ucyBzbyB0aGF0IHRoZXkgd29yayB3aXRoIFVURi04IGZpbGVuYW1lcyBvbiBXaW5kb3dzOgotLSAgICBpby5vcGVuCi0tICAgIGlvLnBvcGVuCi0tICAgIGlvLmxpbmVzCi0tICAgIGlvLmlucHV0Ci0tICAgIGlvLm91dHB1dAotLSAgICBvcy5yZW5hbWUKLS0gICAgb3MucmVtb3ZlCi0tICAgIG9zLmV4ZWN1dGUKLS0gICAgZG9maWxlCi0tICAgIGxvYWRmaWxlCi0tICAgIHJlcXVpcmUKLS0gT25seSBmaWxlbmFtZS1yZWxhdGVkIGZ1bmN0aW9ucyBhcmUgbW9kaWZpZWQgKGZvciBleGFtcGxlLCB0aGlzIG1vZHVsZSBET0VTIE5PVCBjaGFuZ2UgTHVhIHBhdHRlcm5zIGJlaGF2aW9yKS4KCi0tIFBsZWFzZSBub3RlIHRoYXQgZmlsZW5hbWVzIG11c3QgY29udGFpbiBvbmx5IHN5bWJvbHMgZnJvbSB5b3VyIFdpbmRvd3MgQU5TSSBjb2RlcGFnZSAod2hpY2ggZGVwZW5kcyBvbiBPUyBsb2NhbGUpLgotLSBVbmZvcnR1bmF0ZWx5LCBpdCdzIGltcG9zc2libGUgdG8gd29yayB3aXRoIGEgZmlsZSBoYXZpbmcgYXJiaXRyYXJ5IFVURi04IHN5bWJvbHMgaW4gaXRzIG5hbWUuCgotLSBUaGlzIG1vZHVsZSBpcyBjb21wYXRpYmxlIHdpdGggTHVhIDUuMSwgNS4yLCA1LjMsIEx1YUpJVCwgYW5kIHByb2JhYmx5IDUuNC4KLS0gTHVhIGltcGxlbWVudGF0aW9ucyBoYXZpbmcgc2hvcnRlbmVkIEZQIG51bWJlcnMgKDQtYnl0ZSAiZmxvYXQiIGluc3RlYWQgb2YgOC1ieXRlICJkb3VibGUiKSBhcmUgbm90IHN1cHBvcnRlZC4KLS0gTHVhIDUuMysgaW1wbGVtZW50YXRpb25zIHdpdGggc2hvcnRlbmVkIGludGVnZXJzIChpbnQzMiBpbnN0ZWFkIG9mIGludDY0KSBhcmUgT0suCgotLSBUaGlzIG1vZHVsZSByZXR1cm5zIGEgImNvbnZlcnRvciIgZnVuY3Rpb24gd2hpY2ggY29udmVydHMgYSBzdHJpbmcgZnJvbSBVVEYtOCB0byBPUy1zcGVjaWZpYyBjb2RlcGFnZS4KLS0gT24gTGludXgvTWFjT1MvZXRjLiB0aGlzIG1vZHVsZSBkb2Vzbid0IG1vZGlmeSBhbnkgTHVhIGZ1bmN0aW9ucyBhbmQgcmV0dXJucyAiZW1wdHkgY29udmVydG9yIiAod2hpY2ggc2ltcGx5IHJldHVybnMgaXRzIGFyZ3VtZW50KS4KCi0tIFVzYWdlIGV4YW1wbGUgIzEgKGV4ZWN1dGluZyBhIEx1YSBzY3JpcHQpOgotLSAgICByZXF1aXJlInV0ZjhfZmlsZW5hbWVzIgotLSAgICBkb2ZpbGUoc2NyaXB0X2ZpbGVuYW1lX2luX3V0ZjgpCgotLSBVc2FnZSBleGFtcGxlICMyIChsb2FkaW5nIGEgTHVhIG1vZHVsZSk6Ci0tICAgIGxvY2FsIGNvbnZlcnRfZnJvbV91dGY4ID0gcmVxdWlyZSJ1dGY4X2ZpbGVuYW1lcyIKLS0gICAgcGFja2FnZS5wYXRoID0gcGFja2FnZS5wYXRoLi4iOyIuLmNvbnZlcnRfZnJvbV91dGY4KG1vZHVsZV9mb2xkZXJfaW5fdXRmOCkuLiIvPy5sdWEiCi0tICAgIHJlcXVpcmUobW9kdWxlX25hbWVfaW5fdXRmOCkKCi0tIFBsZWFzZSBub3RlIHRoYXQgdGhlc2UgZXhhbXBsZXMgd291bGQgd29yayBvbiBib3RoIFdpbmRvd3MgYW5kIExpbnV4LgotLSBCVFcsIFdpbmRvd3MgZG9lcyBhY2NlcHQgYm90aCAvIGFuZCBcIGFzIHBhdGggc2VwYXJhdG9ycywgc28gaXQncyBPSyB0byB1c2UgLyBvbiBhbnkgT1MuCgotLSBUaGUgY29udmVyc2lvbiBmcm9tIFVURi04IHRvICJXaW5kb3dzIEFOU0kgY29kZXBhZ2UiIGlzIGltcGxlbWVudGVkIGFjY29yZGluZyB0byBtYXBwaW5nIHRhYmxlcyBwdWJsaXNoZWQgYXQgdW5pY29kZS5vcmcuCi0tIE1hcHBpbmcgdGFibGVzIGFyZSBzdG9yZWQgaW4gaHVtYW4tdW5yZWFkYWJsZSBjb21wcmVzc2VkIGZvcm0gdG8gc2lnbmlmaWNhbnRseSByZWR1Y2UgbW9kdWxlIHNpemUuCgoKbG9jYWwgdGVzdF9kYXRhX2ludGVncml0eSA9IGZhbHNlICAtLSBzZXQgdG8gdHJ1ZSBpZiB5b3UgYXJlIHVuc3VyZSBhYm91dCBjb3JyZWN0bmVzcyBvZiBodW1hbi11bnJlYWRhYmxlIHBhcnRzIG9mIHRoaXMgZmlsZQoKbG9jYWwgZnVuY3Rpb24gbW9kaWZ5X2x1YV9mdW5jdGlvbnMoYWxsX2NvbXByZXNzZWRfbWFwcGluZ3MpCgogICBsb2NhbCBmdW5jdGlvbiBjb252ZXJ0X2Zyb21fdXRmOCguLi4pICAgLS0gZm9yIGFsbCBPUyBleGNlcHQgV2luZG93cwogICAgICByZXR1cm4gLi4uCiAgIGVuZAoKICAgbG9jYWwgY2hhciwgYnl0ZSwgZmxvb3IsIHRhYmxlX2luc2VydCwgdGFibGVfY29uY2F0ID0gc3RyaW5nLmNoYXIsIHN0cmluZy5ieXRlLCBtYXRoLmZsb29yLCB0YWJsZS5pbnNlcnQsIHRhYmxlLmNvbmNhdAoKICAgbG9jYWwgZnVuY3Rpb24gZGVjb21wcmVzc19tYXBwaW5nKGNvbXByZXNzZWRfbWFwcGluZykKCiAgICAgIGxvY2FsIHdpZHRoLCBvZmZzZXQsIGJhc2UsIENTMSwgQ1MyLCBnZXRfbmV4dF9jaGFyID0gMS4wLCAwLjAsIDAuMCwgN14xOCwgNV4yMiwgY29tcHJlc3NlZF9tYXBwaW5nOmdtYXRjaCIlUyIKICAgICAgbG9jYWwgbWFwcGluZywgdHJlZXMsIHVuaWNvZGUsIGFuc2ksIHByZXZfZGVsdGFfdW5pY29kZSwgcHJldl9kZWx0YV9hbnNpID0ge30sIHt9LCAweDdGLCAweDdGCgogICAgICBsb2NhbCBmdW5jdGlvbiBkZWNvbXByZXNzX3NlbGVjdGlvbihxdHksIHRyZWUpCiAgICAgICAgIHdoaWxlIHdpZHRoIDw9IDk0XjcgZG8KICAgICAgICAgICAgd2lkdGgsIG9mZnNldCwgYmFzZSA9IHdpZHRoICogOTQuMCwgb2Zmc2V0ICogOTQuMCArIGJ5dGUoZ2V0X25leHRfY2hhcigpKSAtIDMzLjAsIChiYXNlIC0gZmxvb3IoKGJhc2UgKyB3aWR0aCAtIDEpIC8gOTReNykgKiA5NF43KSAqIDk0LjAKICAgICAgICAgZW5kCiAgICAgICAgIGlmIHF0eSB0aGVuCiAgICAgICAgICAgIGxvY2FsIGJpZ19xdHkgPSB3aWR0aCAlIHF0eQogICAgICAgICAgICBsb2NhbCBzbWFsbF91bml0ID0gKHdpZHRoIC0gYmlnX3F0eSkgLyBxdHkKICAgICAgICAgICAgbG9jYWwgYmlnX3VuaXQgPSBzbWFsbF91bml0ICsgMS4wCiAgICAgICAgICAgIGxvY2FsIG9mZnNldF9zbWFsbCA9IGJpZ19xdHkgKiBiaWdfdW5pdAogICAgICAgICAgICBsb2NhbCBmcm9tLCBvZmZzZXRfZnJvbSwgbGVmdCwgcmlnaHQKICAgICAgICAgICAgaWYgb2Zmc2V0IDwgb2Zmc2V0X3NtYWxsIHRoZW4KICAgICAgICAgICAgICAgd2lkdGggPSBiaWdfdW5pdAogICAgICAgICAgICAgICBvZmZzZXRfZnJvbSA9IG9mZnNldCAtIG9mZnNldCAlIGJpZ191bml0CiAgICAgICAgICAgICAgIGZyb20gPSBvZmZzZXRfZnJvbSAvIGJpZ191bml0CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgd2lkdGggPSBzbWFsbF91bml0CiAgICAgICAgICAgICAgIG9mZnNldF9mcm9tID0gb2Zmc2V0IC0gKG9mZnNldCAtIG9mZnNldF9zbWFsbCkgJSBzbWFsbF91bml0CiAgICAgICAgICAgICAgIGZyb20gPSBiaWdfcXR5ICsgKG9mZnNldF9mcm9tIC0gb2Zmc2V0X3NtYWxsKSAvIHNtYWxsX3VuaXQKICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIGxvY2FsIGxlbiwgbGVhZiA9IDEuMCwgZnJvbQogICAgICAgICAgICBpZiB0cmVlIHRoZW4KICAgICAgICAgICAgICAgbGVhZiwgbGVmdCwgcmlnaHQgPSA0LCAwLCBxdHkKICAgICAgICAgICAgICAgcmVwZWF0CiAgICAgICAgICAgICAgICAgIGxvY2FsIG1pZGRsZSA9IHRyZWVbbGVhZl0KICAgICAgICAgICAgICAgICAgaWYgZnJvbSA8IG1pZGRsZSB0aGVuCiAgICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gbWlkZGxlCiAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgbGVmdCwgbGVhZiA9IG1pZGRsZSwgbGVhZiArIDEKICAgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgIGxlYWYgPSB0cmVlW2xlYWYgKyAxXQogICAgICAgICAgICAgICB1bnRpbCBsZWFmIDwgMAogICAgICAgICAgICAgICBmcm9tLCBsZW4gPSBsZWZ0LCByaWdodCAtIGxlZnQKICAgICAgICAgICAgICAgb2Zmc2V0X2Zyb20gPSBsZWZ0IDwgYmlnX3F0eSBhbmQgbGVmdCAqIGJpZ191bml0IG9yIG9mZnNldF9zbWFsbCArIChsZWZ0IC0gYmlnX3F0eSkgKiBzbWFsbF91bml0CiAgICAgICAgICAgICAgIHdpZHRoID0gKHJpZ2h0IDwgYmlnX3F0eSBhbmQgcmlnaHQgKiBiaWdfdW5pdCBvciBvZmZzZXRfc21hbGwgKyAocmlnaHQgLSBiaWdfcXR5KSAqIHNtYWxsX3VuaXQpIC0gb2Zmc2V0X2Zyb20KICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIGJhc2UsIG9mZnNldCA9IGJhc2UgKyBvZmZzZXRfZnJvbSwgb2Zmc2V0IC0gb2Zmc2V0X2Zyb20KICAgICAgICAgICAgQ1MxLCBDUzIgPSAoQ1MxICUgOTM0NzE4MDEuMCkgKiAoQ1MyICUgOTM0NzE4MTEuMCkgKyBxdHksIChDUzEgJSA5MzQ3MTgyMS4wKSAqIChDUzIgJSA5MzQ3MTgzMS4wKSAtIGZyb20gKiA3NzMuMCAtIGxlbiAqIDc3ODkuMAogICAgICAgICAgICByZXR1cm4gbGVhZgogICAgICAgICBlbmQKICAgICAgICAgYXNzZXJ0KChDUzEgLSBDUzIpICUgd2lkdGggPT0gb2Zmc2V0KQogICAgICBlbmQKCiAgICAgIGxvY2FsIGZ1bmN0aW9uIGdldF9kZWx0YSh0cmVlX2lkeCkKICAgICAgICAgbG9jYWwgdHJlZSA9IHRyZWVzW3RyZWVfaWR4XQogICAgICAgICBsb2NhbCB2YWwgPSB0cmVlWzNdCiAgICAgICAgIGlmIHZhbCA9PSAwLjAgdGhlbgogICAgICAgICAgICBsb2NhbCBsZWFmID0gZGVjb21wcmVzc19zZWxlY3Rpb24odHJlZVsxXSwgdHJlZSkKICAgICAgICAgICAgbG9jYWwgbWF4X2V4cF9jbnQgPSB0cmVlWzJdCiAgICAgICAgICAgIHZhbCA9IGxlYWYgJSBtYXhfZXhwX2NudAogICAgICAgICAgICBsZWFmID0gKGxlYWYgLSB2YWwpIC8gbWF4X2V4cF9jbnQgKyAyLjAKICAgICAgICAgICAgdmFsID0gMi4wXnZhbAogICAgICAgICAgICB2YWwgPSB2YWwgKyBkZWNvbXByZXNzX3NlbGVjdGlvbih2YWwpCiAgICAgICAgICAgIGlmIGxlYWYgfj0gMC4wIHRoZW4KICAgICAgICAgICAgICAgcmV0dXJuIGxlYWYgKiB2YWwKICAgICAgICAgICAgZW5kCiAgICAgICAgIGVuZAogICAgICAgICB0cmVlWzNdID0gdmFsIC0gMS4wCiAgICAgIGVuZAoKICAgICAgZm9yIHRyZWVfaWR4ID0gMSwgMiBkbwogICAgICAgICBsb2NhbCB0b3RhbF9mcmVxID0gZGVjb21wcmVzc19zZWxlY3Rpb24oMl4xNSkKICAgICAgICAgbG9jYWwgbWF4X2V4cF9jbnQgPSBkZWNvbXByZXNzX3NlbGVjdGlvbigxNykKICAgICAgICAgbG9jYWwgdHJlZSwgcXR5X2Zvcl9sZWFmX2luZm8gPSB7dG90YWxfZnJlcSwgbWF4X2V4cF9jbnQsIDAuMH0sIDMgKiBtYXhfZXhwX2NudAoKICAgICAgICAgbG9jYWwgZnVuY3Rpb24gYnVpbGRfc3VidHJlZShsZWZ0LCByaWdodCwgaWR4KQogICAgICAgICAgICBsb2NhbCBtaWRkbGUsIHN1YnRyZWUgPSBsZWZ0ICsgMQogICAgICAgICAgICBtaWRkbGUgPSBkZWNvbXByZXNzX3NlbGVjdGlvbihyaWdodCAtIG1pZGRsZSkgKyBtaWRkbGUKICAgICAgICAgICAgdHJlZVtpZHhdLCBpZHggPSBtaWRkbGUsIGlkeCArIDMKICAgICAgICAgICAgZm9yIG5leHRfaWR4ID0gaWR4IC0gMiwgaWR4IC0gMSBkbwogICAgICAgICAgICAgICBpZiBkZWNvbXByZXNzX3NlbGVjdGlvbigyKSA9PSAxIHRoZW4KICAgICAgICAgICAgICAgICAgc3VidHJlZSwgaWR4ID0gaWR4LCBidWlsZF9zdWJ0cmVlKGxlZnQsIG1pZGRsZSwgaWR4KQogICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgIHN1YnRyZWUgPSBkZWNvbXByZXNzX3NlbGVjdGlvbihxdHlfZm9yX2xlYWZfaW5mbykgLSBxdHlfZm9yX2xlYWZfaW5mbwogICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgdHJlZVtuZXh0X2lkeF0sIGxlZnQsIG1pZGRsZSA9IHN1YnRyZWUsIG1pZGRsZSwgcmlnaHQKICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIHJldHVybiBpZHgKICAgICAgICAgZW5kCgogICAgICAgICBidWlsZF9zdWJ0cmVlKDAsIHRvdGFsX2ZyZXEsIDQpCiAgICAgICAgIHRyZWVzW3RyZWVfaWR4XSA9IHRyZWUKICAgICAgZW5kCiAgICAgIHdoaWxlIHRydWUgZG8KICAgICAgICAgbG9jYWwgZGVsdGEgPSBnZXRfZGVsdGEoMSkKICAgICAgICAgaWYgbm90IGRlbHRhIHRoZW4KICAgICAgICAgICAgZGVsdGEgPSBwcmV2X2RlbHRhX3VuaWNvZGUKICAgICAgICAgZWxzZWlmIGRlbHRhID09IHByZXZfZGVsdGFfdW5pY29kZSB0aGVuCiAgICAgICAgICAgIGRlY29tcHJlc3Nfc2VsZWN0aW9uKCkKICAgICAgICAgICAgcmV0dXJuIG1hcHBpbmcKICAgICAgICAgZW5kCiAgICAgICAgIHVuaWNvZGUsIHByZXZfZGVsdGFfdW5pY29kZSwgZGVsdGEgPSB1bmljb2RlICsgZGVsdGEsIGRlbHRhLCBnZXRfZGVsdGEoMikgb3IgcHJldl9kZWx0YV9hbnNpCiAgICAgICAgIGFuc2ksIHByZXZfZGVsdGFfYW5zaSA9IGFuc2kgKyBkZWx0YSwgZGVsdGEKICAgICAgICAgbWFwcGluZ1t1bmljb2RlXSA9IGFuc2kKICAgICAgZW5kCiAgIGVuZAoKICAgaWYgdGVzdF9kYXRhX2ludGVncml0eSB0aGVuCiAgICAgIHByaW50Ii0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCiAgICAgIHByaW50IlRlc3RpbmcgZGF0YSBpbnRlZ3JpdHkgb2YgYWxsIGNvbXByZXNzZWQgbWFwcGluZ3MiCiAgICAgIGZvciBjb2RlcGFnZSwgY29tcHJlc3NlZF9tYXBwaW5nIGluIHBhaXJzKGFsbF9jb21wcmVzc2VkX21hcHBpbmdzKSBkbwogICAgICAgICBwcmludChjb2RlcGFnZSwgcGNhbGwoZGVjb21wcmVzc19tYXBwaW5nLCBjb21wcmVzc2VkX21hcHBpbmcpIGFuZCAiT0siIG9yICJGQUlMRUQiKQogICAgICBlbmQKICAgICAgcHJpbnQiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKICAgZW5kCgogICBpZiAob3MuZ2V0ZW52Im9zIiBvciAiIik6bWF0Y2giXldpbmRvd3MiIHRoZW4KCiAgICAgIGxvY2FsIGZ1bmN0aW9uIGdldF93aW5kb3dzX2Fuc2lfY29kZXBhZ2UoKQogICAgICAgICAtLSByZXR1cm5zIHN0cmluZyAiMTI1MyIgZm9yIEdyZWVrLCAiMTI1MSIgZm9yIFJ1c3NpYW4sIGV0Yy4KICAgICAgICAgbG9jYWwgcGlwZSA9IGFzc2VydChpby5wb3BlbltbcmVnIHF1ZXJ5IEhLTE1cU1lTVEVNXEN1cnJlbnRDb250cm9sU2V0XENvbnRyb2xcTmxzXENvZGVQYWdlIC92IEFDUF1dKQogICAgICAgICBsb2NhbCBjb2RlcGFnZSA9IHBpcGU6cmVhZCIqYSI6bWF0Y2giJXNBQ1AlcytSRUdfU1olcysoLi0pJXMqJCIKICAgICAgICAgcGlwZTpjbG9zZSgpCiAgICAgICAgIHJldHVybiBhc3NlcnQoY29kZXBhZ2UsICJGYWlsZWQgdG8gZGV0ZXJtaW5lIFdpbmRvd3MgQU5TSSBjb2RlcGFnZSBmcm9tIFdpbmRvd3MgcmVnaXN0cnkiKQogICAgICBlbmQKCiAgICAgIGxvY2FsIGNvZGVwYWdlID0gZ2V0X3dpbmRvd3NfYW5zaV9jb2RlcGFnZSgpCiAgICAgIC0tIHByaW50KCJZb3VyIGNvZGVwYWdlIGlzICIuLmNvZGVwYWdlKQogICAgICBsb2NhbCBjb21wcmVzc2VkX21hcHBpbmcgPSBhbGxfY29tcHJlc3NlZF9tYXBwaW5nc1tjb2RlcGFnZV0KICAgICAgaWYgY29tcHJlc3NlZF9tYXBwaW5nIHRoZW4KICAgICAgICAgbG9jYWwgbWFwX3VuaWNvZGVfdG9fYW5zaSA9IGRlY29tcHJlc3NfbWFwcGluZyhjb21wcmVzc2VkX21hcHBpbmcpCgogICAgICAgICBsb2NhbCBmdW5jdGlvbiB1dGY4X3RvX3VuaWNvZGUodXRmOHN0ciwgcG9zKQogICAgICAgICAgICAtLSBwb3MgPSBzdGFydGluZyBieXRlIHBvc2l0aW9uIGluc2lkZSBpbnB1dCBzdHJpbmcgKGRlZmF1bHQgMSkKICAgICAgICAgICAgLS0gcmV0dXJucyBjb2RlLCBudW1iZXIgb2YgYnl0ZXMgaW4gdGhpcyB1dGY4IGNoYXIKICAgICAgICAgICAgcG9zID0gcG9zIG9yIDEKICAgICAgICAgICAgbG9jYWwgY29kZSwgc2l6ZSA9IGJ5dGUodXRmOHN0ciwgcG9zKSwgMQogICAgICAgICAgICBpZiBjb2RlID49IDB4QzAgYW5kIGNvZGUgPCAweEZFIHRoZW4KICAgICAgICAgICAgICAgbG9jYWwgbWFzayA9IDY0CiAgICAgICAgICAgICAgIGNvZGUgPSBjb2RlIC0gMTI4CiAgICAgICAgICAgICAgIHJlcGVhdAogICAgICAgICAgICAgICAgICBsb2NhbCBuZXh0X2J5dGUgPSBieXRlKHV0ZjhzdHIsIHBvcyArIHNpemUpIG9yIDAKICAgICAgICAgICAgICAgICAgaWYgbmV4dF9ieXRlID49IDB4ODAgYW5kIG5leHRfYnl0ZSA8IDB4QzAgdGhlbgogICAgICAgICAgICAgICAgICAgICBjb2RlLCBzaXplID0gKGNvZGUgLSBtYXNrIC0gMikgKiA2NCArIG5leHRfYnl0ZSwgc2l6ZSArIDEKICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBjb2RlLCBzaXplID0gYnl0ZSh1dGY4c3RyLCBwb3MpLCAxCiAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICBtYXNrID0gbWFzayAqIDMyCiAgICAgICAgICAgICAgIHVudGlsIGNvZGUgPCBtYXNrCiAgICAgICAgICAgIGVuZAogICAgICAgICAgICByZXR1cm4gY29kZSwgc2l6ZQogICAgICAgICBlbmQKCiAgICAgICAgIGZ1bmN0aW9uIGNvbnZlcnRfZnJvbV91dGY4KHV0ZjhzdHIpCiAgICAgICAgICAgIGxvY2FsIHBvcywgcmVzdWx0X2Fuc2kgPSAxLCB7fQogICAgICAgICAgICB3aGlsZSBwb3MgPD0gI3V0ZjhzdHIgZG8KICAgICAgICAgICAgICAgbG9jYWwgY29kZSwgc2l6ZSA9IHV0ZjhfdG9fdW5pY29kZSh1dGY4c3RyLCBwb3MpCiAgICAgICAgICAgICAgIHBvcyA9IHBvcyArIHNpemUKICAgICAgICAgICAgICAgY29kZSA9IGNvZGUgPCAxMjggYW5kIGNvZGUgb3IgbWFwX3VuaWNvZGVfdG9fYW5zaVtjb2RlXSBvciBieXRlIj8iCiAgICAgICAgICAgICAgIGlmIGNvZGUgPiAyNTUgdGhlbgogICAgICAgICAgICAgICAgICB0YWJsZV9pbnNlcnQocmVzdWx0X2Fuc2ksIGNoYXIoZmxvb3IoY29kZSAvIDI1NikpKQogICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgdGFibGVfaW5zZXJ0KHJlc3VsdF9hbnNpLCBjaGFyKGNvZGUgJSAyNTYpKQogICAgICAgICAgICBlbmQKICAgICAgICAgICAgcmV0dXJuIHRhYmxlX2NvbmNhdChyZXN1bHRfYW5zaSkKICAgICAgICAgZW5kCgogICAgICAgICBsb2NhbCBvcmlnX29zX3JlbmFtZSA9IG9zLnJlbmFtZQoKICAgICAgICAgZnVuY3Rpb24gb3MucmVuYW1lKG9sZCwgbmV3KQogICAgICAgICAgICByZXR1cm4gb3JpZ19vc19yZW5hbWUoY29udmVydF9mcm9tX3V0Zjgob2xkKSwgY29udmVydF9mcm9tX3V0ZjgobmV3KSkKICAgICAgICAgZW5kCgogICAgICAgICBsb2NhbCBvcmlnX29zX3JlbW92ZSA9IG9zLnJlbW92ZQoKICAgICAgICAgZnVuY3Rpb24gb3MucmVtb3ZlKGZpbGVuYW1lKQogICAgICAgICAgICByZXR1cm4gb3JpZ19vc19yZW1vdmUoY29udmVydF9mcm9tX3V0ZjgoZmlsZW5hbWUpKQogICAgICAgICBlbmQKCiAgICAgICAgIGxvY2FsIG9yaWdfb3NfZXhlY3V0ZSA9IG9zLmV4ZWN1dGUKCiAgICAgICAgIGZ1bmN0aW9uIG9zLmV4ZWN1dGUoY29tbWFuZCkKICAgICAgICAgICAgaWYgY29tbWFuZCB0aGVuCiAgICAgICAgICAgICAgIGNvbW1hbmQgPSBjb252ZXJ0X2Zyb21fdXRmOChjb21tYW5kKQogICAgICAgICAgICBlbmQKICAgICAgICAgICAgcmV0dXJuIG9yaWdfb3NfZXhlY3V0ZShjb21tYW5kKQogICAgICAgICBlbmQKCiAgICAgICAgIGxvY2FsIG9yaWdfaW9fb3BlbiA9IGlvLm9wZW4KCiAgICAgICAgIGZ1bmN0aW9uIGlvLm9wZW4oZmlsZW5hbWUsIC4uLikKICAgICAgICAgICAgcmV0dXJuIG9yaWdfaW9fb3Blbihjb252ZXJ0X2Zyb21fdXRmOChmaWxlbmFtZSksIC4uLikKICAgICAgICAgZW5kCgogICAgICAgICBsb2NhbCBvcmlnX2lvX3BvcGVuID0gaW8ucG9wZW4KCiAgICAgICAgIGZ1bmN0aW9uIGlvLnBvcGVuKHByb2csIC4uLikKICAgICAgICAgICAgcmV0dXJuIG9yaWdfaW9fcG9wZW4oY29udmVydF9mcm9tX3V0ZjgocHJvZyksIC4uLikKICAgICAgICAgZW5kCgogICAgICAgICBsb2NhbCBvcmlnX2lvX2xpbmVzID0gaW8ubGluZXMKCiAgICAgICAgIGZ1bmN0aW9uIGlvLmxpbmVzKGZpbGVuYW1lLCAuLi4pCiAgICAgICAgICAgIGlmIGZpbGVuYW1lIHRoZW4KICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBjb252ZXJ0X2Zyb21fdXRmOChmaWxlbmFtZSkKICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdfaW9fbGluZXMoZmlsZW5hbWUsIC4uLikKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICByZXR1cm4gb3JpZ19pb19saW5lcygpCiAgICAgICAgICAgIGVuZAogICAgICAgICBlbmQKCiAgICAgICAgIGxvY2FsIG9yaWdfZG9maWxlID0gZG9maWxlCgogICAgICAgICBmdW5jdGlvbiBkb2ZpbGUoZmlsZW5hbWUpCiAgICAgICAgICAgIGlmIGZpbGVuYW1lIHRoZW4KICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBjb252ZXJ0X2Zyb21fdXRmOChmaWxlbmFtZSkKICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIHJldHVybiBvcmlnX2RvZmlsZShmaWxlbmFtZSkKICAgICAgICAgZW5kCgogICAgICAgICBsb2NhbCBvcmlnX2xvYWRmaWxlID0gbG9hZGZpbGUKCiAgICAgICAgIGZ1bmN0aW9uIGxvYWRmaWxlKGZpbGVuYW1lLCAuLi4pCiAgICAgICAgICAgIGlmIGZpbGVuYW1lIHRoZW4KICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBjb252ZXJ0X2Zyb21fdXRmOChmaWxlbmFtZSkKICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIHJldHVybiBvcmlnX2xvYWRmaWxlKGZpbGVuYW1lLCAuLi4pCiAgICAgICAgIGVuZAoKICAgICAgICAgbG9jYWwgb3JpZ19yZXF1aXJlID0gcmVxdWlyZQoKICAgICAgICAgZnVuY3Rpb24gcmVxdWlyZShtb2RuYW1lKQogICAgICAgICAgICBtb2RuYW1lID0gY29udmVydF9mcm9tX3V0ZjgobW9kbmFtZSkKICAgICAgICAgICAgcmV0dXJuIG9yaWdfcmVxdWlyZShtb2RuYW1lKQogICAgICAgICBlbmQKCiAgICAgICAgIGxvY2FsIG9yaWdfaW9faW5wdXQgPSBpby5pbnB1dAoKICAgICAgICAgZnVuY3Rpb24gaW8uaW5wdXQoZmlsZSkKICAgICAgICAgICAgaWYgdHlwZShmaWxlKSA9PSAic3RyaW5nIiB0aGVuCiAgICAgICAgICAgICAgIGZpbGUgPSBjb252ZXJ0X2Zyb21fdXRmOChmaWxlKQogICAgICAgICAgICBlbmQKICAgICAgICAgICAgcmV0dXJuIG9yaWdfaW9faW5wdXQoZmlsZSkKICAgICAgICAgZW5kCgogICAgICAgICBsb2NhbCBvcmlnX2lvX291dHB1dCA9IGlvLm91dHB1dAoKICAgICAgICAgZnVuY3Rpb24gaW8ub3V0cHV0KGZpbGUpCiAgICAgICAgICAgIGlmIHR5cGUoZmlsZSkgPT0gInN0cmluZyIgdGhlbgogICAgICAgICAgICAgICBmaWxlID0gY29udmVydF9mcm9tX3V0ZjgoZmlsZSkKICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIHJldHVybiBvcmlnX2lvX291dHB1dChmaWxlKQogICAgICAgICBlbmQKCiAgICAgIGVsc2UKICAgICAgICAgLS0gcHJpbnQoIk1hcHBpbmcgZm9yIGNvZGVwYWdlICIuLmNvZGVwYWdlLi4iIG5vdCBmb3VuZCIpCiAgICAgIGVuZAoKICAgZW5kCgogICByZXR1cm4gY29udmVydF9mcm9tX3V0ZjgKCmVuZAoKcmV0dXJuIG1vZGlmeV9sdWFfZnVuY3Rpb25zewoKICAgLS0gVW5pY29kZSB0byBXaW5kb3dzIEFOU0kgY29kZXBhZ2UgbWFwcGluZ3MgKGNvbXByZXNzZWQgYW5kIHByb3RlY3RlZCBieSBhIGNoZWNrc3VtKQoKICAgWyI4NzQiXSAgPSAgLS0gVGhhaSwgOTcgY29kZXBvaW50cyBhYm92ZSBVKzAwN0YKICAgICAgW1shJWwrJCIiIldOXjk9JiRwcUYnb2hlTyM7MGwjImhzKW1JWz1lIXVmd2tEQiNPd0xuSnxJUklVejhRKE1NTV1dLAoKICAgWyIxMjUwIl0gPSAgLS0gQ2VudHJhbCBFdXJvcGVhbiwgMTIzIGNvZGVwb2ludHMgYWJvdmUgVSswMDdGCiAgICAgIFtbITwyIz92IjEocm87eGgvdExfM2hDXmk7ZX5Qak8icDxJXGFUVH07XVJifk03L10malJqZnd1RSVBSilAWGZCUXkmXGp5W1Y1Ol0hUnRIXW0+WWQ4bT82THBzVUFcVj14J1ZjTU88V3orRU9PCiAgICAgIDBtN1VgdXwkWTV4P1ZrKjYrcUpALzBMaWU3N19ifU9FdXd2JFFqL3dgK0o+TSo8ZzJxeEQzcUV5QyYqe1ZHSSdVZGRRYEdRKUw9bGo8e1M7Sm0pLGYzeXpjUU91eGFjSFNae1gnWElXekR6IT9FCiAgICAgID1VMGZdXSwKCiAgIFsiMTI1MSJdID0gIC0tIEN5cmlsbGljLCAxMjcgY29kZXBvaW50cyBhYm92ZSBVKzAwN0YKICAgICAgW1shLVs7XzhrTWFpN2pdeEIkXm4pIzduZ3JYfV9iJXs8Q2RvdDtQPzJKJjAwJl53WHw7XUBOKmZqcSNpb1gndi4mZ0dAdXJ+M3lpOHQxO3huNDB7RyNOWD83K2hHQ3skRCI0I29KLy9+a2ZsenMKICAgICAgIl9cejlxUCN9MW98QHt0YDJOck0ldHtNVz9YOWQ2bzpNcUhsNit6XV0sCgogICBbIjEyNTIiXSA9ICAtLSBXZXN0ZXJuLCAxMjMgY29kZXBvaW50cyBhYm92ZSBVKzAwN0YKICAgICAgW1shKVckPGN+XE9kQTVUSiUvSi97OnlvRV1LW2QsYzxNditncF9bX1V1QjUyYztIJntsZUZrJUtkOCVjSG52THJCWz58Oil0Ln1RSCopXUFEfExxanNCK0pDZEttYlJJak8sXV0sCgogICBbIjEyNTMiXSA9ICAtLSBHcmVlaywgMTExIGNvZGVwb2ludHMgYWJvdmUgVSswMDdGCiAgICAgIFtbIS4veURDcTsjV0F1Q1xDMVJ7PVtuJ0ZwU3VjISJSXEVafDQmSj9BMy16PypUST91ZmJoRnExSiF4QFNqZmZcIUd7b15kRFhsfDhOTFohJGQnOCRmXj1oaF9EUG0hPD4+YkNnVig+ZXJVV2hYCiAgICAgID9SKy1KUEA0anU6WXcjKkNdXSwKCiAgIFsiMTI1NCJdID0gIC0tIFR1cmtpc2gsIDEyMSBjb2RlcG9pbnRzIGFib3ZlIFUrMDA3RgogICAgICBbWyEtKFJbU1BLWT5jZ2NLNWNDczR2ayVNdUxgeUZ4XkJsIy8hbCNNQCN5b2V8SngrcHhadXZoJXI+Tzwvbl9nYj5oRGptR11qI2xBe10yIlItWkAoNld5OlF+JTszMjdiJmZSU2tGI0JNL2QrJQogICAgICBpV21TeDRFKlxGX3o9cz5RZUpCcUNeXV0sCgogICBbIjEyNTUiXSA9ICAtLSBIZWJyZXcsIDEwNSBjb2RlcG9pbnRzIGFib3ZlIFUrMDA3RgogICAgICBbWyEuYlwuSD9TXDIxKzdlZm0nYHcmTVdfSmcsbVJiQjt7WEBUXDM6OkRDIzc8bV9jQUUhOiVDJWM3LywuL3VbOHcqaC1pd3B6MDNRWSxheSVdTUkqRF1XJl1VR14zKD0yMGE3JHpHW05nN01MdAogICAgICBzWEluZShWMzdBP09PJXxIbjEzd01oLT9eak56aFdgLC1dXSwKCiAgIFsiMTI1NiJdID0gIC0tIEFyYWJpYywgMTI4IGNvZGVwb2ludHMgYWJvdmUgVSswMDdGCiAgICAgIFtbITNuOEdFJC50by9rYSVOeGB1T3BjaWI+fDlLVS1ONzIhMUo0YzJOQVVFM2EsSGxPRT1NYEByc2F8fE5oXyFvZ106ZElMejlLTmxGfnZpZ05IKmEwS3h3ampmUipdP3RPODcoYTMtUlFleF5WCiAgICAgIFd3JlNZezpBcUV8cyV9QFU4JXJLY3IwLE5DalI6TiZMJ1l5R3U8dXMnc04qMXBsPWdBWE93U0pbdj9mO2ltQmhEdV8pZCRGOFQ/JVNbXV0sCgogICBbIjEyNTciXSA9ICAtLSBCYWx0aWMsIDExNiBjb2RlcG9pbnRzIGFib3ZlIFUrMDA3RgogICAgICBbWyE6PF8uWFFbO24zNXMlST9nOSliLzdEaUd3SVIpenkmPTY/LzMpNmlPJXJTbkNfNnlqbCc4I3plTjB2Y1dfeVgvMipKOTMrRUpWclcsXlJoZSxoN3dXbCJ9bmVGMn5GW1B5RDtCY3JHKjU9SgogICAgICBmaDx4IUZKP3FTdzlYcCE7V0IzVDxKXng/I0llYHh1ZmV6UidcSShlRURdM2QmKVZKTCQvKyRaZjtXXkk+TFszRDVGPF9JY0dwbj1vWCJKUjElYXJTfEZYfGRpYTRdQmVGPmQ1cGBFVis6OypJPAogICAgICB4XlZvcXsiZl1dLAoKICAgWyIxMjU4Il0gPSAgLS0gVmlldG5hbWVzZSwgMTE5IGNvZGVwb2ludHMgYWJvdmUgVSswMDdGCiAgICAgIFtbITNuOEN7JUMwfSZwM2dFMH58JlJWbTlXciZebG4xfSckZ1Z7Ym1sMW9CeU4qYmI6Qm1eRTt+QjMtV2pGNlF1YnFeYFkqNlwwXnchREtwSzxcN2xIVkVMbVNYTnsyfkIiMEMiPDFDWU4yeyRhCiAgICAgIDVNPz58NyV+cW17cFhwaHdtMyR9aXlYakJZd3RHcXhwKGZbIWdeRWU5SC59MX4wSC1rLWR6TkRoMUxdXSwKCiAgIFsiOTMyIl0gID0gIC0tIEphcGFuZXNlLCA3Mzg5IGNvZGVwb2ludHMgYWJvdmUgVSswMDdGCiAgICAgIFs9WzMrPSY3fnNMVHkibl5QblZHKkd4Jmo+NEx4bWwlfWZlfDdffW5ic3UxSW1Gal9lcVolL2prUyNxVDJQRDk/XUtxJ2ZLPn5DLlltajw/Z04rezZ0XWp0TWdaV1pweD4jVnl6dWhIUT1OaHVsCiAgICAgIEh5LENgPV5cJjxSTmMrcjY8N35Rcyc0TVdTMl5MUigiTClmWzAuN0liVGUiXmVEV3w0fls2KVApaSc0ci00Kj5YL3JPb0VzUC4keUV4bG1VNW0+V3RZXF43XWhDQXJiMSMxSHxRPTU1Vl16YyQ+CiAgICAgIEclczRXWll1VVVGa3Fed08oNjgxeCQkI0ouYGxhZVNkOX4hfTdJcC8qbyN8W1NPNTBoQVdBd2hgdSpOd1NuZyNyRHstLld0ZVBEJWxWZ1lXKmBTR24uQ1pJR31ARCtPTz5ZQiJsdXVjLSpKLSRQCiAgICAgIFBqKlNfWWMkJ35jfCxePFA7V3oraF9SeXklZCwqYnc/KzJZaVwnZUV0ZFQ2X25xVCwoXDR1aD9FO1BvXl9jclJSZDYqcWI0TXxHR151LncncngvQ3Y4MkMiQmNsb3tCNS5WVDs5Xygsb2AlVFQnCiAgICAgIHBaO25QcFp7dWhBKFVUKGY2dno/Ym9rMWw0QiUzfkd2J3cvNzE5RCJQZlRNVyYhcW42THt6dSNAV2FqO0RDc0lXI0kxeFB1bWl6ST5ERXRxRkU8QmYwfmRaLG86dTdAJTxnYFZeTkJ3PFI3YUokCiAgICAgIDQlR0F8UX07bXpbOXd9MkYqKyZdLVJwaSdjbykvODZpUjA9UjNKLDNtOjkmc3pOR092aExQXTcrfUBbfVksNyl9R1hKbWkqfE49TClEZzQleS5rQzNsSntLYUdjPldhdi8/KilUX319YWYyaFJQCiAgICAgIElpXWxOenxVQXMvdW5fPyQ2U3Q5dSs+PHRSejt7Jid9Qnlhbj06c150XkRbVnRAYidzdWglMWdQVyhSbnxjcXszeV1cXishe31nNjxKcW9eJVteZSJnY3lBJTRoQHpmN1g5Pm9ufj5zdFR2RUh1CiAgICAgIF1nZUhMS3RqQFhHNVEldHRMVSkwNS4qNG88Kmh+VnRwNUxTbXciYlJ2KnVhTCkoczVXQi1qIVx1R2coXCF3L282Il5Bdjg4Pi54e2QmezBTPzEqJCIiNjJvcik5N0AyUyxcWS4yXFw4JkZWKjNKCiAgICAgIEpgTDYnVVhDX0hqOn1WQ05waSJ9MCljO0J+LkxYb18yfF0zczptLlJUL2E/cXVCSTxeXHtjJ2VMfCpeKm1NLT02VkV5Tn5mTmlFNTlYXzJIPUF5LlV2JClTTUEqcXRkOHRVNHkiZnIyLHNHbD83CiAgICAgIGZOOkxwWiYiV0FeRCRWMShkaVtuPm9aa0B0LURZTj1bI3Zsc28kW284dS9eO3c8eydtRVMlfTBaOEVaNVtVPTRLY1s8IjgvJ1I3cGMpUU8wIjttL3d3alxdI05bVS1qUXQiZTh8RkU9XHVyNWVzCiAgICAgIDRGJDVNPS1eKDo7RC8uNkhxdk5mMzxtQGp6Q0Y9aHdyS3M9c287UmZodz0vb3pFWTJKJS9YOURkQHAlZUNeRy9JcTZzenBxajo/b1lrPC0lSHVAYWRvKip8W1I/JlZMWjZMP1YkYWJuM0xdTF8+CiAgICAgICc5LCF6OVktPUpwe2wtYTFrXzlub21dTGB9XFA2YShMZzRObmkzVDVHJU1lRWFBNk9zY1k0QkV1RF0lUHw1N30+YT8sJnx6clg6UHtiTGBZfDV5Wl1GO3ZmJ1tjME9Eb3I8VnVMMWcqXHwvMm1BCiAgICAgIElZLXwrfSssUiRGfSxGe2dXfWtqUy4ySVJrMi0/dyM9VnAlYWRFJHZoR1RLfm82L1t9Xj4iXixlKWRGJnI6QmRXaHl9bWZRb3Z7ekI8bzlGVCwpKV0pS0o2SWFKLn1teVE5NDtpdUInQD17ZzA/CiAgICAgIHtgfTxaa2YudTZffVctcnsrJj40TV9kaWckT289dT8+QydhRExDL0QqZmBufjVwN2BxZj5XVVF8c01MenNEMjF3OGxENDQxMFlkbmRuQHJ+VjI7VDhpVHRjTT0pb1U/aD1ybDgtRlprWC0hRShoCiAgICAgIGNFRVd6andOcj5nciRBLnptaH0yJjUtYVtBR0RqY086KGpjOkUsQyx1MSEvXDUmITBSNyYoKmBFcWp0cStvc085J017OiRrMUBcKEEqTV1DMix7XmdMX09MPjcmVzFNNT53IX03ZFE2RzpxW3otCiAgICAgIEJyPnRVUUJEelRUWkxiTFVDNkd7WSpbejpTKjZ4Yzk9RHZQaEoxSHRQSFYxb3NkclczZ2EsUGYuTVhbcko8SW9OOURVXj4qQjViSGgjblBrbnk3Z05WbXh5OG9MOzVdTi0qfGExLUYiR3c8Xmg5CiAgICAgIEgkLTZsb3MyfWcnYjpjXWMwfnt5d2U+NT13Oyx7XX4ufjQ4OHt6L0omck9cWEd9OCQqO3kuNDAyTiNxUXBqOSMzci1peCR6aip2JGRKQzdcKClicWRpITU0OX0rdX47TXldPGNHMEFrLD0mPCtaCiAgICAgIFVEdGRHKSk3Mm8xdENFU0BdU0VtRDFTNzk0TilgV0NLcDs3XldRYlolJXloVFojIWtgfjkySThVMGBqfVpOaUBcXD9nSEt2NjVfaUJ0WypqNm5ET1J8TiVueyghVHp4bUs+NiY1YkpvdFBeYW5UCiAgICAgIERfYiV1UlpcNXFiLzpGMEt1PVkyKiE2J2lebEF4V0ojanQiTTFjeykqdkAscUQnVlYvIXdRLmNcND47a3QmX3wlVjhKUFVFakNNdmdfTmU8N1VlUXFvfVc9OE4zZTAuaFtbbEA6NDc3bV9lNWcrCiAgICAgIHUmdi8+VEJSIit9aTpwUC1JZl5+aGJaW1Mta0tcOUYsIUQ4UUpycnlRRXpBN1JJY1wxP1dUaWFffCNlL2M9QWEjSWAkWXRUOCVVWjYkWHQiP2BYXy9SQyd2cG44Zl81W2luaTN9KV50bnNgXC8pCiAgICAgIEhrNHl4KSdMc1ZcJ2tHcX4rMj9kIjgpX3prLzVcQ29FcCkwfFNEUUxBM1dyVH1UIXsybG05bz5yMCF8U29YOTdmL2YuejpiL1d9cD5NfFE/V2NnYns8dWRnVU9sM3YoYHlhLT9PTm8+T3wmSjcsCiAgICAgIFJCdkNGa1siZ0lYTEJ6VSUyTntoZDhoRXdIRCxdOjUjamQ5diw0Im9RMFgjKFAxcSc+S1JbWyZvS2pqN3x1JydifVBnIW1jXDRxb0tUeS0qMS87Q2tWJit9Wy1wSVZHM3ZARXVXZHRKKzNwQFhXCiAgICAgIF1TYTAxWkR7RHI9L0hHM1JoaTpXSCV7K1JPOUExLCwiPU1jejdIKCpkcng1O3VZN3ZBQGFtd34saS8+bSp7TllWJX1kQiMjY2ArSzhIfUgxW2B9fks+c0cka3YzR2RjOnhAb2FKakA4bS13TklLCiAgICAgIGdoP3tGLWI6RVlET1w2cj1HTCxaNHBnQUB1S3lOZ15ycTBqW1laZyxbb3gjbSU8N1UieVxVSjR7el9Vai16Ny5BS2VAMVgpRWdzfldrbCpXJSR8Yj9LZ0ApJS5nU15ielY7LlN7Un1UcHVNfVwwCiAgICAgICQzdkFDQ1EpKVtmUnZEI1NXPTVRVy8nYFdCL1BxTSZ9KXROMV98VTQtMypHLjktN0guXUkheUclJX5vOCRzc1h9Y2dFaFVgJm1IM1s1fT4uKTxJPiMzQH5yRCFZeD52QGpXTE1RLUgyMEZAM080CiAgICAgIEV7dUReY0chdnQkekotPXRKc0ZPSW9eY2skfSkzNHhOXUQ9SGJFT3FWcnwiN0AyeVk2X3opKXNVdD9ubj4tcyhTPVNVQS4zK2IxKXtuZXtSWFdOUzRbO0xtcGs/e1xFYlFKN1E0JT1KNnZ8PU5fCiAgICAgIF8uLiJcQlRKRX0wYEo3KDg4MkYyMHxEZVoybXMlPSJna10zPmY1ZktUSi5wMHgvYXRJZygle2JkTFpaXD4wejFqXV9pSTVSVCUqe1J0MHtVTDVJNkluM1JUayhsPEhDRGtJRW43ZnU9RlttOy9LCiAgICAgIE9uPUs9UT1YY2Z7UyE6NjoxLjg+U2QvXTVReV06PSR1LUA4XEF1NiN5Qm5EZVtAa0MtXjJlMGtaUllbQ1Z5JkUye2RlKVEsKklvSFpPRClYaCppVCpAXDdDVidXVmA3SVUzMyN7O3IhWHcuRmo8CiAgICAgIDRPaENrW010SipnTWkkQmQxZUpeLG1vZGFdNFdbNiIhSXQiaToiOklJfHpzRHJ6XiklLm1SZFRJdCJKWl1tNjtFOkZNd0Y2dy44K30nZH1yRlYkU0krVWpnXyYzVVt4YWBidU4zZWAle1IuLEg9CiAgICAgIHFdIi0oaXUsTkRuVVcqRSdHTix6XDB5XyotRzBDSEIjIXpEcD4/KTJzIiFYdEVRaG9YLWx9WSVdVkc/JWEzNFFHVFVBJiRUdm13b2t3LFFQKEYqbC5Wdm8iRnR3O3lTOG4uNXltVygoQl4+Yl1yCiAgICAgIHd0I0xOZVVqaF5lZ0M7NClmMH1xXk1Aa1dSQHQhP0UmdUs3PGdXNURWQExzYnVDK0pFckh6OztjaHk4Iic6elNzZSYqT1N9UVBHcmV6aUlga1EiZ2BNWCRLJj5fUiMiI1Y8YjpuY2pheCJSdyIzCiAgICAgIDF5Rj8+XkdtNSs6b201OT9gKGxEakg6fD92MWclRVd8fSFtZiQ0Pj5AN24ucHZxdjM7fFpWeCsoVSpRPmVBPGI7XnYwKzp7NDlIRFNBSG9eIm4lcT8/S1ExI0ZfeU0/eEc3Zjs7TDZjJmpPP3JdCiAgICAgIHl3TmQmKylPJWdmUnQzQSs7dG10JE1mPE89PTJ2dixxcE4hKGtDJ2dTIVBDbyxwNHB1JWohRX5aOyQqaW5TMTlsOGkjLjhzb014IXZENlhBVl9yamVkXGhAL3oyT1RYTmJqUCstRE0tSD45bUt4CiAgICAgIERTPVhZcGBsKilAW2AvS1pWPW52YXdUK3BFdmFpPHYuVFYvOnJtLls6fjVjbE5re3UwSkB5YklKOSprLWFCWHp4WkBcelhlbUE4WD8rW0xzYUghT1tFUVo1ZTojK1ZTUW5YOWdId2sxRmpubHJrCiAgICAgIEBNbWpsU18hW282Q1VsSFxROlB4W0FiclFIOywkZihaXnRwP1lhLVI8XlBXOUkhVXlMRTo+XiI0V1JFLHYySissZVxlXGUiRUImJjVBRDZ4JzpvdTYzQzprT28vKTFlcipOe315d05fXVl8SFA2CiAgICAgIFo0WlpUXkwwe0FhSU9kKkheNUJ8aVVuPD49WVo3akJXakptci1ybE5jWTkrO1paPWx+TTslIiRXbmY5J3VpYEU+eFs9LU0xWEhVNkZcZChpW2l8WipPdVpyYWxiSVc6NkArd0djcyQlQHRaQ1RhCiAgICAgIG89T1dPOy1iJ25ASDN1Nj47ZDA1QS8tfUVNeVk6PlRgL1dkPiVWPzpxTS90YlRcVCQwJUJtfnB5WzZXJTZ9PjQtI2Q5KGYxfHhXWG9bMntkflBZYnRDJHB7JGYyPlIrMihtY3UxcGxZdSU1eXw5CiAgICAgIEQ4aTxselJxJn12eHtifTc0WCVASzJ8UmNxLyY5TmdweCJjPUInY3hQPys4WFx3dGAsMmNdfE8rajRDPVBycnw3MCI7e0NbTFguXj9nQ2JUKEw1aFViMiguI2w6eDw8eUw/KGc+OjBuRy5naiNGCiAgICAgIHh+NjMoSEFyQidoX2t7b2JXMEpGV0BZZ29aZU08WDEmb0BgY2t2RG99P05vPkl9LjZhbzcucDpGdk03QEpBPVUwQFFpVCJRW1Q9altINU94YVl4b1IkTUAoeW1faDZCYjF3TiZJL2pdNzI1ayNoCiAgICAgIHByK3VeLH1gaWQwNyM7XFIrdH01eVltSC9mayMhWHFLTGw8LFl2Xj14LmhqQHY0LnFddGlCeH0yVmRHQnptdyglQSInVCEtODstd0R6LmRsUCgzKTtMYSkxKnx8W2soUG8iPFVlIzxqdmMkdjUoCiAgICAgIEglK31ZJnc8NDxUdGYscDFKZSVnc2Y/VFFgXVFkUUhrdWstZmMmY2BMO3Q8X1dXR1t0SkBsMTBecVJYJCU/XXh9MmQmQ204K2RlX1xsQFZQciMmMUxAOEovKmgiLGZVaDMsM2ZWTDo2YTMlI1tMCiAgICAgIEtAZkAxJjUmOSRSWGMlSWpEJ1ZsKV1sYi9MUCJ7SHJMKExwZWxjX0NMZSgrLFN+VWhBZktKbjNBazpjXWZrOTpzPTg0VWNRISF6NlZYb2xOO047SXNWfCk9cENINkdmfXckS153Rlw9VCRmRH0vCiAgICAgICU/QUJKUWd5aUJQfiFqYkMiPjEnUT5VckNzejRDLUNSPlh3MFM/e1BCSEF5XFNAakonRVMqa1EqRCgzTTpCNXFpOTQyJ0deJUcmcXFyZ2E4JiROYGExND52QEdQRCttJ2AvMFtEWEZAWjBqU1NZCiAgICAgIHpdaiNCd10ndVdmKDVva0ErKitCXGhJfTEuZSlwZWQkdTBTLSNPflZeOlZkUUVHfDwjSlFwIjRBazl0SE8/aC97eVBXWnYqVyc+LW1zeWxNV3Q/NDU/ImZXXjFcWiV6SicmI1ZmWEFzXzd9RWctCiAgICAgICQyaVFgalRqeXo8akQ1ZkhUInkyRVJ1P2xpPVgpJW8tZVBnO0lDTiYvYFEnUS5HcnpcNWtyNydXay8/Vm5tWi5zfDlLJ0YwUWp0M2lrYFlHPXhqd3plJk5lcjA4L1wlcyJVU3AzL3hDPDJ6WTouCiAgICAgIH5eRVd4U08zfUhQVkAiRzhXWjY8ezNPSFt6QzQqJCcsP0staCdgN0s8Vk5kU2EpenpnOjhzOWtUbmE/ZlZnLHVIeFwhMmRoKG4tY2F3YDl5THxBcDRRNF5yI19+KT51IT12bkwvK35tczt7b3VSCiAgICAgIF49b1pAbyRxV0JgIUJcNHUpOnhuSER7QElSYUFGaitVVH18SiIsRWFOIyNQd3pRaShPMWIsZkFVbU14UychJFJdYixTc15IR1h0S3phPT9nWCl6JV8/JTI5KVd+YlA4Ni1JWFhaQyZFfG46N3QiCiAgICAgIH1sfE93MDs3MixaZH4iZ3ZEPjF9YCQ+T08wWz1fLmkqInFXRVdQLSFec3dXc2pwbyR3dlttZXlTM3RhKC5ccSFmYXpebHFAZyo5d3E7UnMkKkAkcnlja29OeWZ4MzJ8RWFjVDRhQ0xHbTF2e2RlCiAgICAgIEVJaWloOlg4T2xPQX14SGYucCMpelRkMD4oIjxHYDtPRDFOYUFWOiEod3E+TD8ueEdxK31QZidzKEhxIX5nInVAYW1fZSEteTMjI14taEhAZ2QzYjJiTHlZT2dAUzI+YVBbWys4VG42VE5Pb1Z5CiAgICAgIE4zS0hqOXQraiZ6OzlXTmUybz1NLnN5azctRzByWz0rWmc9TiVLZVIoeC0reEtCQUA4ayZQd0cxdipVPFlyMFdgXmxSajxvclRSUVNuUDhiTEhAeDh2NioqVTI8U24qSkcyZy1ZQCZZW15kbnkyCiAgICAgIG1cP2JUcldyQmZVPyxPM1R6JWtPJVtEZz05QllWTW5yVj95a314PV9JcWRuTyZBak5MOVRZdDVremdsYU1ge0F5Rk9CRUsyMHJDXmQvezdvLk4lXkklQyYlREQiWj8nSjE0YnY0djhJI3E/KjZoCiAgICAgIHpLJkh+Nz5lL3AyY2JkWH4tRkYkMkRtS19KfiJdS3xVUiFDJ3IiLUdgUXZIXSpmX1AkfE9YMi9+e19rIit+bjc+VjxcIX07KHlUK2syPWRjfSpSRiFkdCFhVEU7Z1l7JkdpRzg2QlFEb2BWMn47CiAgICAgIC10Iz4uP2pYWC43UCFTVVpkX2smTjRQYS1+bEZ6Jyo7fjZXdkhdMGs7fHMzU1pZQEgsTWpFfSc1VXUsZGxYVz4uPFpWbz86RkhoIXE3ZGY/LSN2bE9YMSIkXGdIYzhaUV4rZGcqOiUydy86aGVfCiAgICAgIGB9dktyYlM5OityYllfNE5tSnV6Lk4wY2gwcjxbc3tafW81YkxpQEBUe15ESl91UCVJK0FoYTkka3YkN090PmlgVGdzOD8uWDNZZCtMfS1IOThdQF19e1chPHMmKyF6bXh3WzB+LHVkaT4tcyZsCiAgICAgIDh5Kl09Yzx0d2x4Izt6LzpyTVtdamRCYUBfLDNBJ1pmT3ksIiR3ej5DV2c3L2o9Tyl9XjwwSDksYkxOMUVGX1UvLmYuY3kjaFtxLD81eVhBMHE5YiVHd0soQyoiWy9wVkdpTW8zJWYrJFw3NERpCiAgICAgIHxjQD9wMWlhWSclJF81SWVmR09RfXFtIVU0LjZpMjo/UiwiZnpxPyxJendrJXVbbVUpI3xWWkozWyN5M0ZhRX1rZ11qTWVfQGNXRi8wdXRSXnwuV244d288OlcyUWZ4QCReOm5oWHZna0Q0VytRCiAgICAgIGViP0UpTz94VC5gQE0qKTBbQX11U3N7VF8pZz56b0xOUH1DXnMmfl1ESy1hREklUDJ5UzFAQnV3OmpZYnc8RXRzQk8kcFROUmsrS1BSV1FvXUpfdUJiLFFGUCJtV1BifjQxa2cnRVdVM21IdS9fCiAgICAgIDpsVH1MOSw3Szc7Ri1RSS1TLGN1PyhAZzxTdFVXJHxHPGVwdjlOfFZ0OnNGM3dANFBdNz1La05TSSVnTjArPnglS1BTVkcoLmMjUVQ1SiZeLk87LFt4aDUxKEF5eCc3YTp+Jno8OzhtdUp3WidhCiAgICAgIHchbFloayxQT1ctYiJ+JVp2SGVmS2NYWz0iTmd5aGU9Um5yUEA+YXNKdX41ZXV4OFVZXX1tOHpAbUZvejxsQXExWTRxVT1Hc2slcVF3PWNHR0RXcy5rJjNnfENyJmQ3YTd2Sm4yKDppN0xRRk9TCiAgICAgIDFbWFw7IzIsNDlINnYiWydadmA/c2JMPCtyTmd7emMmNkY7W1QkJX50fEBnNWwraH1rYiFPWHowMWdzbyIwUXRMUjhBQ24pMFUuT2hsTndxLGsrdl9xPCg2bj5JfnVzYWZFTGl4R3d2Um9fOXA9CiAgICAgIDtlKD4id2Z+WG03KCYlSkNYXjR0STUtVjduXmBIbGw2MV5ERm9qalNhJEsrM0pQLnE6JF51YTBhJzI0KWE4Xi9HOG0zV2ZtV2ROfVkvSTpuMS0sQEYqWCx9dllueWZldmwpO2t0blRpWT1TQStNCiAgICAgIFU+bVM0R1QjIUlbbWsnal1hI2g1XUlfXks4LGtsXVY8KFt2di9qYEtqTSZ+XVtxXj4tTG1TJ2orWF1PfElcKW9jYktWLEAyMChxSThiYFZdJE05ITxsJzFEWD53eSVwaCg3cX4ubE91P3NqcDBiCiAgICAgIHlhJ1U+ZVEoVHNUTE1wYjNLdlYrND5tWypcZiFCUUFSN3d8KS57ZytMR2M9JXkrbjc6b1FhYyR0QDQ6dWJffnArOWReTFxfdVcnd24/MjIyc3IzSXRrYG5ySVd7MjM6T1E9cS89KW40ez9hT0NkCiAgICAgIGtkLC9OaGx0Jmo/bn0oPF8zLX1XXG0qLW01KkZteUgnSGFTRENHY21oZURmQCZpSlROTXZKZz9nbCo5PFI3fHlKVjwleVc6Yl9AeSlIeTtPW30uSiN0eV9vUnFzVFNPLyMhRVsvMzJ+PklZIk4qCiAgICAgIF01KVtCLnVPaFVpP3Y/ZmpMNDw+Vj5MOzJYSVonfmIzZycjIjFuNX03L2VWbGI8YzkiVy4yOCxcJ1xidVMvPjFrWTlGWEdHZyN1S1FFMXwjSztOfXdKYzRiQWtJcV5xdTZVeEppKSshfmlrdiEzCiAgICAgID9jN21nXVAyPlpkIzMlL2BeUlx3ITFHdV14cncnciE1bXMkKCczfCktMigsdlRsdipfRVRbN21HSWh4U3ZeQCwzTlx8QFNHXi5SMTwod1Y1YCJLY15bKSxrL1peZlBUNSJyOHopIVsoM1JETEFTCiAgICAgIH5PY3lseEgrPUZDXFQ+XjhqbTkjQm46MSpzVTA2XD03d2l1M2h0T3c1LjBkVT9mST0pR1R9UjhdJ3hpREAyWXtqRiNKKStJLDFtSC9bNTJVbCpBRV0yLkUiKjkjZWQvXFR8SWhDVGdrVHF4K2lqCiAgICAgICczM3woVjc7QVhZb19EVk9HUzZFNDE2fV0kS2U3eyhVbS1POVIvX3ckZSpTKl09T0AjV3B1ODtjMXY+QldMM09pcD1MNitVVWoxflFiMlFxLSFjIjQ1fC4nPChNNT9VfX1ZLSUlTS1LYDx7Y3ZJCiAgICAgIDNsdFxTZT1XcnRReEVaSTkwIi5TMUQ+cCpERiM5OmFoL0N5UGlBKmoyO2xLOkpPMWI9eyw1ZzUnc180bzAyLC0+a0guWT1yWV87XzhlIktgXVxgT01GcS09QmM2akwic1tHJlRgLEs3JUNDeX5aCiAgICAgIDMmSjkoUWE9OSd9Tk5rTSlpMTQnWUFWXn08W3Q7SCJlQHlpNmlBWDxlfGlBMzEnTXE/MmliI00ha3hQdCVdaU1GfUFce0JWTytPLjxLWGB8K0dJPFtbRFFDZl09T0N8c0hQZisjXEotIU9kO3JbCiAgICAgID5TR1Q/IXI2cDQ1KUYtQihnYT8kYXU1T2B2OEgpZydVd0h+VE1FTVktbm4xRXZHOygnVGhYKis1KDNCZGxMXmsiYklaWnhiTEB6PmQhUmpeOEIxTHQjRkFYV2diPmEqe1wvUCFrMidjWCQ6fSZACiAgICAgIEl9YXNHZWIjTFRQWmJCdUY6dDg8Li47bntBU15TQGsrOi1tSmNhVidRbCxxcnEhfE5BeXo2Um8hbyp7P3hBQTxjXHp8ZldzO29EZ0dsQiR+Pnw/RWMzYnBycUR2bHtMPX4/M1skWn1JclRHXkthCiAgICAgIDVQTTBoJFdzRVZ3MlxRQkoiZ1Z5MnYudWJrZCVfKztTTCZeQ1Q4MT53V21AWVIwLTBLL201UFZZLnFQQiUoNEwtIkM8QWY0Pih9L1tbUEVsU3ppQix0Jz02ZD4hN3peXnIxNG1HYlc0bD8iOyNACiAgICAgIEQiS0ZHYV5Mb1hzV0g+OV14YGVsRHNycCFCSD1IajlDZkcweG89IUN3WUBkXionRURbaGU3Wzx8TyJeR0BXVko8LW9kaztWYCYoW3wmNFVNSS9QcDN3OkQuLSx1Mkd6SUBzdVhELEwkVy01W1p7CiAgICAgIExoamFGRiMoK1B8VlZGNXgmNk9gSWN6Nn0yTCQ3ZmEqOm5ieGtUISs3RC0zUWpOW0RibiJLNVVcc1hofGE8OkZbbCgnWlhoRSFeIy03aWlZemdRJlhCXVRgKSFnJH0vcWQ/L3M+JCcwOE4rInRGCiAgICAgIEpka0VeIiRcOUFOJDNZaS14RD49VClCS3x7J1pXVDVBLnVMYCwicWw/JFInXj41dnw5flglWHpYPGgrQTNGcCM2Y20iXy5wcTFrQzJkOlNnMCdbdyR5eGYucEx2Ikp0Xjo8U1NGQmk0XmNPPSYwCiAgICAgIG9eKU05PE9MbmlOdnQ/MVdfSmgrKShwTEBsXmRvLjxVdlh4VHg8R09uRE4zOWJdfnpfPSQycik1c217YDwhSjVYRXZ9MFxqeD0sKjYsJF9wdEAkLj8vZnx1JEVMMFNIRTBHQnZhSGZSRyU0NEJsCiAgICAgIEd7MC4tdWZXNTpkTlJVbHFMXCR8emtid1wtQS1ocDZRYzMpQUpfezF0ZFR9NHxMKnhTPWowUU48eVA2fWZrSUJscT9QVWBJN2B9TTUnMjhHZFc8d2AqSXRhJXdeV182XmEzZ2Y1UGF+bUZ9O25pCiAgICAgIHhvdiFAWXVjSSldVl8ubGRPbmw5XmJpJDpxSSI2Q0lfKSFeNEcoSHdkRENsQT1hUDtmJHddLz9lb2ptR15QLUJqJl8vejh4WCdRYiR9X1QidWVVIilkfVYxMjBGKWddMTskTzM+W190RV9ZTkRUCiAgICAgIDZQYUF9JnN9eE57Qk55fT9LNiJ9Oi1kQyI/KlwlL2RKJTJDR2tXMWp9Vk8vVjFTenkoK2Y2LGsmLk1cJFBXY2daW1pYUVhVZn0rVVtfaXI9ejQ1a1I9LldTJ35hQXtyNj5aVHI9TWMjakZDP2cyCiAgICAgID88K29oZ1kma0laZ05edH5xIStnQypDbyVuLGZ2TD1SJUhoJngtfDB2ITc2XidbbGsmVFVQcV4ieHViSVNwMFA+NFw1UkVKXmBYc3xLeDJacC1+VSszVXIiVyo8Xjw2SUM9dEcmbUdnXVxza2gtCiAgICAgIHh2bT03aSlnIyphLXx9Z1w7RzZRS1B2VT10dF8ialcsXW5DOnxMOmJDVj9lNktTTUdcQTs6LVVuN0RMNkFjTjlJeHlWamJxaD15WXI2XVY+blNbKkJVRXY9VWA5ayhfXFtjI3h6bjxgUnV9Yzs2CiAgICAgIFVrbWoxRFp0USEucEEsP0pEMiNSO29WKGVpIywlXG0icj9HXi9HdmFLWm5DJGJicXV8OUotMVhocFlrfE5wajs1cl1oQ0VodjIuOlo6ISp9XW1PfXs2NGA4WlJmaylbLGdlWWxlV3B3NV5lTSVcCiAgICAgIDU/Q0cpckhHSVBbfFFVLihtMGZdQnQ7LTE+NGdqb1BNIz8uXHlEVFkkXjorRjJBTSY8fCNBRCItZ1tuVj9SSHgqTDlLO0lfNH0/PDtoRylFJEA/ZCgwXSUxcGo/SCNafG96KkYrSj5YYXR8QXZ+CiAgICAgIF9GIng+OD04O2V1U0olY2Bqd3xxUmZHRyZ7U3xcTU9KLHJ6a05aPlZGcStnUldYRUVCM09yPERQI0M6WUt3fSgmZmQvKTlQImtMclE7cig7VXJNdW1Ye1k+cHo4LWZbWVdcPCgzYD42XC1waztXCiAgICAgICVBKEUlfSY+J2N3IVRXLUFHIXNhUkRKUDBeZChIRXZTXVYub0ROe0p6JyQwXnonMFJbc05POkVFMC9XZSpgIXYqeV9vIixaMGckbHZFNU9CQzQ9Nmx1TSdpS1BTKDxCUlJPMCN9KkxOTzJQY2M+CiAgICAgIHY4dzhcb1lad288SjtkQUdOJyYwWDAlI0c+JGhvQWRmO1VOSzo6RytDazFqUjBaTiVGOyZ2MUdiem84OnwvaHRvcWBZWjs9MCp+akwoRnZDdmNwM1w7Nlt3UyRDSXglMidGMCQ7LlBsXVxWVmknCiAgICAgIGtbeXhONVMxJmgmYiVNK2pXTEImLDQ8QH09Q1J0WGhmXy9YfHBOW0tkXV1BSUUubDE7QV8/ZT1NPEotMlo1NUEucSI1fVYodipNdTZLQj1LKTc1alsuWH4wKkk0ODFoLDw8S0dffkh4ZzkpaGAqCiAgICAgIDN+aC53KXouTFhlb08iLC1PWG9+XW9mcF1lM0pwZVVdUX5LJWViYWdMeXNMYmRgfVFEWzR0UGh8QjxALmFHQXhDYy9sRlpZSDNVZyVfK1w2QC9YNHFFS2NzK3JmaXw2JFY/bUYsI34lOl4taklUCiAgICAgIEM7Ol5+LU1YYlNpX0h+aW1fcW1YP3ApWiImb3ZOUSNTTlByczFobz5XTzQ1Kz5GSyh9eEJ2c0Zcbmt9aWRUKG41Yl09ZW82VVZCZH1GLG1IX1V3fFN9NyVSbCF7SE4mI3xfNytDXnpkS1Y6enF3CiAgICAgIGErVSFqYk1HJ2w6b0RmIz5rJEdzJFQoK0A0SVo7cEVMVGN6Oz43eWteTlJxe0I8ajEnO2ptJy19Wn4qVEJcJThbZyFNRFpXK14+P3Zoajt3ZSVQUF9TREtiTkw2aDokYSl+OmBlbWlyI3dJSCRKCiAgICAgIHZqaUxTRVtCdTg2OmFbWFNGL1t0cHhNcHdnNS51KG9adHxUejtMKmpFN05CPSdARDUpY2JceWxJQ35nSytpc3E5LjJLKHFtTnVnXUE+SiQjPHE/ITVBdiJNNDMleHs9TD5SOitfZSdGMW9lb3YmCiAgICAgIHlsXXdMbVs2KVtxJVJ1fjtBVUd5PD1zaXg/MnwlcWV6d1w4dndKLHRgVFRFZVclVHdheEs1YksqVGtSXmokPldyJE5qMnglUSJkX1IvQGIhYCoiNicyUHJGUVZpfEssJyo2SzFsZDB+YjZoXEJnCiAgICAgICVkR21sSn53fTczcW86OlNmOCtBdD9QMCxEZidvWVAsfCM/dyJfRHkmK3M0ZjxRalZwI049O35VeWQ7R0Z3RHtsYGBvaEJhWnBhO3ZwLkVGO0dsV3U8b3ZZVzEmdm4uT0gqPSQzbDxHTnQ/YyF2CiAgICAgIDReSk1gKyJ1LHQ+UUB5XDB4akp6X31XLmVqam1kemA8dlhWdyRBayE2SVx5Y3ImKDMyfXxBUy1PZG5EVSY0XixbOlFIe2BcRSN4UUZ1ZFslQmMkdVFQeVkxNUNZTys0XGRoJnlEO09VXXlNIkd+CiAgICAgIHs3IVRdIyxQNjlzUGg4amFpVFxiKyhpPU0ycnNfK0pPfGoxJnRXY1ArSjxKPXVTeHtsUFNMLydIZUE3OFxFK144XiJ4XU9mWWk9YDB1XS9mLGdOWHctVTFGLEhtNSEjSWp9cH1+aUVbaThtNVQ0CiAgICAgIDtoOSQlbCtHVzQwSzt5RXYmKCQoVD9edzlVJmRZTTdNd2lEZF5gV04zUUV9Ok85M1tUJkkzaSx0Mzd1I2BjZksyNVFHYUJGKlRTO1Ipb2ZtV0xkTVxAVl0+PVomQD9CeCsrJyJWK3oscEF6UlxKCiAgICAgIDR2PCFddjAndj4jVmYrQHYiZDw8JyQiV3FLQFRySDEhJnkpO3JJQjd2QENnUjtDdzNVfDEzXUAiSFNSSHQwTTc/cT5qUnhUNTtvfTUtPVNOcUVfUl57JGtaISU7P2wsci84OUBTYHxALGRURz8iCiAgICAgIDFaVz9fWzh0Vy9gVFlBKm98Q3B6UFNeMERNVzN6SC5wL1B5cU1hfiQiMTtrW0B4IllQTWt3W3NjelAuTXI/PWQzLjhcVnFdT0QreGZNaD42UUMkS3Z9RDBoZWA0bi56Jmh3P2ZMLl53SH0uXXdvCiAgICAgICM2I2xvb29fYHFIcmo1Z3lJXGhQLlx5VCgtITtCdDNkUGpYeD5+MCdFOyNQM1s/LSVbPF9QXTo0ZUt4LEd4K3QuUmclXEBLPlZALUtGIm56YWAtWD4uLkQuanN8c2JmR2c7WEFWSC9GeHA8S1Z1CiAgICAgICJxRCZkPShjcXIie2pPKiQhQHBqUjIqPjgoRHRBdjZsJy1hYj0tUz01cCdWX351XiFJclNXVVlMSFQ5X1kvaixgd3VVX194dy8/YzpWfFxdRHE4ZF8wYXhZLTdSYjZKeig+LCIhKkB8TCRzIkk6CiAgICAgIFxObjItY3E9WCdaSjp0ekhKQFIwYmhDZVpsKmkpU2JvbDx0UilbRm9oJkctOCpgJ35mSmNHLzxUPUs3aS1bTD8vfTlpUTQvJ21qLzVWQSVCVVhoOnFONGFmRWR8dj1fQCokTFxeLlJ7T1d2YEsnCiAgICAgICtYRTN7OlA5JUJEWVZBUmFiXEhVeH5dX24ubU5+LUJaaU4uJDRqNDFLWXtPRnF6fmIyY28mfit5bDdYJUFkaGkiMyg7YlZZLz47dTBqcUdzJ3U7JnVGJy9qe219QUZScWhRVj84PzUqMkZ8cVZ+CiAgICAgIHpnK1M2VEQseWhcWD56aDwuRm93bkE7QHVOcy1JKUd7bF04MSorLSxqb3JkfiZneVkjcV1lLE1BVDNgMjhOLjYiOmg9Myt2UyxsVktEQDYkXXFLYWUhSVRVLmV3cXdlTDghVWNIcFpbNX0uTSJkCiAgICAgIFpyRzYmKTxLSSFFWH0tcnQ4QCdbYGEvPGx9NHk5d049TVA4e09tUCZNa3xiU2p9M1AwYixYM0puUSosO1VOODwnYjZsXEZhQGB7ZTAvflMlW1l2PmZWOHx3SG0wTiNacSo1eWMmb1NlPUdpVFlNCiAgICAgIGNBdmFTVmFuP3tNcjliVjkzb2prSm01Rjx7ci1VYGNmaHNxIzN6KDI+QS4vVTglVHE0NzR0QjMkPDc7TlxrTlAiJHllSkU4PTdAXVVIRUU6Kzxfentgb3AuPXxAU30sQXlnNnFDTkpQVFFESzhcCiAgICAgIC9MJzF3WS0zVmsrRFZFT1IiRU4oQTNJK0F4dVNsK2AtWnVHbDZAaS4xOEpWSC97Kl8pVm9oRElbYGVkXk8pe0tTbFdAa00sd3NfXntqOmhGQzVUZW87VS5QOH05aUlyK0hHJnwuQ09TfSVaRSIpCiAgICAgIDEkUWFOOUhpfkt5VUdAWkpWQj08X2s/Ly05XVAwa2o8MyYkKXIyMS9cS2cjSzk7X0M0ZEJmOjxCUVV5fGl2KX5hck5yUnlsOGIue0kkSmkyIlRfL1RwXl1hTkA0d2x4UEtMIkRhfmRBdjpoMkEzCiAgICAgIFtgQkhLPWsiJ0whNCV4eihMJEk0Yz1PRlQ/aG1GIyVxeHlQI2NyJmAjTWopQVJIfXRNfmIvbE9uPztdTWJgdzpPOEprN2tARDBQaWF0bzx5dUtSfXc6QnhELHwkJU9jPnhVPjNPI351Wj1HWnszCiAgICAgIHw0M1hxJ3dtPjFdK0F1aCdfNT8uPmZsImcxaSR4SFI9YzBGTSU+aFY9THRudlF7L2tIOEJgNzZaOjpYOz1eLG9VRSE8aXFxeTlFLSpvU3YsIllUREosWUt2aWx0JW5HJVxlRTthOCxfLEs4XT5tCiAgICAgIH42dXAzc2xjcXVjQXosNispTG50NFNPKmtGK01FOywtYXxzXi8lKko6Ji1nUGZzMjpWTSo2Mi00cydvcCVEX0NpfX1FW1gnNSdCYC1hYUNVMCtkTCRHKGJBaUtvWipoWGh5bmhJakAhc3JCYkdMCiAgICAgIGA+WiktdWlOJFhqLEtrdEFDVihmOiJ4SjB4WTMqVXF0L2gqe1RlRzImXSknP2VsQ2RWTyJGPF08PTJDeFYlKFNAJU55aFdWMHY4OmolOTVNRD5ha2pLOWxJMXBnVTBybFM8IVAtfSVERzM3ZS9oCiAgICAgIHNkVHB8MHgnSGBgejopXj8oIUolbTpgNSNhXXc2RngrSVNlOSpaLGAnYUlpd1trKzR0a2taW2woTyY+fkFKXFw7cns0NUZ0YVUuN0xRVCVPJGxBZD9wei44aXRxUVdYOi5cYzxkeXt4R3A9XDZhCiAgICAgIH51MHdrVjA4IyhuQFZlaSUpfiQyRndCJiteTyI9RFdAPUFQeUwvdmFVIVoiMmdgREdTYXsra2psXWRkTWVsMC1nI2BRcUMtMi9QK0cuUG1ZVEBra1g3cSRFd0hddzEyPnslW1RNUHg5Tncicn0/CiAgICAgIDcwQUIqP3ViUF5uZVpdNn4mXDB5OT1HKTdQXHw6T3kzRUEpXEl3bj5eW05jJS17P0pUOCQyRXE4PXB1S0A9SlBOP3YyYF5CSWhmKmNDSzxQKCxgK147Tm9IUFdxWytwbFRedEhsT0ZCWDNbKS9HCiAgICAgICxVXVpvOy9UQ2hsZ0hjJSRIdCpDOHIzKEU9IXtmYHFOKigoSFMzMFVbKzFSeERpQXo5WnVtWWlZVmhnLndxJ2M2OE1HNTRteVtLZlkrRz1rfFNFaTcoKTAucT1sVi9UeURyelJ1IXJaS1Q2W1ZBCiAgICAgIEUsYyxeMVswIyhPXTJPdiYiPXNFfEhwUk4nNCxiKm5IP3BgJXt+KURZOGo+ZiQrfmpSXHY1c1tqcG99SytvT151VCRDZ203Kjxabmk9ZnNzMDYmO1A5LmMlZG5NREEzPyRGYisuZzxqXEJhSlppCiAgICAgIFZfQlRMXXFMPUFrUEZ9QThdOlNLQjEnfVUyJm5Mcnx3Q3JNM3ZPaGhEY05pIzx0VjFia1YrbSxHezR2bmhPZExvSnIhYFk9d3giNkI7L089e2A3RE1oKCJHej0jb25wKWV7ZSg9XyJEJVZifnRlCiAgICAgIHQ6P2V1K0FEIy5sYGxOejBvcVgxYFIzJHtIV0tdNitSVjc7I3U8bHgvfSZhNCw6e3FSeDllbix4V0I9JzBgRz4pPHVjaTpeLUZ1TlJMXWA0ZWokSUJpeE93Q0tIT30tXWVXREMoJSJMTDNQJ14vCiAgICAgIDdmSHp0MEQ5LXQsTUlpWXorb1c+fCsoWz55UW9LZkV4YkVhbUtvTD9vZ3stVUtvb1p3OD50TiY4fCk7LzA9YWAnYFtQNlk2WTB2NlckSj5HbkBhOC5UO3k3V1pGfWhpLT9BNGVXbFosPSFxViw9CiAgICAgIEZSbTgwPVNMcnUhI115R1R3JiUoOz16JHhzZnRdXkd0MSU+bWk7NnlGX0gtLUxifTcqWnRiZTx4NTo8IntCWltLVCQ7b1smVHZFXXhYdmBvKUxHbkVUbDdwNnUtJ31RK0BsXCkzPDwmMnA3SUNiCiAgICAgIFJzeHxPMjlKOVcjfXlZcyNZSShtZm1FIyNWaHhtYjVXdC9HfDF7VXVlWEIsJS9TcmhkQCwvTlo5bnVKO0stbkR1IlwkeDE1OHJcekowJF0vaXMkVzdwVEoxKTsiQUZDMEptWzp+QjUuVWhcJm9sCiAgICAgID5+Sko+YEV+Y11CdDE4SGIva3RKQyZ3YjhTQjEoJDBWc2YxLzBQLUxMTGp3YlJMK0o/L1VTO286SC12ZUhjK2M4eWQ6QUJdXT51K11ANHBRKnBTOlRpJU5kaWdtIS9YYT1NTUppNjFwXEtqQ0BNCiAgICAgID86ZGJ0KSUmcUpockMnIXF3W3BgPnUpKGFRdDVMZFhjYDFMMClKJnhXaHZ5SDF5WEomfWEzO1x0TCc/O206UGFCcGQ9an5iaFB+SyIweTVKbVozQi9xVlBXQGspNEgnYkwyVCJGUTltV0otKzJHCiAgICAgIHgvLUYzfGVpJ1d7OUlZLCo9ajtjQU00azBjLCgmT1FqcD5aViZ3S24rMld4N1UjcGxMbSwvUVZvLVJcJix5MixPXkBnOEM7djEjNSVmRDExfkNUYC4tQid8QjBaREcufXVfL3VvMnBzVl9PSVtcCiAgICAgIF1hS2FZRDF0KTFuaE09Ly5MLEBMJ2NdKCJvM0tqLjRpU1tlIX5uY3lUdUlCJVEsMjxALjoufmxZR2w5bjd3QU5FJzI2LCtoQFgpNWZsU2NNYXN8YUd3bTBRUWRqKFJCaDZfVjk1QnF6d1QxKmNaCiAgICAgICd1WyZNT3UhdHYmSSVBMDxRLTF+ciEzaEJFMCtvMy5cUDM0blMqWmlmVHUoPUclQE9+fDZvTigxTWBuNUR2WVk5S1VDNGN+eU9fWnc7R0xePXRgOCVfWlRgJ29FT2VLQ1JMcC84KVUwSS8tRElZCiAgICAgIFtsUklFYH5AQDRObD1sV0EzbHdDQDJQJ18qTlx0JkFdPVp6PVFeMDZHWTBaQklONlAxeFx6PTUtWTRjdCg6UTouPGssQjlRTyQvXipjWWE0Z1c/Omxic2kmWXJhYUhAMVAuJnw1YzVgZUtFMCthCiAgICAgIGlPYC5QbWdELl8zTyxOQlhROzh0YnAyTzR+cE5QViQoYWBVcy0scWplWnZCaUpRXHtRbicpdUlTfWN2OUB2NjZuNVo2ZlEhQTZJSl5IYDYlYVlVeHB8TD1LbTREdzFabCFYL1ZkXVdWfHIwXVpbCiAgICAgIFJRWCgoX20qVTV7VUAlbmRCYVI9PHBQVDBQc3skImcpKGttRnF5SVJrazM+U3Z7LD9xRXlhfk1vW1VnVixAPEZlT1gzLmo7WHVReHBzdGA5VztWOzlAWXZBKS5rUlpJbVgvXzt6NEkqOENjdltfCiAgICAgIEMuNnd8MEAjUjA1ZixmKn01Wjd8N3JtRT5LKzkmJyE5aWgsaW5jVGdoSC1nWHJBfk8lOj1FXnZKL0sjalkybjBhT2lqOyhSaUtLWjY2KU03YnM2aGI3QktfWX4jJVtLVTFGQzpye092KWFvLnBACiAgICAgIF5XPD5yejRNKXdOQztnJ311Lz4weClOWSxbMlB8XmIsQU5XVUlGclBoSXdoVFEyN2taT1YqNiVEN2NRb00sVDg9dSI5K3UsNHBNQy44YihoJSYzVk9saXljXDJGU3QjOktBMmh7dzYtOjFZaEBoCiAgICAgIFBub3dBLVZfLDlNL0kzYFwpQVtDU0RLKFRSTiNuYE9kcS5jYmJsZDYuV0hzcT0zNCg1OnFNP19paUBNWSYkWUIlNl17Vl9RK2w3bUEjIWpKWHhjKUBOKE5JIXdMeWRtQFN5L3F0KiZlTGQqPlJsCiAgICAgIGgmcGojKk1PNTNsPkdbODxQNFdLZVBKRG5JZVFRMXxOfFBCPX5odkJJM2NfR2g/dW9kWzpNVmI4MyEhbShONWdHXnNeQH00YSg9Zj4sNUA+QT4udlUuUlFUTVNPVTN1ektQc3FsNWhkOEdbISMlCiAgICAgIDBYOEV0YjZkLlpbU0AjaS53PldodjgzOSkiYCFyPSxdPVxRISM/aHA4JmU6O09BUCsmVldoWkddamB+XG56RXYucCxiKF1DSlx8MjosRFxpR2tDeCRaXlVqfnBvOU0mJFgnd1QifCFiQnQpdUxOCiAgICAgIDE7TmApITF8WlFRL088YSw3TGZsfjRxRzJEVHEwNk9tI0A6STZmY1IwSDxZbURpP3lzUHQ/Q24vLkhdUGZtem5oQXRWJDRAOnNmXWtcc2xoUi5way8kRVBPRk54P05CV08yS0o6SXc1cmtvWnh8CiAgICAgIGZLIXo8W0c6PCd0Wn1TI3BCIn1XVylOUjZGQSpIRDdYMS8/T0E9c0V1dT9rWE4tSzR0QXRjXDVFTlVpayg7IX5PKCwtPC1iTGRtL00+aWoraSIpUzlzYUgqPT9YPlB4YW5aQig/dUMyY1Q5STBmCiAgICAgIGAnaz4uI3dEe0VcRExARVhAKGVtKn41ZTNQamx4TGVoQFNbRSltREN6NCpDamUhJzkxKnZURX01UUpPJG5vTjYuTHA8eGlybHBibidrWTx3Jk9sV1N9YV4qLX04ejtSJFN3LVE3YXBVLGpuRS9JCiAgICAgIHVOJFY3c0VrbWlbNlxTbzQ9L25gazxOZCxVbGxWPyMjWGgqWU8lSXg1LnVPXypeaHUrZ1s6YUxPNTMiOC4sV2QsVGQuXDA7ZUh2MWw+XjszenJRbEl2Y2Y5OEZvNXwvYGZ1OC9fKl0oOlQ5ZTo4CiAgICAgIHB3Sy8pLWlrMlQ3OkAwb1olYEplaSNDUzFNLmx8Ykp0cVFkVVl6JGQuMTxbS2RVOlZDQk4uUHh6VEslX1NGfCIiUkNFIXVVam10VDo8UGJRU11MIyxdUDRIXlh2Pk1USEkhSF1CLlNYSnMpMDhgCiAgICAgIF1aZ2BqLjZrS2Mqb3skd1E6VjhpXih+LU9Pc3NhaypLOlo+SHxKfGIvMUxWIz5nLzd0VD5yImdtWmw3VntjRlszJCRDZDxFb2whQFtRVy0jQmNzKGlLeC9YMmg+T3I0d2J6MGR0R3dcUilXISthCiAgICAgIEpKLFtGQW15dT17OVp1Ljd4ZiE7UjRHYStkSXt2LHN9KmtxKElfUSluZFZqNFZucTxvPmRCODxaeW18cUY8MldNa0tPRCM7cWVIUHkpWnUwSmFfOHZLSyw+On5AeXU0QWFzdHI7bjFCXl8xTXlYCiAgICAgIEU9ZDckMGdraDl6RygxPVRaSWMoTWhmXlYkMzx5WUhdZj9ESXZHeX5rYTJ0ezppSUgzPmcjK2RuXHl+QiZhNnBkRzxNaUZSbTRQb3YtfTVoQzV3Zih2SkUrfXNANntJXTFXNyp3UFxIK1E3Qi04CiAgICAgIE9ceUdyIT0xc0FOVTdgIkE4WWVbUDMvSyQwX1s1SjldXzQyYTYvfWl1JkB4IUFPNH5HSic4eVp3N2NPQEtYQC1IQS47cUstPSd3dGI+Ym9oQGkkcF5TIzxkUS9PNj8hYXdFMCdhJi9sdHBqXyxaCiAgICAgIGJLQHV+aCI0QGF7VSV+MzolWkFlIXlYZHA6ejJEQCg+anRGW1c8Y2dxZ1JLIXMwRipYdW1YYFdNTnooKTdkIUxrVFw9eXEvOmV1TV48OlguZm9oVy4pS2dkSid1JzZCQSxiVnktNmk3KzsiU3xFCiAgICAgIDk9NjZIMHQqeGF1QnVEJkJlaXZ6UnNCRkZZS0U6XlAlJDNaV1FqIi5iLyV+VENvbXMiOEVwSCNmUDVKPDNLMTF0TEN9TGR7T2AkOTh4OVp9JTolJHpdXkIsVkg0SStAfVx4STl7TCpmR2ltejluCiAgICAgIFs7ayxda0w5fSpaaiZpYz4oX3onJTBCNCoyIWNDe0djbkF8bENBI1RifGFhOX1ka1AocUYoU0dTTlU/JmdDWUIxVjZtTF9GfVVyY3cnfDpxNUtRSjVbfURcM3VpeUxaQWs9N3tQdXE+djl9NHFrCiAgICAgIGV9O3d9NExbSnsoPnR+dC1vYXdReyw7PmZyUlpcZUxPXGxRSnsiYEheRSxsIzZgWGVEKTtuRkpXP1ZrNGBhLiEyVnQ0ZjM4JlImVEFWRS0ldGlseEFLQEFbW1VZMlg+OD1KSyU5VGtIeUopQF9eCiAgICAgIGEiTyQqRytHRihxaHkpYGMwL2spTjc5YTBQKlxUP1RZIikuPzRRcz81QnFiWCZdcyV5VH5KT15iRUBON3pdUiw3VX5vZXxzbiR4MyQ1OWZqW1F4TEx4d2d2YngrS11hUDhDaVU0dzhzbjdYZiE2CiAgICAgIDAnIj4sIW8rJW11eCp8UT9Ee0dVWTNRbV03KWtdRX04TnEoQUY5XClTUkVRQ0ZWNSRQKk5Kc15nNnlVUTcrPzNtO3ZvQCt3Nj1bNGxUJHB4TEczWjwoQFwvXUROQmJPd1lJVEc7WnxRPlt6LWpqCiAgICAgIFJfR2RDJDcwLWxbbiV3PyVNekM3SElNZnA1TWhUcT1MbSdGPGJ8Nz9sTT1idFF+QlRTMyhVd11yJlA+Nix+VV4xSyRIc0lIb2RtOVdNTT1ieDxYO245cSo5aGpReSIsVjZCbVU6anlUWzdnWDgpCiAgICAgIHNmQEM6PiRGM19hSkwkRyc/NHZZaXpfakAyZTRGWlFlWConVFhgK1E2PzpMKTFZdVN1Qnc1c2ppfndcVT9OZjN6Syw1QDkkQmFLKmpWeiF5Z201PVg/KW46Ji5+XzZCNXwxOE90OCh3a3MsO2N3CiAgICAgIEg8OiQ9Wkk2SmoyTi1HMEg0bVJYclxlLHhWZm48ZmxbfC9WR01oMlJ9SUUvOFxOUC8/X1pRW2t0fE83cHVsU3Q2ZW4wMF84dVppYHx9UXkoKFEzcSNaaEJzUWxsITAjLzJKV0VmWyJ1JHRzNkdwCiAgICAgIDJifmkoR0syYTEiTURIeG1iXF19PTpLQE5oVyFVU2dFTDx0PUIuWkl6IyEzSC5TcyxqL0w4cUAhOjQ8U3ptLCZYXj9VSGxBIyMjLlZ6Pn41NV5SSlN4ZX4nTElCMixeWj0oOkwtPGRadD0lMmM0CiAgICAgIHJybGZSbGwyTEk9Yl1Sa3JtfS0mIm4laSchSytdV2FNWW0qPU9laTxiTmViXihWdmtoSH57QmNNWWEqdVdJTFInaD81bkZLYS9yUjZqRnkiZVpTWmx7SCVwXVNFcmh1c1x1OS4wWSs0VXBlXT1dLAoKICAgWyI5NDkiXSAgPSAgLS0gS29yZWFuLCAxNzA0OCBjb2RlcG9pbnRzIGFib3ZlIFUrMDA3RgogICAgICBbPVsuP1AqIiVKZEpZLlxkQXBhaz4+amtsQEB2bE9NUCgySFl0RHFaPUNFezZ3ODkkLVFNQW1NPXlqeXVleHQvOV4+byIobn1yUk4wWER8ZUh9K003ZmNeZiJnVjtzWUEmNCItXWdZSGYub0lHWgogICAgICBVbCtXdD9Eb150WCtDKWlTQXNqVSEkImNyRn5TX01WPzlfL1ooQCg9eUdyWUB5RF9eLzt9ZG1wX3dZeCVKJSJfa0NWL1M7TndDK0l6STcqMGFHdXZ+cXNcTGElZUkneTQ7bU5sa01HTmtRUj86VwogICAgICB4P0tceixWKCgrTyhaWW0veEdHcWlrO0wwa3wzaVdzQCJ8OD9AaiVNR3tCSzFEazNwWEhWbk5eMFs/WCNLcXB+ZmQzd0EsUjtndnp9PlhCe1F7Sm8mPikjXSdDZiYmVHtUUSJIPXxoXmF1UzY+IgogICAgICA6MTBfJC5CZVVJLzdUenZESndJezoyfno4SU8zfVRfbjpPUlN0RDghTS1ra15nRFxJODZHMzdgajUsK0IqLHZTfiQ2WEYiPkE4bzcpJ3BqNSUzeD9ud2Yza25SeDFcSFpSYF83REIzUnpqW1F8UwogICAgICAzYngrI0VWfHp+XTNNJnBld3JqfHEpPVtzOmlaJVVGK3NaZCR0XHNWJUNEP2NTT0ZFZzB4aXpSfE1FfmA2eDBreCdpbWYxYUJ9XlFsJFJtSDhDNEtmK1cyKDk7J3Zfa0ZzLH5tSVc/VjpJIXg3ZAogICAgICAtKHotQVtENkIzTEhjTzFJKS5EKn17QSgqKSF5elp6QUVKa293a2YqJHBPbHVCTl9CQHhXN2Ekd0pYPlJSO3BcIXpoO1Zze303Z0I0dit1OElyWmxQaGtebUB+MVR4XGhER21GOD4oTjQmITEoUAogICAgICBKM2tzPSheYioiIXJ7e04vY3hbQF9+Y0pZYFNYaSghMS5HNXE7KXR0dDR4V2dvckliL1luI3B4TWxsLXBKLTV4RyU9YVNkUScpaVokVyxNdnIqQlc1O2cleWg/UFZlIjM6QiExKzJObChBM0xrdgogICAgICAuQUFQeiglWng2Z3U0fD14dWZCRWsxY1klcUlsJUw7W1JCOU8qVVMjUlFmWz5Ub1kwWD0rWj4lN0N+dmtweEwxbXBGc0o3OzQ0fHohVj1zLXFLVzA+el14QzR2UHFcbHBEc3JpfTBFLEtBPXo6XgogICAgICBRK3N0KEBaZ0s0UU5qdHM1WjZ9MS1PRT96RXpOT1JFbF0jKWRKcElSbHFtcXs2aU4sfm5ifm1hLi9ZWEVEXmI+Mj4sPjZtclMjPjgxNS0zczZNOGdlaVhpeSw0V142MmNjTS5KNT9AeEMiWWA9UQogICAgICB5JEE0fHpJaUpIRj5zeSc2aGghc0J7ZURyYS5lV3t7bVRaRzswY20+IkZkJkJYWV1EfTJ3JCV3cm0lLlYufVlUUjlRPjhBIW1nSCUqbSlnTFcndlNRb3UrOyRNMXpSO1I5Ijo4elszYnxWSkI/ZQogICAgICApWjJyViFAaz4yfC8jVy1IKHBtZVpcIj1nQjo2JW9Pfl5OR305M3dxNXN4JVJNaEk5YjYhNjBeWHkxejRHKjBFPXw2J1duXlAlO2p3SEZWYDtDM1A+QVQsMmxOTmVXbScqfEpIPFdsZixKW2srOgogICAgICBhQzk8PWxVYVVeLCYoYU8pS2ExRy5QQ2UvOnQyK1V4bnw8bXdxfVQsJiF1YjheNTouNXROfEl9cToxJD9eIm1rNnp+fH1qdXZ9TS9MJHAtPVpzW3UlUTYyWXouVlhPRn1RRV9FemFjRmlRcHBtOQogICAgICBHI3ovYk1VKDNJXj44aC1STkNGR1ckJy18WDYwa2N8Y1lJZWl2KDVYPz46ZFJ8cXctXi92VHZbLkE+aVNRZiReaXR9K3pwJj5iVEwqU2QvdDBOJUZ+Ty4jVmc1LytBUDRGNj0qInt9c094alR+aAogICAgICBpVzg3QSUyKlZKLSZUbkV4b0dhJWlpdG02Y0p1WC0jd0pZcSw9L2UzLFdBfUY3bW9GP0dHTkt7ZUFfflxSIUcmPURxRVZ5TEclKzhgZjt1aUcmKnNcTEo1LUAyUkV5dm1cO3FlYERWcEI8bnM2YAogICAgICBaaHxYbS9nO2QlJE5rXlUsWE5hd2ZFeltuci02NWhAZlZ2NV5YImN6OSlTfHRyT2dtaG1NXEZwLiRYeCxEaUE9V2JSVSIjMlBJJnonZ2AvPy92LWQhTjFEZ1JmXUI/UXxZTmVVaS0kNlpYR2c3IQogICAgICA8eW1ld0Q4Z2VtXiskeVNNKkt5XFdbZkpvVWRWO3tKcG5WJC8rZD9xXzBoSldJUC89LUF+ITRVR3JYeUxRTltcV2NdZy4iQCUlKi9VSnJCMDxrT0l0Y1soVXw5RUxAbkhieF94PD0hdi8+KSxlTgogICAgICApLEMxUStPbGFQTEp7Yi1+aSVgcX5EVFdEVXxELUo6LmxncEx6SFpmSUZPNFtCZi5RLltjP2Y/fClLP18wYX0pa1dHKFIsTVZtVVhweWlhNkdzMCM0JmhkKi9+Skoke1R6JUlDNyRXLnJWXnk8ZAogICAgICBJS0UjRF9aKVl7MmhZMiZLe1dPPyJfZnw3ZGRVUXQ0QytEUyc+ZEx4aE4zT2gjbCY5RC4zZFEhYDc/Yj01W0AqRDk0eC4hRnshcCkrUSpFM0IhPGVvUHlJLlNOcGRIXSFAZXM9XkYnSFAlXkt2YgogICAgICBSPmkoSXwnN1NePGVWeC5nMX0sMHw0PHZLcyt8WkctYzpJaHdnJjlQVXRlaSxIdSMkPUBGJV54T05bNSt5TVpRbnIlenhKVEdEQjMie1hIRFJQbSwqMnxEUHQ9fkZwUiVpOmNjU0BdbG9dYT0/PAogICAgICBYXVtTN3o7OilRKjdHek5LUTdXPWArWCpIRStlISdYXlMscFl1TG8zZSdUaDhtczFhLFhRbCJsYT45PUlSWEpRYnZLPWduNHo+cVkwaG0nQ1RsNzszPCMvWSdoRSlzOElyUmhwaVxoeyVwMyheKgogICAgICAmUlpBTz4+ejdWS0dLNltIfTBBTFtrQTNXcnJMQm8uMUohOlZlNGglWTxzO24lLGJrZ1dGIm9gVlFBXVthY0osd11zNltkLkctJGQqZn1lJHBPS1dwQ2VtOW90VTI5P2smTlhcJGEjJy5hSVl2OwogICAgICAsUy5aZGkwYXFebUNucTVhSH5CIWFmbzZWW31HUGslS35cdUknY3dJWG45QnhNQFZqPDIhNDciSlFrLzNFMHB7M3ViW2J2PiQ/fCM9Q0BvISxhbF8qZX0saVM3PVw5JU52S1FmbTl7dWh4NC0vSQogICAgICAsbSl7Yz9WS3pZRz1yciJMKC02MkpfLTlSODxWZXtKOzxxSEJBfH0pYHhvX28xWDUhfGtcQkstLyw0MUtzciRUNTkvbEdGcCVOMWlkJU5XQWE3XkEtKUM8eS1ZJU1rMSxlXyRUP0x7Sm43TkJGXAogICAgICBPXTAmMHkifi58LVA0S2c9LE1bNn04XGZQJkB8PHJEXzM0NX4tPiVaRWUtc35gVi5fQX5fV0hdNjFdZSF5I0EwSDIiYTBycGU5IzJiTERMOElwIilvfmN1LWI1L1MpeyppW0xAW3g4QClZVD45NAogICAgICBrd3koU2pFd0tgaVBCNDxuemVybVFxIyUua0p1Ul0yM21vJltcc2EsTlk7SSgjPUBRLTA7JnB6MWM/aEtBYjhfLUYtbTQ2XlFgYUlcMGhwSy0jNCtKV18uYEZFM19yVXB4aVcpMDZOMyEuXil4YgogICAgICBIXSVWR0FIYC9ZLkB5e248dnAmam4teHgwPThecSQ+Vm1yUTApMWlpMSEoMig/dFpoQXd6M3VhUzlPfmNzWDtCSF1tPiclN2E/cm1uTlB2ZUd4QGgsYHxCPEJPb3NYRilFRHJiSTRaSWlmWFdVYgogICAgICB2XlwyRzdpXkZsMV17MzBcTUdyZk5OMD51cGVxP1tCYnhKfiN6fHdacXBSZGMiU11yb01OXFkwSTxWTHBWZWxcSEFnV0dMe1wwMFEybF9PJ2BHLEc8O2s4MSEvezR2fk54ZVVGfVxAa1ZoWDUsdwogICAgICB5aUtuQyZoNHJ7UldALDFGPVAiIWNbfTE2VyliJCJeL1Q1JUx+WmF8V0VkK2s8emxJYHIqRyJkKWVwLm0sQzhzUlIldWpMZDdrXTtmfWM1bFNUUUhLOj1bZ2I9PCpAYnJJRDVAd2l8YWpcQC4pbwogICAgICA4SG96NjhWeSc7Y1NTOks5OUVyJl9OciRXJFAxYXJfaVpXXC92ZWFTPyxBJ2N0Zy90IU4nNkxlQGA/bnpWJ3M1SzJEWHxxZE5YISpnZVZ0YS11fEpTdVRGInN3XCt+IU4oOFJQKEojLmxWSjI3agogICAgICBqcydZdHUxd0I/N3VAYSVPNXVJOm9INDVKPDAuTE16Mi8icn1iRnQvd0d+b20hTjNGLG1IWFlRMkQsPmEpbURDQClIVzJwU1t2Zll7M31SbWg/Y0liay1YXG1qOTAjOHhlZ1FbYClIJjsjJVc6SQogICAgICBdNHQrclhMcyxcNCJ6L2Riei0wO2xWOlpyIzdTTV1lMCY3NER3fDMqbWVyW0pEal0rWUB8ZiJfVC55aVZRTDJQYCZsSFR1ajBZUHBXS0spcFNaY0t7SVJ1X2dmRlBSR1dJSF9sWSZINFxpVnUvegogICAgICBcJU8rOCJzWmkkRGprKlBMW3NUbkVCeXleZ3t3dW57KEUkbFZTYkt2Jl93bUIodHgzMSVTPSxnN2otPTdJXXxAZnJ6I2NjfDJTR35JcnlIL0pdKCpzZydyRSo9WG4mflRmYCIkJ2F1JSU0Uy8rbgogICAgICBwc0NzIUhxVTY0VEZqcz5Ybl1dI1YyVn52fnlTbGRSOns/MEBAPjphYz5sMVxMLk9UMTQqN1h4PkpGRy0jcTAuSS1VUiFFLitVV1ZJXFJJUGlGbjV+Rj8pJ0lWKmxnN2Y/TS8+ST9JTF4uOGdpawogICAgICB9JmYrfDNtXncjUFZZbkBBPFBpKiVbS0dzKi5uIV9QdFknY1tQKSg8RkFOWlJYXmx+Mmd2OVMrQ09DcDRYZTxPW0dFPlNZeTNSMSU6Z3M1VVA5bnA+O1YxMCd3QjUtLHdyU3RAQidKSjRhPX1OTgogICAgICBWPDZ9aEY2On5VS0pJa0pcT3FNcGV4Jzx5V1tjY3c5bnk9QG1sP3xFXGl+L1ZeTndCeyZWLHpcfDlhNG50d3cjTC86Wj5XSD4rPSFKMSEjRHpNJF93L0RWVT5PMnlfZHVlLU5uIzlKT1hRfV07IQogICAgICByYnVNN2pHJkA1UTByPHNpZiV1dilQP1R6fnVING90SmooIUZcbS9iSWVeJS5xIThqJz18dig+dyRrLm47d2pASyV4V242Ul5CMWRRUkxJLFQ8XldwZTpBWEdAOF1WUUZjMjF6PW0tVFQ5anhubwogICAgICA0UU5tMWRCZVBzPCclbDRWan5SYnhWMj5RTDxidDMqI0xDRXR1Mn1DfTlZWHVnaiZ1V0EjdmBLXU9SRHtjXiEzbjBWV0swPUlKOGdaYGh2Snw1Y3ooIV9eRz9CfUU1QXonVnRPeWR2RSpEYnBxQQogICAgICBrKjBpbiw+ZS0taHBnPi5tem5CMF04PV1BeldPbFs4emYrclhLRi04eC1oIjkyVmtWN30oPkd9fGRULDo7amQ1Vlp1dHovXWBTRmhoQjRGLy5hPWg9Yy5gN2k2a0pGZ0YlR2dhYWVedFo8RjpTeQogICAgICAnSXVJczVrY09bfj11eCxpM3tNX1wrKFVvM2htNE5sKUxJXWo9SFRWVkkkQUE8Y0RSdFsuUVliUEx8LSphQ0MsOy1DQjt8YylUWSt0eHVdQC4xez8jYW1uWDRyNS5OJFxHeUVkbT5gXVh+eDRhPAogICAgICAjKClURXondXsmVzVyQHhRfClJcFFtXV0ie3okNHx+eWJOVHN4ImlveStFeTU8IklbfFA7Ym9xSik7aUlJLSohRksyPSgrYyxpXTw7emohbyprXVlvNz5eXShHKCMkdDA0XGd8QXEuJkJpTUdbOQogICAgICA5VTo9OX1XXSFMaFhweWd3TXlBMXpBYDghNzdYJ1N2VSE7fG5iTyIiY1NkW3pHeDBYSDNPSTxxeUEkej9vaWoyUEpJUyZWNElnR0U0WiIweGgqJmk6diVEX0pmVDlsO0M/Z0FZfXIxKk9JYTpHLAogICAgICBEcmVqLVFKPUFnPmw+OSxORU8tNlF6Z2hOJERoKTh6LjJAWFltYGtDJGhuXDh3SFhJQlcmI34oO2JOcypnQ1skUChwKks5Qls3P25PVz9eMGlaSiR6LVJBUWV1UTFeZmJwRGN6YE4jQV4uSkNRfAogICAgICAzKkZHQC9EWUwrJEh1YVtMc2JWKzU5KDVwJEl8NmVSImkrJClSYGUtKi55S1ZBR2FrSTY1NUZ9eixiWW1uLl03SS1mQm0pPDsqaXV5TXV4bkhTaDgiIi8zQHp1RCorOk9ZJEplLHVnalk5XXpobQogICAgICByVy9lMjlYOTFqZE5XPk4hOCpCKiQmencoKyU+N31pUGNbYk9DaFhdfSRcVSdzVjsqZUkmbkouREptcls/cXhQLUZUaD1RfFVsOTxIPHItUk40Tm5LSmAwRFoxTWdnRzwkdzo8W01GTy0xPlRZWAogICAgICBLc1E6ST1BZjk1cEhFZmxueXcrbH1ZSzxnbkpyaWEzV3c7ekc2TCs1aictIX5LYSxjfClfI1UjSl9tJUJXVVVaeUAjO3slLlt+OilRUUM3L2d4LnE2Ll4wUzRMcys2RCcsPSsye35OZjxpTW4hcgogICAgICBrbFNhVWR3WHVDPkZiRmFqPDQxXzBrYDZSISopNjZ5LDYvZi98amh0O1Y7aWFuRCdTLjBqcVV2S31qazR8NjU+NDt9X2FCRTY+amIrSENEQjBgQGc9K2k+ZlosOnIrZGg4Zno3dmA7VjgnPSswWwogICAgICB7QD98aXhnNCZ0Y3RCU1J3UGk8b3MqbWlbPTU2KjZYZkgrZEVlTF91KUlKQmJMWy51YS4qVU5yRFl7dWdhTzFrUS5wUEV2bGU0SFBSMT0iKE1nXT57MiFxJVFNXTxUUlhmbEZGT3J2NG97LzIiJAogICAgICAxaj8/cXtIK2tvZldGWnNGXWBhTFJ+KSZTO1g2Oy5eTl1Pd3EmW1J2WShaVWQ+fUpkXnhxaSJ5L05IXlJ8W3YvaUQ0M0F9enN8dXpDKic1bn1xLnc8PXgzbXBgZEB7SDVOZ0hUfU4nczw1c01OJgogICAgICAhUnF6bl1GcG8rbCRqfFIhYFBeTjk+cG9VZUBzanNUUFZYc3lmY1NCTl5RfWQ+NUgkKSw+SylKLE17NSRifG1kS3woTjorcTFuLGBqSFxBPTtfWCRhRWFEY3NAXF9KMG5cVDddKidSdGIhKVVJIQogICAgICB0fWlcKCoxLm9OO0lqX2Z7cDJQaC1pcntQWnRuZlhDMjZKeS5xZWIvYTtFJSZQazg9SydmeDY2cyJnTlZrSDMzbGlKWUgwTlx+X0Q6V0JmVj5ySV9qXmExTyhsVCNMOF9SKE1lbDpoXDIoXkI/UgogICAgICBDdD19YXpYdihWVTowZ1hiNzhHOUJWMUljOClyYCJvdEZWUFxnXCNRUjEyantNaH1jZDMxSmJ4RmBNZjI5P0VTInhRLCl8OjlZQFwob25Wdj0hfEAmYkhsIWddc2R2UmQ6cHwuO3l8WjJzZTt7bgogICAgICA9dEltN0V+JVovXk1JZDl1fj1xXWVIenVRWG8lZCg5Z3IpIltIX0Q3PlJSeTlFb35MUWg2RnBJZ28ndip7R2EnQnlbe3EobzxmcC5jfi18OHpSeGlbWX1Abzg3bCIkdmNKeCduZ19gTldoRDooJQogICAgICBJN3Y7fjlnKW4ocWJ7SE0yeyQrXCYqMyU+UmMvOHVPanNfTSpNW2phOTZoZD92PVVePFJ7OWZlTEFQPj9ZWShWM1dLRGZCXCIzKnAuLno2flxYYXQqcVd6QXh1KS1UMlh0K3AtWXhEWDInUXJJOAogICAgICB2YXctWUM7LnBHZ35FT298OEx5MGBWVF1DWEJEMnJ7fFZBWCZPI2Asd2wsR0VRL0RVX2xyTWB5fkFgbkFdYCcmJVYwTmx7b1p0NTNIJj03S1pjbXw/clhYYzQsZmAhbj83TWxUYXhaTWNXOFV7cAogICAgICA8bn5dTzdcPDB6YyxRMzp4Vip2eEFjOyw9b31UdSJiUS9GUit6Y00hbEBRXS42YVVXXGEibkMnYClHLXl1TTcmIXt5UF1wZmZBS3o4Jm4zS301KX42OVF0ZXMsV2B0My5DMmVWUVByXjZiTSNTJAogICAgICB1MXFqUUxEJDRlKiNmLyZ7T2wyNDteWVU5fXhWNT9iMnYqdXZfaF1PPy0uYStRfio9XF9fM0heeXlpcC5yTltFeyxOTmdZRX1ManJ+Rj1NTmdxJ1oqREAiKytPXXsscXc3N2sqVmhfPWoiYydFSQogICAgICBLeCZ4JUQhXCYlVTI0OUdjWSx+cV8tSEhqPydlTiJZcG9JVjRtWUdQXzJ0W0NBcD5kVWtMaWJnc2NMWlZOKUc9VyY3O1IyKlk4NklcJ0BKX1ZQczVsNk40fHF8USc1MWY7dDtOXidSQTtMd35TdwogICAgICA2cGB1KmtbMz58OTBIJj5SLGF9cmY2ISpFYjlyfHFLQSFfJXRPVGJXaiJmY3Iwc0Fua1F1VXJtYUt3XUteMXovbW19J3NCLTg8I0ksVTdbX3w0NCRid1EjLjl2Qkk+UitNd2huWyEqfj1NTlhDaQogICAgICBKMjIraSZxZjUyIWkjai5ocTBXUDhwfi5zKy55R3d9WWVsfm5AWzJ1KkMlWl47QSt+VSI5fVgwJWw5RiFMUWFdeUI0dGNIcW43TXZ9VjcvRzdETWhmQXVORnN6d0F2R1syNGBgdDFmNkFlWjJ8dwogICAgICB2ekQhaC9LSiopLkI8SE9ZTGxDYyJBSVFtMDY3TEJPezwySUF7JiRCSllcQWpyJz5zXWZ6dFRLKXBNJ1p7VElkKkVuZnJvfiR+KndWJ0Z4VEZ4JHE7Q3I8ZSpPc0Mkc2ElLmo3SXVwJ35hbVUjTgogICAgICBiJiJBbjQ6LGR7Qy86YyU1M0N2JV9qJFpEVGo8aVY9ZHJyZHQzO2hKfDFwJk0xOExoUHk9WF9IMSNCSyhEMUw+dyl9O3l2ezpFfkpVUihxUENXeG5mWklJYnw6VUJHXl1DajhFTE9Ob1ZQKTdvOAogICAgICByfFRSdiJ2RyUsMWtmWC1ueTo4PU5Hak1oRTA4O2AyM3Z5SlpJRzoqQXF7XkkiK0RvbX1RVyV1WUNUfnU8ZiNdNFAvNlRySzZ8YTZAJiE0amlzOn1oeU8yci1hfil0XXlLbngyKzstOF1sOzgneQogICAgICBuLztCdlguc3ReSVcrfFgzbnUsNm0+bXc5W2lcb19fTVozVlZzTntgUzpBcWhgYj0oM2kieE4sZV4tOTddWDtFPGdCY1pQO0lwL2MnaVleOzktKkttVjlBa2hINjlWJ0VbKTtbIlp4c10yditxdAogICAgICB1RGN7RyYmKSgyfH43IittdHBALnxTdjtHemVfUT53QllwSiUpd1xiUG0zPiV+PDwpY1sjdCF1XXFadEZDITwuPDMzdXsyZlxCXjhrUU87ST5jI1oyLXp+P2srdztQZzdNWj88KThkI3lLLWo/dwogICAgICA+WGBkLVd8RjwnKXMpa2w/ZS55R0pMKFcoUCUwbEE2c09wcl9tIz9UYGlEdnRHcGpcYkRyJ3BGYm41N0VNVmRaTENlTVB1O0c/SVgwfUlfflFRL0d3fEl7UVptOyY6YkNNbF9WQ246N0wxfmZwTgogICAgICBULTxpVjVbQXMkTjsoPEQ5MjhKVD54a1AxYmx4ZkFoL3ZyZmNLYGczSCoxPCUmNCosWzEne1s1SHFIUVtFfTs3aVo+QVwhVSo6KHh0Yj09IilJXD1xRzE/WE42ZFZOcThGd05rZWQuXWdnPjNaTgogICAgICBkREpfbyw9bT5tViIqeCxbXWYodGMzMUwnTUR2LS9lRmJbSzo7XVhtayk/biVIY0hEWFxkQUBNLiEkKFZSLFctcHBaPmM9WH5FVSVzM0xWbDNPSFtFbnQ5YTYxUSQic1BnbDJ9QE1COHskM2N9aQogICAgICBvZnRMT2ViWkc2L14+TkgzNm5HKHZ5YkYlaGR3RGAhVzxod3d5Z2UzS2w0XkVkSEE6Xi4kfDV4WE4yJlUpanJQVHhWI2pRWUl3YiRGSjFAVnxbPXN4XXlxYiZPbS1UeCQrRDtGUGldPV9afWxOSwogICAgICA8Vj5FNXh4IXokTGQ7Ukd3SHkhe3tHbzZdXzMoanlWY05HeURIKydeKShDYDJ+UW1NS3FefmRFQHlmdkwsJzFtM2k7fEhQPFBHOXxaa21ZLTA5TF4/ITUmNyF6NkglOl86KE8mUkh4SVFCPHskLAogICAgICBQem4hZVZyZFYuW0RgLGJdOTR5JiJBc0kkeTklPzlOYkZcWWI/RyhgMGNjcy9KPTNNXXtlanpNQyxbVHtIZyNQPUhxeSNKJXs0Ly58c3lldTFYI1lbeitoX0AnN0ZVSjpoQ2IteW9rc1Rqd3khOAogICAgICBgSWghLl0uVVt8b1coPFlkW0wkcS9pWyR8K3c8T3YnL0wlIj5YdlRdLV9PPG9aXFEsenteaHF0SzZnWVJUPS1heDV3RltHTzFDcWNyNTtsYl92YmdNW0dZY3NlTVBwbSo/cjloWGc6Tzg/cmMnZwogICAgICBiJitlWFNdV2tiJlp9Pk9mMXokZGMxeU1dOHgtZWNiLFFDJ0J1IltEL15FXj1tOTMveV8wNioldXUmcT1Zb15AWzt0W0swLj1RSyxyYVlPcmNjQ1RZI3MlSlQsYyQpQzVzbHxNeVZKS1dUUVcnPAogICAgICA3eDJ+Zy4sfWF7Y1w5T2h7cUUiZGBhQVhBKFRhNTQ2N3pkRlk6dnA6dWdcSXpcbmFobnoldmZcMVc5c0Y5T3ApXzhQU2JVU1YzNDBRIzYuZDpfNmZ4TzJ4OiIwM2ZCZSM5WWk+dyd2Ok05bnxYQAogICAgICBVfjtiR0JpbndzM2U9TCZcKEc0OFtCanEwaiVJKW9lQ2dJP3pMN2YyeDApZjNjfTRPWlFaJSMiJmtEdDZ8VFozUzc1XE9NLFAqLllZR2hZI0JldEQpZUpHWXopb2NQKDRPIXVsZjk1MyFnamorbwogICAgICB2bkpJK3h3TC5bengsITFWdGgrKndfWDNweDE6O2VmO1dTdzRrUVNPRU0nUltFVltBU0E6SElKaDJuLiwjdUpkO1NvLjpSTlgwRy1jOmlIJU9lWF1qVWoyKCZqIkNYPldxK0BYWnNaYWZBQUV0SwogICAgICBHXV5qR1hrYjkrNSxLQ216KngiIUJoNk9hQVYuRjZiPjRNdD0rOWFbWEpNXFhcSFZncmF2OSkkP2wkdFYqXSIiT34xZTptOyMtOko2SW5nXWF0VHRBc2B2eDttb3AkRnZLVTtPOydZbi5iPUdqMAogICAgICB2V1c2MU96fWQ5Y2A7aDEmbzJgQWdqXCRFQ30nL2BHLyU9WHxgYVQ3NGAxakZYMEtOLmtIbXQ0KElYWVFqc14tQTRjO0V7L1hHKDE8TT9ORk0xL1VFbGo8OTYtfjQ9cW1qfSVbKkVsUVBSeyw7ewogICAgICBiRT53Ymg0SkFKaiRcRFhbWFNLdWQ0flMjekh1YFF1TDs7azstZ0xiZl9jdWh+TSw/TWx+MHJBU2Y4Mm0tVSElZlojVm5DdXg6ZUAlU3F8MjJpNVIkTmU9Pl1lfFtWZnUqakpjUydJZSYpMElIOgogICAgICB2KyI9cD0ifTBvRFR+PSh4TzhgUlpCXCxTb1xZMl9dIUFALjFDXj1XZW1OMkcucU0nc25aTUlnYWdMPzVVaicxPEJTejtfM3p9MiRXSkFTZi1mRXNmZVhkRWRaPWddWzk4NlZ5ZmYtR3I9WEp5fQogICAgICAsKTRvLH0zVU98dHNuemw6SjczMj81OUtHLmUpOThMPW1LJ0ZaJEYtYVE8fEZYW2F7YzB9NDsrXFBgfjZ5OGdXfCg+ZUlUXU4qQV9HWDYudG9Yenh8YlBQVzV2R0xVKzhra1FWW2JWQ09LXlpdaAogICAgICApdXM4c2NTLndfZXxffUB8SmojTVJ4MkYtJlosTSx7WHl3X3wue01NN25DU0hgU1Epd3RDUmZkeH1hWlxuWyZqfFM4IStSXmRLVz0sOXFWSzxUOzZJUEZ3TSohPUkuTDNzRX51UndnfTNSQGlNJgogICAgICA1eSg6e2ZAJzJcXkk8WnVcfC9GVWNbbVUwKVV0OX5WfDw6OVpWeDReeCRtJm13VytSPH1xMWQxe3VEO0ApIVkjcSZtW2BcXCN9JDEwKlBqRFJJZWg6em0+ZT1TcjM+PTdGenpbUGZ2SURIVGlgNQogICAgICBILGwoViYkZFEjRSwyXUl5KmdIWz01e0NyUC4pYmFXOjRbVl1aOCU7ZWdfcGJYe353PFVSVDxmIiVmbScpMVJbdz5DIjt5eytvdlF5ZFJgOHl3LWUwNSxgNn1AJmsvX1dRJDpSdW9oUCJ6RTZVVgogICAgICAybH5RNUp+N2NrNnBQJm87ekhmajNAIVdMUndtL2UoR2dDMFsoNkwrUGhWTVs9aVV9bkFfem5dM0I0Jn5wUVlhJjVgNXNEPEZSal03UlwieD0/M1YseTxzUnVoTkxxRS9EODFsJyohNmpnbX47ZgogICAgICBESmJbRHMhdF85cVd9IVU0ciJ0J1U2U3Y6XG9tX1pWRFp8a18kQz0rZUYlIkQySFpRbl8qNS1uXX5sNVBhSj5yPUhQd3lzLUxSNVlEVVxVQ1tueGg5NjwsfSFRKWF1OlEmJ1A5ekh2bTV1QSM6agogICAgICBLSj4wT0d2Yi9tVHtJVzR3bEguJmFBV35UXUpRVFIqaD8hPGM5QX1CezRZM19qPSdPMCUnLFMqfHpWTjltN3g6QG48KmFVTnl1PXM2SGRDXzdZWzNELHRUP1UyUm93RytAeGRteXQ8LT9wTTFkJAogICAgICBeVFZ1QlxNOk1WcnY1PykpR2dlYXNmP097PXsjdmAmLW8zZEdELTA0UFghQ1EvdTVVLDptTk9kKGJsKmg0RyE5PHxZXCdMMGdPKDxBLU5sIi5ZLl14Iig9XlVldm45WjByTXZpVUs4MyYmNFBBJAogICAgICBoMHZxT0ErJy5YWiRDOzB3c00udEpIOSlwa05aNmMoNilGJEc4Ql8/eGt1YVlSd2UrQktJZVhdZjhlIS0zUy4pV3tfTmhWNjBcb29tKn4mLGwxQ1pUPkVofHRtaVskTCRVd1hsdD9LbzVHLFgmXwogICAgICB9dCRjalciPWU+WEAmW2ZBbTZ4SzltKUAya0pNSkdMcmEzWU93SkZlbEB9M3N7X3pwUTA8NXhQNi1kVH1ZbV8vVnRDOiw/NG9kS3tjcFkiTkBKfmpBPk53XkZRO1l8X0s7X1RcOi9RUV9rYF0tTQogICAgICBzYXNnOl5HSURfc1N6c1haO3A6bjNKU1xUP3FmZktbOEoqJ01DRypgX005Szh4RCVcLmY8YCppaD84NT9QY0E8IURhKmtcIihGbH5oMCdOdE9VZ2NuWDxxQDRzQzZhNGpWT2o4aVtSPDRoZTxFXgogICAgICA/cFs3PmdYM341Z2k0OkMpJSs1T2NRJ0tSLWpMSGBvN3kwd3ZBRDRNJ1ZWKn5+M3ZRJ1ZfRmFjTiFRMXVlK0U2JD4sJ3kmUDsteGlmayIseUViLiFQJT9qdil0SlAlJDhDfCE/cENAfCo+XGJ7SwogICAgICAvKzdqJmxaNCs/OERnNmNvaXVlS0s8KEs7RWs6M0hZZCstdUdyR1A9Vy8/dmttc3ZxMiNdbjB+MGl9QC1zblQzOVJ9P0VoIiVzW3E0VUZtKVBCPjR4KyJiIkM6fS1dYHR6amN5eG5CITNMczJeSgogICAgICAvN29JcVY2YC9RUUNwfFV6QmJcRGtsXjVmNF47XFNdJS0mUHI+WUBHXUUqXjYvSFw3KlgiUm49fjQkMG1XXmcxTFgyPDNYIWx5MVg2NUJqV1R5MkZ6YkteZFRQVUluJ1VBfUphJkU6N1xDVWYyVgogICAgICB7SyRhTi0lW21XOlZEYmRhIktLQnwoNi4hOS1IejMsMCp3fTRWUEI4aT8vfj9ORUc0bDE7VVheYmcrNDpDYkJGO15uMjFcYlRnYHZCZkZoQXg5Pkh8XWI/aid2XCl5QTdsKHs2a309a2Bze10wZwogICAgICBGYiJFMHRuMlpSKCRyZ0w2VTBSOUA0ZFROPn5kLV00IVVsW2pqdTtZIlh8QHwnfSJSYDs0NXdAbj5FRkYlVV4wWzZWQVMmPjhULWh0bDU7MF4uVix0Tl4xM1IiPF17ajxIenk1YCtAJ2heanZBcgogICAgICBfdmhZXiwoLzF3cyk2Si5DblV3dEpCZW85fFAlZWZfWlN7JDMiPFlfQTEvP1tWbEk5d3M2RS1fTSNmK25BI0NpUnMkczEifC9sRS1VeHdFPl4pJ3hiJ2Q1U0NxUkU5MX5ba3xuNDsjJW06JStpKAogICAgICAqYXViQTU9UHZ3bi1EJzsjYDJlVj1sQFp5cGs0dSI6diw1WjI0IjEjXDc/ST8iPG9QIj99Q21sW2doa2lfI2dwK0x+WzBAX2RzJzplSlhbTWA2fTQwL3UzZlxIJ1UwfllSLl9xLFtfL3RybnUtIgogICAgICBVcjhaWVpLZS9rJyJmR0ZlLVtERz1HNkEyQTlaZDhfSyE/OERcYFhDUktWbVx4NUdceHRzV0gqT3tFa2hkflUlNXVlZ2JuLD8pRERtWFQoczFQZUo2SDR2MS1LKD10NGY4NGZiaEtNS3h1bSYjOQogICAgICB3I3JQYzljeG1rZGU0PmU/T3x2QWchPXV3RWZdREgxeTR1NC5dcEQ0Xk1jJDx9LlF3VlxnfWVnOUJee3gzZylTIyhGKTxrWkN1bSd3ckA8OVthPnwwWXpSM2RmJmgwVl81Rj5XJyQ6aDFyaH1tZgogICAgICB8QyZ7emdQXEp9WmVTUUdOMCFFemtMeExeXTBeRDRtNTptJTJSZSRYUWlrRjJUXj03OGpXRT98ODQ6NnU1cDk5WSc6Ik1mM3gqWC8zLixkR35gVns6ZTdcLH1wTSdjeCVSTzNpLmJbZFFLaW5MbgogICAgICB0OixVaHVEOC51XF9TM1s3TDtJQCdBK2BEbFZSPDM+cyRtRl9dTVhdfGF0TGl6SyZ3TiJYcS5LUmpLfDB0InckM0lseSgxQUt1PiRXOldBc21jLToiU1MzLy10SXlTO24ne3BpPmYmNW5zX2tyMAogICAgICAkV2R8WzJQbCF8cF44WSh6ZyksSF1Rbz8zXHhHe2d2NjQlUFhKSGxnQCVGUWE6T1Y+M0AjfSheN04zNX4uTHpSPG9zRHxEXUx1OzBEeFVPJCl1djhDMix9NEoxZVldd0xUVlkkXT9vOEA0Kyh4eQogICAgICAoWyJWKG5WRnFHbT1seEAlKEh9L3Qid3NYMix6ZFs+QTU3cEN5YUF+YmJFezNSUmVPVywwWyxHdXRtPENhVEZ5ZTtvNCE8cHBwbGgocl5SVGRoMSgmUls8eDlKUzRSZ20/YlVoVmskUkk7VlsneQogICAgICBgaCRCLFA9MEtYeGRbaF0leTJ0PSJUdF9Ca3hdSCpgVkkuKSRzVzQvdUM+RmlJP21nJVxYSCVYMCF3cS5zeH1Ea1VwayU5Yj0mdUclWmhXc2FfT3k/d0VIPHs8fHhDOTg4aHpGcF5pXztrcntERgogICAgICBZLk45LC1pR2BEbHBWeipoImInRFU9dXBIOkA1S3ZsQXFLUF1GOyZbMGNcRjNTRmBPfG9RXF5ARTFkNmckVnA3RlMuKSZDZ157U1A5PCxqWn51XH18bjhFOj5gQS1ib250cF57UFY6KmR8ZX4zOwogICAgICAoM1lKaDA5MHNsc15CZXlxXGM0KWNWU2ZqYEZSfC5VXjJReTMxJC4vRlhOUHxmZyhcb2ZVNCMzUEJOLm9RYzIoI28oQVpTYnV8WU1qfVxHbDx7YFIve2RSNCVRdlV1YzJGZmd+MDNFZ0pMKVsiSQogICAgICBBTnVCZXlxVjRyfT1bT0BaKFNEYkUuXG4uLzB3Y151YUoifD5PPj5qXWc0cl11KFRkcSxAZj0mRTgtWUIhYSUlNVAsVnRZR09GaChUJXJAUndqVSkxZDFlImY5bEN2XXBjVWE4KGU6OFctdyUyKQogICAgICBHQixKYkpYfX5NeElRdDUjTDRNbyw9Tl1hZ1RbIkQpRDtLeEIjP3RtMTxTT15RT2hFN2NZV2ZBUnlrbz8mIn4kITB+fmc6Km8me0slVDFAOUJkdUc0YVdqJGlIZmZqN2dCYyclSnBXa3osS1xGIwogICAgICA5aUxTSS5BfSdNKUVYYE9fW3FyUFs6TnhEVW1XaGRtdlk+KHoyJGcufmU3T1N9S1duSURXdSIuVTxSWSV1XjIlOSgrIlEoVUVvRVhBUXY+dD8nQkcmMS5AMlR9cTgtb0Z3U15wKVY2d201OExFKAogICAgICAtPT5nREBDQkl5fSMjTUckJik1YTVGL3kyU141KS9uRWAnbGgwX3AlWyJMSmV+LS5qJmFyIShKX1k2VlNTP1h3fjVoOiU2JmhiRDd3R2JIKnRdSnIkOH03WFZlNSRmSEArYWdQOGF0RjswZ3VRPQogICAgICB8OD96VFpKVyovcFNaeGNwKm8pV2dzbVRCb2F0WlBjOVhwQyYuNng3ImxpQD08WUkmT3NYd1csOiltXTE3L1l7ZHtJYUdWM3N0dzdrY0sqdmxKQEBVKlouS3kkTXciaHxyWlFTMEoufnddT3AofAogICAgICBKIyU7Uk83SXc0NmJ+JW8iJ2ZFT30tVVlPU3BLWS4mfEVmamVzdnJIWzhWeS40ajVbOWM3Z0ZEKW9RY3NzPFBRMER1VTZeInFKRilsSSRdQzRFYUs8JEh6THBtTntEXUBpflApWFhwITgnYk4ucgogICAgICAtdXlIb31RbT0uTkFkJGl1JkRBakpiOjRxSEZbI3w0VEJWS3k1cmt1OyZ1LCJxcFtXLi1oVlleXFpVcX5ZRkQlP1VFVkp5YSZXNStMZGBIWyx8KC5EIno3VFItSTtkPStMMHxOcUo9RWsyKmtoVAogICAgICB7PydZJS9HeShKaHFBaTMtWn1pTzRWY1o7RjtVNm0nQiJIVCl2KWo5bmRUTTY8L3JAUHhZOCU+cE1+W3M3ayJ+TnhNKHFyMixeQEYwdG9QfSQqVl1wWUdMIV5mMkowNSc+ejJVeTdGRz5ZZl8iPAogICAgICAvX2FgVWJvUiZTRmFCI1knYC53aWg7K24+OVdkYkdvLV1IPiRIXEFHfkM5J1RpW3A2YTw0WHE/XUp9bVxXJF56Zzl7Z2lDKF0mYn06Q1ZqQ3t7LXhVcDJqXls6ZUdLJUpiOVd2V1FwUWgpW14pOQogICAgICBIdzw0dlhKe2J2SEJjVW9OY2lbOkc5VyliIyl4ZkY9Q0pMLm1TMGVcP1xZTHVeI35jLWo5LHV3M24pJ29jLSYuSn0jaio8SzxUbCZ4Pj4vfWJ6IXxBMjVIfikvJCFpbVo1eUZ7c2NKT09iYEckagogICAgICBheGpQd35mJUwnLHM4U3NfNW0tVGt0Oyg7JzVgdWtXWkdRYGwxR1dGWCsnXGQkd2t9UThVbHZ6Q1lObGdrRWg2SWtOKy0lKDRZViMiKW8zUmB7KkU5czQuNGN2SDx5W352JWEmW3AvVmpfal49egogICAgICAkK18kdVBfdnUjLjUzRDsiS2U8WVdvbjdvJiM5PW96OldCQkYsb1pleixsIWRMM2ZWSkYqZVU5MGpAZSM6Uz1fU1pBLyF1JkVLfDclUU1BRVp9LGoqd3IyP0JTP1RMUStgfXlITy1zLWBORF9reAogICAgICAxUiJ6Wns/PH5xbFlveEhpeXRAcUdcN0paKUNNQHBQaVl4cHFnaj9PWnsuKWBrMmpGMUFMRmE/SCRGWyIpZ103VzhtaUgvTT5AfWwvUVFbdEpsPzxbXiotU0h3QkZfMyV8I3coL0QscV1KIzR0LQogICAgICBAIzVDU0g3R1NMNmE1fVNdLXNWWW5EXkAxNXRlOVpsVj5POjRCPlFBSSFPN1Z6djhVcVwmUUspcTVHM2ZOYypHfnVSaXs9cFIwXENXPT9tIVVMRX5aJCNBUFAzb3B+Z0tYcHB6N24la3xpQ1dRWQogICAgICBQVDJXS3wpfm5cI25zYCxhdD95LGJ5YnFPN3JmZ1VhMm9QKWpZe1BgQ3JZfC5hXXcvR3tbYmssJHQ3Sy55VnU2Uy9rOiR6TElcJWVMImxFK05Mei5cLmNxRHhvdWghIXN2Sip1Vjg1UUwvc3s4MQogICAgICBHLE9oandecW54Kk9kbSo8UDksSkhJSj1kZyRIeFomeEFnVDcwdUUlfCZjJlR2M1ZOMVxFJEh1d0JIP1smW1ptfXx4VXR6Ky8id19veC9zdjxkUnYxPFpvazI6Y2h7dmZIUUBhW2IlRWFMdkIyMQogICAgICBJTWdLIlx0OExjJ1wqdldJSns/ZC90VFkoKW0ncTBqbz5UWTR+dW8lM2pEbUlDc1k5JDxDcEguQiNiKWIlV3deKHNuLXteRCcqNTU4Iz9kLkhJJVNTdjRxIU0hcU1CMH51SyozRm1aK0ZNUDBQJQogICAgICBsJFs8TSM3SSZiNj5DViRlNio2eHF+Kzg0K3VpPDUkPVdIOUh7KnpmVjhlRl4xVFhjdyxUN3crbVxgRDlIKFF7KmA9JmtEamkwZ21sdWJiaHpwbjIpWHNGXzFMaVoreHNjRT9fKjxUL3NzWSFxcwogICAgICB8K1xiQTJJXkBrSV95LiVCcDNJOD9KZXc0TDd2LVdqXX0pKlJ7NiE6ZDMwQDhzL29EU15iWzhgQVVEPkl5NX1ZV35jUm9YWiRnX3FZbGQ2N2h6d29vIzp8YFJCPDxkT2F6aEYrJW10Jz4nMUozWAogICAgICBFejRFaGdla3g+cHl5KklQfkcqR1RTLj1JWyFuc2VATi0pRkN1PVNAXXpXSVpEPmgjYnYhKDBYO2Q4SkZITV05QyMlKnUuITFKNGIxd1BBZHIna34xX3tEektUOi4+TV5yM2V7fl15dDN8WUZ+NgogICAgICAzIVBmSlVyaTc6L1JoemtTRlReeGhpPidWYSRsR3ZkNio3V2pILC80XH1QKH17KmtxfGdfLC93RE1hN1wjR0N+XnNRW19AUUt7X2g3Qz9bVjE8ZXxYW2ZHQ0N5UDRmaCtuayVGSnwzNHQ+P3I8KwogICAgICAwYjYocTg3ZSknb1Yzc15ueVA1Q2ttP1Ywfng4MyEzaTxhel5uZ0B1W0ddVFYmN1NQWTgib1FlUkx4RCM+IUo+LmBWfHRtMlkyWC0iK1ohPWFlcCc/ImNNaHgoTC5yJmpPaDVYSEpQYnwufC1YNAogICAgICAkUkFleVBCdWdwWTh9NHxXcHBKMSFrWF5jKkszMV5BRF1Wa1hLcSdsWnZFTnZCZyJZeHw5YUtvaDdSO1VWOVUzJnYpaUdkTmsmbiNpQigufUFec1o8RUd0LkJ3JDdiVCtAckJ5LSJGcCgnLDVkeQogICAgICAxNXxUVnpqMGBray9saVY2U0tcfWgwU0F1fCE7YidbS0p4NFJtKFddW3F+SGt9WUo6SDhPeCliPixAQlZEMjFYbWJLOTtgbkdSTjtLSi0qbT05IiNvdkZfY1olNEUtNDRYbnMhK1J8RXNvR1NmTAogICAgICB1djxTNzxHaU8mJ0g8WSZQOlBwY0VUVzJKWSxWTFElKXo9QGRsRzlpL2J3YF9EfTVDMTxEJWx4WCxKVkpWQW8tWi1qd3VSK3JvbTZhVjAwa0ImI100WXZkJCk8Oz5uXytNKTI6J0N9NS1kSFpJSQogICAgICBKWS5JUT0ocTFPU3MtVDElYE8xdyJxSiVYcTshRDNxYyoxan0rPTU7WkMufUg0Wj49IVszJEozRV5mfmI5SDVATzdNOylBLV9udG18XjJ8PzM/Jyopc3JHUC9oI19wZUYkOjZdOmtRInpkbCY8UQogICAgICBFT1tzYkdVUi05RXVwdiVXUl5DOjJyQ3JqIj46RlVCRkoyMVdQL2U6Pn57d2tJJFFwZWJ4XDIrYm51PStqayZPL2U6KD9ee2pUVjJAMEl6SCQ5dmE7cU9YW0pDYnRsVVZmfDtKY2shLlIraXQ5QgogICAgICBnZX1FbydXVz8oZ2xwaHZdTm18fVVjKjImPXh+bVNiXSlsVF5PZTc5PkdcL11OPXkoWE5DYjVZdHJOblR8ZjNwOmxlSDhuQGY5Q2dtVDM+OWA/QidrInJbbWR1L3YvUXl0XFh+OzYmMSxuQ1VpIgogICAgICBpLyxNNS0xT0JBVlwjbEZseW5lSSxRR24jLz5VQzdqcmxzdGF7ZjVjMkkzVHlaUmVpezZ+VXZ7RUwobHR6ZSx6R0tPTGdpQC5dVSlycnl3b0FSMz5abHZIPkx6eE41MzJ9VzdMJUpqTy5VSm88PAogICAgICB8Tz5kTi9qT01XKztyKmEmL05bc1tje2BjPH4kI1FjUWUyYD9wOSswJHM+W1xyOVo3VVdsK35VXzU+V2g1JTQ+eVZROmczOU9UZU46Lkx8RDUwbFA7KzZDYDxqT2pCS305MSRlSztMIVJhd356dQogICAgICBbNHdYaDVtfUtSUjh+Jiw5e15nI2hxLkVbNkp9NV5jaWk5TytMIzVbP1o3NUV8KUk3UEA+OCNvfm06fjlmdFB4KHNwbjY2bl87dEgjUTszaU5XclA7R3Z5I3EufHJrNk9YSGhsWjFkM0h0QiVbJQogICAgICBOKU1TOCduLXQ5YUQwYDRJcjVBMktScFYtKEh+aTpBKTB6JGwnVzEmPStVaDlgLFNzMysna3x5IkY8SFVqbF1MWTR5cztxZzckPnZ9flAyYltwXVFnSVNARmZ3KkIoMUknTEheRERMfm0yWmJMbAogICAgICA2THBjQ3RrNmJEaEQ2PjVXWitZMjw+KCl+Z109YkhgWUhJc3M0dnNSXTR9LWJHaEBFXUY0Y043NXtFeTAmT1s9RjJtZjZ2YlJUL10jcT4xWjU4c046RmN3LUlWWSFrcztZPmA5ZktDVWhnVVZuVAogICAgICAwIUkyJiI6SSNtPUpNJTRve2tiPXZ5fCUqTnopK1kvWWRJYkJSamhGNkZ0ZmdudmAhLz5fUFNSK2MqbTVTLUBLdm10cksuWUpZTU0pc3EoPncycG9+YExwKTtQfjosR1gweXItP0FKMGtXKUt4bwogICAgICBVIlNnQz9vWi83fXMsZmM3OWkxW0syUWA5bD9PZ0psMGRHJ25iZ00mKmA9XUZ5Jmx6YmQ+WFpna1VPW0lOPWBBI0slQzVLIWNrSyQmNHcwRVhPXH1aJ3A5ZUxvT2JaJjk0VCg+N2RmemxUZy9zYwogICAgICBPOFVBRSh7RysjMEB2bCZCbVV1SUJ4YWVIXyFecC04MS5rNW5gVjBdXSx5WH5SfntVbHtATVx4bntyLDZPYTQuW35wSjU8bSxgNmllTVg0fExCMGNXRHZZckVKLntnWmQ3O35+IiUoTmM/by5jfQogICAgICApXjx8L2lMPl0tRiQvXzk/Nm02Ll4jZVBJXCxDQV9AO0ZSKXwzbGVGamNTNCp7TXBjL3h5OSpcXUJpNSMpP0ImXXksT2xoLXRkN1BoKi4pMCdDJTlcSzRPVDp4amVdOzpRdF9gWXwxTEh0X2NoIwogICAgICA0eWRwWVJIY35UbDBwfGhUfldWJDsxSnQwJXJ+TGdaek9IOFtafn1YfEpcXD55Lkh3Unt7N2AqdGtHPXFlczgycSp0JFRXNDN0c3RKfCtpIjI6XW05UCJcIXd9TURDQS4sK3k2QjRiSkRWfiJgTgogICAgICB3SDx3cV9ifHdIQmguSSs7Lip3XCI5KmNNY08sdHBpdUtJLz1MIkRBUmg0Mj9VYjx1MnNhUkxiUnA3IWdNaWA+YVJIZjprMEdmL2AwIWtXajJ9YSJUbFtlNU15RyJOaV09R1dLIUhfSjc/NHZSXwogICAgICAtNWRPNmdoXypYXksuYS0nVjMzcl1yaitacihcIntneV1yWyU1XFNGcVFIfWkhMndBTGFUczUjMj84V1JqVW1RT0JwcDlSdjVDSnhjTzxhNT1YbURhVElHSnowKXRhRWE0OnhYUiV+eXB6RF1PXgogICAgICBzQ0BlO1hXfVA3KnlRaDpVUVNWK2c6VVFwKntdUGZwWlQ/TkE1WHE3YUZ2dnJiJShMYzhbJUNPdFx6ZWtiTmZ9dy58KH5tZnMobWdhJ3tRbUU1Tm87WTkvQzJ+UmZZcno1O2RcOillZntPfm0xXgogICAgICBNNiMuRmBsVTwwXHRDWnFNRTtbSE01Sk86NXosPUwwIWpqUU9ISjlkWGgsJlgvZGVnbHIsVCJmR2JTbS5OeTZeJXlLcGkpUTVaOFoxVkIuay5RKCI7KCEqJUReOD4vKXNCczclTSUtQl9lJCE9RgogICAgICA0Ll4/QDYnQ3Y4dkgtIjNyKV9wRnc2bnhJbi1Hc287al94MmAienBecTV+ZFchRDp2LTppJjdBS1gnX3ZeUVw3Zkc7YnVXaHxHKGJweT1fNDtqfF1QRzgkPVRuM1pqV0hdaF9aQXloI19BbCN9NwogICAgICB3dDUkOiJfQD9uMGt4UDBKWkhNdmk5RyFJeVAwSXYwdycyNUZ7LGQjIixwUXJWUGsre2tiLHZlMCt9elQqeTRbOC9TKCorZ1MpbndEVl55OywhSjtdfDFOe2F1W3JEKmooVVVIJzVcWWMlRTYnTgogICAgICA8bzFXLjRUfig0XFtKcGdfZmdkOUd9UVIjdXI9W1tDUFtke294YDZEVGchKVY5KixtZFxefmg7VmxXRWh8eW0sZDxuIjx2W2xXREB0KUZGUyxwRVJkKFBtM2R5QkNBKCIpcWQqWypoPD9uXFBxMQogICAgICBDaHw9SCpsfFNPVjFhQD0qeXZSXF1UVjNAJHstRDlIPCtWRn5QPGciSHwwP1NKbmd9JChZbSNuQkVgM2lbVFhnJF4qbkZORmJzKTx6JlloWlMuM15ydEMsP09IMHxBMm53O1tQQ2NzWSF2NWdRNQogICAgICB8PEI8L1lzLlJselg6XF0kc3kzZFdUUFRpO2NhTiFaKHAtL0NOTFQpcng0Qm1ldnFLckNONHQ/KHosTmZ0X3F6OFold1t6N3QmMWVZI29xT2I7aissU31LfmtJaFhqfUFOSyhMaDdFV19VJVU1VQogICAgICBlUSIyaVNWNjQ4LyFYSTxFXF1gIklpeH5pKyF1RG9TZW44Z2RtdClbYkVkXT09S1FVKFN2P3BLKys/bXdrXExiPzFrKWBsTV5cXHU/eWIpWk47OnRoS1VVXWFaJUAtKUJKN3RxJUV6OCpjem4ycwogICAgICBnbkEvQjVDZ2NWUEgvJ2MqcCVENEg5eSpjfE1VQyQ0OGNcclhCYUo6VD5IVVxoRWgvXTZyWC5tPCFTR0VNeXlPJjoiXnRxcSoncHglQiJEOVomXEteXF9Qd2dVQEUqeDFxalRZUklhPXY+SUg8LgogICAgICBDKE1Zaj41SlMnaVRQYDdcKzgtJy07Qk9edE01bnRaSnpgfS5eZyFOaz5RflRHcFgiY1tRdH5wNjFQPG1POltUe3xkMXpYdjBgJCgoV11HckxZZXxcdDYkXEZjKFhJZEp0RkZ4Kz4jX0JhPll1YwogICAgICAxfSMicHM1OnZMUUtVT11We0Q4LihXfmtldG5bNVosVXNpbXFud053NSY1aHJZaz55dzJrJ09APn0+VmZBOy5hLDdMU21AXVBXTUx3XntuMXMkKCtPUl5+WmRYTlxmVEB8MSkqeE9ReWAhRTElRgogICAgICA8Ymw+XzhGKz4tV11Ac1h7eixHM2B1cktvdm5+OSxvOjhacDFmZDNASFk9VkJpJT1iaVBlc15nTV5sWTUlOS0iV3xCXVJTR3Q4IUBhdTNFMyZFR2FIUlZafH1GWFtIQj5aLDR+Z3tBJFpOOjJXJAogICAgICB6I1F8X3NvYTo9U2Bxc0VAT2N8cz42KHNWMX1lMHtcYypwVVJvJ3NibTZzQidnSEtxaEkxMSMxXDo4ZT5EO1BiPio3Un5HLGNbR2A7aWFzbD1aZCN3KnRHIjhnbiE1a0ohaTZiOT0xRH0vS0JQdgogICAgICBzfVZ0IkpeM2VkUUF+aVlkSzh1WnY3OWxOTHVufV13eXFrYHkmSEdVc21UQkhaST48cTg9JlwvJ2w1QC1PMHkldiIhTiZbbU9mPSNzMn15X2wnbydtO2RRdnJQUnBydWpaVCpCIVJ1LUBILTR8aAogICAgICA8PSRufX1HPEM1XkdRPkpTa059ZTRlXVRxdShsc1FkRS9TcUx+OVZ7cXlIRG92LjN+eXEpalR+IjNoVCNxYzw1PHRISU1gfGsuJ0o3SnsjVVZzVEN4a3YkcHdFV0xyVil+KiprRDcxLCxfbm8xRgogICAgICBSW25dKC48SjApUWJdQy1dNHlaWSZJOyFzR3NIczZTYylua0pvUDheZilNTytMdElddjx5KTxxWTFdY00tRnleMU9FO0l3eEAxaCNZPHJ1SGw6P1koLCMxfClUXnBEe0heQkxCT283elE+RiZBawogICAgICA5IlhKWXl2YlU9VygmOWc7KiE5cy0kVUk3dz09IiZ2aUxEc0JQbUkyW0p+JzlTJ0MuJ3dyXSM5LlJ3UnBCMyglUjh4cHV0I0FXeHImUEJ0XyliWkhhK0pBZD1nY2spcTdjQ21LKXtve3Eyc2BDLwogICAgICBxaDVScXY4Nms8SUIsNGo9JV10JyU8V0Q0OGZyYkA3cGVcVTpVfDMoKXM6SG8rcHohcl12TUB6WCdARnA0fn1tU0NrcjhLbktLNitQY3dNLFBvaX1tUGxAbUEzLW9RLjZLSicqQk1oLnB+XzNYJwogICAgICAtOWF0Um1rYlB9IjxoNkVqQVJhQ01gNmxMWSh1aT09Olx7QjNVVERnI0YkKkd+ZHw+dS9vbjplWzc9I1pwcGp9dHdbYEc7Mi8wXzZ3W1F0WH4hOlduQyRIVjtpWEMwfUh7bEoqMnMzXGVDOGtsOgogICAgICBGVVBuLk9XYCdfOj93Qy8xXU89MTZBJmwncShDYiQ0aGUkbV9OP1M8eDYxWjI/SWw3U2BqOmo2PExFcGxvKyd5Pm19YXxiZDdwTUVBIUo/VSZLMUhaez5wIzZPL15YVktbUU8qYDJaeGs4W3N3XAogICAgICBKJVY1dXwzUnZmJTteVX4tWTskWygpQF89VlZVdydQR0paPmdUdC8uMlJhTF0lUzBeREdQLWs3UVo7YTFkeHV+X1h4dTBrPFBlK2cyVn0zTn01aVZVVEpYIjxmaD5hUWJCa2hPRGZ+ZFJhRExlLgogICAgICBuRXovWSUkWEdNXUkvMnRwYSlFJVgrVSYxT0Z2c24pS2ZacF4+SSpIMHU5XH5Xe2pbLUo9Y0BJc3QpaUFjUyE7Kk1JRT9WJEV0PzdQZXhQU3l4U0dBe2hSc2tvWlF0QD4hWEF9UDdSO053Zy5+RQogICAgICBVRz8/ZVpmfTEtTl5NcmEhZUw4YyxKUHFkKiJoeTtSZCdiLTtiVytkcDZDLyJwKmt2RGtYWTMzbUZ9PT5ISj00eGY9OkFNczp5WkElPSd7IWFxYCo6U1NVb1N+bGRKO0BmTS0/MTdrO3tjZy0iTwogICAgICB3Tz8xR3ZwMS4vcHIrSSt4WkUwQVt2TENFUFVAcy06OjM/e1Y/cCpCSDFKXl8tXidNaTQrblJKLi1lSDxpLSdzUW5CKnsyR1daLHNKTkoqeUk+S1tLNTU7cV1NdG4+Rmx3Xz0+fjE8eHwnQlNbRAogICAgICB4UTNXaURWNXJwdWV7X1gtJ2VSejk8WHp6XWIvY3BaVT9TOTVIJ3UscV4kL2BlQkJMXWo3alt1WFdeKjdJcUBcQ0c4e2BYIV9ufjg8Um9BQ29yKDtlT0ZmPElSV0FXXkhkMGIsMjJVZzpNQ2YsJQogICAgICBoeUN8KTZ4JlBXXlJydXNuZXFGOj5sfVhAOSMkN1M6WURZVVl1Izhee3dbJWxHSmV1OEBKNTJ7fnMmcVJbcVpdK2VxTWBtaUZtPVFmPDtpfXRvLn5ZRjx+XC1pJ08pWXFETFtLMiI8N21cPEtKIQogICAgICBSSEIoLChjRDM0YT1fQ3dueikvMHRmUk9hSDByW3dpViF7a2lsNlIvTyY6T0J4TWVcXj0+LmNIN1xMIlJhe3tVcyxyfmBLZyQ9P2ZSZT07S3kwcVE8cVU9Y2VJPnQnYCxmTEhNWjU/dGptITJKcQogICAgICBLMlgpJy9nYTchMCZaRjxmYGRWZlV+JnVyblI1Ing0JktlXzxiajlye1R3M0x9Pys7M28valtTWFBVQTpIVyJBXTh4b1NbIVoydX1GaT98P21RWW5BUy5TMW46ITsuYjs6RCY6OWpuTCcxNictRAogICAgICBAP3RxcGIuMz54X0wiIi8/e290X1EnYStOX29FTHo9d1NGLXlXcV9RTTItdGh4TWk1IT9GRX1hbCRwSH16U3pdVHhYJkkteFAmO0k4SWd4LlJZOkdXT2MxQ19NKVI2PWgwdXInTUI4a010ZC92OwogICAgICBJdHl+Kn1PLyFBNXFlSmssbz05dyxSbW5sX3VFcWNHekc/RCQ2bkNGUk0wekonWl0nIT9MamN4YmVaOFtKe1hBOEN9YHJRQUJmcn07YiZaW31PIS5lYlQ8MipIVDdxSyokWDomKSxUJyhgY2IvagogICAgICAzVFRyTGUtLF9iTl1yKiN5dThcNTVyTksqL0VLR0IuLUY1RnsyLzU8Si4hZVRTZz9VezI1YDRDfmBAWjhQUF8/IWg0eVJfQXYzYjhGXi5jMy5oT2k8J0BKLD05bV1EQUdjfT97Q0c7N1AiXjMmMAogICAgICBvTyFqWCVMWlBFN2lyXyV1LSgkciZSd2AoWG06UDRuLDA9YnRuLSMhfXpZfCNKcFtmUFZTY3MuenAhMVpHa1sxQENDTH16flwyZj0sa1JQTGpKNipFSjVwJms7NUNJenYpKV5xKWpmIiZVZXhWJQogICAgICBQMVNVaStXTmg/SSx2J1hlRytLfitiR00wVFZmOWViJShXOW1zR0dIZ08/eXFUYXE1YTxHKjp7RXFMJ3tTLDRfPzk9fUMmRnVkYTBESm5OSExNUW5PJV9NS1l8fmk+OE1lNGosRUN7eWJ2eSclTwogICAgICBFVVF7Plhve3hMOWoyKDcqKUUzJEY1WHxOQlslYXkqLjJlZVw1W0k/YjAyR3V1ZVk+TUd6e1kqbDM6bCZUJ1lkO2dac1xhR34sWGIqOVhQMUxHWTZ0aXdNQ1NlLlVXRDBUWVt6dzkxbVknMDRZdAogICAgICBTUW8xclYkJU8qVWkyTyV8JE9GUmheXFJsPi8lbERGZiRuVzdmYCR0TkEtZDs8VzMnMiJ7JiZQLCNxNV5KXFo/fHhKd35KUmFfKmVfYktJMCNyYXVrY1BVPWFiVH1Ra1s+VEApRHRVd3dLfGA7OAogICAgICBULSVzbS8nKEE9RVJ6fEczNj12PS5lZHFkb2pzRGkmNi07KXQtfDRvflBJQmttakh0fmx0NW12UzQzW0k6S1hRazxmUCZ5XD1MeTxuei1QWF1ZPz89bUBHc3JnM1cwemU0X0xFNSIweHVSMzlkdgogICAgICBfRj5xRCJ7eHJtLU87ald3elZ2VG84NG48JUBVM0ItR2RDS30rflNeR1stVmw4byE1Mm0lXFEiS0Z+dyRFVGF1LDR6V0kxMiJsUV5EfGldUUMtNDMtLGNndT18Zks4XG1DWSw5eCYwQn47Mlk8IQogICAgICBXTVF0WGdKezo3aFZqVkRsI0dEYk9xVGUyYm5FJEpMVjc/Jy4tRSREYn5VKixiJjA7dl5Vd017TVMwRyVITm46akA8dTpmRHx1QzhxZT5tIn0se1cpPmpxK1hwVmxwbUIpe3RpbztVdGAtfCJHNQogICAgICAoIWcySEdWNmBYSTIkdXc3IkhgUU1fK192fT9aOFdpKVNuNDEnRUJjRnwjNFhBMkp2cXZnY244bUZUbnUoYkdNfUN+PnQwJ29yU1x7eHBuJDMpV1hmXiRnSm8rNHpkXEF7ImtqUlFmIXRKIXVmMAogICAgICBXZ25BLml7QEdSbitvd31ffig1aiRyU3JDQFhHfEw5LlhjTjNzJjtdXiVVSkFNdDNxcD0vM3Z8YEkvXVZ8PTQjPUMuIS19VWVRazAwITx2NltBcV80KXA5VUNbeTgpXFJ+amxwWytyZCZaKS9MIwogICAgICAtNDhYVSMsMVYpSEV4Kjc0blhuRnR7Yil3bWFSIi08Jk5OJCVkSj5mWW4rfDY+aVNQP1wldWFoP3AxV20+fTFZR3tDcX4qaTVyPiNCbEhJPSFKekRTc0NAcTFGTUh8ZkU0Ny5fXyZCMkNGQyUiVgogICAgICBxTy8rT1ZbYnQnVGQ7WXI+SEM8aGguPTc5TGxVXFI8YyxYXTpULzxrNS5XT0xzTnU9XHJ3YEBSWXErS1B7M35cR3F3Kilvaic3WUdoKEhLTVVRdzQnbk9cZTpyZkI5aS02YyVgcEVGMzhEWmoxRgogICAgICA1Ri5oPktzfCR6VEtHdX1oI2BdUFZGRnciKS59X2k7SXMnfiN6bXNDZ1EhWWZgMFVVMig+eDpbZDNYWnUtJ0VleyxPWUt9X1shWF4zZSM+T0Fhe0woWio0YkBgJkZ8RWFITStaPGJ4XEAtXFk4KAogICAgICB2VlZfQmBMbyUmYnwsanYrYlchVDhGbikme1w6WW41QFAqSnokKDp2YyplLDFNVCpXJ1V2On4kdV1nPnNfdnZjZlR1QG1uNUBIaGMxU09bdiFkWUZiMXh2QGZBfVZIUVZUP31YXVghXmBBMyQxSQogICAgICB1YTpPYWkkbFcwSn1PVjtgISQ0ITNkOVIiSC0wNG5gOSxESyEtWnFXJEVzOSEoaWIoRUxRWid5V3hvNi90ZiFPWGZlLz8zanBXQFNXYnpILC49XXpvOT1ickB0SzBHWD5WK34/LVI3U3AkNVBtYgogICAgICB6NHlbOzlJKWlATCRbKXElQyZDX30rJC1LU0d7VDt6Wld4R0VhK2B8PylVdkJpZkozI0wpbTBYdzdCb2Fwfi83elg1Y3h+aGt0YG5QVTddS28xW2tKVi8pREJJN01gd0wzYDsza3Mmdl8qejgiPAogICAgICB6Rn5TQVxEKTotLERALHlbamQ/U35hVWJSW251ZngnclwpLFBBfDFNWC0tQiVIPkldPHo7Pl9DZCdvKDtVdHFAYHQzX0onNUxRey5LJD48MC93d2ptZUg2VSZoO005WG9lNTY/TVZBWFFITyVXOAogICAgICBsYEx+YFw7N2RbRiNyZnt8eHYsNVp8biJFWS5XZXE+bW86VlIpSFJNfU1bO2dWfmN2XHgwPUMpSiNDOC8qJSQyI2ghVkFUbkhXeGB9Yzp5X0hQS2IxL0g8NVJpdGlSPE5LKn0zXlN8JCFuXSYmTgogICAgICAqNVUiail9bVt1IlNXR1VkUWhnSWN5aDA1bj8lSytqY0YsU3ZZXCk2bi9SWSR9P3BybiVueExjST9XPyNCOm9wWSE7c3EldzU1MXxOQkhuSjFwYCZ4PmwwZCZsVnF0TE4oakJaWHBRUGF4WD94IQogICAgICB9cUk2M0cqS1NMdmUnc00rIUczbEU8SW1kQFtEZndVS1coLilkZkZENlBxWkoieHBjLkQrakVWSio7X3lcJ29hZyxrfkwzQzRLdG1lZmJjbUolaChAPkIrKiNiZFNPeltAYWI8Tks0dDVHWWAoewogICAgICAyJysyLXpnRFozdyRvSVdNcDU2NyFneWJ8XDVHP006NmRfSjxKMkZmLl19fHU0SGk0eFdLUDFUNCRUa3tTVFUzQV10PV9YS0otaidNeV9ZL0RdcD1fZFx1Iz85XUB3cWptTFskKkZBQ0ZXXWNxZgogICAgICAqLUdmbl4obWR4KF0rXTQvPmZFMiEvRCRuYUswXXVQaEchXWpNfDFrKm0zfVBOXXxhNENoZUFNbn43ezIvXkQvSTtmYCF9QSstXWZ+KCF4QWBDPSpkWjBrKVYzbStUazVuTW1bLjJOVSNtRTJKWgogICAgICAvK1l1YCpoclB2czBrLVNLZk1TfDBUPEVQPjcpc2E1cysxS34jVzgjJkJWJCp5dGBDSjlrR1BfKVR+VSpUWXZfQXo+RXsjYklLa3x+c3pscmAlXkREInR7J0Z4Zit+dD5EaEV1dSdVZFU3S0g3QgogICAgICB5ekNUdmVrbCVbQEg7VVA+LFA7bik4VWNBQHIoX3NvbTJhfCF4TT1tQi0pciM2TU1HZy9Cank7XkRiaidJYCFBVmpiV0B+XmxyQmtbYUQhcD1yW1dFMk9tQjhMOFNGdlQrS315RT9aUVNNLkVxRAogICAgICAtMXVfenh9QCE6OEk9XnkqbiJUIms9eDJTR1xAWn1tZXJDe0ZnVSpbWEc6bDdrVEJqfkQ2LyUobls0PENCVV9GUGw6R1xkLz05TXpcQi1eMS1NOnJCcSUqP1IsZHBQfTQ+ZEZSWDJkM3FVIytGcwogICAgICA/R0lLIkR8ZHpGRl0mZ098Zi1zfClgcGQwSzMzJV9jOWonRCQkci8zM3BKY2dDVl5tTX13VlhwbFklXUowUEhCOFJHK2NiM1VOI0JwckFkZGp6dzlBLzZpNDBnIUZlOGVeP3tMJShlX2dRQEVrUwogICAgICBWPyxYUCJeJVdTQ00iS3tjUTJfP05lX3BFcGRQX1hjXU16XzZoSjxWQXMmOiNzUnAtaXtOPHl3YylOQCI1c0BdeyFkIkBXQDd3P25ZaDpPOW4oVTZbX3lJfWdgUys1SiJbbm5WImYpaWM1dUg3XAogICAgICBXajMyTz1QRlticG5OVGN5flRaXDImVTA2OCNLb3xFOmY2PytiP0s1cH5nUmdiaXFgRVZCbSltVH42U2ZsdzQze2paJTpcaDFfJ2hnckpfNi1mNysmQGJpKSlNOE85YnglXlosPi1eWEtYRnV+ZAogICAgICBuektFWTQ+Ry5TLmQ+fEBjakNzLDM5Ky4hNl5sZnVmNkNxZ087dVVkUCdaIVZ2QmtmTmVXNl83eVIsLylRc3F4TCRtbiJxPDRATi9VfSpALGxqcHZpSVR4dSMxKklleTAqN1lPcD5MMXg8JmVUIwogICAgICBAVls/ejMmQ0d3Q0ksTzVKZDNwYXdSXD9sNkwrVGJBXlpTSjN7e1RDJms7a0wvYGktfC0waFVyRTU9VT8iSCE2LnA9d108IjkqJ2Q5KG9MW2tQQzQyUT5DT210N0MxIUlcVm5JTn46ME50TSxpMQogICAgICA4bUk4VGBnOS9yVCwsVGNLSzE/QGp6fTg5dFQ+RitHXTZYMGB8ZkwoLFQ9eT8xPnRPfXE3bXRWYX5CZHpNNi9BcWpcPUxuOWtWQVRPNytkYSZgUz1SQipafj07X08lLDwnMj1cLCssZEV1JlR7SwogICAgICAlTEZ5J014cjIwM1JDa0NPLHwza0crfD49c3RHXzRccX5oQ1ZTT1tUUEQ9PGxbbXg9cEB3WFRWOCg9NHt9MyonP1ktUX18J0RKemZsYjUlPCMnQCwyQlk3Omx6fHd9e1xvIVVING48TF4sSyRwegogICAgICBqfEY6WS9ZISlPMUQsNF08SjI/azB3MjBral9JRi87ZCY0JTtAJz5GLidTJHYneWxuRWcoZV1cPHwuYFZ+czp4MChaWyUpX0BLXTdPXCp+YkB1OTBjJWxRXm9yWjNbbislPyJSVWBBQnc3YSM/eAogICAgICBqSDA2eEJdIjIxaEIvKixXaihpdzldIyJLdDYoL3QpWS44XiF1a1ZHLyVMMG02YzdYKE9NUWFAQC5Udn03XXcoSDQzdlNOWT8uOXRsKVtlaS09Jls0MDs2aVpaTlB1dkRMczFAJ0lcPjBIO1slJQogICAgICB5IXRMQExBS342P2YoNyg1YnkpUWw5XVg4e1BXeUEvIkMlczozWVJtbG97TFAqK0NFOSNwQm8+QX1DaGtLOUAuQHUoSU5AVWtDal4+ZiEvU2V0dEQ2VElGL1xqVzA2bHtUM156diZSQX54RHtQNwogICAgICB1ZkNlJXNOUUNmczRSK1U5bjcqNCFYUmlBfCJSUT5Rcl9pbTNiZjs1fGtOOFhWRjUqenciQHM2RTtMXUspUlM0WkcqbmZrJHZGcjUqKiw4YUFAdzVnaSs9WyhVTzZbNTAoU0N5bHJDXG1xMFlGdgogICAgICA1Kz4idkNfT29paCRbMFszaiw9Xid6JGxLKmlZYWNXL31UZmNcSSoiRGo1W2R7XW9wQilWRSovWjNgSz1fZjE0LldMJWpWcDRvbXReO2wrez9KKChdQUJlZjJuJGE7RkhDJCMiYWp+Xi5BeTteIQogICAgICAsVl5lNVZlPWdGekZfbXhPL0lwa2pTb3hWOTY/fWVmIiIhcmEzUTxSSnBuc3lFXGBDQkwkTDNzcFNdMEg8RnBKM3R2MHR3JSo3JyUhQH56JF17YT4oIy97Nmo3aTRjbXdsWzVBRW45PHskYyd1XgogICAgICB3e0dESVExTC0wZHlWYTpLRzZHWi84IVl3cTxUdi5WVF9fai1LJVw7amE9N3FiVkpRS2M2RD5RXDo0OFI1MyFXRU02JF9rUm00RCkuQVlGZyIsQiEkRFJlK2pVUWY1MUQmQlY9Tmg9dDtaJGgqRwogICAgICBMOHgneSkjPmZMfGElSFdxTzlRTSMnWCpNL3AubnF0UFRzWWB6ej9VYj8jbTQ5YShVbTZlUC4mP05NdnB2VjtdWn5dfldXejtPeSVRWm5qQlZEY0ZgU2RoK2VOcFhPITtBN2pqRXEoZXEnUmdgPQogICAgICBmOzleSTB+WjVuSUpUYlV0Zm5FY2tIV3RqYHNBVHVkLzEkakp9bCw1Mj5PQlZ1SkUheGNpNSprM243Qy9AVHptdmAzUXwoTVohJnA1cEhbUFVTSmNuL1VRNzptT2VwWHlTXCp8JEpeTy18WHF7agogICAgICBRbGpAXjJkalVcckBYdG9lOiREdicnazolV1R6KVZWUHpTWVBsVWNrWCgwXFAoQD9cPHRiNjEzWlxbe1gjfWpLOG1ZTDNTMyN7YjltWlk7XCgyJl1UOl9hbGA5LS9cODdSY352OllWNXZRWyduVgogICAgICBefVlONTZEUU54PWVkU2F8Zz4mbnV4aTh7LyFZOF89NShUJ28kRkYyIWolNCJhKFcleV01cj5eLHYwcnpjKncpZTRaVTt5cFxSXTdIUSxKLDN0JE4xX1QpZ00nP0oxJyo9YlNfUzRdfX5lZ0A8LwogICAgICA/LyYnfHt+bzVtKm5oS1RFUXdQRlRXcFsjTE1iVHJOLygtNWBQezBAVEpzIlEqZnJFbCwrKF0uRmhRZlIvQ1xNOi5CXn1BOCtLQHE5ejNELkFtNDV8NUskJS4yXzx0N3FpTXpHMHhocyNQdmNBZAogICAgICByaXdSO1dYMSE4X2FzIiJwNylYSD9IU0tMJHtAV2dObSVGYGc9Oy1IczVgW1J2LSJrNiU6Tm5oJzc8fEwpPz96Q1FzXWJSYGJ5ZElpWHNXWXsrZVdxY2clXDhyYjI1NjwiQlVtKz84fHIvd0FDfQogICAgICBsbURzXlE1Kzg5XnsieSopWSRUYXwxQ0AneH5rO0xnfDhwN2cqVH0xa3M2eXQue10+L15+dURpKlhoKU1yZUUrO3c5c34iM0lKR2BjTiE9Yyp8XmNZJUAnanpXYyZxbVRDcl9UNk4+J1B9KlZNYwogICAgICBWa1FzWFleKVVzb0E/S19XantEVkZYUSY4MC93fVUka08/bEgzQEtodTMobi1PK1I3aERRS2xFP109XSwKCiAgIFsiOTM2Il0gID0gIC0tIFNpbXBsaWZpZWQgQ2hpbmVzZSwgMjE3OTIgY29kZXBvaW50cyBhYm92ZSBVKzAwN0YKICAgICAgWz1bIWNxJUxmN11CdVR2ZFxVJGB4WTtaZSU7QSZQXGt1dnp+M1I/ZFdIYzZffTAqZ15pSDU/MlJNNHM5ai04flxvb24sQWdzYlNIX21QSmwtOFlANERALCdQI3sjfi8iT1svd1s7Y210T3o6JXAKICAgICAgLSo0WUEjI14oRmRRSjlVcjp5bkhGTCtORWI0XEFGYFRsZjwrXDRSc0hCeTBLQS1eMy1KfShINWIhcmo9cmwydjgkeWhLJ3JIbzR2MjtCeUUySSlMWjFLZWAjQUY8R21XMFUtfSw1QDBpJkFcOGAKICAgICAgeScxNzhufSQ+UmBgKU14e2wtVGA4QCpCWXMhUEk/V19hM0dZRiJ4ZSFyWGhNWFJHVDROSVBnI2o9fT8+MC8+V1clQUssLFxCJUppYl5Pc20lV1YwPDA+KGZEUnQiQ0oqO2A2JydzWm17eCQtO2YKICAgICAgVCg0ISI6OTokOD1uOUdTZzVvYkQvbyZKY3RocnJgVCkzKC5uZz9sfTAqM2graT9OW1YuVWdxRCFzV2RISV0sRT1yK1c/JkcoSG1CdlhXfUN7Znt5RzI9OkdbI2BlczUqKnx1bWJgTytqTE11ekkKICAgICAgMjwmTWJzZm8pe35mSGlDNVF+JHxiXVo5O05FZk1dbCF8SWNGWFtBYzhKfUIhczF7ZlpAOWsuekIqYHQpMzo1WCJNUlF6S3NBPjg/MENDI1ZeUCQqLV9qSD9IPCcjbnZuMHlVe0Ewc2RmY1BEVVQKICAgICAgRjI3J1BOVFkoWTphM0xaNSN9RWI6KDJ2JEAkNEV8ZXc3bDRhdHMwTmI+dlMoP2hnYDEiYHp2ZXFCSzhfNktNTW0nJ2NdR0R3TlQyX3h7c0hkU0xpZDxSWj9ANDM7eX5FSXddeWhdLCl2ZDljU3MKICAgICAgPllnQEZnb349Mi8kXjJzJ1F3IkR+QDBgXUwpPXhdfFtRW19HNidvPzB3aFs3aCIhRmZZVzB7dlxVKUdCS3cicSZbenE+KHJfSVF7Kzp4Xmp0fFgvQSRaV2RVOyhsNUV5Um8kOSFzbGlscmdEdVcKICAgICAgOSxTQHhtK1VwcVk8JWU+RSYmYjx1PnZIVkBkfkkiLWd6J01dY05MajQ/IUMpK1FWTTZ8O1lUUS9+U15sK2YlRGVpPzE0SDdmVkY2eiRnPkN+bVoybGlSfnxQfmQ+WC5Pc2YvL3dmb3FDfmEkQkMKICAgICAgWi59KUg3QF5FM2xdenpxczwzQUh9aS0hJzpfT2s9WVsjUHVTYSZwNGdCKFA8NiNMaDV+RCU8W2k3STtAcHBHcGUrImNRXH0uYHg0NHBGPUwnSENXNS9+cjo7XHZfbXAhSkwndipUJEkifEBoKDcKICAgICAgVnMvPEAmQm45Znw4U0N4bH47Ty9iRVFzN3Z6MiEmKUJieTVcK1t9Ym5iYShRX2pYRk4xRidCRWVdPlZpJDVBPDx8O0tLRk4tRDRHaUtjQWNocXw9YTckIThocjo+T084S2soZlMhSVh4O1VGKywKICAgICAgI01rLnImN0FmKzg/aDomMENldGtYL0p6WVd6ZyRGKmE+fnwmeXpEWE47K2MyQVxNJ3NhS3J0Pjh+bUpMS2E6ZGs9InYySVE3bGxSZ2opSSEubSRjWCNxQjNCTGl1cCMwUSReLm5BXmM4LE4qKVwKICAgICAgMWA2dDowJUkjX2pIa0Rzaic0QGhmQ2c3KC9aZ2tNPUE9dF5wNWkucHBEVDBBZ09eJXB4cldMNllwLjs5Um48YGQ5bWdLT3JLLkEwM2NMKm02O25yJEA+dW8oKiYwS0lUVDJCW3UzUDVAYjtfREMKICAgICAgIjstWSwxLkhxay5fWUspTUpKPi5gUHNgSUp6Nzs1b0o9RF86dldDVEJ0emAhPV1JN0VZejd1SGVfQntWem9iK2tAPUkkPSdvM01YJDNKbyFvVHRQYmxeY3VIU0xqNm8oZllIKU1vSmxlX3tlKFoKICAgICAgbDI1eVRkd2hmZFJ2RXN7OC43dFRUeHhCQ3pjUTVZL2dcVU9eIz9tXy9DNyk8NUZjJFgkPnVBJDwmTiV3flp3VTZSS004IiV+YVQoIyc4SnU7VmpNbFxyclBDOCdUXHBCIm8tamwsTnFzUFtUa2QKICAgICAgL3xkRXtwPylNZ2hscFJ5QERQRix1Z2kuXGlIUDZTQkxsQ3NAR1NtfEZLbyszZmtrLlZYXyl2eEszZzRraV1YbHR5SF5aPTZWcmUnMlEwQmNtSEIwUVxNd2pVRXNnMSI2NEpkenY7MkNgRnIpfnsKICAgICAgQFw4OiVfXDVudzh4XWZMX2gnaDwzL2ROYExJRjxdOj1tYyN8RVsmJCwrMj89J14jPHhkVUVEMkRUaj9wZF5QNl88X2BRXmFhTUlybFM7T089U3RVWlIqMzNHUjRpWTYpTWhJbzRwSTEpYTlDY1oKICAgICAgIWdybWJRQGU8TSw8digqZC5ubnxLIi5VVE9oVDplKH5yemYpYi5FeipCOVlXMVRtOXdzVW4mJ253b3lOZmlRPGwhc201ajtfMGU+X2BPJy5hODdAa3B0MEhEciUkNS9BJyJYckJbOyhGTHFrSXAKICAgICAgZUJCYDtDNmwxby0hQDl5MldydidIJCslRSl2ZkJqbi4ncmBJdzsqJElYLGZkSl54cmAyTWF5JSgvNTR8T0AlXj5zTW9Rand6WUxqTSYrUWouWydyXmV5SiFGLSEkQSRsOiZUPWooe0A+Zk5cNz0KICAgICAgMj1sUU9JYzY9THBHKm5aPmtiaTUhMF51bDdqTylMR0JxOWxUUUpYOzVLTilTTGVBKEJObV5BPzBoRy9+KEhhV1YxQnExSFlGc2lXYyIjJmR8VnEoc3Z5VUNbfE5cYXdnWCk8S1NXPT15dWtxTWMKICAgICAgQ24ld11tfXJ2ZFhjeydqbCoiTSxGZWlXZ3JtXTxhcHU3V18mWFBvOjZMXEM+SSVfUFhudTEhNkM9Ul88P2VoWmpKez1rSyZ4cT0iNFRgZD4uJyl5NDEsOXR2Oj01MClDKXR4LUQkODNcKy5BYzoKICAgICAgdlZRe3g5MyJfN19KfT80bidJNzxELmMoQ2hmVHwrTXRfcDpDRjszJ1UpeXlxe3goSjs9b0giTX1eJ1RsU0xZN3p3RjhlUUFleShhTFFfMGAvVCNDPHpcVDEoI15pd2o1LmFPU3RKR0BxI0lWPksKICAgICAgPVUyZTh7M0onXSsqdDJ2PnU2YTZNOVldKzEjV0JicHl4XDY7OmUrSS47aCZbUns1ISpaLDZBJGx6cWtRNiR0XWNqWHcsRlVEaGZMITRHOWJQK29eUWV0aClDXmcjNkRVK2lTcFpETlUoL1xxLy0KICAgICAgLD5DNG5oKVklYlckJkheY1pSLE9kZSNHfD9+SntlZE9iaUw1fWBvKDI3Yl5FR1p9KDM0OW1kOS5kLUdEVXFgd35tPyFGbnYuYVpsflcyXCZHIk8zNnBAJXEkTUYsYiJVeU1jZjZUe1l4Ni5rJi4KICAgICAgblR6M193LnFxXWVMNF17e0F6InxIPDBOREtiTSpAN2YySXMne2Nib1dWbWB0R3dBUzpVMmtqb0J4MXE/XHVIKTp4YltlLUo0cVw7LyhwNXI1amMrQDpJWzRYbSxxYVBFJ0onQnxLe0hYcTF8PnsKICAgICAgNXZwWlBTKmB1M3QueUEqLl84bXVeRiQuXDZ9Ym9eOFA7PCMrPVBgVXUnZlpnO3ElUSwvaFxyLy0/eDhFRm96N1ZVYTt2e011QGF7Oyl1P1NtajNhQ1p3PDk4PX5SSHJpSWE/XFBCPjpzZWh6MEUKICAgICAgJExWdC0xciw6Jn5YNW4+UDI1UzVUc0RKbCs2K2E+P3lUSyRdSUlofmhnXn0qPFR9aSoiZGxJMChXM1MnQTJNOWdEa0xVPXN0O3NHLG9yQnlwe0dVVmBmN0xrPUJ4NC0rQXdjblxMNytONllQXDQKICAgICAgbDlMXF43aU12KT1jLU8iO2RTV00xfDM+cmN8OyJxbzF7K0l6M197ekV3KFxuLkRod2JfL0NOKXYvcz1eb0crPTJKXHVFTTNNa2JnOVpJV2hJU11FKScsZjJQJmpgfSU5WjEtLVA8X2B+XndwK0YKICAgICAgSUxvZXRVTis7e08oJnpqZyxkQDRtIiZOcWd7WVdYaEN0Q1ZWTmtkb153JjtENWt7LD0wP3hRYCw8K2FVOCE8Wlw8WGN2JnlMWk1EJ19oVSJlbmIkLSJKRkZTbE5eUi45NSlNT0hVL0VPRlluXm0KICAgICAgLShwSnRIKmsmaj9LMWhPfTReaThETVdvc3hDRWI5fU95dWIoRVxCeSFMcGtxSjExYD5hdjNgaGNIRXM7QFljdUw/SzptIWN+aEVhclpUMilhMFMiY0ZMPy4mLyU4Xk0pXyZhKmZRZEFYbiJSJWsKICAgICAgJVclRVVyTWpuZTYyTj5NRjdDdT0/QDNzNnE2UlI8ZFxIUEFFLyJITFopQjBqfUdPRU9qeHRtazFFbTxpQVFeZSVyRS1cIl4zUEZwUkJmeDhfYS8uY09hRUB6M0tCfjFVel1PdE18fmJzJH1JOXkKICAgICAgKHNWZk0wNlNTbXUhfjBCQkpmbmNuSTxCVHxDUFZIbmBsKk99XVREQHFNdjQ1NWA2JG0vT3U4MipQSy41JFp3UkJqbUIoLl9XdXZMdVFGdF5MRDh4b3JQRk91VSJtPGZ1RHg0SiVDQy04I0JWMDcKICAgICAgZFdTbWptfD9IW1g2P31mK3tkb1Q4aiZ5K1lPLHlLUUJEdnA1JSxsWyxgVjopLWZodmo6KCsieX1UWmx+Yl9jdW8sbFlfZmNcIXFtdVFcYCMoeV5kfSxiUHd6QXhPc1d4TCV0SzNsJ0hrRGErK3kKICAgICAgK1BXZ1A6RHF9ST0/KntwRnFOfl8+bS8pMiJnXDRSJExrQ0pGYjVSajhTZSNEKDpBTUpzXmNqQHBGSz1dcy1CT0xKeDRrKmhDRDJrejleZX12YUYvYGxyLmw6ZFswSG1IQ2RjY0BDLCpccD5ZLDwKICAgICAgYl17U15heV9Fe3NjK2I4YT5tLnwmKzUic2FiPCw+UnNxQWJuYXFsOEUjMCl3ISkhaDZWWSJpTEZ3TEg5TnllWidwInBbZkMzeFxMIU0xcSlbXlgyfUVPOiJqRn4ve2N9fmN9W0wrfi9DckJ5IUAKICAgICAgaWxuNXhBT2dEdmlhOTlkOjw/b2pbeGZlOn45RU9gZExyIWNNNzctX30oQFEkQDZqTVo4O3x5eE55WjlBWUAsaGFkVDhcKGldXz1YSzRLX0M/KH5LSz4iW3w0NUkoPU5uTjgja3tkLmJiUi49JVgKICAgICAgNSNeXXs7em51bVlrPjVqPlQ/YzliejVEREJrJTt9I20lYD8mNGQxOFMlNSw6P158LSxndyZBSVFre0hTKSJWI1IxM1RgN3ZRSUJWRXlBXm1QZGVnYFQ7ciliZSU1bClpL0xWWkQxPTo+VER8XVgKICAgICAgemtNRGcjODVlOjJnfDxDKSRSJGEzMDx9I3Exc3QjaCovaF8zLi9vMiZoWlosfShxVXJNMV82KzhvaDhSUk9+a35ZY1F0KFZDcnt2JidreFJVQW92fUpqRHhdKGQzaChQSG4oZXZiVXFULGtTVisKICAgICAgWix5cjRsZzVOWltNNSFteydsRExkJEdIVT5eVUg/PTcwfFljZ1M0VVVKYyp+PFNQXk4sKX11NFI4TFxTN31CMDBdYVx9PVN0YWwnb3tTXih8ZFF3QFIhckl9JFxTYmhqSlkyYVtUdWslOzUlclwKICAgICAgMXdRcGdHMlErQiQyK0IiIzk1IzA+WVQzPFFnXC5aWmgoQ0RfXXEmRylAZS10eHJ8I15zUVZnS1wtNzVpTypgLXM5SF1BbFQ5dTFQcHlKQ2VSUlY2KnRsWF07IlNucnUxQyYsYW9PRlZiJXxDSG0KICAgICAgPyF9c0VfNSorP3IsTitFU3BsdXVxMU02OktiWFZlKzZ0QHU9R1VPeiZ4SWA4WXpGdyYidy56Ll9EajMmQU5GfntdLz9lOkkubkApPmM/TDI2fCZfbnZ+MyFOSVNtdkVAbn1FR19qTUJbJj4uTU4KICAgICAgK2x+PlVXeDpwQyRuRDkqMmtPWVZPLDNhLCIzPS97dG1pN0JKQSdvQzZeIWBsSW1EX3RmOU9tLWcjcjstKiklM3xaRUZuc0A/U19MNWNud0dLdlVddjpeRycqQlc+amV9OyplI196J09aPG1VTzQKICAgICAgJjNNfSU+ak5DUXx3USk1VmxSRiwyWWtqWlNMeEwkQncse0lLP0RtTlRAcnFrflp0fUEib3BseVJWTHRJQzhaMUpUfFcmQDUsMCtLMGJHVUdccTtNS15rTHBJelpQRjZGTEM2SGR2QTF4KCpDfiMKICAgICAgZmAsR0Q7R29GLklXb3M9fm8zKiZGMkRfV3k7L1pzLDtnVVtSLyNHKlAycVZ8Z1YuSEBvJntiaS9UcjF6Wl4oUn5MVFt8J3tPO0h+cTYzRk1eTVNlOl4/Qy1ANiQ5NHNNXFQ5di8vW0dGQU9XUnUKICAgICAgWmxIOSojYSpILEhhUipRQ3QwXlYkJUd3IXtiTmpqQWVVTVImTXA0ezAxKn1SK0gkQXRUZjFfb2F0OiJTVX07ZUkrc1FbaWswe3dZXVdFSC1xKW9sJ1MqTjhDcCFja0wpal1wVGNBfXttfGZceyEKICAgICAgaikkXyZQKXs0VFpwSl14ejNvO10iW3EuWSY3MlswMWo1bTVoPSo1XTVcSispLXB7ZFQvdWpcLzxOW1AoI1YjUnFiZHNWXTlpeHxKTj00PnQxcWdqSXFmTXE3TnZmTj1jYHsreDU3SjEtWW5rKzYKICAgICAgXUxae0pzQX5SRkhGNStwdlFDWXVCLSZOIn0kMiNoZH01djtlcmxkJVJXZ2syVX11ZkQ8cXJkMXxhOXwsN3RcMnhjYE58RUdwQioiejw/fG9bNClybWxZJlE8SlA+M21ZfDltJUxfS11TPyMuWEwKICAgICAgeCZCcU1LXU4hPXo3Yj1SR10+bj5CJS0+azVIXiJZT0ZMT3woTWxZX0pwVGM1WENAOHJxZjUhVDNXNGJebDopQl9oKXA+PlB9I09PL0lUbCgpdklgLzdrb1tJT08wWmwwIUEmaWtJbFtSXiM5RmkKICAgICAgSUgpN0ZsR2JyLSV0akI2XHFbIj9OOmRCPlxfb3JmKyxmISUnJjg9VnJQY3l3XVhoJnldQCtXQG8sLEhWWWIyPnNrUmAoMmV+bmNifEtfbyhyQW1jbTpYUlEqcDhDZWg/WkRyZ21gSDNTYD87RzQKICAgICAgPzdhXXMrX3FGXHFOJXs6YWtbLk81LVxMMXptPDEpaDBQYGkmbT5xYCJrL3wlMSlKQEUvel9OVCdsLkAjYi1iI10qTikwIl0qcXpDb0M/WGJQeUY8TStvVXZTd2x4aVcoRzhdUjBmYVldPkx0SFQKICAgICAgU0FFY0ltSExQT3UwZWV6XiQyOj8veFVwc1VNUlIhTVx6alE9VlkpJCwzRy5danpXSWcqTSZbKzBRcCFRYCIjXCIkSmZBeHE6am8iSCx9ImkhRkoycnkpOTR3Nm5KKHE5JkA0QUwjJH4jWHFcdDEKICAgICAgeCMzSVIyMEZtYzN1IjRjJyUhVisofS82U1o3SmMmUTV0XjlcKnIwdkhLaiV7YEphI1p2XGtmWWZtal5qdyNzRXE6em5FVSJTQiZuIndVb18obWgwcEx2ZjJhc0kkPlIvPmAhazhNcUAtOHEhIVwKICAgICAgLTpMPjFRJT1hbmtOYX4oLEspZX1ucUJ3XFoiMHAnP05mQFpwYV1TVjpcNldFPChuJk5+dWwpIlxPWThIfmQrUl1XQ31JezRJRnhHaUxEW15eUEVPMkRrRFssOmgyYXJCTnJlQVgxUl1mZ01STj0KICAgICAgPmVpciVbb0xuP3R8MUM0YTwmKyQjQ2B4XF92JC8yOTxmKCFtQSo9fEIlOSJ6LnRBKk5AcFlxeE1sSFkqUktZLjs2b1JCRGJJeXY6LiY9MjdubEFhNiNnejphfDshPH02NXpYbUojaz0pKXhcSDIKICAgICAga1d0fk97W2dkPGU3USwnNk5reis/eC98KSddRSFbNGJ5dl5qUGhleEJGLzc3JmVuek9xR297XUN+M2skXWo8cFo+JVgiZVtCWilvN1d8dWkwWjJ0I2dxPWVvZlU0KjNKQCdFW3NlLUNAfTA2WUYKICAgICAgfFdrV25JR2wxPVJVVGFOI3M4X00ofWQ/WiNeQCF9SXFrM3UidD86SEB2VUMpUU8hJnInRiNwJzNpbiUpMlpmJzJUZm5aUzd1L2xFYyxcdXo2ZFtTLUspQUpZRCFKT1l6b25tVEc3U1I2MkU4cScKICAgICAgOkhxQikhQi1jNWNPQkMqMmtfTUgjcktNIkEwUk9eXzxSN1hmWzY5P0t3R1ojYWZeO0N4LHpcaHByLkU+SUhQTz03OFxgQSw9XEA/VmhxN29+NV5DYkJTY1lLVUstPS5YRVxDRW1FdE0nW2FLMWEKICAgICAgQ1xwREhZcndCST0xMSt0NisofGp7QV1wR0JgVGNaKllzcH03MHdMbUlTQThXPnFFLD47Y21ORyNQdm01Lnp0eV5nfkFCJHJiSFIsJHVcP1Y9VWdsZW4+S0FpNXBLIm9BIUJDb0VARVR5P0luSCgKICAgICAgLUMlO2l0OC5pbEwlVllIPSJYUURiVXM0cXU7RmBnKHp6KF1afWl5IVhkNXYrWjhRUj5eVCRbR284OGh2NVNlXyNEeTkwJEc9M3Z1MD9iU1pgUWJSPlBRSy0kLyVmI0IzU15tI1RSeT9ldHlweTwKICAgICAgZDFiTUduOEY/R2hZJ0k9XiMlRkJFaDlYTkA6KEVKTUVUSixPc3BzO25zTXNUJks9NVIrdipPdW0/SStBJ1o7VyplNHpSPXh6RiZQNkRleixSbCdJJjQjZnxkRS9ESVYiKDp1JHYkSWs+JVtkbDUKICAgICAgVyM6TGg3fTEhfV9VTjRLfk1KVVs5bWtjfH5CRlpkbi9kcHJKXlVzZlc6cGtdbiw7bT49djRXaz9eNn5kUE8iLFA6ODsjPCZeV3g7TEg9S019bydOV307NVZLKXFmJDQkPyFdMX4oe3JbamBQXSYKICAgICAgX0VDdiFKMTxUTlhLM1deNzdQbzZHbSdoIXA1TFYwIXppO2B2cic2QExgOz5vWFUsaCFaTmJneT8xT0c3enFMbGR4N0IwVi5idHgySlI5LS5AJy5QLjttVk1ZckdmOTNHRVNYOyQ0PUp5MVR2d3IKICAgICAgOFNJZDxXOktdNGBKdltZbyM0OEM9OCM4clZeSWgzVSVkYEp0QkRRMlI6Ny06ZF57X3IyQktRKzZeJj5NPC4hSVM5UDtKM0JsPmJaQV80VU0/NGJjamN9N18jU1k3VVJhMVR4KShbPEN6TlA8NSgKICAgICAgYCtJczd9fT9qOTAvYyhPOiVUaVUodG5aUnY9K1Z9RVI9U3BmMGZxUlA/RTp4XTMrdS00YVtOSD9kK0dUWG5wbntPdiluSDQ/P0Y0SiF7LE1fLUwqSnU0akNjWm9eZXxufWAxRyNQeEFRTig/J3kKICAgICAgJHFxLXV8aCkwU21sR0tpK0pwOUZSKis6QGRqOFstIiJ1UXkoTnhiVFhWNFAqUCZdZnV8YDpGd1lRfnxOJSlKNFJJY1BUaU1jOHNyZkxgfTtWPCtxVSJVc0pzUXpNe2Z3YUxSZ1QqJTJUS2tZVy0KICAgICAgWCRXTE1nVS1kU3R2dk5PLG1FZjM8SytfKWNaSTpIJVp9KCJLcWg0PWxtM0w/RztqQEFFanZJLEZ2aig1clVqTGF8bTZuQjN7IX1KMkkkUFB5ZDY/JFNfYVU2d1JxKGI8Nix9el5RL3h4cHwlPSQKICAgICAgdiN4bS00UjdQZHBoJTwtaz9ybDU/PTozL1ZyPX4qU2xpRWBBSzgvQUFaM2F3czN5byRrcCpQPkAyYz8rXSovbD1haTRPMEttY2oqaWdbK0BkOk5Re2tSPT1helxxXmAmT0ZhLUg2QjQ7RzZbQkEKICAgICAgZU4iOnU9MiRmbykwLVlYTnxMUWFBIjtoOCtqKUFMcWFATXdkeCM2Q1JvajwiTzRzTlY+Kl5vOzFqa1BGbyclcCJsSzE9XkhqciNWZWVyVkNvImtEKUcjJ29yLEBAUmJfLCFObCZVVUBARSwvIk8KICAgICAgVWM9bjVcV1ErMTUpeHo0eFFmMUQyU11NNy5LIlswISZEfD5abVdIUyh6PFZWXjxwbTAsRFlpZVc0Ik9Rak4jYnhQcGApXm18OCM2L3ZXLSVDRWpCcUUoO2cuTUJKTHBNY2I9KloxMjtfTHdYVEAKICAgICAgdCxcIjdRQjVHO3hJI2wxa2hASEZ1ZVhYPlhjNT5FLzh4WWdlaFspdyEsLkZ0WW1+Tn50fVoyZl1DNWVeXjFvbTQ3UkVbOFhsPUUpYik5LkREeEpgKiVjPmtTK01oelQyK2t3Lyx8XDMsIjQpREkKICAgICAgLG4nL0l2Sj9dfj56M1VxWH42S2AtSlZqXFghTkA8aFhTZildazVGcTtsQUhVMnhdeHtkY34vVTltbkdyUmo9RzReX1Z6LFZccnVNKUQvKykrYX49dD5uW0QhQiJ8VXdSI1x1bnooI0I1KV5KTDsKICAgICAgLWd+cGB7VEd3NV1TaDNVUCV5UHBXQ1B7KmIyTUJ1aydGbzZPP0Y8PVFwVy8uOExjQjFSJ1dAMyNuVXFraV1BI1pSUkFGS0xKLCY4IXIzLy5dNWtfS2I6OEdkVmYsclErVFwjX3VMP15TOVRqalAKICAgICAgUzo0XG0rd1YxTkA5L1JaSWpaLVwmb1BDLVxmWm5eWmprITU4fTBoJiZCenBhXGNVe09tU2pGN29uTjh4cV0mQD1GcjxVYkB3KkxaZCIvdlNXTCc/eEdOTGo2NzE1djolM31sXHomTnZpUzoleiYKICAgICAgcDJbT0kqKCojUiEjYWpMIy9zU2U0YFFtZkdlOjQ0RS1HcGErcTE6eSlsI2ldIVQ5V11wSjRuKi1ya3tBRDtmKW9HTFcpamJnMjdrd0hsLD8lUT0/QVU+USNvNlx9cD5cS2Mpfi44ez1mKHRdPVoKICAgICAgUkM3VkcpWGwmNWZGPVNASy5NQXlbOV93ZjtpTSojY2lwO0NXOzZpTk9lcHFzLFc8Pz9qZW8kOEo+W1ckLy8jazgxNSlzR0J4Jzs2Qlo8PUR1eCkqVnBsWGBhe2B8TDNJdydnK0RyViUkJEJ+UC4KICAgICAgR0E+KHlMaGR+RV9wOltGJXdScHdMXjNRMUYrdE93QjNYPjpcITFobXdYfClJPm1dQV88VSJqekd0RXFMZUFqMyw3fUI3Vjl2ZkdROVhNPSl4WSREekNWdl9jfk5lay5YPSpke1JmbE0oWUw+XVgKICAgICAgVydNPC9KaiVtW3FyaFVQdVU3WV1UJ1RgNW5KaGE3YWFmRjdvP3tvbk5zNmpOXlc0MS47QDdPMXFBXVskI0RobSY2cFFXZlE9Z0BjK3QnLEluNCQuKEYpVzwvNFA2Q0RjLjYsd0lmZUskPmorVkoKICAgICAgMF8sOUsub2xzfFRnV2dNfkVLRmwtcVthfmhJaXBQdmBSUz40JWV+WWd4L1YnZX5XfVdGVjp3R3xOVFxPQDtQLjo4N2N3P0Y8eD9BKE9vIV0iX0NdUHwjYUkhaVtUdGxIUzUqU0lbfiVGcCspYUQKICAgICAgL0NOTiRZW053OFBiViwpZWAsaEEsPz95a3NEP2h4YnlzPmMjJUt1bykyJCN5QXs/MyVRJCFSLXdhYmUyLj9QeC52W3AtV01YaUw0cn0maFg8TSxRKyFbcmxWUT9xY2RdSmIjSV9qLEJgQFBaXk0KICAgICAgI31MW1JqJmBeLzFpbCUqQy1KUzJRYHQ8MEhVUT9tPlBePnpYfi0uMXN+OV40TFR3dC13T093KypaXXJsXGN4RCI/Q2tQPUFILDZ7X3JYaWxSLG0/TVQ3Q3siJDEmJDxNbGpFXzooW1lTSjswZX4KICAgICAgJ0lMQnFzW2FuO0gtWzhsIVhJYExSXzcuW0BOQjBdeDgxQUtPLyheZ2doeUNeTWEjWXhMZSx5U0N3VVY4V0pOX3M4UCpHWSJvVFFfRHAsKkhAODx1Ui9JdmYhYzM3ajtHYmA5SD0zNH1EUmVcOzQKICAgICAgVyN3dGlAMl1+LkNIbEdCL1xVUXEiSy9hWl4lVTZMaVprYCFeU3p4MG9UV09bblBbZlI+bkZgPVQxKHJ3J3w3X190IjVOe0NIaUZ7bTlAQmh3RS1sb1I/bS59b2g1MExhaDZqQ2NqUlFgU2lFMS4KICAgICAgKzElQyU/WFtde0gqdz9jInNSInNTKWsvOyx+dWUtMlZgKX13akA1KzEqTGguUGpZbEUqJmhnSHFlfEpkWC5bO35QMV9OOkhraj83JyQjVkQrby4oM3AyMTBDPmZ5W2ddP1tCZzxzQn5fNyovO1wKICAgICAgOjJaSGV9W1g/fjF7bD1aZGtLflZ1cm9aa2FuWWtDfG5KVUt5Mi9TSDxPZU4qTDY3KjYoUGE1cDVNRX5JUjxbMiEyaGZGQ0UuKVVfYEIqayJjaz53cUZPZlM+XFBqZipPcl4/N1glRzAmdSYxMXMKICAgICAgV2paXDZRelZ3YysqaWk5KVFFIURzKTx3KnUrZFlHIyo/UnlccFt5VjI9Oy47Xns9Zl5wYU1lRWFGUC9nLSs0USQiRmxkUklfMnUuYUFDOzBwOXxqNzJ8d0VoQFp8QVUjcXpPcCs3eXk+XDNWd3MKICAgICAgczFXLW9SKnAoR0pcNDJTZE5den0na2tTbl5mR0NwJkk9LUM6O01XZiVvU0w6JCs8ZnJ0VGB7bFpuJHdjVllKMGxMT1UyOGpGW0J+X05hRTc4IXNmKi5gR3IufUFsdW9lK3lQLCt+WmQlQG4+QiwKICAgICAgcmF1IWRMaWYsOGNpbTZ8WUVfPzE1YCJrLSxGcXdBMXN9eXopJEUkLGt3JnM1aWJRKWw5MXtXeX40Nmp1N1BULElQYjovZmZzZUAuejolLWl8LTRtRGVVTiV4KX1tQ281W3c8Q3AmXWorTVI6aVMKICAgICAgdWJdYU8+YGE4dlx2KDldP307M2BNPDEpWj80KG97RVZ3QnpBIVdwcEJxRGwnXVEwfDYqflZgOykjVzE2XG9Tc3tNZzBLQU1nTnJebkhpKztjaksibyMjWUohLVU1cC1mYVgwTyd5LG52LmNXXC8KICAgICAgP0dFYkx3QGZ+fjdwbjUqZ2pEczMzdWg8RkpPPURdRn1LOVtoTzhTUF5uO0I3dU0xTkQ+X3tMPXxTW2pCWj40QiciY04yRnlyKWs3IlV7endcW24rWzQyT3A2IkJGIntdWyV6VHw3QUJ6LVBBRmQKICAgICAgSyshLD0jelJAc29STzB9RGw4MGV6TE1QO1c8WFVbNVxcTFAndlx3K3NrXzdjM3JUcnsqMWgoZ0JoXjEnPG5gOTkuN11cZVQ6Q3ZCakROJjguSXVFPnRCeiImbSNoIWVYeG8iUVxGJWNSXm49a3wKICAgICAgcktsKGYwVTJvMjBgYVhtIS1gaSJhODJVSCdLQVV8YWlgJG4xOyloaFlWZC9IeC0wSlVmOiN7IXRXNnJ5PDI6bTFwTXRXb1lsVV85KUktT18oND88LDJDL2o0RWg9ODZweSVofWgnckZnUHBSOkQKICAgICAgUU9vPSxZe2tBQThTXyg8MF4peUcpblx7KGMqZCNnaDwsQGU9RCYqLmttSUU+bDx8Y0FWSnRPRi12TCFaNl1ne1dMcD0+VCMsIm1qJGxAI3x9J2RzNFB3JT5rbEBdIT5HdHA7eW9Xb0pKdWUlJzIKICAgICAgbS9UTEU1W3I5Z3okKHt4MlU5JWg0c00lPyU9LntzS343e0ZSdk9TUTEhIVBXLXQ4OyhrdCpndF4+PWNDeSt0MlgrS1FyLXRVTk12QCtdUG5rX0lmYGMzdU5hXGcwWl9eTkl3alhRfmxVZVVlNGsKICAgICAgNVx1d2J4LjY9SEltMD5+KyVdfn1sQ3MvYSM7XnpnTjtRRz1bZVVBL2RvSyxre2dVU08iUFF7IlEkKSZWSGtOcjB9P0FfI1QpJ0ZNNlVBZz40aFhffWkudmpWekp3Vz49fjdoV2RMMSJnMWgrXy4KICAgICAgKHlLQS5kb29pQDV4aU1gaX02Z1Aod1RafUBoRUhmI1pVdiNGS1tTJi5wYnwtcUh1TClAP1MwYyVlSHJ+TEYkP0pvV1RLVk5hdydLVDg1JlxDVGU6ZTp8QF4+W3U5YF9UOnRJPSs/J31fRURvelsKICAgICAgZDhrTD9rTCF8VH5nXSotPScmfm1uVEQqUy1YNDopXk1oTlRYbnlQOWJlb2FIemtvN0lpVVd7UU9lekNHSjooLHJJYiklLFV4bV9RemQuRUVHMj5jXDQ0LDg0QWRcQm5SKFMwVVJsdCxaTi8uNGkKICAgICAganRPejp3Nm5ITl9ldjhIMlhacEBrYj9RTzxbKltvNkU9N2V1cFlYUkFCYUQ6Kj0kZ21BTz1oemJSTC0lT0hsMWctZFx8WChbZTpqMXovWzBzSUJzZkZaSjM7eWtKY3hJYSdaIUpbJWg9YyRnJWMKICAgICAgZiN5O3Q/OTtNT1IxIm0yWVFiYytbUCpxZS9wT048bTkhKiM2bG5keWNPdjtPPl9xQy4qb2suQnYzXm99X2Z8dj8vX0ZHW1ZeOjdFXTYnIWQ6fWQqfSx3R3pXP1dHW0NfO3FNNTNHJDQudHprKFUKICAgICAgO3NJSl90VmFFa2JrJGcueFkzJVVuazxAPX5AI2A1MSw6Pn04aGNNWTxwVWlTQ1E1cjhibmBFPX0jXDlLSXJJTzFTVidtYTFIfVF+bG54RFMoSU1CW3A3MT4udjluR09lO3Zedj40JjAyT09haSEKICAgICAgdyR2TURrNFF0TUZeSCQrTU41XH1jJWFgRihbYE5HLjBqTzEpaSspTCw9Y2x4UEhIMD5AfTBubEphVDRQTX5XJnhJND15QyopW208bEMtWS4tKmZJMlJaQz9ZWD5WM34+W2UiTS4mTFF6SHZsXi8KICAgICAgI1V1KGtKMix1ISghIkZ7eGB1JkUxcSw+eWg1cHV5fjZkfX1zXm83flg8V0prJl5oc2w2TCxeTnwnNWJRYSdnUFY+Sn5fOlF7WEo3Jj57Kzl5Z1MkWl8waGE/XT4paTpOJmxiX3t2QkwyVjwqXUwKICAgICAgfGJfbF1ULEI0K3oofkhvJ3A4K0FUTV1HI3ozZHxpelh3aUR8NDAhY2QyQC9lPF0lJ28qLD9FSSRBeVcsem5MLH44Zl0zeTZuejlpam0ma01gRmpmPVYxQ054K315Q0xtQWFdZjUpXlhDKVFsQG4KICAgICAgSCQtMjR0L29cXiNJWjBDIi5fVm94ayU6diIrWElWXG00THhSITdcUz0xMWgtSGZUIV1iREZYeyZEWC1BSXNKMCRFQ05KZjYoQjd9dS48WGBvJDlSVFlzJDhKOzsvQTp6RUlralh0TUZHbiZ4OCkKICAgICAgLkZ1KnxmW1AmTnEoXnRUPSQ4NkR+WFlxOik/dzBLNFQ8P0h2XVJdbWBSNyxDbCNDajdyQmRUUiw/J1NLPGFJXi9xZTIpM2UuL3A0YTlmMVAkT1FxcG88Z0VOXHxkU0F8aTNqX2tdPTpbMFspPFsKICAgICAgQiRLKFd7NC1uW0Q+a0V+eT12TTMiZWlzYkpkKmg7JipgfVo0cT5QMikwMztrc1J+eVl0SHRAVV4tb1pmW15kbC53QENdTjhkdUcycjEyZzw9XjVuWV5ZXF5FRC9DKzEsdG8tfClfaXxVJkhoTjoKICAgICAgXkZ6Zm1YKlpfbzJePC8ueyRdOG0tRDk2LlYzNjxEKEY9dGkvd1RBaEI0JmdcUkpBZTA/Q2ZkPzdzNns8SXE5IkdVVGxOLUtnOCRTc2dCSVVlQE5USUFTSEZnWidGeSt2TnFgc0NYb11YKXtBKyUKICAgICAgNWd7a0Npd2M8e0QicmVtJmI0a2FgK3Z1bGt9aWlidjExJWM2OzIsJX5KPilNJSFLPVt9RTdJU0FdZXFnXCgidHUiZiwzZGw7ZSY4WSU+JUZCX1JyJGtZO2kzU2dzalBRZEYmO10uKGo9UmpNMj8KICAgICAge35PN1RebVpbT1Q9dDtqVSQnWHxBfXJZLyhWbyhzRThfVUdUImczYGJMUjtpbTY/K3VzXl5acGIuOTlgJjRBLm1FNVQjW11GMDojNXIsKDRIOFdLP082clxzJ1RbL1tUT09qVHtsej8qL2BxVXQKICAgICAgeiV0SEwiazt8KTotRFF7aEwvT1EoWkFkazk4W3M+dktERjEiemI+LWgqW282OmVoTTQpYjhUOkoyOEpWVnFZfFMmSmY3Qy5gPTRlLEsqSXhVXmp8TWYsNm5ybDs/eEt4fUNUXGt6cGA2Jig6MlUKICAgICAgQCEpcHVEd118XE5NfW02OSJxJ0Y+dWlZMT4pQmM0KXFVNHxTUVRKO1t5VDF8ZVR7OHQ9fmdnQU9ldmQtKllSVjJmXk1jTD5eVWMiajdXOXZ5Q0I5SlV3IWVAXz47X2RYPiZsbUksaEZoKWNrKl8KICAgICAgaEdYNWpJK2ReeWZELXxOSjgiZ3NFfERAZz9hdkJjNzE4Rl9VMFRaKFx5RERKOUtFS3giR11VWTlZYXw6VmwwVUU9Imw1V2dHJVxmKShsL04oQ1hHVnhZSVFjOTFLIndqLFQ0JHYpO110LEV5LlUKICAgICAgdkdpZiJOcyR3Jm5HWCksQXlcKXp1SWFVPVdSLGgzWlRmbzFlVyddQ0ZHaDRCWCI0XDUiS3MlI2JYMjxcc1RlaTBCcidjUD5IV2pvV1VZL1NVbGU5eilaQk4xYWRPTTYlfGEiRWUnXSZZeCIuIi0KICAgICAgNHhnXTFAY3coRSlvZyUtTDdBcXc5WiZ9TiFfX1c5U3d7bmlmfDhGUUd3JjQuNkdwaTFjP3A/WlhKQUYiKlgrRFNGJUZgSikqQkZrX1pVWCZxMThQe2AnK3A0czB7W20zRFg6QlktYFolWVslZ00KICAgICAgMnlIPFJKcjotOkIkJzh7cC5yIylTJlBsMUJwKSJPbytdLX4ua3EpT1gvLlIodG16Tm9Fal1ec2dhM3N6KExYb3chcVMhM08qekcxVSN5dSxEQm19VEJ+LVpJJXc1Uyo8O054bGxPJ2ZyPV5cKmAKICAgICAgdiQ3R1wwPG1vYWlVZjpiX045SEFXcV1gYCNGTyxOND9WdjYvQX53R0I2RUBoRnxqTmVUWGBNXFlSd2l3Y3NCS2NsPDhaK1FQQld2LHJQOlpiQVJ1NCJ7Mk1NeTBKWDRkfFBAZUNhMH4pZWpQQTMKICAgICAgY3VjI3Y5T2BxKnF1LSN2cDsodWArXmtRPkAmKXNGKEZkdjVUJzZDQjxNdXE0N21LbVdxZDEubTtJMEJxL0hHKUQuSTEneWonJzRJXzNQdV1zRmVZeEJrQ34sMitXJyRlMXdDRUBQRGl6L2N1YmYKICAgICAgS1tEMS1+ZTYzcS8rL09QZ3lWeUVvbFk2OmtieTp3TkpqRllITTxOTC9pYjNNUGwrKHtfQjgrfCNeXmM/T1RJYXUzPTZTOHhtcGpHYzF7SidvST0yNSVnYDAxeV12USRlQTczfExIJ1F9TEFZW18KICAgICAgRTI8Jm5ieEg3RWsoQk5LdUVRQmVdUm96YEFreSJGPTc8dilFdStTYCU2bE5sVkJVOWQxNG95Rj9SZDVyPllqe19FQ0YtVG5lPD4xNFpLP2xVS2Uvfi5fXXA8cE0uOmFVSWdzNzZoKEUqPmxeP2gKICAgICAgW2xKQ0tyZl10LGUoXCVUMWddeC9dJmpxVmdlXlpFKFpaLXxVdjxCKnY5Nj5BVXYsbio5XSNRIkFsTyI/P3UufGBdfEUwSjwrXkk8Qy00UyMmLU9kQ3czfGlnRUMxOyYlNE8zNC07KVRsWEA7ZmAKICAgICAgSTFwST59InJhXEdkXlsnSDpWJCQ8VEFUakwmZlh9eGFLclwtP3FELj15MyRXTTM6eXJlNU1UbkBQeFhfPCQnUyZMMFFaQHlIP3Z7cCUiJzQ6ck89XWw1JD4wYlFhNi0hNXxgV2kmUHVLdn51YiIKICAgICAgRztPaypzL2M6ZyNxMkg/czJbPkRzdl5pQjJcVC4vKVAjJythTTYvdF5ydzZ7cjBmRUwoIml8VU94ZGhLSjFyLy14UHE5fmNuM3FoSTRSLGtUNnMzfUpoQFp+Y013YTInWUBSL0p2PzIpVG9ZJy8KICAgICAgXG4+P1BTZ2AjOn1WbVdWWDQjUmskOkJYckBwcic1U0IqYXB6RFJDbSpLcnlVa1VzfVB8VFVmTlVHdDFEJ2RqLjdUeU0qM09uXzw8STJTR3Y+dTgxXU1xeFAxNyJhbXQqdTJ+NXErJm1TSHhRcUkKICAgICAgMjM2IktwLD86IzF4eCt4SlZgYC49UDxMNGtde0ZtbVxcTCRccmsrfFdfTVVmdXswRjRnTzJwOWAwSWhsOUx0UWhqdHp9J2RLaGtxaztrLVU/VlshLiJ0TXs5bkgpJVZiLDxYPzZCa29LQ0NZOWoKICAgICAgbi9zdF5Heiw9UXJIY1tQTC5LQT8nMj5rLmJmZ05bSzEnQ1gzXlVZNlkjKjsmQEA4T3hqYFAoeT5oImBOaGd+cHN+diFZNW1SWl1vaHpYSD5YZUJ9WkpjJlkrVm5eLkk5QS5LYFNYeW1hV3tpQ2wKICAgICAgNjY6ekB9JVwyX1tSKVAjbX5DWzUvN0ZIc2swQzE+LEckRmxgMjVIaiZCSjV2UkxPXzg3dTlSL0Emb15PNSVoZz00eCg4dkM8N11aeEUiQ3V1T2lkT0xHYiNcLzpYWkVgPi1tZG5paXM5MHE7bCUKICAgICAgUT9scTZQRTBkfllWQyNpemkrXXcoa3ldeCdFcnMoVilnOV05MHMoV08ocnplXy1WZmZdSUVTNHkpVk1ieCRjUk5CUjtuRFNkcGNzRjh7dntGMnM3VHRUaDJRYT1kazpXdnBSXkZwVWktUklNTScKICAgICAgfkp5OSxXJn0oIXhsYWJ1REVSbjZsdixvNFhxTy4wYjtdVVYiXzMqU3VFPUs2eWZ4cWFnaGovOycnIyZdcUUrQDE4SXRvOihrfmVSWnFUdk9BQ1ZJUEdyfmJTYUhvXX4wWUJhWFs/TXZxQlhPKS4KICAgICAgMl9HbiZ1fn5NeDFOSysoZ0szRy9wcjg8YXFpXis/WVV2IWAtWWlDSmVWTydaLF8nb09qXDppOnYiJSdJQ14mQlZsSyM+KHovS2YiSnZbVW1qelY+JDBvR0tydWc4Y1ZcO3NGUWNWeHJneUhaRysKICAgICAgJWtOZmRfIUBfRzBzXUVZVF9rVk5jNUJrJT8nTiphey4kaE59My16dG95bzVRSS19aWhjQnx0RTV5Z0QrTDspXy80Q15WLDVdQz57fG1+K15RSEBRMERvIkA+JDFlT3JwMz1iTDQ6aScvaDluPU4KICAgICAgY3IqRmBnXjouNjp9O0hjZnNQXVFCInRwODlbXClvNG9Wa2xiNUtQMEFELyh0NTsmWjQyPmFeSk13WmJ9SnFsQHg6XSwxVF5GT0knKUNzcDM1ZmM8Mi4xYmE+WGVEbG9nXU89SF1nITMyLXNXIzMKICAgICAgRiRAN1ktY0V6RWMrKmJ7LTo0RHEpLiwxWyc5TVloNGV+OU9bZGZVbDNRKntifH5vV2FaT2k9XzsmTnJESnZuRzZucSd7bEBhU2Q0ZVl5N2NeSW84Y212cDJfLGBvdG84diYkXnBIOi1AWHc2PiEKICAgICAgZC02Pz8sV21oYTh1XjRvTXN1SCkiMU1FaStebDZhUndOfCFROV0qc25GVFxRLDw5LnNKe0dnNWRKZlg0PnJYUmQ7dip7TG5xNCktWz8/SitQeF8hQGl6Qnh7SWkpWlRLJTp7QDZlSDA5RDtSeUAKICAgICAgaj06e31HWXUvOjRcN14jaX1+djloWTc4Z1hyTU5Rb2J8Mjh2YnRkV0B1TTVJJipmaHImb3VabFZlfmh7dFhYPUBwcWZCcUJlTVNhPFVHSjptLiw3L2N1RSlRWn5fcmdcYnNGUSpKeF9KJmZoSScKICAgICAga3Z2Lyk0VF83J3VVbTJZZFh1ejJBPFl6YVNDaEEzS0w0QkdLPHJPRjlwRFNMSD42WkFQQCdzLyNtYSp9MjxOXFQjWHN6QT4jdXI/SiN9dC5RZnFGY2hqUWZ3SjYldW4ufH5VO3VPUEZRMT5WLE4KICAgICAgQko1JCE8VUtvKH0qc1NiSFE5Xy9MeSxUInlpRndia2ZaeidvTW57ZWhiZkotbzB4OVAtMm9UQGJ3THBoelljdHJBZHU9OScmSGNLSyI0ai9RQkVrQiJWSmpvVk1Oeyk+NURkRCVjZC4sXHV7ST8KICAgICAgWGM6Jm5qaWxFbmVHbFg4ZF14LDE5bnlzanw2TEJKRD05di8+M0Msang6Tnk8M081djpRTWksYmtPUFclM1skO0UiXVdUJS10MnRtVTMiditBJkgjcFZQbiFFPyk0XTdcQnRxYSFrM15VQnBvfSIKICAgICAgJjo9amApNWZpPjJ+U2VRP2U0UkEmd3pFTUZ4aFRsXCZEQ0wxKTlIUzQofSY5Yy9vRGJJbHR4JlYmfGoieVFoSF5+SG4+OypkYDJYVVduNWRHJW9AOHhGWzE5Q1syay9XTFtyTyxaV3dXVG5bVV0KICAgICAgU3ZuTyJoVHVCPU12SDE7TCQwOEBYSFtjRTxnT15tbGY4X0hTM0E1bFdiZk5cLDBffGotdmFVITtZXUQhQ15dd0g7WnQtOElZMkVVcGhuTyR7eDIoSUw1NC8vfGI8fCwlMSxLPUZzRUVMTjxaMHIKICAgICAgVVAyclppbXdxczpnNzFwTTtgKEZEZDhHSiVjWjU2MzV9Mj9WQDRaMSs9cSxdI0xCWV5zSyM7Nl9zUVEqISImSl1FMn1CdVBiSngmP3htXDdAViQjQXV5VVtgek4/d2QoRixxMmJ9aG0mS2JidSsKICAgICAgS0ZORH1TPkFJTDZYI3VlTSElNn1qU0c7NClTdTZjRH1MaSxxTEJTZmN6Q1FQTWxwO2MoLSwiNlUjcDNgQ0I4LXpwUlBhZWA/IWZyclJ5LlpHeU1uODVzP3ddWXcyU3ckOkokez1aKkM9bEh2djQKICAgICAgQCRGbiMyeT9XKTYrazJFPiIyMmddWFB7Sy8yOnlCRnhOfnxjJilmek5MM0B2ZGslIyRpZDF8ImxDZklBZTZ1WW5uWyg1aSg2cXozQmFfR0U0QXBaNCMpQCxbVlhMb21ZWklmTUxKaiJvfF5+TnQKICAgICAgYSkydSxlNlZZJXsqaDQ4S0Y8QiZ5czR1a0h2PjxuM3VWL0R0enU0d1A6SUVUVlxyb3orLWFmLVYnJSs0OXpiWzdfcXkqb3N8XWlLLndxQ3dBd31LLTEyb2csRGhla29gQWdyZnwlRlY4NGZhZWkKICAgICAgJjN4Ln5pIVUiV3ZrYE4xWlxuUUspR0pFZH4sIkY6Vn46XXdyM2xfPztKSmdUNyJAX0I2VDl4ZWk1Z3EvP1BwSmtzaVt6X21BVT5HRVFAQlM/V2p+UmB2fUAqMFQ6U3pQNj1EKU43bDZ6NVlpPEEKICAgICAgeyxWUiU2bUVgLmJDYChhcUYuLUcuKidgVVMlLHkqcylbe1ZTTVwsdncvLHBcd0EwQj86RiUiU0BTaEQhPHVLP0dLQXRZalpjWVJoQyJqelsrXnhHQ0k8XkosXVhvRjI4PEx9MG8oMTVqdy80cU4KICAgICAgPkpeSVhfbXN8djosdy10L11mfStvXmQoYVt6Zk1jSj49MS93X05SQHRRc2A1TXoiT3sibDUlbHsvVjBtSzJ6fGN5cFFrLUpBOUxETWFdN2sjXT4wbm0uQTdsQy4vLk1YamYrYFlsUEAoJSN9VlYKICAgICAgZVdOaVRjQDR+XlkwIywwK2FhTHBLRHZxWlM+SSNQSColdmNfRCUhOjdWSCIuRk1KS2JxXXAwTSh9MWg5WihzIlsrfkNqXD10MXswbHgmO1JUbj5RLV06YHNWKEY9e11FXF5xWERIaG1VXFAkLz4KICAgICAgKyQkUHEqI25hKX50SjU9MVdgTm0+cSJxajcrZGMnbkQjO2syUXJ8fWlrRlpAbDs2VGQmPVhKIl4wUEsrdyw8MlkiQilja0A7MVo1RVhuUXw/V1RDVzViY2gnbktbQ2pzN1RpXkFyPTN0ZH1NL2wKICAgICAgITdnLzF1RD17UXJuUyFwV0p9bFNOfkd2ezJddGMxS0cyS3k3VFV7XnV7NV1sNlR4Ky5DQ2JtaGM9UUguRVAiSCx1NUtCWFRxP1xcPyZ3XlMuNGwvbydgMFtxXVpyd2BaUmZ8ZEV2OiQ6KTgvLEgKICAgICAgQCc4JCVvRjNFTVghKWkjYSpIOz1LZEZcPituSlRqZiEsKkxxXS5MXj1YXiJvLXonMElhfnthJ3RzUCNCN212S0pgeU1gQnRCWT5MfGdeI1xERloncENBWkY3Snw8M3UqeWYnXEB+VVxqOEhhNVgKICAgICAgL2xNbHh7LjBvTyNlNEBfXS1WLzpbezRcXTYkPTp+cHx6QzRTeS9gUH5SNHZ6d3VDdVNXNylEXFVUL0dNLz9UUCMjb3lqdjxUYnljMX0nUUNuQ3U3fUE3PG0reCxyQE5WY3tZLCx9SHpfJlI2TV8KICAgICAgSE17c10hXU0uT35YOls+fHp4aic2SXxnQEt9Vm9ZTkRELExAUCo6ZywjMWIyJVNMUHxjdnB4YURyKnVzPXcnWFMhSmpZKFRjM3h4JVJEdy8jOmozJUpfS3VqZntIQSVZelR6JHB4LWJTbnI0TUUKICAgICAgeFMzaWV8ZW8kRllwQTl5QVtQUEIiaCtTdG16R0xlSndZZnBKMUJmNzs5dG9POHtpMWtaeTFSUTJJXHg1ezs9eV9DIyNTZ21ydTxXYG99RWkzKih1NVR4bXtIYz0id146UFkqUmNYJz45JWorVSUKICAgICAgcVlsdmkzUH1kNytoMDRIKmxfZXJyLmc0aSpte0NXLEQ0Q1QkNWRkYGtnMV9EOylDMC5cPEx+XFczOFQ2MXonejJ1dmpzI3lPKFsmdWNzJW1aNXkpTmRvaFB5JmQ8NzhcX1NATXdLKWIsWVomRXMKICAgICAgT3QuOjZiP14nIitrMnw3bX13PmRIZkxUMGhiMldrUitOdClzK0VmcGtcYkZZcCJwLDBMMihjJTwtV01sclxmckwsb3s+WHZgVTZKMnVncSdGYk5cKSdDQGZ5IXg9aD1mTlEiRXsiPl5vIW5QPWkKICAgICAgMWA7KS1kKntzUF17RTROTUo1UDwwdTt7bSMlYzxAVFxwMXBIIV5JbVgsKmd9YlkwPS06NlxZJElHXURwXVctUDtqQCFsUlxWczRsLm1aRDwkXkcsWlFJcTBDMXcpJDI3QzApUTw0SmNvVmpJKksKICAgICAgUyVHanpRRCtIZTUuNnElN2wpZkF9VzRifH1Acl1ePi8kIXc9QmJlWndzZS86VCljYmMqUmpCY2sjUGxrVFhJbkFMYTN8dz5GaGo8Yi12cm9CMnIjYnlKRlVfeVhpNyI8SUQ0W3xjPiZzKHlBKSYKICAgICAgYn4ydTElUFFNL0N5PEdeWT5kMDV7SW12InlOdmV5PjkqWTI/U2s0U1kyVmJzKWRLWiMoJVp7PExnRj50fEFnQT0zelZoIj9jRV9QV0VXYXZ1NEoqdy1OaTNpOypWSml1cXV8M0klMVUqLkRgV0EKICAgICAgSHZHc0gwYlxUe1Zwe1B6RWQsLzhObDBhRkFWVk9VYUhfNSlXdjtNP0s5aH4sWFJ8TVB8O0c0TlVmNFZnMkMlNXNVRG1vWGMvUzAnPnUyKCtbU301WkMvcnAxelEwKG1ILVFAYmEwIyY/Wis6NjYKICAgICAgcExDWFNaSDMnOGd7WUdodF5GZUAoflFQZGolWm9BVVhEX3BQajw2QWI/JnlONGtJJFt7V18+LWZTMVx9NGJ3LChgc3dKcTFbNFI3ZVdDR003e3YoN34wZj9obSNMdkZHPVMuTWQzN2xtYWQyKFIKICAgICAgJnxsLSs3N1Fab088N0VxPDdWaFtjLSk2Q0JaXzR2SGlKYXE/NyFvMTZWTWZhYH06ZClDSCkmJ2h+XD9Gbzk4aGk+eUlcY088W3UxXGIwZSdrWiVlK04kZCsxXHNPVUtVTj09QVNmY2s0YT9WSnYKICAgICAgXCpjPTI4fDFiS1IkSCYjdjlBT0YsLU5mV356cHVoZC4uK0NJMz5xaiF2PjhfUmM4fnYidFUzdmMlNy46Y1FjJltWQVYlX1FKUVxqPThTT2JndlNtJFVzPjZDI1F6WHQ+TiRkfiZrKGFuTjdoUkwKICAgICAgLycsNGRFXV1mQT85VSZuR2BJUEM/fGBXWDs1e1NMUys7YnI5UFNGRG1BLi56S2s3KGo6e1xMNWZmMUE7fWdvSUhVczZZZyNBQEUuPUlFOjphZ254QiNLbGE2eV4jc2A1N1hRNHZZNWV3VWlzR20KICAgICAgOkQmXmBBfCFraU5LZ0koMjZNV2g6fDhlYH57T25IOkk7LGZDN0QuaFB7YFB+SXVYSjxFUz4pVXk4d3c5OVBGZGJJIXVmel4mXklPYVdCOHQjO1wzNE5nVCZWP3JJWGEyYjFYL09ufk82d2hiN1kKICAgICAgS2NbQEpfLT15JiMoYCs/Ty91Z0N0Jl5wKXVPc0xcI01pS1o9VGVMdUhmby5EMTRSbyVtVVQhfi5HIT1SQz9VRGpTVnI3L0wlKzNpMWh5aDVSJkYmRWctJylhaGEoLWsjS3JJTmdUN2kvdidGd0gKICAgICAgQVlKSzFkOjc1Z3s6PTddbixebH47Zlg+IlUxRipKb1tLVShEclRhNCVpUD1+TC4xQW46SSk0I2liJEB9U3E2TE5aVHE6cV53YlRtQlxWVTY3LyQmZ1g/SGY+SWhCbnkiKSVNZV9fJzV4ZDxqXVYKICAgICAgfnMxK1dDMVYsWSV7bGhvQz85QGU6NX5GUTdwRkkxaFc7KzhIVCZ4V04oaiUlfTF5J21oLUNbTU9DOXlgQWEwTE1aRHMsfUY4fHQxLE53bjU1IkJqP0t+QllxSHYoPXtdYjs8PD9MI2AwcD13QV4KICAgICAgXkkpbXg0M2B9flRVWEJ0c2tVcDptOU1FJH4oSzMtYFxZPUd5YUp1dTp7a0hBQ2pKXmQ9d1d2XzlbW3QweyFASSwhM1UrQydFeTM1T1ZwXSdhMC47M3p3ZCZwYV0yT2dlbiF7SHp+TTJFLDhRJEcKICAgICAgaCdxeThzP1RSQldgJi04IX1iNmZYSjFHfWRbe2VWUF92YGotXyJXODJIK1R3N2xQPnhrVjA5KFBkT1swIi4wRld6QHc+RXtRe2lAfmdcfVg6RX1zOSRjTUs0XnYkb3tgXys+b2ZAWF9LbndEJloKICAgICAgbkNfXEdbRnEleXEoQyZUXVVgSV9Fb04mNDxHWCJTdz9iYEU/dWJEUyZIcEJwVCxoTSY3TWt8SFFRdSQ1UFlEVDZHdDBacVZEQWArMkR6TUYrfnRINTJ1L0JeZVRRdy9QLjdDJjdRKnEvVSgnP2EKICAgICAgUjldNSh8IylYUDt0aWMmeitBXiYwfiw2SmdoQmw4bSJgIVAuYDlbTHUyPCYjJjldeCs6WFxdLXFcNiZWQDNVdCxtbyRDJm15eD5NSnMra3ZeIjprNWxQXiUzeDB9ZG93aTVNMUBeWWBbT1l7XyUKICAgICAgJXVGSmN6WXZiW2VcbXMsJj8mOiN4cns1SUc2O0o+IUZ0b1VwSktdeVEmPnwuQWtKOClQcGl+ezQpSn1MN2VhaSRINV97LFY5KXdgZ00yWWN4UX1bPzlocCY6YVVrZ2c+IXR8PyYtcSN7TWpGRTcKICAgICAgWkFpZzRja310M1c6XzxxYy49alt1YiFvOSpLOlVaLlJxYFpLfnBwQF9UT25rbmw1UHpZRlVQL1BsMk5JdGw1WENreC9ydV1Ee25NOGtQM2YkJ20jbStobk43OGx6ZCc8fU9pXlN9UE8vQERiXE8KICAgICAgOE0zJHx2KVhlJkN6SX5FJEBzezRQNlUqbU5uIzdeJkgwZGY5NGZrVjV4Vm1aRH5uRG13WSgsI1o0KCg8e1BMZE8mNkIoY3FLYHsqNF41fScuayMtPzA4b0cianYiITxHb016VWR+ZTxUWTdZakAKICAgICAgUU0wVVphTnM8THV3bVBab0VOZj9GTGNYfWNLeilASyx3WFshKnJXJzZ5Okh9NGpfa1JiMHV4L3d9NHJJOHc/cmhYYydaWk0/IV1vfSZlSSh9STpdXDApU2AlWTpkfikpfChLQDIiYj1qJClWU0sKICAgICAgJy5EdGUleGBLajA5Jm13bz9zaWVpLj80ISNQM3Q6IjxyfSl9QSd0N1hPSWtTREtLRnMoZCZMaTR+Nkx8Vk9KLHsyMEYmaWptTWhdTCwre1pQYHVXX15NUSYldXIwVWYoSlRTakMmYnIzKE8mYlEKICAgICAgMmRFTntya0dTT3B9JXFSWXt3OD5wNXYiKGk1czMjUnhLcit7OkcsNXVWKklcWDp6VzBWJictRENAeDE+YXVNejJeLT5fL211Y2tJc3tdP0teI0hIdEZVQicyJ0lfOD9qYz4+JFtzWTIzMEBQTE8KICAgICAgRlRAZTp5akMrdyt1OWJ3JFhVeiQoell7S35nP1wrKSt6XHl+LldtIjg4bDYiOVBHdW41Z2lgflVAISw5JitiMkV1PFUwakAmbTUkb1ZdLkpOKHwrLFlnJnR5fkVvL1t+L35NSFUqMlV3T0xzQGwKICAgICAgUjRpMWdCZH50LD1XQUUlLy1tQXk4W3QjK0t9U0hLSkxoRHY/dVk2RGs2IjtKL1c3SV5bfWwvR0JXZTI6bjF8dXJlK1I+VDNUdDd2WWVTNicmaXN7dWo8Y18sOzZdMVcsRmRRYTt9Plk4fW4qfTwKICAgICAgS2B9VnJnenRxQ081fmhEdHszdi4lI0tYOTFTQn1WWlBARXo0Iio9KF4oeVVQXElfZGZ5QT5uUVpwSyp9djYyUzVQNWl8RSxfZjVpIkN4YFBRWVRcTXw+ViNHLFJISiY+d3cxUyUleX1cIytfV0wKICAgICAgd1FBM159WmE1bkRpeClLLyUjLE9uVDdjNm82djNgQW1CdWY4JkN4YUw2SkF5RD59dldOPXJ6J2tdbm1aN0MvbWl0MTNeOVB+QmE/SFpzeSE2fkRyNEZoXzNmUldTOTpNKztLJnUpVmViP0YjVksKICAgICAgYH5ebkVkJlAoSi9OdT84WEVydCp7RFV8QU06SXxsVWxdISIyZ0luL0UvLD8rbm5zOlZhT1cudFBwWWhrRTRLNH00S1Q5NmpBQD5mW2F1dkhwIVU6dmpkcm5NdGQkOClPQ2lXKy0hNlBYMV4lTjMKICAgICAgZiwjQHw6Ik9QRS5TUDBjKn5EJlgkNComenZsIWoxP10lOF9Gb3NleEknSDY/aVdrTXYhRD1qQ3l7Pj06KiVlbVB9XWZJfD17YkUuci4hI0dpXDZjKnQ1VXV6ZVFXVkFVPldaLkxGTk9zQlVPYCgKICAgICAgKl5oM2Y4VlFFNSl6RTBzOFhgNVNfP2IiQGRPNFpGWFFxRT4oU0xXP2ApKCJjPiNzUyh3NVdrVERkdGU5eTMlaTpgLmhHYkRzdSxiSVRXRydqKCpjYiJrX1RrcSIvREJhRipbIldtJTMlJVRGSTkKICAgICAgM1MhOzszeFUxKG9menVML2Zvc3YwbCdmXmJBLGpXKGJmX1NJVzgjY1BYam9SPCE8YVIjUmxBUTBrJjR4clUiP1YmNEBASmRfZldlPX4lfH4/YXBxQFwkb0VnaFJQVV18QyR3I3JbLFhCM2wydk0KICAgICAgKUN6Sj9fJmJxVjw/ekEkPy95UDhoQntWTUZEYlknWjJPXFQ0Zy94YS0odGFpLTEqKmRHaExvWFQ/S1g2d1VSIncrRG0oK1VGUzAnKGc8MWZRKVZAO19FLzlUVmZbVEd9MDshfmJJVS49bSEwPigKICAgICAgayhBTnRUK21MI2U5d3dKYTdiSF4+QU9pNGNHS1FjNyt7c0FELGpjTjx6a2ZLfFRVN2lFQl0qImZbby5ZX2RqPHlrT29UP01Sc01MalRMOXo3MywwNUAxS31yfSU+VSZrNzY9YFV1Jk5gUTRXLkgKICAgICAgL1Z0MjtUendyIyIwfmpfLm1BRSJCdkA6KlJ7TmlWI2pJbX4zVzFySjorYVE1a3V0JUNSZTYyUzZ5W0IibUlZOU5gMlM0KyVDWzghWzxYYF9CLDkvIXs9TjxJX31kPi9wUVMlJzVUPjsjP0hwR1YKICAgICAgLHEiKC8nXStDbmZDamssNjJNfUx4LDtcUk1RS0ljb1QpRDQnNi5NOm1Hdm1iU2tKaiIwbWhYVE5XWWF1RXImV0lJNiIiPHZwWnt6bFIwOUVNdzpKVWMlKkQ2OTVUXiY7cCNFKzR0OEt7bk5ebWsKICAgICAgZ0IiZmIwJnFzX2Z7ejNadmRbND1oJX1MaSx5MVJcXldOZ1RKNjxlXTMqbylHZipANmFmRnJzPWV3O3YuTFlPcSlWa1p7ODxcO2ZiI2p1YlUrSWVBSSI1W0I0PypXaDBbQFFAPzRWX2wpKiJESy0KICAgICAgcjtaTi40REwrLzkjOCFRM0wzJVh7bWt3dC1rRXhBITRFemN3MCc3JC00RThnZz4/L2N1blRhIzwoaEBeS2t4bCg2e21iTXMpQm1SbUdFTXRvcEpKRWs1Kkk+RDY/T05uQVhmcCsjMlsxNz0rSjgKICAgICAgL2w4JVk/I3htZFhZVDx2TmZbNC9ONnojcnFeJWo7cD5dL0wtYS40Xk5wKF4xSVladXE1YV5iYyhCS1cibjAuLC5RNWh+Rk90V0tnJShHSjEmNkxdIUhPMHlpa2paNlI8RDB0U3JgaUhVLldSP10KICAgICAgJDo8SzdTRHI0S1I2Tk07MF9jcyFhWCs0JUwuWyxrcFNWOzE0Y2J4b2BEQlQkT1xUUSopSH1FUls7QFA1VSRiPEEzSWZnVEEpUC50OzJETVN7NGR8VHN9cmRmQ34yRSEteE0hSXInLzJ4XzRZfVMKICAgICAgWlwiTHo8J3FdaUBUQShrNmxNfVRyQChzL3NRMSRtPzlsJlVqd0l8VEdJXDZ4aSpAM0djZGwuRFtQKDgpejF3cFxfTjNQPj1aLXhUW3Fnb3ptclhoXiVbcDRfdE5kSSw+bls7LUtnbUYjT3lfWyQKICAgICAgVjgneE4kPTl1WlNIJyUndyh1dlpTVVh6UyFqeD9Va2VwXjE3SU9sYkdqYm9sIWJEVyVeLWp9QzcyfC8nLzxPOmkuQE0+SjBeST5pK2A5XzhPU01xPndISFx+MmF0Xj0kQyhANGAzO1k8IltHREEKICAgICAgLnlJJj9eM3pxfW5ZSSRqTGk2dUJGZmloTjcjcVJ7fnZMays2RVt6NURsYE4sOG43YSgxTUxhWFwkXEl4KiR3SFZPcjFQYyZUTl8+XXEjRGpzJXU1dGBxXzJ7MyFaITIuPE9SMmdEI3MlcS8yTy0KICAgICAgKm0sPH0uQDkrc2hVdTk8OiF4M1M5OHw7PiI8OXh7Wz5gQC0xQD0qeTBlZylueiVvWFtSd2U7Kmw5VTE8PCVRKl9CdklMSjo2OUlidzU4bTRFT2omJW9kI3BWcWVpI3QxNSZeVC1VJTgpMSVQYGwKICAgICAgKTlBSD4sSUtMaW09MlNqWT1pR3oxb3hpXXtiezs8ODUwXTtUXCt3LiZ9RSVrTF9jSytZTX5tMkArWWBcVH5qKX1tb21MTVZaWDRWeFVQa3hjXDRDKWVXW0RRNnd+SDYkZnZ9eUBrKH1RKSdPNEcKICAgICAgT3h5ZjhiPHk5Mjh6JEJ6TUhLMngraGFQIlI8Y2d1N0k6fjAwWVhCTntQKzRGPS59U31kbzl3I2c1PltPSlkpJkdrVD17KD8wUz8pYytYW21CMk83Ni9OfChEZyttYE9SbmNVXyUqbCwnLCIkUEMKICAgICAgJlkxalg5NHdtLDl5QlorXnphX1xsTDJmdElzSH1VKkhWe2JdKzpPPExiSE4jL3hCPVhjUHs7djJkKH5XO2AsIyIwJjQneD5AdFhyQ3Y9d0N+ViQnV285blltWldXOUMmWSk5dVN3VEpkZEIvQXYKICAgICAgMzUvX2J4SXBocWssMW8qZzJqK08yMDs7Y2NGeX17SjBSWEhWMm1hZCojWll2MlM7NXZ4WnVOeyU0K35beyNjWFEwK2hDUTtaSiR4fiV8PmlxMCNrenlOdGgkdkRoYCZTUCJKJUhcSTQ5dkJlMnEKICAgICAgb3x6MDtPVj5yQ0I7cUJQcmd+KCZIU3Z7cFB6WV90UUB4W0FRM1RGPVZ2OVd1MTIqR3ReaF1eRm1abm4wMk0/Qy9EPkdsPWdcZlFbLDwmZ1xfUHFTeXRkVjBsbTVrfVRJWWkoLDBxdkptPX4jci8KICAgICAgJ2RFMWYvcFslUDhKLi9OfHdsfmtlKWVVUSt6JXJJW2w+LkY4XiReaG4jdXVdYWJESTZjYFNIKUBpTTBzQ01hOjU5PDowI1tvUEBeXTB0aEswZjh2ViVVYm14L0MyJE58IlImXnInQ15nVDNBNnwKICAgICAgbjRWZjYoTEJCPUpEX19mUUl4cWBZSFtcLC9nUTghNE1kIUx8Z2oyMGlgejZfcyRMZ0JDMGwyO3UweXl4amxFYDRHUUVNe1J2d1InPEgyQjRtQW5PMyJiYG8xe2FIMGF5LXV7aFErO01+Mz5ZYFgKICAgICAgS2VccFBjSUk9VkA7OHomSUxjeXZGcD5lLSleLHJBO2wmdmE3SVNQM0MlNTI0J25xeFNnWisnTHQ7c14oVm1ncG1dOF05V35jSS0sOFEpcSNrcCtIJEopVVBjUTRHJy99eW0jN0RyOHk1LXtBOzYKICAgICAgYWgyVn06UEBYTjZxJ1VDflgoaXF2I1hVTTB3ZGw3MlByZltqSExOfUZpe0x+Q0c+fXVBJlUuLyw8Kjw9dVlSJHZnV0ZyY3xwdUskRitzXWhkN2dzLWhddC9zLFc8PT01MSVHKXdpRXkwYW9BVCgKICAgICAgY04la2t7XCVOZ0MmXkJIZHIlcWl9LFVeMCpWXyVSIlpeJl1fU3coUll2c3tUZy01QjAqXTVVMmQpLmxGXXR7RGExVjsydSk/aWc4SCtgL1Z2Z3FQIlBLVTZaXD5RKVRuVCRZTHc3ckhvbUxYdj0KICAgICAgeGZvUGMiO247dDApbDV9LjUpQW1GN2FXKTVidllPO1N2enw9WiU3W1pOcixSVSt5dEZBKSpYKls5bzZ1MClTZW5bTGxfS0ZUKjwoXEFKLlZJfE1VIV4pWT1CIWhpamMuQ34yRXJmaV0jbiJJVUoKICAgICAgUldMOmRZdmEwdXspUmEqZmh1OWdsUlokNF0/bkVkdi1VWlItMzhBblZlfC85VzcqS0BVJGQoNiReZjwiXSo8SzBqdkV5JzB5Njw5Jl1jcyF8eUokSio+OUxCNlpmdyJoSHBga1NpXCMtRmErX3QKICAgICAgaVcqI1RwcXFeK0orXEg+bEd6Kyx8YHQ1Ult8USdcdzhxZCokSy5+WzJYPkx5fVBkQH54OT9Kc3Y2LXk0QTlGI11eJCExSnQ9dC5UJU8oInhaSGc+Zk1WVUBeZzJOLn5eeTRNI0dNPHZyXkNHWXIKICAgICAgfi1QNUsyRDM8bDIuPi9TeFUlQ29dXydjPylcck9ZOCVSXnNjUG00IWhndl5PNSx7Tnt6MEwlIV5nfXFQL3hCRm8oen4/XzRPITd8M3QvIVJqZG9JISM4LmpmQT0oclVXZ1gla1x4PVc2Jl8qWXMKICAgICAgeVI7TGRSOHBcbzxiXDJ0c1pNXWNAVDJKUH5pJihrKlY2VDpkcU9DTz4hSWc8PWxqNWRcX0kzcy5zTmlLciVwLVQnTyVKaE9zdCt6RUssajZmKSJQeS9pRSF6XVJ7NS9obzZ0bmgoeWlNJidVXTcKICAgICAgZX4zPnZ0PjBBSUBsLU1oKy9iJktMZFh0Q3YyRU1Zc0w1ISVgTzUwTlRYRC1fVnBUeSQhZX1vYTItNUp2IS1XP3svNXJuPE5pdCEkfm5VVmxaaGZqPG4+ayJhTFdAUGExOTFNNzQqMllic1BuZDcKICAgICAgNUN9Ry1qYisyc0E5ND10NHpIezt9U2IpYzowUGhYKVNRKjJ1YThmflR5MU54N3UmMDlpKlxbRnZEYmMyLCs3KyE2dz4qOVc+PSVRMHJ2cXdeYHtoJS5eLnxxSEo7NSdWWXxJZGxsW3ZRaj90NXQKICAgICAgM1MzNnNPRkZzZiNUU0p0OTY5Pl5kcz5hIS07PH5WMD1IfWV0JERWKUpJRnNNPzZ8JyxQTm9sfi1ebl1iRCFxOSY0aFwma1U6P2Qldyx2aXRhTX1TPF9PTFw4KElOJHBIWnI5P1xldklqaiF7aXcKICAgICAgOlw6TlVAZ3g/OiNKLGE+PWxyU1pzdj52MSd+Siwzaj0uK0UsX20uNFs8XCw+KHB+NElhU3wwSkJqTkp+e1Rffk8jaVAwOz1iVWRdQDc4T24uX1pQMzJ0OT5uO2Q1PGhTPSQ4dE5CWltbIjs+SFQKICAgICAgI01XUiZmVCV5SVAnKGAmPVJTVDchcGRWfS5yPSFzSl4jJXhPe01XSGI3ezpAe2suRFJleU9OXHJ3a0puRS9mV1tDPVZuSXJzXyRPJk1sR1ZCek91b0RddHdjOXZEeFgoVjA4SHFOTnhcNSZgZX4KICAgICAgIkVELkVhd1NnaXpPdVYtODZ1TFdATUNhcCN0SE1OSmtPJlE2U1ozXjs7fidkMjZrQXciOml6XzQ+TjJ4STRxbCc4e1ZRYzU9cSNJeGprdHhlOzlDPlZjfDkna3tiTUZXRFlyImNadEJJVGBcekQKICAgICAge0F4KVw1WFNVd2knVTI7Q0guWn5ScU1ubVdKJWl5VkQxRTRmfCpFOXkoVz5OLTY2NFZIZHgldVo5ZWl9YmxVIXB7V2VoYXNVZDtfezV4fS9oPj5rQF0jR1VkVmU1OkhCKU10KilyS1ZzcjNiMi8KICAgICAgYHQ3YDEuNSpZbzEiMn5WbUkrJXRNOnNuYV1iSCJnO3l8e0dLO1JTdydvaiI8fHB3UCpbTGMmQmY5fiQ7S09HT2xRV3w5dlsnIWoxU3x9di9BLH1icWg4fX5eX2FOV3poZWI6RmBVfSJVayFINm8KICAgICAgRys7dzAnVWVDPVN4Y2VYIjZWbkVYWmpyQU9Vc0Q1ISs5P3siYzgrcEw0dSJceHUqZEpCXC5LRn4mM0ooJyN9MHp6d1ckcXNzRStNdl9XLHVXXDV+cmxmQWxJQiMsdyR5SXJgdGVLMThCY2dSJSsKICAgICAgJ181UFksL2slcCYhMydSOyhiKlBWXjhmNi9UckRBImNUN0JcbnUxTDpmQGNeXUA3flhVLG8pJ2VyfkpOajpJR1VWTlRzUjAsZjVtclkhbVxkfSk3ZmBCVE1TUSl4TmVOMU8ocV1LPH0ifThhIVYKICAgICAgeGQ6PC5wfScwUn1PfFgtTDw0Yn5MSS0/Xkx3ajxrRkhZdXBcZE50flMqal88W3AlLz94P3NvXnlfc1syJWwiZiJBJ2BeSi8hPWQmZjsnXH5cYGohPEUoMSM0RVA6a0R+dF9BYUwhby1gJz1NOFwKICAgICAgNFQmYHN1LT9xcDtcN3pQX3tnOGxdc09wYzl0cSknd0xEdy9EU0YlRnFFY3I+Y3BsSj5aQHV1XjljVlpeO1ktJmQ9QG45N3BBej8iJFoxcWhLVykjUm5pI2crYTc4SEolOGFPTE8wJ28mYE1HPyUKICAgICAgSDkwM18oczxlIkp+MlM8IkpQTX5ePzZWUjdbbmxHMyImYHQ1Rns4WzhbKXxPXz1Bd09acSYoUCE0J1FRZTxhT0pJQ2I4bHx7cjc7ZCMrOkAiSC90IX0nX1tvKS1lMFM1dDx+XFlwNjR7cVZVUHAKICAgICAgK2osM3Zod0dkWUhXTk48SmI+QFokVjVHfTlMdl4qaExJNHpLeXcxfmVPKmB5LywtMSZMbD9HSC9ec0krWVxbd2BbL0AzK0dUaU1Gd3UrcF1LPi1ocFNtTjxjZUMub2todSxhUWZibztCWDAsPncKICAgICAgOkREVzNfYEtAWjhye2o6VDNIVlxxPWszd1RmVD5TITBCcCp1J21zNTB3OTBUdzp+NzchQDJrU2BSdEdVR0soS1ByMDtSTH5hKWxwey1nfmd+NyYwODs7YSJRZj9EfT56b1NCKFA7bHVydzckYnoKICAgICAgKGg6IW92K3JlLykjVFQ+WFA6MXdXQiEnaFdHMF06Xit5RTFYfG1YTStmREp6WlBBSUs2fCpnVk94KEB1UE5IUG14Wm5zYVBfI1snLVVdXTUsflF7fSsqW2c3QWkyVm9jejZRKGRYOitMNj1DfXQKICAgICAgQjhSPzctJC0mdWRASkMzOWBAMl12YjNFWFgiZiI2aFw0TCNOblwxWH0sO0gyQy4oUUc1U2VHS2NZR0dvWktMIXY6PGljNUt2L0wpSWRIMV8iL1hCfS4yfkVZKXs0VEpROSgvKjx3SScuU2FhKC4KICAgICAgI3FxLyY4LjJnOlxCRGJZSkRxWyhoOXZ7TUEzV1dWVDZQOjlvNEM6JmM3YG9WZ1FGVSNUW2NnZT9DKkxKLC5AV3lUW0J8ZFQ8XENKbX4hPHJqMCU0ZSJnbjF0R3BzYHtccm4+MHhucSpJdURkdiQKICAgICAgUU00WllyQStcQGktaGsteD1ATiYodHEkKjZ0Q0J3UXM6TiFOLnE4ITZgXFZ3Ny8vfFM4OypkXj5vVjw1SXhvPnwzI1gteW81LSFlOkV0b0xmflNSIns/fGlJYE9JWXprSjR3S2RiS2ZUMiVTVGMKICAgICAgd01qIj9PP18nKzxBJFdzPnpIOiFMOzx7UHkvK1UoRj8kbFhASUIyLDRWbCt8OFhPNiktQ1RnS2V4IkprI0RsSUpCRnVPfVJ8bHdXaWQrWjkySz9oR1coZEcsZmpOe0MnTTIuMCJ1KHRuMEMmXVYKICAgICAgTE87PVJVLzFvMGFwWVB8X1UqfGRkaWdAXyhKVSdaI2tQNUgveUM2K1FxbjE/ZChdNldDOSY4SihnWDRsM3B+MVdAUnl3SkRPRlF2YXxpQWwuPF5ZZVE7IWpOQlJwbFQ3XiR0bih6O3FddzZnT34KICAgICAgJCt0Jl5dQXtFKGEqZjg3ZERYKTFqTzhQOkM2SFIyOlw8KVItTHBnVSVfVEZyUXN5NiRtU1FZWShHb29kckZ+ZGsjQlVPNChZVT1FfC1qVjxvLXEhY159bCxOYztrQD9wbHl7U1JKd20iP3lnbEAKICAgICAgX1YnblI6NUVgakcsQyIlaTwwckg/d2h0S3R4bk46cmt0VixNLXEofUNRMlxwXVJSfDtSJ1QsfTw6eVQrI3hJQmBEcjRBKFhhSD9haHVme0spaTQqOy1FKzMiVy09dDNHKjRld3g3R1NlSmpgPzUKICAgICAgN0pzQWMlbWxUeHpxTyRbMWxBW1BwNlU7OE1zfD1pTT1fRkRJeXN0RSx0L1UjRnorMkFHOUtgflIpTVxRSidAMSNfeFJTeUcme3FsSHtSNjo0VXR8eSh0KUpNYnFARkQvLGZ9Zi8jSnFgLjAvSk8KICAgICAgJCN1JCdYJzhKLWNTQz4qd0JCKmYpXkM2UWNLaDwkYC9qMEwrRGpRNWNvO11pX01gfjhCfmNKcC5yWjt0T3p0ZEAvMmhcL0RDPjUpLmtVNG5WRy9JbHF7cSU9SyIrIz4nLW9iXnNAIztXbX5aYywKICAgICAgNjI3c195TX15a11bdk8zTWFUWy9MSnxNXl4sUSI2Ky5ORWVyNkA7fSxpP3k+SSo6b3BdUiZjQGVZTCwqMFlhdERHTDIyKjNaXlU3JXxyTHwtVGYjNDBraHZINkVkam9QIyZ2SDNVfFBjYS1kZXoKICAgICAgQHVPJSQpc2FVezA9bDlNP1MqUTVYc28pKCtlTGlIfnp8VkU1Nk09aGZCNG9nR1YnVFlDUiIpXl44Pk5Rc2EvQnFJUl8+dnZeKzsuem9QZ2cjXkNTJy9GQihiKHZEbFBwfVFRSSZrdi8oWzJIIksKICAgICAgcGomcFpwSVp1Wy0mPkJqXjYueG0rOVsoWilJI3IjN088fWQyeixSfClhUWdiYUMlJjo4ZSp5e090RHs/ZG9mc2QqanlePHh4WjBhTTFASz9cYClmYD8zPEI2QzMycC0rbz8jS1l5aSp6Ykw8d2AKICAgICAgRU5GWXshXTRxaFcmbVRWd1Z8TTN3M0JcVFdIU0svIWorQix5JmNlYnkxLnJyOGcmejg0Im5HP2NhI2YkV0MmWipmeGh4TlZCSTFVTip2THFocWAmMFNXeSc4TzlrP1dtejYvNW5DJj4tYFxfbSMKICAgICAgXy85WWd9T1pILCw0TFlXeGlaK3s+JUIhdFBrcWp7dH5DZiQjNVhiRF4rdSZMRTsjMClabj59IUNFUyE3SG1SMzllaDZJUFxYM1Y+VGJ9Xmg4Nzk2Xj5dQl5FbkIjYHNTT2l5IilgVzpZSCcqZ1wKICAgICAgQThGJ21Bdk5lUEYxLVQzLGJZTDJxSXFPQiMtYVs1PUBOTSgiLGY0dTI0Wnw0ak92T3UvNT1qd2RRS1Y8UiRcYnBrcSNmKFJPR0JDZl5ONnY5ejFjXFlkNVI7OyZ3clQsIjYqZ1V3dGBZJ2M+XnoKICAgICAgUWAzNydfTz5zX2w/LH10L3BbbUlJbTNhbkkpTXNJQTMwIz5IfDZ7P2dVJWA4Ny82RS0xak5NRjpPVzJYVXVUSlM7W1Q9XmlufW8oSFp7bX5mYipQdmxdWWo3OCNQdmZSMj0uRH58IXM1eH5mKDUKICAgICAgLlYme2RrOF1nSWleX0lCXDopNUE6KG4oKHZJa0tFMFw0Jlx4NFoyY0d8WDt3KmNLPTh5dlxgZmRgVHx1andFK1tMLm5mN31FWUE3Y286aDUoa0VHTFB9X0dmOlEzbidnUkU1Ijs+M14mbkFbUlQKICAgICAgXDEhTUlaZ09+SHRLWUo/a1YxUW5JSypcem0hOCxAZT5QK11MTSV3W2klXnBZcF4rdyMpbT5QNUJBQzNWVDgzMSZVcDsrOzdqIUxJMlNhTVIhZTR1YWpnOyEoZGtlRFsrNlVAeGgnVE9WYzpqK0MKICAgICAgJkk9InNaaixkfmVEOGFsSyVsJW1fSjIrcVRIXCQhWjEwbSFfZW4qVHQjV3Q9dTokNidyIz1EUTkhRGdzV1hrbVdCVG1eTGFYQWwlLi9pPCZJJj0+XGMtZXtlQHN4JT44bXVmPzB5TUkvKGxNK3kKICAgICAgc2F7Mi91V1olVjNqfWxjeVo7IXcwVDNURCEjXzdweDlGMFMhSDEySlYqcGY/WEo7VVViJ0REY2BbZmopcChjb0dCKHVbeytZJTgiZD5uSSFbY2FiK0N6P2hga3l+UmlNO0M/dENCY2s5P3tLS2IKICAgICAgZEZfQjN8PzRoYkd8PCdfdW5QJEJfWVxVXVRYeHYjb2gpPFlzej48bzQqU2BDImopZTgyTDJkd1goKWE2JldUQCQiX2JdN3UidGprbk49KDhuOSh1K2JzW2M0Y3pbRlhheC1MKjUkeXNea0docy4KICAgICAgeHl4fVQmQzxiWytbaFxwYzFHZjl+em9hczNvVkwpOEIzMWVWc09RfTF1UmhgMSJBeS1VZE0ieC44cz5DPTlmY05IZXlWLkkjRTw5PERue0IjVlVaZWNgY29Qc1s5aDhBKmJjXnBpVnpCK3lhK3EKICAgICAgcl5xJTJ6KXdgci1HU2hsM2xfQUhKJ1MsM2F0NERseyVLNioxdWxIX0V5ZFtVOFVDXy46U2g2V3c+aDhneXFEXF0mPSJoYG9HdjtqSXdXWXVZYHx3TkM2Q2B2O0QnYWg2SkZ2fC41LzpGVjsidigKICAgICAgI05dODUwNyRSQyJmP3BfXWhfTWwlaHpUL0tYcTpUbFlTRCtXZSc+USRsWV43Kjd4L2QnIVhUKTVbSjdsTkBjNnJ3e3AuOH05Ulw9b29fNCM0KlM2PDYtRXlEQj5AYnRMOH4+UTNbN2U1XilZU0cKICAgICAgTzxMNWQ6cF9Wd0Z2THlrRX1ya2x6X0Qra0pXKiVvVjgrYyY1KH4xRmxWaFYva3MqeGstWGpbOUojPjdbKWlDTD80e2V9NmY7WHhjfFt9XFh4XTtVX1VfKHYmPCsldklCPEBhcklzM1l7MkY0JiQKICAgICAgPEIpcUo+clp7bWlOZXM/I0Vtbm1uYXZdVH00VSNNZylJZTxaWlUvQjokWF1GQCFlaDpjMWJbWjQqUGAyXEpyZXBIZSwlVjUzZiwkSEZAYzc1eS9Pdm8/PTlkNDRXLzI8Xj1XeVFHZD4pVno/RmIKICAgICAgfSc4fng1QXg2bXdZVVBgIjdCQWkkNmYueHlpN3U0NmMwXHtTNCsiQCVRJDEmQ0NWQE9OUjdmMHJtYSx0QTxzci45OXUkejAqSzJkKUJwcH1uRXQ1c2xYZlFhPTpbcyRWdF90JTkvKGc2LFdPfigKICAgICAgNyt5LCx+Vy5sWCY7OCome1hceFl0JW5lOScldVluIXksRz90NlIlRWRCMkQlNTZDR1kkeHskWndaKiFiJDtwa3puNWw2b0pYN19NblNzcTtuIzg9Sjc5XlAseDMtQ3p1ZUJnVFVtMkckQ1luQzIKICAgICAgWm0hZSVAOExiXn06dThgIm1ZRU5ANjN7azU8PGcxJDlpUHZhOjcrVzJBKSEmZ3o/LylXWnQxQCE+WFokVHF4fDlfKnYpbT1eVW8pIy9qaEtWc09sLmV0Z0plWnVxWixjZkBFV2YmZ2gtQn0qPXAKICAgICAgclk0c3QtW1FYIVx6bTNpOWxiQ3h7bS8pWjoxfis7bmsqSzgmJztwS2ssM111TT1KZVY8bHg4IW5aOFM2XDh8eXphOClzaiFSQmpbKTUhdEtdPV0sCgogICBbIjk1MCJdICA9ICAtLSBUcmFkaXRpb25hbCBDaGluZXNlLCAxMzQ5MyBjb2RlcG9pbnRzIGFib3ZlIFUrMDA3RgogICAgICBbPVs4M19PJFBpYydDeFJ2Ris7Kk18ISxtcEJCW2V3dCgqK2tJTF1vSScqOltXTU5QOSs0aSdKezAsfVhXaFs6fmZsYSd6WHx9fWMwMEZ7cWM0aiQhNEN9TkYpT2tZR1IzNDJVcyNOR0F+MX19dAogICAgICBrN1ZjWzomfEA7OXNnV0RTXzsjdXRnR28qPlBnaDhbay8jP1Atc1c0VFwxazB1d0Y3fkxkeCwhayNZam4ieX5gJXxPfj9FMixCYDZpLkFfU0IxWFhuYzgqRE4xMmx7ck9HXClSNlwzSElvIlp5QwogICAgICAmSVwxLXJfN0F5cT9qRm1VWmxVQVRIfipVVG19K148KXV5ajRJenx5V1whV2dweDpnJ04lNDU9eFEpc09Sb3U4YjJkeVpFLyQ9REZ4eiYrS3IlP21wQVNILHImLzYyYi9BclI5Pz5mdWN1PnhuKgogICAgICBMYyEhQyFAb3RXRHViX048UUc0J3lENS8qMkkmXHlbOVx6dD49dDohcXItSDI+YXBCUHwrUzZjNHYsP2FtXFA6K0R1VSIzMVVzWTZdbnEkcz5hUCpVWTh1VVNhIm8kOCtEdnYvQXg1KFNgfmc2LgogICAgICBHZFhjTi9YfGInQHV8cGlhPjB0ai00Iid0KjttX3RiJiZMPC13KiF2I1h9VDYmIUozRShmTHpdJzx0KkRNOjI4eV4lNVMwN05CdTU9SUZgcDgjVkVLO34yYiFYdl0nX3R8SHs/MTozS0MyTkkuNAogICAgICA4Pn12dEFRQ2g0J1pxNj9vN3BQbSlROE1LNnZkNTRXem03KV5nPyZlZUJMRncrKHQ5YmNVc1MjZCw1cD9IMlY+IiJrZGFgUENmekFhMGp3LWdXOiU8RjVpNm5KMFRcLG1MYkNyU3csaG0nMk9BYAogICAgICA9Vy96O196bmZSfjEzZmNeMXtIIyQwYDIhOnc+JG4kdUl0SUMsLz0tbmg/SHdoIzh7RHFEKWh8fnpoNDE/bG1LPD1xMH5eImFzLlt2IUIvOSFpYGJCIis+JS1XRnVWJ1E5UTo3eDxYZihcPHgpcgogICAgICB6MmZLKToheUJCQX0kbUp5KVxgal1xb2QzYS9CXj8oe1JLKUJJNkEpd1k9K0piSzRtZTl2LWAvakpkRD5gWUtcLiQ5LnM/dH5gVjBjO3ssT2VPfGZkOnIvaHZ0JHFGYmdkNlI2VmIsR1Z4TGwqKgogICAgICAsd2pASnFJREJVdWlBSFkzTWJDbnJXI1tnaCluVn5sS29FRjo9dkA2VytsR1BHViVmL2l6OnVuT3VWRWBlfk9HYiU5KVhbPklJUm8uQ1I8KitTUksvWnViVGQ4Z1gyNCVpMjZBX21sKUR2WHteMgogICAgICB5NkolT3o6YVwjeDMlK2ExRz9ZImdAP0J5LkN1fkxxOC5iPjp1YE0pX3Rsc3sqemdLYEpxUCJLcjF8b0lbKElTYnZ8VVIuSGVyJUwjZ0p4SVJscTl8blhmQVRCXn1gXVBOIVw3cFZPNDBETy40IgogICAgICB4YS8nSD1HVFFcKjRdLDNPOWEyK2EhJUIvKVU9QEd2Rm9IQlp4cUMiXSZDQisjO3ViJ2ExIkRxfVFjQCosOCprNyF4ZFY0eC08PXpKL3Noe19Kej4wK3VzYSZYfHEjZT4vRVVQI0NHSDhjcz8uZAogICAgICBcTDhYQU5yW3p2QF1Pcm04bFA4IUBeRFE6OVQqeFREZkhJSlV9SE53IW1+Kk9NPXJkTkNbKFk5QTtrfE5JfEYnZU45ZTdCLyV0eyYiY1AwfGcoQXJZekpXQiRdTTYyRloiZis+V0s6Z2pEWj0pdAogICAgICBbMnBcezNVImZiKFk/eEBdRmEjTlpUTk4hbCYtYGo9am9uTG1RSXRvYSV3LS44V31ePVBcRkt4NnlkVnk9VF80amR0K3loXVFwdSlQJWtaJjU7bVNiXyVfWG4sbz4tRn14Qi87SiV0fiRzMi9EMQogICAgICApIjBlaSFSWENdUS5+XTlQOE1+InRNTXYsZzo6ZzNUWD5cPzt8ITZ4SnA4QW9dcShDQWVNXHQzUjpLOFAxd0B4Rj10JEllXmAiW1RHUkpjInBrJDFPcEZpSi9jTE1CMWkqRU9ET1xdfmk7dXZxfgogICAgICA2aXZqSXNbJ0B8X348MlVbNTc7djtGPEFlOixMcmcrdXI7MCR5UClRQCJYbW1zcVo/Wm84Ozl3ZXtlVHdnKWAic0s9bGJOJU1YTyJbbVc/VUZqYE0+YEYzRExyOm8rTFYqQT1SMVs8JkU6TSpZdQogICAgICBZME1NajlIRTZxczwqSixLLl9UMytyRnhraFFweipBY2VBaWUnWTA3VU1UUXgvflR3fSgxXEU3QChUNzZDcHkmQnokcihnaEkiSjByRz0nTUw5OXxmeDQzJWRie1liSHU7elJzfCs1N1pXIiE2bgogICAgICBgcVExLF84Kio7UzQpIjEiWyVKU0s3L046WD8la1w8K09dayQwKyQvIlVXaHdVNlNBbS1YXytfOUxjam1XMltPdj1sNipuOEZEbk9DZm9QTDFSUTtoZyZ8IUg5TTY3PGM9SFhrLFhPN358bmhmYQogICAgICB5Qk1sNUJaamVYWE80M0tOVXBHQ1QzJkE7M3pSJDB9JSthci8vYyJoISxeOjxuM0dgVnhRPUJpNiI4LnshWyo/amYyMyFCZ3YrSndJUFphdH4kbU83V2J8ekFqJFIkLT1CRE8rTmk0UyE1XXRFKgogICAgICBiP018Z2VQPVVCVz5RSH5FcEdEMFUnfXgsXGlPTEJ5TzVUdGxIIShXcyFSKjhOVjRzJnFWSTpZTCw4KmQwLVw+eDpKRlFsM18xMXdGVlApeW5JKVUoaV9PQiJ+IUpSUm9MQS4vOD9DRiR2ZnJuPgogICAgICB1dlBCanVoWUhdWU87JDhlfjVnclpLLVUje0wke2YqK0RleT1iYEp9MFEhej81J0whZkFhZXsxYVNmSXNLcmFXRFBFdihFOjZPdDRNbi0oYSpIMCo+UHAmfTdOIzNST0w8fTZhIXR1OWxoWE4jewogICAgICBEOGhScmhJLy5aSGE9M1JPaFVIS3pTcTBaLXl5Q1hdWjdgN2J1blV7RyNAelMiJ2YiIWtzMGA7VS9NYzk4KGAxZVhCOWgldCxWczlDZHMsNGNyR2RGYFsyO2p0Ly12MlomVHQjP30nJEpKQlVScQogICAgICAsSFhNdShUPEdEaCMhNj1ZWGQsUGF2K0JCZFlKYj8rTC9KOFUjUF9jIWhzJGBAVVBFQVBbZmRfcGBbaC93IVdpVk9sMjhRcXtwVk9Fb1FdQDNePHlMWGFQZ2pjJEw2V0xrZ1xWLEYlOiJdKGM9LQogICAgICBQQHZ0bnlWPGlIM25ZQ2AtVmI9QU8xU0tpQFc0KzZvLCZdRmNwIS0ufHtqaHBmMTw2Ii9qNTNLZmZmJ2MmYm9LZ0l4cSZpZkhPcF89YUkxXHJwXGc+KyppamY5KDpDeDFIOzN9OH1LcT4sb3hqdQogICAgICBuZFJIQCZBd1lgSGgsMjhZPWMkb1lcXVFGR2tVQSJCN2tyWDZ8NVhbNFZTN3MxVCIhTCg4WDslfkRVY1pMUE9xenxrJ1Q4emVFMXNGQlJYPVwiXWcweCJwZ2pGeVBpaixvaGktMHZ6YlZ8bTUkQQogICAgICA/PFssbU5mKiNlQWMuLSRfXFxaZVs8LzZzMHVqcmEqOzArOWwsKD1TR3FPKHk2M0pPa0EiTj8wL2omY1t4YWZeTn1PcF9EImdRYWo0bTN6eVohRlpJOFQqW3NvKCJeY0xuemVQcXhzY2EpMXRDagogICAgICBVMDdpXWk3TDNBcU04cGNAbEJ5MjZPNlQrMHlAQ1U9WjcnJ05zMHF3UHVhdnh7SURPP1E8XDwqMyxJbTtOR0sqJUgwI1FHI187NVhEeFF0S110byFAbmQheWd0dHpTREdTKEZiOV9cZFpOfCQrNwogICAgICAoaU85JEYnPztySyNNMmNWPyd1blt3MH5cV1srNVxTbDc/bUJTN0J7NktOI0pVbCEuZHRwKj46VHhvVDh6eDxUcXh7MFxGRTtMKEdMXERjLkdpJHNYcE4wUWQwQH0tXSRKOGQhRG8kT3Z+dm5JYQogICAgICA8aTM8ckFKYmRKd251cnFuW1RoW0RtTEFaVCtPRGJeUkAvQCo2NUxLMW5xJDldaSV7KXwxWU9Lb1JXbS4/Ti5lVkItJl4sSFxgJk5vQD9Tb14hdzMxM2J3R05SfUo7ZW9YXD9+cmRkOD9ELFtSOAogICAgICBLMHJ2Lyp7NTpKJnFnTUtaYTBXYHE1QVhqP0tkKFxGU3hRWGU8Zk5LTFJBOWdMXj51VmxIe0QtfDdgYnthWDtGR2lNcWJuU0hKej88e34+ZjxsSVhxQ1s+el1jLGRHeCtIL2ZbTTgtRWR7KGJeJQogICAgICAmQHQtZCNcV3FdMH0kTj45ViVNXGBpNzE8LWdZe1dXZy1GbyVyZFQ7JDRvISVvYXgzV2JTTzg8Vm1HWWhtLWxYZlpHPEU9OktoRl0hRmFNXTlpcjc9c2FpWEt4UE5bZjpxSXw8ZyNqMFBYaS4lbgogICAgICBVcVRGUlF1WCwsNmU5eD5LUWpCcW5sSUk5KUooLm1NdEpYVHRdW2NSfUFOfC15KmhMWVVqI2ZJKHFPT1c5M2RqZDlbMkhSInV8LGsoR3AnRGU2X10/bSNJemM0TiJPeGdeOWVYLTd5S1tNJURJdAogICAgICBSdypFKUI9Z3pFJ1RHdWpcXTAvNic6YC5waWF2PjA7Vzl1flI2JXdpXVpeLztfOms6P0RaWlMpQjNVMDVsKiFKbHBpMG5oMz08TSw2dFYwM0dnPV5RP3dQVndaWDQ9SlNmZGNkUkxZI1hZfUREKAogICAgICB+UT5PdUBwL29gOE9hLHg3bGs8PC9ge3tWUDpBUFZUUCw+YnozelZcTV80c3g1emVVSypMV0ZHanBOakRQaF07e0Z3THM+fF18OWdsJnpHOUttPkNFQF1aUjwncVorTWBtcSUoamcrREIvWk1XXwogICAgICBSMmFyUTQ5MFRmdnJvJEAiTDxROzFidjRQTkRxLkI3WyQyJC4xWUxDI2lSRitHI1xBQXhVflQyaGQtQVI8RyxgeCs/TEJEbU1LPy9cX3tUdDliI0onKiFNZGd2UmtafmxtZ24teGZBLnhlPXEjLQogICAgICBzPkxoYkQhYURESUROc3B+XTohUmB5Onl+Rj1CVj5YUWJxQk8wYSpjJSJVRGwmPzouKndSPGBCcEo3dykua3pwalZeVlZgSjpWaDhyIUl6IzhNXV95b1NaJzElYUEnWDdjL1NjR3RAOkg9bENmKwogICAgICAwRHNfaCI2cGpKLlhldCdxJUQndSolQChBcm9TS1p1SGohfEM+XE1hS3IxOyNtaz51MidnT3p5b0dIKzsiK3dSKD1YS0lrJkc7TGRBa0NCUC5vRTJNZDEzYURxIVtIXE5pXilbUXZHbmouQiwyYAogICAgICBlc0xOO34oa1syV0wjRD1fIjpXPWI2N0FFS0tpJj1tSXVVbVc+UVEmJnxkMDBIIW8iLlg+Ki5jfHtOa01MK1F5X2ZDSXROK19caToiYiJWNXFNVihCKG05cy1VISVbL3RzczE0YHokKmVJdUNVSQogICAgICBrPDtJQXhuP2kxdkFpTHFrSztMaElEQEs4b0RGZENaNmFebG0nXFBTWyQzNClVLXZLfnNGKypcQSR0eUl5RW1UQXFJXS14TGxdXitxKWRRREd1S0EsOiM+a2ZmJV46c2Y8X0JgVWBlYGVzXl9yIwogICAgICBdUmZnWDUvcSVfJ0ojVnd4ZWdQZU1sRCtVY05nbi9oITdBbEFfYWVmVHEyJ1FnVyw5LkFOMiI2Q2UqIylPT1o3WS0nY1N+cilTYiVRaVRINyhDLkZoOHRfIUZiR2xvOmB6TFNtdTlEOFRuIS01YQogICAgICBXXik1THNlNEBDSV0rOlVAd1s5fEhvdXU/X1Q6Mkx+XE9gb20nPH0vJEBdaWNXcC5FbUs1PSxadTZFSy9Ge0BiYzNfNlQkcUA+VF5gRzo4bFcrOGN1fGY0XFdFS21SWVJ0SUVVS0FMd1BRY0ovRAogICAgICBQRy5cT1E/SHhZU09qeCVAeygqc289LjpxXkVbc2BPIXVAezdGbGR8bDJcWSp7dTVZYGRsLyVjUVsxanE9V31Mc2pqJH4uSidIaloqPldbWn1JSik6e1cod2BZclImbWRPLnAwQk8keVg5JUA9LgogICAgICAmKEU6QjFUZ3tPSmhgXyYiKlJcMT5nN0VFRXFyTUpZclpTZjhaLClkOTNSIisjWGZbNnIuSyE7dDFTPT4yJ3VHOWYsQWo8VUhXYlRqXX1FeUVoQno1bF8zaUBMK2U8eTE5NUBDYG9IU1lXNHZcSgogICAgICAiMy1yXWMsPU5wN29ERlE/fWF6PihBVTRsR3wvZiIrMjJfKCZSdmJjVTo5d2kxJ0ZRPEF9ZiZ5MHp9Km9tWls5XjEiQjxUKnVPQU9MMyM/VClFOloxbnNVPH5xMERNM3E0RSZ4L3ldc2pRL2lEdwogICAgICArPiZuYkl6b28+fFRiakdhJ2dQInwjK0NiL0YnUypKd1dEO3BFUVw/IyNGTlhBSmJuVDNCUUhnTGVSYD06cCYtRT83UmYvdX49OzlOI35POWk+SWRQMnB2eU5weGB4RnVKLDRVeSVNcTpRZUp9dwogICAgICA5XUt1QjhVXy9Qa2FPR1ltOW5cI1QzIl1AOnh3RGUzTUIqXEZRIyI1ME41dFBvUk9pdD9XP19FUUpbInFcYFYpYyVBWXJmUFVmSTtEaitJKTtvRl1BQVZVMSh5ZnY2LnhoZ2VOal4vT3dWNCk5NQogICAgICBhPW9KZmlVNyhhUkk9OzNyQGY1IjhYYTpMM0ZaI2QpKmlpIUxwKnRSTE9vYFxGd1N2UT8oakEtKEx6cyZ2JzF3LCUjYlQsXkwpKTU2UzFLXiFGZGh7b24wdzZKbEBWdmpLT2FFN0ZxYERjYWtAYAogICAgICBGKyd4NlpOd0Q5PCwoTWwnRURrfVpkcEItW15AOFV6TCZ+VXBEOUZYcDNRJGFQPEUoXWkvP0BpYlckT2NGR0hqLyghZ1xJOltMPiI/d0FtWW8sfSVjJFYySW8idml9MFE6I0lmT0h8ImcrbWd1RAogICAgICBZJSZTb3xwNVF5PDVVTTk/TWRYJztvSCMlJ30yLVdiQCdKSWl2UTkiVHQnb31nSXgwWThGfkF+cG1cOjpHOkYseV1MJictfGpyYzE5cjQ8NWFVWn1MXidWP0hrJ1s+VF1pd2pqJiRXLj5rP1smKgogICAgICB6dzppXUpZcl1tXm1nJXRAaz0pVE1oLyxmbGZeQTtIc2BxdUY/OV1aOjQ9b1lmKV9gUCh1L1hTMlwyV2hIPjZyOGRzUTwodClyKnNvRy5TImZEcXVoUTd3NDU8IntkNih2LD5FY3MyaSlebitWSwogICAgICBqbWNWNDc+OVp0d1prTSxdZDYwYCgrM1R+UDUnWSU+Km04ckxqSVFrXFY5V0ouSnJjWCgpXEl3Vm8wbyh1OCJrfXBULnQ5NjtWTVkyUXVALjtOZDUjWHVtLXRjLTBJaCgnQlc1LXRobTBnMEotTgogICAgICBvPFFWeVEzPmYkXlIyPUtLN1gyPikjOTZ1bXJGYlx+d2UzLmJwPls+dUA9aT5LXnUwakpDTVR2YGNoKnxsdjpgdjdgRHBaMllkcmktSDYre1gial9UQGF6MEBkTlo9R2gwdEw5OCpFZDciRmYjewogICAgICB2ZGA0SWY6bldFQnV7d01+Z1hxW3tTWCUhYFF0N0hMP1U8I0ZpSGhnVENEUVxHKyFWaSNiWChARF1CWmE5T2ItYFNqKSpReDcnKTg4SC9UXUxmNGB2P2xPZV5CV253cCtXdE5TVTtBPGYvUkpmeQogICAgICB4IktdOGxiazBVOnIzRSxYVHdrKnQuRCh6bFg9X3E1PzR7L1NuP0N2SFlydEIzY358fkhfUHQ3YChfM0hnKUElYUY9cW1ZempRT1phJHFNYTxRTEFhbGVuJjJNL351dUdUQExLYT14Q30sdXotdQogICAgICBDanZATiNDczVyJXtwJnwhX0BeMk0qOlZDI0ZDZS4/LDFqJjhCalB6fVlGYnAqKGFOTT47eDF3KGBHZlhVa1J3aWw4LUh7cTt3N0JRLiFLWXtwUW5rLWl1LH50JS48RUwsZm5vMjR1NEUkNkBRcAogICAgICBweH1NbWNRIyRRdTVFPm1OeSx9Xz96PDptUUpmWi5NJ2VOOzJBYn11ZkxlT15xbGx+bE1GUGY2UEtQJHlnK0FrcVd3ZSZtaXJkYHU6V2s9S0NPY1FzRU1xcD8rVHBgMD0jVnNoQyNFeylGczBpJwogICAgICBNWUF4bCsxQDtXR2F1Ry9JKE93WENNPkAwM0hHelpLNzwvXEAjPSJcNDo4J3thR1tzZFRDXVU9Oi80XUw+KjdWQjc/cXowOkcyeVVVSFMzNjgzNUI3XDlINy8+Slw+MnNtWD9IXCRPbVFCUjAyJQogICAgICA+NitqekBaTU49SCFqbT1IeiMrVWZtc3syR1wqUTxCJTUsX2diIT4nfTY2JD05WEl0RUdhTzxMfCxiSDE6XHIydEQ0QzpYZzZxXktfR2FJNz9FfUZkO2htLHtya0x9ajopRTZuUGdeUDVJekViSQogICAgICA5QSFkKnkkVTkqd1puLikhTEpfNUVOXytJSyNybm41VjJZfD09WTRhW19makdpbHtrX2hoMzpKXFF0N0pVbzZ7SSYvYVtsUD0taz8kSEQ1IzkqUlVwZEwtMVVfVStkQjZyMWMwUTslKjJVXSVgVwogICAgICBbU1Q2JlFQfTZXVnhiZnU4PS5gSHNJXXIrai0xWklBUnxzQHQkOTRdJi4vbSRwP0FUJEw/ajU0akc9KzMlRlhvYjI3e1FYLURvayVMV0A9ezJHRUo+QGUrSW97OVppWmFibnEhXyI/U1glNFs3JAogICAgICBQW0R2SnUnOWtjNkI8XntoSDJeNCtQKntxezhDISt2OT9aNUxSdnZveC8wSUt5Jjh9Vn16OTwrLV9iIm85VCM4M08xLm8sKm8/NXZTc3w7KGszJH4xIX49KnMjWUlLZFdLNUtyZm5xXnBKRT1mSQogICAgICAxbG5keG54eixiSnxxTCYlJUtycHVpTmZFaTFofT8zKDFpd2ZFMy1lIV1iYHQ8byteST9iMVBwYEwhZ3h8ZV5hNX0reX45anUvdD9kW1FATytVKVxXRklTKCQudEYob1lXWEMvVz86KFssSnouRQogICAgICBgXTZAT21rJnFRWm9cVHZHYyVlITtNImhCIUF6RDg1MHtAOyN1LWZIQGllOXtZLmJbaVktR0Y1Y0IzXUhjYX00Yy01cDUkJS9vL3JzTlQuUT1KKHpzdEtAXXJqNVx6TStIQEdiI3syVmZTMzYtZgogICAgICB1PU4zY0BzP05qKURhSXYxfjZ+Iyl9J1YvZHwteUV2dmxVMi1rZENMRCd6Qz5dYiluOH47Q3dxSy40b084SmUxPj5Wc2FreEdnbVZKTHFBaEF5fEEpODtye1gkRG1ISFQ0U01PLmNWbl1UVCYsZgogICAgICAvSFdzMzEwYjMnezJ2Yl5sLDVfRDU0ay5AYig0NychKWFhcj97ZXpjJ0ZEKmtvUF8/JWx9YUsyR3crTVxmdmxWcDxdXGBkcCItPkcncz8hfT0mLUVXYSlwanMzN1BlITBYWVpWOTRJM0xwfmVVKQogICAgICAyLWA/WFE7Inc1b1h6fltCUEJHbT4xJ1pFcy1vTzVUSHVGMEkkLzYnMFVpUz9xc2JFZlNBKiZwbixZVElZOWxJOEQnI2hcdExUd0QnNTFYdVxicSNrTD1eTSFMOT8zc2pHOT9ONjxAPmhQRCR2fgogICAgICByOiordWRtJSVAYCwjdmQ0SCZHKW0yVmA3UlI2TCthODxsQU19RG83VmppY3Q5IUd6W1tPfCRWUmJmczAkPy1cTV8zK1MxQylsPzNCcnFtfXZ9ejBqP290bFs0a0V6QExPSXExUjM6bXxJXjtTVAogICAgICB6cGc4bXliZWUtc25jSn5+LU5WNHkrYzc1JjBMcWg+Xip7MFZQbF0xbSstWDRwVjFwLk4kI2BcbzJWYlRhUXBhTDpATytJOXAkdjtGKzhiKFFGcVNdZSUoVi5YOmFZO3Z2L1t4c1JUI3BUX29wTgogICAgICBxekNHLnFWZHJ7PC9GJHJvNm1hXGA2QGFNPTNbZydId1xkNVt9Oy9kQ19rdGtMZkt3R0t6T102eVlEXndTQjxhZEYjPU0oX2g+RFAwJnFkZzpNcH1eWH5KKU8lTnxVXT9tdCZhaCk3VCI7aDc9cQogICAgICBiLkNdYFcxPEptd09DIiVqYlwuUUZ+dEx5fkNHfXZpblNJOU9dN2VcT2lJZnBocXNkKzdTI0R6Ukt7PSNbLkkmU0dRUF1lRk9ANnAobzkiJzY2d3paPVw2TntXSFtWbTw5JyU9XC9PLTwqd3hjagogICAgICAxLjIsZV5JPk0wbTtdfis8XjwyeyFsO2xieFJBd2ttfCY2en48YyFScntrL0lPOG9Ye0FJVlgmc0R4LDBJYj1OQ1dYX1p1S3E6Okc6LlVQfW05R30sKyJ5QXVxJz9ZOjs9Q0kyVDNWd3FDKCJVVQogICAgICB4aEpzNywkX2lKJzIoOVIrKyZRLVMhRy9eZGp5IyRmeHcyYHNyNjpEYWl6QWQyZDE7XSV4KSRAYmouTjwrLVEtRmUlbm5SZmB+WmRHP3YiIUtMekx9SzY1IkhKMyNcL0ouX0BeQEVhXlM/V2YlXQogICAgICBsRkdSIzgkQHh1QUl7OXhZWVEnOS85bSQnfDdLKUZVdXdVRE8mODl+fmkjcCxQa11KeDsne1NiQk1IUlVOcVE9YmFHLi45VVtjJFc9PmQ5TTRfNFxuRz81KHFBMnUzIVYqKSJzfUwrUFk2bjNBQgogICAgICAiZjIidmZUYG59KTpgSyhDXCZlKytaT2kkRHMnK3hAJ3RaJVZjcDIoOnF+QWlaYCd+ZDhzNy8iP1Ykcix4MVdRVENxczFsYWA0OmQ7QVx5MSJ9RDVlXnI6fjomfk1UW2JLLCNgQ0U9MUtsVntYKgogICAgICApcVRFSk0qSDdfbkx2QCNZLEFrY1xIOSlyejtYKilUKiVLQGVvXFxoJUdxYSNoemBDP1xSc0xFa0wkfnl0RTlXPzMxSiR4aj5BaUxFblRCVDlKb3xpI3Y8WWMmQGcyem5Fb19fTCNfXENddllqKwogICAgICBEcVoyOj48ekVdKEUuUztRSDZhLSdPO1F3enl6YG1dXTFuXnQtUVY0MlkwfVowJ0dpcG16bTVkLjF9P2gtO0hxOG48SEhfMl4vUVM3a0BjbFYmUUpvI1xacGtWM0dYNEJMISV6JFRGKUdTTVlOZAogICAgICA6UEVSTHZPR3Z9ISJsPit0IXooJndlUmxkQihnJHgpcDExTnNBJl1+ZjtOUGsiVGtkNmdgJChQMnREKio9cHc1Zk9gIS8tJHUkVmlmWzc+MX0tRkdmZ1kvTUYtLHA/ZH1ZdjxCYl8+UURlbntnSwogICAgICAvXWAoOSFlX0QtOSVsdWNfaTtNLUVAaCN3ZHV3SChMNi9keEhJNm86byIvRilpWUt5Kic8Nl13X1FGQG05U0l8JixUJ2AwdDd2ZiQzcSd3RCknfDpeVXcxITNcUFM4PSNINVlhLDMzfitJa2QpeAogICAgICBebited00uKSsvOkFDLm5DcF14c2chKV9AKmhvNV83di56ckYja3R6cS5lSmpwd2p1W2N+dFJIVU8xeWRPV1RLdW01W2V6MWJSXmM6Ti5LJk9wY1UqcyhLY1hVe1Q7RHx4S0dSMXR5W0xiLjI4VQogICAgICAhPCRCejJMbHg2UXBWenAueiI8Y3dSWSZkOCh+QzNATm1xOHAxIXA/WztEWFQpaiNdTTpVVn5lTWNBbzZzKE14I3N9fj0zKWx5O1Vid3Isankrb1hPOEQhbHJDWCtjeFBDfSQ0ZyVQSj1JeU55dwogICAgICA1QnBvXCFxels4WyJvXkBmeVtmSj11MX5iIj48Q05qRz9zVHh9Un0rUG1ISjciVyted2Fkemd1Qi5aeyxTdjs+bXF5bWVDfUBXO3BaXC8iRyxlZmNkenBbOF41bVEoOVFIWnVpMXtEQHRwJk0hMwogICAgICBCQTBxYW1XQFg0RVRGbD1yV2t2OzFXKklfYHxAckBkeGgjVXlfYXQ1USg4P1R9M1JvfHo/QCErYz4mOkl6VlNQXHdKRjwuTFQqYmwqTj1OWk9iW3wvfTNAOS0jcUxZaXBBZCUsJ3tQJD5zR3NMTwogICAgICBvWThSZn0ieiZuP28yQEZUPmtOZHRqWXttdGl8ckdMNjN4enc1em0/T19YMW1zVmkhXV19RFVgKDB7ciY1XnFGM113TyRiMzZbO1AxTyNvdyJuL3ZqY2xGWGJYaEMmPWQwcH0zOk92PDZhcU4oVwogICAgICB4MD9XZlFvdm9PSUQnZkJ7UD0kfG1pPzV7VDUxZE06MT1zaWJndGduOWB2Ol44U31xVFV1d19eXTc2ZF9kTFpBN2heVDBpN1w0RUNEPXpXLjQmK3Mvbkk8aHJ+RDdVWE5EXSNUNm1rV2k0SG5DPgogICAgICAqQS9uaDtHWy04ckAwU2MlXlZ0WEloTX1cV3BLW35SMmF1WSh0QikxYTJAITZpeU57R2VgRXxCUT1pJFVNfWtpPSZNVmh3WXhHdzhTL3VbZ1FiV19zbXpSUyFnbCsnKlg9ZEI2ZWFnNnVEM3BBOwogICAgICBkK00+NyMia34hbUp1Ky9RTSUuJkBXNlhETEoxfEZXOVMjaHljQVs2PVxDP1wsV29kUmdpeW0nYiskLVdrJ2pFfjtxcF0uMVktLl1dLzYuNT0pJypvTTR0UWFxKyFvb3VmMVZ2LE5sY3N9SzxeXgogICAgICBxSHElWlJvUm0lLWNGRmJGa1pnVlpLeSlMW1BxSDV1QSleVzRnKC8yInFmMGUpbllTV1whZ143T05wb1I9NDhyIi0teHNSLjpKZW5PbGJeclxZPzp9IyJKPF5JLXM8fXMsOVJxfmtFSylWZldJKAogICAgICAtJVpoTlYvIXclJ3gsNyY3K0gjL3FSVEQmMmtTYUVMOkc/Ol03eGd0YCxNdn44JilFZkhGcW9tPVtnYVlNQH57LXB9Z0JyX3o+OWIrOlIsZl1OSihdfENKYjsiZT8mbj1fSi1dPUEuI0FFZGMpLQogICAgICBkemIqOWwsTXlEQiteP3AiKSRAamslL0kwPSR6bHpER252dGAkWzheJyJOaERXKkpBaWUpRXhedSliTVUrYSsiKm94J01TbFxEZXl3Jl1tRzdwTD9Dd3RXdCkwRD5BdTcySFR+M0YjKCcmZVA3eAogICAgICBqPUg3KGY9WzBSJGo3TmxLanZCP10keXBwKjcxQ14sTmQ0QkImdS4qM1F+Zno7InpIL25PPjlfZnRXPnw6IztvK2YjfmlEdk5eM2ZlN2xBJk8heEFRXVIrZXw+ZVcmRykqVH5wRHF0aXB5Q3xKewogICAgICApWHEjbGM6N0FMPDNsMi04Jz4rXnRsNXl5dCl6bmxiSzJsZ1pUUTVfUVw4ZCI+Sz9GIkBmOnw4J3clMCFxeGhWfCZ7bHZ9YD47a08uZjlQenopMW8yTkE4OEpNX0NQb2hiJ24tY35XRmVzVUxpJQogICAgICA1M1NYN0BYd0haVkJ3XyZ7SVExTiUob0tKOU57QUtOJkc0cllKJSFFWCtwVWtoTTQ7Mkh3UGRrTGZDZWI0a1dwMj1IWXBoVyosI09YUzFaXidZM0UkLiMoSSVYWU1SVFZ8NUFDVmVELz5aby8iQwogICAgICB9e3VLYj19SWFESHFUJGNcVXxhSmZ1NEJIWlIqJzxZI31Xb2E3QTA3ZSY9WSdDbEcxI0QkUyo3aCpkZVBOQ11iJWlIO3VMeFg3QHRhRDYnWkEwMVInYWt9ITBFYk1aM0omQE4mfjM8bUUzNEY+TAogICAgICBvajdKUDhDI11RViM9Ky8lUiJpYj1nNFt9I3VEaEN3TE18OUBITidJVTZqMiZkcS4iVVhWM1w4JXwoc2I5LHguazVHQmE+aUpKJFcrZF1heXt3OWZfZ1Jyc0ArYEN9dURzX0JzVCE2bWo1fiRbVAogICAgICBMdSI/OFoycnlaUUMpJihucVB8JykhITVTYEFdYl8weDgsVHRRVnxIKmJaYi1YXV93WiZndks6KEU7RSIkZ211aUwuP1Q/MF5GRC1xJVlyXGhOPj9NN2dMRVw6aVB7cyc0XTFAaDhzan5UV0JpaQogICAgICAwLzRCPmZ8ZS1kKFU6Qmp3VCg9ZWIpeSlzUCw9MCc7OSFobi9fT09teERNJSxXNCY4d3NpMWpISmlFYCdDOD1bb2QoayY2PFlqUT12YGdXVUxYJTxLIkQrYFd3eHZbR2dBMnM6J3c1fUJ3bTw4WAogICAgICBGYEdTd0lrdkIoI2xlIzldRE9za1hNcGx9fWMhNVVFKlRpbSk5eUAmLzRDZnk8NkZKTEAiKEZlc0BdcyxdQjBkYzxxWGA8UENCMzs5SFJLXihdeHhvO3pLOngsJzs2dnREVV1mc00rPU1IdVBtawogICAgICBbVGp1XC9NYUJ4OUlvWlRaRUleJz0qbkNUVE8ieGBcNT1hKEx+dSV4XWNxYig0eEJNKXQxbUVsVXJuPlonJkJ+fEosI0Z0bThjYVtyKi16PT13ezc3fkM2ZCRwP1NOcyR4OEZ2V0YwUDpcQi5RbAogICAgICAtN3ZORFZXeSoua2khYElXX3RSJndDNkRQdFU5ezZ2S2NjTUh4Tk4kYm07OFBtaFJoODtxPi52P0o9SV8pJk55ITU1XmxlJjRvNzgkPW9AXUF7emhHVEU4aTIlJTJKOjBvVXh0aHBzNXoldT4ySwogICAgICBDazNxOiU4JU9yXCQuKHtTQVQzVntAOzthRlA8WidqeE1dRHVjPiR2OmAve0VEUjM4UHQ3Y0ZiPD9gOjVHPkdMNy5cbUpHOmV2bTcyP3xYZEVHLWtGWGYvIjIhSkwiSixtWlo5fUpzVTw2IUZhQgogICAgICBRYCJtVHhJSzEiWjpnbTJid011PkRZJ3VjO0xkcDAkQF4rK1I8UVRaXmEtJkI0OC4xSHRLW3x9M3R0Ij0tPjMoMTVeVXhoaVZfY2hzeHQmPFQuQXNtKklffVorKVNyJS9wJCdVc3p6XSdzLz1KSAogICAgICA5SlBjKmhJSGVoIlJfIkdrak1BTXlcVStZWS5WdW5kUXU0fDdmTCh+PEVNRCt3RkJKVjR5cVskYi1WZ1BQcCFwVXwhNzVTZCdmKEdRUVA8P2UhdVQxMlRNRk4vRj1kW313Kls9RzMuIid5NCwkcwogICAgICAtSkY+Y15Pbj82bXsnaCsjMS0raFQoVXY4eGJHciVIYiwkInxALlFRSiU3ImdZJV0+YXpecyMkeDsqNztUWyVRaldMXn1XbD9VUCh+ZEYpbXEoUm1UJWFCMy1GIU1yOTxxM2ErVTo9J2hAYj1eXQogICAgICAqeWE1dydWO2JGJDNfez0nT2NHViMoQWYjaz1dXUM9dXtXIm4pMl4hMFZYP1w5QHcuXDoxckJ9YHR0VDg/NiI/aXR6dHojUC9RPD5PN0VuMUomfGBzTmtFJzF7RllPOVQhKzF6dkdMMHhROnEuQwogICAgICBtWWgjJG4+aTFpKFJXMUdQKSpLZnRMPVVMIiJwRip6PSNmWCohci4nRzFKYkdSV3JXeXZsM05MTzcqeFhCUyoyT2tfJVxDW0ZWYzUuNUhhfCl+PWAnWW42NkB8VnVELjZwd2V5VyJcMn5gLjF2XAogICAgICBtZjk/cTRmSlFnKyheQjFoW3tpczxIbTpwaTBbIXFTUF5sdVshZElpVl1WSnopKW4/L2djXE1qamNWTWdVOGNtZCUhVEdmVyNxTkVzZSJjOzptK0VJXXlzTHJeXXl2Oj5BdD1HKGxlV1khfipTWQogICAgICBsM1c8bF41O0FKbmZSNHA3UTI9e1laW2BpUH1jUztaZVh0YCYlW0dtWEAxfEd0bGRaeyYrczkmX1V7OD50bj43RC16XnxfQ3ZMVmcqeTdhSl9rUS9yLnc0RENVY0UoTkEscWl5eighZTRwYTdLUwogICAgICBbeVBoZT5PN0t4OCxGfXcyPEhGTS5AM1BJXylDfnlRVWttY3heYCtOPWI7ZThXLk0iKXJ6PH1NP1hofHlaNSRLflQyZEktZDFJN25dLVR9KmErV3RJZGojJ1F6NXVjJiM4LjFOMFgmL2dBJEBwUgogICAgICBsYm40bVJPd0g2JmNPJzIoQF1rYlMnNVdjSDZofSVsOzcqWjxUWTM+eUJHfmR0S2MzVSZ+WSk6V3VCNyJXNC9JImBRTnxTc30jfkNja156Nm53J2tQYXsqSGAlLDQ2Pj9EKidEUlFrU0dzZEhHbgogICAgICBzWHw+OmRXNEVFZnsiei0nJiN2WD1KKj9WLVU5STI2RylDPHN0RzRFN3hvKHtkWkQlfChmYikoK3YiLzdoN1lgdlJUIjNKcVAnfiNWblslSXtMZ2s0KU5IUDVLckczM2pydCNrQEZXNXlMd15aaQogICAgICBaRStLRmJnSWFUcHcsQDpWYlc/TDtxXlZoQFJjOlM9LHUuVnovJHwyNWo6V3ZvPEB6YmFfJVB8RTpKSChMIlghaCNgV158bTpKVEdwVnBNTj09ZSZCJ29DaCV9bS5ZXlY0Q2Eva2FmUlgqLyYsXAogICAgICBnLE9DMkZUNnNjODBaa0lxO3grU3toZ0staDxvPWpYaEoqLEBuOnltWWlOQHp2d1R1UE5WfVhReSY9dXVmRid7Vl1ub3FvLDxseFM8MmAtPFhQMXx+YHB3Nkg/eHMycz4iPXprUFdONSFSNyV7VgogICAgICBVKkU/Sl1qfnItMG5TWDE5cCI+OG5kJlhSVUQmRH0iJW9BVkUxNXsvR3FtKVdBS34hZzxZflpJb2ZweFAyd08tTldcIkJsYWhzS0YxXUdpY2hUV0E9SzYwX3I1bURgLXJraC4uLH0jMmVGW3I1cAogICAgICBYZzpYcGVITEpMfGxrdEZ7IlV9I09tTDsmMGwmJiJieHtOYTI4Iyo/RTomJ0BUfVUocGB9aSN2TDpSS0hLe2lvQDZpREBLOn0hc09NeVVSLE1rKWR3QE1OSWojJTJ4RCd+L3QhOC4sYnErQEc6QgogICAgICBdNGx5NnRkV0peb3B7eUc1M0stZWxzYURyOyMwRWhqaVhVbHs2UHxrd1YiNkwtSXklP3UpMGVfcHFgXDZbflNtLHo8ZSQoaEs7ckFcYVxoR1VHTVwlZWIoPzU1RXgobkx1L2RDc2stZF1ueH5FYAogICAgICBQKTZZTi09eUtKIj5WJCVGaDxEWUxEfChPOi5VZ1UoTDRSb0tPdF0kcyd2PmYuRDdwXWFqeklNSVJFd0lPLm17NkFwRThec3dsRVwxI0AnU0U7Y3MuMmArT2Z0aVVqU0YhP0IlQ1I9YSl0SW1COwogICAgICB5aFtme1tQSlAsW3Y+Tyc+d1FSOEMhfFItXjZSaC0yeix1UlJrPVV5K0d0QUZGSkMqIVxyK2MwT0cse3ZZOiEzV3UjeWduT09mI2tBflM8ZHQ/W2szPShYOUxbRk13TV97eWZmODhgPj8sQSlnOwogICAgICAnX08vcEltJiJ7M1UvK01LaG40OitGOFJoOzdnWTtDJmRXI2BXPks1XFk/Rnx6e1Apfj5FKWtqLmlTQTBxIkJyLSNGNi5DRTdjO2x5cF4oOSpwbl5xOn1NSS8zWjtmSzIrOUw/NDVmL0knLicxIwogICAgICBAYEtSP2M6cGVmencmbHIsbTR0VDBqL3BaKFA/I2IiJkdPT0xTfGdmUiFxPUB6TERAOl9UJ1MifUNoZm1HYkhXImk6cHA1OkZHLXpsSUYuVnRTXUBPPGNYIW0+NSt1U24iVic+S08lLmFbQ0F2aAogICAgICBxVCoxIiJzX1pPQX1QfChseE80LGpIRzdvUkgoTS9rT3s5REs6U3ZDa1lMangxNUBMK2tORiVOTE5lKTAwdWtYYScpPFtVLDV8UDt0O2I0OHl0SXk0VmkxSD9lIjJ8dEVmdjN6P2lydjpiXD1CUAogICAgICA5P2pcb3phWHxmak88XC9ePipETGpoLi5TUlhgdHZhQHV7NWMsT0JacSNBdE18czs/U1tFMlByUVRdUzhAdU0pOT0rQlNyLy5hbEdwMztASHZsZEZGJHgycWZUfTouZ3FidzVcaDFsLi1aXSxPeAogICAgICAyMEB+c1JPTGl9ZGQldl5kd0w3XGBXMHJRI1U8e1I1cHpKd2MtTm9hMVl3WUVSSDlbXzNULVFge3onXk1bRGJCKC0zUzt4WWZtPDdraTZNbCwjSD1DPSwhVTo1fWhtRXB0PCpGblMxXmNxVyknUgogICAgICBddzBHSjB3NlooK2tObjAsXjx8b3VxN21XTVo3fFNYOGM1YU1ZXH52K2ZiJEd2KDY8dz55LSVcJigkeyJfXDtAKlcxU2lYQXBoQEtYYy45VFdqTVI6fXNEPjdjKyUkQCRrUWNLUWAidSIrfTRtQwogICAgICB4NVhdfi5wVmlifnJ2eV0pZWhbTSkmUDstR2N3STJ9VyNiZVNWVHxIaCJ4Zip4XVArMy45eShtdVh3YV8mK3x5eWpQajoialRaY1c1eGc8VmMmSSpmTCVXWHlpfnRdNydJPElmQm82TzdNNnNzMgogICAgICA2Y04nKVNHPUgtZnJ2ZCs/XnVraF5INzIwQEZKcTRDezchMCFKIWc5JiMqJDhdaHVKfTB7J1Focl5CVHpmNEAkXCFIIllDWHZwdDQpPGdMPGdWNDknX1UjLk9XRmh3Rj0/T15oP18hZGo1VEhcVQogICAgICB8K2BVcG1tcWREcS5zQytmRiZzaTBDQ2Z1fDlhKitEU3NmJmQ+WXpQO3Y3fiFzfV95QmU6IjEhezAoM1FlfFpVK0NQY3JZJ2xPfXk2V2JMQDEwJ1ZVJjo+fnpgRVI5LUFrbFx+PzYlN3NCJnE0cAogICAgICB3XTl8XnVmLzl9SDVhRU9dUiRoUE9+e3ZNaGYvJ0pkMSliZzh6cy1FWFVmeDZYUEo1fmMnLmMzSlNpcElldWVKenNKXyl7SXdjXUQiNEpbUkpOc2l9Uj8rV0h4bjdJSClgMEtqPjUxfU97aFpjOQogICAgICBFXDpMcUB7UFBGYCFAX2YqR1h5Pi8oU15haSIod1VaZG1hYioyXFF5UGZYSFxbOyh+ZkJgKDdWXyU0e0FHUlxYSmthN0hvNHtbL21rUDtmfmVTR3kyc1BQWTg0XDk/JGVELSREdylzQ1d8ZWVSNgogICAgICBcbiRJVU1pQTlXeVR6TzU7ODJbQyFhOX5TPlJ7MTBUXy0xKyJvW29XL2NCfGJ9SGhTb2daIy0ySCY6XTFcaWc0WFBPL14pQCNdQDMzQmk/WTh6S1woVn5YUVApaVx3eXZmUnlRJn5qajQocGxhXgogICAgICBEJ0Z4aSg4LlRDPkw0a0ZGK3UoSk5IbU9yeytpeyxne0oxRTRFYSVebihbdH14Z15dc0F8Xn1IWSIndHlUJ1F5Y3FaYDFhRXhJMHlkYVwkVlk8UXpISz41Py06US94UzI/bSxXbHYjYnEvdy49PQogICAgICBkbWcnSzdUWSdUcHZWWUloYVVPWUx5W00lPV9Le1dddTVOWG1zTDJhNVVzNUZgfl50WVpnUD1TUyloTDkwI0ZSKCNWMTZEQSMiIzs4JS1TfHgpXVQqaV4hPjU1eH5uXHNdUVZNVFpYKU0vQ2Q9WgogICAgICA2LVxdfGw8WUZ8X055YWg5J09QZjFNME1YL2Nlc2Jofm5KWFtrfklrRlMrcitHX1MkeVZCST8kV3pBQUZVJ2Q6Vi1haS9yMnB0dmMqSj1LeFZ2Wkg6N1VmK1ZAVihsNH0nfUFyWCYhMlEzblFsaAogICAgICAiOFUjaTwtXVFWWnVKVWM8SG9YLHAwM1MvRFhYRVtiL0FIT3I2fWd+ek0xdSlSOy07Im9zengtQHtYNkJoeFkoMjZ0KFAnMCdZWzQrMiZXSSdTVDo3P08vTi9XaFdGWmxeXnlxeGJVZiEiPzx8KwogICAgICA2TTx3QEAnWnFyKjBWayF+aE5RNTxcPWZmVnsobFN1Sl04YWFnImN4US4qa049bDwoY09lXX1EaHMjdD4+dSZ4OnFaaDtJel88MDxoIyY5LTRRKE1eOk9BSXZ8PTdXfE49YEZIPjdLV3xDLH1wfgogICAgICBeXU1xNHxQe2RwTjdcRSEnM1h0YURDSjZnfUBVPmVucitZa1pfUVhUKyhFPTA4cF1UXkpPTz9xbWU+aF8tNWNxN1I8aU93SUdLaVtRQDRkYFp0byJjbVh0ZE1aaDBRYSl9cGw2KkxqfE54RU5xRAogICAgICBJcEREdip5Q2lEbzhFPzx3TTJ1ZiMxUS4tKGFOTFZDbEFGP01ndVtBcmFMVlhXNDY8ZVlwTWw+cXI7PC5gUWxVSztIUEs+dH5VWlpxaklDVyZ3T0EuRXp+ZCVhdGZDTz9ZaDFmRkx5O0h5dTEzeQogICAgICBtMno2ZFV1Il0wU2teY3koJFRsbj1cWlojWmgpPHcyKG4mWl0oYTFSbyopSz86QjJ1KktUNFopIz1fKmFMc1glT2s3als1UEpvS0p2NHJEZ2RweDpjdCxjOzVrdyUqKiZBWzVGWzF9S3lMUzUsOQogICAgICBzIyh8ZCxJQlk6PyMpPlFedVl1Q1VHbWpmNlx6cngxdTlqZCkkVn0oUUItbEhBJl8lX1N2RUMsZ3RjWFVkRC9uTzNUXTJXX1dqT2VBLEwwTiR3KU4kbUNnayJqRjViPVllcGtbM1BKZzhKS3R0VQogICAgICArSXp0ITQ8WThQQUYzUHdMOTU5NzZJJG9CJWxQO0VcO3k5MWB5QyUyeW9IdX1rLWEpPzJXdU5tVDttPnt8bF9dKExtXHQ8dFFiaVc7XFVOXUZTSXdscTUqbDdlJFlDdl0yfik2WCYhXSV7V2NPcwogICAgICBiXUg9bnQvTDczYUBzMmJJRWFrZTU+OTc5bipzVWg9MlI1L3c8M0wqOGomdSNTU1M9YC4mRko2cn1JO3ouSG0+NzxgelIycURjZ2d5YDh+TTklajdSdF9JVyp7U1UzI1Quc1ZaempnfDliR206fQogICAgICBgLERRV1VAQ2B3JzNGZ2kpOmg5d1VtVkVKLlhcQGRrWm01Lj4rdEx+SSFwQHFMKjIsPFBIP3RpYEQuQFFrWTpobXxBdnd+XDZDUzkzVlI/OTZsREQhX0FTbCJINSh8OG8iMncyKDtNbl1RV0g0awogICAgICBdZXQsUURHLGJsOk82Jjs4Vy5XSDJLQjVYa2B6fF5wRylIPkk5YD9cYV1dYnYweWQiW1pmPy1oVGlieUNCXyE/XHwvfistMUNheVojPmxrTmo+X1MmT1tKKGB0P2JJZyIieSQpIk5nO3BDKTNicAogICAgICAiIkR6JHdSdTlKfWMjSWp+K0x3LjZQdz9jJjA1NVglXH45QmtpbE1BdmxdT21wbS11OCJtbXZcRlZNUUdNcURde11YXDMqaz06OHgzKWd3N2dJRUl4QGBsY19dK1lpcnc9LCRFY0wzPUFsYjVYLQogICAgICBTZkQ0ci18XDxDfmMmOGRPaGFtZEp2aDslVytpXTRhfEdLeVJDTzxmKGEmL3UobnhfWCxIaUdYMG1icj1kVydBSnU0JHpeNHtBaWgmUEdWYGxqang7PFh1LmJrVHRPcX04WWc+XnF7ZU5BUzRNRgogICAgICBuRks1cSV1UTE9TGEoZXR4fl4lLlApPztPJjhjdGlBPFhbRD9qMXcqM0l0ZiZ0R1FWeVlaXi1UQis+K0syYShDNWQyJz18eyRrUU97el5eRT43WThFRDEkOU1vXWtOVmYvRit5YCp9U0FoXmMvJgogICAgICA7XEY3IyY7PTU9KDBmQSIrNSZFYSIoMyNEamplYldfNENuZHNKV3VmM0xnYUE5Sjo8Z0xfciJfQT8kaG1wX295QVdacCpwZC48e11wc2tdL3MrZjc4IjM8KHRtRzhXQSVZdFc5IUs8QS5XdHxaVgogICAgICBSP0x+SlJNJCFXL2RJPH57OylzczBAQ0wsZWh9OVQhWjNjdjdjIW5udWRRIm1uOU87KDkyV0A9M3hvI0t0WypRSjNtMCZ7LSF6YyRwQDdlPXpbRSRjLnhfOEooIVJHTGEqQFYzI3xeT1I5L1U7KwogICAgICApMnQvMFtdenw2J1VCJD5STlt1YkxgPzFcX0A4bi9jPyQwO1Rdb1BxNU9UOENTcitwUlw+UiYmYFNXbEpSdkpzNEJqZEs1fXpZPF5dey5uflNnMSVzWidxXDA9JGIxfCIqaSdTbTBWOWdWc0xRKgogICAgICBwR0AnYUlxWktKbG00Zks9VCZUd1RQby9kUHY7JyRZOGl9cl93R2dYUzlFSXUkfEMiKSVaU0tVJmtxV017MjxUUmMvaWRdVC0lemt4JDBUPyNfYCxYOXlCOjY2MFJKSC5QRyd+TVFwIUdta3kmMQogICAgICAqTm5WalpZQ1JpaFUoVkcuMHpfe0V1bSUtcyVQIjZAfnBFRUcpYmpYNF5sIiUtVjonQCVxaXgtVVYsNE1PbE18ImphQy1NPk0rS3s2OVI9ViNqUFlOVG87Z3kofmxjbjRFJUB+M2ZbZkxoaFNkLgogICAgICAkTENsczJFal1aW3xIVy0vUyFuaUl1RnBsO2skKm07e0xES0BXJ118MGQ2X3BSYyIrXlF1NHJbc2tbK0pNRCx+Mj84STZ2MHYtSjEqfWlJTndKPn4vRVsrYiU6Oy4rMkxHcnRyUFo1Z1c2RCI7ZgogICAgICBBV1ZVZ1dBKztJbXlnJyV5dXJ5aTUlMDopYntTdC9SSGxqUm5ERCR9MSQxe1ZsNDBpY0hkWWRuS1N0bkQtYmo/N057MERaOFtAfHlGYkc4WEY+VW5LcXhYbmcxOShSLCNhJSJMRH0qQiFqa1h1QQogICAgICByYGxcOX5ufDg/M30/LUg0b19YeS5cQS5OeH40K2pTcCdAMHU6OmFkK1klW0hNJE1gNUJaSC93alIlJH1edWk3KT1WS0YsL1RHTlJ1MVxtWEA3X2NsSiJLOl1ieG45N0FPa0A2Wzx3V1lzTTYnZAogICAgICAyc1NjIUQuTUFuXDYmLF8rJE5lLmclXTxZY24zKWN5UlJJR1g7OFIiUVp+ZDZCckx5S3NreCVBIVNaTkIkJ09PMEBSP1tuL2oxKkh9b2tvan1wJDV+U1lvWG58JGE9J1xhdk5yIkAxUzNMO1VMKAogICAgICBXOU90UDklR0p6RXlQTTBxO0snRlhTUHo1dlg+UllHLCRGLTlpbXg8bV0xP2U+fE57PCxOZndbRWJyPlc3c3knclpMcCxmSjJ3aS00cSQuPk1cYXA4IndCVW9mOlVlR31DZ2l1JktbZTlnJ2BXIgogICAgICBYKEt6O2tSUn0uYTUkfF1paGFGd1FOWFd7Ii8qNk5cVHxXZ2FmXXhdKEg0ZjJfPGYlVHshY3klVExULWZFdU5IIWAjOXwielYjdFtOYHZSPWF0Pz1TenlJJj84K0V2UTpaT3V8bDAiYjorV25fIgogICAgICAkTG5lRCFgbiI4STY5fmAhK11CQTskdy92SDooa3NQRDpEZ0ZmSDZhTHg6M2AiS0M9VE14VXgsW30jPz85Tm57QGp+dT8nU2dSXmojW0NiUGZwWTMsKUlCbWYuV0YkWnYuc0o8Xit8MFFAeVQyIgogICAgICBSOmVJPHEuVmBudUtBM1RGX25gUVJWYn1haDZeX1krUm1eVTA2XmAmXCZHNWohKlRxLlxIMidXdk9PfjJrcD93NHo6SCkvY2t7P3lNcWcjbGN9Ui5GXUUhZ3cuUS0zIWJBb2RkUl0rQi9LJiRldwogICAgICBNImlnMz0vQXJxaWQwO1U0K3pXNFdyK2dybCwsMlloYzc/U1Q4VTZ2YVpdOlglKipQWzxBNixBVWckb1ImLClUK3FXLD4uQUd7L1xMUGBEYT1NWHUuYmMyWT8ifVZVI0E9RyM3Il9PfklSTFomZwogICAgICB5RnVMNjU2TlhHYF82Q3chdHovK1EiSjFHLkRgMlN+XkBXeGdwJVM7K2VuPj40T0hARWI9P1Z9YHdkVDJUfEgqTChBWlQmTEVVdi9yXXUuS1dEVFd4UGx5XzVSdWJaPnpIS040JUJdL2BmQ0NvSAogICAgICBNX0RRPSdWQE88fXlvPj1Pe1YhNzh7amVpZCk1XTpBODExWkdsJDgjTV4yQjQ9a1MtJGV9RylkO0ZlNWxucnc3Y0phJU08UT9pLjJeRzI2KU0uNUZYPWQ3VHp2PFZpTEhLaz8lUkskRz12eFRgeQogICAgICA/V2BEaypJTjsjcUx4TkFyfClHMzQxcyQrLWNDSCphYyc3THtcRWkpOypJXGo9JXRjUiI4cmtKNXEhUz0nRi9QUHM7QCcqLCpHZ0svT0B6PF0jQkFMQFUnb0BScExuczlZa0FDK2dAQFczQUNPSQogICAgICBDO08mLTtrUGlkbS1wWC5cWXFydzVXeWNuJXMnW3p7UChKL09bLXYhN0l1Si1HTj4xYy83RytJWU1jQzFzelh7MnV8JGR3Xm1meFZbI0RfJVsuYnoudGFpNmZkYXdQUk0xTndUPTYrfWleRXpLZgogICAgICA3SWg/eTVbUUpdLzpyQ3UxNldASWVBfFRgbCg+XFNce0c1biF8Y353Lj1jTjoqZCtNWFxpajRgcVxJJWBxZ3dLKDpcRWNUbD4lRCZ0XUxuSFk4TTBRRzZiJ2BDOnJGMUUmTS0jNVU8eHcuTzpnJAogICAgICBVSTZsfWpNKlg6Y0BWeislIXl6IyFHYHInUmR4ZyhmRFNGcj9wRFZhJDxXO2hbJlRcNiVFXHtfIz4+MSJONzhEPXNCRDdWN3dyI3ZvezEnLCFZZU1GTyFsOmoofCo5QkhOcTFbZUR4TjE3UDpwQQogICAgICBPaWtWfHBtJUw6PDx0cjtlfDZGX0U6Kmcrd0YvOEEzLjJOQncnVlZSMCJJO15ZdG5lOXM5VEFndFhmLiVHL0FJcEpmRCs0UnBmSD5KJVlpWWpjQElXbk1jLlRAZEJGJHxnNWhaUWpDMGd3YWopYgogICAgICB6c0hudmYsallBYTJ2LkQ6ZnI5MEhsdiRKa2dCWXt1SVY9J0EzUjNwajhIcGJZdSxCdzN1YGJmK2tiT1teaDFiNjAmV1NUSzJIaS51Yy0ia194fCRdc1o2YkJ5PSdkVGY/TWFHe0xCWGVxJ00hWgogICAgICBhaDcwbnteWGlmME88aX1gIisqb01zfl8lW1NkZS59VipSKlZ7TjdDeHJ1Y1tRMSFNN1E/MHYqJTkmVDVBNVxuKiUod1dxPFBLYjlyQ1BDXixycEFVJX5Del1VfFM7YERTeWkib2N9MWohdUoqdAogICAgICB8MzlqSXM0dzFAaylFVFYuXDllL1pBaStceCtmS1c3YSRfayY3VFxqaTFVKEZXSHRMcGA0MHBXPG86PXZYaW0oQVUxMHxsNzN6Tywte1F0VTFlKV5KSzh2dzI5JSU3XXopb1BBRkZHd2wjS0woZwogICAgICBnK2RxIkxoYWMwTStFJCJpKWdPVT9CcCl6eSEqVyYpKVNlSl19ZUZrdD51e208YnBhKDlJNEJqXG1BNXJiR1AjPEdyNGd+OUlbW3g0TTRCNEJAXjlkOmU7cTdMMG9YK3FiemEkXnY3QTZMWytNLgogICAgICAjK2h6TCpvazp1OlJsNztWX0daPHVraXxQT1E0c1FIMDlcSjpdZCljUnl5J0VhfHtpX3ldJDQifmN8JSg0eXZ3XjA5fWZhbVZcclJALXw6cSlzLV47O0csNihfXScoQWV0d2ZFXGNuVy88OjNkWQogICAgICBbR2JjKXZwbH57SlNmdX4lfTQlKSYmLnZWXlNfIidRfXFDe3pOUiFfOFBvbClLJDEifiRUfmp6T35tRHpqPGlDTk0oXSJiKTZdbXZSTCNUaXlXYjsyOVRvPnVOXnFEc2VIZWE9bXBDfVJAbFBHPwogICAgICBEJ0haPDBPZC1Lail2USIrNStlSyIlfT5YcnYwW2c5R0J7PnUhWWBfRUwkYTgwLDp6Y0JFXW4sWicqfUUtW2diJ1h9X09meTVfY3NsS3QmaEJJQ047ITpdQWR1LEFpWDRzNFk4eWk5ZmpCPlpkdQogICAgICBqPCR1STl7bSN4dU1gWl1rQF9ucyxMRnpPODMvOz5CI0U3bzAzeVYmYURZNm5jMVddMVJER0tPK25HQFpkbjpObTQ+eCljPlpoLDB2X0MkZXZBRDsuOmgqP1JBPVI2Yn1hZ0g0KXVGd299KHMsZwogICAgICArPEcjJT52MjhEWFA4J2FJQjclIXhObSdVYnEwcEM0SCd+VisuK1A5Zk9IXTMvbyZ0L0hCYlEmTG91Ok1OOSF4ZVdAWlh9QS1IaGkzXCohdk88TGAyQlUmNVtNP3lBNHEraj0/U0xBTC8sYihtOAogICAgICAvYzxKeHF5Tn5ffGhSMDQiKDEib3xOflJGKl5Idyw7al9aU2lcTW1GfCpFXHRXdU0nbWg6I2huPV4rJXJZSD5KLj87Q0hBZ24waypiZGNPIT1MMV1CLE81XyNqbnd6J0FBOyYyXylxSntqYG5OQwogICAgICBAQVRgZXdhSHpbLDpQenZ8OW13cEQhcTIyLEgqbkNtXl5PPS52X34iUXx1ayEqUmUyQG5aYnkiV0VmWixSVSFXRVlTPGInKkUzV1s4MV9+WjM/IjdeTSpnbk1qbDBwfGRTTF1vLD9NcjtdbEJ9IwogICAgICA5TzBzJEhtTVo4RixEcXF2dF8rVS47ZVE/MmZoZ3dYK2VOMlhkd1t3Vzk5SH1vUjlOT1pHWDU9P0xcdHlpKktLeDUlX012VkRFQS1HKiMnR31Ob2U6cz9peVo5NFpWJGJjOSMtYnJeSTRnKFlGYwogICAgICBzQHFsa0NreGdqXnE5bypaSVc+OVIyUTN9V1YzfFRxS1lKRiYqIktdLyVPanteJTwia2NlYStlJy05PkRuLHImQVlyO0BKLE9DLkpDLHUtYEtxRllIOS1rWWojO2IlUSM4YXpnZVpUXzpRZmB5eAogICAgICB7U34iYE4hXzFcVmk3PGN5UHF7UVhtRip5OERUISsuXUFOMj1pRmg5ZmZ9cSZ4PkVzbns4RmBYVi91cXRcOEhSbmo0MjA+eTg7dSV4QztwMTZLNDpgSG1NbzM0cDlqQWNgOl4/RSNLOGM1X3B1egogICAgICByQy9oM1wrXHo1Ym84JzItZSJTJ2ZOSV83SlpFQjcsO05IKFp3OHFpIl9aSDFcKFIqMDdncXdCQTBjUEgka01qI1VUWHM2eGtcWGZiN1RDYVovVkxRaV5yU24lW2wvKHE+LTMnJH5xPGxENm0rOgogICAgICA+Yzo6RiYsLXk4b21JZWFfdkZsTzQ+eCw4UUhQTWIoV146Xi1WeDE0OzcoJ1N0PX5gP2Q3a2dPQmVJb05udGlDbl98WEo1TlQ3UmdKOWNcTkEyUEI9VD1ubHRrTlBab086IWVxLlRpLz1raU90KgogICAgICA4NjhWb09jRD5jTEh9X0QqcFxBY1E0fWFoe1tAUHFbXFhcYkErZyRUXmZ5LzJCOSspKmV6cVtxS2c1YSQyTjZtO2NwKnNOdXgzZyU/TVwjXStiXW1maktuIjw6aEdQQG9wWUwmXFtxNXlPdjglTgogICAgICBzYyhcL1UiMEFjU0Z3PEBQTy4wOUp6XWhrSDhJcWlTajFIXXB5OyFLJ2JuYEMnc3MweT1qQjtuKE9EeDxWU04ubUgiJCd+ZjFaKjAqTkNAcHd8VT8wO0okXlBXZXsnZFYsfHVlfUo+L2pMNTA3dAogICAgICBgYUEubVUudFUqd3ZSLChEPXhHMlp2NWM2RXB+ei1qL0I9cXApM1x8ZWFvSHBTSmoxe2Q0Mz9yMU1EMWJyLXxiZFZycU05Rj5tWHtdNUQ1Z110UDU2Kl9XREx3VS5dSmgrOjVtK0BxWncidWo5RwogICAgICBwZi5CZW16XGRFWk8xOTgoLF9zJ0IpQjNRJGw/eVtibUp8LFwjZEdzW0AvXSZdVyF8WmhmWFRRJ0JXODh+Yyd5VWJJaFZydismJE9+NUxcST10Uy0lPTJiVmkkMToiLFZGUlN2Tm1kPix3PG9mbwogICAgICB+cmI2fSd0MGMmcUZJaDB5OS8xX1spRkpKZjZzYiVpdEcjQ1M4YHd1eiQqWiVLSGIiKTBEIyxKXG4ie3Bycj1EeVdyOjpEaHB8LVM/aSJXT1VweCJAMiFzWTM2UFVDSHB+VGQqUDRPfFx0I3Q2fgogICAgICAiK3s6O1F0LGh+NEN2Q1JhR1dvKmB6L2YscSh+MThrUTVKWG1cRlw5IXloaXVTNjkkbTFiNiR1b0Z2R348YTtBLnZ9cFZWZFkpPi8/aWAqcE83YmNcR35weEBKcFppZH53YydQcTxlXXs9XVt2YAogICAgICBwMGdLaGw7Z3dyWGxvcH5aZCtYMz0zWi9+UzxDSkpmT3N2dzAnNn5eNjJxcm1BKjt4W2I6JjRXamtSXl1nRkR1W19vVlZgZzs6e0QpVitgfHQmQ1wqXVdlVGczKDVubjE9JkE8IkxffjVTTkgoJQogICAgICAsd3h1VjtDNTJWVjt3Xl4rZlB5Xi9EW3hudmA6XXslTXwua1UoeU8ndEBYeFRaKDJFP2Y6VHJ4KUVEXXR2fU4+XGV+PjtxYDlPT2RkbHVXRUJobVNzXzxubWt3KEctPVtyPUMxS1EyN2kvLH1DcwogICAgICB0X11hXHpEXkg4YGB+TGp1ZjFdXXtHb2hHaztdUl1cWUVjJSF8WUNZankqL2ZdSVFcPTw5QDI7XUFte0ZcVWM1Ykg1Ny5IXyxRIitZXzFmb3A1PUNMZTozNTtybStJRi1zfkpHOUsmNENwXkhlIwogICAgICBzY3ZiazVMOXZYZXN5UC88XTlHTi1TMW1EZHtvM344bzZbcWpwWyUnNV4+R1kjd0xqSFRbb35LODxlP3JxMkFzPjpaW2JueGgqNHFXViQ4XXJVeE1gfERHYlBaajNsPHN7OTd1ImtqYCxhPWslZQogICAgICB9dlw4bXJpJVsnc2dIR0piUk5IbDFpaWwkV3FmW20jKFEzdFgxVCYtK0tTRkQ9akU/ZXpMOVoyU1UsZUlnST87czE0Yl8+PF1VZHU9NSpCbzJfeTY4TltJeTIhUDJKTSdGVjU8Vl1WMTBxfHJEZQogICAgICAtJ1NGdihvTi8lfEBgZnU4OXZxezpQJ2Z9d1MiSzlfLURte18+I2kiYUlJNHQ3UkRCbj5fZWglbCphJT8mcE9UTU4tZHIlc1x+KEh7dmUmN2IwU1tcM35KMT1JJ0RqfFlLcHReYC07WDZVSmhcMAogICAgICBFV2VeLjptVWRaP18/d3loXUZDTkYnYyNrUiwsdlNzdWppYVU4Q14nK0MqbVcwPjs0ZmtLdVdFYTVJTCEuLWdvc2d2PnNbay8/QiNbQUxrLTRKJWZQT0NkKHoxK1EuSSs/ZV1PQDRSJiZAbDg9awogICAgICBQVmpmb0x+VS9sei9UeHRsR28sInp0XkxaXVM+WilbMGIqSkJzWCFvUV13WFgsOVY/Qi93XShKdEJ0LDBUKCNgZVFeSyJnRSFYKzFHbFNgPnVxWjkxbXFbeFdGYExpIWIzenVjck5VOn5XVSx2ewogICAgICBDJy9oaGRfb2gxIVxfYVV4XzVNY1BcQUdpL3laPiU4MlxgbTNEaVc6KmB4Kks1fGd4MmN0TXInLiI5JEFBak5PQCVkWSFwZ11TelFgNTs+MntbSH49VnREX31mU11dYS9dM2xURHN8TkJwaGA2UgogICAgICBTRjROIzpxJmFPJj54b11yVE8wKGh0XFckO0E3eXQicC49MHJZPlV0SWxFIS4lPTpxMHVeVGclamMhYHZyOntiWUl0N2koeiN7eXhVJDxZYnwzZSJeOkdVbHg5bSoqNSoiXDVoWmBdc1UjN2snQAogICAgICAxTEFLUkE+TH1ZbUBeaTAqcSxeWEpJLEZLanZ6Ul9ZMUdwJ102MXx3SHE2M30rM0w6ImR3TFNQdTMsWiJ0OjlifllPPHRtd2h4UiZgdUF9aF4mT3lJeTM2SUw4blQ9JVckIjBtXl00Kk8heCoxUgogICAgICBAY0hZPGJsTnQvXyRJU25ielVMTT1JSE1xTlwra2QteD1xSDVbLidqZzxDak9sUkJMTFdPdEMlQWUzQkh1ayRZTnFbLFt9Wng3QjA3fldkTmRqSl0zUSRvSk9dNmBcfkx4OFxxJV1uQ01WbmkyZgogICAgICAjSj5xdi9GSzE5SjU7L1J0fHwzPX0zd1dxfXgxfG5neChFaW9kLDhOJiNSdEdYSV8wWi5mamlHaCQlPEAqQCFjIWt4SlJ9cDImY18rKl9gRE5BLUE9YFREaj02KDhSaSVRVVlvSyMyd3FMUDJ5fgogICAgICBdeklrOC82TEVJelBocl16TU4/TXhIKm8uOD1ELXpuU3s0IjVuQiZ6LF90JmJhdSddQ0MrVFFwe3RCbTR8U25+Yio+Sj1Bd21KXDosc2RzOUUiaTd9bVFQNEN7Y35pVmpmQ2pIJEJGYXFCYlZrKAogICAgICA9Zi8/YUM0XEI6bS19KUEseDkjdXorS2tQQl01M2RKZ2M+d3JuYi9yJjZCLU4mXWJ0QSt3YEx2ND5yOS1rWDVeRU9XWm1OaVsnLVJseWUsZ2dRJiMlb3dffFl0J3IrMlExQTl0Jl1QdnVsJjBQVwogICAgICBYdkEqTjdZVntxZ0l6I04uOnAmJjloOn10SH1zKXVAdlFtQis5eCldSTR6NlIvTFhkdSFXaiElazAlOGBObTp5TzlVMFtBU3ZPPEteP0ErW0MmVmlqOzs5MWVhNVppXic8KFddYXAiT1Y8JmdXWAogICAgICAkbWJeTDMrJTBRcWInPWw5PH4wXj05XmAkJVt+TmwhaGJAZ297Vj5MXyhqKSxdPntAZltHc2U8L2s4XCY5KVhgXTdBZEVrR3RNNm9lX2E2bjVkSlJ9czR0MEUsWV5HSns5VTNNWllHbDFMTS5XLwogICAgICBPfllhfXo/Rl4uLUByaENRPTAqbCEkbl1FYmRrLSFTMixreU1iSVZoZVR7WScxe0V4S348OXJQbWlZPnouZS58amVMTiEjRT1jWCkzTj9adjh7YlZ4WiIqaGxSWTo7SyJoWWcoZ3U7ZSZKQS5JfQogICAgICB0YEYscT5pNDBGaz1KcClQfC1+Lnc4XmAnRFV3YXQ+cTxnY0p5KS01K0IpI2N3e057dUdrNk5HMEcrXnJeRH1HcmlLNThJZUReUDomaEpubCQvUHRsJzhUVEg/c1tBYVw8enJ8azQmUXk3PExrJQogICAgICApVGMsNHRRPzkvcj9UeUU3TlVpaEJtNSxNfTdCeUYrWENWLjdHOz03QDc/UFA9Z2RMZmIjUS9bVUQ/WlszVD4qNjFqZGhVLEQvOXBZXj1VVW5TTXE+UigvQGlqUFEyLWgvNmBNJkNkWFciWixwWQogICAgICBiRSg4XGRGInhCblVoY24uZ3xdVChhbSlwNS1bWShHfiw/Pz5baVZeJCYhVHNvUDhlPGMpRW48bSh7aD01aHtRNF5KX0JBW0RKdSNFeGJee3w2O0wvMD5YXz5aJmMld09QKyoiX3chJ3tqYmpheAogICAgICBVdDhbbCQvaWAmWks9PWFnMUQoV2tZdDcia3ZMLWhrL1siIy04cz4vSktQJ2YiSEJzPDBsNUVqNHB4RS5kLzhWZz0lPGU2R1VaJ3g8LSJ0KmElKkZUS1tFSV1sa1Y3ZCFeXXhsISdNaVxTJ1Q9NwogICAgICBtOilFWUJvd29zKiJjJlV8am5FeilfNGcsJzZ2NE1Ma1QtVlpOY2V2Qn1RNH1MLjdJPjRCOllrRTY+Wy04Q0U4YEsnYH1aMTBVQmh5c3g0bDg3JjpwdzNaQE85X0UyVFMvOU5QdUF6c14wXXZsbwogICAgICBZS3VnJFd4en4zXV1MJHotMlBre1QvcWdMekhyLS4oNnBrO1QwLFxKQEhvNkEhQHBXWlNzVEtkY0J2YEQqbFxYZGIpQz0wdjJcaExCXlhlQ0ppOiFuczpseX1QUV1nUHw5RDZpIidJeCtEd3NuMAogICAgICAkMDJYLkw9WkJAP1pHKWtPKmJ5LFtcbnRzPShPTi0+PGQ7by5xej9NLU5oalFpXkxrYjJLLC59I3BwUklXTHhkd1tgeXdPdykySUtTPmk/MSdMfj8rb3lZYjU7STJzLTlhbTNkXEBXailSd3pYRwogICAgICBObG1Na0cxcnl0KExrd3F2NHVlYXleR1wlPCsuLEJhakQvcEVbdihDS2deMy5TJVNjKl1YLV11T2xbNnZWTmpxamMnc0ZramlndVM2P2kuQmVyPHxGYTpIN3xya3RaOGVFO3dgK0V8RmBNXG5hJQogICAgICBFXjNbUn44N0M+bzJGXERrJzxDJzotWT9eTEY4e0spTT8uOzU2fCt2TmkuW1V2MjlKXC82QD9wQnldc15jLHxEIUhObDJ9cGw7a0A5S3x0Z2RsS29QcWAtNyR6J0FmOkgofEwjZm5iLE9xPmZUIwogICAgICBtUjRvW2IpKHp4cGoxSVohbWNQUUZFTEpfO0ZILzloR3YudlsmTmdpJ3NGZDQ0Vn1BW2tVcVh8czs8VyM9SVlPdT9aS1VCbEBYczhIbTg2KHhkRTs1dCl6dS51S0FIWjovXGBsP3k9QCdQXndvPAogICAgICBiXHl1YS86LChnfFo8JzIucm9kVnQ4ZkVINkd9aGc3SnRrJi5nKTwpJTI+LCk4LUNUSyMmRFFpKVBYY0wmc0pabkgrLltwVCdMKjEuXWVlWzpuJSNreUkqaTxoNDAqJkBgcCYlZXooR3t1U31RdgogICAgICB1Q0RgWS1NRDsqUFtkPT9MLER0JkV8Lj1IXGJwOls0SFEsXSp4ZilNP218UHdCc1FnInkwNUsjTVpiLENZdTNeUERiZTF+KzJvc19IJ0YjZl95QGlxcTt+Ois6ZjomL2heLCEkakBkWW9OcC9COgogICAgICAzL0BBXStoOkR3SEVYP341MWhDWEBtJzwqSmVjUFYvSW88OXdMfS1tOVhbP2p1Xn5zYTVoZ2ZHOStCbGhmeyU7ZEpKRSJFJiFfUjFaUFsyOFQ6Q2QuWC9WI2gySTBaS09iVndeNns/VycwWURSWQogICAgICBuRTBSNEZzU2VrZSN3Kns8LzRfayxeb3t7TDxzeyhyPXF9VGA5LHA0d3NOI1FWKnxVXHl4NTVHKiwvQSFkP31WLS1LRmt1Rit3IjYvQDFdUHEqKEZiMGUhe2snQDdSXDNFOn5SVGphQnJvRil3UgogICAgICBhM1okKissejl6SjlvaUNmK0gudF1Wbz9taFI8PSFyb1gyM3tDbT5sRVlnZ04mInIqQiljIktHVWs1bCo6TTosdSQxclo+W0M7eD8rWXRLSzpMdmdLMEdgUmM/dC1UNj5OOCQkbGlpJEcmU1AlMgogICAgICAqWSlMVXxQU2YtSXElZX1yPHA6cV9uPyZpbXskc1B+OlA5LU4tZWBnODYjbnl1OUAsQHMiWy1Mc159Zmc/TiIqQjZ1c35FMFQzanUrbCtyc1RXQGpDUDFXd10oI1JPWCZ7Z3o0KyFaQWhjQXZgJQogICAgICBTUSVmTU5VRU1zPF5MajRbXE52LkNOSm0td35mX15zZ1haNnshdmYxU19xUUVtYF4rKCQ6ITgiMyolaSxdKGNqZD1YOk9qPX5AL01JeEx6c0dPS1V4S102RUltaU9BbWYvSlV8NGdmUiRYbntkVgogICAgICB5c0JRcSJAOStIUmNzX3RrZn1KSnB4d0F4c2VpWEc6NERdQlpfOXdEKUNFbWpXI0g7fldMYG09TGsnYiJWPDosIjV4UzYtYzhvVVEweyk9bywvO1t3aHRcSlE6cVp1IjNhfkF6ZU1eM2k8JWZ6awogICAgICBkRls9QHtyNCpEMmAkLHFZNjdKJlQpZjZTKDx0RlRMXENGJjlUU3hbNHF3MUlMUGJqOScvS0RxeHhrbFAqXzxxY14mXkMhImEhbVQsQDt6cD1ze0YlTyw/NSxPeTxTJEh+ZVNvI25lfjJwa0VScQogICAgICBUdlo4SEw5ZkonUSgpbGthSWtiNyMjVC02d3A/K1V8S2RFM14kOGo9VD9rSVRgM0JZYVV4RE5HPW1cXV85VnxxMkh5bDR5T0IjQSNBIVlnMipbRC0hU0NIUEJgMUBpP0gyLE85MCZObVMjSTQreQogICAgICA2QCVQMyFiKngxXEl3d1xJKUwyXjNDYTlaUjBgTic4T01vPW06ejkiPD1pZVFkLlktI1gvKWk6Y3k1Ziw1LW5tSXlGbX5wfV1TIzhtLl9qJDhEXHU0bWcqVUp6Rj94PVR8O3RPazx1YCJRfW5LMQogICAgICBodzpZfHlpP2JzcTxoWXhaM3RPdmU7OThYN1JlSkROWytfUjNiaUAhdEc8VXd4Pk1cMGptNDMmOnpGaFhpTUF2XSNraXIlRnE2ZHhTJmF6azt0OnZ+VD8vYSJTXHxnNTpkciZORW43QjtDU1o3WgogICAgICBnbnZ4JzNWN0ksdWw1L3EoR2NhPnx6VEFLfD81a3NRWGh2Omc8OG1uXUF0SXQ8V1pTPFh2ZSo0QE1iLEJbM2xsfj00NmRXTyNhdC49XzxoR35ZUWJpOkdaRmwxaXNqUWFbZEpbOHRzUidwRUwlXwogICAgICAvJGlHQUVETzd2SlssXi0wdC83NCpXIV0xWT8jR04uTytbdWtJIixHZm1xd3FiaVZJZEMnfnxLVEJIN3dtNGkoKH5IRCMrIlNTKlEqJi5ubjR2YVBvNSR4Kjwxc0B6Z3spRmNOOyEnNGtweXBjaAogICAgICBVOEZnOixqMWciOi0uS2VbeS9Ga1dJK3h3Q3JfWkJ0ciYvQ25HM1wyK3AmTkRzSWhFIkBJSk5QLWFje1tTVm4pNXJ6TCY5I3NqM3p+cWdHYmtqXi9nJHRjZ2p3SFk3XEhyai8nQmo/bHFOQ1pDZwogICAgICBtPnBUIlBCZiFscGg3RCxjIyFxeyI3c0VVdFQpa3g+dD5wdkI1PzI7Ly5BNnhXI0wjX0Z5VEMmIUQ0PVE9cE5ufiQsfVZPUGtGJVBqYzw/VDEvaz9CLiEkTFhuTk0yaiFZUitDYVFWKFYsX1xcbAogICAgICBSPCwhS3x8NHpCVSx5IjNwdFRtblBOMiNiKDVacjFRfjleJWkqSnRBbmduTnk9REguQDIvUG5LJldhQDtEYTtBUVxodjtZaEhFKn1SNX5wWklVTj5tWk5KcWFHKFUxMzx4aV1PcWF5SnxsNTJQLwogICAgICBCOFRXYi4tbS1SUGQiKzZtTyE5ZVdycEppL3B4emN8c1NkRWVbPUJ6WzZMZVR9WH4qVUZYWHBfLStdZEV5SDN1eHhHLkEjTXN9ZE49QU5eW0dxRTtQXWF7TDdvaUN3XUVRXERiajMsO2hrR1Q8fQogICAgICBid3BURD1gOEB+djtYczRFY31hT3M6RVxKXUZWSGJidmR7YHltLXhKYWNqUkIwKCNOUzJ0OWxTWE56TG5IJmVJfXlEc3MtQUwkYSsiVzIiNmRpJiRweCpkJVR5dVdXZ2hTY0I3WkpWOUB4YHVpRwogICAgICBDSDxRZH5+dkgjWX1JdEw2emZ5cSIoJCwnQCVcO1kvT0I1R3NfZkV9PVVIV1ZdRkQne1kjSXEoPUc6RSlmRVZWQEQvaEBkIyxdVFpHN0dCak1JVH0+TzklQFluK3B2JFhEfSp5RHEyMW9pJXA7WAogICAgICBwaUViVElhaX0mKyZZVml1RCtaYD05SEEjMC8hMiJBc04vI1JCcyhbV2R3WSFKaXF1IyEnOjl0cCxKdl48TkYrZzsiJkxbdSY6OCY6WH57LSRUenAhYj0lJ0BvfUUzI2FHdGxJPXg0fjFCQkBqdwogICAgICBeeSdkeVlba1pgU3tHXkBiRyc1LTd8Z3ohaUIkPVorYCVsLFZdTUNWTylVN14xe2giTzlGYGpFbTNZeVckZlEoMlouZCNKWGcwTGxYI2MiIkxuZFlBeTlBcXwmSVx8PltkRGh4J2o4RnN5YW1oNgogICAgICB6JUFJeDoqbDw8KnJXWSJEXmI3QzRrXiw/L14vbTRIaSglSy0xWlV5TThrQ3pOazYybDx+SGxSZCFTOlMrOUVwZjRBIVglJjNrSWNjQnUsVDkmTmUue0xraz1pcGAqdl1WVnlIIXBaYk41MUtUKQogICAgICA7N0dnaGdJeVRRXklqOUk4JlxtcCxeanNeb3Y5TDk4Ui0oWD4kJ2klOj83TiEvVkt5NzxtUU5BUW4vc0NEXl9MOHE9TmtKVy9KZlVAJEBAe2VyTER0S1BDJ0FTNiEyeUBaMzo4fXMscChOYWxodAogICAgICBfWUVCcHpYMzFANScxV0NWez97YTB3clhLei4vdU04TGkne0N4NklAK25tKVpyOSRUcSliSyU0JV5AImBLfk9lJDU7SygqL0g4N1otWFIzRz9vQT1eWjgsYy1ba0tbZEcsRi9QOVl3UU9WfnNPYgogICAgICBgY1c0eW09QzxNOkJUIjcraS47YUBCNiF3TndnWCoiPDlkUzJuTT5SeTZJYHl8YGdyVUFBckhSO21hcTMscDIjVWhHT0FBaGJgQVVkVzJVM2hLMXsldlBvNlp0bzAwOWBLXWRBL059RmFufGpgJQogICAgICBoOid4YVcoQGA6bEZ2Rzt7X2A6ImsnXUVVbHJWP288USV8e3tMYD5peDJbUFhoL0BffF9rR1FRckE6Q1FCUlBtM11tTDpZPHRQWUhqRTtJeXtnWCdSbVtFKyppLSckW0FsaWp9ZGlBMzBySCtULQogICAgICBpcT9WX2tzMTxfUDleY2teP1ZudWxhSXpAfjh6YHBJVW9qI3NNaXk7SlM6OkQqfk42P1REY2lCQFEoOz9fIlt2elpMLTkhdV1MXyt+Y2E5TWJ1VzFeVz1MS21gQ2p7SjlTcCdEdm58WWEwJFhwQgogICAgICBGTFBxdjtkbXFrOyZHRV55JkUhRS5MPGgqeExib2shWnQ0RjdEOileJkQ6Y1kzSzRza25IbXE6QXBRJDdHcXRidy53SURVaXVlKHV3RE45T0hfQmMpPVY/XyZ9T2ttdVovdV0jYjNbXzh2KTVlSQogICAgICA6RDNtfSddbjQ1UzZKdHQheSdPbHN+eEcyUi18SlI3KUVQcl07bSEnaSJmXT4qLm1oQ0AkPUA2bm91N0VYSzZrdGUmfExvaTFtXDEoVnBIP29ge1BxeC5EWF5SO3AkTmw/dzx3UWR6SGJsNlszUgogICAgICB7K1h3Ymd6XFRjJURyJFdwOWpyL0Jibmo8WUYmN1M4aXUicSg4flUoPScncS9uIUNoT1krZ2BHejBkeHw1bjxFZSpreV88Km5wUUNAXlJ8K05uLl99JWxQYDRyIkQpTDRJL3lUNSF0JEEwPS8mUAogICAgICB9ZS5IZURJfVp3VVpHNl0lUGd7T1ljKER9NmtTdXZ8NFtUVmxTITxfKWwlVXZ1el5DQ0JzPjpgMzpvJWswV152KngqQGxeK1NgQnBOeUs2ejpkZVQuc2BOY0srWjQzJCd1P0pmRDwySSZfPlEhcAogICAgICA2YnAzO0FLSW04MSJnemZhfVBQUUFuZkE9UC1Hbn19OEx9SFpqak0zJmcnL2tNRGhQImNcPVVVPm17UG9rIyReLlQufixKX0tCbF1lelRKaU9FJU5nKH5iVipodDEnS3ovYEZiYls4blolJHV8IwogICAgICBfRzQ6al9BYDRJeEoqRlQ1TiswOXF5QmJmTkhIJDlYZWVwQDhtXUM6VHBsV35xcTRhLUldbWUrd0krXyd5PU1HcyorXjgxMzhOa3k8SzhaaCs7WSNPNFNwTzVzKHFyWngyaHkmKlpNc0dBYXYkbAogICAgICBaWGNGZ2txIidGeTFZJjEoOUpVZH1PY3NlZmBxQE1xaHA5cUYsTCZiWiV7ZkpNPzs9Z087XTJDLGZUQyE4TikwNkUzPnxdPV0sCgp9CgotLVtbCgpNSVQgTGljZW5zZQoKQ29weXJpZ2h0IChjKSAyMDE5ICBFZ29yIFNrcmlwdHVub2ZmCgpQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Cm9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCmluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbApjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKClRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbApjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQpBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCk9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFClNPRlRXQVJFLgoKXV0K"),e=>e.charCodeAt(0)),BC=Object.freeze(Object.defineProperty({__proto__:null,default:xC},Symbol.toStringTag,{value:"Module"})),yC=Uint8Array.from(atob("JSUKJSBDb3B5cmlnaHQgKGMpIDIwMTcgLSAyMDIxLCBQYXNjYWwgV2FnbGVyOwolIENvcHlyaWdodCAoYykgMjAxNCAtIDIwMjEsIEpvaG4gTWFjRmFybGFuZQolCiUgQWxsIHJpZ2h0cyByZXNlcnZlZC4KJQolIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAolIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwolIGFyZSBtZXQ6CiUKJSAtIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiUgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgolCiUgLSBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAolIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKJSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgolCiUgLSBOZWl0aGVyIHRoZSBuYW1lIG9mIEpvaG4gTWFjRmFybGFuZSBub3IgdGhlIG5hbWVzIG9mIG90aGVyCiUgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCiUgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgolCiUgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwolICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiUgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKJSBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQolIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKJSBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAolIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKJSBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCiUgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCiUgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4KJSBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKJSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KJSUKCiUlCiUgVGhpcyBpcyB0aGUgRWlzdm9nZWwgcGFuZG9jIExhVGVYIHRlbXBsYXRlLgolCiUgRm9yIHVzYWdlIGluZm9ybWF0aW9uIGFuZCBleGFtcGxlcyB2aXNpdCB0aGUgb2ZmaWNpYWwgR2l0SHViIHBhZ2U6CiUgaHR0cHM6Ly9naXRodWIuY29tL1dhbmRtYWxmYXJiZS9wYW5kb2MtbGF0ZXgtdGVtcGxhdGUKJSUKCiUgT3B0aW9ucyBmb3IgcGFja2FnZXMgbG9hZGVkIGVsc2V3aGVyZQpcUGFzc09wdGlvbnNUb1BhY2thZ2V7dW5pY29kZSRmb3IoaHlwZXJyZWZvcHRpb25zKSQsJGh5cGVycmVmb3B0aW9ucyQkZW5kZm9yJH17aHlwZXJyZWZ9ClxQYXNzT3B0aW9uc1RvUGFja2FnZXtoeXBoZW5zfXt1cmx9ClxQYXNzT3B0aW9uc1RvUGFja2FnZXtkdmlwc25hbWVzLHN2Z25hbWVzLHgxMW5hbWVzLHRhYmxlfXt4Y29sb3J9CiRpZihDSkttYWluZm9udCkkClxQYXNzT3B0aW9uc1RvUGFja2FnZXtzcGFjZX17eGVDSkt9Clx1c2VwYWNrYWdle2RhdGV0aW1lfQoKJGVuZGlmJAolClxkb2N1bWVudGNsYXNzWwokaWYoZm9udHNpemUpJAogICRmb250c2l6ZSQsCiRlbmRpZiQKJGlmKHBhcGVyc2l6ZSkkCiAgJHBhcGVyc2l6ZSRwYXBlciwKJGVsc2UkCiAgcGFwZXI9YTQsCiRlbmRpZiQKJGlmKGJlYW1lcikkCiAgaWdub3Jlbm9uZnJhbWV0ZXh0LAokaWYoaGFuZG91dCkkCiAgaGFuZG91dCwKJGVuZGlmJAokaWYoYXNwZWN0cmF0aW8pJAogIGFzcGVjdHJhdGlvPSRhc3BlY3RyYXRpbyQsCiRlbmRpZiQKJGVuZGlmJAokZm9yKGNsYXNzb3B0aW9uKSQKICAkY2xhc3NvcHRpb24kJHNlcCQsCiRlbmRmb3IkCiAgLGNhcHRpb25zPXRhYmxlaGVhZGluZwpdeyRpZihiZWFtZXIpJCRkb2N1bWVudGNsYXNzJCRlbHNlJCRpZihib29rKSRzY3Jib29rJGVsc2Ukc2NyYXJ0Y2wkZW5kaWYkJGVuZGlmJH0KJGlmKGJlYW1lcikkCiRpZihiYWNrZ3JvdW5kLWltYWdlKSQKXHVzZWJhY2tncm91bmR0ZW1wbGF0ZXslCiAgXGluY2x1ZGVncmFwaGljc1t3aWR0aD1ccGFwZXJ3aWR0aF17JGJhY2tncm91bmQtaW1hZ2UkfSUKfQokZW5kaWYkCgoKXHNldGJlYW1lcnRlbXBsYXRle2NhcHRpb259W251bWJlcmVkXQpcc2V0YmVhbWVydGVtcGxhdGV7Y2FwdGlvbiBsYWJlbCBzZXBhcmF0b3J9ezogfQpcc2V0YmVhbWVyY29sb3J7Y2FwdGlvbiBuYW1lfXtmZz1ub3JtYWwgdGV4dC5mZ30KXGJlYW1lcnRlbXBsYXRlbmF2aWdhdGlvbnN5bWJvbHMkaWYobmF2aWdhdGlvbikkJG5hdmlnYXRpb24kJGVsc2UkZW1wdHkkZW5kaWYkCiRmb3IoYmVhbWVyb3B0aW9uKSQKXHNldGJlYW1lcm9wdGlvbnskYmVhbWVyb3B0aW9uJH0KJGVuZGZvciQKJSBQcmV2ZW50IHNsaWRlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgcGFyYWdyYXBoClx3aWRvd3BlbmFsdGllcyAxIDEwMDAwClxyYWdnZWRib3R0b20KJGlmKHNlY3Rpb24tdGl0bGVzKSQKXHNldGJlYW1lcnRlbXBsYXRle3BhcnQgcGFnZX17CiAgXGNlbnRlcmluZwogIFxiZWdpbntiZWFtZXJjb2xvcmJveH1bc2VwPTE2cHQsY2VudGVyXXtwYXJ0IHRpdGxlfQogICAgXHVzZWJlYW1lcmZvbnR7cGFydCB0aXRsZX1caW5zZXJ0cGFydFxwYXIKICBcZW5ke2JlYW1lcmNvbG9yYm94fQp9ClxzZXRiZWFtZXJ0ZW1wbGF0ZXtzZWN0aW9uIHBhZ2V9ewogIFxjZW50ZXJpbmcKICBcYmVnaW57YmVhbWVyY29sb3Jib3h9W3NlcD0xMnB0LGNlbnRlcl17cGFydCB0aXRsZX0KICAgIFx1c2ViZWFtZXJmb250e3NlY3Rpb24gdGl0bGV9XGluc2VydHNlY3Rpb25ccGFyCiAgXGVuZHtiZWFtZXJjb2xvcmJveH0KfQpcc2V0YmVhbWVydGVtcGxhdGV7c3Vic2VjdGlvbiBwYWdlfXsKICBcY2VudGVyaW5nCiAgXGJlZ2lue2JlYW1lcmNvbG9yYm94fVtzZXA9OHB0LGNlbnRlcl17cGFydCB0aXRsZX0KICAgIFx1c2ViZWFtZXJmb250e3N1YnNlY3Rpb24gdGl0bGV9XGluc2VydHN1YnNlY3Rpb25ccGFyCiAgXGVuZHtiZWFtZXJjb2xvcmJveH0KfQpcQXRCZWdpblBhcnR7CiAgXGZyYW1le1xwYXJ0cGFnZX0KfQpcQXRCZWdpblNlY3Rpb257CiAgXGlmYmlibGlvZ3JhcGh5CiAgXGVsc2UKICAgIFxmcmFtZXtcc2VjdGlvbnBhZ2V9CiAgXGZpCn0KXEF0QmVnaW5TdWJzZWN0aW9uewogIFxmcmFtZXtcc3Vic2VjdGlvbnBhZ2V9Cn0KJGVuZGlmJAokZW5kaWYkCiRpZihiZWFtZXJhcnRpY2xlKSQKXHVzZXBhY2thZ2V7YmVhbWVyYXJ0aWNsZX0gJSBuZWVkcyB0byBiZSBsb2FkZWQgZmlyc3QKJGVuZGlmJApcdXNlcGFja2FnZXthbXNtYXRoLGFtc3N5bWJ9CiRpZihsaW5lc3RyZXRjaCkkClx1c2VwYWNrYWdle3NldHNwYWNlfQokZWxzZSQKJSBVc2Ugc2V0c3BhY2UgYW55d2F5IGJlY2F1c2Ugd2UgY2hhbmdlIHRoZSBkZWZhdWx0IGxpbmUgc3BhY2luZy4KJSBUaGUgc3BhY2luZyBpcyBjaGFuZ2VkIGVhcmx5IHRvIGFmZmVjdCB0aGUgdGl0bGVwYWdlIGFuZCB0aGUgVE9DLgpcdXNlcGFja2FnZXtzZXRzcGFjZX0KXHNldHN0cmV0Y2h7MS4yfQokZW5kaWYkClx1c2VwYWNrYWdle2lmdGV4fQpcaWZQREZUZVgKICBcdXNlcGFja2FnZVskaWYoZm9udGVuYykkJGZvbnRlbmMkJGVsc2UkVDEkZW5kaWYkXXtmb250ZW5jfQogIFx1c2VwYWNrYWdlW3V0Zjhde2lucHV0ZW5jfQogIFx1c2VwYWNrYWdle3RleHRjb21wfSAlIHByb3ZpZGUgZXVybyBhbmQgb3RoZXIgc3ltYm9scwpcZWxzZSAlIGlmIGx1YXRleCBvciB4ZXRleAokaWYobWF0aHNwZWMpJAogIFxpZlhlVGVYCiAgICBcdXNlcGFja2FnZXttYXRoc3BlY30gJSB0aGlzIGFsc28gbG9hZHMgZm9udHNwZWMKICBcZWxzZQogICAgXHVzZXBhY2thZ2V7dW5pY29kZS1tYXRofSAlIHRoaXMgYWxzbyBsb2FkcyBmb250c3BlYwogIFxmaQokZWxzZSQKICBcdXNlcGFja2FnZXt1bmljb2RlLW1hdGh9ICUgdGhpcyBhbHNvIGxvYWRzIGZvbnRzcGVjCiRlbmRpZiQKICBcZGVmYXVsdGZvbnRmZWF0dXJlc3tTY2FsZT1NYXRjaExvd2VyY2FzZX0kLS0gbXVzdCBjb21lIGJlZm9yZSBCZWFtZXIgdGhlbWUKICBcZGVmYXVsdGZvbnRmZWF0dXJlc1tccm1mYW1pbHlde0xpZ2F0dXJlcz1UZVgsU2NhbGU9MX0KXGZpCiRpZihmb250ZmFtaWx5KSQKJGVsc2UkCiQtLSBTZXQgZGVmYXVsdCBmb250IGJlZm9yZSBCZWFtZXIgdGhlbWUgc28gdGhlIHRoZW1lIGNhbiBvdmVycmlkZSBpdApcdXNlcGFja2FnZXtsbW9kZXJufQokZW5kaWYkCiQtLSBTZXQgQmVhbWVyIHRoZW1lIGJlZm9yZSB1c2VyIGZvbnQgc2V0dGluZ3Mgc28gdGhleSBjYW4gb3ZlcnJpZGUgdGhlbWUKJGlmKGJlYW1lcikkCiRpZih0aGVtZSkkClx1c2V0aGVtZVskZm9yKHRoZW1lb3B0aW9ucykkJHRoZW1lb3B0aW9ucyQkc2VwJCwkZW5kZm9yJF17JHRoZW1lJH0KJGVuZGlmJAokaWYoY29sb3J0aGVtZSkkClx1c2Vjb2xvcnRoZW1leyRjb2xvcnRoZW1lJH0KJGVuZGlmJAokaWYoZm9udHRoZW1lKSQKXHVzZWZvbnR0aGVtZXskZm9udHRoZW1lJH0KJGVuZGlmJAokaWYobWFpbmZvbnQpJApcdXNlZm9udHRoZW1le3NlcmlmfSAlIHVzZSBtYWluZm9udCByYXRoZXIgdGhhbiBzYW5zZm9udCBmb3Igc2xpZGUgdGV4dAokZW5kaWYkCiRpZihpbm5lcnRoZW1lKSQKXHVzZWlubmVydGhlbWV7JGlubmVydGhlbWUkfQokZW5kaWYkCiRpZihvdXRlcnRoZW1lKSQKXHVzZW91dGVydGhlbWV7JG91dGVydGhlbWUkfQokZW5kaWYkCiRlbmRpZiQKJC0tIFVzZXIgZm9udCBzZXR0aW5ncyAobXVzdCBjb21lIGFmdGVyIGRlZmF1bHQgZm9udCBhbmQgQmVhbWVyIHRoZW1lKQokaWYoZm9udGZhbWlseSkkClx1c2VwYWNrYWdlWyRmb3IoZm9udGZhbWlseW9wdGlvbnMpJCRmb250ZmFtaWx5b3B0aW9ucyQkc2VwJCwkZW5kZm9yJF17JGZvbnRmYW1pbHkkfQokZW5kaWYkClxpZlBERlRlWFxlbHNlCiAgJSB4ZXRleC9sdWF0ZXggZm9udCBzZWxlY3Rpb24KJGlmKG1haW5mb250KSQKICBcc2V0bWFpbmZvbnRbJGZvcihtYWluZm9udG9wdGlvbnMpJCRtYWluZm9udG9wdGlvbnMkJHNlcCQsJGVuZGZvciRdeyRtYWluZm9udCR9CiRlbmRpZiQKJGlmKHNhbnNmb250KSQKICBcc2V0c2Fuc2ZvbnRbJGZvcihzYW5zZm9udG9wdGlvbnMpJCRzYW5zZm9udG9wdGlvbnMkJHNlcCQsJGVuZGZvciRdeyRzYW5zZm9udCR9CiRlbmRpZiQKJGlmKG1vbm9mb250KSQKICBcc2V0bW9ub2ZvbnRbJGZvcihtb25vZm9udG9wdGlvbnMpJCRtb25vZm9udG9wdGlvbnMkJHNlcCQsJGVuZGZvciRdeyRtb25vZm9udCR9CiRlbmRpZiQKJGZvcihmb250ZmFtaWxpZXMpJAogIFxuZXdmb250ZmFtaWx5eyRmb250ZmFtaWxpZXMubmFtZSR9WyRmb3IoZm9udGZhbWlsaWVzLm9wdGlvbnMpJCRmb250ZmFtaWxpZXMub3B0aW9ucyQkc2VwJCwkZW5kZm9yJF17JGZvbnRmYW1pbGllcy5mb250JH0KJGVuZGZvciQKJGlmKG1hdGhmb250KSQKJGlmKG1hdGhzcGVjKSQKICBcaWZYZVRlWAogICAgXHNldG1hdGhmb250KERpZ2l0cyxMYXRpbixHcmVlaylbJGZvcihtYXRoZm9udG9wdGlvbnMpJCRtYXRoZm9udG9wdGlvbnMkJHNlcCQsJGVuZGZvciRdeyRtYXRoZm9udCR9CiAgXGVsc2UKICAgIFxzZXRtYXRoZm9udFskZm9yKG1hdGhmb250b3B0aW9ucykkJG1hdGhmb250b3B0aW9ucyQkc2VwJCwkZW5kZm9yJF17JG1hdGhmb250JH0KICBcZmkKJGVsc2UkCiAgXHNldG1hdGhmb250WyRmb3IobWF0aGZvbnRvcHRpb25zKSQkbWF0aGZvbnRvcHRpb25zJCRzZXAkLCRlbmRmb3IkXXskbWF0aGZvbnQkfQokZW5kaWYkCiRlbmRpZiQKJGlmKENKS21haW5mb250KSQKICBcaWZYZVRlWAogICAgXHVzZXBhY2thZ2V7eGVDSkt9CiAgICBcc2V0Q0pLbWFpbmZvbnRbJGZvcihDSktvcHRpb25zKSQkQ0pLb3B0aW9ucyQkc2VwJCwkZW5kZm9yJF17JENKS21haW5mb250JH0KICBcZmkKJGVuZGlmJAokaWYobHVhdGV4amFwcmVzZXRvcHRpb25zKSQKICBcaWZMdWFUZVgKICAgIFx1c2VwYWNrYWdlWyRmb3IobHVhdGV4amFwcmVzZXRvcHRpb25zKSQkbHVhdGV4amFwcmVzZXRvcHRpb25zJCRzZXAkLCRlbmRmb3IkXXtsdWF0ZXhqYS1wcmVzZXR9CiAgXGZpCiRlbmRpZiQKJGlmKENKS21haW5mb250KSQKICBcaWZMdWFUZVgKICAgIFx1c2VwYWNrYWdlWyRmb3IobHVhdGV4amFmb250c3BlY29wdGlvbnMpJCRsdWF0ZXhqYWZvbnRzcGVjb3B0aW9ucyQkc2VwJCwkZW5kZm9yJF17bHVhdGV4amEtZm9udHNwZWN9CiAgICBcc2V0bWFpbmpmb250WyRmb3IoQ0pLb3B0aW9ucykkJENKS29wdGlvbnMkJHNlcCQsJGVuZGZvciRdeyRDSkttYWluZm9udCR9CiAgXGZpCiRlbmRpZiQKXGZpCiRpZih6ZXJvLXdpZHRoLW5vbi1qb2luZXIpJAolJSBTdXBwb3J0IGZvciB6ZXJvLXdpZHRoIG5vbi1qb2luZXIgY2hhcmFjdGVycy4KXG1ha2VhdGxldHRlcgpcZGVmXHplcm93aWR0aG5vbmpvaW5lcnslCiAgJSBQcmV2ZW50IGxpZ2F0dXJlcyBhbmQgYWRqdXN0IGtlcm5pbmcsIGJ1dCBzdGlsbCBzdXBwb3J0IGh5cGhlbmF0aW5nLgogIFx0ZXhvcnBkZnN0cmluZ3slCiAgICBcVGV4dE9yTWF0aHtcbm9icmVha1xkaXNjcmV0aW9uYXJ5ey19e317XGtlcm4uMDNlbX0lCiAgICAgIFxpZnZtb2RlXGVsc2Vcbm9icmVha1xoc2tpcFx6QHNraXBcZml9e30lCiAgfXt9JQp9ClxtYWtlYXRvdGhlcgpcaWZQREZUZVgKICBcRGVjbGFyZVVuaWNvZGVDaGFyYWN0ZXJ7MjAwQ317XHplcm93aWR0aG5vbmpvaW5lcn0KXGVsc2UKICBcY2F0Y29kZWBeXl5eMjAwYz1cYWN0aXZlCiAgXHByb3RlY3RlZFxkZWYgXl5eXjIwMGN7XHplcm93aWR0aG5vbmpvaW5lcn0KXGZpCiUlIEVuZCBvZiBaV05KIHN1cHBvcnQKJGVuZGlmJAolIFVzZSB1cHF1b3RlIGlmIGF2YWlsYWJsZSwgZm9yIHN0cmFpZ2h0IHF1b3RlcyBpbiB2ZXJiYXRpbSBlbnZpcm9ubWVudHMKXElmRmlsZUV4aXN0c3t1cHF1b3RlLnN0eX17XHVzZXBhY2thZ2V7dXBxdW90ZX19e30KXElmRmlsZUV4aXN0c3ttaWNyb3R5cGUuc3R5fXslIHVzZSBtaWNyb3R5cGUgaWYgYXZhaWxhYmxlCiAgXHVzZXBhY2thZ2VbJGZvcihtaWNyb3R5cGVvcHRpb25zKSQkbWljcm90eXBlb3B0aW9ucyQkc2VwJCwkZW5kZm9yJF17bWljcm90eXBlfQogIFxVc2VNaWNyb3R5cGVTZXRbcHJvdHJ1c2lvbl17YmFzaWNtYXRofSAlIGRpc2FibGUgcHJvdHJ1c2lvbiBmb3IgdHQgZm9udHMKfXt9CiRpZihpbmRlbnQpJAokZWxzZSQKClx1c2VwYWNrYWdle3BnZnBhZ2VzfSAKXHVzZXBhY2thZ2VbZXhwb3J0XXthZGp1c3Rib3h9Clx1c2VwYWNrYWdle2dyYXBoaWN4fQpcdXNlcGFja2FnZXtyYWdnZWQyZX0KXG1ha2VhdGxldHRlcgpcQGlmdW5kZWZpbmVke0tPTUFDbGFzc05hbWV9eyUgaWYgbm9uLUtPTUEgY2xhc3MKICBcSWZGaWxlRXhpc3Rze3BhcnNraXAuc3R5fXslCiAgICBcdXNlcGFja2FnZXtwYXJza2lwfQogIH17JSBlbHNlCiAgICBcc2V0bGVuZ3Roe1xwYXJpbmRlbnR9ezBwdH0KICAgIFxzZXRsZW5ndGh7XHBhcnNraXB9ezZwdCBwbHVzIDJwdCBtaW51cyAxcHR9fQp9eyUgaWYgS09NQSBjbGFzcwogIFxLT01Bb3B0aW9uc3twYXJza2lwPWhhbGZ9fQpcbWFrZWF0b3RoZXIKJGVuZGlmJAokaWYodmVyYmF0aW0taW4tbm90ZSkkClx1c2VwYWNrYWdle2ZhbmN5dnJifQokZW5kaWYkClx1c2VwYWNrYWdle3hjb2xvcn0KXGRlZmluZWNvbG9ye2RlZmF1bHQtbGlua2NvbG9yfXtIVE1MfXtBNTAwMDB9ClxkZWZpbmVjb2xvcntkZWZhdWx0LWZpbGVjb2xvcn17SFRNTH17QTUwMDAwfQpcZGVmaW5lY29sb3J7ZGVmYXVsdC1jaXRlY29sb3J9e0hUTUx9ezQwNzdDMH0KXGRlZmluZWNvbG9ye2RlZmF1bHQtdXJsY29sb3J9e0hUTUx9ezQwNzdDMH0KJGlmKGZvb3Rub3Rlcy1wcmV0dHkpJAolIGxvYWQgZm9vdG1pc2MgaW4gb3JkZXIgdG8gY3VzdG9taXplIGZvb3Rub3RlcyAoZm9vdG1pc2MgaGFzIHRvIGJlIGxvYWRlZCBiZWZvcmUgaHlwZXJyZWYsIGNmLiBodHRwczovL3RleC5zdGFja2V4Y2hhbmdlLmNvbS9hLzE2OTEyNC8xNDQwODcpClx1c2VwYWNrYWdlW2hhbmcsZmx1c2htYXJnaW4sYm90dG9tLG11bHRpcGxlXXtmb290bWlzY30KXHNldGxlbmd0aHtcZm9vdG5vdGVtYXJnaW59ezAuOGVtfSAlIHNldCBzcGFjZSBiZXR3ZWVuIGZvb3Rub3RlIG5yIGFuZCB0ZXh0ClxzZXRsZW5ndGh7XGZvb3Rub3Rlc2VwfXtcYmFzZWxpbmVza2lwfSAlIHNldCBzcGFjZSBiZXR3ZWVuIG11bHRpcGxlIGZvb3Rub3Rlcwpcc2V0bGVuZ3Roe1xza2lwXGZvb3RpbnN9ezAuM2NtfSAlIHNldCBzcGFjZSBiZXR3ZWVuIHBhZ2UgY29udGVudCBhbmQgZm9vdG5vdGUKXHNldGxlbmd0aHtcZm9vdHNraXB9ezAuOWNtfSAlIHNldCBzcGFjZSBiZXR3ZWVuIGZvb3Rub3RlIGFuZCBwYWdlIGJvdHRvbQokZW5kaWYkCiRpZihnZW9tZXRyeSkkCiRpZihiZWFtZXIpJApcZ2VvbWV0cnl7JGZvcihnZW9tZXRyeSkkJGdlb21ldHJ5JCRzZXAkLCRlbmRmb3IkfQokZWxzZSQKXHVzZXBhY2thZ2VbJGZvcihnZW9tZXRyeSkkJGdlb21ldHJ5JCRzZXAkLCRlbmRmb3IkXXtnZW9tZXRyeX0KJGVuZGlmJAokZWxzZSQKJGlmKGJlYW1lcikkCiRlbHNlJApcdXNlcGFja2FnZVttYXJnaW49Mi41Y20saW5jbHVkZWhlYWQ9dHJ1ZSxpbmNsdWRlZm9vdD10cnVlLGNlbnRlcmluZywkZm9yKGdlb21ldHJ5KSQkZ2VvbWV0cnkkJHNlcCQsJGVuZGZvciRde2dlb21ldHJ5fQokZW5kaWYkCiRlbmRpZiQKCiRpZihiZWFtZXIpJApcbmV3aWZcaWZiaWJsaW9ncmFwaHkKJGVuZGlmJAokaWYobGlzdGluZ3MpJApcdXNlcGFja2FnZXtsaXN0aW5nc30KXG5ld2NvbW1hbmR7XHBhc3N0aHJvdWdofVsxXXsjMX0KXGxzdHNldHtkZWZhdWx0ZGlhbGVjdD1bNS4zXUx1YX0KXGxzdHNldHtkZWZhdWx0ZGlhbGVjdD1beDg2bWFzbV1Bc3NlbWJsZXJ9CiRlbmRpZiQKJGlmKGxpc3RpbmdzLW5vLXBhZ2UtYnJlYWspJApcdXNlcGFja2FnZXtldG9vbGJveH0KXEJlZm9yZUJlZ2luRW52aXJvbm1lbnR7bHN0bGlzdGluZ317XHBhclxub2luZGVudFxiZWdpbnttaW5pcGFnZX17XGxpbmV3aWR0aH19ClxBZnRlckVuZEVudmlyb25tZW50e2xzdGxpc3Rpbmd9e1xlbmR7bWluaXBhZ2V9XHBhclxhZGR2c3BhY2V7XHRvcHNraXB9fQokZW5kaWYkCiRpZihsaHMpJApcbHN0bmV3ZW52aXJvbm1lbnR7Y29kZX17XGxzdHNldHtsYW5ndWFnZT1IYXNrZWxsLGJhc2ljc3R5bGU9XHNtYWxsXHR0ZmFtaWx5fX17fQokZW5kaWYkCiRpZihoaWdobGlnaHRpbmctbWFjcm9zKSQKJGhpZ2hsaWdodGluZy1tYWNyb3MkCgolIFdvcmthcm91bmQvYnVnZml4IGZyb20gamFubmljazAuCiUgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qZ20vcGFuZG9jL2lzc3Vlcy80MzAyI2lzc3VlY29tbWVudC0zNjA2NjkwMTMpCiUgb3IgaHR0cHM6Ly9naXRodWIuY29tL1dhbmRtYWxmYXJiZS9wYW5kb2MtbGF0ZXgtdGVtcGxhdGUvaXNzdWVzLzIKJQolIFJlZGVmaW5lIHRoZSB2ZXJiYXRpbSBlbnZpcm9ubWVudCAnSGlnaGxpZ2h0aW5nJyB0byBicmVhayBsb25nIGxpbmVzICh3aXRoCiUgdGhlIGhlbHAgb2YgZnZleHRyYSkuIFJlZGVmaW5pdGlvbiBpcyBuZWNlc3NhcnkgYmVjYXVzZSBpdCBpcyB1bmxpa2VseSB0aGF0CiUgcGFuZG9jIGluY2x1ZGVzIGZ2ZXh0cmEgaW4gdGhlIGRlZmF1bHQgdGVtcGxhdGUuClx1c2VwYWNrYWdle2Z2ZXh0cmF9ClxEZWZpbmVWZXJiYXRpbUVudmlyb25tZW50e0hpZ2hsaWdodGluZ317VmVyYmF0aW19e2JyZWFrbGluZXMsZm9udHNpemU9JGlmKGNvZGUtYmxvY2stZm9udC1zaXplKSQkY29kZS1ibG9jay1mb250LXNpemUkJGVsc2UkXHNtYWxsJGVuZGlmJCxjb21tYW5kY2hhcnM9XFxce1x9fQoKJGVuZGlmJAokaWYodGFibGVzKSQKXHVzZXBhY2thZ2V7bG9uZ3RhYmxlLGJvb2t0YWJzLGFycmF5fQokaWYobXVsdGlyb3cpJApcdXNlcGFja2FnZXttdWx0aXJvd30KJGVuZGlmJApcdXNlcGFja2FnZXtjYWxjfSAlIGZvciBjYWxjdWxhdGluZyBtaW5pcGFnZSB3aWR0aHMKJGlmKGJlYW1lcikkClx1c2VwYWNrYWdle2NhcHRpb259CiUgTWFrZSBjYXB0aW9uIHBhY2thZ2Ugd29yayB3aXRoIGxvbmd0YWJsZQpcbWFrZWF0bGV0dGVyClxkZWZcZm51bUB0YWJsZXtcdGFibGVuYW1lflx0aGV0YWJsZX0KXG1ha2VhdG90aGVyCiRlbHNlJAolIENvcnJlY3Qgb3JkZXIgb2YgdGFibGVzIGFmdGVyIFxwYXJhZ3JhcGggb3IgXHN1YnBhcmFncmFwaApcdXNlcGFja2FnZXtldG9vbGJveH0KXG1ha2VhdGxldHRlcgpccGF0Y2hjbWRcbG9uZ3RhYmxle1xwYXJ9e1xpZkBub3NraXBzZWNcbWJveHt9XGZpXHBhcn17fXt9ClxtYWtlYXRvdGhlcgolIEFsbG93IGZvb3Rub3RlcyBpbiBsb25ndGFibGUgaGVhZC9mb290ClxJZkZpbGVFeGlzdHN7Zm9vdG5vdGVoeXBlci5zdHl9e1x1c2VwYWNrYWdle2Zvb3Rub3RlaHlwZXJ9fXtcdXNlcGFja2FnZXtmb290bm90ZX19ClxtYWtlc2F2ZW5vdGVlbnZ7bG9uZ3RhYmxlfQokZW5kaWYkCiRlbmRpZiQKJSBhZGQgYmFja2xpbmtzIHRvIGZvb3Rub3RlIHJlZmVyZW5jZXMsIGNmLiBodHRwczovL3RleC5zdGFja2V4Y2hhbmdlLmNvbS9xdWVzdGlvbnMvMzAyMjY2L21ha2UtZm9vdG5vdGUtY2xpY2thYmxlLWJvdGgtd2F5cwokaWYoZm9vdG5vdGVzLWRpc2FibGUtYmFja2xpbmtzKSQKJGVsc2UkClx1c2VwYWNrYWdle2Zvb3Rub3RlYmFja3JlZn0KJGVuZGlmJAokaWYoZ3JhcGhpY3MpJApcdXNlcGFja2FnZXtncmFwaGljeH0KXG1ha2VhdGxldHRlcgpcZGVmXG1heHdpZHRoe1xpZmRpbVxHaW5AbmF0QHdpZHRoPlxsaW5ld2lkdGhcbGluZXdpZHRoXGVsc2VcR2luQG5hdEB3aWR0aFxmaX0KXGRlZlxtYXhoZWlnaHR7XGlmZGltXEdpbkBuYXRAaGVpZ2h0Plx0ZXh0aGVpZ2h0XHRleHRoZWlnaHRcZWxzZVxHaW5AbmF0QGhlaWdodFxmaX0KXG1ha2VhdG90aGVyCiUgU2NhbGUgaW1hZ2VzIGlmIG5lY2Vzc2FyeSwgc28gdGhhdCB0aGV5IHdpbGwgbm90IG92ZXJmbG93IHRoZSBwYWdlCiUgbWFyZ2lucyBieSBkZWZhdWx0LCBhbmQgaXQgaXMgc3RpbGwgcG9zc2libGUgdG8gb3ZlcndyaXRlIHRoZSBkZWZhdWx0cwolIHVzaW5nIGV4cGxpY2l0IG9wdGlvbnMgaW4gXGluY2x1ZGVncmFwaGljc1t3aWR0aCwgaGVpZ2h0LCAuLi5de30KXHNldGtleXN7R2lufXt3aWR0aD1cbWF4d2lkdGgsaGVpZ2h0PVxtYXhoZWlnaHQsa2VlcGFzcGVjdHJhdGlvfQolIFNldCBkZWZhdWx0IGZpZ3VyZSBwbGFjZW1lbnQgdG8gaHRicApcbWFrZWF0bGV0dGVyClxkZWZcZnBzQGZpZ3VyZXtodGJwfQpcbWFrZWF0b3RoZXIKJGVuZGlmJAokaWYoc3ZnKSQKXHVzZXBhY2thZ2V7c3ZnfQokZW5kaWYkCiRpZihzdHJpa2VvdXQpJAokLS0gYWxzbyB1c2VkIGZvciB1bmRlcmxpbmUKXHVzZXBhY2thZ2V7c291bH0KJGVuZGlmJApcc2V0bGVuZ3Roe1xlbWVyZ2VuY3lzdHJldGNofXszZW19ICUgcHJldmVudCBvdmVyZnVsbCBsaW5lcwpccHJvdmlkZWNvbW1hbmR7XHRpZ2h0bGlzdH17JQogIFxzZXRsZW5ndGh7XGl0ZW1zZXB9ezBwdH1cc2V0bGVuZ3Roe1xwYXJza2lwfXswcHR9fQokaWYobnVtYmVyc2VjdGlvbnMpJApcc2V0Y291bnRlcntzZWNudW1kZXB0aH17JGlmKHNlY251bWRlcHRoKSQkc2VjbnVtZGVwdGgkJGVsc2UkNSRlbmRpZiR9CiRlbHNlJApcc2V0Y291bnRlcntzZWNudW1kZXB0aH17LVxtYXhkaW1lbn0gJSByZW1vdmUgc2VjdGlvbiBudW1iZXJpbmcKJGVuZGlmJAokaWYoYmVhbWVyKSQKJGVsc2UkCiRpZihibG9jay1oZWFkaW5ncykkCiUgTWFrZSBccGFyYWdyYXBoIGFuZCBcc3VicGFyYWdyYXBoIGZyZWUtc3RhbmRpbmcKXGlmeFxwYXJhZ3JhcGhcdW5kZWZpbmVkXGVsc2UKICBcbGV0XG9sZHBhcmFncmFwaFxwYXJhZ3JhcGgKICBccmVuZXdjb21tYW5ke1xwYXJhZ3JhcGh9WzFde1xvbGRwYXJhZ3JhcGh7IzF9XG1ib3h7fX0KXGZpClxpZnhcc3VicGFyYWdyYXBoXHVuZGVmaW5lZFxlbHNlCiAgXGxldFxvbGRzdWJwYXJhZ3JhcGhcc3VicGFyYWdyYXBoCiAgXHJlbmV3Y29tbWFuZHtcc3VicGFyYWdyYXBofVsxXXtcb2xkc3VicGFyYWdyYXBoeyMxfVxtYm94e319ClxmaQokZW5kaWYkCiRlbmRpZiQKJGlmKHBhZ2VzdHlsZSkkClxwYWdlc3R5bGV7JHBhZ2VzdHlsZSR9CiRlbmRpZiQKJGlmKGNzbC1yZWZzKSQKXG5ld2xlbmd0aHtcY3NsaGFuZ2luZGVudH0KXHNldGxlbmd0aHtcY3NsaGFuZ2luZGVudH17MS41ZW19ClxuZXdsZW5ndGh7XGNzbGxhYmVsd2lkdGh9ClxzZXRsZW5ndGh7XGNzbGxhYmVsd2lkdGh9ezNlbX0KXG5ld2xlbmd0aHtcY3NsZW50cnlzcGFjaW5ndW5pdH0gJSB0aW1lcyBlbnRyeS1zcGFjaW5nClxzZXRsZW5ndGh7XGNzbGVudHJ5c3BhY2luZ3VuaXR9e1xwYXJza2lwfQpcbmV3ZW52aXJvbm1lbnR7Q1NMUmVmZXJlbmNlc31bMl0gJSAjMSBoYW5naW5nLWlkZW50LCAjMiBlbnRyeSBzcGFjaW5nCiB7JSBkb24ndCBpbmRlbnQgcGFyYWdyYXBocwogIFxzZXRsZW5ndGh7XHBhcmluZGVudH17MHB0fQogICUgdHVybiBvbiBoYW5naW5nIGluZGVudCBpZiBwYXJhbSAxIGlzIDEKICBcaWZvZGQgIzEKICBcbGV0XG9sZHBhclxwYXIKICBcZGVmXHBhcntcaGFuZ2luZGVudD1cY3NsaGFuZ2luZGVudFxvbGRwYXJ9CiAgXGZpCiAgJSBzZXQgZW50cnkgc3BhY2luZwogIFxzZXRsZW5ndGh7XHBhcnNraXB9eyMyXGNzbGVudHJ5c3BhY2luZ3VuaXR9CiB9JQoge30KXHVzZXBhY2thZ2V7Y2FsY30KXG5ld2NvbW1hbmR7XENTTEJsb2NrfVsxXXsjMVxoZmlsbFxicmVha30KXG5ld2NvbW1hbmR7XENTTExlZnRNYXJnaW59WzFde1xwYXJib3hbdF17XGNzbGxhYmVsd2lkdGh9eyMxfX0KXG5ld2NvbW1hbmR7XENTTFJpZ2h0SW5saW5lfVsxXXtccGFyYm94W3Rde1xsaW5ld2lkdGggLSBcY3NsbGFiZWx3aWR0aH17IzF9XGJyZWFrfQpcbmV3Y29tbWFuZHtcQ1NMSW5kZW50fVsxXXtcaHNwYWNle1xjc2xoYW5naW5kZW50fSMxfQokZW5kaWYkCiRpZihsYW5nKSQKXGlmTHVhVGVYClx1c2VwYWNrYWdlW2JpZGk9YmFzaWNde2JhYmVsfQpcZWxzZQpcdXNlcGFja2FnZVtiaWRpPWRlZmF1bHRde2JhYmVsfQpcZmkKJGlmKGJhYmVsLWxhbmcpJApcYmFiZWxwcm92aWRlW21haW4saW1wb3J0XXskYmFiZWwtbGFuZyR9CiRlbmRpZiQKJGZvcihiYWJlbC1vdGhlcmxhbmdzKSQKXGJhYmVscHJvdmlkZVtpbXBvcnRdeyRiYWJlbC1vdGhlcmxhbmdzJH0KJGVuZGZvciQKJSBnZXQgcmlkIG9mIGxhbmd1YWdlLXNwZWNpZmljIHNob3J0aGFuZHMgKHNlZSAjNjgxNyk6ClxsZXRcTGFuZ3VhZ2VTaG9ydEhhbmRzXGxhbmd1YWdlc2hvcnRoYW5kcwpcZGVmXGxhbmd1YWdlc2hvcnRoYW5kcyMxe30KJGVuZGlmJAokZm9yKGhlYWRlci1pbmNsdWRlcykkCiRoZWFkZXItaW5jbHVkZXMkCiRlbmRmb3IkClxpZkx1YVRlWAogIFx1c2VwYWNrYWdle3NlbG5vbGlnfSAgJSBkaXNhYmxlIGlsbGVnYWwgbGlnYXR1cmVzClxmaQokaWYoZGlyKSQKXGlmUERGVGVYCiAgXFRlWFhlVHN0YXRlPTEKICBcbmV3Y29tbWFuZHtcUkx9WzFde1xiZWdpblIgIzFcZW5kUn0KICBcbmV3Y29tbWFuZHtcTFJ9WzFde1xiZWdpbkwgIzFcZW5kTH0KICBcbmV3ZW52aXJvbm1lbnR7UlRMfXtcYmVnaW5SfXtcZW5kUn0KICBcbmV3ZW52aXJvbm1lbnR7TFRSfXtcYmVnaW5MfXtcZW5kTH0KXGZpCiRlbmRpZiQKJGlmKG5hdGJpYikkClx1c2VwYWNrYWdlWyRuYXRiaWJvcHRpb25zJF17bmF0YmlifQpcYmlibGlvZ3JhcGh5c3R5bGV7JGlmKGJpYmxpby1zdHlsZSkkJGJpYmxpby1zdHlsZSQkZWxzZSRwbGFpbm5hdCRlbmRpZiR9CiRlbmRpZiQKJGlmKGJpYmxhdGV4KSQKXHVzZXBhY2thZ2VbJGlmKGJpYmxpby1zdHlsZSkkc3R5bGU9JGJpYmxpby1zdHlsZSQsJGVuZGlmJCRmb3IoYmlibGF0ZXhvcHRpb25zKSQkYmlibGF0ZXhvcHRpb25zJCRzZXAkLCRlbmRmb3IkXXtiaWJsYXRleH0KJGZvcihiaWJsaW9ncmFwaHkpJApcYWRkYmlicmVzb3VyY2V7JGJpYmxpb2dyYXBoeSR9CiRlbmRmb3IkCiRlbmRpZiQKJGlmKG5vY2l0ZS1pZHMpJApcbm9jaXRleyRmb3Iobm9jaXRlLWlkcykkJGl0JCRzZXAkLCAkZW5kZm9yJH0KJGVuZGlmJAokaWYoY3NxdW90ZXMpJApcdXNlcGFja2FnZXtjc3F1b3Rlc30KJGVuZGlmJApcSWZGaWxlRXhpc3Rze2Jvb2ttYXJrLnN0eX17XHVzZXBhY2thZ2V7Ym9va21hcmt9fXtcdXNlcGFja2FnZXtoeXBlcnJlZn19ClxJZkZpbGVFeGlzdHN7eHVybC5zdHl9e1x1c2VwYWNrYWdle3h1cmx9fXt9ICUgYWRkIFVSTCBsaW5lIGJyZWFrcyBpZiBhdmFpbGFibGUKXHVybHN0eWxleyRpZih1cmxzdHlsZSkkJHVybHN0eWxlJCRlbHNlJHNhbWUkZW5kaWYkfQokaWYobGlua3MtYXMtbm90ZXMpJAolIE1ha2UgbGlua3MgZm9vdG5vdGVzIGluc3RlYWQgb2YgaG90bGlua3M6ClxEZWNsYXJlUm9idXN0Q29tbWFuZHtcaHJlZn1bMl17IzJcZm9vdG5vdGV7XHVybHsjMX19fQokZW5kaWYkCiRpZih2ZXJiYXRpbS1pbi1ub3RlKSQKXFZlcmJhdGltRm9vdG5vdGVzICUgYWxsb3cgdmVyYmF0aW0gdGV4dCBpbiBmb290bm90ZXMKJGVuZGlmJApcaHlwZXJzZXR1cHsKJGlmKHRpdGxlLW1ldGEpJAogIHBkZnRpdGxlPXskdGl0bGUtbWV0YSR9LAokZW5kaWYkCiRpZihhdXRob3ItbWV0YSkkCiAgcGRmYXV0aG9yPXskYXV0aG9yLW1ldGEkfSwKJGVuZGlmJAokaWYobGFuZykkCiAgcGRmbGFuZz17JGxhbmckfSwKJGVuZGlmJAokaWYoc3ViamVjdCkkCiAgcGRmc3ViamVjdD17JHN1YmplY3QkfSwKJGVuZGlmJAokaWYoa2V5d29yZHMpJAogIHBkZmtleXdvcmRzPXskZm9yKGtleXdvcmRzKSQka2V5d29yZHMkJHNlcCQsICRlbmRmb3IkfSwKJGVuZGlmJAokaWYoY29sb3JsaW5rcykkCiAgY29sb3JsaW5rcz10cnVlLAogIGxpbmtjb2xvcj17JGlmKGxpbmtjb2xvcikkJGxpbmtjb2xvciQkZWxzZSRkZWZhdWx0LWxpbmtjb2xvciRlbmRpZiR9LAogIGZpbGVjb2xvcj17JGlmKGZpbGVjb2xvcikkJGZpbGVjb2xvciQkZWxzZSRkZWZhdWx0LWZpbGVjb2xvciRlbmRpZiR9LAogIGNpdGVjb2xvcj17JGlmKGNpdGVjb2xvcikkJGNpdGVjb2xvciQkZWxzZSRkZWZhdWx0LWNpdGVjb2xvciRlbmRpZiR9LAogIHVybGNvbG9yPXskaWYodXJsY29sb3IpJCR1cmxjb2xvciQkZWxzZSRkZWZhdWx0LXVybGNvbG9yJGVuZGlmJH0sCiRlbHNlJAogIGhpZGVsaW5rcywKJGVuZGlmJAogIGJyZWFrbGlua3M9dHJ1ZSwKICBwZGZjcmVhdG9yPXtMYVRlWCB2aWEgcGFuZG9jIHdpdGggdGhlIEVpc3ZvZ2VsIHRlbXBsYXRlfX0KJGlmKHRpdGxlKSQKXHRpdGxleyRpZih0aXRsZSkkJHRpdGxlJCRlbHNlJFNldCB1cCBUaXRsZSBpbiBGcm9udG1hdHRlciAoc2VlIGFic3RyYWN0KSRlbmRpZiR9CiRlbmRpZiQKJGlmKHN1YnRpdGxlKSQKJGlmKGJlYW1lcikkCiRlbHNlJApcdXNlcGFja2FnZXtldG9vbGJveH0KXG1ha2VhdGxldHRlcgpccHJvdmlkZWNvbW1hbmR7XHN1YnRpdGxlfVsxXXslIGFkZCBzdWJ0aXRsZSB0byBcbWFrZXRpdGxlCiAgXGFwcHRvY21ke1xAdGl0bGV9e1xwYXIge1xsYXJnZSAjMSBccGFyfX17fXt9Cn0KXG1ha2VhdG90aGVyCiRlbmRpZiQKXHN1YnRpdGxleyRzdWJ0aXRsZSR9CiRlbmRpZiQKXGF1dGhvcnskZm9yKGF1dGhvcikkJGF1dGhvciQkc2VwJCBcYW5kICRlbmRmb3IkfQokaWYoZGF0ZSkkCiAgXGRhdGV7JGRhdGUkfQokZWxzZSQKICBcZGF0ZXtcdG9kYXl9CiRlbmRpZiQKCiRpZihiZWFtZXIpJAokaWYoaW5zdGl0dXRlKSQKXGluc3RpdHV0ZXskZm9yKGluc3RpdHV0ZSkkJGluc3RpdHV0ZSQkc2VwJCBcYW5kICRlbmRmb3IkfQokZW5kaWYkCiRpZih0aXRsZWdyYXBoaWMpJApcdGl0bGVncmFwaGlje1xpbmNsdWRlZ3JhcGhpY3N7JHRpdGxlZ3JhcGhpYyR9fQokZW5kaWYkCiRpZihsb2dvKSQKXGxvZ297XGluY2x1ZGVncmFwaGljc3skbG9nbyR9fQokZW5kaWYkCiRlbmRpZiQKCgoKJSUKJSUgYWRkZWQKJSUKCiRpZihwYWdlLWJhY2tncm91bmQpJApcdXNlcGFja2FnZVtwYWdlcz1hbGxde2JhY2tncm91bmR9CiRlbmRpZiQKCiUKJSBmb3IgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRpdGxlIHBhZ2UKJQokaWYobm90aXRsZXBhZ2UpJAoKJGVsc2UkClx1c2VwYWNrYWdle3BhZ2Vjb2xvcn0KXHVzZXBhY2thZ2V7YWZ0ZXJwYWdlfQokaWYodGl0bGVwYWdlLWJhY2tncm91bmQpJApcdXNlcGFja2FnZXt0aWt6fQokZW5kaWYkCiRpZihnZW9tZXRyeSkkCiRlbHNlJApcdXNlcGFja2FnZVttYXJnaW49Mi41Y20saW5jbHVkZWhlYWQ9dHJ1ZSxpbmNsdWRlZm9vdD10cnVlLGNlbnRlcmluZ117Z2VvbWV0cnl9CiRlbmRpZiQKJGVuZGlmJAoKJQolIGJyZWFrIHVybHMKJQpcUGFzc09wdGlvbnNUb1BhY2thZ2V7aHlwaGVuc317dXJsfQoKJQolIFdoZW4gdXNpbmcgYmFiZWwgb3IgcG9seWdsb3NzaWEgd2l0aCBiaWJsYXRleCwgbG9hZGluZyBjc3F1b3RlcyBpcyByZWNvbW1lbmRlZAolIHRvIGVuc3VyZSB0aGF0IHF1b3RlZCB0ZXh0cyBhcmUgdHlwZXNldCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzIG9mIHlvdXIgbWFpbiBsYW5ndWFnZS4KJQpcdXNlcGFja2FnZXtjc3F1b3Rlc30KCiUKJSBjYXB0aW9ucwolClxkZWZpbmVjb2xvcntjYXB0aW9uLWNvbG9yfXtIVE1MfXs3Nzc3Nzd9CiRpZihiZWFtZXIpJAokZWxzZSQKXHVzZXBhY2thZ2VbZm9udD17c3RyZXRjaD0xLjJ9LCB0ZXh0Zm9udD17Y29sb3I9Y2FwdGlvbi1jb2xvcn0sIHBvc2l0aW9uPXRvcCwgc2tpcD00bW0sIGxhYmVsZm9udD1iZiwgc2luZ2xlbGluZWNoZWNrPWZhbHNlLCBqdXN0aWZpY2F0aW9uPSRpZihjYXB0aW9uLWp1c3RpZmljYXRpb24pJCRjYXB0aW9uLWp1c3RpZmljYXRpb24kJGVsc2UkanVzdGlmaWVkJGVuZGlmJF17Y2FwdGlvbn0KXHNldGNhcGluZGVudHswZW19CiRlbmRpZiQKCiUKJSBibG9ja3F1b3RlCiUKXGRlZmluZWNvbG9ye2Jsb2NrcXVvdGUtYm9yZGVyfXtSR0J9ezIyMSwyMjEsMjIxfQpcZGVmaW5lY29sb3J7YmxvY2txdW90ZS10ZXh0fXtSR0J9ezExOSwxMTksMTE5fQpcdXNlcGFja2FnZXttZGZyYW1lZH0KXG5ld21kZW52W3JpZ2h0bGluZT1mYWxzZSxib3R0b21saW5lPWZhbHNlLHRvcGxpbmU9ZmFsc2UsbGluZXdpZHRoPTNwdCxsaW5lY29sb3I9YmxvY2txdW90ZS1ib3JkZXIsc2tpcGFib3ZlPVxwYXJza2lwXXtjdXN0b21ibG9ja3F1b3RlfQpccmVuZXdlbnZpcm9ubWVudHtxdW90ZX17XGJlZ2lue2N1c3RvbWJsb2NrcXVvdGV9XGxpc3R7fXtccmlnaHRtYXJnaW49MGVtXGxlZnRtYXJnaW49MGVtfSUKXGl0ZW1ccmVsYXhcY29sb3J7YmxvY2txdW90ZS10ZXh0fVxpZ25vcmVzcGFjZXN9e1x1bnNraXBcdW5za2lwXGVuZGxpc3RcZW5ke2N1c3RvbWJsb2NrcXVvdGV9fQoKJQolIFNvdXJjZSBTYW5zIFBybyBhcyB0aGUgZGXCrWZhdWx0IGZvbnQgZmFtwq1pbHkKJSBTb3VyY2UgQ29kZSBQcm8gZm9yIG1vbm9zcGFjZSB0ZXh0CiUKJSAnZGVmYXVsdCcgb3B0aW9uIHNldHMgdGhlIGRlZmF1bHQKJSBmb250IGZhbWlseSB0byBTb3VyY2UgU2FucyBQcm8sIG5vdCBcc2ZkZWZhdWx0LgolClxpZm51bSAwXGlmeGV0ZXggMVxmaVxpZmx1YXRleCAxXGZpPTAgJSBpZiBwZGZ0ZXgKICAkaWYoZm9udGZhbWlseSkkCiAgJGVsc2UkCiAgXHVzZXBhY2thZ2VbZGVmYXVsdF17c291cmNlc2Fuc3Byb30KICBcdXNlcGFja2FnZXtzb3VyY2Vjb2RlcHJvfQogICRlbmRpZiQKXGVsc2UgJSBpZiBub3QgcGRmdGV4CiAgJGlmKG1haW5mb250KSQKICAkZWxzZSQKICBcdXNlcGFja2FnZVtkZWZhdWx0XXtzb3VyY2VzYW5zcHJvfQogIFx1c2VwYWNrYWdle3NvdXJjZWNvZGVwcm99CgogICUgWGVMYVRlWCBzcGVjaWZpYyBhZGp1c3RtZW50cyBmb3Igc3RyYWlnaHQgcXVvdGVzOiBodHRwczovL3RleC5zdGFja2V4Y2hhbmdlLmNvbS9hLzM1NDg4NwogICUgVGhpcyBpc3N1ZSBpcyBhbHJlYWR5IGZpeGVkIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3NpbGtlaC9sYXRleC1zb3VyY2Vjb2RlcHJvL3B1bGwvNSkgYnV0IHRoZQogICUgZml4IGlzIHN0aWxsIHVucmVsZWFzZWQuCiAgJSBUT0RPOiBSZW1vdmUgdGhpcyB3b3JrYXJvdW5kIHdoZW4gdGhlIG5ldyB2ZXJzaW9uIG9mIHNvdXJjZWNvZGVwcm8gaXMgcmVsZWFzZWQgb24gQ1RBTi4KICBcaWZ4ZXRleAogICAgXG1ha2VhdGxldHRlcgogICAgXGRlZmF1bHRmb250ZmVhdHVyZXNbXHR0ZmFtaWx5XQogICAgICB7IE51bWJlcnMgICA9IFxzb3VyY2Vjb2RlcHJvQGZpZ3VyZXN0eWxlLAogICAgICAgIFNjYWxlICAgICA9IFxTb3VyY2VDb2RlUHJvQHNjYWxlLAogICAgICAgIEV4dGVuc2lvbiA9IC5vdGYgfQogICAgXHNldG1vbm9mb250CiAgICAgIFsgVXByaWdodEZvbnQgICAgPSAqLVxzb3VyY2Vjb2RlcHJvQHJlZ3N0eWxlLAogICAgICAgIEl0YWxpY0ZvbnQgICAgID0gKi1cc291cmNlY29kZXByb0ByZWdzdHlsZSBJdCwKICAgICAgICBCb2xkRm9udCAgICAgICA9ICotXHNvdXJjZWNvZGVwcm9AYm9sZHN0eWxlLAogICAgICAgIEJvbGRJdGFsaWNGb250ID0gKi1cc291cmNlY29kZXByb0Bib2xkc3R5bGUgSXQgXQogICAgICB7U291cmNlQ29kZVByb30KICAgIFxtYWtlYXRvdGhlcgogIFxmaQogICRlbmRpZiQKXGZpCgolCiUgaGVhZGluZyBjb2xvcgolClxkZWZpbmVjb2xvcntoZWFkaW5nLWNvbG9yfXtSR0J9ezQwLDQwLDQwfQokaWYoYmVhbWVyKSQKJGVsc2UkClxhZGR0b2tvbWFmb250e3NlY3Rpb259e1xjb2xvcntoZWFkaW5nLWNvbG9yfX0KJGVuZGlmJAolIFdoZW4gdXNpbmcgdGhlIGNsYXNzZXMgcmVwb3J0LCBzY3JyZXBydCwgYm9vaywKJSBzY3Jib29rIG9yIG1lbW9pciwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZS4KJVxhZGR0b2tvbWFmb250e2NoYXB0ZXJ9e1xjb2xvcntoZWFkaW5nLWNvbG9yfX0KCiUKJSB2YXJpYWJsZXMgZm9yIHRpdGxlLCBhdXRob3IgYW5kIGRhdGUKJQokaWYoYmVhbWVyKSQKJGVsc2UkClx1c2VwYWNrYWdle3RpdGxpbmd9Clx0aXRsZXskdGl0bGUkfQpcYXV0aG9yeyRmb3IoYXV0aG9yKSQkYXV0aG9yJCRzZXAkLCAkZW5kZm9yJH0KXGRhdGV7JGRhdGUkfQokZW5kaWYkCgolCiUgdGFibGVzCiUKJGlmKHRhYmxlcykkCgpcZGVmaW5lY29sb3J7dGFibGUtcm93LWNvbG9yfXtIVE1MfXtGNUY1RjV9ClxkZWZpbmVjb2xvcnt0YWJsZS1ydWxlLWNvbG9yfXtIVE1MfXs5OTk5OTl9CgolXGFycmF5cnVsZWNvbG9ye2JsYWNrITQwfQpcYXJyYXlydWxlY29sb3J7dGFibGUtcnVsZS1jb2xvcn0gICAgICUgY29sb3Igb2YgXHRvcHJ1bGUsIFxtaWRydWxlLCBcYm90dG9tcnVsZQpcc2V0bGVuZ3RoXGhlYXZ5cnVsZXdpZHRoezAuM2V4fSAgICAgICUgdGhpY2tuZXNzIG9mIFx0b3BydWxlLCBcYm90dG9tcnVsZQpccmVuZXdjb21tYW5ke1xhcnJheXN0cmV0Y2h9ezEuM30gICAgICUgc3BhY2luZyAocGFkZGluZykKCiRpZih0YWJsZS11c2Utcm93LWNvbG9ycykkCiUgVE9ETzogVGhpcyBkb2Vzbid0IHdvcmsgYW55bW9yZS4gSSBkb24ndCBrbm93IHdoeS4KJSBSZXNldCByb3dudW0gY291bnRlciBzbyB0aGF0IGVhY2ggdGFibGUKJSBzdGFydHMgd2l0aCB0aGUgc2FtZSByb3cgY29sb3JzLgolIGh0dHBzOi8vdGV4LnN0YWNrZXhjaGFuZ2UuY29tL3F1ZXN0aW9ucy8xNzA2MzcvcmVzdGFydGluZy1yb3djb2xvcnMKJQolIFVuZm9ydHVuYXRlbHkgdGhlIGNvbG9yZWQgY2VsbHMgZXh0ZW5kIGJleW9uZCB0aGUgZWRnZSBvZiB0aGUKJSB0YWJsZSBiZWNhdXNlIHBhbmRvYyB1c2VzIEAtZXhwcmVzc2lvbnMgKEB7fSkgbGlrZSBzbzoKJQolIFxiZWdpbntsb25ndGFibGV9W117QHt9bGxAe319CiUgXGVuZHtsb25ndGFibGV9CiUKJSBodHRwczovL2VuLndpa2lib29rcy5vcmcvd2lraS9MYVRlWC9UYWJsZXMjLjQwLWV4cHJlc3Npb25zClxsZXRcb2xkbG9uZ3RhYmxlXGxvbmd0YWJsZQpcbGV0XGVuZG9sZGxvbmd0YWJsZVxlbmRsb25ndGFibGUKXHJlbmV3ZW52aXJvbm1lbnR7bG9uZ3RhYmxlfXsKXHJvd2NvbG9yc3szfXt9e3RhYmxlLXJvdy1jb2xvciExMDB9ICAlIHJvdyBjb2xvcgpcb2xkbG9uZ3RhYmxlfSB7ClxlbmRvbGRsb25ndGFibGUKXGdsb2JhbFxyb3dudW09MFxyZWxheH0KJGVuZGlmJAokZW5kaWYkCgolCiUgcmVtb3ZlIHBhcmFncmFwaCBpbmRlbnRpb24KJQpcc2V0bGVuZ3Roe1xwYXJpbmRlbnR9ezBwdH0KXHNldGxlbmd0aHtccGFyc2tpcH17NnB0IHBsdXMgMnB0IG1pbnVzIDFwdH0KXHNldGxlbmd0aHtcZW1lcmdlbmN5c3RyZXRjaH17M2VtfSAgJSBwcmV2ZW50IG92ZXJmdWxsIGxpbmVzCgolCiUKJSBMaXN0aW5ncwolCiUKCiRpZihsaXN0aW5ncykkCgolCiUgZ2VuZXJhbCBsaXN0aW5nIGNvbG9ycwolClxkZWZpbmVjb2xvcntsaXN0aW5nLWJhY2tncm91bmR9e0hUTUx9e0Y3RjdGN30KXGRlZmluZWNvbG9ye2xpc3RpbmctcnVsZX17SFRNTH17QjNCMkIzfQpcZGVmaW5lY29sb3J7bGlzdGluZy1udW1iZXJzfXtIVE1MfXtCM0IyQjN9ClxkZWZpbmVjb2xvcntsaXN0aW5nLXRleHQtY29sb3J9e0hUTUx9ezAwMDAwMH0KXGRlZmluZWNvbG9ye2xpc3Rpbmcta2V5d29yZH17SFRNTH17NDM1NDg5fQpcZGVmaW5lY29sb3J7bGlzdGluZy1rZXl3b3JkLTJ9e0hUTUx9ezEyODRDQX0gJSBhZGRpdGlvbmFsIGtleXdvcmRzClxkZWZpbmVjb2xvcntsaXN0aW5nLWtleXdvcmQtM317SFRNTH17OTEzN0NCfSAlIGFkZGl0aW9uYWwga2V5d29yZHMKXGRlZmluZWNvbG9ye2xpc3RpbmctaWRlbnRpZmllcn17SFRNTH17NDM1NDg5fQpcZGVmaW5lY29sb3J7bGlzdGluZy1zdHJpbmd9e0hUTUx9ezAwOTk5QX0KXGRlZmluZWNvbG9ye2xpc3RpbmctY29tbWVudH17SFRNTH17OEU4RThFfQoKXGxzdGRlZmluZXN0eWxle2Vpc3ZvZ2VsX2xpc3Rpbmdfc3R5bGV9ewogIGxhbmd1YWdlICAgICAgICAgPSBqYXZhLAokaWYobGlzdGluZ3MtZGlzYWJsZS1saW5lLW51bWJlcnMpJAogIHhsZWZ0bWFyZ2luICAgICAgPSAwLjZlbSwKICBmcmFtZXhsZWZ0bWFyZ2luID0gMC40ZW0sCiRlbHNlJAogIG51bWJlcnMgICAgICAgICAgPSBsZWZ0LAogIHhsZWZ0bWFyZ2luICAgICAgPSAyLjdlbSwKICBmcmFtZXhsZWZ0bWFyZ2luID0gMi41ZW0sCiRlbmRpZiQKICBiYWNrZ3JvdW5kY29sb3IgID0gXGNvbG9ye2xpc3RpbmctYmFja2dyb3VuZH0sCiAgYmFzaWNzdHlsZSAgICAgICA9IFxjb2xvcntsaXN0aW5nLXRleHQtY29sb3J9XGxpbmVzcHJlYWR7MS4wfSUKICAgICAgICAgICAgICAgICAgICAgIFxsc3RAaWZkaXNwbGF5c3R5bGUlCiAgICAgICAgICAgICAgICAgICAgICAkaWYoY29kZS1ibG9jay1mb250LXNpemUpJCRjb2RlLWJsb2NrLWZvbnQtc2l6ZSQkZWxzZSRcc21hbGwkZW5kaWYkJQogICAgICAgICAgICAgICAgICAgICAgXGZpXHR0ZmFtaWx5e30sCiAgYnJlYWtsaW5lcyAgICAgICA9IHRydWUsCiAgZnJhbWUgICAgICAgICAgICA9IHNpbmdsZSwKICBmcmFtZXNlcCAgICAgICAgID0gMC4xOWVtLAogIHJ1bGVjb2xvciAgICAgICAgPSBcY29sb3J7bGlzdGluZy1ydWxlfSwKICBmcmFtZXJvdW5kICAgICAgID0gZmZmZiwKICB0YWJzaXplICAgICAgICAgID0gNCwKICBudW1iZXJzdHlsZSAgICAgID0gXGNvbG9ye2xpc3RpbmctbnVtYmVyc30sCiAgYWJvdmVza2lwICAgICAgICA9IDEuMGVtLAogIGJlbG93c2tpcCAgICAgICAgPSAwLjFlbSwKICBhYm92ZWNhcHRpb25za2lwID0gMGVtLAogIGJlbG93Y2FwdGlvbnNraXAgPSAxLjBlbSwKICBrZXl3b3Jkc3R5bGUgICAgID0ge1xjb2xvcntsaXN0aW5nLWtleXdvcmR9XGJmc2VyaWVzfSwKICBrZXl3b3Jkc3R5bGUgICAgID0ge1syXVxjb2xvcntsaXN0aW5nLWtleXdvcmQtMn1cYmZzZXJpZXN9LAogIGtleXdvcmRzdHlsZSAgICAgPSB7WzNdXGNvbG9ye2xpc3Rpbmcta2V5d29yZC0zfVxiZnNlcmllc1xpdHNoYXBlfSwKICBzZW5zaXRpdmUgICAgICAgID0gdHJ1ZSwKICBpZGVudGlmaWVyc3R5bGUgID0gXGNvbG9ye2xpc3RpbmctaWRlbnRpZmllcn0sCiAgY29tbWVudHN0eWxlICAgICA9IFxjb2xvcntsaXN0aW5nLWNvbW1lbnR9LAogIHN0cmluZ3N0eWxlICAgICAgPSBcY29sb3J7bGlzdGluZy1zdHJpbmd9LAogIHNob3dzdHJpbmdzcGFjZXMgPSBmYWxzZSwKICBlc2NhcGVpbnNpZGUgICAgID0gey8qQH17QCovfSwgJSBBbGxvdyBMYVRlWCBpbnNpZGUgdGhlc2Ugc3BlY2lhbCBjb21tZW50cwogIGxpdGVyYXRlICAgICAgICAgPQogIHvDoX17e1wnYX19MSB7w6l9e3tcJ2V9fTEge8OtfXt7XCdpfX0xIHvDs317e1wnb319MSB7w7p9e3tcJ3V9fTEKICB7w4F9e3tcJ0F9fTEge8OJfXt7XCdFfX0xIHvDjX17e1wnSX19MSB7w5N9e3tcJ099fTEge8OafXt7XCdVfX0xCiAge8OgfXt7XGBhfX0xIHvDqH17e1wnZX19MSB7w6x9e3tcYGl9fTEge8OyfXt7XGBvfX0xIHvDuX17e1xgdX19MQogIHvDgH17e1xgQX19MSB7w4h9e3tcJ0V9fTEge8OMfXt7XGBJfX0xIHvDkn17e1xgT319MSB7w5l9e3tcYFV9fTEKICB7w6R9e3tcImF9fTEge8OrfXt7XCJlfX0xIHvDr317e1wiaX19MSB7w7Z9e3tcIm99fTEge8O8fXt7XCJ1fX0xCiAge8OEfXt7XCJBfX0xIHvDi317e1wiRX19MSB7w499e3tcIkl9fTEge8OWfXt7XCJPfX0xIHvDnH17e1wiVX19MQogIHvDon17e1xeYX19MSB7w6p9e3tcXmV9fTEge8OufXt7XF5pfX0xIHvDtH17e1xeb319MSB7w7t9e3tcXnV9fTEKICB7w4J9e3tcXkF9fTEge8OKfXt7XF5FfX0xIHvDjn17e1xeSX19MSB7w5R9e3tcXk99fTEge8ObfXt7XF5VfX0xCiAge8WTfXt7XG9lfX0xIHvFkn17e1xPRX19MSB7w6Z9e3tcYWV9fTEge8OGfXt7XEFFfX0xIHvDn317e1xzc319MQogIHvDp317e1xjIGN9fTEge8OHfXt7XGMgQ319MSB7w7h9e3tcb319MSB7w6V9e3tcciBhfX0xIHvDhX17e1xyIEF9fTEKICB74oKsfXt7XEVVUn19MSB7wqN9e3tccG91bmRzfX0xIHvCq317e1xndWlsbGVtb3RsZWZ0fX0xCiAge8K7fXt7XGd1aWxsZW1vdHJpZ2h0fX0xIHvDsX17e1x+bn19MSB7w5F9e3tcfk59fTEge8K/fXt7P2B9fTEKICB74oCmfXt7XGxkb3RzfX0xIHviiaV9e3s+PX19MSB74omkfXt7PD19fTEge+KAnn17e1xnbHFxfX0xIHvigJx9e3tcZ3JxcX19MQogIHvigJ19e3snJ319MQp9Clxsc3RzZXR7c3R5bGU9ZWlzdm9nZWxfbGlzdGluZ19zdHlsZX0KCiUKJSBKYXZhIChKYXZhIFNFIDEyLCAyMDE5LTA2LTIyKQolClxsc3RkZWZpbmVsYW5ndWFnZXtKYXZhfXsKICBtb3Jla2V5d29yZHM9ewogICAgJSBub3JtYWwga2V5d29yZHMgKHdpdGhvdXQgZGF0YSB0eXBlcykKICAgIGFic3RyYWN0LGFzc2VydCxicmVhayxjYXNlLGNhdGNoLGNsYXNzLGNvbnRpbnVlLGRlZmF1bHQsCiAgICBkbyxlbHNlLGVudW0sZXhwb3J0cyxleHRlbmRzLGZpbmFsLGZpbmFsbHksZm9yLGlmLGltcGxlbWVudHMsCiAgICBpbXBvcnQsaW5zdGFuY2VvZixpbnRlcmZhY2UsbW9kdWxlLG5hdGl2ZSxuZXcscGFja2FnZSxwcml2YXRlLAogICAgcHJvdGVjdGVkLHB1YmxpYyxyZXF1aXJlcyxyZXR1cm4sc3RhdGljLHN0cmljdGZwLHN1cGVyLHN3aXRjaCwKICAgIHN5bmNocm9uaXplZCx0aGlzLHRocm93LHRocm93cyx0cmFuc2llbnQsdHJ5LHZvbGF0aWxlLHdoaWxlLAogICAgJSB2YXIgaXMgYW4gaWRlbnRpZmllcgogICAgdmFyCiAgfSwKICBtb3Jla2V5d29yZHM9e1syXSAlIGRhdGEgdHlwZXMKICAgICUgcHJpbWl0aXZlIGRhdGEgdHlwZXMKICAgIGJvb2xlYW4sYnl0ZSxjaGFyLGRvdWJsZSxmbG9hdCxpbnQsbG9uZyxzaG9ydCwKICAgICUgU3RyaW5nCiAgICBTdHJpbmcsCiAgICAlIHByaW1pdGl2ZSB3cmFwcGVyIHR5cGVzCiAgICBCb29sZWFuLEJ5dGUsQ2hhcmFjdGVyLERvdWJsZSxGbG9hdCxJbnRlZ2VyLExvbmcsU2hvcnQKICAgICUgbnVtYmVyIHR5cGVzCiAgICBOdW1iZXIsQXRvbWljSW50ZWdlcixBdG9taWNMb25nLEJpZ0RlY2ltYWwsQmlnSW50ZWdlcixEb3VibGVBY2N1bXVsYXRvcixEb3VibGVBZGRlcixMb25nQWNjdW11bGF0b3IsTG9uZ0FkZGVyLFNob3J0LAogICAgJSBvdGhlcgogICAgT2JqZWN0LFZvaWQsdm9pZAogIH0sCiAgbW9yZWtleXdvcmRzPXtbM10gJSBsaXRlcmFscwogICAgJSByZXNlcnZlZCB3b3JkcyBmb3IgbGl0ZXJhbCB2YWx1ZXMKICAgIG51bGwsdHJ1ZSxmYWxzZSwKICB9LAogIHNlbnNpdGl2ZSwKICBtb3JlY29tbWVudCAgPSBbbF0vLywKICBtb3JlY29tbWVudCAgPSBbc117Lyp9eyovfSwKICBtb3JlY29tbWVudCAgPSBbc117LyoqfXsqL30sCiAgbW9yZXN0cmluZyAgID0gW2JdIiwKICBtb3Jlc3RyaW5nICAgPSBbYl0nLAp9CgpcbHN0ZGVmaW5lbGFuZ3VhZ2V7WE1MfXsKICBtb3Jlc3RyaW5nICAgICAgPSBbYl0iLAogIG1vcmVkZWxpbSAgICAgICA9IFtzXVtcYmZzZXJpZXNcY29sb3J7bGlzdGluZy1rZXl3b3JkfV17PH17XCB9LAogIG1vcmVkZWxpbSAgICAgICA9IFtzXVtcYmZzZXJpZXNcY29sb3J7bGlzdGluZy1rZXl3b3JkfV17PC99ez59LAogIG1vcmVkZWxpbSAgICAgICA9IFtsXVtcYmZzZXJpZXNcY29sb3J7bGlzdGluZy1rZXl3b3JkfV17Lz59LAogIG1vcmVkZWxpbSAgICAgICA9IFtsXVtcYmZzZXJpZXNcY29sb3J7bGlzdGluZy1rZXl3b3JkfV17Pn0sCiAgbW9yZWNvbW1lbnQgICAgID0gW3Ndezw/fXs/Pn0sCiAgbW9yZWNvbW1lbnQgICAgID0gW3NdezwhLS19ey0tPn0sCiAgY29tbWVudHN0eWxlICAgID0gXGNvbG9ye2xpc3RpbmctY29tbWVudH0sCiAgc3RyaW5nc3R5bGUgICAgID0gXGNvbG9ye2xpc3Rpbmctc3RyaW5nfSwKICBpZGVudGlmaWVyc3R5bGUgPSBcY29sb3J7bGlzdGluZy1pZGVudGlmaWVyfQp9CiRlbmRpZiQKCiUKJSBoZWFkZXIgYW5kIGZvb3RlcgolCiRpZihiZWFtZXIpJAokZWxzZSQKJGlmKGRpc2FibGUtaGVhZGVyLWFuZC1mb290ZXIpJAokZWxzZSQKXHVzZXBhY2thZ2VbaGVhZHNlcGxpbmUsZm9vdHNlcGxpbmVde3NjcmxheWVyLXNjcnBhZ2V9CgpcbmV3cGFpcm9mcGFnZXN0eWxlc3tlaXN2b2dlbC1oZWFkZXItZm9vdGVyfXsKICBcY2xlYXJwYWlyb2ZwYWdlc3R5bGVzCiAgXGloZWFkKnskaWYoaGVhZGVyLWxlZnQpJCRoZWFkZXItbGVmdCQkZWxzZSQkdGl0bGUkJGVuZGlmJH0KICBcY2hlYWQqeyRpZihoZWFkZXItY2VudGVyKSQkaGVhZGVyLWNlbnRlciQkZWxzZSQkZW5kaWYkfQogIFxvaGVhZCp7JGlmKGhlYWRlci1yaWdodCkkJGhlYWRlci1yaWdodCQkZWxzZSQkZGF0ZSQkZW5kaWYkfQogIFxpZm9vdCp7JGlmKGZvb3Rlci1sZWZ0KSQkZm9vdGVyLWxlZnQkJGVsc2UkJGZvcihhdXRob3IpJCRhdXRob3IkJHNlcCQsICRlbmRmb3IkJGVuZGlmJH0KICBcY2Zvb3QqeyRpZihmb290ZXItY2VudGVyKSQkZm9vdGVyLWNlbnRlciQkZWxzZSQkZW5kaWYkfQogIFxvZm9vdCp7JGlmKGZvb3Rlci1yaWdodCkkJGZvb3Rlci1yaWdodCQkZWxzZSRcdGhlcGFnZSRlbmRpZiR9CiAgXGFkZHRva29tYWZvbnR7cGFnZWhlYWRmb290fXtcdXBzaGFwZX0KfQpccGFnZXN0eWxle2Vpc3ZvZ2VsLWhlYWRlci1mb290ZXJ9CgokaWYoYm9vaykkClxkZWZ0cmlwc3R5bGV7Q2hhcHRlclN0eWxlfXt9e317fXt9e1xwYWdlbWFya317fQpccmVuZXdjb21tYW5kKntcY2hhcHRlcnBhZ2VzdHlsZX17Q2hhcHRlclN0eWxlfQokZW5kaWYkCgokaWYocGFnZS1iYWNrZ3JvdW5kKSQKXGJhY2tncm91bmRzZXR1cHsKc2NhbGU9MSwKY29sb3I9YmxhY2ssCm9wYWNpdHk9JGlmKHBhZ2UtYmFja2dyb3VuZC1vcGFjaXR5KSQkcGFnZS1iYWNrZ3JvdW5kLW9wYWNpdHkkJGVsc2UkMC4yJGVuZGlmJCwKYW5nbGU9MCwKY29udGVudHM9eyUKICBcaW5jbHVkZWdyYXBoaWNzW3dpZHRoPVxwYXBlcndpZHRoLGhlaWdodD1ccGFwZXJoZWlnaHRdeyRwYWdlLWJhY2tncm91bmQkfQogIH0lCn0KJGVuZGlmJAokZW5kaWYkCiRlbmRpZiQKCiUlCiUlIGVuZCBhZGRlZAolJQpcdXNlcGFja2FnZXtwZ2ZwYWdlc30KXHVzZXBhY2thZ2VbZXhwb3J0XXthZGp1c3Rib3h9Clx1c2VwYWNrYWdle2dyYXBoaWN4fQpcdXNlcGFja2FnZXtyYWdnZWQyZX0KCgpcYmVnaW57ZG9jdW1lbnR9CgolJQolJSBiZWdpbiB0aXRsZXBhZ2UKJSUKJGlmKGJlYW1lcikkCiRlbHNlJAokaWYobm90aXRsZXBhZ2UpJAokZWxzZSQKXGJlZ2lue3RpdGxlcGFnZX0KJGlmKHRpdGxlcGFnZS1iYWNrZ3JvdW5kKSQKXG5ld2dlb21ldHJ5e3RvcD0yY20sIHJpZ2h0PTRjbSwgYm90dG9tPTNjbSwgbGVmdD00Y219CiRlbHNlJAokZW5kaWYkCiRpZih0aXRsZXBhZ2UtY29sb3IpJApcZGVmaW5lY29sb3J7dGl0bGVwYWdlLWNvbG9yfXtIVE1MfXskdGl0bGVwYWdlLWNvbG9yJH0KXG5ld3BhZ2Vjb2xvcnt0aXRsZXBhZ2UtY29sb3J9XGFmdGVycGFnZXtccmVzdG9yZXBhZ2Vjb2xvcn0KJGVuZGlmJAokaWYodGl0bGVwYWdlLWJhY2tncm91bmQpJApcdGlreltyZW1lbWJlciBwaWN0dXJlLG92ZXJsYXldIFxub2RlW2lubmVyIHNlcD0wcHRdIGF0IChjdXJyZW50IHBhZ2UuY2VudGVyKXtcaW5jbHVkZWdyYXBoaWNzW3dpZHRoPVxwYXBlcndpZHRoLGhlaWdodD1ccGFwZXJoZWlnaHRdeyR0aXRsZXBhZ2UtYmFja2dyb3VuZCR9fTsKJGVuZGlmJApcbmV3Y29tbWFuZHtcY29sb3JSdWxlfVszXVtibGFja117XHRleHRjb2xvcltIVE1MXXsjMX17XHJ1bGV7IzJ9eyMzfX19ClxiZWdpbntmbHVzaGxlZnR9Clxub2luZGVudApcXFstMWVtXQpcY29sb3JbSFRNTF17JGlmKHRpdGxlcGFnZS10ZXh0LWNvbG9yKSQkdGl0bGVwYWdlLXRleHQtY29sb3IkJGVsc2UkMDAwMDAwJGVuZGlmJH0KXG1ha2Vib3hbMHB0XVtsXXtcY29sb3JSdWxlWyRpZih0aXRsZXBhZ2UtcnVsZS1jb2xvcikkJHRpdGxlcGFnZS1ydWxlLWNvbG9yJCRlbHNlJEZGRkZGRiRlbmRpZiRdezEuM1x0ZXh0d2lkdGh9eyRpZih0aXRsZXBhZ2UtcnVsZS1oZWlnaHQpJCR0aXRsZXBhZ2UtcnVsZS1oZWlnaHQkJGVsc2UkMCRlbmRpZiRwdH19ClxwYXIKXG5vaW5kZW50CgokaWYodGl0bGVwYWdlLWJhY2tncm91bmQpJAolIFRoZSB0aXRsZXBhZ2Ugd2l0aCBhIGJhY2tncm91bmQgaW1hZ2UgaGFzIG90aGVyIHRleHQgc3BhY2luZyBhbmQgdGV4dCBzaXplCnsKICBcc2V0c3RyZXRjaHsyfQogIFx2ZmlsbAogIFx2c2tpcCAtOGVtCiAgXG5vaW5kZW50IHtcaHVnZSBcdGV4dGJme1x0ZXh0c2Z7CiAgJGlmKHRpdGxlKSQKICAgICR0aXRsZSQKICAkZWxzZSQKICAgIFNldCB1cCBUaXRsZSBpbiBGcm9udG1hdHRlciAoc2VlIEFic3RyYWN0KQogICRlbmRpZiQKfX19CiAgJGlmKHN1YnRpdGxlKSQKICBcdnNraXAgMWVtCiAge1xMYXJnZSBcdGV4dHNmeyRzdWJ0aXRsZSR9fQogICRlbmRpZiQKICBcdnNraXAgMmVtCiAgXG5vaW5kZW50IHtcTGFyZ2UgXHRleHRpdHskZm9yKGF1dGhvcikkJGF1dGhvciQkc2VwJCwgJGVuZGZvciR9IFx2c2tpcCAwLjZlbSBcdGV4dHNmeyRkYXRlJH19CiAgXHZmaWxsCn0KJGVsc2UkCnsKICBcYmVnaW57Y2VudGVyfQogIFxzZXRzdHJldGNoezEuNH0KICBcdmZpbGwKICBcbm9pbmRlbnQge1xodWdlIFx0ZXh0YmZ7XHRleHRzZnsKICAkaWYodGl0bGUpJAogICAgJHRpdGxlJAogICRlbHNlJAogICAgU2V0IHVwIFRpdGxlIGluIEZyb250bWF0dGVyIChzZWUgQWJzdHJhY3QpCiAgJGVuZGlmJAp9fX0KICAkaWYoc3VidGl0bGUpJAogIFx2c2tpcCAxZW0KICB7XExhcmdlIFx0ZXh0c2Z7JHN1YnRpdGxlJH19CiAgJGVuZGlmJAogIFx2c2tpcCAyZW0KICBcbm9pbmRlbnQge1xMYXJnZSBcdGV4dGl0eyRmb3IoYXV0aG9yKSQkYXV0aG9yJCRzZXAkLCAkZW5kZm9yJH19CiAgXHZmaWxsCiAgXGVuZHtjZW50ZXJ9Cn0KJGVuZGlmJAoKJGlmKHRpdGxlcGFnZS1sb2dvKSQKXG5vaW5kZW50ClxiZWdpbntjZW50ZXJ9ClxpbmNsdWRlZ3JhcGhpY3Nbd2lkdGg9JGlmKGxvZ28td2lkdGgpJCRsb2dvLXdpZHRoJCRlbHNlJDM1bW0kZW5kaWYkXXskdGl0bGVwYWdlLWxvZ28kfQpcZW5ke2NlbnRlcn0KJGVuZGlmJAokaWYodGV4dDEpJApcYmVnaW57Y2VudGVyfQp7XGxhcmdlIFx0ZXh0c2Z7JHRleHQxJH19ClxlbmR7Y2VudGVyfQokZW5kaWYkCiRpZih0ZXh0MikkClxiZWdpbntjZW50ZXJ9CntcbGFyZ2UgXHRleHRzZnskdGV4dDIkfX0KXGVuZHtjZW50ZXJ9CiRlbmRpZiQKJGlmKHRleHQzKSQKXGJlZ2lue2NlbnRlcn0Ke1xsYXJnZSBcdGV4dHNmeyR0ZXh0MyR9fQpcZW5ke2NlbnRlcn0KJGVuZGlmJAokaWYodGV4dDQpJApcYmVnaW57Y2VudGVyfQp7XGxhcmdlIFx0ZXh0c2Z7JHRleHQ0JH19ClxlbmR7Y2VudGVyfQokZW5kaWYkCiRpZih0aXRsZXBhZ2UtYmFja2dyb3VuZCkkCiRlbHNlJAokZW5kaWYkClxlbmR7Zmx1c2hsZWZ0fQpcZW5ke3RpdGxlcGFnZX0KXHJlc3RvcmVnZW9tZXRyeQpccGFnZW51bWJlcmluZ3thcmFiaWN9IAokZW5kaWYkCiRlbmRpZiQKCiUlCiUlIGVuZCB0aXRsZXBhZ2UKJSUKCiRpZihoYXMtZnJvbnRtYXR0ZXIpJApcZnJvbnRtYXR0ZXIKXGZyYW1le1x0aXRsZXBhZ2V9CiUgZG9uJ3QgZ2VuZXJhdGUgdGhlIGRlZmF1bHQgdGl0bGUKJSAkZWxzZSQKJSBcbWFrZXRpdGxlClxwYWdlbnVtYmVyaW5ne1JvbWFufSAlIHNldCB0aGUgbnVtYmVyaW5nIHN0eWxlIHRvIGxvd2VyY2FzZSBsZXR0ZXIKClxiZWdpbntjZW50ZXJ9CiB7XExBUkdFIFx0ZXh0YmZ7XHRleHRzZntBYnN0cmFjdH19fQpcZW5ke2NlbnRlcn0KClxiZWdpbnthYnN0cmFjdH0KXGJlZ2lue2p1c3RpZnl9CiAgJGlmKGFic3RyYWN0KSQKICAkYWJzdHJhY3QkCiAgJGVsc2UkCiAgQWRkIHlvdXIgYWJzdHJhY3QgYXQgdGhlIGJlZ2lubmluZyBvZiB5b3VyIG1hcmtkb3duIGZpbGUgbGlrZSB0aGlzIAogIFxiZWdpbnt2ZXJiYXRpbX0KICAtLS0KICB0aXRsZTogIllvdXIgVGl0bGUiIAogIGFic3RyYWN0OiAieW91ciBhYnN0cmFjdCBoZXJlIgogIGF1dGhvcjogTGVvbmFyZG8gVi4gQ2FzdG9yaW5hLCBBbm90aGVyIDEsIEFub3RoZXIgMgogIHRpdGxlcGFnZS1sb2dvOiAvYWJzb2x1dGUvcGF0aC90by9sb2dvLnBkZgogIGFja25vd2xlZGdlbWVudHM6ICJJIHdvdWxkIGxpa2UgdG8gdGhhbmsgbXkgZG9nIERhdGEuIgogIGRlY2xhcmF0aW9uOiAiSSBkZWNsYXJlIHRoYXQgdGhpcyB0aGVzaXMgd2FzIGNvbXBvc2VkIGJ5IG15c2VsZi4iCiAgLS0tCiAgXGVuZHt2ZXJiYXRpbX0KICBUaGlzIGlzIGNhbGxlZCBZQU1MIGZyb250bWF0dGVyLiAgTWFrZSBzdXJlIHRvIHNldCB1cCBhIHRpdGxlISBJZiB5b3Ugc2V0IHlvdXIgYWJzdHJhY3QgY29ycmVjdGx5IHlvdSBzaG91bGQgbm90IHNlZSB0aGlzIG1lc3NhZ2UuCgogIE9wdGlvbmFsbHkgeW91IGNhbiBzZXQgdXAgXHRleHR0dHt0aXRsZXBhZ2UtbG9nb30gZm9yIGEgbG9nbyBpbiB0aGUgY292ZXIgcGFnZSwgXHRleHR0dHthY2tub3dsZWRnZW1lbnRzfSBzZWN0aW9uLCBhbmQgIFx0ZXh0dHR7ZGVjbGFyYXRpb259IHNlY3Rpb24uCgogICRlbmRpZiQKXGVuZHtqdXN0aWZ5fQpcZW5ke2Fic3RyYWN0fQpccGFnZWJyZWFrCgoKJGlmKGFja25vd2xlZGdlbWVudHMpJApcYmVnaW57Y2VudGVyfQoge1xMQVJHRSBcdGV4dGJme1x0ZXh0c2Z7QWNrbm93bGVkZ2VtZW50c319fQpcZW5ke2NlbnRlcn0KClxiZWdpbnthYnN0cmFjdH0KXGJlZ2lue2p1c3RpZnl9CiRhY2tub3dsZWRnZW1lbnRzJApcZW5ke2p1c3RpZnl9ClxlbmR7YWJzdHJhY3R9ClxwYWdlYnJlYWsKCiRlbmRpZiQKCiRpZihkZWNsYXJhdGlvbikkClxiZWdpbntjZW50ZXJ9CiB7XExBUkdFIFx0ZXh0YmZ7XHRleHRzZntEZWNsYXJhdGlvbn19fQpcZW5ke2NlbnRlcn0KClxiZWdpbnthYnN0cmFjdH0KXGJlZ2lue2p1c3RpZnl9CiAgJGRlY2xhcmF0aW9uJCBccGFyCiAgIFx2c3BhY2V7MWlufVxyYWdnZWRsZWZ0KHtcZW0gJGF1dGhvciRcL30pClxlbmR7anVzdGlmeX0KXGVuZHthYnN0cmFjdH0KXHBhZ2VicmVhawoKCgokZW5kaWYkClxwYWdlbnVtYmVyaW5ne2FyYWJpY30gJSBzZXQgdGhlIG51bWJlcmluZyBzdHlsZSB0byBsb3dlcmNhc2UgbGV0dGVyClxzZXRjb3VudGVye3BhZ2V9ezB9ICUgU2V0IHRoZSBwYWdlIGNvdW50ZXIgdG8gMwoKCiRpZihmaXJzdC1jaGFwdGVyKSQKXHNldGNvdW50ZXJ7Y2hhcHRlcn17JGZpcnN0LWNoYXB0ZXIkfQpcYWRkdG9jb3VudGVye2NoYXB0ZXJ9ey0xfQokZW5kaWYkCgokZm9yKGluY2x1ZGUtYmVmb3JlKSQKJGluY2x1ZGUtYmVmb3JlJAoKJGVuZGZvciQKJGlmKG5vLXRvYykkCiRlbHNlJApccmVuZXdjb21tYW5kKlxjb250ZW50c25hbWV7JHRvYy10aXRsZSR9ClxyZW5ld2NvbW1hbmQqXGNvbnRlbnRzbmFtZXtUYWJsZSBvZiBDb250ZW50c30KJGVuZGlmJAokaWYoYmVhbWVyKSQKXGJlZ2lue2ZyYW1lfVthbGxvd2ZyYW1lYnJlYWtzXQokaWYodG9jLXRpdGxlKSQKICBcZnJhbWV0aXRsZXskdG9jLXRpdGxlJH0KJGVuZGlmJAogIFx0YWJsZW9mY29udGVudHNbaGlkZWFsbHN1YnNlY3Rpb25zXQpcZW5ke2ZyYW1lfQpcbmV3cGFnZQokZWxzZSQKewokaWYoY29sb3JsaW5rcykkClxoeXBlcnNldHVwe2xpbmtjb2xvcj0kaWYodG9jY29sb3IpJCR0b2Njb2xvciQkZWxzZSQkZW5kaWYkfQokZW5kaWYkClxzZXRjb3VudGVye3RvY2RlcHRofXskdG9jLWRlcHRoJH0KXHRhYmxlb2Zjb250ZW50cwpcbmV3cGFnZQp9CiRlbmRpZiQKJGVuZGlmJAokaWYobG9mKSQKXGxpc3RvZmZpZ3VyZXMKJGVuZGlmJAokaWYobG90KSQKXGxpc3RvZnRhYmxlcwokZW5kaWYkCiRpZihsaW5lc3RyZXRjaCkkClxzZXRzdHJldGNoeyRsaW5lc3RyZXRjaCR9CiRlbmRpZiQKJGlmKGhhcy1mcm9udG1hdHRlcikkClxtYWlubWF0dGVyCiRlbmRpZiQKJGJvZHkkCgokaWYoaGFzLWZyb250bWF0dGVyKSQKXGJhY2ttYXR0ZXIKJGVuZGlmJAokaWYobmF0YmliKSQKJGlmKGJpYmxpb2dyYXBoeSkkCiRpZihiaWJsaW8tdGl0bGUpJAokaWYoaGFzLWNoYXB0ZXJzKSQKXHJlbmV3Y29tbWFuZFxiaWJuYW1leyRiaWJsaW8tdGl0bGUkfQokZWxzZSQKXHJlbmV3Y29tbWFuZFxyZWZuYW1leyRiaWJsaW8tdGl0bGUkfQokZW5kaWYkCiRlbmRpZiQKJGlmKGJlYW1lcikkClxiZWdpbntmcmFtZX1bYWxsb3dmcmFtZWJyZWFrc117JGJpYmxpby10aXRsZSR9CiAgXGJpYmxpb2dyYXBoeXRydWUKJGVuZGlmJAogIFxiaWJsaW9ncmFwaHl7JGZvcihiaWJsaW9ncmFwaHkpJCRiaWJsaW9ncmFwaHkkJHNlcCQsJGVuZGZvciR9CiRpZihiZWFtZXIpJApcZW5ke2ZyYW1lfQokZW5kaWYkCgokZW5kaWYkCiRlbmRpZiQKJGlmKGJpYmxhdGV4KSQKJGlmKGJlYW1lcikkClxiZWdpbntmcmFtZX1bYWxsb3dmcmFtZWJyZWFrc117JGJpYmxpby10aXRsZSR9CiAgXGJpYmxpb2dyYXBoeXRydWUKICBccHJpbnRiaWJsaW9ncmFwaHlbaGVhZGluZz1ub25lXQpcZW5ke2ZyYW1lfQokZWxzZSQKXHByaW50YmlibGlvZ3JhcGh5JGlmKGJpYmxpby10aXRsZSkkW3RpdGxlPSRiaWJsaW8tdGl0bGUkXSRlbmRpZiQKJGVuZGlmJAoKJGVuZGlmJAokZm9yKGluY2x1ZGUtYWZ0ZXIpJAokaW5jbHVkZS1hZnRlciQKCiRlbmRmb3IkClxlbmR7ZG9jdW1lbnR9"),e=>e.charCodeAt(0)),fC=Object.freeze(Object.defineProperty({__proto__:null,default:yC},Symbol.toStringTag,{value:"Module"})),TC=Uint8Array.from(atob("JSBwYXJ0aWFsIHJld3JpdGUgb2YgdGhlIExhVGVYMmUgcGFja2FnZSBmb3Igc3VibWlzc2lvbnMgdG8gdGhlCiUgQ29uZmVyZW5jZSBvbiBOZXVyYWwgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBTeXN0ZW1zIChOZXVySVBTKToKJQolIC0gdXNlcyBtb3JlIExhVGVYIGNvbnZlbnRpb25zCiUgLSBsaW5lIG51bWJlcnMgYXQgc3VibWlzc2lvbiB0aW1lIHJlcGxhY2VkIHdpdGggYWxpZ25lZCBudW1iZXJzIGZyb20KJSAgIGxpbmVubyBwYWNrYWdlCiUgLSBcbmlwc2ZpbmFsY29weSByZXBsYWNlZCB3aXRoIFtmaW5hbF0gcGFja2FnZSBvcHRpb24KJSAtIGF1dG9tYXRpY2FsbHkgbG9hZHMgdGltZXMgcGFja2FnZSBmb3IgYXV0aG9ycwolIC0gbG9hZHMgbmF0YmliIGF1dG9tYXRpY2FsbHk7IHRoaXMgY2FuIGJlIHN1cHByZXNzZWQgd2l0aCB0aGUKJSAgIFtub25hdGJpYl0gcGFja2FnZSBvcHRpb24KJSAtIGFkZHMgZm9vdCBsaW5lIHRvIGZpcnN0IHBhZ2UgaWRlbnRpZnlpbmcgdGhlIGNvbmZlcmVuY2UKJSAtIGFkZHMgcHJlcHJpbnQgb3B0aW9uIGZvciBzdWJtaXNzaW9uIHRvIGUuZy4gYXJYaXYKJSAtIGNvbmZlcmVuY2UgYWNyb255bSBtb2RpZmllZAolCiUgUm9tYW4gR2FybmV0dCAoZ2FybmV0dEB3dXN0bC5lZHUpIGFuZCB0aGUgbWFueSBhdXRob3JzIG9mCiUgbmlwczE1c3VibWl0X2Uuc3R5LCBpbmNsdWRpbmcgTUsgYW5kIGRyc3RyaXBAc2FuZGlhCiUKJSBsYXN0IHJldmlzaW9uOiBNYXJjaCAyMDIzCgpcTmVlZHNUZVhGb3JtYXR7TGFUZVgyZX0KXFByb3ZpZGVzUGFja2FnZXtuZXVyaXBzfVsyMDIzLzAzLzMxIE5ldXJJUFMgMjAyMyBzdWJtaXNzaW9uL2NhbWVyYS1yZWFkeSBzdHlsZSBmaWxlXQoKJSBkZWNsYXJlIGZpbmFsIG9wdGlvbiwgd2hpY2ggY3JlYXRlcyBjYW1lcmEtcmVhZHkgY29weQpcbmV3aWZcaWZAbmV1cmlwc2ZpbmFsXEBuZXVyaXBzZmluYWxmYWxzZQpcRGVjbGFyZU9wdGlvbntmaW5hbH17CiAgXEBuZXVyaXBzZmluYWx0cnVlCn0KCiUgZGVjbGFyZSBub25hdGJpYiBvcHRpb24sIHdoaWNoIGRvZXMgbm90IGxvYWQgbmF0YmliIGluIGNhc2Ugb2YKJSBwYWNrYWdlIGNsYXNoICh1c2VycyBjYW4gcGFzcyBvcHRpb25zIHRvIG5hdGJpYiB2aWEKJSBcUGFzc09wdGlvbnNUb1BhY2thZ2UpClxuZXdpZlxpZkBuYXRiaWJcQG5hdGJpYnRydWUKXERlY2xhcmVPcHRpb257bm9uYXRiaWJ9ewogIFxAbmF0YmliZmFsc2UKfQoKJSBkZWNsYXJlIHByZXByaW50IG9wdGlvbiwgd2hpY2ggY3JlYXRlcyBhIHByZXByaW50IHZlcnNpb24gcmVhZHkgZm9yCiUgdXBsb2FkIHRvLCBlLmcuLCBhclhpdgpcbmV3aWZcaWZAcHJlcHJpbnRcQHByZXByaW50ZmFsc2UKXERlY2xhcmVPcHRpb257cHJlcHJpbnR9ewogIFxAcHJlcHJpbnR0cnVlCn0KClxQcm9jZXNzT3B0aW9uc1xyZWxheAoKJSBkZXRlcm1pbmUgd2hldGhlciB0aGlzIGlzIGFuIGFub255bWl6ZWQgc3VibWlzc2lvbgpcbmV3aWZcaWZAc3VibWlzc2lvblxAc3VibWlzc2lvbnRydWUKXGlmQG5ldXJpcHNmaW5hbFxAc3VibWlzc2lvbmZhbHNlXGZpClxpZkBwcmVwcmludFxAc3VibWlzc2lvbmZhbHNlXGZpCgolIGZvbnRzClxyZW5ld2NvbW1hbmR7XHJtZGVmYXVsdH17cHRtfQpccmVuZXdjb21tYW5ke1xzZmRlZmF1bHR9e3Bodn0KCiUgY2hhbmdlIHRoaXMgZXZlcnkgeWVhciBmb3Igbm90aWNlIHN0cmluZyBhdCBib3R0b20KXG5ld2NvbW1hbmR7XEBuZXVyaXBzb3JkaW5hbH17fQpcbmV3Y29tbWFuZHtcQG5ldXJpcHN5ZWFyfXtcdGhlXHllYXJ9ClxuZXdjb21tYW5ke1xAbmV1cmlwc2xvY2F0aW9ufXt9CgolIGFja25vd2xlZGdtZW50cwpcdXNlcGFja2FnZXtlbnZpcm9ufQpcbmV3Y29tbWFuZHtcYWNrc2VjdGlvbn17XHNlY3Rpb24qe0Fja25vd2xlZGdtZW50cyBhbmQgRGlzY2xvc3VyZSBvZiBGdW5kaW5nfX0KXE5ld0Vudmlyb257YWNrfXslCiAgXGFja3NlY3Rpb24KICBcQk9EWQp9CgoKJSBsb2FkIG5hdGJpYiB1bmxlc3MgdG9sZCBvdGhlcndpc2UKXGlmQG5hdGJpYgogIFxSZXF1aXJlUGFja2FnZXtuYXRiaWJ9ClxmaQoKJSBzZXQgcGFnZSBnZW9tZXRyeQpcdXNlcGFja2FnZVt2ZXJib3NlPXRydWUsbGV0dGVycGFwZXJde2dlb21ldHJ5fQpcQXRCZWdpbkRvY3VtZW50ewogIFxuZXdnZW9tZXRyeXsKICAgIHRleHRoZWlnaHQ9OWluLAogICAgdGV4dHdpZHRoPTUuNWluLAogICAgdG9wPTFpbiwKICAgIGhlYWRoZWlnaHQ9MTJwdCwKICAgIGhlYWRzZXA9MjVwdCwKICAgIGZvb3Rza2lwPTMwcHQKICB9CiAgXEBpZnBhY2thZ2Vsb2FkZWR7ZnVsbHBhZ2V9CiAgICB7XFBhY2thZ2VXYXJuaW5ne25ldXJpcHNfMjAyM317ZnVsbHBhZ2UgcGFja2FnZSBub3QgYWxsb3dlZCEgT3ZlcndyaXRpbmcgZm9ybWF0dGluZy59fQogICAge30KfQoKXHdpZG93cGVuYWx0eT0xMDAwMApcY2x1YnBlbmFsdHk9MTAwMDAKXGZsdXNoYm90dG9tClxzbG9wcHkKCgolIGZvbnQgc2l6ZXMgd2l0aCByZWR1Y2VkIGxlYWRpbmcKXHJlbmV3Y29tbWFuZHtcbm9ybWFsc2l6ZX17JQogIFxAc2V0Zm9udHNpemVcbm9ybWFsc2l6ZVxAeHB0XEB4aXB0CiAgXGFib3ZlZGlzcGxheXNraXAgICAgICA3XHBAIFxAcGx1cyAyXHBAIFxAbWludXMgNVxwQAogIFxhYm92ZWRpc3BsYXlzaG9ydHNraXAgXHpAIFxAcGx1cyAzXHBACiAgXGJlbG93ZGlzcGxheXNraXAgICAgICBcYWJvdmVkaXNwbGF5c2tpcAogIFxiZWxvd2Rpc3BsYXlzaG9ydHNraXAgNFxwQCBcQHBsdXMgM1xwQCBcQG1pbnVzIDNccEAKfQpcbm9ybWFsc2l6ZQpccmVuZXdjb21tYW5ke1xzbWFsbH17JQogIFxAc2V0Zm9udHNpemVcc21hbGxcQGl4cHRcQHhwdAogIFxhYm92ZWRpc3BsYXlza2lwICAgICAgNlxwQCBcQHBsdXMgMS41XHBAIFxAbWludXMgNFxwQAogIFxhYm92ZWRpc3BsYXlzaG9ydHNraXAgXHpAICBcQHBsdXMgMlxwQAogIFxiZWxvd2Rpc3BsYXlza2lwICAgICAgXGFib3ZlZGlzcGxheXNraXAKICBcYmVsb3dkaXNwbGF5c2hvcnRza2lwIDNccEAgXEBwbHVzIDJccEAgICBcQG1pbnVzIDJccEAKfQpccmVuZXdjb21tYW5ke1xmb290bm90ZXNpemV9e1xAc2V0Zm9udHNpemVcZm9vdG5vdGVzaXplXEBpeHB0XEB4cHR9ClxyZW5ld2NvbW1hbmR7XHNjcmlwdHNpemV9e1xAc2V0Zm9udHNpemVcc2NyaXB0c2l6ZVxAdmlpcHRcQHZpaWlwdH0KXHJlbmV3Y29tbWFuZHtcdGlueX17XEBzZXRmb250c2l6ZVx0aW55XEB2aXB0XEB2aWlwdH0KXHJlbmV3Y29tbWFuZHtcbGFyZ2V9e1xAc2V0Zm9udHNpemVcbGFyZ2VcQHhpaXB0ezE0fX0KXHJlbmV3Y29tbWFuZHtcTGFyZ2V9e1xAc2V0Zm9udHNpemVcTGFyZ2VcQHhpdnB0ezE2fX0KXHJlbmV3Y29tbWFuZHtcTEFSR0V9e1xAc2V0Zm9udHNpemVcTEFSR0VcQHh2aWlwdHsyMH19ClxyZW5ld2NvbW1hbmR7XGh1Z2V9e1xAc2V0Zm9udHNpemVcaHVnZVxAeHhwdHsyM319ClxyZW5ld2NvbW1hbmR7XEh1Z2V9e1xAc2V0Zm9udHNpemVcSHVnZVxAeHh2cHR7Mjh9fQoKJSBzZWN0aW9ucyB3aXRoIGxlc3Mgc3BhY2UKXHByb3ZpZGVjb21tYW5ke1xzZWN0aW9ufXt9ClxyZW5ld2NvbW1hbmR7XHNlY3Rpb259eyUKICBcQHN0YXJ0c2VjdGlvbntzZWN0aW9ufXsxfXtcekB9JQogICAgICAgICAgICAgICAgey0yLjBleCBcQHBsdXMgLTAuNWV4IFxAbWludXMgLTAuMmV4fSUKICAgICAgICAgICAgICAgIHsgMS41ZXggXEBwbHVzICAwLjNleCBcQG1pbnVzICAwLjJleH0lCiAgICAgICAgICAgICAgICB7XGxhcmdlXGJmXHJhZ2dlZHJpZ2h0fSUKfQpccHJvdmlkZWNvbW1hbmR7XHN1YnNlY3Rpb259e30KXHJlbmV3Y29tbWFuZHtcc3Vic2VjdGlvbn17JQogIFxAc3RhcnRzZWN0aW9ue3N1YnNlY3Rpb259ezJ9e1x6QH0lCiAgICAgICAgICAgICAgICB7LTEuOGV4IFxAcGx1cyAtMC41ZXggXEBtaW51cyAtMC4yZXh9JQogICAgICAgICAgICAgICAgeyAwLjhleCBcQHBsdXMgIDAuMmV4fSUKICAgICAgICAgICAgICAgIHtcbm9ybWFsc2l6ZVxiZlxyYWdnZWRyaWdodH0lCn0KXHByb3ZpZGVjb21tYW5ke1xzdWJzdWJzZWN0aW9ufXt9ClxyZW5ld2NvbW1hbmR7XHN1YnN1YnNlY3Rpb259eyUKICBcQHN0YXJ0c2VjdGlvbntzdWJzdWJzZWN0aW9ufXszfXtcekB9JQogICAgICAgICAgICAgICAgey0xLjVleCBcQHBsdXMgLTAuNWV4IFxAbWludXMgLTAuMmV4fSUKICAgICAgICAgICAgICAgIHsgMC41ZXggXEBwbHVzICAwLjJleH0lCiAgICAgICAgICAgICAgICB7XG5vcm1hbHNpemVcYmZccmFnZ2VkcmlnaHR9JQp9Clxwcm92aWRlY29tbWFuZHtccGFyYWdyYXBofXt9ClxyZW5ld2NvbW1hbmR7XHBhcmFncmFwaH17JQogIFxAc3RhcnRzZWN0aW9ue3BhcmFncmFwaH17NH17XHpAfSUKICAgICAgICAgICAgICAgIHsxLjVleCBcQHBsdXMgMC41ZXggXEBtaW51cyAwLjJleH0lCiAgICAgICAgICAgICAgICB7LTFlbX0lCiAgICAgICAgICAgICAgICB7XG5vcm1hbHNpemVcYmZ9JQp9Clxwcm92aWRlY29tbWFuZHtcc3VicGFyYWdyYXBofXt9ClxyZW5ld2NvbW1hbmR7XHN1YnBhcmFncmFwaH17JQogIFxAc3RhcnRzZWN0aW9ue3N1YnBhcmFncmFwaH17NX17XHpAfSUKICAgICAgICAgICAgICAgIHsxLjVleCBcQHBsdXMgMC41ZXggXEBtaW51cyAwLjJleH0lCiAgICAgICAgICAgICAgICB7LTFlbX0lCiAgICAgICAgICAgICAgICB7XG5vcm1hbHNpemVcYmZ9JQp9Clxwcm92aWRlY29tbWFuZHtcc3Vic3Vic3Vic2VjdGlvbn17fQpccmVuZXdjb21tYW5ke1xzdWJzdWJzdWJzZWN0aW9ufXslCiAgXHZza2lwNXB0e1xub2luZGVudFxub3JtYWxzaXplXHJtXHJhZ2dlZHJpZ2h0fSUKfQoKJSBmbG9hdCBwbGFjZW1lbnQKXHJlbmV3Y29tbWFuZHtcdG9wZnJhY3Rpb24gICAgICB9ezAuODV9ClxyZW5ld2NvbW1hbmR7XGJvdHRvbWZyYWN0aW9uICAgfXswLjR9ClxyZW5ld2NvbW1hbmR7XHRleHRmcmFjdGlvbiAgICAgfXswLjF9ClxyZW5ld2NvbW1hbmR7XGZsb2F0cGFnZWZyYWN0aW9ufXswLjd9CgpcbmV3bGVuZ3Roe1xAbmV1cmlwc2Fib3ZlY2FwdGlvbnNraXB9XHNldGxlbmd0aHtcQG5ldXJpcHNhYm92ZWNhcHRpb25za2lwfXs3XHBAfQpcbmV3bGVuZ3Roe1xAbmV1cmlwc2JlbG93Y2FwdGlvbnNraXB9XHNldGxlbmd0aHtcQG5ldXJpcHNiZWxvd2NhcHRpb25za2lwfXtcekB9Cgpcc2V0bGVuZ3Roe1xhYm92ZWNhcHRpb25za2lwfXtcQG5ldXJpcHNhYm92ZWNhcHRpb25za2lwfQpcc2V0bGVuZ3Roe1xiZWxvd2NhcHRpb25za2lwfXtcQG5ldXJpcHNiZWxvd2NhcHRpb25za2lwfQoKJSBzd2FwIGFib3ZlL2JlbG93Y2FwdGlvbnNraXAgbGVuZ3RocyBmb3IgdGFibGVzClxyZW5ld2Vudmlyb25tZW50e3RhYmxlfQogIHtcc2V0bGVuZ3Roe1xhYm92ZWNhcHRpb25za2lwfXtcQG5ldXJpcHNiZWxvd2NhcHRpb25za2lwfSUKICAgXHNldGxlbmd0aHtcYmVsb3djYXB0aW9uc2tpcH17XEBuZXVyaXBzYWJvdmVjYXB0aW9uc2tpcH0lCiAgIFxAZmxvYXR7dGFibGV9fQogIHtcZW5kQGZsb2F0fQoKJSBmb290bm90ZSBmb3JtYXR0aW5nClxzZXRsZW5ndGh7XGZvb3Rub3Rlc2VwIH17Ni42NVxwQH0KXHNldGxlbmd0aHtcc2tpcFxmb290aW5zfXs5XHBAIFxAcGx1cyA0XHBAIFxAbWludXMgMlxwQH0KXHJlbmV3Y29tbWFuZHtcZm9vdG5vdGVydWxlfXtca2Vybi0zXHBAIFxocnVsZSB3aWR0aCAxMnBjIFxrZXJuIDIuNlxwQH0KXHNldGNvdW50ZXJ7Zm9vdG5vdGV9ezB9CgolIHBhcmFncmFwaCBmb3JtYXR0aW5nClxzZXRsZW5ndGh7XHBhcmluZGVudH17XHpAfQpcc2V0bGVuZ3Roe1xwYXJza2lwICB9ezUuNVxwQH0KCiUgbGlzdCBmb3JtYXR0aW5nClxzZXRsZW5ndGh7XHRvcHNlcCAgICAgICB9ezRccEAgXEBwbHVzIDFccEAgICBcQG1pbnVzIDJccEB9ClxzZXRsZW5ndGh7XHBhcnRvcHNlcCAgICB9ezFccEAgXEBwbHVzIDAuNVxwQCBcQG1pbnVzIDAuNVxwQH0KXHNldGxlbmd0aHtcaXRlbXNlcCAgICAgIH17MlxwQCBcQHBsdXMgMVxwQCAgIFxAbWludXMgMC41XHBAfQpcc2V0bGVuZ3Roe1xwYXJzZXAgICAgICAgfXsyXHBAIFxAcGx1cyAxXHBAICAgXEBtaW51cyAwLjVccEB9ClxzZXRsZW5ndGh7XGxlZnRtYXJnaW4gICB9ezNwY30KXHNldGxlbmd0aHtcbGVmdG1hcmdpbmkgIH17XGxlZnRtYXJnaW59ClxzZXRsZW5ndGh7XGxlZnRtYXJnaW5paSB9ezJlbX0KXHNldGxlbmd0aHtcbGVmdG1hcmdpbmlpaX17MS41ZW19ClxzZXRsZW5ndGh7XGxlZnRtYXJnaW5pdiB9ezEuMGVtfQpcc2V0bGVuZ3Roe1xsZWZ0bWFyZ2ludiAgfXswLjVlbX0KXGRlZlxAbGlzdGkgIHtcbGVmdG1hcmdpblxsZWZ0bWFyZ2luaX0KXGRlZlxAbGlzdGlpIHtcbGVmdG1hcmdpblxsZWZ0bWFyZ2luaWkKICAgICAgICAgICAgICBcbGFiZWx3aWR0aFxsZWZ0bWFyZ2luaWkKICAgICAgICAgICAgICBcYWR2YW5jZVxsYWJlbHdpZHRoLVxsYWJlbHNlcAogICAgICAgICAgICAgIFx0b3BzZXAgIDJccEAgXEBwbHVzIDFccEAgICAgXEBtaW51cyAwLjVccEAKICAgICAgICAgICAgICBccGFyc2VwICAxXHBAIFxAcGx1cyAwLjVccEAgXEBtaW51cyAwLjVccEAKICAgICAgICAgICAgICBcaXRlbXNlcCBccGFyc2VwfQpcZGVmXEBsaXN0aWlpe1xsZWZ0bWFyZ2luXGxlZnRtYXJnaW5paWkKICAgICAgICAgICAgICBcbGFiZWx3aWR0aFxsZWZ0bWFyZ2luaWlpCiAgICAgICAgICAgICAgXGFkdmFuY2VcbGFiZWx3aWR0aC1cbGFiZWxzZXAKICAgICAgICAgICAgICBcdG9wc2VwICAgIDFccEAgXEBwbHVzIDAuNVxwQCBcQG1pbnVzIDAuNVxwQAogICAgICAgICAgICAgIFxwYXJzZXAgICAgXHpACiAgICAgICAgICAgICAgXHBhcnRvcHNlcCAwLjVccEAgXEBwbHVzIDBccEAgXEBtaW51cyAwLjVccEAKICAgICAgICAgICAgICBcaXRlbXNlcCBcdG9wc2VwfQpcZGVmXEBsaXN0aXYge1xsZWZ0bWFyZ2luXGxlZnRtYXJnaW5pdgogICAgICAgICAgICAgIFxsYWJlbHdpZHRoXGxlZnRtYXJnaW5pdgogICAgICAgICAgICAgIFxhZHZhbmNlXGxhYmVsd2lkdGgtXGxhYmVsc2VwfQpcZGVmXEBsaXN0diAge1xsZWZ0bWFyZ2luXGxlZnRtYXJnaW52CiAgICAgICAgICAgICAgXGxhYmVsd2lkdGhcbGVmdG1hcmdpbnYKICAgICAgICAgICAgICBcYWR2YW5jZVxsYWJlbHdpZHRoLVxsYWJlbHNlcH0KXGRlZlxAbGlzdHZpIHtcbGVmdG1hcmdpblxsZWZ0bWFyZ2ludmkKICAgICAgICAgICAgICBcbGFiZWx3aWR0aFxsZWZ0bWFyZ2ludmkKICAgICAgICAgICAgICBcYWR2YW5jZVxsYWJlbHdpZHRoLVxsYWJlbHNlcH0KCiUgY3JlYXRlIHRpdGxlClxwcm92aWRlY29tbWFuZHtcbWFrZXRpdGxlfXt9ClxyZW5ld2NvbW1hbmR7XG1ha2V0aXRsZX17JQogIFxwYXIKICBcYmVnaW5ncm91cAogICAgXHJlbmV3Y29tbWFuZHtcdGhlZm9vdG5vdGV9e1xmbnN5bWJvbHtmb290bm90ZX19CiAgICAlIGZvciBwZXJmZWN0IGF1dGhvciBuYW1lIGNlbnRlcmluZwogICAgXHJlbmV3Y29tbWFuZHtcQG1ha2Vmbm1hcmt9e1xoYm94IHRvIFx6QHskXntcQHRoZWZubWFya30kXGhzc319CiAgICAlIFRoZSBmb290bm90ZS1tYXJrIHdhcyBvdmVybGFwcGluZyB0aGUgZm9vdG5vdGUtdGV4dCwKICAgICUgYWRkZWQgdGhlIGZvbGxvd2luZyB0byBmaXggdGhpcyBwcm9ibGVtICAgICAgICAgICAgICAgKE1LKQogICAgXGxvbmdcZGVmXEBtYWtlZm50ZXh0IyMxeyUKICAgICAgXHBhcmluZGVudCAxZW1cbm9pbmRlbnQKICAgICAgXGhib3ggdG8gMS44ZW17XGhzcyAkXG1AdGggXntcQHRoZWZubWFya30kfSMjMQogICAgfQogICAgXHRoaXNwYWdlc3R5bGV7ZW1wdHl9CiAgICBcQG1ha2V0aXRsZQogICAgXEB0aGFua3MKICAgIFxAbm90aWNlCiAgXGVuZGdyb3VwCiAgXGxldFxtYWtldGl0bGVccmVsYXgKICBcbGV0XHRoYW5rc1xyZWxheAp9CgolIHJ1bGVzIGZvciB0aXRsZSBib3ggYXQgdG9wIG9mIGZpcnN0IHBhZ2UKXG5ld2NvbW1hbmR7XEB0b3B0aXRsZWJhcn17CiAgXGhydWxlIGhlaWdodCA0XHBACiAgXHZza2lwIDAuMjVpbgogIFx2c2tpcCAtXHBhcnNraXAlCn0KXG5ld2NvbW1hbmR7XEBib3R0b210aXRsZWJhcn17CiAgXHZza2lwIDAuMjlpbgogIFx2c2tpcCAtXHBhcnNraXAKICBcaHJ1bGUgaGVpZ2h0IDFccEAKICBcdnNraXAgMC4wOWluJQp9CgolIGNyZWF0ZSB0aXRsZSAoaW5jbHVkZXMgYm90aCBhbm9ueW1pemVkIGFuZCBub24tYW5vbnltaXplZCB2ZXJzaW9ucykKXHByb3ZpZGVjb21tYW5ke1xAbWFrZXRpdGxlfXt9ClxyZW5ld2NvbW1hbmR7XEBtYWtldGl0bGV9eyUKICBcdmJveHslCiAgICBcaHNpemVcdGV4dHdpZHRoCiAgICBcbGluZXdpZHRoXGhzaXplCiAgICBcdnNraXAgMC4xaW4KICAgIFxAdG9wdGl0bGViYXIKICAgIFxjZW50ZXJpbmcKICAgIHtcTEFSR0VcYmYgXEB0aXRsZVxwYXJ9CiAgICBcQGJvdHRvbXRpdGxlYmFyCiAgICBcaWZAc3VibWlzc2lvbgogICAgICBcYmVnaW57dGFidWxhcn1bdF17Y31cYmZccnVsZXtcekB9ezI0XHBAfQogICAgICAgIEFub255bW91cyBBdXRob3IocykgXFwKICAgICAgICBBZmZpbGlhdGlvbiBcXAogICAgICAgIEFkZHJlc3MgXFwKICAgICAgICBcdGV4dHR0e2VtYWlsfSBcXAogICAgICBcZW5ke3RhYnVsYXJ9JQogICAgXGVsc2UKICAgICAgXGRlZlxBbmR7JQogICAgICAgIFxlbmR7dGFidWxhcn1caGZpbFxsaW5lYnJlYWtbMF1caGZpbCUKICAgICAgICBcYmVnaW57dGFidWxhcn1bdF17Y31cYmZccnVsZXtcekB9ezI0XHBAfVxpZ25vcmVzcGFjZXMlCiAgICAgIH0KICAgICAgXGRlZlxBTkR7JQogICAgICAgIFxlbmR7dGFidWxhcn1caGZpbFxsaW5lYnJlYWtbNF1caGZpbCUKICAgICAgICBcYmVnaW57dGFidWxhcn1bdF17Y31cYmZccnVsZXtcekB9ezI0XHBAfVxpZ25vcmVzcGFjZXMlCiAgICAgIH0KICAgICAgXGJlZ2lue3RhYnVsYXJ9W3Rde2N9XGJmXHJ1bGV7XHpAfXsyNFxwQH1cQGF1dGhvclxlbmR7dGFidWxhcn0lCiAgICBcZmkKICAgIFx2c2tpcCAwLjNpbiBcQG1pbnVzIDAuMWluCiAgfQp9CgolIGFkZCBjb25mZXJlbmNlIG5vdGljZSB0byBib3R0b20gb2YgZmlyc3QgcGFnZQpcbmV3Y29tbWFuZHtcZnR5cGVAbm90aWNlYm94fXs4fQpcbmV3Y29tbWFuZHtcQG5vdGljZX17JQogICUgZ2l2ZSBhIGJpdCBvZiBleHRyYSByb29tIGJhY2sgdG8gYXV0aG9ycyBvbiBmaXJzdCBwYWdlCiAgXGVubGFyZ2V0aGlzcGFnZXsyXGJhc2VsaW5lc2tpcH0lCiAgXEBmbG9hdHtub3RpY2Vib3h9W2JdJQogICAgXGZvb3Rub3Rlc2l6ZVxAbm90aWNlc3RyaW5nJQogIFxlbmRAZmxvYXQlCn0KCiUgYWJzdHJhY3Qgc3R5bGluZwpccmVuZXdlbnZpcm9ubWVudHthYnN0cmFjdH0lCnslCiAgXHZza2lwIDAuMDc1aW4lCiAgXGNlbnRlcmxpbmUlCiAge1xsYXJnZVxiZiBBYnN0cmFjdH0lCiAgXHZzcGFjZXswLjVleH0lCiAgXGJlZ2lue3F1b3RlfSUKfQp7CiAgXHBhciUKICBcZW5ke3F1b3RlfSUKICBcdnNraXAgMWV4JQp9CgolIGhhbmRsZSB0d2Vha3MgZm9yIGNhbWVyYS1yZWFkeSBjb3B5IHZzLiBzdWJtaXNzaW9uIGNvcHkKXGlmQHByZXByaW50CiAgXG5ld2NvbW1hbmR7XEBub3RpY2VzdHJpbmd9eyUKICAgIFByZXByaW50LiBVbmRlciByZXZpZXcuJQogIH0KXGVsc2UKICBcaWZAbmV1cmlwc2ZpbmFsCiAgICBcbmV3Y29tbWFuZHtcQG5vdGljZXN0cmluZ317JQogICAgICAoXEBuZXVyaXBzeWVhcikgXEB0aXRsZSAKICAgIH0KICBcZWxzZQogICAgXG5ld2NvbW1hbmR7XEBub3RpY2VzdHJpbmd9eyUKICAgICAoXEBuZXVyaXBzeWVhcikgXEB0aXRsZSAlCiAgICB9CgogICAgJSBoaWRlIHRoZSBhY2tub3dsZWRnZW1lbnRzCiAgICBcTmV3RW52aXJvbntoaWRlfXt9CiAgICBcbGV0XGFja1xoaWRlCiAgICBcbGV0XGVuZGFja1xlbmRoaWRlCgogICAgJSBsaW5lIG51bWJlcnMgZm9yIHN1Ym1pc3Npb24KICAgIFxSZXF1aXJlUGFja2FnZXtsaW5lbm99CiAgICBcbGluZW51bWJlcnMKCiAgICAlIGZpeCBpbmNvbXBhdGliaWxpdGllcyBiZXR3ZWVuIGxpbmVubyBhbmQgYW1zbWF0aCwgaWYgcmVxdWlyZWQsIGJ5CiAgICAlIHRyYW5zcGFyZW50bHkgd3JhcHBpbmcgbGluZW5vbWF0aCBlbnZpcm9ubWVudHMgYXJvdW5kIGFtc21hdGgKICAgICUgZW52aXJvbm1lbnRzCiAgICBcQXRCZWdpbkRvY3VtZW50eyUKICAgICAgXEBpZnBhY2thZ2Vsb2FkZWR7YW1zbWF0aH17JQogICAgICAgIFxuZXdjb21tYW5kKlxwYXRjaEFtc01hdGhFbnZpcm9ubWVudEZvckxpbmVub1sxXXslCiAgICAgICAgICBcZXhwYW5kYWZ0ZXJcbGV0XGNzbmFtZSBvbGQjMVxleHBhbmRhZnRlclxlbmRjc25hbWVcY3NuYW1lICMxXGVuZGNzbmFtZQogICAgICAgICAgXGV4cGFuZGFmdGVyXGxldFxjc25hbWUgb2xkZW5kIzFcZXhwYW5kYWZ0ZXJcZW5kY3NuYW1lXGNzbmFtZSBlbmQjMVxlbmRjc25hbWUKICAgICAgICAgIFxyZW5ld2Vudmlyb25tZW50eyMxfSUKICAgICAgICAgICAgICAgICAgICAgICAgICB7XGxpbmVub21hdGhcY3NuYW1lIG9sZCMxXGVuZGNzbmFtZX0lCiAgICAgICAgICAgICAgICAgICAgICAgICAge1xjc25hbWUgb2xkZW5kIzFcZW5kY3NuYW1lXGVuZGxpbmVub21hdGh9JQogICAgICAgIH0lCiAgICAgICAgXG5ld2NvbW1hbmQqXHBhdGNoQm90aEFtc01hdGhFbnZpcm9ubWVudHNGb3JMaW5lbm9bMV17JQogICAgICAgICAgXHBhdGNoQW1zTWF0aEVudmlyb25tZW50Rm9yTGluZW5veyMxfSUKICAgICAgICAgIFxwYXRjaEFtc01hdGhFbnZpcm9ubWVudEZvckxpbmVub3sjMSp9JQogICAgICAgIH0lCiAgICAgICAgXHBhdGNoQm90aEFtc01hdGhFbnZpcm9ubWVudHNGb3JMaW5lbm97ZXF1YXRpb259JQogICAgICAgIFxwYXRjaEJvdGhBbXNNYXRoRW52aXJvbm1lbnRzRm9yTGluZW5ve2FsaWdufSUKICAgICAgICBccGF0Y2hCb3RoQW1zTWF0aEVudmlyb25tZW50c0ZvckxpbmVub3tmbGFsaWdufSUKICAgICAgICBccGF0Y2hCb3RoQW1zTWF0aEVudmlyb25tZW50c0ZvckxpbmVub3thbGlnbmF0fSUKICAgICAgICBccGF0Y2hCb3RoQW1zTWF0aEVudmlyb25tZW50c0ZvckxpbmVub3tnYXRoZXJ9JQogICAgICAgIFxwYXRjaEJvdGhBbXNNYXRoRW52aXJvbm1lbnRzRm9yTGluZW5ve211bHRsaW5lfSUKICAgICAgfQogICAgICB7fQogICAgfQogIFxmaQpcZmkKCgpcZW5kaW5wdXQK"),e=>e.charCodeAt(0)),QC=Object.freeze(Object.defineProperty({__proto__:null,default:TC},Symbol.toStringTag,{value:"Module"})),EC=Uint8Array.from(atob("XGRvY3VtZW50Y2xhc3N7YXJ0aWNsZX0KCgolIGlmIHlvdSBuZWVkIHRvIHBhc3Mgb3B0aW9ucyB0byBuYXRiaWIsIHVzZSwgZS5nLjoKJSAgICAgXFBhc3NPcHRpb25zVG9QYWNrYWdle251bWJlcnMsIGNvbXByZXNzfXtuYXRiaWJ9CiUgYmVmb3JlIGxvYWRpbmcgbmV1cmlwc18yMDIzCgoKJSByZWFkeSBmb3Igc3VibWlzc2lvbgpcdXNlcGFja2FnZVtmaW5hbF17bmV1cmlwc30KCgolIHRvIGNvbXBpbGUgYSBwcmVwcmludCB2ZXJzaW9uLCBlLmcuLCBmb3Igc3VibWlzc2lvbiB0byBhclhpdiwgYWRkIGFkZCB0aGUKJSBbcHJlcHJpbnRdIG9wdGlvbjoKJSAgICAgXHVzZXBhY2thZ2VbcHJlcHJpbnRde25ldXJpcHNfMjAyM30KCgolIHRvIGNvbXBpbGUgYSBjYW1lcmEtcmVhZHkgdmVyc2lvbiwgYWRkIHRoZSBbZmluYWxdIG9wdGlvbiwgZS5nLjoKJSAgICAgXHVzZXBhY2thZ2VbZmluYWxde25ldXJpcHNfMjAyM30KCgolIHRvIGF2b2lkIGxvYWRpbmcgdGhlIG5hdGJpYiBwYWNrYWdlLCBhZGQgb3B0aW9uIG5vbmF0YmliOgolICAgIFx1c2VwYWNrYWdlW25vbmF0YmliXXtuZXVyaXBzXzIwMjN9CgoKXHVzZXBhY2thZ2VbdXRmOF17aW5wdXRlbmN9ICUgYWxsb3cgdXRmLTggaW5wdXQKXHVzZXBhY2thZ2VbVDFde2ZvbnRlbmN9ICAgICUgdXNlIDgtYml0IFQxIGZvbnRzClx1c2VwYWNrYWdle2h5cGVycmVmfSAgICAgICAlIGh5cGVybGlua3MKXHVzZXBhY2thZ2V7dXJsfSAgICAgICAgICAgICUgc2ltcGxlIFVSTCB0eXBlc2V0dGluZwpcdXNlcGFja2FnZXtib29rdGFic30gICAgICAgJSBwcm9mZXNzaW9uYWwtcXVhbGl0eSB0YWJsZXMKXHVzZXBhY2thZ2V7YW1zZm9udHN9ICAgICAgICUgYmxhY2tib2FyZCBtYXRoIHN5bWJvbHMKXHVzZXBhY2thZ2V7bmljZWZyYWN9ICAgICAgICUgY29tcGFjdCBzeW1ib2xzIGZvciAxLzIsIGV0Yy4KXHVzZXBhY2thZ2V7bWljcm90eXBlfSAgICAgICUgbWljcm90eXBvZ3JhcGh5Clx1c2VwYWNrYWdle3hjb2xvcn0gICAgICAgICAlIGNvbG9ycwpcdXNlcGFja2FnZXtncmFwaGljeH0KClxtYWtlYXRsZXR0ZXIKXGRlZlxtYXh3aWR0aHtcaWZkaW1cR2luQG5hdEB3aWR0aD5cbGluZXdpZHRoXGxpbmV3aWR0aFxlbHNlXEdpbkBuYXRAd2lkdGhcZml9ClxkZWZcbWF4aGVpZ2h0e1xpZmRpbVxHaW5AbmF0QGhlaWdodD5cdGV4dGhlaWdodFx0ZXh0aGVpZ2h0XGVsc2VcR2luQG5hdEBoZWlnaHRcZml9ClxtYWtlYXRvdGhlcgolIFNjYWxlIGltYWdlcyBpZiBuZWNlc3NhcnksIHNvIHRoYXQgdGhleSB3aWxsIG5vdCBvdmVyZmxvdyB0aGUgcGFnZQolIG1hcmdpbnMgYnkgZGVmYXVsdCwgYW5kIGl0IGlzIHN0aWxsIHBvc3NpYmxlIHRvIG92ZXJ3cml0ZSB0aGUgZGVmYXVsdHMKJSB1c2luZyBleHBsaWNpdCBvcHRpb25zIGluIFxpbmNsdWRlZ3JhcGhpY3Nbd2lkdGgsIGhlaWdodCwgLi4uXXt9ClxzZXRrZXlze0dpbn17d2lkdGg9XG1heHdpZHRoLGhlaWdodD1cbWF4aGVpZ2h0LGtlZXBhc3BlY3RyYXRpb30KJSBTZXQgZGVmYXVsdCBmaWd1cmUgcGxhY2VtZW50IHRvIGh0YnAKXG1ha2VhdGxldHRlcgpcZGVmXGZwc0BmaWd1cmV7aHRicH0KXG1ha2VhdG90aGVyCgokaWYoY3NsLXJlZnMpJApcbmV3bGVuZ3Roe1xjc2xoYW5naW5kZW50fQpcc2V0bGVuZ3Roe1xjc2xoYW5naW5kZW50fXsxLjVlbX0KXG5ld2xlbmd0aHtcY3NsbGFiZWx3aWR0aH0KXHNldGxlbmd0aHtcY3NsbGFiZWx3aWR0aH17M2VtfQpcbmV3bGVuZ3Roe1xjc2xlbnRyeXNwYWNpbmd1bml0fSAlIHRpbWVzIGVudHJ5LXNwYWNpbmcKXHNldGxlbmd0aHtcY3NsZW50cnlzcGFjaW5ndW5pdH17XHBhcnNraXB9ClxuZXdlbnZpcm9ubWVudHtDU0xSZWZlcmVuY2VzfVsyXSAlICMxIGhhbmdpbmctaWRlbnQsICMyIGVudHJ5IHNwYWNpbmcKIHslIGRvbid0IGluZGVudCBwYXJhZ3JhcGhzCiAgXHNldGxlbmd0aHtccGFyaW5kZW50fXswcHR9CiAgJSB0dXJuIG9uIGhhbmdpbmcgaW5kZW50IGlmIHBhcmFtIDEgaXMgMQogIFxpZm9kZCAjMQogIFxsZXRcb2xkcGFyXHBhcgogIFxkZWZccGFye1xoYW5naW5kZW50PVxjc2xoYW5naW5kZW50XG9sZHBhcn0KICBcZmkKICAlIHNldCBlbnRyeSBzcGFjaW5nCiAgXHNldGxlbmd0aHtccGFyc2tpcH17IzJcY3NsZW50cnlzcGFjaW5ndW5pdH0KIH0lCiB7fQpcdXNlcGFja2FnZXtjYWxjfQpcbmV3Y29tbWFuZHtcQ1NMQmxvY2t9WzFdeyMxXGhmaWxsXGJyZWFrfQpcbmV3Y29tbWFuZHtcQ1NMTGVmdE1hcmdpbn1bMV17XHBhcmJveFt0XXtcY3NsbGFiZWx3aWR0aH17IzF9fQpcbmV3Y29tbWFuZHtcQ1NMUmlnaHRJbmxpbmV9WzFde1xwYXJib3hbdF17XGxpbmV3aWR0aCAtIFxjc2xsYWJlbHdpZHRofXsjMX1cYnJlYWt9ClxuZXdjb21tYW5ke1xDU0xJbmRlbnR9WzFde1xoc3BhY2V7XGNzbGhhbmdpbmRlbnR9IzF9CiRlbmRpZiQKXHByb3ZpZGVjb21tYW5ke1x0aWdodGxpc3R9eyUKICBcc2V0bGVuZ3Roe1xpdGVtc2VwfXswcHR9XHNldGxlbmd0aHtccGFyc2tpcH17MHB0fX0KXHRpdGxleyR0aXRsZSR9CgoKJSBJdGVyYXRlIHRocm91Z2ggdGhlIGF1dGhvcnMgZXhjZXB0IGxhc3QgdG8gYWRkIFxBbmQuIAoKXGF1dGhvcnslCiRmb3IoYXV0aG9ycy9hbGxidXRsYXN0KSQKICAkYXV0aG9ycy5uYW1lJFxcJGF1dGhvcnMuYWZmaWxpYXRpb24kXFwkYXV0aG9ycy5pbnN0aXR1dGlvbiRcXCRhdXRob3JzLmVtYWlsJFxcJGF1dGhvcnMuYWRkcmVzcyQgXEFuZAokZW5kZm9yJAokZm9yKGF1dGhvcnMvbGFzdCkkCiAgJGF1dGhvcnMubmFtZSRcXCRhdXRob3JzLmFmZmlsaWF0aW9uJFxcJGF1dGhvcnMuaW5zdGl0dXRpb24kXFwkYXV0aG9ycy5lbWFpbCRcXCRhdXRob3JzLmFkZHJlc3MkCiRlbmRmb3IkCn0KCiUgXGF1dGhvcnslCiUgICBEYXZpZCBTLn5IaXBwb2NhbXB1cyBcXAolICAgRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlXFwKJSAgIENyYW5iZXJyeS1MZW1vbiBVbml2ZXJzaXR5XFwKJSAgIFBpdHRzYnVyZ2gsIFBBIDE1MjEzIFxcCiUgICBcdGV4dHR0e2hpcHBvQGNzLmNyYW5iZXJyeS1sZW1vbi5lZHV9IFxcCiUgICAlIGV4YW1wbGVzIG9mIG1vcmUgYXV0aG9ycwolICAgJSBcQW5kCiUgICAlIENvYXV0aG9yIFxcCiUgICAlIEFmZmlsaWF0aW9uIFxcCiUgICAlIEFkZHJlc3MgXFwKJSAgICUgXHRleHR0dHtlbWFpbH0gXFwKJSAgICUgXEFORAolICAgJSBDb2F1dGhvciBcXAolICAgJSBBZmZpbGlhdGlvbiBcXAolICAgJSBBZGRyZXNzIFxcCiUgICAlIFx0ZXh0dHR7ZW1haWx9IFxcCiUgICAlIFxBbmQKJSAgICUgQ29hdXRob3IgXFwKJSAgICUgQWZmaWxpYXRpb24gXFwKJSAgICUgQWRkcmVzcyBcXAolICAgJSBcdGV4dHR0e2VtYWlsfSBcXAolICAgJSBcQW5kCiUgICAlIENvYXV0aG9yIFxcCiUgICAlIEFmZmlsaWF0aW9uIFxcCiUgICAlIEFkZHJlc3MgXFwKJSAgICUgXHRleHR0dHtlbWFpbH0gXFwKJSB9CgoKXGJlZ2lue2RvY3VtZW50fQoKClxtYWtldGl0bGUKCgpcYmVnaW57YWJzdHJhY3R9CiAgJGlmKGFic3RyYWN0KSQKICAkYWJzdHJhY3QkCiAgJGVsc2UkCiAgQWRkIHlvdXIgYWJzdHJhY3QgYXQgdGhlIGJlZ2lubmluZyBvZiB5b3VyIG1hcmtkb3duIGZpbGUgbGlrZSB0aGlzIAogIFxiZWdpbnt2ZXJiYXRpbX0KICAtLS0gCiAgdGl0bGU6ICJZb3VyIFRpdGxlIiAKICBhYnN0cmFjdDogInlvdXIgYWJzdHJhY3QgaGVyZSIKICBhdXRob3JzOgogIC0gbmFtZTogTGVvbmFyZG8gVi4gQ2FzdG9yaW5hCiAgICBhZmZpbGlhdGlvbjogU2Nob29sIG9mIEluZm9ybWF0aWNzCiAgICBpbnN0aXR1dGlvbjogVW5pdmVyc2l0eSBvZiBFZGluYnVyZ2gKICAgIGVtYWlsOiBqdXN0YW5lbWFpbEBkb21haW4uZXh0CiAgICBhZGRyZXNzOiBFZGluYnVyZ2gKICAtIG5hbWU6IENvYXV0aG9yCiAgICBhZmZpbGlhdGlvbjogQWZmaWxpYXRpb24KICAgIGluc3RpdHV0aW9uOiBJbnN0aXR1dGlvbgogICAgZW1haWw6IGNvYXV0aG9yQGV4YW1wbGUuY29tCiAgICBhZGRyZXNzOiBBZGRyZXNzCiAgLS0tCiAgXGVuZHt2ZXJiYXRpbX0KICBUaGlzIGlzIGNhbGxlZCBZQU1MIGZyb250bWF0dGVyLiBJZiB5b3Ugc2V0IHlvdXIgYWJzdHJhY3QgY29ycmVjdGx5IHlvdSBzaG91bGQgbm90IHNlZSB0aGlzIG1lc3NhZ2UuCiAgJGVuZGlmJApcZW5ke2Fic3RyYWN0fQoKCiRib2R5JAoKJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlCgoKXGVuZHtkb2N1bWVudH0="),e=>e.charCodeAt(0)),KC=Object.freeze(Object.defineProperty({__proto__:null,default:EC},Symbol.toStringTag,{value:"Module"})),Vc=(e,l)=>[e,Object.entries(l).map(([t,c])=>[t.substring(e.length+3),c.default])],Zc=[Vc("lua",Object.assign({"../lua/citefilter.lua":AC,"../lua/markdown+hugo.lua":GC,"../lua/markdown.lua":JC,"../lua/math_block.lua":FC,"../lua/pdf.lua":UC,"../lua/polyfill.lua":YC,"../lua/url.lua":kC,"../lua/utf8_filenames.lua":BC})),Vc("textemplate",Object.assign({"../textemplate/dissertation.tex":fC,"../textemplate/neurips.sty":QC,"../textemplate/neurips.tex":KC}))];class HC extends be.Plugin{constructor(l,t){super(l,t),this.lang=kc.current,this.saveSettings=be.debounce(this.saveSettings.bind(this),1e3,!0)}async onload(){await this.releaseResources(),await this.loadSettings();const{lang:l}=this;this.addSettingTab(new bC(this)),this.addCommand({id:"obsidian-enhancing-export:export",name:l.exportToOo,icon:"document",callback:()=>{const t=this.app.workspace.getActiveFile();t?Ll.show(this,t):new be.Notice(l.pleaseOpenFile,2e3)}}),this.addCommand({id:"obsidian-enhancing-export:export-with-previous",name:l.exportWithPrevious,icon:"document",callback:async()=>{const t=this.app.workspace.getActiveFile();if(t){if(this.settings.lastExportType&&this.settings.lastExportDirectory){const c=this.settings.items.find(n=>n.name===this.settings.lastExportType);if(c){await xc(this,t,ae(this.settings.lastExportDirectory),void 0,c);return}}Ll.show(this,t)}else new be.Notice(l.pleaseOpenFile,2e3)}}),this.registerEvent(this.app.workspace.on("file-menu",(t,c)=>{c instanceof be.TFile&&t.addItem(n=>{n.setTitle(l.exportToOo).setIcon("document").onClick(()=>{Ll.show(this,c)})}).addSeparator()}))}async resetSettings(){this.settings={...JSON.parse(JSON.stringify(_e)),lastExportDirectory:this.settings.lastExportDirectory},await this.saveSettings()}async loadSettings(){const l=Object.assign({},_e,await this.loadData());l.items.forEach(t=>{Object.assign(t,Object.assign({},_e.items.find(c=>c.name===t.name)??{},t))});for(const t of _e.items)l.items.every(c=>c.name!==t.name)&&l.items.push(t);this.settings=l}async saveSettings(){console.log("[obsidian-enhancing-export] saveSettings",this.settings);const l=JSON.parse(JSON.stringify(this.settings));if(l.items.forEach(t=>{const c=_e.items.find(n=>n.name===t.name);c&&Object.keys(t).forEach(n=>{n!=="name"&&JSON.stringify(t[n])===JSON.stringify(c[n])&&delete t[n]})}),l.env)for(const t of Object.keys(l.env)){const c=l.env[t];if(JSON.stringify(c)===JSON.stringify(Cl[t])){delete l.env[t];continue}const n=ae(Cl,t);for(const[I,i]of Object.entries(c))i===n[I]&&delete c[I];Object.keys(c).length===0&&delete l.env[t]}await this.saveData(l)}async releaseResources(){const{adapter:l}=this.app.vault;for(const[t,c]of Zc){const n=oe.join(this.manifest.dir,t);await l.mkdir(n);for(const[I,i]of c){const g=oe.join(n,I);await l.writeBinary(g,i)}}Zc.length=0}}exports.default=HC;
|