w-converhp 2.0.30 → 2.0.31
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.
- package/README.md +1 -1
- package/dist/w-converhp-client.umd.js +2 -2
- package/dist/w-converhp-client.umd.js.map +1 -1
- package/dist/w-converhp-server.umd.js +2 -2
- package/dist/w-converhp-server.umd.js.map +1 -1
- package/docs/WConverhpClient.html +2 -2
- package/docs/WConverhpClient.mjs.html +27 -40
- package/docs/WConverhpServer.html +2 -2
- package/docs/WConverhpServer.mjs.html +40 -15
- package/docs/index.html +1 -1
- package/package.json +2 -2
- package/sclc.mjs +2 -2
- package/src/WConverhpClient.mjs +26 -39
- package/src/WConverhpServer.mjs +39 -14
- package/srv.mjs +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* w-converhp-server v2.0.
|
|
2
|
+
* w-converhp-server v2.0.31
|
|
3
3
|
* (c) 2018-2021 yuda-lyu(semisphere)
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("path"),require("fs"),require("stream"),require("@hapi/hapi"),require("@hapi/inert"),require("crypto"),require("worker_threads")):"function"==typeof define&&define.amd?define(["path","fs","stream","@hapi/hapi","@hapi/inert","crypto","worker_threads"],e):(t="undefined"!=typeof globalThis?globalThis:t||self)["w-converhp-server"]=e(t.path,t.fs,t.stream,t["@hapi/hapi"],t["@hapi/inert"],t.crypto,t.require$$0)}(this,(function(t,e,n,r,i,o,c){"use strict";var l=Array.isArray,d="object"==typeof global&&global&&global.Object===Object&&global,u="object"==typeof self&&self&&self.Object===Object&&self,a=d||u||Function("return this")(),s=a.Symbol,I=Object.prototype,p=I.hasOwnProperty,g=I.toString,C=s?s.toStringTag:void 0;var m=Object.prototype.toString;var y="[object Null]",b="[object Undefined]",h=s?s.toStringTag:void 0;function f(t){return null==t?void 0===t?b:y:h&&h in Object(t)?function(t){var e=p.call(t,C),n=t[C];try{t[C]=void 0;var r=!0}catch(t){}var i=g.call(t);return r&&(e?t[C]=n:delete t[C]),i}(t):function(t){return m.call(t)}(t)}function X(t){return null!=t&&"object"==typeof t}var Z="[object Symbol]";function A(t){return"symbol"==typeof t||X(t)&&f(t)==Z}var K=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,G=/^\w*$/;function v(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}var W="[object AsyncFunction]",H="[object Function]",V="[object GeneratorFunction]",Y="[object Proxy]";function x(t){if(!v(t))return!1;var e=f(t);return e==H||e==V||e==W||e==Y}var S,J=a["__core-js_shared__"],R=(S=/[^.]+$/.exec(J&&J.keys&&J.keys.IE_PROTO||""))?"Symbol(src)_1."+S:"";var w=Function.prototype.toString;var j=/^\[object .+?Constructor\]$/,P=Function.prototype,Q=Object.prototype,B=P.toString,L=Q.hasOwnProperty,T=RegExp("^"+B.call(L).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function N(t){return!(!v(t)||(e=t,R&&R in e))&&(x(t)?T:j).test(function(t){if(null!=t){try{return w.call(t)}catch(t){}try{return t+""}catch(t){}}return""}(t));var e}function k(t,e){var n=function(t,e){return null==t?void 0:t[e]}(t,e);return N(n)?n:void 0}var F=k(Object,"create");var U=Object.prototype.hasOwnProperty;var O=Object.prototype.hasOwnProperty;function z(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function M(t,e){for(var n,r,i=t.length;i--;)if((n=t[i][0])===(r=e)||n!=n&&r!=r)return i;return-1}z.prototype.clear=function(){this.__data__=F?F(null):{},this.size=0},z.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},z.prototype.get=function(t){var e=this.__data__;if(F){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return U.call(e,t)?e[t]:void 0},z.prototype.has=function(t){var e=this.__data__;return F?void 0!==e[t]:O.call(e,t)},z.prototype.set=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=F&&void 0===e?"__lodash_hash_undefined__":e,this};var D=Array.prototype.splice;function E(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}E.prototype.clear=function(){this.__data__=[],this.size=0},E.prototype.delete=function(t){var e=this.__data__,n=M(e,t);return!(n<0)&&(n==e.length-1?e.pop():D.call(e,n,1),--this.size,!0)},E.prototype.get=function(t){var e=this.__data__,n=M(e,t);return n<0?void 0:e[n][1]},E.prototype.has=function(t){return M(this.__data__,t)>-1},E.prototype.set=function(t,e){var n=this.__data__,r=M(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this};var _=k(a,"Map");function q(t,e){var n,r,i=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof e?"string":"hash"]:i.map}function $(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}$.prototype.clear=function(){this.size=0,this.__data__={hash:new z,map:new(_||E),string:new z}},$.prototype.delete=function(t){var e=q(this,t).delete(t);return this.size-=e?1:0,e},$.prototype.get=function(t){return q(this,t).get(t)},$.prototype.has=function(t){return q(this,t).has(t)},$.prototype.set=function(t,e){var n=q(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this};var tt="Expected a function";function et(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(tt);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var c=t.apply(this,r);return n.cache=o.set(i,c)||o,c};return n.cache=new(et.Cache||$),n}et.Cache=$;var nt,rt,it,ot=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ct=/\\(\\)?/g,lt=(nt=function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(ot,(function(t,n,r,i){e.push(r?i.replace(ct,"$1"):n||t)})),e},rt=et(nt,(function(t){return 500===it.size&&it.clear(),t})),it=rt.cache,rt),dt=lt;var ut=1/0,at=s?s.prototype:void 0,st=at?at.toString:void 0;function It(t){if("string"==typeof t)return t;if(l(t))return function(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}(t,It)+"";if(A(t))return st?st.call(t):"";var e=t+"";return"0"==e&&1/t==-ut?"-0":e}function pt(t){return null==t?"":It(t)}function gt(t,e){return l(t)?t:function(t,e){if(l(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!A(t))||G.test(t)||!K.test(t)||null!=e&&t in Object(e)}(t,e)?[t]:dt(pt(t))}var Ct=1/0;function mt(t){if("string"==typeof t||A(t))return t;var e=t+"";return"0"==e&&1/t==-Ct?"-0":e}function yt(t,e,n){var r=null==t?void 0:function(t,e){for(var n=0,r=(e=gt(e,t)).length;null!=t&&n<r;)t=t[mt(e[n++])];return n&&n==r?t:void 0}(t,e);return void 0===r?n:r}var bt="[object Number]";function ht(t){return"number"==typeof t||X(t)&&f(t)==bt}function ft(){let t,e,n=new Promise((function(){t=arguments[0],e=arguments[1]}));return n.resolve=t,n.reject=e,n}var Xt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Zt={};!function(t){var e=Object.prototype.hasOwnProperty,n="~";function r(){}function i(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(t,e,r,o,c){if("function"!=typeof r)throw new TypeError("The listener must be a function");var l=new i(r,o||t,c),d=n?n+e:e;return t._events[d]?t._events[d].fn?t._events[d]=[t._events[d],l]:t._events[d].push(l):(t._events[d]=l,t._eventsCount++),t}function c(t,e){0==--t._eventsCount?t._events=new r:delete t._events[e]}function l(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),l.prototype.eventNames=function(){var t,r,i=[];if(0===this._eventsCount)return i;for(r in t=this._events)e.call(t,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(t)):i},l.prototype.listeners=function(t){var e=n?n+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,o=r.length,c=new Array(o);i<o;i++)c[i]=r[i].fn;return c},l.prototype.listenerCount=function(t){var e=n?n+t:t,r=this._events[e];return r?r.fn?1:r.length:0},l.prototype.emit=function(t,e,r,i,o,c){var l=n?n+t:t;if(!this._events[l])return!1;var d,u,a=this._events[l],s=arguments.length;if(a.fn){switch(a.once&&this.removeListener(t,a.fn,void 0,!0),s){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,e),!0;case 3:return a.fn.call(a.context,e,r),!0;case 4:return a.fn.call(a.context,e,r,i),!0;case 5:return a.fn.call(a.context,e,r,i,o),!0;case 6:return a.fn.call(a.context,e,r,i,o,c),!0}for(u=1,d=new Array(s-1);u<s;u++)d[u-1]=arguments[u];a.fn.apply(a.context,d)}else{var I,p=a.length;for(u=0;u<p;u++)switch(a[u].once&&this.removeListener(t,a[u].fn,void 0,!0),s){case 1:a[u].fn.call(a[u].context);break;case 2:a[u].fn.call(a[u].context,e);break;case 3:a[u].fn.call(a[u].context,e,r);break;case 4:a[u].fn.call(a[u].context,e,r,i);break;default:if(!d)for(I=1,d=new Array(s-1);I<s;I++)d[I-1]=arguments[I];a[u].fn.apply(a[u].context,d)}}return!0},l.prototype.on=function(t,e,n){return o(this,t,e,n,!1)},l.prototype.once=function(t,e,n){return o(this,t,e,n,!0)},l.prototype.removeListener=function(t,e,r,i){var o=n?n+t:t;if(!this._events[o])return this;if(!e)return c(this,o),this;var l=this._events[o];if(l.fn)l.fn!==e||i&&!l.once||r&&l.context!==r||c(this,o);else{for(var d=0,u=[],a=l.length;d<a;d++)(l[d].fn!==e||i&&!l[d].once||r&&l[d].context!==r)&&u.push(l[d]);u.length?this._events[o]=1===u.length?u[0]:u:c(this,o)}return this},l.prototype.removeAllListeners=function(t){var e;return t?(e=n?n+t:t,this._events[e]&&c(this,e)):(this._events=new r,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=n,l.EventEmitter=l,t.exports=l}({get exports(){return Zt},set exports(t){Zt=t}});var At=Zt;function Kt(t){return"[object Object]"===Object.prototype.toString.call(t)}function Gt(t){if(Kt(t)){for(let e in t)return!0;return!1}return!1}function vt(t){return"[object String]"===Object.prototype.toString.call(t)}function Wt(t){return!(!vt(t)||""===t)}var Ht=/\s/;var Vt=/^\s+/;function Yt(t){return t?t.slice(0,function(t){for(var e=t.length;e--&&Ht.test(t.charAt(e)););return e}(t)+1).replace(Vt,""):t}var xt=NaN,St=/^[-+]0x[0-9a-f]+$/i,Jt=/^0b[01]+$/i,Rt=/^0o[0-7]+$/i,wt=parseInt;function jt(t){if("number"==typeof t)return t;if(A(t))return xt;if(v(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=v(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Yt(t);var n=Jt.test(t);return n||Rt.test(t)?wt(t.slice(2),n?2:8):St.test(t)?xt:+t}var Pt=1/0,Qt=17976931348623157e292;function Bt(t){return t?(t=jt(t))===Pt||t===-Pt?(t<0?-1:1)*Qt:t==t?t:0:0===t?t:0}function Lt(t){var e=Bt(t),n=e%1;return e==e?n?e-n:e:0}function Tt(t){return t!=t}function Nt(t){let e=!1;if(Wt(t))e=!isNaN(Number(t));else if(function(t){return"[object Number]"===Object.prototype.toString.call(t)}(t)){if(Tt(t))return!1;e=!0}return e}function kt(t){if(!Nt(t))return 0;return Bt(t)}function Ft(t){return!!Nt(t)&&(t=kt(t),"number"==typeof(e=t)&&e==Lt(e));var e}var Ut=a.isFinite,Ot=Math.min;var zt=function(t){var e=Math[t];return function(t,n){if(t=jt(t),(n=null==n?0:Ot(Lt(n),292))&&Ut(t)){var r=(pt(t)+"e").split("e");return+((r=(pt(e(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return e(t)}}("round"),Mt=zt;function Dt(t){if(!Nt(t))return 0;t=kt(t);let e=Mt(t);return"0"===String(e)?0:e}function Et(t){if(!Ft(t))return!1;return Dt(t)>=0}function _t(t){return"[object Array]"===Object.prototype.toString.call(t)}function qt(t){if(Kt(t)){for(let e in t)return!1;return!0}return!1}function $t(t){return!!function(t){return"[object Undefined]"===Object.prototype.toString.call(t)}(t)||(!!function(t){return"[object Null]"===Object.prototype.toString.call(t)}(t)||(!!qt(t)||(!!function(t){return!(!vt(t)||""!==t)}(t)||(!!function(t){return!!_t(t)&&0===t.length}(t)||!!Tt(t)))))}function te(t){return!!_t(t)&&(0!==t.length&&(1!==t.length||!$t(t[0])))}var ee="[object Boolean]";function ne(t){return!0===(e=t)||!1===e||X(e)&&f(e)==ee;var e}function re(t){let e,n=Object.prototype.toString.call(t);if(e="[object Promise]"===n,e)return!0;if("[object Function]"!==n)return!1;try{e="function"!=typeof t.subscribe&&"function"==typeof t.then}catch(t){}return e}function ie(t){if(!Wt(t)&&!Nt(t)&&!A(t))return"";let e="";try{e=String(t)}catch(t){}try{e=t.toString()}catch(t){}return e}var oe={};var ce,le={},de={get exports(){return le},set exports(t){le=t}};function ue(){return ce||(ce=1,function(t,e){var n;t.exports=(n=n||function(t,e){var n;if("undefined"!=typeof window&&window.crypto&&(n=window.crypto),"undefined"!=typeof self&&self.crypto&&(n=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(n=globalThis.crypto),!n&&"undefined"!=typeof window&&window.msCrypto&&(n=window.msCrypto),!n&&void 0!==Xt&&Xt.crypto&&(n=Xt.crypto),!n)try{n=require("crypto")}catch(t){}var r=function(){if(n){if("function"==typeof n.getRandomValues)try{return n.getRandomValues(new Uint32Array(1))[0]}catch(t){}if("function"==typeof n.randomBytes)try{return n.randomBytes(4).readInt32LE()}catch(t){}}throw new Error("Native crypto module could not be used to get secure random number.")},i=Object.create||function(){function t(){}return function(e){var n;return t.prototype=e,n=new t,t.prototype=null,n}}(),o={},c=o.lib={},l=c.Base={extend:function(t){var e=i(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},d=c.WordArray=l.extend({init:function(t,n){t=this.words=t||[],this.sigBytes=n!=e?n:4*t.length},toString:function(t){return(t||a).stringify(this)},concat:function(t){var e=this.words,n=t.words,r=this.sigBytes,i=t.sigBytes;if(this.clamp(),r%4)for(var o=0;o<i;o++){var c=n[o>>>2]>>>24-o%4*8&255;e[r+o>>>2]|=c<<24-(r+o)%4*8}else for(var l=0;l<i;l+=4)e[r+l>>>2]=n[l>>>2];return this.sigBytes+=i,this},clamp:function(){var e=this.words,n=this.sigBytes;e[n>>>2]&=4294967295<<32-n%4*8,e.length=t.ceil(n/4)},clone:function(){var t=l.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],n=0;n<t;n+=4)e.push(r());return new d.init(e,t)}}),u=o.enc={},a=u.Hex={stringify:function(t){for(var e=t.words,n=t.sigBytes,r=[],i=0;i<n;i++){var o=e[i>>>2]>>>24-i%4*8&255;r.push((o>>>4).toString(16)),r.push((15&o).toString(16))}return r.join("")},parse:function(t){for(var e=t.length,n=[],r=0;r<e;r+=2)n[r>>>3]|=parseInt(t.substr(r,2),16)<<24-r%8*4;return new d.init(n,e/2)}},s=u.Latin1={stringify:function(t){for(var e=t.words,n=t.sigBytes,r=[],i=0;i<n;i++){var o=e[i>>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(o))}return r.join("")},parse:function(t){for(var e=t.length,n=[],r=0;r<e;r++)n[r>>>2]|=(255&t.charCodeAt(r))<<24-r%4*8;return new d.init(n,e)}},I=u.Utf8={stringify:function(t){try{return decodeURIComponent(escape(s.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return s.parse(unescape(encodeURIComponent(t)))}},p=c.BufferedBlockAlgorithm=l.extend({reset:function(){this._data=new d.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=I.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var n,r=this._data,i=r.words,o=r.sigBytes,c=this.blockSize,l=o/(4*c),u=(l=e?t.ceil(l):t.max((0|l)-this._minBufferSize,0))*c,a=t.min(4*u,o);if(u){for(var s=0;s<u;s+=c)this._doProcessBlock(i,s);n=i.splice(0,u),r.sigBytes-=a}return new d.init(n,a)},clone:function(){var t=l.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0});c.Hasher=p.extend({cfg:l.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset()},reset:function(){p.reset.call(this),this._doReset()},update:function(t){return this._append(t),this._process(),this},finalize:function(t){return t&&this._append(t),this._doFinalize()},blockSize:16,_createHelper:function(t){return function(e,n){return new t.init(n).finalize(e)}},_createHmacHelper:function(t){return function(e,n){return new g.HMAC.init(t,n).finalize(e)}}});var g=o.algo={};return o}(Math),n)}(de)),le}!function(t,e){t.exports=ue().enc.Utf8}({get exports(){return oe},set exports(t){oe=t}});var ae=oe,se={};!function(t,e){var n;t.exports=(n=ue(),function(){var t=n,e=t.lib.WordArray;function r(t,n,r){for(var i=[],o=0,c=0;c<n;c++)if(c%4){var l=r[t.charCodeAt(c-1)]<<c%4*2|r[t.charCodeAt(c)]>>>6-c%4*2;i[o>>>2]|=l<<24-o%4*8,o++}return e.create(i,o)}t.enc.Base64={stringify:function(t){var e=t.words,n=t.sigBytes,r=this._map;t.clamp();for(var i=[],o=0;o<n;o+=3)for(var c=(e[o>>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,l=0;l<4&&o+.75*l<n;l++)i.push(r.charAt(c>>>6*(3-l)&63));var d=r.charAt(64);if(d)for(;i.length%4;)i.push(d);return i.join("")},parse:function(t){var e=t.length,n=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var o=0;o<n.length;o++)i[n.charCodeAt(o)]=o}var c=n.charAt(64);if(c){var l=t.indexOf(c);-1!==l&&(e=l)}return r(t,e,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),n.enc.Base64)}({get exports(){return se},set exports(t){se=t}});var Ie=se;function pe(t){if(!Wt(t))return"";let e=ae.parse(t);return Ie.stringify(e)}function ge(t,e){return!!Kt(t)&&(!(!Wt(e)&&!Nt(e))&&e in t)}function Ce(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}var me,ye=function(t,e,n){for(var r=-1,i=Object(t),o=n(t),c=o.length;c--;){var l=o[me?c:++r];if(!1===e(i[l],l,i))break}return t};function be(t){return X(t)&&"[object Arguments]"==f(t)}var he=Object.prototype,fe=he.hasOwnProperty,Xe=he.propertyIsEnumerable,Ze=be(function(){return arguments}())?be:function(t){return X(t)&&fe.call(t,"callee")&&!Xe.call(t,"callee")},Ae=Ze;var Ke="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ge=Ke&&"object"==typeof module&&module&&!module.nodeType&&module,ve=Ge&&Ge.exports===Ke?a.Buffer:void 0,We=(ve?ve.isBuffer:void 0)||function(){return!1},He=9007199254740991,Ve=/^(?:0|[1-9]\d*)$/;function Ye(t,e){var n=typeof t;return!!(e=null==e?He:e)&&("number"==n||"symbol"!=n&&Ve.test(t))&&t>-1&&t%1==0&&t<e}var xe=9007199254740991;function Se(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=xe}var Je={};Je["[object Float32Array]"]=Je["[object Float64Array]"]=Je["[object Int8Array]"]=Je["[object Int16Array]"]=Je["[object Int32Array]"]=Je["[object Uint8Array]"]=Je["[object Uint8ClampedArray]"]=Je["[object Uint16Array]"]=Je["[object Uint32Array]"]=!0,Je["[object Arguments]"]=Je["[object Array]"]=Je["[object ArrayBuffer]"]=Je["[object Boolean]"]=Je["[object DataView]"]=Je["[object Date]"]=Je["[object Error]"]=Je["[object Function]"]=Je["[object Map]"]=Je["[object Number]"]=Je["[object Object]"]=Je["[object RegExp]"]=Je["[object Set]"]=Je["[object String]"]=Je["[object WeakMap]"]=!1;var Re="object"==typeof exports&&exports&&!exports.nodeType&&exports,we=Re&&"object"==typeof module&&module&&!module.nodeType&&module,je=we&&we.exports===Re&&d.process,Pe=function(){try{var t=we&&we.require&&we.require("util").types;return t||je&&je.binding&&je.binding("util")}catch(t){}}(),Qe=Pe&&Pe.isTypedArray,Be=Qe?function(t){return function(e){return t(e)}}(Qe):function(t){return X(t)&&Se(t.length)&&!!Je[f(t)]},Le=Be,Te=Object.prototype.hasOwnProperty;function Ne(t,e){var n=l(t),r=!n&&Ae(t),i=!n&&!r&&We(t),o=!n&&!r&&!i&&Le(t),c=n||r||i||o,d=c?function(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}(t.length,String):[],u=d.length;for(var a in t)!e&&!Te.call(t,a)||c&&("length"==a||i&&("offset"==a||"parent"==a)||o&&("buffer"==a||"byteLength"==a||"byteOffset"==a)||Ye(a,u))||d.push(a);return d}var ke=Object.prototype;function Fe(t,e){return function(n){return t(e(n))}}var Ue=Fe(Object.keys,Object),Oe=Object.prototype.hasOwnProperty;function ze(t){if(n=(e=t)&&e.constructor,e!==("function"==typeof n&&n.prototype||ke))return Ue(t);var e,n,r=[];for(var i in Object(t))Oe.call(t,i)&&"constructor"!=i&&r.push(i);return r}function Me(t){return null!=t&&Se(t.length)&&!x(t)}function De(t){return Me(t)?Ne(t):ze(t)}var Ee=function(t,e){return function(n,r){if(null==n)return n;if(!Me(n))return t(n,r);for(var i=n.length,o=e?i:-1,c=Object(n);(e?o--:++o<i)&&!1!==r(c[o],o,c););return n}}((function(t,e){return t&&ye(t,e,De)})),_e=Ee;function qe(t){return t}function $e(t,e){var n;return(l(t)?Ce:_e)(t,"function"==typeof(n=e)?n:qe)}function tn(t){return"[object ArrayBuffer]"===Object.prototype.toString.call(t)}function en(t){return"[object Uint8Array]"===Object.prototype.toString.call(t)}function nn(t){return"[object Uint16Array]"===Object.prototype.toString.call(t)}function rn(t){if(!(tn(t)||(e=t,"[object Blob]"===Object.prototype.toString.call(e))||en(t)||nn(t)))return null;var e;try{if(t.byteLength)return t.byteLength}catch(t){}try{if(t.length)return t.length}catch(t){}try{if(t.size)return t.size}catch(t){}return null}var on=Fe(Object.getPrototypeOf,Object),cn="[object Object]",ln=Function.prototype,dn=Object.prototype,un=ln.toString,an=dn.hasOwnProperty,sn=un.call(Object);var In="[object DOMException]",pn="[object Error]";function gn(t){if(!X(t))return!1;var e=f(t);return e==pn||e==In||"string"==typeof t.message&&"string"==typeof t.name&&!function(t){if(!X(t)||f(t)!=cn)return!1;var e=on(t);if(null===e)return!0;var n=an.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&un.call(n)==sn}(t)}function Cn(t){if(!Wt(t))return new Uint8Array;let e;try{e=function(t){if(!vt(t))return new Uint8Array;let e=Ie.parse(t),n=e.words,r=e.sigBytes,i=new Uint8Array(r);for(let t=0;t<r;t++){let e=n[t>>>2]>>>24-t%4*8&255;i[t]=e}return i}(pe(t))}catch(t){return new Uint8Array}return e}function mn(t,e){return function(t,e,n,r,i,o){if(!Nt(t))return null;if(!en(e))return null;if(!Ft(n))return null;if(!ne(r))return null;if(!Ft(i))return null;if(!Ft(o))return null;let c,l,d;t=kt(t);let u=8*o-i-1,a=(1<<u)-1,s=a>>1,I=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?o-1:0,g=r?-1:1,C=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(l=isNaN(t)?1:0,c=a):(c=Math.floor(Math.log(t)/Math.LN2),t*(d=Math.pow(2,-c))<1&&(c--,d*=2),(t+=c+s>=1?I/d:I*Math.pow(2,1-s))*d>=2&&(c++,d/=2),c+s>=a?(l=0,c=a):c+s>=1?(l=(t*d-1)*Math.pow(2,i),c+=s):(l=t*Math.pow(2,s-1)*Math.pow(2,i),c=0));i>=8;e[n+p]=255&l,p+=g,l/=256,i-=8);for(c=c<<i|l,u+=i;u>0;e[n+p]=255&c,p+=g,c/=256,u-=8);return e[n+p-g]|=128*C,null}(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,!(arguments.length>3&&void 0!==arguments[3])||arguments[3],arguments.length>4&&void 0!==arguments[4]?arguments[4]:52,arguments.length>5&&void 0!==arguments[5]?arguments[5]:8)}function yn(t){let e=[],n=[];if(!te(t)&&!Gt(t))return null;let r=[],i=[];function o(t){r.push(rn(t)),i.push(t)}try{let c=function(t){if(!Kt(t))return{results:"",binarys:[]};if(qt(t))return{results:"",binarys:[]};let e="",n=[];try{let r=-1;e=JSON.stringify(t,(function(t,e){if(en(e)){r+=1;let t=`[Uint8Array]::${r}`;return n.push(e),t}if(nn(e)){r+=1;let t=`[Uint16Array]::${r}`;return n.push(e),t}if(tn(e)){r+=1;let t=`[ArrayBuffer]::${r}`;return n.push(e),t}return gn(e)&&(e=e.toString()),e}))}catch(t){}return{results:e,binarys:n}}(t);o(Cn(c.results)),$e(c.binarys,(t=>{o(t)}));let l=r,d=Cn(JSON.stringify(l)),u=new Uint8Array(8);mn(rn(d),u),e.push(u),e.push(d),$e(i,(t=>{e.push(t)})),$e(e,(t=>{n=function(t,e){let n=rn(t),r=rn(e),i=new Uint8Array(n+r);return i.set(new Uint8Array(t),0),i.set(new Uint8Array(e),n),i}(n,t)}))}catch(t){return null}return n}function bn(t){return function(t,e,n,r,i){if(!en(t))return null;if(!Ft(e))return null;if(!ne(n))return null;if(!Ft(r))return null;if(!Ft(i))return null;let o,c,l=8*i-r-1,d=(1<<l)-1,u=d>>1,a=-7,s=n?0:i-1,I=n?1:-1,p=t[e+s];for(s+=I,o=p&(1<<-a)-1,p>>=-a,a+=l;a>0;o=256*o+t[e+s],s+=I,a-=8);for(c=o&(1<<-a)-1,o>>=-a,a+=r;a>0;c=256*c+t[e+s],s+=I,a-=8);if(0===o)o=1-u;else{if(o===d)return c?NaN:1/0*(p?-1:1);c+=Math.pow(2,r),o-=u}return(p?-1:1)*c*Math.pow(2,o-r)}(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,!(arguments.length>2&&void 0!==arguments[2])||arguments[2],arguments.length>3&&void 0!==arguments[3]?arguments[3]:52,arguments.length>4&&void 0!==arguments[4]?arguments[4]:8)}var hn={};!function(t,e){var n;t.exports=(n=ue(),function(){if("function"==typeof ArrayBuffer){var t=n.lib.WordArray,e=t.init,r=t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var n=t.byteLength,r=[],i=0;i<n;i++)r[i>>>2]|=t[i]<<24-i%4*8;e.call(this,r,n)}else e.apply(this,arguments)};r.prototype=t}}(),n.lib.WordArray)}({get exports(){return hn},set exports(t){hn=t}});var fn=hn;function Xn(t){if(!en(t))return"";let e;try{n=function(t){return en(t)?fn.create(t).toString(Ie):""}(t),e=Wt(n)?Ie.parse(n).toString(ae):""}catch(t){return""}var n;return e}function Zn(t){let e=null;if(!en(t))return null;try{let n=8,r=t.slice(0,n),i=t.slice(n,rn(t)),o=bn(r),c=i.slice(0,o),l=i.slice(o,rn(i)),d=Xn(c),u=function(t,e){let n=0,r=0,i=[];return $e(e,(e=>{r=n+e;let o=t.slice(n,r);n=r,i.push(o)})),i}(l,JSON.parse(d));e=function(t){if(!Gt(t))return{};let{results:e,binarys:n}=t;if(!Wt(e))return{};if(!_t(n))return{};let r={};try{r=JSON.parse(e,(function(t,e){if(Wt(e)){if(e.indexOf("[Uint8Array]::")>=0){let t=Dt(e.replace("[Uint8Array]::",""));return n[t]}if(e.indexOf("[Uint16Array]::")>=0){let t=Dt(e.replace("[Uint16Array]::",""));return n[t]}if(e.indexOf("[ArrayBuffer]::")>=0){let t=Dt(e.replace("[ArrayBuffer]::",""));return n[t]}}return e}))}catch(t){}return r}({results:Xn(u.shift()),binarys:u})}catch(t){}return e}function An(t){return function(t){let e=yt(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},"fs");return!!e.existsSync(t)&&!e.lstatSync(t).isDirectory()&&!e.lstatSync(t).isSymbolicLink()}(t,{fs:e})}function Kn(t){let e=yt(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},"fs");if(!e.existsSync(t))return!1;let n=e.lstatSync(t);return!n.isFile()&&!n.isSymbolicLink()}function Gn(t){return function(t){let e=yt(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},"fs");if(Kn(t,{fs:e}))return{success:"input folder is already exists: "+t};if(e.existsSync(t))return{error:"input path already exists: "+t};try{e.mkdirSync(t,{recursive:!0})}catch(t){return{error:t}}return{success:"done: "+t}}(t,{fs:e})}function vn(t){return vn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vn(t)}function Wn(t){var e=function(t,e){if("object"!==vn(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!==vn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"===vn(e)?e:String(e)}function Hn(t,e,n){return(e=Wn(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Vn(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=yt(e,"fs"),r=yt(e,"crypto"),i=yt(e,"type","");Wt(i)||(i="sha512");let o=yt(e,"useSync","");ne(o)||(o=!0);let c="";return c=o?function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"sha512",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=yt(n,"fs"),i=yt(n,"crypto");if(!An(t))throw new Error(`fp[${t}] is not a file`);let o=r.readFileSync(t),c=i.createHash(e);return c.update(o,"utf8"),c.digest("hex")}(t,i,{fs:n,crypto:r}):function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"sha512",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=yt(n,"fs"),i=yt(n,"crypto"),o=ft();if(!An(t))return o.reject(`fp[${t}] is not a file`),o;try{let n=i.createHash(e),c=r.createReadStream(t);c.on("readable",(()=>{let t=c.read();t?n.update(t):o.resolve(n.digest("hex"))})),c.on("error",(t=>{o.reject(t.toString())}))}catch(t){o.reject(t.toString())}return o}(t,i,{fs:n,crypto:r}),c}function Yn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function xn(t){return Vn(t,function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Yn(Object(n),!0).forEach((function(e){Hn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Yn(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({fs:e,crypto:o},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}))}var Sn={};!function(t,e){t.exports=function(t){var e={};!function(e,n){e.exports=function(t){var e={};!function(t){var e=Object.prototype.hasOwnProperty,n="~";function r(){}function i(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(t,e,r,o,c){if("function"!=typeof r)throw new TypeError("The listener must be a function");var l=new i(r,o||t,c),d=n?n+e:e;return t._events[d]?t._events[d].fn?t._events[d]=[t._events[d],l]:t._events[d].push(l):(t._events[d]=l,t._eventsCount++),t}function c(t,e){0==--t._eventsCount?t._events=new r:delete t._events[e]}function l(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),l.prototype.eventNames=function(){var t,r,i=[];if(0===this._eventsCount)return i;for(r in t=this._events)e.call(t,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(t)):i},l.prototype.listeners=function(t){var e=n?n+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,o=r.length,c=new Array(o);i<o;i++)c[i]=r[i].fn;return c},l.prototype.listenerCount=function(t){var e=n?n+t:t,r=this._events[e];return r?r.fn?1:r.length:0},l.prototype.emit=function(t,e,r,i,o,c){var l=n?n+t:t;if(!this._events[l])return!1;var d,u,a=this._events[l],s=arguments.length;if(a.fn){switch(a.once&&this.removeListener(t,a.fn,void 0,!0),s){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,e),!0;case 3:return a.fn.call(a.context,e,r),!0;case 4:return a.fn.call(a.context,e,r,i),!0;case 5:return a.fn.call(a.context,e,r,i,o),!0;case 6:return a.fn.call(a.context,e,r,i,o,c),!0}for(u=1,d=new Array(s-1);u<s;u++)d[u-1]=arguments[u];a.fn.apply(a.context,d)}else{var I,p=a.length;for(u=0;u<p;u++)switch(a[u].once&&this.removeListener(t,a[u].fn,void 0,!0),s){case 1:a[u].fn.call(a[u].context);break;case 2:a[u].fn.call(a[u].context,e);break;case 3:a[u].fn.call(a[u].context,e,r);break;case 4:a[u].fn.call(a[u].context,e,r,i);break;default:if(!d)for(I=1,d=new Array(s-1);I<s;I++)d[I-1]=arguments[I];a[u].fn.apply(a[u].context,d)}}return!0},l.prototype.on=function(t,e,n){return o(this,t,e,n,!1)},l.prototype.once=function(t,e,n){return o(this,t,e,n,!0)},l.prototype.removeListener=function(t,e,r,i){var o=n?n+t:t;if(!this._events[o])return this;if(!e)return c(this,o),this;var l=this._events[o];if(l.fn)l.fn!==e||i&&!l.once||r&&l.context!==r||c(this,o);else{for(var d=0,u=[],a=l.length;d<a;d++)(l[d].fn!==e||i&&!l[d].once||r&&l[d].context!==r)&&u.push(l[d]);u.length?this._events[o]=1===u.length?u[0]:u:c(this,o)}return this},l.prototype.removeAllListeners=function(t){var e;return t?(e=n?n+t:t,this._events[e]&&c(this,e)):(this._events=new r,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=n,l.EventEmitter=l,t.exports=l}({get exports(){return e},set exports(t){e=t}});var n=e;let r;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let e=(i="CgogICAgICAgIC8vaW1wb3J0IHsgcGFyZW50UG9ydCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJwogICAgICAgIGxldCB7IHBhcmVudFBvcnQgfSA9IHJlcXVpcmUoJ3dvcmtlcl90aHJlYWRzJykgLy/lm6BwYWNrYWdlLmpzb27kuI3ntaZ0eXBlPW1vZHVsZeaVheeEoeazleaUr+aPtGVzNiBpbXBvcnQsIOW+l+S9v+eUqHJlcXVpcmUKICAgICAgICAvL+iLpeimgeaWvG5vZGVqcyB3b3JrZXLlhafkvb/nlKjnhKHms5Xnt6jora/nmoTljp/nlJ/lpZfku7bkvovlpoJmcywg6YG/5YWN5L2/55So6aCC5bGkaW1wb3J05Yqg6LyJ5L2/55SoLCDlm6DnhKHms5Xnt6jora/mnIPnm7TmjqXkv53nlZkKICAgICAgICAvL+S4puWboGltcG9ydOS9jeaWvHdvcmtlcuWkluWxpOmZkOWumueCunJlcXVpcmXljYAocGFja2FnZS5qc29u5LiN57WmdHlwZT1tb2R1bGUpLCDmlYXlh7rnj77pjK/oqqTnhKHms5Xnt6jora8KICAgICAgICAKCiJ1c2Ugc3RyaWN0Ijt2YXIgdD1yZXF1aXJlKCJwYXRoIikscj1yZXF1aXJlKCJmcyIpLGU9QXJyYXkuaXNBcnJheSxuPSJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCxvPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsaT1ufHxvfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHU9aS5TeW1ib2wsYT1PYmplY3QucHJvdG90eXBlLGM9YS5oYXNPd25Qcm9wZXJ0eSxzPWEudG9TdHJpbmcsZj11P3UudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBsPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIHA9IltvYmplY3QgTnVsbF0iLGg9IltvYmplY3QgVW5kZWZpbmVkXSIseT11P3UudG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIHYodCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD9oOnA6eSYmeSBpbiBPYmplY3QodCk/ZnVuY3Rpb24odCl7dmFyIHI9Yy5jYWxsKHQsZiksZT10W2ZdO3RyeXt0W2ZdPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIG89cy5jYWxsKHQpO3JldHVybiBuJiYocj90W2ZdPWU6ZGVsZXRlIHRbZl0pLG99KHQpOmZ1bmN0aW9uKHQpe3JldHVybiBsLmNhbGwodCl9KHQpfXZhciBfPSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIGQodCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fHxmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmIm9iamVjdCI9PXR5cGVvZiB0fSh0KSYmdih0KT09X312YXIgYj0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyxnPS9eXHcqJC87ZnVuY3Rpb24gaih0KXt2YXIgcj10eXBlb2YgdDtyZXR1cm4gbnVsbCE9dCYmKCJvYmplY3QiPT1yfHwiZnVuY3Rpb24iPT1yKX12YXIgUz0iW29iamVjdCBBc3luY0Z1bmN0aW9uXSIsTz0iW29iamVjdCBGdW5jdGlvbl0iLG09IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIix3PSJbb2JqZWN0IFByb3h5XSI7dmFyICQseD1pWyJfX2NvcmUtanNfc2hhcmVkX18iXSxSPSgkPS9bXi5dKyQvLmV4ZWMoeCYmeC5rZXlzJiZ4LmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIiskOiIiO3ZhciB6PUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZzt2YXIgQT0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxGPUZ1bmN0aW9uLnByb3RvdHlwZSxOPU9iamVjdC5wcm90b3R5cGUsUD1GLnRvU3RyaW5nLGs9Ti5oYXNPd25Qcm9wZXJ0eSxFPVJlZ0V4cCgiXiIrUC5jYWxsKGspLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO2Z1bmN0aW9uIEModCl7aWYoIWoodCl8fChyPXQsUiYmUiBpbiByKSlyZXR1cm4hMTt2YXIgcixlPWZ1bmN0aW9uKHQpe2lmKCFqKHQpKXJldHVybiExO3ZhciByPXYodCk7cmV0dXJuIHI9PU98fHI9PW18fHI9PVN8fHI9PXd9KHQpP0U6QTtyZXR1cm4gZS50ZXN0KGZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpe3RyeXtyZXR1cm4gei5jYWxsKHQpfWNhdGNoKHQpe310cnl7cmV0dXJuIHQrIiJ9Y2F0Y2godCl7fX1yZXR1cm4iIn0odCkpfWZ1bmN0aW9uIEkodCxyKXt2YXIgZT1mdW5jdGlvbih0LHIpe3JldHVybiBudWxsPT10P3ZvaWQgMDp0W3JdfSh0LHIpO3JldHVybiBDKGUpP2U6dm9pZCAwfXZhciBUPUkoT2JqZWN0LCJjcmVhdGUiKTt2YXIgTT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBxPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gTCh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX1mdW5jdGlvbiBVKHQscil7Zm9yKHZhciBlLG4sbz10Lmxlbmd0aDtvLS07KWlmKChlPXRbb11bMF0pPT09KG49cil8fGUhPWUmJm4hPW4pcmV0dXJuIG87cmV0dXJuLTF9TC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVQ/VChudWxsKTp7fSx0aGlzLnNpemU9MH0sTC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1yPzE6MCxyfSxMLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihUKXt2YXIgZT1yW3RdO3JldHVybiJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIj09PWU/dm9pZCAwOmV9cmV0dXJuIE0uY2FsbChyLHQpP3JbdF06dm9pZCAwfSxMLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gVD92b2lkIDAhPT1yW3RdOnEuY2FsbChyLHQpfSxMLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKHQpPzA6MSxlW3RdPVQmJnZvaWQgMD09PXI/Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iOnIsdGhpc307dmFyIEQ9QXJyYXkucHJvdG90eXBlLnNwbGljZTtmdW5jdGlvbiBHKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUcucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH0sRy5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1VKHIsdCk7cmV0dXJuIShlPDApJiYoZT09ci5sZW5ndGgtMT9yLnBvcCgpOkQuY2FsbChyLGUsMSksLS10aGlzLnNpemUsITApfSxHLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPVUocix0KTtyZXR1cm4gZTwwP3ZvaWQgMDpyW2VdWzFdfSxHLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIFUodGhpcy5fX2RhdGFfXyx0KT4tMX0sRy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPVUoZSx0KTtyZXR1cm4gbjwwPygrK3RoaXMuc2l6ZSxlLnB1c2goW3Qscl0pKTplW25dWzFdPXIsdGhpc307dmFyIFc9SShpLCJNYXAiKTtmdW5jdGlvbiBCKHQscil7dmFyIGUsbixvPXQuX19kYXRhX187cmV0dXJuKCJzdHJpbmciPT0obj10eXBlb2YoZT1yKSl8fCJudW1iZXIiPT1ufHwic3ltYm9sIj09bnx8ImJvb2xlYW4iPT1uPyJfX3Byb3RvX18iIT09ZTpudWxsPT09ZSk/b1sic3RyaW5nIj09dHlwZW9mIHI/InN0cmluZyI6Imhhc2giXTpvLm1hcH1mdW5jdGlvbiBIKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUgucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zaXplPTAsdGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgTCxtYXA6bmV3KFd8fEcpLHN0cmluZzpuZXcgTH19LEgucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgcj1CKHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LEgucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gQih0aGlzLHQpLmdldCh0KX0sSC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiBCKHRoaXMsdCkuaGFzKHQpfSxILnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT1CKHRoaXMsdCksbj1lLnNpemU7cmV0dXJuIGUuc2V0KHQsciksdGhpcy5zaXplKz1lLnNpemU9PW4/MDoxLHRoaXN9O3ZhciBKPSJFeHBlY3RlZCBhIGZ1bmN0aW9uIjtmdW5jdGlvbiBLKHQscil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHR8fG51bGwhPXImJiJmdW5jdGlvbiIhPXR5cGVvZiByKXRocm93IG5ldyBUeXBlRXJyb3IoSik7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHMsbz1yP3IuYXBwbHkodGhpcyxuKTpuWzBdLGk9ZS5jYWNoZTtpZihpLmhhcyhvKSlyZXR1cm4gaS5nZXQobyk7dmFyIHU9dC5hcHBseSh0aGlzLG4pO3JldHVybiBlLmNhY2hlPWkuc2V0KG8sdSl8fGksdX07cmV0dXJuIGUuY2FjaGU9bmV3KEsuQ2FjaGV8fEgpLGV9Sy5DYWNoZT1IO3ZhciBRLFYsWCxZPS9bXi5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4pKj8pXDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCQpKS9nLFo9L1xcKFxcKT8vZyx0dD0oUT1mdW5jdGlvbih0KXt2YXIgcj1bXTtyZXR1cm4gNDY9PT10LmNoYXJDb2RlQXQoMCkmJnIucHVzaCgiIiksdC5yZXBsYWNlKFksKGZ1bmN0aW9uKHQsZSxuLG8pe3IucHVzaChuP28ucmVwbGFjZShaLCIkMSIpOmV8fHQpfSkpLHJ9LFY9SyhRLChmdW5jdGlvbih0KXtyZXR1cm4gNTAwPT09WC5zaXplJiZYLmNsZWFyKCksdH0pKSxYPVYuY2FjaGUsVikscnQ9dHQ7dmFyIGV0PTEvMCxudD11P3UucHJvdG90eXBlOnZvaWQgMCxvdD1udD9udC50b1N0cmluZzp2b2lkIDA7ZnVuY3Rpb24gaXQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGUodCkpcmV0dXJuIGZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89QXJyYXkobik7KytlPG47KW9bZV09cih0W2VdLGUsdCk7cmV0dXJuIG99KHQsaXQpKyIiO2lmKGQodCkpcmV0dXJuIG90P290LmNhbGwodCk6IiI7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LWV0PyItMCI6cn1mdW5jdGlvbiB1dCh0KXtyZXR1cm4gbnVsbD09dD8iIjppdCh0KX1mdW5jdGlvbiBhdCh0LHIpe3JldHVybiBlKHQpP3Q6ZnVuY3Rpb24odCxyKXtpZihlKHQpKXJldHVybiExO3ZhciBuPXR5cGVvZiB0O3JldHVybiEoIm51bWJlciIhPW4mJiJzeW1ib2wiIT1uJiYiYm9vbGVhbiIhPW4mJm51bGwhPXQmJiFkKHQpKXx8Zy50ZXN0KHQpfHwhYi50ZXN0KHQpfHxudWxsIT1yJiZ0IGluIE9iamVjdChyKX0odCxyKT9bdF06cnQodXQodCkpfXZhciBjdD0xLzA7ZnVuY3Rpb24gc3QodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHxkKHQpKXJldHVybiB0O3ZhciByPXQrIiI7cmV0dXJuIjAiPT1yJiYxL3Q9PS1jdD8iLTAiOnJ9ZnVuY3Rpb24gZnQodCxyLGUpe3ZhciBuPW51bGw9PXQ/dm9pZCAwOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPTAsbj0ocj1hdChyLHQpKS5sZW5ndGg7bnVsbCE9dCYmZTxuOyl0PXRbc3QocltlKytdKV07cmV0dXJuIGUmJmU9PW4/dDp2b2lkIDB9KHQscik7cmV0dXJuIHZvaWQgMD09PW4/ZTpufWZ1bmN0aW9uIGx0KCl7bGV0IHQscixlPW5ldyBQcm9taXNlKChmdW5jdGlvbigpe3Q9YXJndW1lbnRzWzBdLHI9YXJndW1lbnRzWzFdfSkpO3JldHVybiBlLnJlc29sdmU9dCxlLnJlamVjdD1yLGV9ZnVuY3Rpb24gcHQodCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBodCh0KXtpZihmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCkpe2ZvcihsZXQgciBpbiB0KXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHl0KHQpe3JldHVybiJbb2JqZWN0IFN0cmluZ10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIHZ0KHQpe3JldHVybiB0IT10fWZ1bmN0aW9uIF90KHQpe3JldHVybiEhZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgVW5kZWZpbmVkXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBOdWxsXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwoISFodCh0KXx8KCEhZnVuY3Rpb24odCl7cmV0dXJuISgheXQodCl8fCIiIT09dCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4hIXB0KHQpJiYwPT09dC5sZW5ndGh9KHQpfHwhIXZ0KHQpKSkpKX1mdW5jdGlvbiBkdCh0KXtyZXR1cm4hKCF5dCh0KXx8IiI9PT10KX12YXIgYnQ9L1xzLzt2YXIgZ3Q9L15ccysvO2Z1bmN0aW9uIGp0KHQpe3JldHVybiB0P3Quc2xpY2UoMCxmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tJiZidC50ZXN0KHQuY2hhckF0KHIpKTspO3JldHVybiByfSh0KSsxKS5yZXBsYWNlKGd0LCIiKTp0fXZhciBTdD1OYU4sT3Q9L15bLStdMHhbMC05YS1mXSskL2ksbXQ9L14wYlswMV0rJC9pLHd0PS9eMG9bMC03XSskL2ksJHQ9cGFyc2VJbnQ7ZnVuY3Rpb24geHQodCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGQodCkpcmV0dXJuIFN0O2lmKGoodCkpe3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PWoocik/cisiIjpyfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PWp0KHQpO3ZhciBlPW10LnRlc3QodCk7cmV0dXJuIGV8fHd0LnRlc3QodCk/JHQodC5zbGljZSgyKSxlPzI6OCk6T3QudGVzdCh0KT9TdDordH12YXIgUnQ9MS8wLHp0PTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBBdCh0KXtyZXR1cm4gdD8odD14dCh0KSk9PT1SdHx8dD09PS1SdD8odDwwPy0xOjEpKnp0OnQ9PXQ/dDowOjA9PT10P3Q6MH1mdW5jdGlvbiBGdCh0KXt2YXIgcj1BdCh0KSxlPXIlMTtyZXR1cm4gcj09cj9lP3ItZTpyOjB9ZnVuY3Rpb24gTnQodCl7bGV0IHI9ITE7aWYoZHQodCkpcj0haXNOYU4oTnVtYmVyKHQpKTtlbHNlIGlmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7aWYodnQodCkpcmV0dXJuITE7cj0hMH1yZXR1cm4gcn1mdW5jdGlvbiBQdCh0KXtpZighTnQodCkpcmV0dXJuIDA7cmV0dXJuIEF0KHQpfWZ1bmN0aW9uIGt0KHQpe3JldHVybiEhTnQodCkmJih0PVB0KHQpLCJudW1iZXIiPT10eXBlb2Yocj10KSYmcj09RnQocikpO3ZhciByfXZhciBFdD1pLmlzRmluaXRlLEN0PU1hdGgubWluO3ZhciBJdD1mdW5jdGlvbih0KXt2YXIgcj1NYXRoW3RdO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKHQ9eHQodCksKGU9bnVsbD09ZT8wOkN0KEZ0KGUpLDI5MikpJiZFdCh0KSl7dmFyIG49KHV0KHQpKyJlIikuc3BsaXQoImUiKTtyZXR1cm4rKChuPSh1dChyKG5bMF0rImUiKygrblsxXStlKSkpKyJlIikuc3BsaXQoImUiKSlbMF0rImUiKygrblsxXS1lKSl9cmV0dXJuIHIodCl9fSgicm91bmQiKSxUdD1JdDtmdW5jdGlvbiBNdCh0KXtpZighTnQodCkpcmV0dXJuIDA7dD1QdCh0KTtsZXQgcj1UdCh0KTtyZXR1cm4iMCI9PT1TdHJpbmcocik/MDpyfWZ1bmN0aW9uIHF0KHQpe2lmKCFrdCh0KSlyZXR1cm4hMTtyZXR1cm4gTXQodCk+PTB9ZnVuY3Rpb24gTHQodCxyKXtpZighZHQodCkpcmV0dXJuIiI7aWYoIXF0KHIpKXJldHVybiIiO2lmKDA9PT0ocj1NdChyKSkpcmV0dXJuIiI7bGV0IGU9dC5sZW5ndGgtcjtyZXR1cm4gZTwwJiYoZT0wKSx0LnN1YnN0cmluZyhlLGUrcil9ZnVuY3Rpb24gVXQodCxyKXtyZXR1cm4gZHQodCkmJnF0KHIpPzA9PT0ocj1NdChyKSk/dDpmdW5jdGlvbih0LHIpe3JldHVybiBkdCh0KSYmcXQocik/MD09PShyPU10KHIpKT8iIjp0LnN1YnN0cmluZygwLHIpOiIifSh0LHQubGVuZ3RoLXIpOiIifWZ1bmN0aW9uIER0KHQpe2lmKCFkdCh0KSlyZXR1cm57cGF0aDoiIixpc1Jvb3Q6ITF9O2Zvcig7dC5pbmRleE9mKCJcXFxcIik+PTA7KXQ9dC5yZXBsYWNlKCJcXFxcIiwiXFwiKTtmb3IoO3QuaW5kZXhPZigiLy8iKT49MDspdD10LnJlcGxhY2UoIi8vIiwiLyIpO2lmKCI6Ij09PUx0KHQsMSkpcmV0dXJue3BhdGg6YCR7dH1cXGAsaXNSb290OiEwfTtpZigiXFwiPT09THQodCwxKSl7bGV0IHI9VXQodCwxKTtyZXR1cm4iOiI9PT1MdChyLDEpP3twYXRoOnQsaXNSb290OiEwfTp7cGF0aDpyLGlzUm9vdDohMX19aWYoIi8iPT09THQodCwxKSl7bGV0IHI9VXQodCwxKTtyZXR1cm4gMD09PXIubGVuZ3RoP3twYXRoOnQsaXNSb290OiEwfTp7cGF0aDpyLGlzUm9vdDohMX19cmV0dXJue3BhdGg6dCxpc1Jvb3Q6ITF9fWZ1bmN0aW9uIEd0KHQpe2lmKCFkdCh0KSlyZXR1cm4iIjtsZXQgcj1EdCh0KTtpZihyLmlzUm9vdClyZXR1cm4gci5wYXRoO2xldCBlPWZ1bmN0aW9uKHQpe2lmKCFkdCh0KSlyZXR1cm4iIjtsZXQgcj1EdCh0KTtpZihyLmlzUm9vdClyZXR1cm4gci5wYXRoO2xldCBlPXIucGF0aDt0cnl7ZT1lLnNwbGl0KCJcXCIpLnBvcCgpLnNwbGl0KCIvIikucG9wKCl9Y2F0Y2godCl7fXJldHVybiBlfSh0PXIucGF0aCk7aWYoIWR0KGUpKXJldHVybiB0O2xldCBuPUR0KHQ9VXQodCxlLmxlbmd0aCkpO3JldHVybiBuLmlzUm9vdCxuLnBhdGh9ZnVuY3Rpb24gV3QodCxyPXt9KXtsZXQgZT1mdChyLCJmcyIpO2lmKCFlLmV4aXN0c1N5bmModCkpcmV0dXJuITE7bGV0IG49ZS5sc3RhdFN5bmModCk7cmV0dXJuIW4uaXNGaWxlKCkmJiFuLmlzU3ltYm9saWNMaW5rKCl9ZnVuY3Rpb24gQnQodCxyPXt9KXtsZXQgZT1mdChyLCJmcyIpO3JldHVybiEhZS5leGlzdHNTeW5jKHQpJiYoIWUubHN0YXRTeW5jKHQpLmlzRGlyZWN0b3J5KCkmJiFlLmxzdGF0U3luYyh0KS5pc1N5bWJvbGljTGluaygpKX1mdW5jdGlvbiBIdCh0LHI9e30pe2xldCBlPWZ0KHIsImZzIik7aWYoIWUuZXhpc3RzU3luYyh0KSlyZXR1cm57c3VjY2VzczoiZmlsZSBkb2VzIG5vdCBleGlzdDogIit0fTtpZighQnQodCx7ZnM6ZX0pKXJldHVybntlcnJvcjoiaW5wdXQgcGF0aCBpcyBub3QgYSBmaWxlOiAiK3R9O3RyeXtlLnVubGlua1N5bmModCl9Y2F0Y2godCl7cmV0dXJue2Vycm9yOnR9fXJldHVybntzdWNjZXNzOiJkb25lOiAiK3R9fWFzeW5jIGZ1bmN0aW9uIEp0KHQscixlLG49e30pe2xldCBvPSIiLGk9ZnQobiwiZnMiKTtpZighcHQodT1yKXx8MD09PXUubGVuZ3RofHwxPT09dS5sZW5ndGgmJl90KHVbMF0pKXRocm93IG5ldyBFcnJvcigiZnBzSW4gaW4gbm90IGFuIGVmZmVjdGl2ZSBhcnJheSIpO3ZhciB1O2xldCBhPUd0KGUpO1d0KGEse2ZzOml9KXx8ZnVuY3Rpb24odCxyPXt9KXtsZXQgZT1mdChyLCJmcyIpO2lmKFd0KHQse2ZzOmV9KSlyZXR1cm57c3VjY2VzczoiaW5wdXQgZm9sZGVyIGlzIGFscmVhZHkgZXhpc3RzOiAiK3R9O2lmKGUuZXhpc3RzU3luYyh0KSlyZXR1cm57ZXJyb3I6ImlucHV0IHBhdGggYWxyZWFkeSBleGlzdHM6ICIrdH07dHJ5e2UubWtkaXJTeW5jKHQse3JlY3Vyc2l2ZTohMH0pfWNhdGNoKHQpe3JldHVybntlcnJvcjp0fX19KGEse2ZzOml9KTtsZXQgYz1sdCgpO3RyeXtsZXQgbj1pLmNyZWF0ZVdyaXRlU3RyZWFtKGUpO2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCsrKXtsZXQgZT1yW3RdO2lmKCFCdChlLHtmczppfSkpdGhyb3cgbmV3IEVycm9yKGBmcEluWyR7ZX1dIGlzIG5vdCBhIGZpbGVgKTtsZXQgdT0oKT0+e2xldCB0PWx0KCkscj1pLmNyZWF0ZVJlYWRTdHJlYW0oZSk7cmV0dXJuIHIub24oImVycm9yIiwocj0+e289ci5tZXNzYWdlLHQucmVqZWN0KHIpfSkpLHIub24oImVuZCIsKCgpPT57SHQoZSx7ZnM6aX0pLHQucmVzb2x2ZSgpfSkpLHIucGlwZShuLHtlbmQ6ITF9KSx0fTthd2FpdCB1KCl9bi5lbmQoKSxuLm9uKCJlcnJvciIsKHQ9PntvPXQubWVzc2FnZSxjLnJlamVjdChvKX0pKSxuLm9uKCJmaW5pc2giLCgoKT0+e2xldCByPXtmaWxlbmFtZTp0LHBhdGg6ZX07Yy5yZXNvbHZlKHIpfSkpfWNhdGNoKHQpe289dC5tZXNzYWdlLGMucmVqZWN0KG8pfXJldHVybiBjfWxldCBtZXJnZUZpbGVzPWFzeW5jKGUsbixvLGkpPT57bGV0IHU9W107Zm9yKGxldCByPTA7cjxvO3IrKyl7bGV0IG89dC5qb2luKGUsYCR7bn1fJHtyfWApO3UucHVzaChvKX1sZXQgYT10LmpvaW4oZSxuKSxjPWF3YWl0IGFzeW5jIGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gSnQodCxlLG4se2ZzOnJ9KX0oaSx1LGEpO3JldHVybiBjfTsKCgpsZXQgaW5zdGFuY2UgPSBudWxsCmZ1bmN0aW9uIGluaXQoaW5wdXQpewoKICAgIC8vaW5pdAogICAgbGV0IHIKICAgIAogICAgICAgIHIgPSB7CiAgICAgICAgICAgIG1haW46IG1lcmdlRmlsZXMKICAgICAgICB9CiAgICAgICAgCgogICAgLy9vbgogICAgCgogICAgLy9zYXZlCiAgICBpbnN0YW5jZSA9IHIKCn0KCmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHsKICAgIAogICAgICAgIHBhcmVudFBvcnQucG9zdE1lc3NhZ2UoZGF0YSkKICAgICAgICAKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcnVuJyxkYXRhKQoKICAgIC8vbW9kZQogICAgbGV0IG1vZGUgPSBkYXRhLm1vZGUKCiAgICAvL2NoZWNrCiAgICBpZihtb2RlICE9PSAnaW5pdCcgJiYgbW9kZSAhPT0gJ2NhbGwnKXsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICAvL2luaXQKICAgIGlmKG1vZGUgPT09ICdpbml0Jyl7CiAgICAgICAgCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy90eXBlCiAgICAgICAgICAgIGxldCB0eXBlID0gZGF0YS50eXBlCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKICAgIAogICAgICAgICAgICAvL2luc3RhbmNlCiAgICAgICAgICAgIGlmKHR5cGUgPT09ICdmdW5jdGlvbicpewogICAgICAgICAgICAgICAgaW5pdCguLi5pbnB1dCkKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT09ICdvYmplY3QnKXsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gbWVyZ2VGaWxlcwogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgIAogICAgICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgICAgICBtb2RlOiAnZW1pdCcsCiAgICAgICAgICAgICAgICBldk5hbWU6ICdlcnJvcicsCiAgICAgICAgICAgICAgICBtc2c6IGVyciwKICAgICAgICAgICAgfQogICAgICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgICAgIH0KICAgICAgICAgICAgCiAgICB9CgogICAgLy9jaGVjawogICAgaWYobW9kZSA9PT0gJ2NhbGwnKXsKICAgICAgICBsZXQgc3RhdGUgPSAnJwogICAgICAgIGxldCBtc2cgPSBudWxsCgogICAgICAgIHRyeXsKCiAgICAgICAgICAgIC8vZnVuCiAgICAgICAgICAgIGxldCBmdW4gPSBpbnN0YW5jZVtkYXRhLmZ1bl0KCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAoKICAgICAgICAgICAgLy9leGVjCiAgICAgICAgICAgIGF3YWl0IGZ1biguLi5pbnB1dCkKICAgICAgICAgICAgICAgIC50aGVuKChzdWMpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nc3VjY2VzcycKICAgICAgICAgICAgICAgICAgICBtc2c9c3VjCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nZXJyb3InCiAgICAgICAgICAgICAgICAgICAgbXNnPWVycgogICAgICAgICAgICAgICAgfSkKCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgICAgIHN0YXRlID0gJ2Vycm9yJwogICAgICAgICAgICBtc2cgPSBlcnIKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgIG1vZGU6ICdyZXR1cm4nLAogICAgICAgICAgICBpZDogZGF0YS5pZCwKICAgICAgICAgICAgZnVuOiBkYXRhLmZ1biwKICAgICAgICAgICAgc3RhdGUsCiAgICAgICAgICAgIG1zZywKICAgICAgICB9CiAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgIH0KCn0KCmZ1bmN0aW9uIHJlY3ZNZXNzYWdlKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcmVjdjonLCBkYXRhKQoKICAgIC8vZGF0YVJlY3YKICAgIGxldCBkYXRhUmVjdiA9IGRhdGEKCiAgICAvL3J1bgogICAgcnVuKGRhdGFSZWN2KQoKfQoKCiAgICAgICAgcGFyZW50UG9ydC5vbignbWVzc2FnZScsIHJlY3ZNZXNzYWdlKQogICAgICAgIAoKdHJ5ewogICAgcHJvY2Vzcy5vbigndW5oYW5kbGVkUmVqZWN0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmhhbmRsZWRSZWplY3Rpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgZXJyKQogICAgfSkKfQpjYXRjaChlcnIpe30KCg==",Buffer.from(i,"base64").toString("utf8"));var i;function o(){let r=new n,i=function(e){try{return new t.Worker(e,{eval:!0})}catch(t){c(t)}}(e);if(!i)return c("invalid worker"),null;function o(){let t=function(){let t,e,n=new Promise((function(){t=arguments[0],e=arguments[1]}));return n.resolve=t,n.reject=e,n}(),e=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,e=[],n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=n.length;for(let i=0;i<t;i++)e[i]=n[0|Math.random()*r];return e.join("")}(),n={mode:"call",id:e,fun:"main",input:[...arguments]};return i.postMessage(n),r.once(e,(e=>{"success"===e.state?t.resolve(e.msg):t.reject(e.msg)})),t}function c(t){r.emit("error",t)}return i.on("message",(function(t){let e=t,n=e.mode;"emit"!==n&&"return"!==n||("emit"===n&&r.emit(e.evName,e.msg),"return"===n&&r.emit(e.id,e))})),i.on("error",c),i.on("exit",(t=>{1!==t&&c("exit code["+t+"] !== 1")})),function(){let t={mode:"init",type:"function",input:[...arguments]};i.postMessage(t)}([...arguments]),r.main=o,r.main=o,r.terminate=function(){i?(i.terminate(),i=void 0):c("worker has been terminated")},r}r=async function(){let t=[...arguments],e=o();return await e.main(...t).finally((()=>{e.terminate()}))}}();try{process.on("unhandledRejection",(t=>{console.log("outer:unhandledRejection",t)})),process.on("uncaughtException",(t=>{console.log("outer:uncaughtException",t)})),process.on("uncaughtExceptionMonitor",(t=>{console.log("outer:uncaughtExceptionMonitor",t)}))}catch(t){}return r}(t)}({get exports(){return e},set exports(t){e=t}});var n=e,r={};!function(t,e){t.exports=function(){const t="function"==typeof Buffer,e="function"==typeof TextDecoder?new TextDecoder:void 0,n=(t=>{let e={};return t.forEach(((t,n)=>e[t]=n)),e})(("function"==typeof TextEncoder&&new TextEncoder,Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="))),r=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,i=String.fromCharCode.bind(String),o="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):t=>new Uint8Array(Array.prototype.slice.call(t,0)),c=t=>t.replace(/[^A-Za-z0-9\+\/]/g,""),l=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,d=t=>{switch(t.length){case 4:var e=((7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3))-65536;return i(55296+(e>>>10))+i(56320+(1023&e));case 3:return i((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return i((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},u=t=>t.replace(l,d),a=t=>{if(t=t.replace(/\s+/g,""),!r.test(t))throw new TypeError("malformed base64.");t+="==".slice(2-(3&t.length));let e,o,c,l="";for(let r=0;r<t.length;)e=n[t.charAt(r++)]<<18|n[t.charAt(r++)]<<12|(o=n[t.charAt(r++)])<<6|(c=n[t.charAt(r++)]),l+=64===o?i(e>>16&255):64===c?i(e>>16&255,e>>8&255):i(e>>16&255,e>>8&255,255&e);return l},s="function"==typeof atob?t=>atob(c(t)):t?t=>Buffer.from(t,"base64").toString("binary"):a,I=t?t=>o(Buffer.from(t,"base64")):t=>o(s(t).split("").map((t=>t.charCodeAt(0)))),p=t?t=>Buffer.from(t,"base64").toString("utf8"):e?t=>e.decode(I(t)):t=>u(s(t)),g=t=>c(t.replace(/[-_]/g,(t=>"-"==t?"+":"/"))),C=t=>p(g(t)),m=C;var y={};!function(t){var e=Object.prototype.hasOwnProperty,n="~";function r(){}function i(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(t,e,r,o,c){if("function"!=typeof r)throw new TypeError("The listener must be a function");var l=new i(r,o||t,c),d=n?n+e:e;return t._events[d]?t._events[d].fn?t._events[d]=[t._events[d],l]:t._events[d].push(l):(t._events[d]=l,t._eventsCount++),t}function c(t,e){0==--t._eventsCount?t._events=new r:delete t._events[e]}function l(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),l.prototype.eventNames=function(){var t,r,i=[];if(0===this._eventsCount)return i;for(r in t=this._events)e.call(t,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(t)):i},l.prototype.listeners=function(t){var e=n?n+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,o=r.length,c=new Array(o);i<o;i++)c[i]=r[i].fn;return c},l.prototype.listenerCount=function(t){var e=n?n+t:t,r=this._events[e];return r?r.fn?1:r.length:0},l.prototype.emit=function(t,e,r,i,o,c){var l=n?n+t:t;if(!this._events[l])return!1;var d,u,a=this._events[l],s=arguments.length;if(a.fn){switch(a.once&&this.removeListener(t,a.fn,void 0,!0),s){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,e),!0;case 3:return a.fn.call(a.context,e,r),!0;case 4:return a.fn.call(a.context,e,r,i),!0;case 5:return a.fn.call(a.context,e,r,i,o),!0;case 6:return a.fn.call(a.context,e,r,i,o,c),!0}for(u=1,d=new Array(s-1);u<s;u++)d[u-1]=arguments[u];a.fn.apply(a.context,d)}else{var I,p=a.length;for(u=0;u<p;u++)switch(a[u].once&&this.removeListener(t,a[u].fn,void 0,!0),s){case 1:a[u].fn.call(a[u].context);break;case 2:a[u].fn.call(a[u].context,e);break;case 3:a[u].fn.call(a[u].context,e,r);break;case 4:a[u].fn.call(a[u].context,e,r,i);break;default:if(!d)for(I=1,d=new Array(s-1);I<s;I++)d[I-1]=arguments[I];a[u].fn.apply(a[u].context,d)}}return!0},l.prototype.on=function(t,e,n){return o(this,t,e,n,!1)},l.prototype.once=function(t,e,n){return o(this,t,e,n,!0)},l.prototype.removeListener=function(t,e,r,i){var o=n?n+t:t;if(!this._events[o])return this;if(!e)return c(this,o),this;var l=this._events[o];if(l.fn)l.fn!==e||i&&!l.once||r&&l.context!==r||c(this,o);else{for(var d=0,u=[],a=l.length;d<a;d++)(l[d].fn!==e||i&&!l[d].once||r&&l[d].context!==r)&&u.push(l[d]);u.length?this._events[o]=1===u.length?u[0]:u:c(this,o)}return this},l.prototype.removeAllListeners=function(t){var e;return t?(e=n?n+t:t,this._events[e]&&c(this,e)):(this._events=new r,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=n,l.EventEmitter=l,t.exports=l}({get exports(){return y},set exports(t){y=t}});var b=y;let h;!function(){if("browser"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=m("CgoKInVzZSBzdHJpY3QiO3ZhciB0PXJlcXVpcmUoInBhdGgiKSxyPXJlcXVpcmUoImZzIiksZT1BcnJheS5pc0FycmF5LG49Im9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbCYmZ2xvYmFsLk9iamVjdD09PU9iamVjdCYmZ2xvYmFsLG89Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixpPW58fG98fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksdT1pLlN5bWJvbCxhPU9iamVjdC5wcm90b3R5cGUsYz1hLmhhc093blByb3BlcnR5LHM9YS50b1N0cmluZyxmPXU/dS50b1N0cmluZ1RhZzp2b2lkIDA7dmFyIGw9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIgcD0iW29iamVjdCBOdWxsXSIsaD0iW29iamVjdCBVbmRlZmluZWRdIix5PXU/dS50b1N0cmluZ1RhZzp2b2lkIDA7ZnVuY3Rpb24gdih0KXtyZXR1cm4gbnVsbD09dD92b2lkIDA9PT10P2g6cDp5JiZ5IGluIE9iamVjdCh0KT9mdW5jdGlvbih0KXt2YXIgcj1jLmNhbGwodCxmKSxlPXRbZl07dHJ5e3RbZl09dm9pZCAwO3ZhciBuPSEwfWNhdGNoKHQpe312YXIgbz1zLmNhbGwodCk7cmV0dXJuIG4mJihyP3RbZl09ZTpkZWxldGUgdFtmXSksb30odCk6ZnVuY3Rpb24odCl7cmV0dXJuIGwuY2FsbCh0KX0odCl9dmFyIF89IltvYmplY3QgU3ltYm9sXSI7ZnVuY3Rpb24gZCh0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR8fGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10JiYib2JqZWN0Ij09dHlwZW9mIHR9KHQpJiZ2KHQpPT1ffXZhciBiPS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLGc9L15cdyokLztmdW5jdGlvbiBqKHQpe3ZhciByPXR5cGVvZiB0O3JldHVybiBudWxsIT10JiYoIm9iamVjdCI9PXJ8fCJmdW5jdGlvbiI9PXIpfXZhciBTPSJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIixPPSJbb2JqZWN0IEZ1bmN0aW9uXSIsbT0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLHc9IltvYmplY3QgUHJveHldIjt2YXIgJCx4PWlbIl9fY29yZS1qc19zaGFyZWRfXyJdLFI9KCQ9L1teLl0rJC8uZXhlYyh4JiZ4LmtleXMmJngua2V5cy5JRV9QUk9UT3x8IiIpKT8iU3ltYm9sKHNyYylfMS4iKyQ6IiI7dmFyIHo9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO3ZhciBBPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLEY9RnVuY3Rpb24ucHJvdG90eXBlLE49T2JqZWN0LnByb3RvdHlwZSxQPUYudG9TdHJpbmcsaz1OLmhhc093blByb3BlcnR5LEU9UmVnRXhwKCJeIitQLmNhbGwoaykucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7ZnVuY3Rpb24gQyh0KXtpZighaih0KXx8KHI9dCxSJiZSIGluIHIpKXJldHVybiExO3ZhciByLGU9ZnVuY3Rpb24odCl7aWYoIWoodCkpcmV0dXJuITE7dmFyIHI9dih0KTtyZXR1cm4gcj09T3x8cj09bXx8cj09U3x8cj09d30odCk/RTpBO3JldHVybiBlLnRlc3QoZnVuY3Rpb24odCl7aWYobnVsbCE9dCl7dHJ5e3JldHVybiB6LmNhbGwodCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gdCsiIn1jYXRjaCh0KXt9fXJldHVybiIifSh0KSl9ZnVuY3Rpb24gSSh0LHIpe3ZhciBlPWZ1bmN0aW9uKHQscil7cmV0dXJuIG51bGw9PXQ/dm9pZCAwOnRbcl19KHQscik7cmV0dXJuIEMoZSk/ZTp2b2lkIDB9dmFyIFQ9SShPYmplY3QsImNyZWF0ZSIpO3ZhciBNPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIHE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBMKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fWZ1bmN0aW9uIFUodCxyKXtmb3IodmFyIGUsbixvPXQubGVuZ3RoO28tLTspaWYoKGU9dFtvXVswXSk9PT0obj1yKXx8ZSE9ZSYmbiE9bilyZXR1cm4gbztyZXR1cm4tMX1MLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189VD9UKG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxMLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5oYXModCkmJmRlbGV0ZSB0aGlzLl9fZGF0YV9fW3RdO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LEwucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fO2lmKFQpe3ZhciBlPXJbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09ZT92b2lkIDA6ZX1yZXR1cm4gTS5jYWxsKHIsdCk/clt0XTp2b2lkIDB9LEwucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fO3JldHVybiBUP3ZvaWQgMCE9PXJbdF06cS5jYWxsKHIsdCl9LEwucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIHRoaXMuc2l6ZSs9dGhpcy5oYXModCk/MDoxLGVbdF09VCYmdm9pZCAwPT09cj8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6cix0aGlzfTt2YXIgRD1BcnJheS5wcm90b3R5cGUuc3BsaWNlO2Z1bmN0aW9uIEcodCl7dmFyIHI9LTEsZT1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK3I8ZTspe3ZhciBuPXRbcl07dGhpcy5zZXQoblswXSxuWzFdKX19Ry5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfSxHLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPVUocix0KTtyZXR1cm4hKGU8MCkmJihlPT1yLmxlbmd0aC0xP3IucG9wKCk6RC5jYWxsKHIsZSwxKSwtLXRoaXMuc2l6ZSwhMCl9LEcucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fLGU9VShyLHQpO3JldHVybiBlPDA/dm9pZCAwOnJbZV1bMV19LEcucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gVSh0aGlzLl9fZGF0YV9fLHQpPi0xfSxHLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fLG49VShlLHQpO3JldHVybiBuPDA/KCsrdGhpcy5zaXplLGUucHVzaChbdCxyXSkpOmVbbl1bMV09cix0aGlzfTt2YXIgVz1JKGksIk1hcCIpO2Z1bmN0aW9uIEIodCxyKXt2YXIgZSxuLG89dC5fX2RhdGFfXztyZXR1cm4oInN0cmluZyI9PShuPXR5cGVvZihlPXIpKXx8Im51bWJlciI9PW58fCJzeW1ib2wiPT1ufHwiYm9vbGVhbiI9PW4/Il9fcHJvdG9fXyIhPT1lOm51bGw9PT1lKT9vWyJzdHJpbmciPT10eXBlb2Ygcj8ic3RyaW5nIjoiaGFzaCJdOm8ubWFwfWZ1bmN0aW9uIEgodCl7dmFyIHI9LTEsZT1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK3I8ZTspe3ZhciBuPXRbcl07dGhpcy5zZXQoblswXSxuWzFdKX19SC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBMLG1hcDpuZXcoV3x8Ryksc3RyaW5nOm5ldyBMfX0sSC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPUIodGhpcyx0KS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZS09cj8xOjAscn0sSC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBCKHRoaXMsdCkuZ2V0KHQpfSxILnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIEIodGhpcyx0KS5oYXModCl9LEgucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3ZhciBlPUIodGhpcyx0KSxuPWUuc2l6ZTtyZXR1cm4gZS5zZXQodCxyKSx0aGlzLnNpemUrPWUuc2l6ZT09bj8wOjEsdGhpc307dmFyIEo9IkV4cGVjdGVkIGEgZnVuY3Rpb24iO2Z1bmN0aW9uIEsodCxyKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdHx8bnVsbCE9ciYmImZ1bmN0aW9uIiE9dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcihKKTt2YXIgZT1mdW5jdGlvbigpe3ZhciBuPWFyZ3VtZW50cyxvPXI/ci5hcHBseSh0aGlzLG4pOm5bMF0saT1lLmNhY2hlO2lmKGkuaGFzKG8pKXJldHVybiBpLmdldChvKTt2YXIgdT10LmFwcGx5KHRoaXMsbik7cmV0dXJuIGUuY2FjaGU9aS5zZXQobyx1KXx8aSx1fTtyZXR1cm4gZS5jYWNoZT1uZXcoSy5DYWNoZXx8SCksZX1LLkNhY2hlPUg7dmFyIFEsVixYLFk9L1teLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/OlwufFxbXF18JCkpL2csWj0vXFwoXFwpPy9nLHR0PShRPWZ1bmN0aW9uKHQpe3ZhciByPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmci5wdXNoKCIiKSx0LnJlcGxhY2UoWSwoZnVuY3Rpb24odCxlLG4sbyl7ci5wdXNoKG4/by5yZXBsYWNlKFosIiQxIik6ZXx8dCl9KSkscn0sVj1LKFEsKGZ1bmN0aW9uKHQpe3JldHVybiA1MDA9PT1YLnNpemUmJlguY2xlYXIoKSx0fSkpLFg9Vi5jYWNoZSxWKSxydD10dDt2YXIgZXQ9MS8wLG50PXU/dS5wcm90b3R5cGU6dm9pZCAwLG90PW50P250LnRvU3RyaW5nOnZvaWQgMDtmdW5jdGlvbiBpdCh0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoZSh0KSlyZXR1cm4gZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgsbz1BcnJheShuKTsrK2U8bjspb1tlXT1yKHRbZV0sZSx0KTtyZXR1cm4gb30odCxpdCkrIiI7aWYoZCh0KSlyZXR1cm4gb3Q/b3QuY2FsbCh0KToiIjt2YXIgcj10KyIiO3JldHVybiIwIj09ciYmMS90PT0tZXQ/Ii0wIjpyfWZ1bmN0aW9uIHV0KHQpe3JldHVybiBudWxsPT10PyIiOml0KHQpfWZ1bmN0aW9uIGF0KHQscil7cmV0dXJuIGUodCk/dDpmdW5jdGlvbih0LHIpe2lmKGUodCkpcmV0dXJuITE7dmFyIG49dHlwZW9mIHQ7cmV0dXJuISgibnVtYmVyIiE9biYmInN5bWJvbCIhPW4mJiJib29sZWFuIiE9biYmbnVsbCE9dCYmIWQodCkpfHxnLnRlc3QodCl8fCFiLnRlc3QodCl8fG51bGwhPXImJnQgaW4gT2JqZWN0KHIpfSh0LHIpP1t0XTpydCh1dCh0KSl9dmFyIGN0PTEvMDtmdW5jdGlvbiBzdCh0KXtpZigic3RyaW5nIj09dHlwZW9mIHR8fGQodCkpcmV0dXJuIHQ7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LWN0PyItMCI6cn1mdW5jdGlvbiBmdCh0LHIsZSl7dmFyIG49bnVsbD09dD92b2lkIDA6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9MCxuPShyPWF0KHIsdCkpLmxlbmd0aDtudWxsIT10JiZlPG47KXQ9dFtzdChyW2UrK10pXTtyZXR1cm4gZSYmZT09bj90OnZvaWQgMH0odCxyKTtyZXR1cm4gdm9pZCAwPT09bj9lOm59ZnVuY3Rpb24gbHQoKXtsZXQgdCxyLGU9bmV3IFByb21pc2UoKGZ1bmN0aW9uKCl7dD1hcmd1bWVudHNbMF0scj1hcmd1bWVudHNbMV19KSk7cmV0dXJuIGUucmVzb2x2ZT10LGUucmVqZWN0PXIsZX1mdW5jdGlvbiBwdCh0KXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIGh0KHQpe2lmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7Zm9yKGxldCByIGluIHQpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24geXQodCl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gdnQodCl7cmV0dXJuIHQhPXR9ZnVuY3Rpb24gX3QodCl7cmV0dXJuISFmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBVbmRlZmluZWRdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCl8fCghIWZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bGxdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCl8fCghIWh0KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4hKCF5dCh0KXx8IiIhPT10KX0odCl8fCghIWZ1bmN0aW9uKHQpe3JldHVybiEhcHQodCkmJjA9PT10Lmxlbmd0aH0odCl8fCEhdnQodCkpKSkpfWZ1bmN0aW9uIGR0KHQpe3JldHVybiEoIXl0KHQpfHwiIj09PXQpfXZhciBidD0vXHMvO3ZhciBndD0vXlxzKy87ZnVuY3Rpb24ganQodCl7cmV0dXJuIHQ/dC5zbGljZSgwLGZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aDtyLS0mJmJ0LnRlc3QodC5jaGFyQXQocikpOyk7cmV0dXJuIHJ9KHQpKzEpLnJlcGxhY2UoZ3QsIiIpOnR9dmFyIFN0PU5hTixPdD0vXlstK10weFswLTlhLWZdKyQvaSxtdD0vXjBiWzAxXSskL2ksd3Q9L14wb1swLTddKyQvaSwkdD1wYXJzZUludDtmdW5jdGlvbiB4dCh0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoZCh0KSlyZXR1cm4gU3Q7aWYoaih0KSl7dmFyIHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQudmFsdWVPZj90LnZhbHVlT2YoKTp0O3Q9aihyKT9yKyIiOnJ9aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiAwPT09dD90Oit0O3Q9anQodCk7dmFyIGU9bXQudGVzdCh0KTtyZXR1cm4gZXx8d3QudGVzdCh0KT8kdCh0LnNsaWNlKDIpLGU/Mjo4KTpPdC50ZXN0KHQpP1N0Oit0fXZhciBSdD0xLzAsenQ9MTc5NzY5MzEzNDg2MjMxNTdlMjkyO2Z1bmN0aW9uIEF0KHQpe3JldHVybiB0Pyh0PXh0KHQpKT09PVJ0fHx0PT09LVJ0Pyh0PDA/LTE6MSkqenQ6dD09dD90OjA6MD09PXQ/dDowfWZ1bmN0aW9uIEZ0KHQpe3ZhciByPUF0KHQpLGU9ciUxO3JldHVybiByPT1yP2U/ci1lOnI6MH1mdW5jdGlvbiBOdCh0KXtsZXQgcj0hMTtpZihkdCh0KSlyPSFpc05hTihOdW1iZXIodCkpO2Vsc2UgaWYoZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgTnVtYmVyXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpKXtpZih2dCh0KSlyZXR1cm4hMTtyPSEwfXJldHVybiByfWZ1bmN0aW9uIFB0KHQpe2lmKCFOdCh0KSlyZXR1cm4gMDtyZXR1cm4gQXQodCl9ZnVuY3Rpb24ga3QodCl7cmV0dXJuISFOdCh0KSYmKHQ9UHQodCksIm51bWJlciI9PXR5cGVvZihyPXQpJiZyPT1GdChyKSk7dmFyIHJ9dmFyIEV0PWkuaXNGaW5pdGUsQ3Q9TWF0aC5taW47dmFyIEl0PWZ1bmN0aW9uKHQpe3ZhciByPU1hdGhbdF07cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYodD14dCh0KSwoZT1udWxsPT1lPzA6Q3QoRnQoZSksMjkyKSkmJkV0KHQpKXt2YXIgbj0odXQodCkrImUiKS5zcGxpdCgiZSIpO3JldHVybisoKG49KHV0KHIoblswXSsiZSIrKCtuWzFdK2UpKSkrImUiKS5zcGxpdCgiZSIpKVswXSsiZSIrKCtuWzFdLWUpKX1yZXR1cm4gcih0KX19KCJyb3VuZCIpLFR0PUl0O2Z1bmN0aW9uIE10KHQpe2lmKCFOdCh0KSlyZXR1cm4gMDt0PVB0KHQpO2xldCByPVR0KHQpO3JldHVybiIwIj09PVN0cmluZyhyKT8wOnJ9ZnVuY3Rpb24gcXQodCl7aWYoIWt0KHQpKXJldHVybiExO3JldHVybiBNdCh0KT49MH1mdW5jdGlvbiBMdCh0LHIpe2lmKCFkdCh0KSlyZXR1cm4iIjtpZighcXQocikpcmV0dXJuIiI7aWYoMD09PShyPU10KHIpKSlyZXR1cm4iIjtsZXQgZT10Lmxlbmd0aC1yO3JldHVybiBlPDAmJihlPTApLHQuc3Vic3RyaW5nKGUsZStyKX1mdW5jdGlvbiBVdCh0LHIpe3JldHVybiBkdCh0KSYmcXQocik/MD09PShyPU10KHIpKT90OmZ1bmN0aW9uKHQscil7cmV0dXJuIGR0KHQpJiZxdChyKT8wPT09KHI9TXQocikpPyIiOnQuc3Vic3RyaW5nKDAscik6IiJ9KHQsdC5sZW5ndGgtcik6IiJ9ZnVuY3Rpb24gRHQodCl7aWYoIWR0KHQpKXJldHVybntwYXRoOiIiLGlzUm9vdDohMX07Zm9yKDt0LmluZGV4T2YoIlxcXFwiKT49MDspdD10LnJlcGxhY2UoIlxcXFwiLCJcXCIpO2Zvcig7dC5pbmRleE9mKCIvLyIpPj0wOyl0PXQucmVwbGFjZSgiLy8iLCIvIik7aWYoIjoiPT09THQodCwxKSlyZXR1cm57cGF0aDpgJHt0fVxcYCxpc1Jvb3Q6ITB9O2lmKCJcXCI9PT1MdCh0LDEpKXtsZXQgcj1VdCh0LDEpO3JldHVybiI6Ij09PUx0KHIsMSk/e3BhdGg6dCxpc1Jvb3Q6ITB9OntwYXRoOnIsaXNSb290OiExfX1pZigiLyI9PT1MdCh0LDEpKXtsZXQgcj1VdCh0LDEpO3JldHVybiAwPT09ci5sZW5ndGg/e3BhdGg6dCxpc1Jvb3Q6ITB9OntwYXRoOnIsaXNSb290OiExfX1yZXR1cm57cGF0aDp0LGlzUm9vdDohMX19ZnVuY3Rpb24gR3QodCl7aWYoIWR0KHQpKXJldHVybiIiO2xldCByPUR0KHQpO2lmKHIuaXNSb290KXJldHVybiByLnBhdGg7bGV0IGU9ZnVuY3Rpb24odCl7aWYoIWR0KHQpKXJldHVybiIiO2xldCByPUR0KHQpO2lmKHIuaXNSb290KXJldHVybiByLnBhdGg7bGV0IGU9ci5wYXRoO3RyeXtlPWUuc3BsaXQoIlxcIikucG9wKCkuc3BsaXQoIi8iKS5wb3AoKX1jYXRjaCh0KXt9cmV0dXJuIGV9KHQ9ci5wYXRoKTtpZighZHQoZSkpcmV0dXJuIHQ7bGV0IG49RHQodD1VdCh0LGUubGVuZ3RoKSk7cmV0dXJuIG4uaXNSb290LG4ucGF0aH1mdW5jdGlvbiBXdCh0LHI9e30pe2xldCBlPWZ0KHIsImZzIik7aWYoIWUuZXhpc3RzU3luYyh0KSlyZXR1cm4hMTtsZXQgbj1lLmxzdGF0U3luYyh0KTtyZXR1cm4hbi5pc0ZpbGUoKSYmIW4uaXNTeW1ib2xpY0xpbmsoKX1mdW5jdGlvbiBCdCh0LHI9e30pe2xldCBlPWZ0KHIsImZzIik7cmV0dXJuISFlLmV4aXN0c1N5bmModCkmJighZS5sc3RhdFN5bmModCkuaXNEaXJlY3RvcnkoKSYmIWUubHN0YXRTeW5jKHQpLmlzU3ltYm9saWNMaW5rKCkpfWZ1bmN0aW9uIEh0KHQscj17fSl7bGV0IGU9ZnQociwiZnMiKTtpZighZS5leGlzdHNTeW5jKHQpKXJldHVybntzdWNjZXNzOiJmaWxlIGRvZXMgbm90IGV4aXN0OiAiK3R9O2lmKCFCdCh0LHtmczplfSkpcmV0dXJue2Vycm9yOiJpbnB1dCBwYXRoIGlzIG5vdCBhIGZpbGU6ICIrdH07dHJ5e2UudW5saW5rU3luYyh0KX1jYXRjaCh0KXtyZXR1cm57ZXJyb3I6dH19cmV0dXJue3N1Y2Nlc3M6ImRvbmU6ICIrdH19YXN5bmMgZnVuY3Rpb24gSnQodCxyLGUsbj17fSl7bGV0IG89IiIsaT1mdChuLCJmcyIpO2lmKCFwdCh1PXIpfHwwPT09dS5sZW5ndGh8fDE9PT11Lmxlbmd0aCYmX3QodVswXSkpdGhyb3cgbmV3IEVycm9yKCJmcHNJbiBpbiBub3QgYW4gZWZmZWN0aXZlIGFycmF5Iik7dmFyIHU7bGV0IGE9R3QoZSk7V3QoYSx7ZnM6aX0pfHxmdW5jdGlvbih0LHI9e30pe2xldCBlPWZ0KHIsImZzIik7aWYoV3QodCx7ZnM6ZX0pKXJldHVybntzdWNjZXNzOiJpbnB1dCBmb2xkZXIgaXMgYWxyZWFkeSBleGlzdHM6ICIrdH07aWYoZS5leGlzdHNTeW5jKHQpKXJldHVybntlcnJvcjoiaW5wdXQgcGF0aCBhbHJlYWR5IGV4aXN0czogIit0fTt0cnl7ZS5ta2RpclN5bmModCx7cmVjdXJzaXZlOiEwfSl9Y2F0Y2godCl7cmV0dXJue2Vycm9yOnR9fX0oYSx7ZnM6aX0pO2xldCBjPWx0KCk7dHJ5e2xldCBuPWkuY3JlYXRlV3JpdGVTdHJlYW0oZSk7Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0Kyspe2xldCBlPXJbdF07aWYoIUJ0KGUse2ZzOml9KSl0aHJvdyBuZXcgRXJyb3IoYGZwSW5bJHtlfV0gaXMgbm90IGEgZmlsZWApO2xldCB1PSgpPT57bGV0IHQ9bHQoKSxyPWkuY3JlYXRlUmVhZFN0cmVhbShlKTtyZXR1cm4gci5vbigiZXJyb3IiLChyPT57bz1yLm1lc3NhZ2UsdC5yZWplY3Qocil9KSksci5vbigiZW5kIiwoKCk9PntIdChlLHtmczppfSksdC5yZXNvbHZlKCl9KSksci5waXBlKG4se2VuZDohMX0pLHR9O2F3YWl0IHUoKX1uLmVuZCgpLG4ub24oImVycm9yIiwodD0+e289dC5tZXNzYWdlLGMucmVqZWN0KG8pfSkpLG4ub24oImZpbmlzaCIsKCgpPT57bGV0IHI9e2ZpbGVuYW1lOnQscGF0aDplfTtjLnJlc29sdmUocil9KSl9Y2F0Y2godCl7bz10Lm1lc3NhZ2UsYy5yZWplY3Qobyl9cmV0dXJuIGN9bGV0IG1lcmdlRmlsZXM9YXN5bmMoZSxuLG8saSk9PntsZXQgdT1bXTtmb3IobGV0IHI9MDtyPG87cisrKXtsZXQgbz10LmpvaW4oZSxgJHtufV8ke3J9YCk7dS5wdXNoKG8pfWxldCBhPXQuam9pbihlLG4pLGM9YXdhaXQgYXN5bmMgZnVuY3Rpb24odCxlLG4pe3JldHVybiBKdCh0LGUsbix7ZnM6cn0pfShpLHUsYSk7cmV0dXJuIGN9OwoKCmxldCBpbnN0YW5jZSA9IG51bGwKZnVuY3Rpb24gaW5pdChpbnB1dCl7CgogICAgLy9pbml0CiAgICBsZXQgcgogICAgCiAgICAgICAgciA9IHsKICAgICAgICAgICAgbWFpbjogbWVyZ2VGaWxlcwogICAgICAgIH0KICAgICAgICAKCiAgICAvL29uCiAgICAKCiAgICAvL3NhdmUKICAgIGluc3RhbmNlID0gcgoKfQoKZnVuY3Rpb24gc2VuZE1lc3NhZ2UoZGF0YSkgewogICAgCiAgICAgICAgc2VsZi5wb3N0TWVzc2FnZShkYXRhKQogICAgICAgIAp9Cgphc3luYyBmdW5jdGlvbiBydW4oZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciBydW4nLGRhdGEpCgogICAgLy9tb2RlCiAgICBsZXQgbW9kZSA9IGRhdGEubW9kZQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgIT09ICdpbml0JyAmJiBtb2RlICE9PSAnY2FsbCcpewogICAgICAgIHJldHVybgogICAgfQoKICAgIC8vaW5pdAogICAgaWYobW9kZSA9PT0gJ2luaXQnKXsKICAgICAgICAKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL3R5cGUKICAgICAgICAgICAgbGV0IHR5cGUgPSBkYXRhLnR5cGUKCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAogICAgCiAgICAgICAgICAgIC8vaW5zdGFuY2UKICAgICAgICAgICAgaWYodHlwZSA9PT0gJ2Z1bmN0aW9uJyl7CiAgICAgICAgICAgICAgICBpbml0KC4uLmlucHV0KQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYodHlwZSA9PT0gJ29iamVjdCcpewogICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBtZXJnZUZpbGVzCiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgCiAgICAgICAgICAgIC8vc2VuZE1lc3NhZ2UKICAgICAgICAgICAgbGV0IHJlcyA9IHsKICAgICAgICAgICAgICAgIG1vZGU6ICdlbWl0JywKICAgICAgICAgICAgICAgIGV2TmFtZTogJ2Vycm9yJywKICAgICAgICAgICAgICAgIG1zZzogZXJyLAogICAgICAgICAgICB9CiAgICAgICAgICAgIHNlbmRNZXNzYWdlKHJlcykKCiAgICAgICAgfQogICAgICAgICAgICAKICAgIH0KCiAgICAvL2NoZWNrCiAgICBpZihtb2RlID09PSAnY2FsbCcpewogICAgICAgIGxldCBzdGF0ZSA9ICcnCiAgICAgICAgbGV0IG1zZyA9IG51bGwKCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy9mdW4KICAgICAgICAgICAgbGV0IGZ1biA9IGluc3RhbmNlW2RhdGEuZnVuXQoKICAgICAgICAgICAgLy9pbnB1dAogICAgICAgICAgICBsZXQgaW5wdXQgPSBkYXRhLmlucHV0CgogICAgICAgICAgICAvL2V4ZWMKICAgICAgICAgICAgYXdhaXQgZnVuKC4uLmlucHV0KQogICAgICAgICAgICAgICAgLnRoZW4oKHN1YykgPT4gewogICAgICAgICAgICAgICAgICAgIHN0YXRlPSdzdWNjZXNzJwogICAgICAgICAgICAgICAgICAgIG1zZz1zdWMKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4gewogICAgICAgICAgICAgICAgICAgIHN0YXRlPSdlcnJvcicKICAgICAgICAgICAgICAgICAgICBtc2c9ZXJyCiAgICAgICAgICAgICAgICB9KQoKICAgICAgICB9CiAgICAgICAgY2F0Y2goZXJyKXsKICAgICAgICAgICAgc3RhdGUgPSAnZXJyb3InCiAgICAgICAgICAgIG1zZyA9IGVycgogICAgICAgIH0KICAgICAgICAKICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgbGV0IHJlcyA9IHsKICAgICAgICAgICAgbW9kZTogJ3JldHVybicsCiAgICAgICAgICAgIGlkOiBkYXRhLmlkLAogICAgICAgICAgICBmdW46IGRhdGEuZnVuLAogICAgICAgICAgICBzdGF0ZSwKICAgICAgICAgICAgbXNnLAogICAgICAgIH0KICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgfQoKfQoKZnVuY3Rpb24gcmVjdk1lc3NhZ2UoZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciByZWN2OicsIGRhdGEpCgogICAgLy9kYXRhUmVjdgogICAgbGV0IGRhdGFSZWN2ID0gZGF0YQoKICAgIC8vcnVuCiAgICBydW4oZGF0YVJlY3YpCgp9CgoKICAgICAgICBzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHJlY3ZNZXNzYWdlKGUuZGF0YSkKICAgICAgICB9CiAgICAgICAgCgp0cnl7CiAgICBwcm9jZXNzLm9uKCd1bmhhbmRsZWRSZWplY3Rpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuaGFuZGxlZFJlamVjdGlvbicsIGVycikKICAgIH0pCiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmNhdWdodEV4Y2VwdGlvbk1vbml0b3InLCBlcnIpCiAgICB9KQp9CmNhdGNoKGVycil7fQoK");function e(){let e=new b,n=function(t){try{let e=new Blob([t]),n=window.URL||window.webkitURL;return new Worker(n.createObjectURL(e))}catch(t){i(t)}}(t);if(!n)return i("invalid worker"),null;function r(){let t=function(){let t,e,n=new Promise((function(){t=arguments[0],e=arguments[1]}));return n.resolve=t,n.reject=e,n}(),r=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,e=[],n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=n.length;for(let i=0;i<t;i++)e[i]=n[0|Math.random()*r];return e.join("")}(),i={mode:"call",id:r,fun:"main",input:[...arguments]};return n.postMessage(i),e.once(r,(e=>{"success"===e.state?t.resolve(e.msg):t.reject(e.msg)})),t}function i(t){e.emit("error",t)}return n.onmessage=function(t){!function(t){let n=t,r=n.mode;"emit"!==r&&"return"!==r||("emit"===r&&e.emit(n.evName,n.msg),"return"===r&&e.emit(n.id,n))}(t.data)},n.onerror=i,n.onmessageerror=function(t){i(t.data)},function(){let t={mode:"init",type:"function",input:[...arguments]};n.postMessage(t)}([...arguments]),e.main=r,e.main=r,e.terminate=function(){n?(n.terminate(),n=void 0):i("worker has been terminated")},e}h=async function(){let t=[...arguments],n=e();return await n.main(...t).finally((()=>{n.terminate()}))}}();try{process.on("unhandledRejection",(t=>{console.log("outer:unhandledRejection",t)})),process.on("uncaughtException",(t=>{console.log("outer:uncaughtException",t)})),process.on("uncaughtExceptionMonitor",(t=>{console.log("outer:uncaughtExceptionMonitor",t)}))}catch(t){}return h}()}({get exports(){return r},set exports(t){r=t}});var i=r;let o;return o="undefined"!=typeof window&&void 0!==window.document?i:n,o}(c)}({get exports(){return Sn},set exports(t){Sn=t}});var Jn=Sn;return function(){let o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=yt(o,"port");var l;Ft(l=c)&&Dt(l)>0||(c=8080);let d=yt(o,"useInert");ne(d)||(d=!0);let u=yt(o,"pathStaticFiles");Wt(u)||(u="dist");let a=yt(o,"apiName");Wt(a)||(a="api");let s=yt(o,"pathUploadTemp");Wt(s)||(s="./uploadTemp"),Kn(s,{fs:e})||Gn(s);let I=yt(o,"tokenType");Wt(I)||(I="Bearer");let p=yt(o,"verifyConn");(function(t){let e=Object.prototype.toString.call(t);return"[object Function]"===e||"[object AsyncFunction]"===e})(p)||(p=()=>!0);let g=yt(o,"corsOrigins",[]);te(g)||(g=["*"]);let C=yt(o,"delayForBasic","");Et(C)||(C=0),C=Dt(C);let m=yt(o,"delayForSlice","");Et(m)||(m=100),m=Dt(m);let y=null;y=yt(o,"serverHapi")?o.serverHapi:r.server({port:c,routes:{timeout:{server:!1,socket:!1},cors:{origin:g,credentials:!1}}});let b=new At,h=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];setTimeout((()=>{b.emit(t,...n)}),1)};async function f(t){let e=ft(),n=ft();return n.then((t=>{e.resolve(t)})).catch((t=>{e.reject(t)})),h("download",t,n),e}function X(t,e){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=new n.Readable;i._read=()=>{},i.push(e),i.push(null);let o=yt(r,"returnType",""),c=yt(r,"returnMsg",""),l=t.response(i).header("Cache-Control","no-cache, no-store, must-revalidate").header("Content-Type","application/octet-stream").header("Content-Length",i.readableLength);return Wt(o)&&l.header("Return-Type",o),Wt(c)&&l.header("Return-Msg",c),l}function Z(t,e){return Wt(e)||(console.log("msg",e),console.log("msg is not an effective string, set msg=''"),e=""),X(t,yn({error:e}),{returnType:"error",returnMsg:e})}let A={path:`/${a}`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,output:"stream",parse:!1},timeout:{server:!1,socket:!1}},handler:async function(t,e){let r=yt(t,"headers");r=Gt(r)?r:"";let i=yt(t,"query");i=Gt(i)?i:"";let o=yt(r,"authorization","");o=Wt(o)?o:"";{let t=p({apiType:"main",authorization:o,headers:r,query:i});if(re(t)&&(t=await t),!0!==t)return Z(e,"permission denied")}h("handler",{api:"apiMain",headers:r,query:i});let c=await(()=>{let e=ft(),r=[],i=new n.Writable({write(t,e,n){r.push(t),setTimeout((()=>{n()}),C)}});return t.payload.pipe(i),t.payload.on("end",(()=>{let t=Buffer.concat(r);r=[],e.resolve(t)})),t.payload.on("error",(t=>{h("error","receive payload err"),e.reject(t.message)})),e})(),l=Zn(new Uint8Array(c)),d={},u="",a="";return await async function(t){let e=ft(),n=ft();n.then((n=>{t.output=n,delete t.input,e.resolve(t)})).catch((t=>{e.reject(t)}));{let e=yt(t,"func",""),r=yt(t,"input",null);h("execute",e,r,n)}return e}(l).then((t=>{d.success=t,u="success",a="need to parse"})).catch((t=>{d.error=t,u="error",a="need to parse"})),X(e,yn(d),{returnType:u,returnMsg:a})}},K={path:`/${a}ulckh`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(e,n){let r=yt(e,"headers");r=Gt(r)?r:"";let i=yt(e,"query");i=Gt(i)?i:"";let o=yt(r,"authorization","");o=Wt(o)?o:"";{let t=p({apiType:"upload-check-slice-hash",authorization:o,headers:r,query:i});if(re(t)&&(t=await t),!0!==t)return Z(n,"permission denied")}h("handler",{api:"apiUploadCheckHash",headers:r,query:i});let c=yt(e,"payload.filename",""),l=yt(e,"payload.fileHash","");if(!Wt(c))return Z(n,"invalid filename in payload");if(!Wt(l))return Z(n,"invalid fileHash in payload");let d=t.join(s,c);if(!An(d)){return X(n,yn({success:{existed:!1,msg:"not exist"}}),{returnType:"success",returnMsg:"need to parse"})}if(l!==await xn(d,{useSync:!1,type:"sha256"})){return X(n,yn({success:{existed:!1,msg:"not equal"}}),{returnType:"success",returnMsg:"need to parse"})}return X(n,yn({success:{existed:!0,msg:"equal",path:d}}),{returnType:"success",returnMsg:"need to parse"})}},G={path:`/${a}slc`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,output:"stream",parse:!1},timeout:{server:!1,socket:!1}},handler:async function(n,r){let i=yt(n,"headers");i=Gt(i)?i:"";let o=yt(n,"query");o=Gt(o)?o:"";let c=yt(i,"authorization","");c=Wt(c)?c:"";{let t=p({apiType:"upload-slice",authorization:c,headers:i,query:o});if(re(t)&&(t=await t),!0!==t)return Z(r,"permission denied")}h("handler",{api:"apiUploadSlice",headers:i,query:o});let l=yt(i,"chunk-index",""),d=yt(i,"chunk-total",""),u=yt(i,"package-id","");if(!Et(l))return console.log("invalid chunkIndex in headers"),r.response({error:"invalid chunkIndex in headers"}).code(400);if(l=Dt(l),!Et(d))return console.log("invalid chunkTotal in headers"),r.response({error:"invalid chunkTotal in headers"}).code(400);if(d=Dt(d),!Wt(u))return console.log("invalid packageId in headers"),r.response({error:"invalid packageId in headers"}).code(400);let a=t.join(s,`${u}_${l}`),I=e.createWriteStream(a),g={},C="",y="";return await(()=>{let t=ft();return n.payload.pipe(I),n.payload.on("end",(()=>{setTimeout((()=>{t.resolve(`chunk[${l}/${d}] of packageId[${u}] done`)}),m)})),n.payload.on("error",(e=>{h("error",`receive chunk[${l}/${d}] of packageId[${u}] err`),t.reject(`apiUploadSlice receive error: ${e.message}`)})),t})().then((t=>{g.success=t,C="success",y="need to parse"})).catch((t=>{g.error=t,C="error",y="need to parse",h("error",t)})),X(r,yn(g),{returnType:C,returnMsg:y})}},v={path:`/${a}slcm`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(t,e){let n=yt(t,"headers");n=Gt(n)?n:"";let r=yt(t,"query");r=Gt(r)?r:"";let i=yt(n,"authorization","");i=Wt(i)?i:"";{let t=p({apiType:"upload-slice-merge",authorization:i,headers:n,query:r});if(re(t)&&(t=await t),!0!==t)return Z(e,"permission denied")}h("handler",{api:"apiUploadSliceMerge",headers:n,query:r});let o=yt(t,"payload.filename",""),c=yt(t,"payload.chunk-total",""),l=yt(t,"payload.package-id","");if(!Wt(o))return console.log("invalid filename in payload"),e.response({error:"invalid filename in payload"}).code(400);if(!Et(c))return console.log("invalid chunkTotal in payload"),e.response({error:"invalid chunkTotal in payload"}).code(400);if(c=Dt(c),!Wt(l))return console.log("invalid packageId in payload"),e.response({error:"invalid packageId in payload"}).code(400);let d={},u="",a="";return await(async()=>{let t=await Jn(s,l,c,o);return await async function(t){let e=ft(),n=ft();return n.then((t=>{e.resolve(t)})).catch((t=>{e.reject(t)})),h("upload",t,n),e}(t)})().then((t=>{d.success=t,u="success",a="need to parse"})).catch((t=>{d.error=t,u="error",a="need to parse",h("error",`${t.message}`)})),X(e,yn(d),{returnType:u,returnMsg:a})}},W={path:`/${a}dwgfn`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(t,e){let n=yt(t,"headers");n=Gt(n)?n:"";let r=yt(t,"query");r=Gt(r)?r:"";let i=yt(n,"authorization","");i=Wt(i)?i:"";{let t=p({apiType:"download-get-filename",authorization:i,headers:n,query:r});if(re(t)&&(t=await t),!0!==t)return Z(e,"permission denied")}h("handler",{api:"apiDownloadGetFilename",headers:n,query:r});let o=yt(t,"payload.fileId","");if(!Wt(o))return Z(e,"invalid fileId in payload");let c={fileId:o},l={},d="",u="";await f(c).then((t=>{l.success=t,d="success",u="need to parse"})).catch((t=>{l.error=t,d="error",u="need to parse"}));let a=yt(l,"success"),s=yt(a,"streamRead");try{s.destroy()}catch(t){}let I=yt(a,"filename");return Wt(I)?(l={success:{filename:I}},X(e,yn(l),{returnType:d,returnMsg:u})):Z(e,"invalid filename")}},H={path:`/${a}dwgf`,method:"GET",options:{timeout:{server:!1,socket:!1}},handler:async function(t,e){let n=yt(t,"headers");n=Gt(n)?n:"";let r=yt(t,"query");r=Gt(r)?r:"";let i=yt(r,"token","");i=Wt(i)?i:"";let o="";Wt(i)&&(o=`${I} ${i}`);{let t=p({apiType:"download-get-file",authorization:o,headers:n,query:r});if(re(t)&&(t=await t),!0!==t)return Z(e,"permission denied")}h("handler",{api:"apiDownloadGetFilename",headers:n,query:r});let c=yt(r,"fileId","");if(c=Wt(c)?c:"",!Wt(c))return Z(e,"invalid fileId in query");let l={fileId:c},d={};if(await f(l).then((t=>{d.success=t})).catch((t=>{d.error=t})),ge(d,"error"))return Z(e,"can not get file from fileId");let u=yt(d,"success"),a=yt(u,"streamRead"),s=yt(u,"fileSize");if(!ht(s)){try{a.destroy()}catch(t){}return Z(e,"invalid fileSize")}let g=yt(u,"fileType");if(!Wt(g)){try{a.destroy()}catch(t){}return Z(e,"invalid fileType")}return g=ie(g),e.response(a).type(g).header("Content-Length",s)}},V={path:`/${a}dw`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(t,e){let n=yt(t,"headers");n=Gt(n)?n:"";let r=yt(t,"query");r=Gt(r)?r:"";let i=yt(n,"authorization","");i=Wt(i)?i:"";{let t=p({apiType:"download",authorization:i,headers:n,query:r});if(re(t)&&(t=await t),!0!==t)return Z(e,"permission denied")}h("handler",{api:"apiDownload",headers:n,query:r});let o=yt(t,"payload.fileId","");if(!Wt(o))return Z(e,"invalid fileId in payload");let c={fileId:o},l={};if(await f(c).then((t=>{l.success=t})).catch((t=>{l.error=t})),ge(l,"error"))return Z(e,"can not get file from fileId");let d=yt(l,"success"),u=yt(d,"streamRead"),a=yt(d,"filename");if(!Wt(a)){try{u.destroy()}catch(t){}return Z(e,"invalid filename")}a=pe(a);let s=yt(d,"fileSize");if(!ht(s)){try{u.destroy()}catch(t){}return Z(e,"invalid fileSize")}let I=yt(d,"fileType");if(!Wt(I)){try{u.destroy()}catch(t){}return Z(e,"invalid fileType")}return I=ie(I),e.response(u).type(I).header("Content-Disposition",`attachment; filename="${a}"`).header("Content-Length",s)}};return yt(o,"serverHapi")?y.route([A,K,G,v,W,H,V]):async function(){d&&await y.register(i);let t=[];if(d){let e={method:"GET",path:"/{file*}",handler:{directory:{path:`${u}/`}}};t=[...t,e]}t=[...t,A,K,G,v,W,H,V],y.route(t),await y.start(),console.log(`Server running at: ${y.info.uri}`)}(),b.stop=()=>{y.stop()},b}}));
|
|
6
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("path"),require("fs"),require("stream"),require("@hapi/hapi"),require("@hapi/inert"),require("crypto"),require("worker_threads")):"function"==typeof define&&define.amd?define(["path","fs","stream","@hapi/hapi","@hapi/inert","crypto","worker_threads"],e):(t="undefined"!=typeof globalThis?globalThis:t||self)["w-converhp-server"]=e(t.path,t.fs,t.stream,t["@hapi/hapi"],t["@hapi/inert"],t.crypto,t.require$$0)}(this,(function(t,e,n,r,i,o,c){"use strict";var l=Array.isArray,d="object"==typeof global&&global&&global.Object===Object&&global,u="object"==typeof self&&self&&self.Object===Object&&self,a=d||u||Function("return this")(),s=a.Symbol,I=Object.prototype,p=I.hasOwnProperty,g=I.toString,C=s?s.toStringTag:void 0;var y=Object.prototype.toString;var m="[object Null]",b="[object Undefined]",h=s?s.toStringTag:void 0;function f(t){return null==t?void 0===t?b:m:h&&h in Object(t)?function(t){var e=p.call(t,C),n=t[C];try{t[C]=void 0;var r=!0}catch(t){}var i=g.call(t);return r&&(e?t[C]=n:delete t[C]),i}(t):function(t){return y.call(t)}(t)}function X(t){return null!=t&&"object"==typeof t}var Z="[object Symbol]";function A(t){return"symbol"==typeof t||X(t)&&f(t)==Z}var K=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,G=/^\w*$/;function v(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}var W="[object AsyncFunction]",V="[object Function]",H="[object GeneratorFunction]",Y="[object Proxy]";function x(t){if(!v(t))return!1;var e=f(t);return e==V||e==H||e==W||e==Y}var S,J=a["__core-js_shared__"],w=(S=/[^.]+$/.exec(J&&J.keys&&J.keys.IE_PROTO||""))?"Symbol(src)_1."+S:"";var R=Function.prototype.toString;var j=/^\[object .+?Constructor\]$/,P=Function.prototype,Q=Object.prototype,L=P.toString,B=Q.hasOwnProperty,T=RegExp("^"+L.call(B).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function N(t){return!(!v(t)||(e=t,w&&w in e))&&(x(t)?T:j).test(function(t){if(null!=t){try{return R.call(t)}catch(t){}try{return t+""}catch(t){}}return""}(t));var e}function k(t,e){var n=function(t,e){return null==t?void 0:t[e]}(t,e);return N(n)?n:void 0}var F=k(Object,"create");var U=Object.prototype.hasOwnProperty;var O=Object.prototype.hasOwnProperty;function z(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function M(t,e){for(var n,r,i=t.length;i--;)if((n=t[i][0])===(r=e)||n!=n&&r!=r)return i;return-1}z.prototype.clear=function(){this.__data__=F?F(null):{},this.size=0},z.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},z.prototype.get=function(t){var e=this.__data__;if(F){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return U.call(e,t)?e[t]:void 0},z.prototype.has=function(t){var e=this.__data__;return F?void 0!==e[t]:O.call(e,t)},z.prototype.set=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=F&&void 0===e?"__lodash_hash_undefined__":e,this};var D=Array.prototype.splice;function E(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}E.prototype.clear=function(){this.__data__=[],this.size=0},E.prototype.delete=function(t){var e=this.__data__,n=M(e,t);return!(n<0)&&(n==e.length-1?e.pop():D.call(e,n,1),--this.size,!0)},E.prototype.get=function(t){var e=this.__data__,n=M(e,t);return n<0?void 0:e[n][1]},E.prototype.has=function(t){return M(this.__data__,t)>-1},E.prototype.set=function(t,e){var n=this.__data__,r=M(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this};var _=k(a,"Map");function q(t,e){var n,r,i=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof e?"string":"hash"]:i.map}function $(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}$.prototype.clear=function(){this.size=0,this.__data__={hash:new z,map:new(_||E),string:new z}},$.prototype.delete=function(t){var e=q(this,t).delete(t);return this.size-=e?1:0,e},$.prototype.get=function(t){return q(this,t).get(t)},$.prototype.has=function(t){return q(this,t).has(t)},$.prototype.set=function(t,e){var n=q(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this};var tt="Expected a function";function et(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(tt);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var c=t.apply(this,r);return n.cache=o.set(i,c)||o,c};return n.cache=new(et.Cache||$),n}et.Cache=$;var nt,rt,it,ot=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ct=/\\(\\)?/g,lt=(nt=function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(ot,(function(t,n,r,i){e.push(r?i.replace(ct,"$1"):n||t)})),e},rt=et(nt,(function(t){return 500===it.size&&it.clear(),t})),it=rt.cache,rt),dt=lt;var ut=1/0,at=s?s.prototype:void 0,st=at?at.toString:void 0;function It(t){if("string"==typeof t)return t;if(l(t))return function(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}(t,It)+"";if(A(t))return st?st.call(t):"";var e=t+"";return"0"==e&&1/t==-ut?"-0":e}function pt(t){return null==t?"":It(t)}function gt(t,e){return l(t)?t:function(t,e){if(l(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!A(t))||G.test(t)||!K.test(t)||null!=e&&t in Object(e)}(t,e)?[t]:dt(pt(t))}var Ct=1/0;function yt(t){if("string"==typeof t||A(t))return t;var e=t+"";return"0"==e&&1/t==-Ct?"-0":e}function mt(t,e,n){var r=null==t?void 0:function(t,e){for(var n=0,r=(e=gt(e,t)).length;null!=t&&n<r;)t=t[yt(e[n++])];return n&&n==r?t:void 0}(t,e);return void 0===r?n:r}var bt="[object Number]";function ht(t){return"number"==typeof t||X(t)&&f(t)==bt}function ft(){let t,e,n=new Promise((function(){t=arguments[0],e=arguments[1]}));return n.resolve=t,n.reject=e,n}var Xt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Zt={};!function(t){var e=Object.prototype.hasOwnProperty,n="~";function r(){}function i(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(t,e,r,o,c){if("function"!=typeof r)throw new TypeError("The listener must be a function");var l=new i(r,o||t,c),d=n?n+e:e;return t._events[d]?t._events[d].fn?t._events[d]=[t._events[d],l]:t._events[d].push(l):(t._events[d]=l,t._eventsCount++),t}function c(t,e){0==--t._eventsCount?t._events=new r:delete t._events[e]}function l(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),l.prototype.eventNames=function(){var t,r,i=[];if(0===this._eventsCount)return i;for(r in t=this._events)e.call(t,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(t)):i},l.prototype.listeners=function(t){var e=n?n+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,o=r.length,c=new Array(o);i<o;i++)c[i]=r[i].fn;return c},l.prototype.listenerCount=function(t){var e=n?n+t:t,r=this._events[e];return r?r.fn?1:r.length:0},l.prototype.emit=function(t,e,r,i,o,c){var l=n?n+t:t;if(!this._events[l])return!1;var d,u,a=this._events[l],s=arguments.length;if(a.fn){switch(a.once&&this.removeListener(t,a.fn,void 0,!0),s){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,e),!0;case 3:return a.fn.call(a.context,e,r),!0;case 4:return a.fn.call(a.context,e,r,i),!0;case 5:return a.fn.call(a.context,e,r,i,o),!0;case 6:return a.fn.call(a.context,e,r,i,o,c),!0}for(u=1,d=new Array(s-1);u<s;u++)d[u-1]=arguments[u];a.fn.apply(a.context,d)}else{var I,p=a.length;for(u=0;u<p;u++)switch(a[u].once&&this.removeListener(t,a[u].fn,void 0,!0),s){case 1:a[u].fn.call(a[u].context);break;case 2:a[u].fn.call(a[u].context,e);break;case 3:a[u].fn.call(a[u].context,e,r);break;case 4:a[u].fn.call(a[u].context,e,r,i);break;default:if(!d)for(I=1,d=new Array(s-1);I<s;I++)d[I-1]=arguments[I];a[u].fn.apply(a[u].context,d)}}return!0},l.prototype.on=function(t,e,n){return o(this,t,e,n,!1)},l.prototype.once=function(t,e,n){return o(this,t,e,n,!0)},l.prototype.removeListener=function(t,e,r,i){var o=n?n+t:t;if(!this._events[o])return this;if(!e)return c(this,o),this;var l=this._events[o];if(l.fn)l.fn!==e||i&&!l.once||r&&l.context!==r||c(this,o);else{for(var d=0,u=[],a=l.length;d<a;d++)(l[d].fn!==e||i&&!l[d].once||r&&l[d].context!==r)&&u.push(l[d]);u.length?this._events[o]=1===u.length?u[0]:u:c(this,o)}return this},l.prototype.removeAllListeners=function(t){var e;return t?(e=n?n+t:t,this._events[e]&&c(this,e)):(this._events=new r,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=n,l.EventEmitter=l,t.exports=l}({get exports(){return Zt},set exports(t){Zt=t}});var At=Zt;function Kt(t){return"[object Object]"===Object.prototype.toString.call(t)}function Gt(t){if(Kt(t)){for(let e in t)return!0;return!1}return!1}function vt(t){return"[object String]"===Object.prototype.toString.call(t)}function Wt(t){return!(!vt(t)||""===t)}var Vt=/\s/;var Ht=/^\s+/;function Yt(t){return t?t.slice(0,function(t){for(var e=t.length;e--&&Vt.test(t.charAt(e)););return e}(t)+1).replace(Ht,""):t}var xt=NaN,St=/^[-+]0x[0-9a-f]+$/i,Jt=/^0b[01]+$/i,wt=/^0o[0-7]+$/i,Rt=parseInt;function jt(t){if("number"==typeof t)return t;if(A(t))return xt;if(v(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=v(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Yt(t);var n=Jt.test(t);return n||wt.test(t)?Rt(t.slice(2),n?2:8):St.test(t)?xt:+t}var Pt=1/0,Qt=17976931348623157e292;function Lt(t){return t?(t=jt(t))===Pt||t===-Pt?(t<0?-1:1)*Qt:t==t?t:0:0===t?t:0}function Bt(t){var e=Lt(t),n=e%1;return e==e?n?e-n:e:0}function Tt(t){return t!=t}function Nt(t){let e=!1;if(Wt(t))e=!isNaN(Number(t));else if(function(t){return"[object Number]"===Object.prototype.toString.call(t)}(t)){if(Tt(t))return!1;e=!0}return e}function kt(t){if(!Nt(t))return 0;return Lt(t)}function Ft(t){return!!Nt(t)&&(t=kt(t),"number"==typeof(e=t)&&e==Bt(e));var e}var Ut=a.isFinite,Ot=Math.min;var zt=function(t){var e=Math[t];return function(t,n){if(t=jt(t),(n=null==n?0:Ot(Bt(n),292))&&Ut(t)){var r=(pt(t)+"e").split("e");return+((r=(pt(e(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return e(t)}}("round"),Mt=zt;function Dt(t){if(!Nt(t))return 0;t=kt(t);let e=Mt(t);return"0"===String(e)?0:e}function Et(t){if(!Ft(t))return!1;return Dt(t)>=0}function _t(t){return"[object Array]"===Object.prototype.toString.call(t)}function qt(t){if(Kt(t)){for(let e in t)return!1;return!0}return!1}function $t(t){return!!function(t){return"[object Undefined]"===Object.prototype.toString.call(t)}(t)||(!!function(t){return"[object Null]"===Object.prototype.toString.call(t)}(t)||(!!qt(t)||(!!function(t){return!(!vt(t)||""!==t)}(t)||(!!function(t){return!!_t(t)&&0===t.length}(t)||!!Tt(t)))))}function te(t){return!!_t(t)&&(0!==t.length&&(1!==t.length||!$t(t[0])))}var ee="[object Boolean]";function ne(t){return!0===(e=t)||!1===e||X(e)&&f(e)==ee;var e}function re(t){let e,n=Object.prototype.toString.call(t);if(e="[object Promise]"===n,e)return!0;if("[object Function]"!==n)return!1;try{e="function"!=typeof t.subscribe&&"function"==typeof t.then}catch(t){}return e}function ie(t){if(!Wt(t)&&!Nt(t)&&!A(t))return"";let e="";try{e=String(t)}catch(t){}try{e=t.toString()}catch(t){}return e}var oe={};var ce,le={},de={get exports(){return le},set exports(t){le=t}};function ue(){return ce||(ce=1,function(t,e){var n;t.exports=(n=n||function(t,e){var n;if("undefined"!=typeof window&&window.crypto&&(n=window.crypto),"undefined"!=typeof self&&self.crypto&&(n=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(n=globalThis.crypto),!n&&"undefined"!=typeof window&&window.msCrypto&&(n=window.msCrypto),!n&&void 0!==Xt&&Xt.crypto&&(n=Xt.crypto),!n)try{n=require("crypto")}catch(t){}var r=function(){if(n){if("function"==typeof n.getRandomValues)try{return n.getRandomValues(new Uint32Array(1))[0]}catch(t){}if("function"==typeof n.randomBytes)try{return n.randomBytes(4).readInt32LE()}catch(t){}}throw new Error("Native crypto module could not be used to get secure random number.")},i=Object.create||function(){function t(){}return function(e){var n;return t.prototype=e,n=new t,t.prototype=null,n}}(),o={},c=o.lib={},l=c.Base={extend:function(t){var e=i(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},d=c.WordArray=l.extend({init:function(t,n){t=this.words=t||[],this.sigBytes=n!=e?n:4*t.length},toString:function(t){return(t||a).stringify(this)},concat:function(t){var e=this.words,n=t.words,r=this.sigBytes,i=t.sigBytes;if(this.clamp(),r%4)for(var o=0;o<i;o++){var c=n[o>>>2]>>>24-o%4*8&255;e[r+o>>>2]|=c<<24-(r+o)%4*8}else for(var l=0;l<i;l+=4)e[r+l>>>2]=n[l>>>2];return this.sigBytes+=i,this},clamp:function(){var e=this.words,n=this.sigBytes;e[n>>>2]&=4294967295<<32-n%4*8,e.length=t.ceil(n/4)},clone:function(){var t=l.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],n=0;n<t;n+=4)e.push(r());return new d.init(e,t)}}),u=o.enc={},a=u.Hex={stringify:function(t){for(var e=t.words,n=t.sigBytes,r=[],i=0;i<n;i++){var o=e[i>>>2]>>>24-i%4*8&255;r.push((o>>>4).toString(16)),r.push((15&o).toString(16))}return r.join("")},parse:function(t){for(var e=t.length,n=[],r=0;r<e;r+=2)n[r>>>3]|=parseInt(t.substr(r,2),16)<<24-r%8*4;return new d.init(n,e/2)}},s=u.Latin1={stringify:function(t){for(var e=t.words,n=t.sigBytes,r=[],i=0;i<n;i++){var o=e[i>>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(o))}return r.join("")},parse:function(t){for(var e=t.length,n=[],r=0;r<e;r++)n[r>>>2]|=(255&t.charCodeAt(r))<<24-r%4*8;return new d.init(n,e)}},I=u.Utf8={stringify:function(t){try{return decodeURIComponent(escape(s.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return s.parse(unescape(encodeURIComponent(t)))}},p=c.BufferedBlockAlgorithm=l.extend({reset:function(){this._data=new d.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=I.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var n,r=this._data,i=r.words,o=r.sigBytes,c=this.blockSize,l=o/(4*c),u=(l=e?t.ceil(l):t.max((0|l)-this._minBufferSize,0))*c,a=t.min(4*u,o);if(u){for(var s=0;s<u;s+=c)this._doProcessBlock(i,s);n=i.splice(0,u),r.sigBytes-=a}return new d.init(n,a)},clone:function(){var t=l.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0});c.Hasher=p.extend({cfg:l.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset()},reset:function(){p.reset.call(this),this._doReset()},update:function(t){return this._append(t),this._process(),this},finalize:function(t){return t&&this._append(t),this._doFinalize()},blockSize:16,_createHelper:function(t){return function(e,n){return new t.init(n).finalize(e)}},_createHmacHelper:function(t){return function(e,n){return new g.HMAC.init(t,n).finalize(e)}}});var g=o.algo={};return o}(Math),n)}(de)),le}!function(t,e){t.exports=ue().enc.Utf8}({get exports(){return oe},set exports(t){oe=t}});var ae=oe,se={};!function(t,e){var n;t.exports=(n=ue(),function(){var t=n,e=t.lib.WordArray;function r(t,n,r){for(var i=[],o=0,c=0;c<n;c++)if(c%4){var l=r[t.charCodeAt(c-1)]<<c%4*2|r[t.charCodeAt(c)]>>>6-c%4*2;i[o>>>2]|=l<<24-o%4*8,o++}return e.create(i,o)}t.enc.Base64={stringify:function(t){var e=t.words,n=t.sigBytes,r=this._map;t.clamp();for(var i=[],o=0;o<n;o+=3)for(var c=(e[o>>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,l=0;l<4&&o+.75*l<n;l++)i.push(r.charAt(c>>>6*(3-l)&63));var d=r.charAt(64);if(d)for(;i.length%4;)i.push(d);return i.join("")},parse:function(t){var e=t.length,n=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var o=0;o<n.length;o++)i[n.charCodeAt(o)]=o}var c=n.charAt(64);if(c){var l=t.indexOf(c);-1!==l&&(e=l)}return r(t,e,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),n.enc.Base64)}({get exports(){return se},set exports(t){se=t}});var Ie=se;function pe(t){if(!Wt(t))return"";let e=ae.parse(t);return Ie.stringify(e)}function ge(t,e){return!!Kt(t)&&(!(!Wt(e)&&!Nt(e))&&e in t)}function Ce(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}var ye,me=function(t,e,n){for(var r=-1,i=Object(t),o=n(t),c=o.length;c--;){var l=o[ye?c:++r];if(!1===e(i[l],l,i))break}return t};function be(t){return X(t)&&"[object Arguments]"==f(t)}var he=Object.prototype,fe=he.hasOwnProperty,Xe=he.propertyIsEnumerable,Ze=be(function(){return arguments}())?be:function(t){return X(t)&&fe.call(t,"callee")&&!Xe.call(t,"callee")},Ae=Ze;var Ke="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ge=Ke&&"object"==typeof module&&module&&!module.nodeType&&module,ve=Ge&&Ge.exports===Ke?a.Buffer:void 0,We=(ve?ve.isBuffer:void 0)||function(){return!1},Ve=9007199254740991,He=/^(?:0|[1-9]\d*)$/;function Ye(t,e){var n=typeof t;return!!(e=null==e?Ve:e)&&("number"==n||"symbol"!=n&&He.test(t))&&t>-1&&t%1==0&&t<e}var xe=9007199254740991;function Se(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=xe}var Je={};Je["[object Float32Array]"]=Je["[object Float64Array]"]=Je["[object Int8Array]"]=Je["[object Int16Array]"]=Je["[object Int32Array]"]=Je["[object Uint8Array]"]=Je["[object Uint8ClampedArray]"]=Je["[object Uint16Array]"]=Je["[object Uint32Array]"]=!0,Je["[object Arguments]"]=Je["[object Array]"]=Je["[object ArrayBuffer]"]=Je["[object Boolean]"]=Je["[object DataView]"]=Je["[object Date]"]=Je["[object Error]"]=Je["[object Function]"]=Je["[object Map]"]=Je["[object Number]"]=Je["[object Object]"]=Je["[object RegExp]"]=Je["[object Set]"]=Je["[object String]"]=Je["[object WeakMap]"]=!1;var we="object"==typeof exports&&exports&&!exports.nodeType&&exports,Re=we&&"object"==typeof module&&module&&!module.nodeType&&module,je=Re&&Re.exports===we&&d.process,Pe=function(){try{var t=Re&&Re.require&&Re.require("util").types;return t||je&&je.binding&&je.binding("util")}catch(t){}}(),Qe=Pe&&Pe.isTypedArray,Le=Qe?function(t){return function(e){return t(e)}}(Qe):function(t){return X(t)&&Se(t.length)&&!!Je[f(t)]},Be=Le,Te=Object.prototype.hasOwnProperty;function Ne(t,e){var n=l(t),r=!n&&Ae(t),i=!n&&!r&&We(t),o=!n&&!r&&!i&&Be(t),c=n||r||i||o,d=c?function(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}(t.length,String):[],u=d.length;for(var a in t)!e&&!Te.call(t,a)||c&&("length"==a||i&&("offset"==a||"parent"==a)||o&&("buffer"==a||"byteLength"==a||"byteOffset"==a)||Ye(a,u))||d.push(a);return d}var ke=Object.prototype;function Fe(t,e){return function(n){return t(e(n))}}var Ue=Fe(Object.keys,Object),Oe=Object.prototype.hasOwnProperty;function ze(t){if(n=(e=t)&&e.constructor,e!==("function"==typeof n&&n.prototype||ke))return Ue(t);var e,n,r=[];for(var i in Object(t))Oe.call(t,i)&&"constructor"!=i&&r.push(i);return r}function Me(t){return null!=t&&Se(t.length)&&!x(t)}function De(t){return Me(t)?Ne(t):ze(t)}var Ee=function(t,e){return function(n,r){if(null==n)return n;if(!Me(n))return t(n,r);for(var i=n.length,o=e?i:-1,c=Object(n);(e?o--:++o<i)&&!1!==r(c[o],o,c););return n}}((function(t,e){return t&&me(t,e,De)})),_e=Ee;function qe(t){return t}function $e(t,e){var n;return(l(t)?Ce:_e)(t,"function"==typeof(n=e)?n:qe)}function tn(t){return"[object ArrayBuffer]"===Object.prototype.toString.call(t)}function en(t){return"[object Uint8Array]"===Object.prototype.toString.call(t)}function nn(t){return"[object Uint16Array]"===Object.prototype.toString.call(t)}function rn(t){if(!(tn(t)||(e=t,"[object Blob]"===Object.prototype.toString.call(e))||en(t)||nn(t)))return null;var e;try{if(t.byteLength)return t.byteLength}catch(t){}try{if(t.length)return t.length}catch(t){}try{if(t.size)return t.size}catch(t){}return null}var on=Fe(Object.getPrototypeOf,Object),cn="[object Object]",ln=Function.prototype,dn=Object.prototype,un=ln.toString,an=dn.hasOwnProperty,sn=un.call(Object);var In="[object DOMException]",pn="[object Error]";function gn(t){if(!X(t))return!1;var e=f(t);return e==pn||e==In||"string"==typeof t.message&&"string"==typeof t.name&&!function(t){if(!X(t)||f(t)!=cn)return!1;var e=on(t);if(null===e)return!0;var n=an.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&un.call(n)==sn}(t)}function Cn(t){if(!Wt(t))return new Uint8Array;let e;try{e=function(t){if(!vt(t))return new Uint8Array;let e=Ie.parse(t),n=e.words,r=e.sigBytes,i=new Uint8Array(r);for(let t=0;t<r;t++){let e=n[t>>>2]>>>24-t%4*8&255;i[t]=e}return i}(pe(t))}catch(t){return new Uint8Array}return e}function yn(t,e){return function(t,e,n,r,i,o){if(!Nt(t))return null;if(!en(e))return null;if(!Ft(n))return null;if(!ne(r))return null;if(!Ft(i))return null;if(!Ft(o))return null;let c,l,d;t=kt(t);let u=8*o-i-1,a=(1<<u)-1,s=a>>1,I=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?o-1:0,g=r?-1:1,C=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(l=isNaN(t)?1:0,c=a):(c=Math.floor(Math.log(t)/Math.LN2),t*(d=Math.pow(2,-c))<1&&(c--,d*=2),(t+=c+s>=1?I/d:I*Math.pow(2,1-s))*d>=2&&(c++,d/=2),c+s>=a?(l=0,c=a):c+s>=1?(l=(t*d-1)*Math.pow(2,i),c+=s):(l=t*Math.pow(2,s-1)*Math.pow(2,i),c=0));i>=8;e[n+p]=255&l,p+=g,l/=256,i-=8);for(c=c<<i|l,u+=i;u>0;e[n+p]=255&c,p+=g,c/=256,u-=8);return e[n+p-g]|=128*C,null}(t,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,!(arguments.length>3&&void 0!==arguments[3])||arguments[3],arguments.length>4&&void 0!==arguments[4]?arguments[4]:52,arguments.length>5&&void 0!==arguments[5]?arguments[5]:8)}function mn(t){let e=[],n=[];if(!te(t)&&!Gt(t))return null;let r=[],i=[];function o(t){r.push(rn(t)),i.push(t)}try{let c=function(t){if(!Kt(t))return{results:"",binarys:[]};if(qt(t))return{results:"",binarys:[]};let e="",n=[];try{let r=-1;e=JSON.stringify(t,(function(t,e){if(en(e)){r+=1;let t=`[Uint8Array]::${r}`;return n.push(e),t}if(nn(e)){r+=1;let t=`[Uint16Array]::${r}`;return n.push(e),t}if(tn(e)){r+=1;let t=`[ArrayBuffer]::${r}`;return n.push(e),t}return gn(e)&&(e=e.toString()),e}))}catch(t){}return{results:e,binarys:n}}(t);o(Cn(c.results)),$e(c.binarys,(t=>{o(t)}));let l=r,d=Cn(JSON.stringify(l)),u=new Uint8Array(8);yn(rn(d),u),e.push(u),e.push(d),$e(i,(t=>{e.push(t)})),$e(e,(t=>{n=function(t,e){let n=rn(t),r=rn(e),i=new Uint8Array(n+r);return i.set(new Uint8Array(t),0),i.set(new Uint8Array(e),n),i}(n,t)}))}catch(t){return null}return n}function bn(t){return function(t,e,n,r,i){if(!en(t))return null;if(!Ft(e))return null;if(!ne(n))return null;if(!Ft(r))return null;if(!Ft(i))return null;let o,c,l=8*i-r-1,d=(1<<l)-1,u=d>>1,a=-7,s=n?0:i-1,I=n?1:-1,p=t[e+s];for(s+=I,o=p&(1<<-a)-1,p>>=-a,a+=l;a>0;o=256*o+t[e+s],s+=I,a-=8);for(c=o&(1<<-a)-1,o>>=-a,a+=r;a>0;c=256*c+t[e+s],s+=I,a-=8);if(0===o)o=1-u;else{if(o===d)return c?NaN:1/0*(p?-1:1);c+=Math.pow(2,r),o-=u}return(p?-1:1)*c*Math.pow(2,o-r)}(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,!(arguments.length>2&&void 0!==arguments[2])||arguments[2],arguments.length>3&&void 0!==arguments[3]?arguments[3]:52,arguments.length>4&&void 0!==arguments[4]?arguments[4]:8)}var hn={};!function(t,e){var n;t.exports=(n=ue(),function(){if("function"==typeof ArrayBuffer){var t=n.lib.WordArray,e=t.init,r=t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var n=t.byteLength,r=[],i=0;i<n;i++)r[i>>>2]|=t[i]<<24-i%4*8;e.call(this,r,n)}else e.apply(this,arguments)};r.prototype=t}}(),n.lib.WordArray)}({get exports(){return hn},set exports(t){hn=t}});var fn=hn;function Xn(t){if(!en(t))return"";let e;try{n=function(t){return en(t)?fn.create(t).toString(Ie):""}(t),e=Wt(n)?Ie.parse(n).toString(ae):""}catch(t){return""}var n;return e}function Zn(t){let e=null;if(!en(t))return null;try{let n=8,r=t.slice(0,n),i=t.slice(n,rn(t)),o=bn(r),c=i.slice(0,o),l=i.slice(o,rn(i)),d=Xn(c),u=function(t,e){let n=0,r=0,i=[];return $e(e,(e=>{r=n+e;let o=t.slice(n,r);n=r,i.push(o)})),i}(l,JSON.parse(d));e=function(t){if(!Gt(t))return{};let{results:e,binarys:n}=t;if(!Wt(e))return{};if(!_t(n))return{};let r={};try{r=JSON.parse(e,(function(t,e){if(Wt(e)){if(e.indexOf("[Uint8Array]::")>=0){let t=Dt(e.replace("[Uint8Array]::",""));return n[t]}if(e.indexOf("[Uint16Array]::")>=0){let t=Dt(e.replace("[Uint16Array]::",""));return n[t]}if(e.indexOf("[ArrayBuffer]::")>=0){let t=Dt(e.replace("[ArrayBuffer]::",""));return n[t]}}return e}))}catch(t){}return r}({results:Xn(u.shift()),binarys:u})}catch(t){}return e}function An(t){let e=mt(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},"fs");return!!e.existsSync(t)&&(!e.lstatSync(t).isDirectory()&&!e.lstatSync(t).isSymbolicLink())}function Kn(t){let e=mt(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},"fs");if(!e.existsSync(t))return!1;let n=e.lstatSync(t);return!n.isFile()&&!n.isSymbolicLink()}function Gn(t){return function(t){let e=mt(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},"fs");if(Kn(t,{fs:e}))return{success:"input folder is already exists: "+t};if(e.existsSync(t))return{error:"input path already exists: "+t};try{e.mkdirSync(t,{recursive:!0})}catch(t){return{error:t}}return{success:"done: "+t}}(t,{fs:e})}function vn(t){return vn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vn(t)}function Wn(t){var e=function(t,e){if("object"!==vn(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!==vn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"===vn(e)?e:String(e)}function Vn(t,e,n){return(e=Wn(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}const Hn=new Uint8Array([0,97,115,109,1,0,0,0,1,48,8,96,3,127,127,127,1,127,96,3,127,127,127,0,96,2,127,127,0,96,1,127,1,127,96,3,127,127,126,1,126,96,3,126,127,127,1,126,96,2,127,126,0,96,1,127,1,126,3,11,10,0,0,2,1,3,4,5,6,1,7,5,3,1,0,1,7,85,9,3,109,101,109,2,0,5,120,120,104,51,50,0,0,6,105,110,105,116,51,50,0,2,8,117,112,100,97,116,101,51,50,0,3,8,100,105,103,101,115,116,51,50,0,4,5,120,120,104,54,52,0,5,6,105,110,105,116,54,52,0,7,8,117,112,100,97,116,101,54,52,0,8,8,100,105,103,101,115,116,54,52,0,9,10,251,22,10,242,1,1,4,127,32,0,32,1,106,33,3,32,1,65,16,79,4,127,32,3,65,16,107,33,6,32,2,65,168,136,141,161,2,106,33,3,32,2,65,137,235,208,208,7,107,33,4,32,2,65,207,140,162,142,6,106,33,5,3,64,32,3,32,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,3,32,4,32,0,65,4,106,34,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,4,32,2,32,0,65,4,106,34,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,2,32,5,32,0,65,4,106,34,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,5,32,6,32,0,65,4,106,34,0,79,13,0,11,32,2,65,12,119,32,5,65,18,119,106,32,4,65,7,119,106,32,3,65,1,119,106,5,32,2,65,177,207,217,178,1,106,11,32,1,106,32,0,32,1,65,15,113,16,1,11,146,1,0,32,1,32,2,106,33,2,3,64,32,1,65,4,106,32,2,75,69,4,64,32,0,32,1,40,2,0,65,189,220,202,149,124,108,106,65,17,119,65,175,214,211,190,2,108,33,0,32,1,65,4,106,33,1,12,1,11,11,3,64,32,1,32,2,79,69,4,64,32,0,32,1,45,0,0,65,177,207,217,178,1,108,106,65,11,119,65,177,243,221,241,121,108,33,0,32,1,65,1,106,33,1,12,1,11,11,32,0,32,0,65,15,118,115,65,247,148,175,175,120,108,34,0,65,13,118,32,0,115,65,189,220,202,149,124,108,34,0,65,16,118,32,0,115,11,63,0,32,0,65,8,106,32,1,65,168,136,141,161,2,106,54,2,0,32,0,65,12,106,32,1,65,137,235,208,208,7,107,54,2,0,32,0,65,16,106,32,1,54,2,0,32,0,65,20,106,32,1,65,207,140,162,142,6,106,54,2,0,11,195,4,1,6,127,32,1,32,2,106,33,6,32,0,65,24,106,33,4,32,0,65,40,106,40,2,0,33,3,32,0,32,0,40,2,0,32,2,106,54,2,0,32,0,65,4,106,34,5,32,5,40,2,0,32,2,65,16,79,32,0,40,2,0,65,16,79,114,114,54,2,0,32,2,32,3,106,65,16,73,4,64,32,3,32,4,106,32,1,32,2,252,10,0,0,32,0,65,40,106,32,2,32,3,106,54,2,0,15,11,32,3,4,64,32,3,32,4,106,32,1,65,16,32,3,107,34,2,252,10,0,0,32,0,65,8,106,34,3,32,3,40,2,0,32,4,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,12,106,34,3,32,3,40,2,0,32,4,65,4,106,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,16,106,34,3,32,3,40,2,0,32,4,65,8,106,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,20,106,34,3,32,3,40,2,0,32,4,65,12,106,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,40,106,65,0,54,2,0,32,1,32,2,106,33,1,11,32,1,32,6,65,16,107,77,4,64,32,6,65,16,107,33,8,32,0,65,8,106,40,2,0,33,2,32,0,65,12,106,40,2,0,33,3,32,0,65,16,106,40,2,0,33,5,32,0,65,20,106,40,2,0,33,7,3,64,32,2,32,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,2,32,3,32,1,65,4,106,34,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,3,32,5,32,1,65,4,106,34,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,5,32,7,32,1,65,4,106,34,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,7,32,8,32,1,65,4,106,34,1,79,13,0,11,32,0,65,8,106,32,2,54,2,0,32,0,65,12,106,32,3,54,2,0,32,0,65,16,106,32,5,54,2,0,32,0,65,20,106,32,7,54,2,0,11,32,1,32,6,73,4,64,32,4,32,1,32,6,32,1,107,34,1,252,10,0,0,32,0,65,40,106,32,1,54,2,0,11,11,97,1,1,127,32,0,65,16,106,40,2,0,33,1,32,0,65,4,106,40,2,0,4,127,32,1,65,12,119,32,0,65,20,106,40,2,0,65,18,119,106,32,0,65,12,106,40,2,0,65,7,119,106,32,0,65,8,106,40,2,0,65,1,119,106,5,32,1,65,177,207,217,178,1,106,11,32,0,40,2,0,106,32,0,65,24,106,32,0,65,40,106,40,2,0,16,1,11,255,3,2,3,126,1,127,32,0,32,1,106,33,6,32,1,65,32,79,4,126,32,6,65,32,107,33,6,32,2,66,214,235,130,238,234,253,137,245,224,0,124,33,3,32,2,66,177,169,172,193,173,184,212,166,61,125,33,4,32,2,66,249,234,208,208,231,201,161,228,225,0,124,33,5,3,64,32,3,32,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,3,32,4,32,0,65,8,106,34,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,4,32,2,32,0,65,8,106,34,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,2,32,5,32,0,65,8,106,34,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,5,32,6,32,0,65,8,106,34,0,79,13,0,11,32,2,66,12,137,32,5,66,18,137,124,32,4,66,7,137,124,32,3,66,1,137,124,32,3,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,4,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,2,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,5,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,5,32,2,66,197,207,217,178,241,229,186,234,39,124,11,32,1,173,124,32,0,32,1,65,31,113,16,6,11,134,2,0,32,1,32,2,106,33,2,3,64,32,2,32,1,65,8,106,79,4,64,32,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,32,0,133,66,27,137,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,33,0,32,1,65,8,106,33,1,12,1,11,11,32,1,65,4,106,32,2,77,4,64,32,0,32,1,53,2,0,66,135,149,175,175,152,182,222,155,158,127,126,133,66,23,137,66,207,214,211,190,210,199,171,217,66,126,66,249,243,221,241,153,246,153,171,22,124,33,0,32,1,65,4,106,33,1,11,3,64,32,1,32,2,73,4,64,32,0,32,1,49,0,0,66,197,207,217,178,241,229,186,234,39,126,133,66,11,137,66,135,149,175,175,152,182,222,155,158,127,126,33,0,32,1,65,1,106,33,1,12,1,11,11,32,0,32,0,66,33,136,133,66,207,214,211,190,210,199,171,217,66,126,34,0,32,0,66,29,136,133,66,249,243,221,241,153,246,153,171,22,126,34,0,32,0,66,32,136,133,11,77,0,32,0,65,8,106,32,1,66,214,235,130,238,234,253,137,245,224,0,124,55,3,0,32,0,65,16,106,32,1,66,177,169,172,193,173,184,212,166,61,125,55,3,0,32,0,65,24,106,32,1,55,3,0,32,0,65,32,106,32,1,66,249,234,208,208,231,201,161,228,225,0,124,55,3,0,11,244,4,2,3,127,4,126,32,1,32,2,106,33,5,32,0,65,40,106,33,4,32,0,65,200,0,106,40,2,0,33,3,32,0,32,0,41,3,0,32,2,173,124,55,3,0,32,2,32,3,106,65,32,73,4,64,32,3,32,4,106,32,1,32,2,252,10,0,0,32,0,65,200,0,106,32,2,32,3,106,54,2,0,15,11,32,3,4,64,32,3,32,4,106,32,1,65,32,32,3,107,34,2,252,10,0,0,32,0,65,8,106,34,3,32,3,41,3,0,32,4,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,16,106,34,3,32,3,41,3,0,32,4,65,8,106,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,24,106,34,3,32,3,41,3,0,32,4,65,16,106,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,32,106,34,3,32,3,41,3,0,32,4,65,24,106,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,200,0,106,65,0,54,2,0,32,1,32,2,106,33,1,11,32,1,65,32,106,32,5,77,4,64,32,5,65,32,107,33,2,32,0,65,8,106,41,3,0,33,6,32,0,65,16,106,41,3,0,33,7,32,0,65,24,106,41,3,0,33,8,32,0,65,32,106,41,3,0,33,9,3,64,32,6,32,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,6,32,7,32,1,65,8,106,34,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,7,32,8,32,1,65,8,106,34,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,8,32,9,32,1,65,8,106,34,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,9,32,2,32,1,65,8,106,34,1,79,13,0,11,32,0,65,8,106,32,6,55,3,0,32,0,65,16,106,32,7,55,3,0,32,0,65,24,106,32,8,55,3,0,32,0,65,32,106,32,9,55,3,0,11,32,1,32,5,73,4,64,32,4,32,1,32,5,32,1,107,34,1,252,10,0,0,32,0,65,200,0,106,32,1,54,2,0,11,11,188,2,1,5,126,32,0,65,24,106,41,3,0,33,1,32,0,41,3,0,34,2,66,32,90,4,126,32,0,65,8,106,41,3,0,34,3,66,1,137,32,0,65,16,106,41,3,0,34,4,66,7,137,124,32,1,66,12,137,32,0,65,32,106,41,3,0,34,5,66,18,137,124,124,32,3,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,4,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,1,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,5,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,5,32,1,66,197,207,217,178,241,229,186,234,39,124,11,32,2,124,32,0,65,40,106,32,2,66,31,131,167,16,6,11]);async function Yn(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=mt(e,"fs"),r=mt(e,"chunkSize");if(Nt(r)||(r=67108864),r=kt(r),!An(t,{fs:n}))return Promise.reject("fp is not a file");let i=ft();try{let{create64:e}=await async function(){return function(t){const{exports:{mem:e,xxh32:n,xxh64:r,init32:i,update32:o,digest32:c,init64:l,update64:d,digest64:u}}=t;let a=new Uint8Array(e.buffer);function s(t,n){if(e.buffer.byteLength<t+n){const r=Math.ceil((t+n-e.buffer.byteLength)/65536);e.grow(r),a=new Uint8Array(e.buffer)}}function I(t,e,n,r,i,o){s(t);const c=new Uint8Array(t);return a.set(c),n(0,e),c.set(a.subarray(0,t)),{update(e){let n;return a.set(c),"string"==typeof e?(s(3*e.length,t),n=y.encodeInto(e,a.subarray(t)).written):(s(e.byteLength,t),a.set(e,t),n=e.byteLength),r(0,t,n),c.set(a.subarray(0,t)),this},digest:()=>(a.set(c),o(i(0)))}}function p(t){return t>>>0}const g=2n**64n-1n;function C(t){return t&g}const y=new TextEncoder,m=0,b=0n;function h(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m;return s(3*t.length,0),p(n(0,y.encodeInto(t,a).written,e))}function f(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:b;return s(3*t.length,0),C(r(0,y.encodeInto(t,a).written,e))}return{h32:h,h32ToString:function(t){return h(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:m).toString(16).padStart(8,"0")},h32Raw:function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m;return s(t.byteLength,0),a.set(t),p(n(0,t.byteLength,e))},create32:function(){return I(48,arguments.length>0&&void 0!==arguments[0]?arguments[0]:m,i,o,c,p)},h64:f,h64ToString:function(t){return f(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:b).toString(16).padStart(16,"0")},h64Raw:function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:b;return s(t.byteLength,0),a.set(t),C(r(0,t.byteLength,e))},create64:function(){return I(88,arguments.length>0&&void 0!==arguments[0]?arguments[0]:b,l,d,u,C)}}}((await WebAssembly.instantiate(Hn)).instance)}(),o=e(),c=n.createReadStream(t,{highWaterMark:r});c.on("data",(t=>{o.update(t)})),c.on("end",(()=>{let t=o.digest().toString(16).padStart(16,"0");i.resolve(t)})),c.on("error",i.reject)}catch(t){i.reject(t.toString())}return i}function xn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Sn(t){return Yn(t,function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?xn(Object(n),!0).forEach((function(e){Vn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):xn(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({fs:e,crypto:o},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}))}var Jn={};!function(t,e){t.exports=function(t){var e={};!function(e,n){e.exports=function(t){var e={};!function(t){var e=Object.prototype.hasOwnProperty,n="~";function r(){}function i(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(t,e,r,o,c){if("function"!=typeof r)throw new TypeError("The listener must be a function");var l=new i(r,o||t,c),d=n?n+e:e;return t._events[d]?t._events[d].fn?t._events[d]=[t._events[d],l]:t._events[d].push(l):(t._events[d]=l,t._eventsCount++),t}function c(t,e){0==--t._eventsCount?t._events=new r:delete t._events[e]}function l(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),l.prototype.eventNames=function(){var t,r,i=[];if(0===this._eventsCount)return i;for(r in t=this._events)e.call(t,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(t)):i},l.prototype.listeners=function(t){var e=n?n+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,o=r.length,c=new Array(o);i<o;i++)c[i]=r[i].fn;return c},l.prototype.listenerCount=function(t){var e=n?n+t:t,r=this._events[e];return r?r.fn?1:r.length:0},l.prototype.emit=function(t,e,r,i,o,c){var l=n?n+t:t;if(!this._events[l])return!1;var d,u,a=this._events[l],s=arguments.length;if(a.fn){switch(a.once&&this.removeListener(t,a.fn,void 0,!0),s){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,e),!0;case 3:return a.fn.call(a.context,e,r),!0;case 4:return a.fn.call(a.context,e,r,i),!0;case 5:return a.fn.call(a.context,e,r,i,o),!0;case 6:return a.fn.call(a.context,e,r,i,o,c),!0}for(u=1,d=new Array(s-1);u<s;u++)d[u-1]=arguments[u];a.fn.apply(a.context,d)}else{var I,p=a.length;for(u=0;u<p;u++)switch(a[u].once&&this.removeListener(t,a[u].fn,void 0,!0),s){case 1:a[u].fn.call(a[u].context);break;case 2:a[u].fn.call(a[u].context,e);break;case 3:a[u].fn.call(a[u].context,e,r);break;case 4:a[u].fn.call(a[u].context,e,r,i);break;default:if(!d)for(I=1,d=new Array(s-1);I<s;I++)d[I-1]=arguments[I];a[u].fn.apply(a[u].context,d)}}return!0},l.prototype.on=function(t,e,n){return o(this,t,e,n,!1)},l.prototype.once=function(t,e,n){return o(this,t,e,n,!0)},l.prototype.removeListener=function(t,e,r,i){var o=n?n+t:t;if(!this._events[o])return this;if(!e)return c(this,o),this;var l=this._events[o];if(l.fn)l.fn!==e||i&&!l.once||r&&l.context!==r||c(this,o);else{for(var d=0,u=[],a=l.length;d<a;d++)(l[d].fn!==e||i&&!l[d].once||r&&l[d].context!==r)&&u.push(l[d]);u.length?this._events[o]=1===u.length?u[0]:u:c(this,o)}return this},l.prototype.removeAllListeners=function(t){var e;return t?(e=n?n+t:t,this._events[e]&&c(this,e)):(this._events=new r,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=n,l.EventEmitter=l,t.exports=l}({get exports(){return e},set exports(t){e=t}});var n=e;let r;!function(){if("nodejs"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let e=(i="CgogICAgICAgIC8vaW1wb3J0IHsgcGFyZW50UG9ydCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJwogICAgICAgIGxldCB7IHBhcmVudFBvcnQgfSA9IHJlcXVpcmUoJ3dvcmtlcl90aHJlYWRzJykgLy/lm6BwYWNrYWdlLmpzb27kuI3ntaZ0eXBlPW1vZHVsZeaVheeEoeazleaUr+aPtGVzNiBpbXBvcnQsIOW+l+S9v+eUqHJlcXVpcmUKICAgICAgICAvL+iLpeimgeaWvG5vZGVqcyB3b3JrZXLlhafkvb/nlKjnhKHms5Xnt6jora/nmoTljp/nlJ/lpZfku7bkvovlpoJmcywg6YG/5YWN5L2/55So6aCC5bGkaW1wb3J05Yqg6LyJ5L2/55SoLCDlm6DnhKHms5Xnt6jora/mnIPnm7TmjqXkv53nlZkKICAgICAgICAvL+S4puWboGltcG9ydOS9jeaWvHdvcmtlcuWkluWxpOmZkOWumueCunJlcXVpcmXljYAocGFja2FnZS5qc29u5LiN57WmdHlwZT1tb2R1bGUpLCDmlYXlh7rnj77pjK/oqqTnhKHms5Xnt6jora8KICAgICAgICAKCiJ1c2Ugc3RyaWN0Ijt2YXIgdD1yZXF1aXJlKCJwYXRoIikscj1yZXF1aXJlKCJmcyIpLGU9QXJyYXkuaXNBcnJheSxuPSJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCxvPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsaT1ufHxvfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHU9aS5TeW1ib2wsYT1PYmplY3QucHJvdG90eXBlLGM9YS5oYXNPd25Qcm9wZXJ0eSxzPWEudG9TdHJpbmcsZj11P3UudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBsPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIHA9IltvYmplY3QgTnVsbF0iLGg9IltvYmplY3QgVW5kZWZpbmVkXSIseT11P3UudG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIHYodCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD9oOnA6eSYmeSBpbiBPYmplY3QodCk/ZnVuY3Rpb24odCl7dmFyIHI9Yy5jYWxsKHQsZiksZT10W2ZdO3RyeXt0W2ZdPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIG89cy5jYWxsKHQpO3JldHVybiBuJiYocj90W2ZdPWU6ZGVsZXRlIHRbZl0pLG99KHQpOmZ1bmN0aW9uKHQpe3JldHVybiBsLmNhbGwodCl9KHQpfXZhciBfPSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIGQodCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fHxmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmIm9iamVjdCI9PXR5cGVvZiB0fSh0KSYmdih0KT09X312YXIgYj0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyxnPS9eXHcqJC87ZnVuY3Rpb24gaih0KXt2YXIgcj10eXBlb2YgdDtyZXR1cm4gbnVsbCE9dCYmKCJvYmplY3QiPT1yfHwiZnVuY3Rpb24iPT1yKX12YXIgUz0iW29iamVjdCBBc3luY0Z1bmN0aW9uXSIsTz0iW29iamVjdCBGdW5jdGlvbl0iLG09IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIix3PSJbb2JqZWN0IFByb3h5XSI7dmFyICQseD1pWyJfX2NvcmUtanNfc2hhcmVkX18iXSxSPSgkPS9bXi5dKyQvLmV4ZWMoeCYmeC5rZXlzJiZ4LmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIiskOiIiO3ZhciB6PUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZzt2YXIgQT0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxGPUZ1bmN0aW9uLnByb3RvdHlwZSxOPU9iamVjdC5wcm90b3R5cGUsUD1GLnRvU3RyaW5nLGs9Ti5oYXNPd25Qcm9wZXJ0eSxFPVJlZ0V4cCgiXiIrUC5jYWxsKGspLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO2Z1bmN0aW9uIEModCl7aWYoIWoodCl8fChyPXQsUiYmUiBpbiByKSlyZXR1cm4hMTt2YXIgcixlPWZ1bmN0aW9uKHQpe2lmKCFqKHQpKXJldHVybiExO3ZhciByPXYodCk7cmV0dXJuIHI9PU98fHI9PW18fHI9PVN8fHI9PXd9KHQpP0U6QTtyZXR1cm4gZS50ZXN0KGZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpe3RyeXtyZXR1cm4gei5jYWxsKHQpfWNhdGNoKHQpe310cnl7cmV0dXJuIHQrIiJ9Y2F0Y2godCl7fX1yZXR1cm4iIn0odCkpfWZ1bmN0aW9uIEkodCxyKXt2YXIgZT1mdW5jdGlvbih0LHIpe3JldHVybiBudWxsPT10P3ZvaWQgMDp0W3JdfSh0LHIpO3JldHVybiBDKGUpP2U6dm9pZCAwfXZhciBUPUkoT2JqZWN0LCJjcmVhdGUiKTt2YXIgTT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBxPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gTCh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX1mdW5jdGlvbiBVKHQscil7Zm9yKHZhciBlLG4sbz10Lmxlbmd0aDtvLS07KWlmKChlPXRbb11bMF0pPT09KG49cil8fGUhPWUmJm4hPW4pcmV0dXJuIG87cmV0dXJuLTF9TC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVQ/VChudWxsKTp7fSx0aGlzLnNpemU9MH0sTC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1yPzE6MCxyfSxMLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihUKXt2YXIgZT1yW3RdO3JldHVybiJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIj09PWU/dm9pZCAwOmV9cmV0dXJuIE0uY2FsbChyLHQpP3JbdF06dm9pZCAwfSxMLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gVD92b2lkIDAhPT1yW3RdOnEuY2FsbChyLHQpfSxMLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKHQpPzA6MSxlW3RdPVQmJnZvaWQgMD09PXI/Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iOnIsdGhpc307dmFyIEQ9QXJyYXkucHJvdG90eXBlLnNwbGljZTtmdW5jdGlvbiBHKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUcucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH0sRy5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1VKHIsdCk7cmV0dXJuIShlPDApJiYoZT09ci5sZW5ndGgtMT9yLnBvcCgpOkQuY2FsbChyLGUsMSksLS10aGlzLnNpemUsITApfSxHLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPVUocix0KTtyZXR1cm4gZTwwP3ZvaWQgMDpyW2VdWzFdfSxHLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIFUodGhpcy5fX2RhdGFfXyx0KT4tMX0sRy5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPVUoZSx0KTtyZXR1cm4gbjwwPygrK3RoaXMuc2l6ZSxlLnB1c2goW3Qscl0pKTplW25dWzFdPXIsdGhpc307dmFyIFc9SShpLCJNYXAiKTtmdW5jdGlvbiBCKHQscil7dmFyIGUsbixvPXQuX19kYXRhX187cmV0dXJuKCJzdHJpbmciPT0obj10eXBlb2YoZT1yKSl8fCJudW1iZXIiPT1ufHwic3ltYm9sIj09bnx8ImJvb2xlYW4iPT1uPyJfX3Byb3RvX18iIT09ZTpudWxsPT09ZSk/b1sic3RyaW5nIj09dHlwZW9mIHI/InN0cmluZyI6Imhhc2giXTpvLm1hcH1mdW5jdGlvbiBIKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUgucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zaXplPTAsdGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgTCxtYXA6bmV3KFd8fEcpLHN0cmluZzpuZXcgTH19LEgucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgcj1CKHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LEgucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gQih0aGlzLHQpLmdldCh0KX0sSC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiBCKHRoaXMsdCkuaGFzKHQpfSxILnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT1CKHRoaXMsdCksbj1lLnNpemU7cmV0dXJuIGUuc2V0KHQsciksdGhpcy5zaXplKz1lLnNpemU9PW4/MDoxLHRoaXN9O3ZhciBKPSJFeHBlY3RlZCBhIGZ1bmN0aW9uIjtmdW5jdGlvbiBLKHQscil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHR8fG51bGwhPXImJiJmdW5jdGlvbiIhPXR5cGVvZiByKXRocm93IG5ldyBUeXBlRXJyb3IoSik7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHMsbz1yP3IuYXBwbHkodGhpcyxuKTpuWzBdLGk9ZS5jYWNoZTtpZihpLmhhcyhvKSlyZXR1cm4gaS5nZXQobyk7dmFyIHU9dC5hcHBseSh0aGlzLG4pO3JldHVybiBlLmNhY2hlPWkuc2V0KG8sdSl8fGksdX07cmV0dXJuIGUuY2FjaGU9bmV3KEsuQ2FjaGV8fEgpLGV9Sy5DYWNoZT1IO3ZhciBRLFYsWCxZPS9bXi5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4pKj8pXDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCQpKS9nLFo9L1xcKFxcKT8vZyx0dD0oUT1mdW5jdGlvbih0KXt2YXIgcj1bXTtyZXR1cm4gNDY9PT10LmNoYXJDb2RlQXQoMCkmJnIucHVzaCgiIiksdC5yZXBsYWNlKFksKGZ1bmN0aW9uKHQsZSxuLG8pe3IucHVzaChuP28ucmVwbGFjZShaLCIkMSIpOmV8fHQpfSkpLHJ9LFY9SyhRLChmdW5jdGlvbih0KXtyZXR1cm4gNTAwPT09WC5zaXplJiZYLmNsZWFyKCksdH0pKSxYPVYuY2FjaGUsVikscnQ9dHQ7dmFyIGV0PTEvMCxudD11P3UucHJvdG90eXBlOnZvaWQgMCxvdD1udD9udC50b1N0cmluZzp2b2lkIDA7ZnVuY3Rpb24gaXQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGUodCkpcmV0dXJuIGZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89QXJyYXkobik7KytlPG47KW9bZV09cih0W2VdLGUsdCk7cmV0dXJuIG99KHQsaXQpKyIiO2lmKGQodCkpcmV0dXJuIG90P290LmNhbGwodCk6IiI7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LWV0PyItMCI6cn1mdW5jdGlvbiB1dCh0KXtyZXR1cm4gbnVsbD09dD8iIjppdCh0KX1mdW5jdGlvbiBhdCh0LHIpe3JldHVybiBlKHQpP3Q6ZnVuY3Rpb24odCxyKXtpZihlKHQpKXJldHVybiExO3ZhciBuPXR5cGVvZiB0O3JldHVybiEoIm51bWJlciIhPW4mJiJzeW1ib2wiIT1uJiYiYm9vbGVhbiIhPW4mJm51bGwhPXQmJiFkKHQpKXx8Zy50ZXN0KHQpfHwhYi50ZXN0KHQpfHxudWxsIT1yJiZ0IGluIE9iamVjdChyKX0odCxyKT9bdF06cnQodXQodCkpfXZhciBjdD0xLzA7ZnVuY3Rpb24gc3QodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHxkKHQpKXJldHVybiB0O3ZhciByPXQrIiI7cmV0dXJuIjAiPT1yJiYxL3Q9PS1jdD8iLTAiOnJ9ZnVuY3Rpb24gZnQodCxyLGUpe3ZhciBuPW51bGw9PXQ/dm9pZCAwOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPTAsbj0ocj1hdChyLHQpKS5sZW5ndGg7bnVsbCE9dCYmZTxuOyl0PXRbc3QocltlKytdKV07cmV0dXJuIGUmJmU9PW4/dDp2b2lkIDB9KHQscik7cmV0dXJuIHZvaWQgMD09PW4/ZTpufWZ1bmN0aW9uIGx0KCl7bGV0IHQscixlPW5ldyBQcm9taXNlKChmdW5jdGlvbigpe3Q9YXJndW1lbnRzWzBdLHI9YXJndW1lbnRzWzFdfSkpO3JldHVybiBlLnJlc29sdmU9dCxlLnJlamVjdD1yLGV9ZnVuY3Rpb24gcHQodCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBodCh0KXtpZihmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCkpe2ZvcihsZXQgciBpbiB0KXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHl0KHQpe3JldHVybiJbb2JqZWN0IFN0cmluZ10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIHZ0KHQpe3JldHVybiB0IT10fWZ1bmN0aW9uIF90KHQpe3JldHVybiEhZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgVW5kZWZpbmVkXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBOdWxsXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpfHwoISFodCh0KXx8KCEhZnVuY3Rpb24odCl7cmV0dXJuISgheXQodCl8fCIiIT09dCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4hIXB0KHQpJiYwPT09dC5sZW5ndGh9KHQpfHwhIXZ0KHQpKSkpKX1mdW5jdGlvbiBkdCh0KXtyZXR1cm4hKCF5dCh0KXx8IiI9PT10KX12YXIgYnQ9L1xzLzt2YXIgZ3Q9L15ccysvO2Z1bmN0aW9uIGp0KHQpe3JldHVybiB0P3Quc2xpY2UoMCxmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tJiZidC50ZXN0KHQuY2hhckF0KHIpKTspO3JldHVybiByfSh0KSsxKS5yZXBsYWNlKGd0LCIiKTp0fXZhciBTdD1OYU4sT3Q9L15bLStdMHhbMC05YS1mXSskL2ksbXQ9L14wYlswMV0rJC9pLHd0PS9eMG9bMC03XSskL2ksJHQ9cGFyc2VJbnQ7ZnVuY3Rpb24geHQodCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0O2lmKGQodCkpcmV0dXJuIFN0O2lmKGoodCkpe3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PWoocik/cisiIjpyfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PWp0KHQpO3ZhciBlPW10LnRlc3QodCk7cmV0dXJuIGV8fHd0LnRlc3QodCk/JHQodC5zbGljZSgyKSxlPzI6OCk6T3QudGVzdCh0KT9TdDordH12YXIgUnQ9MS8wLHp0PTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBBdCh0KXtyZXR1cm4gdD8odD14dCh0KSk9PT1SdHx8dD09PS1SdD8odDwwPy0xOjEpKnp0OnQ9PXQ/dDowOjA9PT10P3Q6MH1mdW5jdGlvbiBGdCh0KXt2YXIgcj1BdCh0KSxlPXIlMTtyZXR1cm4gcj09cj9lP3ItZTpyOjB9ZnVuY3Rpb24gTnQodCl7bGV0IHI9ITE7aWYoZHQodCkpcj0haXNOYU4oTnVtYmVyKHQpKTtlbHNlIGlmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7aWYodnQodCkpcmV0dXJuITE7cj0hMH1yZXR1cm4gcn1mdW5jdGlvbiBQdCh0KXtpZighTnQodCkpcmV0dXJuIDA7cmV0dXJuIEF0KHQpfWZ1bmN0aW9uIGt0KHQpe3JldHVybiEhTnQodCkmJih0PVB0KHQpLCJudW1iZXIiPT10eXBlb2Yocj10KSYmcj09RnQocikpO3ZhciByfXZhciBFdD1pLmlzRmluaXRlLEN0PU1hdGgubWluO3ZhciBJdD1mdW5jdGlvbih0KXt2YXIgcj1NYXRoW3RdO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKHQ9eHQodCksKGU9bnVsbD09ZT8wOkN0KEZ0KGUpLDI5MikpJiZFdCh0KSl7dmFyIG49KHV0KHQpKyJlIikuc3BsaXQoImUiKTtyZXR1cm4rKChuPSh1dChyKG5bMF0rImUiKygrblsxXStlKSkpKyJlIikuc3BsaXQoImUiKSlbMF0rImUiKygrblsxXS1lKSl9cmV0dXJuIHIodCl9fSgicm91bmQiKSxUdD1JdDtmdW5jdGlvbiBNdCh0KXtpZighTnQodCkpcmV0dXJuIDA7dD1QdCh0KTtsZXQgcj1UdCh0KTtyZXR1cm4iMCI9PT1TdHJpbmcocik/MDpyfWZ1bmN0aW9uIHF0KHQpe2lmKCFrdCh0KSlyZXR1cm4hMTtyZXR1cm4gTXQodCk+PTB9ZnVuY3Rpb24gTHQodCxyKXtpZighZHQodCkpcmV0dXJuIiI7aWYoIXF0KHIpKXJldHVybiIiO2lmKDA9PT0ocj1NdChyKSkpcmV0dXJuIiI7bGV0IGU9dC5sZW5ndGgtcjtyZXR1cm4gZTwwJiYoZT0wKSx0LnN1YnN0cmluZyhlLGUrcil9ZnVuY3Rpb24gVXQodCxyKXtyZXR1cm4gZHQodCkmJnF0KHIpPzA9PT0ocj1NdChyKSk/dDpmdW5jdGlvbih0LHIpe3JldHVybiBkdCh0KSYmcXQocik/MD09PShyPU10KHIpKT8iIjp0LnN1YnN0cmluZygwLHIpOiIifSh0LHQubGVuZ3RoLXIpOiIifWZ1bmN0aW9uIER0KHQpe2lmKCFkdCh0KSlyZXR1cm57cGF0aDoiIixpc1Jvb3Q6ITF9O2Zvcig7dC5pbmRleE9mKCJcXFxcIik+PTA7KXQ9dC5yZXBsYWNlKCJcXFxcIiwiXFwiKTtmb3IoO3QuaW5kZXhPZigiLy8iKT49MDspdD10LnJlcGxhY2UoIi8vIiwiLyIpO2lmKCI6Ij09PUx0KHQsMSkpcmV0dXJue3BhdGg6YCR7dH1cXGAsaXNSb290OiEwfTtpZigiXFwiPT09THQodCwxKSl7bGV0IHI9VXQodCwxKTtyZXR1cm4iOiI9PT1MdChyLDEpP3twYXRoOnQsaXNSb290OiEwfTp7cGF0aDpyLGlzUm9vdDohMX19aWYoIi8iPT09THQodCwxKSl7bGV0IHI9VXQodCwxKTtyZXR1cm4gMD09PXIubGVuZ3RoP3twYXRoOnQsaXNSb290OiEwfTp7cGF0aDpyLGlzUm9vdDohMX19cmV0dXJue3BhdGg6dCxpc1Jvb3Q6ITF9fWZ1bmN0aW9uIEd0KHQpe2lmKCFkdCh0KSlyZXR1cm4iIjtsZXQgcj1EdCh0KTtpZihyLmlzUm9vdClyZXR1cm4gci5wYXRoO2xldCBlPWZ1bmN0aW9uKHQpe2lmKCFkdCh0KSlyZXR1cm4iIjtsZXQgcj1EdCh0KTtpZihyLmlzUm9vdClyZXR1cm4gci5wYXRoO2xldCBlPXIucGF0aDt0cnl7ZT1lLnNwbGl0KCJcXCIpLnBvcCgpLnNwbGl0KCIvIikucG9wKCl9Y2F0Y2godCl7fXJldHVybiBlfSh0PXIucGF0aCk7aWYoIWR0KGUpKXJldHVybiB0O2xldCBuPUR0KHQ9VXQodCxlLmxlbmd0aCkpO3JldHVybiBuLmlzUm9vdCxuLnBhdGh9ZnVuY3Rpb24gV3QodCxyPXt9KXtsZXQgZT1mdChyLCJmcyIpO2lmKCFlLmV4aXN0c1N5bmModCkpcmV0dXJuITE7bGV0IG49ZS5sc3RhdFN5bmModCk7cmV0dXJuIW4uaXNGaWxlKCkmJiFuLmlzU3ltYm9saWNMaW5rKCl9ZnVuY3Rpb24gQnQodCxyPXt9KXtsZXQgZT1mdChyLCJmcyIpO3JldHVybiEhZS5leGlzdHNTeW5jKHQpJiYoIWUubHN0YXRTeW5jKHQpLmlzRGlyZWN0b3J5KCkmJiFlLmxzdGF0U3luYyh0KS5pc1N5bWJvbGljTGluaygpKX1mdW5jdGlvbiBIdCh0LHI9e30pe2xldCBlPWZ0KHIsImZzIik7aWYoIWUuZXhpc3RzU3luYyh0KSlyZXR1cm57c3VjY2VzczoiZmlsZSBkb2VzIG5vdCBleGlzdDogIit0fTtpZighQnQodCx7ZnM6ZX0pKXJldHVybntlcnJvcjoiaW5wdXQgcGF0aCBpcyBub3QgYSBmaWxlOiAiK3R9O3RyeXtlLnVubGlua1N5bmModCl9Y2F0Y2godCl7cmV0dXJue2Vycm9yOnR9fXJldHVybntzdWNjZXNzOiJkb25lOiAiK3R9fWFzeW5jIGZ1bmN0aW9uIEp0KHQscixlLG49e30pe2xldCBvPSIiLGk9ZnQobiwiZnMiKTtpZighcHQodT1yKXx8MD09PXUubGVuZ3RofHwxPT09dS5sZW5ndGgmJl90KHVbMF0pKXRocm93IG5ldyBFcnJvcigiZnBzSW4gaW4gbm90IGFuIGVmZmVjdGl2ZSBhcnJheSIpO3ZhciB1O2xldCBhPUd0KGUpO1d0KGEse2ZzOml9KXx8ZnVuY3Rpb24odCxyPXt9KXtsZXQgZT1mdChyLCJmcyIpO2lmKFd0KHQse2ZzOmV9KSlyZXR1cm57c3VjY2VzczoiaW5wdXQgZm9sZGVyIGlzIGFscmVhZHkgZXhpc3RzOiAiK3R9O2lmKGUuZXhpc3RzU3luYyh0KSlyZXR1cm57ZXJyb3I6ImlucHV0IHBhdGggYWxyZWFkeSBleGlzdHM6ICIrdH07dHJ5e2UubWtkaXJTeW5jKHQse3JlY3Vyc2l2ZTohMH0pfWNhdGNoKHQpe3JldHVybntlcnJvcjp0fX19KGEse2ZzOml9KTtsZXQgYz1sdCgpO3RyeXtsZXQgbj1pLmNyZWF0ZVdyaXRlU3RyZWFtKGUpO2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCsrKXtsZXQgZT1yW3RdO2lmKCFCdChlLHtmczppfSkpdGhyb3cgbmV3IEVycm9yKGBmcEluWyR7ZX1dIGlzIG5vdCBhIGZpbGVgKTtsZXQgdT0oKT0+e2xldCB0PWx0KCkscj1pLmNyZWF0ZVJlYWRTdHJlYW0oZSk7cmV0dXJuIHIub24oImVycm9yIiwocj0+e289ci5tZXNzYWdlLHQucmVqZWN0KHIpfSkpLHIub24oImVuZCIsKCgpPT57SHQoZSx7ZnM6aX0pLHQucmVzb2x2ZSgpfSkpLHIucGlwZShuLHtlbmQ6ITF9KSx0fTthd2FpdCB1KCl9bi5lbmQoKSxuLm9uKCJlcnJvciIsKHQ9PntvPXQubWVzc2FnZSxjLnJlamVjdChvKX0pKSxuLm9uKCJmaW5pc2giLCgoKT0+e2xldCByPXtmaWxlbmFtZTp0LHBhdGg6ZX07Yy5yZXNvbHZlKHIpfSkpfWNhdGNoKHQpe289dC5tZXNzYWdlLGMucmVqZWN0KG8pfXJldHVybiBjfWxldCBtZXJnZUZpbGVzPWFzeW5jKGUsbixvLGkpPT57bGV0IHU9W107Zm9yKGxldCByPTA7cjxvO3IrKyl7bGV0IG89dC5qb2luKGUsYCR7bn1fJHtyfWApO3UucHVzaChvKX1sZXQgYT10LmpvaW4oZSxuKSxjPWF3YWl0IGFzeW5jIGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gSnQodCxlLG4se2ZzOnJ9KX0oaSx1LGEpO3JldHVybiBjfTsKCgpsZXQgaW5zdGFuY2UgPSBudWxsCmZ1bmN0aW9uIGluaXQoaW5wdXQpewoKICAgIC8vaW5pdAogICAgbGV0IHIKICAgIAogICAgICAgIHIgPSB7CiAgICAgICAgICAgIG1haW46IG1lcmdlRmlsZXMKICAgICAgICB9CiAgICAgICAgCgogICAgLy9vbgogICAgCgogICAgLy9zYXZlCiAgICBpbnN0YW5jZSA9IHIKCn0KCmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHsKICAgIAogICAgICAgIHBhcmVudFBvcnQucG9zdE1lc3NhZ2UoZGF0YSkKICAgICAgICAKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcnVuJyxkYXRhKQoKICAgIC8vbW9kZQogICAgbGV0IG1vZGUgPSBkYXRhLm1vZGUKCiAgICAvL2NoZWNrCiAgICBpZihtb2RlICE9PSAnaW5pdCcgJiYgbW9kZSAhPT0gJ2NhbGwnKXsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICAvL2luaXQKICAgIGlmKG1vZGUgPT09ICdpbml0Jyl7CiAgICAgICAgCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy90eXBlCiAgICAgICAgICAgIGxldCB0eXBlID0gZGF0YS50eXBlCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKICAgIAogICAgICAgICAgICAvL2luc3RhbmNlCiAgICAgICAgICAgIGlmKHR5cGUgPT09ICdmdW5jdGlvbicpewogICAgICAgICAgICAgICAgaW5pdCguLi5pbnB1dCkKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT09ICdvYmplY3QnKXsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gbWVyZ2VGaWxlcwogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgIAogICAgICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgICAgICBtb2RlOiAnZW1pdCcsCiAgICAgICAgICAgICAgICBldk5hbWU6ICdlcnJvcicsCiAgICAgICAgICAgICAgICBtc2c6IGVyciwKICAgICAgICAgICAgfQogICAgICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgICAgIH0KICAgICAgICAgICAgCiAgICB9CgogICAgLy9jaGVjawogICAgaWYobW9kZSA9PT0gJ2NhbGwnKXsKICAgICAgICBsZXQgc3RhdGUgPSAnJwogICAgICAgIGxldCBtc2cgPSBudWxsCgogICAgICAgIHRyeXsKCiAgICAgICAgICAgIC8vZnVuCiAgICAgICAgICAgIGxldCBmdW4gPSBpbnN0YW5jZVtkYXRhLmZ1bl0KCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAoKICAgICAgICAgICAgLy9leGVjCiAgICAgICAgICAgIGF3YWl0IGZ1biguLi5pbnB1dCkKICAgICAgICAgICAgICAgIC50aGVuKChzdWMpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nc3VjY2VzcycKICAgICAgICAgICAgICAgICAgICBtc2c9c3VjCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nZXJyb3InCiAgICAgICAgICAgICAgICAgICAgbXNnPWVycgogICAgICAgICAgICAgICAgfSkKCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgICAgIHN0YXRlID0gJ2Vycm9yJwogICAgICAgICAgICBtc2cgPSBlcnIKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgIG1vZGU6ICdyZXR1cm4nLAogICAgICAgICAgICBpZDogZGF0YS5pZCwKICAgICAgICAgICAgZnVuOiBkYXRhLmZ1biwKICAgICAgICAgICAgc3RhdGUsCiAgICAgICAgICAgIG1zZywKICAgICAgICB9CiAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgIH0KCn0KCmZ1bmN0aW9uIHJlY3ZNZXNzYWdlKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcmVjdjonLCBkYXRhKQoKICAgIC8vZGF0YVJlY3YKICAgIGxldCBkYXRhUmVjdiA9IGRhdGEKCiAgICAvL3J1bgogICAgcnVuKGRhdGFSZWN2KQoKfQoKCiAgICAgICAgcGFyZW50UG9ydC5vbignbWVzc2FnZScsIHJlY3ZNZXNzYWdlKQogICAgICAgIAoKdHJ5ewogICAgcHJvY2Vzcy5vbigndW5oYW5kbGVkUmVqZWN0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmhhbmRsZWRSZWplY3Rpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgZXJyKQogICAgfSkKfQpjYXRjaChlcnIpe30KCg==",Buffer.from(i,"base64").toString("utf8"));var i;function o(){let r=new n,i=function(e){try{return new t.Worker(e,{eval:!0})}catch(t){c(t)}}(e);if(!i)return c("invalid worker"),null;function o(){let t=function(){let t,e,n=new Promise((function(){t=arguments[0],e=arguments[1]}));return n.resolve=t,n.reject=e,n}(),e=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,e=[],n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=n.length;for(let i=0;i<t;i++)e[i]=n[0|Math.random()*r];return e.join("")}(),n={mode:"call",id:e,fun:"main",input:[...arguments]};return i.postMessage(n),r.once(e,(e=>{"success"===e.state?t.resolve(e.msg):t.reject(e.msg)})),t}function c(t){r.emit("error",t)}return i.on("message",(function(t){let e=t,n=e.mode;"emit"!==n&&"return"!==n||("emit"===n&&r.emit(e.evName,e.msg),"return"===n&&r.emit(e.id,e))})),i.on("error",c),i.on("exit",(t=>{1!==t&&c("exit code["+t+"] !== 1")})),function(){let t={mode:"init",type:"function",input:[...arguments]};i.postMessage(t)}([...arguments]),r.main=o,r.main=o,r.terminate=function(){i?(i.terminate(),i=void 0):c("worker has been terminated")},r}r=async function(){let t=[...arguments],e=o();return await e.main(...t).finally((()=>{e.terminate()}))}}();try{process.on("unhandledRejection",(t=>{console.log("outer:unhandledRejection",t)})),process.on("uncaughtException",(t=>{console.log("outer:uncaughtException",t)})),process.on("uncaughtExceptionMonitor",(t=>{console.log("outer:uncaughtExceptionMonitor",t)}))}catch(t){}return r}(t)}({get exports(){return e},set exports(t){e=t}});var n=e,r={};!function(t,e){t.exports=function(){const t="function"==typeof Buffer,e="function"==typeof TextDecoder?new TextDecoder:void 0,n=(t=>{let e={};return t.forEach(((t,n)=>e[t]=n)),e})(("function"==typeof TextEncoder&&new TextEncoder,Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="))),r=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,i=String.fromCharCode.bind(String),o="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):t=>new Uint8Array(Array.prototype.slice.call(t,0)),c=t=>t.replace(/[^A-Za-z0-9\+\/]/g,""),l=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,d=t=>{switch(t.length){case 4:var e=((7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3))-65536;return i(55296+(e>>>10))+i(56320+(1023&e));case 3:return i((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return i((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},u=t=>t.replace(l,d),a=t=>{if(t=t.replace(/\s+/g,""),!r.test(t))throw new TypeError("malformed base64.");t+="==".slice(2-(3&t.length));let e,o,c,l="";for(let r=0;r<t.length;)e=n[t.charAt(r++)]<<18|n[t.charAt(r++)]<<12|(o=n[t.charAt(r++)])<<6|(c=n[t.charAt(r++)]),l+=64===o?i(e>>16&255):64===c?i(e>>16&255,e>>8&255):i(e>>16&255,e>>8&255,255&e);return l},s="function"==typeof atob?t=>atob(c(t)):t?t=>Buffer.from(t,"base64").toString("binary"):a,I=t?t=>o(Buffer.from(t,"base64")):t=>o(s(t).split("").map((t=>t.charCodeAt(0)))),p=t?t=>Buffer.from(t,"base64").toString("utf8"):e?t=>e.decode(I(t)):t=>u(s(t)),g=t=>c(t.replace(/[-_]/g,(t=>"-"==t?"+":"/"))),C=t=>p(g(t)),y=C;var m={};!function(t){var e=Object.prototype.hasOwnProperty,n="~";function r(){}function i(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(t,e,r,o,c){if("function"!=typeof r)throw new TypeError("The listener must be a function");var l=new i(r,o||t,c),d=n?n+e:e;return t._events[d]?t._events[d].fn?t._events[d]=[t._events[d],l]:t._events[d].push(l):(t._events[d]=l,t._eventsCount++),t}function c(t,e){0==--t._eventsCount?t._events=new r:delete t._events[e]}function l(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),l.prototype.eventNames=function(){var t,r,i=[];if(0===this._eventsCount)return i;for(r in t=this._events)e.call(t,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(t)):i},l.prototype.listeners=function(t){var e=n?n+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,o=r.length,c=new Array(o);i<o;i++)c[i]=r[i].fn;return c},l.prototype.listenerCount=function(t){var e=n?n+t:t,r=this._events[e];return r?r.fn?1:r.length:0},l.prototype.emit=function(t,e,r,i,o,c){var l=n?n+t:t;if(!this._events[l])return!1;var d,u,a=this._events[l],s=arguments.length;if(a.fn){switch(a.once&&this.removeListener(t,a.fn,void 0,!0),s){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,e),!0;case 3:return a.fn.call(a.context,e,r),!0;case 4:return a.fn.call(a.context,e,r,i),!0;case 5:return a.fn.call(a.context,e,r,i,o),!0;case 6:return a.fn.call(a.context,e,r,i,o,c),!0}for(u=1,d=new Array(s-1);u<s;u++)d[u-1]=arguments[u];a.fn.apply(a.context,d)}else{var I,p=a.length;for(u=0;u<p;u++)switch(a[u].once&&this.removeListener(t,a[u].fn,void 0,!0),s){case 1:a[u].fn.call(a[u].context);break;case 2:a[u].fn.call(a[u].context,e);break;case 3:a[u].fn.call(a[u].context,e,r);break;case 4:a[u].fn.call(a[u].context,e,r,i);break;default:if(!d)for(I=1,d=new Array(s-1);I<s;I++)d[I-1]=arguments[I];a[u].fn.apply(a[u].context,d)}}return!0},l.prototype.on=function(t,e,n){return o(this,t,e,n,!1)},l.prototype.once=function(t,e,n){return o(this,t,e,n,!0)},l.prototype.removeListener=function(t,e,r,i){var o=n?n+t:t;if(!this._events[o])return this;if(!e)return c(this,o),this;var l=this._events[o];if(l.fn)l.fn!==e||i&&!l.once||r&&l.context!==r||c(this,o);else{for(var d=0,u=[],a=l.length;d<a;d++)(l[d].fn!==e||i&&!l[d].once||r&&l[d].context!==r)&&u.push(l[d]);u.length?this._events[o]=1===u.length?u[0]:u:c(this,o)}return this},l.prototype.removeAllListeners=function(t){var e;return t?(e=n?n+t:t,this._events[e]&&c(this,e)):(this._events=new r,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=n,l.EventEmitter=l,t.exports=l}({get exports(){return m},set exports(t){m=t}});var b=m;let h;!function(){if("browser"!=("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let t=y("CgoKInVzZSBzdHJpY3QiO3ZhciB0PXJlcXVpcmUoInBhdGgiKSxyPXJlcXVpcmUoImZzIiksZT1BcnJheS5pc0FycmF5LG49Im9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbCYmZ2xvYmFsLk9iamVjdD09PU9iamVjdCYmZ2xvYmFsLG89Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixpPW58fG98fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksdT1pLlN5bWJvbCxhPU9iamVjdC5wcm90b3R5cGUsYz1hLmhhc093blByb3BlcnR5LHM9YS50b1N0cmluZyxmPXU/dS50b1N0cmluZ1RhZzp2b2lkIDA7dmFyIGw9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIgcD0iW29iamVjdCBOdWxsXSIsaD0iW29iamVjdCBVbmRlZmluZWRdIix5PXU/dS50b1N0cmluZ1RhZzp2b2lkIDA7ZnVuY3Rpb24gdih0KXtyZXR1cm4gbnVsbD09dD92b2lkIDA9PT10P2g6cDp5JiZ5IGluIE9iamVjdCh0KT9mdW5jdGlvbih0KXt2YXIgcj1jLmNhbGwodCxmKSxlPXRbZl07dHJ5e3RbZl09dm9pZCAwO3ZhciBuPSEwfWNhdGNoKHQpe312YXIgbz1zLmNhbGwodCk7cmV0dXJuIG4mJihyP3RbZl09ZTpkZWxldGUgdFtmXSksb30odCk6ZnVuY3Rpb24odCl7cmV0dXJuIGwuY2FsbCh0KX0odCl9dmFyIF89IltvYmplY3QgU3ltYm9sXSI7ZnVuY3Rpb24gZCh0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR8fGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10JiYib2JqZWN0Ij09dHlwZW9mIHR9KHQpJiZ2KHQpPT1ffXZhciBiPS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLGc9L15cdyokLztmdW5jdGlvbiBqKHQpe3ZhciByPXR5cGVvZiB0O3JldHVybiBudWxsIT10JiYoIm9iamVjdCI9PXJ8fCJmdW5jdGlvbiI9PXIpfXZhciBTPSJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIixPPSJbb2JqZWN0IEZ1bmN0aW9uXSIsbT0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLHc9IltvYmplY3QgUHJveHldIjt2YXIgJCx4PWlbIl9fY29yZS1qc19zaGFyZWRfXyJdLFI9KCQ9L1teLl0rJC8uZXhlYyh4JiZ4LmtleXMmJngua2V5cy5JRV9QUk9UT3x8IiIpKT8iU3ltYm9sKHNyYylfMS4iKyQ6IiI7dmFyIHo9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO3ZhciBBPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLEY9RnVuY3Rpb24ucHJvdG90eXBlLE49T2JqZWN0LnByb3RvdHlwZSxQPUYudG9TdHJpbmcsaz1OLmhhc093blByb3BlcnR5LEU9UmVnRXhwKCJeIitQLmNhbGwoaykucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7ZnVuY3Rpb24gQyh0KXtpZighaih0KXx8KHI9dCxSJiZSIGluIHIpKXJldHVybiExO3ZhciByLGU9ZnVuY3Rpb24odCl7aWYoIWoodCkpcmV0dXJuITE7dmFyIHI9dih0KTtyZXR1cm4gcj09T3x8cj09bXx8cj09U3x8cj09d30odCk/RTpBO3JldHVybiBlLnRlc3QoZnVuY3Rpb24odCl7aWYobnVsbCE9dCl7dHJ5e3JldHVybiB6LmNhbGwodCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gdCsiIn1jYXRjaCh0KXt9fXJldHVybiIifSh0KSl9ZnVuY3Rpb24gSSh0LHIpe3ZhciBlPWZ1bmN0aW9uKHQscil7cmV0dXJuIG51bGw9PXQ/dm9pZCAwOnRbcl19KHQscik7cmV0dXJuIEMoZSk/ZTp2b2lkIDB9dmFyIFQ9SShPYmplY3QsImNyZWF0ZSIpO3ZhciBNPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIHE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBMKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fWZ1bmN0aW9uIFUodCxyKXtmb3IodmFyIGUsbixvPXQubGVuZ3RoO28tLTspaWYoKGU9dFtvXVswXSk9PT0obj1yKXx8ZSE9ZSYmbiE9bilyZXR1cm4gbztyZXR1cm4tMX1MLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189VD9UKG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxMLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5oYXModCkmJmRlbGV0ZSB0aGlzLl9fZGF0YV9fW3RdO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LEwucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fO2lmKFQpe3ZhciBlPXJbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09ZT92b2lkIDA6ZX1yZXR1cm4gTS5jYWxsKHIsdCk/clt0XTp2b2lkIDB9LEwucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fO3JldHVybiBUP3ZvaWQgMCE9PXJbdF06cS5jYWxsKHIsdCl9LEwucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIHRoaXMuc2l6ZSs9dGhpcy5oYXModCk/MDoxLGVbdF09VCYmdm9pZCAwPT09cj8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6cix0aGlzfTt2YXIgRD1BcnJheS5wcm90b3R5cGUuc3BsaWNlO2Z1bmN0aW9uIEcodCl7dmFyIHI9LTEsZT1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK3I8ZTspe3ZhciBuPXRbcl07dGhpcy5zZXQoblswXSxuWzFdKX19Ry5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfSxHLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPVUocix0KTtyZXR1cm4hKGU8MCkmJihlPT1yLmxlbmd0aC0xP3IucG9wKCk6RC5jYWxsKHIsZSwxKSwtLXRoaXMuc2l6ZSwhMCl9LEcucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fLGU9VShyLHQpO3JldHVybiBlPDA/dm9pZCAwOnJbZV1bMV19LEcucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gVSh0aGlzLl9fZGF0YV9fLHQpPi0xfSxHLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fLG49VShlLHQpO3JldHVybiBuPDA/KCsrdGhpcy5zaXplLGUucHVzaChbdCxyXSkpOmVbbl1bMV09cix0aGlzfTt2YXIgVz1JKGksIk1hcCIpO2Z1bmN0aW9uIEIodCxyKXt2YXIgZSxuLG89dC5fX2RhdGFfXztyZXR1cm4oInN0cmluZyI9PShuPXR5cGVvZihlPXIpKXx8Im51bWJlciI9PW58fCJzeW1ib2wiPT1ufHwiYm9vbGVhbiI9PW4/Il9fcHJvdG9fXyIhPT1lOm51bGw9PT1lKT9vWyJzdHJpbmciPT10eXBlb2Ygcj8ic3RyaW5nIjoiaGFzaCJdOm8ubWFwfWZ1bmN0aW9uIEgodCl7dmFyIHI9LTEsZT1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK3I8ZTspe3ZhciBuPXRbcl07dGhpcy5zZXQoblswXSxuWzFdKX19SC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBMLG1hcDpuZXcoV3x8Ryksc3RyaW5nOm5ldyBMfX0sSC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPUIodGhpcyx0KS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZS09cj8xOjAscn0sSC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBCKHRoaXMsdCkuZ2V0KHQpfSxILnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIEIodGhpcyx0KS5oYXModCl9LEgucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3ZhciBlPUIodGhpcyx0KSxuPWUuc2l6ZTtyZXR1cm4gZS5zZXQodCxyKSx0aGlzLnNpemUrPWUuc2l6ZT09bj8wOjEsdGhpc307dmFyIEo9IkV4cGVjdGVkIGEgZnVuY3Rpb24iO2Z1bmN0aW9uIEsodCxyKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdHx8bnVsbCE9ciYmImZ1bmN0aW9uIiE9dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcihKKTt2YXIgZT1mdW5jdGlvbigpe3ZhciBuPWFyZ3VtZW50cyxvPXI/ci5hcHBseSh0aGlzLG4pOm5bMF0saT1lLmNhY2hlO2lmKGkuaGFzKG8pKXJldHVybiBpLmdldChvKTt2YXIgdT10LmFwcGx5KHRoaXMsbik7cmV0dXJuIGUuY2FjaGU9aS5zZXQobyx1KXx8aSx1fTtyZXR1cm4gZS5jYWNoZT1uZXcoSy5DYWNoZXx8SCksZX1LLkNhY2hlPUg7dmFyIFEsVixYLFk9L1teLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/OlwufFxbXF18JCkpL2csWj0vXFwoXFwpPy9nLHR0PShRPWZ1bmN0aW9uKHQpe3ZhciByPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmci5wdXNoKCIiKSx0LnJlcGxhY2UoWSwoZnVuY3Rpb24odCxlLG4sbyl7ci5wdXNoKG4/by5yZXBsYWNlKFosIiQxIik6ZXx8dCl9KSkscn0sVj1LKFEsKGZ1bmN0aW9uKHQpe3JldHVybiA1MDA9PT1YLnNpemUmJlguY2xlYXIoKSx0fSkpLFg9Vi5jYWNoZSxWKSxydD10dDt2YXIgZXQ9MS8wLG50PXU/dS5wcm90b3R5cGU6dm9pZCAwLG90PW50P250LnRvU3RyaW5nOnZvaWQgMDtmdW5jdGlvbiBpdCh0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoZSh0KSlyZXR1cm4gZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgsbz1BcnJheShuKTsrK2U8bjspb1tlXT1yKHRbZV0sZSx0KTtyZXR1cm4gb30odCxpdCkrIiI7aWYoZCh0KSlyZXR1cm4gb3Q/b3QuY2FsbCh0KToiIjt2YXIgcj10KyIiO3JldHVybiIwIj09ciYmMS90PT0tZXQ/Ii0wIjpyfWZ1bmN0aW9uIHV0KHQpe3JldHVybiBudWxsPT10PyIiOml0KHQpfWZ1bmN0aW9uIGF0KHQscil7cmV0dXJuIGUodCk/dDpmdW5jdGlvbih0LHIpe2lmKGUodCkpcmV0dXJuITE7dmFyIG49dHlwZW9mIHQ7cmV0dXJuISgibnVtYmVyIiE9biYmInN5bWJvbCIhPW4mJiJib29sZWFuIiE9biYmbnVsbCE9dCYmIWQodCkpfHxnLnRlc3QodCl8fCFiLnRlc3QodCl8fG51bGwhPXImJnQgaW4gT2JqZWN0KHIpfSh0LHIpP1t0XTpydCh1dCh0KSl9dmFyIGN0PTEvMDtmdW5jdGlvbiBzdCh0KXtpZigic3RyaW5nIj09dHlwZW9mIHR8fGQodCkpcmV0dXJuIHQ7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LWN0PyItMCI6cn1mdW5jdGlvbiBmdCh0LHIsZSl7dmFyIG49bnVsbD09dD92b2lkIDA6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9MCxuPShyPWF0KHIsdCkpLmxlbmd0aDtudWxsIT10JiZlPG47KXQ9dFtzdChyW2UrK10pXTtyZXR1cm4gZSYmZT09bj90OnZvaWQgMH0odCxyKTtyZXR1cm4gdm9pZCAwPT09bj9lOm59ZnVuY3Rpb24gbHQoKXtsZXQgdCxyLGU9bmV3IFByb21pc2UoKGZ1bmN0aW9uKCl7dD1hcmd1bWVudHNbMF0scj1hcmd1bWVudHNbMV19KSk7cmV0dXJuIGUucmVzb2x2ZT10LGUucmVqZWN0PXIsZX1mdW5jdGlvbiBwdCh0KXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIGh0KHQpe2lmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7Zm9yKGxldCByIGluIHQpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24geXQodCl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gdnQodCl7cmV0dXJuIHQhPXR9ZnVuY3Rpb24gX3QodCl7cmV0dXJuISFmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBVbmRlZmluZWRdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCl8fCghIWZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bGxdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCl8fCghIWh0KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4hKCF5dCh0KXx8IiIhPT10KX0odCl8fCghIWZ1bmN0aW9uKHQpe3JldHVybiEhcHQodCkmJjA9PT10Lmxlbmd0aH0odCl8fCEhdnQodCkpKSkpfWZ1bmN0aW9uIGR0KHQpe3JldHVybiEoIXl0KHQpfHwiIj09PXQpfXZhciBidD0vXHMvO3ZhciBndD0vXlxzKy87ZnVuY3Rpb24ganQodCl7cmV0dXJuIHQ/dC5zbGljZSgwLGZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aDtyLS0mJmJ0LnRlc3QodC5jaGFyQXQocikpOyk7cmV0dXJuIHJ9KHQpKzEpLnJlcGxhY2UoZ3QsIiIpOnR9dmFyIFN0PU5hTixPdD0vXlstK10weFswLTlhLWZdKyQvaSxtdD0vXjBiWzAxXSskL2ksd3Q9L14wb1swLTddKyQvaSwkdD1wYXJzZUludDtmdW5jdGlvbiB4dCh0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoZCh0KSlyZXR1cm4gU3Q7aWYoaih0KSl7dmFyIHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQudmFsdWVPZj90LnZhbHVlT2YoKTp0O3Q9aihyKT9yKyIiOnJ9aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiAwPT09dD90Oit0O3Q9anQodCk7dmFyIGU9bXQudGVzdCh0KTtyZXR1cm4gZXx8d3QudGVzdCh0KT8kdCh0LnNsaWNlKDIpLGU/Mjo4KTpPdC50ZXN0KHQpP1N0Oit0fXZhciBSdD0xLzAsenQ9MTc5NzY5MzEzNDg2MjMxNTdlMjkyO2Z1bmN0aW9uIEF0KHQpe3JldHVybiB0Pyh0PXh0KHQpKT09PVJ0fHx0PT09LVJ0Pyh0PDA/LTE6MSkqenQ6dD09dD90OjA6MD09PXQ/dDowfWZ1bmN0aW9uIEZ0KHQpe3ZhciByPUF0KHQpLGU9ciUxO3JldHVybiByPT1yP2U/ci1lOnI6MH1mdW5jdGlvbiBOdCh0KXtsZXQgcj0hMTtpZihkdCh0KSlyPSFpc05hTihOdW1iZXIodCkpO2Vsc2UgaWYoZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgTnVtYmVyXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9KHQpKXtpZih2dCh0KSlyZXR1cm4hMTtyPSEwfXJldHVybiByfWZ1bmN0aW9uIFB0KHQpe2lmKCFOdCh0KSlyZXR1cm4gMDtyZXR1cm4gQXQodCl9ZnVuY3Rpb24ga3QodCl7cmV0dXJuISFOdCh0KSYmKHQ9UHQodCksIm51bWJlciI9PXR5cGVvZihyPXQpJiZyPT1GdChyKSk7dmFyIHJ9dmFyIEV0PWkuaXNGaW5pdGUsQ3Q9TWF0aC5taW47dmFyIEl0PWZ1bmN0aW9uKHQpe3ZhciByPU1hdGhbdF07cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYodD14dCh0KSwoZT1udWxsPT1lPzA6Q3QoRnQoZSksMjkyKSkmJkV0KHQpKXt2YXIgbj0odXQodCkrImUiKS5zcGxpdCgiZSIpO3JldHVybisoKG49KHV0KHIoblswXSsiZSIrKCtuWzFdK2UpKSkrImUiKS5zcGxpdCgiZSIpKVswXSsiZSIrKCtuWzFdLWUpKX1yZXR1cm4gcih0KX19KCJyb3VuZCIpLFR0PUl0O2Z1bmN0aW9uIE10KHQpe2lmKCFOdCh0KSlyZXR1cm4gMDt0PVB0KHQpO2xldCByPVR0KHQpO3JldHVybiIwIj09PVN0cmluZyhyKT8wOnJ9ZnVuY3Rpb24gcXQodCl7aWYoIWt0KHQpKXJldHVybiExO3JldHVybiBNdCh0KT49MH1mdW5jdGlvbiBMdCh0LHIpe2lmKCFkdCh0KSlyZXR1cm4iIjtpZighcXQocikpcmV0dXJuIiI7aWYoMD09PShyPU10KHIpKSlyZXR1cm4iIjtsZXQgZT10Lmxlbmd0aC1yO3JldHVybiBlPDAmJihlPTApLHQuc3Vic3RyaW5nKGUsZStyKX1mdW5jdGlvbiBVdCh0LHIpe3JldHVybiBkdCh0KSYmcXQocik/MD09PShyPU10KHIpKT90OmZ1bmN0aW9uKHQscil7cmV0dXJuIGR0KHQpJiZxdChyKT8wPT09KHI9TXQocikpPyIiOnQuc3Vic3RyaW5nKDAscik6IiJ9KHQsdC5sZW5ndGgtcik6IiJ9ZnVuY3Rpb24gRHQodCl7aWYoIWR0KHQpKXJldHVybntwYXRoOiIiLGlzUm9vdDohMX07Zm9yKDt0LmluZGV4T2YoIlxcXFwiKT49MDspdD10LnJlcGxhY2UoIlxcXFwiLCJcXCIpO2Zvcig7dC5pbmRleE9mKCIvLyIpPj0wOyl0PXQucmVwbGFjZSgiLy8iLCIvIik7aWYoIjoiPT09THQodCwxKSlyZXR1cm57cGF0aDpgJHt0fVxcYCxpc1Jvb3Q6ITB9O2lmKCJcXCI9PT1MdCh0LDEpKXtsZXQgcj1VdCh0LDEpO3JldHVybiI6Ij09PUx0KHIsMSk/e3BhdGg6dCxpc1Jvb3Q6ITB9OntwYXRoOnIsaXNSb290OiExfX1pZigiLyI9PT1MdCh0LDEpKXtsZXQgcj1VdCh0LDEpO3JldHVybiAwPT09ci5sZW5ndGg/e3BhdGg6dCxpc1Jvb3Q6ITB9OntwYXRoOnIsaXNSb290OiExfX1yZXR1cm57cGF0aDp0LGlzUm9vdDohMX19ZnVuY3Rpb24gR3QodCl7aWYoIWR0KHQpKXJldHVybiIiO2xldCByPUR0KHQpO2lmKHIuaXNSb290KXJldHVybiByLnBhdGg7bGV0IGU9ZnVuY3Rpb24odCl7aWYoIWR0KHQpKXJldHVybiIiO2xldCByPUR0KHQpO2lmKHIuaXNSb290KXJldHVybiByLnBhdGg7bGV0IGU9ci5wYXRoO3RyeXtlPWUuc3BsaXQoIlxcIikucG9wKCkuc3BsaXQoIi8iKS5wb3AoKX1jYXRjaCh0KXt9cmV0dXJuIGV9KHQ9ci5wYXRoKTtpZighZHQoZSkpcmV0dXJuIHQ7bGV0IG49RHQodD1VdCh0LGUubGVuZ3RoKSk7cmV0dXJuIG4uaXNSb290LG4ucGF0aH1mdW5jdGlvbiBXdCh0LHI9e30pe2xldCBlPWZ0KHIsImZzIik7aWYoIWUuZXhpc3RzU3luYyh0KSlyZXR1cm4hMTtsZXQgbj1lLmxzdGF0U3luYyh0KTtyZXR1cm4hbi5pc0ZpbGUoKSYmIW4uaXNTeW1ib2xpY0xpbmsoKX1mdW5jdGlvbiBCdCh0LHI9e30pe2xldCBlPWZ0KHIsImZzIik7cmV0dXJuISFlLmV4aXN0c1N5bmModCkmJighZS5sc3RhdFN5bmModCkuaXNEaXJlY3RvcnkoKSYmIWUubHN0YXRTeW5jKHQpLmlzU3ltYm9saWNMaW5rKCkpfWZ1bmN0aW9uIEh0KHQscj17fSl7bGV0IGU9ZnQociwiZnMiKTtpZighZS5leGlzdHNTeW5jKHQpKXJldHVybntzdWNjZXNzOiJmaWxlIGRvZXMgbm90IGV4aXN0OiAiK3R9O2lmKCFCdCh0LHtmczplfSkpcmV0dXJue2Vycm9yOiJpbnB1dCBwYXRoIGlzIG5vdCBhIGZpbGU6ICIrdH07dHJ5e2UudW5saW5rU3luYyh0KX1jYXRjaCh0KXtyZXR1cm57ZXJyb3I6dH19cmV0dXJue3N1Y2Nlc3M6ImRvbmU6ICIrdH19YXN5bmMgZnVuY3Rpb24gSnQodCxyLGUsbj17fSl7bGV0IG89IiIsaT1mdChuLCJmcyIpO2lmKCFwdCh1PXIpfHwwPT09dS5sZW5ndGh8fDE9PT11Lmxlbmd0aCYmX3QodVswXSkpdGhyb3cgbmV3IEVycm9yKCJmcHNJbiBpbiBub3QgYW4gZWZmZWN0aXZlIGFycmF5Iik7dmFyIHU7bGV0IGE9R3QoZSk7V3QoYSx7ZnM6aX0pfHxmdW5jdGlvbih0LHI9e30pe2xldCBlPWZ0KHIsImZzIik7aWYoV3QodCx7ZnM6ZX0pKXJldHVybntzdWNjZXNzOiJpbnB1dCBmb2xkZXIgaXMgYWxyZWFkeSBleGlzdHM6ICIrdH07aWYoZS5leGlzdHNTeW5jKHQpKXJldHVybntlcnJvcjoiaW5wdXQgcGF0aCBhbHJlYWR5IGV4aXN0czogIit0fTt0cnl7ZS5ta2RpclN5bmModCx7cmVjdXJzaXZlOiEwfSl9Y2F0Y2godCl7cmV0dXJue2Vycm9yOnR9fX0oYSx7ZnM6aX0pO2xldCBjPWx0KCk7dHJ5e2xldCBuPWkuY3JlYXRlV3JpdGVTdHJlYW0oZSk7Zm9yKGxldCB0PTA7dDxyLmxlbmd0aDt0Kyspe2xldCBlPXJbdF07aWYoIUJ0KGUse2ZzOml9KSl0aHJvdyBuZXcgRXJyb3IoYGZwSW5bJHtlfV0gaXMgbm90IGEgZmlsZWApO2xldCB1PSgpPT57bGV0IHQ9bHQoKSxyPWkuY3JlYXRlUmVhZFN0cmVhbShlKTtyZXR1cm4gci5vbigiZXJyb3IiLChyPT57bz1yLm1lc3NhZ2UsdC5yZWplY3Qocil9KSksci5vbigiZW5kIiwoKCk9PntIdChlLHtmczppfSksdC5yZXNvbHZlKCl9KSksci5waXBlKG4se2VuZDohMX0pLHR9O2F3YWl0IHUoKX1uLmVuZCgpLG4ub24oImVycm9yIiwodD0+e289dC5tZXNzYWdlLGMucmVqZWN0KG8pfSkpLG4ub24oImZpbmlzaCIsKCgpPT57bGV0IHI9e2ZpbGVuYW1lOnQscGF0aDplfTtjLnJlc29sdmUocil9KSl9Y2F0Y2godCl7bz10Lm1lc3NhZ2UsYy5yZWplY3Qobyl9cmV0dXJuIGN9bGV0IG1lcmdlRmlsZXM9YXN5bmMoZSxuLG8saSk9PntsZXQgdT1bXTtmb3IobGV0IHI9MDtyPG87cisrKXtsZXQgbz10LmpvaW4oZSxgJHtufV8ke3J9YCk7dS5wdXNoKG8pfWxldCBhPXQuam9pbihlLG4pLGM9YXdhaXQgYXN5bmMgZnVuY3Rpb24odCxlLG4pe3JldHVybiBKdCh0LGUsbix7ZnM6cn0pfShpLHUsYSk7cmV0dXJuIGN9OwoKCmxldCBpbnN0YW5jZSA9IG51bGwKZnVuY3Rpb24gaW5pdChpbnB1dCl7CgogICAgLy9pbml0CiAgICBsZXQgcgogICAgCiAgICAgICAgciA9IHsKICAgICAgICAgICAgbWFpbjogbWVyZ2VGaWxlcwogICAgICAgIH0KICAgICAgICAKCiAgICAvL29uCiAgICAKCiAgICAvL3NhdmUKICAgIGluc3RhbmNlID0gcgoKfQoKZnVuY3Rpb24gc2VuZE1lc3NhZ2UoZGF0YSkgewogICAgCiAgICAgICAgc2VsZi5wb3N0TWVzc2FnZShkYXRhKQogICAgICAgIAp9Cgphc3luYyBmdW5jdGlvbiBydW4oZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciBydW4nLGRhdGEpCgogICAgLy9tb2RlCiAgICBsZXQgbW9kZSA9IGRhdGEubW9kZQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgIT09ICdpbml0JyAmJiBtb2RlICE9PSAnY2FsbCcpewogICAgICAgIHJldHVybgogICAgfQoKICAgIC8vaW5pdAogICAgaWYobW9kZSA9PT0gJ2luaXQnKXsKICAgICAgICAKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL3R5cGUKICAgICAgICAgICAgbGV0IHR5cGUgPSBkYXRhLnR5cGUKCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAogICAgCiAgICAgICAgICAgIC8vaW5zdGFuY2UKICAgICAgICAgICAgaWYodHlwZSA9PT0gJ2Z1bmN0aW9uJyl7CiAgICAgICAgICAgICAgICBpbml0KC4uLmlucHV0KQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYodHlwZSA9PT0gJ29iamVjdCcpewogICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBtZXJnZUZpbGVzCiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgCiAgICAgICAgICAgIC8vc2VuZE1lc3NhZ2UKICAgICAgICAgICAgbGV0IHJlcyA9IHsKICAgICAgICAgICAgICAgIG1vZGU6ICdlbWl0JywKICAgICAgICAgICAgICAgIGV2TmFtZTogJ2Vycm9yJywKICAgICAgICAgICAgICAgIG1zZzogZXJyLAogICAgICAgICAgICB9CiAgICAgICAgICAgIHNlbmRNZXNzYWdlKHJlcykKCiAgICAgICAgfQogICAgICAgICAgICAKICAgIH0KCiAgICAvL2NoZWNrCiAgICBpZihtb2RlID09PSAnY2FsbCcpewogICAgICAgIGxldCBzdGF0ZSA9ICcnCiAgICAgICAgbGV0IG1zZyA9IG51bGwKCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy9mdW4KICAgICAgICAgICAgbGV0IGZ1biA9IGluc3RhbmNlW2RhdGEuZnVuXQoKICAgICAgICAgICAgLy9pbnB1dAogICAgICAgICAgICBsZXQgaW5wdXQgPSBkYXRhLmlucHV0CgogICAgICAgICAgICAvL2V4ZWMKICAgICAgICAgICAgYXdhaXQgZnVuKC4uLmlucHV0KQogICAgICAgICAgICAgICAgLnRoZW4oKHN1YykgPT4gewogICAgICAgICAgICAgICAgICAgIHN0YXRlPSdzdWNjZXNzJwogICAgICAgICAgICAgICAgICAgIG1zZz1zdWMKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4gewogICAgICAgICAgICAgICAgICAgIHN0YXRlPSdlcnJvcicKICAgICAgICAgICAgICAgICAgICBtc2c9ZXJyCiAgICAgICAgICAgICAgICB9KQoKICAgICAgICB9CiAgICAgICAgY2F0Y2goZXJyKXsKICAgICAgICAgICAgc3RhdGUgPSAnZXJyb3InCiAgICAgICAgICAgIG1zZyA9IGVycgogICAgICAgIH0KICAgICAgICAKICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgbGV0IHJlcyA9IHsKICAgICAgICAgICAgbW9kZTogJ3JldHVybicsCiAgICAgICAgICAgIGlkOiBkYXRhLmlkLAogICAgICAgICAgICBmdW46IGRhdGEuZnVuLAogICAgICAgICAgICBzdGF0ZSwKICAgICAgICAgICAgbXNnLAogICAgICAgIH0KICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgfQoKfQoKZnVuY3Rpb24gcmVjdk1lc3NhZ2UoZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciByZWN2OicsIGRhdGEpCgogICAgLy9kYXRhUmVjdgogICAgbGV0IGRhdGFSZWN2ID0gZGF0YQoKICAgIC8vcnVuCiAgICBydW4oZGF0YVJlY3YpCgp9CgoKICAgICAgICBzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHJlY3ZNZXNzYWdlKGUuZGF0YSkKICAgICAgICB9CiAgICAgICAgCgp0cnl7CiAgICBwcm9jZXNzLm9uKCd1bmhhbmRsZWRSZWplY3Rpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuaGFuZGxlZFJlamVjdGlvbicsIGVycikKICAgIH0pCiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmNhdWdodEV4Y2VwdGlvbk1vbml0b3InLCBlcnIpCiAgICB9KQp9CmNhdGNoKGVycil7fQoK");function e(){let e=new b,n=function(t){try{let e=new Blob([t]),n=window.URL||window.webkitURL;return new Worker(n.createObjectURL(e))}catch(t){i(t)}}(t);if(!n)return i("invalid worker"),null;function r(){let t=function(){let t,e,n=new Promise((function(){t=arguments[0],e=arguments[1]}));return n.resolve=t,n.reject=e,n}(),r=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,e=[],n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),r=n.length;for(let i=0;i<t;i++)e[i]=n[0|Math.random()*r];return e.join("")}(),i={mode:"call",id:r,fun:"main",input:[...arguments]};return n.postMessage(i),e.once(r,(e=>{"success"===e.state?t.resolve(e.msg):t.reject(e.msg)})),t}function i(t){e.emit("error",t)}return n.onmessage=function(t){!function(t){let n=t,r=n.mode;"emit"!==r&&"return"!==r||("emit"===r&&e.emit(n.evName,n.msg),"return"===r&&e.emit(n.id,n))}(t.data)},n.onerror=i,n.onmessageerror=function(t){i(t.data)},function(){let t={mode:"init",type:"function",input:[...arguments]};n.postMessage(t)}([...arguments]),e.main=r,e.main=r,e.terminate=function(){n?(n.terminate(),n=void 0):i("worker has been terminated")},e}h=async function(){let t=[...arguments],n=e();return await n.main(...t).finally((()=>{n.terminate()}))}}();try{process.on("unhandledRejection",(t=>{console.log("outer:unhandledRejection",t)})),process.on("uncaughtException",(t=>{console.log("outer:uncaughtException",t)})),process.on("uncaughtExceptionMonitor",(t=>{console.log("outer:uncaughtExceptionMonitor",t)}))}catch(t){}return h}()}({get exports(){return r},set exports(t){r=t}});var i=r;let o;return o="undefined"!=typeof window&&void 0!==window.document?i:n,o}(c)}({get exports(){return Jn},set exports(t){Jn=t}});var wn=Jn;return function(){let o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=mt(o,"port");var l;Ft(l=c)&&Dt(l)>0||(c=8080);let d=mt(o,"useInert");ne(d)||(d=!0);let u=mt(o,"pathStaticFiles");Wt(u)||(u="dist");let a=mt(o,"apiName");Wt(a)||(a="api");let s=mt(o,"pathUploadTemp");Wt(s)||(s="./uploadTemp"),Kn(s,{fs:e})||Gn(s);let I=mt(o,"tokenType");Wt(I)||(I="Bearer");let p=mt(o,"verifyConn");(function(t){let e=Object.prototype.toString.call(t);return"[object Function]"===e||"[object AsyncFunction]"===e})(p)||(p=()=>!0);let g=mt(o,"corsOrigins",[]);te(g)||(g=["*"]);let C=mt(o,"delayForBasic","");Et(C)||(C=0),C=Dt(C);let y=mt(o,"delayForSlice","");Et(y)||(y=100),y=Dt(y);let m=null;m=mt(o,"serverHapi")?o.serverHapi:r.server({port:c,routes:{timeout:{server:!1,socket:!1},cors:{origin:g,credentials:!1}}});let b=new At,h=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];setTimeout((()=>{b.emit(t,...n)}),1)};async function f(t){let e=ft(),n=ft();return n.then((t=>{e.resolve(t)})).catch((t=>{e.reject(t)})),h("download",t,n),e}function X(t,e){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=new n.Readable;i._read=()=>{},i.push(e),i.push(null);let o=mt(r,"returnType",""),c=mt(r,"returnMsg",""),l=t.response(i).header("Cache-Control","no-cache, no-store, must-revalidate").header("Content-Type","application/octet-stream").header("Content-Length",i.readableLength);return Wt(o)&&l.header("Return-Type",o),Wt(c)&&l.header("Return-Msg",c),l}function Z(t,e){return Wt(e)||(console.log("msg",e),console.log("msg is not an effective string, set msg=''"),e=""),X(t,mn({error:e}),{returnType:"error",returnMsg:e})}let A={path:`/${a}`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,output:"stream",parse:!1},timeout:{server:!1,socket:!1}},handler:async function(t,e){let r=mt(t,"headers");r=Gt(r)?r:"";let i=mt(t,"query");i=Gt(i)?i:"";let o=mt(r,"authorization","");o=Wt(o)?o:"";{let t=p({apiType:"main",authorization:o,headers:r,query:i});if(re(t)&&(t=await t),!0!==t)return Z(e,"permission denied")}h("handler",{api:"apiMain",headers:r,query:i});let c=await(()=>{let e=ft(),r=[],i=new n.Writable({write(t,e,n){r.push(t),setTimeout((()=>{n()}),C)}});return t.payload.pipe(i),t.payload.on("end",(()=>{let t=Buffer.concat(r);r=[],e.resolve(t)})),t.payload.on("error",(t=>{h("error","receive payload err"),e.reject(t.message)})),e})(),l=Zn(new Uint8Array(c)),d={},u="",a="";return await async function(t){let e=ft(),n=ft();n.then((n=>{t.output=n,delete t.input,e.resolve(t)})).catch((t=>{e.reject(t)}));{let e=mt(t,"func",""),r=mt(t,"input",null);h("execute",e,r,n)}return e}(l).then((t=>{d.success=t,u="success",a="need to parse"})).catch((t=>{d.error=t,u="error",a="need to parse"})),X(e,mn(d),{returnType:u,returnMsg:a})}},K={path:`/${a}ulck`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(n,r){let i=mt(n,"headers");i=Gt(i)?i:"";let o=mt(n,"query");o=Gt(o)?o:"";let c=mt(i,"authorization","");c=Wt(c)?c:"";{let t=p({apiType:"upload-check",authorization:c,headers:i,query:o});if(re(t)&&(t=await t),!0!==t)return Z(r,"permission denied")}h("handler",{api:"apiUploadCheck",headers:i,query:o});let l=mt(n,"payload.filename",""),d=mt(n,"payload.fileSize",""),u=mt(n,"payload.fileHash","");if(!Wt(l))return Z(r,"invalid filename in payload");if(!Nt(d))return Z(r,"invalid fileSize in payload");if(!Wt(u))return Z(r,"invalid fileHash in payload");let a=t.join(s,l);if(!function(t){return An(t,{fs:e})}(a)){return X(r,mn({success:{existed:!1,msg:"not exist"}}),{returnType:"success",returnMsg:"need to parse"})}if(d!==e.statSync(a).size){return X(r,mn({success:{existed:!1,msg:"not equal size"}}),{returnType:"success",returnMsg:"need to parse"})}if(u!==await Sn(a)){return X(r,mn({success:{existed:!1,msg:"not equal hash"}}),{returnType:"success",returnMsg:"need to parse"})}return X(r,mn({success:{existed:!0,msg:"equal",path:a}}),{returnType:"success",returnMsg:"need to parse"})}},G={path:`/${a}slc`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,output:"stream",parse:!1},timeout:{server:!1,socket:!1}},handler:async function(n,r){let i=mt(n,"headers");i=Gt(i)?i:"";let o=mt(n,"query");o=Gt(o)?o:"";let c=mt(i,"authorization","");c=Wt(c)?c:"";{let t=p({apiType:"upload-slice",authorization:c,headers:i,query:o});if(re(t)&&(t=await t),!0!==t)return Z(r,"permission denied")}h("handler",{api:"apiUploadSlice",headers:i,query:o});let l=mt(i,"chunk-index",""),d=mt(i,"chunk-total",""),u=mt(i,"package-id","");if(!Et(l))return console.log("invalid chunkIndex in headers"),r.response({error:"invalid chunkIndex in headers"}).code(400);if(l=Dt(l),!Et(d))return console.log("invalid chunkTotal in headers"),r.response({error:"invalid chunkTotal in headers"}).code(400);if(d=Dt(d),!Wt(u))return console.log("invalid packageId in headers"),r.response({error:"invalid packageId in headers"}).code(400);let a=t.join(s,`${u}_${l}`),I=e.createWriteStream(a),g={},C="",m="";return await(()=>{let t=ft();return n.payload.pipe(I),n.payload.on("end",(()=>{setTimeout((()=>{t.resolve(`chunk[${l}/${d}] of packageId[${u}] done`)}),y)})),n.payload.on("error",(e=>{h("error",`receive chunk[${l}/${d}] of packageId[${u}] err`),t.reject(`apiUploadSlice receive error: ${e.message}`)})),t})().then((t=>{g.success=t,C="success",m="need to parse"})).catch((t=>{g.error=t,C="error",m="need to parse",h("error",t)})),X(r,mn(g),{returnType:C,returnMsg:m})}},v={path:`/${a}slcm`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(t,e){let n=mt(t,"headers");n=Gt(n)?n:"";let r=mt(t,"query");r=Gt(r)?r:"";let i=mt(n,"authorization","");i=Wt(i)?i:"";{let t=p({apiType:"upload-slice-merge",authorization:i,headers:n,query:r});if(re(t)&&(t=await t),!0!==t)return Z(e,"permission denied")}h("handler",{api:"apiUploadSliceMerge",headers:n,query:r});let o=mt(t,"payload.filename",""),c=mt(t,"payload.chunk-total",""),l=mt(t,"payload.package-id","");if(!Wt(o))return console.log("invalid filename in payload"),e.response({error:"invalid filename in payload"}).code(400);if(!Et(c))return console.log("invalid chunkTotal in payload"),e.response({error:"invalid chunkTotal in payload"}).code(400);if(c=Dt(c),!Wt(l))return console.log("invalid packageId in payload"),e.response({error:"invalid packageId in payload"}).code(400);let d={},u="",a="";return await(async()=>{let t=await wn(s,l,c,o);return await async function(t){let e=ft(),n=ft();return n.then((t=>{e.resolve(t)})).catch((t=>{e.reject(t)})),h("upload",t,n),e}(t)})().then((t=>{d.success=t,u="success",a="need to parse"})).catch((t=>{d.error=t,u="error",a="need to parse",h("error",`${t.message}`)})),X(e,mn(d),{returnType:u,returnMsg:a})}},W={path:`/${a}dwgfn`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(t,e){let n=mt(t,"headers");n=Gt(n)?n:"";let r=mt(t,"query");r=Gt(r)?r:"";let i=mt(n,"authorization","");i=Wt(i)?i:"";{let t=p({apiType:"download-get-filename",authorization:i,headers:n,query:r});if(re(t)&&(t=await t),!0!==t)return Z(e,"permission denied")}h("handler",{api:"apiDownloadGetFilename",headers:n,query:r});let o=mt(t,"payload.fileId","");if(!Wt(o))return Z(e,"invalid fileId in payload");let c={fileId:o},l={},d="",u="";await f(c).then((t=>{l.success=t,d="success",u="need to parse"})).catch((t=>{l.error=t,d="error",u="need to parse"}));let a=mt(l,"success"),s=mt(a,"streamRead");try{s.destroy()}catch(t){}let I=mt(a,"filename");return Wt(I)?(l={success:{filename:I}},X(e,mn(l),{returnType:d,returnMsg:u})):Z(e,"invalid filename")}},V={path:`/${a}dwgf`,method:"GET",options:{timeout:{server:!1,socket:!1}},handler:async function(t,e){let n=mt(t,"headers");n=Gt(n)?n:"";let r=mt(t,"query");r=Gt(r)?r:"";let i=mt(r,"token","");i=Wt(i)?i:"";let o="";Wt(i)&&(o=`${I} ${i}`);{let t=p({apiType:"download-get-file",authorization:o,headers:n,query:r});if(re(t)&&(t=await t),!0!==t)return Z(e,"permission denied")}h("handler",{api:"apiDownloadGetFilename",headers:n,query:r});let c=mt(r,"fileId","");if(c=Wt(c)?c:"",!Wt(c))return Z(e,"invalid fileId in query");let l={fileId:c},d={};if(await f(l).then((t=>{d.success=t})).catch((t=>{d.error=t})),ge(d,"error"))return Z(e,"can not get file from fileId");let u=mt(d,"success"),a=mt(u,"streamRead"),s=mt(u,"fileSize");if(!ht(s)){try{a.destroy()}catch(t){}return Z(e,"invalid fileSize")}let g=mt(u,"fileType");if(!Wt(g)){try{a.destroy()}catch(t){}return Z(e,"invalid fileType")}return g=ie(g),e.response(a).type(g).header("Content-Length",s)}},H={path:`/${a}dw`,method:"POST",options:{payload:{maxBytes:1099511627776,maxParts:1e9,timeout:!1,parse:!0},timeout:{server:!1,socket:!1}},handler:async function(t,e){let n=mt(t,"headers");n=Gt(n)?n:"";let r=mt(t,"query");r=Gt(r)?r:"";let i=mt(n,"authorization","");i=Wt(i)?i:"";{let t=p({apiType:"download",authorization:i,headers:n,query:r});if(re(t)&&(t=await t),!0!==t)return Z(e,"permission denied")}h("handler",{api:"apiDownload",headers:n,query:r});let o=mt(t,"payload.fileId","");if(!Wt(o))return Z(e,"invalid fileId in payload");let c={fileId:o},l={};if(await f(c).then((t=>{l.success=t})).catch((t=>{l.error=t})),ge(l,"error"))return Z(e,"can not get file from fileId");let d=mt(l,"success"),u=mt(d,"streamRead"),a=mt(d,"filename");if(!Wt(a)){try{u.destroy()}catch(t){}return Z(e,"invalid filename")}a=pe(a);let s=mt(d,"fileSize");if(!ht(s)){try{u.destroy()}catch(t){}return Z(e,"invalid fileSize")}let I=mt(d,"fileType");if(!Wt(I)){try{u.destroy()}catch(t){}return Z(e,"invalid fileType")}return I=ie(I),e.response(u).type(I).header("Content-Disposition",`attachment; filename="${a}"`).header("Content-Length",s)}};return mt(o,"serverHapi")?m.route([A,K,G,v,W,V,H]):async function(){d&&await m.register(i);let t=[];if(d){let e={method:"GET",path:"/{file*}",handler:{directory:{path:`${u}/`}}};t=[...t,e]}t=[...t,A,K,G,v,W,V,H],m.route(t),await m.start(),console.log(`Server running at: ${m.info.uri}`)}(),b.stop=()=>{m.stop()},b}}));
|
|
7
7
|
//# sourceMappingURL=w-converhp-server.umd.js.map
|