pup-recorder 0.4.3 → 0.4.4

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 d 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 Ne from'tree-kill';import {EventEmitter}from'events';var be=Object.create;var M=Object.defineProperty;var we=Object.getOwnPropertyDescriptor;var q=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),A=t=>{throw TypeError(t)};var Y=(t,e,r)=>e in t?M(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"],E=t=>t!==void 0&&typeof t!="function"?A("Function expected"):t,ve=(t,e,r,o,n)=>({kind:X[t],name:e,metadata:o,addInitializer:s=>r._?A("Already initialized"):n.push(E(s||null))}),S=(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=(t,e,r,o,n,s)=>{var i,p,v,x,a=e&7,C=false,m=false,k=2,P=X[a+5],fe=t[k]||(t[k]=[]),b=((n=n.prototype),we(n,r));for(var O=o.length-1;O>=0;O--)v=ve(a,r,p={},t[3],fe),(v.static=C,v.private=m,x=v.access={has:u=>r in u},(x.get=u=>u[r]),a>2),i=(0, o[O])(b[P],v),p._=1,E(i)&&(b[P]=i);return b&&M(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),R=te("PUP_LOG_LEVEL",oe,2),F=dirname(_e.resolve("pup-recorder/package.json")),ne=join(F,"dist","app.cjs");join(F,"dist","runtime","audio_preload.cjs");join(F,"dist","runtime","iframe_preload.cjs");var N="<pup@debug>",U="<pup@info>",H="<pup@warn>",W="<pup@error>",j="<pup@fatal>";function I(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,y;pe=[I],le=[I],ae=[I],ie=[I],se=[I];var w=class{constructor(e=R){this._level=e;Z(y,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?.(N,...e);}info(...e){this.impl?.info?.(U,...e);}warn(...e){this.impl?.warn?.(H,...e);}error(...e){this.impl?.error?.(W,...e);}fatal(...e){this.impl?.error?.(j,...e),process.exit(1);}dispatch(e){let r=e.trimEnd();r.startsWith(N)?this.debug(r.slice(N.length+1)):r.startsWith(U)?this.info(r.slice(U.length+1)):r.startsWith(H)?this.warn(r.slice(H.length+1)):r.startsWith(W)?this.error(r.slice(W.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(j)?s+=p.slice(j.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);});})}};y=Q(),T(y,1,"debug",pe,w),T(y,1,"info",le,w),T(y,1,"warn",ae,w),T(y,1,"error",ie,w),T(y,1,"fatal",se,w),S(y,w);var c=new w;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=d.object({duration:d.number().describe("Duration in seconds"),width:d.number().describe("Video width"),height:d.number().describe("Video height"),fps:d.number().describe("Frames per second"),withAudio:d.boolean().describe("Capture and encode audio"),outFile:d.string().describe("Comma-separated output paths; extension (.mp4/.webm) selects encoder"),useInnerProxy:d.boolean().describe("Use bilibili inner proxy for resource access"),deterministic:d.boolean().describe("Render by frame rather than recording"),disableGpu:d.boolean().describe("Disable GPU rendering, may reduce performance but increase stability"),disableHwCodec:d.boolean().describe("Disable hardware video encoder (NVENC/VideoToolbox), use software x265"),windowTolerant:d.boolean().describe("Fall back to dom-ready if warmup load times out"),windowTimeout:d.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 Se="[HWAccel]";async function $e(){let t=HardwareContext.auto(),e=t!==null;return t?.dispose(),e}var ue=$e().then(t=>(c.debug(Se,"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"];R>=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 B="--pup-priv-args";function Mr(){let t=process.argv,e=t.find(o=>o.startsWith(B));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?Ne(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(`${B}=${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 D=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 V="[pup]";async function Je(t,e){c.debug(V,"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(V,"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=a=>{l=a,e.onProgress?.(a);},p=await Je(t,n),v,x=()=>{p.process.send?.({type:"cancel",reason:String(r?.reason??"abort")}),v=setTimeout(()=>p.kill(),5e3);};r?.addEventListener("abort",x,{once:true});try{let a=new Promise((m,k)=>{new D(p.process).on("close",P=>{let _=JSON.stringify({source:t,progress:l,code:P,killed:p.killed});k(new Error(`crashed: ${_}`));}).on("progress",i).on("console",(P,_)=>e.onConsole?.(P,_)).on("done",m).on("error",k);});i(0);let[C]=await Promise.all([a,p.wait]);return i(100),c.debug(V,`done ${o} in ${Math.round(performance.now()-s)}ms`),{...C,options:n}}catch(a){throw p.kill(),r?.throwIfAborted(),a}finally{clearTimeout(v),r?.removeEventListener("abort",x);}}export{re as a,ze as b,te as c,oe as d,w 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-UC6U2DFE.js.map
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlL2NsaV91aS50cyIsIi4uL3NyYy9iYXNlL2Vudi50cyIsIi4uL3NyYy9iYXNlL3BhcnNlci50cyIsIi4uL3NyYy9iYXNlL2NvbnN0YW50cy50cyIsIi4uL3NyYy9iYXNlL2xvZ2dpbmcudHMiLCIuLi9zcmMvYmFzZS9ub2Vyci50cyIsIi4uL3NyYy9yZW5kZXJlci9zY2hlbWEudHMiLCIuLi9zcmMvYmFzZS9od2FjY2VsLnRzIiwiLi4vc3JjL2Jhc2UvY2hyb21pdW0udHMiLCIuLi9zcmMvYmFzZS9wcm9jZXNzLnRzIiwiLi4vc3JjL3JlbmRlcmVyL2VsZWN0cm9uLnRzIiwiLi4vc3JjL3JlbmRlcmVyL2lwYy50cyIsIi4uL3NyYy9wdXAudHMiXSwibmFtZXMiOlsiUHJvZ3Jlc3NCYXIiLCJvcHRzIiwid3JpdHRlbiIsInBjdCIsImxpbmUiLCJyYXRpbyIsImZpbGxlZCIsImJhciIsInN1ZmZpeCIsImJhckxvZ2dlciIsIndyYXAiLCJmbiIsImFyZ3MiLCJwZW52IiwibmFtZSIsInBhcnNlciIsImRlZmF1bHRWYWx1ZSIsInBhcnNlTnVtYmVyIiwieCIsIm51bSIsInJlcXVpcmUiLCJjcmVhdGVSZXF1aXJlIiwicHVwTG9nTGV2ZWwiLCJwdXBQa2dSb290IiwiZGlybmFtZSIsInB1cEFwcCIsImpvaW4iLCJERUJVRyIsIklORk8iLCJXQVJOIiwiRVJST1IiLCJGQVRBTCIsInN0YWNrSG9vayIsInRhcmdldCIsIl9jb250ZXh0IiwibWVzc2FnZXMiLCJwcm9jZXNzZWQiLCJtc2ciLCJfZmF0YWxfZGVjIiwiX2Vycm9yX2RlYyIsIl93YXJuX2RlYyIsIl9pbmZvX2RlYyIsIl9kZWJ1Z19kZWMiLCJfaW5pdCIsIkxvZ2dlciIsIl9sZXZlbCIsIl9fcnVuSW5pdGlhbGl6ZXJzIiwiX19wdWJsaWNGaWVsZCIsInZhbHVlIiwiZGVidWciLCJpbmZvIiwid2FybiIsImVycm9yIiwibHYiLCJtZXNzYWdlIiwicHJvYyIsInJlc29sdmUiLCJyZWplY3QiLCJmYXRhbCIsImRpc3BhdGNoIiwiZGF0YSIsImVyciIsImNvZGUiLCJzaWduYWwiLCJyZWFzb24iLCJfX2RlY29yYXRvclN0YXJ0IiwiX19kZWNvcmF0ZUVsZW1lbnQiLCJfX2RlY29yYXRvck1ldGFkYXRhIiwibG9nZ2VyIiwiTG9nIiwibGV2ZWwiLCJBVl9MT0dfRVJST1IiLCJBVl9MT0dfV0FSTklORyIsIm5vZXJyIiwicmV0IiwiREVGQVVMVF9XSURUSCIsIkRFRkFVTFRfSEVJR0hUIiwiREVGQVVMVF9GUFMiLCJERUZBVUxUX0RVUkFUSU9OIiwiREVGQVVMVF9XSU5ET1dfVElNRU9VVCIsIkRFRkFVTFRfT1VUX0ZJTEUiLCJyZW5kZXJTY2hlbWEiLCJ6IiwiZGVmYXVsdFJlbmRlck9wdGlvbnMiLCJUQUciLCJkZXRlY3RHUFVEcml2ZXIiLCJodyIsIkhhcmR3YXJlQ29udGV4dCIsInJlc3VsdCIsImNhbklVc2VHUFUiLCJjaHJvbWl1bU9wdGlvbnMiLCJkaXNhYmxlR3B1IiwiZmVhdHVyZXMiLCJwbGF0IiwicGxhdGZvcm0iLCJQVVBfQVJHU19LRVkiLCJwYXJncyIsImFyZ3YiLCJwcml2IiwiYXJnIiwiZXhlYyIsImNtZCIsIm9wdGlvbnMiLCJwYXJ0cyIsInMiLCJjb21tYW5kIiwic3Bhd24iLCJraWxsZWQiLCJwaWQiLCJ0cmVlS2lsbCIsImVsZWN0cm9uT3B0cyIsInJ1bkVsZWN0cm9uQXBwIiwiZWxlY3Ryb24iLCJwcm9maWxlRGlyIiwibWtkdGVtcCIsInRtcGRpciIsImVsZWN0cm9uQXJncyIsImEiLCJlbnYiLCJoYW5kbGUiLCJybVN5bmMiLCJlIiwiSXBjUmVhZGVyIiwiRXZlbnRFbWl0dGVyIiwiY2hpbGQiLCJyYXciLCJjIiwicnVuUHVwQXBwIiwic291cmNlIiwicmVuZGVyIiwiZCIsInB1cCIsIm91dEZpbGUiLCJyZW5kZXJPcHRzIiwidDAiLCJwcm9ncmVzcyIsInRpY2siLCJwIiwia2lsbFRpbWVyIiwib25BYm9ydCIsImwiLCJtIiwic3VtbWFyeSJdLCJtYXBwaW5n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QyxDQUNGIiwiZmlsZSI6ImNodW5rLVVDNlUyREZFLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wNS8yNi5cblxuaW1wb3J0IHR5cGUgeyBMb2dnZXJMaWtlIH0gZnJvbSBcIi4vbG9nZ2luZ1wiO1xuXG5jb25zdCBCQVJfV0lEVEggPSA0MDtcblxuaW50ZXJmYWNlIEJhck9wdGlvbnMge1xuICB0b3RhbDogbnVtYmVyO1xuICBvdXQ6IE5vZGVKUy5Xcml0ZVN0cmVhbTtcbiAgc2hvd0NvdW50PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFyIHtcbiAgcHJpdmF0ZSBfd3JpdHRlbiA9IDA7XG4gIHByaXZhdGUgX3Nob3duID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RvdGFsOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgX291dDogTm9kZUpTLldyaXRlU3RyZWFtO1xuICBwcml2YXRlIHJlYWRvbmx5IF90dHk6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Nob3dDb3VudDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihvcHRzOiBCYXJPcHRpb25zKSB7XG4gICAgdGhpcy5fdG90YWwgPSBvcHRzLnRvdGFsO1xuICAgIHRoaXMuX291dCA9IG9wdHMub3V0O1xuICAgIHRoaXMuX3R0eSA9ICEhb3B0cy5vdXQuaXNUVFk7XG4gICAgdGhpcy5fc2hvd0NvdW50ID0gb3B0cy5zaG93Q291bnQgPz8gZmFsc2U7XG4gIH1cblxuICBnZXQgdG90YWwoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdG90YWw7XG4gIH1cblxuICB1cGRhdGUod3JpdHRlbjogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fd3JpdHRlbiA9IE1hdGgubWluKHRoaXMuX3RvdGFsLCBNYXRoLm1heCgwLCB3cml0dGVuKSk7XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIHVwZGF0ZVBlcmNlbnQocGN0OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZShNYXRoLnJvdW5kKChwY3QgLyAxMDApICogdGhpcy5fdG90YWwpKTtcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl90dHkgJiYgdGhpcy5fc2hvd24pIHtcbiAgICAgIHRoaXMuX291dC53cml0ZShcIlxcclxceDFiWzJLXCIpO1xuICAgIH1cbiAgfVxuXG4gIHJlZHJhdygpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgbG9nKGxpbmU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICB0aGlzLl9vdXQud3JpdGUoYCR7bGluZX1cXG5gKTtcbiAgICB0aGlzLnJlZHJhdygpO1xuICB9XG5cbiAgZmluaXNoKGxpbmU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICB0aGlzLl9vdXQud3JpdGUoYCR7bGluZX1cXG5gKTtcbiAgICB0aGlzLl9zaG93biA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl90dHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3dyaXR0ZW4gPT09IDAgJiYgIXRoaXMuX3Nob3duKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJhdGlvID0gdGhpcy5fdG90YWwgPiAwID8gdGhpcy5fd3JpdHRlbiAvIHRoaXMuX3RvdGFsIDogMDtcbiAgICBjb25zdCBmaWxsZWQgPSBNYXRoLnJvdW5kKHJhdGlvICogQkFSX1dJRFRIKTtcbiAgICBjb25zdCBiYXIgPSBcIiNcIi5yZXBlYXQoZmlsbGVkKSArIFwiLVwiLnJlcGVhdChCQVJfV0lEVEggLSBmaWxsZWQpO1xuICAgIGNvbnN0IHBjdCA9IE1hdGgucm91bmQocmF0aW8gKiAxMDApO1xuICAgIGNvbnN0IHN1ZmZpeCA9IHRoaXMuX3Nob3dDb3VudCA/IGAke3RoaXMuX3dyaXR0ZW59LyR7dGhpcy5fdG90YWx9ICgke3BjdH0lKWAgOiBgJHtwY3R9JWA7XG4gICAgdGhpcy5fb3V0LndyaXRlKGBcXHJbJHtiYXJ9XSAke3N1ZmZpeH1gKTtcbiAgICB0aGlzLl9zaG93biA9IHRydWU7XG4gIH1cbn1cblxuLy8gQXJvdW5kIGVhY2ggY29uc29sZS4qIGNhbGwsIGNsZWFyIHRoZSBiYXIgbGluZSB0aGVuIHJlZHJhdyDigJQga2VlcHMgbmF0aXZlIGNvbnNvbGUgY29sb3JpbmcgaW50YWN0LlxuZXhwb3J0IGZ1bmN0aW9uIGJhckxvZ2dlcihiYXI6IFByb2dyZXNzQmFyKTogTG9nZ2VyTGlrZSB7XG4gIGNvbnN0IHdyYXAgPVxuICAgIDxUIGV4dGVuZHMgKC4uLmE6IHVua25vd25bXSkgPT4gdm9pZD4oZm46IFQpID0+XG4gICAgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuICAgICAgYmFyLmNsZWFyKCk7XG4gICAgICBmbiguLi5hcmdzKTtcbiAgICAgIGJhci5yZWRyYXcoKTtcbiAgICB9O1xuICByZXR1cm4ge1xuICAgIGRlYnVnOiB3cmFwKGNvbnNvbGUuZGVidWcpLFxuICAgIGluZm86IHdyYXAoY29uc29sZS5pbmZvKSxcbiAgICB3YXJuOiB3cmFwKGNvbnNvbGUud2FybiksXG4gICAgZXJyb3I6IHdyYXAoY29uc29sZS5lcnJvciksXG4gIH07XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzI1LlxuXG5leHBvcnQgdHlwZSBFbnZQYXJzZXI8VD4gPSAodmFsdWU6IHVua25vd24pID0+IFQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBwZW52PFQ+KG5hbWU6IHN0cmluZywgcGFyc2VyOiBFbnZQYXJzZXI8VD4sIGRlZmF1bHRWYWx1ZTogVCk6IFQ7XG5leHBvcnQgZnVuY3Rpb24gcGVudjxUPihuYW1lOiBzdHJpbmcsIHBhcnNlcjogRW52UGFyc2VyPFQ+LCBkZWZhdWx0VmFsdWU/OiBUKTogVCB8IHVuZGVmaW5lZDtcbmV4cG9ydCBmdW5jdGlvbiBwZW52PFQ+KG5hbWU6IHN0cmluZywgcGFyc2VyOiBFbnZQYXJzZXI8VD4sIGRlZmF1bHRWYWx1ZT86IFQpOiBUIHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2VyKHByb2Nlc3MuZW52W25hbWVdKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgfVxufVxuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wMS8zMC5cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTnVtYmVyKHg6IHVua25vd24pOiBudW1iZXIge1xuICBpZiAodHlwZW9mIHggPT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4geDtcbiAgfVxuICBjb25zdCBudW0gPSBOdW1iZXIoeCk7XG4gIGlmIChOdW1iZXIuaXNOYU4obnVtKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVmFsdWUgJHt4fSBpcyBub3QgYSB2YWxpZCBudW1iZXJgKTtcbiAgfVxuICByZXR1cm4gbnVtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTdHJpbmcoeDogdW5rbm93bik6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgeCA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiB4O1xuICB9XG4gIHJldHVybiBTdHJpbmcoeCk7XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzA5LlxuXG5pbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSBcIm5vZGU6bW9kdWxlXCI7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgcGVudiB9IGZyb20gXCIuL2VudlwiO1xuaW1wb3J0IHsgcGFyc2VOdW1iZXIgfSBmcm9tIFwiLi9wYXJzZXJcIjtcblxuY29uc3QgcmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcblxuZXhwb3J0IGNvbnN0IHB1cExvZ0xldmVsID0gcGVudihcIlBVUF9MT0dfTEVWRUxcIiwgcGFyc2VOdW1iZXIsIDIpO1xuXG5leHBvcnQgY29uc3QgcHVwUGtnUm9vdCA9IGRpcm5hbWUocmVxdWlyZS5yZXNvbHZlKFwicHVwLXJlY29yZGVyL3BhY2thZ2UuanNvblwiKSk7XG5leHBvcnQgY29uc3QgcHVwQXBwID0gam9pbihwdXBQa2dSb290LCBcImRpc3RcIiwgXCJhcHAuY2pzXCIpO1xuZXhwb3J0IGNvbnN0IHB1cEF1ZGlvUHJlbG9hZCA9IGpvaW4ocHVwUGtnUm9vdCwgXCJkaXN0XCIsIFwicnVudGltZVwiLCBcImF1ZGlvX3ByZWxvYWQuY2pzXCIpO1xuZXhwb3J0IGNvbnN0IHB1cElmcmFtZVByZWxvYWQgPSBqb2luKHB1cFBrZ1Jvb3QsIFwiZGlzdFwiLCBcInJ1bnRpbWVcIiwgXCJpZnJhbWVfcHJlbG9hZC5janNcIik7XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzA2LlxuXG5pbXBvcnQgdHlwZSB7IENoaWxkUHJvY2VzcyB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCB7IExvZyB9IGZyb20gXCJub2RlLWF2XCI7XG5pbXBvcnQgeyBBVl9MT0dfRVJST1IsIEFWX0xPR19XQVJOSU5HIH0gZnJvbSBcIm5vZGUtYXYvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBwdXBMb2dMZXZlbCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlckxpa2Uge1xuICBkZWJ1Zz8odGhpczogdm9pZCwgLi4ubWVzc2FnZXM6IHVua25vd25bXSk6IHZvaWQ7XG5cbiAgaW5mbz8odGhpczogdm9pZCwgLi4ubWVzc2FnZXM6IHVua25vd25bXSk6IHZvaWQ7XG5cbiAgd2Fybj8odGhpczogdm9pZCwgLi4ubWVzc2FnZXM6IHVua25vd25bXSk6IHZvaWQ7XG5cbiAgZXJyb3I/KHRoaXM6IHZvaWQsIC4uLm1lc3NhZ2VzOiB1bmtub3duW10pOiB2b2lkO1xufVxuXG5jb25zdCBERUJVRyA9IFwiPHB1cEBkZWJ1Zz5cIjtcbmNvbnN0IElORk8gPSBcIjxwdXBAaW5mbz5cIjtcbmNvbnN0IFdBUk4gPSBcIjxwdXBAd2Fybj5cIjtcbmNvbnN0IEVSUk9SID0gXCI8cHVwQGVycm9yPlwiO1xuY29uc3QgRkFUQUwgPSBcIjxwdXBAZmF0YWw+XCI7XG5cbmZ1bmN0aW9uIHN0YWNrSG9vayh0YXJnZXQ6ICguLi5tZXNzYWdlczogdW5rbm93bltdKSA9PiB1bmtub3duLCBfY29udGV4dDogQ2xhc3NNZXRob2REZWNvcmF0b3JDb250ZXh0KSB7XG4gIHJldHVybiBmdW5jdGlvbiAodGhpczogTG9nZ2VyLCAuLi5tZXNzYWdlczogdW5rbm93bltdKSB7XG4gICAgY29uc3QgcHJvY2Vzc2VkID0gbWVzc2FnZXMubWFwKChtc2cpID0+IHtcbiAgICAgIHJldHVybiBtc2cgaW5zdGFuY2VvZiBFcnJvciA/IChtc2cuc3RhY2sgPz8gU3RyaW5nKG1zZykpIDogbXNnO1xuICAgIH0pO1xuICAgIHJldHVybiB0YXJnZXQuY2FsbCh0aGlzLCAuLi5wcm9jZXNzZWQpO1xuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgTG9nZ2VyIGltcGxlbWVudHMgTG9nZ2VyTGlrZSB7XG4gIHByaXZhdGUgX2ltcGw/OiBMb2dnZXJMaWtlO1xuXG4gIGdldCBsZXZlbCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9sZXZlbDtcbiAgfVxuXG4gIHNldCBsZXZlbCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbGV2ZWwgPSB2YWx1ZTtcbiAgICB0aGlzLmltcGwgPSB0aGlzLl9pbXBsID8/IGNvbnNvbGU7XG4gIH1cblxuICBnZXQgaW1wbCgpOiBMb2dnZXJMaWtlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5faW1wbDtcbiAgfVxuXG4gIHNldCBpbXBsKHZhbHVlOiBMb2dnZXJMaWtlKSB7XG4gICAgY29uc3QgZGVidWcgPSB2YWx1ZS5kZWJ1ZyA/PyBjb25zb2xlLmRlYnVnO1xuICAgIGNvbnN0IGluZm8gPSB2YWx1ZS5pbmZvID8/IGNvbnNvbGUuaW5mbztcbiAgICBjb25zdCB3YXJuID0gdmFsdWUud2FybiA/PyBjb25zb2xlLndhcm47XG4gICAgY29uc3QgZXJyb3IgPSB2YWx1ZS5lcnJvciA/PyBjb25zb2xlLmVycm9yO1xuICAgIGNvbnN0IGx2ID0gdGhpcy5fbGV2ZWw7XG4gICAgdGhpcy5faW1wbCA9IHtcbiAgICAgIGRlYnVnOiBsdiA+PSAzID8gZGVidWcgOiB1bmRlZmluZWQsXG4gICAgICBpbmZvOiBsdiA+PSAyID8gaW5mbyA6IHVuZGVmaW5lZCxcbiAgICAgIHdhcm46IGx2ID49IDEgPyB3YXJuIDogdW5kZWZpbmVkLFxuICAgICAgZXJyb3I6IGx2ID49IDAgPyBlcnJvciA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbGV2ZWw6IG51bWJlciA9IHB1cExvZ0xldmVsKSB7XG4gICAgdGhpcy5pbXBsID0gY29uc29sZTtcbiAgfVxuXG4gIEBzdGFja0hvb2tcbiAgZGVidWcoLi4ubWVzc2FnZXM6IHVua25vd25bXSk6IHZvaWQge1xuICAgIHRoaXMuaW1wbD8uZGVidWc/LihERUJVRywgLi4ubWVzc2FnZXMpO1xuICB9XG5cbiAgQHN0YWNrSG9va1xuICBpbmZvKC4uLm1lc3NhZ2VzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICB0aGlzLmltcGw/LmluZm8/LihJTkZPLCAuLi5tZXNzYWdlcyk7XG4gIH1cblxuICBAc3RhY2tIb29rXG4gIHdhcm4oLi4ubWVzc2FnZXM6IHVua25vd25bXSk6IHZvaWQge1xuICAgIHRoaXMuaW1wbD8ud2Fybj8uKFdBUk4sIC4uLm1lc3NhZ2VzKTtcbiAgfVxuXG4gIEBzdGFja0hvb2tcbiAgZXJyb3IoLi4ubWVzc2FnZXM6IHVua25vd25bXSk6IHZvaWQge1xuICAgIHRoaXMuaW1wbD8uZXJyb3I/LihFUlJPUiwgLi4ubWVzc2FnZXMpO1xuICB9XG5cbiAgQHN0YWNrSG9va1xuICBmYXRhbCguLi5tZXNzYWdlczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgdGhpcy5pbXBsPy5lcnJvcj8uKEZBVEFMLCAuLi5tZXNzYWdlcyk7XG4gICAgcHJvY2Vzcy5leGl0KDEpO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwYXRjaChtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBtc2cgPSBtZXNzYWdlLnRyaW1FbmQoKTtcbiAgICBpZiAobXNnLnN0YXJ0c1dpdGgoREVCVUcpKSB7XG4gICAgICB0aGlzLmRlYnVnKG1zZy5zbGljZShERUJVRy5sZW5ndGggKyAxKSk7XG4gICAgfSBlbHNlIGlmIChtc2cuc3RhcnRzV2l0aChJTkZPKSkge1xuICAgICAgdGhpcy5pbmZvKG1zZy5zbGljZShJTkZPLmxlbmd0aCArIDEpKTtcbiAgICB9IGVsc2UgaWYgKG1zZy5zdGFydHNXaXRoKFdBUk4pKSB7XG4gICAgICB0aGlzLndhcm4obXNnLnNsaWNlKFdBUk4ubGVuZ3RoICsgMSkpO1xuICAgIH0gZWxzZSBpZiAobXNnLnN0YXJ0c1dpdGgoRVJST1IpKSB7XG4gICAgICB0aGlzLmVycm9yKG1zZy5zbGljZShFUlJPUi5sZW5ndGggKyAxKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5mbyhtc2cpO1xuICAgIH1cbiAgfVxuXG4gIGF0dGFjaChwcm9jOiBDaGlsZFByb2Nlc3MsIG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmRlYnVnKGAke25hbWV9LmF0dGFjaGApO1xuICAgICAgbGV0IGZhdGFsOiBzdHJpbmcgPSBcIlwiO1xuICAgICAgY29uc3QgZGlzcGF0Y2ggPSAoZGF0YTogQnVmZmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBkYXRhLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmIChtZXNzYWdlLnN0YXJ0c1dpdGgoRkFUQUwpKSB7XG4gICAgICAgICAgZmF0YWwgKz0gbWVzc2FnZS5zbGljZShGQVRBTC5sZW5ndGggKyAxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgcHJvYy5zdGRlcnI/Lm9uKFwiZGF0YVwiLCBkaXNwYXRjaCk7XG4gICAgICBwcm9jLnN0ZG91dD8ub24oXCJkYXRhXCIsIGRpc3BhdGNoKTtcbiAgICAgIHByb2NcbiAgICAgICAgLm9uKFwiZXJyb3JcIiwgKGVycikgPT4ge1xuICAgICAgICAgIGZhdGFsICs9IGVyci5tZXNzYWdlO1xuICAgICAgICAgIHByb2Mua2lsbCgpO1xuICAgICAgICB9KVxuICAgICAgICAub25jZShcImNsb3NlXCIsIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICAgICAgICBpZiAoY29kZSB8fCBzaWduYWwgfHwgZmF0YWwpIHtcbiAgICAgICAgICAgIGZhdGFsIHx8PSBgY29tbWFuZCBmYWlsZWQ6ICR7cHJvYy5zcGF3bmFyZ3Muam9pbihcIiBcIil9YDtcbiAgICAgICAgICAgIHRoaXMuZGVidWcoYCR7bmFtZX0uY2xvc2VgLCB7IGNvZGUsIHNpZ25hbCwgZmF0YWwgfSk7XG4gICAgICAgICAgICByZWplY3QobmV3IEVycm9yKGZhdGFsKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVidWcoYCR7bmFtZX0uY2xvc2VgKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5vbihcInVuaGFuZGxlZFJlamVjdGlvblwiLCAocmVhc29uKSA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvcihgJHtuYW1lfS51bmhhbmRsZWRgLCByZWFzb24pO1xuICAgICAgICB9KVxuICAgICAgICAub24oXCJ1bmNhdWdodEV4Y2VwdGlvbk1vbml0b3JcIiwgKGVycikgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3IoYCR7bmFtZX0udW5oYW5kbGVkYCwgZXJyKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcigpO1xuXG4vLyBSb3V0ZSBmZm1wZWcgbmF0aXZlIGxvZ3MgdGhyb3VnaCBwdXAncyBsb2dnZXIuXG5Mb2cuc2V0Q2FsbGJhY2soKGxldmVsLCBtZXNzYWdlKSA9PiB7XG4gIGNvbnN0IG1zZyA9IG1lc3NhZ2UudHJpbUVuZCgpO1xuICBpZiAoIW1zZykge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAobGV2ZWwgPD0gQVZfTE9HX0VSUk9SKSB7XG4gICAgbG9nZ2VyLmVycm9yKG1zZyk7XG4gIH0gZWxzZSBpZiAobGV2ZWwgPD0gQVZfTE9HX1dBUk5JTkcpIHtcbiAgICBsb2dnZXIud2Fybihtc2cpO1xuICB9XG59KTtcblxuZXhwb3J0IHsgbG9nZ2VyIH07XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzI0LlxuXG5leHBvcnQgZnVuY3Rpb24gbm9lcnI8QSBleHRlbmRzIHVua25vd25bXSwgUiwgRD4oZm46ICguLi5hcmdzOiBBKSA9PiBSLCBkZWZhdWx0VmFsdWU6IEQpOiAoLi4uYXJnczogQSkgPT4gUiB8IEQge1xuICByZXR1cm4gKC4uLmFyZ3MpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmV0ID0gZm4oLi4uYXJncyk7XG4gICAgICBpZiAocmV0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICByZXR1cm4gcmV0LmNhdGNoKCgpID0+IGRlZmF1bHRWYWx1ZSkgYXMgUiB8IEQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICB9XG4gIH07XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzA2LlxuXG5pbXBvcnQgeiBmcm9tIFwiem9kXCI7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1dJRFRIID0gMTkyMDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0hFSUdIVCA9IDEwODA7XG5leHBvcnQgY29uc3QgREVGQVVMVF9GUFMgPSAzMDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0RVUkFUSU9OID0gNTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX1dJTkRPV19USU1FT1VUID0gMTA7XG5leHBvcnQgY29uc3QgREVGQVVMVF9PVVRfRklMRSA9IFwib3V0L2h0bWwubXA0LG91dC9odG1sLndlYm1cIjtcblxuZXhwb3J0IGNvbnN0IHJlbmRlclNjaGVtYSA9IHoub2JqZWN0KHtcbiAgZHVyYXRpb246IHoubnVtYmVyKCkuZGVzY3JpYmUoXCJEdXJhdGlvbiBpbiBzZWNvbmRzXCIpLFxuICB3aWR0aDogei5udW1iZXIoKS5kZXNjcmliZShcIlZpZGVvIHdpZHRoXCIpLFxuICBoZWlnaHQ6IHoubnVtYmVyKCkuZGVzY3JpYmUoXCJWaWRlbyBoZWlnaHRcIiksXG4gIGZwczogei5udW1iZXIoKS5kZXNjcmliZShcIkZyYW1lcyBwZXIgc2Vjb25kXCIpLFxuICB3aXRoQXVkaW86IHouYm9vbGVhbigpLmRlc2NyaWJlKFwiQ2FwdHVyZSBhbmQgZW5jb2RlIGF1ZGlvXCIpLFxuICBvdXRGaWxlOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiQ29tbWEtc2VwYXJhdGVkIG91dHB1dCBwYXRoczsgZXh0ZW5zaW9uICgubXA0Ly53ZWJtKSBzZWxlY3RzIGVuY29kZXJcIiksXG4gIHVzZUlubmVyUHJveHk6IHouYm9vbGVhbigpLmRlc2NyaWJlKFwiVXNlIGJpbGliaWxpIGlubmVyIHByb3h5IGZvciByZXNvdXJjZSBhY2Nlc3NcIiksXG4gIGRldGVybWluaXN0aWM6IHouYm9vbGVhbigpLmRlc2NyaWJlKFwiUmVuZGVyIGJ5IGZyYW1lIHJhdGhlciB0aGFuIHJlY29yZGluZ1wiKSxcbiAgZGlzYWJsZUdwdTogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJEaXNhYmxlIEdQVSByZW5kZXJpbmcsIG1heSByZWR1Y2UgcGVyZm9ybWFuY2UgYnV0IGluY3JlYXNlIHN0YWJpbGl0eVwiKSxcbiAgZGlzYWJsZUh3Q29kZWM6IHouYm9vbGVhbigpLmRlc2NyaWJlKFwiRGlzYWJsZSBoYXJkd2FyZSB2aWRlbyBlbmNvZGVyIChOVkVOQy9WaWRlb1Rvb2xib3gpLCB1c2Ugc29mdHdhcmUgeDI2NVwiKSxcbiAgd2luZG93VG9sZXJhbnQ6IHouYm9vbGVhbigpLmRlc2NyaWJlKFwiRmFsbCBiYWNrIHRvIGRvbS1yZWFkeSBpZiB3YXJtdXAgbG9hZCB0aW1lcyBvdXRcIiksXG4gIHdpbmRvd1RpbWVvdXQ6IHoubnVtYmVyKCkuZGVzY3JpYmUoXCJXaW5kb3cgbG9hZCB0aW1lb3V0IGluIHNlY29uZHNcIiksXG59KTtcblxuZXhwb3J0IHR5cGUgUmVuZGVyT3B0aW9ucyA9IHouaW5mZXI8dHlwZW9mIHJlbmRlclNjaGVtYT47XG5cbmV4cG9ydCB0eXBlIENvbnNvbGVDYWxsYmFjayA9IChsZXZlbDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIFByb2dyZXNzQ2FsbGJhY2sgPSAocHJvZ3Jlc3M6IG51bWJlcikgPT4gdm9pZDtcblxuZXhwb3J0IGludGVyZmFjZSBJUENSZW5kZXJPcHRpb25zIGV4dGVuZHMgUmVuZGVyT3B0aW9ucyB7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBzaWduYWw6IEFib3J0U2lnbmFsO1xuICBvblByb2dyZXNzOiBQcm9ncmVzc0NhbGxiYWNrO1xuICBvbkNvbnNvbGU6IENvbnNvbGVDYWxsYmFjaztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJSZXN1bHQge1xuICBvcHRpb25zOiBSZW5kZXJPcHRpb25zO1xuICB3cml0dGVuOiBudW1iZXI7XG4gIGphbms6IG51bWJlcjtcbiAgb3V0RmlsZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdFJlbmRlck9wdGlvbnM6IFJlbmRlck9wdGlvbnMgPSB7XG4gIHdpZHRoOiBERUZBVUxUX1dJRFRILFxuICBoZWlnaHQ6IERFRkFVTFRfSEVJR0hULFxuICBmcHM6IERFRkFVTFRfRlBTLFxuICBkdXJhdGlvbjogREVGQVVMVF9EVVJBVElPTixcbiAgb3V0RmlsZTogREVGQVVMVF9PVVRfRklMRSxcbiAgd2l0aEF1ZGlvOiBmYWxzZSxcbiAgdXNlSW5uZXJQcm94eTogZmFsc2UsXG4gIGRldGVybWluaXN0aWM6IGZhbHNlLFxuICBkaXNhYmxlR3B1OiBmYWxzZSxcbiAgZGlzYWJsZUh3Q29kZWM6IGZhbHNlLFxuICB3aW5kb3dUb2xlcmFudDogZmFsc2UsXG4gIHdpbmRvd1RpbWVvdXQ6IERFRkFVTFRfV0lORE9XX1RJTUVPVVQsXG59O1xuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wMi8yNy5cblxuaW1wb3J0IHsgSGFyZHdhcmVDb250ZXh0IH0gZnJvbSBcIm5vZGUtYXYvYXBpXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5cbmNvbnN0IFRBRyA9IFwiW0hXQWNjZWxdXCI7XG5cbmFzeW5jIGZ1bmN0aW9uIGRldGVjdEdQVURyaXZlcigpIHtcbiAgY29uc3QgaHcgPSBIYXJkd2FyZUNvbnRleHQuYXV0bygpO1xuICBjb25zdCByZXN1bHQgPSBodyAhPT0gbnVsbDtcbiAgaHc/LmRpc3Bvc2UoKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGNvbnN0IGNhbklVc2VHUFUgPSBkZXRlY3RHUFVEcml2ZXIoKS50aGVuKChyZXN1bHQpID0+IHtcbiAgbG9nZ2VyLmRlYnVnKFRBRywgXCJncHU6XCIsIHJlc3VsdCk7XG4gIHJldHVybiByZXN1bHQ7XG59KTtcbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDQvMDMuXG5cbmltcG9ydCB7IHBsYXRmb3JtIH0gZnJvbSBcIm5vZGU6b3NcIjtcbmltcG9ydCB7IHB1cExvZ0xldmVsIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBjYW5JVXNlR1BVIH0gZnJvbSBcIi4vaHdhY2NlbFwiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hyb21pdW1PcHRpb25zKGRpc2FibGVHcHU6IGJvb2xlYW4pIHtcbiAgY29uc3Qgb3B0cyA9IFtcbiAgICAvLyDlrrnlmajmspnnrrFcbiAgICBcIm5vLXNhbmRib3hcIixcbiAgICBcImRpc2FibGUtZGV2LXNobS11c2FnZVwiLFxuICAgIC8vIOi3qOWfny/lronlhahcbiAgICBcImRpc2FibGUtd2ViLXNlY3VyaXR5XCIsXG4gICAgXCJkaXNhYmxlLXNpdGUtaXNvbGF0aW9uLXRyaWFsc1wiLFxuICAgIFwiaWdub3JlLWNlcnRpZmljYXRlLWVycm9yc1wiLFxuICAgIC8vIOW9leWItuihjOS4ulxuICAgIFwiZGlzYWJsZS1ibGluay1mZWF0dXJlcz1BdXRvbWF0aW9uQ29udHJvbGxlZFwiLFxuICAgIFwibXV0ZS1hdWRpb1wiLFxuICAgIFwiYXV0b3BsYXktcG9saWN5PW5vLXVzZXItZ2VzdHVyZS1yZXF1aXJlZFwiLFxuICAgIFwiZGlzYWJsZS1leHRlbnNpb25zXCIsXG4gICAgXCJkZW55LXBlcm1pc3Npb24tcHJvbXB0c1wiLFxuICAgIFwidXNlLW1vY2sta2V5Y2hhaW5cIixcbiAgICAvLyDmuLLmn5NcbiAgICBcImZvcmNlLWRldmljZS1zY2FsZS1mYWN0b3I9MVwiLFxuICAgIFwiZm9yY2UtY29sb3ItcHJvZmlsZT1zcmdiXCIsXG4gICAgXCJpZ25vcmUtZ3B1LWJsb2NrbGlzdFwiLFxuICAgIFwidXNlLWdsPWFuZ2xlXCIsXG4gICAgXCJkZXRlcm1pbmlzdGljLW1vZGVcIixcbiAgICBcImVuYWJsZS1iZWdpbi1mcmFtZS1jb250cm9sXCIsXG4gICAgXCJkaXNhYmxlLW5ldy1jb250ZW50LXJlbmRlcmluZy10aW1lb3V0XCIsXG4gICAgXCJydW4tYWxsLWNvbXBvc2l0b3Itc3RhZ2VzLWJlZm9yZS1kcmF3XCIsXG4gICAgXCJkaXNhYmxlLXRocmVhZGVkLWFuaW1hdGlvblwiLFxuICAgIFwiZGlzYWJsZS10aHJlYWRlZC1zY3JvbGxpbmdcIixcbiAgICBcImRpc2FibGUtY2hlY2tlci1pbWFnaW5nXCIsXG4gICAgXCJkaXNhYmxlLWltYWdlLWFuaW1hdGlvbi1yZXN5bmNcIixcbiAgICBcImVuYWJsZS1zdXJmYWNlLXN5bmNocm9uaXphdGlvblwiLFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wdXBwZXRlZXIvcHVwcGV0ZWVyL2lzc3Vlcy8yNDEwXG4gICAgXCJmb250LXJlbmRlci1oaW50aW5nPW5vbmVcIixcbiAgICAvLyDotYTmupDmjqfliLZcbiAgICBcImRpc2FibGUtYmFja2dyb3VuZC1uZXR3b3JraW5nXCIsXG4gICAgXCJqcy1mbGFncz0tLW1heC1vbGQtc3BhY2Utc2l6ZT01MTJcIixcbiAgICBcInJlbmRlcmVyLXByb2Nlc3MtbGltaXQ9MVwiLFxuICAgIFwibnVtLXJhc3Rlci10aHJlYWRzPTJcIixcbiAgICBcImRpc2FibGUtYmFja2dyb3VuZC10aW1lci10aHJvdHRsaW5nXCIsXG4gICAgXCJkaXNhYmxlLXJlbmRlcmVyLWJhY2tncm91bmRpbmdcIixcbiAgICBcImRpc2FibGUtYmFja2dyb3VuZGluZy1vY2NsdWRlZC13aW5kb3dzXCIsXG4gICAgLy8g5pel5b+X6L+96LiqXG4gICAgXCJlbmFibGUtbG9nZ2luZz1zdGRlcnJcIixcbiAgXTtcblxuICBpZiAocHVwTG9nTGV2ZWwgPj0gMykge1xuICAgIG9wdHMucHVzaChcImxvZy1sZXZlbD0wXCIsIFwidj0xXCIpO1xuICB9IGVsc2Uge1xuICAgIG9wdHMucHVzaChcImxvZy1sZXZlbD0zXCIpO1xuICB9XG5cbiAgY29uc3QgZmVhdHVyZXMgPSBbXCJGb250YXRpb25CYWNrZW5kXCJdO1xuICBjb25zdCBlbmFibGVHcHUgPSAoYXdhaXQgY2FuSVVzZUdQVSkgJiYgIWRpc2FibGVHcHU7XG4gIGlmICghZW5hYmxlR3B1KSB7XG4gICAgb3B0cy5wdXNoKFwidXNlLWFuZ2xlPXN3aWZ0c2hhZGVyXCIsIFwiZW5hYmxlLXVuc2FmZS1zd2lmdHNoYWRlclwiKTtcbiAgfSBlbHNlIHtcbiAgICBvcHRzLnB1c2goXCJkaXNhYmxlLWdwdS1zYW5kYm94XCIsIFwiZW5hYmxlLXVuc2FmZS13ZWJncHVcIik7XG4gICAgY29uc3QgcGxhdCA9IHBsYXRmb3JtKCk7XG4gICAgaWYgKHBsYXQgPT09IFwiZGFyd2luXCIpIHtcbiAgICAgIG9wdHMucHVzaChcInVzZS1hbmdsZT1tZXRhbFwiKTtcbiAgICB9IGVsc2UgaWYgKHBsYXQgPT09IFwid2luMzJcIikge1xuICAgICAgb3B0cy5wdXNoKFwidXNlLWFuZ2xlPWQzZDExXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRzLnB1c2goXCJ1c2UtYW5nbGU9dnVsa2FuXCIsIFwiZGlzYWJsZS12dWxrYW4tc3VyZmFjZVwiKTtcbiAgICAgIGZlYXR1cmVzLnB1c2goXCJWdWxrYW5cIik7XG4gICAgfVxuICB9XG5cbiAgb3B0cy5wdXNoKGBlbmFibGUtZmVhdHVyZXM9JHtmZWF0dXJlcy5qb2luKFwiLFwiKX1gKTtcbiAgcmV0dXJuIG9wdHM7XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAxLzMwLlxuXG5pbXBvcnQgeyB0eXBlIENoaWxkUHJvY2VzcywgdHlwZSBTcGF3bk9wdGlvbnMsIHNwYXduIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHRyZWVLaWxsIGZyb20gXCJ0cmVlLWtpbGxcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcblxuZXhwb3J0IGNvbnN0IFBVUF9BUkdTX0tFWSA9IFwiLS1wdXAtcHJpdi1hcmdzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJncygpIHtcbiAgY29uc3QgYXJndiA9IHByb2Nlc3MuYXJndjtcbiAgbGV0IHByaXYgPSBhcmd2LmZpbmQoKGFyZykgPT4gYXJnLnN0YXJ0c1dpdGgoUFVQX0FSR1NfS0VZKSk7XG4gIGlmICghcHJpdikge1xuICAgIGxvZ2dlci5kZWJ1ZyhcInByb2Nhcmd2XCIsIGFyZ3YpO1xuICAgIHJldHVybiBwcm9jZXNzLmFyZ3Y7XG4gIH1cbiAgY29uc3QgYXJncyA9IFtcImV4ZWNcIiwgLi4uYXJndi5zbGljZSgtMSldO1xuICBwcml2ID0gQnVmZmVyLmZyb20ocHJpdi5zcGxpdChcIj1cIilbMV0hLCBcImJhc2U2NFwiKS50b1N0cmluZygpO1xuICBhcmdzLnB1c2goLi4uSlNPTi5wYXJzZShwcml2KSk7XG4gIGxvZ2dlci5kZWJ1ZyhcInB1cGFyZ3NcIiwgYXJncyk7XG4gIHJldHVybiBhcmdzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2Nlc3NIYW5kbGUge1xuICBwcm9jZXNzOiBDaGlsZFByb2Nlc3M7XG4gIHdhaXQ6IFByb21pc2U8dm9pZD47XG4gIGdldCBraWxsZWQoKTogYm9vbGVhbjtcbiAga2lsbCgpOiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhlYyhjbWQ6IHN0cmluZywgb3B0aW9ucz86IFNwYXduT3B0aW9ucyk6IFByb2Nlc3NIYW5kbGUge1xuICBjb25zdCBwYXJ0cyA9IGNtZC5zcGxpdChcIiBcIikuZmlsdGVyKChzKSA9PiBzLmxlbmd0aCk7XG4gIGNvbnN0IFtjb21tYW5kLCAuLi5hcmdzXSA9IHBhcnRzO1xuICBpZiAoIWNvbW1hbmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJlbXB0eSBjb21tYW5kXCIpO1xuICB9XG4gIGNvbnN0IHByb2MgPSBzcGF3bihjb21tYW5kLCBhcmdzLCB7XG4gICAgc3RkaW86IFwiaW5oZXJpdFwiLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xuICBsZXQga2lsbGVkID0gZmFsc2U7XG4gIHJldHVybiB7XG4gICAgcHJvY2VzczogcHJvYyxcbiAgICB3YWl0OiBsb2dnZXIuYXR0YWNoKHByb2MsIGNvbW1hbmQpLFxuICAgIGdldCBraWxsZWQoKSB7XG4gICAgICByZXR1cm4ga2lsbGVkO1xuICAgIH0sXG4gICAga2lsbCgpIHtcbiAgICAgIGlmIChraWxsZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAga2lsbGVkID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHBpZCA9IHByb2MucGlkO1xuICAgICAgaWYgKHBpZCkge1xuICAgICAgICB0cmVlS2lsbChwaWQsIFwiU0lHS0lMTFwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb2Mua2lsbChcIlNJR0tJTExcIik7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMjUuXG5cbmltcG9ydCB7IHJtU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBta2R0ZW1wIH0gZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IHRtcGRpciB9IGZyb20gXCJub2RlOm9zXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgY2hyb21pdW1PcHRpb25zIH0gZnJvbSBcIi4uL2Jhc2UvY2hyb21pdW1cIjtcbmltcG9ydCB7IHB1cEFwcCB9IGZyb20gXCIuLi9iYXNlL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4uL2Jhc2UvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgZXhlYywgUFVQX0FSR1NfS0VZIH0gZnJvbSBcIi4uL2Jhc2UvcHJvY2Vzc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZWxlY3Ryb25PcHRzKGRpc2FibGVHcHU6IGJvb2xlYW4pIHtcbiAgcmV0dXJuIFsuLi4oYXdhaXQgY2hyb21pdW1PcHRpb25zKGRpc2FibGVHcHUpKSwgXCJoZWFkbGVzcz1uZXdcIl07XG59XG5cbmNvbnN0IFRBRyA9IFwiW0VsZWN0cm9uXVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bkVsZWN0cm9uQXBwT3B0aW9ucyB7XG4gIGFyZ3M6IHVua25vd25bXTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkVsZWN0cm9uQXBwKHsgYXJncyB9OiBSdW5FbGVjdHJvbkFwcE9wdGlvbnMpIHtcbiAgLy8gTGF6eTogZWxlY3Ryb24ncyBlbnRyeSB0aHJvd3MgaWYgdGhlIGJpbmFyeSBpcyBhYnNlbnQsIHNvIHV0aWwtb25seSBjb25zdW1lcnMgbXVzdCBub3QgbG9hZCBpdCBhdCBpbXBvcnQgdGltZS5cbiAgY29uc3QgeyBkZWZhdWx0OiBlbGVjdHJvbiB9ID0gYXdhaXQgaW1wb3J0KFwiZWxlY3Ryb25cIik7XG4gIGNvbnN0IG9wdHMgPSBhd2FpdCBlbGVjdHJvbk9wdHMoYXJncy5pbmNsdWRlcyhcIi0tZGlzYWJsZS1ncHVcIikpO1xuICAvLyBQZXItcHJvY2VzcyBwcm9maWxlOiBpc29sYXRlcyB0aGlzIGNhbGwncyBDaHJvbWl1bSBjYWNoZSAod2FybXVwIHdpbmRvd3Mgc2hhcmUgaXQgdmlhIGRlZmF1bHRTZXNzaW9uKSwgd2lwZWQgb24gZXhpdC5cbiAgY29uc3QgcHJvZmlsZURpciA9IGF3YWl0IG1rZHRlbXAoam9pbih0bXBkaXIoKSwgXCJwdXAtcHJvZmlsZS1cIikpO1xuICBjb25zdCBlbGVjdHJvbkFyZ3MgPSBvcHRzLm1hcCgoYSkgPT4gYC0tJHthfWApO1xuICBlbGVjdHJvbkFyZ3MucHVzaChgLS11c2VyLWRhdGEtZGlyPSR7cHJvZmlsZURpcn1gKTtcbiAgZWxlY3Ryb25BcmdzLnB1c2goYCR7UFVQX0FSR1NfS0VZfT0ke0J1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KGFyZ3MpKS50b1N0cmluZyhcImJhc2U2NFwiKX1gKTtcbiAgY29uc3QgY21kID0gW2VsZWN0cm9uLCAuLi5lbGVjdHJvbkFyZ3MsIHB1cEFwcF0uam9pbihcIiBcIik7XG4gIGxvZ2dlci5kZWJ1ZyhUQUcsIGNtZCk7XG5cbiAgY29uc3QgZW52OiBOb2RlSlMuUHJvY2Vzc0VudiA9IHsgLi4ucHJvY2Vzcy5lbnYsIFJVU1RfQkFDS1RSQUNFOiBcImZ1bGxcIiB9O1xuICBjb25zdCBoYW5kbGUgPSBleGVjKGNtZCwgeyBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIiwgXCJpcGNcIl0sIGVudiB9KTtcbiAgaGFuZGxlLnByb2Nlc3Mub25jZShcImV4aXRcIiwgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBybVN5bmMocHJvZmlsZURpciwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGxvZ2dlci53YXJuKFRBRywgXCJwcm9maWxlIGNsZWFudXAgZmFpbGVkOlwiLCBlKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gaGFuZGxlO1xufVxuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wNC8wMS5cblxuaW1wb3J0IHR5cGUgeyBDaGlsZFByb2Nlc3MgfSBmcm9tIFwibm9kZTpjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tIFwibm9kZTpldmVudHNcIjtcblxuZXhwb3J0IGVudW0gSXBjTXNnVHlwZSB7XG4gIC8vIGNoaWxkIOKGkiBwYXJlbnRcbiAgQ29uc29sZSA9IFwiY29uc29sZVwiLFxuICBQcm9ncmVzcyA9IFwicHJvZ3Jlc3NcIixcbiAgRG9uZSA9IFwiZG9uZVwiLFxuICBFcnJvciA9IFwiZXJyb3JcIixcbiAgLy8gcGFyZW50IOKGkiBjaGlsZFxuICBDYW5jZWwgPSBcImNhbmNlbFwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnNvbGVNc2cge1xuICB0eXBlOiBJcGNNc2dUeXBlLkNvbnNvbGU7XG4gIGxldmVsOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYW5jZWxNc2cge1xuICB0eXBlOiBJcGNNc2dUeXBlLkNhbmNlbDtcbiAgcmVhc29uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElwY0RvbmVQYXlsb2FkIHtcbiAgd3JpdHRlbjogbnVtYmVyO1xuICBqYW5rOiBudW1iZXI7XG4gIG91dEZpbGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9ncmVzc01zZyB7XG4gIHR5cGU6IElwY01zZ1R5cGUuUHJvZ3Jlc3M7XG4gIHZhbHVlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9uZU1zZyB7XG4gIHR5cGU6IElwY01zZ1R5cGUuRG9uZTtcbiAgcGF5bG9hZDogSXBjRG9uZVBheWxvYWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JNc2cge1xuICB0eXBlOiBJcGNNc2dUeXBlLkVycm9yO1xuICBlcnJvcjogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBJcGNNc2cgPSBDb25zb2xlTXNnIHwgUHJvZ3Jlc3NNc2cgfCBEb25lTXNnIHwgRXJyb3JNc2cgfCBDYW5jZWxNc2c7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXBjRXZlbnRzIHtcbiAgcHJvZ3Jlc3M6IFt2YWx1ZTogbnVtYmVyXTtcbiAgY29uc29sZTogW2xldmVsOiBzdHJpbmcsIG1zZzogc3RyaW5nXTtcbiAgZG9uZTogW3BheWxvYWQ6IElwY0RvbmVQYXlsb2FkXTtcbiAgZXJyb3I6IFtlcnJvcjogRXJyb3JdO1xuICBjbG9zZTogW2NvZGU6IG51bWJlciB8IG51bGxdO1xufVxuXG5leHBvcnQgY2xhc3MgSXBjV3JpdGVyIHtcbiAgd3JpdGVDb25zb2xlKGxldmVsOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHRoaXMuc2VuZCh7IHR5cGU6IElwY01zZ1R5cGUuQ29uc29sZSwgbGV2ZWwsIG1lc3NhZ2UgfSk7XG4gIH1cblxuICB3cml0ZVByb2dyZXNzKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnNlbmQoeyB0eXBlOiBJcGNNc2dUeXBlLlByb2dyZXNzLCB2YWx1ZSB9KTtcbiAgfVxuXG4gIHdyaXRlRXJyb3IoZXJyb3I6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnNlbmQoeyB0eXBlOiBJcGNNc2dUeXBlLkVycm9yLCBlcnJvciB9KTtcbiAgfVxuXG4gIHdyaXRlRG9uZShwYXlsb2FkOiBJcGNEb25lUGF5bG9hZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnNlbmQoeyB0eXBlOiBJcGNNc2dUeXBlLkRvbmUsIHBheWxvYWQgfSk7XG4gIH1cblxuICBwcml2YXRlIHNlbmQobXNnOiBJcGNNc2cpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGlmICghcHJvY2Vzcy5zZW5kKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgICB9XG4gICAgICBwcm9jZXNzLnNlbmQobXNnLCAoKSA9PiByZXNvbHZlKCkpO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJcGNSZWFkZXIgZXh0ZW5kcyBFdmVudEVtaXR0ZXI8SXBjRXZlbnRzPiB7XG4gIGNvbnN0cnVjdG9yKGNoaWxkOiBDaGlsZFByb2Nlc3MpIHtcbiAgICBzdXBlcigpO1xuICAgIGNoaWxkLm9uKFwibWVzc2FnZVwiLCAocmF3KSA9PiB7XG4gICAgICBjb25zdCBtc2cgPSByYXcgYXMgSXBjTXNnO1xuICAgICAgc3dpdGNoIChtc2cudHlwZSkge1xuICAgICAgICBjYXNlIElwY01zZ1R5cGUuQ29uc29sZToge1xuICAgICAgICAgIHRoaXMuZW1pdChcImNvbnNvbGVcIiwgbXNnLmxldmVsLCBtc2cubWVzc2FnZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBJcGNNc2dUeXBlLlByb2dyZXNzOiB7XG4gICAgICAgICAgdGhpcy5lbWl0KFwicHJvZ3Jlc3NcIiwgbXNnLnZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIElwY01zZ1R5cGUuRG9uZToge1xuICAgICAgICAgIHRoaXMuZW1pdChcImRvbmVcIiwgbXNnLnBheWxvYWQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgSXBjTXNnVHlwZS5FcnJvcjoge1xuICAgICAgICAgIHRoaXMuZW1pdChcImVycm9yXCIsIG5ldyBFcnJvcihtc2cuZXJyb3IpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIGNoaWxkLm9uY2UoXCJleGl0XCIsIChjKSA9PiB0aGlzLmVtaXQoXCJjbG9zZVwiLCBjKSk7XG4gIH1cbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMDkuXG5cbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuL2Jhc2UvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgcnVuRWxlY3Ryb25BcHAgfSBmcm9tIFwiLi9yZW5kZXJlci9lbGVjdHJvblwiO1xuaW1wb3J0IHsgdHlwZSBJcGNEb25lUGF5bG9hZCwgSXBjTXNnVHlwZSwgSXBjUmVhZGVyIH0gZnJvbSBcIi4vcmVuZGVyZXIvaXBjXCI7XG5pbXBvcnQge1xuICB0eXBlIENvbnNvbGVDYWxsYmFjayxcbiAgZGVmYXVsdFJlbmRlck9wdGlvbnMsXG4gIHR5cGUgUHJvZ3Jlc3NDYWxsYmFjayxcbiAgdHlwZSBSZW5kZXJPcHRpb25zLFxuICB0eXBlIFJlbmRlclJlc3VsdCxcbn0gZnJvbSBcIi4vcmVuZGVyZXIvc2NoZW1hXCI7XG5cbmNvbnN0IFRBRyA9IFwiW3B1cF1cIjtcblxuZXhwb3J0IGludGVyZmFjZSBQdXBPcHRpb25zIGV4dGVuZHMgUGFydGlhbDxSZW5kZXJPcHRpb25zPiB7XG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICBvblByb2dyZXNzPzogUHJvZ3Jlc3NDYWxsYmFjaztcbiAgb25Db25zb2xlPzogQ29uc29sZUNhbGxiYWNrO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1cFJlc3VsdCBleHRlbmRzIFJlbmRlclJlc3VsdCB7fVxuXG5hc3luYyBmdW5jdGlvbiBydW5QdXBBcHAoc291cmNlOiBzdHJpbmcsIHJlbmRlcjogUmVuZGVyT3B0aW9ucykge1xuICBsb2dnZXIuZGVidWcoVEFHLCBgcnVuUHVwQXBwYCwgc291cmNlLCByZW5kZXIpO1xuXG4gIGNvbnN0IGFyZ3M6IHN0cmluZ1tdID0gW1xuICAgIHNvdXJjZSxcbiAgICBgLS13aWR0aGAsXG4gICAgYCR7cmVuZGVyLndpZHRofWAsXG4gICAgYC0taGVpZ2h0YCxcbiAgICBgJHtyZW5kZXIuaGVpZ2h0fWAsXG4gICAgYC0tZnBzYCxcbiAgICBgJHtyZW5kZXIuZnBzfWAsXG4gICAgYC0tZHVyYXRpb25gLFxuICAgIGAke3JlbmRlci5kdXJhdGlvbn1gLFxuICAgIGAtLXdpbmRvdy10aW1lb3V0YCxcbiAgICBgJHtyZW5kZXIud2luZG93VGltZW91dH1gLFxuICAgIGAtLW91dC1maWxlYCxcbiAgICBgJHtyZW5kZXIub3V0RmlsZX1gLFxuICBdO1xuICBpZiAocmVuZGVyLndpdGhBdWRpbykge1xuICAgIGFyZ3MucHVzaChgLS13aXRoLWF1ZGlvYCk7XG4gIH1cbiAgaWYgKHJlbmRlci51c2VJbm5lclByb3h5KSB7XG4gICAgYXJncy5wdXNoKGAtLXVzZS1pbm5lci1wcm94eWApO1xuICB9XG4gIGlmIChyZW5kZXIuZGV0ZXJtaW5pc3RpYykge1xuICAgIGFyZ3MucHVzaChgLS1kZXRlcm1pbmlzdGljYCk7XG4gIH1cbiAgaWYgKHJlbmRlci5kaXNhYmxlR3B1KSB7XG4gICAgYXJncy5wdXNoKGAtLWRpc2FibGUtZ3B1YCk7XG4gIH1cbiAgaWYgKHJlbmRlci5kaXNhYmxlSHdDb2RlYykge1xuICAgIGFyZ3MucHVzaChgLS1kaXNhYmxlLWh3LWNvZGVjYCk7XG4gIH1cbiAgaWYgKHJlbmRlci53aW5kb3dUb2xlcmFudCkge1xuICAgIGFyZ3MucHVzaChgLS13aW5kb3ctdG9sZXJhbnRgKTtcbiAgfVxuXG4gIHJldHVybiBydW5FbGVjdHJvbkFwcCh7IGFyZ3MgfSk7XG59XG5cbmNvbnN0IGQgPSBkZWZhdWx0UmVuZGVyT3B0aW9ucztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHB1cChzb3VyY2U6IHN0cmluZywgb3B0aW9uczogUGFydGlhbDxQdXBPcHRpb25zPik6IFByb21pc2U8UHVwUmVzdWx0PiB7XG4gIGxvZ2dlci5kZWJ1ZyhUQUcsIGBwdXBgLCBzb3VyY2UsIG9wdGlvbnMpO1xuXG4gIGNvbnN0IHsgc2lnbmFsIH0gPSBvcHRpb25zO1xuICBzaWduYWw/LnRocm93SWZBYm9ydGVkKCk7XG5cbiAgY29uc3Qgb3V0RmlsZSA9IG9wdGlvbnMub3V0RmlsZSA/PyBkLm91dEZpbGU7XG4gIGNvbnN0IHJlbmRlck9wdHM6IFJlbmRlck9wdGlvbnMgPSB7XG4gICAgd2lkdGg6IG9wdGlvbnMud2lkdGggPz8gZC53aWR0aCxcbiAgICBoZWlnaHQ6IG9wdGlvbnMuaGVpZ2h0ID8/IGQuaGVpZ2h0LFxuICAgIGZwczogb3B0aW9ucy5mcHMgPz8gZC5mcHMsXG4gICAgZHVyYXRpb246IG9wdGlvbnMuZHVyYXRpb24gPz8gZC5kdXJhdGlvbixcbiAgICB3aXRoQXVkaW86IG9wdGlvbnMud2l0aEF1ZGlvID8/IGQud2l0aEF1ZGlvLFxuICAgIHVzZUlubmVyUHJveHk6IG9wdGlvbnMudXNlSW5uZXJQcm94eSA/PyBkLnVzZUlubmVyUHJveHksXG4gICAgZGV0ZXJtaW5pc3RpYzogb3B0aW9ucy5kZXRlcm1pbmlzdGljID8/IGQuZGV0ZXJtaW5pc3RpYyxcbiAgICBkaXNhYmxlR3B1OiBvcHRpb25zLmRpc2FibGVHcHUgPz8gZC5kaXNhYmxlR3B1LFxuICAgIGRpc2FibGVId0NvZGVjOiBvcHRpb25zLmRpc2FibGVId0NvZGVjID8/IGQuZGlzYWJsZUh3Q29kZWMsXG4gICAgd2luZG93VG9sZXJhbnQ6IG9wdGlvbnMud2luZG93VG9sZXJhbnQgPz8gZC53aW5kb3dUb2xlcmFudCxcbiAgICB3aW5kb3dUaW1lb3V0OiBvcHRpb25zLndpbmRvd1RpbWVvdXQgPz8gZC53aW5kb3dUaW1lb3V0LFxuICAgIG91dEZpbGUsXG4gIH07XG5cbiAgY29uc3QgdDAgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgbGV0IHByb2dyZXNzID0gMDtcbiAgY29uc3QgdGljayA9IChwOiBudW1iZXIpID0+IHtcbiAgICBwcm9ncmVzcyA9IHA7XG4gICAgb3B0aW9ucy5vblByb2dyZXNzPy4ocCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlID0gYXdhaXQgcnVuUHVwQXBwKHNvdXJjZSwgcmVuZGVyT3B0cyk7XG5cbiAgbGV0IGtpbGxUaW1lcjogTm9kZUpTLlRpbWVvdXQgfCB1bmRlZmluZWQ7XG4gIGNvbnN0IG9uQWJvcnQgPSAoKSA9PiB7XG4gICAgaGFuZGxlLnByb2Nlc3Muc2VuZD8uKHsgdHlwZTogSXBjTXNnVHlwZS5DYW5jZWwsIHJlYXNvbjogU3RyaW5nKHNpZ25hbD8ucmVhc29uID8/IFwiYWJvcnRcIikgfSk7XG4gICAga2lsbFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiBoYW5kbGUua2lsbCgpLCA1XzAwMCk7XG4gIH07XG4gIHNpZ25hbD8uYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIG9uQWJvcnQsIHsgb25jZTogdHJ1ZSB9KTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBQcm9taXNlPElwY0RvbmVQYXlsb2FkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBuZXcgSXBjUmVhZGVyKGhhbmRsZS5wcm9jZXNzKVxuICAgICAgICAub24oXCJjbG9zZVwiLCAoY29kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1zZyA9IEpTT04uc3RyaW5naWZ5KHsgc291cmNlLCBwcm9ncmVzcywgY29kZSwga2lsbGVkOiBoYW5kbGUua2lsbGVkIH0pO1xuICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoYGNyYXNoZWQ6ICR7bXNnfWApKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKFwicHJvZ3Jlc3NcIiwgdGljaylcbiAgICAgICAgLm9uKFwiY29uc29sZVwiLCAobCwgbSkgPT4gb3B0aW9ucy5vbkNvbnNvbGU/LihsLCBtKSlcbiAgICAgICAgLm9uKFwiZG9uZVwiLCByZXNvbHZlKVxuICAgICAgICAub24oXCJlcnJvclwiLCByZWplY3QpO1xuICAgIH0pO1xuICAgIHRpY2soMCk7XG4gICAgY29uc3QgW3N1bW1hcnldID0gYXdhaXQgUHJvbWlzZS5hbGwoW3Jlc3VsdCwgaGFuZGxlLndhaXRdKTtcbiAgICB0aWNrKDEwMCk7XG4gICAgbG9nZ2VyLmRlYnVnKFRBRywgYGRvbmUgJHtvdXRGaWxlfSBpbiAke01hdGgucm91bmQocGVyZm9ybWFuY2Uubm93KCkgLSB0MCl9bXNgKTtcbiAgICByZXR1cm4geyAuLi5zdW1tYXJ5LCBvcHRpb25zOiByZW5kZXJPcHRzIH07XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBoYW5kbGUua2lsbCgpO1xuICAgIHNpZ25hbD8udGhyb3dJZkFib3J0ZWQoKTtcbiAgICB0aHJvdyBlO1xuICB9IGZpbmFsbHkge1xuICAgIGNsZWFyVGltZW91dChraWxsVGltZXIpO1xuICAgIHNpZ25hbD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIG9uQWJvcnQpO1xuICB9XG59XG4iXX0=
package/dist/cli.js CHANGED
@@ -1,2 +1,2 @@
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
1
+ import'source-map-support/register.js';import {n,o,g,d,f,h,a,b as b$1,p}from'./chunk-UC6U2DFE.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
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24udHMiLCIuLi9zcmMvY2xpLnRzIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZVNvdXJjZSIsInMiLCJhYnMiLCJyZWFscGF0aFN5bmMiLCJyZXNvbHZlIiwibWFrZUNMSSIsIm9wdGlvbnMiLCJzaGFwZSIsInJlbmRlclNjaGVtYSIsImQiLCJkZWZhdWx0UmVuZGVyT3B0aW9ucyIsInByb2dyYW0iLCJzb3VyY2UiLCJvcHRzIiwibm9lcnIiLCJwYXJzZU51bWJlciIsImUiLCJsb2dnZXIiLCJwYXJncyIsImN0cmwiLCJleGl0Q29kZSIsImMiLCJ0b3RhbCIsImJhciIsIlByb2dyZXNzQmFyIiwiYmFyTG9nZ2VyIiwib3V0cyIsInQwIiwicHVwIiwicCIsInNlYyJdLCJtYXBwaW5ncyI6IjJMQVlBLFNBQVNBLENBQUFBLENBQWdCQyxFQUFtQixDQUMxQyxHQUFJQSxDQUFBQSxDQUFFLFFBQUEsQ0FBUyxLQUFLLENBQUEsRUFBS0EsQ0FBQUEsQ0FBRSxVQUFBLENBQVcsT0FBTyxDQUFBLENBQzNDLE9BQU9BLENBQUFBLENBRVQsSUFBSUMsQ0FBQUEsQ0FDSixHQUFJLENBQ0ZBLENBQUFBLENBQU1DLFlBQUFBLENBQWFGLENBQUMsRUFDdEIsQ0FBQSxLQUFRLENBQ05DLENBQUFBLENBQU1FLE9BQUFBLENBQVFILENBQUMsRUFDakIsQ0FDQSxPQUFPLENBQUEsT0FBQSxFQUFVQyxDQUFHLENBQUEsQ0FDdEIsQ0FPQSxlQUFzQkcsQ0FBQUEsQ0FBUUMsQ0FBQUEsQ0FBcUIsQ0FDakQsSUFBTUMsQ0FBQUEsQ0FBUUMsQ0FBQUEsQ0FBYSxLQUFBLENBQ3JCQyxDQUFBQSxDQUFJQyxDQUFBQSxDQUNWQyxPQUFBQSxDQUNHLElBQUEsQ0FBS0wsQ0FBQUEsQ0FBUSxJQUFJLENBQUEsQ0FDakIsUUFBQSxDQUFTLFVBQUEsQ0FBWSxvREFBb0QsQ0FBQSxDQUN6RSxNQUFBLENBQU8sc0JBQUEsQ0FBd0JDLENBQUFBLENBQU0sS0FBQSxDQUFNLFdBQUEsQ0FB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LE1BQU0sQ0FBQSxHQUFBLEVBQU1BLEVBQVEsR0FBRyxDQUFBLFFBQUEsRUFBV3dCLENBQUcsQ0FBQSxDQUFBLENBQzlHLEVBQ0YsQ0FBQSxNQUFTZCxDQUFBQSxDQUFHLENBQ1ZPLENBQUFBLENBQUksTUFBQSxDQUFPLENBQUEsT0FBQSxFQUFVUCxDQUFBQSxZQUFhLEtBQUEsQ0FBUUEsQ0FBQUEsQ0FBRSxPQUFBLENBQVUsTUFBQSxDQUFPQSxDQUFDLENBQUMsQ0FBQSxDQUFFLEVBQ25FLENBQUEsT0FBRSxDQUNBLE9BQUEsQ0FBUSxJQUFBLENBQUtJLENBQVEsRUFDdkIsQ0FDRixDQUNGLENBQUMsQ0FBQSIsImZpbGUiOiJjbGkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzA5LlxuXG5pbXBvcnQgeyByZWFscGF0aFN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IHByb2dyYW0gfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9iYXNlL2xvZ2dpbmdcIjtcbmltcG9ydCB7IG5vZXJyIH0gZnJvbSBcIi4vYmFzZS9ub2VyclwiO1xuaW1wb3J0IHsgcGFyc2VOdW1iZXIgfSBmcm9tIFwiLi9iYXNlL3BhcnNlclwiO1xuaW1wb3J0IHsgcGFyZ3MgfSBmcm9tIFwiLi9iYXNlL3Byb2Nlc3NcIjtcbmltcG9ydCB7IGRlZmF1bHRSZW5kZXJPcHRpb25zLCB0eXBlIFJlbmRlck9wdGlvbnMsIHJlbmRlclNjaGVtYSB9IGZyb20gXCIuL3JlbmRlcmVyL3NjaGVtYVwiO1xuXG4vLyBTY2hlbWVkIFVSSXMgcGFzcyB0aHJvdWdoOyBiYXJlIHBhdGhzIGdldCBjYW5vbmljYWxpemVkIGFuZCB3cmFwcGVkIGFzIGZpbGU6Ly8uXG5mdW5jdGlvbiBub3JtYWxpemVTb3VyY2Uoczogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHMuaW5jbHVkZXMoXCI6Ly9cIikgfHwgcy5zdGFydHNXaXRoKFwiZGF0YTpcIikpIHtcbiAgICByZXR1cm4gcztcbiAgfVxuICBsZXQgYWJzOiBzdHJpbmc7XG4gIHRyeSB7XG4gICAgYWJzID0gcmVhbHBhdGhTeW5jKHMpO1xuICB9IGNhdGNoIHtcbiAgICBhYnMgPSByZXNvbHZlKHMpO1xuICB9XG4gIHJldHVybiBgZmlsZTovLyR7YWJzfWA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ0xJT3B0aW9ucyB7XG4gIG5hbWU6IHN0cmluZztcbiAgcnVuOiAoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM6IFJlbmRlck9wdGlvbnMpID0+IFByb21pc2U8dW5rbm93bj47XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWtlQ0xJKG9wdGlvbnM6IENMSU9wdGlvbnMpIHtcbiAgY29uc3Qgc2hhcGUgPSByZW5kZXJTY2hlbWEuc2hhcGU7XG4gIGNvbnN0IGQgPSBkZWZhdWx0UmVuZGVyT3B0aW9ucztcbiAgcHJvZ3JhbVxuICAgIC5uYW1lKG9wdGlvbnMubmFtZSlcbiAgICAuYXJndW1lbnQoXCI8c291cmNlPlwiLCBcImZpbGU6Ly8sIGh0dHAocyk6Ly8sIGRhdGE6IFVSSSwgb3IgZmlsZXN5c3RlbSBwYXRoXCIpXG4gICAgLm9wdGlvbihcIi1XLCAtLXdpZHRoIDxudW1iZXI+XCIsIHNoYXBlLndpZHRoLmRlc2NyaXB0aW9uLCBgJHtkLndpZHRofWApXG4gICAgLm9wdGlvbihcIi1ILCAtLWhlaWdodCA8bnVtYmVyPlwiLCBzaGFwZS5oZWlnaHQuZGVzY3JpcHRpb24sIGAke2QuaGVpZ2h0fWApXG4gICAgLm9wdGlvbihcIi1mLCAtLWZwcyA8bnVtYmVyPlwiLCBzaGFwZS5mcHMuZGVzY3JpcHRpb24sIGAke2QuZnBzfWApXG4gICAgLm9wdGlvbihcIi10LCAtLWR1cmF0aW9uIDxudW1iZXI+XCIsIHNoYXBlLmR1cmF0aW9uLmRlc2NyaXB0aW9uLCBgJHtkLmR1cmF0aW9ufWApXG4gICAgLm9wdGlvbihcIi1vLCAtLW91dC1maWxlIDxwYXRoPlwiLCBzaGFwZS5vdXRGaWxlLmRlc2NyaXB0aW9uLCBkLm91dEZpbGUpXG4gICAgLm9wdGlvbihcIi1hLCAtLXdpdGgtYXVkaW9cIiwgc2hhcGUud2l0aEF1ZGlvLmRlc2NyaXB0aW9uLCBkLndpdGhBdWRpbylcbiAgICAub3B0aW9uKFwiLWQsIC0tZGV0ZXJtaW5pc3RpY1wiLCBzaGFwZS5kZXRlcm1pbmlzdGljLmRlc2NyaXB0aW9uLCBkLmRldGVybWluaXN0aWMpXG4gICAgLm9wdGlvbihcIi0tdXNlLWlubmVyLXByb3h5XCIsIHNoYXBlLnVzZUlubmVyUHJveHkuZGVzY3JpcHRpb24sIGQudXNlSW5uZXJQcm94eSlcbiAgICAub3B0aW9uKFwiLS1kaXNhYmxlLWdwdVwiLCBzaGFwZS5kaXNhYmxlR3B1LmRlc2NyaXB0aW9uLCBkLmRpc2FibGVHcHUpXG4gICAgLm9wdGlvbihcIi0tZGlzYWJsZS1ody1jb2RlY1wiLCBzaGFwZS5kaXNhYmxlSHdDb2RlYy5kZXNjcmlwdGlvbiwgZC5kaXNhYmxlSHdDb2RlYylcbiAgICAub3B0aW9uKFwiLS13aW5kb3ctdG9sZXJhbnRcIiwgc2hhcGUud2luZG93VG9sZXJhbnQuZGVzY3JpcHRpb24sIGQud2luZG93VG9sZXJhbnQpXG4gICAgLm9wdGlvbihcIi0td2luZG93LXRpbWVvdXQgPG51bWJlcj5cIiwgc2hhcGUud2luZG93VGltZW91dC5kZXNjcmlwdGlvbiwgYCR7ZC53aW5kb3dUaW1lb3V0fWApXG4gICAgLmFjdGlvbihhc3luYyAoc291cmNlOiBzdHJpbmcsIG9wdHMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IG9wdGlvbnMucnVuKG5vcm1hbGl6ZVNvdXJjZShzb3VyY2UpLCB7XG4gICAgICAgICAgd2lkdGg6IG5vZXJyKHBhcnNlTnVtYmVyLCBkLndpZHRoKShvcHRzLndpZHRoKSxcbiAgICAgICAgICBoZWlnaHQ6IG5vZXJyKHBhcnNlTnVtYmVyLCBkLmhlaWdodCkob3B0cy5oZWlnaHQpLFxuICAgICAgICAgIGZwczogbm9lcnIocGFyc2VOdW1iZXIsIGQuZnBzKShvcHRzLmZwcyksXG4gICAgICAgICAgZHVyYXRpb246IG5vZXJyKHBhcnNlTnVtYmVyLCBkLmR1cmF0aW9uKShvcHRzLmR1cmF0aW9uKSxcbiAgICAgICAgICBvdXRGaWxlOiBvcHRzLm91dEZpbGUgPz8gZC5vdXRGaWxlLFxuICAgICAgICAgIHdpdGhBdWRpbzogb3B0cy53aXRoQXVkaW8gPz8gZC53aXRoQXVkaW8sXG4gICAgICAgICAgdXNlSW5uZXJQcm94eTogb3B0cy51c2VJbm5lclByb3h5ID8/IGQudXNlSW5uZXJQcm94eSxcbiAgICAgICAgICBkZXRlcm1pbmlzdGljOiBvcHRzLmRldGVybWluaXN0aWMgPz8gZC5kZXRlcm1pbmlzdGljLFxuICAgICAgICAgIGRpc2FibGVHcHU6IG9wdHMuZGlzYWJsZUdwdSA/PyBkLmRpc2FibGVHcHUsXG4gICAgICAgICAgZGlzYWJsZUh3Q29kZWM6IG9wdHMuZGlzYWJsZUh3Q29kZWMgPz8gZC5kaXNhYmxlSHdDb2RlYyxcbiAgICAgICAgICB3aW5kb3dUb2xlcmFudDogb3B0cy53aW5kb3dUb2xlcmFudCA/PyBkLndpbmRvd1RvbGVyYW50LFxuICAgICAgICAgIHdpbmRvd1RpbWVvdXQ6IG5vZXJyKHBhcnNlTnVtYmVyLCBkLndpbmRvd1RpbWVvdXQpKG9wdHMud2luZG93VGltZW91dCksXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBsb2dnZXIuZmF0YWwoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIGF3YWl0IHByb2dyYW0ucGFyc2VBc3luYyhwYXJncygpKTtcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMjUuXG5cbmltcG9ydCB7IGJhckxvZ2dlciwgUHJvZ3Jlc3NCYXIgfSBmcm9tIFwiLi9iYXNlL2NsaV91aVwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vYmFzZS9sb2dnaW5nXCI7XG5pbXBvcnQgeyBtYWtlQ0xJIH0gZnJvbSBcIi4vY29tbW9uXCI7XG5pbXBvcnQgeyBwdXAgfSBmcm9tIFwiLi9wdXBcIjtcblxubWFrZUNMSSh7XG4gIG5hbWU6IFwicHVwXCIsXG4gIHJ1bjogYXN5bmMgKHNvdXJjZSwgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IGN0cmwgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgbGV0IGV4aXRDb2RlID0gMDtcbiAgICBwcm9jZXNzLm9uY2UoXCJTSUdURVJNXCIsICgpID0+IHtcbiAgICAgIGV4aXRDb2RlID0gMTQzO1xuICAgICAgY3RybC5hYm9ydChuZXcgRXJyb3IoXCJTSUdURVJNXCIpKTtcbiAgICB9KTtcbiAgICBwcm9jZXNzLm9uY2UoXCJTSUdJTlRcIiwgKCkgPT4ge1xuICAgICAgZXhpdENvZGUgPSAxMzA7XG4gICAgICBjdHJsLmFib3J0KG5ldyBFcnJvcihcIlNJR0lOVFwiKSk7XG4gICAgfSk7XG4gICAgcHJvY2Vzcy5vbmNlKFwiZXhpdFwiLCAoYykgPT4ge1xuICAgICAgZXhpdENvZGUgPSBjO1xuICAgICAgY3RybC5hYm9ydChuZXcgRXJyb3IoXCJTSUdLSUxMXCIpKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRvdGFsID0gTWF0aC5jZWlsKG9wdGlvbnMuZnBzICogb3B0aW9ucy5kdXJhdGlvbik7XG4gICAgY29uc3QgYmFyID0gbmV3IFByb2dyZXNzQmFyKHsgdG90YWwsIG91dDogcHJvY2Vzcy5zdGRlcnIsIHNob3dDb3VudDogdHJ1ZSB9KTtcbiAgICBsb2dnZXIuaW1wbCA9IGJhckxvZ2dlcihiYXIpO1xuXG4gICAgY29uc3Qgb3V0cyA9IG9wdGlvbnMub3V0RmlsZVxuICAgICAgLnNwbGl0KFwiLFwiKVxuICAgICAgLm1hcCgocykgPT4gcy50cmltKCkpXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pO1xuICAgIGJhci5sb2coYHJlbmRlcmluZyAke3NvdXJjZX0g4oaSICR7b3V0cy5qb2luKFwiLCBcIil9YCk7XG4gICAgY29uc3QgdDAgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcHVwKHNvdXJjZSwge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBzaWduYWw6IGN0cmwuc2lnbmFsLFxuICAgICAgICBvblByb2dyZXNzOiAocCkgPT4gYmFyLnVwZGF0ZVBlcmNlbnQocCksXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHNlYyA9ICgocGVyZm9ybWFuY2Uubm93KCkgLSB0MCkgLyAxMDAwKS50b0ZpeGVkKDIpO1xuICAgICAgYmFyLnVwZGF0ZSh0b3RhbCk7XG4gICAgICBiYXIuZmluaXNoKFxuICAgICAgICBgZG9uZTogJHtvdXRzLmpvaW4oXCIsIFwiKX0gKCR7dG90YWx9IGZyYW1lcywgJHtvcHRpb25zLndpZHRofXgke29wdGlvbnMuaGVpZ2h0fSBAICR7b3B0aW9ucy5mcHN9ZnBzKSBpbiAke3NlY31zYCxcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYmFyLmZpbmlzaChgZXJyb3I6ICR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpfWApO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBwcm9jZXNzLmV4aXQoZXhpdENvZGUpO1xuICAgIH1cbiAgfSxcbn0pO1xuIl19
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,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=
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-UC6U2DFE.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,e){let t,o=false;async function i(s){let n=await r(s);o||(t=setTimeout(()=>i(s+1),n??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(...s)=>{let n=0;for(;;){o?.throwIfAborted();try{let u=[r(...s)];return t&&u.push(setTimeout$1(t).then(()=>{throw i})),await Promise.race(u)}catch(u){if(o?.throwIfAborted(),n++,n>=e)throw u;await l(2**n*100+Math.random()*100);}}}}export{a as Lazy,_ as periodical,l as sleep,E as useRetry};//# sourceMappingURL=index.js.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlL2xhenkudHMiLCIuLi9zcmMvYmFzZS90aW1pbmcudHMiLCIuLi9zcmMvYmFzZS9yZXRyeS50cyJdLCJuYW1lcyI6WyJMYXp5IiwibWFrZVZhbHVlIiwic2xlZXAiLCJtcyIsInJlc29sdmUiLCJwZXJpb2RpY2FsIiwiY2FsbGJhY2siLCJ0b2tlbiIsImNsb3NlZCIsInRpY2siLCJjb3VudCIsIm5leHQiLCJ1c2VSZXRyeSIsImZuIiwibWF4QXR0ZW1wdHMiLCJ0aW1lb3V0Iiwic2lnbmFsIiwidGltZW91dEVycm9yIiwiYXJncyIsImF0dGVtcHQiLCJwcm9taXNlcyIsInNldFRpbWVvdXQiLCJlIl0sIm1hcHBpbmdzIjoia1ZBRU8sSUFBTUEsQ0FBQUEsQ0FBTixLQUFjLENBQ25CLFdBQUEsQ0FBcUJDLEVBQW9CLENBQXBCLElBQUEsQ0FBQSxTQUFBLENBQUFBLEVBQXFCLENBQXJCLFNBQUEsQ0FFckIsSUFBSSxLQUFBLEVBQVcsQ0FDYixPQUFLLElBQUEsQ0FBSyxZQUFBLEdBQ1IsS0FBSyxNQUFBLENBQVMsSUFBQSxDQUFLLFdBQVUsQ0FDN0IsSUFBQSxDQUFLLGFBQWUsSUFBQSxDQUFBLENBRWYsSUFBQSxDQUFLLE1BQ2QsQ0FFQSxJQUFJLGFBQXVCLENBQ3pCLE9BQU8sS0FBSyxZQUNkLENBRVEsYUFBZSxLQUFBLENBQ2YsTUFDVixFQ2pCTyxTQUFTQyxDQUFBQSxDQUFNQyxDQUFBQSxDQUFZLENBQ2hDLE9BQU8sSUFBSSxPQUFBLENBQWVDLENBQUFBLEVBQVksV0FBV0EsQ0FBQUEsQ0FBU0QsQ0FBRSxDQUFDLENBQy9ELENBc0JPLFNBQVNFLENBQUFBLENBQVdDLENBQUFBLENBQXNFSCxFQUFZLENBQzNHLElBQUlJLEVBQ0FDLENBQUFBLENBQVMsS0FBQSxDQUNiLGVBQWVDLENBQUFBLENBQUtDLENBQUFBLENBQWUsQ0FDakMsSUFBTUMsQ0FBQUEsQ0FBTyxNQUFNTCxDQUFBQSxDQUFTSSxDQUFLLEVBQzdCRixDQUFBQSxHQUdKRCxDQUFBQSxDQUFRLFdBQVcsSUFBTUUsQ0FBQUEsQ0FBS0MsRUFBUSxDQUFDLENBQUEsQ0FBR0MsR0FBUVIsQ0FBRSxDQUFBLEVBQ3RELENBQ0EsT0FBQUksQ0FBQUEsQ0FBUSxXQUFXLElBQU1FLENBQUFBLENBQUssQ0FBQyxDQUFBLENBQUdOLENBQUUsQ0FBQSxDQUM3QixJQUFNLENBQ1hLLENBQUFBLENBQVMsS0FDVCxZQUFBLENBQWFELENBQUssRUFDcEIsQ0FDRixDQzNCTyxTQUFTSyxDQUFBQSxDQUFzQyxDQUNwRCxHQUFBQyxDQUFBQSxDQUNBLFdBQUEsQ0FBQUMsRUFBYyxDQUFBLENBQ2QsT0FBQSxDQUFBQyxFQUNBLE1BQUEsQ0FBQUMsQ0FDRixFQUE0QixDQUMxQixJQUFNQyxFQUFlLElBQUksS0FBQSxDQUFNLGdCQUFnQkYsQ0FBTyxDQUFBLEVBQUEsQ0FBSSxFQUMxRCxPQUFPLE1BQUEsR0FBVUcsSUFBZSxDQUM5QixJQUFJQyxFQUFVLENBQUEsQ0FDZCxPQUFhLENBQ1hILENBQUFBLEVBQVEsY0FBQSxHQUNSLEdBQUksQ0FDRixJQUFNSSxDQUFBQSxDQUFXLENBQUNQLENBQUFBLENBQUcsR0FBR0ssQ0FBSSxDQUFDLEVBQzdCLE9BQUlILENBQUFBLEVBQ0ZLLEVBQVMsSUFBQSxDQUNQQyxZQUFBQSxDQUFXTixDQUFPLENBQUEsQ0FBRSxJQUFBLENBQUssSUFBTSxDQUM3QixNQUFNRSxDQUNSLENBQUMsQ0FDSCxFQUVLLE1BQU0sT0FBQSxDQUFRLElBQUEsQ0FBS0csQ0FBUSxDQUNwQyxDQUFBLE1BQVNFLEVBQUcsQ0FHVixHQUZBTixHQUFRLGNBQUEsRUFBZSxDQUN2QkcsSUFDSUEsQ0FBQUEsRUFBV0wsQ0FBQUEsQ0FDYixNQUFNUSxDQUFBQSxDQUVSLE1BQU1wQixFQUFNLENBQUEsRUFBS2lCLENBQUFBLENBQVUsSUFBTSxJQUFBLENBQUssTUFBQSxHQUFXLEdBQUcsRUFDdEQsQ0FDRixDQUNGLENBQ0YiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAxLzMwLlxuXG5leHBvcnQgY2xhc3MgTGF6eTxUPiB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IG1ha2VWYWx1ZTogKCkgPT4gVCkge31cblxuICBnZXQgdmFsdWUoKTogVCB7XG4gICAgaWYgKCF0aGlzLl9pbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLm1ha2VWYWx1ZSgpO1xuICAgICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdmFsdWUhO1xuICB9XG5cbiAgZ2V0IGluaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pbml0aWFsaXplZDtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxpemVkID0gZmFsc2U7XG4gIHByaXZhdGUgX3ZhbHVlOiBUIHwgdW5kZWZpbmVkO1xufVxuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wMi8wOS5cblxuZXhwb3J0IGZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoVGltZW91dDxUPihwOiBQcm9taXNlPFQ+LCBtczogbnVtYmVyLCBsYWJlbDogc3RyaW5nKTogUHJvbWlzZTxUPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHJlamVjdChuZXcgRXJyb3IoYCR7bGFiZWx9IHRpbWVkIG91dCBhZnRlciAke21zfW1zYCkpLCBtcyk7XG4gICAgcC50aGVuKHJlc29sdmUsIHJlamVjdCkuZmluYWxseSgoKSA9PiBjbGVhclRpbWVvdXQodGltZXIpKTtcbiAgfSk7XG59XG5cbi8vIFJlamVjdCBhcyBzb29uIGFzIGBzaWduYWxgIGFib3J0cywgZWxzZSBzZXR0bGUgd2l0aCBgcGA7IG5vLW9wIHBhc3N0aHJvdWdoIHdoZW4gbm8gc2lnbmFsLlxuZXhwb3J0IGZ1bmN0aW9uIGFib3J0YWJsZTxUPihwOiBQcm9taXNlPFQ+LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8VD4ge1xuICBpZiAoIXNpZ25hbCkge1xuICAgIHJldHVybiBwO1xuICB9XG4gIHJldHVybiBuZXcgUHJvbWlzZTxUPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3Qgb25BYm9ydCA9ICgpID0+IHJlamVjdChzaWduYWwucmVhc29uKTtcbiAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIG9uQWJvcnQsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICBwLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KS5maW5hbGx5KCgpID0+IHNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgb25BYm9ydCkpO1xuICB9KTtcbn1cblxuLy8gQ2FsbGJhY2sgbWF5IHJldHVybiB0aGUgbmV4dCBpbnRlcnZhbCAobXMpIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGZvciB0aGUgZm9sbG93aW5nIHRpY2suXG5leHBvcnQgZnVuY3Rpb24gcGVyaW9kaWNhbChjYWxsYmFjazogKGNvdW50OiBudW1iZXIpID0+IFByb21pc2U8bnVtYmVyIHwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZCwgbXM6IG51bWJlcikge1xuICBsZXQgdG9rZW46IE5vZGVKUy5UaW1lb3V0O1xuICBsZXQgY2xvc2VkID0gZmFsc2U7XG4gIGFzeW5jIGZ1bmN0aW9uIHRpY2soY291bnQ6IG51bWJlcikge1xuICAgIGNvbnN0IG5leHQgPSBhd2FpdCBjYWxsYmFjayhjb3VudCk7XG4gICAgaWYgKGNsb3NlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0b2tlbiA9IHNldFRpbWVvdXQoKCkgPT4gdGljayhjb3VudCArIDEpLCBuZXh0ID8/IG1zKTtcbiAgfVxuICB0b2tlbiA9IHNldFRpbWVvdXQoKCkgPT4gdGljaygwKSwgbXMpO1xuICByZXR1cm4gKCkgPT4ge1xuICAgIGNsb3NlZCA9IHRydWU7XG4gICAgY2xlYXJUaW1lb3V0KHRva2VuKTtcbiAgfTtcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMDUuXG5cbmltcG9ydCB7IHNldFRpbWVvdXQgfSBmcm9tIFwibm9kZTp0aW1lcnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IHNsZWVwIH0gZnJvbSBcIi4vdGltaW5nXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlPcHRpb25zPEFyZ3MgZXh0ZW5kcyB1bmtub3duW10sIFJldD4ge1xuICBmbjogKC4uLmFyZ3M6IEFyZ3MpID0+IFByb21pc2U8UmV0PjtcbiAgbWF4QXR0ZW1wdHM/OiBudW1iZXI7XG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIC8vIFdoZW4gcHJvdmlkZWQsIHVzZVJldHJ5IGJhaWxzIG91dCBpbW1lZGlhdGVseSBvbiBhYm9ydCBpbnN0ZWFkIG9mIHJldHJ5aW5nLiBUaGUgc2lnbmFsXG4gIC8vIGlzIG5vdCBhdXRvLXRocmVhZGVkIGludG8gZm4g4oCUIGNhbGxlciBtdXN0IHdpcmUgaXQgd2hlcmUgaXQgbWF0dGVycyAoZS5nLiBmZXRjaCwgUzMgc2VuZCkuXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlUmV0cnk8QXJncyBleHRlbmRzIHVua25vd25bXSwgUmV0Pih7XG4gIGZuLFxuICBtYXhBdHRlbXB0cyA9IDMsXG4gIHRpbWVvdXQsXG4gIHNpZ25hbCxcbn06IFJldHJ5T3B0aW9uczxBcmdzLCBSZXQ+KSB7XG4gIGNvbnN0IHRpbWVvdXRFcnJvciA9IG5ldyBFcnJvcihgdGltZW91dCBvdmVyICR7dGltZW91dH1tc2ApO1xuICByZXR1cm4gYXN5bmMgKC4uLmFyZ3M6IEFyZ3MpID0+IHtcbiAgICBsZXQgYXR0ZW1wdCA9IDA7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIHNpZ25hbD8udGhyb3dJZkFib3J0ZWQoKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gW2ZuKC4uLmFyZ3MpXTtcbiAgICAgICAgaWYgKHRpbWVvdXQpIHtcbiAgICAgICAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgc2V0VGltZW91dCh0aW1lb3V0KS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhyb3cgdGltZW91dEVycm9yO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5yYWNlKHByb21pc2VzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgc2lnbmFsPy50aHJvd0lmQWJvcnRlZCgpO1xuICAgICAgICBhdHRlbXB0Kys7XG4gICAgICAgIGlmIChhdHRlbXB0ID49IG1heEF0dGVtcHRzKSB7XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBzbGVlcCgyICoqIGF0dGVtcHQgKiAxMDAgKyBNYXRoLnJhbmRvbSgpICogMTAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG4iXX0=