pup-recorder 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4 @@
1
+ import'source-map-support/register.js';import {Log}from'node-av';import {AV_LOG_ERROR,AV_LOG_WARNING}from'node-av/constants';import {createRequire}from'module';import {dirname,join}from'path';import m from'zod';import {rmSync}from'fs';import {mkdtemp}from'fs/promises';import {tmpdir,platform}from'os';import {HardwareContext}from'node-av/api';import {spawn}from'child_process';import Ue from'tree-kill';import {EventEmitter}from'events';var be=Object.create;var L=Object.defineProperty;var we=Object.getOwnPropertyDescriptor;var q=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),E=t=>{throw TypeError(t)};var Y=(t,e,r)=>e in t?L(t,e,{enumerable:true,configurable:true,writable:true,value:r}):t[e]=r;var Q=t=>[,,,be(null)],X=["class","method","getter","setter","accessor","field","value","get","set"],C=t=>t!==void 0&&typeof t!="function"?E("Function expected"):t,ve=(t,e,r,o,n)=>({kind:X[t],name:e,metadata:o,addInitializer:s=>r._?E("Already initialized"):n.push(C(s||null))}),M=(t,e)=>Y(e,q("metadata"),t[3]),Z=(t,e,r,o)=>{for(var n=0,s=t[e>>1],l=s&&s.length;n<l;n++)s[n].call(r);return o},_=(t,e,r,o,n,s)=>{var i,p,y,w,a=e&7,T=false,u=false,x=2,P=X[a+5],fe=t[x]||(t[x]=[]),b=((n=n.prototype),we(n,r));for(var D=o.length-1;D>=0;D--)y=ve(a,r,p={},t[3],fe),(y.static=T,y.private=u,w=y.access={has:d=>r in d},(w.get=d=>d[r]),a>2),i=(0, o[D])(b[P],y),p._=1,C(i)&&(b[P]=i);return b&&L(n,r,b),n},ee=(t,e,r)=>Y(t,e+"",r);var re=class{_written=0;_shown=false;_total;_out;_tty;_showCount;constructor(e){this._total=e.total,this._out=e.out,this._tty=!!e.out.isTTY,this._showCount=e.showCount??false;}get total(){return this._total}update(e){this._written=Math.min(this._total,Math.max(0,e)),this.render();}updatePercent(e){this.update(Math.round(e/100*this._total));}clear(){this._tty&&this._shown&&this._out.write("\r\x1B[2K");}redraw(){this.render();}log(e){this.clear(),this._out.write(`${e}
2
+ `),this.redraw();}finish(e){this.clear(),this._out.write(`${e}
3
+ `),this._shown=false;}render(){if(!this._tty||this._written===0&&!this._shown)return;let e=this._total>0?this._written/this._total:0,r=Math.round(e*40),o="#".repeat(r)+"-".repeat(40-r),n=Math.round(e*100),s=this._showCount?`${this._written}/${this._total} (${n}%)`:`${n}%`;this._out.write(`\r[${o}] ${s}`),this._shown=true;}};function ze(t){let e=r=>(...o)=>{t.clear(),r(...o),t.redraw();};return {debug:e(console.debug),info:e(console.info),warn:e(console.warn),error:e(console.error)}}function te(t,e,r){try{return e(process.env[t])}catch{return r}}function oe(t){if(typeof t=="number")return t;let e=Number(t);if(Number.isNaN(e))throw new Error(`Value ${t} is not a valid number`);return e}var _e=createRequire(import.meta.url),I=te("PUP_LOG_LEVEL",oe,2),G=dirname(_e.resolve("pup-recorder/package.json")),ne=join(G,"dist","app.cjs");join(G,"dist","runtime","audio_preload.cjs");join(G,"dist","runtime","iframe_preload.cjs");var F="<pup@debug>",U="<pup@info>",N="<pup@warn>",H="<pup@error>",W="<pup@fatal>";function A(t,e){return function(...r){let o=r.map(n=>n instanceof Error?n.stack??String(n):n);return t.call(this,...o)}}var se,ie,ae,le,pe,k;pe=[A],le=[A],ae=[A],ie=[A],se=[A];var v=class{constructor(e=I){this._level=e;Z(k,5,this);ee(this,"_impl");this.impl=console;}_level;get level(){return this._level}set level(e){this._level=e,this.impl=this._impl??console;}get impl(){return this._impl}set impl(e){let r=e.debug??console.debug,o=e.info??console.info,n=e.warn??console.warn,s=e.error??console.error,l=this._level;this._impl={debug:l>=3?r:void 0,info:l>=2?o:void 0,warn:l>=1?n:void 0,error:l>=0?s:void 0};}debug(...e){this.impl?.debug?.(F,...e);}info(...e){this.impl?.info?.(U,...e);}warn(...e){this.impl?.warn?.(N,...e);}error(...e){this.impl?.error?.(H,...e);}fatal(...e){this.impl?.error?.(W,...e),process.exit(1);}dispatch(e){let r=e.trimEnd();r.startsWith(F)?this.debug(r.slice(F.length+1)):r.startsWith(U)?this.info(r.slice(U.length+1)):r.startsWith(N)?this.warn(r.slice(N.length+1)):r.startsWith(H)?this.error(r.slice(H.length+1)):this.info(r);}attach(e,r){return new Promise((o,n)=>{this.debug(`${r}.attach`);let s="",l=i=>{let p=i.toString();p.startsWith(W)?s+=p.slice(W.length+1):this.dispatch(p);};e.stderr?.on("data",l),e.stdout?.on("data",l),e.on("error",i=>{s+=i.message,e.kill();}).once("close",(i,p)=>{i||p||s?(s||=`command failed: ${e.spawnargs.join(" ")}`,this.debug(`${r}.close`,{code:i,signal:p,fatal:s}),n(new Error(s))):(this.debug(`${r}.close`),o());}).on("unhandledRejection",i=>{this.error(`${r}.unhandled`,i);}).on("uncaughtExceptionMonitor",i=>{this.error(`${r}.unhandled`,i);});})}};k=Q(),_(k,1,"debug",pe,v),_(k,1,"info",le,v),_(k,1,"warn",ae,v),_(k,1,"error",ie,v),_(k,1,"fatal",se,v),M(k,v);var c=new v;Log.setCallback((t,e)=>{let r=e.trimEnd();r&&(t<=AV_LOG_ERROR?c.error(r):t<=AV_LOG_WARNING&&c.warn(r));});function hr(t,e){return (...r)=>{try{let o=t(...r);return o instanceof Promise?o.catch(()=>e):o}catch{return e}}}var Ae=1920,Ie=1080,Re=30,De=5,Oe=10,Le="out/html.mp4,out/html.webm",vr=m.object({duration:m.number().describe("Duration in seconds"),width:m.number().describe("Video width"),height:m.number().describe("Video height"),fps:m.number().describe("Frames per second"),withAudio:m.boolean().describe("Capture and encode audio"),outFile:m.string().describe("Comma-separated output paths; extension (.mp4/.webm) selects encoder"),useInnerProxy:m.boolean().describe("Use bilibili inner proxy for resource access"),deterministic:m.boolean().describe("Render by frame rather than recording"),disableGpu:m.boolean().describe("Disable GPU rendering, may reduce performance but increase stability"),disableHwCodec:m.boolean().describe("Disable hardware video encoder (NVENC/VideoToolbox), use software x265"),windowTolerant:m.boolean().describe("Fall back to dom-ready if warmup load times out"),windowTimeout:m.number().describe("Window load timeout in seconds")}),ce={width:Ae,height:Ie,fps:Re,duration:De,outFile:Le,withAudio:false,useInnerProxy:false,deterministic:false,disableGpu:false,disableHwCodec:false,windowTolerant:false,windowTimeout:Oe};var $e="[HWAccel]";async function Se(){let t=HardwareContext.auto(),e=t!==null;return t?.dispose(),e}var ue=Se().then(t=>(c.debug($e,"gpu:",t),t));async function de(t){let e=["no-sandbox","disable-dev-shm-usage","disable-web-security","disable-site-isolation-trials","ignore-certificate-errors","disable-blink-features=AutomationControlled","mute-audio","autoplay-policy=no-user-gesture-required","disable-extensions","deny-permission-prompts","use-mock-keychain","force-device-scale-factor=1","force-color-profile=srgb","ignore-gpu-blocklist","use-gl=angle","deterministic-mode","enable-begin-frame-control","disable-new-content-rendering-timeout","run-all-compositor-stages-before-draw","disable-threaded-animation","disable-threaded-scrolling","disable-checker-imaging","disable-image-animation-resync","enable-surface-synchronization","font-render-hinting=none","disable-background-networking","js-flags=--max-old-space-size=512","renderer-process-limit=1","num-raster-threads=2","disable-background-timer-throttling","disable-renderer-backgrounding","disable-backgrounding-occluded-windows","enable-logging=stderr"];I>=3?e.push("log-level=0","v=1"):e.push("log-level=3");let r=["FontationBackend"];if(!(await ue&&!t))e.push("use-angle=swiftshader","enable-unsafe-swiftshader");else {e.push("disable-gpu-sandbox","enable-unsafe-webgpu");let n=platform();n==="darwin"?e.push("use-angle=metal"):n==="win32"?e.push("use-angle=d3d11"):(e.push("use-angle=vulkan","disable-vulkan-surface"),r.push("Vulkan"));}return e.push(`enable-features=${r.join(",")}`),e}var j="--pup-priv-args";function Mr(){let t=process.argv,e=t.find(o=>o.startsWith(j));if(!e)return c.debug("procargv",t),process.argv;let r=["exec",...t.slice(-1)];return e=Buffer.from(e.split("=")[1],"base64").toString(),r.push(...JSON.parse(e)),c.debug("pupargs",r),r}function me(t,e){let r=t.split(" ").filter(i=>i.length),[o,...n]=r;if(!o)throw new Error("empty command");let s=spawn(o,n,{stdio:"inherit",...e}),l=false;return {process:s,wait:c.attach(s,o),get killed(){return l},kill(){if(l)return;l=true;let i=s.pid;i?Ue(i,"SIGKILL"):s.kill("SIGKILL");}}}async function Be(t){return [...await de(t),"headless=new"]}var ge="[Electron]";async function he({args:t}){let{default:e}=await import('electron'),r=await Be(t.includes("--disable-gpu")),o=await mkdtemp(join(tmpdir(),"pup-profile-")),n=r.map(p=>`--${p}`);n.push(`--user-data-dir=${o}`),n.push(`${j}=${Buffer.from(JSON.stringify(t)).toString("base64")}`);let s=[e,...n,ne].join(" ");c.debug(ge,s);let l={...process.env,RUST_BACKTRACE:"full"},i=me(s,{stdio:["ignore","pipe","pipe","ipc"],env:l});return i.process.once("exit",()=>{try{rmSync(o,{recursive:!0,force:!0});}catch(p){c.warn(ge,"profile cleanup failed:",p);}}),i}var R=class extends EventEmitter{constructor(e){super(),e.on("message",r=>{let o=r;switch(o.type){case "console":{this.emit("console",o.level,o.message);break}case "progress":{this.emit("progress",o.value);break}case "done":{this.emit("done",o.payload);break}case "error":{this.emit("error",new Error(o.error));break}}}),e.once("exit",r=>this.emit("close",r));}};var B="[pup]";async function Ke(t,e){c.debug(B,"runPupApp",t,e);let r=[t,"--width",`${e.width}`,"--height",`${e.height}`,"--fps",`${e.fps}`,"--duration",`${e.duration}`,"--window-timeout",`${e.windowTimeout}`,"--out-file",`${e.outFile}`];return e.withAudio&&r.push("--with-audio"),e.useInnerProxy&&r.push("--use-inner-proxy"),e.deterministic&&r.push("--deterministic"),e.disableGpu&&r.push("--disable-gpu"),e.disableHwCodec&&r.push("--disable-hw-codec"),e.windowTolerant&&r.push("--window-tolerant"),he({args:r})}var f=ce;async function rt(t,e){c.debug(B,"pup",t,e);let{signal:r}=e;r?.throwIfAborted();let o=e.outFile??f.outFile,n={width:e.width??f.width,height:e.height??f.height,fps:e.fps??f.fps,duration:e.duration??f.duration,withAudio:e.withAudio??f.withAudio,useInnerProxy:e.useInnerProxy??f.useInnerProxy,deterministic:e.deterministic??f.deterministic,disableGpu:e.disableGpu??f.disableGpu,disableHwCodec:e.disableHwCodec??f.disableHwCodec,windowTolerant:e.windowTolerant??f.windowTolerant,windowTimeout:e.windowTimeout??f.windowTimeout,outFile:o},s=performance.now(),l=0,i=w=>{l=w,e.onProgress?.(w);},p=await Ke(t,n),y=()=>{p.process.send?.({type:"cancel",reason:String(r?.reason??"abort")}),setTimeout(()=>p.kill(),5e3);};r?.addEventListener("abort",y,{once:true});try{let w=new Promise((T,u)=>{new R(p.process).on("close",x=>{let P=JSON.stringify({source:t,progress:l,code:x,killed:p.killed});u(new Error(`crashed: ${P}`));}).on("progress",i).on("console",(x,P)=>e.onConsole?.(x,P)).on("done",T).on("error",u);});i(0);let[a]=await Promise.all([w,p.wait]);return i(100),c.debug(B,`done ${o} in ${Math.round(performance.now()-s)}ms`),{...a,options:n}}catch(w){throw p.kill(),r?.throwIfAborted(),w}finally{r?.removeEventListener("abort",y);}}export{re as a,ze as b,te as c,oe as d,v as e,c as f,hr as g,Mr as h,Ae as i,Ie as j,Re as k,De as l,Oe as m,vr as n,ce as o,rt as p};//# sourceMappingURL=chunk-XRCHOYPZ.js.map
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlL2NsaV91aS50cyIsIi4uL3NyYy9iYXNlL2Vudi50cyIsIi4uL3NyYy9iYXNlL3BhcnNlci50cyIsIi4uL3NyYy9iYXNlL2NvbnN0YW50cy50cyIsIi4uL3NyYy9iYXNlL2xvZ2dpbmcudHMiLCIuLi9zcmMvYmFzZS9ub2Vyci50cyIsIi4uL3NyYy9yZW5kZXJlci9zY2hlbWEudHMiLCIuLi9zcmMvYmFzZS9od2FjY2VsLnRzIiwiLi4vc3JjL2Jhc2UvY2hyb21pdW0udHMiLCIuLi9zcmMvYmFzZS9wcm9jZXNzLnRzIiwiLi4vc3JjL3JlbmRlcmVyL2VsZWN0cm9uLnRzIiwiLi4vc3JjL3JlbmRlcmVyL2lwYy50cyIsIi4uL3NyYy9wdXAudHMiXSwibmFtZXMiOlsiUHJvZ3Jlc3NCYXIiLCJvcHRzIiwid3JpdHRlbiIsInBjdCIsImxpbmUiLCJyYXRpbyIsImZpbGxlZCIsImJhciIsInN1ZmZpeCIsImJhckxvZ2dlciIsIndyYXAiLCJmbiIsImFyZ3MiLCJwZW52IiwibmFtZSIsInBhcnNlciIsImRlZmF1bHRWYWx1ZSIsInBhcnNlTnVtYmVyIiwieCIsIm51bSIsInJlcXVpcmUiLCJjcmVhdGVSZXF1aXJlIiwicHVwTG9nTGV2ZWwiLCJwdXBQa2dSb290IiwiZGlybmFtZSIsInB1cEFwcCIsImpvaW4iLCJERUJVRyIsIklORk8iLCJXQVJOIiwiRVJST1IiLCJGQVRBTCIsInN0YWNrSG9vayIsInRhcmdldCIsIl9jb250ZXh0IiwibWVzc2FnZXMiLCJwcm9jZXNzZWQiLCJtc2ciLCJfZmF0YWxfZGVjIiwiX2Vycm9yX2RlYyIsIl93YXJuX2RlYyIsIl9pbmZvX2RlYyIsIl9kZWJ1Z19kZWMiLCJfaW5pdCIsIkxvZ2dlciIsIl9sZXZlbCIsIl9fcnVuSW5pdGlhbGl6ZXJzIiwiX19wdWJsaWNGaWVsZCIsInZhbHVlIiwiZGVidWciLCJpbmZvIiwid2FybiIsImVycm9yIiwibHYiLCJtZXNzYWdlIiwicHJvYyIsInJlc29sdmUiLCJyZWplY3QiLCJmYXRhbCIsImRpc3BhdGNoIiwiZGF0YSIsImVyciIsImNvZGUiLCJzaWduYWwiLCJyZWFzb24iLCJfX2RlY29yYXRvclN0YXJ0IiwiX19kZWNvcmF0ZUVsZW1lbnQiLCJfX2RlY29yYXRvck1ldGFkYXRhIiwibG9nZ2VyIiwiTG9nIiwibGV2ZWwiLCJBVl9MT0dfRVJST1IiLCJBVl9MT0dfV0FSTklORyIsIm5vZXJyIiwicmV0IiwiREVGQVVMVF9XSURUSCIsIkRFRkFVTFRfSEVJR0hUIiwiREVGQVVMVF9GUFMiLCJERUZBVUxUX0RVUkFUSU9OIiwiREVGQVVMVF9XSU5ET1dfVElNRU9VVCIsIkRFRkFVTFRfT1VUX0ZJTEUiLCJyZW5kZXJTY2hlbWEiLCJ6IiwiZGVmYXVsdFJlbmRlck9wdGlvbnMiLCJUQUciLCJkZXRlY3RHUFVEcml2ZXIiLCJodyIsIkhhcmR3YXJlQ29udGV4dCIsInJlc3VsdCIsImNhbklVc2VHUFUiLCJjaHJvbWl1bU9wdGlvbnMiLCJkaXNhYmxlR3B1IiwiZmVhdHVyZXMiLCJwbGF0IiwicGxhdGZvcm0iLCJQVVBfQVJHU19LRVkiLCJwYXJncyIsImFyZ3YiLCJwcml2IiwiYXJnIiwiZXhlYyIsImNtZCIsIm9wdGlvbnMiLCJwYXJ0cyIsInMiLCJjb21tYW5kIiwic3Bhd24iLCJraWxsZWQiLCJwaWQiLCJ0cmVlS2lsbCIsImVsZWN0cm9uT3B0cyIsInJ1bkVsZWN0cm9uQXBwIiwiZWxlY3Ryb24iLCJwcm9maWxlRGlyIiwibWtkdGVtcCIsInRtcGRpciIsImVsZWN0cm9uQXJncyIsImEiLCJlbnYiLCJoYW5kbGUiLCJybVN5bmMiLCJlIiwiSXBjUmVhZGVyIiwiRXZlbnRFbWl0dGVyIiwiY2hpbGQiLCJyYXciLCJjIiwicnVuUHVwQXBwIiwic291cmNlIiwicmVuZGVyIiwiZCIsInB1cCIsIm91dEZpbGUiLCJyZW5kZXJPcHRzIiwidDAiLCJwcm9ncmVzcyIsInRpY2siLCJwIiwib25BYm9ydCIsImwiLCJtIiwic3VtbWFyeSJdLCJtYXBwaW5ncyI6InU0Q0FZTyxJ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UFouanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzA1LzI2LlxuXG5pbXBvcnQgdHlwZSB7IExvZ2dlckxpa2UgfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5cbmNvbnN0IEJBUl9XSURUSCA9IDQwO1xuXG5pbnRlcmZhY2UgQmFyT3B0aW9ucyB7XG4gIHRvdGFsOiBudW1iZXI7XG4gIG91dDogTm9kZUpTLldyaXRlU3RyZWFtO1xuICBzaG93Q291bnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NCYXIge1xuICBwcml2YXRlIF93cml0dGVuID0gMDtcbiAgcHJpdmF0ZSBfc2hvd24gPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdG90YWw6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3V0OiBOb2RlSlMuV3JpdGVTdHJlYW07XG4gIHByaXZhdGUgcmVhZG9ubHkgX3R0eTogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2hvd0NvdW50OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKG9wdHM6IEJhck9wdGlvbnMpIHtcbiAgICB0aGlzLl90b3RhbCA9IG9wdHMudG90YWw7XG4gICAgdGhpcy5fb3V0ID0gb3B0cy5vdXQ7XG4gICAgdGhpcy5fdHR5ID0gISFvcHRzLm91dC5pc1RUWTtcbiAgICB0aGlzLl9zaG93Q291bnQgPSBvcHRzLnNob3dDb3VudCA/PyBmYWxzZTtcbiAgfVxuXG4gIGdldCB0b3RhbCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl90b3RhbDtcbiAgfVxuXG4gIHVwZGF0ZSh3cml0dGVuOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl93cml0dGVuID0gTWF0aC5taW4odGhpcy5fdG90YWwsIE1hdGgubWF4KDAsIHdyaXR0ZW4pKTtcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgdXBkYXRlUGVyY2VudChwY3Q6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlKE1hdGgucm91bmQoKHBjdCAvIDEwMCkgKiB0aGlzLl90b3RhbCkpO1xuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3R0eSAmJiB0aGlzLl9zaG93bikge1xuICAgICAgdGhpcy5fb3V0LndyaXRlKFwiXFxyXFx4MWJbMktcIik7XG4gICAgfVxuICB9XG5cbiAgcmVkcmF3KCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICBsb2cobGluZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhcigpO1xuICAgIHRoaXMuX291dC53cml0ZShgJHtsaW5lfVxcbmApO1xuICAgIHRoaXMucmVkcmF3KCk7XG4gIH1cblxuICBmaW5pc2gobGluZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhcigpO1xuICAgIHRoaXMuX291dC53cml0ZShgJHtsaW5lfVxcbmApO1xuICAgIHRoaXMuX3Nob3duID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3R0eSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5fd3JpdHRlbiA9PT0gMCAmJiAhdGhpcy5fc2hvd24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmF0aW8gPSB0aGlzLl90b3RhbCA+IDAgPyB0aGlzLl93cml0dGVuIC8gdGhpcy5fdG90YWwgOiAwO1xuICAgIGNvbnN0IGZpbGxlZCA9IE1hdGgucm91bmQocmF0aW8gKiBCQVJfV0lEVEgpO1xuICAgIGNvbnN0IGJhciA9IFwiI1wiLnJlcGVhdChmaWxsZWQpICsgXCItXCIucmVwZWF0KEJBUl9XSURUSCAtIGZpbGxlZCk7XG4gICAgY29uc3QgcGN0ID0gTWF0aC5yb3VuZChyYXRpbyAqIDEwMCk7XG4gICAgY29uc3Qgc3VmZml4ID0gdGhpcy5fc2hvd0NvdW50ID8gYCR7dGhpcy5fd3JpdHRlbn0vJHt0aGlzLl90b3RhbH0gKCR7cGN0fSUpYCA6IGAke3BjdH0lYDtcbiAgICB0aGlzLl9vdXQud3JpdGUoYFxcclske2Jhcn1dICR7c3VmZml4fWApO1xuICAgIHRoaXMuX3Nob3duID0gdHJ1ZTtcbiAgfVxufVxuXG4vLyBBcm91bmQgZWFjaCBjb25zb2xlLiogY2FsbCwgY2xlYXIgdGhlIGJhciBsaW5lIHRoZW4gcmVkcmF3IOKAlCBrZWVwcyBuYXRpdmUgY29uc29sZSBjb2xvcmluZyBpbnRhY3QuXG5leHBvcnQgZnVuY3Rpb24gYmFyTG9nZ2VyKGJhcjogUHJvZ3Jlc3NCYXIpOiBMb2dnZXJMaWtlIHtcbiAgY29uc3Qgd3JhcCA9XG4gICAgPFQgZXh0ZW5kcyAoLi4uYTogdW5rbm93bltdKSA9PiB2b2lkPihmbjogVCkgPT5cbiAgICAoLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gICAgICBiYXIuY2xlYXIoKTtcbiAgICAgIGZuKC4uLmFyZ3MpO1xuICAgICAgYmFyLnJlZHJhdygpO1xuICAgIH07XG4gIHJldHVybiB7XG4gICAgZGVidWc6IHdyYXAoY29uc29sZS5kZWJ1ZyksXG4gICAgaW5mbzogd3JhcChjb25zb2xlLmluZm8pLFxuICAgIHdhcm46IHdyYXAoY29uc29sZS53YXJuKSxcbiAgICBlcnJvcjogd3JhcChjb25zb2xlLmVycm9yKSxcbiAgfTtcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMjUuXG5cbmV4cG9ydCB0eXBlIEVudlBhcnNlcjxUPiA9ICh2YWx1ZTogdW5rbm93bikgPT4gVDtcblxuZXhwb3J0IGZ1bmN0aW9uIHBlbnY8VD4obmFtZTogc3RyaW5nLCBwYXJzZXI6IEVudlBhcnNlcjxUPiwgZGVmYXVsdFZhbHVlOiBUKTogVDtcbmV4cG9ydCBmdW5jdGlvbiBwZW52PFQ+KG5hbWU6IHN0cmluZywgcGFyc2VyOiBFbnZQYXJzZXI8VD4sIGRlZmF1bHRWYWx1ZT86IFQpOiBUIHwgdW5kZWZpbmVkO1xuZXhwb3J0IGZ1bmN0aW9uIHBlbnY8VD4obmFtZTogc3RyaW5nLCBwYXJzZXI6IEVudlBhcnNlcjxUPiwgZGVmYXVsdFZhbHVlPzogVCk6IFQgfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIHJldHVybiBwYXJzZXIocHJvY2Vzcy5lbnZbbmFtZV0pO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAxLzMwLlxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VOdW1iZXIoeDogdW5rbm93bik6IG51bWJlciB7XG4gIGlmICh0eXBlb2YgeCA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiB4O1xuICB9XG4gIGNvbnN0IG51bSA9IE51bWJlcih4KTtcbiAgaWYgKE51bWJlci5pc05hTihudW0pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBWYWx1ZSAke3h9IGlzIG5vdCBhIHZhbGlkIG51bWJlcmApO1xuICB9XG4gIHJldHVybiBudW07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVN0cmluZyh4OiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIHg7XG4gIH1cbiAgcmV0dXJuIFN0cmluZyh4KTtcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMDkuXG5cbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBwZW52IH0gZnJvbSBcIi4vZW52XCI7XG5pbXBvcnQgeyBwYXJzZU51bWJlciB9IGZyb20gXCIuL3BhcnNlclwiO1xuXG5jb25zdCByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpO1xuXG5leHBvcnQgY29uc3QgcHVwTG9nTGV2ZWwgPSBwZW52KFwiUFVQX0xPR19MRVZFTFwiLCBwYXJzZU51bWJlciwgMik7XG5cbmV4cG9ydCBjb25zdCBwdXBQa2dSb290ID0gZGlybmFtZShyZXF1aXJlLnJlc29sdmUoXCJwdXAtcmVjb3JkZXIvcGFja2FnZS5qc29uXCIpKTtcbmV4cG9ydCBjb25zdCBwdXBBcHAgPSBqb2luKHB1cFBrZ1Jvb3QsIFwiZGlzdFwiLCBcImFwcC5janNcIik7XG5leHBvcnQgY29uc3QgcHVwQXVkaW9QcmVsb2FkID0gam9pbihwdXBQa2dSb290LCBcImRpc3RcIiwgXCJydW50aW1lXCIsIFwiYXVkaW9fcHJlbG9hZC5janNcIik7XG5leHBvcnQgY29uc3QgcHVwSWZyYW1lUHJlbG9hZCA9IGpvaW4ocHVwUGtnUm9vdCwgXCJkaXN0XCIsIFwicnVudGltZVwiLCBcImlmcmFtZV9wcmVsb2FkLmNqc1wiKTtcbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMDYuXG5cbmltcG9ydCB0eXBlIHsgQ2hpbGRQcm9jZXNzIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgTG9nIH0gZnJvbSBcIm5vZGUtYXZcIjtcbmltcG9ydCB7IEFWX0xPR19FUlJPUiwgQVZfTE9HX1dBUk5JTkcgfSBmcm9tIFwibm9kZS1hdi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHB1cExvZ0xldmVsIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nZ2VyTGlrZSB7XG4gIGRlYnVnPyh0aGlzOiB2b2lkLCAuLi5tZXNzYWdlczogdW5rbm93bltdKTogdm9pZDtcblxuICBpbmZvPyh0aGlzOiB2b2lkLCAuLi5tZXNzYWdlczogdW5rbm93bltdKTogdm9pZDtcblxuICB3YXJuPyh0aGlzOiB2b2lkLCAuLi5tZXNzYWdlczogdW5rbm93bltdKTogdm9pZDtcblxuICBlcnJvcj8odGhpczogdm9pZCwgLi4ubWVzc2FnZXM6IHVua25vd25bXSk6IHZvaWQ7XG59XG5cbmNvbnN0IERFQlVHID0gXCI8cHVwQGRlYnVnPlwiO1xuY29uc3QgSU5GTyA9IFwiPHB1cEBpbmZvPlwiO1xuY29uc3QgV0FSTiA9IFwiPHB1cEB3YXJuPlwiO1xuY29uc3QgRVJST1IgPSBcIjxwdXBAZXJyb3I+XCI7XG5jb25zdCBGQVRBTCA9IFwiPHB1cEBmYXRhbD5cIjtcblxuZnVuY3Rpb24gc3RhY2tIb29rKHRhcmdldDogKC4uLm1lc3NhZ2VzOiB1bmtub3duW10pID0+IHVua25vd24sIF9jb250ZXh0OiBDbGFzc01ldGhvZERlY29yYXRvckNvbnRleHQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0aGlzOiBMb2dnZXIsIC4uLm1lc3NhZ2VzOiB1bmtub3duW10pIHtcbiAgICBjb25zdCBwcm9jZXNzZWQgPSBtZXNzYWdlcy5tYXAoKG1zZykgPT4ge1xuICAgICAgcmV0dXJuIG1zZyBpbnN0YW5jZW9mIEVycm9yID8gKG1zZy5zdGFjayA/PyBTdHJpbmcobXNnKSkgOiBtc2c7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRhcmdldC5jYWxsKHRoaXMsIC4uLnByb2Nlc3NlZCk7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBMb2dnZXIgaW1wbGVtZW50cyBMb2dnZXJMaWtlIHtcbiAgcHJpdmF0ZSBfaW1wbD86IExvZ2dlckxpa2U7XG5cbiAgZ2V0IGxldmVsKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xldmVsO1xuICB9XG5cbiAgc2V0IGxldmVsKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9sZXZlbCA9IHZhbHVlO1xuICAgIHRoaXMuaW1wbCA9IHRoaXMuX2ltcGwgPz8gY29uc29sZTtcbiAgfVxuXG4gIGdldCBpbXBsKCk6IExvZ2dlckxpa2UgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9pbXBsO1xuICB9XG5cbiAgc2V0IGltcGwodmFsdWU6IExvZ2dlckxpa2UpIHtcbiAgICBjb25zdCBkZWJ1ZyA9IHZhbHVlLmRlYnVnID8/IGNvbnNvbGUuZGVidWc7XG4gICAgY29uc3QgaW5mbyA9IHZhbHVlLmluZm8gPz8gY29uc29sZS5pbmZvO1xuICAgIGNvbnN0IHdhcm4gPSB2YWx1ZS53YXJuID8/IGNvbnNvbGUud2FybjtcbiAgICBjb25zdCBlcnJvciA9IHZhbHVlLmVycm9yID8/IGNvbnNvbGUuZXJyb3I7XG4gICAgY29uc3QgbHYgPSB0aGlzLl9sZXZlbDtcbiAgICB0aGlzLl9pbXBsID0ge1xuICAgICAgZGVidWc6IGx2ID49IDMgPyBkZWJ1ZyA6IHVuZGVmaW5lZCxcbiAgICAgIGluZm86IGx2ID49IDIgPyBpbmZvIDogdW5kZWZpbmVkLFxuICAgICAgd2FybjogbHYgPj0gMSA/IHdhcm4gOiB1bmRlZmluZWQsXG4gICAgICBlcnJvcjogbHYgPj0gMCA/IGVycm9yIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9sZXZlbDogbnVtYmVyID0gcHVwTG9nTGV2ZWwpIHtcbiAgICB0aGlzLmltcGwgPSBjb25zb2xlO1xuICB9XG5cbiAgQHN0YWNrSG9va1xuICBkZWJ1ZyguLi5tZXNzYWdlczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgdGhpcy5pbXBsPy5kZWJ1Zz8uKERFQlVHLCAuLi5tZXNzYWdlcyk7XG4gIH1cblxuICBAc3RhY2tIb29rXG4gIGluZm8oLi4ubWVzc2FnZXM6IHVua25vd25bXSk6IHZvaWQge1xuICAgIHRoaXMuaW1wbD8uaW5mbz8uKElORk8sIC4uLm1lc3NhZ2VzKTtcbiAgfVxuXG4gIEBzdGFja0hvb2tcbiAgd2FybiguLi5tZXNzYWdlczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgdGhpcy5pbXBsPy53YXJuPy4oV0FSTiwgLi4ubWVzc2FnZXMpO1xuICB9XG5cbiAgQHN0YWNrSG9va1xuICBlcnJvciguLi5tZXNzYWdlczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgdGhpcy5pbXBsPy5lcnJvcj8uKEVSUk9SLCAuLi5tZXNzYWdlcyk7XG4gIH1cblxuICBAc3RhY2tIb29rXG4gIGZhdGFsKC4uLm1lc3NhZ2VzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICB0aGlzLmltcGw/LmVycm9yPy4oRkFUQUwsIC4uLm1lc3NhZ2VzKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BhdGNoKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIGNvbnN0IG1zZyA9IG1lc3NhZ2UudHJpbUVuZCgpO1xuICAgIGlmIChtc2cuc3RhcnRzV2l0aChERUJVRykpIHtcbiAgICAgIHRoaXMuZGVidWcobXNnLnNsaWNlKERFQlVHLmxlbmd0aCArIDEpKTtcbiAgICB9IGVsc2UgaWYgKG1zZy5zdGFydHNXaXRoKElORk8pKSB7XG4gICAgICB0aGlzLmluZm8obXNnLnNsaWNlKElORk8ubGVuZ3RoICsgMSkpO1xuICAgIH0gZWxzZSBpZiAobXNnLnN0YXJ0c1dpdGgoV0FSTikpIHtcbiAgICAgIHRoaXMud2Fybihtc2cuc2xpY2UoV0FSTi5sZW5ndGggKyAxKSk7XG4gICAgfSBlbHNlIGlmIChtc2cuc3RhcnRzV2l0aChFUlJPUikpIHtcbiAgICAgIHRoaXMuZXJyb3IobXNnLnNsaWNlKEVSUk9SLmxlbmd0aCArIDEpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbmZvKG1zZyk7XG4gICAgfVxuICB9XG5cbiAgYXR0YWNoKHByb2M6IENoaWxkUHJvY2VzcywgbmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuZGVidWcoYCR7bmFtZX0uYXR0YWNoYCk7XG4gICAgICBsZXQgZmF0YWw6IHN0cmluZyA9IFwiXCI7XG4gICAgICBjb25zdCBkaXNwYXRjaCA9IChkYXRhOiBCdWZmZXIpID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGEudG9TdHJpbmcoKTtcbiAgICAgICAgaWYgKG1lc3NhZ2Uuc3RhcnRzV2l0aChGQVRBTCkpIHtcbiAgICAgICAgICBmYXRhbCArPSBtZXNzYWdlLnNsaWNlKEZBVEFMLmxlbmd0aCArIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2gobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBwcm9jLnN0ZGVycj8ub24oXCJkYXRhXCIsIGRpc3BhdGNoKTtcbiAgICAgIHByb2Muc3Rkb3V0Py5vbihcImRhdGFcIiwgZGlzcGF0Y2gpO1xuICAgICAgcHJvY1xuICAgICAgICAub24oXCJlcnJvclwiLCAoZXJyKSA9PiB7XG4gICAgICAgICAgZmF0YWwgKz0gZXJyLm1lc3NhZ2U7XG4gICAgICAgICAgcHJvYy5raWxsKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbmNlKFwiY2xvc2VcIiwgKGNvZGUsIHNpZ25hbCkgPT4ge1xuICAgICAgICAgIGlmIChjb2RlIHx8IHNpZ25hbCB8fCBmYXRhbCkge1xuICAgICAgICAgICAgZmF0YWwgfHw9IGBjb21tYW5kIGZhaWxlZDogJHtwcm9jLnNwYXduYXJncy5qb2luKFwiIFwiKX1gO1xuICAgICAgICAgICAgdGhpcy5kZWJ1ZyhgJHtuYW1lfS5jbG9zZWAsIHsgY29kZSwgc2lnbmFsLCBmYXRhbCB9KTtcbiAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoZmF0YWwpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kZWJ1ZyhgJHtuYW1lfS5jbG9zZWApO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLm9uKFwidW5oYW5kbGVkUmVqZWN0aW9uXCIsIChyZWFzb24pID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yKGAke25hbWV9LnVuaGFuZGxlZGAsIHJlYXNvbik7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbihcInVuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvclwiLCAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvcihgJHtuYW1lfS51bmhhbmRsZWRgLCBlcnIpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCk7XG5cbi8vIFJvdXRlIGZmbXBlZyBuYXRpdmUgbG9ncyB0aHJvdWdoIHB1cCdzIGxvZ2dlci5cbkxvZy5zZXRDYWxsYmFjaygobGV2ZWwsIG1lc3NhZ2UpID0+IHtcbiAgY29uc3QgbXNnID0gbWVzc2FnZS50cmltRW5kKCk7XG4gIGlmICghbXNnKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChsZXZlbCA8PSBBVl9MT0dfRVJST1IpIHtcbiAgICBsb2dnZXIuZXJyb3IobXNnKTtcbiAgfSBlbHNlIGlmIChsZXZlbCA8PSBBVl9MT0dfV0FSTklORykge1xuICAgIGxvZ2dlci53YXJuKG1zZyk7XG4gIH1cbn0pO1xuXG5leHBvcnQgeyBsb2dnZXIgfTtcbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMjQuXG5cbmV4cG9ydCBmdW5jdGlvbiBub2VycjxBIGV4dGVuZHMgdW5rbm93bltdLCBSLCBEPihmbjogKC4uLmFyZ3M6IEEpID0+IFIsIGRlZmF1bHRWYWx1ZTogRCk6ICguLi5hcmdzOiBBKSA9PiBSIHwgRCB7XG4gIHJldHVybiAoLi4uYXJncykgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXQgPSBmbiguLi5hcmdzKTtcbiAgICAgIGlmIChyZXQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgIHJldHVybiByZXQuY2F0Y2goKCkgPT4gZGVmYXVsdFZhbHVlKSBhcyBSIHwgRDtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgfTtcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMDYuXG5cbmltcG9ydCB6IGZyb20gXCJ6b2RcIjtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfV0lEVEggPSAxOTIwO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSEVJR0hUID0gMTA4MDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZQUyA9IDMwO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRFVSQVRJT04gPSA1O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfV0lORE9XX1RJTUVPVVQgPSAxMDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX09VVF9GSUxFID0gXCJvdXQvaHRtbC5tcDQsb3V0L2h0bWwud2VibVwiO1xuXG5leHBvcnQgY29uc3QgcmVuZGVyU2NoZW1hID0gei5vYmplY3Qoe1xuICBkdXJhdGlvbjogei5udW1iZXIoKS5kZXNjcmliZShcIkR1cmF0aW9uIGluIHNlY29uZHNcIiksXG4gIHdpZHRoOiB6Lm51bWJlcigpLmRlc2NyaWJlKFwiVmlkZW8gd2lkdGhcIiksXG4gIGhlaWdodDogei5udW1iZXIoKS5kZXNjcmliZShcIlZpZGVvIGhlaWdodFwiKSxcbiAgZnBzOiB6Lm51bWJlcigpLmRlc2NyaWJlKFwiRnJhbWVzIHBlciBzZWNvbmRcIiksXG4gIHdpdGhBdWRpbzogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJDYXB0dXJlIGFuZCBlbmNvZGUgYXVkaW9cIiksXG4gIG91dEZpbGU6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJDb21tYS1zZXBhcmF0ZWQgb3V0cHV0IHBhdGhzOyBleHRlbnNpb24gKC5tcDQvLndlYm0pIHNlbGVjdHMgZW5jb2RlclwiKSxcbiAgdXNlSW5uZXJQcm94eTogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJVc2UgYmlsaWJpbGkgaW5uZXIgcHJveHkgZm9yIHJlc291cmNlIGFjY2Vzc1wiKSxcbiAgZGV0ZXJtaW5pc3RpYzogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJSZW5kZXIgYnkgZnJhbWUgcmF0aGVyIHRoYW4gcmVjb3JkaW5nXCIpLFxuICBkaXNhYmxlR3B1OiB6LmJvb2xlYW4oKS5kZXNjcmliZShcIkRpc2FibGUgR1BVIHJlbmRlcmluZywgbWF5IHJlZHVjZSBwZXJmb3JtYW5jZSBidXQgaW5jcmVhc2Ugc3RhYmlsaXR5XCIpLFxuICBkaXNhYmxlSHdDb2RlYzogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJEaXNhYmxlIGhhcmR3YXJlIHZpZGVvIGVuY29kZXIgKE5WRU5DL1ZpZGVvVG9vbGJveCksIHVzZSBzb2Z0d2FyZSB4MjY1XCIpLFxuICB3aW5kb3dUb2xlcmFudDogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJGYWxsIGJhY2sgdG8gZG9tLXJlYWR5IGlmIHdhcm11cCBsb2FkIHRpbWVzIG91dFwiKSxcbiAgd2luZG93VGltZW91dDogei5udW1iZXIoKS5kZXNjcmliZShcIldpbmRvdyBsb2FkIHRpbWVvdXQgaW4gc2Vjb25kc1wiKSxcbn0pO1xuXG5leHBvcnQgdHlwZSBSZW5kZXJPcHRpb25zID0gei5pbmZlcjx0eXBlb2YgcmVuZGVyU2NoZW1hPjtcblxuZXhwb3J0IHR5cGUgQ29uc29sZUNhbGxiYWNrID0gKGxldmVsOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgUHJvZ3Jlc3NDYWxsYmFjayA9IChwcm9ncmVzczogbnVtYmVyKSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQQ1JlbmRlck9wdGlvbnMgZXh0ZW5kcyBSZW5kZXJPcHRpb25zIHtcbiAgc291cmNlOiBzdHJpbmc7XG4gIHNpZ25hbDogQWJvcnRTaWduYWw7XG4gIG9uUHJvZ3Jlc3M6IFByb2dyZXNzQ2FsbGJhY2s7XG4gIG9uQ29uc29sZTogQ29uc29sZUNhbGxiYWNrO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlclJlc3VsdCB7XG4gIG9wdGlvbnM6IFJlbmRlck9wdGlvbnM7XG4gIHdyaXR0ZW46IG51bWJlcjtcbiAgamFuazogbnVtYmVyO1xuICBvdXRGaWxlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0UmVuZGVyT3B0aW9uczogUmVuZGVyT3B0aW9ucyA9IHtcbiAgd2lkdGg6IERFRkFVTFRfV0lEVEgsXG4gIGhlaWdodDogREVGQVVMVF9IRUlHSFQsXG4gIGZwczogREVGQVVMVF9GUFMsXG4gIGR1cmF0aW9uOiBERUZBVUxUX0RVUkFUSU9OLFxuICBvdXRGaWxlOiBERUZBVUxUX09VVF9GSUxFLFxuICB3aXRoQXVkaW86IGZhbHNlLFxuICB1c2VJbm5lclByb3h5OiBmYWxzZSxcbiAgZGV0ZXJtaW5pc3RpYzogZmFsc2UsXG4gIGRpc2FibGVHcHU6IGZhbHNlLFxuICBkaXNhYmxlSHdDb2RlYzogZmFsc2UsXG4gIHdpbmRvd1RvbGVyYW50OiBmYWxzZSxcbiAgd2luZG93VGltZW91dDogREVGQVVMVF9XSU5ET1dfVElNRU9VVCxcbn07XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzI3LlxuXG5pbXBvcnQgeyBIYXJkd2FyZUNvbnRleHQgfSBmcm9tIFwibm9kZS1hdi9hcGlcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcblxuY29uc3QgVEFHID0gXCJbSFdBY2NlbF1cIjtcblxuYXN5bmMgZnVuY3Rpb24gZGV0ZWN0R1BVRHJpdmVyKCkge1xuICBjb25zdCBodyA9IEhhcmR3YXJlQ29udGV4dC5hdXRvKCk7XG4gIGNvbnN0IHJlc3VsdCA9IGh3ICE9PSBudWxsO1xuICBodz8uZGlzcG9zZSgpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgY29uc3QgY2FuSVVzZUdQVSA9IGRldGVjdEdQVURyaXZlcigpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICBsb2dnZXIuZGVidWcoVEFHLCBcImdwdTpcIiwgcmVzdWx0KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn0pO1xuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wNC8wMy5cblxuaW1wb3J0IHsgcGxhdGZvcm0gfSBmcm9tIFwibm9kZTpvc1wiO1xuaW1wb3J0IHsgcHVwTG9nTGV2ZWwgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNhbklVc2VHUFUgfSBmcm9tIFwiLi9od2FjY2VsXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjaHJvbWl1bU9wdGlvbnMoZGlzYWJsZUdwdTogYm9vbGVhbikge1xuICBjb25zdCBvcHRzID0gW1xuICAgIC8vIOWuueWZqOaymeeusVxuICAgIFwibm8tc2FuZGJveFwiLFxuICAgIFwiZGlzYWJsZS1kZXYtc2htLXVzYWdlXCIsXG4gICAgLy8g6Leo5Z+fL+WuieWFqFxuICAgIFwiZGlzYWJsZS13ZWItc2VjdXJpdHlcIixcbiAgICBcImRpc2FibGUtc2l0ZS1pc29sYXRpb24tdHJpYWxzXCIsXG4gICAgXCJpZ25vcmUtY2VydGlmaWNhdGUtZXJyb3JzXCIsXG4gICAgLy8g5b2V5Yi26KGM5Li6XG4gICAgXCJkaXNhYmxlLWJsaW5rLWZlYXR1cmVzPUF1dG9tYXRpb25Db250cm9sbGVkXCIsXG4gICAgXCJtdXRlLWF1ZGlvXCIsXG4gICAgXCJhdXRvcGxheS1wb2xpY3k9bm8tdXNlci1nZXN0dXJlLXJlcXVpcmVkXCIsXG4gICAgXCJkaXNhYmxlLWV4dGVuc2lvbnNcIixcbiAgICBcImRlbnktcGVybWlzc2lvbi1wcm9tcHRzXCIsXG4gICAgXCJ1c2UtbW9jay1rZXljaGFpblwiLFxuICAgIC8vIOa4suafk1xuICAgIFwiZm9yY2UtZGV2aWNlLXNjYWxlLWZhY3Rvcj0xXCIsXG4gICAgXCJmb3JjZS1jb2xvci1wcm9maWxlPXNyZ2JcIixcbiAgICBcImlnbm9yZS1ncHUtYmxvY2tsaXN0XCIsXG4gICAgXCJ1c2UtZ2w9YW5nbGVcIixcbiAgICBcImRldGVybWluaXN0aWMtbW9kZVwiLFxuICAgIFwiZW5hYmxlLWJlZ2luLWZyYW1lLWNvbnRyb2xcIixcbiAgICBcImRpc2FibGUtbmV3LWNvbnRlbnQtcmVuZGVyaW5nLXRpbWVvdXRcIixcbiAgICBcInJ1bi1hbGwtY29tcG9zaXRvci1zdGFnZXMtYmVmb3JlLWRyYXdcIixcbiAgICBcImRpc2FibGUtdGhyZWFkZWQtYW5pbWF0aW9uXCIsXG4gICAgXCJkaXNhYmxlLXRocmVhZGVkLXNjcm9sbGluZ1wiLFxuICAgIFwiZGlzYWJsZS1jaGVja2VyLWltYWdpbmdcIixcbiAgICBcImRpc2FibGUtaW1hZ2UtYW5pbWF0aW9uLXJlc3luY1wiLFxuICAgIFwiZW5hYmxlLXN1cmZhY2Utc3luY2hyb25pemF0aW9uXCIsXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3B1cHBldGVlci9wdXBwZXRlZXIvaXNzdWVzLzI0MTBcbiAgICBcImZvbnQtcmVuZGVyLWhpbnRpbmc9bm9uZVwiLFxuICAgIC8vIOi1hOa6kOaOp+WItlxuICAgIFwiZGlzYWJsZS1iYWNrZ3JvdW5kLW5ldHdvcmtpbmdcIixcbiAgICBcImpzLWZsYWdzPS0tbWF4LW9sZC1zcGFjZS1zaXplPTUxMlwiLFxuICAgIFwicmVuZGVyZXItcHJvY2Vzcy1saW1pdD0xXCIsXG4gICAgXCJudW0tcmFzdGVyLXRocmVhZHM9MlwiLFxuICAgIFwiZGlzYWJsZS1iYWNrZ3JvdW5kLXRpbWVyLXRocm90dGxpbmdcIixcbiAgICBcImRpc2FibGUtcmVuZGVyZXItYmFja2dyb3VuZGluZ1wiLFxuICAgIFwiZGlzYWJsZS1iYWNrZ3JvdW5kaW5nLW9jY2x1ZGVkLXdpbmRvd3NcIixcbiAgICAvLyDml6Xlv5fov73ouKpcbiAgICBcImVuYWJsZS1sb2dnaW5nPXN0ZGVyclwiLFxuICBdO1xuXG4gIGlmIChwdXBMb2dMZXZlbCA+PSAzKSB7XG4gICAgb3B0cy5wdXNoKFwibG9nLWxldmVsPTBcIiwgXCJ2PTFcIik7XG4gIH0gZWxzZSB7XG4gICAgb3B0cy5wdXNoKFwibG9nLWxldmVsPTNcIik7XG4gIH1cblxuICBjb25zdCBmZWF0dXJlcyA9IFtcIkZvbnRhdGlvbkJhY2tlbmRcIl07XG4gIGNvbnN0IGVuYWJsZUdwdSA9IChhd2FpdCBjYW5JVXNlR1BVKSAmJiAhZGlzYWJsZUdwdTtcbiAgaWYgKCFlbmFibGVHcHUpIHtcbiAgICBvcHRzLnB1c2goXCJ1c2UtYW5nbGU9c3dpZnRzaGFkZXJcIiwgXCJlbmFibGUtdW5zYWZlLXN3aWZ0c2hhZGVyXCIpO1xuICB9IGVsc2Uge1xuICAgIG9wdHMucHVzaChcImRpc2FibGUtZ3B1LXNhbmRib3hcIiwgXCJlbmFibGUtdW5zYWZlLXdlYmdwdVwiKTtcbiAgICBjb25zdCBwbGF0ID0gcGxhdGZvcm0oKTtcbiAgICBpZiAocGxhdCA9PT0gXCJkYXJ3aW5cIikge1xuICAgICAgb3B0cy5wdXNoKFwidXNlLWFuZ2xlPW1ldGFsXCIpO1xuICAgIH0gZWxzZSBpZiAocGxhdCA9PT0gXCJ3aW4zMlwiKSB7XG4gICAgICBvcHRzLnB1c2goXCJ1c2UtYW5nbGU9ZDNkMTFcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9wdHMucHVzaChcInVzZS1hbmdsZT12dWxrYW5cIiwgXCJkaXNhYmxlLXZ1bGthbi1zdXJmYWNlXCIpO1xuICAgICAgZmVhdHVyZXMucHVzaChcIlZ1bGthblwiKTtcbiAgICB9XG4gIH1cblxuICBvcHRzLnB1c2goYGVuYWJsZS1mZWF0dXJlcz0ke2ZlYXR1cmVzLmpvaW4oXCIsXCIpfWApO1xuICByZXR1cm4gb3B0cztcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDEvMzAuXG5cbmltcG9ydCB7IHR5cGUgQ2hpbGRQcm9jZXNzLCB0eXBlIFNwYXduT3B0aW9ucywgc3Bhd24gfSBmcm9tIFwibm9kZTpjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgdHJlZUtpbGwgZnJvbSBcInRyZWUta2lsbFwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vbG9nZ2luZ1wiO1xuXG5leHBvcnQgY29uc3QgUFVQX0FSR1NfS0VZID0gXCItLXB1cC1wcml2LWFyZ3NcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcmdzKCkge1xuICBjb25zdCBhcmd2ID0gcHJvY2Vzcy5hcmd2O1xuICBsZXQgcHJpdiA9IGFyZ3YuZmluZCgoYXJnKSA9PiBhcmcuc3RhcnRzV2l0aChQVVBfQVJHU19LRVkpKTtcbiAgaWYgKCFwcml2KSB7XG4gICAgbG9nZ2VyLmRlYnVnKFwicHJvY2FyZ3ZcIiwgYXJndik7XG4gICAgcmV0dXJuIHByb2Nlc3MuYXJndjtcbiAgfVxuICBjb25zdCBhcmdzID0gW1wiZXhlY1wiLCAuLi5hcmd2LnNsaWNlKC0xKV07XG4gIHByaXYgPSBCdWZmZXIuZnJvbShwcml2LnNwbGl0KFwiPVwiKVsxXSEsIFwiYmFzZTY0XCIpLnRvU3RyaW5nKCk7XG4gIGFyZ3MucHVzaCguLi5KU09OLnBhcnNlKHByaXYpKTtcbiAgbG9nZ2VyLmRlYnVnKFwicHVwYXJnc1wiLCBhcmdzKTtcbiAgcmV0dXJuIGFyZ3M7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc0hhbmRsZSB7XG4gIHByb2Nlc3M6IENoaWxkUHJvY2VzcztcbiAgd2FpdDogUHJvbWlzZTx2b2lkPjtcbiAgZ2V0IGtpbGxlZCgpOiBib29sZWFuO1xuICBraWxsKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGVjKGNtZDogc3RyaW5nLCBvcHRpb25zPzogU3Bhd25PcHRpb25zKTogUHJvY2Vzc0hhbmRsZSB7XG4gIGNvbnN0IHBhcnRzID0gY21kLnNwbGl0KFwiIFwiKS5maWx0ZXIoKHMpID0+IHMubGVuZ3RoKTtcbiAgY29uc3QgW2NvbW1hbmQsIC4uLmFyZ3NdID0gcGFydHM7XG4gIGlmICghY29tbWFuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcImVtcHR5IGNvbW1hbmRcIik7XG4gIH1cbiAgY29uc3QgcHJvYyA9IHNwYXduKGNvbW1hbmQsIGFyZ3MsIHtcbiAgICBzdGRpbzogXCJpbmhlcml0XCIsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG4gIGxldCBraWxsZWQgPSBmYWxzZTtcbiAgcmV0dXJuIHtcbiAgICBwcm9jZXNzOiBwcm9jLFxuICAgIHdhaXQ6IGxvZ2dlci5hdHRhY2gocHJvYywgY29tbWFuZCksXG4gICAgZ2V0IGtpbGxlZCgpIHtcbiAgICAgIHJldHVybiBraWxsZWQ7XG4gICAgfSxcbiAgICBraWxsKCkge1xuICAgICAgaWYgKGtpbGxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBraWxsZWQgPSB0cnVlO1xuICAgICAgY29uc3QgcGlkID0gcHJvYy5waWQ7XG4gICAgICBpZiAocGlkKSB7XG4gICAgICAgIHRyZWVLaWxsKHBpZCwgXCJTSUdLSUxMXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvYy5raWxsKFwiU0lHS0lMTFwiKTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufVxuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wMi8yNS5cblxuaW1wb3J0IHsgcm1TeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IG1rZHRlbXAgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSBcIm5vZGU6b3NcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBjaHJvbWl1bU9wdGlvbnMgfSBmcm9tIFwiLi4vYmFzZS9jaHJvbWl1bVwiO1xuaW1wb3J0IHsgcHVwQXBwIH0gZnJvbSBcIi4uL2Jhc2UvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi4vYmFzZS9sb2dnaW5nXCI7XG5pbXBvcnQgeyBleGVjLCBQVVBfQVJHU19LRVkgfSBmcm9tIFwiLi4vYmFzZS9wcm9jZXNzXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbGVjdHJvbk9wdHMoZGlzYWJsZUdwdTogYm9vbGVhbikge1xuICByZXR1cm4gWy4uLihhd2FpdCBjaHJvbWl1bU9wdGlvbnMoZGlzYWJsZUdwdSkpLCBcImhlYWRsZXNzPW5ld1wiXTtcbn1cblxuY29uc3QgVEFHID0gXCJbRWxlY3Ryb25dXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVuRWxlY3Ryb25BcHBPcHRpb25zIHtcbiAgYXJnczogdW5rbm93bltdO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuRWxlY3Ryb25BcHAoeyBhcmdzIH06IFJ1bkVsZWN0cm9uQXBwT3B0aW9ucykge1xuICAvLyBMYXp5OiBlbGVjdHJvbidzIGVudHJ5IHRocm93cyBpZiB0aGUgYmluYXJ5IGlzIGFic2VudCwgc28gdXRpbC1vbmx5IGNvbnN1bWVycyBtdXN0IG5vdCBsb2FkIGl0IGF0IGltcG9ydCB0aW1lLlxuICBjb25zdCB7IGRlZmF1bHQ6IGVsZWN0cm9uIH0gPSBhd2FpdCBpbXBvcnQoXCJlbGVjdHJvblwiKTtcbiAgY29uc3Qgb3B0cyA9IGF3YWl0IGVsZWN0cm9uT3B0cyhhcmdzLmluY2x1ZGVzKFwiLS1kaXNhYmxlLWdwdVwiKSk7XG4gIC8vIFBlci1wcm9jZXNzIHByb2ZpbGU6IGlzb2xhdGVzIHRoaXMgY2FsbCdzIENocm9taXVtIGNhY2hlICh3YXJtdXAgd2luZG93cyBzaGFyZSBpdCB2aWEgZGVmYXVsdFNlc3Npb24pLCB3aXBlZCBvbiBleGl0LlxuICBjb25zdCBwcm9maWxlRGlyID0gYXdhaXQgbWtkdGVtcChqb2luKHRtcGRpcigpLCBcInB1cC1wcm9maWxlLVwiKSk7XG4gIGNvbnN0IGVsZWN0cm9uQXJncyA9IG9wdHMubWFwKChhKSA9PiBgLS0ke2F9YCk7XG4gIGVsZWN0cm9uQXJncy5wdXNoKGAtLXVzZXItZGF0YS1kaXI9JHtwcm9maWxlRGlyfWApO1xuICBlbGVjdHJvbkFyZ3MucHVzaChgJHtQVVBfQVJHU19LRVl9PSR7QnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkoYXJncykpLnRvU3RyaW5nKFwiYmFzZTY0XCIpfWApO1xuICBjb25zdCBjbWQgPSBbZWxlY3Ryb24sIC4uLmVsZWN0cm9uQXJncywgcHVwQXBwXS5qb2luKFwiIFwiKTtcbiAgbG9nZ2VyLmRlYnVnKFRBRywgY21kKTtcblxuICBjb25zdCBlbnY6IE5vZGVKUy5Qcm9jZXNzRW52ID0geyAuLi5wcm9jZXNzLmVudiwgUlVTVF9CQUNLVFJBQ0U6IFwiZnVsbFwiIH07XG4gIGNvbnN0IGhhbmRsZSA9IGV4ZWMoY21kLCB7IHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJwaXBlXCIsIFwicGlwZVwiLCBcImlwY1wiXSwgZW52IH0pO1xuICBoYW5kbGUucHJvY2Vzcy5vbmNlKFwiZXhpdFwiLCAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJtU3luYyhwcm9maWxlRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgbG9nZ2VyLndhcm4oVEFHLCBcInByb2ZpbGUgY2xlYW51cCBmYWlsZWQ6XCIsIGUpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBoYW5kbGU7XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzA0LzAxLlxuXG5pbXBvcnQgdHlwZSB7IENoaWxkUHJvY2VzcyB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gXCJub2RlOmV2ZW50c1wiO1xuXG5leHBvcnQgZW51bSBJcGNNc2dUeXBlIHtcbiAgLy8gY2hpbGQg4oaSIHBhcmVudFxuICBDb25zb2xlID0gXCJjb25zb2xlXCIsXG4gIFByb2dyZXNzID0gXCJwcm9ncmVzc1wiLFxuICBEb25lID0gXCJkb25lXCIsXG4gIEVycm9yID0gXCJlcnJvclwiLFxuICAvLyBwYXJlbnQg4oaSIGNoaWxkXG4gIENhbmNlbCA9IFwiY2FuY2VsXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc29sZU1zZyB7XG4gIHR5cGU6IElwY01zZ1R5cGUuQ29uc29sZTtcbiAgbGV2ZWw6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbmNlbE1zZyB7XG4gIHR5cGU6IElwY01zZ1R5cGUuQ2FuY2VsO1xuICByZWFzb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXBjRG9uZVBheWxvYWQge1xuICB3cml0dGVuOiBudW1iZXI7XG4gIGphbms6IG51bWJlcjtcbiAgb3V0RmlsZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2dyZXNzTXNnIHtcbiAgdHlwZTogSXBjTXNnVHlwZS5Qcm9ncmVzcztcbiAgdmFsdWU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb25lTXNnIHtcbiAgdHlwZTogSXBjTXNnVHlwZS5Eb25lO1xuICBwYXlsb2FkOiBJcGNEb25lUGF5bG9hZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFcnJvck1zZyB7XG4gIHR5cGU6IElwY01zZ1R5cGUuRXJyb3I7XG4gIGVycm9yOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIElwY01zZyA9IENvbnNvbGVNc2cgfCBQcm9ncmVzc01zZyB8IERvbmVNc2cgfCBFcnJvck1zZyB8IENhbmNlbE1zZztcblxuZXhwb3J0IGludGVyZmFjZSBJcGNFdmVudHMge1xuICBwcm9ncmVzczogW3ZhbHVlOiBudW1iZXJdO1xuICBjb25zb2xlOiBbbGV2ZWw6IHN0cmluZywgbXNnOiBzdHJpbmddO1xuICBkb25lOiBbcGF5bG9hZDogSXBjRG9uZVBheWxvYWRdO1xuICBlcnJvcjogW2Vycm9yOiBFcnJvcl07XG4gIGNsb3NlOiBbY29kZTogbnVtYmVyIHwgbnVsbF07XG59XG5cbmV4cG9ydCBjbGFzcyBJcGNXcml0ZXIge1xuICB3cml0ZUNvbnNvbGUobGV2ZWw6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZW5kKHsgdHlwZTogSXBjTXNnVHlwZS5Db25zb2xlLCBsZXZlbCwgbWVzc2FnZSB9KTtcbiAgfVxuXG4gIHdyaXRlUHJvZ3Jlc3ModmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2VuZCh7IHR5cGU6IElwY01zZ1R5cGUuUHJvZ3Jlc3MsIHZhbHVlIH0pO1xuICB9XG5cbiAgd3JpdGVFcnJvcihlcnJvcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VuZCh7IHR5cGU6IElwY01zZ1R5cGUuRXJyb3IsIGVycm9yIH0pO1xuICB9XG5cbiAgd3JpdGVEb25lKHBheWxvYWQ6IElwY0RvbmVQYXlsb2FkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VuZCh7IHR5cGU6IElwY01zZ1R5cGUuRG9uZSwgcGF5bG9hZCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2VuZChtc2c6IElwY01zZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgaWYgKCFwcm9jZXNzLnNlbmQpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICAgIH1cbiAgICAgIHByb2Nlc3Muc2VuZChtc2csICgpID0+IHJlc29sdmUoKSk7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIElwY1JlYWRlciBleHRlbmRzIEV2ZW50RW1pdHRlcjxJcGNFdmVudHM+IHtcbiAgY29uc3RydWN0b3IoY2hpbGQ6IENoaWxkUHJvY2Vzcykge1xuICAgIHN1cGVyKCk7XG4gICAgY2hpbGQub24oXCJtZXNzYWdlXCIsIChyYXcpID0+IHtcbiAgICAgIGNvbnN0IG1zZyA9IHJhdyBhcyBJcGNNc2c7XG4gICAgICBzd2l0Y2ggKG1zZy50eXBlKSB7XG4gICAgICAgIGNhc2UgSXBjTXNnVHlwZS5Db25zb2xlOiB7XG4gICAgICAgICAgdGhpcy5lbWl0KFwiY29uc29sZVwiLCBtc2cubGV2ZWwsIG1zZy5tZXNzYWdlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIElwY01zZ1R5cGUuUHJvZ3Jlc3M6IHtcbiAgICAgICAgICB0aGlzLmVtaXQoXCJwcm9ncmVzc1wiLCBtc2cudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgSXBjTXNnVHlwZS5Eb25lOiB7XG4gICAgICAgICAgdGhpcy5lbWl0KFwiZG9uZVwiLCBtc2cucGF5bG9hZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBJcGNNc2dUeXBlLkVycm9yOiB7XG4gICAgICAgICAgdGhpcy5lbWl0KFwiZXJyb3JcIiwgbmV3IEVycm9yKG1zZy5lcnJvcikpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgY2hpbGQub25jZShcImV4aXRcIiwgKGMpID0+IHRoaXMuZW1pdChcImNsb3NlXCIsIGMpKTtcbiAgfVxufVxuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wMi8wOS5cblxuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vYmFzZS9sb2dnaW5nXCI7XG5pbXBvcnQgeyBydW5FbGVjdHJvbkFwcCB9IGZyb20gXCIuL3JlbmRlcmVyL2VsZWN0cm9uXCI7XG5pbXBvcnQgeyB0eXBlIElwY0RvbmVQYXlsb2FkLCBJcGNNc2dUeXBlLCBJcGNSZWFkZXIgfSBmcm9tIFwiLi9yZW5kZXJlci9pcGNcIjtcbmltcG9ydCB7XG4gIHR5cGUgQ29uc29sZUNhbGxiYWNrLFxuICBkZWZhdWx0UmVuZGVyT3B0aW9ucyxcbiAgdHlwZSBQcm9ncmVzc0NhbGxiYWNrLFxuICB0eXBlIFJlbmRlck9wdGlvbnMsXG4gIHR5cGUgUmVuZGVyUmVzdWx0LFxufSBmcm9tIFwiLi9yZW5kZXJlci9zY2hlbWFcIjtcblxuY29uc3QgVEFHID0gXCJbcHVwXVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFB1cE9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPFJlbmRlck9wdGlvbnM+IHtcbiAgc2lnbmFsPzogQWJvcnRTaWduYWw7XG4gIG9uUHJvZ3Jlc3M/OiBQcm9ncmVzc0NhbGxiYWNrO1xuICBvbkNvbnNvbGU/OiBDb25zb2xlQ2FsbGJhY2s7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVwUmVzdWx0IGV4dGVuZHMgUmVuZGVyUmVzdWx0IHt9XG5cbmFzeW5jIGZ1bmN0aW9uIHJ1blB1cEFwcChzb3VyY2U6IHN0cmluZywgcmVuZGVyOiBSZW5kZXJPcHRpb25zKSB7XG4gIGxvZ2dlci5kZWJ1ZyhUQUcsIGBydW5QdXBBcHBgLCBzb3VyY2UsIHJlbmRlcik7XG5cbiAgY29uc3QgYXJnczogc3RyaW5nW10gPSBbXG4gICAgc291cmNlLFxuICAgIGAtLXdpZHRoYCxcbiAgICBgJHtyZW5kZXIud2lkdGh9YCxcbiAgICBgLS1oZWlnaHRgLFxuICAgIGAke3JlbmRlci5oZWlnaHR9YCxcbiAgICBgLS1mcHNgLFxuICAgIGAke3JlbmRlci5mcHN9YCxcbiAgICBgLS1kdXJhdGlvbmAsXG4gICAgYCR7cmVuZGVyLmR1cmF0aW9ufWAsXG4gICAgYC0td2luZG93LXRpbWVvdXRgLFxuICAgIGAke3JlbmRlci53aW5kb3dUaW1lb3V0fWAsXG4gICAgYC0tb3V0LWZpbGVgLFxuICAgIGAke3JlbmRlci5vdXRGaWxlfWAsXG4gIF07XG4gIGlmIChyZW5kZXIud2l0aEF1ZGlvKSB7XG4gICAgYXJncy5wdXNoKGAtLXdpdGgtYXVkaW9gKTtcbiAgfVxuICBpZiAocmVuZGVyLnVzZUlubmVyUHJveHkpIHtcbiAgICBhcmdzLnB1c2goYC0tdXNlLWlubmVyLXByb3h5YCk7XG4gIH1cbiAgaWYgKHJlbmRlci5kZXRlcm1pbmlzdGljKSB7XG4gICAgYXJncy5wdXNoKGAtLWRldGVybWluaXN0aWNgKTtcbiAgfVxuICBpZiAocmVuZGVyLmRpc2FibGVHcHUpIHtcbiAgICBhcmdzLnB1c2goYC0tZGlzYWJsZS1ncHVgKTtcbiAgfVxuICBpZiAocmVuZGVyLmRpc2FibGVId0NvZGVjKSB7XG4gICAgYXJncy5wdXNoKGAtLWRpc2FibGUtaHctY29kZWNgKTtcbiAgfVxuICBpZiAocmVuZGVyLndpbmRvd1RvbGVyYW50KSB7XG4gICAgYXJncy5wdXNoKGAtLXdpbmRvdy10b2xlcmFudGApO1xuICB9XG5cbiAgcmV0dXJuIHJ1bkVsZWN0cm9uQXBwKHsgYXJncyB9KTtcbn1cblxuY29uc3QgZCA9IGRlZmF1bHRSZW5kZXJPcHRpb25zO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHVwKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zOiBQYXJ0aWFsPFB1cE9wdGlvbnM+KTogUHJvbWlzZTxQdXBSZXN1bHQ+IHtcbiAgbG9nZ2VyLmRlYnVnKFRBRywgYHB1cGAsIHNvdXJjZSwgb3B0aW9ucyk7XG5cbiAgY29uc3QgeyBzaWduYWwgfSA9IG9wdGlvbnM7XG4gIHNpZ25hbD8udGhyb3dJZkFib3J0ZWQoKTtcblxuICBjb25zdCBvdXRGaWxlID0gb3B0aW9ucy5vdXRGaWxlID8/IGQub3V0RmlsZTtcbiAgY29uc3QgcmVuZGVyT3B0czogUmVuZGVyT3B0aW9ucyA9IHtcbiAgICB3aWR0aDogb3B0aW9ucy53aWR0aCA/PyBkLndpZHRoLFxuICAgIGhlaWdodDogb3B0aW9ucy5oZWlnaHQgPz8gZC5oZWlnaHQsXG4gICAgZnBzOiBvcHRpb25zLmZwcyA/PyBkLmZwcyxcbiAgICBkdXJhdGlvbjogb3B0aW9ucy5kdXJhdGlvbiA/PyBkLmR1cmF0aW9uLFxuICAgIHdpdGhBdWRpbzogb3B0aW9ucy53aXRoQXVkaW8gPz8gZC53aXRoQXVkaW8sXG4gICAgdXNlSW5uZXJQcm94eTogb3B0aW9ucy51c2VJbm5lclByb3h5ID8/IGQudXNlSW5uZXJQcm94eSxcbiAgICBkZXRlcm1pbmlzdGljOiBvcHRpb25zLmRldGVybWluaXN0aWMgPz8gZC5kZXRlcm1pbmlzdGljLFxuICAgIGRpc2FibGVHcHU6IG9wdGlvbnMuZGlzYWJsZUdwdSA/PyBkLmRpc2FibGVHcHUsXG4gICAgZGlzYWJsZUh3Q29kZWM6IG9wdGlvbnMuZGlzYWJsZUh3Q29kZWMgPz8gZC5kaXNhYmxlSHdDb2RlYyxcbiAgICB3aW5kb3dUb2xlcmFudDogb3B0aW9ucy53aW5kb3dUb2xlcmFudCA/PyBkLndpbmRvd1RvbGVyYW50LFxuICAgIHdpbmRvd1RpbWVvdXQ6IG9wdGlvbnMud2luZG93VGltZW91dCA/PyBkLndpbmRvd1RpbWVvdXQsXG4gICAgb3V0RmlsZSxcbiAgfTtcblxuICBjb25zdCB0MCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICBsZXQgcHJvZ3Jlc3MgPSAwO1xuICBjb25zdCB0aWNrID0gKHA6IG51bWJlcikgPT4ge1xuICAgIHByb2dyZXNzID0gcDtcbiAgICBvcHRpb25zLm9uUHJvZ3Jlc3M/LihwKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGUgPSBhd2FpdCBydW5QdXBBcHAoc291cmNlLCByZW5kZXJPcHRzKTtcblxuICBjb25zdCBvbkFib3J0ID0gKCkgPT4ge1xuICAgIGhhbmRsZS5wcm9jZXNzLnNlbmQ/Lih7IHR5cGU6IElwY01zZ1R5cGUuQ2FuY2VsLCByZWFzb246IFN0cmluZyhzaWduYWw/LnJlYXNvbiA/PyBcImFib3J0XCIpIH0pO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gaGFuZGxlLmtpbGwoKSwgNV8wMDApO1xuICB9O1xuICBzaWduYWw/LmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBvbkFib3J0LCB7IG9uY2U6IHRydWUgfSk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgUHJvbWlzZTxJcGNEb25lUGF5bG9hZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgbmV3IElwY1JlYWRlcihoYW5kbGUucHJvY2VzcylcbiAgICAgICAgLm9uKFwiY2xvc2VcIiwgKGNvZGUpID0+IHtcbiAgICAgICAgICBjb25zdCBtc2cgPSBKU09OLnN0cmluZ2lmeSh7IHNvdXJjZSwgcHJvZ3Jlc3MsIGNvZGUsIGtpbGxlZDogaGFuZGxlLmtpbGxlZCB9KTtcbiAgICAgICAgICByZWplY3QobmV3IEVycm9yKGBjcmFzaGVkOiAke21zZ31gKSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbihcInByb2dyZXNzXCIsIHRpY2spXG4gICAgICAgIC5vbihcImNvbnNvbGVcIiwgKGwsIG0pID0+IG9wdGlvbnMub25Db25zb2xlPy4obCwgbSkpXG4gICAgICAgIC5vbihcImRvbmVcIiwgcmVzb2x2ZSlcbiAgICAgICAgLm9uKFwiZXJyb3JcIiwgcmVqZWN0KTtcbiAgICB9KTtcbiAgICB0aWNrKDApO1xuICAgIGNvbnN0IFtzdW1tYXJ5XSA9IGF3YWl0IFByb21pc2UuYWxsKFtyZXN1bHQsIGhhbmRsZS53YWl0XSk7XG4gICAgdGljaygxMDApO1xuICAgIGxvZ2dlci5kZWJ1ZyhUQUcsIGBkb25lICR7b3V0RmlsZX0gaW4gJHtNYXRoLnJvdW5kKHBlcmZvcm1hbmNlLm5vdygpIC0gdDApfW1zYCk7XG4gICAgcmV0dXJuIHsgLi4uc3VtbWFyeSwgb3B0aW9uczogcmVuZGVyT3B0cyB9O1xuICB9IGNhdGNoIChlKSB7XG4gICAgaGFuZGxlLmtpbGwoKTtcbiAgICBzaWduYWw/LnRocm93SWZBYm9ydGVkKCk7XG4gICAgdGhyb3cgZTtcbiAgfSBmaW5hbGx5IHtcbiAgICBzaWduYWw/LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBvbkFib3J0KTtcbiAgfVxufVxuIl19
package/dist/cli.js CHANGED
@@ -1,2 +1,2 @@
1
- import'source-map-support/register.js';import {m,n,g,d,f,h,a,b as b$1,o}from'./chunk-YJ7QEMFY.js';import {program}from'commander';import {realpathSync}from'fs';import {resolve}from'path';function P(t){if(t.includes("://")||t.startsWith("data:"))return t;let i;try{i=realpathSync(t);}catch{i=resolve(t);}return `file://${i}`}async function b(t){let i=m.shape,e=n;program.name(t.name).argument("<source>","file://, http(s)://, data: URI, or filesystem path").option("-W, --width <number>",i.width.description,`${e.width}`).option("-H, --height <number>",i.height.description,`${e.height}`).option("-f, --fps <number>",i.fps.description,`${e.fps}`).option("-t, --duration <number>",i.duration.description,`${e.duration}`).option("-o, --out-file <path>",i.outFile.description,e.outFile).option("-a, --with-audio",i.withAudio.description,e.withAudio).option("-d, --deterministic",i.deterministic.description,e.deterministic).option("--use-inner-proxy",i.useInnerProxy.description,e.useInnerProxy).option("--disable-gpu",i.disableGpu.description,e.disableGpu).option("--disable-hw-codec",i.disableHwCodec.description,e.disableHwCodec).option("--window-tolerant",i.windowTolerant.description,e.windowTolerant).action(async(s,r)=>{try{await t.run(P(s),{width:g(d,e.width)(r.width),height:g(d,e.height)(r.height),fps:g(d,e.fps)(r.fps),duration:g(d,e.duration)(r.duration),outFile:r.outFile??e.outFile,withAudio:r.withAudio??e.withAudio,useInnerProxy:r.useInnerProxy??e.useInnerProxy,deterministic:r.deterministic??e.deterministic,disableGpu:r.disableGpu??e.disableGpu,disableHwCodec:r.disableHwCodec??e.disableHwCodec,windowTolerant:r.windowTolerant??e.windowTolerant});}catch(n){f.fatal(n);}}),await program.parseAsync(h());}b({name:"pup",run:async(t,i)=>{let e=new AbortController,s=0;process.once("SIGTERM",()=>(s=143,e.abort(new Error("SIGTERM")))),process.once("SIGINT",()=>(s=130,e.abort(new Error("SIGINT")))),process.once("exit",o=>(s=o,e.abort(new Error("SIGKILL"))));let r=Math.ceil(i.fps*i.duration),n=new a({total:r,out:process.stderr,showCount:true});f.impl=b$1(n);let c=i.outFile.split(",").map(o=>o.trim()).filter(Boolean);n.log(`rendering ${t} \u2192 ${c.join(", ")}`);let I=performance.now();try{await o(t,{...i,signal:e.signal,onProgress:y=>n.updatePercent(y)});let o$1=((performance.now()-I)/1e3).toFixed(2);n.update(r),n.finish(`done: ${c.join(", ")} (${r} frames, ${i.width}x${i.height} @ ${i.fps}fps) in ${o$1}s`);}catch(o){n.finish(`error: ${o instanceof Error?o.message:String(o)}`);}finally{process.exit(s);}}});//# sourceMappingURL=cli.js.map
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24udHMiLCIuLi9zcmMvY2xpLnRzIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZVNvdXJjZSIsInMiLCJhYnMiLCJyZWFscGF0aFN5bmMiLCJyZXNvbHZlIiwibWFrZUNMSSIsIm9wdGlvbnMiLCJzaGFwZSIsIlJlbmRlclNjaGVtYSIsImQiLCJkZWZhdWx0UmVuZGVyT3B0aW9ucyIsInByb2dyYW0iLCJzb3VyY2UiLCJvcHRzIiwibm9lcnIiLCJwYXJzZU51bWJlciIsImUiLCJsb2dnZXIiLCJwYXJncyIsImN0cmwiLCJleGl0Q29kZSIsImMiLCJ0b3RhbCIsImJhciIsIlByb2dyZXNzQmFyIiwiYmFyTG9nZ2VyIiwib3V0cyIsInQwIiwicHVwIiwicCIsInNlYyJdLCJtYXBwaW5ncyI6IjJMQVlBLFNBQVNBLEVBQWdCQyxDQUFBQSxDQUFtQixDQUMxQyxHQUFJQSxDQUFBQSxDQUFFLFFBQUEsQ0FBUyxLQUFLLEdBQUtBLENBQUFBLENBQUUsVUFBQSxDQUFXLE9BQU8sQ0FBQSxDQUFHLE9BQU9BLENBQUFBLENBQ3ZELElBQUlDLENBQUFBLENBQ0osR0FBSSxDQUNGQSxDQUFBQSxDQUFNQyxZQUFBQSxDQUFhRixDQUFDLEVBQ3RCLENBQUEsS0FBUSxDQUNOQyxDQUFBQSxDQUFNRSxPQUFBQSxDQUFRSCxDQUFDLEVBQ2pCLENBQ0EsT0FBTyxDQUFBLE9BQUEsRUFBVUMsQ0FBRyxDQUFBLENBQ3RCLENBT0EsZUFBc0JHLENBQUFBLENBQVFDLENBQUFBLENBQXFCLENBQ2pELElBQU1DLENBQUFBLENBQVFDLENBQUFBLENBQWEsS0FBQSxDQUNyQkMsQ0FBQUEsQ0FBSUMsRUFDVkMsT0FBQUEsQ0FDRyxJQUFBLENBQUtMLENBQUFBLENBQVEsSUFBSSxDQUFBLENBQ2pCLFFBQUEsQ0FBUyxXQUFZLG9EQUFvRCxDQUFBLENBQ3pFLE1BQUEsQ0FBTyxzQkFBQSxDQUF3QkMsQ0FBQUEsQ0FBTSxLQUFBLENBQU0sWUFBYSxDQUFBLEVBQUdFLENBQUFBLENBQUUsS0FBSyxDQUFBLENBQUUsQ0FBQSxDQUNwRSxNQUFBLENBQU8sdUJBQUEsQ0FBeUJGLENBQUFBLENBQU0sTUFBQSxDQUFPLFdBQUEsQ0FBYSxDQUFBLEVBQUdFLENBQUFBLENBQUUsTUFBTSxDQUFBLENBQUUsRUFDdkUsTUFBQSxDQUFPLG9CQUFBLENBQXNCRixDQUFBQSxDQUFNLEdBQUEsQ0FBSSxXQUFBLENBQWEsQ0FBQSxFQUFHRSxFQUFFLEdBQUcsQ0FBQSxDQUFFLENBQUEsQ0FDOUQsTUFBQSxDQUFPLHlCQUFBLENBQTJCRixDQUFBQSxDQUFNLFNBQVMsV0FBQSxDQUFhLENBQUEsRUFBR0UsQ0FBQUEsQ0FBRSxRQUFRLENBQUEsQ0FBRSxDQUFBLENBQzdFLE1BQUEsQ0FBTyx1QkFBQSxDQUF5QkYsQ0FBQUEsQ0FBTSxPQUFBLENBQVEsV0FBQSxDQUFhRSxDQUFBQSxDQUFFLE9BQU8sQ0FBQSxDQUNwRSxPQUFPLGtCQUFBLENBQW9CRixDQUFBQSxDQUFNLFNBQUEsQ0FBVSxXQUFBLENBQWFFLENBQUFBLENBQUUsU0FBUyxFQUNuRSxNQUFBLENBQU8scUJBQUEsQ0FBdUJGLENBQUFBLENBQU0sYUFBQSxDQUFjLFdBQUEsQ0FBYUUsQ0FBQUEsQ0FBRSxhQUFhLENBQUEsQ0FDOUUsTUFBQSxDQUFPLG1CQUFBLENBQXFCRixDQUFBQSxDQUFNLGFBQUEsQ0FBYyxXQUFBLENBQWFFLENBQUFBLENBQUUsYUFBYSxDQUFBLENBQzVFLE1BQUEsQ0FBTyxlQUFBLENBQWlCRixDQUFBQSxDQUFNLFVBQUEsQ0FBVyxXQUFBLENBQWFFLEVBQUUsVUFBVSxDQUFBLENBQ2xFLE1BQUEsQ0FBTyxvQkFBQSxDQUFzQkYsQ0FBQUEsQ0FBTSxjQUFBLENBQWUsWUFBYUUsQ0FBQUEsQ0FBRSxjQUFjLENBQUEsQ0FDL0UsTUFBQSxDQUFPLG1CQUFBLENBQXFCRixDQUFBQSxDQUFNLGVBQWUsV0FBQSxDQUFhRSxDQUFBQSxDQUFFLGNBQWMsQ0FBQSxDQUM5RSxNQUFBLENBQU8sTUFBT0csQ0FBQUEsQ0FBZ0JDLENBQUFBLEdBQVMsQ0FDdEMsR0FBSSxDQUNGLE1BQU1QLENBQUFBLENBQVEsR0FBQSxDQUFJTixFQUFnQlksQ0FBTSxDQUFBLENBQUcsQ0FDekMsS0FBQSxDQUFPRSxDQUFBQSxDQUFNQyxDQUFBQSxDQUFhTixFQUFFLEtBQUssQ0FBQSxDQUFFSSxDQUFBQSxDQUFLLEtBQUssQ0FBQSxDQUM3QyxNQUFBLENBQVFDLEVBQU1DLENBQUFBLENBQWFOLENBQUFBLENBQUUsTUFBTSxDQUFBLENBQUVJLENBQUFBLENBQUssTUFBTSxDQUFBLENBQ2hELEdBQUEsQ0FBS0MsQ0FBQUEsQ0FBTUMsQ0FBQUEsQ0FBYU4sQ0FBQUEsQ0FBRSxHQUFHLENBQUEsQ0FBRUksQ0FBQUEsQ0FBSyxHQUFHLENBQUEsQ0FDdkMsUUFBQSxDQUFVQyxDQUFBQSxDQUFNQyxDQUFBQSxDQUFhTixDQUFBQSxDQUFFLFFBQVEsRUFBRUksQ0FBQUEsQ0FBSyxRQUFRLENBQUEsQ0FDdEQsT0FBQSxDQUFTQSxDQUFBQSxDQUFLLE9BQUEsRUFBV0osRUFBRSxPQUFBLENBQzNCLFNBQUEsQ0FBV0ksQ0FBQUEsQ0FBSyxTQUFBLEVBQWFKLENBQUFBLENBQUUsU0FBQSxDQUMvQixhQUFBLENBQWVJLENBQUFBLENBQUssYUFBQSxFQUFpQkosQ0FBQUEsQ0FBRSxhQUFBLENBQ3ZDLGFBQUEsQ0FBZUksQ0FBQUEsQ0FBSyxhQUFBLEVBQWlCSixFQUFFLGFBQUEsQ0FDdkMsVUFBQSxDQUFZSSxDQUFBQSxDQUFLLFVBQUEsRUFBY0osQ0FBQUEsQ0FBRSxVQUFBLENBQ2pDLGVBQWdCSSxDQUFBQSxDQUFLLGNBQUEsRUFBa0JKLENBQUFBLENBQUUsY0FBQSxDQUN6QyxjQUFBLENBQWdCSSxDQUFBQSxDQUFLLGdCQUFrQkosQ0FBQUEsQ0FBRSxjQUMzQyxDQUFDLEVBQ0gsQ0FBQSxNQUFTTyxDQUFBQSxDQUFHLENBQ1ZDLENBQUFBLENBQU8sS0FBQSxDQUFNRCxDQUFDLEVBQ2hCLENBQ0YsQ0FBQyxDQUFBLENBQ0gsTUFBTUwsT0FBQUEsQ0FBUSxVQUFBLENBQVdPLENBQUFBLEVBQU8sRUFDbEMsQ0MxREFiLEVBQVEsQ0FDTixJQUFBLENBQU0sS0FBQSxDQUNOLEdBQUEsQ0FBSyxNQUFPTyxDQUFBQSxDQUFRTixJQUFZLENBQzlCLElBQU1hLENBQUFBLENBQU8sSUFBSSxlQUFBLENBQ2JDLENBQUFBLENBQVcsQ0FBQSxDQUNmLE9BQUEsQ0FBUSxJQUFBLENBQUssU0FBQSxDQUFXLEtBQVFBLENBQUFBLENBQVcsR0FBQSxDQUFNRCxDQUFBQSxDQUFLLE1BQU0sSUFBSSxLQUFBLENBQU0sU0FBUyxDQUFDLENBQUEsQ0FBRSxDQUFBLENBQ2xGLFFBQVEsSUFBQSxDQUFLLFFBQUEsQ0FBVSxLQUFRQyxDQUFBQSxDQUFXLEdBQUEsQ0FBTUQsQ0FBQUEsQ0FBSyxNQUFNLElBQUksS0FBQSxDQUFNLFFBQVEsQ0FBQyxDQUFBLENBQUUsQ0FBQSxDQUNoRixPQUFBLENBQVEsSUFBQSxDQUFLLE1BQUEsQ0FBU0UsQ0FBQUEsR0FBUUQsQ0FBQUEsQ0FBV0MsQ0FBQUEsQ0FBSUYsQ0FBQUEsQ0FBSyxLQUFBLENBQU0sSUFBSSxLQUFBLENBQU0sU0FBUyxDQUFDLENBQUEsQ0FBRSxDQUFBLENBRTlFLElBQU1HLEVBQVEsSUFBQSxDQUFLLElBQUEsQ0FBS2hCLENBQUFBLENBQVEsR0FBQSxDQUFNQSxDQUFBQSxDQUFRLFFBQVEsRUFDaERpQixDQUFBQSxDQUFNLElBQUlDLENBQUFBLENBQVksQ0FBRSxLQUFBLENBQUFGLENBQUFBLENBQU8sR0FBQSxDQUFLLE9BQUEsQ0FBUSxNQUFBLENBQVEsU0FBQSxDQUFXLElBQUssQ0FBQyxDQUFBLENBQzNFTCxDQUFBQSxDQUFPLEtBQU9RLEdBQUFBLENBQVVGLENBQUcsQ0FBQSxDQUUzQixJQUFNRyxDQUFBQSxDQUFPcEIsQ0FBQUEsQ0FBUSxRQUNsQixLQUFBLENBQU0sR0FBRyxDQUFBLENBQ1QsR0FBQSxDQUFLTCxDQUFBQSxFQUFNQSxDQUFBQSxDQUFFLE1BQU0sQ0FBQSxDQUNuQixNQUFBLENBQU8sT0FBTyxDQUFBLENBQ2pCc0IsQ0FBQUEsQ0FBSSxHQUFBLENBQUksQ0FBQSxVQUFBLEVBQWFYLENBQU0sQ0FBQSxRQUFBLEVBQU1jLENBQUFBLENBQUssSUFBQSxDQUFLLElBQUksQ0FBQyxFQUFFLENBQUEsQ0FDbEQsSUFBTUMsQ0FBQUEsQ0FBSyxXQUFBLENBQVksR0FBQSxFQUFJLENBQzNCLEdBQUksQ0FDRixNQUFNQyxDQUFBQSxDQUFJaEIsQ0FBQUEsQ0FBUSxDQUNoQixHQUFHTixFQUNILE1BQUEsQ0FBUWEsQ0FBQUEsQ0FBSyxNQUFBLENBQ2IsVUFBQSxDQUFhVSxDQUFBQSxFQUFNTixDQUFBQSxDQUFJLGFBQUEsQ0FBY00sQ0FBQyxDQUN4QyxDQUFDLENBQUEsQ0FDRCxJQUFNQyxHQUFBQSxDQUFBQSxDQUFBQSxDQUFRLFdBQUEsQ0FBWSxLQUFJLENBQUlILENBQUFBLEVBQU0sR0FBQSxFQUFNLE9BQUEsQ0FBUSxDQUFDLENBQUEsQ0FDdkRKLEVBQUksTUFBQSxDQUFPRCxDQUFLLENBQUEsQ0FDaEJDLENBQUFBLENBQUksTUFBQSxDQUNGLENBQUEsTUFBQSxFQUFTRyxFQUFLLElBQUEsQ0FBSyxJQUFJLENBQUMsQ0FBQSxFQUFBLEVBQUtKLENBQUssQ0FBQSxTQUFBLEVBQVloQixDQUFBQSxDQUFRLEtBQUssQ0FBQSxDQUFBLEVBQUlBLENBQUFBLENBQVEsTUFBTSxDQUFBLEdBQUEsRUFBTUEsQ0FBQUEsQ0FBUSxHQUFHLFdBQVd3QixHQUFHLENBQUEsQ0FBQSxDQUM5RyxFQUNGLENBQUEsTUFBU2QsQ0FBQUEsQ0FBRyxDQUNWTyxFQUFJLE1BQUEsQ0FBTyxDQUFBLE9BQUEsRUFBVVAsQ0FBQUEsWUFBYSxLQUFBLENBQVFBLENBQUFBLENBQUUsT0FBQSxDQUFVLE9BQU9BLENBQUMsQ0FBQyxDQUFBLENBQUUsRUFDbkUsQ0FBQSxPQUFFLENBQ0EsT0FBQSxDQUFRLElBQUEsQ0FBS0ksQ0FBUSxFQUN2QixDQUNGLENBQ0YsQ0FBQyxDQUFBIiwiZmlsZSI6ImNsaS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMDkuXG5cbmltcG9ydCB7IHByb2dyYW0gfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgeyByZWFscGF0aFN5bmMgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vYmFzZS9sb2dnaW5nXCI7XG5pbXBvcnQgeyBub2VyciB9IGZyb20gXCIuL2Jhc2Uvbm9lcnJcIjtcbmltcG9ydCB7IHBhcnNlTnVtYmVyIH0gZnJvbSBcIi4vYmFzZS9wYXJzZXJcIjtcbmltcG9ydCB7IHBhcmdzIH0gZnJvbSBcIi4vYmFzZS9wcm9jZXNzXCI7XG5pbXBvcnQgeyBkZWZhdWx0UmVuZGVyT3B0aW9ucywgUmVuZGVyU2NoZW1hLCB0eXBlIFJlbmRlck9wdGlvbnMgfSBmcm9tIFwiLi9yZW5kZXJlci9zY2hlbWFcIjtcblxuLy8gU2NoZW1lZCBVUklzIHBhc3MgdGhyb3VnaDsgYmFyZSBwYXRocyBnZXQgY2Fub25pY2FsaXplZCBhbmQgd3JhcHBlZCBhcyBmaWxlOi8vLlxuZnVuY3Rpb24gbm9ybWFsaXplU291cmNlKHM6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChzLmluY2x1ZGVzKFwiOi8vXCIpIHx8IHMuc3RhcnRzV2l0aChcImRhdGE6XCIpKSByZXR1cm4gcztcbiAgbGV0IGFiczogc3RyaW5nO1xuICB0cnkge1xuICAgIGFicyA9IHJlYWxwYXRoU3luYyhzKTtcbiAgfSBjYXRjaCB7XG4gICAgYWJzID0gcmVzb2x2ZShzKTtcbiAgfVxuICByZXR1cm4gYGZpbGU6Ly8ke2Fic31gO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENMSU9wdGlvbnMge1xuICBuYW1lOiBzdHJpbmc7XG4gIHJ1bjogKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zOiBSZW5kZXJPcHRpb25zKSA9PiBQcm9taXNlPHVua25vd24+O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFrZUNMSShvcHRpb25zOiBDTElPcHRpb25zKSB7XG4gIGNvbnN0IHNoYXBlID0gUmVuZGVyU2NoZW1hLnNoYXBlO1xuICBjb25zdCBkID0gZGVmYXVsdFJlbmRlck9wdGlvbnM7XG4gIHByb2dyYW1cbiAgICAubmFtZShvcHRpb25zLm5hbWUpXG4gICAgLmFyZ3VtZW50KFwiPHNvdXJjZT5cIiwgXCJmaWxlOi8vLCBodHRwKHMpOi8vLCBkYXRhOiBVUkksIG9yIGZpbGVzeXN0ZW0gcGF0aFwiKVxuICAgIC5vcHRpb24oXCItVywgLS13aWR0aCA8bnVtYmVyPlwiLCBzaGFwZS53aWR0aC5kZXNjcmlwdGlvbiwgYCR7ZC53aWR0aH1gKVxuICAgIC5vcHRpb24oXCItSCwgLS1oZWlnaHQgPG51bWJlcj5cIiwgc2hhcGUuaGVpZ2h0LmRlc2NyaXB0aW9uLCBgJHtkLmhlaWdodH1gKVxuICAgIC5vcHRpb24oXCItZiwgLS1mcHMgPG51bWJlcj5cIiwgc2hhcGUuZnBzLmRlc2NyaXB0aW9uLCBgJHtkLmZwc31gKVxuICAgIC5vcHRpb24oXCItdCwgLS1kdXJhdGlvbiA8bnVtYmVyPlwiLCBzaGFwZS5kdXJhdGlvbi5kZXNjcmlwdGlvbiwgYCR7ZC5kdXJhdGlvbn1gKVxuICAgIC5vcHRpb24oXCItbywgLS1vdXQtZmlsZSA8cGF0aD5cIiwgc2hhcGUub3V0RmlsZS5kZXNjcmlwdGlvbiwgZC5vdXRGaWxlKVxuICAgIC5vcHRpb24oXCItYSwgLS13aXRoLWF1ZGlvXCIsIHNoYXBlLndpdGhBdWRpby5kZXNjcmlwdGlvbiwgZC53aXRoQXVkaW8pXG4gICAgLm9wdGlvbihcIi1kLCAtLWRldGVybWluaXN0aWNcIiwgc2hhcGUuZGV0ZXJtaW5pc3RpYy5kZXNjcmlwdGlvbiwgZC5kZXRlcm1pbmlzdGljKVxuICAgIC5vcHRpb24oXCItLXVzZS1pbm5lci1wcm94eVwiLCBzaGFwZS51c2VJbm5lclByb3h5LmRlc2NyaXB0aW9uLCBkLnVzZUlubmVyUHJveHkpXG4gICAgLm9wdGlvbihcIi0tZGlzYWJsZS1ncHVcIiwgc2hhcGUuZGlzYWJsZUdwdS5kZXNjcmlwdGlvbiwgZC5kaXNhYmxlR3B1KVxuICAgIC5vcHRpb24oXCItLWRpc2FibGUtaHctY29kZWNcIiwgc2hhcGUuZGlzYWJsZUh3Q29kZWMuZGVzY3JpcHRpb24sIGQuZGlzYWJsZUh3Q29kZWMpXG4gICAgLm9wdGlvbihcIi0td2luZG93LXRvbGVyYW50XCIsIHNoYXBlLndpbmRvd1RvbGVyYW50LmRlc2NyaXB0aW9uLCBkLndpbmRvd1RvbGVyYW50KVxuICAgIC5hY3Rpb24oYXN5bmMgKHNvdXJjZTogc3RyaW5nLCBvcHRzKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBvcHRpb25zLnJ1bihub3JtYWxpemVTb3VyY2Uoc291cmNlKSwge1xuICAgICAgICAgIHdpZHRoOiBub2VycihwYXJzZU51bWJlciwgZC53aWR0aCkob3B0cy53aWR0aCksXG4gICAgICAgICAgaGVpZ2h0OiBub2VycihwYXJzZU51bWJlciwgZC5oZWlnaHQpKG9wdHMuaGVpZ2h0KSxcbiAgICAgICAgICBmcHM6IG5vZXJyKHBhcnNlTnVtYmVyLCBkLmZwcykob3B0cy5mcHMpLFxuICAgICAgICAgIGR1cmF0aW9uOiBub2VycihwYXJzZU51bWJlciwgZC5kdXJhdGlvbikob3B0cy5kdXJhdGlvbiksXG4gICAgICAgICAgb3V0RmlsZTogb3B0cy5vdXRGaWxlID8/IGQub3V0RmlsZSxcbiAgICAgICAgICB3aXRoQXVkaW86IG9wdHMud2l0aEF1ZGlvID8/IGQud2l0aEF1ZGlvLFxuICAgICAgICAgIHVzZUlubmVyUHJveHk6IG9wdHMudXNlSW5uZXJQcm94eSA/PyBkLnVzZUlubmVyUHJveHksXG4gICAgICAgICAgZGV0ZXJtaW5pc3RpYzogb3B0cy5kZXRlcm1pbmlzdGljID8/IGQuZGV0ZXJtaW5pc3RpYyxcbiAgICAgICAgICBkaXNhYmxlR3B1OiBvcHRzLmRpc2FibGVHcHUgPz8gZC5kaXNhYmxlR3B1LFxuICAgICAgICAgIGRpc2FibGVId0NvZGVjOiBvcHRzLmRpc2FibGVId0NvZGVjID8/IGQuZGlzYWJsZUh3Q29kZWMsXG4gICAgICAgICAgd2luZG93VG9sZXJhbnQ6IG9wdHMud2luZG93VG9sZXJhbnQgPz8gZC53aW5kb3dUb2xlcmFudCxcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGxvZ2dlci5mYXRhbChlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgYXdhaXQgcHJvZ3JhbS5wYXJzZUFzeW5jKHBhcmdzKCkpO1xufVxuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wMi8yNS5cblxuaW1wb3J0IHsgYmFyTG9nZ2VyLCBQcm9ncmVzc0JhciB9IGZyb20gXCIuL2Jhc2UvY2xpX3VpXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9iYXNlL2xvZ2dpbmdcIjtcbmltcG9ydCB7IG1ha2VDTEkgfSBmcm9tIFwiLi9jb21tb25cIjtcbmltcG9ydCB7IHB1cCB9IGZyb20gXCIuL3B1cFwiO1xuXG5tYWtlQ0xJKHtcbiAgbmFtZTogXCJwdXBcIixcbiAgcnVuOiBhc3luYyAoc291cmNlLCBvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgY3RybCA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBsZXQgZXhpdENvZGUgPSAwO1xuICAgIHByb2Nlc3Mub25jZShcIlNJR1RFUk1cIiwgKCkgPT4gKChleGl0Q29kZSA9IDE0MyksIGN0cmwuYWJvcnQobmV3IEVycm9yKFwiU0lHVEVSTVwiKSkpKTtcbiAgICBwcm9jZXNzLm9uY2UoXCJTSUdJTlRcIiwgKCkgPT4gKChleGl0Q29kZSA9IDEzMCksIGN0cmwuYWJvcnQobmV3IEVycm9yKFwiU0lHSU5UXCIpKSkpO1xuICAgIHByb2Nlc3Mub25jZShcImV4aXRcIiwgKGMpID0+ICgoZXhpdENvZGUgPSBjKSwgY3RybC5hYm9ydChuZXcgRXJyb3IoXCJTSUdLSUxMXCIpKSkpO1xuXG4gICAgY29uc3QgdG90YWwgPSBNYXRoLmNlaWwob3B0aW9ucy5mcHMgKiBvcHRpb25zLmR1cmF0aW9uKTtcbiAgICBjb25zdCBiYXIgPSBuZXcgUHJvZ3Jlc3NCYXIoeyB0b3RhbCwgb3V0OiBwcm9jZXNzLnN0ZGVyciwgc2hvd0NvdW50OiB0cnVlIH0pO1xuICAgIGxvZ2dlci5pbXBsID0gYmFyTG9nZ2VyKGJhcik7XG5cbiAgICBjb25zdCBvdXRzID0gb3B0aW9ucy5vdXRGaWxlXG4gICAgICAuc3BsaXQoXCIsXCIpXG4gICAgICAubWFwKChzKSA9PiBzLnRyaW0oKSlcbiAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG4gICAgYmFyLmxvZyhgcmVuZGVyaW5nICR7c291cmNlfSDihpIgJHtvdXRzLmpvaW4oXCIsIFwiKX1gKTtcbiAgICBjb25zdCB0MCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBwdXAoc291cmNlLCB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHNpZ25hbDogY3RybC5zaWduYWwsXG4gICAgICAgIG9uUHJvZ3Jlc3M6IChwKSA9PiBiYXIudXBkYXRlUGVyY2VudChwKSxcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgc2VjID0gKChwZXJmb3JtYW5jZS5ub3coKSAtIHQwKSAvIDEwMDApLnRvRml4ZWQoMik7XG4gICAgICBiYXIudXBkYXRlKHRvdGFsKTtcbiAgICAgIGJhci5maW5pc2goXG4gICAgICAgIGBkb25lOiAke291dHMuam9pbihcIiwgXCIpfSAoJHt0b3RhbH0gZnJhbWVzLCAke29wdGlvbnMud2lkdGh9eCR7b3B0aW9ucy5oZWlnaHR9IEAgJHtvcHRpb25zLmZwc31mcHMpIGluICR7c2VjfXNgLFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBiYXIuZmluaXNoKGBlcnJvcjogJHtlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSl9YCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHByb2Nlc3MuZXhpdChleGl0Q29kZSk7XG4gICAgfVxuICB9LFxufSk7XG4iXX0=
1
+ import'source-map-support/register.js';import {n,o,g,d,f,h,a,b as b$1,p}from'./chunk-XRCHOYPZ.js';import {realpathSync}from'fs';import {resolve}from'path';import {program}from'commander';function G(r){if(r.includes("://")||r.startsWith("data:"))return r;let e;try{e=realpathSync(r);}catch{e=resolve(r);}return `file://${e}`}async function b(r){let e=n.shape,i=o;program.name(r.name).argument("<source>","file://, http(s)://, data: URI, or filesystem path").option("-W, --width <number>",e.width.description,`${i.width}`).option("-H, --height <number>",e.height.description,`${i.height}`).option("-f, --fps <number>",e.fps.description,`${i.fps}`).option("-t, --duration <number>",e.duration.description,`${i.duration}`).option("-o, --out-file <path>",e.outFile.description,i.outFile).option("-a, --with-audio",e.withAudio.description,i.withAudio).option("-d, --deterministic",e.deterministic.description,i.deterministic).option("--use-inner-proxy",e.useInnerProxy.description,i.useInnerProxy).option("--disable-gpu",e.disableGpu.description,i.disableGpu).option("--disable-hw-codec",e.disableHwCodec.description,i.disableHwCodec).option("--window-tolerant",e.windowTolerant.description,i.windowTolerant).option("--window-timeout <number>",e.windowTimeout.description,`${i.windowTimeout}`).action(async(s,o)=>{try{await r.run(G(s),{width:g(d,i.width)(o.width),height:g(d,i.height)(o.height),fps:g(d,i.fps)(o.fps),duration:g(d,i.duration)(o.duration),outFile:o.outFile??i.outFile,withAudio:o.withAudio??i.withAudio,useInnerProxy:o.useInnerProxy??i.useInnerProxy,deterministic:o.deterministic??i.deterministic,disableGpu:o.disableGpu??i.disableGpu,disableHwCodec:o.disableHwCodec??i.disableHwCodec,windowTolerant:o.windowTolerant??i.windowTolerant,windowTimeout:g(d,i.windowTimeout)(o.windowTimeout)});}catch(n){f.fatal(n);}}),await program.parseAsync(h());}b({name:"pup",run:async(r,e)=>{let i=new AbortController,s=0;process.once("SIGTERM",()=>{s=143,i.abort(new Error("SIGTERM"));}),process.once("SIGINT",()=>{s=130,i.abort(new Error("SIGINT"));}),process.once("exit",t=>{s=t,i.abort(new Error("SIGKILL"));});let o=Math.ceil(e.fps*e.duration),n=new a({total:o,out:process.stderr,showCount:true});f.impl=b$1(n);let c=e.outFile.split(",").map(t=>t.trim()).filter(Boolean);n.log(`rendering ${r} \u2192 ${c.join(", ")}`);let I=performance.now();try{await p(r,{...e,signal:i.signal,onProgress:y=>n.updatePercent(y)});let t=((performance.now()-I)/1e3).toFixed(2);n.update(o),n.finish(`done: ${c.join(", ")} (${o} frames, ${e.width}x${e.height} @ ${e.fps}fps) in ${t}s`);}catch(t){n.finish(`error: ${t instanceof Error?t.message:String(t)}`);}finally{process.exit(s);}}});//# sourceMappingURL=cli.js.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24udHMiLCIuLi9zcmMvY2xpLnRzIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZVNvdXJjZSIsInMiLCJhYnMiLCJyZWFscGF0aFN5bmMiLCJyZXNvbHZlIiwibWFrZUNMSSIsIm9wdGlvbnMiLCJzaGFwZSIsInJlbmRlclNjaGVtYSIsImQiLCJkZWZhdWx0UmVuZGVyT3B0aW9ucyIsInByb2dyYW0iLCJzb3VyY2UiLCJvcHRzIiwibm9lcnIiLCJwYXJzZU51bWJlciIsImUiLCJsb2dnZXIiLCJwYXJncyIsImN0cmwiLCJleGl0Q29kZSIsImMiLCJ0b3RhbCIsImJhciIsIlByb2dyZXNzQmFyIiwiYmFyTG9nZ2VyIiwib3V0cyIsInQwIiwicHVwIiwicCIsInNlYyJdLCJtYXBwaW5ncyI6IjJMQVlBLFNBQVNBLENBQUFBLENBQWdCQyxFQUFtQixDQUMxQyxHQUFJQSxDQUFBQSxDQUFFLFFBQUEsQ0FBUyxLQUFLLENBQUEsRUFBS0EsQ0FBQUEsQ0FBRSxVQUFBLENBQVcsT0FBTyxDQUFBLENBQzNDLE9BQU9BLENBQUFBLENBRVQsSUFBSUMsQ0FBQUEsQ0FDSixHQUFJLENBQ0ZBLENBQUFBLENBQU1DLFlBQUFBLENBQWFGLENBQUMsRUFDdEIsQ0FBQSxLQUFRLENBQ05DLENBQUFBLENBQU1FLE9BQUFBLENBQVFILENBQUMsRUFDakIsQ0FDQSxPQUFPLENBQUEsT0FBQSxFQUFVQyxDQUFHLENBQUEsQ0FDdEIsQ0FPQSxlQUFzQkcsQ0FBQUEsQ0FBUUMsQ0FBQUEsQ0FBcUIsQ0FDakQsSUFBTUMsQ0FBQUEsQ0FBUUMsQ0FBQUEsQ0FBYSxLQUFBLENBQ3JCQyxDQUFBQSxDQUFJQyxDQUFBQSxDQUNWQyxPQUFBQSxDQUNHLElBQUEsQ0FBS0wsQ0FBQUEsQ0FBUSxJQUFJLENBQUEsQ0FDakIsUUFBQSxDQUFTLFVBQUEsQ0FBWSxvREFBb0QsQ0FBQSxDQUN6RSxNQUFBLENBQU8sc0JBQUEsQ0FBd0JDLENBQUFBLENBQU0sS0FBQSxDQUFNLFdBQUEsQ0FB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LE1BQU0sQ0FBQSxHQUFBLEVBQU1BLEVBQVEsR0FBRyxDQUFBLFFBQUEsRUFBV3dCLENBQUcsQ0FBQSxDQUFBLENBQzlHLEVBQ0YsQ0FBQSxNQUFTZCxDQUFBQSxDQUFHLENBQ1ZPLENBQUFBLENBQUksTUFBQSxDQUFPLENBQUEsT0FBQSxFQUFVUCxDQUFBQSxZQUFhLEtBQUEsQ0FBUUEsQ0FBQUEsQ0FBRSxPQUFBLENBQVUsTUFBQSxDQUFPQSxDQUFDLENBQUMsQ0FBQSxDQUFFLEVBQ25FLENBQUEsT0FBRSxDQUNBLE9BQUEsQ0FBUSxJQUFBLENBQUtJLENBQVEsRUFDdkIsQ0FDRixDQUNGLENBQUMsQ0FBQSIsImZpbGUiOiJjbGkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzA5LlxuXG5pbXBvcnQgeyByZWFscGF0aFN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IHByb2dyYW0gfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9iYXNlL2xvZ2dpbmdcIjtcbmltcG9ydCB7IG5vZXJyIH0gZnJvbSBcIi4vYmFzZS9ub2VyclwiO1xuaW1wb3J0IHsgcGFyc2VOdW1iZXIgfSBmcm9tIFwiLi9iYXNlL3BhcnNlclwiO1xuaW1wb3J0IHsgcGFyZ3MgfSBmcm9tIFwiLi9iYXNlL3Byb2Nlc3NcIjtcbmltcG9ydCB7IGRlZmF1bHRSZW5kZXJPcHRpb25zLCB0eXBlIFJlbmRlck9wdGlvbnMsIHJlbmRlclNjaGVtYSB9IGZyb20gXCIuL3JlbmRlcmVyL3NjaGVtYVwiO1xuXG4vLyBTY2hlbWVkIFVSSXMgcGFzcyB0aHJvdWdoOyBiYXJlIHBhdGhzIGdldCBjYW5vbmljYWxpemVkIGFuZCB3cmFwcGVkIGFzIGZpbGU6Ly8uXG5mdW5jdGlvbiBub3JtYWxpemVTb3VyY2Uoczogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHMuaW5jbHVkZXMoXCI6Ly9cIikgfHwgcy5zdGFydHNXaXRoKFwiZGF0YTpcIikpIHtcbiAgICByZXR1cm4gcztcbiAgfVxuICBsZXQgYWJzOiBzdHJpbmc7XG4gIHRyeSB7XG4gICAgYWJzID0gcmVhbHBhdGhTeW5jKHMpO1xuICB9IGNhdGNoIHtcbiAgICBhYnMgPSByZXNvbHZlKHMpO1xuICB9XG4gIHJldHVybiBgZmlsZTovLyR7YWJzfWA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ0xJT3B0aW9ucyB7XG4gIG5hbWU6IHN0cmluZztcbiAgcnVuOiAoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM6IFJlbmRlck9wdGlvbnMpID0+IFByb21pc2U8dW5rbm93bj47XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWtlQ0xJKG9wdGlvbnM6IENMSU9wdGlvbnMpIHtcbiAgY29uc3Qgc2hhcGUgPSByZW5kZXJTY2hlbWEuc2hhcGU7XG4gIGNvbnN0IGQgPSBkZWZhdWx0UmVuZGVyT3B0aW9ucztcbiAgcHJvZ3JhbVxuICAgIC5uYW1lKG9wdGlvbnMubmFtZSlcbiAgICAuYXJndW1lbnQoXCI8c291cmNlPlwiLCBcImZpbGU6Ly8sIGh0dHAocyk6Ly8sIGRhdGE6IFVSSSwgb3IgZmlsZXN5c3RlbSBwYXRoXCIpXG4gICAgLm9wdGlvbihcIi1XLCAtLXdpZHRoIDxudW1iZXI+XCIsIHNoYXBlLndpZHRoLmRlc2NyaXB0aW9uLCBgJHtkLndpZHRofWApXG4gICAgLm9wdGlvbihcIi1ILCAtLWhlaWdodCA8bnVtYmVyPlwiLCBzaGFwZS5oZWlnaHQuZGVzY3JpcHRpb24sIGAke2QuaGVpZ2h0fWApXG4gICAgLm9wdGlvbihcIi1mLCAtLWZwcyA8bnVtYmVyPlwiLCBzaGFwZS5mcHMuZGVzY3JpcHRpb24sIGAke2QuZnBzfWApXG4gICAgLm9wdGlvbihcIi10LCAtLWR1cmF0aW9uIDxudW1iZXI+XCIsIHNoYXBlLmR1cmF0aW9uLmRlc2NyaXB0aW9uLCBgJHtkLmR1cmF0aW9ufWApXG4gICAgLm9wdGlvbihcIi1vLCAtLW91dC1maWxlIDxwYXRoPlwiLCBzaGFwZS5vdXRGaWxlLmRlc2NyaXB0aW9uLCBkLm91dEZpbGUpXG4gICAgLm9wdGlvbihcIi1hLCAtLXdpdGgtYXVkaW9cIiwgc2hhcGUud2l0aEF1ZGlvLmRlc2NyaXB0aW9uLCBkLndpdGhBdWRpbylcbiAgICAub3B0aW9uKFwiLWQsIC0tZGV0ZXJtaW5pc3RpY1wiLCBzaGFwZS5kZXRlcm1pbmlzdGljLmRlc2NyaXB0aW9uLCBkLmRldGVybWluaXN0aWMpXG4gICAgLm9wdGlvbihcIi0tdXNlLWlubmVyLXByb3h5XCIsIHNoYXBlLnVzZUlubmVyUHJveHkuZGVzY3JpcHRpb24sIGQudXNlSW5uZXJQcm94eSlcbiAgICAub3B0aW9uKFwiLS1kaXNhYmxlLWdwdVwiLCBzaGFwZS5kaXNhYmxlR3B1LmRlc2NyaXB0aW9uLCBkLmRpc2FibGVHcHUpXG4gICAgLm9wdGlvbihcIi0tZGlzYWJsZS1ody1jb2RlY1wiLCBzaGFwZS5kaXNhYmxlSHdDb2RlYy5kZXNjcmlwdGlvbiwgZC5kaXNhYmxlSHdDb2RlYylcbiAgICAub3B0aW9uKFwiLS13aW5kb3ctdG9sZXJhbnRcIiwgc2hhcGUud2luZG93VG9sZXJhbnQuZGVzY3JpcHRpb24sIGQud2luZG93VG9sZXJhbnQpXG4gICAgLm9wdGlvbihcIi0td2luZG93LXRpbWVvdXQgPG51bWJlcj5cIiwgc2hhcGUud2luZG93VGltZW91dC5kZXNjcmlwdGlvbiwgYCR7ZC53aW5kb3dUaW1lb3V0fWApXG4gICAgLmFjdGlvbihhc3luYyAoc291cmNlOiBzdHJpbmcsIG9wdHMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IG9wdGlvbnMucnVuKG5vcm1hbGl6ZVNvdXJjZShzb3VyY2UpLCB7XG4gICAgICAgICAgd2lkdGg6IG5vZXJyKHBhcnNlTnVtYmVyLCBkLndpZHRoKShvcHRzLndpZHRoKSxcbiAgICAgICAgICBoZWlnaHQ6IG5vZXJyKHBhcnNlTnVtYmVyLCBkLmhlaWdodCkob3B0cy5oZWlnaHQpLFxuICAgICAgICAgIGZwczogbm9lcnIocGFyc2VOdW1iZXIsIGQuZnBzKShvcHRzLmZwcyksXG4gICAgICAgICAgZHVyYXRpb246IG5vZXJyKHBhcnNlTnVtYmVyLCBkLmR1cmF0aW9uKShvcHRzLmR1cmF0aW9uKSxcbiAgICAgICAgICBvdXRGaWxlOiBvcHRzLm91dEZpbGUgPz8gZC5vdXRGaWxlLFxuICAgICAgICAgIHdpdGhBdWRpbzogb3B0cy53aXRoQXVkaW8gPz8gZC53aXRoQXVkaW8sXG4gICAgICAgICAgdXNlSW5uZXJQcm94eTogb3B0cy51c2VJbm5lclByb3h5ID8/IGQudXNlSW5uZXJQcm94eSxcbiAgICAgICAgICBkZXRlcm1pbmlzdGljOiBvcHRzLmRldGVybWluaXN0aWMgPz8gZC5kZXRlcm1pbmlzdGljLFxuICAgICAgICAgIGRpc2FibGVHcHU6IG9wdHMuZGlzYWJsZUdwdSA/PyBkLmRpc2FibGVHcHUsXG4gICAgICAgICAgZGlzYWJsZUh3Q29kZWM6IG9wdHMuZGlzYWJsZUh3Q29kZWMgPz8gZC5kaXNhYmxlSHdDb2RlYyxcbiAgICAgICAgICB3aW5kb3dUb2xlcmFudDogb3B0cy53aW5kb3dUb2xlcmFudCA/PyBkLndpbmRvd1RvbGVyYW50LFxuICAgICAgICAgIHdpbmRvd1RpbWVvdXQ6IG5vZXJyKHBhcnNlTnVtYmVyLCBkLndpbmRvd1RpbWVvdXQpKG9wdHMud2luZG93VGltZW91dCksXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBsb2dnZXIuZmF0YWwoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIGF3YWl0IHByb2dyYW0ucGFyc2VBc3luYyhwYXJncygpKTtcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMjUuXG5cbmltcG9ydCB7IGJhckxvZ2dlciwgUHJvZ3Jlc3NCYXIgfSBmcm9tIFwiLi9iYXNlL2NsaV91aVwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vYmFzZS9sb2dnaW5nXCI7XG5pbXBvcnQgeyBtYWtlQ0xJIH0gZnJvbSBcIi4vY29tbW9uXCI7XG5pbXBvcnQgeyBwdXAgfSBmcm9tIFwiLi9wdXBcIjtcblxubWFrZUNMSSh7XG4gIG5hbWU6IFwicHVwXCIsXG4gIHJ1bjogYXN5bmMgKHNvdXJjZSwgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IGN0cmwgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgbGV0IGV4aXRDb2RlID0gMDtcbiAgICBwcm9jZXNzLm9uY2UoXCJTSUdURVJNXCIsICgpID0+IHtcbiAgICAgIGV4aXRDb2RlID0gMTQzO1xuICAgICAgY3RybC5hYm9ydChuZXcgRXJyb3IoXCJTSUdURVJNXCIpKTtcbiAgICB9KTtcbiAgICBwcm9jZXNzLm9uY2UoXCJTSUdJTlRcIiwgKCkgPT4ge1xuICAgICAgZXhpdENvZGUgPSAxMzA7XG4gICAgICBjdHJsLmFib3J0KG5ldyBFcnJvcihcIlNJR0lOVFwiKSk7XG4gICAgfSk7XG4gICAgcHJvY2Vzcy5vbmNlKFwiZXhpdFwiLCAoYykgPT4ge1xuICAgICAgZXhpdENvZGUgPSBjO1xuICAgICAgY3RybC5hYm9ydChuZXcgRXJyb3IoXCJTSUdLSUxMXCIpKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRvdGFsID0gTWF0aC5jZWlsKG9wdGlvbnMuZnBzICogb3B0aW9ucy5kdXJhdGlvbik7XG4gICAgY29uc3QgYmFyID0gbmV3IFByb2dyZXNzQmFyKHsgdG90YWwsIG91dDogcHJvY2Vzcy5zdGRlcnIsIHNob3dDb3VudDogdHJ1ZSB9KTtcbiAgICBsb2dnZXIuaW1wbCA9IGJhckxvZ2dlcihiYXIpO1xuXG4gICAgY29uc3Qgb3V0cyA9IG9wdGlvbnMub3V0RmlsZVxuICAgICAgLnNwbGl0KFwiLFwiKVxuICAgICAgLm1hcCgocykgPT4gcy50cmltKCkpXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pO1xuICAgIGJhci5sb2coYHJlbmRlcmluZyAke3NvdXJjZX0g4oaSICR7b3V0cy5qb2luKFwiLCBcIil9YCk7XG4gICAgY29uc3QgdDAgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcHVwKHNvdXJjZSwge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBzaWduYWw6IGN0cmwuc2lnbmFsLFxuICAgICAgICBvblByb2dyZXNzOiAocCkgPT4gYmFyLnVwZGF0ZVBlcmNlbnQocCksXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHNlYyA9ICgocGVyZm9ybWFuY2Uubm93KCkgLSB0MCkgLyAxMDAwKS50b0ZpeGVkKDIpO1xuICAgICAgYmFyLnVwZGF0ZSh0b3RhbCk7XG4gICAgICBiYXIuZmluaXNoKFxuICAgICAgICBgZG9uZTogJHtvdXRzLmpvaW4oXCIsIFwiKX0gKCR7dG90YWx9IGZyYW1lcywgJHtvcHRpb25zLndpZHRofXgke29wdGlvbnMuaGVpZ2h0fSBAICR7b3B0aW9ucy5mcHN9ZnBzKSBpbiAke3NlY31zYCxcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYmFyLmZpbmlzaChgZXJyb3I6ICR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpfWApO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBwcm9jZXNzLmV4aXQoZXhpdENvZGUpO1xuICAgIH1cbiAgfSxcbn0pO1xuIl19
package/dist/index.d.ts CHANGED
@@ -2,22 +2,23 @@ export { barLogger } from './_tsup-dts-rollup.js';
2
2
  export { ProgressBar } from './_tsup-dts-rollup.js';
3
3
  export { penv } from './_tsup-dts-rollup.js';
4
4
  export { Lazy } from './_tsup-dts-rollup.js';
5
- export { logger } from './_tsup-dts-rollup.js';
6
5
  export { Logger } from './_tsup-dts-rollup.js';
7
6
  export { LoggerLike } from './_tsup-dts-rollup.js';
7
+ export { logger } from './_tsup-dts-rollup.js';
8
8
  export { noerr } from './_tsup-dts-rollup.js';
9
9
  export { parseNumber } from './_tsup-dts-rollup.js';
10
- export { useRetry } from './_tsup-dts-rollup.js';
11
10
  export { RetryOptions } from './_tsup-dts-rollup.js';
11
+ export { useRetry } from './_tsup-dts-rollup.js';
12
12
  export { periodical } from './_tsup-dts-rollup.js';
13
13
  export { sleep } from './_tsup-dts-rollup.js';
14
- export { pup } from './_tsup-dts-rollup.js';
15
14
  export { PupOptions } from './_tsup-dts-rollup.js';
16
15
  export { PupResult } from './_tsup-dts-rollup.js';
16
+ export { pup } from './_tsup-dts-rollup.js';
17
17
  export { DEFAULT_DURATION } from './_tsup-dts-rollup.js';
18
18
  export { DEFAULT_FPS } from './_tsup-dts-rollup.js';
19
19
  export { DEFAULT_HEIGHT } from './_tsup-dts-rollup.js';
20
20
  export { DEFAULT_WIDTH } from './_tsup-dts-rollup.js';
21
+ export { DEFAULT_WINDOW_TIMEOUT } from './_tsup-dts-rollup.js';
21
22
  export { ProgressCallback } from './_tsup-dts-rollup.js';
22
23
  export { RenderOptions } from './_tsup-dts-rollup.js';
23
24
  export { RenderResult } from './_tsup-dts-rollup.js';
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import'source-map-support/register.js';export{l as DEFAULT_DURATION,k as DEFAULT_FPS,j as DEFAULT_HEIGHT,i as DEFAULT_WIDTH,e as Logger,a as ProgressBar,b as barLogger,f as logger,g as noerr,d as parseNumber,c as penv,o as pup}from'./chunk-YJ7QEMFY.js';import {setTimeout as setTimeout$1}from'timers/promises';var a=class{constructor(e){this.makeValue=e;}makeValue;get value(){return this._initialized||(this._value=this.makeValue(),this._initialized=true),this._value}get initialized(){return this._initialized}_initialized=false;_value};function l(r){return new Promise(e=>setTimeout(e,r))}function P(r,e){let t,o=false;async function i(n){await r(n),!o&&(t=setTimeout(()=>i(n+1),e));}return t=setTimeout(()=>i(0),e),()=>{o=true,clearTimeout(t);}}function _({fn:r,maxAttempts:e=3,timeout:t,signal:o}){let i=new Error(`timeout over ${t}ms`);return async function(...n){let u=0;for(;;){o?.throwIfAborted();try{let s=[r(...n)];return t&&s.push(setTimeout$1(t).then(()=>{throw i})),await Promise.race(s)}catch(s){if(o?.throwIfAborted(),u++,u>=e)throw s;await l(Math.pow(2,u)*100+Math.random()*100);}}}}export{a as Lazy,P as periodical,l as sleep,_ as useRetry};//# sourceMappingURL=index.js.map
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlL2xhenkudHMiLCIuLi9zcmMvYmFzZS90aW1pbmcudHMiLCIuLi9zcmMvYmFzZS9yZXRyeS50cyJdLCJuYW1lcyI6WyJMYXp5IiwibWFrZVZhbHVlIiwic2xlZXAiLCJtcyIsInJlc29sdmUiLCJwZXJpb2RpY2FsIiwiY2FsbGJhY2siLCJ0b2tlbiIsImNsb3NlZCIsInRpY2siLCJjb3VudCIsInVzZVJldHJ5IiwiZm4iLCJtYXhBdHRlbXB0cyIsInRpbWVvdXQiLCJzaWduYWwiLCJ0aW1lb3V0RXJyb3IiLCJhcmdzIiwiYXR0ZW1wdCIsInByb21pc2VzIiwic2V0VGltZW91dCIsImUiXSwibWFwcGluZ3MiOiJzVEFFTyxJQUFNQSxDQUFBQSxDQUFOLEtBQWMsQ0FDbkIsV0FBQSxDQUFxQkMsRUFBb0IsQ0FBcEIsSUFBQSxDQUFBLFNBQUEsQ0FBQUEsRUFBcUIsQ0FBckIsU0FBQSxDQUVyQixJQUFJLEtBQUEsRUFBVyxDQUNiLE9BQUssSUFBQSxDQUFLLFlBQUEsR0FDUixLQUFLLE1BQUEsQ0FBUyxJQUFBLENBQUssV0FBVSxDQUM3QixJQUFBLENBQUssYUFBZSxJQUFBLENBQUEsQ0FFZixJQUFBLENBQUssTUFDZCxDQUVBLElBQUksYUFBdUIsQ0FDekIsT0FBTyxLQUFLLFlBQ2QsQ0FFUSxhQUFlLEtBQUEsQ0FDZixNQUNWLEVDakJPLFNBQVNDLENBQUFBLENBQU1DLENBQUFBLENBQVksQ0FDaEMsT0FBTyxJQUFJLE9BQUEsQ0FBZUMsQ0FBQUEsRUFBWSxXQUFXQSxDQUFBQSxDQUFTRCxDQUFFLENBQUMsQ0FDL0QsQ0FTTyxTQUFTRSxDQUFBQSxDQUFXQyxDQUFBQSxDQUFtREgsRUFBWSxDQUN4RixJQUFJSSxFQUNBQyxDQUFBQSxDQUFTLEtBQUEsQ0FDYixlQUFlQyxDQUFBQSxDQUFLQyxDQUFBQSxDQUFlLENBQ2pDLE1BQU1KLENBQUFBLENBQVNJLENBQUssRUFDaEIsQ0FBQUYsQ0FBQUEsR0FDSkQsRUFBUSxVQUFBLENBQVcsSUFBTUUsRUFBS0MsQ0FBQUEsQ0FBUSxDQUFDLEVBQUdQLENBQUUsQ0FBQSxFQUM5QyxDQUNBLE9BQUFJLENBQUFBLENBQVEsV0FBVyxJQUFNRSxDQUFBQSxDQUFLLENBQUMsQ0FBQSxDQUFHTixDQUFFLENBQUEsQ0FDN0IsSUFBTSxDQUNYSyxDQUFBQSxDQUFTLEtBQ1QsWUFBQSxDQUFhRCxDQUFLLEVBQ3BCLENBQ0YsQ0NaTyxTQUFTSSxDQUFBQSxDQUFrQyxDQUFFLEdBQUFDLENBQUFBLENBQUksV0FBQSxDQUFBQyxFQUFjLENBQUEsQ0FBRyxPQUFBLENBQUFDLEVBQVMsTUFBQSxDQUFBQyxDQUFPLEVBQTRCLENBQ25ILElBQU1DLEVBQWUsSUFBSSxLQUFBLENBQU0sZ0JBQWdCRixDQUFPLENBQUEsRUFBQSxDQUFJLEVBQzFELE9BQU8sZUFBQSxHQUFtQkcsRUFBWSxDQUNwQyxJQUFJQyxFQUFVLENBQUEsQ0FDZCxPQUFhLENBQ1hILENBQUFBLEVBQVEsY0FBQSxHQUNSLEdBQUksQ0FDRixJQUFNSSxDQUFBQSxDQUFXLENBQUNQLENBQUFBLENBQUcsR0FBR0ssQ0FBSSxDQUFDLEVBQzdCLE9BQUlILENBQUFBLEVBQ0ZLLEVBQVMsSUFBQSxDQUNQQyxZQUFBQSxDQUFXTixDQUFPLENBQUEsQ0FBRSxJQUFBLENBQUssSUFBTSxDQUM3QixNQUFNRSxDQUNSLENBQUMsQ0FDSCxFQUVLLE1BQU0sT0FBQSxDQUFRLEtBQUtHLENBQVEsQ0FDcEMsQ0FBQSxNQUFTRSxDQUFBQSxDQUFHLENBR1YsR0FGQU4sR0FBUSxjQUFBLEVBQWUsQ0FDdkJHLElBQ0lBLENBQUFBLEVBQVdMLENBQUFBLENBQ2IsTUFBTVEsQ0FBQUEsQ0FFUixNQUFNbkIsRUFBTSxJQUFBLENBQUssR0FBQSxDQUFJLEVBQUdnQixDQUFPLENBQUEsQ0FBSSxJQUFNLElBQUEsQ0FBSyxNQUFBLEdBQVcsR0FBRyxFQUM5RCxDQUNGLENBQ0YsQ0FDRiIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDEvMzAuXG5cbmV4cG9ydCBjbGFzcyBMYXp5PFQ+IHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgbWFrZVZhbHVlOiAoKSA9PiBUKSB7fVxuXG4gIGdldCB2YWx1ZSgpOiBUIHtcbiAgICBpZiAoIXRoaXMuX2luaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMubWFrZVZhbHVlKCk7XG4gICAgICB0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl92YWx1ZSE7XG4gIH1cblxuICBnZXQgaW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2luaXRpYWxpemVkO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdmFsdWU6IFQgfCB1bmRlZmluZWQ7XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzA5LlxuXG5leHBvcnQgZnVuY3Rpb24gc2xlZXAobXM6IG51bWJlcikge1xuICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhUaW1lb3V0PFQ+KHA6IFByb21pc2U8VD4sIG1zOiBudW1iZXIsIGxhYmVsOiBzdHJpbmcpOiBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KG5ldyBFcnJvcihgJHtsYWJlbH0gdGltZWQgb3V0IGFmdGVyICR7bXN9bXNgKSksIG1zKTtcbiAgICBwLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KS5maW5hbGx5KCgpID0+IGNsZWFyVGltZW91dCh0aW1lcikpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBlcmlvZGljYWwoY2FsbGJhY2s6IChjb3VudDogbnVtYmVyKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZCwgbXM6IG51bWJlcikge1xuICBsZXQgdG9rZW46IE5vZGVKUy5UaW1lb3V0O1xuICBsZXQgY2xvc2VkID0gZmFsc2U7XG4gIGFzeW5jIGZ1bmN0aW9uIHRpY2soY291bnQ6IG51bWJlcikge1xuICAgIGF3YWl0IGNhbGxiYWNrKGNvdW50KTtcbiAgICBpZiAoY2xvc2VkKSByZXR1cm47XG4gICAgdG9rZW4gPSBzZXRUaW1lb3V0KCgpID0+IHRpY2soY291bnQgKyAxKSwgbXMpO1xuICB9XG4gIHRva2VuID0gc2V0VGltZW91dCgoKSA9PiB0aWNrKDApLCBtcyk7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgY2xvc2VkID0gdHJ1ZTtcbiAgICBjbGVhclRpbWVvdXQodG9rZW4pO1xuICB9O1xufVxuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wMi8wNS5cblxuaW1wb3J0IHsgc2V0VGltZW91dCB9IGZyb20gXCJ0aW1lcnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IHNsZWVwIH0gZnJvbSBcIi4vdGltaW5nXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlPcHRpb25zPEFyZ3MgZXh0ZW5kcyBhbnlbXSwgUmV0PiB7XG4gIGZuOiAoLi4uYXJnczogQXJncykgPT4gUHJvbWlzZTxSZXQ+O1xuICBtYXhBdHRlbXB0cz86IG51bWJlcjtcbiAgdGltZW91dD86IG51bWJlcjtcbiAgLy8gV2hlbiBwcm92aWRlZCwgdXNlUmV0cnkgYmFpbHMgb3V0IGltbWVkaWF0ZWx5IG9uIGFib3J0IGluc3RlYWQgb2YgcmV0cnlpbmcuIFRoZSBzaWduYWxcbiAgLy8gaXMgbm90IGF1dG8tdGhyZWFkZWQgaW50byBmbiDigJQgY2FsbGVyIG11c3Qgd2lyZSBpdCB3aGVyZSBpdCBtYXR0ZXJzIChlLmcuIGZldGNoLCBTMyBzZW5kKS5cbiAgc2lnbmFsPzogQWJvcnRTaWduYWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VSZXRyeTxBcmdzIGV4dGVuZHMgYW55W10sIFJldD4oeyBmbiwgbWF4QXR0ZW1wdHMgPSAzLCB0aW1lb3V0LCBzaWduYWwgfTogUmV0cnlPcHRpb25zPEFyZ3MsIFJldD4pIHtcbiAgY29uc3QgdGltZW91dEVycm9yID0gbmV3IEVycm9yKGB0aW1lb3V0IG92ZXIgJHt0aW1lb3V0fW1zYCk7XG4gIHJldHVybiBhc3luYyBmdW5jdGlvbiAoLi4uYXJnczogQXJncykge1xuICAgIGxldCBhdHRlbXB0ID0gMDtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgc2lnbmFsPy50aHJvd0lmQWJvcnRlZCgpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBbZm4oLi4uYXJncyldO1xuICAgICAgICBpZiAodGltZW91dCkge1xuICAgICAgICAgIHByb21pc2VzLnB1c2goXG4gICAgICAgICAgICBzZXRUaW1lb3V0KHRpbWVvdXQpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aHJvdyB0aW1lb3V0RXJyb3I7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCBQcm9taXNlLnJhY2UocHJvbWlzZXMpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBzaWduYWw/LnRocm93SWZBYm9ydGVkKCk7XG4gICAgICAgIGF0dGVtcHQrKztcbiAgICAgICAgaWYgKGF0dGVtcHQgPj0gbWF4QXR0ZW1wdHMpIHtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHNsZWVwKE1hdGgucG93KDIsIGF0dGVtcHQpICogMTAwICsgTWF0aC5yYW5kb20oKSAqIDEwMCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuIl19
1
+ import'source-map-support/register.js';export{l as DEFAULT_DURATION,k as DEFAULT_FPS,j as DEFAULT_HEIGHT,i as DEFAULT_WIDTH,m as DEFAULT_WINDOW_TIMEOUT,e as Logger,a as ProgressBar,b as barLogger,f as logger,g as noerr,d as parseNumber,c as penv,p as pup}from'./chunk-XRCHOYPZ.js';import {setTimeout as setTimeout$1}from'timers/promises';var a=class{constructor(e){this.makeValue=e;}makeValue;get value(){return this._initialized||(this._value=this.makeValue(),this._initialized=true),this._value}get initialized(){return this._initialized}_initialized=false;_value};function l(r){return new Promise(e=>setTimeout(e,r))}function R(r,e){let t,o=false;async function i(n){await r(n),!o&&(t=setTimeout(()=>i(n+1),e));}return t=setTimeout(()=>i(0),e),()=>{o=true,clearTimeout(t);}}function E({fn:r,maxAttempts:e=3,timeout:t,signal:o}){let i=new Error(`timeout over ${t}ms`);return async(...n)=>{let u=0;for(;;){o?.throwIfAborted();try{let s=[r(...n)];return t&&s.push(setTimeout$1(t).then(()=>{throw i})),await Promise.race(s)}catch(s){if(o?.throwIfAborted(),u++,u>=e)throw s;await l(2**u*100+Math.random()*100);}}}}export{a as Lazy,R as periodical,l as sleep,E as useRetry};//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlL2xhenkudHMiLCIuLi9zcmMvYmFzZS90aW1pbmcudHMiLCIuLi9zcmMvYmFzZS9yZXRyeS50cyJdLCJuYW1lcyI6WyJMYXp5IiwibWFrZVZhbHVlIiwic2xlZXAiLCJtcyIsInJlc29sdmUiLCJwZXJpb2RpY2FsIiwiY2FsbGJhY2siLCJ0b2tlbiIsImNsb3NlZCIsInRpY2siLCJjb3VudCIsInVzZVJldHJ5IiwiZm4iLCJtYXhBdHRlbXB0cyIsInRpbWVvdXQiLCJzaWduYWwiLCJ0aW1lb3V0RXJyb3IiLCJhcmdzIiwiYXR0ZW1wdCIsInByb21pc2VzIiwic2V0VGltZW91dCIsImUiXSwibWFwcGluZ3MiOiJrVkFFTyxJQUFNQSxDQUFBQSxDQUFOLEtBQWMsQ0FDbkIsV0FBQSxDQUFxQkMsRUFBb0IsQ0FBcEIsSUFBQSxDQUFBLFNBQUEsQ0FBQUEsRUFBcUIsQ0FBckIsU0FBQSxDQUVyQixJQUFJLEtBQUEsRUFBVyxDQUNiLE9BQUssSUFBQSxDQUFLLFlBQUEsR0FDUixLQUFLLE1BQUEsQ0FBUyxJQUFBLENBQUssV0FBVSxDQUM3QixJQUFBLENBQUssYUFBZSxJQUFBLENBQUEsQ0FFZixJQUFBLENBQUssTUFDZCxDQUVBLElBQUksYUFBdUIsQ0FDekIsT0FBTyxLQUFLLFlBQ2QsQ0FFUSxhQUFlLEtBQUEsQ0FDZixNQUNWLEVDakJPLFNBQVNDLEVBQU1DLENBQUFBLENBQVksQ0FDaEMsT0FBTyxJQUFJLE9BQUEsQ0FBZUMsR0FBWSxVQUFBLENBQVdBLENBQUFBLENBQVNELENBQUUsQ0FBQyxDQUMvRCxDQXFCTyxTQUFTRSxDQUFBQSxDQUFXQyxFQUFtREgsQ0FBQUEsQ0FBWSxDQUN4RixJQUFJSSxDQUFBQSxDQUNBQyxDQUFBQSxDQUFTLE1BQ2IsZUFBZUMsQ0FBQUEsQ0FBS0MsRUFBZSxDQUNqQyxNQUFNSixFQUFTSSxDQUFLLENBQUEsQ0FDaEIsQ0FBQUYsQ0FBQUEsR0FHSkQsQ0FBQUEsQ0FBUSxXQUFXLElBQU1FLENBQUFBLENBQUtDLEVBQVEsQ0FBQyxDQUFBLENBQUdQLENBQUUsQ0FBQSxFQUM5QyxDQUNBLE9BQUFJLENBQUFBLENBQVEsVUFBQSxDQUFXLElBQU1FLENBQUFBLENBQUssQ0FBQyxDQUFBLENBQUdOLENBQUUsQ0FBQSxDQUM3QixJQUFNLENBQ1hLLENBQUFBLENBQVMsSUFBQSxDQUNULGFBQWFELENBQUssRUFDcEIsQ0FDRixDQzFCTyxTQUFTSSxFQUFzQyxDQUNwRCxFQUFBLENBQUFDLEVBQ0EsV0FBQSxDQUFBQyxDQUFBQSxDQUFjLEVBQ2QsT0FBQSxDQUFBQyxDQUFBQSxDQUNBLE9BQUFDLENBQ0YsQ0FBQSxDQUE0QixDQUMxQixJQUFNQyxDQUFBQSxDQUFlLElBQUksS0FBQSxDQUFNLENBQUEsYUFBQSxFQUFnQkYsQ0FBTyxDQUFBLEVBQUEsQ0FBSSxDQUFBLENBQzFELE9BQU8sTUFBQSxHQUFVRyxDQUFBQSxHQUFlLENBQzlCLElBQUlDLENBQUFBLENBQVUsRUFDZCxPQUFhLENBQ1hILEdBQVEsY0FBQSxFQUFlLENBQ3ZCLEdBQUksQ0FDRixJQUFNSSxDQUFBQSxDQUFXLENBQUNQLENBQUFBLENBQUcsR0FBR0ssQ0FBSSxDQUFDLENBQUEsQ0FDN0IsT0FBSUgsQ0FBQUEsRUFDRkssQ0FBQUEsQ0FBUyxLQUNQQyxZQUFBQSxDQUFXTixDQUFPLEVBQUUsSUFBQSxDQUFLLElBQU0sQ0FDN0IsTUFBTUUsQ0FDUixDQUFDLENBQ0gsQ0FBQSxDQUVLLE1BQU0sT0FBQSxDQUFRLElBQUEsQ0FBS0csQ0FBUSxDQUNwQyxDQUFBLE1BQVNFLEVBQUcsQ0FHVixHQUZBTixHQUFRLGNBQUEsRUFBZSxDQUN2QkcsSUFDSUEsQ0FBQUEsRUFBV0wsQ0FBQUEsQ0FDYixNQUFNUSxDQUFBQSxDQUVSLE1BQU1uQixFQUFNLENBQUEsRUFBS2dCLENBQUFBLENBQVUsSUFBTSxJQUFBLENBQUssTUFBQSxHQUFXLEdBQUcsRUFDdEQsQ0FDRixDQUNGLENBQ0YiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAxLzMwLlxuXG5leHBvcnQgY2xhc3MgTGF6eTxUPiB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IG1ha2VWYWx1ZTogKCkgPT4gVCkge31cblxuICBnZXQgdmFsdWUoKTogVCB7XG4gICAgaWYgKCF0aGlzLl9pbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLm1ha2VWYWx1ZSgpO1xuICAgICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdmFsdWUhO1xuICB9XG5cbiAgZ2V0IGluaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pbml0aWFsaXplZDtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxpemVkID0gZmFsc2U7XG4gIHByaXZhdGUgX3ZhbHVlOiBUIHwgdW5kZWZpbmVkO1xufVxuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wMi8wOS5cblxuZXhwb3J0IGZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoVGltZW91dDxUPihwOiBQcm9taXNlPFQ+LCBtczogbnVtYmVyLCBsYWJlbDogc3RyaW5nKTogUHJvbWlzZTxUPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHJlamVjdChuZXcgRXJyb3IoYCR7bGFiZWx9IHRpbWVkIG91dCBhZnRlciAke21zfW1zYCkpLCBtcyk7XG4gICAgcC50aGVuKHJlc29sdmUsIHJlamVjdCkuZmluYWxseSgoKSA9PiBjbGVhclRpbWVvdXQodGltZXIpKTtcbiAgfSk7XG59XG5cbi8vIFJlamVjdCBhcyBzb29uIGFzIGBzaWduYWxgIGFib3J0cywgZWxzZSBzZXR0bGUgd2l0aCBgcGA7IG5vLW9wIHBhc3N0aHJvdWdoIHdoZW4gbm8gc2lnbmFsLlxuZXhwb3J0IGZ1bmN0aW9uIGFib3J0YWJsZTxUPihwOiBQcm9taXNlPFQ+LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8VD4ge1xuICBpZiAoIXNpZ25hbCkge1xuICAgIHJldHVybiBwO1xuICB9XG4gIHJldHVybiBuZXcgUHJvbWlzZTxUPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3Qgb25BYm9ydCA9ICgpID0+IHJlamVjdChzaWduYWwucmVhc29uKTtcbiAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIG9uQWJvcnQsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICBwLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KS5maW5hbGx5KCgpID0+IHNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgb25BYm9ydCkpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBlcmlvZGljYWwoY2FsbGJhY2s6IChjb3VudDogbnVtYmVyKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZCwgbXM6IG51bWJlcikge1xuICBsZXQgdG9rZW46IE5vZGVKUy5UaW1lb3V0O1xuICBsZXQgY2xvc2VkID0gZmFsc2U7XG4gIGFzeW5jIGZ1bmN0aW9uIHRpY2soY291bnQ6IG51bWJlcikge1xuICAgIGF3YWl0IGNhbGxiYWNrKGNvdW50KTtcbiAgICBpZiAoY2xvc2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRva2VuID0gc2V0VGltZW91dCgoKSA9PiB0aWNrKGNvdW50ICsgMSksIG1zKTtcbiAgfVxuICB0b2tlbiA9IHNldFRpbWVvdXQoKCkgPT4gdGljaygwKSwgbXMpO1xuICByZXR1cm4gKCkgPT4ge1xuICAgIGNsb3NlZCA9IHRydWU7XG4gICAgY2xlYXJUaW1lb3V0KHRva2VuKTtcbiAgfTtcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMDUuXG5cbmltcG9ydCB7IHNldFRpbWVvdXQgfSBmcm9tIFwibm9kZTp0aW1lcnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IHNsZWVwIH0gZnJvbSBcIi4vdGltaW5nXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlPcHRpb25zPEFyZ3MgZXh0ZW5kcyB1bmtub3duW10sIFJldD4ge1xuICBmbjogKC4uLmFyZ3M6IEFyZ3MpID0+IFByb21pc2U8UmV0PjtcbiAgbWF4QXR0ZW1wdHM/OiBudW1iZXI7XG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIC8vIFdoZW4gcHJvdmlkZWQsIHVzZVJldHJ5IGJhaWxzIG91dCBpbW1lZGlhdGVseSBvbiBhYm9ydCBpbnN0ZWFkIG9mIHJldHJ5aW5nLiBUaGUgc2lnbmFsXG4gIC8vIGlzIG5vdCBhdXRvLXRocmVhZGVkIGludG8gZm4g4oCUIGNhbGxlciBtdXN0IHdpcmUgaXQgd2hlcmUgaXQgbWF0dGVycyAoZS5nLiBmZXRjaCwgUzMgc2VuZCkuXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlUmV0cnk8QXJncyBleHRlbmRzIHVua25vd25bXSwgUmV0Pih7XG4gIGZuLFxuICBtYXhBdHRlbXB0cyA9IDMsXG4gIHRpbWVvdXQsXG4gIHNpZ25hbCxcbn06IFJldHJ5T3B0aW9uczxBcmdzLCBSZXQ+KSB7XG4gIGNvbnN0IHRpbWVvdXRFcnJvciA9IG5ldyBFcnJvcihgdGltZW91dCBvdmVyICR7dGltZW91dH1tc2ApO1xuICByZXR1cm4gYXN5bmMgKC4uLmFyZ3M6IEFyZ3MpID0+IHtcbiAgICBsZXQgYXR0ZW1wdCA9IDA7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIHNpZ25hbD8udGhyb3dJZkFib3J0ZWQoKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gW2ZuKC4uLmFyZ3MpXTtcbiAgICAgICAgaWYgKHRpbWVvdXQpIHtcbiAgICAgICAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgc2V0VGltZW91dCh0aW1lb3V0KS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhyb3cgdGltZW91dEVycm9yO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5yYWNlKHByb21pc2VzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgc2lnbmFsPy50aHJvd0lmQWJvcnRlZCgpO1xuICAgICAgICBhdHRlbXB0Kys7XG4gICAgICAgIGlmIChhdHRlbXB0ID49IG1heEF0dGVtcHRzKSB7XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBzbGVlcCgyICoqIGF0dGVtcHQgKiAxMDAgKyBNYXRoLnJhbmRvbSgpICogMTAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ 'use strict';require('source-map-support/register.js');var electron=require('electron');var A="audio-meta",f="audio-chunk";if(!window.__pup_audio_capturing__){window.__pup_audio_capturing__=true;let s=window.AudioContext||window.webkitAudioContext;if(s){let r=function(...e){let t=new s(...e);if(!d.has(t)){d.add(t);let n=w(),o=t.createMediaStreamDestination();t.__pup_captureDest__=o,n.ctx.createMediaStreamSource(o.stream).connect(n.processor);}return t};let d=new WeakSet,_=new WeakSet,c,u,w=()=>{if(c&&u)return {ctx:c,processor:u};let e=new s,t=e.createScriptProcessor(4096,2,2);return t.onaudioprocess=n=>{let o=n.inputBuffer.getChannelData(0),a=n.inputBuffer.getChannelData(1),p=new Float32Array(o.length*2);for(let i=0;i<o.length;i++)p[i*2]=o[i]??0,p[i*2+1]=a[i]??0;electron.ipcRenderer.send(f,Buffer.from(p.buffer));},t.connect(e.destination),electron.ipcRenderer.send(A,{sampleRate:e.sampleRate}),e.resume(),c=e,u=t,{ctx:e,processor:t}},C=AudioContext.prototype.createMediaElementSource;AudioContext.prototype.createMediaElementSource=function(e){return _.add(e),C.call(this,e)};let l=AudioNode.prototype.connect;AudioNode.prototype.connect=function(e,t,n){let o=e.context,a=o?.__pup_captureDest__;return a&&o&&e===o.destination&&this!==a&&l.call(this,a,t,n),l.call(this,e,t,n)},r.prototype=s.prototype,Object.setPrototypeOf(r,s),window.AudioContext=r,"webkitAudioContext"in window&&(window.webkitAudioContext=r);let x=HTMLMediaElement.prototype.play;HTMLMediaElement.prototype.play=function(){return this.__pup_captured__||(this.__pup_captured__=true,Promise.resolve().then(()=>{if(!_.has(this)){let e=new r;e.createMediaElementSource(this).connect(e.destination);}})),x.call(this)};}}//# sourceMappingURL=audio_preload.cjs.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZW5kZXJlci9hdWRpby50cyIsIi4uLy4uL3NyYy9ydW50aW1lL2F1ZGlvX3ByZWxvYWQudHMiXSwibmFtZXMiOlsiQVVESU9fTUVUQV9DSEFOTkVMIiwiQVVESU9fQ0hVTktfQ0hBTk5FTCIsIk9SSUdfQUMiLCJQYXRjaGVkQUMiLCJhcmdzIiwiY3R4IiwiY2FwdHVyZWRDb250ZXh0cyIsIm1hc3RlciIsImVuc3VyZU1hc3RlciIsImNhcHR1cmVEZXN0Iiwic291cmNlZEVsZW1lbnRzIiwibWFzdGVyQ3R4IiwibWFzdGVyUHJvY2Vzc29yIiwicHJvY2Vzc29yIiwiZSIsIkwiLCJSIiwib3V0IiwiaXBjUmVuZGVyZXIiLCJvcmlnQ3JlYXRlTUVTIiwiZWwiLCJvcmlnQ29ubmVjdCIsImRlc3QiLCJvdXRJZHgiLCJpbklkeCIsIm9yaWdQbGF5Il0sIm1hcHBpbmdzIjoid0ZBS08sSUFBTUEsQ0FBQUEsQ0FBcUIsYUFDckJDLENBQUFBLENBQXNCLGFBQUEsQ0NZbkMsR0FBSSxDQUFDLE9BQU8sdUJBQUEsQ0FBeUIsQ0FDbkMsTUFBQSxDQUFPLHVCQUFBLENBQTBCLEtBRWpDLElBQU1DLENBQUFBLENBQVUsTUFBQSxDQUFPLFlBQUEsRUFBZ0IsT0FBTyxrQkFBQSxDQUM5QyxHQUFJQSxDQUFBQSxDQUFTLENBb0RYLElBQVNDLENBQUFBLENBQVQsU0FBQSxHQUEwQ0MsQ0FBQUEsQ0FBaUIsQ0FDekQsSUFBTUMsQ0FBQUEsQ0FBTSxJQUFLSCxFQUFvRCxHQUFHRSxDQUFJLEVBQzVFLEdBQUksQ0FBQ0UsQ0FBQUEsQ0FBaUIsR0FBQSxDQUFJRCxDQUFHLENBQUEsQ0FBRyxDQUM5QkMsQ0FBQUEsQ0FBaUIsR0FBQSxDQUFJRCxDQUFHLENBQUEsQ0FDeEIsSUFBTUUsQ0FBQUEsQ0FBU0MsQ0FBQUEsR0FDVEMsQ0FBQUEsQ0FBY0osQ0FBQUEsQ0FBSSw0QkFBQSxFQUE2QixDQUNyREEsRUFBSSxtQkFBQSxDQUFzQkksQ0FBQUEsQ0FDMUJGLENBQUFB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QWVDLENBQUFBLENBQ2xCLG9CQUFBLEdBQXdCLE1BQUEsR0FDMUIsT0FBTyxrQkFBQSxDQUFxQkEsQ0FBQUEsQ0FBQUEsQ0FHOUIsSUFBTXNCLENBQUFBLENBQVcsaUJBQWlCLFNBQUEsQ0FBVSxJQUFBLENBQzVDLGlCQUFpQixTQUFBLENBQVUsSUFBQSxDQUFPLFVBQVksQ0FDNUMsT0FBSyxJQUFBLENBQUssZ0JBQUEsR0FDUixLQUFLLGdCQUFBLENBQW1CLElBQUEsQ0FFeEIsT0FBQSxDQUFRLE9BQUEsR0FBVSxJQUFBLENBQUssSUFBTSxDQUMzQixHQUFJLENBQUNmLENBQUFBLENBQWdCLEdBQUEsQ0FBSSxJQUFJLENBQUEsQ0FBRyxDQUM5QixJQUFNTCxDQUFBQSxDQUFNLElBQUtGLENBQUFBLENBQ2pCRSxDQUFBQSxDQUFJLHlCQUF5QixJQUFJLENBQUEsQ0FBRSxPQUFBLENBQVFBLENBQUFBLENBQUksV0FBVyxFQUM1RCxDQUNGLENBQUMsQ0FBQSxDQUFBLENBRUlvQixFQUFTLElBQUEsQ0FBSyxJQUFJLENBQzNCLEVBQ0YsQ0FDRiIsImZpbGUiOiJhdWRpb19wcmVsb2FkLmNqcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDMvMDIuXG5cbmltcG9ydCB0eXBlIHsgV2ViQ29udGVudHMgfSBmcm9tIFwiZWxlY3Ryb25cIjtcbmltcG9ydCB0eXBlIHsgRW5jb2RlclBpcGVsaW5lIH0gZnJvbSBcIi4uL2Jhc2UvZW5jb2Rlci9waXBlbGluZVwiO1xuXG5leHBvcnQgY29uc3QgQVVESU9fTUVUQV9DSEFOTkVMID0gXCJhdWRpby1tZXRhXCI7XG5leHBvcnQgY29uc3QgQVVESU9fQ0hVTktfQ0hBTk5FTCA9IFwiYXVkaW8tY2h1bmtcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBdWRpb0xpc3RlbmVyT3B0aW9ucyB7XG4gIHdjOiBXZWJDb250ZW50cztcbiAgZW5jb2RlcjogRW5jb2RlclBpcGVsaW5lO1xuICBnZXRWaWRlb1RpbWVNczogKCkgPT4gbnVtYmVyO1xuICBvbkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBBdWRpb0Rpc3Bvc2FsID0gKCkgPT4gdm9pZDtcblxuZXhwb3J0IGZ1bmN0aW9uIGF0dGFjaEF1ZGlvTGlzdGVuZXJzKHsgd2MsIGVuY29kZXIsIGdldFZpZGVvVGltZU1zLCBvbkVycm9yIH06IEF1ZGlvTGlzdGVuZXJPcHRpb25zKTogQXVkaW9EaXNwb3NhbCB7XG4gIGNvbnN0IG9uTWV0YSA9IGFzeW5jIChfZTogdW5rbm93biwgZGF0YTogeyBzYW1wbGVSYXRlOiBudW1iZXIgfSkgPT4ge1xuICAgIGNvbnN0IHNhbXBsZVJhdGUgPSBkYXRhLnNhbXBsZVJhdGU7XG4gICAgY29uc3Qgc3RhcnRNcyA9IGdldFZpZGVvVGltZU1zKCk7XG4gICAgZW5jb2Rlci5zZXR1cEF1ZGlvKHNhbXBsZVJhdGUpO1xuICAgIGNvbnN0IHNpbGVuY2VTYW1wbGVzID0gTWF0aC5jZWlsKChzdGFydE1zICogc2FtcGxlUmF0ZSkgLyAxMDAwKTtcbiAgICBpZiAoc2lsZW5jZVNhbXBsZXMgPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgYXdhaXQgZW5jb2Rlci5lbmNvZGVBdWRpbyhCdWZmZXIuYWxsb2Moc2lsZW5jZVNhbXBsZXMgKiAyICogNCkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBvbkVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25DaHVuayA9IGFzeW5jIChfZTogdW5rbm93biwgYnVmZmVyOiBCdWZmZXIpID0+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZW5jb2Rlci5lbmNvZGVBdWRpbyhidWZmZXIpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBvbkVycm9yKGVycm9yIGFzIEVycm9yKTtcbiAgICB9XG4gIH07XG5cbiAgd2MuaXBjLm9uKEFVRElPX01FVEFfQ0hBTk5FTCwgb25NZXRhKTtcbiAgd2MuaXBjLm9uKEFVRElPX0NIVU5LX0NIQU5ORUwsIG9uQ2h1bmspO1xuXG4gIHJldHVybiAoKSA9PiB7XG4gICAgd2MuaXBjLnJlbW92ZUxpc3RlbmVyKEFVRElPX01FVEFfQ0hBTk5FTCwgb25NZXRhKTtcbiAgICB3Yy5pcGMucmVtb3ZlTGlzdGVuZXIoQVVESU9fQ0hVTktfQ0hBTk5FTCwgb25DaHVuayk7XG4gIH07XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzA0LzI4LlxuXG5pbXBvcnQgeyBpcGNSZW5kZXJlciB9IGZyb20gXCJlbGVjdHJvblwiO1xuaW1wb3J0IHsgQVVESU9fQ0hVTktfQ0hBTk5FTCwgQVVESU9fTUVUQV9DSEFOTkVMIH0gZnJvbSBcIi4uL3JlbmRlcmVyL2F1ZGlvXCI7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgX19wdXBfYXVkaW9fY2FwdHVyaW5nX18/OiBib29sZWFuO1xuICAgIHdlYmtpdEF1ZGlvQ29udGV4dD86IHR5cGVvZiBBdWRpb0NvbnRleHQ7XG4gIH1cbiAgaW50ZXJmYWNlIEF1ZGlvQ29udGV4dCB7XG4gICAgX19wdXBfY2FwdHVyZURlc3RfXz86IE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGU7XG4gIH1cbiAgaW50ZXJmYWNlIEhUTUxNZWRpYUVsZW1lbnQge1xuICAgIF9fcHVwX2NhcHR1cmVkX18/OiBib29sZWFuO1xuICB9XG59XG5cbmlmICghd2luZG93Ll9fcHVwX2F1ZGlvX2NhcHR1cmluZ19fKSB7XG4gIHdpbmRvdy5fX3B1cF9hdWRpb19jYXB0dXJpbmdfXyA9IHRydWU7XG5cbiAgY29uc3QgT1JJR19BQyA9IHdpbmRvdy5BdWRpb0NvbnRleHQgfHwgd2luZG93LndlYmtpdEF1ZGlvQ29udGV4dDtcbiAgaWYgKE9SSUdfQUMpIHtcbiAgICBjb25zdCBjYXB0dXJlZENvbnRleHRzID0gbmV3IFdlYWtTZXQ8QXVkaW9Db250ZXh0PigpO1xuICAgIGNvbnN0IHNvdXJjZWRFbGVtZW50cyA9IG5ldyBXZWFrU2V0PEhUTUxNZWRpYUVsZW1lbnQ+KCk7XG5cbiAgICBsZXQgbWFzdGVyQ3R4OiBBdWRpb0NvbnRleHQgfCB1bmRlZmluZWQ7XG4gICAgbGV0IG1hc3RlclByb2Nlc3NvcjogU2NyaXB0UHJvY2Vzc29yTm9kZSB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGVuc3VyZU1hc3RlciA9ICgpOiB7IGN0eDogQXVkaW9Db250ZXh0OyBwcm9jZXNzb3I6IFNjcmlwdFByb2Nlc3Nvck5vZGUgfSA9PiB7XG4gICAgICBpZiAobWFzdGVyQ3R4ICYmIG1hc3RlclByb2Nlc3Nvcikge1xuICAgICAgICByZXR1cm4geyBjdHg6IG1hc3RlckN0eCwgcHJvY2Vzc29yOiBtYXN0ZXJQcm9jZXNzb3IgfTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGN0eCA9IG5ldyBPUklHX0FDKCk7XG4gICAgICBjb25zdCBwcm9jZXNzb3IgPSBjdHguY3JlYXRlU2NyaXB0UHJvY2Vzc29yKDQwOTYsIDIsIDIpO1xuICAgICAgcHJvY2Vzc29yLm9uYXVkaW9wcm9jZXNzID0gKGU6IEF1ZGlvUHJvY2Vzc2luZ0V2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IEwgPSBlLmlucHV0QnVmZmVyLmdldENoYW5uZWxEYXRhKDApO1xuICAgICAgICBjb25zdCBSID0gZS5pbnB1dEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgxKTtcbiAgICAgICAgY29uc3Qgb3V0ID0gbmV3IEZsb2F0MzJBcnJheShMLmxlbmd0aCAqIDIpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IEwubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBvdXRbaSAqIDJdID0gTFtpXSA/PyAwO1xuICAgICAgICAgIG91dFtpICogMiArIDFdID0gUltpXSA/PyAwO1xuICAgICAgICB9XG4gICAgICAgIGlwY1JlbmRlcmVyLnNlbmQoQVVESU9fQ0hVTktfQ0hBTk5FTCwgQnVmZmVyLmZyb20ob3V0LmJ1ZmZlcikpO1xuICAgICAgfTtcbiAgICAgIHByb2Nlc3Nvci5jb25uZWN0KGN0eC5kZXN0aW5hdGlvbik7XG4gICAgICBpcGNSZW5kZXJlci5zZW5kKEFVRElPX01FVEFfQ0hBTk5FTCwgeyBzYW1wbGVSYXRlOiBjdHguc2FtcGxlUmF0ZSB9KTtcbiAgICAgIHZvaWQgY3R4LnJlc3VtZSgpO1xuICAgICAgbWFzdGVyQ3R4ID0gY3R4O1xuICAgICAgbWFzdGVyUHJvY2Vzc29yID0gcHJvY2Vzc29yO1xuICAgICAgcmV0dXJuIHsgY3R4LCBwcm9jZXNzb3IgfTtcbiAgICB9O1xuXG4gICAgY29uc3Qgb3JpZ0NyZWF0ZU1FUyA9IEF1ZGlvQ29udGV4dC5wcm90b3R5cGUuY3JlYXRlTWVkaWFFbGVtZW50U291cmNlO1xuICAgIEF1ZGlvQ29udGV4dC5wcm90b3R5cGUuY3JlYXRlTWVkaWFFbGVtZW50U291cmNlID0gZnVuY3Rpb24gKGVsKSB7XG4gICAgICBzb3VyY2VkRWxlbWVudHMuYWRkKGVsKTtcbiAgICAgIHJldHVybiBvcmlnQ3JlYXRlTUVTLmNhbGwodGhpcywgZWwpO1xuICAgIH07XG5cbiAgICBjb25zdCBvcmlnQ29ubmVjdCA9IEF1ZGlvTm9kZS5wcm90b3R5cGUuY29ubmVjdCBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiBBdWRpb05vZGU7XG4gICAgQXVkaW9Ob2RlLnByb3RvdHlwZS5jb25uZWN0ID0gZnVuY3Rpb24gKFxuICAgICAgdGhpczogQXVkaW9Ob2RlLFxuICAgICAgZGVzdDogQXVkaW9Ob2RlIHwgQXVkaW9QYXJhbSxcbiAgICAgIG91dElkeD86IG51bWJlcixcbiAgICAgIGluSWR4PzogbnVtYmVyLFxuICAgICkge1xuICAgICAgY29uc3QgY3R4ID0gKGRlc3QgYXMgQXVkaW9Ob2RlKS5jb250ZXh0IGFzIEF1ZGlvQ29udGV4dCB8IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IGNhcHR1cmVEZXN0ID0gY3R4Py5fX3B1cF9jYXB0dXJlRGVzdF9fO1xuICAgICAgaWYgKGNhcHR1cmVEZXN0ICYmIGN0eCAmJiBkZXN0ID09PSBjdHguZGVzdGluYXRpb24gJiYgdGhpcyAhPT0gY2FwdHVyZURlc3QpIHtcbiAgICAgICAgb3JpZ0Nvbm5lY3QuY2FsbCh0aGlzLCBjYXB0dXJlRGVzdCwgb3V0SWR4LCBpbklkeCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3JpZ0Nvbm5lY3QuY2FsbCh0aGlzLCBkZXN0LCBvdXRJZHgsIGluSWR4KTtcbiAgICB9IGFzIHR5cGVvZiBBdWRpb05vZGUucHJvdG90eXBlLmNvbm5lY3Q7XG5cbiAgICBmdW5jdGlvbiBQYXRjaGVkQUModGhpczogQXVkaW9Db250ZXh0LCAuLi5hcmdzOiB1bmtub3duW10pIHtcbiAgICAgIGNvbnN0IGN0eCA9IG5ldyAoT1JJR19BQyBhcyB7IG5ldyAoLi4uYTogdW5rbm93bltdKTogQXVkaW9Db250ZXh0IH0pKC4uLmFyZ3MpO1xuICAgICAgaWYgKCFjYXB0dXJlZENvbnRleHRzLmhhcyhjdHgpKSB7XG4gICAgICAgIGNhcHR1cmVkQ29udGV4dHMuYWRkKGN0eCk7XG4gICAgICAgIGNvbnN0IG1hc3RlciA9IGVuc3VyZU1hc3RlcigpO1xuICAgICAgICBjb25zdCBjYXB0dXJlRGVzdCA9IGN0eC5jcmVhdGVNZWRpYVN0cmVhbURlc3RpbmF0aW9uKCk7XG4gICAgICAgIGN0eC5fX3B1cF9jYXB0dXJlRGVzdF9fID0gY2FwdHVyZURlc3Q7XG4gICAgICAgIG1hc3Rlci5jdHguY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UoY2FwdHVyZURlc3Quc3RyZWFtKS5jb25uZWN0KG1hc3Rlci5wcm9jZXNzb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGN0eDtcbiAgICB9XG4gICAgUGF0Y2hlZEFDLnByb3RvdHlwZSA9IE9SSUdfQUMucHJvdG90eXBlO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihQYXRjaGVkQUMsIE9SSUdfQUMpO1xuICAgIHdpbmRvdy5BdWRpb0NvbnRleHQgPSBQYXRjaGVkQUMgYXMgdW5rbm93biBhcyB0eXBlb2YgQXVkaW9Db250ZXh0O1xuICAgIGlmIChcIndlYmtpdEF1ZGlvQ29udGV4dFwiIGluIHdpbmRvdykge1xuICAgICAgd2luZG93LndlYmtpdEF1ZGlvQ29udGV4dCA9IFBhdGNoZWRBQyBhcyB1bmtub3duIGFzIHR5cGVvZiBBdWRpb0NvbnRleHQ7XG4gICAgfVxuXG4gICAgY29uc3Qgb3JpZ1BsYXkgPSBIVE1MTWVkaWFFbGVtZW50LnByb3RvdHlwZS5wbGF5O1xuICAgIEhUTUxNZWRpYUVsZW1lbnQucHJvdG90eXBlLnBsYXkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoIXRoaXMuX19wdXBfY2FwdHVyZWRfXykge1xuICAgICAgICB0aGlzLl9fcHVwX2NhcHR1cmVkX18gPSB0cnVlO1xuXG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIGlmICghc291cmNlZEVsZW1lbnRzLmhhcyh0aGlzKSkge1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gbmV3IChQYXRjaGVkQUMgYXMgdW5rbm93biBhcyB0eXBlb2YgQXVkaW9Db250ZXh0KSgpO1xuICAgICAgICAgICAgY3R4LmNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZSh0aGlzKS5jb25uZWN0KGN0eC5kZXN0aW5hdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvcmlnUGxheS5jYWxsKHRoaXMpO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ 'use strict';require('source-map-support/register.js');function v(){if(window.__pup_tick__)return;let n=Date,t=n.now(),e=0,r=0,o=[],s={},a=1,d=()=>(r+=.01,r);function m(...i){return this instanceof m?i.length?new(Function.prototype.bind.apply(n,[null,...i])):new n(t+e+d()):new n(t+e).toString()}m.prototype=n.prototype,m.now=()=>t+e+d(),m.parse=n.parse,m.UTC=n.UTC,window.Date=m,performance.now=()=>e+d(),window.requestAnimationFrame=i=>{let c=a++;return o.push({id:c,cb:i}),c},window.cancelAnimationFrame=i=>{o=o.filter(c=>c.id!==i);},window.setTimeout=(i,c)=>{let u=a++;return s[u]={type:"timeout",cb:i,delay:c||0,next:e+(c||0)},u},window.clearTimeout=i=>{typeof i=="number"&&delete s[i];},window.setInterval=(i,c)=>{let u=a++,l=Math.max(c||0,1);return s[u]={type:"interval",cb:i,delay:l,next:e+l},u},window.clearInterval=i=>{typeof i=="number"&&delete s[i];};function g(i){try{typeof i=="string"?new Function(i)():i();}catch(c){console.error("[Tick] error:",c instanceof Error&&c.stack||c);}}function p(i,c){try{i(c);}catch(u){console.error("[Tick] error:",u instanceof Error&&u.stack||u);}}let T=new WeakMap;function h(i){let c;try{c=document.getAnimations();}catch{return}for(let u of c){let l=u.playState;if(l==="idle"||l==="finished"){T.delete(u);continue}let E=typeof u.playbackRate=="number"?u.playbackRate:1;if(E===0)continue;let w=T.get(u);if(!w){let N=typeof u.currentTime=="number"?u.currentTime:0;w={startMs:i-N/E,pausedAccum:0,pausedAt:-1},T.set(u,w);}if(l==="paused"){w.pausedAt<0&&(w.pausedAt=i);continue}w.pausedAt>=0&&(w.pausedAccum+=i-w.pausedAt,w.pausedAt=-1),u.currentTime=(i-w.startMs-w.pausedAccum)*E;}}function b(i){e=i,r=0;for(let u of Object.keys(s)){let l=s[Number(u)];if(l)for(;l.next<=e;){if(g(l.cb),l.type==="timeout"){delete s[Number(u)];break}l.next+=l.delay;}}let c=o.splice(0);for(let u of c)p(u.cb,e);h(e);}window.__pup_tick__={process:b};}var $=["borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","transform","transformOrigin","filter","clipPath","boxShadow","opacity","mixBlendMode","mask","zIndex","position","left","top","right","bottom"];function R(n){return n.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function _(n,t){let e=window.getComputedStyle(n);t.style.position="absolute",t.style.left=`${n.offsetLeft}px`,t.style.top=`${n.offsetTop}px`,t.style.width=`${n.offsetWidth}px`,t.style.height=`${n.offsetHeight}px`;for(let d of $){if(d==="position"||d==="left"||d==="top"||d==="right"||d==="bottom")continue;let m=e.getPropertyValue(R(d));m&&t.style.setProperty(R(d),m);}let r=n.getBoundingClientRect(),o=window.devicePixelRatio||1,s=Math.max(1,Math.round(r.width*o)),a=Math.max(1,Math.round(r.height*o));t.width!==s&&(t.width=s),t.height!==a&&(t.height=a);}function H(n,t){let e=document.createElement("canvas");if(e.dataset.pupVideoOverlay="1",e.style.pointerEvents="none",n.style.visibility="hidden",n.muted=true,(n.parentNode||document.body).insertBefore(e,n.nextSibling),_(n,e),t)try{e.getContext("2d").drawImage(t,0,0,e.width,e.height);}catch{}return e}function A(n,t,e,r,o){if(o==="none")return [(e-n)/2,(r-t)/2,n,t];if(o==="contain"||o==="scale-down"){let s=Math.min(e/n,r/t),a=o==="scale-down"?Math.min(1,s):s,d=a*n,m=a*t;return [(e-d)/2,(r-m)/2,d,m]}if(o==="cover"){let s=Math.max(e/n,r/t),a=s*n,d=s*t;return [(e-a)/2,(r-d)/2,a,d]}return [0,0,e,r]}var M="pup-frame://";var L="[VideoHook]";function V(n){return {length:n>0?1:0,start:()=>0,end:()=>n}}function f(n,t){n.dispatchEvent(new Event(t));}function j(n){if(n.rvfc.size===0)return;let t=[...n.rvfc.values()];n.rvfc.clear();let e=performance.now(),r={presentationTime:e,expectedDisplayTime:e,width:n.meta.frameWidth,height:n.meta.frameHeight,mediaTime:n.currentTime,presentedFrames:n.presentedFrames};for(let o of t)o(e,r);}async function W(n,t,e,r){let o=n.cache.cacheOf(e.meta.id);o.readers.set(e,r);let s=o.bitmaps.get(r);if(!s){n.cache.prefetch(e,r+1,9);let m=await n.cache.fetch(e,r);if(n.sessions.get(t)!==e)return;if(!m){!e.paused&&!e.waiting&&(e.waiting=true,f(t,"waiting"));return}s=m;}e.waiting&&(e.waiting=false,e.paused||f(t,"playing"));let a=e.cv,d=A(s.width,s.height,a.width,a.height,e.objectFit);e.ctx.clearRect(0,0,a.width,a.height),e.ctx.drawImage(s,d[0],d[1],d[2],d[3]),e.lastDrawnIdx=r,e.presentedFrames++,j(e),n.cache.prefetch(e,r+1,10),n.cache.evict(o);}function C(n,t){let e=Math.max(0,t-n.currMs)/1e3;n.currMs=t;let r=[];return document.querySelectorAll("video").forEach(o=>{let s=o,a=n.sessions.get(s);if(!a||a.dead||(_(s,a.cv),!a.meta))return;if(a.meta.frameWidth<a.meta.width&&a.cv.width>a.meta.frameWidth*1.05&&!n.attaching.has(s)){n.reattach(s,a);return}!a.paused&&!a.ended&&(a.currentTime+=e*(s.playbackRate||1),a.maxReached=Math.max(a.maxReached,a.currentTime),a.currentTime>=a.meta.duration?s.loop?a.currentTime=a.currentTime%a.meta.duration:(a.currentTime=a.meta.duration,a.paused=true,a.ended=true,f(s,"ended")):f(s,"timeupdate"));let d=Math.max(1,Math.round(a.currentTime*a.meta.fps));d!==a.lastDrawnIdx&&r.push(W(n,s,a,d));}),Promise.all(r)}var x=class{_caches=new Map;cacheOf(t){let e=this._caches.get(t);return e||(e={bitmaps:new Map,inFlight:new Map,readers:new Map},this._caches.set(t,e)),e}fetch(t,e){let r=t.meta;if(!r)return Promise.resolve(null);let o=this.cacheOf(r.id),s=o.inFlight.get(e);if(s)return s;let a=o.bitmaps.get(e);if(a)return Promise.resolve(a);let d=r.frameWidth,m=r.frameHeight,g=fetch(`${M}frame?id=${r.id}&idx=${e}`).then(p=>p.ok?p.arrayBuffer():null).then(p=>p&&p.byteLength===d*m*4?createImageBitmap(new ImageData(new Uint8ClampedArray(p),d,m)):null).then(p=>(o.inFlight.delete(e),p&&o.bitmaps.set(e,p),p)).catch(()=>(o.inFlight.delete(e),null));return o.inFlight.set(e,g),g}prefetch(t,e,r){let o=t.meta;if(!o)return;let s=Math.max(1,Math.round(o.duration*o.fps));for(let a=e;a<e+r;a++)a<1||a>s||this.fetch(t,a);}evict(t){let e=1/0;if(t.readers.forEach(o=>{o<e&&(e=o);}),!Number.isFinite(e))return;let r=e-2;t.bitmaps.forEach((o,s)=>{s<r&&(o.close(),t.bitmaps.delete(s));});}release(t,e){let r=this._caches.get(t);r&&(r.readers.delete(e),!(r.readers.size>0)&&(r.bitmaps.forEach(o=>{o.close();}),this._caches.delete(t),fetch(`${M}close?id=${t}`,{keepalive:true})));}};function O(n){let t=HTMLVideoElement.prototype,e=HTMLMediaElement.prototype,r=i=>Object.getOwnPropertyDescriptor(t,i)||Object.getOwnPropertyDescriptor(e,i),o=r("currentTime"),s=r("src"),a=r("playbackRate"),d=t.pause,m=t.requestVideoFrameCallback,g=t.cancelVideoFrameCallback,p=t.getVideoPlaybackQuality,T=t.load,h=n.sessions,b=(i,c)=>{let u=r(i)?.get;if(!u)throw new Error(`media_shim: no native getter for ${i}`);Object.defineProperty(t,i,{configurable:true,get(){let l=h.get(this);return l?c(l):u.call(this)}});};if(b("paused",i=>i.paused),b("ended",i=>i.ended),b("readyState",i=>i.readyState),b("networkState",i=>i.networkState),b("error",i=>i.error??null),b("seeking",i=>i.seeking),b("buffered",i=>V(i.meta?i.meta.duration:0)),b("seekable",i=>V(i.meta?i.meta.duration:0)),b("played",i=>V(i.maxReached)),t.play=function(){let i=h.get(this);return i?(n.resume(this,i),Promise.resolve()):n.attach(this).then(c=>{c&&n.resume(this,c);})},t.pause=function(){let i=h.get(this);if(!i){d.call(this);return}i.paused||(i.paused=true,f(this,"pause"));},o?.get&&o.set){let i=o.get,c=o.set;Object.defineProperty(t,"currentTime",{configurable:true,get(){let u=h.get(this);return u?u.currentTime:i.call(this)},set(u){let l=h.get(this);if(!l){c.call(this,u);return}let E=l.meta?l.meta.duration:u;l.currentTime=Math.max(0,Math.min(u,E)),l.maxReached=Math.max(l.maxReached,l.currentTime),l.currentTime<E&&(l.ended=false),l.seeking=true,f(this,"seeking"),l.seeking=false,f(this,"seeked"),f(this,"timeupdate");}});}if(a?.set){let i=a.set;Object.defineProperty(t,"playbackRate",{configurable:true,get:a.get,set(c){i.call(this,c),h.has(this)&&f(this,"ratechange");}});}if(t.requestVideoFrameCallback=function(i){let c=h.get(this);if(!c)return m.call(this,i);let u=++n.rvfcSeq;return c.rvfc.set(u,i),u},t.cancelVideoFrameCallback=function(i){let c=h.get(this);if(!c){g.call(this,i);return}c.rvfc.delete(i);},t.getVideoPlaybackQuality=function(){let i=h.get(this);return i?{creationTime:performance.now(),totalVideoFrames:i.presentedFrames,droppedVideoFrames:0,corruptedVideoFrames:0}:p.call(this)},t.load=function(){if(!h.has(this))return T.call(this);n.detach(this),f(this,"emptied"),this.__pupLastSrc=void 0,n.attach(this);},s?.set){let i=s.set;Object.defineProperty(t,"src",{configurable:true,get:s.get,set(c){i.call(this,c),n.onSrcChange(this);}});}}function D(n,t){return {meta:null,cv:t,ctx:t.getContext("2d"),paused:!(n.autoplay||!n.paused),currentTime:0,ended:false,lastDrawnIdx:-1,dead:false,objectFit:window.getComputedStyle(n).objectFit||"fill",readyState:0,networkState:0,seeking:false,waiting:false,error:void 0,presentedFrames:0,maxReached:0,rvfc:new Map}}function F(n,t,e){return t.dead=true,t.error=e,t.networkState=3,console.warn(L,`${e.message} src=${n.src||n.currentSrc}`),f(n,"error"),null}async function P(n,t){let{video:e,state:r,src:o,birthMs:s,native:a}=t,d=Number.parseInt(e.dataset.pupFps||"30",10);r.networkState=2,f(e,"loadstart");let m;try{let p=a?"":`&w=${r.cv.width}&h=${r.cv.height}&fit=${encodeURIComponent(r.objectFit)}`;m=await fetch(`${M}open?src=${encodeURIComponent(o)}&fps=${d}${p}`);}catch(p){return F(e,r,{code:2,message:`open failed: ${p instanceof Error?p.message:String(p)}`})}if(n.sessions.get(e)!==r)return null;if(!m.ok)return F(e,r,{code:3,message:`open ${m.status}: ${await m.text()}`});let g=await m.json();return n.sessions.get(e)!==r?null:(r.meta=g,r.currentTime=r.paused?0:Math.max(0,(n.currMs-s)/1e3),Object.defineProperty(e,"videoWidth",{value:g.width,configurable:true}),Object.defineProperty(e,"videoHeight",{value:g.height,configurable:true}),Object.defineProperty(e,"duration",{value:g.duration,configurable:true}),r.readyState=1,f(e,"durationchange"),f(e,"loadedmetadata"),r.readyState=4,f(e,"loadeddata"),f(e,"canplay"),f(e,"canplaythrough"),r.networkState=1,f(e,"suspend"),r.paused||(f(e,"play"),f(e,"playing")),n.cache.prefetch(r,1,10),r)}var k=class{sessions=new WeakMap;attaching=new WeakMap;opening=new Set;cache=new x;rvfcSeq=0;currMs=0;_lastSnapshot=new WeakMap;install(){O(this),this.scan(document.documentElement),new MutationObserver(t=>{for(let e of t){if(e.type==="attributes"&&e.target instanceof HTMLVideoElement&&e.attributeName==="src"){this.onSrcChange(e.target);continue}e.addedNodes.forEach(r=>{r instanceof Element&&this.scan(r);}),e.removedNodes.forEach(r=>{r instanceof HTMLVideoElement&&this.detach(r);});}}).observe(document,{subtree:true,childList:true,attributes:true,attributeFilter:["src"]}),window.__pup_video__={advance:t=>C(this,t),ready:()=>this.ready()};}attach(t,e=false){let r=this.sessions.get(t);if(r)return Promise.resolve(r);let o=this.attaching.get(t);if(o)return o;let s=t.src||t.currentSrc;if(!s||/^(blob:|data:|mediastream:)/i.test(s))return Promise.resolve(null);let a=H(t,this._lastSnapshot.get(t)),d=D(t,a);this.sessions.set(t,d);let m=P(this,{video:t,state:d,src:s,birthMs:this.currMs,native:e}).finally(()=>{this.attaching.delete(t),this.opening.delete(m);});return this.attaching.set(t,m),this.opening.add(m),m}async ready(){await Promise.allSettled([...this.opening]);}resume(t,e){!e.paused&&!e.ended||(e.paused=false,e.ended=false,f(t,"play"),f(t,"playing"));}detach(t){let e=this.sessions.get(t);if(e){if(e.meta){if(e.lastDrawnIdx>=0)try{let r=new OffscreenCanvas(e.cv.width,e.cv.height),o=r.getContext("2d");if(!o)throw new Error("no 2d context");o.drawImage(e.cv,0,0),this._lastSnapshot.set(t,r);}catch{}this.cache.release(e.meta.id,e);}e.cv.remove(),this.sessions.delete(t),this.attaching.delete(t);}}onSrcChange(t){let e=t.src||t.currentSrc||"";t.__pupLastSrc!==e&&(t.__pupLastSrc=e,this.sessions.has(t)&&this.detach(t),this.attach(t));}reattach(t,e){let r=e.currentTime,o=e.paused,s=e.ended;this.detach(t),this.attach(t,true).then(a=>{a&&(a.currentTime=r,a.paused=o,a.ended=s);});}scan(t){t&&(t.tagName==="VIDEO"&&this.attach(t),t.querySelectorAll&&t.querySelectorAll("video").forEach(e=>{this.attach(e);}));}};function I(){window.__pup_video__||new k().install();}window.self!==window.top&&(v(),I());
2
+ //# sourceMappingURL=iframe_preload.cjs.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydW50aW1lL2lmcmFtZV9ob29rLnRzIiwiLi4vLi4vc3JjL3J1bnRpbWUvdmlkZW8vb3ZlcmxheS50cyIsIi4uLy4uL3NyYy9ydW50aW1lL3ZpZGVvL3R5cGVzLnRzIiwiLi4vLi4vc3JjL3J1bnRpbWUvdmlkZW8vZHJpdmVyLnRzIiwiLi4vLi4vc3JjL3J1bnRpbWUvdmlkZW8vZnJhbWVfY2FjaGUudHMiLCIuLi8uLi9zcmMvcnVudGltZS92aWRlby9tZWRpYV9zaGltLnRzIiwiLi4vLi4vc3JjL3J1bnRpbWUvdmlkZW8vc2Vzc2lvbi50cyIsIi4uLy4uL3NyYy9ydW50aW1lL3ZpZGVvL2hvb2sudHMiLCIuLi8uLi9zcmMvcnVudGltZS9pZnJhbWVfcHJlbG9hZC50cyJdLCJuYW1lcyI6WyJpbnN0YWxsVGlja0hvb2siLCJSRUFMX0RBVEUiLCJkYXRlT3JpZ2luIiwiY3Vyck1zIiwidGltZU9mZnNldCIsInJhZlF1ZXVlIiwidGltZXJzIiwibmV4dElkIiwidGljayIsIkZha2VEYXRlIiwiYXJncyIsImNiIiwiaWQiLCJyIiwiZGVsYXkiLCJkIiwic2FmZUludm9rZVRpbWVyIiwiZm4iLCJlIiwic2FmZUludm9rZVJhZiIsInRzIiwiYW5pbVN0YXRlIiwic3luY0FuaW1hdGlvbnMiLCJtcyIsImFuaW1zIiwiYSIsInN0YXRlIiwicmF0ZSIsInMiLCJjdDAiLCJwcm9jZXNzIiwidGltZXN0YW1wTXMiLCJ0IiwicmFmcyIsIk1JUlJPUl9QUk9QUyIsImNzc0Nhc2UiLCJjIiwic3luY092ZXJsYXkiLCJ2aWRlbyIsImN2IiwiY3MiLCJwIiwidiIsInZyIiwiZHByIiwidyIsImgiLCJzZXR1cENhbnZhcyIsInNuYXAiLCJmaXRSZWN0Iiwic3JjVyIsInNyY0giLCJkc3RXIiwiZHN0SCIsImZpdCIsInNjIiwiayIsIndzIiwiaHMiLCJzYzIiLCJ3czIiLCJoczIiLCJTQ0hFTUUiLCJUQUciLCJ0aW1lUmFuZ2VzIiwiZW5kIiwiZmlyZSIsImVsIiwidHlwZSIsImZpcmVGcmFtZUNhbGxiYWNrcyIsImNicyIsIm5vdyIsIm1ldGEiLCJwYWludCIsImhvb2siLCJpZHgiLCJibSIsImZldGNoZWQiLCJhZHZhbmNlIiwiZHQiLCJwcyIsIkZyYW1lQ2FjaGUiLCJleGlzdGluZyIsImNhY2hlZCIsImJ1ZiIsImZyb21JZHgiLCJjb3VudCIsIm1heElkeCIsImkiLCJtaW5JZHgiLCJmbG9vciIsImluc3RhbGxNZWRpYVNoaW0iLCJIVkUiLCJNRURJQSIsIm1kZXNjIiwiY3REZXNjIiwic3JjRGVzYyIsInJhdGVEZXNjIiwib3JpZ1BhdXNlIiwib3JpZ1JWRkMiLCJvcmlnQ2FuY2VsUlZGQyIsIm9yaWdRdWFsaXR5Iiwib3JpZ0xvYWQiLCJzZXNzaW9ucyIsImRlZiIsInByb3AiLCJwaWNrIiwibmF0aXZlR2V0IiwibnMiLCJjdEdldCIsImN0U2V0IiwiZHVyIiwicmF0ZVNldCIsInNyY1NldCIsIm5ld1ZpZGVvU3RhdGUiLCJmYWlsT3BlbiIsImVycm9yIiwib3BlblNlc3Npb24iLCJzcmMiLCJiaXJ0aE1zIiwibmF0aXZlIiwiZnBzIiwicmVzIiwicSIsIlZpZGVvSG9vayIsIm11dHMiLCJtIiwibiIsInBlbmRpbmciLCJzY3R4IiwicGF1c2VkIiwiZW5kZWQiLCJyb290IiwiaW5zdGFsbFZpZGVvSG9vayJdLCJtYXBwaW5ncyI6InVEQXdCTyxTQUFTQSxHQUF3QixDQUN0QyxHQUFJLE9BQU8sWUFBQSxDQUNULE9BR0YsSUFBTUMsQ0FBQUEsQ0FBWSxJQUFBLENBQ1pDLENBQUFBLENBQWFELENBQUFBLENBQVUsS0FBSSxDQUM3QkUsQ0FBQUEsQ0FBUyxFQUNUQyxDQUFBQSxDQUFhLENBQUEsQ0FDYkMsRUFBdUIsRUFBQyxDQUN0QkMsQ0FBQUEsQ0FBNEMsR0FDOUNDLENBQUFBLENBQVMsQ0FBQSxDQUNQQyxFQUFPLEtBQ1hKLENBQUFBLEVBQWMsSUFDUEEsQ0FBQUEsQ0FBQUEsQ0FHVCxTQUFTSyxDQUFBQSxDQUFBQSxHQUEyQkMsQ0FBQUEsQ0FBZ0Ms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RyxDQUFBQSxDQUFRekcsRUFBTSxLQUFBLENBQ3BCLElBQUEsQ0FBSyxPQUFPWSxDQUFLLENBQUEsQ0FDWixJQUFBLENBQUssTUFBQSxDQUFPQSxFQUFPLElBQUksQ0FBQSxDQUFFLEtBQU1zRSxDQUFBQSxFQUFPLENBQ3BDQSxJQUdMQSxDQUFBQSxDQUFHLFdBQUEsQ0FBYzVFLEVBQ2pCNEUsQ0FBQUEsQ0FBRyxNQUFBLENBQVNzQixFQUNadEIsQ0FBQUEsQ0FBRyxLQUFBLENBQVF1QixHQUNiLENBQUMsRUFDSCxDQUVRLElBQUEsQ0FBS0MsQ0FBQUEsQ0FBNEIsQ0FDbENBLENBQUFBLEdBR0RBLEVBQUssT0FBQSxHQUFZLE9BQUEsRUFDbkIsS0FBSyxNQUFBLENBQU9BLENBQXdCLEVBRWxDQSxDQUFBQSxDQUFLLGdCQUFBLEVBQ1BBLENBQUFBLENBQUssZ0JBQUEsQ0FBaUIsT0FBTyxDQUFBLENBQUUsT0FBQSxDQUFTMUYsR0FBTSxDQUM1QyxJQUFBLENBQUssT0FBT0EsQ0FBQyxFQUNmLENBQUMsQ0FBQSxFQUVMLENBQ0YsQ0FBQSxDQUVPLFNBQVMyRixHQUF5QixDQUNuQyxNQUFBLENBQU8sZUFHWCxJQUFJVCxDQUFBQSxHQUFZLE9BQUEsR0FDbEIsQ0NsS0ksTUFBQSxDQUFPLElBQUEsR0FBUyxPQUFPLEdBQUEsR0FDekI1SCxDQUFBQSxHQUNBcUksQ0FBQUEsRUFBaUIsQ0FBQSIsImZpbGUiOiJpZnJhbWVfcHJlbG9hZC5janMiLCJzb3VyY2VzQ29udGVudCI6WyJkZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIF9fcHVwX3RpY2tfXz86IHsgcHJvY2VzczogKG1zOiBudW1iZXIpID0+IHZvaWQgfTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgVGltZXIge1xuICB0eXBlOiBcInRpbWVvdXRcIiB8IFwiaW50ZXJ2YWxcIjtcbiAgY2I6IFRpbWVySGFuZGxlcjtcbiAgZGVsYXk6IG51bWJlcjtcbiAgbmV4dDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgUmFmRW50cnkge1xuICBpZDogbnVtYmVyO1xuICBjYjogRnJhbWVSZXF1ZXN0Q2FsbGJhY2s7XG59XG5cbmludGVyZmFjZSBBbmltRW50cnkge1xuICBzdGFydE1zOiBudW1iZXI7XG4gIHBhdXNlZEFjY3VtOiBudW1iZXI7XG4gIHBhdXNlZEF0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YWxsVGlja0hvb2soKTogdm9pZCB7XG4gIGlmICh3aW5kb3cuX19wdXBfdGlja19fKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgUkVBTF9EQVRFID0gRGF0ZTtcbiAgY29uc3QgZGF0ZU9yaWdpbiA9IFJFQUxfREFURS5ub3coKTtcbiAgbGV0IGN1cnJNcyA9IDA7XG4gIGxldCB0aW1lT2Zmc2V0ID0gMDtcbiAgbGV0IHJhZlF1ZXVlOiBSYWZFbnRyeVtdID0gW107XG4gIGNvbnN0IHRpbWVyczogUmVjb3JkPG51bWJlciwgVGltZXIgfCB1bmRlZmluZWQ+ID0ge307XG4gIGxldCBuZXh0SWQgPSAxO1xuICBjb25zdCB0aWNrID0gKCkgPT4ge1xuICAgIHRpbWVPZmZzZXQgKz0gMC4wMTtcbiAgICByZXR1cm4gdGltZU9mZnNldDtcbiAgfTtcblxuICBmdW5jdGlvbiBGYWtlRGF0ZSh0aGlzOiB1bmtub3duLCAuLi5hcmdzOiB1bmtub3duW10pOiBEYXRlIHwgc3RyaW5nIHtcbiAgICBpZiAoISh0aGlzIGluc3RhbmNlb2YgRmFrZURhdGUpKSB7XG4gICAgICByZXR1cm4gbmV3IFJFQUxfREFURShkYXRlT3JpZ2luICsgY3Vyck1zKS50b1N0cmluZygpO1xuICAgIH1cbiAgICByZXR1cm4gYXJncy5sZW5ndGhcbiAgICAgID8gbmV3IChGdW5jdGlvbi5wcm90b3R5cGUuYmluZC5hcHBseShSRUFMX0RBVEUsIFtudWxsLCAuLi5hcmdzXSkpKClcbiAgICAgIDogbmV3IFJFQUxfREFURShkYXRlT3JpZ2luICsgY3Vyck1zICsgdGljaygpKTtcbiAgfVxuICBGYWtlRGF0ZS5wcm90b3R5cGUgPSBSRUFMX0RBVEUucHJvdG90eXBlO1xuICBGYWtlRGF0ZS5ub3cgPSAoKSA9PiBkYXRlT3JpZ2luICsgY3Vyck1zICsgdGljaygpO1xuICBGYWtlRGF0ZS5wYXJzZSA9IFJFQUxfREFURS5wYXJzZTtcbiAgRmFrZURhdGUuVVRDID0gUkVBTF9EQVRFLlVUQztcbiAgKHdpbmRvdyBhcyB1bmtub3duIGFzIHsgRGF0ZTogdW5rbm93biB9KS5EYXRlID0gRmFrZURhdGU7XG4gIHBlcmZvcm1hbmNlLm5vdyA9ICgpID0+IGN1cnJNcyArIHRpY2soKTtcblxuICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gKGNiKSA9PiB7XG4gICAgY29uc3QgaWQgPSBuZXh0SWQrKztcbiAgICByYWZRdWV1ZS5wdXNoKHsgaWQsIGNiIH0pO1xuICAgIHJldHVybiBpZDtcbiAgfTtcbiAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lID0gKGlkKSA9PiB7XG4gICAgcmFmUXVldWUgPSByYWZRdWV1ZS5maWx0ZXIoKHIpID0+IHIuaWQgIT09IGlkKTtcbiAgfTtcbiAgKHdpbmRvdyBhcyB1bmtub3duIGFzIHsgc2V0VGltZW91dDogdW5rbm93biB9KS5zZXRUaW1lb3V0ID0gKGNiOiBUaW1lckhhbmRsZXIsIGRlbGF5PzogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgaWQgPSBuZXh0SWQrKztcbiAgICB0aW1lcnNbaWRdID0geyB0eXBlOiBcInRpbWVvdXRcIiwgY2IsIGRlbGF5OiBkZWxheSB8fCAwLCBuZXh0OiBjdXJyTXMgKyAoZGVsYXkgfHwgMCkgfTtcbiAgICByZXR1cm4gaWQ7XG4gIH07XG4gIHdpbmRvdy5jbGVhclRpbWVvdXQgPSAoaWQpID0+IHtcbiAgICBpZiAodHlwZW9mIGlkID09PSBcIm51bWJlclwiKSB7XG4gICAgICBkZWxldGUgdGltZXJzW2lkXTtcbiAgICB9XG4gIH07XG4gICh3aW5kb3cgYXMgdW5rbm93biBhcyB7IHNldEludGVydmFsOiB1bmtub3duIH0pLnNldEludGVydmFsID0gKGNiOiBUaW1lckhhbmRsZXIsIGRlbGF5PzogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgaWQgPSBuZXh0SWQrKztcbiAgICBjb25zdCBkID0gTWF0aC5tYXgoZGVsYXkgfHwgMCwgMSk7XG4gICAgdGltZXJzW2lkXSA9IHsgdHlwZTogXCJpbnRlcnZhbFwiLCBjYiwgZGVsYXk6IGQsIG5leHQ6IGN1cnJNcyArIGQgfTtcbiAgICByZXR1cm4gaWQ7XG4gIH07XG4gIHdpbmRvdy5jbGVhckludGVydmFsID0gKGlkKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBpZCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgZGVsZXRlIHRpbWVyc1tpZF07XG4gICAgfVxuICB9O1xuXG4gIGZ1bmN0aW9uIHNhZmVJbnZva2VUaW1lcihmbjogVGltZXJIYW5kbGVyKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0eXBlb2YgZm4gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgLy8gU3RyaW5nIHRpbWVyIGhhbmRsZXIgcnVucyBhcyBwYWdlIHNjcmlwdCBpbiBnbG9iYWwgc2NvcGUgKEhUTUwgc3BlYyk7IEZ1bmN0aW9uIGN0b3IgbWF0Y2hlcyB0aGF0LCBhdm9pZHMgZXZhbC5cbiAgICAgICAgbmV3IEZ1bmN0aW9uKGZuKSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm4oKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiW1RpY2tdIGVycm9yOlwiLCAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUuc3RhY2spIHx8IGUpO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiBzYWZlSW52b2tlUmFmKGNiOiBGcmFtZVJlcXVlc3RDYWxsYmFjaywgdHM6IG51bWJlcikge1xuICAgIHRyeSB7XG4gICAgICBjYih0cyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihcIltUaWNrXSBlcnJvcjpcIiwgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLnN0YWNrKSB8fCBlKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBhbmltU3RhdGUgPSBuZXcgV2Vha01hcDxBbmltYXRpb24sIEFuaW1FbnRyeT4oKTtcbiAgZnVuY3Rpb24gc3luY0FuaW1hdGlvbnMobXM6IG51bWJlcikge1xuICAgIGxldCBhbmltczogQW5pbWF0aW9uW107XG4gICAgdHJ5IHtcbiAgICAgIGFuaW1zID0gZG9jdW1lbnQuZ2V0QW5pbWF0aW9ucygpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGEgb2YgYW5pbXMpIHtcbiAgICAgIGNvbnN0IHN0YXRlID0gYS5wbGF5U3RhdGU7XG4gICAgICBpZiAoc3RhdGUgPT09IFwiaWRsZVwiIHx8IHN0YXRlID09PSBcImZpbmlzaGVkXCIpIHtcbiAgICAgICAgYW5pbVN0YXRlLmRlbGV0ZShhKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCByYXRlID0gdHlwZW9mIGEucGxheWJhY2tSYXRlID09PSBcIm51bWJlclwiID8gYS5wbGF5YmFja1JhdGUgOiAxO1xuICAgICAgaWYgKHJhdGUgPT09IDApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBsZXQgcyA9IGFuaW1TdGF0ZS5nZXQoYSk7XG4gICAgICBpZiAoIXMpIHtcbiAgICAgICAgY29uc3QgY3QwID0gdHlwZW9mIGEuY3VycmVudFRpbWUgPT09IFwibnVtYmVyXCIgPyBhLmN1cnJlbnRUaW1lIDogMDtcbiAgICAgICAgcyA9IHsgc3RhcnRNczogbXMgLSBjdDAgLyByYXRlLCBwYXVzZWRBY2N1bTogMCwgcGF1c2VkQXQ6IC0xIH07XG4gICAgICAgIGFuaW1TdGF0ZS5zZXQoYSwgcyk7XG4gICAgICB9XG4gICAgICBpZiAoc3RhdGUgPT09IFwicGF1c2VkXCIpIHtcbiAgICAgICAgaWYgKHMucGF1c2VkQXQgPCAwKSB7XG4gICAgICAgICAgcy5wYXVzZWRBdCA9IG1zO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHMucGF1c2VkQXQgPj0gMCkge1xuICAgICAgICBzLnBhdXNlZEFjY3VtICs9IG1zIC0gcy5wYXVzZWRBdDtcbiAgICAgICAgcy5wYXVzZWRBdCA9IC0xO1xuICAgICAgfVxuICAgICAgYS5jdXJyZW50VGltZSA9IChtcyAtIHMuc3RhcnRNcyAtIHMucGF1c2VkQWNjdW0pICogcmF0ZTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBwcm9jZXNzKHRpbWVzdGFtcE1zOiBudW1iZXIpIHtcbiAgICBjdXJyTXMgPSB0aW1lc3RhbXBNcztcbiAgICB0aW1lT2Zmc2V0ID0gMDtcbiAgICBmb3IgKGNvbnN0IGlkIG9mIE9iamVjdC5rZXlzKHRpbWVycykpIHtcbiAgICAgIGNvbnN0IHQgPSB0aW1lcnNbTnVtYmVyKGlkKV07XG4gICAgICBpZiAoIXQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB3aGlsZSAodC5uZXh0IDw9IGN1cnJNcykge1xuICAgICAgICBzYWZlSW52b2tlVGltZXIodC5jYik7XG4gICAgICAgIGlmICh0LnR5cGUgPT09IFwidGltZW91dFwiKSB7XG4gICAgICAgICAgZGVsZXRlIHRpbWVyc1tOdW1iZXIoaWQpXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0Lm5leHQgKz0gdC5kZWxheTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcmFmcyA9IHJhZlF1ZXVlLnNwbGljZSgwKTtcbiAgICBmb3IgKGNvbnN0IHIgb2YgcmFmcykge1xuICAgICAgc2FmZUludm9rZVJhZihyLmNiLCBjdXJyTXMpO1xuICAgIH1cbiAgICBzeW5jQW5pbWF0aW9ucyhjdXJyTXMpO1xuICB9XG5cbiAgd2luZG93Ll9fcHVwX3RpY2tfXyA9IHsgcHJvY2VzcyB9O1xufVxuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wNi8wMi5cblxudHlwZSBWZWM0ID0gW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG5cbmNvbnN0IE1JUlJPUl9QUk9QUyA9IFtcbiAgXCJib3JkZXJSYWRpdXNcIixcbiAgXCJib3JkZXJUb3BMZWZ0UmFkaXVzXCIsXG4gIFwiYm9yZGVyVG9wUmlnaHRSYWRpdXNcIixcbiAgXCJib3JkZXJCb3R0b21MZWZ0UmFkaXVzXCIsXG4gIFwiYm9yZGVyQm90dG9tUmlnaHRSYWRpdXNcIixcbiAgXCJ0cmFuc2Zvcm1cIixcbiAgXCJ0cmFuc2Zvcm1PcmlnaW5cIixcbiAgXCJmaWx0ZXJcIixcbiAgXCJjbGlwUGF0aFwiLFxuICBcImJveFNoYWRvd1wiLFxuICBcIm9wYWNpdHlcIixcbiAgXCJtaXhCbGVuZE1vZGVcIixcbiAgXCJtYXNrXCIsXG4gIFwiekluZGV4XCIsXG4gIFwicG9zaXRpb25cIixcbiAgXCJsZWZ0XCIsXG4gIFwidG9wXCIsXG4gIFwicmlnaHRcIixcbiAgXCJib3R0b21cIixcbl0gYXMgY29uc3Q7XG5cbmZ1bmN0aW9uIGNzc0Nhc2Uoczogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHMucmVwbGFjZSgvW0EtWl0vZywgKGMpID0+IGAtJHtjLnRvTG93ZXJDYXNlKCl9YCk7XG59XG5cbi8vIFRyYWNrIHRoZSBvdmVybGF5IGNhbnZhcyB0byB0aGUgdmlkZW8gZWxlbWVudCdzIGxpdmUgYm94IChwb3NpdGlvbiwgc2l6ZcOXZHByLCBtaXJyb3JlZCB2aXN1YWwgc3R5bGVzKS5cbmV4cG9ydCBmdW5jdGlvbiBzeW5jT3ZlcmxheSh2aWRlbzogSFRNTFZpZGVvRWxlbWVudCwgY3Y6IEhUTUxDYW52YXNFbGVtZW50KTogdm9pZCB7XG4gIGNvbnN0IGNzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodmlkZW8pO1xuICBjdi5zdHlsZS5wb3NpdGlvbiA9IFwiYWJzb2x1dGVcIjtcbiAgLy8gb2Zmc2V0KiBhcmUgcHJlLXRyYW5zZm9ybSBjb29yZHMgZnJvbSBvZmZzZXRQYXJlbnQncyBwYWRkaW5nIGVkZ2UgPSB0aGUgYWJzIGNvbnRhaW5pbmctYmxvY2sgb3JpZ2luOyBtYXAgZGlyZWN0LlxuICBjdi5zdHlsZS5sZWZ0ID0gYCR7dmlkZW8ub2Zmc2V0TGVmdH1weGA7XG4gIGN2LnN0eWxlLnRvcCA9IGAke3ZpZGVvLm9mZnNldFRvcH1weGA7XG4gIGN2LnN0eWxlLndpZHRoID0gYCR7dmlkZW8ub2Zmc2V0V2lkdGh9cHhgO1xuICBjdi5zdHlsZS5oZWlnaHQgPSBgJHt2aWRlby5vZmZzZXRIZWlnaHR9cHhgO1xuICBmb3IgKGNvbnN0IHAgb2YgTUlSUk9SX1BST1BTKSB7XG4gICAgaWYgKHAgPT09IFwicG9zaXRpb25cIiB8fCBwID09PSBcImxlZnRcIiB8fCBwID09PSBcInRvcFwiIHx8IHAgPT09IFwicmlnaHRcIiB8fCBwID09PSBcImJvdHRvbVwiKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgdiA9IGNzLmdldFByb3BlcnR5VmFsdWUoY3NzQ2FzZShwKSk7XG4gICAgaWYgKHYpIHtcbiAgICAgIGN2LnN0eWxlLnNldFByb3BlcnR5KGNzc0Nhc2UocCksIHYpO1xuICAgIH1cbiAgfVxuICAvLyBCYWNraW5nIHN0b3JlIGF0IG9uLXNjcmVlbiBwaXhlbCBzaXplIChwb3N0LXRyYW5zZm9ybSkgc28gZGVjb2RlIHJlc29sdXRpb24gbWF0Y2hlcyBkaXNwbGF5ZWQgcGl4ZWxzLlxuICBjb25zdCB2ciA9IHZpZGVvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCBkcHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxO1xuICBjb25zdCB3ID0gTWF0aC5tYXgoMSwgTWF0aC5yb3VuZCh2ci53aWR0aCAqIGRwcikpO1xuICBjb25zdCBoID0gTWF0aC5tYXgoMSwgTWF0aC5yb3VuZCh2ci5oZWlnaHQgKiBkcHIpKTtcbiAgaWYgKGN2LndpZHRoICE9PSB3KSB7XG4gICAgY3Yud2lkdGggPSB3O1xuICB9XG4gIGlmIChjdi5oZWlnaHQgIT09IGgpIHtcbiAgICBjdi5oZWlnaHQgPSBoO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cENhbnZhcyh2aWRlbzogSFRNTFZpZGVvRWxlbWVudCwgc25hcDogT2Zmc2NyZWVuQ2FudmFzIHwgdW5kZWZpbmVkKTogSFRNTENhbnZhc0VsZW1lbnQge1xuICBjb25zdCBjdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XG4gIGN2LmRhdGFzZXRbXCJwdXBWaWRlb092ZXJsYXlcIl0gPSBcIjFcIjtcbiAgY3Yuc3R5bGUucG9pbnRlckV2ZW50cyA9IFwibm9uZVwiO1xuICB2aWRlby5zdHlsZS52aXNpYmlsaXR5ID0gXCJoaWRkZW5cIjtcbiAgdmlkZW8ubXV0ZWQgPSB0cnVlO1xuICBjb25zdCBwYXJlbnQgPSB2aWRlby5wYXJlbnROb2RlIHx8IGRvY3VtZW50LmJvZHk7XG4gIHBhcmVudC5pbnNlcnRCZWZvcmUoY3YsIHZpZGVvLm5leHRTaWJsaW5nKTtcbiAgc3luY092ZXJsYXkodmlkZW8sIGN2KTtcbiAgaWYgKHNuYXApIHtcbiAgICB0cnkge1xuICAgICAgY3YuZ2V0Q29udGV4dChcIjJkXCIpIS5kcmF3SW1hZ2Uoc25hcCwgMCwgMCwgY3Yud2lkdGgsIGN2LmhlaWdodCk7XG4gICAgfSBjYXRjaCB7fVxuICB9XG4gIHJldHVybiBjdjtcbn1cblxuLy8gRHJhdyByZWN0IGZvciB0aGUgYml0bWFwIHdpdGhpbiB0aGUgY2FudmFzIHBlciBvYmplY3RGaXQuXG5leHBvcnQgZnVuY3Rpb24gZml0UmVjdChzcmNXOiBudW1iZXIsIHNyY0g6IG51bWJlciwgZHN0VzogbnVtYmVyLCBkc3RIOiBudW1iZXIsIGZpdDogc3RyaW5nKTogVmVjNCB7XG4gIGlmIChmaXQgPT09IFwibm9uZVwiKSB7XG4gICAgcmV0dXJuIFsoZHN0VyAtIHNyY1cpIC8gMiwgKGRzdEggLSBzcmNIKSAvIDIsIHNyY1csIHNyY0hdO1xuICB9XG4gIGlmIChmaXQgPT09IFwiY29udGFpblwiIHx8IGZpdCA9PT0gXCJzY2FsZS1kb3duXCIpIHtcbiAgICBjb25zdCBzYyA9IE1hdGgubWluKGRzdFcgLyBzcmNXLCBkc3RIIC8gc3JjSCk7XG4gICAgY29uc3QgayA9IGZpdCA9PT0gXCJzY2FsZS1kb3duXCIgPyBNYXRoLm1pbigxLCBzYykgOiBzYztcbiAgICBjb25zdCB3cyA9IGsgKiBzcmNXO1xuICAgIGNvbnN0IGhzID0gayAqIHNyY0g7XG4gICAgcmV0dXJuIFsoZHN0VyAtIHdzKSAvIDIsIChkc3RIIC0gaHMpIC8gMiwgd3MsIGhzXTtcbiAgfVxuICBpZiAoZml0ID09PSBcImNvdmVyXCIpIHtcbiAgICBjb25zdCBzYzIgPSBNYXRoLm1heChkc3RXIC8gc3JjVywgZHN0SCAvIHNyY0gpO1xuICAgIGNvbnN0IHdzMiA9IHNjMiAqIHNyY1c7XG4gICAgY29uc3QgaHMyID0gc2MyICogc3JjSDtcbiAgICByZXR1cm4gWyhkc3RXIC0gd3MyKSAvIDIsIChkc3RIIC0gaHMyKSAvIDIsIHdzMiwgaHMyXTtcbiAgfVxuICByZXR1cm4gWzAsIDAsIGRzdFcsIGRzdEhdO1xufVxuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wNi8wMi5cblxuZXhwb3J0IGNvbnN0IFNDSEVNRSA9IFwicHVwLWZyYW1lOi8vXCI7XG5leHBvcnQgY29uc3QgQUhFQUQgPSAxMDtcbmV4cG9ydCBjb25zdCBUQUcgPSBcIltWaWRlb0hvb2tdXCI7XG5cbmV4cG9ydCBjb25zdCBNRURJQV9FUlJfTkVUV09SSyA9IDI7XG5leHBvcnQgY29uc3QgTUVESUFfRVJSX0RFQ09ERSA9IDM7XG5leHBvcnQgY29uc3QgSEFWRV9OT1RISU5HID0gMDtcbmV4cG9ydCBjb25zdCBIQVZFX01FVEFEQVRBID0gMTtcbmV4cG9ydCBjb25zdCBIQVZFX0VOT1VHSF9EQVRBID0gNDtcbmV4cG9ydCBjb25zdCBORVRXT1JLX0VNUFRZID0gMDtcbmV4cG9ydCBjb25zdCBORVRXT1JLX0lETEUgPSAxO1xuZXhwb3J0IGNvbnN0IE5FVFdPUktfTE9BRElORyA9IDI7XG5leHBvcnQgY29uc3QgTkVUV09SS19OT19TT1VSQ0UgPSAzO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZpZGVvTWV0YSB7XG4gIGlkOiBzdHJpbmc7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBmcmFtZVdpZHRoOiBudW1iZXI7XG4gIGZyYW1lSGVpZ2h0OiBudW1iZXI7XG4gIGR1cmF0aW9uOiBudW1iZXI7XG4gIGZwczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZpZGVvRnJhbWVNZXRhIHtcbiAgcHJlc2VudGF0aW9uVGltZTogbnVtYmVyO1xuICBleHBlY3RlZERpc3BsYXlUaW1lOiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBtZWRpYVRpbWU6IG51bWJlcjtcbiAgcHJlc2VudGVkRnJhbWVzOiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIEZyYW1lQ2IgPSAobm93OiBudW1iZXIsIG1ldGE6IFZpZGVvRnJhbWVNZXRhKSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lZGlhRXJyb3JMaWtlIHtcbiAgY29kZTogbnVtYmVyO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlkZW9DYWNoZSB7XG4gIGJpdG1hcHM6IE1hcDxudW1iZXIsIEltYWdlQml0bWFwPjtcbiAgaW5GbGlnaHQ6IE1hcDxudW1iZXIsIFByb21pc2U8SW1hZ2VCaXRtYXAgfCBudWxsPj47XG4gIHJlYWRlcnM6IE1hcDxWaWRlb1N0YXRlLCBudW1iZXI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZpZGVvU3RhdGUge1xuICBtZXRhOiBWaWRlb01ldGEgfCBudWxsO1xuICBjdjogSFRNTENhbnZhc0VsZW1lbnQ7XG4gIGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEO1xuICBwYXVzZWQ6IGJvb2xlYW47XG4gIGN1cnJlbnRUaW1lOiBudW1iZXI7XG4gIGVuZGVkOiBib29sZWFuO1xuICBsYXN0RHJhd25JZHg6IG51bWJlcjtcbiAgZGVhZDogYm9vbGVhbjtcbiAgb2JqZWN0Rml0OiBzdHJpbmc7XG4gIHJlYWR5U3RhdGU6IG51bWJlcjtcbiAgbmV0d29ya1N0YXRlOiBudW1iZXI7XG4gIHNlZWtpbmc6IGJvb2xlYW47XG4gIHdhaXRpbmc6IGJvb2xlYW47XG4gIGVycm9yOiBNZWRpYUVycm9yTGlrZSB8IHVuZGVmaW5lZDtcbiAgcHJlc2VudGVkRnJhbWVzOiBudW1iZXI7XG4gIG1heFJlYWNoZWQ6IG51bWJlcjtcbiAgcnZmYzogTWFwPG51bWJlciwgRnJhbWVDYj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZVJhbmdlc0xpa2Uge1xuICBsZW5ndGg6IG51bWJlcjtcbiAgc3RhcnQoaTogbnVtYmVyKTogbnVtYmVyO1xuICBlbmQoaTogbnVtYmVyKTogbnVtYmVyO1xufVxuXG4vLyBXaG9sZSBjbGlwIGlzIGRlY29kZS1vbi1kZW1hbmQsIHNvIHRoZSBhdmFpbGFibGUgcmFuZ2UgaXMgYWx3YXlzIFswLCBlbmRdIChvbmUgVGltZVJhbmdlcyBlbnRyeSkuXG5leHBvcnQgZnVuY3Rpb24gdGltZVJhbmdlcyhlbmQ6IG51bWJlcik6IFRpbWVSYW5nZXNMaWtlIHtcbiAgcmV0dXJuIHsgbGVuZ3RoOiBlbmQgPiAwID8gMSA6IDAsIHN0YXJ0OiAoKSA9PiAwLCBlbmQ6ICgpID0+IGVuZCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlyZShlbDogRXZlbnRUYXJnZXQsIHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICBlbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCh0eXBlKSk7XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzA2LzAyLlxuXG5pbXBvcnQgdHlwZSB7IFZpZGVvSG9vayB9IGZyb20gXCIuL2hvb2tcIjtcbmltcG9ydCB7IGZpdFJlY3QsIHN5bmNPdmVybGF5IH0gZnJvbSBcIi4vb3ZlcmxheVwiO1xuaW1wb3J0IHsgQUhFQUQsIGZpcmUsIHR5cGUgVmlkZW9GcmFtZU1ldGEsIHR5cGUgVmlkZW9TdGF0ZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmZ1bmN0aW9uIGZpcmVGcmFtZUNhbGxiYWNrcyhzdGF0ZTogVmlkZW9TdGF0ZSk6IHZvaWQge1xuICBpZiAoc3RhdGUucnZmYy5zaXplID09PSAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGNicyA9IFsuLi5zdGF0ZS5ydmZjLnZhbHVlcygpXTtcbiAgc3RhdGUucnZmYy5jbGVhcigpO1xuICBjb25zdCBub3cgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgY29uc3QgbWV0YTogVmlkZW9GcmFtZU1ldGEgPSB7XG4gICAgcHJlc2VudGF0aW9uVGltZTogbm93LFxuICAgIGV4cGVjdGVkRGlzcGxheVRpbWU6IG5vdyxcbiAgICB3aWR0aDogc3RhdGUubWV0YSEuZnJhbWVXaWR0aCxcbiAgICBoZWlnaHQ6IHN0YXRlLm1ldGEhLmZyYW1lSGVpZ2h0LFxuICAgIG1lZGlhVGltZTogc3RhdGUuY3VycmVudFRpbWUsXG4gICAgcHJlc2VudGVkRnJhbWVzOiBzdGF0ZS5wcmVzZW50ZWRGcmFtZXMsXG4gIH07XG4gIGZvciAoY29uc3QgY2Igb2YgY2JzKSB7XG4gICAgY2Iobm93LCBtZXRhKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBwYWludChob29rOiBWaWRlb0hvb2ssIHZpZGVvOiBIVE1MVmlkZW9FbGVtZW50LCBzdGF0ZTogVmlkZW9TdGF0ZSwgaWR4OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgYyA9IGhvb2suY2FjaGUuY2FjaGVPZihzdGF0ZS5tZXRhIS5pZCk7XG4gIGMucmVhZGVycy5zZXQoc3RhdGUsIGlkeCk7XG4gIGxldCBibSA9IGMuYml0bWFwcy5nZXQoaWR4KTtcbiAgaWYgKCFibSkge1xuICAgIGhvb2suY2FjaGUucHJlZmV0Y2goc3RhdGUsIGlkeCArIDEsIEFIRUFEIC0gMSk7XG4gICAgY29uc3QgZmV0Y2hlZCA9IGF3YWl0IGhvb2suY2FjaGUuZmV0Y2goc3RhdGUsIGlkeCk7XG4gICAgaWYgKGhvb2suc2Vzc2lvbnMuZ2V0KHZpZGVvKSAhPT0gc3RhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFmZXRjaGVkKSB7XG4gICAgICBpZiAoIXN0YXRlLnBhdXNlZCAmJiAhc3RhdGUud2FpdGluZykge1xuICAgICAgICBzdGF0ZS53YWl0aW5nID0gdHJ1ZTtcbiAgICAgICAgZmlyZSh2aWRlbywgXCJ3YWl0aW5nXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBibSA9IGZldGNoZWQ7XG4gIH1cbiAgaWYgKHN0YXRlLndhaXRpbmcpIHtcbiAgICBzdGF0ZS53YWl0aW5nID0gZmFsc2U7XG4gICAgaWYgKCFzdGF0ZS5wYXVzZWQpIHtcbiAgICAgIGZpcmUodmlkZW8sIFwicGxheWluZ1wiKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgY3YgPSBzdGF0ZS5jdjtcbiAgY29uc3QgciA9IGZpdFJlY3QoYm0ud2lkdGgsIGJtLmhlaWdodCwgY3Yud2lkdGgsIGN2LmhlaWdodCwgc3RhdGUub2JqZWN0Rml0KTtcbiAgc3RhdGUuY3R4LmNsZWFyUmVjdCgwLCAwLCBjdi53aWR0aCwgY3YuaGVpZ2h0KTtcbiAgc3RhdGUuY3R4LmRyYXdJbWFnZShibSwgclswXSwgclsxXSwgclsyXSwgclszXSk7XG4gIHN0YXRlLmxhc3REcmF3bklkeCA9IGlkeDtcbiAgc3RhdGUucHJlc2VudGVkRnJhbWVzKys7XG4gIGZpcmVGcmFtZUNhbGxiYWNrcyhzdGF0ZSk7XG4gIGhvb2suY2FjaGUucHJlZmV0Y2goc3RhdGUsIGlkeCArIDEsIEFIRUFEKTtcbiAgaG9vay5jYWNoZS5ldmljdChjKTtcbn1cblxuLy8gVmlydHVhbC10aW1lIHRpY2s6IHN5bmMgb3ZlcmxheXMsIGFkdmFuY2UgZWFjaCBob29rZWQgdmlkZW8ncyBjbG9jayAobG9vcC9lbmQpLCBwYWludCB0aGUgZHVlIGZyYW1lLlxuZXhwb3J0IGZ1bmN0aW9uIGFkdmFuY2UoaG9vazogVmlkZW9Ib29rLCB0aW1lc3RhbXBNczogbnVtYmVyKTogUHJvbWlzZTx1bmtub3duPiB7XG4gIGNvbnN0IGR0ID0gTWF0aC5tYXgoMCwgdGltZXN0YW1wTXMgLSBob29rLmN1cnJNcykgLyAxMDAwO1xuICBob29rLmN1cnJNcyA9IHRpbWVzdGFtcE1zO1xuICBjb25zdCBwczogUHJvbWlzZTx1bmtub3duPltdID0gW107XG4gIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJ2aWRlb1wiKS5mb3JFYWNoKChlbCkgPT4ge1xuICAgIGNvbnN0IHZpZGVvID0gZWwgYXMgSFRNTFZpZGVvRWxlbWVudDtcbiAgICBjb25zdCBzdGF0ZSA9IGhvb2suc2Vzc2lvbnMuZ2V0KHZpZGVvKTtcbiAgICBpZiAoIXN0YXRlIHx8IHN0YXRlLmRlYWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3luY092ZXJsYXkodmlkZW8sIHN0YXRlLmN2KTtcbiAgICBpZiAoIXN0YXRlLm1ldGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gRWxlbWVudCBncmV3IHBhc3QgdGhlIGRlY29kZWQgKGRvd25zY2FsZWQpIHJlcyDihpIgcmUtZGVjb2RlIGF0IG5hdGl2ZSwgb25lLXNob3QgKGNvdmVycyB6b29tKS5cbiAgICBpZiAoXG4gICAgICBzdGF0ZS5tZXRhLmZyYW1lV2lkdGggPCBzdGF0ZS5tZXRhLndpZHRoICYmXG4gICAgICBzdGF0ZS5jdi53aWR0aCA+IHN0YXRlLm1ldGEuZnJhbWVXaWR0aCAqIDEuMDUgJiZcbiAgICAgICFob29rLmF0dGFjaGluZy5oYXModmlkZW8pXG4gICAgKSB7XG4gICAgICBob29rLnJlYXR0YWNoKHZpZGVvLCBzdGF0ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghc3RhdGUucGF1c2VkICYmICFzdGF0ZS5lbmRlZCkge1xuICAgICAgc3RhdGUuY3VycmVudFRpbWUgKz0gZHQgKiAodmlkZW8ucGxheWJhY2tSYXRlIHx8IDEpO1xuICAgICAgc3RhdGUubWF4UmVhY2hlZCA9IE1hdGgubWF4KHN0YXRlLm1heFJlYWNoZWQsIHN0YXRlLmN1cnJlbnRUaW1lKTtcbiAgICAgIGlmIChzdGF0ZS5jdXJyZW50VGltZSA+PSBzdGF0ZS5tZXRhLmR1cmF0aW9uKSB7XG4gICAgICAgIGlmICh2aWRlby5sb29wKSB7XG4gICAgICAgICAgc3RhdGUuY3VycmVudFRpbWUgPSBzdGF0ZS5jdXJyZW50VGltZSAlIHN0YXRlLm1ldGEuZHVyYXRpb247XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGUuY3VycmVudFRpbWUgPSBzdGF0ZS5tZXRhLmR1cmF0aW9uO1xuICAgICAgICAgIHN0YXRlLnBhdXNlZCA9IHRydWU7XG4gICAgICAgICAgc3RhdGUuZW5kZWQgPSB0cnVlO1xuICAgICAgICAgIGZpcmUodmlkZW8sIFwiZW5kZWRcIik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpcmUodmlkZW8sIFwidGltZXVwZGF0ZVwiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaWR4ID0gTWF0aC5tYXgoMSwgTWF0aC5yb3VuZChzdGF0ZS5jdXJyZW50VGltZSAqIHN0YXRlLm1ldGEuZnBzKSk7XG4gICAgaWYgKGlkeCA9PT0gc3RhdGUubGFzdERyYXduSWR4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHBzLnB1c2gocGFpbnQoaG9vaywgdmlkZW8sIHN0YXRlLCBpZHgpKTtcbiAgfSk7XG4gIHJldHVybiBQcm9taXNlLmFsbChwcyk7XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzA2LzAyLlxuXG5pbXBvcnQgeyBTQ0hFTUUsIHR5cGUgVmlkZW9DYWNoZSwgdHlwZSBWaWRlb1N0YXRlIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLy8gUGVyLXNlc3Npb24gYml0bWFwIGNhY2hlOiBmZXRjaGVzIFJHQkEgZnJhbWVzIGZyb20gdGhlIGZyYW1lIHByb3RvY29sLCBkZWR1cGVzIGluLWZsaWdodCwgZXZpY3RzIGJlaGluZCByZWFkZXJzLlxuZXhwb3J0IGNsYXNzIEZyYW1lQ2FjaGUge1xuICBwcml2YXRlIF9jYWNoZXMgPSBuZXcgTWFwPHN0cmluZywgVmlkZW9DYWNoZT4oKTtcblxuICBjYWNoZU9mKGlkOiBzdHJpbmcpOiBWaWRlb0NhY2hlIHtcbiAgICBsZXQgYyA9IHRoaXMuX2NhY2hlcy5nZXQoaWQpO1xuICAgIGlmICghYykge1xuICAgICAgYyA9IHsgYml0bWFwczogbmV3IE1hcCgpLCBpbkZsaWdodDogbmV3IE1hcCgpLCByZWFkZXJzOiBuZXcgTWFwKCkgfTtcbiAgICAgIHRoaXMuX2NhY2hlcy5zZXQoaWQsIGMpO1xuICAgIH1cbiAgICByZXR1cm4gYztcbiAgfVxuXG4gIGZldGNoKHN0YXRlOiBWaWRlb1N0YXRlLCBpZHg6IG51bWJlcik6IFByb21pc2U8SW1hZ2VCaXRtYXAgfCBudWxsPiB7XG4gICAgY29uc3QgbWV0YSA9IHN0YXRlLm1ldGE7XG4gICAgaWYgKCFtZXRhKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgIH1cbiAgICBjb25zdCBjID0gdGhpcy5jYWNoZU9mKG1ldGEuaWQpO1xuICAgIGNvbnN0IGV4aXN0aW5nID0gYy5pbkZsaWdodC5nZXQoaWR4KTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIHJldHVybiBleGlzdGluZztcbiAgICB9XG4gICAgY29uc3QgY2FjaGVkID0gYy5iaXRtYXBzLmdldChpZHgpO1xuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY2FjaGVkKTtcbiAgICB9XG4gICAgY29uc3QgdyA9IG1ldGEuZnJhbWVXaWR0aDtcbiAgICBjb25zdCBoID0gbWV0YS5mcmFtZUhlaWdodDtcbiAgICBjb25zdCBwID0gZmV0Y2goYCR7U0NIRU1FfWZyYW1lP2lkPSR7bWV0YS5pZH0maWR4PSR7aWR4fWApXG4gICAgICAudGhlbigocikgPT4gKHIub2sgPyByLmFycmF5QnVmZmVyKCkgOiBudWxsKSlcbiAgICAgIC50aGVuKChidWYpID0+XG4gICAgICAgIGJ1ZiAmJiBidWYuYnl0ZUxlbmd0aCA9PT0gdyAqIGggKiA0ID8gY3JlYXRlSW1hZ2VCaXRtYXAobmV3IEltYWdlRGF0YShuZXcgVWludDhDbGFtcGVkQXJyYXkoYnVmKSwgdywgaCkpIDogbnVsbCxcbiAgICAgIClcbiAgICAgIC50aGVuKChibSkgPT4ge1xuICAgICAgICBjLmluRmxpZ2h0LmRlbGV0ZShpZHgpO1xuICAgICAgICBpZiAoYm0pIHtcbiAgICAgICAgICBjLmJpdG1hcHMuc2V0KGlkeCwgYm0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBibTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICBjLmluRmxpZ2h0LmRlbGV0ZShpZHgpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0pO1xuICAgIGMuaW5GbGlnaHQuc2V0KGlkeCwgcCk7XG4gICAgcmV0dXJuIHA7XG4gIH1cblxuICBwcmVmZXRjaChzdGF0ZTogVmlkZW9TdGF0ZSwgZnJvbUlkeDogbnVtYmVyLCBjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbWV0YSA9IHN0YXRlLm1ldGE7XG4gICAgaWYgKCFtZXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1heElkeCA9IE1hdGgubWF4KDEsIE1hdGgucm91bmQobWV0YS5kdXJhdGlvbiAqIG1ldGEuZnBzKSk7XG4gICAgZm9yIChsZXQgaSA9IGZyb21JZHg7IGkgPCBmcm9tSWR4ICsgY291bnQ7IGkrKykge1xuICAgICAgaWYgKGkgPCAxIHx8IGkgPiBtYXhJZHgpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB2b2lkIHRoaXMuZmV0Y2goc3RhdGUsIGkpO1xuICAgIH1cbiAgfVxuXG4gIGV2aWN0KGM6IFZpZGVvQ2FjaGUpOiB2b2lkIHtcbiAgICBsZXQgbWluSWR4ID0gSW5maW5pdHk7XG4gICAgYy5yZWFkZXJzLmZvckVhY2goKGlkeCkgPT4ge1xuICAgICAgaWYgKGlkeCA8IG1pbklkeCkge1xuICAgICAgICBtaW5JZHggPSBpZHg7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUobWluSWR4KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmbG9vciA9IG1pbklkeCAtIDI7XG4gICAgYy5iaXRtYXBzLmZvckVhY2goKGJtLCBpZHgpID0+IHtcbiAgICAgIGlmIChpZHggPCBmbG9vcikge1xuICAgICAgICBibS5jbG9zZSgpO1xuICAgICAgICBjLmJpdG1hcHMuZGVsZXRlKGlkeCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBEcm9wIGEgcmVhZGVyOyB3aGVuIHRoZSBsYXN0IGxlYXZlcywgY2xvc2UgYml0bWFwcyBhbmQgdGVsbCB0aGUgc2VydmVyIHRvIHJlbGVhc2UgdGhlIGRlY29kZSBzZXNzaW9uLlxuICByZWxlYXNlKGlkOiBzdHJpbmcsIHN0YXRlOiBWaWRlb1N0YXRlKTogdm9pZCB7XG4gICAgY29uc3QgYyA9IHRoaXMuX2NhY2hlcy5nZXQoaWQpO1xuICAgIGlmICghYykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjLnJlYWRlcnMuZGVsZXRlKHN0YXRlKTtcbiAgICBpZiAoYy5yZWFkZXJzLnNpemUgPiAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGMuYml0bWFwcy5mb3JFYWNoKChibSkgPT4ge1xuICAgICAgYm0uY2xvc2UoKTtcbiAgICB9KTtcbiAgICB0aGlzLl9jYWNoZXMuZGVsZXRlKGlkKTtcbiAgICBmZXRjaChgJHtTQ0hFTUV9Y2xvc2U/aWQ9JHtpZH1gLCB7IGtlZXBhbGl2ZTogdHJ1ZSB9KTtcbiAgfVxufVxuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wNi8wMi5cblxuaW1wb3J0IHR5cGUgeyBWaWRlb0hvb2sgfSBmcm9tIFwiLi9ob29rXCI7XG5pbXBvcnQgeyB0eXBlIEZyYW1lQ2IsIGZpcmUsIHRpbWVSYW5nZXMsIHR5cGUgVmlkZW9TdGF0ZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8vIE92ZXJyaWRlIHRoZSBIVE1MTWVkaWFFbGVtZW50IHN1cmZhY2UgZm9yIGhvb2tlZCA8dmlkZW8+OyB1bmhvb2tlZCBlbGVtZW50cyBmYWxsIHRocm91Z2ggdG8gbmF0aXZlLlxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbGxNZWRpYVNoaW0oaG9vazogVmlkZW9Ib29rKTogdm9pZCB7XG4gIGNvbnN0IEhWRSA9IEhUTUxWaWRlb0VsZW1lbnQucHJvdG90eXBlO1xuICBjb25zdCBNRURJQSA9IEhUTUxNZWRpYUVsZW1lbnQucHJvdG90eXBlO1xuICBjb25zdCBtZGVzYyA9IChwOiBzdHJpbmcpID0+IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSFZFLCBwKSB8fCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE1FRElBLCBwKTtcbiAgY29uc3QgY3REZXNjID0gbWRlc2MoXCJjdXJyZW50VGltZVwiKTtcbiAgY29uc3Qgc3JjRGVzYyA9IG1kZXNjKFwic3JjXCIpO1xuICBjb25zdCByYXRlRGVzYyA9IG1kZXNjKFwicGxheWJhY2tSYXRlXCIpO1xuICBjb25zdCBvcmlnUGF1c2UgPSBIVkUucGF1c2U7XG4gIGNvbnN0IG9yaWdSVkZDID0gSFZFLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2s7XG4gIGNvbnN0IG9yaWdDYW5jZWxSVkZDID0gSFZFLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjaztcbiAgY29uc3Qgb3JpZ1F1YWxpdHkgPSBIVkUuZ2V0VmlkZW9QbGF5YmFja1F1YWxpdHk7XG4gIGNvbnN0IG9yaWdMb2FkID0gSFZFLmxvYWQ7XG4gIGNvbnN0IHNlc3Npb25zID0gaG9vay5zZXNzaW9ucztcblxuICAvLyBTZXNzaW9uLWJhY2tlZCByZWFkLW9ubHkgcHJvcGVydHkgd2l0aCBuYXRpdmUgZmFsbGJhY2sgd2hlbiB0aGUgZWxlbWVudCBpc24ndCBob29rZWQuXG4gIGNvbnN0IGRlZiA9IChwcm9wOiBzdHJpbmcsIHBpY2s6IChzOiBWaWRlb1N0YXRlKSA9PiB1bmtub3duKSA9PiB7XG4gICAgY29uc3QgbmF0aXZlR2V0ID0gbWRlc2MocHJvcCk/LmdldDtcbiAgICBpZiAoIW5hdGl2ZUdldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBtZWRpYV9zaGltOiBubyBuYXRpdmUgZ2V0dGVyIGZvciAke3Byb3B9YCk7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShIVkUsIHByb3AsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldCh0aGlzOiBIVE1MVmlkZW9FbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHMgPSBzZXNzaW9ucy5nZXQodGhpcyk7XG4gICAgICAgIHJldHVybiBzID8gcGljayhzKSA6IG5hdGl2ZUdldC5jYWxsKHRoaXMpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcbiAgZGVmKFwicGF1c2VkXCIsIChzKSA9PiBzLnBhdXNlZCk7XG4gIGRlZihcImVuZGVkXCIsIChzKSA9PiBzLmVuZGVkKTtcbiAgZGVmKFwicmVhZHlTdGF0ZVwiLCAocykgPT4gcy5yZWFkeVN0YXRlKTtcbiAgZGVmKFwibmV0d29ya1N0YXRlXCIsIChzKSA9PiBzLm5ldHdvcmtTdGF0ZSk7XG4gIGRlZihcImVycm9yXCIsIChzKSA9PiBzLmVycm9yID8/IG51bGwpO1xuICBkZWYoXCJzZWVraW5nXCIsIChzKSA9PiBzLnNlZWtpbmcpO1xuICBkZWYoXCJidWZmZXJlZFwiLCAocykgPT4gdGltZVJhbmdlcyhzLm1ldGEgPyBzLm1ldGEuZHVyYXRpb24gOiAwKSk7XG4gIGRlZihcInNlZWthYmxlXCIsIChzKSA9PiB0aW1lUmFuZ2VzKHMubWV0YSA/IHMubWV0YS5kdXJhdGlvbiA6IDApKTtcbiAgZGVmKFwicGxheWVkXCIsIChzKSA9PiB0aW1lUmFuZ2VzKHMubWF4UmVhY2hlZCkpO1xuXG4gIEhWRS5wbGF5ID0gZnVuY3Rpb24gKHRoaXM6IEhUTUxWaWRlb0VsZW1lbnQpIHtcbiAgICBjb25zdCBzID0gc2Vzc2lvbnMuZ2V0KHRoaXMpO1xuICAgIGlmICghcykge1xuICAgICAgcmV0dXJuIGhvb2suYXR0YWNoKHRoaXMpLnRoZW4oKG5zKSA9PiB7XG4gICAgICAgIGlmIChucykge1xuICAgICAgICAgIGhvb2sucmVzdW1lKHRoaXMsIG5zKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGhvb2sucmVzdW1lKHRoaXMsIHMpO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfTtcbiAgSFZFLnBhdXNlID0gZnVuY3Rpb24gKHRoaXM6IEhUTUxWaWRlb0VsZW1lbnQpIHtcbiAgICBjb25zdCBzID0gc2Vzc2lvbnMuZ2V0KHRoaXMpO1xuICAgIGlmICghcykge1xuICAgICAgb3JpZ1BhdXNlLmNhbGwodGhpcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghcy5wYXVzZWQpIHtcbiAgICAgIHMucGF1c2VkID0gdHJ1ZTtcbiAgICAgIGZpcmUodGhpcywgXCJwYXVzZVwiKTtcbiAgICB9XG4gIH07XG4gIGlmIChjdERlc2M/LmdldCAmJiBjdERlc2Muc2V0KSB7XG4gICAgY29uc3QgY3RHZXQgPSBjdERlc2MuZ2V0O1xuICAgIGNvbnN0IGN0U2V0ID0gY3REZXNjLnNldDtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoSFZFLCBcImN1cnJlbnRUaW1lXCIsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldCh0aGlzOiBIVE1MVmlkZW9FbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHMgPSBzZXNzaW9ucy5nZXQodGhpcyk7XG4gICAgICAgIHJldHVybiBzID8gcy5jdXJyZW50VGltZSA6IGN0R2V0LmNhbGwodGhpcyk7XG4gICAgICB9LFxuICAgICAgc2V0KHRoaXM6IEhUTUxWaWRlb0VsZW1lbnQsIHQ6IG51bWJlcikge1xuICAgICAgICBjb25zdCBzID0gc2Vzc2lvbnMuZ2V0KHRoaXMpO1xuICAgICAgICBpZiAoIXMpIHtcbiAgICAgICAgICBjdFNldC5jYWxsKHRoaXMsIHQpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkdXIgPSBzLm1ldGEgPyBzLm1ldGEuZHVyYXRpb24gOiB0O1xuICAgICAgICBzLmN1cnJlbnRUaW1lID0gTWF0aC5tYXgoMCwgTWF0aC5taW4odCwgZHVyKSk7XG4gICAgICAgIHMubWF4UmVhY2hlZCA9IE1hdGgubWF4KHMubWF4UmVhY2hlZCwgcy5jdXJyZW50VGltZSk7XG4gICAgICAgIGlmIChzLmN1cnJlbnRUaW1lIDwgZHVyKSB7XG4gICAgICAgICAgcy5lbmRlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHMuc2Vla2luZyA9IHRydWU7XG4gICAgICAgIGZpcmUodGhpcywgXCJzZWVraW5nXCIpO1xuICAgICAgICBzLnNlZWtpbmcgPSBmYWxzZTtcbiAgICAgICAgZmlyZSh0aGlzLCBcInNlZWtlZFwiKTtcbiAgICAgICAgZmlyZSh0aGlzLCBcInRpbWV1cGRhdGVcIik7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGlmIChyYXRlRGVzYz8uc2V0KSB7XG4gICAgY29uc3QgcmF0ZVNldCA9IHJhdGVEZXNjLnNldDtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoSFZFLCBcInBsYXliYWNrUmF0ZVwiLCB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQ6IHJhdGVEZXNjLmdldCxcbiAgICAgIHNldCh0aGlzOiBIVE1MVmlkZW9FbGVtZW50LCByOiBudW1iZXIpIHtcbiAgICAgICAgcmF0ZVNldC5jYWxsKHRoaXMsIHIpO1xuICAgICAgICBpZiAoc2Vzc2lvbnMuaGFzKHRoaXMpKSB7XG4gICAgICAgICAgZmlyZSh0aGlzLCBcInJhdGVjaGFuZ2VcIik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgSFZFLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sgPSBmdW5jdGlvbiAodGhpczogSFRNTFZpZGVvRWxlbWVudCwgY2IpOiBudW1iZXIge1xuICAgIGNvbnN0IHMgPSBzZXNzaW9ucy5nZXQodGhpcyk7XG4gICAgaWYgKCFzKSB7XG4gICAgICByZXR1cm4gb3JpZ1JWRkMuY2FsbCh0aGlzLCBjYik7XG4gICAgfVxuICAgIGNvbnN0IGlkID0gKytob29rLnJ2ZmNTZXE7XG4gICAgcy5ydmZjLnNldChpZCwgY2IgYXMgRnJhbWVDYik7XG4gICAgcmV0dXJuIGlkO1xuICB9O1xuICBIVkUuY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrID0gZnVuY3Rpb24gKHRoaXM6IEhUTUxWaWRlb0VsZW1lbnQsIGlkOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBzID0gc2Vzc2lvbnMuZ2V0KHRoaXMpO1xuICAgIGlmICghcykge1xuICAgICAgb3JpZ0NhbmNlbFJWRkMuY2FsbCh0aGlzLCBpZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHMucnZmYy5kZWxldGUoaWQpO1xuICB9O1xuICBIVkUuZ2V0VmlkZW9QbGF5YmFja1F1YWxpdHkgPSBmdW5jdGlvbiAodGhpczogSFRNTFZpZGVvRWxlbWVudCkge1xuICAgIGNvbnN0IHMgPSBzZXNzaW9ucy5nZXQodGhpcyk7XG4gICAgaWYgKCFzKSB7XG4gICAgICByZXR1cm4gb3JpZ1F1YWxpdHkuY2FsbCh0aGlzKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGNyZWF0aW9uVGltZTogcGVyZm9ybWFuY2Uubm93KCksXG4gICAgICB0b3RhbFZpZGVvRnJhbWVzOiBzLnByZXNlbnRlZEZyYW1lcyxcbiAgICAgIGRyb3BwZWRWaWRlb0ZyYW1lczogMCxcbiAgICAgIGNvcnJ1cHRlZFZpZGVvRnJhbWVzOiAwLFxuICAgIH0gYXMgVmlkZW9QbGF5YmFja1F1YWxpdHk7XG4gIH07XG4gIEhWRS5sb2FkID0gZnVuY3Rpb24gKHRoaXM6IEhUTUxWaWRlb0VsZW1lbnQpIHtcbiAgICBpZiAoIXNlc3Npb25zLmhhcyh0aGlzKSkge1xuICAgICAgcmV0dXJuIG9yaWdMb2FkLmNhbGwodGhpcyk7XG4gICAgfVxuICAgIGhvb2suZGV0YWNoKHRoaXMpO1xuICAgIGZpcmUodGhpcywgXCJlbXB0aWVkXCIpO1xuICAgIHRoaXMuX19wdXBMYXN0U3JjID0gdW5kZWZpbmVkO1xuICAgIGhvb2suYXR0YWNoKHRoaXMpO1xuICB9O1xuICBpZiAoc3JjRGVzYz8uc2V0KSB7XG4gICAgY29uc3Qgc3JjU2V0ID0gc3JjRGVzYy5zZXQ7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEhWRSwgXCJzcmNcIiwge1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBzcmNEZXNjLmdldCxcbiAgICAgIHNldCh0aGlzOiBIVE1MVmlkZW9FbGVtZW50LCB2OiBzdHJpbmcpIHtcbiAgICAgICAgc3JjU2V0LmNhbGwodGhpcywgdik7XG4gICAgICAgIGhvb2sub25TcmNDaGFuZ2UodGhpcyk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzA2LzAyLlxuXG5pbXBvcnQgdHlwZSB7IFZpZGVvSG9vayB9IGZyb20gXCIuL2hvb2tcIjtcbmltcG9ydCB7XG4gIEFIRUFELFxuICBmaXJlLFxuICBIQVZFX0VOT1VHSF9EQVRBLFxuICBIQVZFX01FVEFEQVRBLFxuICBIQVZFX05PVEhJTkcsXG4gIE1FRElBX0VSUl9ERUNPREUsXG4gIE1FRElBX0VSUl9ORVRXT1JLLFxuICB0eXBlIE1lZGlhRXJyb3JMaWtlLFxuICBORVRXT1JLX0VNUFRZLFxuICBORVRXT1JLX0lETEUsXG4gIE5FVFdPUktfTE9BRElORyxcbiAgTkVUV09SS19OT19TT1VSQ0UsXG4gIFNDSEVNRSxcbiAgVEFHLFxuICB0eXBlIFZpZGVvTWV0YSxcbiAgdHlwZSBWaWRlb1N0YXRlLFxufSBmcm9tIFwiLi90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF0dGFjaEFyZ3Mge1xuICB2aWRlbzogSFRNTFZpZGVvRWxlbWVudDtcbiAgc3RhdGU6IFZpZGVvU3RhdGU7XG4gIHNyYzogc3RyaW5nO1xuICBiaXJ0aE1zOiBudW1iZXI7XG4gIG5hdGl2ZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5ld1ZpZGVvU3RhdGUodmlkZW86IEhUTUxWaWRlb0VsZW1lbnQsIGN2OiBIVE1MQ2FudmFzRWxlbWVudCk6IFZpZGVvU3RhdGUge1xuICByZXR1cm4ge1xuICAgIG1ldGE6IG51bGwsXG4gICAgY3YsXG4gICAgY3R4OiBjdi5nZXRDb250ZXh0KFwiMmRcIikhLFxuICAgIHBhdXNlZDogISh2aWRlby5hdXRvcGxheSB8fCAhdmlkZW8ucGF1c2VkKSxcbiAgICBjdXJyZW50VGltZTogMCxcbiAgICBlbmRlZDogZmFsc2UsXG4gICAgbGFzdERyYXduSWR4OiAtMSxcbiAgICBkZWFkOiBmYWxzZSxcbiAgICBvYmplY3RGaXQ6IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHZpZGVvKS5vYmplY3RGaXQgfHwgXCJmaWxsXCIsXG4gICAgcmVhZHlTdGF0ZTogSEFWRV9OT1RISU5HLFxuICAgIG5ldHdvcmtTdGF0ZTogTkVUV09SS19FTVBUWSxcbiAgICBzZWVraW5nOiBmYWxzZSxcbiAgICB3YWl0aW5nOiBmYWxzZSxcbiAgICBlcnJvcjogdW5kZWZpbmVkLFxuICAgIHByZXNlbnRlZEZyYW1lczogMCxcbiAgICBtYXhSZWFjaGVkOiAwLFxuICAgIHJ2ZmM6IG5ldyBNYXAoKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZmFpbE9wZW4odmlkZW86IEhUTUxWaWRlb0VsZW1lbnQsIHN0YXRlOiBWaWRlb1N0YXRlLCBlcnJvcjogTWVkaWFFcnJvckxpa2UpOiBudWxsIHtcbiAgc3RhdGUuZGVhZCA9IHRydWU7XG4gIHN0YXRlLmVycm9yID0gZXJyb3I7XG4gIHN0YXRlLm5ldHdvcmtTdGF0ZSA9IE5FVFdPUktfTk9fU09VUkNFO1xuICBjb25zb2xlLndhcm4oVEFHLCBgJHtlcnJvci5tZXNzYWdlfSBzcmM9JHt2aWRlby5zcmMgfHwgdmlkZW8uY3VycmVudFNyY31gKTtcbiAgZmlyZSh2aWRlbywgXCJlcnJvclwiKTtcbiAgcmV0dXJuIG51bGw7XG59XG5cbi8vIE9wZW4gdGhlIGZyYW1lIHNlcnZlciBzZXNzaW9uLCB0aGVuIGVtaXQgdGhlIEhUTUxNZWRpYUVsZW1lbnQgbG9hZCBzZXF1ZW5jZSAocmVhZHlTdGF0ZS9uZXR3b3JrU3RhdGUgKyBldmVudHMpLlxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9wZW5TZXNzaW9uKGhvb2s6IFZpZGVvSG9vaywgYXJnczogQXR0YWNoQXJncyk6IFByb21pc2U8VmlkZW9TdGF0ZSB8IG51bGw+IHtcbiAgY29uc3QgeyB2aWRlbywgc3RhdGUsIHNyYywgYmlydGhNcywgbmF0aXZlIH0gPSBhcmdzO1xuICBjb25zdCBmcHMgPSBOdW1iZXIucGFyc2VJbnQodmlkZW8uZGF0YXNldFtcInB1cEZwc1wiXSB8fCBcIjMwXCIsIDEwKTtcbiAgc3RhdGUubmV0d29ya1N0YXRlID0gTkVUV09SS19MT0FESU5HO1xuICBmaXJlKHZpZGVvLCBcImxvYWRzdGFydFwiKTtcbiAgbGV0IHJlczogUmVzcG9uc2U7XG4gIHRyeSB7XG4gICAgY29uc3QgcSA9IG5hdGl2ZSA/IFwiXCIgOiBgJnc9JHtzdGF0ZS5jdi53aWR0aH0maD0ke3N0YXRlLmN2LmhlaWdodH0mZml0PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHN0YXRlLm9iamVjdEZpdCl9YDtcbiAgICByZXMgPSBhd2FpdCBmZXRjaChgJHtTQ0hFTUV9b3Blbj9zcmM9JHtlbmNvZGVVUklDb21wb25lbnQoc3JjKX0mZnBzPSR7ZnBzfSR7cX1gKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWlsT3Blbih2aWRlbywgc3RhdGUsIHtcbiAgICAgIGNvZGU6IE1FRElBX0VSUl9ORVRXT1JLLFxuICAgICAgbWVzc2FnZTogYG9wZW4gZmFpbGVkOiAke2UgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IFN0cmluZyhlKX1gLFxuICAgIH0pO1xuICB9XG4gIGlmIChob29rLnNlc3Npb25zLmdldCh2aWRlbykgIT09IHN0YXRlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgaWYgKCFyZXMub2spIHtcbiAgICByZXR1cm4gZmFpbE9wZW4odmlkZW8sIHN0YXRlLCB7XG4gICAgICBjb2RlOiBNRURJQV9FUlJfREVDT0RFLFxuICAgICAgbWVzc2FnZTogYG9wZW4gJHtyZXMuc3RhdHVzfTogJHthd2FpdCByZXMudGV4dCgpfWAsXG4gICAgfSk7XG4gIH1cbiAgY29uc3QgbWV0YSA9IChhd2FpdCByZXMuanNvbigpKSBhcyBWaWRlb01ldGE7XG4gIGlmIChob29rLnNlc3Npb25zLmdldCh2aWRlbykgIT09IHN0YXRlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgc3RhdGUubWV0YSA9IG1ldGE7XG4gIHN0YXRlLmN1cnJlbnRUaW1lID0gc3RhdGUucGF1c2VkID8gMCA6IE1hdGgubWF4KDAsIChob29rLmN1cnJNcyAtIGJpcnRoTXMpIC8gMTAwMCk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2aWRlbywgXCJ2aWRlb1dpZHRoXCIsIHsgdmFsdWU6IG1ldGEud2lkdGgsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZpZGVvLCBcInZpZGVvSGVpZ2h0XCIsIHsgdmFsdWU6IG1ldGEuaGVpZ2h0LCBjb25maWd1cmFibGU6IHRydWUgfSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2aWRlbywgXCJkdXJhdGlvblwiLCB7IHZhbHVlOiBtZXRhLmR1cmF0aW9uLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG4gIHN0YXRlLnJlYWR5U3RhdGUgPSBIQVZFX01FVEFEQVRBO1xuICBmaXJlKHZpZGVvLCBcImR1cmF0aW9uY2hhbmdlXCIpO1xuICBmaXJlKHZpZGVvLCBcImxvYWRlZG1ldGFkYXRhXCIpO1xuICBzdGF0ZS5yZWFkeVN0YXRlID0gSEFWRV9FTk9VR0hfREFUQTtcbiAgZmlyZSh2aWRlbywgXCJsb2FkZWRkYXRhXCIpO1xuICBmaXJlKHZpZGVvLCBcImNhbnBsYXlcIik7XG4gIGZpcmUodmlkZW8sIFwiY2FucGxheXRocm91Z2hcIik7XG4gIHN0YXRlLm5ldHdvcmtTdGF0ZSA9IE5FVFdPUktfSURMRTtcbiAgZmlyZSh2aWRlbywgXCJzdXNwZW5kXCIpO1xuICBpZiAoIXN0YXRlLnBhdXNlZCkge1xuICAgIGZpcmUodmlkZW8sIFwicGxheVwiKTtcbiAgICBmaXJlKHZpZGVvLCBcInBsYXlpbmdcIik7XG4gIH1cbiAgaG9vay5jYWNoZS5wcmVmZXRjaChzdGF0ZSwgMSwgQUhFQUQpO1xuICByZXR1cm4gc3RhdGU7XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzA2LzAyLlxuXG5pbXBvcnQgeyBhZHZhbmNlIH0gZnJvbSBcIi4vZHJpdmVyXCI7XG5pbXBvcnQgeyBGcmFtZUNhY2hlIH0gZnJvbSBcIi4vZnJhbWVfY2FjaGVcIjtcbmltcG9ydCB7IGluc3RhbGxNZWRpYVNoaW0gfSBmcm9tIFwiLi9tZWRpYV9zaGltXCI7XG5pbXBvcnQgeyBzZXR1cENhbnZhcyB9IGZyb20gXCIuL292ZXJsYXlcIjtcbmltcG9ydCB7IG5ld1ZpZGVvU3RhdGUsIG9wZW5TZXNzaW9uIH0gZnJvbSBcIi4vc2Vzc2lvblwiO1xuaW1wb3J0IHsgZmlyZSwgdHlwZSBWaWRlb1N0YXRlIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICBfX3B1cF92aWRlb19fPzogeyBhZHZhbmNlOiAobXM6IG51bWJlcikgPT4gUHJvbWlzZTx1bmtub3duPjsgcmVhZHk6ICgpID0+IFByb21pc2U8dm9pZD4gfTtcbiAgfVxuICBpbnRlcmZhY2UgSFRNTFZpZGVvRWxlbWVudCB7XG4gICAgX19wdXBMYXN0U3JjPzogc3RyaW5nO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBWaWRlb0hvb2sge1xuICByZWFkb25seSBzZXNzaW9ucyA9IG5ldyBXZWFrTWFwPEhUTUxWaWRlb0VsZW1lbnQsIFZpZGVvU3RhdGU+KCk7XG4gIHJlYWRvbmx5IGF0dGFjaGluZyA9IG5ldyBXZWFrTWFwPEhUTUxWaWRlb0VsZW1lbnQsIFByb21pc2U8VmlkZW9TdGF0ZSB8IG51bGw+PigpO1xuICAvLyBFbnVtZXJhYmxlIG1pcnJvciBvZiBpbi1mbGlnaHQgb3BlbnMgKFdlYWtNYXAgaXNuJ3QgaXRlcmFibGUpIHNvIHJlYWR5KCkgY2FuIGF3YWl0IHRoZW0uXG4gIHJlYWRvbmx5IG9wZW5pbmcgPSBuZXcgU2V0PFByb21pc2U8dW5rbm93bj4+KCk7XG4gIHJlYWRvbmx5IGNhY2hlID0gbmV3IEZyYW1lQ2FjaGUoKTtcbiAgcnZmY1NlcSA9IDA7XG4gIGN1cnJNcyA9IDA7XG4gIHByaXZhdGUgX2xhc3RTbmFwc2hvdCA9IG5ldyBXZWFrTWFwPEhUTUxWaWRlb0VsZW1lbnQsIE9mZnNjcmVlbkNhbnZhcz4oKTtcblxuICBpbnN0YWxsKCk6IHZvaWQge1xuICAgIGluc3RhbGxNZWRpYVNoaW0odGhpcyk7XG4gICAgdGhpcy5zY2FuKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk7XG4gICAgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dHMpID0+IHtcbiAgICAgIGZvciAoY29uc3QgbSBvZiBtdXRzKSB7XG4gICAgICAgIGlmIChtLnR5cGUgPT09IFwiYXR0cmlidXRlc1wiICYmIG0udGFyZ2V0IGluc3RhbmNlb2YgSFRNTFZpZGVvRWxlbWVudCAmJiBtLmF0dHJpYnV0ZU5hbWUgPT09IFwic3JjXCIpIHtcbiAgICAgICAgICB0aGlzLm9uU3JjQ2hhbmdlKG0udGFyZ2V0KTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBtLmFkZGVkTm9kZXMuZm9yRWFjaCgobikgPT4ge1xuICAgICAgICAgIGlmIChuIGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5zY2FuKG4pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIG0ucmVtb3ZlZE5vZGVzLmZvckVhY2goKG4pID0+IHtcbiAgICAgICAgICBpZiAobiBpbnN0YW5jZW9mIEhUTUxWaWRlb0VsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZGV0YWNoKG4pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSkub2JzZXJ2ZShkb2N1bWVudCwgeyBzdWJ0cmVlOiB0cnVlLCBjaGlsZExpc3Q6IHRydWUsIGF0dHJpYnV0ZXM6IHRydWUsIGF0dHJpYnV0ZUZpbHRlcjogW1wic3JjXCJdIH0pO1xuICAgIHdpbmRvdy5fX3B1cF92aWRlb19fID0geyBhZHZhbmNlOiAobXMpID0+IGFkdmFuY2UodGhpcywgbXMpLCByZWFkeTogKCkgPT4gdGhpcy5yZWFkeSgpIH07XG4gIH1cblxuICBhdHRhY2godmlkZW86IEhUTUxWaWRlb0VsZW1lbnQsIG5hdGl2ZSA9IGZhbHNlKTogUHJvbWlzZTxWaWRlb1N0YXRlIHwgbnVsbD4ge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5zZXNzaW9ucy5nZXQodmlkZW8pO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShleGlzdGluZyk7XG4gICAgfVxuICAgIGNvbnN0IHBlbmRpbmcgPSB0aGlzLmF0dGFjaGluZy5nZXQodmlkZW8pO1xuICAgIGlmIChwZW5kaW5nKSB7XG4gICAgICByZXR1cm4gcGVuZGluZztcbiAgICB9XG4gICAgY29uc3Qgc3JjID0gdmlkZW8uc3JjIHx8IHZpZGVvLmN1cnJlbnRTcmM7XG4gICAgaWYgKCFzcmMpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgfVxuICAgIGlmICgvXihibG9iOnxkYXRhOnxtZWRpYXN0cmVhbTopL2kudGVzdChzcmMpKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgIH1cbiAgICBjb25zdCBjdiA9IHNldHVwQ2FudmFzKHZpZGVvLCB0aGlzLl9sYXN0U25hcHNob3QuZ2V0KHZpZGVvKSk7XG4gICAgY29uc3Qgc3RhdGUgPSBuZXdWaWRlb1N0YXRlKHZpZGVvLCBjdik7XG4gICAgdGhpcy5zZXNzaW9ucy5zZXQodmlkZW8sIHN0YXRlKTtcbiAgICBjb25zdCBwID0gb3BlblNlc3Npb24odGhpcywgeyB2aWRlbywgc3RhdGUsIHNyYywgYmlydGhNczogdGhpcy5jdXJyTXMsIG5hdGl2ZSB9KS5maW5hbGx5KCgpID0+IHtcbiAgICAgIHRoaXMuYXR0YWNoaW5nLmRlbGV0ZSh2aWRlbyk7XG4gICAgICB0aGlzLm9wZW5pbmcuZGVsZXRlKHApO1xuICAgIH0pO1xuICAgIHRoaXMuYXR0YWNoaW5nLnNldCh2aWRlbywgcCk7XG4gICAgdGhpcy5vcGVuaW5nLmFkZChwKTtcbiAgICByZXR1cm4gcDtcbiAgfVxuXG4gIC8vIEF3YWl0IG9ubHkgdGhlIG9wZW5zIGluIGZsaWdodCByaWdodCBub3cg4oCUIG5ldmVyIGNoYXNlIG5ld2x5LXNwYXduZWQgb25lcywgb3IgYSByZXRyeWluZyBwYWdlIGxvb3BzIGZvcmV2ZXIuXG4gIGFzeW5jIHJlYWR5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChbLi4udGhpcy5vcGVuaW5nXSk7XG4gIH1cblxuICByZXN1bWUodmlkZW86IEhUTUxWaWRlb0VsZW1lbnQsIHN0YXRlOiBWaWRlb1N0YXRlKTogdm9pZCB7XG4gICAgaWYgKCFzdGF0ZS5wYXVzZWQgJiYgIXN0YXRlLmVuZGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN0YXRlLnBhdXNlZCA9IGZhbHNlO1xuICAgIHN0YXRlLmVuZGVkID0gZmFsc2U7XG4gICAgZmlyZSh2aWRlbywgXCJwbGF5XCIpO1xuICAgIGZpcmUodmlkZW8sIFwicGxheWluZ1wiKTtcbiAgfVxuXG4gIGRldGFjaCh2aWRlbzogSFRNTFZpZGVvRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zZXNzaW9ucy5nZXQodmlkZW8pO1xuICAgIGlmICghc3RhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHN0YXRlLm1ldGEpIHtcbiAgICAgIGlmIChzdGF0ZS5sYXN0RHJhd25JZHggPj0gMCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHNuYXAgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHN0YXRlLmN2LndpZHRoLCBzdGF0ZS5jdi5oZWlnaHQpO1xuICAgICAgICAgIGNvbnN0IHNjdHggPSBzbmFwLmdldENvbnRleHQoXCIyZFwiKTtcbiAgICAgICAgICBpZiAoIXNjdHgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIm5vIDJkIGNvbnRleHRcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNjdHguZHJhd0ltYWdlKHN0YXRlLmN2LCAwLCAwKTtcbiAgICAgICAgICB0aGlzLl9sYXN0U25hcHNob3Quc2V0KHZpZGVvLCBzbmFwKTtcbiAgICAgICAgfSBjYXRjaCB7fVxuICAgICAgfVxuICAgICAgdGhpcy5jYWNoZS5yZWxlYXNlKHN0YXRlLm1ldGEuaWQsIHN0YXRlKTtcbiAgICB9XG4gICAgc3RhdGUuY3YucmVtb3ZlKCk7XG4gICAgdGhpcy5zZXNzaW9ucy5kZWxldGUodmlkZW8pO1xuICAgIHRoaXMuYXR0YWNoaW5nLmRlbGV0ZSh2aWRlbyk7XG4gIH1cblxuICBvblNyY0NoYW5nZSh2aWRlbzogSFRNTFZpZGVvRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IHNyYyA9IHZpZGVvLnNyYyB8fCB2aWRlby5jdXJyZW50U3JjIHx8IFwiXCI7XG4gICAgaWYgKHZpZGVvLl9fcHVwTGFzdFNyYyA9PT0gc3JjKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZpZGVvLl9fcHVwTGFzdFNyYyA9IHNyYztcbiAgICBpZiAodGhpcy5zZXNzaW9ucy5oYXModmlkZW8pKSB7XG4gICAgICB0aGlzLmRldGFjaCh2aWRlbyk7XG4gICAgfVxuICAgIHRoaXMuYXR0YWNoKHZpZGVvKTtcbiAgfVxuXG4gIC8vIFJlLW9wZW4gYXQgbmF0aXZlIHJlc29sdXRpb24gKHRoZSBlbGVtZW50IG91dGdyZXcgdGhlIGRvd25zY2FsZWQgZGVjb2RlKSwgcHJlc2VydmluZyBwbGF5YmFjayBzdGF0ZS5cbiAgcmVhdHRhY2godmlkZW86IEhUTUxWaWRlb0VsZW1lbnQsIHN0YXRlOiBWaWRlb1N0YXRlKTogdm9pZCB7XG4gICAgY29uc3QgdCA9IHN0YXRlLmN1cnJlbnRUaW1lO1xuICAgIGNvbnN0IHBhdXNlZCA9IHN0YXRlLnBhdXNlZDtcbiAgICBjb25zdCBlbmRlZCA9IHN0YXRlLmVuZGVkO1xuICAgIHRoaXMuZGV0YWNoKHZpZGVvKTtcbiAgICB2b2lkIHRoaXMuYXR0YWNoKHZpZGVvLCB0cnVlKS50aGVuKChucykgPT4ge1xuICAgICAgaWYgKCFucykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBucy5jdXJyZW50VGltZSA9IHQ7XG4gICAgICBucy5wYXVzZWQgPSBwYXVzZWQ7XG4gICAgICBucy5lbmRlZCA9IGVuZGVkO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzY2FuKHJvb3Q6IEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCFyb290KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChyb290LnRhZ05hbWUgPT09IFwiVklERU9cIikge1xuICAgICAgdGhpcy5hdHRhY2gocm9vdCBhcyBIVE1MVmlkZW9FbGVtZW50KTtcbiAgICB9XG4gICAgaWYgKHJvb3QucXVlcnlTZWxlY3RvckFsbCkge1xuICAgICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKFwidmlkZW9cIikuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICB0aGlzLmF0dGFjaCh2KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFsbFZpZGVvSG9vaygpOiB2b2lkIHtcbiAgaWYgKHdpbmRvdy5fX3B1cF92aWRlb19fKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIG5ldyBWaWRlb0hvb2soKS5pbnN0YWxsKCk7XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzA1LzI2LlxuXG5pbXBvcnQgeyBpbnN0YWxsVGlja0hvb2sgfSBmcm9tIFwiLi9pZnJhbWVfaG9va1wiO1xuaW1wb3J0IHsgaW5zdGFsbFZpZGVvSG9vayB9IGZyb20gXCIuL3ZpZGVvL2hvb2tcIjtcblxuaWYgKHdpbmRvdy5zZWxmICE9PSB3aW5kb3cudG9wKSB7XG4gIGluc3RhbGxUaWNrSG9vaygpO1xuICBpbnN0YWxsVmlkZW9Ib29rKCk7XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pup-recorder",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "description": "Record web pages as video",
5
5
  "repository": {
6
6
  "type": "git",
@@ -60,6 +60,7 @@
60
60
  "zod": "latest"
61
61
  },
62
62
  "devDependencies": {
63
+ "@biomejs/biome": "latest",
63
64
  "@microsoft/api-extractor": "latest",
64
65
  "@types/bun": "latest",
65
66
  "@types/node": "^22.0.0",