31 lines
173 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";var dl=e=>{throw TypeError(e)};var gl=(e,l,t)=>l.has(e)||dl("Cannot "+t);var bl=(e,l,t)=>(gl(e,l,"read from private field"),t?t.call(e):l.get(e)),Zl=(e,l,t)=>l.has(e)?dl("Cannot add the same private member more than once"):l instanceof WeakSet?l.add(e):l.set(e,t),ml=(e,l,t,n)=>(gl(e,l,"write to private field"),n?n.call(e,t):l.set(e,t),t);/*!
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository https://github.com/mokeyish/obsidian-enhancing-export .
*/Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const Ie=require("obsidian"),Sn=require("child_process"),pt=require("process"),Pl=require("electron"),Dl=require("fs"),ae=require("path"),wn=require("util");function Dt(e){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(l,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return l.default=e,Object.freeze(l)}const En=Dt(Ie),Be=Dt(Pl),yt=Dt(Dl),dt={Markdown:{name:"Markdown",type:"pandoc",arguments:'-f ${fromFormat} --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 ${fromFormat} --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 ${fromFormat} --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 ${fromFormat} --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 ${fromFormat} --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 ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/pdf.lua" ${ options.textemplate ? `--resource-path="${pluginDir}/textemplate" --template="${options.textemplate}"` : ` ` } -o "${outputPath}" -t pdf',customArguments:"--pdf-engine=pdflatex",optionsMeta:{textemplate:"preset:textemplate"},extension:".pdf"},"Word (.docx)":{name:"Word (.docx)",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -o "${outputPath}" -t docx',extension:".docx"},OpenOffice:{name:"OpenOffice",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -o "${outputPath}" -t odt',extension:".odt"},RTF:{name:"RTF",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t rtf',extension:".rtf"},Epub:{name:"Epub",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -o "${outputPath}" -t epub',extension:".epub"},Latex:{name:"Latex",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" ${ options.textemplate ? `--resource-path="${pluginDir}/textemplate" --template="${options.textemplate}"` : ` ` } --extract-media="${outputDir}" -s -o "${outputPath}" -t latex',optionsMeta:{textemplate:"preset:textemplate"},extension:".tex"},"Media Wiki":{name:"Media Wiki",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t mediawiki',extension:".mediawiki"},reStructuredText:{name:"reStructuredText",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t rst',extension:".rst"},Textile:{name:"Textile",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t textile',extension:".textile"},OPML:{name:"OPML",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t opml',extension:".opml"},"Bibliography (.bib)":{name:"Bibliography",type:"pandoc",arguments:'-f ${fromFormat} --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 Ae(e,l,t){return typeof l=="string"&&l.trim()===""&&(l=void 0),t instanceof Array?t.reduce((n,c)=>Ae(n,l,c),e):(t??(t=pt.platform),{...e??{},[t]:l})}function de(e,l){e??(e={});const t=e[l??pt.platform],n=e["*"];return n&&typeof n=="object"?Object.assign({},n,t):t??n}function $(e,...l){return function(...t){const n=t[t.length-1]||{},c=[e[0]];return l.forEach(function(i,o){const s=Number.isInteger(i)?t[i]:n[i];c.push(s,e[o+1])}),c.join("")}}function zt(e,l){return l=l??{},new Promise((t,n)=>{Sn.exec(e,l,(c,i,o)=>{if(c){n(c),console.error(i,c);return}if(o&&o!==""){n(o),console.error(i,c);return}(i==null?void 0:i.trim().length)===0&&localStorage.getItem("debug-plugin")==="1"&&console.log(i),t(i)})})}function Kn(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.substring(1,e.length-1):e}function Ut(e,l={}){for(;;)try{const t=Object.keys(l).filter(Qn),n=t.map(c=>l[c]);return new Function(...t,`{ return \`${e.replaceAll("\\","\\\\")}\` }`).bind(l)(...n)}catch(t){if(t instanceof ReferenceError&&t.message.endsWith("is not defined")){const n=t.message.substring(0,t.message.indexOf(" ")),c=Object.keys(l).filter(i=>i.toLowerCase()===n.toLowerCase()).map(i=>l[i])[0]??`\${${n}}`;l[n]=c}else throw t}}const Qn=e=>{if(typeof e!="string"||e.trim()!==e)return!1;try{new Function(e,"var "+e)}catch{return!1}return!0},zn={textemplate:{title:"Latex Template",type:"dropdown",options:[{name:"None",value:null},{name:"Dissertation",value:"dissertation.tex"},{name:"Academic Paper",value:"neurips.tex"}]}},De=(()=>{let e={};return e=Ae(e,{HOME:"${HOME}",PATH:"${PATH}",TEXINPUTS:"${pluginDir}/textemplate/:"},"*"),e=Ae(e,{TEXINPUTS:"${pluginDir}/textemplate/;",PATH:"${HOME}\\AppData\\Local\\Pandoc;${PATH}"},"win32"),e=Ae(e,{PATH:"/opt/homebrew/bin:/usr/local/bin:/Library/TeX/texbin:${PATH}"},"darwin"),e})(),Le={items:Object.values(dt).filter(e=>e.type!=="custom"),pandocPath:void 0,defaultExportDirectoryMode:"Auto",openExportedFile:!0,env:De,showExportProgressBar:!0};function _l(e){var l;return e.type==="pandoc"?e.extension:e.type==="custom"?(l=e.targetFileExtensions)==null?void 0:l.split(",")[0]:""}function ql(e,l){return e=Object.assign({},de(De),e),l=Object.assign({HOME:process.env.HOME??process.env.USERPROFILE},process.env,l??{}),Object.fromEntries(Object.entries(e).map(([t,n])=>[t,Ut(n,l)]))}function Un(e){return e?Object.fromEntries(Object.entries(e).map(([l,t])=>[l,typeof t=="string"?zn[t.startsWith("preset:")?t.substring(7):""]:t])):{}}const jn=(e,l)=>e===l,pe=Symbol("solid-proxy"),jt=Symbol("solid-track"),mt={equals:jn};let en=on;const Fe=1,ut=2,tn={owned:null,cleanups:null,context:null,owner:null};var T=null;let Bt=null,Ln=null,O=null,le=null,Je=null,Xt=0;function Se(e,l){const t=O,n=T,c=e.length===0,i=n,o=c?tn:{owned:null,cleanups:null,context:i?i.context:null,owner:i},s=c?e:()=>e(()=>P(()=>ft(o)));T=o,O=null;try{return Ue(s,!0)}finally{O=t,T=n}}function oe(e,l){l=l?Object.assign({},mt,l):mt;const t={value:e,observers:null,observerSlots:null,comparator:l.equals||void 0},n=c=>(typeof c=="function"&&(c=c(t.value)),sn(t,c));return[cn.bind(t),n]}function te(e,l,t){const n=_t(e,l,!1,Fe);tt(n)}function Ye(e,l,t){en=Pn;const n=_t(e,l,!1,Fe);n.user=!0,Je?Je.push(n):tt(n)}function ee(e,l,t){t=t?Object.assign({},mt,t):mt;const n=_t(e,l,!0,0);return n.observers=null,n.observerSlots=null,n.comparator=t.equals||void 0,tt(n),cn.bind(n)}function gt(e){return Ue(e,!1)}function P(e){if(O===null)return e();const l=O;O=null;try{return e()}finally{O=l}}function ln(e){Ye(()=>P(e))}function ze(e){return T===null||(T.cleanups===null?T.cleanups=[e]:T.cleanups.push(e)),e}function Lt(){return O}function $n(e,l){const t=Symbol("context");return{id:t,Provider:_n(t),defaultValue:e}}function Tn(e){return T&&T.context&&T.context[e.id]!==void 0?T.context[e.id]:e.defaultValue}function nn(e){const l=ee(e),t=ee(()=>$t(l()));return t.toArray=()=>{const n=t();return Array.isArray(n)?n:n!=null?[n]:[]},t}function cn(){if(this.sources&&this.state)if(this.state===Fe)tt(this);else{const e=le;le=null,Ue(()=>It(this),!1),le=e}if(O){const e=this.observers?this.observers.length:0;O.sources?(O.sources.push(this),O.sourceSlots.push(e)):(O.sources=[this],O.sourceSlots=[e]),this.observers?(this.observers.push(O),this.observerSlots.push(O.sources.length-1)):(this.observers=[O],this.observerSlots=[O.sources.length-1])}return this.value}function sn(e,l,t){let n=e.value;return(!e.comparator||!e.comparator(n,l))&&(e.value=l,e.observers&&e.observers.length&&Ue(()=>{for(let c=0;c<e.observers.length;c+=1){const i=e.observers[c],o=Bt&&Bt.running;o&&Bt.disposed.has(i),(o?!i.tState:!i.state)&&(i.pure?le.push(i):Je.push(i),i.observers&&an(i)),o||(i.state=Fe)}if(le.length>1e6)throw le=[],new Error},!1)),l}function tt(e){if(!e.fn)return;ft(e);const l=Xt;Mn(e,e.value,l)}function Mn(e,l,t){let n;const c=T,i=O;O=T=e;try{n=e.fn(l)}catch(o){return e.pure&&(e.state=Fe,e.owned&&e.owned.forEach(ft),e.owned=null),e.updatedAt=t+1,rn(o)}finally{O=i,T=c}(!e.updatedAt||e.updatedAt<=t)&&(e.updatedAt!=null&&"observers"in e?sn(e,n):e.value=n,e.updatedAt=t)}function _t(e,l,t,n=Fe,c){const i={fn:e,state:n,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:l,owner:T,context:T?T.context:null,pure:t};return T===null||T!==tn&&(T.owned?T.owned.push(i):T.owned=[i]),i}function Gt(e){if(e.state===0)return;if(e.state===ut)return It(e);if(e.suspense&&P(e.suspense.inFallback))return e.suspense.effects.push(e);const l=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<Xt);)e.state&&l.push(e);for(let t=l.length-1;t>=0;t--)if(e=l[t],e.state===Fe)tt(e);else if(e.state===ut){const n=le;le=null,Ue(()=>It(e,l[0]),!1),le=n}}function Ue(e,l){if(le)return e();let t=!1;l||(le=[]),Je?t=!0:Je=[],Xt++;try{const n=e();return On(t),n}catch(n){t||(Je=null),le=null,rn(n)}}function On(e){if(le&&(on(le),le=null),e)return;const l=Je;Je=null,l.length&&Ue(()=>en(l),!1)}function on(e){for(let l=0;l<e.length;l++)Gt(e[l])}function Pn(e){let l,t=0;for(l=0;l<e.length;l++){const n=e[l];n.user?e[t++]=n:Gt(n)}for(l=0;l<t;l++)Gt(e[l])}function It(e,l){e.state=0;for(let t=0;t<e.sources.length;t+=1){const n=e.sources[t];if(n.sources){const c=n.state;c===Fe?n!==l&&(!n.updatedAt||n.updatedAt<Xt)&&Gt(n):c===ut&&It(n,l)}}}function an(e){for(let l=0;l<e.observers.length;l+=1){const t=e.observers[l];t.state||(t.state=ut,t.pure?le.push(t):Je.push(t),t.observers&&an(t))}}function ft(e){let l;if(e.sources)for(;e.sources.length;){const t=e.sources.pop(),n=e.sourceSlots.pop(),c=t.observers;if(c&&c.length){const i=c.pop(),o=t.observerSlots.pop();n<c.length&&(i.sourceSlots[o]=n,c[n]=i,t.observerSlots[n]=o)}}if(e.owned){for(l=e.owned.length-1;l>=0;l--)ft(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 Dn(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function rn(e,l=T){throw Dn(e)}function $t(e){if(typeof e=="function"&&!e.length)return $t(e());if(Array.isArray(e)){const l=[];for(let t=0;t<e.length;t++){const n=$t(e[t]);Array.isArray(n)?l.push.apply(l,n):l.push(n)}return l}return e}function _n(e,l){return function(n){let c;return te(()=>c=P(()=>(T.context={...T.context,[e]:n.value},nn(()=>n.children))),void 0),c}}const qn=Symbol("fallback");function ul(e){for(let l=0;l<e.length;l++)e[l]()}function ec(e,l,t={}){let n=[],c=[],i=[],o=0,s=l.length>1?[]:null;return ze(()=>ul(i)),()=>{let a=e()||[],Z,g;return a[jt],P(()=>{let x=a.length,p,Y,L,m,K,w,E,M,Q;if(x===0)o!==0&&(ul(i),i=[],n=[],c=[],o=0,s&&(s=[])),t.fallback&&(n=[qn],c[0]=Se(ge=>(i[0]=ge,t.fallback())),o=1);else if(o===0){for(c=new Array(x),g=0;g<x;g++)n[g]=a[g],c[g]=Se(I);o=x}else{for(L=new Array(x),m=new Array(x),s&&(K=new Array(x)),w=0,E=Math.min(o,x);w<E&&n[w]===a[w];w++);for(E=o-1,M=x-1;E>=w&&M>=w&&n[E]===a[M];E--,M--)L[M]=c[E],m[M]=i[E],s&&(K[M]=s[E]);for(p=new Map,Y=new Array(M+1),g=M;g>=w;g--)Q=a[g],Z=p.get(Q),Y[g]=Z===void 0?-1:Z,p.set(Q,g);for(Z=w;Z<=E;Z++)Q=n[Z],g=p.get(Q),g!==void 0&&g!==-1?(L[g]=c[Z],m[g]=i[Z],s&&(K[g]=s[Z]),g=Y[g],p.set(Q,g)):i[Z]();for(g=w;g<x;g++)g in L?(c[g]=L[g],i[g]=m[g],s&&(s[g]=K[g],s[g](g))):c[g]=Se(I);c=c.slice(0,o=x),n=a.slice(0)}return c});function I(x){if(i[g]=x,s){const[p,Y]=oe(g);return s[g]=Y,l(a[g],p)}return l(a[g])}}}function G(e,l){return P(()=>e(l||{}))}function ct(){return!0}const Gl={get(e,l,t){return l===pe?t:e.get(l)},has(e,l){return l===pe?!0:e.has(l)},set:ct,deleteProperty:ct,getOwnPropertyDescriptor(e,l){return{configurable:!0,enumerable:!0,get(){return e.get(l)},set:ct,deleteProperty:ct}},ownKeys(e){return e.keys()}};function tc(e,...l){if(pe in e){const c=new Set(l.length>1?l.flat():l[0]),i=l.map(o=>new Proxy({get(s){return o.includes(s)?e[s]:void 0},has(s){return o.includes(s)&&s in e},keys(){return o.filter(s=>s in e)}},Gl));return i.push(new Proxy({get(o){return c.has(o)?void 0:e[o]},has(o){return c.has(o)?!1:o in e},keys(){return Object.keys(e).filter(o=>!c.has(o))}},Gl)),i}const t={},n=l.map(()=>({}));for(const c of Object.getOwnPropertyNames(e)){const i=Object.getOwnPropertyDescriptor(e,c),o=!i.get&&!i.set&&i.enumerable&&i.writable&&i.configurable;let s=!1,a=0;for(const Z of l)Z.includes(c)&&(s=!0,o?n[a][c]=i.value:Object.defineProperty(n[a],c,i)),++a;s||(o?t[c]=i.value:Object.defineProperty(t,c,i))}return[...n,t]}const dn=e=>`Stale read from <${e}>.`;function gn(e){const l="fallback"in e&&{fallback:()=>e.fallback};return ee(ec(()=>e.each,e.children,l||void 0))}function bt(e){const l=e.keyed,t=ee(()=>e.when,void 0,{equals:(n,c)=>l?n===c:!n==!c});return ee(()=>{const n=t();if(n){const c=e.children;return typeof c=="function"&&c.length>0?P(()=>c(l?n:()=>{if(!P(t))throw dn("Show");return e.when})):c}return e.fallback},void 0,void 0)}function lc(e){let l=!1;const t=(i,o)=>(l?i[1]===o[1]:!i[1]==!o[1])&&i[2]===o[2],n=nn(()=>e.children),c=ee(()=>{let i=n();Array.isArray(i)||(i=[i]);for(let o=0;o<i.length;o++){const s=i[o].when;if(s)return l=!!i[o].keyed,[o,s,i[o]]}return[-1]},void 0,{equals:t});return ee(()=>{const[i,o,s]=c();if(i<0)return e.fallback;const a=s.children;return typeof a=="function"&&a.length>0?P(()=>a(l?o:()=>{if(P(c)[0]!==i)throw dn("Match");return s.when})):a},void 0,void 0)}function Il(e){return e}const nc=["allowfullscreen","async","autofocus","autoplay","checked","controls","default","disabled","formnovalidate","hidden","indeterminate","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","seamless","selected"],cc=new Set(["className","value","readOnly","formNoValidate","isMap","noModule","playsInline",...nc]),ic=new Set(["innerHTML","textContent","innerText","children"]),sc=Object.assign(Object.create(null),{className:"class",htmlFor:"for"}),oc=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 ac(e,l){const t=oc[e];return typeof t=="object"?t[l]?t.$:void 0:t}const rc=new Set(["beforeinput","click","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"]),dc=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","feDropShadow","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"]),gc={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"};function bc(e,l,t){let n=t.length,c=l.length,i=n,o=0,s=0,a=l[c-1].nextSibling,Z=null;for(;o<c||s<i;){if(l[o]===t[s]){o++,s++;continue}for(;l[c-1]===t[i-1];)c--,i--;if(c===o){const g=i<n?s?t[s-1].nextSibling:t[i-s]:a;for(;s<i;)e.insertBefore(t[s++],g)}else if(i===s)for(;o<c;)(!Z||!Z.has(l[o]))&&l[o].remove(),o++;else if(l[o]===t[i-1]&&t[s]===l[c-1]){const g=l[--c].nextSibling;e.insertBefore(t[s++],l[o++].nextSibling),e.insertBefore(t[--i],g),l[c]=t[i]}else{if(!Z){Z=new Map;let I=s;for(;I<i;)Z.set(t[I],I++)}const g=Z.get(l[o]);if(g!=null)if(s<g&&g<i){let I=o,x=1,p;for(;++I<c&&I<i&&!((p=Z.get(l[I]))==null||p!==g+x);)x++;if(x>g-s){const Y=l[o];for(;s<g;)e.insertBefore(t[s++],Y)}else e.replaceChild(t[s++],l[o++])}else o++;else l[o++].remove()}}}const Cl="_$DX_DELEGATE";function Ze(e,l,t){let n;const c=()=>{const o=document.createElement("template");return o.innerHTML=e,o.content.firstChild},i=()=>(n||(n=c())).cloneNode(!0);return i.cloneNode=i,i}function qt(e,l=window.document){const t=l[Cl]||(l[Cl]=new Set);for(let n=0,c=e.length;n<c;n++){const i=e[n];t.has(i)||(t.add(i),l.addEventListener(i,Cc))}}function xe(e,l,t){t==null?e.removeAttribute(l):e.setAttribute(l,t)}function Zc(e,l,t,n){n==null?e.removeAttributeNS(l,t):e.setAttributeNS(l,t,n)}function bn(e,l){l==null?e.removeAttribute("class"):e.className=l}function el(e,l,t,n){if(n)Array.isArray(t)?(e[`$$${l}`]=t[0],e[`$$${l}Data`]=t[1]):e[`$$${l}`]=t;else if(Array.isArray(t)){const c=t[0];e.addEventListener(l,t[0]=i=>c.call(e,t[1],i))}else e.addEventListener(l,t)}function mc(e,l,t={}){const n=Object.keys(l||{}),c=Object.keys(t);let i,o;for(i=0,o=c.length;i<o;i++){const s=c[i];!s||s==="undefined"||l[s]||(Wl(e,s,!1),delete t[s])}for(i=0,o=n.length;i<o;i++){const s=n[i],a=!!l[s];!s||s==="undefined"||t[s]===a||!a||(Wl(e,s,!0),t[s]=a)}return t}function tl(e,l,t){if(!l)return t?xe(e,"style"):l;const n=e.style;if(typeof l=="string")return n.cssText=l;typeof t=="string"&&(n.cssText=t=void 0),t||(t={}),l||(l={});let c,i;for(i in t)l[i]==null&&n.removeProperty(i),delete t[i];for(i in l)c=l[i],c!==t[i]&&(n.setProperty(i,c),t[i]=c);return t}function uc(e,l={},t,n){const c={};return te(()=>c.children=_e(e,l.children,c.children)),te(()=>typeof l.ref=="function"?Rt(l.ref,e):l.ref=e),te(()=>Gc(e,l,t,!0,c,!0)),c}function Rt(e,l,t){return P(()=>e(l,t))}function ne(e,l,t,n){if(t!==void 0&&!n&&(n=[]),typeof l!="function")return _e(e,l,n,t);te(c=>_e(e,l(),c,t),n)}function Gc(e,l,t,n,c={},i=!1){l||(l={});for(const o in c)if(!(o in l)){if(o==="children")continue;c[o]=hl(e,o,null,c[o],t,i)}for(const o in l){if(o==="children")continue;const s=l[o];c[o]=hl(e,o,s,c[o],t,i)}}function Ic(e){return e.toLowerCase().replace(/-([a-z])/g,(l,t)=>t.toUpperCase())}function Wl(e,l,t){const n=l.trim().split(/\s+/);for(let c=0,i=n.length;c<i;c++)e.classList.toggle(n[c],t)}function hl(e,l,t,n,c,i){let o,s,a,Z,g;if(l==="style")return tl(e,t,n);if(l==="classList")return mc(e,t,n);if(t===n)return n;if(l==="ref")i||t(e);else if(l.slice(0,3)==="on:"){const I=l.slice(3);n&&e.removeEventListener(I,n),t&&e.addEventListener(I,t)}else if(l.slice(0,10)==="oncapture:"){const I=l.slice(10);n&&e.removeEventListener(I,n,!0),t&&e.addEventListener(I,t,!0)}else if(l.slice(0,2)==="on"){const I=l.slice(2).toLowerCase(),x=rc.has(I);if(!x&&n){const p=Array.isArray(n)?n[0]:n;e.removeEventListener(I,p)}(x||t)&&(el(e,I,t,x),x&&qt([I]))}else if(l.slice(0,5)==="attr:")xe(e,l.slice(5),t);else if((g=l.slice(0,5)==="prop:")||(a=ic.has(l))||!c&&((Z=ac(l,e.tagName))||(s=cc.has(l)))||(o=e.nodeName.includes("-")))g&&(l=l.slice(5),s=!0),l==="class"||l==="className"?bn(e,t):o&&!s&&!a?e[Ic(l)]=t:e[Z||l]=t;else{const I=c&&l.indexOf(":")>-1&&gc[l.split(":")[0]];I?Zc(e,I,l,t):xe(e,sc[l]||l,t)}return t}function Cc(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 n=t[l];if(n&&!t.disabled){const c=t[`${l}Data`];if(c!==void 0?n.call(t,c,e):n.call(t,e),e.cancelBubble)return}t=t._$host||t.parentNode||t.host}}function _e(e,l,t,n,c){for(;typeof t=="function";)t=t();if(l===t)return t;const i=typeof l,o=n!==void 0;if(e=o&&t[0]&&t[0].parentNode||e,i==="string"||i==="number"){if(i==="number"&&(l=l.toString(),l===t))return t;if(o){let s=t[0];s&&s.nodeType===3?s.data!==l&&(s.data=l):s=document.createTextNode(l),t=ve(e,t,n,s)}else t!==""&&typeof t=="string"?t=e.firstChild.data=l:t=e.textContent=l}else if(l==null||i==="boolean")t=ve(e,t,n);else{if(i==="function")return te(()=>{let s=l();for(;typeof s=="function";)s=s();t=_e(e,s,t,n)}),()=>t;if(Array.isArray(l)){const s=[],a=t&&Array.isArray(t);if(Tt(s,l,t,c))return te(()=>t=_e(e,s,t,n,!0)),()=>t;if(s.length===0){if(t=ve(e,t,n),o)return t}else a?t.length===0?pl(e,s,n):bc(e,t,s):(t&&ve(e),pl(e,s));t=s}else if(l.nodeType){if(Array.isArray(t)){if(o)return t=ve(e,t,n,l);ve(e,t,null,l)}else t==null||t===""||!e.firstChild?e.appendChild(l):e.replaceChild(l,e.firstChild);t=l}}return t}function Tt(e,l,t,n){let c=!1;for(let i=0,o=l.length;i<o;i++){let s=l[i],a=t&&t[e.length],Z;if(!(s==null||s===!0||s===!1))if((Z=typeof s)=="object"&&s.nodeType)e.push(s);else if(Array.isArray(s))c=Tt(e,s,a)||c;else if(Z==="function")if(n){for(;typeof s=="function";)s=s();c=Tt(e,Array.isArray(s)?s:[s],Array.isArray(a)?a:[a])||c}else e.push(s),c=!0;else{const g=String(s);a&&a.nodeType===3&&a.data===g?e.push(a):e.push(document.createTextNode(g))}}return c}function pl(e,l,t=null){for(let n=0,c=l.length;n<c;n++)e.insertBefore(l[n],t)}function ve(e,l,t,n){if(t===void 0)return e.textContent="";const c=n||document.createTextNode("");if(l.length){let i=!1;for(let o=l.length-1;o>=0;o--){const s=l[o];if(c!==s){const a=s.parentNode===e;!i&&!o?a?e.replaceChild(c,s):e.insertBefore(c,t):a&&s.remove()}else i=!0}}else e.insertBefore(c,t);return[c]}const Wc="http://www.w3.org/2000/svg";function hc(e,l=!1){return l?document.createElementNS(Wc,e):document.createElement(e)}function pc(e){const[l,t]=tc(e,["component"]),n=ee(()=>l.component);return ee(()=>{const c=n();switch(typeof c){case"function":return P(()=>c(t));case"string":const i=dc.has(c),o=hc(c,i);return uc(o,t,i),o}})}/**
* @license
* Copyright (c) 2016, Contributors
* SPDX-License-Identifier: ISC
*/function Te(e){if(e!==e.toLowerCase()&&e!==e.toUpperCase()||(e=e.toLowerCase()),e.indexOf("-")===-1&&e.indexOf("_")===-1)return e;{let t="",n=!1;const c=e.match(/^-+/);for(let i=c?c[0].length:0;i<e.length;i++){let o=e.charAt(i);n&&(n=!1,o=o.toUpperCase()),i!==0&&(o==="-"||o==="_")?n=!0:o!=="-"&&o!=="_"&&(t+=o)}return t}}function Zn(e,l){const t=e.toLowerCase();l=l||"-";let n="";for(let c=0;c<e.length;c++){const i=t.charAt(c),o=e.charAt(c);i!==o&&c>0?n+=`${l}${t.charAt(c)}`:n+=o}return n}function mn(e){return e==null?!1:typeof e=="number"||/^0x[0-9a-f]+$/i.test(e)?!0:/^0[^.]/.test(e)?!1:/^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(e)}/**
* @license
* Copyright (c) 2016, Contributors
* SPDX-License-Identifier: ISC
*/function Xc(e){if(Array.isArray(e))return e.map(o=>typeof o!="string"?o+"":o);e=e.trim();let l=0,t=null,n=null,c=null;const i=[];for(let o=0;o<e.length;o++){if(t=n,n=e.charAt(o),n===" "&&!c){t!==" "&&l++;continue}n===c?c=null:(n==="'"||n==='"')&&!c&&(c=n),i[l]||(i[l]=""),i[l]+=n}return i}/**
* @license
* Copyright (c) 2016, Contributors
* SPDX-License-Identifier: ISC
*/var ue;(function(e){e.BOOLEAN="boolean",e.STRING="string",e.NUMBER="number",e.ARRAY="array"})(ue||(ue={}));/**
* @license
* Copyright (c) 2016, Contributors
* SPDX-License-Identifier: ISC
*/let Re;class fc{constructor(l){Re=l}parse(l,t){const n=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),c=Xc(l),i=typeof l=="string",o=Rc(Object.assign(Object.create(null),n.alias)),s=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},n.configuration),a=Object.assign(Object.create(null),n.default),Z=n.configObjects||[],g=n.envPrefix,I=s["populate--"],x=I?"--":"_",p=Object.create(null),Y=Object.create(null),L=n.__||Re.format,m={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:[]},K=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,w=new RegExp("^--"+s["negation-prefix"]+"(.+)");[].concat(n.array||[]).filter(Boolean).forEach(function(r){const b=typeof r=="object"?r.key:r,h=Object.keys(r).map(function(u){return{boolean:"bools",string:"strings",number:"numbers"}[u]}).filter(Boolean).pop();h&&(m[h][b]=!0),m.arrays[b]=!0,m.keys.push(b)}),[].concat(n.boolean||[]).filter(Boolean).forEach(function(r){m.bools[r]=!0,m.keys.push(r)}),[].concat(n.string||[]).filter(Boolean).forEach(function(r){m.strings[r]=!0,m.keys.push(r)}),[].concat(n.number||[]).filter(Boolean).forEach(function(r){m.numbers[r]=!0,m.keys.push(r)}),[].concat(n.count||[]).filter(Boolean).forEach(function(r){m.counts[r]=!0,m.keys.push(r)}),[].concat(n.normalize||[]).filter(Boolean).forEach(function(r){m.normalize[r]=!0,m.keys.push(r)}),typeof n.narg=="object"&&Object.entries(n.narg).forEach(([r,b])=>{typeof b=="number"&&(m.nargs[r]=b,m.keys.push(r))}),typeof n.coerce=="object"&&Object.entries(n.coerce).forEach(([r,b])=>{typeof b=="function"&&(m.coercions[r]=b,m.keys.push(r))}),typeof n.config<"u"&&(Array.isArray(n.config)||typeof n.config=="string"?[].concat(n.config).filter(Boolean).forEach(function(r){m.configs[r]=!0}):typeof n.config=="object"&&Object.entries(n.config).forEach(([r,b])=>{(typeof b=="boolean"||typeof b=="function")&&(m.configs[r]=b)})),q(n.key,o,n.default,m.arrays),Object.keys(a).forEach(function(r){(m.aliases[r]||[]).forEach(function(b){a[b]=a[r]})});let E=null;kn();let M=[];const Q=Object.assign(Object.create(null),{_:[]}),ge={};for(let r=0;r<c.length;r++){const b=c[r],h=b.replace(/^-{3,}/,"---");let u,d,y,A,B,_;if(b!=="--"&&/^-/.test(b)&&He(b))be(b);else if(h.match(/^---+(=|$)/)){be(b);continue}else if(b.match(/^--.+=/)||!s["short-option-groups"]&&b.match(/^-.+=/))A=b.match(/^--?([^=]+)=([\s\S]*)$/),A!==null&&Array.isArray(A)&&A.length>=3&&(V(A[1],m.arrays)?r=f(r,A[1],c,A[2]):V(A[1],m.nargs)!==!1?r=X(r,A[1],c,A[2]):R(A[1],A[2],!0));else if(b.match(w)&&s["boolean-negation"])A=b.match(w),A!==null&&Array.isArray(A)&&A.length>=2&&(d=A[1],R(d,V(d,m.arrays)?[!1]:!1));else if(b.match(/^--.+/)||!s["short-option-groups"]&&b.match(/^-[^-]+/))A=b.match(/^--?(.+)/),A!==null&&Array.isArray(A)&&A.length>=2&&(d=A[1],V(d,m.arrays)?r=f(r,d,c):V(d,m.nargs)!==!1?r=X(r,d,c):(B=c[r+1],B!==void 0&&(!B.match(/^-/)||B.match(K))&&!V(d,m.bools)&&!V(d,m.counts)||/^(true|false)$/.test(B)?(R(d,B),r++):R(d,Ne(d))));else if(b.match(/^-.\..+=/))A=b.match(/^-([^=]+)=([\s\S]*)$/),A!==null&&Array.isArray(A)&&A.length>=3&&R(A[1],A[2]);else if(b.match(/^-.\..+/)&&!b.match(K))B=c[r+1],A=b.match(/^-(.\..+)/),A!==null&&Array.isArray(A)&&A.length>=2&&(d=A[1],B!==void 0&&!B.match(/^-/)&&!V(d,m.bools)&&!V(d,m.counts)?(R(d,B),r++):R(d,Ne(d)));else if(b.match(/^-[^-]+/)&&!b.match(K)){y=b.slice(1,-1).split(""),u=!1;for(let ie=0;ie<y.length;ie++){if(B=b.slice(ie+2),y[ie+1]&&y[ie+1]==="="){_=b.slice(ie+3),d=y[ie],V(d,m.arrays)?r=f(r,d,c,_):V(d,m.nargs)!==!1?r=X(r,d,c,_):R(d,_),u=!0;break}if(B==="-"){R(y[ie],B);continue}if(/[A-Za-z]/.test(y[ie])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(B)&&V(B,m.bools)===!1){R(y[ie],B),u=!0;break}if(y[ie+1]&&y[ie+1].match(/\W/)){R(y[ie],B),u=!0;break}else R(y[ie],Ne(y[ie]))}d=b.slice(-1)[0],!u&&d!=="-"&&(V(d,m.arrays)?r=f(r,d,c):V(d,m.nargs)!==!1?r=X(r,d,c):(B=c[r+1],B!==void 0&&(!/^(-|--)[^-]/.test(B)||B.match(K))&&!V(d,m.bools)&&!V(d,m.counts)||/^(true|false)$/.test(B)?(R(d,B),r++):R(d,Ne(d))))}else if(b.match(/^-[0-9]$/)&&b.match(K)&&V(b.slice(1),m.bools))d=b.slice(1),R(d,Ne(d));else if(b==="--"){M=c.slice(r+1);break}else if(s["halt-at-non-option"]){M=c.slice(r);break}else be(b)}H(Q,!0),H(Q,!1),C(Q),F(),z(Q,m.aliases,a,!0),J(Q),s["set-placeholder-key"]&&k(Q),Object.keys(m.counts).forEach(function(r){S(Q,r.split("."))||R(r,0)}),I&&M.length&&(Q[x]=[]),M.forEach(function(r){Q[x].push(r)}),s["camel-case-expansion"]&&s["strip-dashed"]&&Object.keys(Q).filter(r=>r!=="--"&&r.includes("-")).forEach(r=>{delete Q[r]}),s["strip-aliased"]&&[].concat(...Object.keys(o).map(r=>o[r])).forEach(r=>{s["camel-case-expansion"]&&r.includes("-")&&delete Q[r.split(".").map(b=>Te(b)).join(".")],delete Q[r]});function be(r){const b=W("_",r);(typeof b=="string"||typeof b=="number")&&Q._.push(b)}function X(r,b,h,u){let d,y=V(b,m.nargs);if(y=typeof y!="number"||isNaN(y)?1:y,y===0)return fe(u)||(E=Error(L("Argument unexpected for: %s",b))),R(b,Ne(b)),r;let A=fe(u)?0:1;if(s["nargs-eats-options"])h.length-(r+1)+A<y&&(E=Error(L("Not enough arguments following: %s",b))),A=y;else{for(d=r+1;d<h.length&&(!h[d].match(/^-[^0-9]/)||h[d].match(K)||He(h[d]));d++)A++;A<y&&(E=Error(L("Not enough arguments following: %s",b)))}let B=Math.min(A,y);for(!fe(u)&&B>0&&(R(b,u),B--),d=r+1;d<B+r+1;d++)R(b,h[d]);return r+B}function f(r,b,h,u){let d=[],y=u||h[r+1];const A=V(b,m.nargs);if(V(b,m.bools)&&!/^(true|false)$/.test(y))d.push(!0);else if(fe(y)||fe(u)&&/^-/.test(y)&&!K.test(y)&&!He(y)){if(a[b]!==void 0){const B=a[b];d=Array.isArray(B)?B:[B]}}else{fe(u)||d.push(D(b,u,!0));for(let B=r+1;B<h.length&&!(!s["greedy-arrays"]&&d.length>0||A&&typeof A=="number"&&d.length>=A||(y=h[B],/^-/.test(y)&&!K.test(y)&&!He(y)));B++)r=B,d.push(D(b,y,i))}return typeof A=="number"&&(A&&d.length<A||isNaN(A)&&d.length===0)&&(E=Error(L("Not enough arguments following: %s",b))),R(b,d),r}function R(r,b,h=i){if(/-/.test(r)&&s["camel-case-expansion"]){const y=r.split(".").map(function(A){return Te(A)}).join(".");v(r,y)}const u=D(r,b,h),d=r.split(".");U(Q,d,u),m.aliases[r]&&m.aliases[r].forEach(function(y){const A=y.split(".");U(Q,A,u)}),d.length>1&&s["dot-notation"]&&(m.aliases[d[0]]||[]).forEach(function(y){let A=y.split(".");const B=[].concat(d);B.shift(),A=A.concat(B),(m.aliases[r]||[]).includes(A.join("."))||U(Q,A,u)}),V(r,m.normalize)&&!V(r,m.arrays)&&[r].concat(m.aliases[r]||[]).forEach(function(A){Object.defineProperty(ge,A,{enumerable:!0,get(){return b},set(B){b=typeof B=="string"?Re.normalize(B):B}})})}function v(r,b){m.aliases[r]&&m.aliases[r].length||(m.aliases[r]=[b],p[b]=!0),m.aliases[b]&&m.aliases[b].length||v(b,r)}function D(r,b,h){h&&(b=Vc(b)),(V(r,m.bools)||V(r,m.counts))&&typeof b=="string"&&(b=b==="true");let u=Array.isArray(b)?b.map(function(d){return W(r,d)}):W(r,b);return V(r,m.counts)&&(fe(u)||typeof u=="boolean")&&(u=Ft()),V(r,m.normalize)&&V(r,m.arrays)&&(Array.isArray(b)?u=b.map(d=>Re.normalize(d)):u=Re.normalize(b)),u}function W(r,b){return!s["parse-positional-numbers"]&&r==="_"||!V(r,m.strings)&&!V(r,m.bools)&&!Array.isArray(b)&&(mn(b)&&s["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${b}`)))||!fe(b)&&V(r,m.numbers))&&(b=Number(b)),b}function C(r){const b=Object.create(null);z(b,m.aliases,a),Object.keys(m.configs).forEach(function(h){const u=r[h]||b[h];if(u)try{let d=null;const y=Re.resolve(Re.cwd(),u),A=m.configs[h];if(typeof A=="function"){try{d=A(y)}catch(B){d=B}if(d instanceof Error){E=d;return}}else d=Re.require(y);N(d)}catch(d){d.name==="PermissionDenied"?E=d:r[h]&&(E=Error(L("Invalid JSON config file: %s",u)))}})}function N(r,b){Object.keys(r).forEach(function(h){const u=r[h],d=b?b+"."+h:h;typeof u=="object"&&u!==null&&!Array.isArray(u)&&s["dot-notation"]?N(u,d):(!S(Q,d.split("."))||V(d,m.arrays)&&s["combine-arrays"])&&R(d,u)})}function F(){typeof Z<"u"&&Z.forEach(function(r){N(r)})}function H(r,b){if(typeof g>"u")return;const h=typeof g=="string"?g:"",u=Re.env();Object.keys(u).forEach(function(d){if(h===""||d.lastIndexOf(h,0)===0){const y=d.split("__").map(function(A,B){return B===0&&(A=A.substring(h.length)),Te(A)});(b&&m.configs[y.join(".")]||!b)&&!S(r,y)&&R(y.join("."),u[d])}})}function J(r){let b;const h=new Set;Object.keys(r).forEach(function(u){if(!h.has(u)&&(b=V(u,m.coercions),typeof b=="function"))try{const d=W(u,b(r[u]));[].concat(m.aliases[u]||[],u).forEach(y=>{h.add(y),r[y]=d})}catch(d){E=d}})}function k(r){return m.keys.forEach(b=>{~b.indexOf(".")||typeof r[b]>"u"&&(r[b]=void 0)}),r}function z(r,b,h,u=!1){Object.keys(h).forEach(function(d){S(r,d.split("."))||(U(r,d.split("."),h[d]),u&&(Y[d]=!0),(b[d]||[]).forEach(function(y){S(r,y.split("."))||U(r,y.split("."),h[d])}))})}function S(r,b){let h=r;s["dot-notation"]||(b=[b.join(".")]),b.slice(0,-1).forEach(function(d){h=h[d]||{}});const u=b[b.length-1];return typeof h!="object"?!1:u in h}function U(r,b,h){let u=r;s["dot-notation"]||(b=[b.join(".")]),b.slice(0,-1).forEach(function(_){_=Xl(_),typeof u=="object"&&u[_]===void 0&&(u[_]={}),typeof u[_]!="object"||Array.isArray(u[_])?(Array.isArray(u[_])?u[_].push({}):u[_]=[u[_],{}],u=u[_][u[_].length-1]):u=u[_]});const d=Xl(b[b.length-1]),y=V(b.join("."),m.arrays),A=Array.isArray(h);let B=s["duplicate-arguments-array"];!B&&V(d,m.nargs)&&(B=!0,(!fe(u[d])&&m.nargs[d]===1||Array.isArray(u[d])&&u[d].length===m.nargs[d])&&(u[d]=void 0)),h===Ft()?u[d]=Ft(u[d]):Array.isArray(u[d])?B&&y&&A?u[d]=s["flatten-duplicate-arrays"]?u[d].concat(h):(Array.isArray(u[d][0])?u[d]:[u[d]]).concat([h]):!B&&!!y==!!A?u[d]=h:u[d]=u[d].concat([h]):u[d]===void 0&&y?u[d]=A?h:[h]:B&&!(u[d]===void 0||V(d,m.counts)||V(d,m.bools))?u[d]=[u[d],h]:u[d]=h}function q(...r){r.forEach(function(b){Object.keys(b||{}).forEach(function(h){m.aliases[h]||(m.aliases[h]=[].concat(o[h]||[]),m.aliases[h].concat(h).forEach(function(u){if(/-/.test(u)&&s["camel-case-expansion"]){const d=Te(u);d!==h&&m.aliases[h].indexOf(d)===-1&&(m.aliases[h].push(d),p[d]=!0)}}),m.aliases[h].concat(h).forEach(function(u){if(u.length>1&&/[A-Z]/.test(u)&&s["camel-case-expansion"]){const d=Zn(u,"-");d!==h&&m.aliases[h].indexOf(d)===-1&&(m.aliases[h].push(d),p[d]=!0)}}),m.aliases[h].forEach(function(u){m.aliases[u]=[h].concat(m.aliases[h].filter(function(d){return u!==d}))}))})})}function V(r,b){const h=[].concat(m.aliases[r]||[],r),u=Object.keys(b),d=h.find(y=>u.includes(y));return d?b[d]:!1}function me(r){const b=Object.keys(m);return[].concat(b.map(u=>m[u])).some(function(u){return Array.isArray(u)?u.includes(r):u[r]})}function ce(r,...b){return[].concat(...b).some(function(u){const d=r.match(u);return d&&me(d[1])})}function Xe(r){if(r.match(K)||!r.match(/^-[^-]+/))return!1;let b=!0,h;const u=r.slice(1).split("");for(let d=0;d<u.length;d++){if(h=r.slice(d+2),!me(u[d])){b=!1;break}if(u[d+1]&&u[d+1]==="="||h==="-"||/[A-Za-z]/.test(u[d])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(h)||u[d+1]&&u[d+1].match(/\W/))break}return b}function He(r){return s["unknown-options-as-args"]&&Hn(r)}function Hn(r){return r=r.replace(/^-{3,}/,"--"),r.match(K)||Xe(r)?!1:!ce(r,/^-+([^=]+?)=[\s\S]*$/,w,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function Ne(r){return!V(r,m.bools)&&!V(r,m.counts)&&`${r}`in a?a[r]:Nn(vn(r))}function Nn(r){return{[ue.BOOLEAN]:!0,[ue.STRING]:"",[ue.NUMBER]:void 0,[ue.ARRAY]:[]}[r]}function vn(r){let b=ue.BOOLEAN;return V(r,m.strings)?b=ue.STRING:V(r,m.numbers)?b=ue.NUMBER:V(r,m.bools)?b=ue.BOOLEAN:V(r,m.arrays)&&(b=ue.ARRAY),b}function fe(r){return r===void 0}function kn(){Object.keys(m.counts).find(r=>V(r,m.arrays)?(E=Error(L("Invalid configuration: %s, opts.count excludes opts.array.",r)),!0):V(r,m.nargs)?(E=Error(L("Invalid configuration: %s, opts.count excludes opts.narg.",r)),!0):!1)}return{aliases:Object.assign({},m.aliases),argv:Object.assign(ge,Q),configuration:s,defaulted:Object.assign({},Y),error:E,newAliases:Object.assign({},p)}}}function Rc(e){const l=[],t=Object.create(null);let n=!0;for(Object.keys(e).forEach(function(c){l.push([].concat(e[c],c))});n;){n=!1;for(let c=0;c<l.length;c++)for(let i=c+1;i<l.length;i++)if(l[c].filter(function(s){return l[i].indexOf(s)!==-1}).length){l[c]=l[c].concat(l[i]),l.splice(i,1),n=!0;break}}return l.forEach(function(c){c=c.filter(function(o,s,a){return a.indexOf(o)===s});const i=c.pop();i!==void 0&&typeof i=="string"&&(t[i]=c)}),t}function Ft(e){return e!==void 0?e+1:1}function Xl(e){return e==="__proto__"?"___proto___":e}function Vc(e){return typeof e=="string"&&(e[0]==="'"||e[0]==='"')&&e[e.length-1]===e[0]?e.substring(1,e.length-1):e}/**
* @fileoverview Main entrypoint for libraries using yargs-parser in Node.js
* CJS and ESM environments.
*
* @license
* Copyright (c) 2016, Contributors
* SPDX-License-Identifier: ISC
*/var Ht,Nt,vt;const fl=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):12,Rl=(Nt=(Ht=process==null?void 0:process.versions)===null||Ht===void 0?void 0:Ht.node)!==null&&Nt!==void 0?Nt:(vt=process==null?void 0:process.version)===null||vt===void 0?void 0:vt.slice(1);if(Rl&&Number(Rl.match(/^([^.]+)/)[1])<fl)throw Error(`yargs parser supports a minimum Node.js version of ${fl}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);const Ac=process?process.env:{},un=new fc({cwd:process.cwd,env:()=>Ac,format:wn.format,normalize:ae.normalize,resolve:ae.resolve,require:e=>{if(typeof require<"u")return require(e);if(e.match(/\.json$/))return JSON.parse(Dl.readFileSync(e,"utf8"));throw Error("only .json config files are supported in ESM")}}),lt=function(l,t){return un.parse(l.slice(),t).argv};lt.detailed=function(e,l){return un.parse(e.slice(),l)};lt.camelCase=Te;lt.decamelize=Zn;lt.looksLikeNumber=mn;const Yc={exportToOo:"导出为......",exportWithPrevious:"使用上一次设置导出",exportSuccessNotice:$`导出文件 ${0} 成功!`,exportCommandOutputMessage:$`命令:${0}`,exportErrorOutputMessage:$`命令 ${0},错误:${1}`,pleaseOpenFile:"请打开一个文件先。",preparing:$`正在生成 "${0}" ......`,exportDialog:{fileName:"文件名",type:"类型",exportTo:"导出到",title:$`导出为 ${0}`,export:"导出",selectExportFolder:"请选择导出文件夹",overwriteConfirmation:"覆盖提示"},messageBox:{yes:"是",no:"否",ok:"确认",cancel:"取消"},overwriteConfirmationDialog:{replace:"替换",title:$`"${0}" 已经存在。您要替换它吗?`,message:$`"${0}" 文件夹中已有相同的文件或文件夹,若替换,则会覆盖其当前内容。`},settingTab:{title:"导出设置",general:"通用",name:"名称",customLocation:"自定义",pandocVersion:$`版本: ${0}`,pandocVersionWithWarning:$`Version: ${0}, 请升级版本到 ${1}`,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:"显示导出进度条"}},Jc={exportToOo:"Export to...",exportSuccessNotice:$`Export file ${0} success!`,exportCommandOutputMessage:$`Command: ${0}`,exportErrorOutputMessage:$`Command: ${0}Error:${1}`,exportWithPrevious:"Export with Previous",pleaseOpenFile:"Please open a file first.",preparing:$`generating "${0}"...`,exportDialog:{exportTo:"Export to",fileName:"File Name",title:$`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:$`"${0}" already exists. Do you want to replace it?`,message:$`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",pandocVersion:$`Version: ${0}`,pandocVersionWithWarning:$`Version: ${0}, please upgrade version to ${1}`,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."}},xc={exportToOo:"Export to...",exportSuccessNotice:$`Export der Datei ${0} erfolgreich!`,exportCommandOutputMessage:$`Command: ${0}`,exportErrorOutputMessage:$`Command: ${0}Fehler:${1}`,exportWithPrevious:"Exportiere mit Vorherigem",pleaseOpenFile:"Bitte öffne zunächst eine Datei.",preparing:$`generating "${0}"...`,exportDialog:{exportTo:"Exportiere nach",fileName:"Dateiname",title:$`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:$`"${0}" existiert bereits. Soll er ersetzt werden?`,message:$`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",pandocVersion:$`Version: ${0}`,pandocVersionWithWarning:$`Version: ${0}, please upgrade version to ${1}`,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"}},Gn={"de-DE":xc,"en-US":Jc,"zh-CN":Yc,get current(){const e=Object.keys(this),l=Ie.moment.locale().toLowerCase();let t=e.find(c=>c.toLowerCase()===l.toLowerCase());if(t)return this[t];const n=l.split("-")[0];return t=e.find(c=>c.toLowerCase().startsWith(n)),t?this[t]:this["en-US"]}};class Vl extends Ie.Modal{constructor(l,t,n){super(l),this.options=typeof t=="string"?{message:t,buttons:"Ok",title:n}:t,this.lang=Gn.current}onOpen(){const{titleEl:l,contentEl:t,lang:n,options:{message:c,title:i,buttons:o,callback:s,buttonsLabel:a,buttonsClass:Z}}=this;switch(i&&l.setText(i),t.createDiv({text:c}),o){case"Yes":t.createEl("div",{cls:["modal-button-container"],parent:t},g=>{g.createEl("button",{text:(a==null?void 0:a.yes)??n.messageBox.yes,cls:["mod-cta",Z==null?void 0:Z.yes],parent:g}).onclick=()=>this.call(s==null?void 0:s.yes)});break;case"YesNo":t.createEl("div",{cls:["modal-button-container"],parent:t},g=>{g.createEl("button",{text:(a==null?void 0:a.yes)??n.messageBox.yes,cls:["mod-cta",Z==null?void 0:Z.yes],parent:g}).onclick=()=>this.call(s==null?void 0:s.yes),g.createEl("button",{text:(a==null?void 0:a.no)??n.messageBox.no,cls:["mod-cta",Z==null?void 0:Z.no],parent:g}).onclick=()=>this.call(s==null?void 0:s.no)});break;case"Ok":t.createEl("div",{cls:["modal-button-container"],parent:t},g=>{g.createEl("button",{text:(a==null?void 0:a.ok)??n.messageBox.ok,cls:["mod-cta",Z==null?void 0:Z.no],parent:g}).onclick=()=>this.call(s==null?void 0:s.ok)});break;case"OkCancel":t.createEl("div",{cls:["modal-button-container"],parent:t},g=>{g.createEl("button",{text:(a==null?void 0:a.ok)??n.messageBox.ok,cls:["mod-cta",Z==null?void 0:Z.ok],parent:g}).onclick=()=>this.call(s==null?void 0:s.ok),g.createEl("button",{text:(a==null?void 0:a.cancel)??n.messageBox.cancel,cls:["mod-cta",Z==null?void 0:Z.cancel],parent:g}).onclick=()=>this.call(s==null?void 0:s.cancel)});break}}call(l){l&&l(),this.close()}onClose(){const{contentEl:l}=this;l.empty()}}var yc=Ze('<div class=progress-bar><div class="progress-bar-message u-center-text"></div><div class=progress-bar-indicator><div class=progress-bar-line></div><div class=progress-bar-subline style=display:none;></div><div class="progress-bar-subline mod-increase"></div><div class="progress-bar-subline mod-decrease">');const Bc=e=>(()=>{var l=yc(),t=l.firstChild,n=e.ref;return typeof n=="function"?Rt(n,l):e.ref=l,ne(t,()=>e.message),l})(),Fc=e=>Se(l=>{let t=!1;const n=()=>{t||(t=!0,l())};let c;return ne(document.body,()=>G(Bc,{ref(i){var o=c;typeof o=="function"?o(i):c=i},message:e})),ze(()=>{c instanceof Node&&document.body.contains(c)&&document.body.removeChild(c)}),n}),Hc={show:Fc};function Nc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Mt={exports:{}};const vc="2.0.0",In=256,kc=Number.MAX_SAFE_INTEGER||9007199254740991,Sc=16,wc=In-6,Ec=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var Vt={MAX_LENGTH:In,MAX_SAFE_COMPONENT_LENGTH:Sc,MAX_SAFE_BUILD_LENGTH:wc,MAX_SAFE_INTEGER:kc,RELEASE_TYPES:Ec,SEMVER_SPEC_VERSION:vc,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};const Kc=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};var At=Kc;(function(e,l){const{MAX_SAFE_COMPONENT_LENGTH:t,MAX_SAFE_BUILD_LENGTH:n,MAX_LENGTH:c}=Vt,i=At;l=e.exports={};const o=l.re=[],s=l.safeRe=[],a=l.src=[],Z=l.t={};let g=0;const I="[a-zA-Z0-9-]",x=[["\\s",1],["\\d",c],[I,n]],p=L=>{for(const[m,K]of x)L=L.split(`${m}*`).join(`${m}{0,${K}}`).split(`${m}+`).join(`${m}{1,${K}}`);return L},Y=(L,m,K)=>{const w=p(m),E=g++;i(L,E,m),Z[L]=E,a[E]=m,o[E]=new RegExp(m,K?"g":void 0),s[E]=new RegExp(w,K?"g":void 0)};Y("NUMERICIDENTIFIER","0|[1-9]\\d*"),Y("NUMERICIDENTIFIERLOOSE","\\d+"),Y("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${I}*`),Y("MAINVERSION",`(${a[Z.NUMERICIDENTIFIER]})\\.(${a[Z.NUMERICIDENTIFIER]})\\.(${a[Z.NUMERICIDENTIFIER]})`),Y("MAINVERSIONLOOSE",`(${a[Z.NUMERICIDENTIFIERLOOSE]})\\.(${a[Z.NUMERICIDENTIFIERLOOSE]})\\.(${a[Z.NUMERICIDENTIFIERLOOSE]})`),Y("PRERELEASEIDENTIFIER",`(?:${a[Z.NUMERICIDENTIFIER]}|${a[Z.NONNUMERICIDENTIFIER]})`),Y("PRERELEASEIDENTIFIERLOOSE",`(?:${a[Z.NUMERICIDENTIFIERLOOSE]}|${a[Z.NONNUMERICIDENTIFIER]})`),Y("PRERELEASE",`(?:-(${a[Z.PRERELEASEIDENTIFIER]}(?:\\.${a[Z.PRERELEASEIDENTIFIER]})*))`),Y("PRERELEASELOOSE",`(?:-?(${a[Z.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${a[Z.PRERELEASEIDENTIFIERLOOSE]})*))`),Y("BUILDIDENTIFIER",`${I}+`),Y("BUILD",`(?:\\+(${a[Z.BUILDIDENTIFIER]}(?:\\.${a[Z.BUILDIDENTIFIER]})*))`),Y("FULLPLAIN",`v?${a[Z.MAINVERSION]}${a[Z.PRERELEASE]}?${a[Z.BUILD]}?`),Y("FULL",`^${a[Z.FULLPLAIN]}$`),Y("LOOSEPLAIN",`[v=\\s]*${a[Z.MAINVERSIONLOOSE]}${a[Z.PRERELEASELOOSE]}?${a[Z.BUILD]}?`),Y("LOOSE",`^${a[Z.LOOSEPLAIN]}$`),Y("GTLT","((?:<|>)?=?)"),Y("XRANGEIDENTIFIERLOOSE",`${a[Z.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),Y("XRANGEIDENTIFIER",`${a[Z.NUMERICIDENTIFIER]}|x|X|\\*`),Y("XRANGEPLAIN",`[v=\\s]*(${a[Z.XRANGEIDENTIFIER]})(?:\\.(${a[Z.XRANGEIDENTIFIER]})(?:\\.(${a[Z.XRANGEIDENTIFIER]})(?:${a[Z.PRERELEASE]})?${a[Z.BUILD]}?)?)?`),Y("XRANGEPLAINLOOSE",`[v=\\s]*(${a[Z.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[Z.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[Z.XRANGEIDENTIFIERLOOSE]})(?:${a[Z.PRERELEASELOOSE]})?${a[Z.BUILD]}?)?)?`),Y("XRANGE",`^${a[Z.GTLT]}\\s*${a[Z.XRANGEPLAIN]}$`),Y("XRANGELOOSE",`^${a[Z.GTLT]}\\s*${a[Z.XRANGEPLAINLOOSE]}$`),Y("COERCEPLAIN",`(^|[^\\d])(\\d{1,${t}})(?:\\.(\\d{1,${t}}))?(?:\\.(\\d{1,${t}}))?`),Y("COERCE",`${a[Z.COERCEPLAIN]}(?:$|[^\\d])`),Y("COERCEFULL",a[Z.COERCEPLAIN]+`(?:${a[Z.PRERELEASE]})?(?:${a[Z.BUILD]})?(?:$|[^\\d])`),Y("COERCERTL",a[Z.COERCE],!0),Y("COERCERTLFULL",a[Z.COERCEFULL],!0),Y("LONETILDE","(?:~>?)"),Y("TILDETRIM",`(\\s*)${a[Z.LONETILDE]}\\s+`,!0),l.tildeTrimReplace="$1~",Y("TILDE",`^${a[Z.LONETILDE]}${a[Z.XRANGEPLAIN]}$`),Y("TILDELOOSE",`^${a[Z.LONETILDE]}${a[Z.XRANGEPLAINLOOSE]}$`),Y("LONECARET","(?:\\^)"),Y("CARETTRIM",`(\\s*)${a[Z.LONECARET]}\\s+`,!0),l.caretTrimReplace="$1^",Y("CARET",`^${a[Z.LONECARET]}${a[Z.XRANGEPLAIN]}$`),Y("CARETLOOSE",`^${a[Z.LONECARET]}${a[Z.XRANGEPLAINLOOSE]}$`),Y("COMPARATORLOOSE",`^${a[Z.GTLT]}\\s*(${a[Z.LOOSEPLAIN]})$|^$`),Y("COMPARATOR",`^${a[Z.GTLT]}\\s*(${a[Z.FULLPLAIN]})$|^$`),Y("COMPARATORTRIM",`(\\s*)${a[Z.GTLT]}\\s*(${a[Z.LOOSEPLAIN]}|${a[Z.XRANGEPLAIN]})`,!0),l.comparatorTrimReplace="$1$2$3",Y("HYPHENRANGE",`^\\s*(${a[Z.XRANGEPLAIN]})\\s+-\\s+(${a[Z.XRANGEPLAIN]})\\s*$`),Y("HYPHENRANGELOOSE",`^\\s*(${a[Z.XRANGEPLAINLOOSE]})\\s+-\\s+(${a[Z.XRANGEPLAINLOOSE]})\\s*$`),Y("STAR","(<|>)?=?\\s*\\*"),Y("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),Y("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(Mt,Mt.exports);var nt=Mt.exports;const Qc=Object.freeze({loose:!0}),zc=Object.freeze({}),Uc=e=>e?typeof e!="object"?Qc:e:zc;var ll=Uc;const Al=/^[0-9]+$/,Cn=(e,l)=>{const t=Al.test(e),n=Al.test(l);return t&&n&&(e=+e,l=+l),e===l?0:t&&!n?-1:n&&!t?1:e<l?-1:1},jc=(e,l)=>Cn(l,e);var Wn={compareIdentifiers:Cn,rcompareIdentifiers:jc};const it=At,{MAX_LENGTH:Yl,MAX_SAFE_INTEGER:st}=Vt,{safeRe:Jl,t:xl}=nt,Lc=ll,{compareIdentifiers:ke}=Wn;let $c=class he{constructor(l,t){if(t=Lc(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>Yl)throw new TypeError(`version is longer than ${Yl} characters`);it("SemVer",l,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const n=l.trim().match(t.loose?Jl[xl.LOOSE]:Jl[xl.FULL]);if(!n)throw new TypeError(`Invalid Version: ${l}`);if(this.raw=l,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>st||this.major<0)throw new TypeError("Invalid major version");if(this.minor>st||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>st||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(c=>{if(/^[0-9]+$/.test(c)){const i=+c;if(i>=0&&i<st)return i}return c}):this.prerelease=[],this.build=n[5]?n[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(it("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)),ke(this.major,l.major)||ke(this.minor,l.minor)||ke(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 n=this.prerelease[t],c=l.prerelease[t];if(it("prerelease compare",t,n,c),n===void 0&&c===void 0)return 0;if(c===void 0)return 1;if(n===void 0)return-1;if(n===c)continue;return ke(n,c)}while(++t)}compareBuild(l){l instanceof he||(l=new he(l,this.options));let t=0;do{const n=this.build[t],c=l.build[t];if(it("build compare",t,n,c),n===void 0&&c===void 0)return 0;if(c===void 0)return 1;if(n===void 0)return-1;if(n===c)continue;return ke(n,c)}while(++t)}inc(l,t,n){switch(l){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,n),this.inc("pre",t,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,n),this.inc("pre",t,n);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 c=Number(n)?1:0;if(!t&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[c];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(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(c)}}if(t){let i=[t,c];n===!1&&(i=[t]),ke(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 se=$c;const yl=se,Tc=(e,l,t=!1)=>{if(e instanceof yl)return e;try{return new yl(e,l)}catch(n){if(!t)return null;throw n}};var je=Tc;const Mc=je,Oc=(e,l)=>{const t=Mc(e,l);return t?t.version:null};var Pc=Oc;const Dc=je,_c=(e,l)=>{const t=Dc(e.trim().replace(/^[=v]+/,""),l);return t?t.version:null};var qc=_c;const Bl=se,ei=(e,l,t,n,c)=>{typeof t=="string"&&(c=n,n=t,t=void 0);try{return new Bl(e instanceof Bl?e.version:e,t).inc(l,n,c).version}catch{return null}};var ti=ei;const Fl=je,li=(e,l)=>{const t=Fl(e,null,!0),n=Fl(l,null,!0),c=t.compare(n);if(c===0)return null;const i=c>0,o=i?t:n,s=i?n:t,a=!!o.prerelease.length;if(!!s.prerelease.length&&!a)return!s.patch&&!s.minor?"major":o.patch?"patch":o.minor?"minor":"major";const g=a?"pre":"";return t.major!==n.major?g+"major":t.minor!==n.minor?g+"minor":t.patch!==n.patch?g+"patch":"prerelease"};var ni=li;const ci=se,ii=(e,l)=>new ci(e,l).major;var si=ii;const oi=se,ai=(e,l)=>new oi(e,l).minor;var ri=ai;const di=se,gi=(e,l)=>new di(e,l).patch;var bi=gi;const Zi=je,mi=(e,l)=>{const t=Zi(e,l);return t&&t.prerelease.length?t.prerelease:null};var ui=mi;const Hl=se,Gi=(e,l,t)=>new Hl(e,t).compare(new Hl(l,t));var Ce=Gi;const Ii=Ce,Ci=(e,l,t)=>Ii(l,e,t);var Wi=Ci;const hi=Ce,pi=(e,l)=>hi(e,l,!0);var Xi=pi;const Nl=se,fi=(e,l,t)=>{const n=new Nl(e,t),c=new Nl(l,t);return n.compare(c)||n.compareBuild(c)};var nl=fi;const Ri=nl,Vi=(e,l)=>e.sort((t,n)=>Ri(t,n,l));var Ai=Vi;const Yi=nl,Ji=(e,l)=>e.sort((t,n)=>Yi(n,t,l));var xi=Ji;const yi=Ce,Bi=(e,l,t)=>yi(e,l,t)>0;var Yt=Bi;const Fi=Ce,Hi=(e,l,t)=>Fi(e,l,t)<0;var cl=Hi;const Ni=Ce,vi=(e,l,t)=>Ni(e,l,t)===0;var hn=vi;const ki=Ce,Si=(e,l,t)=>ki(e,l,t)!==0;var pn=Si;const wi=Ce,Ei=(e,l,t)=>wi(e,l,t)>=0;var il=Ei;const Ki=Ce,Qi=(e,l,t)=>Ki(e,l,t)<=0;var sl=Qi;const zi=hn,Ui=pn,ji=Yt,Li=il,$i=cl,Ti=sl,Mi=(e,l,t,n)=>{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 zi(e,t,n);case"!=":return Ui(e,t,n);case">":return ji(e,t,n);case">=":return Li(e,t,n);case"<":return $i(e,t,n);case"<=":return Ti(e,t,n);default:throw new TypeError(`Invalid operator: ${l}`)}};var Xn=Mi;const Oi=se,Pi=je,{safeRe:ot,t:at}=nt,Di=(e,l)=>{if(e instanceof Oi)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(l.includePrerelease?ot[at.COERCEFULL]:ot[at.COERCE]);else{const a=l.includePrerelease?ot[at.COERCERTLFULL]:ot[at.COERCERTL];let Z;for(;(Z=a.exec(e))&&(!t||t.index+t[0].length!==e.length);)(!t||Z.index+Z[0].length!==t.index+t[0].length)&&(t=Z),a.lastIndex=Z.index+Z[1].length+Z[2].length;a.lastIndex=-1}if(t===null)return null;const n=t[2],c=t[3]||"0",i=t[4]||"0",o=l.includePrerelease&&t[5]?`-${t[5]}`:"",s=l.includePrerelease&&t[6]?`+${t[6]}`:"";return Pi(`${n}.${c}.${i}${o}${s}`,l)};var _i=Di;class qi{constructor(){this.max=1e3,this.map=new Map}get(l){const t=this.map.get(l);if(t!==void 0)return this.map.delete(l),this.map.set(l,t),t}delete(l){return this.map.delete(l)}set(l,t){if(!this.delete(l)&&t!==void 0){if(this.map.size>=this.max){const c=this.map.keys().next().value;this.delete(c)}this.map.set(l,t)}return this}}var es=qi,kt,vl;function We(){if(vl)return kt;vl=1;class e{constructor(C,N){if(N=n(N),C instanceof e)return C.loose===!!N.loose&&C.includePrerelease===!!N.includePrerelease?C:new e(C.raw,N);if(C instanceof c)return this.raw=C.value,this.set=[[C]],this.format(),this;if(this.options=N,this.loose=!!N.loose,this.includePrerelease=!!N.includePrerelease,this.raw=C.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(F=>this.parseRange(F.trim())).filter(F=>F.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const F=this.set[0];if(this.set=this.set.filter(H=>!Y(H[0])),this.set.length===0)this.set=[F];else if(this.set.length>1){for(const H of this.set)if(H.length===1&&L(H[0])){this.set=[H];break}}}this.format()}format(){return this.range=this.set.map(C=>C.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(C){const F=((this.options.includePrerelease&&x)|(this.options.loose&&p))+":"+C,H=t.get(F);if(H)return H;const J=this.options.loose,k=J?s[a.HYPHENRANGELOOSE]:s[a.HYPHENRANGE];C=C.replace(k,v(this.options.includePrerelease)),i("hyphen replace",C),C=C.replace(s[a.COMPARATORTRIM],Z),i("comparator trim",C),C=C.replace(s[a.TILDETRIM],g),i("tilde trim",C),C=C.replace(s[a.CARETTRIM],I),i("caret trim",C);let z=C.split(" ").map(V=>K(V,this.options)).join(" ").split(/\s+/).map(V=>R(V,this.options));J&&(z=z.filter(V=>(i("loose invalid filter",V,this.options),!!V.match(s[a.COMPARATORLOOSE])))),i("range list",z);const S=new Map,U=z.map(V=>new c(V,this.options));for(const V of U){if(Y(V))return[V];S.set(V.value,V)}S.size>1&&S.has("")&&S.delete("");const q=[...S.values()];return t.set(F,q),q}intersects(C,N){if(!(C instanceof e))throw new TypeError("a Range is required");return this.set.some(F=>m(F,N)&&C.set.some(H=>m(H,N)&&F.every(J=>H.every(k=>J.intersects(k,N)))))}test(C){if(!C)return!1;if(typeof C=="string")try{C=new o(C,this.options)}catch{return!1}for(let N=0;N<this.set.length;N++)if(D(this.set[N],C,this.options))return!0;return!1}}kt=e;const l=es,t=new l,n=ll,c=Jt(),i=At,o=se,{safeRe:s,t:a,comparatorTrimReplace:Z,tildeTrimReplace:g,caretTrimReplace:I}=nt,{FLAG_INCLUDE_PRERELEASE:x,FLAG_LOOSE:p}=Vt,Y=W=>W.value==="<0.0.0-0",L=W=>W.value==="",m=(W,C)=>{let N=!0;const F=W.slice();let H=F.pop();for(;N&&F.length;)N=F.every(J=>H.intersects(J,C)),H=F.pop();return N},K=(W,C)=>(i("comp",W,C),W=Q(W,C),i("caret",W),W=E(W,C),i("tildes",W),W=be(W,C),i("xrange",W),W=f(W,C),i("stars",W),W),w=W=>!W||W.toLowerCase()==="x"||W==="*",E=(W,C)=>W.trim().split(/\s+/).map(N=>M(N,C)).join(" "),M=(W,C)=>{const N=C.loose?s[a.TILDELOOSE]:s[a.TILDE];return W.replace(N,(F,H,J,k,z)=>{i("tilde",W,F,H,J,k,z);let S;return w(H)?S="":w(J)?S=`>=${H}.0.0 <${+H+1}.0.0-0`:w(k)?S=`>=${H}.${J}.0 <${H}.${+J+1}.0-0`:z?(i("replaceTilde pr",z),S=`>=${H}.${J}.${k}-${z} <${H}.${+J+1}.0-0`):S=`>=${H}.${J}.${k} <${H}.${+J+1}.0-0`,i("tilde return",S),S})},Q=(W,C)=>W.trim().split(/\s+/).map(N=>ge(N,C)).join(" "),ge=(W,C)=>{i("caret",W,C);const N=C.loose?s[a.CARETLOOSE]:s[a.CARET],F=C.includePrerelease?"-0":"";return W.replace(N,(H,J,k,z,S)=>{i("caret",W,H,J,k,z,S);let U;return w(J)?U="":w(k)?U=`>=${J}.0.0${F} <${+J+1}.0.0-0`:w(z)?J==="0"?U=`>=${J}.${k}.0${F} <${J}.${+k+1}.0-0`:U=`>=${J}.${k}.0${F} <${+J+1}.0.0-0`:S?(i("replaceCaret pr",S),J==="0"?k==="0"?U=`>=${J}.${k}.${z}-${S} <${J}.${k}.${+z+1}-0`:U=`>=${J}.${k}.${z}-${S} <${J}.${+k+1}.0-0`:U=`>=${J}.${k}.${z}-${S} <${+J+1}.0.0-0`):(i("no pr"),J==="0"?k==="0"?U=`>=${J}.${k}.${z}${F} <${J}.${k}.${+z+1}-0`:U=`>=${J}.${k}.${z}${F} <${J}.${+k+1}.0-0`:U=`>=${J}.${k}.${z} <${+J+1}.0.0-0`),i("caret return",U),U})},be=(W,C)=>(i("replaceXRanges",W,C),W.split(/\s+/).map(N=>X(N,C)).join(" ")),X=(W,C)=>{W=W.trim();const N=C.loose?s[a.XRANGELOOSE]:s[a.XRANGE];return W.replace(N,(F,H,J,k,z,S)=>{i("xRange",W,F,H,J,k,z,S);const U=w(J),q=U||w(k),V=q||w(z),me=V;return H==="="&&me&&(H=""),S=C.includePrerelease?"-0":"",U?H===">"||H==="<"?F="<0.0.0-0":F="*":H&&me?(q&&(k=0),z=0,H===">"?(H=">=",q?(J=+J+1,k=0,z=0):(k=+k+1,z=0)):H==="<="&&(H="<",q?J=+J+1:k=+k+1),H==="<"&&(S="-0"),F=`${H+J}.${k}.${z}${S}`):q?F=`>=${J}.0.0${S} <${+J+1}.0.0-0`:V&&(F=`>=${J}.${k}.0${S} <${J}.${+k+1}.0-0`),i("xRange return",F),F})},f=(W,C)=>(i("replaceStars",W,C),W.trim().replace(s[a.STAR],"")),R=(W,C)=>(i("replaceGTE0",W,C),W.trim().replace(s[C.includePrerelease?a.GTE0PRE:a.GTE0],"")),v=W=>(C,N,F,H,J,k,z,S,U,q,V,me)=>(w(F)?N="":w(H)?N=`>=${F}.0.0${W?"-0":""}`:w(J)?N=`>=${F}.${H}.0${W?"-0":""}`:k?N=`>=${N}`:N=`>=${N}${W?"-0":""}`,w(U)?S="":w(q)?S=`<${+U+1}.0.0-0`:w(V)?S=`<${U}.${+q+1}.0-0`:me?S=`<=${U}.${q}.${V}-${me}`:W?S=`<${U}.${q}.${+V+1}-0`:S=`<=${S}`,`${N} ${S}`.trim()),D=(W,C,N)=>{for(let F=0;F<W.length;F++)if(!W[F].test(C))return!1;if(C.prerelease.length&&!N.includePrerelease){for(let F=0;F<W.length;F++)if(i(W[F].semver),W[F].semver!==c.ANY&&W[F].semver.prerelease.length>0){const H=W[F].semver;if(H.major===C.major&&H.minor===C.minor&&H.patch===C.patch)return!0}return!1}return!0};return kt}var St,kl;function Jt(){if(kl)return St;kl=1;const e=Symbol("SemVer ANY");class l{static get ANY(){return e}constructor(g,I){if(I=t(I),g instanceof l){if(g.loose===!!I.loose)return g;g=g.value}g=g.trim().split(/\s+/).join(" "),o("comparator",g,I),this.options=I,this.loose=!!I.loose,this.parse(g),this.semver===e?this.value="":this.value=this.operator+this.semver.version,o("comp",this)}parse(g){const I=this.options.loose?n[c.COMPARATORLOOSE]:n[c.COMPARATOR],x=g.match(I);if(!x)throw new TypeError(`Invalid comparator: ${g}`);this.operator=x[1]!==void 0?x[1]:"",this.operator==="="&&(this.operator=""),x[2]?this.semver=new s(x[2],this.options.loose):this.semver=e}toString(){return this.value}test(g){if(o("Comparator.test",g,this.options.loose),this.semver===e||g===e)return!0;if(typeof g=="string")try{g=new s(g,this.options)}catch{return!1}return i(g,this.operator,this.semver,this.options)}intersects(g,I){if(!(g instanceof l))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new a(g.value,I).test(this.value):g.operator===""?g.value===""?!0:new a(this.value,I).test(g.semver):(I=t(I),I.includePrerelease&&(this.value==="<0.0.0-0"||g.value==="<0.0.0-0")||!I.includePrerelease&&(this.value.startsWith("<0.0.0")||g.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&g.operator.startsWith(">")||this.operator.startsWith("<")&&g.operator.startsWith("<")||this.semver.version===g.semver.version&&this.operator.includes("=")&&g.operator.includes("=")||i(this.semver,"<",g.semver,I)&&this.operator.startsWith(">")&&g.operator.startsWith("<")||i(this.semver,">",g.semver,I)&&this.operator.startsWith("<")&&g.operator.startsWith(">")))}}St=l;const t=ll,{safeRe:n,t:c}=nt,i=Xn,o=At,s=se,a=We();return St}const ts=We(),ls=(e,l,t)=>{try{l=new ts(l,t)}catch{return!1}return l.test(e)};var xt=ls;const ns=We(),cs=(e,l)=>new ns(e,l).set.map(t=>t.map(n=>n.value).join(" ").trim().split(" "));var is=cs;const ss=se,os=We(),as=(e,l,t)=>{let n=null,c=null,i=null;try{i=new os(l,t)}catch{return null}return e.forEach(o=>{i.test(o)&&(!n||c.compare(o)===-1)&&(n=o,c=new ss(n,t))}),n};var rs=as;const ds=se,gs=We(),bs=(e,l,t)=>{let n=null,c=null,i=null;try{i=new gs(l,t)}catch{return null}return e.forEach(o=>{i.test(o)&&(!n||c.compare(o)===1)&&(n=o,c=new ds(n,t))}),n};var Zs=bs;const wt=se,ms=We(),Sl=Yt,us=(e,l)=>{e=new ms(e,l);let t=new wt("0.0.0");if(e.test(t)||(t=new wt("0.0.0-0"),e.test(t)))return t;t=null;for(let n=0;n<e.set.length;++n){const c=e.set[n];let i=null;c.forEach(o=>{const s=new wt(o.semver.version);switch(o.operator){case">":s.prerelease.length===0?s.patch++:s.prerelease.push(0),s.raw=s.format();case"":case">=":(!i||Sl(s,i))&&(i=s);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),i&&(!t||Sl(t,i))&&(t=i)}return t&&e.test(t)?t:null};var Gs=us;const Is=We(),Cs=(e,l)=>{try{return new Is(e,l).range||"*"}catch{return null}};var Ws=Cs;const hs=se,fn=Jt(),{ANY:ps}=fn,Xs=We(),fs=xt,wl=Yt,El=cl,Rs=sl,Vs=il,As=(e,l,t,n)=>{e=new hs(e,n),l=new Xs(l,n);let c,i,o,s,a;switch(t){case">":c=wl,i=Rs,o=El,s=">",a=">=";break;case"<":c=El,i=Vs,o=wl,s="<",a="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(fs(e,l,n))return!1;for(let Z=0;Z<l.set.length;++Z){const g=l.set[Z];let I=null,x=null;if(g.forEach(p=>{p.semver===ps&&(p=new fn(">=0.0.0")),I=I||p,x=x||p,c(p.semver,I.semver,n)?I=p:o(p.semver,x.semver,n)&&(x=p)}),I.operator===s||I.operator===a||(!x.operator||x.operator===s)&&i(e,x.semver))return!1;if(x.operator===a&&o(e,x.semver))return!1}return!0};var ol=As;const Ys=ol,Js=(e,l,t)=>Ys(e,l,">",t);var xs=Js;const ys=ol,Bs=(e,l,t)=>ys(e,l,"<",t);var Fs=Bs;const Kl=We(),Hs=(e,l,t)=>(e=new Kl(e,t),l=new Kl(l,t),e.intersects(l,t));var Ns=Hs;const vs=xt,ks=Ce;var Ss=(e,l,t)=>{const n=[];let c=null,i=null;const o=e.sort((g,I)=>ks(g,I,t));for(const g of o)vs(g,l,t)?(i=g,c||(c=g)):(i&&n.push([c,i]),i=null,c=null);c&&n.push([c,null]);const s=[];for(const[g,I]of n)g===I?s.push(g):!I&&g===o[0]?s.push("*"):I?g===o[0]?s.push(`<=${I}`):s.push(`${g} - ${I}`):s.push(`>=${g}`);const a=s.join(" || "),Z=typeof l.raw=="string"?l.raw:String(l);return a.length<Z.length?a:l};const Ql=We(),al=Jt(),{ANY:Et}=al,$e=xt,rl=Ce,ws=(e,l,t={})=>{if(e===l)return!0;e=new Ql(e,t),l=new Ql(l,t);let n=!1;e:for(const c of e.set){for(const i of l.set){const o=Ks(c,i,t);if(n=n||o!==null,o)continue e}if(n)return!1}return!0},Es=[new al(">=0.0.0-0")],zl=[new al(">=0.0.0")],Ks=(e,l,t)=>{if(e===l)return!0;if(e.length===1&&e[0].semver===Et){if(l.length===1&&l[0].semver===Et)return!0;t.includePrerelease?e=Es:e=zl}if(l.length===1&&l[0].semver===Et){if(t.includePrerelease)return!0;l=zl}const n=new Set;let c,i;for(const p of e)p.operator===">"||p.operator===">="?c=Ul(c,p,t):p.operator==="<"||p.operator==="<="?i=jl(i,p,t):n.add(p.semver);if(n.size>1)return null;let o;if(c&&i){if(o=rl(c.semver,i.semver,t),o>0)return null;if(o===0&&(c.operator!==">="||i.operator!=="<="))return null}for(const p of n){if(c&&!$e(p,String(c),t)||i&&!$e(p,String(i),t))return null;for(const Y of l)if(!$e(p,String(Y),t))return!1;return!0}let s,a,Z,g,I=i&&!t.includePrerelease&&i.semver.prerelease.length?i.semver:!1,x=c&&!t.includePrerelease&&c.semver.prerelease.length?c.semver:!1;I&&I.prerelease.length===1&&i.operator==="<"&&I.prerelease[0]===0&&(I=!1);for(const p of l){if(g=g||p.operator===">"||p.operator===">=",Z=Z||p.operator==="<"||p.operator==="<=",c){if(x&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===x.major&&p.semver.minor===x.minor&&p.semver.patch===x.patch&&(x=!1),p.operator===">"||p.operator===">="){if(s=Ul(c,p,t),s===p&&s!==c)return!1}else if(c.operator===">="&&!$e(c.semver,String(p),t))return!1}if(i){if(I&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===I.major&&p.semver.minor===I.minor&&p.semver.patch===I.patch&&(I=!1),p.operator==="<"||p.operator==="<="){if(a=jl(i,p,t),a===p&&a!==i)return!1}else if(i.operator==="<="&&!$e(i.semver,String(p),t))return!1}if(!p.operator&&(i||c)&&o!==0)return!1}return!(c&&Z&&!i&&o!==0||i&&g&&!c&&o!==0||x||I)},Ul=(e,l,t)=>{if(!e)return l;const n=rl(e.semver,l.semver,t);return n>0?e:n<0||l.operator===">"&&e.operator===">="?l:e},jl=(e,l,t)=>{if(!e)return l;const n=rl(e.semver,l.semver,t);return n<0?e:n>0||l.operator==="<"&&e.operator==="<="?l:e};var Qs=ws;const Kt=nt,Ll=Vt,zs=se,$l=Wn,Us=je,js=Pc,Ls=qc,$s=ti,Ts=ni,Ms=si,Os=ri,Ps=bi,Ds=ui,_s=Ce,qs=Wi,eo=Xi,to=nl,lo=Ai,no=xi,co=Yt,io=cl,so=hn,oo=pn,ao=il,ro=sl,go=Xn,bo=_i,Zo=Jt(),mo=We(),uo=xt,Go=is,Io=rs,Co=Zs,Wo=Gs,ho=Ws,po=ol,Xo=xs,fo=Fs,Ro=Ns,Vo=Ss,Ao=Qs;var Yo={parse:Us,valid:js,clean:Ls,inc:$s,diff:Ts,major:Ms,minor:Os,patch:Ps,prerelease:Ds,compare:_s,rcompare:qs,compareLoose:eo,compareBuild:to,sort:lo,rsort:no,gt:co,lt:io,eq:so,neq:oo,gte:ao,lte:ro,cmp:go,coerce:bo,Comparator:Zo,Range:mo,satisfies:uo,toComparators:Go,maxSatisfying:Io,minSatisfying:Co,minVersion:Wo,validRange:ho,outside:po,gtr:Xo,ltr:fo,intersects:Ro,simplifyRange:Vo,subset:Ao,SemVer:zs,re:Kt.re,src:Kt.src,tokens:Kt.t,SEMVER_SPEC_VERSION:Ll.SEMVER_SPEC_VERSION,RELEASE_TYPES:Ll.RELEASE_TYPES,compareIdentifiers:$l.compareIdentifiers,rcompareIdentifiers:$l.rcompareIdentifiers},Jo=Yo;const xo=Nc(Jo),Rn=e=>e!=null&&e.includes(" ")?`"${e}"`:`${e??"pandoc"}`;async function yo(e,l){e=Rn(e);let t=await zt(`${e} --version`,{env:l});t=t.substring(0,t.indexOf(`
`)).replace("pandoc.exe","").replace("pandoc","").trim();let n=[...t].filter(c=>c===".").length;if(n===1)t=`${t}.0`;else for(;n>2;)t=t.substring(0,t.lastIndexOf(".")),n-=1;return xo.parse(t,!0)}const Bo="3.1.7",Zt={normalizePath:Rn,getVersion:yo,requiredVersion:Bo};async function Vn(e,l,t,n,c,i,o,s,a,Z){const{settings:g,lang:I,manifest:x,app:{vault:{adapter:p,config:Y},metadataCache:L}}=e;if(!n){const ce=_l(c);n=`${l.basename}${ce}`}i==null&&(i=g.showOverwriteConfirmation);const m=g.showExportProgressBar,K=p.getBasePath(),w=`${K}/${x.dir}`,E=`${w}/lua`,M=t,Q=`${M}/${n}`,ge=n.substring(0,n.lastIndexOf(".")),be=n,X=p.getFullPath(l.path),f=ae.dirname(X),R=l.basename,v=l.name;let D=Y.attachmentFolderPath??"/";D==="/"?D=K:D.startsWith(".")?D=ae.join(f,D.substring(1)):D=ae.join(K,D);let W=null;try{W=L.getCache(l.path).frontmatter}catch(ce){console.error(ce)}const C={pluginDir:w,luaDir:E,outputDir:M,outputPath:Q,outputFileName:ge,outputFileFullName:be,currentDir:f,currentPath:X,currentFileName:R,currentFileFullName:v,attachmentFolderPath:D,vaultDir:K,metadata:W,options:o,fromFormat:app.vault.config.useMarkdownLinks?"markdown":"markdown+wikilinks_title_after_pipe"},N=c.type==="custom"&&c.showCommandOutput,F=c.openExportedFileLocation??g.openExportedFileLocation,H=c.openExportedFile??g.openExportedFile;if(i&&yt.existsSync(Q)){const ce=await Be.remote.dialog.showSaveDialog({title:I.overwriteConfirmationDialog.title(be),defaultPath:Q,properties:["showOverwriteConfirmation","createDirectory"]});if(ce.canceled)return;C.outputPath=ce.filePath,C.outputDir=ae.dirname(C.outputPath),C.outputFileFullName=ae.basename(C.outputPath),C.outputFileName=ae.basename(C.outputFileFullName,ae.extname(C.outputFileFullName))}let J;m&&(J=Hc.show(I.preparing(C.outputFileFullName)));const k=C.env=ql(de(g.env)??{},C);let z=Zt.normalizePath(de(g.pandocPath));if(pt.platform==="win32"){z=z.replaceAll("\\","/");const ce=["pluginDir","luaDir","outputDir","outputPath","currentDir","currentPath","attachmentFolderPath","vaultDir"];for(const Xe of ce){const He=C[Xe];C[Xe]=He.replaceAll("\\","/")}}const S=c.type==="pandoc"?`${z} "\${currentPath}" ${c.arguments??""} ${c.customArguments??""}`:c.command,U=Ut(S,C),q=lt(U.match(/(?:[^\s"]+|"[^"]*")+/g),{alias:{output:["o"]}}),V=ae.normalize(Kn(q.output)),me=ae.dirname(V);yt.existsSync(me)||yt.mkdirSync(me);try{console.log(`[${e.manifest.name}]: export command and options:`,{cmd:U,options:{cwd:C.currentDir,env:k}}),await zt(U,{cwd:C.currentDir,env:k}),J==null||J();const ce=async()=>{if(F&&setTimeout(()=>{Be.remote.shell.showItemInFolder(V)},1e3),H&&await Be.remote.shell.openPath(V),c.type==="pandoc"&&c.runCommand===!0&&c.command){const Xe=Ut(c.command,C);await zt(Xe,{cwd:C.currentDir,env:k})}s&&s()};if(N){const Xe=new Vl(app,I.exportCommandOutputMessage(U));Xe.onClose=ce,Xe.open()}else new Ie.Notice(I.exportSuccessNotice(C.outputFileFullName),1500),await ce()}catch(ce){J==null||J(),new Vl(app,I.exportErrorOutputMessage(U,ce)).open(),a&&a()}}const Ot=e=>{const l=new Ie.Modal(e.app);let t=[],n=!1;return Ye(()=>{ne(l.titleEl,()=>e.title)}),Ye(()=>{ne(l.contentEl,()=>e.children)}),Ye(()=>{const c=Object.entries(e.classList??{}).filter(([,i])=>i).map(([i])=>i);t.length>0&&l.containerEl.removeClasses(t),c.length>0&&l.containerEl.addClasses(c),t=c}),Ye(()=>{l.containerEl.style.display=e.hidden?"None":""}),l.onClose=()=>{n||(n=!0,e.onClose())},ln(()=>l.open()),ze(()=>{n||l.close()}),document.createTextNode("")};var Fo=Ze("<button>");const Pt=e=>(()=>{var l=Fo();return el(l,"click",e.onClick,!0),ne(l,()=>e.children),te(()=>l.classList.toggle("mod-cta",!!e.cta)),l})();qt(["click"]);var Ho=Ze("<div><div class=setting-item-info><div class=setting-item-name></div><div class=setting-item-description></div></div><div class=setting-item-control>"),No=Ze("<div class=checkbox-container><input type=checkbox>"),vo=Ze("<div class=setting-editor-extra-setting-button>"),ko=Ze("<input type=text>"),So=Ze("<textarea>"),wo=Ze("<select class=dropdown>"),Eo=Ze("<option>");const An=$n(),Ko=()=>Tn(An),j=e=>{const l={settingEl:null};return G(An.Provider,{value:l,get children(){var t=Ho(),n=t.firstChild,c=n.firstChild,i=c.nextSibling,o=n.nextSibling;return Rt(s=>l.settingEl=s,t),ne(c,()=>e.name),ne(i,()=>e.description),ne(o,()=>e.children),te(s=>{var a=`setting-item ${e.class??""}`.trimEnd(),Z=!!e.heading,g=!!e.disabled;return a!==s.e&&bn(t,s.e=a),Z!==s.t&&t.classList.toggle("setting-item-heading",s.t=Z),g!==s.a&&t.classList.toggle("is-disable",s.a=g),s},{e:void 0,t:void 0,a:void 0}),t}})},Ge=e=>{const l=Ko();return ln(()=>{l.settingEl.addClass("mod-toggle")}),ze(()=>{l.settingEl.removeClass("mod-toggle")}),(()=>{var t=No();return t.$$click=()=>e.onChange&&e.onChange(!e.checked),te(()=>t.classList.toggle("is-enabled",!!e.checked)),t})()},ye=e=>(()=>{var l=vo();return el(l,"click",e.onClick,!0),Rt(t=>e.icon&&En.setIcon(t,e.icon),l),te(t=>{var n=!!(e.icon&&e.onClick),c=e.tooltip;return n!==t.e&&l.classList.toggle("clickable-icon",t.e=n),c!==t.t&&xe(l,"aria-label",t.t=c),t},{e:void 0,t:void 0}),l})(),re=e=>(()=>{var l=ko();return l.addEventListener("change",t=>{var n;return(n=e.onChange)==null?void 0:n.call(e,t.target.value)}),te(t=>{var n=e.title,c=e.readOnly,i=e.placeholder,o=e.spellcheck??!1,s=e.style,a=e.disabled;return n!==t.e&&xe(l,"title",t.e=n),c!==t.t&&(l.readOnly=t.t=c),i!==t.a&&xe(l,"placeholder",t.a=i),o!==t.o&&xe(l,"spellcheck",t.o=o),t.i=tl(l,s,t.i),a!==t.n&&(l.disabled=t.n=a),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),te(()=>l.value=e.value),l})(),Qo=e=>(()=>{var l=So();return l.addEventListener("change",t=>{var n;return(n=e.onChange)==null?void 0:n.call(e,t.target.value)}),te(t=>{var n=e.placeholder,c=e.spellcheck??!1,i=e.style,o=e.disabled;return n!==t.e&&xe(l,"placeholder",t.e=n),c!==t.t&&xe(l,"spellcheck",t.t=c),t.a=tl(l,i,t.a),o!==t.o&&(l.disabled=t.o=o),t},{e:void 0,t:void 0,a:void 0,o:void 0}),te(()=>l.value=e.value),l})(),Pe=e=>(()=>{var l=wo();return l.addEventListener("change",t=>{var n;return(n=e.onChange)==null?void 0:n.call(e,t.target.value,t.target.selectedIndex)}),l.autofocus=!0,ne(l,G(gn,{get each(){return e.options},children:t=>(()=>{var n=Eo();return ne(n,()=>t.name??t.value),te(()=>n.selected=t.value===e.selected),te(()=>n.value=t.value),n})()})),l})();qt(["click"]);var zo=Ze("<div>Unsupported <!> ");const rt={checkbox:e=>G(j,{get name(){return e.meta.title},get description(){return e.meta.description},get children(){return G(Ge,{get checked(){return Me(e.meta)},get onChange(){return e.onChange}})}}),textInput:e=>G(j,{get name(){return e.meta.title},get description(){return e.meta.description},get children(){return G(re,{get value(){return Me(e.meta)},get onChange(){return e.onChange}})}}),dropdown:e=>G(j,{get name(){return e.meta.title},get description(){return e.meta.description},get children(){return G(Pe,{get selected(){return Me(e.meta)},get options(){return e.meta.options},onChange:l=>e.onChange(l)})}}),fileSelectDialog:e=>{const[l,t]=oe(Me(e.meta)),n=async()=>{const c=await Pl.remote.dialog.showOpenDialog({properties:["openFile"],filters:e.meta.filters});!c.canceled&&c.filePaths.length>0&&(t(c.filePaths[0]),e.onChange&&e.onChange(P(l)))};return G(j,{get name(){return e.meta.title},get description(){return e.meta.description},get children(){return[G(re,{get value(){return l()??""},readOnly:!0}),G(ye,{icon:"folder",onClick:n})]}})}},Uo=(e,l)=>{switch(e.type){case"checkbox":{const t=rt[e.type];return G(t,{meta:e,onChange:l})}case"dropdown":{const t=rt[e.type];return G(t,{meta:e,onChange:l})}case"textInput":{const t=rt[e.type];return G(t,{meta:e,onChange:l})}case"fileSelectDialog":{const t=rt[e.type];return G(t,{meta:e,onChange:l})}default:return(()=>{var t=zo(),n=t.firstChild,c=n.nextSibling;return c.nextSibling,ne(t,()=>JSON.stringify(e),c),t})()}},jo=e=>{let l={};Ye(()=>l=e.value??Yn(e.meta));const t=(c,i)=>{l[c]=i,e.onChange&&e.onChange(l,c)},n=(c,i)=>{const o=a=>t(c,a);let s;return e.customEditor&&(s=e.customEditor(i,o),s)?s:Uo(i,o)};return G(gn,{get each(){return Object.entries(e.meta)},children:([c,i])=>n(c,i)})},Yn=e=>Object.fromEntries(Object.entries(e).map(([l,t])=>[l,Me(t)])),Me=e=>{if(e.default)return e.default instanceof Function?e.default():e.default};var Lo=Ze("<div class=modal-button-container>");const $o=e=>{var X;const{plugin:{app:l,settings:t,lang:n},currentFile:c}=e,[i,o]=oe(!1),[s,a]=oe(t.showOverwriteConfirmation),[Z,g]=oe(t.lastExportType??((X=t.items.first())==null?void 0:X.name)),[I,x]=oe({}),p=ee(()=>t.items.find(f=>f.name===Z())),Y=ee(()=>_l(p())),L=ee(()=>n.exportDialog.title(p().name)),m=ee(()=>Un(p().optionsMeta)),[K,w]=oe(`${de(t.lastExportDirectory)??Be.remote.app.getPath("documents")}`),[E,M]=oe(`${c.basename}${Y()}`);Ye(()=>{const f=m();x(f?Yn(f):{})}),Ye(()=>{let f=P(E);f=f.includes(".")?f.substring(0,f.lastIndexOf(".")):f,M(`${f}${Y()}`)});const Q=t.items.map(f=>({name:f.name,value:f.name}));if(t.defaultExportDirectoryMode==="Same"){const f=c.vault.adapter.getBasePath()+"/"+c.parent.path;w(f)}else t.defaultExportDirectoryMode==="Custom"&&w(de(t.customDefaultExportDirectory));const ge=async()=>{var R;const f=await Be.remote.dialog.showOpenDialog({title:n.exportDialog.selectExportFolder,defaultPath:K(),properties:["createDirectory","openDirectory"]});!f.canceled&&((R=f.filePaths)==null?void 0:R.length)>0&&w(f.filePaths[0])},be=async()=>{const f=e.plugin;o(!0),await Vn(f,c,P(K),P(E),P(p),P(s),I(),async()=>{t.showOverwriteConfirmation=P(s),t.lastExportDirectory=Ae(t.lastExportDirectory,P(K)),t.lastExportType=P(p).name,await f.saveSettings(),e.onClose&&e.onClose()},()=>{o(!1)})};return G(Ot,{app:l,get title(){return L()},get hidden(){return i()},get onClose(){return e.onClose},get children(){return[G(j,{get name(){return n.exportDialog.type},get children(){return G(Pe,{options:Q,onChange:f=>g(f),get selected(){return Z()}})}}),G(j,{get name(){return n.exportDialog.fileName},get children(){return G(re,{get title(){return E()},get value(){return E()},onChange:f=>M(f)})}}),G(bt,{get when(){return m()},get children(){return G(jo,{get meta(){return m()},get value(){return I()},onChange:f=>x(f)})}}),G(j,{get name(){return n.exportDialog.exportTo},get children(){return[G(re,{get title(){return K()},get value(){return K()},disabled:!0}),G(ye,{icon:"folder",onClick:ge})]}}),G(j,{get name(){return n.exportDialog.overwriteConfirmation},class:"mod-toggle",get children(){return G(Ge,{get checked(){return s()},onChange:a})}}),(()=>{var f=Lo();return ne(f,G(Pt,{cta:!0,onClick:be,get children(){return n.exportDialog.export}})),f})()]}})},To=(e,l)=>Se(t=>{let n=!1;const c=()=>{n||(n=!0,t())},i=ne(document.body,()=>G($o,{onClose:c,plugin:e,currentFile:l}));return ze(()=>{i instanceof Node&&document.body.contains(i)&&document.body.removeChild(i)}),c}),Qt={show:To},Ct=Symbol("store-raw"),we=Symbol("store-node"),Ve=Symbol("store-has"),Jn=Symbol("store-self");function xn(e){let l=e[pe];if(!l&&(Object.defineProperty(e,pe,{value:l=new Proxy(e,Po)}),!Array.isArray(e))){const t=Object.keys(e),n=Object.getOwnPropertyDescriptors(e);for(let c=0,i=t.length;c<i;c++){const o=t[c];n[o].get&&Object.defineProperty(e,o,{enumerable:n[o].enumerable,get:n[o].get.bind(l)})}}return l}function Ee(e){let l;return e!=null&&typeof e=="object"&&(e[pe]||!(l=Object.getPrototypeOf(e))||l===Object.prototype||Array.isArray(e))}function Ke(e,l=new Set){let t,n,c,i;if(t=e!=null&&e[Ct])return t;if(!Ee(e)||l.has(e))return e;if(Array.isArray(e)){Object.isFrozen(e)?e=e.slice(0):l.add(e);for(let o=0,s=e.length;o<s;o++)c=e[o],(n=Ke(c,l))!==c&&(e[o]=n)}else{Object.isFrozen(e)?e=Object.assign({},e):l.add(e);const o=Object.keys(e),s=Object.getOwnPropertyDescriptors(e);for(let a=0,Z=o.length;a<Z;a++)i=o[a],!s[i].get&&(c=e[i],(n=Ke(c,l))!==c&&(e[i]=n))}return e}function Wt(e,l){let t=e[l];return t||Object.defineProperty(e,l,{value:t=Object.create(null)}),t}function qe(e,l,t){if(e[l])return e[l];const[n,c]=oe(t,{equals:!1,internal:!0});return n.$=c,e[l]=n}function Mo(e,l){const t=Reflect.getOwnPropertyDescriptor(e,l);return!t||t.get||!t.configurable||l===pe||l===we||(delete t.value,delete t.writable,t.get=()=>e[pe][l]),t}function yn(e){Lt()&&qe(Wt(e,we),Jn)()}function Oo(e){return yn(e),Reflect.ownKeys(e)}const Po={get(e,l,t){if(l===Ct)return e;if(l===pe)return t;if(l===jt)return yn(e),t;const n=Wt(e,we),c=n[l];let i=c?c():e[l];if(l===we||l===Ve||l==="__proto__")return i;if(!c){const o=Object.getOwnPropertyDescriptor(e,l);Lt()&&(typeof i!="function"||e.hasOwnProperty(l))&&!(o&&o.get)&&(i=qe(n,l,i)())}return Ee(i)?xn(i):i},has(e,l){return l===Ct||l===pe||l===jt||l===we||l===Ve||l==="__proto__"?!0:(Lt()&&qe(Wt(e,Ve),l)(),l in e)},set(){return!0},deleteProperty(){return!0},ownKeys:Oo,getOwnPropertyDescriptor:Mo};function Qe(e,l,t,n=!1){if(!n&&e[l]===t)return;const c=e[l],i=e.length;t===void 0?(delete e[l],e[Ve]&&e[Ve][l]&&c!==void 0&&e[Ve][l].$()):(e[l]=t,e[Ve]&&e[Ve][l]&&c===void 0&&e[Ve][l].$());let o=Wt(e,we),s;if((s=qe(o,l,c))&&s.$(()=>t),Array.isArray(e)&&e.length!==i){for(let a=e.length;a<i;a++)(s=o[a])&&s.$();(s=qe(o,"length",i))&&s.$(e.length)}(s=o[Jn])&&s.$()}function Bn(e,l){const t=Object.keys(l);for(let n=0;n<t.length;n+=1){const c=t[n];Qe(e,c,l[c])}}function Do(e,l){if(typeof l=="function"&&(l=l(e)),l=Ke(l),Array.isArray(l)){if(e===l)return;let t=0,n=l.length;for(;t<n;t++){const c=l[t];e[t]!==c&&Qe(e,t,c)}Qe(e,"length",n)}else Bn(e,l)}function Oe(e,l,t=[]){let n,c=e;if(l.length>1){n=l.shift();const o=typeof n,s=Array.isArray(e);if(Array.isArray(n)){for(let a=0;a<n.length;a++)Oe(e,[n[a]].concat(l),t);return}else if(s&&o==="function"){for(let a=0;a<e.length;a++)n(e[a],a)&&Oe(e,[a].concat(l),t);return}else if(s&&o==="object"){const{from:a=0,to:Z=e.length-1,by:g=1}=n;for(let I=a;I<=Z;I+=g)Oe(e,[I].concat(l),t);return}else if(l.length>1){Oe(e[n],l,[n].concat(t));return}c=e[n],t=[n].concat(t)}let i=l[0];typeof i=="function"&&(i=i(c,t),i===c)||n===void 0&&i==null||(i=Ke(i),n===void 0||Ee(c)&&Ee(i)&&!Array.isArray(i)?Bn(c,i):Qe(e,n,i))}function _o(...[e,l]){const t=Ke(e||{}),n=Array.isArray(t),c=xn(t);function i(...o){gt(()=>{n&&o.length===1?Do(t,o[0]):Oe(t,o)})}return[c,i]}const ht=new WeakMap,Fn={get(e,l){if(l===Ct)return e;const t=e[l];let n;return Ee(t)?ht.get(t)||(ht.set(t,n=new Proxy(t,Fn)),n):t},set(e,l,t){return Qe(e,l,Ke(t)),!0},deleteProperty(e,l){return Qe(e,l,void 0,!0),!0}};function qo(e){return l=>{if(Ee(l)){let t;(t=ht.get(l))||ht.set(l,t=new Proxy(l,Fn)),e(t)}return l}}var Tl=Ze("<div class=modal-button-container>");const ea=e=>{const{plugin:l,lang:t}=e,[n,c]=_o(l.settings),[i,o]=oe(),s=ee(()=>Object.entries(Object.assign({},de(De),de(n.env)??{})).map(([X,f])=>`${X}="${f}"`).join(`
`)),a=(...X)=>{c(...X),l.saveSettings()},Z=X=>{try{const f={};for(let R of X.split(`
`)){R=R.trim();const v=R.indexOf("=");if(v>0){const D=R.substring(0,v);let W=R.substring(v+1).trim();W.startsWith('"')&&W.endsWith('"')&&(W=W.substring(1,W.length-1)),f[D]=W}}a("env",Ae(n.env??{},f))}catch(f){alert(f)}},g=ee(()=>n.items.find(X=>X.name===n.lastEditName)??n.items.first()),I=X=>{const f=g();return X===void 0||X===f.type?f:void 0},x=ee(()=>de(n.customDefaultExportDirectory)),p=X=>{const f=n.items.findIndex(R=>R.name===n.lastEditName);a("items",f===-1?0:f,qo(R=>(X(R),R)))},Y=ee(()=>{const X=i();return X?app.vault.config.useMarkdownLinks&&X.compare(Zt.requiredVersion)===-1?t.settingTab.pandocVersionWithWarning(Zt.requiredVersion):t.settingTab.pandocVersion(X):t.settingTab.pandocNotFound}),[L,m]=oe(),K=()=>{const[X,f]=oe(Object.keys(dt)[0]),[R,v]=oe(),D=()=>{const W=JSON.parse(JSON.stringify(dt[X()]));W.name=R(),gt(()=>{a("items",C=>[...C,W]),a("lastEditName",W.name)}),m(void 0)};return G(Ot,{app,get title(){return t.settingTab.new},onClose:()=>m(void 0),get children(){return[G(j,{get name(){return t.settingTab.template},get children(){return G(Pe,{get options(){return Object.entries(dt).map(([W,C])=>({name:C.name,value:W}))},get selected(){return R()??X()},onChange:W=>f(W)})}}),G(j,{get name(){return t.settingTab.name},get children(){return G(re,{get value(){return R()??""},onChange:W=>v(W)})}}),(()=>{var W=Tl();return ne(W,G(Pt,{cta:!0,onClick:D,get children(){return t.settingTab.save}})),W})()]}})},w=()=>{const[X,f]=oe(I().name),R=()=>{gt(()=>{p(v=>v.name=X()),a("lastEditName",X())}),m(void 0)};return G(Ot,{app,get title(){return t.settingTab.rename},onClose:()=>m(void 0),get children(){return[G(j,{get name(){return t.settingTab.name},get children(){return G(re,{get value(){return X()??""},onChange:v=>f(v)})}}),(()=>{var v=Tl();return ne(v,G(Pt,{cta:!0,onClick:R,get children(){return t.settingTab.add}})),v})()]}})},E=()=>{const X=()=>I("pandoc"),f=R=>{p(v=>v.type==="pandoc"?R(v):void 0)};return[G(j,{get name(){return t.settingTab.arguments},get children(){return G(re,{style:"width: 100%",get value(){return X().arguments??""},onChange:R=>f(v=>v.arguments=R)})}}),G(j,{get name(){return t.settingTab.extraArguments},get children(){return G(re,{style:"width: 100%",get value(){return X().customArguments??""},get title(){return X().customArguments},onChange:R=>f(v=>v.customArguments=R)})}}),G(j,{get name(){return t.settingTab.afterExport},heading:!0}),G(j,{get name(){return t.settingTab.openExportedFileLocation},get children(){return G(Ge,{get checked(){return X().openExportedFileLocation??!1},onChange:R=>f(v=>v.openExportedFileLocation=R)})}}),G(j,{get name(){return t.settingTab.openExportedFile},get children(){return G(Ge,{get checked(){return X().openExportedFile??!1},onChange:R=>f(v=>v.openExportedFile=R)})}}),G(j,{get name(){return t.settingTab.runCommand},get children(){return G(Ge,{get checked(){return X().runCommand},onChange:R=>f(v=>v.runCommand=R)})}}),G(bt,{get when(){return X().runCommand},get children(){return G(j,{get children(){return G(re,{style:"width: 100%",get value(){return X().command??""},onChange:R=>f(v=>v.command=R)})}})}})]},M=()=>{const X=()=>I("custom"),f=R=>{p(v=>v.type==="custom"?R(v):void 0)};return[G(j,{get name(){return t.settingTab.command},get children(){return G(re,{style:"width: 100%",get value(){return X().command},onChange:R=>f(v=>v.command=R)})}}),G(j,{get name(){return t.settingTab.targetFileExtensions},get children(){return G(re,{get value(){return X().targetFileExtensions??""},onChange:R=>f(v=>v.targetFileExtensions=R)})}}),G(j,{get name(){return t.settingTab.afterExport},heading:!0}),G(j,{get name(){return t.settingTab.showCommandOutput},get children(){return G(Ge,{get checked(){return X().showCommandOutput??!1},onChange:R=>f(v=>v.showCommandOutput=R)})}}),G(j,{get name(){return t.settingTab.openExportedFileLocation},get children(){return G(Ge,{get checked(){return X().openExportedFileLocation??!1},onChange:R=>f(v=>v.openExportedFileLocation=R)})}}),G(j,{get name(){return t.settingTab.openExportedFile},get children(){return G(Ge,{get checked(){return X().openExportedFile??!1},onChange:R=>f(v=>v.openExportedFile=R)})}})]},Q=async()=>{await l.resetSettings(),a(l.settings)},ge=async()=>{const X=await Be.remote.dialog.showOpenDialog({defaultPath:x()??Be.remote.app.getPath("documents"),properties:["createDirectory","openDirectory"]});!X.canceled&&X.filePaths.length>0&&a("customDefaultExportDirectory",f=>Ae(f,X.filePaths[0]))},be=async()=>{const X=await Be.remote.dialog.showOpenDialog({filters:pt.platform=="win32"?[{extensions:["exe"],name:"pandoc"}]:void 0,properties:["openFile"]});!X.canceled&&X.filePaths.length>0&&a("pandocPath",f=>Ae(f,X.filePaths[0]))};return Ye(async()=>{try{const X=ql(de(n.env)??{});o(await Zt.getVersion(de(n.pandocPath),X))}catch{o(void 0)}}),[G(j,{get name(){return t.settingTab.general},heading:!0,get children(){return G(ye,{icon:"reset",onClick:Q})}}),G(j,{get name(){return t.settingTab.pandocPath},get description(){return Y()},get children(){return[G(re,{get placeholder(){return t.settingTab.pandocPathPlaceholder},get value(){return de(n.pandocPath)??""},onChange:X=>a("pandocPath",f=>Ae(f,X))}),G(ye,{icon:"folder",onClick:be})]}}),G(j,{get name(){return t.settingTab.defaultFolderForExportedFile},get children(){return G(Pe,{get options(){return[{name:t.settingTab.auto,value:"Auto"},{name:t.settingTab.sameFolderWithCurrentFile,value:"Same"},{name:t.settingTab.customLocation,value:"Custom"}]},get selected(){return n.defaultExportDirectoryMode},onChange:X=>a("defaultExportDirectoryMode",X)})}}),G(bt,{get when(){return n.defaultExportDirectoryMode==="Custom"},get children(){return G(j,{get children(){return[G(re,{get value(){return x()??""},get title(){return x()}}),G(ye,{icon:"folder",onClick:ge})]}})}}),G(j,{get name(){return t.settingTab.openExportedFileLocation},get children(){return G(Ge,{get checked(){return n.openExportedFileLocation},onChange:X=>a("openExportedFileLocation",X)})}}),G(j,{get name(){return t.settingTab.openExportedFile},get children(){return G(Ge,{get checked(){return n.openExportedFile},onChange:X=>a("openExportedFile",X)})}}),G(j,{get name(){return t.settingTab.ShowExportProgressBar},get children(){return G(Ge,{get checked(){return n.showExportProgressBar},onChange:X=>a("showExportProgressBar",X)})}}),G(j,{get name(){return t.settingTab.editCommandTemplate},heading:!0}),G(j,{get name(){return t.settingTab.chooseCommandTemplate},get children(){return[G(Pe,{get options(){return n.items.map(X=>({name:X.name,value:X.name}))},get selected(){return n.lastEditName},onChange:X=>a("lastEditName",X)}),G(ye,{icon:"plus",get tooltip(){return t.settingTab.add},onClick:()=>m(()=>K)}),G(ye,{icon:"pencil",get tooltip(){return t.settingTab.rename},onClick:()=>m(()=>w)}),G(ye,{icon:"trash",get tooltip(){return t.settingTab.remove},onClick:()=>gt(()=>{var X;a("items",f=>f.filter(R=>{var v;return R.name!==((v=I())==null?void 0:v.name)})),a("lastEditName",(X=n.items.first())==null?void 0:X.name)})})]}}),G(lc,{get children(){return[G(Il,{get when(){return I("pandoc")},get children(){return G(E,{})}}),G(Il,{get when(){return I("custom")},get children(){return G(M,{})}})]}}),G(j,{get name(){return t.settingTab.advanced},heading:!0}),G(j,{get name(){return t.settingTab.environmentVariables},get description(){return t.settingTab.environmentVariablesDesc},get children(){return G(Qo,{style:"width: 100%;height: 5em",get value(){return s()},onChange:Z})}}),G(bt,{get when(){return L()},get children(){return G(pc,{get component(){return L()},ref:X=>document.body.appendChild(X)})}})]};var et;class ta extends Ie.PluginSettingTab{constructor(t){super(t.app,t);Zl(this,et);this.plugin=t,this.name=this.plugin.lang.settingTab.title}get lang(){return this.plugin.lang}display(){ml(this,et,Se(t=>{const n=this;return ne(this.containerEl,G(ea,{get plugin(){return n.plugin},get lang(){return n.lang}})),ze(()=>{this.containerEl.empty()}),t}))}hide(){bl(this,et).call(this)}}et=new WeakMap;const la=Uint8Array.from(atob("LS0gY3JlZGl0cyB0byB0YXJsZWIg4oCUIFN0YWNrRXhjaGFuZ2U6IGh0dHBzOi8vdGV4LnN0YWNrZXhjaGFuZ2UuY29tL3F1ZXN0aW9ucy8zOTIwNzAvcGFuZG9jLW1hcmtkb3duLWNyZWF0ZS1zZWxmLWNvbnRhaW5lZC1iaWItZmlsZS1mcm9tLWNpdGVkLXJlZmVyZW5jZXMKZnVuY3Rpb24gUGFuZG9jKGQpCiAgZC5tZXRhLnJlZmVyZW5jZXMgPSBwYW5kb2MudXRpbHMucmVmZXJlbmNlcyhkKQogIGQubWV0YS5iaWJsaW9ncmFwaHkgPSBuaWwKICByZXR1cm4gZAplbmQK"),e=>e.charCodeAt(0)),na=Object.freeze(Object.defineProperty({__proto__:null,default:la},Symbol.toStringTag,{value:"Module"})),ca=Uint8Array.from(atob("cGFja2FnZS5wYXRoPXBhY2thZ2UucGF0aC4uIjsiIC4uZGVidWcuZ2V0aW5mbygxKS5zb3VyY2U6bWF0Y2goIiguKlsvXFxdKSIpOnN1YigyKSAuLiAiPy5sdWEiCgpNb2RlPSdodWdvJwoKcmVxdWlyZSgnbWFya2Rvd24nKQ=="),e=>e.charCodeAt(0)),ia=Object.freeze(Object.defineProperty({__proto__:null,default:ca},Symbol.toStringTag,{value:"Module"})),sa=Uint8Array.from(atob("cGFja2FnZS5wYXRoPWRlYnVnLmdldGluZm8oMSkuc291cmNlOmdzdWIoJ0AnLCcnKTpzdWIoMCk6bWF0Y2goJyguKlsvXFxdKScpOnN1YigwKSAuLiAnPy5sdWEnIC4uICc7JyAuLiBwYWNrYWdlLnBhdGgKCnJlcXVpcmUoInBvbHlmaWxsIikKbG9jYWwgdXJsID0gcmVxdWlyZSgndXJsJykKCmxvY2FsIHBhbmRvYz1wYW5kb2MKbG9jYWwgUEFORE9DX1NUQVRFPVBBTkRPQ19TVEFURQoKUEFORE9DX1ZFUlNJT046bXVzdF9iZV9hdF9sZWFzdCAnMy4xLjcnCgpvcy50ZXh0ID0gcGFuZG9jLnRleHQKCmxvY2FsIFBBVEggPSBwYW5kb2MucGF0aApsb2NhbCBkb2NfZGlyID0gbmlsCmxvY2FsIG1lZGlhX2RpciA9IG5pbAoKaWYgTW9kZSA9PSBuaWwgdGhlbgogIE1vZGUgPSAnZGVmYXVsdCcKZW5kCgotLSBwcmludCgiTW9kZTogIi4uTW9kZSkKCmlmIFBBTkRPQ19TVEFURS5vdXRwdXRfZmlsZSB0aGVuCiAgbG9jYWwgb3V0cHV0X2ZpbGUgPSBQQU5ET0NfU1RBVEUub3V0cHV0X2ZpbGUKICBkb2NfZGlyID0gUEFUSC5kaXJlY3Rvcnkob3V0cHV0X2ZpbGUpCiAgaWYgUEFORE9DX1dSSVRFUl9PUFRJT05TLnZhcmlhYmxlc1sibWVkaWFfZGlyIl0gdGhlbgogICAgbWVkaWFfZGlyID0gdG9zdHJpbmcoUEFORE9DX1dSSVRFUl9PUFRJT05TLnZhcmlhYmxlc1sibWVkaWFfZGlyIl0pCiAgZWxzZQogICAgbWVkaWFfZGlyID0gUEFUSC5zcGxpdF9leHRlbnNpb24ob3V0cHV0X2ZpbGUpCiAgICBpZiBNb2RlIH49ICdodWdvJyB0aGVuCiAgICAgIG1lZGlhX2RpciA9IG1lZGlhX2RpciAuLiAnLW1lZGlhJwogICAgZW5kCiAgZW5kCmVuZAphc3NlcnQoZG9jX2RpciwgImRvY19kaXIgaXMgbmlsIikKYXNzZXJ0KG1lZGlhX2RpciwgIm1lZGlhX2RpciBpcyBuaWwiKQoKCmxvY2FsIGZ1bmN0aW9uIGdldF9hYnNvbHV0ZV9wYXRoKGZpbGVfcGF0aCkKICBpZiBQQVRILmlzX2Fic29sdXRlKGZpbGVfcGF0aCkgdGhlbgogICAgcmV0dXJuIGZpbGVfcGF0aAogIGVuZAogIGZvciBfLCBkaXIgaW4gcGFpcnMoUEFORE9DX1NUQVRFLnJlc291cmNlX3BhdGgpIGRvCiAgICBsb2NhbCBmdWxsX3BhdGggPSBQQVRILmpvaW4oe2RpciwgZmlsZV9wYXRofSkKICAgIGlmIG9zLmV4aXN0cyhmdWxsX3BhdGgpIHRoZW4KICAgICAgcmV0dXJuIGZ1bGxfcGF0aAogICAgZW5kCiAgZW5kCiAgZm9yIF8sIGZpbGUgaW4gcGFpcnMoUEFORE9DX1NUQVRFLmlucHV0X2ZpbGVzKSBkbwogICAgaWYgbm90IFBBVEguaXNfYWJzb2x1dGUoZmlsZSkgdGhlbgogICAgICBmaWxlID0gUEFUSC5qb2luKHtwYW5kb2Muc3lzdGVtLmdldF93b3JraW5nX2RpcmVjdG9yeSgpLCBmaWxlX3BhdGh9KQogICAgZW5kCiAgICBsb2NhbCBkaXIgPSBQQVRILmRpcmVjdG9yeShmaWxlKQogICAgbG9jYWwgZnVsbF9wYXRoID0gUEFUSC5qb2luKHtkaXIsIGZpbGVfcGF0aH0pCiAgICBpZiBvcy5leGlzdHMoZnVsbF9wYXRoKSB0aGVuCiAgICAgIHJldHVybiBmdWxsX3BhdGgKICAgIGVuZAogIGVuZAogIHJldHVybiBuaWwKZW5kCgpsb2NhbCBmdW5jdGlvbiBnZXRfb3V0cHV0X2ZpbGUoZmlsZV9wYXRoKQogIGlmIG1lZGlhX2RpciB0aGVuCiAgICBsb2NhbCBuZXdfZmlsZV9uYW1lID0gcGFuZG9jLnV0aWxzLnNoYTEoZmlsZV9wYXRoKQogICAgbG9jYWwgXywgbmV3X2ZpbGVfZXh0ID0gUEFUSC5zcGxpdF9leHRlbnNpb24oZmlsZV9wYXRoKQogICAgZmlsZV9wYXRoID0gbmV3X2ZpbGVfbmFtZSAuLiBuZXdfZmlsZV9leHQKICAgIGxvY2FsIGZ1bGxfcGF0aCA9IFBBVEguam9pbih7bWVkaWFfZGlyLCBmaWxlX3BhdGh9KQogICAgcmV0dXJuIGZ1bGxfcGF0aAogIGVsc2UKICAgIHJldHVybiBuaWwKICBlbmQKZW5kCgpsb2NhbCBmdW5jdGlvbiBleHRyYWN0X21lZGlhKGZpbGVfcGF0aCkKICBvcy5ta2RpcihtZWRpYV9kaXIpCiAgZmlsZV9wYXRoID0gdXJsLmRlY29kZShmaWxlX3BhdGgpCiAgbG9jYWwgYWJzX3BhdGggPSBnZXRfYWJzb2x1dGVfcGF0aChmaWxlX3BhdGgpCiAgbG9jYWwgZmlsZSA9IGdldF9vdXRwdXRfZmlsZShmaWxlX3BhdGgpCiAgaWYgYWJzX3BhdGggYW5kIGZpbGUgdGhlbgogICAgaWYgbm90IG9zLmV4aXN0cyhmaWxlKSB0aGVuCiAgICAgIG9zLmNvcHkoYWJzX3BhdGgsIGZpbGUpCiAgICBlbmQKICAgIGxvY2FsIHJlbF9wYXRoID0gUEFUSC5tYWtlX3JlbGF0aXZlKGZpbGUsIGRvY19kaXIsIGZhbHNlKQogICAgbG9jYWwgcGFydHMgPSBQQVRILnNwbGl0KHJlbF9wYXRoKQogICAgZm9yIGksdiBpbiBpcGFpcnMocGFydHMpIGRvCiAgICAgIHBhcnRzW2ldID0gdXJsLmVuY29kZSh2KQogICAgZW5kCiAgICBsb2NhbCBlbmNvZGVkX3JlbF9wYXRoID0gdGFibGUuY29uY2F0KHBhcnRzLCAiLyIpCiAgICBpZiBNb2RlID09ICdodWdvJyB0aGVuCiAgICAgIGVuY29kZWRfcmVsX3BhdGggPSAnLi4vJyAuLiBlbmNvZGVkX3JlbF9wYXRoCiAgICBlbmQKICAgIHJldHVybiBlbmNvZGVkX3JlbF9wYXRoCiAgZW5kCmVuZAoKbG9jYWwgZnVuY3Rpb24gcmF3KHMpCiAgcmV0dXJuIHBhbmRvYy5SYXdJbmxpbmUoJ21hcmtkb3duJywgcykKZW5kCgpmdW5jdGlvbiBJbWFnZShlbCkKICBsb2NhbCBzcmMgPSBleHRyYWN0X21lZGlhKGVsLnNyYykKICBpZiBzcmMgdGhlbgogICAgZWwuc3JjID0gc3JjCiAgZW5kCiAgcmV0dXJuIGVsCmVuZAoKZnVuY3Rpb24gU3BhY2UoKQogIHJldHVybiByYXcoJyAnKQplbmQKCmZ1bmN0aW9uIFNvZnRCcmVhaygpCiAgcmV0dXJuIHJhdygnXG4nKQplbmQKCmZ1bmN0aW9uIFJhd0lubGluZShlbCkKICBpZiBlbC5mb3JtYXQgPT0gImh0bWwiIHRoZW4KICAgIGVsLmZvcm1hdCA9ICdtYXJrZG93bicKICAgIGVsLnRleHQgPSBzdHJpbmcuZ3N1YihlbC50ZXh0LCAnPGltZ1tePl0rPicsIGZ1bmN0aW9uKGltZykKICAgICAgcmV0dXJuIHN0cmluZy5nc3ViKGltZywgJ3NyYz0iKFteIl0rKSInLCBmdW5jdGlvbih1cmwpCiAgICAgICAgaWYgc3RyaW5nLmZpbmQodXJsLCAnXltIaF1bVHRdW1R0XVtQcF1bU3NdPzovLycpID09IG5pbCAgdGhlbgogICAgICAgICAgbG9jYWwgZXh0cmFjdF9tZWRpYV91cmwgPSBleHRyYWN0X21lZGlhKHVybCkKICAgICAgICAgIGlmIGV4dHJhY3RfbWVkaWFfdXJsIHRoZW4KICAgICAgICAgICAgcmV0dXJuICdzcmM9IicgLi4gZXh0cmFjdF9tZWRpYV91cmwgLi4gJyInCiAgICAgICAgICBlbmQKICAgICAgICAgIHJldHVybiAnMTIzJwogICAgICAgIGVuZAogICAgICAgIHJldHVybiAnc3JjPSInIC4uIHVybCAuLiAnIicKICAgICAgZW5kKQogICAgZW5kKQogIGVuZAogIHJldHVybiBlbAplbmQKCmZ1bmN0aW9uIFJhd0Jsb2NrKGVsKQogIGlmIGVsLmZvcm1hdCA9PSAiaHRtbCIgdGhlbgogICAgZWwuZm9ybWF0ID0gJ21hcmtkb3duJwogIGVuZAogIHJldHVybiBlbAplbmQKCmZ1bmN0aW9uIE1hdGgoZWwpCiAgaWYgTW9kZSA9PSAnaHVnbycgdGhlbgogICAgaWYgZWwubWF0aHR5cGUgPT0gJ0Rpc3BsYXlNYXRoJyB0aGVuCiAgICAgIHJldHVybiByYXcoJ3t7PCBtYXRoamF4ID59fVxuJCQnICAuLiBlbC50ZXh0IC4uICckJFxue3s8L21hdGhqYXggPn19JykKICAgIGVsc2UKICAgICAgZWwudGV4dCA9IHN0cmluZy5nc3ViKGVsLnRleHQsICdcXFtcXHtcXH1dJywgZnVuY3Rpb24gKHYpCiAgICAgICAgcmV0dXJuICdcXCcgLi4gdgogICAgICBlbmQpCiAgICAgIGVsLnRleHQgPSBzdHJpbmcuZ3N1YihlbC50ZXh0LCAnXycsIGZ1bmN0aW9uICh2KQogICAgICAgIHJldHVybiAnXFwnIC4uIHYKICAgICAgZW5kKQogICAgZW5kCiAgZW5kCiAgcmV0dXJuIGVsCmVuZAoKbG9jYWwgZnVuY3Rpb24gaGVhZGVyTGluayhpbnB1dCkKICAtLSBnaXRodWIgc3R5bGUgc2VjdGlvbiBsaW5rCiAgcmV0dXJuICIjIi4uaW5wdXQ6Z3N1YignICcsICctJykKZW5kCgoKbG9jYWwgZnVuY3Rpb24gaW5zZXJ0TGluayhjb250ZW50LCBsaW5rRGVzY3JpcHRpb24pCiAgbG9jYWwgZGVzY3JpcHRpb25UZXh0ID0gdGFibGUuY29uY2F0KGxpbmtEZXNjcmlwdGlvbiwgIiIpCgogIGlmIHN0cmluZy5maW5kKGRlc2NyaXB0aW9uVGV4dCwgJ3wnKSB0aGVuCiAgICBsb2NhbCB0YXJnZXQsIGRlc2MgPSBkZXNjcmlwdGlvblRleHQ6bWF0Y2goIiguKil8KC4qKSIpCiAgICB0YWJsZS5pbnNlcnQoY29udGVudCwgcGFuZG9jLkxpbmsoZGVzYywgaGVhZGVyTGluayh0YXJnZXQpKSkKICBlbHNlCiAgICB0YWJsZS5pbnNlcnQoY29udGVudCwgcGFuZG9jLkxpbmsoZGVzY3JpcHRpb25UZXh0LCBoZWFkZXJMaW5rKGRlc2NyaXB0aW9uVGV4dCkpKQogIGVuZAplbmQKCmZ1bmN0aW9uIFBhcmEoZWwpCiAgbG9jYWwgY29udGVudCA9IGVsLmNvbnRlbnQKICBjb250ZW50ID0gUHJvY2Vzc01hdGgoY29udGVudCkKICBjb250ZW50ID0gUHJvY2Vzc0ludGVybmFsTGlua3MoY29udGVudCkKICBlbC5jb250ZW50ID0gY29udGVudAogIHJldHVybiBlbAplbmQKCmZ1bmN0aW9uIFByb2Nlc3NNYXRoKGVsZW1lbnRzKQogIGxvY2FsIGNvbnRlbnQgPSB7fQogIGxvY2FsIGluX2Rpc3BsYXlfbWF0aCA9IGZhbHNlCiAgZm9yIF8sIGl0ZW0gaW4gcGFpcnMoZWxlbWVudHMpIGRvCiAgICBpZiBpdGVtLnQgPT0gJ1N0cidhbmQgaXRlbS50ZXh0ID09ICIkJCIgdGhlbgogICAgICBpbl9kaXNwbGF5X21hdGggPSBub3QgaW5fZGlzcGxheV9tYXRoCiAgICBlbHNlCiAgICAgIGlmIGluX2Rpc3BsYXlfbWF0aCB0aGVuCiAgICAgICAgaWYgaXRlbS50ID09ICdSYXdJbmxpbmUnIGFuZCBpdGVtLmZvcm1hdCA9PSAndGV4JyB0aGVuCiAgICAgICAgICBsb2NhbCBuID0gcGFuZG9jLk1hdGgoJ0Rpc3BsYXlNYXRoJywgJ1xuJyAuLiBpdGVtLnRleHQgLi4gJ1xuJykKICAgICAgICAgIHRhYmxlLmluc2VydChjb250ZW50LCBNYXRoKG4pKQogICAgICAgIGVsc2UKICAgICAgICAgIHRhYmxlLmluc2VydChjb250ZW50LCBpdGVtKQogICAgICAgIGVuZAogICAgICBlbHNlCiAgICAgICAgdGFibGUuaW5zZXJ0KGNvbnRlbnQsIGl0ZW0pCiAgICAgIGVuZAogICAgZW5kCiAgZW5kCiAgcmV0dXJuIGNvbnRlbnQKZW5kCgpmdW5jdGlvbiBQcm9jZXNzSW50ZXJuYWxMaW5rcyhlbGVtZW50cykKICBsb2NhbCBjb250ZW50ID0ge30KICBsb2NhbCBpbl9zZWN0aW9uX2xpbmsgPSBmYWxzZQogIGxvY2FsIGxpbmtEZXNjcmlwdGlvbiA9IHt9CgogIGZvciBfLCBpdGVtIGluIHBhaXJzKGVsZW1lbnRzKSBkbwogICAgaWYgaXRlbS50ID09ICdTdHInIGFuZCBzdHJpbmcuc3RhcnRzX3dpdGgoaXRlbS50ZXh0LCAnW1sjJykgdGhlbgogICAgICBpbl9zZWN0aW9uX2xpbmsgPSB0cnVlCiAgICAgIHRhYmxlLmluc2VydChsaW5rRGVzY3JpcHRpb24sIHN0cmluZy5zdWIoaXRlbS50ZXh0LCA0KSkKICAgIGVsc2VpZiBpbl9zZWN0aW9uX2xpbmsgdGhlbgogICAgICBpZiBzdHJpbmcuZW5kc193aXRoKGl0ZW0udGV4dCwgJ11dJykgdGhlbgogICAgICAgIHRhYmxlLmluc2VydChsaW5rRGVzY3JpcHRpb24sIHN0cmluZy5zdWIoaXRlbS50ZXh0LCAxLCAtMykpCiAgICAgICAgaW5zZXJ0TGluayhjb250ZW50LCBsaW5rRGVzY3JpcHRpb24pCiAgICAgICAgaW5fc2VjdGlvbl9saW5rID0gZmFsc2UKICAgICAgICBsaW5rRGVzY3JpcHRpb24gPSB7fQogICAgICBlbHNlCiAgICAgICAgdGFibGUuaW5zZXJ0KGxpbmtEZXNjcmlwdGlvbiwgaXRlbS50ZXh0KQogICAgICBlbmQKICAgIGVsc2UKICAgICAgdGFibGUuaW5zZXJ0KGNvbnRlbnQsIGl0ZW0pCiAgICBlbmQKICBlbmQKICByZXR1cm4gY29udGVudAplbmQKCmZ1bmN0aW9uIFBsYWluKGVsKQogIGVsLmNvbnRlbnQgPSBQcm9jZXNzSW50ZXJuYWxMaW5rcyhlbC5jb250ZW50KQogIHJldHVybiBlbAplbmQKCmZ1bmN0aW9uIFBhbmRvYyhlbCkKICByZXR1cm4gZWwKZW5kCg=="),e=>e.charCodeAt(0)),oa=Object.freeze(Object.defineProperty({__proto__:null,default:sa},Symbol.toStringTag,{value:"Module"})),aa=Uint8Array.from(atob("dHJhdmVyc2UgPSAndG9wZG93bicKCm1hdGhfYmxvY2tfdGV4dCA9IG5pbApmdW5jdGlvbiBwcm9jZXNzKGVsKQoKICAgLS0gTWF0aEJsb2NrIHN0YXJ0IG9yIGVuZAogICBpZiBlbC50ID09ICdTdHInIGFuZCBlbC50ZXh0ID09ICckJCcgdGhlbgogICAgIGlmIG1hdGhfYmxvY2tfdGV4dCA9PSBuaWwgdGhlbiAgICAgICAgICAgIC0tIHN0YXJ0CiAgICAgICBtYXRoX2Jsb2NrX3RleHQgPSAnJwogICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGVuZAogICAgICAgbG9jYWwgbWF0aF9ibG9jayA9IHBhbmRvYy5NYXRoKCdEaXNwbGF5TWF0aCcsICdcbicgLi4gbWF0aF9ibG9ja190ZXh0IC4uICdcbicpCiAgICAgICBtYXRoX2Jsb2NrX3RleHQgPSBuaWwKICAgICAgIHJldHVybiBtYXRoX2Jsb2NrCiAgICAgZW5kCiAgICAgcmV0dXJuIHt9CiAgIGVuZAoKICBpZiBtYXRoX2Jsb2NrX3RleHQgdGhlbgogICAgaWYgKGVsLnQgPT0gJ1Jhd0lubGluZScgb3IgZWwudCA9PSAnUmF3QmxvY2snKSBhbmQgZWwuZm9ybWF0ID09ICd0ZXgnIHRoZW4KICAgICAgbWF0aF9ibG9ja190ZXh0ID0gbWF0aF9ibG9ja190ZXh0IC4uIGVsLnRleHQKICAgICAgcmV0dXJuIHt9CiAgICBlbHNlaWYgZWwudCA9PSAnU3RyJyB0aGVuCiAgICAgIG1hdGhfYmxvY2tfdGV4dCA9IG1hdGhfYmxvY2tfdGV4dCAuLiBlbC50ZXh0CiAgICAgIHJldHVybiB7fQogICAgZWxzZWlmIGVsLnQgPT0gJ1NvZnRCcmVhaycgb3IgZWwudCA9PSAnQnVsbGV0TGlzdCcgdGhlbgogICAgICByZXR1cm4ge30KICAgIGVuZAogIGVuZAogIHJldHVybiBlbAplbmQKCmZ1bmN0aW9uIFJhd0lubGluZShlbCkgCiAgcmV0dXJuIHByb2Nlc3MoZWwpCmVuZAoKZnVuY3Rpb24gUmF3QmxvY2soZWwpIAogIHJldHVybiBwcm9jZXNzKGVsKQplbmQKCmZ1bmN0aW9uIFN0cihlbCkKICByZXR1cm4gcHJvY2VzcyhlbCkKZW5kCgpmdW5jdGlvbiBTb2Z0QnJlYWsoZWwpCiAgcmV0dXJuIHByb2Nlc3MoZWwpCmVuZAoKZnVuY3Rpb24gSGVhZGVyKGVsKQogIHJldHVybiBwcm9jZXNzKGVsKQplbmQKCmZ1bmN0aW9uIFBhcmEoZWwpCiAgcmV0dXJuIHByb2Nlc3MoZWwpCmVuZAoKZnVuY3Rpb24gUGxhaW4oZWwpCiAgcmV0dXJuIHByb2Nlc3MoZWwpCmVuZAoKZnVuY3Rpb24gQnVsbGV0TGlzdChlbCkKICByZXR1cm4gcHJvY2VzcyhlbCkKZW5kCgoKCgoKCg=="),e=>e.charCodeAt(0)),ra=Object.freeze(Object.defineProperty({__proto__:null,default:aa},Symbol.toStringTag,{value:"Module"})),da=Uint8Array.from(atob("CnJldHVybiB7CiAgICB7CiAgICAgICAgTWF0aCA9IGZ1bmN0aW9uIChlbGVtKQogICAgICAgICAgICBpZiBlbGVtLnRleHQ6ZmluZCgiXiVzKlxcYmVnaW57Iikgfj0gbmlsIHRoZW4KICAgICAgICAgICAgICAgIHJldHVybiBwYW5kb2MuUmF3SW5saW5lKCd0ZXgnLCBlbGVtLnRleHQpCiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHJldHVybiBlbGVtCiAgICAgICAgICAgIGVuZAogICAgICAgIGVuZCwKICAgIH0KfQo="),e=>e.charCodeAt(0)),ga=Object.freeze(Object.defineProperty({__proto__:null,default:da},Symbol.toStringTag,{value:"Module"})),ba=Uint8Array.from(atob("b3MucGxhdGZvcm0gPSBuaWwKaWYgb3MucGxhdGZvcm0gPT0gbmlsIHRoZW4KICBsb2NhbCBsaWJFeHQgPSBwYWNrYWdlLmNwYXRoOm1hdGNoKCIlcFtcXHwvXT9cXC4lcCglYSspIikKICBpZiBsaWJFeHQgPT0gJ2RsbCcgdGhlbgogICAgb3MucGxhdGZvcm0gPSAiV2luZG93cyIKICBlbHNlaWYgbGliRXh0ID09ICdzbycgdGhlbgogICAgb3MucGxhdGZvcm0gPSAiTGludXgiCiAgZWxzZWlmIGxpYkV4dCA9PSAnZHlsaWInIHRoZW4KICAgIG9zLnBsYXRmb3JtID0gIk1hY09TIgogIGVuZAplbmQKCgpvcy5jb3B5ID0gZnVuY3Rpb24oc3JjLCBkZXN0KQogIGlmIG9zLnBsYXRmb3JtID09ICJXaW5kb3dzIiB0aGVuCiAgICBzcmMgPSBzdHJpbmcuZ3N1YihzcmMsICIvIiwgIlxcIikKICAgIHNyYyA9IG9zLnRleHQudG9lbmNvZGluZyhzcmMpCiAgICBkZXN0ID0gb3MudGV4dC50b2VuY29kaW5nKGRlc3QpCiAgICBvcy5leGVjdXRlKCdjb3B5ICInIC4uIHNyYyAuLiAnIiAiJyAuLiBkZXN0IC4uICciID5OVUwnKQogIGVsc2UKICAgIG9zLmV4ZWN1dGUoJ2NwICInIC4uIHNyYyAuLiAnIiAiJyAuLiBkZXN0IC4uICciJykKICBlbmQKZW5kCgpvcy5ta2RpciA9IGZ1bmN0aW9uKGRpcikKICBpZiBvcy5leGlzdHMoZGlyKSB0aGVuCiAgICByZXR1cm4KICBlbmQKICBpZiBvcy5wbGF0Zm9ybSA9PSAiV2luZG93cyIgdGhlbgogICAgZGlyID0gb3MudGV4dC50b2VuY29kaW5nKGRpcikKICAgIG9zLmV4ZWN1dGUoJ21rZGlyICInIC4uIGRpciAuLiAnIicpCiAgZWxzZQogICAgb3MuZXhlY3V0ZSgnbWtkaXIgLXAgIicgLi4gZGlyIC4uICciJykKICBlbmQKZW5kCgpvcy5leGlzdHMgPSBmdW5jdGlvbihwYXRoKQogIGlmIG9zLnBsYXRmb3JtID09ICJXaW5kb3dzIiB0aGVuCiAgICBwYXRoID0gc3RyaW5nLmdzdWIocGF0aCwgIi8iLCAiXFwiKQogICAgcGF0aCA9IG9zLnRleHQudG9lbmNvZGluZyhwYXRoKQogICAgbG9jYWwgXywgXywgY29kZSA9IG9zLmV4ZWN1dGUoJ2lmIGV4aXN0ICInIC4uIHBhdGggLi4gJyIgKGV4aXQgMCkgZWxzZSAoZXhpdCAxKScpCiAgICByZXR1cm4gY29kZSA9PSAwCiAgZWxzZQogICAgbG9jYWwgXywgXywgY29kZSA9IG9zLmV4ZWN1dGUoJ3Rlc3QgLWUgIicgLi4gcGF0aCAuLiAnIicpCiAgICByZXR1cm4gY29kZSA9PSAwCiAgZW5kCmVuZAoKc3RyaW5nLnN0YXJ0c193aXRoID0gZnVuY3Rpb24oc3RyLCBzdGFydCkKICAgcmV0dXJuIHN0cjpzdWIoMSwgI3N0YXJ0KSA9PSBzdGFydAplbmQKCnN0cmluZy5lbmRzX3dpdGggPSBmdW5jdGlvbihzdHIsIGVuZGluZykKICAgcmV0dXJuIGVuZGluZyA9PSAiIiBvciBzdHI6c3ViKC0jZW5kaW5nKSA9PSBlbmRpbmcKZW5kCgoKcmV0dXJuIHsKICBvcyA9IG9zLAogIHN0cmluZyA9IHN0cmluZwp9"),e=>e.charCodeAt(0)),Za=Object.freeze(Object.defineProperty({__proto__:null,default:ba},Symbol.toStringTag,{value:"Module"})),ma=Uint8Array.from(atob("bG9jYWwgZnVuY3Rpb24gZW5jb2RlIChzdHIpCiAgc3RyID0gc3RyaW5nLmdzdWIgKHN0ciwgIihbXjAtOWEtekEtWiAhJygpKi5ffi1dKSIsIC0tIGxvY2FsZSBpbmRlcGVuZGVudAogICAgZnVuY3Rpb24gKGMpIHJldHVybiBzdHJpbmcuZm9ybWF0ICgiJSUlMDJYIiwgc3RyaW5nLmJ5dGUoYykpIGVuZCkKICBzdHIgPSBzdHJpbmcuZ3N1YiAoc3RyLCAiICIsICIlJTIwIikKICByZXR1cm4gc3RyCiBlbmQKCgpsb2NhbCBmdW5jdGlvbiBkZWNvZGUgKHN0cikKICBzdHIgPSBzdHJpbmcuZ3N1YiAoc3RyLCAiJSUyMCIsICIgIikKICBzdHIgPSBzdHJpbmcuZ3N1YiAoc3RyLCAiJSUoJXgleCkiLCBmdW5jdGlvbihoKSByZXR1cm4gc3RyaW5nLmNoYXIodG9udW1iZXIoaCwxNikpIGVuZCkKICByZXR1cm4gc3RyCmVuZAoKcmV0dXJuIHsKICBlbmNvZGUgPSBlbmNvZGUsCiAgZGVjb2RlID0gZGVjb2RlCn0="),e=>e.charCodeAt(0)),ua=Object.freeze(Object.defineProperty({__proto__:null,default:ma},Symbol.toStringTag,{value:"Module"})),Ga=Uint8Array.from(atob("JSUKJSBDb3B5cmlnaHQgKGMpIDIwMTcgLSAyMDIzLCBQYXNjYWwgV2FnbGVyOwolIENvcHlyaWdodCAoYykgMjAxNCAtIDIwMjMsIEpvaG4gTWFjRmFybGFuZQolCiUgQWxsIHJpZ2h0cyByZXNlcnZlZC4KJQolIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAolIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwolIGFyZSBtZXQ6CiUKJSAtIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiUgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgolCiUgLSBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAolIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKJSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgolCiUgLSBOZWl0aGVyIHRoZSBuYW1lIG9mIEpvaG4gTWFjRmFybGFuZSBub3IgdGhlIG5hbWVzIG9mIG90aGVyCiUgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCiUgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgolCiUgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwolICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiUgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKJSBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQolIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKJSBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAolIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKJSBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCiUgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCiUgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4KJSBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKJSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KJSUKCiUlCiUgVGhpcyBpcyB0aGUgRWlzdm9nZWwgcGFuZG9jIExhVGVYIHRlbXBsYXRlLgolCiUgRm9yIHVzYWdlIGluZm9ybWF0aW9uIGFuZCBleGFtcGxlcyB2aXNpdCB0aGUgb2ZmaWNpYWwgR2l0SHViIHBhZ2U6CiUgaHR0cHM6Ly9naXRodWIuY29tL1dhbmRtYWxmYXJiZS9wYW5kb2MtbGF0ZXgtdGVtcGxhdGUKJSUKCiUgT3B0aW9ucyBmb3IgcGFja2FnZXMgbG9hZGVkIGVsc2V3aGVyZQpcUGFzc09wdGlvbnNUb1BhY2thZ2V7dW5pY29kZSRmb3IoaHlwZXJyZWZvcHRpb25zKSQsJGh5cGVycmVmb3B0aW9ucyQkZW5kZm9yJH17aHlwZXJyZWZ9ClxQYXNzT3B0aW9uc1RvUGFja2FnZXtoeXBoZW5zfXt1cmx9ClxQYXNzT3B0aW9uc1RvUGFja2FnZXtkdmlwc25hbWVzLHN2Z25hbWVzLHgxMW5hbWVzLHRhYmxlfXt4Y29sb3J9CiRpZihDSkttYWluZm9udCkkClxQYXNzT3B0aW9uc1RvUGFja2FnZXtzcGFjZX17eGVDSkt9Clx1c2VwYWNrYWdle2RhdGV0aW1lfQoKJGVuZGlmJAolClxkb2N1bWVudGNsYXNzWwokaWYoZm9udHNpemUpJAogICRmb250c2l6ZSQsCiRlbmRpZiQKJGlmKHBhcGVyc2l6ZSkkCiAgJHBhcGVyc2l6ZSRwYXBlciwKJGVsc2UkCiAgcGFwZXI9YTQsCiRlbmRpZiQKJGlmKGJlYW1lcikkCiAgaWdub3Jlbm9uZnJhbWV0ZXh0LAokaWYoaGFuZG91dCkkCiAgaGFuZG91dCwKJGVuZGlmJAokaWYoYXNwZWN0cmF0aW8pJAogIGFzcGVjdHJhdGlvPSRhc3BlY3RyYXRpbyQsCiRlbmRpZiQKJGVuZGlmJAokZm9yKGNsYXNzb3B0aW9uKSQKICAkY2xhc3NvcHRpb24kJHNlcCQsCiRlbmRmb3IkCiAgLGNhcHRpb25zPXRhYmxlaGVhZGluZwpdeyRpZihiZWFtZXIpJCRkb2N1bWVudGNsYXNzJCRlbHNlJCRpZihib29rKSRzY3Jib29rJGVsc2Ukc2NyYXJ0Y2wkZW5kaWYkJGVuZGlmJH0KJGlmKGJlYW1lcikkCiRpZihiYWNrZ3JvdW5kLWltYWdlKSQKXHVzZWJhY2tncm91bmR0ZW1wbGF0ZXslCiAgXGluY2x1ZGVncmFwaGljc1t3aWR0aD1ccGFwZXJ3aWR0aF17JGJhY2tncm91bmQtaW1hZ2UkfSUKfQolIEluIGJlYW1lciBiYWNrZ3JvdW5kLWltYWdlIGRvZXMgbm90IHdvcmsgd2VsbCB3aGVuIG90aGVyIGltYWdlcyBhcmUgdXNlZCwgc28gdGhpcyBpcyB0aGUgd29ya2Fyb3VuZApccGdmZGVjbGFyZWltYWdlW3dpZHRoPVxwYXBlcndpZHRoLGhlaWdodD1ccGFwZXJoZWlnaHRde2JhY2tncm91bmR9eyRiYWNrZ3JvdW5kLWltYWdlJH0KXHVzZWJhY2tncm91bmR0ZW1wbGF0ZXtccGdmdXNlaW1hZ2V7YmFja2dyb3VuZH19CiRlbmRpZiQKXHVzZXBhY2thZ2V7cGdmcGFnZXN9ClxzZXRiZWFtZXJ0ZW1wbGF0ZXtjYXB0aW9ufVtudW1iZXJlZF0KXHNldGJlYW1lcnRlbXBsYXRle2NhcHRpb24gbGFiZWwgc2VwYXJhdG9yfXs6IH0KXHNldGJlYW1lcmNvbG9ye2NhcHRpb24gbmFtZX17Zmc9bm9ybWFsIHRleHQuZmd9ClxiZWFtZXJ0ZW1wbGF0ZW5hdmlnYXRpb25zeW1ib2xzJGlmKG5hdmlnYXRpb24pJCRuYXZpZ2F0aW9uJCRlbHNlJGVtcHR5JGVuZGlmJAokZm9yKGJlYW1lcm9wdGlvbikkClxzZXRiZWFtZXJvcHRpb257JGJlYW1lcm9wdGlvbiR9CiRlbmRmb3IkCiUgUHJldmVudCBzbGlkZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBhIHBhcmFncmFwaApcd2lkb3dwZW5hbHRpZXMgMSAxMDAwMApccmFnZ2VkYm90dG9tCiRpZihzZWN0aW9uLXRpdGxlcykkClxzZXRiZWFtZXJ0ZW1wbGF0ZXtwYXJ0IHBhZ2V9ewogIFxjZW50ZXJpbmcKICBcYmVnaW57YmVhbWVyY29sb3Jib3h9W3NlcD0xNnB0LGNlbnRlcl17cGFydCB0aXRsZX0KICAgIFx1c2ViZWFtZXJmb250e3BhcnQgdGl0bGV9XGluc2VydHBhcnRccGFyCiAgXGVuZHtiZWFtZXJjb2xvcmJveH0KfQpcc2V0YmVhbWVydGVtcGxhdGV7c2VjdGlvbiBwYWdlfXsKICBcY2VudGVyaW5nCiAgXGJlZ2lue2JlYW1lcmNvbG9yYm94fVtzZXA9MTJwdCxjZW50ZXJde3BhcnQgdGl0bGV9CiAgICBcdXNlYmVhbWVyZm9udHtzZWN0aW9uIHRpdGxlfVxpbnNlcnRzZWN0aW9uXHBhcgogIFxlbmR7YmVhbWVyY29sb3Jib3h9Cn0KXHNldGJlYW1lcnRlbXBsYXRle3N1YnNlY3Rpb24gcGFnZX17CiAgXGNlbnRlcmluZwogIFxiZWdpbntiZWFtZXJjb2xvcmJveH1bc2VwPThwdCxjZW50ZXJde3BhcnQgdGl0bGV9CiAgICBcdXNlYmVhbWVyZm9udHtzdWJzZWN0aW9uIHRpdGxlfVxpbnNlcnRzdWJzZWN0aW9uXHBhcgogIFxlbmR7YmVhbWVyY29sb3Jib3h9Cn0KXEF0QmVnaW5QYXJ0ewogIFxmcmFtZXtccGFydHBhZ2V9Cn0KXEF0QmVnaW5TZWN0aW9uewogIFxpZmJpYmxpb2dyYXBoeQogIFxlbHNlCiAgICBcZnJhbWV7XHNlY3Rpb25wYWdlfQogIFxmaQp9ClxBdEJlZ2luU3Vic2VjdGlvbnsKICBcZnJhbWV7XHN1YnNlY3Rpb25wYWdlfQp9CiRlbmRpZiQKJGVuZGlmJAokaWYoYmVhbWVyYXJ0aWNsZSkkClx1c2VwYWNrYWdle2JlYW1lcmFydGljbGV9ICUgbmVlZHMgdG8gYmUgbG9hZGVkIGZpcnN0CiRlbmRpZiQKXHVzZXBhY2thZ2V7YW1zbWF0aCxhbXNzeW1ifQokaWYobGluZXN0cmV0Y2gpJApcdXNlcGFja2FnZXtzZXRzcGFjZX0KJGVsc2UkCiUgVXNlIHNldHNwYWNlIGFueXdheSBiZWNhdXNlIHdlIGNoYW5nZSB0aGUgZGVmYXVsdCBsaW5lIHNwYWNpbmcuCiUgVGhlIHNwYWNpbmcgaXMgY2hhbmdlZCBlYXJseSB0byBhZmZlY3QgdGhlIHRpdGxlcGFnZSBhbmQgdGhlIFRPQy4KXHVzZXBhY2thZ2V7c2V0c3BhY2V9ClxzZXRzdHJldGNoezEuMn0KJGVuZGlmJApcdXNlcGFja2FnZXtpZnRleH0KXGlmUERGVGVYCiAgXHVzZXBhY2thZ2VbJGlmKGZvbnRlbmMpJCRmb250ZW5jJCRlbHNlJFQxJGVuZGlmJF17Zm9udGVuY30KICBcdXNlcGFja2FnZVt1dGY4XXtpbnB1dGVuY30KICBcdXNlcGFja2FnZXt0ZXh0Y29tcH0gJSBwcm92aWRlIGV1cm8gYW5kIG90aGVyIHN5bWJvbHMKXGVsc2UgJSBpZiBsdWF0ZXggb3IgeGV0ZXgKJGlmKG1hdGhzcGVjKSQKICBcaWZYZVRlWAogICAgXHVzZXBhY2thZ2V7bWF0aHNwZWN9ICUgdGhpcyBhbHNvIGxvYWRzIGZvbnRzcGVjCiAgXGVsc2UKICAgIFx1c2VwYWNrYWdle3VuaWNvZGUtbWF0aH0gJSB0aGlzIGFsc28gbG9hZHMgZm9udHNwZWMKICBcZmkKJGVsc2UkCiAgXHVzZXBhY2thZ2V7dW5pY29kZS1tYXRofSAlIHRoaXMgYWxzbyBsb2FkcyBmb250c3BlYwokZW5kaWYkCiAgXGRlZmF1bHRmb250ZmVhdHVyZXN7U2NhbGU9TWF0Y2hMb3dlcmNhc2V9JC0tIG11c3QgY29tZSBiZWZvcmUgQmVhbWVyIHRoZW1lCiAgXGRlZmF1bHRmb250ZmVhdHVyZXNbXHJtZmFtaWx5XXtMaWdhdHVyZXM9VGVYLFNjYWxlPTF9ClxmaQokaWYoZm9udGZhbWlseSkkCiRlbHNlJAokLS0gU2V0IGRlZmF1bHQgZm9udCBiZWZvcmUgQmVhbWVyIHRoZW1lIHNvIHRoZSB0aGVtZSBjYW4gb3ZlcnJpZGUgaXQKXHVzZXBhY2thZ2V7bG1vZGVybn0KJGVuZGlmJAokLS0gU2V0IEJlYW1lciB0aGVtZSBiZWZvcmUgdXNlciBmb250IHNldHRpbmdzIHNvIHRoZXkgY2FuIG92ZXJyaWRlIHRoZW1lCiRpZihiZWFtZXIpJAokaWYodGhlbWUpJApcdXNldGhlbWVbJGZvcih0aGVtZW9wdGlvbnMpJCR0aGVtZW9wdGlvbnMkJHNlcCQsJGVuZGZvciRdeyR0aGVtZSR9CiRlbmRpZiQKJGlmKGNvbG9ydGhlbWUpJApcdXNlY29sb3J0aGVtZXskY29sb3J0aGVtZSR9CiRlbmRpZiQKJGlmKGZvbnR0aGVtZSkkClx1c2Vmb250dGhlbWV7JGZvbnR0aGVtZSR9CiRlbmRpZiQKJGlmKG1haW5mb250KSQKXHVzZWZvbnR0aGVtZXtzZXJpZn0gJSB1c2UgbWFpbmZvbnQgcmF0aGVyIHRoYW4gc2Fuc2ZvbnQgZm9yIHNsaWRlIHRleHQKJGVuZGlmJAokaWYoaW5uZXJ0aGVtZSkkClx1c2Vpbm5lcnRoZW1leyRpbm5lcnRoZW1lJH0KJGVuZGlmJAokaWYob3V0ZXJ0aGVtZSkkClx1c2VvdXRlcnRoZW1leyRvdXRlcnRoZW1lJH0KJGVuZGlmJAokZW5kaWYkCiQtLSBVc2VyIGZvbnQgc2V0dGluZ3MgKG11c3QgY29tZSBhZnRlciBkZWZhdWx0IGZvbnQgYW5kIEJlYW1lciB0aGVtZSkKJGlmKGZvbnRmYW1pbHkpJApcdXNlcGFja2FnZVskZm9yKGZvbnRmYW1pbHlvcHRpb25zKSQkZm9udGZhbWlseW9wdGlvbnMkJHNlcCQsJGVuZGZvciRdeyRmb250ZmFtaWx5JH0KJGVuZGlmJApcaWZQREZUZVhcZWxzZQogICUgeGV0ZXgvbHVhdGV4IGZvbnQgc2VsZWN0aW9uCiRpZihtYWluZm9udCkkCiAgXHNldG1haW5mb250WyRmb3IobWFpbmZvbnRvcHRpb25zKSQkbWFpbmZvbnRvcHRpb25zJCRzZXAkLCRlbmRmb3IkXXskbWFpbmZvbnQkfQokZW5kaWYkCiRpZihzYW5zZm9udCkkCiAgXHNldHNhbnNmb250WyRmb3Ioc2Fuc2ZvbnRvcHRpb25zKSQkc2Fuc2ZvbnRvcHRpb25zJCRzZXAkLCRlbmRmb3IkXXskc2Fuc2ZvbnQkfQokZW5kaWYkCiRpZihtb25vZm9udCkkCiAgXHNldG1vbm9mb250WyRmb3IobW9ub2ZvbnRvcHRpb25zKSQkbW9ub2ZvbnRvcHRpb25zJCRzZXAkLCRlbmRmb3IkXXskbW9ub2ZvbnQkfQokZW5kaWYkCiRmb3IoZm9udGZhbWlsaWVzKSQKICBcbmV3Zm9udGZhbWlseXskZm9udGZhbWlsaWVzLm5hbWUkfVskZm9yKGZvbnRmYW1pbGllcy5vcHRpb25zKSQkZm9udGZhbWlsaWVzLm9wdGlvbnMkJHNlcCQsJGVuZGZvciRdeyRmb250ZmFtaWxpZXMuZm9udCR9CiRlbmRmb3IkCiRpZihtYXRoZm9udCkkCiRpZihtYXRoc3BlYykkCiAgXGlmWGVUZVgKICAgIFxzZXRtYXRoZm9udChEaWdpdHMsTGF0aW4sR3JlZWspWyRmb3IobWF0aGZvbnRvcHRpb25zKSQkbWF0aGZvbnRvcHRpb25zJCRzZXAkLCRlbmRmb3IkXXskbWF0aGZvbnQkfQogIFxlbHNlCiAgICBcc2V0bWF0aGZvbnRbJGZvcihtYXRoZm9udG9wdGlvbnMpJCRtYXRoZm9udG9wdGlvbnMkJHNlcCQsJGVuZGZvciRdeyRtYXRoZm9udCR9CiAgXGZpCiRlbHNlJAogIFxzZXRtYXRoZm9udFskZm9yKG1hdGhmb250b3B0aW9ucykkJG1hdGhmb250b3B0aW9ucyQkc2VwJCwkZW5kZm9yJF17JG1hdGhmb250JH0KJGVuZGlmJAokZW5kaWYkCiRpZihDSkttYWluZm9udCkkCiAgXGlmWGVUZVgKICAgIFx1c2VwYWNrYWdle3hlQ0pLfQogICAgXHNldENKS21haW5mb250WyRmb3IoQ0pLb3B0aW9ucykkJENKS29wdGlvbnMkJHNlcCQsJGVuZGZvciRdeyRDSkttYWluZm9udCR9CiAgICAkaWYoQ0pLc2Fuc2ZvbnQpJAogICAgICBcc2V0Q0pLc2Fuc2ZvbnRbJGZvcihDSktvcHRpb25zKSQkQ0pLb3B0aW9ucyQkc2VwJCwkZW5kZm9yJF17JENKS3NhbnNmb250JH0KICAgICRlbmRpZiQKICAgICRpZihDSkttb25vZm9udCkkCiAgICAgIFxzZXRDSkttb25vZm9udFskZm9yKENKS29wdGlvbnMpJCRDSktvcHRpb25zJCRzZXAkLCRlbmRmb3IkXXskQ0pLbW9ub2ZvbnQkfQogICAgJGVuZGlmJAogIFxmaQokZW5kaWYkCiRpZihsdWF0ZXhqYXByZXNldG9wdGlvbnMpJAogIFxpZkx1YVRlWAogICAgXHVzZXBhY2thZ2VbJGZvcihsdWF0ZXhqYXByZXNldG9wdGlvbnMpJCRsdWF0ZXhqYXByZXNldG9wdGlvbnMkJHNlcCQsJGVuZGZvciRde2x1YXRleGphLXByZXNldH0KICBcZmkKJGVuZGlmJAokaWYoQ0pLbWFpbmZvbnQpJAogIFxpZkx1YVRlWAogICAgXHVzZXBhY2thZ2VbJGZvcihsdWF0ZXhqYWZvbnRzcGVjb3B0aW9ucykkJGx1YXRleGphZm9udHNwZWNvcHRpb25zJCRzZXAkLCRlbmRmb3IkXXtsdWF0ZXhqYS1mb250c3BlY30KICAgIFxzZXRtYWluamZvbnRbJGZvcihDSktvcHRpb25zKSQkQ0pLb3B0aW9ucyQkc2VwJCwkZW5kZm9yJF17JENKS21haW5mb250JH0KICBcZmkKJGVuZGlmJApcZmkKJGlmKHplcm8td2lkdGgtbm9uLWpvaW5lcikkCiUlIFN1cHBvcnQgZm9yIHplcm8td2lkdGggbm9uLWpvaW5lciBjaGFyYWN0ZXJzLgpcbWFrZWF0bGV0dGVyClxkZWZcemVyb3dpZHRobm9uam9pbmVyeyUKICAlIFByZXZlbnQgbGlnYXR1cmVzIGFuZCBhZGp1c3Qga2VybmluZywgYnV0IHN0aWxsIHN1cHBvcnQgaHlwaGVuYXRpbmcuCiAgXHRleG9ycGRmc3RyaW5neyUKICAgIFxUZXh0T3JNYXRoe1xub2JyZWFrXGRpc2NyZXRpb25hcnl7LX17fXtca2Vybi4wM2VtfSUKICAgICAgXGlmdm1vZGVcZWxzZVxub2JyZWFrXGhza2lwXHpAc2tpcFxmaX17fSUKICB9e30lCn0KXG1ha2VhdG90aGVyClxpZlBERlRlWAogIFxEZWNsYXJlVW5pY29kZUNoYXJhY3RlcnsyMDBDfXtcemVyb3dpZHRobm9uam9pbmVyfQpcZWxzZQogIFxjYXRjb2RlYF5eXl4yMDBjPVxhY3RpdmUKICBccHJvdGVjdGVkXGRlZiBeXl5eMjAwY3tcemVyb3dpZHRobm9uam9pbmVyfQpcZmkKJSUgRW5kIG9mIFpXTkogc3VwcG9ydAokZW5kaWYkCiUgVXNlIHVwcXVvdGUgaWYgYXZhaWxhYmxlLCBmb3Igc3RyYWlnaHQgcXVvdGVzIGluIHZlcmJhdGltIGVudmlyb25tZW50cwpcSWZGaWxlRXhpc3Rze3VwcXVvdGUuc3R5fXtcdXNlcGFja2FnZXt1cHF1b3RlfX17fQpcSWZGaWxlRXhpc3Rze21pY3JvdHlwZS5zdHl9eyUgdXNlIG1pY3JvdHlwZSBpZiBhdmFpbGFibGUKICBcdXNlcGFja2FnZVskZm9yKG1pY3JvdHlwZW9wdGlvbnMpJCRtaWNyb3R5cGVvcHRpb25zJCRzZXAkLCRlbmRmb3IkXXttaWNyb3R5cGV9CiAgXFVzZU1pY3JvdHlwZVNldFtwcm90cnVzaW9uXXtiYXNpY21hdGh9ICUgZGlzYWJsZSBwcm90cnVzaW9uIGZvciB0dCBmb250cwp9e30KJGlmKGluZGVudCkkCiRlbHNlJAoKXHVzZXBhY2thZ2V7cGdmcGFnZXN9IApcdXNlcGFja2FnZVtleHBvcnRde2FkanVzdGJveH0KXHVzZXBhY2thZ2V7Z3JhcGhpY3h9Clx1c2VwYWNrYWdle3JhZ2dlZDJlfQpcbWFrZWF0bGV0dGVyClxAaWZ1bmRlZmluZWR7S09NQUNsYXNzTmFtZX17JSBpZiBub24tS09NQSBjbGFzcwogIFxJZkZpbGVFeGlzdHN7cGFyc2tpcC5zdHl9eyUKICAgIFx1c2VwYWNrYWdle3BhcnNraXB9CiAgfXslIGVsc2UKICAgIFxzZXRsZW5ndGh7XHBhcmluZGVudH17MHB0fQogICAgXHNldGxlbmd0aHtccGFyc2tpcH17NnB0IHBsdXMgMnB0IG1pbnVzIDFwdH19Cn17JSBpZiBLT01BIGNsYXNzCiAgXEtPTUFvcHRpb25ze3BhcnNraXA9aGFsZn19ClxtYWtlYXRvdGhlcgokZW5kaWYkCiRpZih2ZXJiYXRpbS1pbi1ub3RlKSQKXHVzZXBhY2thZ2V7ZmFuY3l2cmJ9CiRlbmRpZiQKXHVzZXBhY2thZ2V7eGNvbG9yfQpcZGVmaW5lY29sb3J7ZGVmYXVsdC1saW5rY29sb3J9e0hUTUx9e0E1MDAwMH0KXGRlZmluZWNvbG9ye2RlZmF1bHQtZmlsZWNvbG9yfXtIVE1MfXtBNTAwMDB9ClxkZWZpbmVjb2xvcntkZWZhdWx0LWNpdGVjb2xvcn17SFRNTH17NDA3N0MwfQpcZGVmaW5lY29sb3J7ZGVmYXVsdC11cmxjb2xvcn17SFRNTH17NDA3N0MwfQokaWYoZm9vdG5vdGVzLXByZXR0eSkkCiUgbG9hZCBmb290bWlzYyBpbiBvcmRlciB0byBjdXN0b21pemUgZm9vdG5vdGVzIChmb290bWlzYyBoYXMgdG8gYmUgbG9hZGVkIGJlZm9yZSBoeXBlcnJlZiwgY2YuIGh0dHBzOi8vdGV4LnN0YWNrZXhjaGFuZ2UuY29tL2EvMTY5MTI0LzE0NDA4NykKXHVzZXBhY2thZ2VbaGFuZyxmbHVzaG1hcmdpbixib3R0b20sbXVsdGlwbGVde2Zvb3RtaXNjfQpcc2V0bGVuZ3Roe1xmb290bm90ZW1hcmdpbn17MC44ZW19ICUgc2V0IHNwYWNlIGJldHdlZW4gZm9vdG5vdGUgbnIgYW5kIHRleHQKXHNldGxlbmd0aHtcZm9vdG5vdGVzZXB9e1xiYXNlbGluZXNraXB9ICUgc2V0IHNwYWNlIGJldHdlZW4gbXVsdGlwbGUgZm9vdG5vdGVzClxzZXRsZW5ndGh7XHNraXBcZm9vdGluc317MC4zY219ICUgc2V0IHNwYWNlIGJldHdlZW4gcGFnZSBjb250ZW50IGFuZCBmb290bm90ZQpcc2V0bGVuZ3Roe1xmb290c2tpcH17MC45Y219ICUgc2V0IHNwYWNlIGJldHdlZW4gZm9vdG5vdGUgYW5kIHBhZ2UgYm90dG9tCiRlbmRpZiQKJGlmKGdlb21ldHJ5KSQKJGlmKGJlYW1lcikkClxnZW9tZXRyeXskZm9yKGdlb21ldHJ5KSQkZ2VvbWV0cnkkJHNlcCQsJGVuZGZvciR9CiRlbHNlJApcdXNlcGFja2FnZVskZm9yKGdlb21ldHJ5KSQkZ2VvbWV0cnkkJHNlcCQsJGVuZGZvciRde2dlb21ldHJ5fQokZW5kaWYkCiRlbHNlJAokaWYoYmVhbWVyKSQKJGVsc2UkClx1c2VwYWNrYWdlW21hcmdpbj0yLjVjbSxpbmNsdWRlaGVhZD10cnVlLGluY2x1ZGVmb290PXRydWUsY2VudGVyaW5nLCRmb3IoZ2VvbWV0cnkpJCRnZW9tZXRyeSQkc2VwJCwkZW5kZm9yJF17Z2VvbWV0cnl9CiRlbmRpZiQKJGVuZGlmJAokaWYodGl0bGVwYWdlLWxvZ28pJApcdXNlcGFja2FnZVtleHBvcnRde2FkanVzdGJveH0KXHVzZXBhY2thZ2V7Z3JhcGhpY3h9CiRlbmRpZiQKJGlmKGJlYW1lcikkClxuZXdpZlxpZmJpYmxpb2dyYXBoeQokZW5kaWYkCiRpZihsaXN0aW5ncykkClx1c2VwYWNrYWdle2xpc3RpbmdzfQpcbmV3Y29tbWFuZHtccGFzc3Rocm91Z2h9WzFdeyMxfQpcbHN0c2V0e2RlZmF1bHRkaWFsZWN0PVs1LjNdTHVhfQpcbHN0c2V0e2RlZmF1bHRkaWFsZWN0PVt4ODZtYXNtXUFzc2VtYmxlcn0KJGVuZGlmJAokaWYobGlzdGluZ3Mtbm8tcGFnZS1icmVhaykkClx1c2VwYWNrYWdle2V0b29sYm94fQpcQmVmb3JlQmVnaW5FbnZpcm9ubWVudHtsc3RsaXN0aW5nfXtccGFyXG5vaW5kZW50XGJlZ2lue21pbmlwYWdlfXtcbGluZXdpZHRofX0KXEFmdGVyRW5kRW52aXJvbm1lbnR7bHN0bGlzdGluZ317XGVuZHttaW5pcGFnZX1ccGFyXGFkZHZzcGFjZXtcdG9wc2tpcH19CiRlbmRpZiQKJGlmKGxocykkClxsc3RuZXdlbnZpcm9ubWVudHtjb2RlfXtcbHN0c2V0e2xhbmd1YWdlPUhhc2tlbGwsYmFzaWNzdHlsZT1cc21hbGxcdHRmYW1pbHl9fXt9CiRlbmRpZiQKJGlmKGhpZ2hsaWdodGluZy1tYWNyb3MpJAokaGlnaGxpZ2h0aW5nLW1hY3JvcyQKCiUgV29ya2Fyb3VuZC9idWdmaXggZnJvbSBqYW5uaWNrMC4KJSBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2pnbS9wYW5kb2MvaXNzdWVzLzQzMDIjaXNzdWVjb21tZW50LTM2MDY2OTAxMykKJSBvciBodHRwczovL2dpdGh1Yi5jb20vV2FuZG1hbGZhcmJlL3BhbmRvYy1sYXRleC10ZW1wbGF0ZS9pc3N1ZXMvMgolCiUgUmVkZWZpbmUgdGhlIHZlcmJhdGltIGVudmlyb25tZW50ICdIaWdobGlnaHRpbmcnIHRvIGJyZWFrIGxvbmcgbGluZXMgKHdpdGgKJSB0aGUgaGVscCBvZiBmdmV4dHJhKS4gUmVkZWZpbml0aW9uIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGl0IGlzIHVubGlrZWx5IHRoYXQKJSBwYW5kb2MgaW5jbHVkZXMgZnZleHRyYSBpbiB0aGUgZGVmYXVsdCB0ZW1wbGF0ZS4KXHVzZXBhY2thZ2V7ZnZleHRyYX0KXERlZmluZVZlcmJhdGltRW52aXJvbm1lbnR7SGlnaGxpZ2h0aW5nfXtWZXJiYXRpbX17YnJlYWtsaW5lcyxmb250c2l6ZT0kaWYoY29kZS1ibG9jay1mb250LXNpemUpJCRjb2RlLWJsb2NrLWZvbnQtc2l6ZSQkZWxzZSRcc21hbGwkZW5kaWYkLGNvbW1hbmRjaGFycz1cXFx7XH19CgokZW5kaWYkCiRpZih0YWJsZXMpJApcdXNlcGFja2FnZXtsb25ndGFibGUsYm9va3RhYnMsYXJyYXl9CiRpZihtdWx0aXJvdykkClx1c2VwYWNrYWdle211bHRpcm93fQokZW5kaWYkClx1c2VwYWNrYWdle2NhbGN9ICUgZm9yIGNhbGN1bGF0aW5nIG1pbmlwYWdlIHdpZHRocwokaWYoYmVhbWVyKSQKXHVzZXBhY2thZ2V7Y2FwdGlvbn0KJSBNYWtlIGNhcHRpb24gcGFja2FnZSB3b3JrIHdpdGggbG9uZ3RhYmxlClxtYWtlYXRsZXR0ZXIKXGRlZlxmbnVtQHRhYmxle1x0YWJsZW5hbWV+XHRoZXRhYmxlfQpcbWFrZWF0b3RoZXIKJGVsc2UkCiUgQ29ycmVjdCBvcmRlciBvZiB0YWJsZXMgYWZ0ZXIgXHBhcmFncmFwaCBvciBcc3VicGFyYWdyYXBoClx1c2VwYWNrYWdle2V0b29sYm94fQpcbWFrZWF0bGV0dGVyClxwYXRjaGNtZFxsb25ndGFibGV7XHBhcn17XGlmQG5vc2tpcHNlY1xtYm94e31cZmlccGFyfXt9e30KXG1ha2VhdG90aGVyCiUgQWxsb3cgZm9vdG5vdGVzIGluIGxvbmd0YWJsZSBoZWFkL2Zvb3QKXElmRmlsZUV4aXN0c3tmb290bm90ZWh5cGVyLnN0eX17XHVzZXBhY2thZ2V7Zm9vdG5vdGVoeXBlcn19e1x1c2VwYWNrYWdle2Zvb3Rub3RlfX0KXG1ha2VzYXZlbm90ZWVudntsb25ndGFibGV9CiRlbmRpZiQKJGVuZGlmJAolIGFkZCBiYWNrbGlua3MgdG8gZm9vdG5vdGUgcmVmZXJlbmNlcywgY2YuIGh0dHBzOi8vdGV4LnN0YWNrZXhjaGFuZ2UuY29tL3F1ZXN0aW9ucy8zMDIyNjYvbWFrZS1mb290bm90ZS1jbGlja2FibGUtYm90aC13YXlzCiRpZihmb290bm90ZXMtZGlzYWJsZS1iYWNrbGlua3MpJAokZWxzZSQKXHVzZXBhY2thZ2V7Zm9vdG5vdGViYWNrcmVmfQokZW5kaWYkCiRpZihncmFwaGljcykkClx1c2VwYWNrYWdle2dyYXBoaWN4fQpcbWFrZWF0bGV0dGVyClxuZXdzYXZlYm94XHBhbmRvY0Bib3gKXG5ld2NvbW1hbmQqXHBhbmRvY2JvdW5kZWRbMV17JSBzY2FsZXMgaW1hZ2UgdG8gZml0IGluIHRleHQgaGVpZ2h0L3dpZHRoCiAgXHNib3hccGFuZG9jQGJveHsjMX0lCiAgXEdzY2FsZUBkaXZcQHRlbXBhe1x0ZXh0aGVpZ2h0fXtcZGltZXhwclxodFxwYW5kb2NAYm94K1xkcFxwYW5kb2NAYm94XHJlbGF4fSUKICBcR3NjYWxlQGRpdlxAdGVtcGJ7XGxpbmV3aWR0aH17XHdkXHBhbmRvY0Bib3h9JQogIFxpZmRpbVxAdGVtcGJccEA8XEB0ZW1wYVxwQFxsZXRcQHRlbXBhXEB0ZW1wYlxmaSUgc2VsZWN0IHRoZSBzbWFsbGVyIG9mIGJvdGgKICBcaWZkaW1cQHRlbXBhXHBAPFxwQFxzY2FsZWJveHtcQHRlbXBhfXtcdXNlYm94XHBhbmRvY0Bib3h9JQogIFxlbHNlXHVzZWJveHtccGFuZG9jQGJveH0lCiAgXGZpJQp9CiUgU2V0IGRlZmF1bHQgZmlndXJlIHBsYWNlbWVudCB0byBodGJwCiUgTWFrZSB1c2Ugb2YgZmxvYXQtcGFja2FnZSBhbmQgc2V0IGRlZmF1bHQgcGxhY2VtZW50IGZvciBmaWd1cmVzIHRvIEguCiUgVGhlIG9wdGlvbiBIIG1lYW5zICdQVVQgSVQgSEVSRScgKGFzICBvcHBvc2VkIHRvIHRoZSBzdGFuZGFyZCBoIG9wdGlvbiB3aGljaCBtZWFucyAnWW91IG1heSBwdXQgaXQgaGVyZSBpZiB5b3UgbGlrZScpLgpcdXNlcGFja2FnZXtmbG9hdH0KXGZsb2F0cGxhY2VtZW50e2ZpZ3VyZX17JGlmKGZsb2F0LXBsYWNlbWVudC1maWd1cmUpJCRmbG9hdC1wbGFjZW1lbnQtZmlndXJlJCRlbHNlJEgkZW5kaWYkfQpcbWFrZWF0b3RoZXIKJGVuZGlmJAokaWYoc3ZnKSQKXHVzZXBhY2thZ2V7c3ZnfQokZW5kaWYkCiRpZihzdHJpa2VvdXQpJAokLS0gYWxzbyB1c2VkIGZvciB1bmRlcmxpbmUKXGlmTHVhVGVYCiAgXHVzZXBhY2thZ2V7bHVhY29sb3J9CiAgXHVzZXBhY2thZ2Vbc291bF17bHVhLXVsfQpcZWxzZQpcdXNlcGFja2FnZXtzb3VsfQokaWYoQ0pLbWFpbmZvbnQpJAogIFxpZlhlVGVYCiAgICAlIHNvdWwncyBcc3QgZG9lc24ndCB3b3JrIGZvciBDSks6CiAgICBcdXNlcGFja2FnZXt4ZUNKS2ZudGVmfQogICAgXHJlbmV3Y29tbWFuZHtcc3R9WzFde1xzb3V0eyMxfX0KICBcZmkKJGVuZGlmJApcZmkKJGVuZGlmJApcc2V0bGVuZ3Roe1xlbWVyZ2VuY3lzdHJldGNofXszZW19ICUgcHJldmVudCBvdmVyZnVsbCBsaW5lcwpccHJvdmlkZWNvbW1hbmR7XHRpZ2h0bGlzdH17JQogIFxzZXRsZW5ndGh7XGl0ZW1zZXB9ezBwdH1cc2V0bGVuZ3Roe1xwYXJza2lwfXswcHR9fQokaWYobnVtYmVyc2VjdGlvbnMpJApcc2V0Y291bnRlcntzZWNudW1kZXB0aH17JGlmKHNlY251bWRlcHRoKSQkc2VjbnVtZGVwdGgkJGVsc2UkNSRlbmRpZiR9CiRlbHNlJApcc2V0Y291bnRlcntzZWNudW1kZXB0aH17LVxtYXhkaW1lbn0gJSByZW1vdmUgc2VjdGlvbiBudW1iZXJpbmcKJGVuZGlmJAokaWYoc3ViZmlndXJlKSQKXHVzZXBhY2thZ2V7c3ViY2FwdGlvbn0KJGVuZGlmJAokaWYoYmVhbWVyKSQKJGVsc2UkCiRpZihibG9jay1oZWFkaW5ncykkCiUgTWFrZSBccGFyYWdyYXBoIGFuZCBcc3VicGFyYWdyYXBoIGZyZWUtc3RhbmRpbmcKXGlmeFxwYXJhZ3JhcGhcdW5kZWZpbmVkXGVsc2UKICBcbGV0XG9sZHBhcmFncmFwaFxwYXJhZ3JhcGgKICBccmVuZXdjb21tYW5ke1xwYXJhZ3JhcGh9WzFde1xvbGRwYXJhZ3JhcGh7IzF9XG1ib3h7fX0KXGZpClxpZnhcc3VicGFyYWdyYXBoXHVuZGVmaW5lZFxlbHNlCiAgXGxldFxvbGRzdWJwYXJhZ3JhcGhcc3VicGFyYWdyYXBoCiAgXHJlbmV3Y29tbWFuZHtcc3VicGFyYWdyYXBofVsxXXtcb2xkc3VicGFyYWdyYXBoeyMxfVxtYm94e319ClxmaQokZW5kaWYkCiRlbmRpZiQKJGlmKHBhZ2VzdHlsZSkkClxwYWdlc3R5bGV7JHBhZ2VzdHlsZSR9CiRlbmRpZiQKJGlmKGNzbC1yZWZzKSQKJSBkZWZpbml0aW9ucyBmb3IgY2l0ZXByb2MgY2l0YXRpb25zClxOZXdEb2N1bWVudENvbW1hbmRcY2l0ZXByb2N0ZXh0e317fQpcTmV3RG9jdW1lbnRDb21tYW5kXGNpdGVwcm9je21tfXslCiAgXGJlZ2luZ3JvdXBcZGVmXGNpdGVwcm9jdGV4dHsjMn1cY2l0ZXsjMX1cZW5kZ3JvdXB9ClxtYWtlYXRsZXR0ZXIKICUgYWxsb3cgY2l0YXRpb25zIHRvIGJyZWFrIGFjcm9zcyBsaW5lcwogXGxldFxAY2l0ZUBvZm10XEBmaXJzdG9mb25lCiAlIGF2b2lkIGJyYWNrZXRzIGFyb3VuZCB0ZXh0IGZvciBcY2l0ZToKIFxkZWZcQGJpYmxhYmVsIzF7fQogXGRlZlxAY2l0ZSMxIzJ7eyMxXGlmQHRlbXBzd2EgLCAjMlxmaX19ClxtYWtlYXRvdGhlcgpcbmV3bGVuZ3Roe1xjc2xoYW5naW5kZW50fQpcc2V0bGVuZ3Roe1xjc2xoYW5naW5kZW50fXsxLjVlbX0KXG5ld2xlbmd0aHtcY3NsbGFiZWx3aWR0aH0KXHNldGxlbmd0aHtcY3NsbGFiZWx3aWR0aH17M2VtfQpcbmV3ZW52aXJvbm1lbnR7Q1NMUmVmZXJlbmNlc31bMl0gJSAjMSBoYW5naW5nLWluZGVudCwgIzIgZW50cnktc3BhY2luZwogIHtcYmVnaW57bGlzdH17fXslCiAgIFxzZXRsZW5ndGh7XGl0ZW1pbmRlbnR9ezBwdH0KICAgXHNldGxlbmd0aHtcbGVmdG1hcmdpbn17MHB0fQogICBcc2V0bGVuZ3Roe1xwYXJzZXB9ezBwdH0KICAgJSB0dXJuIG9uIGhhbmdpbmcgaW5kZW50IGlmIHBhcmFtIDEgaXMgMQogICBcaWZvZGQgIzEKICAgIFxzZXRsZW5ndGh7XGxlZnRtYXJnaW59e1xjc2xoYW5naW5kZW50fQogICAgXHNldGxlbmd0aHtcaXRlbWluZGVudH17LTFcY3NsaGFuZ2luZGVudH0KICAgXGZpCiAgICUgc2V0IGVudHJ5IHNwYWNpbmcKICAgXHNldGxlbmd0aHtcaXRlbXNlcH17IzJcYmFzZWxpbmVza2lwfX19CiAge1xlbmR7bGlzdH19Clx1c2VwYWNrYWdle2NhbGN9ClxuZXdjb21tYW5ke1xDU0xCbG9ja31bMV17XGhmaWxsXGJyZWFrXHBhcmJveFt0XXtcbGluZXdpZHRofXtcc3RydXRcaWdub3Jlc3BhY2VzIzFcc3RydXR9fQpcbmV3Y29tbWFuZHtcQ1NMTGVmdE1hcmdpbn1bMV17XHBhcmJveFt0XXtcY3NsbGFiZWx3aWR0aH17XHN0cnV0IzFcc3RydXR9fQpcbmV3Y29tbWFuZHtcQ1NMUmlnaHRJbmxpbmV9WzFde1xwYXJib3hbdF17XGxpbmV3aWR0aCAtIFxjc2xsYWJlbHdpZHRofXtcc3RydXQjMVxzdHJ1dH19ClxuZXdjb21tYW5ke1xDU0xJbmRlbnR9WzFde1xoc3BhY2V7XGNzbGhhbmdpbmRlbnR9IzF9CiRlbmRpZiQKJGlmKGxhbmcpJApcaWZMdWFUZVgKXHVzZXBhY2thZ2VbYmlkaT1iYXNpY117YmFiZWx9ClxlbHNlClx1c2VwYWNrYWdlW2JpZGk9ZGVmYXVsdF17YmFiZWx9ClxmaQokaWYoYmFiZWwtbGFuZykkClxiYWJlbHByb3ZpZGVbbWFpbixpbXBvcnRdeyRiYWJlbC1sYW5nJH0KJGlmKG1haW5mb250KSQKXGlmUERGVGVYClxlbHNlClxiYWJlbGZvbnR7cm19WyRmb3IobWFpbmZvbnRvcHRpb25zKSQkbWFpbmZvbnRvcHRpb25zJCRzZXAkLCRlbmRmb3IkXXskbWFpbmZvbnQkfQpcZmkKJGVuZGlmJAokZW5kaWYkCiRmb3IoYmFiZWwtb3RoZXJsYW5ncykkClxiYWJlbHByb3ZpZGVbaW1wb3J0XXskYmFiZWwtb3RoZXJsYW5ncyR9CiRlbmRmb3IkCiRmb3IoYmFiZWxmb250cy9wYWlycykkClxiYWJlbGZvbnRbJGJhYmVsZm9udHMua2V5JF17cm19eyRiYWJlbGZvbnRzLnZhbHVlJH0KJGVuZGZvciQKJSBnZXQgcmlkIG9mIGxhbmd1YWdlLXNwZWNpZmljIHNob3J0aGFuZHMgKHNlZSAjNjgxNyk6ClxsZXRcTGFuZ3VhZ2VTaG9ydEhhbmRzXGxhbmd1YWdlc2hvcnRoYW5kcwpcZGVmXGxhbmd1YWdlc2hvcnRoYW5kcyMxe30KJGVuZGlmJAokZm9yKGhlYWRlci1pbmNsdWRlcykkCiRoZWFkZXItaW5jbHVkZXMkCiRlbmRmb3IkClxpZkx1YVRlWAogIFx1c2VwYWNrYWdle3NlbG5vbGlnfSAgJSBkaXNhYmxlIGlsbGVnYWwgbGlnYXR1cmVzClxmaQokaWYoZGlyKSQKXGlmUERGVGVYCiAgXFRlWFhlVHN0YXRlPTEKICBcbmV3Y29tbWFuZHtcUkx9WzFde1xiZWdpblIgIzFcZW5kUn0KICBcbmV3Y29tbWFuZHtcTFJ9WzFde1xiZWdpbkwgIzFcZW5kTH0KICBcbmV3ZW52aXJvbm1lbnR7UlRMfXtcYmVnaW5SfXtcZW5kUn0KICBcbmV3ZW52aXJvbm1lbnR7TFRSfXtcYmVnaW5MfXtcZW5kTH0KXGZpCiRlbmRpZiQKJGlmKG5hdGJpYikkClx1c2VwYWNrYWdlWyRuYXRiaWJvcHRpb25zJF17bmF0YmlifQpcYmlibGlvZ3JhcGh5c3R5bGV7JGlmKGJpYmxpby1zdHlsZSkkJGJpYmxpby1zdHlsZSQkZWxzZSRwbGFpbm5hdCRlbmRpZiR9CiRlbmRpZiQKJGlmKGJpYmxhdGV4KSQKXHVzZXBhY2thZ2VbJGlmKGJpYmxpby1zdHlsZSkkc3R5bGU9JGJpYmxpby1zdHlsZSQsJGVuZGlmJCRmb3IoYmlibGF0ZXhvcHRpb25zKSQkYmlibGF0ZXhvcHRpb25zJCRzZXAkLCRlbmRmb3IkXXtiaWJsYXRleH0KJGZvcihiaWJsaW9ncmFwaHkpJApcYWRkYmlicmVzb3VyY2V7JGJpYmxpb2dyYXBoeSR9CiRlbmRmb3IkCiRlbmRpZiQKJGlmKG5vY2l0ZS1pZHMpJApcbm9jaXRleyRmb3Iobm9jaXRlLWlkcykkJGl0JCRzZXAkLCAkZW5kZm9yJH0KJGVuZGlmJAokaWYoY3NxdW90ZXMpJApcdXNlcGFja2FnZXtjc3F1b3Rlc30KJGVuZGlmJApcSWZGaWxlRXhpc3Rze2Jvb2ttYXJrLnN0eX17XHVzZXBhY2thZ2V7Ym9va21hcmt9fXtcdXNlcGFja2FnZXtoeXBlcnJlZn19ClxJZkZpbGVFeGlzdHN7eHVybC5zdHl9e1x1c2VwYWNrYWdle3h1cmx9fXt9ICUgYWRkIFVSTCBsaW5lIGJyZWFrcyBpZiBhdmFpbGFibGUKXHVybHN0eWxleyRpZih1cmxzdHlsZSkkJHVybHN0eWxlJCRlbHNlJHNhbWUkZW5kaWYkfQokaWYobGlua3MtYXMtbm90ZXMpJAolIE1ha2UgbGlua3MgZm9vdG5vdGVzIGluc3RlYWQgb2YgaG90bGlua3M6ClxEZWNsYXJlUm9idXN0Q29tbWFuZHtcaHJlZn1bMl17IzJcZm9vdG5vdGV7XHVybHsjMX19fQokZW5kaWYkCiRpZih2ZXJiYXRpbS1pbi1ub3RlKSQKXFZlcmJhdGltRm9vdG5vdGVzICUgYWxsb3cgdmVyYmF0aW0gdGV4dCBpbiBmb290bm90ZXMKJGVuZGlmJApcaHlwZXJzZXR1cHsKJGlmKHRpdGxlLW1ldGEpJAogIHBkZnRpdGxlPXskdGl0bGUtbWV0YSR9LAokZW5kaWYkCiRpZihhdXRob3ItbWV0YSkkCiAgcGRmYXV0aG9yPXskYXV0aG9yLW1ldGEkfSwKJGVuZGlmJAokaWYobGFuZykkCiAgcGRmbGFuZz17JGxhbmckfSwKJGVuZGlmJAokaWYoc3ViamVjdCkkCiAgcGRmc3ViamVjdD17JHN1YmplY3QkfSwKJGVuZGlmJAokaWYoa2V5d29yZHMpJAogIHBkZmtleXdvcmRzPXskZm9yKGtleXdvcmRzKSQka2V5d29yZHMkJHNlcCQsICRlbmRmb3IkfSwKJGVuZGlmJAokaWYoY29sb3JsaW5rcykkCiAgY29sb3JsaW5rcz10cnVlLAogIGxpbmtjb2xvcj17JGlmKGxpbmtjb2xvcikkJGxpbmtjb2xvciQkZWxzZSRkZWZhdWx0LWxpbmtjb2xvciRlbmRpZiR9LAogIGZpbGVjb2xvcj17JGlmKGZpbGVjb2xvcikkJGZpbGVjb2xvciQkZWxzZSRkZWZhdWx0LWZpbGVjb2xvciRlbmRpZiR9LAogIGNpdGVjb2xvcj17JGlmKGNpdGVjb2xvcikkJGNpdGVjb2xvciQkZWxzZSRkZWZhdWx0LWNpdGVjb2xvciRlbmRpZiR9LAogIHVybGNvbG9yPXskaWYodXJsY29sb3IpJCR1cmxjb2xvciQkZWxzZSRkZWZhdWx0LXVybGNvbG9yJGVuZGlmJH0sCiRlbHNlJAogIGhpZGVsaW5rcywKJGVuZGlmJAogIGJyZWFrbGlua3M9dHJ1ZSwKICBwZGZjcmVhdG9yPXtMYVRlWCB2aWEgcGFuZG9jIHdpdGggdGhlIEVpc3ZvZ2VsIHRlbXBsYXRlfX0KJGlmKHRpdGxlKSQKXHRpdGxleyRpZih0aXRsZSkkJHRpdGxlJCRlbHNlJFNldCB1cCBUaXRsZSBpbiBGcm9udG1hdHRlciAoc2VlIGFic3RyYWN0KSRlbmRpZiR9CiRlbmRpZiQKJGlmKHN1YnRpdGxlKSQKJGlmKGJlYW1lcikkCiRlbHNlJApcdXNlcGFja2FnZXtldG9vbGJveH0KXG1ha2VhdGxldHRlcgpccHJvdmlkZWNvbW1hbmR7XHN1YnRpdGxlfVsxXXslIGFkZCBzdWJ0aXRsZSB0byBcbWFrZXRpdGxlCiAgXGFwcHRvY21ke1xAdGl0bGV9e1xwYXIge1xsYXJnZSAjMSBccGFyfX17fXt9Cn0KXG1ha2VhdG90aGVyCiRlbmRpZiQKXHN1YnRpdGxleyRzdWJ0aXRsZSR9CiRlbmRpZiQKXGF1dGhvcnskZm9yKGF1dGhvcikkJGF1dGhvciQkc2VwJCBcYW5kICRlbmRmb3IkfQokaWYoZGF0ZSkkCiAgXGRhdGV7JGRhdGUkfQokZWxzZSQKICBcZGF0ZXtcdG9kYXl9CiRlbmRpZiQKCiRpZihiZWFtZXIpJAokaWYoaW5zdGl0dXRlKSQKXGluc3RpdHV0ZXskZm9yKGluc3RpdHV0ZSkkJGluc3RpdHV0ZSQkc2VwJCBcYW5kICRlbmRmb3IkfQokZW5kaWYkCiRpZih0aXRsZWdyYXBoaWMpJApcdGl0bGVncmFwaGlje1xpbmNsdWRlZ3JhcGhpY3N7JHRpdGxlZ3JhcGhpYyR9fQokZW5kaWYkCiRpZihsb2dvKSQKXGxvZ297XGluY2x1ZGVncmFwaGljc3skbG9nbyR9fQokZW5kaWYkCiRlbmRpZiQKCgoKJSUKJSUgYWRkZWQKJSUKCiRpZihwYWdlLWJhY2tncm91bmQpJApcdXNlcGFja2FnZVtwYWdlcz1hbGxde2JhY2tncm91bmR9CiRlbmRpZiQKCiUKJSBmb3IgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRpdGxlIHBhZ2UKJQokaWYobm90aXRsZXBhZ2UpJAoKJGVsc2UkClx1c2VwYWNrYWdle3BhZ2Vjb2xvcn0KXHVzZXBhY2thZ2V7YWZ0ZXJwYWdlfQokaWYodGl0bGVwYWdlLWJhY2tncm91bmQpJApcdXNlcGFja2FnZXt0aWt6fQokZW5kaWYkCiRpZihnZW9tZXRyeSkkCiRlbHNlJApcdXNlcGFja2FnZVttYXJnaW49Mi41Y20saW5jbHVkZWhlYWQ9dHJ1ZSxpbmNsdWRlZm9vdD10cnVlLGNlbnRlcmluZ117Z2VvbWV0cnl9CiRlbmRpZiQKJGVuZGlmJAoKJQolIGJyZWFrIHVybHMKJQpcUGFzc09wdGlvbnNUb1BhY2thZ2V7aHlwaGVuc317dXJsfQoKJQolIFdoZW4gdXNpbmcgYmFiZWwgb3IgcG9seWdsb3NzaWEgd2l0aCBiaWJsYXRleCwgbG9hZGluZyBjc3F1b3RlcyBpcyByZWNvbW1lbmRlZAolIHRvIGVuc3VyZSB0aGF0IHF1b3RlZCB0ZXh0cyBhcmUgdHlwZXNldCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzIG9mIHlvdXIgbWFpbiBsYW5ndWFnZS4KJQpcdXNlcGFja2FnZXtjc3F1b3Rlc30KCiUKJSBjYXB0aW9ucwolClxkZWZpbmVjb2xvcntjYXB0aW9uLWNvbG9yfXtIVE1MfXs3Nzc3Nzd9CiRpZihiZWFtZXIpJAokZWxzZSQKXHVzZXBhY2thZ2VbZm9udD17c3RyZXRjaD0xLjJ9LCB0ZXh0Zm9udD17Y29sb3I9Y2FwdGlvbi1jb2xvcn0sIHBvc2l0aW9uPXRvcCwgc2tpcD00bW0sIGxhYmVsZm9udD1iZiwgc2luZ2xlbGluZWNoZWNrPWZhbHNlLCBqdXN0aWZpY2F0aW9uPSRpZihjYXB0aW9uLWp1c3RpZmljYXRpb24pJCRjYXB0aW9uLWp1c3RpZmljYXRpb24kJGVsc2UkanVzdGlmaWVkJGVuZGlmJF17Y2FwdGlvbn0KXHNldGNhcGluZGVudHswZW19CiRlbmRpZiQKCiUKJSBibG9ja3F1b3RlCiUKXGRlZmluZWNvbG9ye2Jsb2NrcXVvdGUtYm9yZGVyfXtSR0J9ezIyMSwyMjEsMjIxfQpcZGVmaW5lY29sb3J7YmxvY2txdW90ZS10ZXh0fXtSR0J9ezExOSwxMTksMTE5fQpcdXNlcGFja2FnZXttZGZyYW1lZH0KXG5ld21kZW52W3JpZ2h0bGluZT1mYWxzZSxib3R0b21saW5lPWZhbHNlLHRvcGxpbmU9ZmFsc2UsbGluZXdpZHRoPTNwdCxsaW5lY29sb3I9YmxvY2txdW90ZS1ib3JkZXIsc2tpcGFib3ZlPVxwYXJza2lwXXtjdXN0b21ibG9ja3F1b3RlfQpccmVuZXdlbnZpcm9ubWVudHtxdW90ZX17XGJlZ2lue2N1c3RvbWJsb2NrcXVvdGV9XGxpc3R7fXtccmlnaHRtYXJnaW49MGVtXGxlZnRtYXJnaW49MGVtfSUKXGl0ZW1ccmVsYXhcY29sb3J7YmxvY2txdW90ZS10ZXh0fVxpZ25vcmVzcGFjZXN9e1x1bnNraXBcdW5za2lwXGVuZGxpc3RcZW5ke2N1c3RvbWJsb2NrcXVvdGV9fQoKJQolIFNvdXJjZSBTYW5zIFBybyBhcyB0aGUgZGXCrWZhdWx0IGZvbnQgZmFtwq1pbHkKJSBTb3VyY2UgQ29kZSBQcm8gZm9yIG1vbm9zcGFjZSB0ZXh0CiUKJSAnZGVmYXVsdCcgb3B0aW9uIHNldHMgdGhlIGRlZmF1bHQKJSBmb250IGZhbWlseSB0byBTb3VyY2UgU2FucyBQcm8sIG5vdCBcc2ZkZWZhdWx0LgolClxpZm51bSAwXGlmeGV0ZXggMVxmaVxpZmx1YXRleCAxXGZpPTAgJSBpZiBwZGZ0ZXgKICAkaWYoZm9udGZhbWlseSkkCiAgJGVsc2UkCiAgXHVzZXBhY2thZ2VbZGVmYXVsdF17c291cmNlc2Fuc3Byb30KICBcdXNlcGFja2FnZXtzb3VyY2Vjb2RlcHJvfQogICRlbmRpZiQKXGVsc2UgJSBpZiBub3QgcGRmdGV4CiAgJGlmKG1haW5mb250KSQKICAkZWxzZSQKICBcdXNlcGFja2FnZVtkZWZhdWx0XXtzb3VyY2VzYW5zcHJvfQogIFx1c2VwYWNrYWdle3NvdXJjZWNvZGVwcm99CgogICUgWGVMYVRlWCBzcGVjaWZpYyBhZGp1c3RtZW50cyBmb3Igc3RyYWlnaHQgcXVvdGVzOiBodHRwczovL3RleC5zdGFja2V4Y2hhbmdlLmNvbS9hLzM1NDg4NwogICUgVGhpcyBpc3N1ZSBpcyBhbHJlYWR5IGZpeGVkIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3NpbGtlaC9sYXRleC1zb3VyY2Vjb2RlcHJvL3B1bGwvNSkgYnV0IHRoZQogICUgZml4IGlzIHN0aWxsIHVucmVsZWFzZWQuCiAgJSBUT0RPOiBSZW1vdmUgdGhpcyB3b3JrYXJvdW5kIHdoZW4gdGhlIG5ldyB2ZXJzaW9uIG9mIHNvdXJjZWNvZGVwcm8gaXMgcmVsZWFzZWQgb24gQ1RBTi4KICBcaWZ4ZXRleAogICAgXG1ha2VhdGxldHRlcgogICAgXGRlZmF1bHRmb250ZmVhdHVyZXNbXHR0ZmFtaWx5XQogICAgICB7IE51bWJlcnMgICA9IFxzb3VyY2Vjb2RlcHJvQGZpZ3VyZXN0eWxlLAogICAgICAgIFNjYWxlICAgICA9IFxTb3VyY2VDb2RlUHJvQHNjYWxlLAogICAgICAgIEV4dGVuc2lvbiA9IC5vdGYgfQogICAgXHNldG1vbm9mb250CiAgICAgIFsgVXByaWdodEZvbnQgICAgPSAqLVxzb3VyY2Vjb2RlcHJvQHJlZ3N0eWxlLAogICAgICAgIEl0YWxpY0ZvbnQgICAgID0gKi1cc291cmNlY29kZXByb0ByZWdzdHlsZSBJdCwKICAgICAgICBCb2xkRm9udCAgICAgICA9ICotXHNvdXJjZWNvZGVwcm9AYm9sZHN0eWxlLAogICAgICAgIEJvbGRJdGFsaWNGb250ID0gKi1cc291cmNlY29kZXByb0Bib2xkc3R5bGUgSXQgXQogICAgICB7U291cmNlQ29kZVByb30KICAgIFxtYWtlYXRvdGhlcgogIFxmaQogICRlbmRpZiQKXGZpCgolCiUgaGVhZGluZyBjb2xvcgolClxkZWZpbmVjb2xvcntoZWFkaW5nLWNvbG9yfXtSR0J9ezQwLDQwLDQwfQokaWYoYmVhbWVyKSQKJGVsc2UkClxhZGR0b2tvbWFmb250e3NlY3Rpb259e1xjb2xvcntoZWFkaW5nLWNvbG9yfX0KJGVuZGlmJAolIFdoZW4gdXNpbmcgdGhlIGNsYXNzZXMgcmVwb3J0LCBzY3JyZXBydCwgYm9vaywKJSBzY3Jib29rIG9yIG1lbW9pciwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZS4KJVxhZGR0b2tvbWFmb250e2NoYXB0ZXJ9e1xjb2xvcntoZWFkaW5nLWNvbG9yfX0KCiUKJSB2YXJpYWJsZXMgZm9yIHRpdGxlLCBhdXRob3IgYW5kIGRhdGUKJQokaWYoYmVhbWVyKSQKJGVsc2UkClx1c2VwYWNrYWdle3RpdGxpbmd9Clx0aXRsZXskdGl0bGUkfQpcYXV0aG9yeyRmb3IoYXV0aG9yKSQkYXV0aG9yJCRzZXAkLCAkZW5kZm9yJH0KXGRhdGV7JGRhdGUkfQokZW5kaWYkCgolCiUgdGFibGVzCiUKJGlmKHRhYmxlcykkCgpcZGVmaW5lY29sb3J7dGFibGUtcm93LWNvbG9yfXtIVE1MfXtGNUY1RjV9ClxkZWZpbmVjb2xvcnt0YWJsZS1ydWxlLWNvbG9yfXtIVE1MfXs5OTk5OTl9CgolXGFycmF5cnVsZWNvbG9ye2JsYWNrITQwfQpcYXJyYXlydWxlY29sb3J7dGFibGUtcnVsZS1jb2xvcn0gICAgICUgY29sb3Igb2YgXHRvcHJ1bGUsIFxtaWRydWxlLCBcYm90dG9tcnVsZQpcc2V0bGVuZ3RoXGhlYXZ5cnVsZXdpZHRoezAuM2V4fSAgICAgICUgdGhpY2tuZXNzIG9mIFx0b3BydWxlLCBcYm90dG9tcnVsZQpccmVuZXdjb21tYW5ke1xhcnJheXN0cmV0Y2h9ezEuM30gICAgICUgc3BhY2luZyAocGFkZGluZykKCiRpZih0YWJsZS11c2Utcm93LWNvbG9ycykkCiUgVE9ETzogVGhpcyBkb2Vzbid0IHdvcmsgYW55bW9yZS4gSSBkb24ndCBrbm93IHdoeS4KJSBSZXNldCByb3dudW0gY291bnRlciBzbyB0aGF0IGVhY2ggdGFibGUKJSBzdGFydHMgd2l0aCB0aGUgc2FtZSByb3cgY29sb3JzLgolIGh0dHBzOi8vdGV4LnN0YWNrZXhjaGFuZ2UuY29tL3F1ZXN0aW9ucy8xNzA2MzcvcmVzdGFydGluZy1yb3djb2xvcnMKJQolIFVuZm9ydHVuYXRlbHkgdGhlIGNvbG9yZWQgY2VsbHMgZXh0ZW5kIGJleW9uZCB0aGUgZWRnZSBvZiB0aGUKJSB0YWJsZSBiZWNhdXNlIHBhbmRvYyB1c2VzIEAtZXhwcmVzc2lvbnMgKEB7fSkgbGlrZSBzbzoKJQolIFxiZWdpbntsb25ndGFibGV9W117QHt9bGxAe319CiUgXGVuZHtsb25ndGFibGV9CiUKJSBodHRwczovL2VuLndpa2lib29rcy5vcmcvd2lraS9MYVRlWC9UYWJsZXMjLjQwLWV4cHJlc3Npb25zClx1c2VwYWNrYWdle2V0b29sYm94fQpcQXRCZWdpbkVudmlyb25tZW50e2xvbmd0YWJsZX17XHJvd2NvbG9yc3syfXt9e3RhYmxlLXJvdy1jb2xvciExMDB9fQpccHJldG97XHRvcHJ1bGV9e1xoaWRlcm93Y29sb3JzfXt9e30KXGFwcHRve1xlbmRoZWFkfXtcc2hvd3Jvd2NvbG9yc317fXt9ClxhcHB0b3tcZW5kZmlyc3RoZWFkfXtcc2hvd3Jvd2NvbG9yc317fXt9CiRlbmRpZiQKJGVuZGlmJAoKJQolIHJlbW92ZSBwYXJhZ3JhcGggaW5kZW50YXRpb24KJQpcc2V0bGVuZ3Roe1xwYXJpbmRlbnR9ezBwdH0KXHNldGxlbmd0aHtccGFyc2tpcH17NnB0IHBsdXMgMnB0IG1pbnVzIDFwdH0KXHNldGxlbmd0aHtcZW1lcmdlbmN5c3RyZXRjaH17M2VtfSAgJSBwcmV2ZW50IG92ZXJmdWxsIGxpbmVzCgolCiUKJSBMaXN0aW5ncwolCiUKCiRpZihsaXN0aW5ncykkCgolCiUgZ2VuZXJhbCBsaXN0aW5nIGNvbG9ycwolClxkZWZpbmVjb2xvcntsaXN0aW5nLWJhY2tncm91bmR9e0hUTUx9e0Y3RjdGN30KXGRlZmluZWNvbG9ye2xpc3RpbmctcnVsZX17SFRNTH17QjNCMkIzfQpcZGVmaW5lY29sb3J7bGlzdGluZy1udW1iZXJzfXtIVE1MfXtCM0IyQjN9ClxkZWZpbmVjb2xvcntsaXN0aW5nLXRleHQtY29sb3J9e0hUTUx9ezAwMDAwMH0KXGRlZmluZWNvbG9ye2xpc3Rpbmcta2V5d29yZH17SFRNTH17NDM1NDg5fQpcZGVmaW5lY29sb3J7bGlzdGluZy1rZXl3b3JkLTJ9e0hUTUx9ezEyODRDQX0gJSBhZGRpdGlvbmFsIGtleXdvcmRzClxkZWZpbmVjb2xvcntsaXN0aW5nLWtleXdvcmQtM317SFRNTH17OTEzN0NCfSAlIGFkZGl0aW9uYWwga2V5d29yZHMKXGRlZmluZWNvbG9ye2xpc3RpbmctaWRlbnRpZmllcn17SFRNTH17NDM1NDg5fQpcZGVmaW5lY29sb3J7bGlzdGluZy1zdHJpbmd9e0hUTUx9ezAwOTk5QX0KXGRlZmluZWNvbG9ye2xpc3RpbmctY29tbWVudH17SFRNTH17OEU4RThFfQoKXGxzdGRlZmluZXN0eWxle2Vpc3ZvZ2VsX2xpc3Rpbmdfc3R5bGV9ewogIGxhbmd1YWdlICAgICAgICAgPSBqYXZhLAokaWYobGlzdGluZ3MtZGlzYWJsZS1saW5lLW51bWJlcnMpJAogIHhsZWZ0bWFyZ2luICAgICAgPSAwLjZlbSwKICBmcmFtZXhsZWZ0bWFyZ2luID0gMC40ZW0sCiRlbHNlJAogIG51bWJlcnMgICAgICAgICAgPSBsZWZ0LAogIHhsZWZ0bWFyZ2luICAgICAgPSAyLjdlbSwKICBmcmFtZXhsZWZ0bWFyZ2luID0gMi41ZW0sCiRlbmRpZiQKICBiYWNrZ3JvdW5kY29sb3IgID0gXGNvbG9ye2xpc3RpbmctYmFja2dyb3VuZH0sCiAgYmFzaWNzdHlsZSAgICAgICA9IFxjb2xvcntsaXN0aW5nLXRleHQtY29sb3J9XGxpbmVzcHJlYWR7MS4wfSUKICAgICAgICAgICAgICAgICAgICAgIFxsc3RAaWZkaXNwbGF5c3R5bGUlCiAgICAgICAgICAgICAgICAgICAgICAkaWYoY29kZS1ibG9jay1mb250LXNpemUpJCRjb2RlLWJsb2NrLWZvbnQtc2l6ZSQkZWxzZSRcc21hbGwkZW5kaWYkJQogICAgICAgICAgICAgICAgICAgICAgXGZpXHR0ZmFtaWx5e30sCiAgYnJlYWtsaW5lcyAgICAgICA9IHRydWUsCiAgZnJhbWUgICAgICAgICAgICA9IHNpbmdsZSwKICBmcmFtZXNlcCAgICAgICAgID0gMC4xOWVtLAogIHJ1bGVjb2xvciAgICAgICAgPSBcY29sb3J7bGlzdGluZy1ydWxlfSwKICBmcmFtZXJvdW5kICAgICAgID0gZmZmZiwKICB0YWJzaXplICAgICAgICAgID0gNCwKICBudW1iZXJzdHlsZSAgICAgID0gXGNvbG9ye2xpc3RpbmctbnVtYmVyc30sCiAgYWJvdmVza2lwICAgICAgICA9IDEuMGVtLAogIGJlbG93c2tpcCAgICAgICAgPSAwLjFlbSwKICBhYm92ZWNhcHRpb25za2lwID0gMGVtLAogIGJlbG93Y2FwdGlvbnNraXAgPSAxLjBlbSwKICBrZXl3b3Jkc3R5bGUgICAgID0ge1xjb2xvcntsaXN0aW5nLWtleXdvcmR9XGJmc2VyaWVzfSwKICBrZXl3b3Jkc3R5bGUgICAgID0ge1syXVxjb2xvcntsaXN0aW5nLWtleXdvcmQtMn1cYmZzZXJpZXN9LAogIGtleXdvcmRzdHlsZSAgICAgPSB7WzNdXGNvbG9ye2xpc3Rpbmcta2V5d29yZC0zfVxiZnNlcmllc1xpdHNoYXBlfSwKICBzZW5zaXRpdmUgICAgICAgID0gdHJ1ZSwKICBpZGVudGlmaWVyc3R5bGUgID0gXGNvbG9ye2xpc3RpbmctaWRlbnRpZmllcn0sCiAgY29tbWVudHN0eWxlICAgICA9IFxjb2xvcntsaXN0aW5nLWNvbW1lbnR9LAogIHN0cmluZ3N0eWxlICAgICAgPSBcY29sb3J7bGlzdGluZy1zdHJpbmd9LAogIHNob3dzdHJpbmdzcGFjZXMgPSBmYWxzZSwKICBlc2NhcGVpbnNpZGUgICAgID0gey8qQH17QCovfSwgJSBBbGxvdyBMYVRlWCBpbnNpZGUgdGhlc2Ugc3BlY2lhbCBjb21tZW50cwogIGxpdGVyYXRlICAgICAgICAgPQogIHvDoX17e1wnYX19MSB7w6l9e3tcJ2V9fTEge8OtfXt7XCdpfX0xIHvDs317e1wnb319MSB7w7p9e3tcJ3V9fTEKICB7w4F9e3tcJ0F9fTEge8OJfXt7XCdFfX0xIHvDjX17e1wnSX19MSB7w5N9e3tcJ099fTEge8OafXt7XCdVfX0xCiAge8OgfXt7XGBhfX0xIHvDqH17e1xgZX19MSB7w6x9e3tcYGl9fTEge8OyfXt7XGBvfX0xIHvDuX17e1xgdX19MQogIHvDgH17e1xgQX19MSB7w4h9e3tcYEV9fTEge8OMfXt7XGBJfX0xIHvDkn17e1xgT319MSB7w5l9e3tcYFV9fTEKICB7w6R9e3tcImF9fTEge8OrfXt7XCJlfX0xIHvDr317e1wiaX19MSB7w7Z9e3tcIm99fTEge8O8fXt7XCJ1fX0xCiAge8OEfXt7XCJBfX0xIHvDi317e1wiRX19MSB7w499e3tcIkl9fTEge8OWfXt7XCJPfX0xIHvDnH17e1wiVX19MQogIHvDon17e1xeYX19MSB7w6p9e3tcXmV9fTEge8OufXt7XF5pfX0xIHvDtH17e1xeb319MSB7w7t9e3tcXnV9fTEKICB7w4J9e3tcXkF9fTEge8OKfXt7XF5FfX0xIHvDjn17e1xeSX19MSB7w5R9e3tcXk99fTEge8ObfXt7XF5VfX0xCiAge8WTfXt7XG9lfX0xIHvFkn17e1xPRX19MSB7w6Z9e3tcYWV9fTEge8OGfXt7XEFFfX0xIHvDn317e1xzc319MQogIHvDp317e1xjIGN9fTEge8OHfXt7XGMgQ319MSB7w7h9e3tcb319MSB7w6V9e3tcciBhfX0xIHvDhX17e1xyIEF9fTEKICB74oKsfXt7XEVVUn19MSB7wqN9e3tccG91bmRzfX0xIHvCq317e1xndWlsbGVtb3RsZWZ0fX0xCiAge8K7fXt7XGd1aWxsZW1vdHJpZ2h0fX0xIHvDsX17e1x+bn19MSB7w5F9e3tcfk59fTEge8K/fXt7P2B9fTEKICB74oCmfXt7XGxkb3RzfX0xIHviiaV9e3s+PX19MSB74omkfXt7PD19fTEge+KAnn17e1xnbHFxfX0xIHvigJx9e3tcZ3JxcX19MQogIHvigJ19e3snJ319MQp9Clxsc3RzZXR7c3R5bGU9ZWlzdm9nZWxfbGlzdGluZ19zdHlsZX0KCiUKJSBKYXZhIChKYXZhIFNFIDEyLCAyMDE5LTA2LTIyKQolClxsc3RkZWZpbmVsYW5ndWFnZXtKYXZhfXsKICBtb3Jla2V5d29yZHM9ewogICAgJSBub3JtYWwga2V5d29yZHMgKHdpdGhvdXQgZGF0YSB0eXBlcykKICAgIGFic3RyYWN0LGFzc2VydCxicmVhayxjYXNlLGNhdGNoLGNsYXNzLGNvbnRpbnVlLGRlZmF1bHQsCiAgICBkbyxlbHNlLGVudW0sZXhwb3J0cyxleHRlbmRzLGZpbmFsLGZpbmFsbHksZm9yLGlmLGltcGxlbWVudHMsCiAgICBpbXBvcnQsaW5zdGFuY2VvZixpbnRlcmZhY2UsbW9kdWxlLG5hdGl2ZSxuZXcscGFja2FnZSxwcml2YXRlLAogICAgcHJvdGVjdGVkLHB1YmxpYyxyZXF1aXJlcyxyZXR1cm4sc3RhdGljLHN0cmljdGZwLHN1cGVyLHN3aXRjaCwKICAgIHN5bmNocm9uaXplZCx0aGlzLHRocm93LHRocm93cyx0cmFuc2llbnQsdHJ5LHZvbGF0aWxlLHdoaWxlLAogICAgJSB2YXIgaXMgYW4gaWRlbnRpZmllcgogICAgdmFyCiAgfSwKICBtb3Jla2V5d29yZHM9e1syXSAlIGRhdGEgdHlwZXMKICAgICUgcHJpbWl0aXZlIGRhdGEgdHlwZXMKICAgIGJvb2xlYW4sYnl0ZSxjaGFyLGRvdWJsZSxmbG9hdCxpbnQsbG9uZyxzaG9ydCwKICAgICUgU3RyaW5nCiAgICBTdHJpbmcsCiAgICAlIHByaW1pdGl2ZSB3cmFwcGVyIHR5cGVzCiAgICBCb29sZWFuLEJ5dGUsQ2hhcmFjdGVyLERvdWJsZSxGbG9hdCxJbnRlZ2VyLExvbmcsU2hvcnQKICAgICUgbnVtYmVyIHR5cGVzCiAgICBOdW1iZXIsQXRvbWljSW50ZWdlcixBdG9taWNMb25nLEJpZ0RlY2ltYWwsQmlnSW50ZWdlcixEb3VibGVBY2N1bXVsYXRvcixEb3VibGVBZGRlcixMb25nQWNjdW11bGF0b3IsTG9uZ0FkZGVyLFNob3J0LAogICAgJSBvdGhlcgogICAgT2JqZWN0LFZvaWQsdm9pZAogIH0sCiAgbW9yZWtleXdvcmRzPXtbM10gJSBsaXRlcmFscwogICAgJSByZXNlcnZlZCB3b3JkcyBmb3IgbGl0ZXJhbCB2YWx1ZXMKICAgIG51bGwsdHJ1ZSxmYWxzZSwKICB9LAogIHNlbnNpdGl2ZSwKICBtb3JlY29tbWVudCAgPSBbbF0vLywKICBtb3JlY29tbWVudCAgPSBbc117Lyp9eyovfSwKICBtb3JlY29tbWVudCAgPSBbc117LyoqfXsqL30sCiAgbW9yZXN0cmluZyAgID0gW2JdIiwKICBtb3Jlc3RyaW5nICAgPSBbYl0nLAp9CgpcbHN0ZGVmaW5lbGFuZ3VhZ2V7WE1MfXsKICBtb3Jlc3RyaW5nICAgICAgPSBbYl0iLAogIG1vcmVkZWxpbSAgICAgICA9IFtzXVtcYmZzZXJpZXNcY29sb3J7bGlzdGluZy1rZXl3b3JkfV17PH17XCB9LAogIG1vcmVkZWxpbSAgICAgICA9IFtzXVtcYmZzZXJpZXNcY29sb3J7bGlzdGluZy1rZXl3b3JkfV17PC99ez59LAogIG1vcmVkZWxpbSAgICAgICA9IFtsXVtcYmZzZXJpZXNcY29sb3J7bGlzdGluZy1rZXl3b3JkfV17Lz59LAogIG1vcmVkZWxpbSAgICAgICA9IFtsXVtcYmZzZXJpZXNcY29sb3J7bGlzdGluZy1rZXl3b3JkfV17Pn0sCiAgbW9yZWNvbW1lbnQgICAgID0gW3Ndezw/fXs/Pn0sCiAgbW9yZWNvbW1lbnQgICAgID0gW3NdezwhLS19ey0tPn0sCiAgY29tbWVudHN0eWxlICAgID0gXGNvbG9ye2xpc3RpbmctY29tbWVudH0sCiAgc3RyaW5nc3R5bGUgICAgID0gXGNvbG9ye2xpc3Rpbmctc3RyaW5nfSwKICBpZGVudGlmaWVyc3R5bGUgPSBcY29sb3J7bGlzdGluZy1pZGVudGlmaWVyfQp9CiRlbmRpZiQKCiUKJSBoZWFkZXIgYW5kIGZvb3RlcgolCiRpZihiZWFtZXIpJAokZWxzZSQKJGlmKGRpc2FibGUtaGVhZGVyLWFuZC1mb290ZXIpJAokZWxzZSQKXHVzZXBhY2thZ2VbaGVhZHNlcGxpbmUsZm9vdHNlcGxpbmVde3NjcmxheWVyLXNjcnBhZ2V9CgpcbmV3cGFpcm9mcGFnZXN0eWxlc3tlaXN2b2dlbC1oZWFkZXItZm9vdGVyfXsKICBcY2xlYXJwYWlyb2ZwYWdlc3R5bGVzCiAgXGloZWFkKnskaWYoaGVhZGVyLWxlZnQpJCRoZWFkZXItbGVmdCQkZWxzZSQkdGl0bGUkJGVuZGlmJH0KICBcY2hlYWQqeyRpZihoZWFkZXItY2VudGVyKSQkaGVhZGVyLWNlbnRlciQkZWxzZSQkZW5kaWYkfQogIFxvaGVhZCp7JGlmKGhlYWRlci1yaWdodCkkJGhlYWRlci1yaWdodCQkZWxzZSQkZGF0ZSQkZW5kaWYkfQogIFxpZm9vdCp7JGlmKGZvb3Rlci1sZWZ0KSQkZm9vdGVyLWxlZnQkJGVsc2UkJGZvcihhdXRob3IpJCRhdXRob3IkJHNlcCQsICRlbmRmb3IkJGVuZGlmJH0KICBcY2Zvb3QqeyRpZihmb290ZXItY2VudGVyKSQkZm9vdGVyLWNlbnRlciQkZWxzZSQkZW5kaWYkfQogIFxvZm9vdCp7JGlmKGZvb3Rlci1yaWdodCkkJGZvb3Rlci1yaWdodCQkZWxzZSRcdGhlcGFnZSRlbmRpZiR9CiAgXGFkZHRva29tYWZvbnR7cGFnZWhlYWRmb290fXtcdXBzaGFwZX0KfQpccGFnZXN0eWxle2Vpc3ZvZ2VsLWhlYWRlci1mb290ZXJ9CgokaWYoYm9vaykkClxkZWZ0cmlwc3R5bGV7Q2hhcHRlclN0eWxlfXt9e317fXt9e1xwYWdlbWFya317fQpccmVuZXdjb21tYW5kKntcY2hhcHRlcnBhZ2VzdHlsZX17Q2hhcHRlclN0eWxlfQokZW5kaWYkCgokaWYocGFnZS1iYWNrZ3JvdW5kKSQKXGJhY2tncm91bmRzZXR1cHsKc2NhbGU9MSwKY29sb3I9YmxhY2ssCm9wYWNpdHk9JGlmKHBhZ2UtYmFja2dyb3VuZC1vcGFjaXR5KSQkcGFnZS1iYWNrZ3JvdW5kLW9wYWNpdHkkJGVsc2UkMC4yJGVuZGlmJCwKYW5nbGU9MCwKY29udGVudHM9eyUKICBcaW5jbHVkZWdyYXBoaWNzW3dpZHRoPVxwYXBlcndpZHRoLGhlaWdodD1ccGFwZXJoZWlnaHRdeyRwYWdlLWJhY2tncm91bmQkfQogIH0lCn0KJGVuZGlmJAokZW5kaWYkCiRlbmRpZiQKCiUlCiUlIGVuZCBhZGRlZAolJQpcdXNlcGFja2FnZXtwZ2ZwYWdlc30KXHVzZXBhY2thZ2VbZXhwb3J0XXthZGp1c3Rib3h9Clx1c2VwYWNrYWdle2dyYXBoaWN4fQpcdXNlcGFja2FnZXtyYWdnZWQyZX0KCgpcYmVnaW57ZG9jdW1lbnR9CgolJQolJSBiZWdpbiB0aXRsZXBhZ2UKJSUKJGlmKGJlYW1lcikkCiRlbHNlJAokaWYobm90aXRsZXBhZ2UpJAokZWxzZSQKXGJlZ2lue3RpdGxlcGFnZX0KJGlmKHRpdGxlcGFnZS1iYWNrZ3JvdW5kKSQKXG5ld2dlb21ldHJ5e3RvcD0yY20sIHJpZ2h0PTRjbSwgYm90dG9tPTNjbSwgbGVmdD00Y219CiRlbHNlJAokZW5kaWYkCiRpZih0aXRsZXBhZ2UtY29sb3IpJApcZGVmaW5lY29sb3J7dGl0bGVwYWdlLWNvbG9yfXtIVE1MfXskdGl0bGVwYWdlLWNvbG9yJH0KXG5ld3BhZ2Vjb2xvcnt0aXRsZXBhZ2UtY29sb3J9XGFmdGVycGFnZXtccmVzdG9yZXBhZ2Vjb2xvcn0KJGVuZGlmJAokaWYodGl0bGVwYWdlLWJhY2tncm91bmQpJApcdGlreltyZW1lbWJlciBwaWN0dXJlLG92ZXJsYXldIFxub2RlW2lubmVyIHNlcD0wcHRdIGF0IChjdXJyZW50IHBhZ2UuY2VudGVyKXtcaW5jbHVkZWdyYXBoaWNzW3dpZHRoPVxwYXBlcndpZHRoLGhlaWdodD1ccGFwZXJoZWlnaHRdeyR0aXRsZXBhZ2UtYmFja2dyb3VuZCR9fTsKJGVuZGlmJApcbmV3Y29tbWFuZHtcY29sb3JSdWxlfVszXVtibGFja117XHRleHRjb2xvcltIVE1MXXsjMX17XHJ1bGV7IzJ9eyMzfX19ClxiZWdpbntmbHVzaGxlZnR9Clxub2luZGVudApcXFstMWVtXQpcY29sb3JbSFRNTF17JGlmKHRpdGxlcGFnZS10ZXh0LWNvbG9yKSQkdGl0bGVwYWdlLXRleHQtY29sb3IkJGVsc2UkMDAwMDAwJGVuZGlmJH0KXG1ha2Vib3hbMHB0XVtsXXtcY29sb3JSdWxlWyRpZih0aXRsZXBhZ2UtcnVsZS1jb2xvcikkJHRpdGxlcGFnZS1ydWxlLWNvbG9yJCRlbHNlJEZGRkZGRiRlbmRpZiRdezEuM1x0ZXh0d2lkdGh9eyRpZih0aXRsZXBhZ2UtcnVsZS1oZWlnaHQpJCR0aXRsZXBhZ2UtcnVsZS1oZWlnaHQkJGVsc2UkMCRlbmRpZiRwdH19ClxwYXIKXG5vaW5kZW50CgokaWYodGl0bGVwYWdlLWJhY2tncm91bmQpJAolIFRoZSB0aXRsZXBhZ2Ugd2l0aCBhIGJhY2tncm91bmQgaW1hZ2UgaGFzIG90aGVyIHRleHQgc3BhY2luZyBhbmQgdGV4dCBzaXplCnsKICBcc2V0c3RyZXRjaHsyfQogIFx2ZmlsbAogIFx2c2tpcCAtOGVtCiAgXG5vaW5kZW50IHtcaHVnZSBcdGV4dGJme1x0ZXh0c2Z7CiAgJGlmKHRpdGxlKSQKICAgICR0aXRsZSQKICAkZWxzZSQKICAgIFNldCB1cCBUaXRsZSBpbiBGcm9udG1hdHRlciAoc2VlIEFic3RyYWN0KQogICRlbmRpZiQKfX19CiAgJGlmKHN1YnRpdGxlKSQKICBcdnNraXAgMWVtCiAge1xMYXJnZSBcdGV4dHNmeyRzdWJ0aXRsZSR9fQogICRlbmRpZiQKICBcdnNraXAgMmVtCiAgXG5vaW5kZW50IHtcTGFyZ2UgXHRleHRpdHskZm9yKGF1dGhvcikkJGF1dGhvciQkc2VwJCwgJGVuZGZvciR9IFx2c2tpcCAwLjZlbSBcdGV4dHNmeyRkYXRlJH19CiAgXHZmaWxsCn0KJGVsc2UkCnsKICBcYmVnaW57Y2VudGVyfQogIFxzZXRzdHJldGNoezEuNH0KICBcdmZpbGwKICBcbm9pbmRlbnQge1xodWdlIFx0ZXh0YmZ7XHRleHRzZnsKICAkaWYodGl0bGUpJAogICAgJHRpdGxlJAogICRlbHNlJAogICAgU2V0IHVwIFRpdGxlIGluIEZyb250bWF0dGVyIChzZWUgQWJzdHJhY3QpCiAgJGVuZGlmJAp9fX0KICAkaWYoc3VidGl0bGUpJAogIFx2c2tpcCAxZW0KICB7XExhcmdlIFx0ZXh0c2Z7JHN1YnRpdGxlJH19CiAgJGVuZGlmJAogIFx2c2tpcCAyZW0KICBcbm9pbmRlbnQge1xMYXJnZSBcdGV4dGl0eyRmb3IoYXV0aG9yKSQkYXV0aG9yJCRzZXAkLCAkZW5kZm9yJH19CiAgXHZmaWxsCiAgXGVuZHtjZW50ZXJ9Cn0KJGVuZGlmJAoKJGlmKHRpdGxlcGFnZS1sb2dvKSQKXG5vaW5kZW50ClxiZWdpbntjZW50ZXJ9ClxpbmNsdWRlZ3JhcGhpY3Nbd2lkdGg9JGlmKGxvZ28td2lkdGgpJCRsb2dvLXdpZHRoJCRlbHNlJDM1bW0kZW5kaWYkXXskdGl0bGVwYWdlLWxvZ28kfQpcZW5ke2NlbnRlcn0KJGVuZGlmJAokaWYodGV4dDEpJApcYmVnaW57Y2VudGVyfQp7XGxhcmdlIFx0ZXh0c2Z7JHRleHQxJH19ClxlbmR7Y2VudGVyfQokZW5kaWYkCiRpZih0ZXh0MikkClxiZWdpbntjZW50ZXJ9CntcbGFyZ2UgXHRleHRzZnskdGV4dDIkfX0KXGVuZHtjZW50ZXJ9CiRlbmRpZiQKJGlmKHRleHQzKSQKXGJlZ2lue2NlbnRlcn0Ke1xsYXJnZSBcdGV4dHNmeyR0ZXh0MyR9fQpcZW5ke2NlbnRlcn0KJGVuZGlmJAokaWYodGV4dDQpJApcYmVnaW57Y2VudGVyfQp7XGxhcmdlIFx0ZXh0c2Z7JHRleHQ0JH19ClxlbmR7Y2VudGVyfQokZW5kaWYkCiRpZih0aXRsZXBhZ2UtYmFja2dyb3VuZCkkCiRlbHNlJAokZW5kaWYkClxlbmR7Zmx1c2hsZWZ0fQpcZW5ke3RpdGxlcGFnZX0KXHJlc3RvcmVnZW9tZXRyeQpccGFnZW51bWJlcmluZ3thcmFiaWN9IAokZW5kaWYkCiRlbmRpZiQKCiUlCiUlIGVuZCB0aXRsZXBhZ2UKJSUKCiRpZihoYXMtZnJvbnRtYXR0ZXIpJApcZnJvbnRtYXR0ZXIKXGZyYW1le1x0aXRsZXBhZ2V9CiUgZG9uJ3QgZ2VuZXJhdGUgdGhlIGRlZmF1bHQgdGl0bGUKJSAkZWxzZSQKJSBcbWFrZXRpdGxlClxwYWdlbnVtYmVyaW5ne1JvbWFufSAlIHNldCB0aGUgbnVtYmVyaW5nIHN0eWxlIHRvIGxvd2VyY2FzZSBsZXR0ZXIKClxiZWdpbntjZW50ZXJ9CiB7XExBUkdFIFx0ZXh0YmZ7XHRleHRzZntBYnN0cmFjdH19fQpcZW5ke2NlbnRlcn0KClxiZWdpbnthYnN0cmFjdH0KXGJlZ2lue2p1c3RpZnl9CiAgJGlmKGFic3RyYWN0KSQKICAkYWJzdHJhY3QkCiAgJGVsc2UkCiAgQWRkIHlvdXIgYWJzdHJhY3QgYXQgdGhlIGJlZ2lubmluZyBvZiB5b3VyIG1hcmtkb3duIGZpbGUgbGlrZSB0aGlzIAogIFxiZWdpbnt2ZXJiYXRpbX0KICAtLS0KICB0aXRsZTogIllvdXIgVGl0bGUiIAogIGFic3RyYWN0OiAieW91ciBhYnN0cmFjdCBoZXJlIgogIGF1dGhvcjogTGVvbmFyZG8gVi4gQ2FzdG9yaW5hLCBBbm90aGVyIDEsIEFub3RoZXIgMgogIHRpdGxlcGFnZS1sb2dvOiAvYWJzb2x1dGUvcGF0aC90by9sb2dvLnBkZgogIGFja25vd2xlZGdlbWVudHM6ICJJIHdvdWxkIGxpa2UgdG8gdGhhbmsgbXkgZG9nIERhdGEuIgogIGRlY2xhcmF0aW9uOiAiSSBkZWNsYXJlIHRoYXQgdGhpcyB0aGVzaXMgd2FzIGNvbXBvc2VkIGJ5IG15c2VsZi4iCiAgLS0tCiAgXGVuZHt2ZXJiYXRpbX0KICBUaGlzIGlzIGNhbGxlZCBZQU1MIGZyb250bWF0dGVyLiAgTWFrZSBzdXJlIHRvIHNldCB1cCBhIHRpdGxlISBJZiB5b3Ugc2V0IHlvdXIgYWJzdHJhY3QgY29ycmVjdGx5IHlvdSBzaG91bGQgbm90IHNlZSB0aGlzIG1lc3NhZ2UuCgogIE9wdGlvbmFsbHkgeW91IGNhbiBzZXQgdXAgXHRleHR0dHt0aXRsZXBhZ2UtbG9nb30gZm9yIGEgbG9nbyBpbiB0aGUgY292ZXIgcGFnZSwgXHRleHR0dHthY2tub3dsZWRnZW1lbnRzfSBzZWN0aW9uLCBhbmQgIFx0ZXh0dHR7ZGVjbGFyYXRpb259IHNlY3Rpb24uCgogICRlbmRpZiQKXGVuZHtqdXN0aWZ5fQpcZW5ke2Fic3RyYWN0fQpccGFnZWJyZWFrCgoKJGlmKGFja25vd2xlZGdlbWVudHMpJApcYmVnaW57Y2VudGVyfQoge1xMQVJHRSBcdGV4dGJme1x0ZXh0c2Z7QWNrbm93bGVkZ2VtZW50c319fQpcZW5ke2NlbnRlcn0KClxiZWdpbnthYnN0cmFjdH0KXGJlZ2lue2p1c3RpZnl9CiRhY2tub3dsZWRnZW1lbnRzJApcZW5ke2p1c3RpZnl9ClxlbmR7YWJzdHJhY3R9ClxwYWdlYnJlYWsKCiRlbmRpZiQKCiRpZihkZWNsYXJhdGlvbikkClxiZWdpbntjZW50ZXJ9CiB7XExBUkdFIFx0ZXh0YmZ7XHRleHRzZntEZWNsYXJhdGlvbn19fQpcZW5ke2NlbnRlcn0KClxiZWdpbnthYnN0cmFjdH0KXGJlZ2lue2p1c3RpZnl9CiAgJGRlY2xhcmF0aW9uJCBccGFyCiAgIFx2c3BhY2V7MWlufVxyYWdnZWRsZWZ0KHtcZW0gJGF1dGhvciRcL30pClxlbmR7anVzdGlmeX0KXGVuZHthYnN0cmFjdH0KXHBhZ2VicmVhawoKCgokZW5kaWYkClxwYWdlbnVtYmVyaW5ne2FyYWJpY30gJSBzZXQgdGhlIG51bWJlcmluZyBzdHlsZSB0byBsb3dlcmNhc2UgbGV0dGVyClxzZXRjb3VudGVye3BhZ2V9ezB9ICUgU2V0IHRoZSBwYWdlIGNvdW50ZXIgdG8gMwoKCiRpZihmaXJzdC1jaGFwdGVyKSQKXHNldGNvdW50ZXJ7Y2hhcHRlcn17JGZpcnN0LWNoYXB0ZXIkfQpcYWRkdG9jb3VudGVye2NoYXB0ZXJ9ey0xfQokZW5kaWYkCgokZm9yKGluY2x1ZGUtYmVmb3JlKSQKJGluY2x1ZGUtYmVmb3JlJAoKJGVuZGZvciQKJGlmKG5vLXRvYykkCiRlbHNlJApccmVuZXdjb21tYW5kKlxjb250ZW50c25hbWV7JHRvYy10aXRsZSR9ClxyZW5ld2NvbW1hbmQqXGNvbnRlbnRzbmFtZXtUYWJsZSBvZiBDb250ZW50c30KJGVuZGlmJAokaWYoYmVhbWVyKSQKXGJlZ2lue2ZyYW1lfVthbGxvd2ZyYW1lYnJlYWtzXQokaWYodG9jLXRpdGxlKSQKICBcZnJhbWV0aXRsZXskdG9jLXRpdGxlJH0KJGVuZGlmJAogIFx0YWJsZW9mY29udGVudHNbaGlkZWFsbHN1YnNlY3Rpb25zXQpcZW5ke2ZyYW1lfQpcbmV3cGFnZQokZWxzZSQKewokaWYoY29sb3JsaW5rcykkClxoeXBlcnNldHVwe2xpbmtjb2xvcj0kaWYodG9jY29sb3IpJCR0b2Njb2xvciQkZWxzZSQkZW5kaWYkfQokZW5kaWYkClxzZXRjb3VudGVye3RvY2RlcHRofXskdG9jLWRlcHRoJH0KXHRhYmxlb2Zjb250ZW50cwpcbmV3cGFnZQp9CiRlbmRpZiQKJGVuZGlmJAokaWYobG9mKSQKXGxpc3RvZmZpZ3VyZXMKJGVuZGlmJAokaWYobG90KSQKXGxpc3RvZnRhYmxlcwokZW5kaWYkCiRpZihsaW5lc3RyZXRjaCkkClxzZXRzdHJldGNoeyRsaW5lc3RyZXRjaCR9CiRlbmRpZiQKJGlmKGhhcy1mcm9udG1hdHRlcikkClxtYWlubWF0dGVyCiRlbmRpZiQKJGJvZHkkCgokaWYoaGFzLWZyb250bWF0dGVyKSQKXGJhY2ttYXR0ZXIKJGVuZGlmJAokaWYobmF0YmliKSQKJGlmKGJpYmxpb2dyYXBoeSkkCiRpZihiaWJsaW8tdGl0bGUpJAokaWYoaGFzLWNoYXB0ZXJzKSQKXHJlbmV3Y29tbWFuZFxiaWJuYW1leyRiaWJsaW8tdGl0bGUkfQokZWxzZSQKXHJlbmV3Y29tbWFuZFxyZWZuYW1leyRiaWJsaW8tdGl0bGUkfQokZW5kaWYkCiRlbmRpZiQKJGlmKGJlYW1lcikkClxiZWdpbntmcmFtZX1bYWxsb3dmcmFtZWJyZWFrc117JGJpYmxpby10aXRsZSR9CiAgXGJpYmxpb2dyYXBoeXRydWUKJGVuZGlmJAogIFxiaWJsaW9ncmFwaHl7JGZvcihiaWJsaW9ncmFwaHkpJCRiaWJsaW9ncmFwaHkkJHNlcCQsJGVuZGZvciR9CiRpZihiZWFtZXIpJApcZW5ke2ZyYW1lfQokZW5kaWYkCgokZW5kaWYkCiRlbmRpZiQKJGlmKGJpYmxhdGV4KSQKJGlmKGJlYW1lcikkClxiZWdpbntmcmFtZX1bYWxsb3dmcmFtZWJyZWFrc117JGJpYmxpby10aXRsZSR9CiAgXGJpYmxpb2dyYXBoeXRydWUKICBccHJpbnRiaWJsaW9ncmFwaHlbaGVhZGluZz1ub25lXQpcZW5ke2ZyYW1lfQokZWxzZSQKXHByaW50YmlibGlvZ3JhcGh5JGlmKGJpYmxpby10aXRsZSkkW3RpdGxlPSRiaWJsaW8tdGl0bGUkXSRlbmRpZiQKJGVuZGlmJAoKJGVuZGlmJAokZm9yKGluY2x1ZGUtYWZ0ZXIpJAokaW5jbHVkZS1hZnRlciQKCiRlbmRmb3IkClxlbmR7ZG9jdW1lbnR9"),e=>e.charCodeAt(0)),Ia=Object.freeze(Object.defineProperty({__proto__:null,default:Ga},Symbol.toStringTag,{value:"Module"})),Ca=Uint8Array.from(atob("JSBwYXJ0aWFsIHJld3JpdGUgb2YgdGhlIExhVGVYMmUgcGFja2FnZSBmb3Igc3VibWlzc2lvbnMgdG8gdGhlCiUgQ29uZmVyZW5jZSBvbiBOZXVyYWwgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBTeXN0ZW1zIChOZXVySVBTKToKJQolIC0gdXNlcyBtb3JlIExhVGVYIGNvbnZlbnRpb25zCiUgLSBsaW5lIG51bWJlcnMgYXQgc3VibWlzc2lvbiB0aW1lIHJlcGxhY2VkIHdpdGggYWxpZ25lZCBudW1iZXJzIGZyb20KJSAgIGxpbmVubyBwYWNrYWdlCiUgLSBcbmlwc2ZpbmFsY29weSByZXBsYWNlZCB3aXRoIFtmaW5hbF0gcGFja2FnZSBvcHRpb24KJSAtIGF1dG9tYXRpY2FsbHkgbG9hZHMgdGltZXMgcGFja2FnZSBmb3IgYXV0aG9ycwolIC0gbG9hZHMgbmF0YmliIGF1dG9tYXRpY2FsbHk7IHRoaXMgY2FuIGJlIHN1cHByZXNzZWQgd2l0aCB0aGUKJSAgIFtub25hdGJpYl0gcGFja2FnZSBvcHRpb24KJSAtIGFkZHMgZm9vdCBsaW5lIHRvIGZpcnN0IHBhZ2UgaWRlbnRpZnlpbmcgdGhlIGNvbmZlcmVuY2UKJSAtIGFkZHMgcHJlcHJpbnQgb3B0aW9uIGZvciBzdWJtaXNzaW9uIHRvIGUuZy4gYXJYaXYKJSAtIGNvbmZlcmVuY2UgYWNyb255bSBtb2RpZmllZAolCiUgUm9tYW4gR2FybmV0dCAoZ2FybmV0dEB3dXN0bC5lZHUpIGFuZCB0aGUgbWFueSBhdXRob3JzIG9mCiUgbmlwczE1c3VibWl0X2Uuc3R5LCBpbmNsdWRpbmcgTUsgYW5kIGRyc3RyaXBAc2FuZGlhCiUKJSBsYXN0IHJldmlzaW9uOiBNYXJjaCAyMDIzCgpcTmVlZHNUZVhGb3JtYXR7TGFUZVgyZX0KXFByb3ZpZGVzUGFja2FnZXtuZXVyaXBzfVsyMDIzLzAzLzMxIE5ldXJJUFMgMjAyMyBzdWJtaXNzaW9uL2NhbWVyYS1yZWFkeSBzdHlsZSBmaWxlXQoKJSBkZWNsYXJlIGZpbmFsIG9wdGlvbiwgd2hpY2ggY3JlYXRlcyBjYW1lcmEtcmVhZHkgY29weQpcbmV3aWZcaWZAbmV1cmlwc2ZpbmFsXEBuZXVyaXBzZmluYWxmYWxzZQpcRGVjbGFyZU9wdGlvbntmaW5hbH17CiAgXEBuZXVyaXBzZmluYWx0cnVlCn0KCiUgZGVjbGFyZSBub25hdGJpYiBvcHRpb24sIHdoaWNoIGRvZXMgbm90IGxvYWQgbmF0YmliIGluIGNhc2Ugb2YKJSBwYWNrYWdlIGNsYXNoICh1c2VycyBjYW4gcGFzcyBvcHRpb25zIHRvIG5hdGJpYiB2aWEKJSBcUGFzc09wdGlvbnNUb1BhY2thZ2UpClxuZXdpZlxpZkBuYXRiaWJcQG5hdGJpYnRydWUKXERlY2xhcmVPcHRpb257bm9uYXRiaWJ9ewogIFxAbmF0YmliZmFsc2UKfQoKJSBkZWNsYXJlIHByZXByaW50IG9wdGlvbiwgd2hpY2ggY3JlYXRlcyBhIHByZXByaW50IHZlcnNpb24gcmVhZHkgZm9yCiUgdXBsb2FkIHRvLCBlLmcuLCBhclhpdgpcbmV3aWZcaWZAcHJlcHJpbnRcQHByZXByaW50ZmFsc2UKXERlY2xhcmVPcHRpb257cHJlcHJpbnR9ewogIFxAcHJlcHJpbnR0cnVlCn0KClxQcm9jZXNzT3B0aW9uc1xyZWxheAoKJSBkZXRlcm1pbmUgd2hldGhlciB0aGlzIGlzIGFuIGFub255bWl6ZWQgc3VibWlzc2lvbgpcbmV3aWZcaWZAc3VibWlzc2lvblxAc3VibWlzc2lvbnRydWUKXGlmQG5ldXJpcHNmaW5hbFxAc3VibWlzc2lvbmZhbHNlXGZpClxpZkBwcmVwcmludFxAc3VibWlzc2lvbmZhbHNlXGZpCgolIGZvbnRzClxyZW5ld2NvbW1hbmR7XHJtZGVmYXVsdH17cHRtfQpccmVuZXdjb21tYW5ke1xzZmRlZmF1bHR9e3Bodn0KCiUgY2hhbmdlIHRoaXMgZXZlcnkgeWVhciBmb3Igbm90aWNlIHN0cmluZyBhdCBib3R0b20KXG5ld2NvbW1hbmR7XEBuZXVyaXBzb3JkaW5hbH17fQpcbmV3Y29tbWFuZHtcQG5ldXJpcHN5ZWFyfXtcdGhlXHllYXJ9ClxuZXdjb21tYW5ke1xAbmV1cmlwc2xvY2F0aW9ufXt9CgolIGFja25vd2xlZGdtZW50cwpcdXNlcGFja2FnZXtlbnZpcm9ufQpcbmV3Y29tbWFuZHtcYWNrc2VjdGlvbn17XHNlY3Rpb24qe0Fja25vd2xlZGdtZW50cyBhbmQgRGlzY2xvc3VyZSBvZiBGdW5kaW5nfX0KXE5ld0Vudmlyb257YWNrfXslCiAgXGFja3NlY3Rpb24KICBcQk9EWQp9CgoKJSBsb2FkIG5hdGJpYiB1bmxlc3MgdG9sZCBvdGhlcndpc2UKXGlmQG5hdGJpYgogIFxSZXF1aXJlUGFja2FnZXtuYXRiaWJ9ClxmaQoKJSBzZXQgcGFnZSBnZW9tZXRyeQpcdXNlcGFja2FnZVt2ZXJib3NlPXRydWUsbGV0dGVycGFwZXJde2dlb21ldHJ5fQpcQXRCZWdpbkRvY3VtZW50ewogIFxuZXdnZW9tZXRyeXsKICAgIHRleHRoZWlnaHQ9OWluLAogICAgdGV4dHdpZHRoPTUuNWluLAogICAgdG9wPTFpbiwKICAgIGhlYWRoZWlnaHQ9MTJwdCwKICAgIGhlYWRzZXA9MjVwdCwKICAgIGZvb3Rza2lwPTMwcHQKICB9CiAgXEBpZnBhY2thZ2Vsb2FkZWR7ZnVsbHBhZ2V9CiAgICB7XFBhY2thZ2VXYXJuaW5ne25ldXJpcHNfMjAyM317ZnVsbHBhZ2UgcGFja2FnZSBub3QgYWxsb3dlZCEgT3ZlcndyaXRpbmcgZm9ybWF0dGluZy59fQogICAge30KfQoKXHdpZG93cGVuYWx0eT0xMDAwMApcY2x1YnBlbmFsdHk9MTAwMDAKXGZsdXNoYm90dG9tClxzbG9wcHkKCgolIGZvbnQgc2l6ZXMgd2l0aCByZWR1Y2VkIGxlYWRpbmcKXHJlbmV3Y29tbWFuZHtcbm9ybWFsc2l6ZX17JQogIFxAc2V0Zm9udHNpemVcbm9ybWFsc2l6ZVxAeHB0XEB4aXB0CiAgXGFib3ZlZGlzcGxheXNraXAgICAgICA3XHBAIFxAcGx1cyAyXHBAIFxAbWludXMgNVxwQAogIFxhYm92ZWRpc3BsYXlzaG9ydHNraXAgXHpAIFxAcGx1cyAzXHBACiAgXGJlbG93ZGlzcGxheXNraXAgICAgICBcYWJvdmVkaXNwbGF5c2tpcAogIFxiZWxvd2Rpc3BsYXlzaG9ydHNraXAgNFxwQCBcQHBsdXMgM1xwQCBcQG1pbnVzIDNccEAKfQpcbm9ybWFsc2l6ZQpccmVuZXdjb21tYW5ke1xzbWFsbH17JQogIFxAc2V0Zm9udHNpemVcc21hbGxcQGl4cHRcQHhwdAogIFxhYm92ZWRpc3BsYXlza2lwICAgICAgNlxwQCBcQHBsdXMgMS41XHBAIFxAbWludXMgNFxwQAogIFxhYm92ZWRpc3BsYXlzaG9ydHNraXAgXHpAICBcQHBsdXMgMlxwQAogIFxiZWxvd2Rpc3BsYXlza2lwICAgICAgXGFib3ZlZGlzcGxheXNraXAKICBcYmVsb3dkaXNwbGF5c2hvcnRza2lwIDNccEAgXEBwbHVzIDJccEAgICBcQG1pbnVzIDJccEAKfQpccmVuZXdjb21tYW5ke1xmb290bm90ZXNpemV9e1xAc2V0Zm9udHNpemVcZm9vdG5vdGVzaXplXEBpeHB0XEB4cHR9ClxyZW5ld2NvbW1hbmR7XHNjcmlwdHNpemV9e1xAc2V0Zm9udHNpemVcc2NyaXB0c2l6ZVxAdmlpcHRcQHZpaWlwdH0KXHJlbmV3Y29tbWFuZHtcdGlueX17XEBzZXRmb250c2l6ZVx0aW55XEB2aXB0XEB2aWlwdH0KXHJlbmV3Y29tbWFuZHtcbGFyZ2V9e1xAc2V0Zm9udHNpemVcbGFyZ2VcQHhpaXB0ezE0fX0KXHJlbmV3Y29tbWFuZHtcTGFyZ2V9e1xAc2V0Zm9udHNpemVcTGFyZ2VcQHhpdnB0ezE2fX0KXHJlbmV3Y29tbWFuZHtcTEFSR0V9e1xAc2V0Zm9udHNpemVcTEFSR0VcQHh2aWlwdHsyMH19ClxyZW5ld2NvbW1hbmR7XGh1Z2V9e1xAc2V0Zm9udHNpemVcaHVnZVxAeHhwdHsyM319ClxyZW5ld2NvbW1hbmR7XEh1Z2V9e1xAc2V0Zm9udHNpemVcSHVnZVxAeHh2cHR7Mjh9fQoKJSBzZWN0aW9ucyB3aXRoIGxlc3Mgc3BhY2UKXHByb3ZpZGVjb21tYW5ke1xzZWN0aW9ufXt9ClxyZW5ld2NvbW1hbmR7XHNlY3Rpb259eyUKICBcQHN0YXJ0c2VjdGlvbntzZWN0aW9ufXsxfXtcekB9JQogICAgICAgICAgICAgICAgey0yLjBleCBcQHBsdXMgLTAuNWV4IFxAbWludXMgLTAuMmV4fSUKICAgICAgICAgICAgICAgIHsgMS41ZXggXEBwbHVzICAwLjNleCBcQG1pbnVzICAwLjJleH0lCiAgICAgICAgICAgICAgICB7XGxhcmdlXGJmXHJhZ2dlZHJpZ2h0fSUKfQpccHJvdmlkZWNvbW1hbmR7XHN1YnNlY3Rpb259e30KXHJlbmV3Y29tbWFuZHtcc3Vic2VjdGlvbn17JQogIFxAc3RhcnRzZWN0aW9ue3N1YnNlY3Rpb259ezJ9e1x6QH0lCiAgICAgICAgICAgICAgICB7LTEuOGV4IFxAcGx1cyAtMC41ZXggXEBtaW51cyAtMC4yZXh9JQogICAgICAgICAgICAgICAgeyAwLjhleCBcQHBsdXMgIDAuMmV4fSUKICAgICAgICAgICAgICAgIHtcbm9ybWFsc2l6ZVxiZlxyYWdnZWRyaWdodH0lCn0KXHByb3ZpZGVjb21tYW5ke1xzdWJzdWJzZWN0aW9ufXt9ClxyZW5ld2NvbW1hbmR7XHN1YnN1YnNlY3Rpb259eyUKICBcQHN0YXJ0c2VjdGlvbntzdWJzdWJzZWN0aW9ufXszfXtcekB9JQogICAgICAgICAgICAgICAgey0xLjVleCBcQHBsdXMgLTAuNWV4IFxAbWludXMgLTAuMmV4fSUKICAgICAgICAgICAgICAgIHsgMC41ZXggXEBwbHVzICAwLjJleH0lCiAgICAgICAgICAgICAgICB7XG5vcm1hbHNpemVcYmZccmFnZ2VkcmlnaHR9JQp9Clxwcm92aWRlY29tbWFuZHtccGFyYWdyYXBofXt9ClxyZW5ld2NvbW1hbmR7XHBhcmFncmFwaH17JQogIFxAc3RhcnRzZWN0aW9ue3BhcmFncmFwaH17NH17XHpAfSUKICAgICAgICAgICAgICAgIHsxLjVleCBcQHBsdXMgMC41ZXggXEBtaW51cyAwLjJleH0lCiAgICAgICAgICAgICAgICB7LTFlbX0lCiAgICAgICAgICAgICAgICB7XG5vcm1hbHNpemVcYmZ9JQp9Clxwcm92aWRlY29tbWFuZHtcc3VicGFyYWdyYXBofXt9ClxyZW5ld2NvbW1hbmR7XHN1YnBhcmFncmFwaH17JQogIFxAc3RhcnRzZWN0aW9ue3N1YnBhcmFncmFwaH17NX17XHpAfSUKICAgICAgICAgICAgICAgIHsxLjVleCBcQHBsdXMgMC41ZXggXEBtaW51cyAwLjJleH0lCiAgICAgICAgICAgICAgICB7LTFlbX0lCiAgICAgICAgICAgICAgICB7XG5vcm1hbHNpemVcYmZ9JQp9Clxwcm92aWRlY29tbWFuZHtcc3Vic3Vic3Vic2VjdGlvbn17fQpccmVuZXdjb21tYW5ke1xzdWJzdWJzdWJzZWN0aW9ufXslCiAgXHZza2lwNXB0e1xub2luZGVudFxub3JtYWxzaXplXHJtXHJhZ2dlZHJpZ2h0fSUKfQoKJSBmbG9hdCBwbGFjZW1lbnQKXHJlbmV3Y29tbWFuZHtcdG9wZnJhY3Rpb24gICAgICB9ezAuODV9ClxyZW5ld2NvbW1hbmR7XGJvdHRvbWZyYWN0aW9uICAgfXswLjR9ClxyZW5ld2NvbW1hbmR7XHRleHRmcmFjdGlvbiAgICAgfXswLjF9ClxyZW5ld2NvbW1hbmR7XGZsb2F0cGFnZWZyYWN0aW9ufXswLjd9CgpcbmV3bGVuZ3Roe1xAbmV1cmlwc2Fib3ZlY2FwdGlvbnNraXB9XHNldGxlbmd0aHtcQG5ldXJpcHNhYm92ZWNhcHRpb25za2lwfXs3XHBAfQpcbmV3bGVuZ3Roe1xAbmV1cmlwc2JlbG93Y2FwdGlvbnNraXB9XHNldGxlbmd0aHtcQG5ldXJpcHNiZWxvd2NhcHRpb25za2lwfXtcekB9Cgpcc2V0bGVuZ3Roe1xhYm92ZWNhcHRpb25za2lwfXtcQG5ldXJpcHNhYm92ZWNhcHRpb25za2lwfQpcc2V0bGVuZ3Roe1xiZWxvd2NhcHRpb25za2lwfXtcQG5ldXJpcHNiZWxvd2NhcHRpb25za2lwfQoKJSBzd2FwIGFib3ZlL2JlbG93Y2FwdGlvbnNraXAgbGVuZ3RocyBmb3IgdGFibGVzClxyZW5ld2Vudmlyb25tZW50e3RhYmxlfQogIHtcc2V0bGVuZ3Roe1xhYm92ZWNhcHRpb25za2lwfXtcQG5ldXJpcHNiZWxvd2NhcHRpb25za2lwfSUKICAgXHNldGxlbmd0aHtcYmVsb3djYXB0aW9uc2tpcH17XEBuZXVyaXBzYWJvdmVjYXB0aW9uc2tpcH0lCiAgIFxAZmxvYXR7dGFibGV9fQogIHtcZW5kQGZsb2F0fQoKJSBmb290bm90ZSBmb3JtYXR0aW5nClxzZXRsZW5ndGh7XGZvb3Rub3Rlc2VwIH17Ni42NVxwQH0KXHNldGxlbmd0aHtcc2tpcFxmb290aW5zfXs5XHBAIFxAcGx1cyA0XHBAIFxAbWludXMgMlxwQH0KXHJlbmV3Y29tbWFuZHtcZm9vdG5vdGVydWxlfXtca2Vybi0zXHBAIFxocnVsZSB3aWR0aCAxMnBjIFxrZXJuIDIuNlxwQH0KXHNldGNvdW50ZXJ7Zm9vdG5vdGV9ezB9CgolIHBhcmFncmFwaCBmb3JtYXR0aW5nClxzZXRsZW5ndGh7XHBhcmluZGVudH17XHpAfQpcc2V0bGVuZ3Roe1xwYXJza2lwICB9ezUuNVxwQH0KCiUgbGlzdCBmb3JtYXR0aW5nClxzZXRsZW5ndGh7XHRvcHNlcCAgICAgICB9ezRccEAgXEBwbHVzIDFccEAgICBcQG1pbnVzIDJccEB9ClxzZXRsZW5ndGh7XHBhcnRvcHNlcCAgICB9ezFccEAgXEBwbHVzIDAuNVxwQCBcQG1pbnVzIDAuNVxwQH0KXHNldGxlbmd0aHtcaXRlbXNlcCAgICAgIH17MlxwQCBcQHBsdXMgMVxwQCAgIFxAbWludXMgMC41XHBAfQpcc2V0bGVuZ3Roe1xwYXJzZXAgICAgICAgfXsyXHBAIFxAcGx1cyAxXHBAICAgXEBtaW51cyAwLjVccEB9ClxzZXRsZW5ndGh7XGxlZnRtYXJnaW4gICB9ezNwY30KXHNldGxlbmd0aHtcbGVmdG1hcmdpbmkgIH17XGxlZnRtYXJnaW59ClxzZXRsZW5ndGh7XGxlZnRtYXJnaW5paSB9ezJlbX0KXHNldGxlbmd0aHtcbGVmdG1hcmdpbmlpaX17MS41ZW19ClxzZXRsZW5ndGh7XGxlZnRtYXJnaW5pdiB9ezEuMGVtfQpcc2V0bGVuZ3Roe1xsZWZ0bWFyZ2ludiAgfXswLjVlbX0KXGRlZlxAbGlzdGkgIHtcbGVmdG1hcmdpblxsZWZ0bWFyZ2luaX0KXGRlZlxAbGlzdGlpIHtcbGVmdG1hcmdpblxsZWZ0bWFyZ2luaWkKICAgICAgICAgICAgICBcbGFiZWx3aWR0aFxsZWZ0bWFyZ2luaWkKICAgICAgICAgICAgICBcYWR2YW5jZVxsYWJlbHdpZHRoLVxsYWJlbHNlcAogICAgICAgICAgICAgIFx0b3BzZXAgIDJccEAgXEBwbHVzIDFccEAgICAgXEBtaW51cyAwLjVccEAKICAgICAgICAgICAgICBccGFyc2VwICAxXHBAIFxAcGx1cyAwLjVccEAgXEBtaW51cyAwLjVccEAKICAgICAgICAgICAgICBcaXRlbXNlcCBccGFyc2VwfQpcZGVmXEBsaXN0aWlpe1xsZWZ0bWFyZ2luXGxlZnRtYXJnaW5paWkKICAgICAgICAgICAgICBcbGFiZWx3aWR0aFxsZWZ0bWFyZ2luaWlpCiAgICAgICAgICAgICAgXGFkdmFuY2VcbGFiZWx3aWR0aC1cbGFiZWxzZXAKICAgICAgICAgICAgICBcdG9wc2VwICAgIDFccEAgXEBwbHVzIDAuNVxwQCBcQG1pbnVzIDAuNVxwQAogICAgICAgICAgICAgIFxwYXJzZXAgICAgXHpACiAgICAgICAgICAgICAgXHBhcnRvcHNlcCAwLjVccEAgXEBwbHVzIDBccEAgXEBtaW51cyAwLjVccEAKICAgICAgICAgICAgICBcaXRlbXNlcCBcdG9wc2VwfQpcZGVmXEBsaXN0aXYge1xsZWZ0bWFyZ2luXGxlZnRtYXJnaW5pdgogICAgICAgICAgICAgIFxsYWJlbHdpZHRoXGxlZnRtYXJnaW5pdgogICAgICAgICAgICAgIFxhZHZhbmNlXGxhYmVsd2lkdGgtXGxhYmVsc2VwfQpcZGVmXEBsaXN0diAge1xsZWZ0bWFyZ2luXGxlZnRtYXJnaW52CiAgICAgICAgICAgICAgXGxhYmVsd2lkdGhcbGVmdG1hcmdpbnYKICAgICAgICAgICAgICBcYWR2YW5jZVxsYWJlbHdpZHRoLVxsYWJlbHNlcH0KXGRlZlxAbGlzdHZpIHtcbGVmdG1hcmdpblxsZWZ0bWFyZ2ludmkKICAgICAgICAgICAgICBcbGFiZWx3aWR0aFxsZWZ0bWFyZ2ludmkKICAgICAgICAgICAgICBcYWR2YW5jZVxsYWJlbHdpZHRoLVxsYWJlbHNlcH0KCiUgY3JlYXRlIHRpdGxlClxwcm92aWRlY29tbWFuZHtcbWFrZXRpdGxlfXt9ClxyZW5ld2NvbW1hbmR7XG1ha2V0aXRsZX17JQogIFxwYXIKICBcYmVnaW5ncm91cAogICAgXHJlbmV3Y29tbWFuZHtcdGhlZm9vdG5vdGV9e1xmbnN5bWJvbHtmb290bm90ZX19CiAgICAlIGZvciBwZXJmZWN0IGF1dGhvciBuYW1lIGNlbnRlcmluZwogICAgXHJlbmV3Y29tbWFuZHtcQG1ha2Vmbm1hcmt9e1xoYm94IHRvIFx6QHskXntcQHRoZWZubWFya30kXGhzc319CiAgICAlIFRoZSBmb290bm90ZS1tYXJrIHdhcyBvdmVybGFwcGluZyB0aGUgZm9vdG5vdGUtdGV4dCwKICAgICUgYWRkZWQgdGhlIGZvbGxvd2luZyB0byBmaXggdGhpcyBwcm9ibGVtICAgICAgICAgICAgICAgKE1LKQogICAgXGxvbmdcZGVmXEBtYWtlZm50ZXh0IyMxeyUKICAgICAgXHBhcmluZGVudCAxZW1cbm9pbmRlbnQKICAgICAgXGhib3ggdG8gMS44ZW17XGhzcyAkXG1AdGggXntcQHRoZWZubWFya30kfSMjMQogICAgfQogICAgXHRoaXNwYWdlc3R5bGV7ZW1wdHl9CiAgICBcQG1ha2V0aXRsZQogICAgXEB0aGFua3MKICAgIFxAbm90aWNlCiAgXGVuZGdyb3VwCiAgXGxldFxtYWtldGl0bGVccmVsYXgKICBcbGV0XHRoYW5rc1xyZWxheAp9CgolIHJ1bGVzIGZvciB0aXRsZSBib3ggYXQgdG9wIG9mIGZpcnN0IHBhZ2UKXG5ld2NvbW1hbmR7XEB0b3B0aXRsZWJhcn17CiAgXGhydWxlIGhlaWdodCA0XHBACiAgXHZza2lwIDAuMjVpbgogIFx2c2tpcCAtXHBhcnNraXAlCn0KXG5ld2NvbW1hbmR7XEBib3R0b210aXRsZWJhcn17CiAgXHZza2lwIDAuMjlpbgogIFx2c2tpcCAtXHBhcnNraXAKICBcaHJ1bGUgaGVpZ2h0IDFccEAKICBcdnNraXAgMC4wOWluJQp9CgolIGNyZWF0ZSB0aXRsZSAoaW5jbHVkZXMgYm90aCBhbm9ueW1pemVkIGFuZCBub24tYW5vbnltaXplZCB2ZXJzaW9ucykKXHByb3ZpZGVjb21tYW5ke1xAbWFrZXRpdGxlfXt9ClxyZW5ld2NvbW1hbmR7XEBtYWtldGl0bGV9eyUKICBcdmJveHslCiAgICBcaHNpemVcdGV4dHdpZHRoCiAgICBcbGluZXdpZHRoXGhzaXplCiAgICBcdnNraXAgMC4xaW4KICAgIFxAdG9wdGl0bGViYXIKICAgIFxjZW50ZXJpbmcKICAgIHtcTEFSR0VcYmYgXEB0aXRsZVxwYXJ9CiAgICBcQGJvdHRvbXRpdGxlYmFyCiAgICBcaWZAc3VibWlzc2lvbgogICAgICBcYmVnaW57dGFidWxhcn1bdF17Y31cYmZccnVsZXtcekB9ezI0XHBAfQogICAgICAgIEFub255bW91cyBBdXRob3IocykgXFwKICAgICAgICBBZmZpbGlhdGlvbiBcXAogICAgICAgIEFkZHJlc3MgXFwKICAgICAgICBcdGV4dHR0e2VtYWlsfSBcXAogICAgICBcZW5ke3RhYnVsYXJ9JQogICAgXGVsc2UKICAgICAgXGRlZlxBbmR7JQogICAgICAgIFxlbmR7dGFidWxhcn1caGZpbFxsaW5lYnJlYWtbMF1caGZpbCUKICAgICAgICBcYmVnaW57dGFidWxhcn1bdF17Y31cYmZccnVsZXtcekB9ezI0XHBAfVxpZ25vcmVzcGFjZXMlCiAgICAgIH0KICAgICAgXGRlZlxBTkR7JQogICAgICAgIFxlbmR7dGFidWxhcn1caGZpbFxsaW5lYnJlYWtbNF1caGZpbCUKICAgICAgICBcYmVnaW57dGFidWxhcn1bdF17Y31cYmZccnVsZXtcekB9ezI0XHBAfVxpZ25vcmVzcGFjZXMlCiAgICAgIH0KICAgICAgXGJlZ2lue3RhYnVsYXJ9W3Rde2N9XGJmXHJ1bGV7XHpAfXsyNFxwQH1cQGF1dGhvclxlbmR7dGFidWxhcn0lCiAgICBcZmkKICAgIFx2c2tpcCAwLjNpbiBcQG1pbnVzIDAuMWluCiAgfQp9CgolIGFkZCBjb25mZXJlbmNlIG5vdGljZSB0byBib3R0b20gb2YgZmlyc3QgcGFnZQpcbmV3Y29tbWFuZHtcZnR5cGVAbm90aWNlYm94fXs4fQpcbmV3Y29tbWFuZHtcQG5vdGljZX17JQogICUgZ2l2ZSBhIGJpdCBvZiBleHRyYSByb29tIGJhY2sgdG8gYXV0aG9ycyBvbiBmaXJzdCBwYWdlCiAgXGVubGFyZ2V0aGlzcGFnZXsyXGJhc2VsaW5lc2tpcH0lCiAgXEBmbG9hdHtub3RpY2Vib3h9W2JdJQogICAgXGZvb3Rub3Rlc2l6ZVxAbm90aWNlc3RyaW5nJQogIFxlbmRAZmxvYXQlCn0KCiUgYWJzdHJhY3Qgc3R5bGluZwpccmVuZXdlbnZpcm9ubWVudHthYnN0cmFjdH0lCnslCiAgXHZza2lwIDAuMDc1aW4lCiAgXGNlbnRlcmxpbmUlCiAge1xsYXJnZVxiZiBBYnN0cmFjdH0lCiAgXHZzcGFjZXswLjVleH0lCiAgXGJlZ2lue3F1b3RlfSUKfQp7CiAgXHBhciUKICBcZW5ke3F1b3RlfSUKICBcdnNraXAgMWV4JQp9CgolIGhhbmRsZSB0d2Vha3MgZm9yIGNhbWVyYS1yZWFkeSBjb3B5IHZzLiBzdWJtaXNzaW9uIGNvcHkKXGlmQHByZXByaW50CiAgXG5ld2NvbW1hbmR7XEBub3RpY2VzdHJpbmd9eyUKICAgIFByZXByaW50LiBVbmRlciByZXZpZXcuJQogIH0KXGVsc2UKICBcaWZAbmV1cmlwc2ZpbmFsCiAgICBcbmV3Y29tbWFuZHtcQG5vdGljZXN0cmluZ317JQogICAgICAoXEBuZXVyaXBzeWVhcikgXEB0aXRsZSAKICAgIH0KICBcZWxzZQogICAgXG5ld2NvbW1hbmR7XEBub3RpY2VzdHJpbmd9eyUKICAgICAoXEBuZXVyaXBzeWVhcikgXEB0aXRsZSAlCiAgICB9CgogICAgJSBoaWRlIHRoZSBhY2tub3dsZWRnZW1lbnRzCiAgICBcTmV3RW52aXJvbntoaWRlfXt9CiAgICBcbGV0XGFja1xoaWRlCiAgICBcbGV0XGVuZGFja1xlbmRoaWRlCgogICAgJSBsaW5lIG51bWJlcnMgZm9yIHN1Ym1pc3Npb24KICAgIFxSZXF1aXJlUGFja2FnZXtsaW5lbm99CiAgICBcbGluZW51bWJlcnMKCiAgICAlIGZpeCBpbmNvbXBhdGliaWxpdGllcyBiZXR3ZWVuIGxpbmVubyBhbmQgYW1zbWF0aCwgaWYgcmVxdWlyZWQsIGJ5CiAgICAlIHRyYW5zcGFyZW50bHkgd3JhcHBpbmcgbGluZW5vbWF0aCBlbnZpcm9ubWVudHMgYXJvdW5kIGFtc21hdGgKICAgICUgZW52aXJvbm1lbnRzCiAgICBcQXRCZWdpbkRvY3VtZW50eyUKICAgICAgXEBpZnBhY2thZ2Vsb2FkZWR7YW1zbWF0aH17JQogICAgICAgIFxuZXdjb21tYW5kKlxwYXRjaEFtc01hdGhFbnZpcm9ubWVudEZvckxpbmVub1sxXXslCiAgICAgICAgICBcZXhwYW5kYWZ0ZXJcbGV0XGNzbmFtZSBvbGQjMVxleHBhbmRhZnRlclxlbmRjc25hbWVcY3NuYW1lICMxXGVuZGNzbmFtZQogICAgICAgICAgXGV4cGFuZGFmdGVyXGxldFxjc25hbWUgb2xkZW5kIzFcZXhwYW5kYWZ0ZXJcZW5kY3NuYW1lXGNzbmFtZSBlbmQjMVxlbmRjc25hbWUKICAgICAgICAgIFxyZW5ld2Vudmlyb25tZW50eyMxfSUKICAgICAgICAgICAgICAgICAgICAgICAgICB7XGxpbmVub21hdGhcY3NuYW1lIG9sZCMxXGVuZGNzbmFtZX0lCiAgICAgICAgICAgICAgICAgICAgICAgICAge1xjc25hbWUgb2xkZW5kIzFcZW5kY3NuYW1lXGVuZGxpbmVub21hdGh9JQogICAgICAgIH0lCiAgICAgICAgXG5ld2NvbW1hbmQqXHBhdGNoQm90aEFtc01hdGhFbnZpcm9ubWVudHNGb3JMaW5lbm9bMV17JQogICAgICAgICAgXHBhdGNoQW1zTWF0aEVudmlyb25tZW50Rm9yTGluZW5veyMxfSUKICAgICAgICAgIFxwYXRjaEFtc01hdGhFbnZpcm9ubWVudEZvckxpbmVub3sjMSp9JQogICAgICAgIH0lCiAgICAgICAgXHBhdGNoQm90aEFtc01hdGhFbnZpcm9ubWVudHNGb3JMaW5lbm97ZXF1YXRpb259JQogICAgICAgIFxwYXRjaEJvdGhBbXNNYXRoRW52aXJvbm1lbnRzRm9yTGluZW5ve2FsaWdufSUKICAgICAgICBccGF0Y2hCb3RoQW1zTWF0aEVudmlyb25tZW50c0ZvckxpbmVub3tmbGFsaWdufSUKICAgICAgICBccGF0Y2hCb3RoQW1zTWF0aEVudmlyb25tZW50c0ZvckxpbmVub3thbGlnbmF0fSUKICAgICAgICBccGF0Y2hCb3RoQW1zTWF0aEVudmlyb25tZW50c0ZvckxpbmVub3tnYXRoZXJ9JQogICAgICAgIFxwYXRjaEJvdGhBbXNNYXRoRW52aXJvbm1lbnRzRm9yTGluZW5ve211bHRsaW5lfSUKICAgICAgfQogICAgICB7fQogICAgfQogIFxmaQpcZmkKCgpcZW5kaW5wdXQK"),e=>e.charCodeAt(0)),Wa=Object.freeze(Object.defineProperty({__proto__:null,default:Ca},Symbol.toStringTag,{value:"Module"})),ha=Uint8Array.from(atob("XGRvY3VtZW50Y2xhc3N7YXJ0aWNsZX0KCgolIGlmIHlvdSBuZWVkIHRvIHBhc3Mgb3B0aW9ucyB0byBuYXRiaWIsIHVzZSwgZS5nLjoKJSAgICAgXFBhc3NPcHRpb25zVG9QYWNrYWdle251bWJlcnMsIGNvbXByZXNzfXtuYXRiaWJ9CiUgYmVmb3JlIGxvYWRpbmcgbmV1cmlwc18yMDIzCgoKJSByZWFkeSBmb3Igc3VibWlzc2lvbgpcdXNlcGFja2FnZVtmaW5hbF17bmV1cmlwc30KCgolIHRvIGNvbXBpbGUgYSBwcmVwcmludCB2ZXJzaW9uLCBlLmcuLCBmb3Igc3VibWlzc2lvbiB0byBhclhpdiwgYWRkIGFkZCB0aGUKJSBbcHJlcHJpbnRdIG9wdGlvbjoKJSAgICAgXHVzZXBhY2thZ2VbcHJlcHJpbnRde25ldXJpcHNfMjAyM30KCgolIHRvIGNvbXBpbGUgYSBjYW1lcmEtcmVhZHkgdmVyc2lvbiwgYWRkIHRoZSBbZmluYWxdIG9wdGlvbiwgZS5nLjoKJSAgICAgXHVzZXBhY2thZ2VbZmluYWxde25ldXJpcHNfMjAyM30KCgolIHRvIGF2b2lkIGxvYWRpbmcgdGhlIG5hdGJpYiBwYWNrYWdlLCBhZGQgb3B0aW9uIG5vbmF0YmliOgolICAgIFx1c2VwYWNrYWdlW25vbmF0YmliXXtuZXVyaXBzXzIwMjN9CgoKXHVzZXBhY2thZ2VbdXRmOF17aW5wdXRlbmN9ICUgYWxsb3cgdXRmLTggaW5wdXQKXHVzZXBhY2thZ2VbVDFde2ZvbnRlbmN9ICAgICUgdXNlIDgtYml0IFQxIGZvbnRzClx1c2VwYWNrYWdle2h5cGVycmVmfSAgICAgICAlIGh5cGVybGlua3MKXHVzZXBhY2thZ2V7dXJsfSAgICAgICAgICAgICUgc2ltcGxlIFVSTCB0eXBlc2V0dGluZwpcdXNlcGFja2FnZXtib29rdGFic30gICAgICAgJSBwcm9mZXNzaW9uYWwtcXVhbGl0eSB0YWJsZXMKXHVzZXBhY2thZ2V7YW1zZm9udHN9ICAgICAgICUgYmxhY2tib2FyZCBtYXRoIHN5bWJvbHMKXHVzZXBhY2thZ2V7bmljZWZyYWN9ICAgICAgICUgY29tcGFjdCBzeW1ib2xzIGZvciAxLzIsIGV0Yy4KXHVzZXBhY2thZ2V7bWljcm90eXBlfSAgICAgICUgbWljcm90eXBvZ3JhcGh5Clx1c2VwYWNrYWdle3hjb2xvcn0gICAgICAgICAlIGNvbG9ycwpcdXNlcGFja2FnZXtncmFwaGljeH0KClxtYWtlYXRsZXR0ZXIKXGRlZlxtYXh3aWR0aHtcaWZkaW1cR2luQG5hdEB3aWR0aD5cbGluZXdpZHRoXGxpbmV3aWR0aFxlbHNlXEdpbkBuYXRAd2lkdGhcZml9ClxkZWZcbWF4aGVpZ2h0e1xpZmRpbVxHaW5AbmF0QGhlaWdodD5cdGV4dGhlaWdodFx0ZXh0aGVpZ2h0XGVsc2VcR2luQG5hdEBoZWlnaHRcZml9ClxtYWtlYXRvdGhlcgolIFNjYWxlIGltYWdlcyBpZiBuZWNlc3NhcnksIHNvIHRoYXQgdGhleSB3aWxsIG5vdCBvdmVyZmxvdyB0aGUgcGFnZQolIG1hcmdpbnMgYnkgZGVmYXVsdCwgYW5kIGl0IGlzIHN0aWxsIHBvc3NpYmxlIHRvIG92ZXJ3cml0ZSB0aGUgZGVmYXVsdHMKJSB1c2luZyBleHBsaWNpdCBvcHRpb25zIGluIFxpbmNsdWRlZ3JhcGhpY3Nbd2lkdGgsIGhlaWdodCwgLi4uXXt9ClxzZXRrZXlze0dpbn17d2lkdGg9XG1heHdpZHRoLGhlaWdodD1cbWF4aGVpZ2h0LGtlZXBhc3BlY3RyYXRpb30KJSBTZXQgZGVmYXVsdCBmaWd1cmUgcGxhY2VtZW50IHRvIGh0YnAKXG1ha2VhdGxldHRlcgpcZGVmXGZwc0BmaWd1cmV7aHRicH0KXG1ha2VhdG90aGVyCgokaWYoY3NsLXJlZnMpJApcbmV3bGVuZ3Roe1xjc2xoYW5naW5kZW50fQpcc2V0bGVuZ3Roe1xjc2xoYW5naW5kZW50fXsxLjVlbX0KXG5ld2xlbmd0aHtcY3NsbGFiZWx3aWR0aH0KXHNldGxlbmd0aHtcY3NsbGFiZWx3aWR0aH17M2VtfQpcbmV3bGVuZ3Roe1xjc2xlbnRyeXNwYWNpbmd1bml0fSAlIHRpbWVzIGVudHJ5LXNwYWNpbmcKXHNldGxlbmd0aHtcY3NsZW50cnlzcGFjaW5ndW5pdH17XHBhcnNraXB9ClxuZXdlbnZpcm9ubWVudHtDU0xSZWZlcmVuY2VzfVsyXSAlICMxIGhhbmdpbmctaWRlbnQsICMyIGVudHJ5IHNwYWNpbmcKIHslIGRvbid0IGluZGVudCBwYXJhZ3JhcGhzCiAgXHNldGxlbmd0aHtccGFyaW5kZW50fXswcHR9CiAgJSB0dXJuIG9uIGhhbmdpbmcgaW5kZW50IGlmIHBhcmFtIDEgaXMgMQogIFxpZm9kZCAjMQogIFxsZXRcb2xkcGFyXHBhcgogIFxkZWZccGFye1xoYW5naW5kZW50PVxjc2xoYW5naW5kZW50XG9sZHBhcn0KICBcZmkKICAlIHNldCBlbnRyeSBzcGFjaW5nCiAgXHNldGxlbmd0aHtccGFyc2tpcH17IzJcY3NsZW50cnlzcGFjaW5ndW5pdH0KIH0lCiB7fQpcdXNlcGFja2FnZXtjYWxjfQpcbmV3Y29tbWFuZHtcQ1NMQmxvY2t9WzFdeyMxXGhmaWxsXGJyZWFrfQpcbmV3Y29tbWFuZHtcQ1NMTGVmdE1hcmdpbn1bMV17XHBhcmJveFt0XXtcY3NsbGFiZWx3aWR0aH17IzF9fQpcbmV3Y29tbWFuZHtcQ1NMUmlnaHRJbmxpbmV9WzFde1xwYXJib3hbdF17XGxpbmV3aWR0aCAtIFxjc2xsYWJlbHdpZHRofXsjMX1cYnJlYWt9ClxuZXdjb21tYW5ke1xDU0xJbmRlbnR9WzFde1xoc3BhY2V7XGNzbGhhbmdpbmRlbnR9IzF9CiRlbmRpZiQKXHByb3ZpZGVjb21tYW5ke1x0aWdodGxpc3R9eyUKICBcc2V0bGVuZ3Roe1xpdGVtc2VwfXswcHR9XHNldGxlbmd0aHtccGFyc2tpcH17MHB0fX0KXHRpdGxleyR0aXRsZSR9CgoKJSBJdGVyYXRlIHRocm91Z2ggdGhlIGF1dGhvcnMgZXhjZXB0IGxhc3QgdG8gYWRkIFxBbmQuIAoKXGF1dGhvcnslCiRmb3IoYXV0aG9ycy9hbGxidXRsYXN0KSQKICAkYXV0aG9ycy5uYW1lJFxcJGF1dGhvcnMuYWZmaWxpYXRpb24kXFwkYXV0aG9ycy5pbnN0aXR1dGlvbiRcXCRhdXRob3JzLmVtYWlsJFxcJGF1dGhvcnMuYWRkcmVzcyQgXEFuZAokZW5kZm9yJAokZm9yKGF1dGhvcnMvbGFzdCkkCiAgJGF1dGhvcnMubmFtZSRcXCRhdXRob3JzLmFmZmlsaWF0aW9uJFxcJGF1dGhvcnMuaW5zdGl0dXRpb24kXFwkYXV0aG9ycy5lbWFpbCRcXCRhdXRob3JzLmFkZHJlc3MkCiRlbmRmb3IkCn0KCiUgXGF1dGhvcnslCiUgICBEYXZpZCBTLn5IaXBwb2NhbXB1cyBcXAolICAgRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlXFwKJSAgIENyYW5iZXJyeS1MZW1vbiBVbml2ZXJzaXR5XFwKJSAgIFBpdHRzYnVyZ2gsIFBBIDE1MjEzIFxcCiUgICBcdGV4dHR0e2hpcHBvQGNzLmNyYW5iZXJyeS1sZW1vbi5lZHV9IFxcCiUgICAlIGV4YW1wbGVzIG9mIG1vcmUgYXV0aG9ycwolICAgJSBcQW5kCiUgICAlIENvYXV0aG9yIFxcCiUgICAlIEFmZmlsaWF0aW9uIFxcCiUgICAlIEFkZHJlc3MgXFwKJSAgICUgXHRleHR0dHtlbWFpbH0gXFwKJSAgICUgXEFORAolICAgJSBDb2F1dGhvciBcXAolICAgJSBBZmZpbGlhdGlvbiBcXAolICAgJSBBZGRyZXNzIFxcCiUgICAlIFx0ZXh0dHR7ZW1haWx9IFxcCiUgICAlIFxBbmQKJSAgICUgQ29hdXRob3IgXFwKJSAgICUgQWZmaWxpYXRpb24gXFwKJSAgICUgQWRkcmVzcyBcXAolICAgJSBcdGV4dHR0e2VtYWlsfSBcXAolICAgJSBcQW5kCiUgICAlIENvYXV0aG9yIFxcCiUgICAlIEFmZmlsaWF0aW9uIFxcCiUgICAlIEFkZHJlc3MgXFwKJSAgICUgXHRleHR0dHtlbWFpbH0gXFwKJSB9CgoKXGJlZ2lue2RvY3VtZW50fQoKClxtYWtldGl0bGUKCgpcYmVnaW57YWJzdHJhY3R9CiAgJGlmKGFic3RyYWN0KSQKICAkYWJzdHJhY3QkCiAgJGVsc2UkCiAgQWRkIHlvdXIgYWJzdHJhY3QgYXQgdGhlIGJlZ2lubmluZyBvZiB5b3VyIG1hcmtkb3duIGZpbGUgbGlrZSB0aGlzIAogIFxiZWdpbnt2ZXJiYXRpbX0KICAtLS0gCiAgdGl0bGU6ICJZb3VyIFRpdGxlIiAKICBhYnN0cmFjdDogInlvdXIgYWJzdHJhY3QgaGVyZSIKICBhdXRob3JzOgogIC0gbmFtZTogTGVvbmFyZG8gVi4gQ2FzdG9yaW5hCiAgICBhZmZpbGlhdGlvbjogU2Nob29sIG9mIEluZm9ybWF0aWNzCiAgICBpbnN0aXR1dGlvbjogVW5pdmVyc2l0eSBvZiBFZGluYnVyZ2gKICAgIGVtYWlsOiBqdXN0YW5lbWFpbEBkb21haW4uZXh0CiAgICBhZGRyZXNzOiBFZGluYnVyZ2gKICAtIG5hbWU6IENvYXV0aG9yCiAgICBhZmZpbGlhdGlvbjogQWZmaWxpYXRpb24KICAgIGluc3RpdHV0aW9uOiBJbnN0aXR1dGlvbgogICAgZW1haWw6IGNvYXV0aG9yQGV4YW1wbGUuY29tCiAgICBhZGRyZXNzOiBBZGRyZXNzCiAgLS0tCiAgXGVuZHt2ZXJiYXRpbX0KICBUaGlzIGlzIGNhbGxlZCBZQU1MIGZyb250bWF0dGVyLiBJZiB5b3Ugc2V0IHlvdXIgYWJzdHJhY3QgY29ycmVjdGx5IHlvdSBzaG91bGQgbm90IHNlZSB0aGlzIG1lc3NhZ2UuCiAgJGVuZGlmJApcZW5ke2Fic3RyYWN0fQoKCiRib2R5JAoKJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlCgoKXGVuZHtkb2N1bWVudH0="),e=>e.charCodeAt(0)),pa=Object.freeze(Object.defineProperty({__proto__:null,default:ha},Symbol.toStringTag,{value:"Module"})),Ml=(e,l)=>[e,Object.entries(l).map(([t,n])=>[t.substring(e.length+3),n.default])],Ol=[Ml("lua",Object.assign({"../lua/citefilter.lua":na,"../lua/markdown+hugo.lua":ia,"../lua/markdown.lua":oa,"../lua/math_block.lua":ra,"../lua/pdf.lua":ga,"../lua/polyfill.lua":Za,"../lua/url.lua":ua})),Ml("textemplate",Object.assign({"../textemplate/dissertation.tex":Ia,"../textemplate/neurips.sty":Wa,"../textemplate/neurips.tex":pa}))];class Xa extends Ie.Plugin{constructor(l,t){super(l,t),this.lang=Gn.current,this.saveSettings=Ie.debounce(this.saveSettings.bind(this),1e3,!0)}async onload(){await this.releaseResources(),await this.loadSettings();const{lang:l}=this;this.addSettingTab(new ta(this)),this.addCommand({id:"obsidian-enhancing-export:export",name:l.exportToOo,icon:"document",callback:()=>{const t=this.app.workspace.getActiveFile();t?Qt.show(this,t):new Ie.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 n=this.settings.items.find(c=>c.name===this.settings.lastExportType);if(n){await Vn(this,t,de(this.settings.lastExportDirectory),void 0,n);return}}Qt.show(this,t)}else new Ie.Notice(l.pleaseOpenFile,2e3)}}),this.registerEvent(this.app.workspace.on("file-menu",(t,n)=>{n instanceof Ie.TFile&&t.addItem(c=>{c.setTitle(l.exportToOo).setIcon("document").onClick(()=>{Qt.show(this,n)})}).addSeparator()}))}async resetSettings(){this.settings={...JSON.parse(JSON.stringify(Le)),lastExportDirectory:this.settings.lastExportDirectory},await this.saveSettings()}async loadSettings(){const l=Object.assign({},Le,await this.loadData());l.items.forEach(t=>{Object.assign(t,Object.assign({},Le.items.find(n=>n.name===t.name)??{},t))});for(const t of Le.items)l.items.every(n=>n.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 n=Le.items.find(c=>c.name===t.name);n&&Object.keys(t).forEach(c=>{c!=="name"&&JSON.stringify(t[c])===JSON.stringify(n[c])&&delete t[c]})}),l.env)for(const t of Object.keys(l.env)){const n=l.env[t];if(JSON.stringify(n)===JSON.stringify(De[t])){delete l.env[t];continue}const c=de(De,t);for(const[i,o]of Object.entries(n))o===c[i]&&delete n[i];Object.keys(n).length===0&&delete l.env[t]}await this.saveData(l)}async releaseResources(){const{adapter:l}=this.app.vault;for(const[t,n]of Ol){const c=ae.join(this.manifest.dir,t);await l.mkdir(c);for(const[i,o]of n){const s=ae.join(c,i);await l.writeBinary(s,o)}}Ol.length=0}}exports.default=Xa;