@formant/data-sdk 1.1.0-rc.0 → 1.2.0
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/dist/data-sdk.es.js
CHANGED
|
@@ -24230,7 +24230,7 @@ function assertNotCancelled(e) {
|
|
|
24230
24230
|
throw new Error("Cancelled by deadline");
|
|
24231
24231
|
}
|
|
24232
24232
|
class Device extends EventEmitter {
|
|
24233
|
-
constructor(n, r, i) {
|
|
24233
|
+
constructor(n, r, i, s) {
|
|
24234
24234
|
super();
|
|
24235
24235
|
Te(this, "rtcClient");
|
|
24236
24236
|
Te(this, "remoteDevicePeerId", null);
|
|
@@ -24239,7 +24239,7 @@ class Device extends EventEmitter {
|
|
|
24239
24239
|
Te(this, "handleMessage", (n, r) => {
|
|
24240
24240
|
this.realtimeListeners.forEach((i) => i(n, r));
|
|
24241
24241
|
});
|
|
24242
|
-
this.id = n, this.name = r, this.organizationId = i;
|
|
24242
|
+
this.id = n, this.name = r, this.organizationId = i, this.tags = s;
|
|
24243
24243
|
}
|
|
24244
24244
|
async getLatestTelemetry() {
|
|
24245
24245
|
return (await (await fetch(
|
|
@@ -24587,7 +24587,8 @@ class Device extends EventEmitter {
|
|
|
24587
24587
|
parameterEnabled: i.parameterEnabled,
|
|
24588
24588
|
parameterValue: i.parameterValue,
|
|
24589
24589
|
parameterMeta: i.parameterMeta,
|
|
24590
|
-
enabled: i.enabled
|
|
24590
|
+
enabled: i.enabled,
|
|
24591
|
+
tags: i.tags
|
|
24591
24592
|
}));
|
|
24592
24593
|
}
|
|
24593
24594
|
async sendCommand(n, r, i, s) {
|
|
@@ -24982,7 +24983,7 @@ const at = class {
|
|
|
24982
24983
|
throw new Error("Not authenticated");
|
|
24983
24984
|
if (!at.defaultDeviceId)
|
|
24984
24985
|
throw new Error("No known default device");
|
|
24985
|
-
const
|
|
24986
|
+
const r = (await (await fetch(
|
|
24986
24987
|
`${FORMANT_API_URL}/v1/admin/device-details/query`,
|
|
24987
24988
|
{
|
|
24988
24989
|
method: "POST",
|
|
@@ -24993,10 +24994,11 @@ const at = class {
|
|
|
24993
24994
|
}
|
|
24994
24995
|
)).json()).items.find(
|
|
24995
24996
|
(l) => l.id === at.defaultDeviceId
|
|
24996
|
-
).name, s = new Device(
|
|
24997
|
+
), i = r.name, s = new Device(
|
|
24997
24998
|
at.defaultDeviceId,
|
|
24998
24999
|
i,
|
|
24999
|
-
defined(Authentication.currentOrganization)
|
|
25000
|
+
defined(Authentication.currentOrganization),
|
|
25001
|
+
r.tags
|
|
25000
25002
|
);
|
|
25001
25003
|
return at.knownContext.push(new WeakRef(s)), s;
|
|
25002
25004
|
}
|
|
@@ -25016,7 +25018,12 @@ const at = class {
|
|
|
25016
25018
|
Authorization: "Bearer " + Authentication.token
|
|
25017
25019
|
}
|
|
25018
25020
|
}
|
|
25019
|
-
)).json(), i = r.name, s = new Device(
|
|
25021
|
+
)).json(), i = r.name, s = new Device(
|
|
25022
|
+
t,
|
|
25023
|
+
i,
|
|
25024
|
+
r.organizationId,
|
|
25025
|
+
r.tags
|
|
25026
|
+
);
|
|
25020
25027
|
return at.knownContext.push(new WeakRef(s)), s;
|
|
25021
25028
|
}
|
|
25022
25029
|
static async getDevices() {
|
|
@@ -25034,7 +25041,12 @@ const at = class {
|
|
|
25034
25041
|
}
|
|
25035
25042
|
)).json();
|
|
25036
25043
|
return n.items, n.items.map(
|
|
25037
|
-
(r) => new Device(
|
|
25044
|
+
(r) => new Device(
|
|
25045
|
+
r.id,
|
|
25046
|
+
r.name,
|
|
25047
|
+
r.organizationId,
|
|
25048
|
+
r.tags
|
|
25049
|
+
)
|
|
25038
25050
|
);
|
|
25039
25051
|
}
|
|
25040
25052
|
static async queryDevices(t) {
|
|
@@ -25048,7 +25060,7 @@ const at = class {
|
|
|
25048
25060
|
Authorization: "Bearer " + Authentication.token
|
|
25049
25061
|
}
|
|
25050
25062
|
})).json()).items.map(
|
|
25051
|
-
(i) => new Device(i.id, i.name, i.organizationId)
|
|
25063
|
+
(i) => new Device(i.id, i.name, i.organizationId, i.tags)
|
|
25052
25064
|
);
|
|
25053
25065
|
}
|
|
25054
25066
|
static async getOnlineDevices() {
|
package/dist/data-sdk.umd.js
CHANGED
|
@@ -55,4 +55,4 @@ Found: ${s.toString().split(`
|
|
|
55
55
|
`))):o=e.stylize("[Circular]","special")),isUndefined(l)){if(s&&i.match(/^\d+$/))return o;l=JSON.stringify(""+i),l.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(l=l.substr(1,l.length-2),l=e.stylize(l,"name")):(l=l.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),l=e.stylize(l,"string"))}return l+": "+o}function reduceToSingleString(e,t,n){var r=e.reduce(function(i,s){return s.indexOf(`
|
|
56
56
|
`)>=0,i+s.replace(/\u001b\[\d\d?m/g,"").length+1},0);return r>60?n[0]+(t===""?"":t+`
|
|
57
57
|
`)+" "+e.join(`,
|
|
58
|
-
`)+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function isArray(e){return Array.isArray(e)}function isBoolean(e){return typeof e=="boolean"}function isNull(e){return e===null}function isNumber(e){return typeof e=="number"}function isString(e){return typeof e=="string"}function isUndefined(e){return e===void 0}function isRegExp(e){return isObject(e)&&objectToString(e)==="[object RegExp]"}function isObject(e){return typeof e=="object"&&e!==null}function isDate(e){return isObject(e)&&objectToString(e)==="[object Date]"}function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}function isFunction(e){return typeof e=="function"}function objectToString(e){return Object.prototype.toString.call(e)}function _extend(e,t){if(!t||!isObject(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e}function hasOwnProperty(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function BufferList(){this.head=null,this.tail=null,this.length=0}BufferList.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},BufferList.prototype.unshift=function(e){var t={data:e,next:this.head};this.length===0&&(this.tail=t),this.head=t,++this.length},BufferList.prototype.shift=function(){if(this.length!==0){var e=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},BufferList.prototype.clear=function(){this.head=this.tail=null,this.length=0},BufferList.prototype.join=function(e){if(this.length===0)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},BufferList.prototype.concat=function(e){if(this.length===0)return Buffer.alloc(0);if(this.length===1)return this.head.data;for(var t=Buffer.allocUnsafe(e>>>0),n=this.head,r=0;n;)n.data.copy(t,r),r+=n.data.length,n=n.next;return t};var isBufferEncoding=Buffer.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function assertEncoding(e){if(e&&!isBufferEncoding(e))throw new Error("Unknown encoding: "+e)}function StringDecoder(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),assertEncoding(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=utf16DetectIncompleteChar;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=base64DetectIncompleteChar;break;default:this.write=passThroughWrite;return}this.charBuffer=new Buffer(6),this.charReceived=0,this.charLength=0}StringDecoder.prototype.write=function(e){for(var t="";this.charLength;){var n=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,n),this.charReceived+=n,this.charReceived<this.charLength)return"";e=e.slice(n,e.length),t=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319){this.charLength+=this.surrogateSize,t="";continue}if(this.charReceived=this.charLength=0,e.length===0)return t;break}this.detectIncompleteChar(e);var r=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,r),r-=this.charReceived),t+=e.toString(this.encoding,0,r);var r=t.length-1,i=t.charCodeAt(r);if(i>=55296&&i<=56319){var s=this.surrogateSize;return this.charLength+=s,this.charReceived+=s,this.charBuffer.copy(this.charBuffer,s,0,s),e.copy(this.charBuffer,0,0,s),t.substring(0,r)}return t},StringDecoder.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var n=e[e.length-t];if(t==1&&n>>5==6){this.charLength=2;break}if(t<=2&&n>>4==14){this.charLength=3;break}if(t<=3&&n>>3==30){this.charLength=4;break}}this.charReceived=t},StringDecoder.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var n=this.charReceived,r=this.charBuffer,i=this.encoding;t+=r.slice(0,n).toString(i)}return t};function passThroughWrite(e){return e.toString(this.encoding)}function utf16DetectIncompleteChar(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function base64DetectIncompleteChar(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}Readable.ReadableState=ReadableState;var debug=debuglog("stream");inherits$1(Readable,EventEmitter);function prependListener(e,t,n){if(typeof e.prependListener=="function")return e.prependListener(t,n);!e._events||!e._events[t]?e.on(t,n):Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]}function listenerCount(e,t){return e.listeners(t).length}function ReadableState(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof Duplex&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var n=e.highWaterMark,r=this.objectMode?16:16*1024;this.highWaterMark=n||n===0?n:r,this.highWaterMark=~~this.highWaterMark,this.buffer=new BufferList,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new StringDecoder(e.encoding),this.encoding=e.encoding)}function Readable(e){if(!(this instanceof Readable))return new Readable(e);this._readableState=new ReadableState(e,this),this.readable=!0,e&&typeof e.read=="function"&&(this._read=e.read),EventEmitter.call(this)}Readable.prototype.push=function(e,t){var n=this._readableState;return!n.objectMode&&typeof e=="string"&&(t=t||n.defaultEncoding,t!==n.encoding&&(e=Buffer.from(e,t),t="")),readableAddChunk(this,n,e,t,!1)},Readable.prototype.unshift=function(e){var t=this._readableState;return readableAddChunk(this,t,e,"",!0)},Readable.prototype.isPaused=function(){return this._readableState.flowing===!1};function readableAddChunk(e,t,n,r,i){var s=chunkInvalid(t,n);if(s)e.emit("error",s);else if(n===null)t.reading=!1,onEofChunk(e,t);else if(t.objectMode||n&&n.length>0)if(t.ended&&!i){var l=new Error("stream.push() after EOF");e.emit("error",l)}else if(t.endEmitted&&i){var o=new Error("stream.unshift() after end event");e.emit("error",o)}else{var c;t.decoder&&!i&&!r&&(n=t.decoder.write(n),c=!t.objectMode&&n.length===0),i||(t.reading=!1),c||(t.flowing&&t.length===0&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,i?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&emitReadable(e))),maybeReadMore(e,t)}else i||(t.reading=!1);return needMoreData(t)}function needMoreData(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||e.length===0)}Readable.prototype.setEncoding=function(e){return this._readableState.decoder=new StringDecoder(e),this._readableState.encoding=e,this};var MAX_HWM=8388608;function computeNewHighWaterMark(e){return e>=MAX_HWM?e=MAX_HWM:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function howMuchToRead(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=computeNewHighWaterMark(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}Readable.prototype.read=function(e){debug("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return debug("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?endReadable(this):emitReadable(this),null;if(e=howMuchToRead(e,t),e===0&&t.ended)return t.length===0&&endReadable(this),null;var r=t.needReadable;debug("need readable",r),(t.length===0||t.length-e<t.highWaterMark)&&(r=!0,debug("length less than watermark",r)),t.ended||t.reading?(r=!1,debug("reading or ended",r)):r&&(debug("do read"),t.reading=!0,t.sync=!0,t.length===0&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=howMuchToRead(n,t)));var i;return e>0?i=fromList(e,t):i=null,i===null?(t.needReadable=!0,e=0):t.length-=e,t.length===0&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&endReadable(this)),i!==null&&this.emit("data",i),i};function chunkInvalid(e,t){var n=null;return!Buffer.isBuffer(t)&&typeof t!="string"&&t!==null&&t!==void 0&&!e.objectMode&&(n=new TypeError("Invalid non-string/buffer chunk")),n}function onEofChunk(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,emitReadable(e)}}function emitReadable(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(debug("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?nextTick(emitReadable_,e):emitReadable_(e))}function emitReadable_(e){debug("emit readable"),e.emit("readable"),flow(e)}function maybeReadMore(e,t){t.readingMore||(t.readingMore=!0,nextTick(maybeReadMore_,e,t))}function maybeReadMore_(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(debug("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}Readable.prototype._read=function(e){this.emit("error",new Error("not implemented"))},Readable.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e);break}r.pipesCount+=1,debug("pipe count=%d opts=%j",r.pipesCount,t);var i=!t||t.end!==!1,s=i?o:f;r.endEmitted?nextTick(s):n.once("end",s),e.on("unpipe",l);function l(x){debug("onunpipe"),x===n&&f()}function o(){debug("onend"),e.end()}var c=pipeOnDrain(n);e.on("drain",c);var u=!1;function f(){debug("cleanup"),e.removeListener("close",g),e.removeListener("finish",_),e.removeListener("drain",c),e.removeListener("error",h),e.removeListener("unpipe",l),n.removeListener("end",o),n.removeListener("end",f),n.removeListener("data",b),u=!0,r.awaitDrain&&(!e._writableState||e._writableState.needDrain)&&c()}var E=!1;n.on("data",b);function b(x){debug("ondata"),E=!1;var F=e.write(x);F===!1&&!E&&((r.pipesCount===1&&r.pipes===e||r.pipesCount>1&&indexOf(r.pipes,e)!==-1)&&!u&&(debug("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,E=!0),n.pause())}function h(x){debug("onerror",x),R(),e.removeListener("error",h),listenerCount(e,"error")===0&&e.emit("error",x)}prependListener(e,"error",h);function g(){e.removeListener("finish",_),R()}e.once("close",g);function _(){debug("onfinish"),e.removeListener("close",g),R()}e.once("finish",_);function R(){debug("unpipe"),n.unpipe(e)}return e.emit("pipe",n),r.flowing||(debug("pipe resume"),n.resume()),e};function pipeOnDrain(e){return function(){var t=e._readableState;debug("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&e.listeners("data").length&&(t.flowing=!0,flow(e))}}Readable.prototype.unpipe=function(e){var t=this._readableState;if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var n=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i<r;i++)n[i].emit("unpipe",this);return this}var s=indexOf(t.pipes,e);return s===-1?this:(t.pipes.splice(s,1),t.pipesCount-=1,t.pipesCount===1&&(t.pipes=t.pipes[0]),e.emit("unpipe",this),this)},Readable.prototype.on=function(e,t){var n=EventEmitter.prototype.on.call(this,e,t);if(e==="data")this._readableState.flowing!==!1&&this.resume();else if(e==="readable"){var r=this._readableState;!r.endEmitted&&!r.readableListening&&(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&emitReadable(this):nextTick(nReadingNextTick,this))}return n},Readable.prototype.addListener=Readable.prototype.on;function nReadingNextTick(e){debug("readable nexttick read 0"),e.read(0)}Readable.prototype.resume=function(){var e=this._readableState;return e.flowing||(debug("resume"),e.flowing=!0,resume(this,e)),this};function resume(e,t){t.resumeScheduled||(t.resumeScheduled=!0,nextTick(resume_,e,t))}function resume_(e,t){t.reading||(debug("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),flow(e),t.flowing&&!t.reading&&e.read(0)}Readable.prototype.pause=function(){return debug("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(debug("pause"),this._readableState.flowing=!1,this.emit("pause")),this};function flow(e){var t=e._readableState;for(debug("flow",t.flowing);t.flowing&&e.read()!==null;);}Readable.prototype.wrap=function(e){var t=this._readableState,n=!1,r=this;e.on("end",function(){if(debug("wrapped end"),t.decoder&&!t.ended){var l=t.decoder.end();l&&l.length&&r.push(l)}r.push(null)}),e.on("data",function(l){if(debug("wrapped data"),t.decoder&&(l=t.decoder.write(l)),!(t.objectMode&&l==null)&&!(!t.objectMode&&(!l||!l.length))){var o=r.push(l);o||(n=!0,e.pause())}});for(var i in e)this[i]===void 0&&typeof e[i]=="function"&&(this[i]=function(l){return function(){return e[l].apply(e,arguments)}}(i));var s=["error","close","destroy","pause","resume"];return forEach(s,function(l){e.on(l,r.emit.bind(r,l))}),r._read=function(l){debug("wrapped _read",l),n&&(n=!1,e.resume())},r},Readable._fromList=fromList;function fromList(e,t){if(t.length===0)return null;var n;return t.objectMode?n=t.buffer.shift():!e||e>=t.length?(t.decoder?n=t.buffer.join(""):t.buffer.length===1?n=t.buffer.head.data:n=t.buffer.concat(t.length),t.buffer.clear()):n=fromListPartial(e,t.buffer,t.decoder),n}function fromListPartial(e,t,n){var r;return e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):e===t.head.data.length?r=t.shift():r=n?copyFromBufferString(e,t):copyFromBuffer(e,t),r}function copyFromBufferString(e,t){var n=t.head,r=1,i=n.data;for(e-=i.length;n=n.next;){var s=n.data,l=e>s.length?s.length:e;if(l===s.length?i+=s:i+=s.slice(0,e),e-=l,e===0){l===s.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=s.slice(l));break}++r}return t.length-=r,i}function copyFromBuffer(e,t){var n=Buffer.allocUnsafe(e),r=t.head,i=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var s=r.data,l=e>s.length?s.length:e;if(s.copy(n,n.length-e,0,l),e-=l,e===0){l===s.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=s.slice(l));break}++i}return t.length-=i,n}function endReadable(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,nextTick(endReadableNT,t,e))}function endReadableNT(e,t){!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function forEach(e,t){for(var n=0,r=e.length;n<r;n++)t(e[n],n)}function indexOf(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}Writable.WritableState=WritableState,inherits$1(Writable,EventEmitter);function nop(){}function WriteReq(e,t,n){this.chunk=e,this.encoding=t,this.callback=n,this.next=null}function WritableState(e,t){Object.defineProperty(this,"buffer",{get:deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")}),e=e||{},this.objectMode=!!e.objectMode,t instanceof Duplex&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var n=e.highWaterMark,r=this.objectMode?16:16*1024;this.highWaterMark=n||n===0?n:r,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var i=e.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(s){onwrite(t,s)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new CorkedRequest(this)}WritableState.prototype.getBuffer=function e(){for(var t=this.bufferedRequest,n=[];t;)n.push(t),t=t.next;return n};function Writable(e){if(!(this instanceof Writable)&&!(this instanceof Duplex))return new Writable(e);this._writableState=new WritableState(e,this),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev)),EventEmitter.call(this)}Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function writeAfterEnd(e,t){var n=new Error("write after end");e.emit("error",n),nextTick(t,n)}function validChunk(e,t,n,r){var i=!0,s=!1;return n===null?s=new TypeError("May not write null values to stream"):!Buffer.isBuffer(n)&&typeof n!="string"&&n!==void 0&&!t.objectMode&&(s=new TypeError("Invalid non-string/buffer chunk")),s&&(e.emit("error",s),nextTick(r,s),i=!1),i}Writable.prototype.write=function(e,t,n){var r=this._writableState,i=!1;return typeof t=="function"&&(n=t,t=null),Buffer.isBuffer(e)?t="buffer":t||(t=r.defaultEncoding),typeof n!="function"&&(n=nop),r.ended?writeAfterEnd(this,n):validChunk(this,r,e,n)&&(r.pendingcb++,i=writeOrBuffer(this,r,e,t,n)),i},Writable.prototype.cork=function(){var e=this._writableState;e.corked++},Writable.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.finished&&!e.bufferProcessing&&e.bufferedRequest&&clearBuffer(this,e))},Writable.prototype.setDefaultEncoding=function e(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this};function decodeChunk(e,t,n){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=Buffer.from(t,n)),t}function writeOrBuffer(e,t,n,r,i){n=decodeChunk(t,n,r),Buffer.isBuffer(n)&&(r="buffer");var s=t.objectMode?1:n.length;t.length+=s;var l=t.length<t.highWaterMark;if(l||(t.needDrain=!0),t.writing||t.corked){var o=t.lastBufferedRequest;t.lastBufferedRequest=new WriteReq(n,r,i),o?o.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else doWrite(e,t,!1,s,n,r,i);return l}function doWrite(e,t,n,r,i,s,l){t.writelen=r,t.writecb=l,t.writing=!0,t.sync=!0,n?e._writev(i,t.onwrite):e._write(i,s,t.onwrite),t.sync=!1}function onwriteError(e,t,n,r,i){--t.pendingcb,n?nextTick(i,r):i(r),e._writableState.errorEmitted=!0,e.emit("error",r)}function onwriteStateUpdate(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function onwrite(e,t){var n=e._writableState,r=n.sync,i=n.writecb;if(onwriteStateUpdate(n),t)onwriteError(e,n,r,t,i);else{var s=needFinish(n);!s&&!n.corked&&!n.bufferProcessing&&n.bufferedRequest&&clearBuffer(e,n),r?nextTick(afterWrite,e,n,s,i):afterWrite(e,n,s,i)}}function afterWrite(e,t,n,r){n||onwriteDrain(e,t),t.pendingcb--,r(),finishMaybe(e,t)}function onwriteDrain(e,t){t.length===0&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function clearBuffer(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),s=t.corkedRequestsFree;s.entry=n;for(var l=0;n;)i[l]=n,n=n.next,l+=1;doWrite(e,t,!0,t.length,i,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new CorkedRequest(t)}else{for(;n;){var o=n.chunk,c=n.encoding,u=n.callback,f=t.objectMode?1:o.length;if(doWrite(e,t,!1,f,o,c,u),n=n.next,t.writing)break}n===null&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=n,t.bufferProcessing=!1}Writable.prototype._write=function(e,t,n){n(new Error("not implemented"))},Writable.prototype._writev=null,Writable.prototype.end=function(e,t,n){var r=this._writableState;typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null),e!=null&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),!r.ending&&!r.finished&&endWritable(this,r,n)};function needFinish(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function prefinish(e,t){t.prefinished||(t.prefinished=!0,e.emit("prefinish"))}function finishMaybe(e,t){var n=needFinish(t);return n&&(t.pendingcb===0?(prefinish(e,t),t.finished=!0,e.emit("finish")):prefinish(e,t)),n}function endWritable(e,t,n){t.ending=!0,finishMaybe(e,t),n&&(t.finished?nextTick(n):e.once("finish",n)),t.ended=!0,e.writable=!1}function CorkedRequest(e){var t=this;this.next=null,this.entry=null,this.finish=function(n){var r=t.entry;for(t.entry=null;r;){var i=r.callback;e.pendingcb--,i(n),r=r.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}}inherits$1(Duplex,Readable);for(var keys=Object.keys(Writable.prototype),v=0;v<keys.length;v++){var method=keys[v];Duplex.prototype[method]||(Duplex.prototype[method]=Writable.prototype[method])}function Duplex(e){if(!(this instanceof Duplex))return new Duplex(e);Readable.call(this,e),Writable.call(this,e),e&&e.readable===!1&&(this.readable=!1),e&&e.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,e&&e.allowHalfOpen===!1&&(this.allowHalfOpen=!1),this.once("end",onend)}function onend(){this.allowHalfOpen||this._writableState.ended||nextTick(onEndNT,this)}function onEndNT(e){e.end()}inherits$1(Transform,Duplex);function TransformState(e){this.afterTransform=function(t,n){return afterTransform(e,t,n)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function afterTransform(e,t,n){var r=e._transformState;r.transforming=!1;var i=r.writecb;if(!i)return e.emit("error",new Error("no writecb in Transform class"));r.writechunk=null,r.writecb=null,n!=null&&e.push(n),i(t);var s=e._readableState;s.reading=!1,(s.needReadable||s.length<s.highWaterMark)&&e._read(s.highWaterMark)}function Transform(e){if(!(this instanceof Transform))return new Transform(e);Duplex.call(this,e),this._transformState=new TransformState(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.once("prefinish",function(){typeof this._flush=="function"?this._flush(function(n){done(t,n)}):done(t)})}Transform.prototype.push=function(e,t){return this._transformState.needTransform=!1,Duplex.prototype.push.call(this,e,t)},Transform.prototype._transform=function(e,t,n){throw new Error("Not implemented")},Transform.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var i=this._readableState;(r.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},Transform.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};function done(e,t){if(t)return e.emit("error",t);var n=e._writableState,r=e._transformState;if(n.length)throw new Error("Calling transform done when ws.length != 0");if(r.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}inherits$1(PassThrough,Transform);function PassThrough(e){if(!(this instanceof PassThrough))return new PassThrough(e);Transform.call(this,e)}PassThrough.prototype._transform=function(e,t,n){n(null,e)},inherits$1(Stream,EventEmitter),Stream.Readable=Readable,Stream.Writable=Writable,Stream.Duplex=Duplex,Stream.Transform=Transform,Stream.PassThrough=PassThrough,Stream.Stream=Stream;function Stream(){EventEmitter.call(this)}Stream.prototype.pipe=function(e,t){var n=this;function r(f){e.writable&&e.write(f)===!1&&n.pause&&n.pause()}n.on("data",r);function i(){n.readable&&n.resume&&n.resume()}e.on("drain",i),!e._isStdio&&(!t||t.end!==!1)&&(n.on("end",l),n.on("close",o));var s=!1;function l(){s||(s=!0,e.end())}function o(){s||(s=!0,typeof e.destroy=="function"&&e.destroy())}function c(f){if(u(),EventEmitter.listenerCount(this,"error")===0)throw f}n.on("error",c),e.on("error",c);function u(){n.removeListener("data",r),e.removeListener("drain",i),n.removeListener("end",l),n.removeListener("close",o),n.removeListener("error",c),e.removeListener("error",c),n.removeListener("end",u),n.removeListener("close",u),e.removeListener("close",u)}return n.on("end",u),n.on("close",u),e.on("close",u),e.emit("pipe",n),e};const msg={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};function ZStream(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}function arraySet(e,t,n,r,i){if(t.subarray&&e.subarray){e.set(t.subarray(n,n+r),i);return}for(var s=0;s<r;s++)e[i+s]=t[n+s]}var Buf8=Uint8Array,Buf16=Uint16Array,Buf32=Int32Array,Z_FIXED$2=4,Z_BINARY$1=0,Z_TEXT$1=1,Z_UNKNOWN$2=2;function zero$1(e){for(var t=e.length;--t>=0;)e[t]=0}var STORED_BLOCK=0,STATIC_TREES=1,DYN_TREES=2,MIN_MATCH$1=3,MAX_MATCH$1=258,LENGTH_CODES$1=29,LITERALS$1=256,L_CODES$1=LITERALS$1+1+LENGTH_CODES$1,D_CODES$1=30,BL_CODES$1=19,HEAP_SIZE$1=2*L_CODES$1+1,MAX_BITS$1=15,Buf_size=16,MAX_BL_BITS=7,END_BLOCK=256,REP_3_6=16,REPZ_3_10=17,REPZ_11_138=18,extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],DIST_CODE_LEN=512,static_ltree=new Array((L_CODES$1+2)*2);zero$1(static_ltree);var static_dtree=new Array(D_CODES$1*2);zero$1(static_dtree);var _dist_code=new Array(DIST_CODE_LEN);zero$1(_dist_code);var _length_code=new Array(MAX_MATCH$1-MIN_MATCH$1+1);zero$1(_length_code);var base_length=new Array(LENGTH_CODES$1);zero$1(base_length);var base_dist=new Array(D_CODES$1);zero$1(base_dist);function StaticTreeDesc(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}var static_l_desc,static_d_desc,static_bl_desc;function TreeDesc(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function d_code(e){return e<256?_dist_code[e]:_dist_code[256+(e>>>7)]}function put_short(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function send_bits(e,t,n){e.bi_valid>Buf_size-n?(e.bi_buf|=t<<e.bi_valid&65535,put_short(e,e.bi_buf),e.bi_buf=t>>Buf_size-e.bi_valid,e.bi_valid+=n-Buf_size):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function send_code(e,t,n){send_bits(e,n[t*2],n[t*2+1])}function bi_reverse(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function bi_flush(e){e.bi_valid===16?(put_short(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function gen_bitlen(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,s=t.stat_desc.has_stree,l=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,c=t.stat_desc.max_length,u,f,E,b,h,g,_=0;for(b=0;b<=MAX_BITS$1;b++)e.bl_count[b]=0;for(n[e.heap[e.heap_max]*2+1]=0,u=e.heap_max+1;u<HEAP_SIZE$1;u++)f=e.heap[u],b=n[n[f*2+1]*2+1]+1,b>c&&(b=c,_++),n[f*2+1]=b,!(f>r)&&(e.bl_count[b]++,h=0,f>=o&&(h=l[f-o]),g=n[f*2],e.opt_len+=g*(b+h),s&&(e.static_len+=g*(i[f*2+1]+h)));if(_!==0){do{for(b=c-1;e.bl_count[b]===0;)b--;e.bl_count[b]--,e.bl_count[b+1]+=2,e.bl_count[c]--,_-=2}while(_>0);for(b=c;b!==0;b--)for(f=e.bl_count[b];f!==0;)E=e.heap[--u],!(E>r)&&(n[E*2+1]!==b&&(e.opt_len+=(b-n[E*2+1])*n[E*2],n[E*2+1]=b),f--)}}function gen_codes(e,t,n){var r=new Array(MAX_BITS$1+1),i=0,s,l;for(s=1;s<=MAX_BITS$1;s++)r[s]=i=i+n[s-1]<<1;for(l=0;l<=t;l++){var o=e[l*2+1];o!==0&&(e[l*2]=bi_reverse(r[o]++,o))}}function tr_static_init(){var e,t,n,r,i,s=new Array(MAX_BITS$1+1);for(n=0,r=0;r<LENGTH_CODES$1-1;r++)for(base_length[r]=n,e=0;e<1<<extra_lbits[r];e++)_length_code[n++]=r;for(_length_code[n-1]=r,i=0,r=0;r<16;r++)for(base_dist[r]=i,e=0;e<1<<extra_dbits[r];e++)_dist_code[i++]=r;for(i>>=7;r<D_CODES$1;r++)for(base_dist[r]=i<<7,e=0;e<1<<extra_dbits[r]-7;e++)_dist_code[256+i++]=r;for(t=0;t<=MAX_BITS$1;t++)s[t]=0;for(e=0;e<=143;)static_ltree[e*2+1]=8,e++,s[8]++;for(;e<=255;)static_ltree[e*2+1]=9,e++,s[9]++;for(;e<=279;)static_ltree[e*2+1]=7,e++,s[7]++;for(;e<=287;)static_ltree[e*2+1]=8,e++,s[8]++;for(gen_codes(static_ltree,L_CODES$1+1,s),e=0;e<D_CODES$1;e++)static_dtree[e*2+1]=5,static_dtree[e*2]=bi_reverse(e,5);static_l_desc=new StaticTreeDesc(static_ltree,extra_lbits,LITERALS$1+1,L_CODES$1,MAX_BITS$1),static_d_desc=new StaticTreeDesc(static_dtree,extra_dbits,0,D_CODES$1,MAX_BITS$1),static_bl_desc=new StaticTreeDesc(new Array(0),extra_blbits,0,BL_CODES$1,MAX_BL_BITS)}function init_block(e){var t;for(t=0;t<L_CODES$1;t++)e.dyn_ltree[t*2]=0;for(t=0;t<D_CODES$1;t++)e.dyn_dtree[t*2]=0;for(t=0;t<BL_CODES$1;t++)e.bl_tree[t*2]=0;e.dyn_ltree[END_BLOCK*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function bi_windup(e){e.bi_valid>8?put_short(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function copy_block(e,t,n,r){bi_windup(e),r&&(put_short(e,n),put_short(e,~n)),arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function smaller(e,t,n,r){var i=t*2,s=n*2;return e[i]<e[s]||e[i]===e[s]&&r[t]<=r[n]}function pqdownheap(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&smaller(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!smaller(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function compress_block(e,t,n){var r,i,s=0,l,o;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+s*2]<<8|e.pending_buf[e.d_buf+s*2+1],i=e.pending_buf[e.l_buf+s],s++,r===0?send_code(e,i,t):(l=_length_code[i],send_code(e,l+LITERALS$1+1,t),o=extra_lbits[l],o!==0&&(i-=base_length[l],send_bits(e,i,o)),r--,l=d_code(r),send_code(e,l,n),o=extra_dbits[l],o!==0&&(r-=base_dist[l],send_bits(e,r,o)));while(s<e.last_lit);send_code(e,END_BLOCK,t)}function build_tree(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,s=t.stat_desc.elems,l,o,c=-1,u;for(e.heap_len=0,e.heap_max=HEAP_SIZE$1,l=0;l<s;l++)n[l*2]!==0?(e.heap[++e.heap_len]=c=l,e.depth[l]=0):n[l*2+1]=0;for(;e.heap_len<2;)u=e.heap[++e.heap_len]=c<2?++c:0,n[u*2]=1,e.depth[u]=0,e.opt_len--,i&&(e.static_len-=r[u*2+1]);for(t.max_code=c,l=e.heap_len>>1;l>=1;l--)pqdownheap(e,n,l);u=s;do l=e.heap[1],e.heap[1]=e.heap[e.heap_len--],pqdownheap(e,n,1),o=e.heap[1],e.heap[--e.heap_max]=l,e.heap[--e.heap_max]=o,n[u*2]=n[l*2]+n[o*2],e.depth[u]=(e.depth[l]>=e.depth[o]?e.depth[l]:e.depth[o])+1,n[l*2+1]=n[o*2+1]=u,e.heap[1]=u++,pqdownheap(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],gen_bitlen(e,t),gen_codes(n,c,e.bl_count)}function scan_tree(e,t,n){var r,i=-1,s,l=t[0*2+1],o=0,c=7,u=4;for(l===0&&(c=138,u=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)s=l,l=t[(r+1)*2+1],!(++o<c&&s===l)&&(o<u?e.bl_tree[s*2]+=o:s!==0?(s!==i&&e.bl_tree[s*2]++,e.bl_tree[REP_3_6*2]++):o<=10?e.bl_tree[REPZ_3_10*2]++:e.bl_tree[REPZ_11_138*2]++,o=0,i=s,l===0?(c=138,u=3):s===l?(c=6,u=3):(c=7,u=4))}function send_tree(e,t,n){var r,i=-1,s,l=t[0*2+1],o=0,c=7,u=4;for(l===0&&(c=138,u=3),r=0;r<=n;r++)if(s=l,l=t[(r+1)*2+1],!(++o<c&&s===l)){if(o<u)do send_code(e,s,e.bl_tree);while(--o!==0);else s!==0?(s!==i&&(send_code(e,s,e.bl_tree),o--),send_code(e,REP_3_6,e.bl_tree),send_bits(e,o-3,2)):o<=10?(send_code(e,REPZ_3_10,e.bl_tree),send_bits(e,o-3,3)):(send_code(e,REPZ_11_138,e.bl_tree),send_bits(e,o-11,7));o=0,i=s,l===0?(c=138,u=3):s===l?(c=6,u=3):(c=7,u=4)}}function build_bl_tree(e){var t;for(scan_tree(e,e.dyn_ltree,e.l_desc.max_code),scan_tree(e,e.dyn_dtree,e.d_desc.max_code),build_tree(e,e.bl_desc),t=BL_CODES$1-1;t>=3&&e.bl_tree[bl_order[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function send_all_trees(e,t,n,r){var i;for(send_bits(e,t-257,5),send_bits(e,n-1,5),send_bits(e,r-4,4),i=0;i<r;i++)send_bits(e,e.bl_tree[bl_order[i]*2+1],3);send_tree(e,e.dyn_ltree,t-1),send_tree(e,e.dyn_dtree,n-1)}function detect_data_type(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Z_BINARY$1;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Z_TEXT$1;for(n=32;n<LITERALS$1;n++)if(e.dyn_ltree[n*2]!==0)return Z_TEXT$1;return Z_BINARY$1}var static_init_done=!1;function _tr_init(e){static_init_done||(tr_static_init(),static_init_done=!0),e.l_desc=new TreeDesc(e.dyn_ltree,static_l_desc),e.d_desc=new TreeDesc(e.dyn_dtree,static_d_desc),e.bl_desc=new TreeDesc(e.bl_tree,static_bl_desc),e.bi_buf=0,e.bi_valid=0,init_block(e)}function _tr_stored_block(e,t,n,r){send_bits(e,(STORED_BLOCK<<1)+(r?1:0),3),copy_block(e,t,n,!0)}function _tr_align(e){send_bits(e,STATIC_TREES<<1,3),send_code(e,END_BLOCK,static_ltree),bi_flush(e)}function _tr_flush_block(e,t,n,r){var i,s,l=0;e.level>0?(e.strm.data_type===Z_UNKNOWN$2&&(e.strm.data_type=detect_data_type(e)),build_tree(e,e.l_desc),build_tree(e,e.d_desc),l=build_bl_tree(e),i=e.opt_len+3+7>>>3,s=e.static_len+3+7>>>3,s<=i&&(i=s)):i=s=n+5,n+4<=i&&t!==-1?_tr_stored_block(e,t,n,r):e.strategy===Z_FIXED$2||s===i?(send_bits(e,(STATIC_TREES<<1)+(r?1:0),3),compress_block(e,static_ltree,static_dtree)):(send_bits(e,(DYN_TREES<<1)+(r?1:0),3),send_all_trees(e,e.l_desc.max_code+1,e.d_desc.max_code+1,l+1),compress_block(e,e.dyn_ltree,e.dyn_dtree)),init_block(e),r&&bi_windup(e)}function _tr_tally(e,t,n){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=n&255,e.last_lit++,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(_length_code[n]+LITERALS$1+1)*2]++,e.dyn_dtree[d_code(t)*2]++),e.last_lit===e.lit_bufsize-1}function adler32(e,t,n,r){for(var i=e&65535|0,s=e>>>16&65535|0,l=0;n!==0;){l=n>2e3?2e3:n,n-=l;do i=i+t[r++]|0,s=s+i|0;while(--l);i%=65521,s%=65521}return i|s<<16|0}function makeTable(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t}var crcTable=makeTable();function crc32(e,t,n,r){var i=crcTable,s=r+n;e^=-1;for(var l=r;l<s;l++)e=e>>>8^i[(e^t[l])&255];return e^-1}var Z_NO_FLUSH$1=0,Z_PARTIAL_FLUSH$1=1,Z_FULL_FLUSH$1=3,Z_FINISH$2=4,Z_BLOCK$2=5,Z_OK$2=0,Z_STREAM_END$2=1,Z_STREAM_ERROR$2=-2,Z_DATA_ERROR$2=-3,Z_BUF_ERROR$2=-5,Z_DEFAULT_COMPRESSION$1=-1,Z_FILTERED$1=1,Z_HUFFMAN_ONLY$1=2,Z_RLE$1=3,Z_FIXED$1=4,Z_UNKNOWN$1=2,Z_DEFLATED$2=8,MAX_MEM_LEVEL=9,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,MIN_MATCH=3,MAX_MATCH=258,MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1,PRESET_DICT=32,INIT_STATE=42,EXTRA_STATE=69,NAME_STATE=73,COMMENT_STATE=91,HCRC_STATE=103,BUSY_STATE=113,FINISH_STATE=666,BS_NEED_MORE=1,BS_BLOCK_DONE=2,BS_FINISH_STARTED=3,BS_FINISH_DONE=4,OS_CODE=3;function err(e,t){return e.msg=msg[t],t}function rank(e){return(e<<1)-(e>4?9:0)}function zero(e){for(var t=e.length;--t>=0;)e[t]=0}function flush_pending(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))}function flush_block_only(e,t){_tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,flush_pending(e.strm)}function put_byte(e,t){e.pending_buf[e.pending++]=t}function putShortMSB(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function read_buf(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=adler32(e.adler,t,i,n):e.state.wrap===2&&(e.adler=crc32(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function longest_match(e,t){var n=e.max_chain_length,r=e.strstart,i,s,l=e.prev_length,o=e.nice_match,c=e.strstart>e.w_size-MIN_LOOKAHEAD?e.strstart-(e.w_size-MIN_LOOKAHEAD):0,u=e.window,f=e.w_mask,E=e.prev,b=e.strstart+MAX_MATCH,h=u[r+l-1],g=u[r+l];e.prev_length>=e.good_match&&(n>>=2),o>e.lookahead&&(o=e.lookahead);do if(i=t,!(u[i+l]!==g||u[i+l-1]!==h||u[i]!==u[r]||u[++i]!==u[r+1])){r+=2,i++;do;while(u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&r<b);if(s=MAX_MATCH-(b-r),r=b-MAX_MATCH,s>l){if(e.match_start=t,l=s,s>=o)break;h=u[r+l-1],g=u[r+l]}}while((t=E[t&f])>c&&--n!==0);return l<=e.lookahead?l:e.lookahead}function fill_window(e){var t=e.w_size,n,r,i,s,l;do{if(s=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-MIN_LOOKAHEAD)){arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do i=e.head[--n],e.head[n]=i>=t?i-t:0;while(--r);r=t,n=r;do i=e.prev[--n],e.prev[n]=i>=t?i-t:0;while(--r);s+=t}if(e.strm.avail_in===0)break;if(r=read_buf(e.strm,e.window,e.strstart+e.lookahead,s),e.lookahead+=r,e.lookahead+e.insert>=MIN_MATCH)for(l=e.strstart-e.insert,e.ins_h=e.window[l],e.ins_h=(e.ins_h<<e.hash_shift^e.window[l+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[l+MIN_MATCH-1])&e.hash_mask,e.prev[l&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=l,l++,e.insert--,!(e.lookahead+e.insert<MIN_MATCH)););}while(e.lookahead<MIN_LOOKAHEAD&&e.strm.avail_in!==0)}function deflate_stored(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(fill_window(e),e.lookahead===0&&t===Z_NO_FLUSH$1)return BS_NEED_MORE;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((e.strstart===0||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,flush_block_only(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-MIN_LOOKAHEAD&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}return e.insert=0,t===Z_FINISH$2?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):(e.strstart>e.block_start&&(flush_block_only(e,!1),e.strm.avail_out===0),BS_NEED_MORE)}function deflate_fast(e,t){for(var n,r;;){if(e.lookahead<MIN_LOOKAHEAD){if(fill_window(e),e.lookahead<MIN_LOOKAHEAD&&t===Z_NO_FLUSH$1)return BS_NEED_MORE;if(e.lookahead===0)break}if(n=0,e.lookahead>=MIN_MATCH&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+MIN_MATCH-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-MIN_LOOKAHEAD&&(e.match_length=longest_match(e,n)),e.match_length>=MIN_MATCH)if(r=_tr_tally(e,e.strstart-e.match_start,e.match_length-MIN_MATCH),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=MIN_MATCH){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+MIN_MATCH-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=_tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}return e.insert=e.strstart<MIN_MATCH-1?e.strstart:MIN_MATCH-1,t===Z_FINISH$2?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):e.last_lit&&(flush_block_only(e,!1),e.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE}function deflate_slow(e,t){for(var n,r,i;;){if(e.lookahead<MIN_LOOKAHEAD){if(fill_window(e),e.lookahead<MIN_LOOKAHEAD&&t===Z_NO_FLUSH$1)return BS_NEED_MORE;if(e.lookahead===0)break}if(n=0,e.lookahead>=MIN_MATCH&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+MIN_MATCH-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=MIN_MATCH-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-MIN_LOOKAHEAD&&(e.match_length=longest_match(e,n),e.match_length<=5&&(e.strategy===Z_FILTERED$1||e.match_length===MIN_MATCH&&e.strstart-e.match_start>4096)&&(e.match_length=MIN_MATCH-1)),e.prev_length>=MIN_MATCH&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-MIN_MATCH,r=_tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-MIN_MATCH),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+MIN_MATCH-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=MIN_MATCH-1,e.strstart++,r&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}else if(e.match_available){if(r=_tr_tally(e,0,e.window[e.strstart-1]),r&&flush_block_only(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return BS_NEED_MORE}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=_tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<MIN_MATCH-1?e.strstart:MIN_MATCH-1,t===Z_FINISH$2?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):e.last_lit&&(flush_block_only(e,!1),e.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE}function deflate_rle(e,t){for(var n,r,i,s,l=e.window;;){if(e.lookahead<=MAX_MATCH){if(fill_window(e),e.lookahead<=MAX_MATCH&&t===Z_NO_FLUSH$1)return BS_NEED_MORE;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=MIN_MATCH&&e.strstart>0&&(i=e.strstart-1,r=l[i],r===l[++i]&&r===l[++i]&&r===l[++i])){s=e.strstart+MAX_MATCH;do;while(r===l[++i]&&r===l[++i]&&r===l[++i]&&r===l[++i]&&r===l[++i]&&r===l[++i]&&r===l[++i]&&r===l[++i]&&i<s);e.match_length=MAX_MATCH-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=MIN_MATCH?(n=_tr_tally(e,1,e.match_length-MIN_MATCH),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=_tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}return e.insert=0,t===Z_FINISH$2?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):e.last_lit&&(flush_block_only(e,!1),e.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE}function deflate_huff(e,t){for(var n;;){if(e.lookahead===0&&(fill_window(e),e.lookahead===0)){if(t===Z_NO_FLUSH$1)return BS_NEED_MORE;break}if(e.match_length=0,n=_tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}return e.insert=0,t===Z_FINISH$2?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):e.last_lit&&(flush_block_only(e,!1),e.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE}function Config(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}var configuration_table;configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)];function lm_init(e){e.window_size=2*e.w_size,zero(e.head),e.max_lazy_match=configuration_table[e.level].max_lazy,e.good_match=configuration_table[e.level].good_length,e.nice_match=configuration_table[e.level].nice_length,e.max_chain_length=configuration_table[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=MIN_MATCH-1,e.match_available=0,e.ins_h=0}function DeflateState(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Z_DEFLATED$2,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Buf16(HEAP_SIZE*2),this.dyn_dtree=new Buf16((2*D_CODES+1)*2),this.bl_tree=new Buf16((2*BL_CODES+1)*2),zero(this.dyn_ltree),zero(this.dyn_dtree),zero(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Buf16(MAX_BITS+1),this.heap=new Buf16(2*L_CODES+1),zero(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Buf16(2*L_CODES+1),zero(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function deflateResetKeep(e){var t;return!e||!e.state?err(e,Z_STREAM_ERROR$2):(e.total_in=e.total_out=0,e.data_type=Z_UNKNOWN$1,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?INIT_STATE:BUSY_STATE,e.adler=t.wrap===2?0:1,t.last_flush=Z_NO_FLUSH$1,_tr_init(t),Z_OK$2)}function deflateReset(e){var t=deflateResetKeep(e);return t===Z_OK$2&&lm_init(e.state),t}function deflateInit2(e,t,n,r,i,s){if(!e)return Z_STREAM_ERROR$2;var l=1;if(t===Z_DEFAULT_COMPRESSION$1&&(t=6),r<0?(l=0,r=-r):r>15&&(l=2,r-=16),i<1||i>MAX_MEM_LEVEL||n!==Z_DEFLATED$2||r<8||r>15||t<0||t>9||s<0||s>Z_FIXED$1)return err(e,Z_STREAM_ERROR$2);r===8&&(r=9);var o=new DeflateState;return e.state=o,o.strm=e,o.wrap=l,o.gzhead=null,o.w_bits=r,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+MIN_MATCH-1)/MIN_MATCH),o.window=new Buf8(o.w_size*2),o.head=new Buf16(o.hash_size),o.prev=new Buf16(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=(1+2)*o.lit_bufsize,o.level=t,o.strategy=s,o.method=n,deflateReset(e)}function deflate(e,t){var n,r,i,s;if(!e||!e.state||t>Z_BLOCK$2||t<0)return e?err(e,Z_STREAM_ERROR$2):Z_STREAM_ERROR$2;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===FINISH_STATE&&t!==Z_FINISH$2)return err(e,e.avail_out===0?Z_BUF_ERROR$2:Z_STREAM_ERROR$2);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===INIT_STATE)if(r.wrap===2)e.adler=0,put_byte(r,31),put_byte(r,139),put_byte(r,8),r.gzhead?(put_byte(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),put_byte(r,r.gzhead.time&255),put_byte(r,r.gzhead.time>>8&255),put_byte(r,r.gzhead.time>>16&255),put_byte(r,r.gzhead.time>>24&255),put_byte(r,r.level===9?2:r.strategy>=Z_HUFFMAN_ONLY$1||r.level<2?4:0),put_byte(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(put_byte(r,r.gzhead.extra.length&255),put_byte(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=crc32(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=EXTRA_STATE):(put_byte(r,0),put_byte(r,0),put_byte(r,0),put_byte(r,0),put_byte(r,0),put_byte(r,r.level===9?2:r.strategy>=Z_HUFFMAN_ONLY$1||r.level<2?4:0),put_byte(r,OS_CODE),r.status=BUSY_STATE);else{var l=Z_DEFLATED$2+(r.w_bits-8<<4)<<8,o=-1;r.strategy>=Z_HUFFMAN_ONLY$1||r.level<2?o=0:r.level<6?o=1:r.level===6?o=2:o=3,l|=o<<6,r.strstart!==0&&(l|=PRESET_DICT),l+=31-l%31,r.status=BUSY_STATE,putShortMSB(r,l),r.strstart!==0&&(putShortMSB(r,e.adler>>>16),putShortMSB(r,e.adler&65535)),e.adler=1}if(r.status===EXTRA_STATE)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(r.gzhead.extra.length&65535)&&!(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=crc32(e.adler,r.pending_buf,r.pending-i,i)),flush_pending(e),i=r.pending,r.pending===r.pending_buf_size));)put_byte(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=crc32(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=NAME_STATE)}else r.status=NAME_STATE;if(r.status===NAME_STATE)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=crc32(e.adler,r.pending_buf,r.pending-i,i)),flush_pending(e),i=r.pending,r.pending===r.pending_buf_size)){s=1;break}r.gzindex<r.gzhead.name.length?s=r.gzhead.name.charCodeAt(r.gzindex++)&255:s=0,put_byte(r,s)}while(s!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=crc32(e.adler,r.pending_buf,r.pending-i,i)),s===0&&(r.gzindex=0,r.status=COMMENT_STATE)}else r.status=COMMENT_STATE;if(r.status===COMMENT_STATE)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=crc32(e.adler,r.pending_buf,r.pending-i,i)),flush_pending(e),i=r.pending,r.pending===r.pending_buf_size)){s=1;break}r.gzindex<r.gzhead.comment.length?s=r.gzhead.comment.charCodeAt(r.gzindex++)&255:s=0,put_byte(r,s)}while(s!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=crc32(e.adler,r.pending_buf,r.pending-i,i)),s===0&&(r.status=HCRC_STATE)}else r.status=HCRC_STATE;if(r.status===HCRC_STATE&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&flush_pending(e),r.pending+2<=r.pending_buf_size&&(put_byte(r,e.adler&255),put_byte(r,e.adler>>8&255),e.adler=0,r.status=BUSY_STATE)):r.status=BUSY_STATE),r.pending!==0){if(flush_pending(e),e.avail_out===0)return r.last_flush=-1,Z_OK$2}else if(e.avail_in===0&&rank(t)<=rank(n)&&t!==Z_FINISH$2)return err(e,Z_BUF_ERROR$2);if(r.status===FINISH_STATE&&e.avail_in!==0)return err(e,Z_BUF_ERROR$2);if(e.avail_in!==0||r.lookahead!==0||t!==Z_NO_FLUSH$1&&r.status!==FINISH_STATE){var c=r.strategy===Z_HUFFMAN_ONLY$1?deflate_huff(r,t):r.strategy===Z_RLE$1?deflate_rle(r,t):configuration_table[r.level].func(r,t);if((c===BS_FINISH_STARTED||c===BS_FINISH_DONE)&&(r.status=FINISH_STATE),c===BS_NEED_MORE||c===BS_FINISH_STARTED)return e.avail_out===0&&(r.last_flush=-1),Z_OK$2;if(c===BS_BLOCK_DONE&&(t===Z_PARTIAL_FLUSH$1?_tr_align(r):t!==Z_BLOCK$2&&(_tr_stored_block(r,0,0,!1),t===Z_FULL_FLUSH$1&&(zero(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),flush_pending(e),e.avail_out===0))return r.last_flush=-1,Z_OK$2}return t!==Z_FINISH$2?Z_OK$2:r.wrap<=0?Z_STREAM_END$2:(r.wrap===2?(put_byte(r,e.adler&255),put_byte(r,e.adler>>8&255),put_byte(r,e.adler>>16&255),put_byte(r,e.adler>>24&255),put_byte(r,e.total_in&255),put_byte(r,e.total_in>>8&255),put_byte(r,e.total_in>>16&255),put_byte(r,e.total_in>>24&255)):(putShortMSB(r,e.adler>>>16),putShortMSB(r,e.adler&65535)),flush_pending(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?Z_OK$2:Z_STREAM_END$2)}function deflateEnd(e){var t;return!e||!e.state?Z_STREAM_ERROR$2:(t=e.state.status,t!==INIT_STATE&&t!==EXTRA_STATE&&t!==NAME_STATE&&t!==COMMENT_STATE&&t!==HCRC_STATE&&t!==BUSY_STATE&&t!==FINISH_STATE?err(e,Z_STREAM_ERROR$2):(e.state=null,t===BUSY_STATE?err(e,Z_DATA_ERROR$2):Z_OK$2))}var BAD$1=30,TYPE$1=12;function inflate_fast(e,t){var n,r,i,s,l,o,c,u,f,E,b,h,g,_,R,x,F,M,A,d,I,$,q,y,m;n=e.state,r=e.next_in,y=e.input,i=r+(e.avail_in-5),s=e.next_out,m=e.output,l=s-(t-e.avail_out),o=s+(e.avail_out-257),c=n.dmax,u=n.wsize,f=n.whave,E=n.wnext,b=n.window,h=n.hold,g=n.bits,_=n.lencode,R=n.distcode,x=(1<<n.lenbits)-1,F=(1<<n.distbits)-1;e:do{g<15&&(h+=y[r++]<<g,g+=8,h+=y[r++]<<g,g+=8),M=_[h&x];t:for(;;){if(A=M>>>24,h>>>=A,g-=A,A=M>>>16&255,A===0)m[s++]=M&65535;else if(A&16){d=M&65535,A&=15,A&&(g<A&&(h+=y[r++]<<g,g+=8),d+=h&(1<<A)-1,h>>>=A,g-=A),g<15&&(h+=y[r++]<<g,g+=8,h+=y[r++]<<g,g+=8),M=R[h&F];n:for(;;){if(A=M>>>24,h>>>=A,g-=A,A=M>>>16&255,A&16){if(I=M&65535,A&=15,g<A&&(h+=y[r++]<<g,g+=8,g<A&&(h+=y[r++]<<g,g+=8)),I+=h&(1<<A)-1,I>c){e.msg="invalid distance too far back",n.mode=BAD$1;break e}if(h>>>=A,g-=A,A=s-l,I>A){if(A=I-A,A>f&&n.sane){e.msg="invalid distance too far back",n.mode=BAD$1;break e}if($=0,q=b,E===0){if($+=u-A,A<d){d-=A;do m[s++]=b[$++];while(--A);$=s-I,q=m}}else if(E<A){if($+=u+E-A,A-=E,A<d){d-=A;do m[s++]=b[$++];while(--A);if($=0,E<d){A=E,d-=A;do m[s++]=b[$++];while(--A);$=s-I,q=m}}}else if($+=E-A,A<d){d-=A;do m[s++]=b[$++];while(--A);$=s-I,q=m}for(;d>2;)m[s++]=q[$++],m[s++]=q[$++],m[s++]=q[$++],d-=3;d&&(m[s++]=q[$++],d>1&&(m[s++]=q[$++]))}else{$=s-I;do m[s++]=m[$++],m[s++]=m[$++],m[s++]=m[$++],d-=3;while(d>2);d&&(m[s++]=m[$++],d>1&&(m[s++]=m[$++]))}}else if(A&64){e.msg="invalid distance code",n.mode=BAD$1;break e}else{M=R[(M&65535)+(h&(1<<A)-1)];continue n}break}}else if(A&64)if(A&32){n.mode=TYPE$1;break e}else{e.msg="invalid literal/length code",n.mode=BAD$1;break e}else{M=_[(M&65535)+(h&(1<<A)-1)];continue t}break}}while(r<i&&s<o);d=g>>3,r-=d,g-=d<<3,h&=(1<<g)-1,e.next_in=r,e.next_out=s,e.avail_in=r<i?5+(i-r):5-(r-i),e.avail_out=s<o?257+(o-s):257-(s-o),n.hold=h,n.bits=g}var MAXBITS=15,ENOUGH_LENS$1=852,ENOUGH_DISTS$1=592,CODES$1=0,LENS$1=1,DISTS$1=2,lbase=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],lext=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],dbase=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],dext=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];function inflate_table(e,t,n,r,i,s,l,o){var c=o.bits,u=0,f=0,E=0,b=0,h=0,g=0,_=0,R=0,x=0,F=0,M,A,d,I,$,q=null,y=0,m,C=new Buf16(MAXBITS+1),w=new Buf16(MAXBITS+1),L=null,W=0,B,N,P;for(u=0;u<=MAXBITS;u++)C[u]=0;for(f=0;f<r;f++)C[t[n+f]]++;for(h=c,b=MAXBITS;b>=1&&C[b]===0;b--);if(h>b&&(h=b),b===0)return i[s++]=1<<24|64<<16|0,i[s++]=1<<24|64<<16|0,o.bits=1,0;for(E=1;E<b&&C[E]===0;E++);for(h<E&&(h=E),R=1,u=1;u<=MAXBITS;u++)if(R<<=1,R-=C[u],R<0)return-1;if(R>0&&(e===CODES$1||b!==1))return-1;for(w[1]=0,u=1;u<MAXBITS;u++)w[u+1]=w[u]+C[u];for(f=0;f<r;f++)t[n+f]!==0&&(l[w[t[n+f]]++]=f);if(e===CODES$1?(q=L=l,m=19):e===LENS$1?(q=lbase,y-=257,L=lext,W-=257,m=256):(q=dbase,L=dext,m=-1),F=0,f=0,u=E,$=s,g=h,_=0,d=-1,x=1<<h,I=x-1,e===LENS$1&&x>ENOUGH_LENS$1||e===DISTS$1&&x>ENOUGH_DISTS$1)return 1;for(;;){B=u-_,l[f]<m?(N=0,P=l[f]):l[f]>m?(N=L[W+l[f]],P=q[y+l[f]]):(N=32+64,P=0),M=1<<u-_,A=1<<g,E=A;do A-=M,i[$+(F>>_)+A]=B<<24|N<<16|P|0;while(A!==0);for(M=1<<u-1;F&M;)M>>=1;if(M!==0?(F&=M-1,F+=M):F=0,f++,--C[u]===0){if(u===b)break;u=t[n+l[f]]}if(u>h&&(F&I)!==d){for(_===0&&(_=h),$+=E,g=u-_,R=1<<g;g+_<b&&(R-=C[g+_],!(R<=0));)g++,R<<=1;if(x+=1<<g,e===LENS$1&&x>ENOUGH_LENS$1||e===DISTS$1&&x>ENOUGH_DISTS$1)return 1;d=F&I,i[d]=h<<24|g<<16|$-s|0}}return F!==0&&(i[$+F]=u-_<<24|64<<16|0),o.bits=h,0}var CODES=0,LENS=1,DISTS=2,Z_FINISH$1=4,Z_BLOCK$1=5,Z_TREES$1=6,Z_OK$1=0,Z_STREAM_END$1=1,Z_NEED_DICT$1=2,Z_STREAM_ERROR$1=-2,Z_DATA_ERROR$1=-3,Z_MEM_ERROR=-4,Z_BUF_ERROR$1=-5,Z_DEFLATED$1=8,HEAD=1,FLAGS=2,TIME=3,OS=4,EXLEN=5,EXTRA=6,NAME=7,COMMENT=8,HCRC=9,DICTID=10,DICT=11,TYPE=12,TYPEDO=13,STORED=14,COPY_=15,COPY=16,TABLE=17,LENLENS=18,CODELENS=19,LEN_=20,LEN=21,LENEXT=22,DIST=23,DISTEXT=24,MATCH=25,LIT=26,CHECK=27,LENGTH=28,DONE=29,BAD=30,MEM=31,SYNC=32,ENOUGH_LENS=852,ENOUGH_DISTS=592;function zswap32(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function InflateState(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Buf16(320),this.work=new Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function inflateResetKeep(e){var t;return!e||!e.state?Z_STREAM_ERROR$1:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=HEAD,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Buf32(ENOUGH_LENS),t.distcode=t.distdyn=new Buf32(ENOUGH_DISTS),t.sane=1,t.back=-1,Z_OK$1)}function inflateReset(e){var t;return!e||!e.state?Z_STREAM_ERROR$1:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,inflateResetKeep(e))}function inflateReset2(e,t){var n,r;return!e||!e.state||(r=e.state,t<0?(n=0,t=-t):(n=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?Z_STREAM_ERROR$1:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,inflateReset(e))}function inflateInit2(e,t){var n,r;return e?(r=new InflateState,e.state=r,r.window=null,n=inflateReset2(e,t),n!==Z_OK$1&&(e.state=null),n):Z_STREAM_ERROR$1}var virgin=!0,lenfix,distfix;function fixedtables(e){if(virgin){var t;for(lenfix=new Buf32(512),distfix=new Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(inflate_table(LENS,e.lens,0,288,lenfix,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;inflate_table(DISTS,e.lens,0,32,distfix,0,e.work,{bits:5}),virgin=!1}e.lencode=lenfix,e.lenbits=9,e.distcode=distfix,e.distbits=5}function updatewindow(e,t,n,r){var i,s=e.state;return s.window===null&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Buf8(s.wsize)),r>=s.wsize?(arraySet(s.window,t,n-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i=s.wsize-s.wnext,i>r&&(i=r),arraySet(s.window,t,n-r,i,s.wnext),r-=i,r?(arraySet(s.window,t,n-r,r,0),s.wnext=r,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0}function inflate(e,t){var n,r,i,s,l,o,c,u,f,E,b,h,g,_,R=0,x,F,M,A,d,I,$,q,y=new Buf8(4),m,C,w=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return Z_STREAM_ERROR$1;n=e.state,n.mode===TYPE&&(n.mode=TYPEDO),l=e.next_out,i=e.output,c=e.avail_out,s=e.next_in,r=e.input,o=e.avail_in,u=n.hold,f=n.bits,E=o,b=c,q=Z_OK$1;e:for(;;)switch(n.mode){case HEAD:if(n.wrap===0){n.mode=TYPEDO;break}for(;f<16;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(n.wrap&2&&u===35615){n.check=0,y[0]=u&255,y[1]=u>>>8&255,n.check=crc32(n.check,y,2,0),u=0,f=0,n.mode=FLAGS;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){e.msg="incorrect header check",n.mode=BAD;break}if((u&15)!==Z_DEFLATED$1){e.msg="unknown compression method",n.mode=BAD;break}if(u>>>=4,f-=4,$=(u&15)+8,n.wbits===0)n.wbits=$;else if($>n.wbits){e.msg="invalid window size",n.mode=BAD;break}n.dmax=1<<$,e.adler=n.check=1,n.mode=u&512?DICTID:TYPE,u=0,f=0;break;case FLAGS:for(;f<16;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(n.flags=u,(n.flags&255)!==Z_DEFLATED$1){e.msg="unknown compression method",n.mode=BAD;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=BAD;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&(y[0]=u&255,y[1]=u>>>8&255,n.check=crc32(n.check,y,2,0)),u=0,f=0,n.mode=TIME;case TIME:for(;f<32;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}n.head&&(n.head.time=u),n.flags&512&&(y[0]=u&255,y[1]=u>>>8&255,y[2]=u>>>16&255,y[3]=u>>>24&255,n.check=crc32(n.check,y,4,0)),u=0,f=0,n.mode=OS;case OS:for(;f<16;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&(y[0]=u&255,y[1]=u>>>8&255,n.check=crc32(n.check,y,2,0)),u=0,f=0,n.mode=EXLEN;case EXLEN:if(n.flags&1024){for(;f<16;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&(y[0]=u&255,y[1]=u>>>8&255,n.check=crc32(n.check,y,2,0)),u=0,f=0}else n.head&&(n.head.extra=null);n.mode=EXTRA;case EXTRA:if(n.flags&1024&&(h=n.length,h>o&&(h=o),h&&(n.head&&($=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),arraySet(n.head.extra,r,s,h,$)),n.flags&512&&(n.check=crc32(n.check,r,h,s)),o-=h,s+=h,n.length-=h),n.length))break e;n.length=0,n.mode=NAME;case NAME:if(n.flags&2048){if(o===0)break e;h=0;do $=r[s+h++],n.head&&$&&n.length<65536&&(n.head.name+=String.fromCharCode($));while($&&h<o);if(n.flags&512&&(n.check=crc32(n.check,r,h,s)),o-=h,s+=h,$)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=COMMENT;case COMMENT:if(n.flags&4096){if(o===0)break e;h=0;do $=r[s+h++],n.head&&$&&n.length<65536&&(n.head.comment+=String.fromCharCode($));while($&&h<o);if(n.flags&512&&(n.check=crc32(n.check,r,h,s)),o-=h,s+=h,$)break e}else n.head&&(n.head.comment=null);n.mode=HCRC;case HCRC:if(n.flags&512){for(;f<16;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(u!==(n.check&65535)){e.msg="header crc mismatch",n.mode=BAD;break}u=0,f=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=TYPE;break;case DICTID:for(;f<32;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}e.adler=n.check=zswap32(u),u=0,f=0,n.mode=DICT;case DICT:if(n.havedict===0)return e.next_out=l,e.avail_out=c,e.next_in=s,e.avail_in=o,n.hold=u,n.bits=f,Z_NEED_DICT$1;e.adler=n.check=1,n.mode=TYPE;case TYPE:if(t===Z_BLOCK$1||t===Z_TREES$1)break e;case TYPEDO:if(n.last){u>>>=f&7,f-=f&7,n.mode=CHECK;break}for(;f<3;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}switch(n.last=u&1,u>>>=1,f-=1,u&3){case 0:n.mode=STORED;break;case 1:if(fixedtables(n),n.mode=LEN_,t===Z_TREES$1){u>>>=2,f-=2;break e}break;case 2:n.mode=TABLE;break;case 3:e.msg="invalid block type",n.mode=BAD}u>>>=2,f-=2;break;case STORED:for(u>>>=f&7,f-=f&7;f<32;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if((u&65535)!==(u>>>16^65535)){e.msg="invalid stored block lengths",n.mode=BAD;break}if(n.length=u&65535,u=0,f=0,n.mode=COPY_,t===Z_TREES$1)break e;case COPY_:n.mode=COPY;case COPY:if(h=n.length,h){if(h>o&&(h=o),h>c&&(h=c),h===0)break e;arraySet(i,r,s,h,l),o-=h,s+=h,c-=h,l+=h,n.length-=h;break}n.mode=TYPE;break;case TABLE:for(;f<14;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(n.nlen=(u&31)+257,u>>>=5,f-=5,n.ndist=(u&31)+1,u>>>=5,f-=5,n.ncode=(u&15)+4,u>>>=4,f-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=BAD;break}n.have=0,n.mode=LENLENS;case LENLENS:for(;n.have<n.ncode;){for(;f<3;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}n.lens[w[n.have++]]=u&7,u>>>=3,f-=3}for(;n.have<19;)n.lens[w[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,m={bits:n.lenbits},q=inflate_table(CODES,n.lens,0,19,n.lencode,0,n.work,m),n.lenbits=m.bits,q){e.msg="invalid code lengths set",n.mode=BAD;break}n.have=0,n.mode=CODELENS;case CODELENS:for(;n.have<n.nlen+n.ndist;){for(;R=n.lencode[u&(1<<n.lenbits)-1],x=R>>>24,F=R>>>16&255,M=R&65535,!(x<=f);){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(M<16)u>>>=x,f-=x,n.lens[n.have++]=M;else{if(M===16){for(C=x+2;f<C;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(u>>>=x,f-=x,n.have===0){e.msg="invalid bit length repeat",n.mode=BAD;break}$=n.lens[n.have-1],h=3+(u&3),u>>>=2,f-=2}else if(M===17){for(C=x+3;f<C;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}u>>>=x,f-=x,$=0,h=3+(u&7),u>>>=3,f-=3}else{for(C=x+7;f<C;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}u>>>=x,f-=x,$=0,h=11+(u&127),u>>>=7,f-=7}if(n.have+h>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=BAD;break}for(;h--;)n.lens[n.have++]=$}}if(n.mode===BAD)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=BAD;break}if(n.lenbits=9,m={bits:n.lenbits},q=inflate_table(LENS,n.lens,0,n.nlen,n.lencode,0,n.work,m),n.lenbits=m.bits,q){e.msg="invalid literal/lengths set",n.mode=BAD;break}if(n.distbits=6,n.distcode=n.distdyn,m={bits:n.distbits},q=inflate_table(DISTS,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,m),n.distbits=m.bits,q){e.msg="invalid distances set",n.mode=BAD;break}if(n.mode=LEN_,t===Z_TREES$1)break e;case LEN_:n.mode=LEN;case LEN:if(o>=6&&c>=258){e.next_out=l,e.avail_out=c,e.next_in=s,e.avail_in=o,n.hold=u,n.bits=f,inflate_fast(e,b),l=e.next_out,i=e.output,c=e.avail_out,s=e.next_in,r=e.input,o=e.avail_in,u=n.hold,f=n.bits,n.mode===TYPE&&(n.back=-1);break}for(n.back=0;R=n.lencode[u&(1<<n.lenbits)-1],x=R>>>24,F=R>>>16&255,M=R&65535,!(x<=f);){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(F&&!(F&240)){for(A=x,d=F,I=M;R=n.lencode[I+((u&(1<<A+d)-1)>>A)],x=R>>>24,F=R>>>16&255,M=R&65535,!(A+x<=f);){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}u>>>=A,f-=A,n.back+=A}if(u>>>=x,f-=x,n.back+=x,n.length=M,F===0){n.mode=LIT;break}if(F&32){n.back=-1,n.mode=TYPE;break}if(F&64){e.msg="invalid literal/length code",n.mode=BAD;break}n.extra=F&15,n.mode=LENEXT;case LENEXT:if(n.extra){for(C=n.extra;f<C;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,f-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=DIST;case DIST:for(;R=n.distcode[u&(1<<n.distbits)-1],x=R>>>24,F=R>>>16&255,M=R&65535,!(x<=f);){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(!(F&240)){for(A=x,d=F,I=M;R=n.distcode[I+((u&(1<<A+d)-1)>>A)],x=R>>>24,F=R>>>16&255,M=R&65535,!(A+x<=f);){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}u>>>=A,f-=A,n.back+=A}if(u>>>=x,f-=x,n.back+=x,F&64){e.msg="invalid distance code",n.mode=BAD;break}n.offset=M,n.extra=F&15,n.mode=DISTEXT;case DISTEXT:if(n.extra){for(C=n.extra;f<C;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,f-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=BAD;break}n.mode=MATCH;case MATCH:if(c===0)break e;if(h=b-c,n.offset>h){if(h=n.offset-h,h>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=BAD;break}h>n.wnext?(h-=n.wnext,g=n.wsize-h):g=n.wnext-h,h>n.length&&(h=n.length),_=n.window}else _=i,g=l-n.offset,h=n.length;h>c&&(h=c),c-=h,n.length-=h;do i[l++]=_[g++];while(--h);n.length===0&&(n.mode=LEN);break;case LIT:if(c===0)break e;i[l++]=n.length,c--,n.mode=LEN;break;case CHECK:if(n.wrap){for(;f<32;){if(o===0)break e;o--,u|=r[s++]<<f,f+=8}if(b-=c,e.total_out+=b,n.total+=b,b&&(e.adler=n.check=n.flags?crc32(n.check,i,b,l-b):adler32(n.check,i,b,l-b)),b=c,(n.flags?u:zswap32(u))!==n.check){e.msg="incorrect data check",n.mode=BAD;break}u=0,f=0}n.mode=LENGTH;case LENGTH:if(n.wrap&&n.flags){for(;f<32;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(u!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=BAD;break}u=0,f=0}n.mode=DONE;case DONE:q=Z_STREAM_END$1;break e;case BAD:q=Z_DATA_ERROR$1;break e;case MEM:return Z_MEM_ERROR;case SYNC:default:return Z_STREAM_ERROR$1}return e.next_out=l,e.avail_out=c,e.next_in=s,e.avail_in=o,n.hold=u,n.bits=f,(n.wsize||b!==e.avail_out&&n.mode<BAD&&(n.mode<CHECK||t!==Z_FINISH$1))&&updatewindow(e,e.output,e.next_out,b-e.avail_out),E-=e.avail_in,b-=e.avail_out,e.total_in+=E,e.total_out+=b,n.total+=b,n.wrap&&b&&(e.adler=n.check=n.flags?crc32(n.check,i,b,e.next_out-b):adler32(n.check,i,b,e.next_out-b)),e.data_type=n.bits+(n.last?64:0)+(n.mode===TYPE?128:0)+(n.mode===LEN_||n.mode===COPY_?256:0),(E===0&&b===0||t===Z_FINISH$1)&&q===Z_OK$1&&(q=Z_BUF_ERROR$1),q}function inflateEnd(e){if(!e||!e.state)return Z_STREAM_ERROR$1;var t=e.state;return t.window&&(t.window=null),e.state=null,Z_OK$1}var NONE=0,DEFLATE=1,INFLATE=2,GZIP=3,GUNZIP=4,DEFLATERAW=5,INFLATERAW=6,UNZIP=7,Z_NO_FLUSH=0,Z_PARTIAL_FLUSH=1,Z_SYNC_FLUSH=2,Z_FULL_FLUSH=3,Z_FINISH=4,Z_BLOCK=5,Z_TREES=6,Z_OK=0,Z_STREAM_END=1,Z_NEED_DICT=2,Z_ERRNO=-1,Z_STREAM_ERROR=-2,Z_DATA_ERROR=-3,Z_BUF_ERROR=-5,Z_NO_COMPRESSION=0,Z_BEST_SPEED=1,Z_BEST_COMPRESSION=9,Z_DEFAULT_COMPRESSION=-1,Z_FILTERED=1,Z_HUFFMAN_ONLY=2,Z_RLE=3,Z_FIXED=4,Z_DEFAULT_STRATEGY=0,Z_BINARY=0,Z_TEXT=1,Z_UNKNOWN=2,Z_DEFLATED=8;function Zlib$1(e){if(e<DEFLATE||e>UNZIP)throw new TypeError("Bad argument");this.mode=e,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}Zlib$1.prototype.init=function(e,t,n,r,i){this.windowBits=e,this.level=t,this.memLevel=n,this.strategy=r,(this.mode===GZIP||this.mode===GUNZIP)&&(this.windowBits+=16),this.mode===UNZIP&&(this.windowBits+=32),(this.mode===DEFLATERAW||this.mode===INFLATERAW)&&(this.windowBits=-this.windowBits),this.strm=new ZStream;var s;switch(this.mode){case DEFLATE:case GZIP:case DEFLATERAW:s=deflateInit2(this.strm,this.level,Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case INFLATE:case GUNZIP:case INFLATERAW:case UNZIP:s=inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}if(s!==Z_OK){this._error(s);return}this.write_in_progress=!1,this.init_done=!0},Zlib$1.prototype.params=function(){throw new Error("deflateParams Not supported")},Zlib$1.prototype._writeCheck=function(){if(!this.init_done)throw new Error("write before init");if(this.mode===NONE)throw new Error("already finalized");if(this.write_in_progress)throw new Error("write already in progress");if(this.pending_close)throw new Error("close is pending")},Zlib$1.prototype.write=function(e,t,n,r,i,s,l){this._writeCheck(),this.write_in_progress=!0;var o=this;return browser$1$1.nextTick(function(){o.write_in_progress=!1;var c=o._write(e,t,n,r,i,s,l);o.callback(c[0],c[1]),o.pending_close&&o.close()}),this};function bufferSet(e,t){for(var n=0;n<e.length;n++)this[t+n]=e[n]}Zlib$1.prototype.writeSync=function(e,t,n,r,i,s,l){return this._writeCheck(),this._write(e,t,n,r,i,s,l)},Zlib$1.prototype._write=function(e,t,n,r,i,s,l){if(this.write_in_progress=!0,e!==Z_NO_FLUSH&&e!==Z_PARTIAL_FLUSH&&e!==Z_SYNC_FLUSH&&e!==Z_FULL_FLUSH&&e!==Z_FINISH&&e!==Z_BLOCK)throw new Error("Invalid flush value");t==null&&(t=new Buffer(0),r=0,n=0),i._set?i.set=i._set:i.set=bufferSet;var o=this.strm;o.avail_in=r,o.input=t,o.next_in=n,o.avail_out=l,o.output=i,o.next_out=s;var c;switch(this.mode){case DEFLATE:case GZIP:case DEFLATERAW:c=deflate(o,e);break;case UNZIP:case INFLATE:case GUNZIP:case INFLATERAW:c=inflate(o,e);break;default:throw new Error("Unknown mode "+this.mode)}return c!==Z_STREAM_END&&c!==Z_OK&&this._error(c),this.write_in_progress=!1,[o.avail_in,o.avail_out]},Zlib$1.prototype.close=function(){if(this.write_in_progress){this.pending_close=!0;return}this.pending_close=!1,this.mode===DEFLATE||this.mode===GZIP||this.mode===DEFLATERAW?deflateEnd(this.strm):inflateEnd(this.strm),this.mode=NONE};var status;Zlib$1.prototype.reset=function(){switch(this.mode){case DEFLATE:case DEFLATERAW:status=deflateReset(this.strm);break;case INFLATE:case INFLATERAW:status=inflateReset(this.strm);break}status!==Z_OK&&this._error(status)},Zlib$1.prototype._error=function(e){this.onerror(msg[e]+": "+this.strm.msg,e),this.write_in_progress=!1,this.pending_close&&this.close()};const _binding=Object.freeze(Object.defineProperty({__proto__:null,DEFLATE,DEFLATERAW,GUNZIP,GZIP,INFLATE,INFLATERAW,NONE,UNZIP,Z_BEST_COMPRESSION,Z_BEST_SPEED,Z_BINARY,Z_BLOCK,Z_BUF_ERROR,Z_DATA_ERROR,Z_DEFAULT_COMPRESSION,Z_DEFAULT_STRATEGY,Z_DEFLATED,Z_ERRNO,Z_FILTERED,Z_FINISH,Z_FIXED,Z_FULL_FLUSH,Z_HUFFMAN_ONLY,Z_NEED_DICT,Z_NO_COMPRESSION,Z_NO_FLUSH,Z_OK,Z_PARTIAL_FLUSH,Z_RLE,Z_STREAM_END,Z_STREAM_ERROR,Z_SYNC_FLUSH,Z_TEXT,Z_TREES,Z_UNKNOWN,Zlib:Zlib$1},Symbol.toStringTag,{value:"Module"}));function assert(e,t){if(!e)throw new Error(t)}var binding={};Object.keys(_binding).forEach(function(e){binding[e]=_binding[e]}),binding.Z_MIN_WINDOWBITS=8,binding.Z_MAX_WINDOWBITS=15,binding.Z_DEFAULT_WINDOWBITS=15,binding.Z_MIN_CHUNK=64,binding.Z_MAX_CHUNK=1/0,binding.Z_DEFAULT_CHUNK=16*1024,binding.Z_MIN_MEMLEVEL=1,binding.Z_MAX_MEMLEVEL=9,binding.Z_DEFAULT_MEMLEVEL=8,binding.Z_MIN_LEVEL=-1,binding.Z_MAX_LEVEL=9,binding.Z_DEFAULT_LEVEL=binding.Z_DEFAULT_COMPRESSION;var codes={Z_OK:binding.Z_OK,Z_STREAM_END:binding.Z_STREAM_END,Z_NEED_DICT:binding.Z_NEED_DICT,Z_ERRNO:binding.Z_ERRNO,Z_STREAM_ERROR:binding.Z_STREAM_ERROR,Z_DATA_ERROR:binding.Z_DATA_ERROR,Z_MEM_ERROR:binding.Z_MEM_ERROR,Z_BUF_ERROR:binding.Z_BUF_ERROR,Z_VERSION_ERROR:binding.Z_VERSION_ERROR};Object.keys(codes).forEach(function(e){codes[codes[e]]=e});function deflateSync(e,t){return zlibBufferSync(new Deflate(t),e)}function inflateSync(e,t){return zlibBufferSync(new Inflate(t),e)}function zlibBufferSync(e,t){if(typeof t=="string"&&(t=new Buffer(t)),!Buffer.isBuffer(t))throw new TypeError("Not a string or buffer");var n=binding.Z_FINISH;return e._processChunk(t,n)}function Deflate(e){if(!(this instanceof Deflate))return new Deflate(e);Zlib.call(this,e,binding.DEFLATE)}function Inflate(e){if(!(this instanceof Inflate))return new Inflate(e);Zlib.call(this,e,binding.INFLATE)}function Gzip(e){if(!(this instanceof Gzip))return new Gzip(e);Zlib.call(this,e,binding.GZIP)}function Gunzip(e){if(!(this instanceof Gunzip))return new Gunzip(e);Zlib.call(this,e,binding.GUNZIP)}function DeflateRaw(e){if(!(this instanceof DeflateRaw))return new DeflateRaw(e);Zlib.call(this,e,binding.DEFLATERAW)}function InflateRaw(e){if(!(this instanceof InflateRaw))return new InflateRaw(e);Zlib.call(this,e,binding.INFLATERAW)}function Unzip(e){if(!(this instanceof Unzip))return new Unzip(e);Zlib.call(this,e,binding.UNZIP)}function Zlib(e,t){if(this._opts=e=e||{},this._chunkSize=e.chunkSize||binding.Z_DEFAULT_CHUNK,Transform.call(this,e),e.flush&&e.flush!==binding.Z_NO_FLUSH&&e.flush!==binding.Z_PARTIAL_FLUSH&&e.flush!==binding.Z_SYNC_FLUSH&&e.flush!==binding.Z_FULL_FLUSH&&e.flush!==binding.Z_FINISH&&e.flush!==binding.Z_BLOCK)throw new Error("Invalid flush flag: "+e.flush);if(this._flushFlag=e.flush||binding.Z_NO_FLUSH,e.chunkSize&&(e.chunkSize<binding.Z_MIN_CHUNK||e.chunkSize>binding.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+e.chunkSize);if(e.windowBits&&(e.windowBits<binding.Z_MIN_WINDOWBITS||e.windowBits>binding.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+e.windowBits);if(e.level&&(e.level<binding.Z_MIN_LEVEL||e.level>binding.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+e.level);if(e.memLevel&&(e.memLevel<binding.Z_MIN_MEMLEVEL||e.memLevel>binding.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+e.memLevel);if(e.strategy&&e.strategy!=binding.Z_FILTERED&&e.strategy!=binding.Z_HUFFMAN_ONLY&&e.strategy!=binding.Z_RLE&&e.strategy!=binding.Z_FIXED&&e.strategy!=binding.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+e.strategy);if(e.dictionary&&!Buffer.isBuffer(e.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new binding.Zlib(t);var n=this;this._hadError=!1,this._binding.onerror=function(s,l){n._binding=null,n._hadError=!0;var o=new Error(s);o.errno=l,o.code=binding.codes[l],n.emit("error",o)};var r=binding.Z_DEFAULT_COMPRESSION;typeof e.level=="number"&&(r=e.level);var i=binding.Z_DEFAULT_STRATEGY;typeof e.strategy=="number"&&(i=e.strategy),this._binding.init(e.windowBits||binding.Z_DEFAULT_WINDOWBITS,r,e.memLevel||binding.Z_DEFAULT_MEMLEVEL,i,e.dictionary),this._buffer=new Buffer(this._chunkSize),this._offset=0,this._closed=!1,this._level=r,this._strategy=i,this.once("end",this.close)}inherits$1(Zlib,Transform),Zlib.prototype.params=function(e,t,n){if(e<binding.Z_MIN_LEVEL||e>binding.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+e);if(t!=binding.Z_FILTERED&&t!=binding.Z_HUFFMAN_ONLY&&t!=binding.Z_RLE&&t!=binding.Z_FIXED&&t!=binding.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+t);if(this._level!==e||this._strategy!==t){var r=this;this.flush(binding.Z_SYNC_FLUSH,function(){r._binding.params(e,t),r._hadError||(r._level=e,r._strategy=t,n&&n())})}else browser$1$1.nextTick(n)},Zlib.prototype.reset=function(){return this._binding.reset()},Zlib.prototype._flush=function(e){this._transform(new Buffer(0),"",e)},Zlib.prototype.flush=function(e,t){var n=this._writableState;if((typeof e=="function"||e===void 0&&!t)&&(t=e,e=binding.Z_FULL_FLUSH),n.ended)t&&browser$1$1.nextTick(t);else if(n.ending)t&&this.once("end",t);else if(n.needDrain){var r=this;this.once("drain",function(){r.flush(t)})}else this._flushFlag=e,this.write(new Buffer(0),"",t)},Zlib.prototype.close=function(e){if(e&&browser$1$1.nextTick(e),!this._closed){this._closed=!0,this._binding.close();var t=this;browser$1$1.nextTick(function(){t.emit("close")})}},Zlib.prototype._transform=function(e,t,n){var r,i=this._writableState,s=i.ending||i.ended,l=s&&(!e||i.length===e.length);if(!e===null&&!Buffer.isBuffer(e))return n(new Error("invalid input"));l?r=binding.Z_FINISH:(r=this._flushFlag,e.length>=i.length&&(this._flushFlag=this._opts.flush||binding.Z_NO_FLUSH)),this._processChunk(e,r,n)},Zlib.prototype._processChunk=function(e,t,n){var r=e&&e.length,i=this._chunkSize-this._offset,s=0,l=this,o=typeof n=="function";if(!o){var c=[],u=0,f;this.on("error",function(_){f=_});do var E=this._binding.writeSync(t,e,s,r,this._buffer,this._offset,i);while(!this._hadError&&g(E[0],E[1]));if(this._hadError)throw f;var b=Buffer.concat(c,u);return this.close(),b}var h=this._binding.write(t,e,s,r,this._buffer,this._offset,i);h.buffer=e,h.callback=g;function g(_,R){if(!l._hadError){var x=i-R;if(assert(x>=0,"have should not go down"),x>0){var F=l._buffer.slice(l._offset,l._offset+x);l._offset+=x,o?l.push(F):(c.push(F),u+=F.length)}if((R===0||l._offset>=l._chunkSize)&&(i=l._chunkSize,l._offset=0,l._buffer=new Buffer(l._chunkSize)),R===0){if(s+=r-_,r=_,!o)return!0;var M=l._binding.write(t,e,s,r,l._buffer,l._offset,l._chunkSize);M.callback=g,M.buffer=e;return}if(!o)return!1;n()}}},inherits$1(Deflate,Zlib),inherits$1(Inflate,Zlib),inherits$1(Gzip,Zlib),inherits$1(Gunzip,Zlib),inherits$1(DeflateRaw,Zlib),inherits$1(InflateRaw,Zlib),inherits$1(Unzip,Zlib);function serializeHash(e){return deflateSync(Buffer.from(JSON.stringify(e),"utf8")).toString("base64")}function deserializeHash(e){return JSON.parse(inflateSync(Buffer.from(e,"base64")).toString("utf8"))}const isRtcPeer=e=>e!==void 0&&e.capabilities!==void 0&&e.capabilitySet!==void 0;let version;function getRtcClientVersion(){return version===void 0&&(version=new URLSearchParams(window.location.search).get("rtc_client")),version}function assertNotCancelled(e){if(e)throw new Error("Cancelled by deadline")}class Device extends EventEmitter{constructor(n,r,i){super();Te(this,"rtcClient");Te(this,"remoteDevicePeerId",null);Te(this,"realtimeListeners",[]);Te(this,"connectionMonitorInterval");Te(this,"handleMessage",(n,r)=>{this.realtimeListeners.forEach(i=>i(n,r))});this.id=n,this.name=r,this.organizationId=i}async getLatestTelemetry(){return(await(await fetch(`${FORMANT_API_URL}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async getConfiguration(){let n=await fetch(`${FORMANT_API_URL}/v1/admin/devices/${this.id}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}});const r=await n.json();if(!r.state.reportedConfiguration)throw new Error("Device has no configuration, has it ever been turned on?");const i=r.state.reportedConfiguration.version;return n=await fetch(`${FORMANT_API_URL}/v1/admin/devices/${this.id}/configurations/${i}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),(await n.json()).document}async getFileUrl(n){return(await(await fetch(`${FORMANT_API_URL}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[n]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).fileUrls}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error(`Realtime connection hasn't been started for ${this.id}`)}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async startRealtimeConnection(n={}){if(console.debug(`${new Date().toISOString()} :: Connection start requested`),this.rtcClient&&this.connectionMonitorInterval!==void 0)throw new Error(`Already created realtime connection to device ${this.id}`);this.rtcClient&&console.warn("overwriting existing rtcClient due to missing connectionMonitorInterval");const{sessionType:r,deadlineMs:i=1e4,maxConnectRetries:s=3}=typeof n=="number"?{sessionType:n}:n,o=getRtcClientPool({sessionType:r,version:getRtcClientVersion()??"2"}).get(this.handleMessage);let c=!1;const u=new Promise((E,b)=>setTimeout(()=>{c=!0,b(new Error("Connection timed out: the connection could not be finalized in time, possibly due to network issues or misconfigured settings."))},i)),f=async()=>{if("isReady"in o)for(;!o.isReady();)assertNotCancelled(c),await delay(100);const E=await this.getRemoteDevicePeerId(o);assertNotCancelled(c);let b;for(let g=0;g<s&&(b=await o.connect(E),!b);g++)delay(100),assertNotCancelled(c);if(!b)throw new Error(`Session could not be created: exhausted ${s} retries`);let h=0;for(;!c&&o.getConnectionStatus(E)!=="connected";)await delay(100),h+=1;return assertNotCancelled(c),console.debug(`${new Date().toISOString()} :: Connection completed after ${h} retries`),E};return Promise.race([f(),u]).then(E=>{this.remoteDevicePeerId=E,this.initConnectionMonitoring(),this.rtcClient=o,this.emit("connect")}).catch(E=>{throw console.debug(`${new Date().toISOString()} :: Connection failed: %o`,E),this.remoteDevicePeerId=null,o.shutdown().catch(b=>{console.error("rtcClient cannot shutdown: %o",b)}),this.emit("connection_failed",E),E})}async getRemoteDevicePeerId(n){const i=(await n.getPeers()).find(s=>s.deviceId===this.id);if(!isRtcPeer(i))throw new Error("Cannot find peer, is the robot offline?");return i.id}initConnectionMonitoring(){this.connectionMonitorInterval=setInterval(async()=>{if(!this.isV2Signaling(this.rtcClient))return;const r=this.rtcClient.getConnections().find(s=>s.getRemotePeerId()===this.remoteDevicePeerId&&s.isActive());let i=!1;r===void 0||!r.isReady()?(console.debug(`${new Date().toISOString()} :: data channel closed`),i=!0):console.debug(`${new Date().toISOString()} :: data channel appears active`),(!this.rtcClient||!this.remoteDevicePeerId||await this.rtcClient.getConnectionStatsInfo(this.remoteDevicePeerId)===void 0||i)&&(this.emit("disconnect"),this.stopRealtimeConnection().catch(s=>{console.error(s)}))},1e3)}isV2Signaling(n){return n.getConnectionStatsInfo!==void 0}stopConnectionMonitoring(){clearInterval(this.connectionMonitorInterval),this.connectionMonitorInterval=void 0}async sendRealtimeMessage(n,r={channelLabel:"stream.reliable"}){const i=defined(this.rtcClient,"Realtime connection has not been started"),s=await this.getRemotePeerId();i.send(s,n,r)}addRealtimeListener(n){this.realtimeListeners.push(n)}removeRealtimeListener(n){const r=this.realtimeListeners.indexOf(n);if(r===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(r,1)}async getRealtimeAudioStreams(){var i,s,l;const n=await this.getConfiguration(),r=[];for(const o of((i=n.teleop)==null?void 0:i.hardwareStreams)??[])o.rtcStreamType==="audio-chunk"&&r.push({name:o.name});for(const o of((s=n.teleop)==null?void 0:s.rosStreams)??[])o.topicType=="audio_common_msgs/AudioData"&&r.push({name:o.topicName});for(const o of((l=n.teleop)==null?void 0:l.customStreams)??[])o.rtcStreamType==="audio-chunk"&&r.push({name:o.name});return r}async getRealtimeVideoStreams(){var i,s,l;const n=await this.getConfiguration(),r=[];for(const o of((i=n.teleop)==null?void 0:i.hardwareStreams)??[])o.rtcStreamType==="h264-video-frame"&&r.push({name:o.name});for(const o of((s=n.teleop)==null?void 0:s.rosStreams)??[])o.topicType=="formant/H264VideoFrame"&&r.push({name:o.topicName}),(o.topicType==="sensor_msgs/Image"||o.topicType==="sensor_msgs/CompressedImage")&&o.encodeVideo&&r.push({name:o.topicName});for(const o of((l=n.teleop)==null?void 0:l.customStreams)??[])o.rtcStreamType==="h264-video-frame"&&r.push({name:o.name});return r}async getRealtimeManipulators(){const n=await this.getConfiguration(),r=[];for(const i of n.teleop.rosStreams??[])i.topicType=="sensor_msgs/JointState"&&r.push(new Manipulator(this,{currentJointStateStream:{name:i.topicName},plannedJointStateStream:i.plannedTopic?{name:i.plannedTopic}:void 0,planValidStream:i.planValidTopic?{name:i.planValidTopic}:void 0,endEffectorStream:i.endEffectorTopic?{name:i.endEffectorTopic}:void 0,endEffectorLinkName:i.endEffectorLinkName,baseReferenceFrame:i.baseReferenceFrame,localFrame:i.localFrame}));return r}async startListeningToRealtimeVideo(n){console.debug(`RealtimeVideo(${this.id}).start(${n.name})`);const r=defined(this.rtcClient,"Realtime connection has not been started"),i=await this.getRemotePeerId();r.controlRemoteStream(i,{streamName:n.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(n){const r=defined(this.rtcClient,"Realtime connection has not been started"),i=await this.getRemotePeerId();r.controlRemoteStream(i,{streamName:n.name,enable:!1,pipeline:"rtc"}),console.debug(`RealtimeVideo(${this.id}).stop(${n.name})`)}async startListeningToRealtimeDataStream(n){console.debug(`RealtimeDataStream(${this.id}).start(${n.name})`);const r=defined(this.rtcClient,"Realtime connection has not been started"),i=await this.getRemotePeerId();r.controlRemoteStream(i,{streamName:n.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(n){const r=defined(this.rtcClient,"Realtime connection has not been started"),i=await this.getRemotePeerId();r.controlRemoteStream(i,{streamName:n.name,enable:!1,pipeline:"rtc"}),console.debug(`RealtimeDataStream(${this.id}).stop(${n.name})`)}async enableRealtimeTelemetryPriorityIngestion(n){const r=defined(this.rtcClient,"Realtime connection has not been started"),i=await this.getRemotePeerId();r.controlRemoteStream(i,{streamName:n,enablePriorityUpload:!0,pipeline:"telemetry"})}async changeStreamAudioType(n,r){const i=defined(this.rtcClient,"Realtime connection has not been started"),s=await this.getRemotePeerId();i.controlRemoteStream(s,{streamName:n,setAudioFormat:r})}async disableRealtimeTelemetryPriorityIngestion(n){const r=defined(this.rtcClient,"Realtime connection has not been started"),i=await this.getRemotePeerId();r.controlRemoteStream(i,{streamName:n,enablePriorityUpload:!1,pipeline:"telemetry"})}async getRemotePeer(){const r=(await defined(this.rtcClient,"Realtime connection has not been started").getPeers()).find(i=>i.deviceId===this.id);return defined(r,"Could not find remote peer for device "+this.id)}async stopRealtimeConnection(){let n=!1;if(this.rtcClient){this.stopConnectionMonitoring(),this.remoteDevicePeerId?(await this.rtcClient.disconnect(this.remoteDevicePeerId),this.remoteDevicePeerId=null):n=!0;try{await this.rtcClient.shutdown()}finally{this.rtcClient=void 0}}if(n)throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async isInRealtimeSession(){const n=await Fleet.getPeers(),r=await Fleet.getRealtimeSessions(),i=n.find(s=>s.deviceId===this.id);return i?r[i.id].length>0:!1}async getAvailableCommands(){return(await(await fetch(`${FORMANT_API_URL}/v1/admin/command-templates/`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(i=>({name:i.name,id:i.id,command:i.command,description:i.description,parameterEnabled:i.parameterEnabled,parameterValue:i.parameterValue,parameterMeta:i.parameterMeta,enabled:i.enabled}))}async sendCommand(n,r,i,s){var E;const o=(await this.getAvailableCommands()).find(b=>b.name===n);if(!o)throw new Error(`Could not find command with name "${n}"`);let c="";r===void 0?o.parameterEnabled&&o.parameterValue&&(c=o.parameterValue):c=r;let u={value:c,scrubberTime:(i||new Date).toISOString(),meta:{...o.parameterMeta,...s}};return await fetch(`${FORMANT_API_URL}/v1/admin/commands`,{method:"POST",body:JSON.stringify({commandTemplateId:o.id,organizationId:this.organizationId,deviceId:this.id,command:o.command,parameter:u,userId:(E=Authentication.currentUser)==null?void 0:E.id}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async getCommand(n){return await fetch(`${FORMANT_API_URL}/v1/admin/commands/${n}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async createCustomDataChannel(n,r){if(getRtcClientVersion()==="1")throw new Error("createCustomDataChannel is not supported in rtcClientVersion 1");const i=defined(this.rtcClient,"Realtime connection has not been started"),s=await this.getRemotePeerId(),l=await new Promise(o=>{i.createCustomDataChannel(s,n,{ordered:!0,...r},!1,(c,u)=>{const f=new DataChannel(u);o(f)})});return await l.waitTilReady(),l}createCustomRequestDataChannel(n,r=3e3){return new TextRequestDataChannel(this,n,r)}createCustomBinaryRequestDataChannel(n,r=3e3){return new BinaryRequestDataChannel(this,n,r)}async createCaptureStream(n){const i=await(await fetch(`${FORMANT_API_URL}/v1/admin/capture-sessions`,{method:"POST",body:JSON.stringify({deviceId:this.id,streamName:n,tags:{}}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return new CaptureStream(i)}async getTelemetry(n,r,i,s){return await Fleet.getTelemetry(this.id,n,r,i,s)}async getTelemetryStreams(){var c,u;const n=await this.getConfiguration(),r=await fetch(`${FORMANT_API_URL}/v1/queries/metadata/stream-names`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),i=[],s=[];return(u=(c=n.telemetry)==null?void 0:c.streams)==null||u.forEach(f=>{f.disabled!==!0&&i.push(f.name),f.onDemand===!0&&s.push(f.name)}),console.log(s),(await r.json()).items.filter(f=>!i.includes(f)).map(f=>({name:f,onDemand:s.includes(f)}))}async createInterventionRequest(n,r,i,s){return await(await fetch(`${FORMANT_API_URL}/v1/admin/intervention-requests`,{method:"POST",body:JSON.stringify({message:n,interventionType:r,time:new Date().toISOString(),deviceId:this.id,tags:s,data:i}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async addInterventionResponse(n,r,i){return await(await fetch(`${FORMANT_API_URL}/v1/admin/intervention-responses`,{method:"POST",body:JSON.stringify({interventionId:n,interventionType:r,data:i}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async getAnnotationCount(n,r){return await Fleet.getAnnotationCount({...n,deviceIds:[this.id]},r)}async getAnnotationCountByIntervals(n,r,i){return await Fleet.getAnnotationCountByIntervals({...n,deviceIds:[this.id]},r,i)}async eventsCounter(n,r,i,s,l){return await Fleet.eventsCounter(n,r,i,s,{...l,deviceIds:[this.id]})}async createShareLink(n,r){return n.scope.deviceIds=[this.id],await Fleet.createShareLink(n,r)}async getRemotePeerId(){return this.remoteDevicePeerId??(await this.getRemotePeer()).id}}class PeerDevice{constructor(t){Te(this,"rtcClient");Te(this,"remoteDevicePeerId");Te(this,"realtimeListeners",[]);Te(this,"id");Te(this,"handleMessage",(t,n)=>{this.realtimeListeners.forEach(r=>r(t,n))});this.peerUrl=t}async getLatestTelemetry(){const n=await(await fetch(`${this.peerUrl}/telemetry`)).json();return Object.entries(n).map(([i,s])=>({deviceId:this.id,streamName:i,streamType:"json",currentValue:s,currentValueTime:s.timestamp,tags:{}}))}async getDeviceId(){return(await(await fetch(`${this.peerUrl}/configuration`)).json()).agent_config.id}async getConfiguration(){return(await(await fetch(`${this.peerUrl}/configuration`)).json()).agent_config.document}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}async startRealtimeConnection(t){if(this.rtcClient)throw new Error(`Already created realtime connection to device ${this.id}`);{const n=new distExports.RtcClient({lanOnlyMode:!0,receive:this.handleMessage,sessionType:t});for(await n.connectLan(this.peerUrl);n.getConnectionStatus(this.peerUrl)!=="connected";)await delay(100);this.rtcClient=n}}addRealtimeListener(t){this.realtimeListeners.push(t)}removeRealtimeListener(t){const n=this.realtimeListeners.indexOf(t);if(n===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(n,1)}async getRealtimeVideoStreams(){const t=await this.getConfiguration(),n=[];for(const r of t.teleop.hardwareStreams??[])r.rtcStreamType==="h264-video-frame"&&n.push({name:r.name});for(const r of t.teleop.rosStreams??[])r.topicType=="formant/H264VideoFrame"&&n.push({name:r.topicName}),(r.topicType==="sensor_msgs/Image"||r.topicType==="sensor_msgs/CompressedImage")&&r.encodeVideo&&n.push({name:r.topicName});for(const r of t.teleop.customStreams??[])r.rtcStreamType==="h264-video-frame"&&n.push({name:r.name});return n}async getRealtimeManipulators(){const t=await this.getConfiguration(),n=[];for(const r of t.teleop.rosStreams??[])r.topicType=="sensor_msgs/JointState"&&n.push(new Manipulator(this,{currentJointStateStream:{name:r.topicName},plannedJointStateStream:r.plannedTopic?{name:r.plannedTopic}:void 0,planValidStream:r.planValidTopic?{name:r.planValidTopic}:void 0,endEffectorStream:r.endEffectorTopic?{name:r.endEffectorTopic}:void 0,endEffectorLinkName:r.endEffectorLinkName,baseReferenceFrame:r.baseReferenceFrame,localFrame:r.localFrame}));return n}async startListeningToRealtimeVideo(t){const n=defined(this.rtcClient,"Realtime connection has not been started"),r=await this.getRemotePeer();n.controlRemoteStream(defined(r).id,{streamName:t.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(t){const n=defined(this.rtcClient,"Realtime connection has not been started"),r=await this.getRemotePeer();n.controlRemoteStream(defined(r).id,{streamName:t.name,enable:!1,pipeline:"rtc"})}async startListeningToRealtimeDataStream(t){const n=defined(this.rtcClient,"Realtime connection has not been started"),r=await this.getRemotePeer();n.controlRemoteStream(defined(r).id,{streamName:t.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(t){const n=defined(this.rtcClient,"Realtime connection has not been started"),r=await this.getRemotePeer();n.controlRemoteStream(defined(r).id,{streamName:t.name,enable:!1,pipeline:"rtc"})}async enableRealtimeTelemetryPriorityIngestion(t){const n=defined(this.rtcClient,"Realtime connection has not been started"),r=await this.getRemotePeer();n.controlRemoteStream(defined(r).id,{streamName:t,enablePriorityUpload:!0,pipeline:"telemetry"})}async disableRealtimeTelemetryPriorityIngestion(t){const n=defined(this.rtcClient,"Realtime connection has not been started"),r=await this.getRemotePeer();n.controlRemoteStream(defined(r).id,{streamName:t,enablePriorityUpload:!1,pipeline:"telemetry"})}async getRemotePeer(){return{id:this.peerUrl,organizationId:"",deviceId:this.id,capabilities:[],capabilitySet:{}}}async stopRealtimeConnection(){if(this.rtcClient)await this.rtcClient.disconnect(this.id);else throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async createCustomDataChannel(t,n){const r=defined(this.rtcClient,"Realtime connection has not been started"),i=await this.getRemotePeer(),s=await new Promise(l=>{r.createCustomDataChannel(defined(i).id,t,{ordered:!0,...n},!1,(o,c)=>{const u=new DataChannel(c);l(u)})});return await s.waitTilReady(),s}createCustomRequestDataChannel(t,n=3e3){return new TextRequestDataChannel(this,t,n)}createCustomBinaryRequestDataChannel(t,n=3e3){return new BinaryRequestDataChannel(this,t,n)}}const Ge=class{static async setDefaultDevice(t){Ge.defaultDeviceId=t}static async getCurrentDevice(){if(!Authentication.token)throw new Error("Not authenticated");if(!Ge.defaultDeviceId)throw new Error("No known default device");const i=(await(await fetch(`${FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.find(l=>l.id===Ge.defaultDeviceId).name,s=new Device(Ge.defaultDeviceId,i,defined(Authentication.currentOrganization));return Ge.knownContext.push(new WeakRef(s)),s}static async getPeerDevice(t){const n=new PeerDevice(t);return n.id=await n.getDeviceId(),n}static async getDevice(t){if(!Authentication.token)throw new Error("Not authenticated");const r=await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${t}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json(),i=r.name,s=new Device(t,i,r.organizationId);return Ge.knownContext.push(new WeakRef(s)),s}static async getDevices(){if(!Authentication.token)throw new Error("Not authenticated");const n=await(await fetch(`${FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",body:JSON.stringify({enabled:!0,type:"default"}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return n.items,n.items.map(r=>new Device(r.id,r.name,r.organizationId))}static async queryDevices(t){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/query`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(i=>new Device(i.id,i.name,i.organizationId))}static async getOnlineDevices(){if(!Authentication.token)throw new Error("Not authenticated");const r=(await(await fetch(`${FORMANT_API_URL}/v1/queries/online-devices`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items;return(await Ge.getDevices()).filter(s=>r.includes(s.id))}static async getPeers(){if(!Authentication.token)throw new Error("Not authenticated");const t=defaultRtcClientPool.get();try{return await t.getPeers()}finally{await t.shutdown()}}static async getRealtimeSessions(){if(!Authentication.token)throw new Error("Not authenticated");const t=defaultRtcClientPool.get();try{return await t.getSessions()}finally{await t.shutdown()}}static async getRealtimeDevices(){if(!Authentication.token)throw new Error("Not authenticated");const r=(await(await fetch(`${FORMANT_API_URL}/v1/signaling/peers`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(s=>s.deviceId);return(await Ge.getDevices()).filter(s=>r.includes(s.id))}static async getLatestTelemetry(...t){const n=t.flat().filter(s=>!!s);return n.length===0?[]:(await(await fetch(`${FORMANT_API_URL}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:n}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async getTelemetry(t,n,r,i,s){let l=t;Array.isArray(t)||(l=[t]);let o=n;return Array.isArray(n)||(o=[n]),(await(await fetch(`${FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify({deviceIds:l,end:i.toISOString(),names:o,start:r.toISOString(),tags:s}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async getFileUrl(t){const r=await(await fetch(`${FORMANT_API_URL}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[t]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();if(r.fileUrls.length===0)throw new Error("File not found");return r.fileUrls[0]}static async queryTelemetry(t){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async aggregateTelemetry(t){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).aggregates}static async queryEvents(t){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/events/query`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async getEvent(t){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/events/query/id=${t}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async getInterventions(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/intervention-requests`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async getCurrentGroup(){if(!Authentication.token)throw new Error("Not authenticated");let t=new URLSearchParams("");typeof window<"u"&&(t=new URLSearchParams(window.location.search));const n=t.get("group");if(n===null||n.trim()==="")return;const r=await fetch(`${FORMANT_API_URL}/v1/admin/groups/`+n,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),{tagKey:i,tagValue:s}=await r.json();return await this.queryDevices({tags:{[i]:[s]},enabled:!0,type:"default"})}static async getAnnotationCount(t,n){return(await this.queryEvents({...t,eventTypes:["annotation"]})).filter(l=>!!l.tags&&Object.keys(l.tags).includes(n)).reduce((l,o)=>{const c=o.tags[n];return c in l?(l[c]+=1,l):(l[c]=1,l)},{})}static async getAnnotationCountByIntervals(t,n,r){const{end:i,start:s}=t,o=aggregateByDateFunctions[r].interval({start:new Date(s),end:new Date(i)}),c=o.map((f,E)=>{const b=new Date(f).toISOString(),h=E===o.length-1?new Date(Date.now()).toISOString():new Date(o[E+1]);return this.getAnnotationCount({...t,start:b,end:h},n)}),u=await Promise.all(c);return o.map((f,E)=>({date:new Date(f).toISOString(),annotations:u[E]}))}static async getStreams(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/streams`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.filter(r=>r.enabled)}static async patchStream(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/streams/${t.id}`,{method:"PATCH",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async getViews(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/views`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async patchView(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/views/${t.id}`,{method:"PATCH",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async eventsCounter(t,n,r,i,s){const l=aggregateByDateFunctions[n];return await Promise.all(Array(r).fill(0).map(async(o,c)=>{const u=new Date(i),f=l.sub(l.start(u),r-c-1),E=l.sub(l.end(u),r-c-1),b=formatTimeFrameText(f.toLocaleDateString(),E.toLocaleDateString()),h=await Ge.queryEvents({...s,eventTypes:t,start:new Date(f).toISOString(),end:new Date(E).toISOString()});return{date:b,events:h}}))}static async getAnalyticsModules(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/analytics-modules`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async getAnalyticStreams(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics/streams`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async getTaskReportTables(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics/task-reports`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async queryAnalytics(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async getAnalyticsRows(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics/rows`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async getTaskReportRows(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics/task-report-rows`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async createShareLink(t,n){if(!Authentication.token)throw new Error("Not authenticated");const i=(await this.getViews()).filter(c=>c.name===n);if(i.length===0)return console.warn("View does not exist or it is misspell"),null;const s=await fetch(`${FORMANT_API_URL}/v1/admin/shares`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),l=FORMANT_API_URL.replace("api","app"),{code:o}=await s.json();return`${l}/shares/${o}#${serializeHash({viewId:i[0].id})}`}};let Fleet=Ge;Te(Fleet,"defaultDeviceId"),Te(Fleet,"knownContext",[]);class KeyValue{static async set(t,n){try{const r=await fetch(FORMANT_API_URL+"/v1/admin/key-value",{method:"POST",body:JSON.stringify({organizationId:defined(Authentication.currentUser).organizationId,key:t,value:n}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),i=await r.json();if(r.status!==200)throw new Error(i.message)}catch(r){throw r}}static async get(t){try{const n=await fetch(FORMANT_API_URL+`/v1/admin/key-value/${t}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),r=await n.json();if(n.status!==200)throw new Error(r.message);return r.value}catch(n){throw n}}static async list(){try{const t=await fetch(FORMANT_API_URL+"/v1/admin/key-value",{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),n=await t.json();if(t.status!==200)throw new Error(n.message);return n.items}catch(t){throw t}}static async delete(t){try{if(!(await fetch(FORMANT_API_URL+`/v1/admin/key-value/${t}`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).ok)throw new Error("Unable to handle request");return}catch(n){throw n}}}function stringToArrayBuffer(e){return Uint8Array.from(atob(e),t=>t.charCodeAt(0))}function browser(){const{userAgent:e}=navigator;return e.includes("Firefox/")?"Firefox":e.includes("Edg/")?"Edge":e.includes("Chrome/")?"Chrome":e.includes("Safari/")?"Safari":e.includes("MSIE/")||e.includes("Trident/")?"IE":"Other"}const rtcAudioChunkStreamType="audio-chunk";class AudioPlayer{constructor(t,n){Te(this,"muted",!1);Te(this,"hasReceivedData",!1);Te(this,"audioContext");Te(this,"chunks",[]);Te(this,"isPlaying",!1);Te(this,"startTime",0);Te(this,"lastChunkOffset",0);Te(this,"bufferSize",3);Te(this,"receive",async t=>{var l;const n=(l=t.payload.audioChunk)==null?void 0:l.chunk_data;if(!n)return;this.hasReceivedData||(this.hasReceivedData=!0);const{audioContext:r,muted:i}=this;if(!r||t.header.stream.streamType!==rtcAudioChunkStreamType||i!==!1)return;const s=stringToArrayBuffer(n);try{await r.decodeAudioData(s.buffer,this.scheduleChunk)}catch(o){console.warn("Error decoding audio buffer, changing audioWireFormat on agent",{error:o}),this.changeAudioWireFormat("wav")}});Te(this,"scheduleChunk",t=>{const{audioContext:n}=this;if(!n)return;(this.chunks.length>this.bufferSize||this.isPlaying===!1)&&(this.chunks.forEach(i=>{i.stop()}),this.isPlaying=!1,this.chunks=[]);const r=this.createChunk(t);r&&r.buffer&&(this.isPlaying===!1&&(this.startTime=n.currentTime,this.lastChunkOffset=0,this.isPlaying=!0),r.start(this.startTime+this.lastChunkOffset,0,t.duration),this.lastChunkOffset+=r.buffer.duration,this.chunks.push(r))});this.device=t,this.stream=n,this.device.startListeningToRealtimeDataStream(n),this.device.addRealtimeListener((i,s)=>{this.receive(s)}),browser()==="Safari"||browser()==="IE"?this.changeAudioWireFormat("wav"):this.changeAudioWireFormat("opus");const r=window.AudioContext||window.webkitAudioContext;this.audioContext=new r}async play(){var t,n;((t=this.audioContext)==null?void 0:t.state)==="suspended"&&await((n=this.audioContext)==null?void 0:n.resume()),this.muted=!1}async pause(){await this.audioContext.suspend(),this.muted=!0}destroy(){this.device.stopListeningToRealtimeDataStream(this.stream)}createChunk(t){const{audioContext:n}=this;if(!n)return;const r=n.createBufferSource();return r.buffer=t,r.connect(n.destination),r.loop=!1,r.onended=i=>{this.chunks.splice(this.chunks.indexOf(r),1),this.chunks.length===0&&(this.isPlaying=!1)},r}changeAudioWireFormat(t){const{stream:n}=this;(async()=>await this.device.changeStreamAudioType(n.name,t))()}}const accessLevels=["viewer","operator","administrator"],viewer="viewer",operator="operator",administrator="administrator",aggregateLevels=["year","month","week","day","hour","minute"],annotationTypes=["tag","sheet","user"],eventTypes=["triggered-event","intervention-request","teleop-session-record","port-forwarding-session-record","command-request","command-response","command-delivery","custom","comment","system","annotation"],healthStatuses=["unknown","operational","offline","error"],interventionTypes=["selection","labeling","teleop"],severities=["info","warning","error","critical"],videoMimeTypes=["video/mp4"];window.Buffer=Buffer;const urlParams=typeof window<"u"?new URLSearchParams(window.location.search):new URLSearchParams(""),urlDevice=urlParams.get("device");urlDevice&&Fleet.setDefaultDevice(urlDevice);const urlAuth=urlParams.get("auth");urlAuth&&Authentication.loginWithToken(urlAuth);const moduleName=urlParams.get("module");moduleName&&Authentication.listenForRefresh(),typeof window<"u"&&App.listenForConnectionEvents(),exports.App=App,exports.AudioPlayer=AudioPlayer,exports.Authentication=Authentication,exports.BinaryRequestDataChannel=BinaryRequestDataChannel,exports.CaptureStream=CaptureStream,exports.DataChannel=DataChannel,exports.Device=Device,exports.Fleet=Fleet,exports.KeyValue=KeyValue,exports.Manipulator=Manipulator,exports.PeerDevice=PeerDevice,exports.SessionType=SessionTypeConstants,exports.TextRequestDataChannel=TextRequestDataChannel,exports.accessLevels=accessLevels,exports.administrator=administrator,exports.aggregateByDateFunctions=aggregateByDateFunctions,exports.aggregateFunctionMap=aggregateFunctionMap,exports.aggregateFunctions=aggregateFunctions,exports.aggregateLevels=aggregateLevels,exports.annotationTypes=annotationTypes,exports.combineNumericAggregates=combineNumericAggregates,exports.combineNumericSetAggregates=combineNumericSetAggregates,exports.deserializeHash=deserializeHash,exports.eventTypes=eventTypes,exports.formatTimeFrameText=formatTimeFrameText,exports.getAverage=getAverage,exports.getCount=getCount,exports.getMax=getMax,exports.getMin=getMin,exports.getRtcClientVersion=getRtcClientVersion,exports.getStandardDeviation=getStandardDeviation,exports.getSum=getSum,exports.getVariance=getVariance,exports.getZeroINumericSet=getZeroINumericSet,exports.healthStatuses=healthStatuses,exports.interventionTypes=interventionTypes,exports.isRtcPeer=isRtcPeer,exports.operator=operator,exports.reduceNumericSetStreamAggregates=reduceNumericSetStreamAggregates,exports.reduceNumericStreamAggregates=reduceNumericStreamAggregates,exports.serializeHash=serializeHash,exports.severities=severities,exports.timeout=timeout,exports.vailableAggregationIntervals=vailableAggregationIntervals,exports.videoMimeTypes=videoMimeTypes,exports.viewer=viewer,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})});
|
|
58
|
+
`)+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function isArray(e){return Array.isArray(e)}function isBoolean(e){return typeof e=="boolean"}function isNull(e){return e===null}function isNumber(e){return typeof e=="number"}function isString(e){return typeof e=="string"}function isUndefined(e){return e===void 0}function isRegExp(e){return isObject(e)&&objectToString(e)==="[object RegExp]"}function isObject(e){return typeof e=="object"&&e!==null}function isDate(e){return isObject(e)&&objectToString(e)==="[object Date]"}function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}function isFunction(e){return typeof e=="function"}function objectToString(e){return Object.prototype.toString.call(e)}function _extend(e,t){if(!t||!isObject(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e}function hasOwnProperty(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function BufferList(){this.head=null,this.tail=null,this.length=0}BufferList.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},BufferList.prototype.unshift=function(e){var t={data:e,next:this.head};this.length===0&&(this.tail=t),this.head=t,++this.length},BufferList.prototype.shift=function(){if(this.length!==0){var e=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},BufferList.prototype.clear=function(){this.head=this.tail=null,this.length=0},BufferList.prototype.join=function(e){if(this.length===0)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},BufferList.prototype.concat=function(e){if(this.length===0)return Buffer.alloc(0);if(this.length===1)return this.head.data;for(var t=Buffer.allocUnsafe(e>>>0),n=this.head,r=0;n;)n.data.copy(t,r),r+=n.data.length,n=n.next;return t};var isBufferEncoding=Buffer.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function assertEncoding(e){if(e&&!isBufferEncoding(e))throw new Error("Unknown encoding: "+e)}function StringDecoder(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),assertEncoding(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=utf16DetectIncompleteChar;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=base64DetectIncompleteChar;break;default:this.write=passThroughWrite;return}this.charBuffer=new Buffer(6),this.charReceived=0,this.charLength=0}StringDecoder.prototype.write=function(e){for(var t="";this.charLength;){var n=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,n),this.charReceived+=n,this.charReceived<this.charLength)return"";e=e.slice(n,e.length),t=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319){this.charLength+=this.surrogateSize,t="";continue}if(this.charReceived=this.charLength=0,e.length===0)return t;break}this.detectIncompleteChar(e);var r=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,r),r-=this.charReceived),t+=e.toString(this.encoding,0,r);var r=t.length-1,i=t.charCodeAt(r);if(i>=55296&&i<=56319){var s=this.surrogateSize;return this.charLength+=s,this.charReceived+=s,this.charBuffer.copy(this.charBuffer,s,0,s),e.copy(this.charBuffer,0,0,s),t.substring(0,r)}return t},StringDecoder.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var n=e[e.length-t];if(t==1&&n>>5==6){this.charLength=2;break}if(t<=2&&n>>4==14){this.charLength=3;break}if(t<=3&&n>>3==30){this.charLength=4;break}}this.charReceived=t},StringDecoder.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var n=this.charReceived,r=this.charBuffer,i=this.encoding;t+=r.slice(0,n).toString(i)}return t};function passThroughWrite(e){return e.toString(this.encoding)}function utf16DetectIncompleteChar(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function base64DetectIncompleteChar(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}Readable.ReadableState=ReadableState;var debug=debuglog("stream");inherits$1(Readable,EventEmitter);function prependListener(e,t,n){if(typeof e.prependListener=="function")return e.prependListener(t,n);!e._events||!e._events[t]?e.on(t,n):Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]}function listenerCount(e,t){return e.listeners(t).length}function ReadableState(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof Duplex&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var n=e.highWaterMark,r=this.objectMode?16:16*1024;this.highWaterMark=n||n===0?n:r,this.highWaterMark=~~this.highWaterMark,this.buffer=new BufferList,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new StringDecoder(e.encoding),this.encoding=e.encoding)}function Readable(e){if(!(this instanceof Readable))return new Readable(e);this._readableState=new ReadableState(e,this),this.readable=!0,e&&typeof e.read=="function"&&(this._read=e.read),EventEmitter.call(this)}Readable.prototype.push=function(e,t){var n=this._readableState;return!n.objectMode&&typeof e=="string"&&(t=t||n.defaultEncoding,t!==n.encoding&&(e=Buffer.from(e,t),t="")),readableAddChunk(this,n,e,t,!1)},Readable.prototype.unshift=function(e){var t=this._readableState;return readableAddChunk(this,t,e,"",!0)},Readable.prototype.isPaused=function(){return this._readableState.flowing===!1};function readableAddChunk(e,t,n,r,i){var s=chunkInvalid(t,n);if(s)e.emit("error",s);else if(n===null)t.reading=!1,onEofChunk(e,t);else if(t.objectMode||n&&n.length>0)if(t.ended&&!i){var l=new Error("stream.push() after EOF");e.emit("error",l)}else if(t.endEmitted&&i){var o=new Error("stream.unshift() after end event");e.emit("error",o)}else{var c;t.decoder&&!i&&!r&&(n=t.decoder.write(n),c=!t.objectMode&&n.length===0),i||(t.reading=!1),c||(t.flowing&&t.length===0&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,i?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&emitReadable(e))),maybeReadMore(e,t)}else i||(t.reading=!1);return needMoreData(t)}function needMoreData(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||e.length===0)}Readable.prototype.setEncoding=function(e){return this._readableState.decoder=new StringDecoder(e),this._readableState.encoding=e,this};var MAX_HWM=8388608;function computeNewHighWaterMark(e){return e>=MAX_HWM?e=MAX_HWM:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function howMuchToRead(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=computeNewHighWaterMark(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}Readable.prototype.read=function(e){debug("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return debug("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?endReadable(this):emitReadable(this),null;if(e=howMuchToRead(e,t),e===0&&t.ended)return t.length===0&&endReadable(this),null;var r=t.needReadable;debug("need readable",r),(t.length===0||t.length-e<t.highWaterMark)&&(r=!0,debug("length less than watermark",r)),t.ended||t.reading?(r=!1,debug("reading or ended",r)):r&&(debug("do read"),t.reading=!0,t.sync=!0,t.length===0&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=howMuchToRead(n,t)));var i;return e>0?i=fromList(e,t):i=null,i===null?(t.needReadable=!0,e=0):t.length-=e,t.length===0&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&endReadable(this)),i!==null&&this.emit("data",i),i};function chunkInvalid(e,t){var n=null;return!Buffer.isBuffer(t)&&typeof t!="string"&&t!==null&&t!==void 0&&!e.objectMode&&(n=new TypeError("Invalid non-string/buffer chunk")),n}function onEofChunk(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,emitReadable(e)}}function emitReadable(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(debug("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?nextTick(emitReadable_,e):emitReadable_(e))}function emitReadable_(e){debug("emit readable"),e.emit("readable"),flow(e)}function maybeReadMore(e,t){t.readingMore||(t.readingMore=!0,nextTick(maybeReadMore_,e,t))}function maybeReadMore_(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(debug("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}Readable.prototype._read=function(e){this.emit("error",new Error("not implemented"))},Readable.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e);break}r.pipesCount+=1,debug("pipe count=%d opts=%j",r.pipesCount,t);var i=!t||t.end!==!1,s=i?o:f;r.endEmitted?nextTick(s):n.once("end",s),e.on("unpipe",l);function l(x){debug("onunpipe"),x===n&&f()}function o(){debug("onend"),e.end()}var c=pipeOnDrain(n);e.on("drain",c);var u=!1;function f(){debug("cleanup"),e.removeListener("close",g),e.removeListener("finish",_),e.removeListener("drain",c),e.removeListener("error",h),e.removeListener("unpipe",l),n.removeListener("end",o),n.removeListener("end",f),n.removeListener("data",b),u=!0,r.awaitDrain&&(!e._writableState||e._writableState.needDrain)&&c()}var E=!1;n.on("data",b);function b(x){debug("ondata"),E=!1;var F=e.write(x);F===!1&&!E&&((r.pipesCount===1&&r.pipes===e||r.pipesCount>1&&indexOf(r.pipes,e)!==-1)&&!u&&(debug("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,E=!0),n.pause())}function h(x){debug("onerror",x),R(),e.removeListener("error",h),listenerCount(e,"error")===0&&e.emit("error",x)}prependListener(e,"error",h);function g(){e.removeListener("finish",_),R()}e.once("close",g);function _(){debug("onfinish"),e.removeListener("close",g),R()}e.once("finish",_);function R(){debug("unpipe"),n.unpipe(e)}return e.emit("pipe",n),r.flowing||(debug("pipe resume"),n.resume()),e};function pipeOnDrain(e){return function(){var t=e._readableState;debug("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&e.listeners("data").length&&(t.flowing=!0,flow(e))}}Readable.prototype.unpipe=function(e){var t=this._readableState;if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var n=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i<r;i++)n[i].emit("unpipe",this);return this}var s=indexOf(t.pipes,e);return s===-1?this:(t.pipes.splice(s,1),t.pipesCount-=1,t.pipesCount===1&&(t.pipes=t.pipes[0]),e.emit("unpipe",this),this)},Readable.prototype.on=function(e,t){var n=EventEmitter.prototype.on.call(this,e,t);if(e==="data")this._readableState.flowing!==!1&&this.resume();else if(e==="readable"){var r=this._readableState;!r.endEmitted&&!r.readableListening&&(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&emitReadable(this):nextTick(nReadingNextTick,this))}return n},Readable.prototype.addListener=Readable.prototype.on;function nReadingNextTick(e){debug("readable nexttick read 0"),e.read(0)}Readable.prototype.resume=function(){var e=this._readableState;return e.flowing||(debug("resume"),e.flowing=!0,resume(this,e)),this};function resume(e,t){t.resumeScheduled||(t.resumeScheduled=!0,nextTick(resume_,e,t))}function resume_(e,t){t.reading||(debug("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),flow(e),t.flowing&&!t.reading&&e.read(0)}Readable.prototype.pause=function(){return debug("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(debug("pause"),this._readableState.flowing=!1,this.emit("pause")),this};function flow(e){var t=e._readableState;for(debug("flow",t.flowing);t.flowing&&e.read()!==null;);}Readable.prototype.wrap=function(e){var t=this._readableState,n=!1,r=this;e.on("end",function(){if(debug("wrapped end"),t.decoder&&!t.ended){var l=t.decoder.end();l&&l.length&&r.push(l)}r.push(null)}),e.on("data",function(l){if(debug("wrapped data"),t.decoder&&(l=t.decoder.write(l)),!(t.objectMode&&l==null)&&!(!t.objectMode&&(!l||!l.length))){var o=r.push(l);o||(n=!0,e.pause())}});for(var i in e)this[i]===void 0&&typeof e[i]=="function"&&(this[i]=function(l){return function(){return e[l].apply(e,arguments)}}(i));var s=["error","close","destroy","pause","resume"];return forEach(s,function(l){e.on(l,r.emit.bind(r,l))}),r._read=function(l){debug("wrapped _read",l),n&&(n=!1,e.resume())},r},Readable._fromList=fromList;function fromList(e,t){if(t.length===0)return null;var n;return t.objectMode?n=t.buffer.shift():!e||e>=t.length?(t.decoder?n=t.buffer.join(""):t.buffer.length===1?n=t.buffer.head.data:n=t.buffer.concat(t.length),t.buffer.clear()):n=fromListPartial(e,t.buffer,t.decoder),n}function fromListPartial(e,t,n){var r;return e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):e===t.head.data.length?r=t.shift():r=n?copyFromBufferString(e,t):copyFromBuffer(e,t),r}function copyFromBufferString(e,t){var n=t.head,r=1,i=n.data;for(e-=i.length;n=n.next;){var s=n.data,l=e>s.length?s.length:e;if(l===s.length?i+=s:i+=s.slice(0,e),e-=l,e===0){l===s.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=s.slice(l));break}++r}return t.length-=r,i}function copyFromBuffer(e,t){var n=Buffer.allocUnsafe(e),r=t.head,i=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var s=r.data,l=e>s.length?s.length:e;if(s.copy(n,n.length-e,0,l),e-=l,e===0){l===s.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=s.slice(l));break}++i}return t.length-=i,n}function endReadable(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,nextTick(endReadableNT,t,e))}function endReadableNT(e,t){!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function forEach(e,t){for(var n=0,r=e.length;n<r;n++)t(e[n],n)}function indexOf(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}Writable.WritableState=WritableState,inherits$1(Writable,EventEmitter);function nop(){}function WriteReq(e,t,n){this.chunk=e,this.encoding=t,this.callback=n,this.next=null}function WritableState(e,t){Object.defineProperty(this,"buffer",{get:deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")}),e=e||{},this.objectMode=!!e.objectMode,t instanceof Duplex&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var n=e.highWaterMark,r=this.objectMode?16:16*1024;this.highWaterMark=n||n===0?n:r,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var i=e.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(s){onwrite(t,s)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new CorkedRequest(this)}WritableState.prototype.getBuffer=function e(){for(var t=this.bufferedRequest,n=[];t;)n.push(t),t=t.next;return n};function Writable(e){if(!(this instanceof Writable)&&!(this instanceof Duplex))return new Writable(e);this._writableState=new WritableState(e,this),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev)),EventEmitter.call(this)}Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function writeAfterEnd(e,t){var n=new Error("write after end");e.emit("error",n),nextTick(t,n)}function validChunk(e,t,n,r){var i=!0,s=!1;return n===null?s=new TypeError("May not write null values to stream"):!Buffer.isBuffer(n)&&typeof n!="string"&&n!==void 0&&!t.objectMode&&(s=new TypeError("Invalid non-string/buffer chunk")),s&&(e.emit("error",s),nextTick(r,s),i=!1),i}Writable.prototype.write=function(e,t,n){var r=this._writableState,i=!1;return typeof t=="function"&&(n=t,t=null),Buffer.isBuffer(e)?t="buffer":t||(t=r.defaultEncoding),typeof n!="function"&&(n=nop),r.ended?writeAfterEnd(this,n):validChunk(this,r,e,n)&&(r.pendingcb++,i=writeOrBuffer(this,r,e,t,n)),i},Writable.prototype.cork=function(){var e=this._writableState;e.corked++},Writable.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.finished&&!e.bufferProcessing&&e.bufferedRequest&&clearBuffer(this,e))},Writable.prototype.setDefaultEncoding=function e(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this};function decodeChunk(e,t,n){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=Buffer.from(t,n)),t}function writeOrBuffer(e,t,n,r,i){n=decodeChunk(t,n,r),Buffer.isBuffer(n)&&(r="buffer");var s=t.objectMode?1:n.length;t.length+=s;var l=t.length<t.highWaterMark;if(l||(t.needDrain=!0),t.writing||t.corked){var o=t.lastBufferedRequest;t.lastBufferedRequest=new WriteReq(n,r,i),o?o.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else doWrite(e,t,!1,s,n,r,i);return l}function doWrite(e,t,n,r,i,s,l){t.writelen=r,t.writecb=l,t.writing=!0,t.sync=!0,n?e._writev(i,t.onwrite):e._write(i,s,t.onwrite),t.sync=!1}function onwriteError(e,t,n,r,i){--t.pendingcb,n?nextTick(i,r):i(r),e._writableState.errorEmitted=!0,e.emit("error",r)}function onwriteStateUpdate(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function onwrite(e,t){var n=e._writableState,r=n.sync,i=n.writecb;if(onwriteStateUpdate(n),t)onwriteError(e,n,r,t,i);else{var s=needFinish(n);!s&&!n.corked&&!n.bufferProcessing&&n.bufferedRequest&&clearBuffer(e,n),r?nextTick(afterWrite,e,n,s,i):afterWrite(e,n,s,i)}}function afterWrite(e,t,n,r){n||onwriteDrain(e,t),t.pendingcb--,r(),finishMaybe(e,t)}function onwriteDrain(e,t){t.length===0&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function clearBuffer(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),s=t.corkedRequestsFree;s.entry=n;for(var l=0;n;)i[l]=n,n=n.next,l+=1;doWrite(e,t,!0,t.length,i,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new CorkedRequest(t)}else{for(;n;){var o=n.chunk,c=n.encoding,u=n.callback,f=t.objectMode?1:o.length;if(doWrite(e,t,!1,f,o,c,u),n=n.next,t.writing)break}n===null&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=n,t.bufferProcessing=!1}Writable.prototype._write=function(e,t,n){n(new Error("not implemented"))},Writable.prototype._writev=null,Writable.prototype.end=function(e,t,n){var r=this._writableState;typeof e=="function"?(n=e,e=null,t=null):typeof t=="function"&&(n=t,t=null),e!=null&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),!r.ending&&!r.finished&&endWritable(this,r,n)};function needFinish(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function prefinish(e,t){t.prefinished||(t.prefinished=!0,e.emit("prefinish"))}function finishMaybe(e,t){var n=needFinish(t);return n&&(t.pendingcb===0?(prefinish(e,t),t.finished=!0,e.emit("finish")):prefinish(e,t)),n}function endWritable(e,t,n){t.ending=!0,finishMaybe(e,t),n&&(t.finished?nextTick(n):e.once("finish",n)),t.ended=!0,e.writable=!1}function CorkedRequest(e){var t=this;this.next=null,this.entry=null,this.finish=function(n){var r=t.entry;for(t.entry=null;r;){var i=r.callback;e.pendingcb--,i(n),r=r.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}}inherits$1(Duplex,Readable);for(var keys=Object.keys(Writable.prototype),v=0;v<keys.length;v++){var method=keys[v];Duplex.prototype[method]||(Duplex.prototype[method]=Writable.prototype[method])}function Duplex(e){if(!(this instanceof Duplex))return new Duplex(e);Readable.call(this,e),Writable.call(this,e),e&&e.readable===!1&&(this.readable=!1),e&&e.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,e&&e.allowHalfOpen===!1&&(this.allowHalfOpen=!1),this.once("end",onend)}function onend(){this.allowHalfOpen||this._writableState.ended||nextTick(onEndNT,this)}function onEndNT(e){e.end()}inherits$1(Transform,Duplex);function TransformState(e){this.afterTransform=function(t,n){return afterTransform(e,t,n)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function afterTransform(e,t,n){var r=e._transformState;r.transforming=!1;var i=r.writecb;if(!i)return e.emit("error",new Error("no writecb in Transform class"));r.writechunk=null,r.writecb=null,n!=null&&e.push(n),i(t);var s=e._readableState;s.reading=!1,(s.needReadable||s.length<s.highWaterMark)&&e._read(s.highWaterMark)}function Transform(e){if(!(this instanceof Transform))return new Transform(e);Duplex.call(this,e),this._transformState=new TransformState(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.once("prefinish",function(){typeof this._flush=="function"?this._flush(function(n){done(t,n)}):done(t)})}Transform.prototype.push=function(e,t){return this._transformState.needTransform=!1,Duplex.prototype.push.call(this,e,t)},Transform.prototype._transform=function(e,t,n){throw new Error("Not implemented")},Transform.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var i=this._readableState;(r.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},Transform.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};function done(e,t){if(t)return e.emit("error",t);var n=e._writableState,r=e._transformState;if(n.length)throw new Error("Calling transform done when ws.length != 0");if(r.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}inherits$1(PassThrough,Transform);function PassThrough(e){if(!(this instanceof PassThrough))return new PassThrough(e);Transform.call(this,e)}PassThrough.prototype._transform=function(e,t,n){n(null,e)},inherits$1(Stream,EventEmitter),Stream.Readable=Readable,Stream.Writable=Writable,Stream.Duplex=Duplex,Stream.Transform=Transform,Stream.PassThrough=PassThrough,Stream.Stream=Stream;function Stream(){EventEmitter.call(this)}Stream.prototype.pipe=function(e,t){var n=this;function r(f){e.writable&&e.write(f)===!1&&n.pause&&n.pause()}n.on("data",r);function i(){n.readable&&n.resume&&n.resume()}e.on("drain",i),!e._isStdio&&(!t||t.end!==!1)&&(n.on("end",l),n.on("close",o));var s=!1;function l(){s||(s=!0,e.end())}function o(){s||(s=!0,typeof e.destroy=="function"&&e.destroy())}function c(f){if(u(),EventEmitter.listenerCount(this,"error")===0)throw f}n.on("error",c),e.on("error",c);function u(){n.removeListener("data",r),e.removeListener("drain",i),n.removeListener("end",l),n.removeListener("close",o),n.removeListener("error",c),e.removeListener("error",c),n.removeListener("end",u),n.removeListener("close",u),e.removeListener("close",u)}return n.on("end",u),n.on("close",u),e.on("close",u),e.emit("pipe",n),e};const msg={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};function ZStream(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}function arraySet(e,t,n,r,i){if(t.subarray&&e.subarray){e.set(t.subarray(n,n+r),i);return}for(var s=0;s<r;s++)e[i+s]=t[n+s]}var Buf8=Uint8Array,Buf16=Uint16Array,Buf32=Int32Array,Z_FIXED$2=4,Z_BINARY$1=0,Z_TEXT$1=1,Z_UNKNOWN$2=2;function zero$1(e){for(var t=e.length;--t>=0;)e[t]=0}var STORED_BLOCK=0,STATIC_TREES=1,DYN_TREES=2,MIN_MATCH$1=3,MAX_MATCH$1=258,LENGTH_CODES$1=29,LITERALS$1=256,L_CODES$1=LITERALS$1+1+LENGTH_CODES$1,D_CODES$1=30,BL_CODES$1=19,HEAP_SIZE$1=2*L_CODES$1+1,MAX_BITS$1=15,Buf_size=16,MAX_BL_BITS=7,END_BLOCK=256,REP_3_6=16,REPZ_3_10=17,REPZ_11_138=18,extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],DIST_CODE_LEN=512,static_ltree=new Array((L_CODES$1+2)*2);zero$1(static_ltree);var static_dtree=new Array(D_CODES$1*2);zero$1(static_dtree);var _dist_code=new Array(DIST_CODE_LEN);zero$1(_dist_code);var _length_code=new Array(MAX_MATCH$1-MIN_MATCH$1+1);zero$1(_length_code);var base_length=new Array(LENGTH_CODES$1);zero$1(base_length);var base_dist=new Array(D_CODES$1);zero$1(base_dist);function StaticTreeDesc(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}var static_l_desc,static_d_desc,static_bl_desc;function TreeDesc(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function d_code(e){return e<256?_dist_code[e]:_dist_code[256+(e>>>7)]}function put_short(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function send_bits(e,t,n){e.bi_valid>Buf_size-n?(e.bi_buf|=t<<e.bi_valid&65535,put_short(e,e.bi_buf),e.bi_buf=t>>Buf_size-e.bi_valid,e.bi_valid+=n-Buf_size):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function send_code(e,t,n){send_bits(e,n[t*2],n[t*2+1])}function bi_reverse(e,t){var n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1}function bi_flush(e){e.bi_valid===16?(put_short(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function gen_bitlen(e,t){var n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,s=t.stat_desc.has_stree,l=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,c=t.stat_desc.max_length,u,f,E,b,h,g,_=0;for(b=0;b<=MAX_BITS$1;b++)e.bl_count[b]=0;for(n[e.heap[e.heap_max]*2+1]=0,u=e.heap_max+1;u<HEAP_SIZE$1;u++)f=e.heap[u],b=n[n[f*2+1]*2+1]+1,b>c&&(b=c,_++),n[f*2+1]=b,!(f>r)&&(e.bl_count[b]++,h=0,f>=o&&(h=l[f-o]),g=n[f*2],e.opt_len+=g*(b+h),s&&(e.static_len+=g*(i[f*2+1]+h)));if(_!==0){do{for(b=c-1;e.bl_count[b]===0;)b--;e.bl_count[b]--,e.bl_count[b+1]+=2,e.bl_count[c]--,_-=2}while(_>0);for(b=c;b!==0;b--)for(f=e.bl_count[b];f!==0;)E=e.heap[--u],!(E>r)&&(n[E*2+1]!==b&&(e.opt_len+=(b-n[E*2+1])*n[E*2],n[E*2+1]=b),f--)}}function gen_codes(e,t,n){var r=new Array(MAX_BITS$1+1),i=0,s,l;for(s=1;s<=MAX_BITS$1;s++)r[s]=i=i+n[s-1]<<1;for(l=0;l<=t;l++){var o=e[l*2+1];o!==0&&(e[l*2]=bi_reverse(r[o]++,o))}}function tr_static_init(){var e,t,n,r,i,s=new Array(MAX_BITS$1+1);for(n=0,r=0;r<LENGTH_CODES$1-1;r++)for(base_length[r]=n,e=0;e<1<<extra_lbits[r];e++)_length_code[n++]=r;for(_length_code[n-1]=r,i=0,r=0;r<16;r++)for(base_dist[r]=i,e=0;e<1<<extra_dbits[r];e++)_dist_code[i++]=r;for(i>>=7;r<D_CODES$1;r++)for(base_dist[r]=i<<7,e=0;e<1<<extra_dbits[r]-7;e++)_dist_code[256+i++]=r;for(t=0;t<=MAX_BITS$1;t++)s[t]=0;for(e=0;e<=143;)static_ltree[e*2+1]=8,e++,s[8]++;for(;e<=255;)static_ltree[e*2+1]=9,e++,s[9]++;for(;e<=279;)static_ltree[e*2+1]=7,e++,s[7]++;for(;e<=287;)static_ltree[e*2+1]=8,e++,s[8]++;for(gen_codes(static_ltree,L_CODES$1+1,s),e=0;e<D_CODES$1;e++)static_dtree[e*2+1]=5,static_dtree[e*2]=bi_reverse(e,5);static_l_desc=new StaticTreeDesc(static_ltree,extra_lbits,LITERALS$1+1,L_CODES$1,MAX_BITS$1),static_d_desc=new StaticTreeDesc(static_dtree,extra_dbits,0,D_CODES$1,MAX_BITS$1),static_bl_desc=new StaticTreeDesc(new Array(0),extra_blbits,0,BL_CODES$1,MAX_BL_BITS)}function init_block(e){var t;for(t=0;t<L_CODES$1;t++)e.dyn_ltree[t*2]=0;for(t=0;t<D_CODES$1;t++)e.dyn_dtree[t*2]=0;for(t=0;t<BL_CODES$1;t++)e.bl_tree[t*2]=0;e.dyn_ltree[END_BLOCK*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function bi_windup(e){e.bi_valid>8?put_short(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function copy_block(e,t,n,r){bi_windup(e),r&&(put_short(e,n),put_short(e,~n)),arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}function smaller(e,t,n,r){var i=t*2,s=n*2;return e[i]<e[s]||e[i]===e[s]&&r[t]<=r[n]}function pqdownheap(e,t,n){for(var r=e.heap[n],i=n<<1;i<=e.heap_len&&(i<e.heap_len&&smaller(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!smaller(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r}function compress_block(e,t,n){var r,i,s=0,l,o;if(e.last_lit!==0)do r=e.pending_buf[e.d_buf+s*2]<<8|e.pending_buf[e.d_buf+s*2+1],i=e.pending_buf[e.l_buf+s],s++,r===0?send_code(e,i,t):(l=_length_code[i],send_code(e,l+LITERALS$1+1,t),o=extra_lbits[l],o!==0&&(i-=base_length[l],send_bits(e,i,o)),r--,l=d_code(r),send_code(e,l,n),o=extra_dbits[l],o!==0&&(r-=base_dist[l],send_bits(e,r,o)));while(s<e.last_lit);send_code(e,END_BLOCK,t)}function build_tree(e,t){var n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,s=t.stat_desc.elems,l,o,c=-1,u;for(e.heap_len=0,e.heap_max=HEAP_SIZE$1,l=0;l<s;l++)n[l*2]!==0?(e.heap[++e.heap_len]=c=l,e.depth[l]=0):n[l*2+1]=0;for(;e.heap_len<2;)u=e.heap[++e.heap_len]=c<2?++c:0,n[u*2]=1,e.depth[u]=0,e.opt_len--,i&&(e.static_len-=r[u*2+1]);for(t.max_code=c,l=e.heap_len>>1;l>=1;l--)pqdownheap(e,n,l);u=s;do l=e.heap[1],e.heap[1]=e.heap[e.heap_len--],pqdownheap(e,n,1),o=e.heap[1],e.heap[--e.heap_max]=l,e.heap[--e.heap_max]=o,n[u*2]=n[l*2]+n[o*2],e.depth[u]=(e.depth[l]>=e.depth[o]?e.depth[l]:e.depth[o])+1,n[l*2+1]=n[o*2+1]=u,e.heap[1]=u++,pqdownheap(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],gen_bitlen(e,t),gen_codes(n,c,e.bl_count)}function scan_tree(e,t,n){var r,i=-1,s,l=t[0*2+1],o=0,c=7,u=4;for(l===0&&(c=138,u=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)s=l,l=t[(r+1)*2+1],!(++o<c&&s===l)&&(o<u?e.bl_tree[s*2]+=o:s!==0?(s!==i&&e.bl_tree[s*2]++,e.bl_tree[REP_3_6*2]++):o<=10?e.bl_tree[REPZ_3_10*2]++:e.bl_tree[REPZ_11_138*2]++,o=0,i=s,l===0?(c=138,u=3):s===l?(c=6,u=3):(c=7,u=4))}function send_tree(e,t,n){var r,i=-1,s,l=t[0*2+1],o=0,c=7,u=4;for(l===0&&(c=138,u=3),r=0;r<=n;r++)if(s=l,l=t[(r+1)*2+1],!(++o<c&&s===l)){if(o<u)do send_code(e,s,e.bl_tree);while(--o!==0);else s!==0?(s!==i&&(send_code(e,s,e.bl_tree),o--),send_code(e,REP_3_6,e.bl_tree),send_bits(e,o-3,2)):o<=10?(send_code(e,REPZ_3_10,e.bl_tree),send_bits(e,o-3,3)):(send_code(e,REPZ_11_138,e.bl_tree),send_bits(e,o-11,7));o=0,i=s,l===0?(c=138,u=3):s===l?(c=6,u=3):(c=7,u=4)}}function build_bl_tree(e){var t;for(scan_tree(e,e.dyn_ltree,e.l_desc.max_code),scan_tree(e,e.dyn_dtree,e.d_desc.max_code),build_tree(e,e.bl_desc),t=BL_CODES$1-1;t>=3&&e.bl_tree[bl_order[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function send_all_trees(e,t,n,r){var i;for(send_bits(e,t-257,5),send_bits(e,n-1,5),send_bits(e,r-4,4),i=0;i<r;i++)send_bits(e,e.bl_tree[bl_order[i]*2+1],3);send_tree(e,e.dyn_ltree,t-1),send_tree(e,e.dyn_dtree,n-1)}function detect_data_type(e){var t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Z_BINARY$1;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Z_TEXT$1;for(n=32;n<LITERALS$1;n++)if(e.dyn_ltree[n*2]!==0)return Z_TEXT$1;return Z_BINARY$1}var static_init_done=!1;function _tr_init(e){static_init_done||(tr_static_init(),static_init_done=!0),e.l_desc=new TreeDesc(e.dyn_ltree,static_l_desc),e.d_desc=new TreeDesc(e.dyn_dtree,static_d_desc),e.bl_desc=new TreeDesc(e.bl_tree,static_bl_desc),e.bi_buf=0,e.bi_valid=0,init_block(e)}function _tr_stored_block(e,t,n,r){send_bits(e,(STORED_BLOCK<<1)+(r?1:0),3),copy_block(e,t,n,!0)}function _tr_align(e){send_bits(e,STATIC_TREES<<1,3),send_code(e,END_BLOCK,static_ltree),bi_flush(e)}function _tr_flush_block(e,t,n,r){var i,s,l=0;e.level>0?(e.strm.data_type===Z_UNKNOWN$2&&(e.strm.data_type=detect_data_type(e)),build_tree(e,e.l_desc),build_tree(e,e.d_desc),l=build_bl_tree(e),i=e.opt_len+3+7>>>3,s=e.static_len+3+7>>>3,s<=i&&(i=s)):i=s=n+5,n+4<=i&&t!==-1?_tr_stored_block(e,t,n,r):e.strategy===Z_FIXED$2||s===i?(send_bits(e,(STATIC_TREES<<1)+(r?1:0),3),compress_block(e,static_ltree,static_dtree)):(send_bits(e,(DYN_TREES<<1)+(r?1:0),3),send_all_trees(e,e.l_desc.max_code+1,e.d_desc.max_code+1,l+1),compress_block(e,e.dyn_ltree,e.dyn_dtree)),init_block(e),r&&bi_windup(e)}function _tr_tally(e,t,n){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=n&255,e.last_lit++,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(_length_code[n]+LITERALS$1+1)*2]++,e.dyn_dtree[d_code(t)*2]++),e.last_lit===e.lit_bufsize-1}function adler32(e,t,n,r){for(var i=e&65535|0,s=e>>>16&65535|0,l=0;n!==0;){l=n>2e3?2e3:n,n-=l;do i=i+t[r++]|0,s=s+i|0;while(--l);i%=65521,s%=65521}return i|s<<16|0}function makeTable(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t}var crcTable=makeTable();function crc32(e,t,n,r){var i=crcTable,s=r+n;e^=-1;for(var l=r;l<s;l++)e=e>>>8^i[(e^t[l])&255];return e^-1}var Z_NO_FLUSH$1=0,Z_PARTIAL_FLUSH$1=1,Z_FULL_FLUSH$1=3,Z_FINISH$2=4,Z_BLOCK$2=5,Z_OK$2=0,Z_STREAM_END$2=1,Z_STREAM_ERROR$2=-2,Z_DATA_ERROR$2=-3,Z_BUF_ERROR$2=-5,Z_DEFAULT_COMPRESSION$1=-1,Z_FILTERED$1=1,Z_HUFFMAN_ONLY$1=2,Z_RLE$1=3,Z_FIXED$1=4,Z_UNKNOWN$1=2,Z_DEFLATED$2=8,MAX_MEM_LEVEL=9,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,MIN_MATCH=3,MAX_MATCH=258,MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1,PRESET_DICT=32,INIT_STATE=42,EXTRA_STATE=69,NAME_STATE=73,COMMENT_STATE=91,HCRC_STATE=103,BUSY_STATE=113,FINISH_STATE=666,BS_NEED_MORE=1,BS_BLOCK_DONE=2,BS_FINISH_STARTED=3,BS_FINISH_DONE=4,OS_CODE=3;function err(e,t){return e.msg=msg[t],t}function rank(e){return(e<<1)-(e>4?9:0)}function zero(e){for(var t=e.length;--t>=0;)e[t]=0}function flush_pending(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))}function flush_block_only(e,t){_tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,flush_pending(e.strm)}function put_byte(e,t){e.pending_buf[e.pending++]=t}function putShortMSB(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function read_buf(e,t,n,r){var i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,arraySet(t,e.input,e.next_in,i,n),e.state.wrap===1?e.adler=adler32(e.adler,t,i,n):e.state.wrap===2&&(e.adler=crc32(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)}function longest_match(e,t){var n=e.max_chain_length,r=e.strstart,i,s,l=e.prev_length,o=e.nice_match,c=e.strstart>e.w_size-MIN_LOOKAHEAD?e.strstart-(e.w_size-MIN_LOOKAHEAD):0,u=e.window,f=e.w_mask,E=e.prev,b=e.strstart+MAX_MATCH,h=u[r+l-1],g=u[r+l];e.prev_length>=e.good_match&&(n>>=2),o>e.lookahead&&(o=e.lookahead);do if(i=t,!(u[i+l]!==g||u[i+l-1]!==h||u[i]!==u[r]||u[++i]!==u[r+1])){r+=2,i++;do;while(u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&r<b);if(s=MAX_MATCH-(b-r),r=b-MAX_MATCH,s>l){if(e.match_start=t,l=s,s>=o)break;h=u[r+l-1],g=u[r+l]}}while((t=E[t&f])>c&&--n!==0);return l<=e.lookahead?l:e.lookahead}function fill_window(e){var t=e.w_size,n,r,i,s,l;do{if(s=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-MIN_LOOKAHEAD)){arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,r=e.hash_size,n=r;do i=e.head[--n],e.head[n]=i>=t?i-t:0;while(--r);r=t,n=r;do i=e.prev[--n],e.prev[n]=i>=t?i-t:0;while(--r);s+=t}if(e.strm.avail_in===0)break;if(r=read_buf(e.strm,e.window,e.strstart+e.lookahead,s),e.lookahead+=r,e.lookahead+e.insert>=MIN_MATCH)for(l=e.strstart-e.insert,e.ins_h=e.window[l],e.ins_h=(e.ins_h<<e.hash_shift^e.window[l+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[l+MIN_MATCH-1])&e.hash_mask,e.prev[l&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=l,l++,e.insert--,!(e.lookahead+e.insert<MIN_MATCH)););}while(e.lookahead<MIN_LOOKAHEAD&&e.strm.avail_in!==0)}function deflate_stored(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(fill_window(e),e.lookahead===0&&t===Z_NO_FLUSH$1)return BS_NEED_MORE;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((e.strstart===0||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,flush_block_only(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-MIN_LOOKAHEAD&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}return e.insert=0,t===Z_FINISH$2?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):(e.strstart>e.block_start&&(flush_block_only(e,!1),e.strm.avail_out===0),BS_NEED_MORE)}function deflate_fast(e,t){for(var n,r;;){if(e.lookahead<MIN_LOOKAHEAD){if(fill_window(e),e.lookahead<MIN_LOOKAHEAD&&t===Z_NO_FLUSH$1)return BS_NEED_MORE;if(e.lookahead===0)break}if(n=0,e.lookahead>=MIN_MATCH&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+MIN_MATCH-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-MIN_LOOKAHEAD&&(e.match_length=longest_match(e,n)),e.match_length>=MIN_MATCH)if(r=_tr_tally(e,e.strstart-e.match_start,e.match_length-MIN_MATCH),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=MIN_MATCH){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+MIN_MATCH-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=_tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}return e.insert=e.strstart<MIN_MATCH-1?e.strstart:MIN_MATCH-1,t===Z_FINISH$2?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):e.last_lit&&(flush_block_only(e,!1),e.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE}function deflate_slow(e,t){for(var n,r,i;;){if(e.lookahead<MIN_LOOKAHEAD){if(fill_window(e),e.lookahead<MIN_LOOKAHEAD&&t===Z_NO_FLUSH$1)return BS_NEED_MORE;if(e.lookahead===0)break}if(n=0,e.lookahead>=MIN_MATCH&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+MIN_MATCH-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=MIN_MATCH-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-MIN_LOOKAHEAD&&(e.match_length=longest_match(e,n),e.match_length<=5&&(e.strategy===Z_FILTERED$1||e.match_length===MIN_MATCH&&e.strstart-e.match_start>4096)&&(e.match_length=MIN_MATCH-1)),e.prev_length>=MIN_MATCH&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-MIN_MATCH,r=_tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-MIN_MATCH),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+MIN_MATCH-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=MIN_MATCH-1,e.strstart++,r&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}else if(e.match_available){if(r=_tr_tally(e,0,e.window[e.strstart-1]),r&&flush_block_only(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return BS_NEED_MORE}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=_tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<MIN_MATCH-1?e.strstart:MIN_MATCH-1,t===Z_FINISH$2?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):e.last_lit&&(flush_block_only(e,!1),e.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE}function deflate_rle(e,t){for(var n,r,i,s,l=e.window;;){if(e.lookahead<=MAX_MATCH){if(fill_window(e),e.lookahead<=MAX_MATCH&&t===Z_NO_FLUSH$1)return BS_NEED_MORE;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=MIN_MATCH&&e.strstart>0&&(i=e.strstart-1,r=l[i],r===l[++i]&&r===l[++i]&&r===l[++i])){s=e.strstart+MAX_MATCH;do;while(r===l[++i]&&r===l[++i]&&r===l[++i]&&r===l[++i]&&r===l[++i]&&r===l[++i]&&r===l[++i]&&r===l[++i]&&i<s);e.match_length=MAX_MATCH-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=MIN_MATCH?(n=_tr_tally(e,1,e.match_length-MIN_MATCH),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=_tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}return e.insert=0,t===Z_FINISH$2?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):e.last_lit&&(flush_block_only(e,!1),e.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE}function deflate_huff(e,t){for(var n;;){if(e.lookahead===0&&(fill_window(e),e.lookahead===0)){if(t===Z_NO_FLUSH$1)return BS_NEED_MORE;break}if(e.match_length=0,n=_tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}return e.insert=0,t===Z_FINISH$2?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):e.last_lit&&(flush_block_only(e,!1),e.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE}function Config(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}var configuration_table;configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)];function lm_init(e){e.window_size=2*e.w_size,zero(e.head),e.max_lazy_match=configuration_table[e.level].max_lazy,e.good_match=configuration_table[e.level].good_length,e.nice_match=configuration_table[e.level].nice_length,e.max_chain_length=configuration_table[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=MIN_MATCH-1,e.match_available=0,e.ins_h=0}function DeflateState(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Z_DEFLATED$2,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Buf16(HEAP_SIZE*2),this.dyn_dtree=new Buf16((2*D_CODES+1)*2),this.bl_tree=new Buf16((2*BL_CODES+1)*2),zero(this.dyn_ltree),zero(this.dyn_dtree),zero(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Buf16(MAX_BITS+1),this.heap=new Buf16(2*L_CODES+1),zero(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Buf16(2*L_CODES+1),zero(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function deflateResetKeep(e){var t;return!e||!e.state?err(e,Z_STREAM_ERROR$2):(e.total_in=e.total_out=0,e.data_type=Z_UNKNOWN$1,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?INIT_STATE:BUSY_STATE,e.adler=t.wrap===2?0:1,t.last_flush=Z_NO_FLUSH$1,_tr_init(t),Z_OK$2)}function deflateReset(e){var t=deflateResetKeep(e);return t===Z_OK$2&&lm_init(e.state),t}function deflateInit2(e,t,n,r,i,s){if(!e)return Z_STREAM_ERROR$2;var l=1;if(t===Z_DEFAULT_COMPRESSION$1&&(t=6),r<0?(l=0,r=-r):r>15&&(l=2,r-=16),i<1||i>MAX_MEM_LEVEL||n!==Z_DEFLATED$2||r<8||r>15||t<0||t>9||s<0||s>Z_FIXED$1)return err(e,Z_STREAM_ERROR$2);r===8&&(r=9);var o=new DeflateState;return e.state=o,o.strm=e,o.wrap=l,o.gzhead=null,o.w_bits=r,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+MIN_MATCH-1)/MIN_MATCH),o.window=new Buf8(o.w_size*2),o.head=new Buf16(o.hash_size),o.prev=new Buf16(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=(1+2)*o.lit_bufsize,o.level=t,o.strategy=s,o.method=n,deflateReset(e)}function deflate(e,t){var n,r,i,s;if(!e||!e.state||t>Z_BLOCK$2||t<0)return e?err(e,Z_STREAM_ERROR$2):Z_STREAM_ERROR$2;if(r=e.state,!e.output||!e.input&&e.avail_in!==0||r.status===FINISH_STATE&&t!==Z_FINISH$2)return err(e,e.avail_out===0?Z_BUF_ERROR$2:Z_STREAM_ERROR$2);if(r.strm=e,n=r.last_flush,r.last_flush=t,r.status===INIT_STATE)if(r.wrap===2)e.adler=0,put_byte(r,31),put_byte(r,139),put_byte(r,8),r.gzhead?(put_byte(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),put_byte(r,r.gzhead.time&255),put_byte(r,r.gzhead.time>>8&255),put_byte(r,r.gzhead.time>>16&255),put_byte(r,r.gzhead.time>>24&255),put_byte(r,r.level===9?2:r.strategy>=Z_HUFFMAN_ONLY$1||r.level<2?4:0),put_byte(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&(put_byte(r,r.gzhead.extra.length&255),put_byte(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=crc32(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=EXTRA_STATE):(put_byte(r,0),put_byte(r,0),put_byte(r,0),put_byte(r,0),put_byte(r,0),put_byte(r,r.level===9?2:r.strategy>=Z_HUFFMAN_ONLY$1||r.level<2?4:0),put_byte(r,OS_CODE),r.status=BUSY_STATE);else{var l=Z_DEFLATED$2+(r.w_bits-8<<4)<<8,o=-1;r.strategy>=Z_HUFFMAN_ONLY$1||r.level<2?o=0:r.level<6?o=1:r.level===6?o=2:o=3,l|=o<<6,r.strstart!==0&&(l|=PRESET_DICT),l+=31-l%31,r.status=BUSY_STATE,putShortMSB(r,l),r.strstart!==0&&(putShortMSB(r,e.adler>>>16),putShortMSB(r,e.adler&65535)),e.adler=1}if(r.status===EXTRA_STATE)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(r.gzhead.extra.length&65535)&&!(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=crc32(e.adler,r.pending_buf,r.pending-i,i)),flush_pending(e),i=r.pending,r.pending===r.pending_buf_size));)put_byte(r,r.gzhead.extra[r.gzindex]&255),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=crc32(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=NAME_STATE)}else r.status=NAME_STATE;if(r.status===NAME_STATE)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=crc32(e.adler,r.pending_buf,r.pending-i,i)),flush_pending(e),i=r.pending,r.pending===r.pending_buf_size)){s=1;break}r.gzindex<r.gzhead.name.length?s=r.gzhead.name.charCodeAt(r.gzindex++)&255:s=0,put_byte(r,s)}while(s!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=crc32(e.adler,r.pending_buf,r.pending-i,i)),s===0&&(r.gzindex=0,r.status=COMMENT_STATE)}else r.status=COMMENT_STATE;if(r.status===COMMENT_STATE)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=crc32(e.adler,r.pending_buf,r.pending-i,i)),flush_pending(e),i=r.pending,r.pending===r.pending_buf_size)){s=1;break}r.gzindex<r.gzhead.comment.length?s=r.gzhead.comment.charCodeAt(r.gzindex++)&255:s=0,put_byte(r,s)}while(s!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=crc32(e.adler,r.pending_buf,r.pending-i,i)),s===0&&(r.status=HCRC_STATE)}else r.status=HCRC_STATE;if(r.status===HCRC_STATE&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&flush_pending(e),r.pending+2<=r.pending_buf_size&&(put_byte(r,e.adler&255),put_byte(r,e.adler>>8&255),e.adler=0,r.status=BUSY_STATE)):r.status=BUSY_STATE),r.pending!==0){if(flush_pending(e),e.avail_out===0)return r.last_flush=-1,Z_OK$2}else if(e.avail_in===0&&rank(t)<=rank(n)&&t!==Z_FINISH$2)return err(e,Z_BUF_ERROR$2);if(r.status===FINISH_STATE&&e.avail_in!==0)return err(e,Z_BUF_ERROR$2);if(e.avail_in!==0||r.lookahead!==0||t!==Z_NO_FLUSH$1&&r.status!==FINISH_STATE){var c=r.strategy===Z_HUFFMAN_ONLY$1?deflate_huff(r,t):r.strategy===Z_RLE$1?deflate_rle(r,t):configuration_table[r.level].func(r,t);if((c===BS_FINISH_STARTED||c===BS_FINISH_DONE)&&(r.status=FINISH_STATE),c===BS_NEED_MORE||c===BS_FINISH_STARTED)return e.avail_out===0&&(r.last_flush=-1),Z_OK$2;if(c===BS_BLOCK_DONE&&(t===Z_PARTIAL_FLUSH$1?_tr_align(r):t!==Z_BLOCK$2&&(_tr_stored_block(r,0,0,!1),t===Z_FULL_FLUSH$1&&(zero(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),flush_pending(e),e.avail_out===0))return r.last_flush=-1,Z_OK$2}return t!==Z_FINISH$2?Z_OK$2:r.wrap<=0?Z_STREAM_END$2:(r.wrap===2?(put_byte(r,e.adler&255),put_byte(r,e.adler>>8&255),put_byte(r,e.adler>>16&255),put_byte(r,e.adler>>24&255),put_byte(r,e.total_in&255),put_byte(r,e.total_in>>8&255),put_byte(r,e.total_in>>16&255),put_byte(r,e.total_in>>24&255)):(putShortMSB(r,e.adler>>>16),putShortMSB(r,e.adler&65535)),flush_pending(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?Z_OK$2:Z_STREAM_END$2)}function deflateEnd(e){var t;return!e||!e.state?Z_STREAM_ERROR$2:(t=e.state.status,t!==INIT_STATE&&t!==EXTRA_STATE&&t!==NAME_STATE&&t!==COMMENT_STATE&&t!==HCRC_STATE&&t!==BUSY_STATE&&t!==FINISH_STATE?err(e,Z_STREAM_ERROR$2):(e.state=null,t===BUSY_STATE?err(e,Z_DATA_ERROR$2):Z_OK$2))}var BAD$1=30,TYPE$1=12;function inflate_fast(e,t){var n,r,i,s,l,o,c,u,f,E,b,h,g,_,R,x,F,M,A,d,I,$,q,y,m;n=e.state,r=e.next_in,y=e.input,i=r+(e.avail_in-5),s=e.next_out,m=e.output,l=s-(t-e.avail_out),o=s+(e.avail_out-257),c=n.dmax,u=n.wsize,f=n.whave,E=n.wnext,b=n.window,h=n.hold,g=n.bits,_=n.lencode,R=n.distcode,x=(1<<n.lenbits)-1,F=(1<<n.distbits)-1;e:do{g<15&&(h+=y[r++]<<g,g+=8,h+=y[r++]<<g,g+=8),M=_[h&x];t:for(;;){if(A=M>>>24,h>>>=A,g-=A,A=M>>>16&255,A===0)m[s++]=M&65535;else if(A&16){d=M&65535,A&=15,A&&(g<A&&(h+=y[r++]<<g,g+=8),d+=h&(1<<A)-1,h>>>=A,g-=A),g<15&&(h+=y[r++]<<g,g+=8,h+=y[r++]<<g,g+=8),M=R[h&F];n:for(;;){if(A=M>>>24,h>>>=A,g-=A,A=M>>>16&255,A&16){if(I=M&65535,A&=15,g<A&&(h+=y[r++]<<g,g+=8,g<A&&(h+=y[r++]<<g,g+=8)),I+=h&(1<<A)-1,I>c){e.msg="invalid distance too far back",n.mode=BAD$1;break e}if(h>>>=A,g-=A,A=s-l,I>A){if(A=I-A,A>f&&n.sane){e.msg="invalid distance too far back",n.mode=BAD$1;break e}if($=0,q=b,E===0){if($+=u-A,A<d){d-=A;do m[s++]=b[$++];while(--A);$=s-I,q=m}}else if(E<A){if($+=u+E-A,A-=E,A<d){d-=A;do m[s++]=b[$++];while(--A);if($=0,E<d){A=E,d-=A;do m[s++]=b[$++];while(--A);$=s-I,q=m}}}else if($+=E-A,A<d){d-=A;do m[s++]=b[$++];while(--A);$=s-I,q=m}for(;d>2;)m[s++]=q[$++],m[s++]=q[$++],m[s++]=q[$++],d-=3;d&&(m[s++]=q[$++],d>1&&(m[s++]=q[$++]))}else{$=s-I;do m[s++]=m[$++],m[s++]=m[$++],m[s++]=m[$++],d-=3;while(d>2);d&&(m[s++]=m[$++],d>1&&(m[s++]=m[$++]))}}else if(A&64){e.msg="invalid distance code",n.mode=BAD$1;break e}else{M=R[(M&65535)+(h&(1<<A)-1)];continue n}break}}else if(A&64)if(A&32){n.mode=TYPE$1;break e}else{e.msg="invalid literal/length code",n.mode=BAD$1;break e}else{M=_[(M&65535)+(h&(1<<A)-1)];continue t}break}}while(r<i&&s<o);d=g>>3,r-=d,g-=d<<3,h&=(1<<g)-1,e.next_in=r,e.next_out=s,e.avail_in=r<i?5+(i-r):5-(r-i),e.avail_out=s<o?257+(o-s):257-(s-o),n.hold=h,n.bits=g}var MAXBITS=15,ENOUGH_LENS$1=852,ENOUGH_DISTS$1=592,CODES$1=0,LENS$1=1,DISTS$1=2,lbase=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],lext=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],dbase=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],dext=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];function inflate_table(e,t,n,r,i,s,l,o){var c=o.bits,u=0,f=0,E=0,b=0,h=0,g=0,_=0,R=0,x=0,F=0,M,A,d,I,$,q=null,y=0,m,C=new Buf16(MAXBITS+1),w=new Buf16(MAXBITS+1),L=null,W=0,B,N,P;for(u=0;u<=MAXBITS;u++)C[u]=0;for(f=0;f<r;f++)C[t[n+f]]++;for(h=c,b=MAXBITS;b>=1&&C[b]===0;b--);if(h>b&&(h=b),b===0)return i[s++]=1<<24|64<<16|0,i[s++]=1<<24|64<<16|0,o.bits=1,0;for(E=1;E<b&&C[E]===0;E++);for(h<E&&(h=E),R=1,u=1;u<=MAXBITS;u++)if(R<<=1,R-=C[u],R<0)return-1;if(R>0&&(e===CODES$1||b!==1))return-1;for(w[1]=0,u=1;u<MAXBITS;u++)w[u+1]=w[u]+C[u];for(f=0;f<r;f++)t[n+f]!==0&&(l[w[t[n+f]]++]=f);if(e===CODES$1?(q=L=l,m=19):e===LENS$1?(q=lbase,y-=257,L=lext,W-=257,m=256):(q=dbase,L=dext,m=-1),F=0,f=0,u=E,$=s,g=h,_=0,d=-1,x=1<<h,I=x-1,e===LENS$1&&x>ENOUGH_LENS$1||e===DISTS$1&&x>ENOUGH_DISTS$1)return 1;for(;;){B=u-_,l[f]<m?(N=0,P=l[f]):l[f]>m?(N=L[W+l[f]],P=q[y+l[f]]):(N=32+64,P=0),M=1<<u-_,A=1<<g,E=A;do A-=M,i[$+(F>>_)+A]=B<<24|N<<16|P|0;while(A!==0);for(M=1<<u-1;F&M;)M>>=1;if(M!==0?(F&=M-1,F+=M):F=0,f++,--C[u]===0){if(u===b)break;u=t[n+l[f]]}if(u>h&&(F&I)!==d){for(_===0&&(_=h),$+=E,g=u-_,R=1<<g;g+_<b&&(R-=C[g+_],!(R<=0));)g++,R<<=1;if(x+=1<<g,e===LENS$1&&x>ENOUGH_LENS$1||e===DISTS$1&&x>ENOUGH_DISTS$1)return 1;d=F&I,i[d]=h<<24|g<<16|$-s|0}}return F!==0&&(i[$+F]=u-_<<24|64<<16|0),o.bits=h,0}var CODES=0,LENS=1,DISTS=2,Z_FINISH$1=4,Z_BLOCK$1=5,Z_TREES$1=6,Z_OK$1=0,Z_STREAM_END$1=1,Z_NEED_DICT$1=2,Z_STREAM_ERROR$1=-2,Z_DATA_ERROR$1=-3,Z_MEM_ERROR=-4,Z_BUF_ERROR$1=-5,Z_DEFLATED$1=8,HEAD=1,FLAGS=2,TIME=3,OS=4,EXLEN=5,EXTRA=6,NAME=7,COMMENT=8,HCRC=9,DICTID=10,DICT=11,TYPE=12,TYPEDO=13,STORED=14,COPY_=15,COPY=16,TABLE=17,LENLENS=18,CODELENS=19,LEN_=20,LEN=21,LENEXT=22,DIST=23,DISTEXT=24,MATCH=25,LIT=26,CHECK=27,LENGTH=28,DONE=29,BAD=30,MEM=31,SYNC=32,ENOUGH_LENS=852,ENOUGH_DISTS=592;function zswap32(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function InflateState(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Buf16(320),this.work=new Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function inflateResetKeep(e){var t;return!e||!e.state?Z_STREAM_ERROR$1:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=HEAD,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Buf32(ENOUGH_LENS),t.distcode=t.distdyn=new Buf32(ENOUGH_DISTS),t.sane=1,t.back=-1,Z_OK$1)}function inflateReset(e){var t;return!e||!e.state?Z_STREAM_ERROR$1:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,inflateResetKeep(e))}function inflateReset2(e,t){var n,r;return!e||!e.state||(r=e.state,t<0?(n=0,t=-t):(n=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?Z_STREAM_ERROR$1:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,inflateReset(e))}function inflateInit2(e,t){var n,r;return e?(r=new InflateState,e.state=r,r.window=null,n=inflateReset2(e,t),n!==Z_OK$1&&(e.state=null),n):Z_STREAM_ERROR$1}var virgin=!0,lenfix,distfix;function fixedtables(e){if(virgin){var t;for(lenfix=new Buf32(512),distfix=new Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(inflate_table(LENS,e.lens,0,288,lenfix,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;inflate_table(DISTS,e.lens,0,32,distfix,0,e.work,{bits:5}),virgin=!1}e.lencode=lenfix,e.lenbits=9,e.distcode=distfix,e.distbits=5}function updatewindow(e,t,n,r){var i,s=e.state;return s.window===null&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Buf8(s.wsize)),r>=s.wsize?(arraySet(s.window,t,n-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i=s.wsize-s.wnext,i>r&&(i=r),arraySet(s.window,t,n-r,i,s.wnext),r-=i,r?(arraySet(s.window,t,n-r,r,0),s.wnext=r,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0}function inflate(e,t){var n,r,i,s,l,o,c,u,f,E,b,h,g,_,R=0,x,F,M,A,d,I,$,q,y=new Buf8(4),m,C,w=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return Z_STREAM_ERROR$1;n=e.state,n.mode===TYPE&&(n.mode=TYPEDO),l=e.next_out,i=e.output,c=e.avail_out,s=e.next_in,r=e.input,o=e.avail_in,u=n.hold,f=n.bits,E=o,b=c,q=Z_OK$1;e:for(;;)switch(n.mode){case HEAD:if(n.wrap===0){n.mode=TYPEDO;break}for(;f<16;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(n.wrap&2&&u===35615){n.check=0,y[0]=u&255,y[1]=u>>>8&255,n.check=crc32(n.check,y,2,0),u=0,f=0,n.mode=FLAGS;break}if(n.flags=0,n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){e.msg="incorrect header check",n.mode=BAD;break}if((u&15)!==Z_DEFLATED$1){e.msg="unknown compression method",n.mode=BAD;break}if(u>>>=4,f-=4,$=(u&15)+8,n.wbits===0)n.wbits=$;else if($>n.wbits){e.msg="invalid window size",n.mode=BAD;break}n.dmax=1<<$,e.adler=n.check=1,n.mode=u&512?DICTID:TYPE,u=0,f=0;break;case FLAGS:for(;f<16;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(n.flags=u,(n.flags&255)!==Z_DEFLATED$1){e.msg="unknown compression method",n.mode=BAD;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=BAD;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&(y[0]=u&255,y[1]=u>>>8&255,n.check=crc32(n.check,y,2,0)),u=0,f=0,n.mode=TIME;case TIME:for(;f<32;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}n.head&&(n.head.time=u),n.flags&512&&(y[0]=u&255,y[1]=u>>>8&255,y[2]=u>>>16&255,y[3]=u>>>24&255,n.check=crc32(n.check,y,4,0)),u=0,f=0,n.mode=OS;case OS:for(;f<16;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&(y[0]=u&255,y[1]=u>>>8&255,n.check=crc32(n.check,y,2,0)),u=0,f=0,n.mode=EXLEN;case EXLEN:if(n.flags&1024){for(;f<16;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&(y[0]=u&255,y[1]=u>>>8&255,n.check=crc32(n.check,y,2,0)),u=0,f=0}else n.head&&(n.head.extra=null);n.mode=EXTRA;case EXTRA:if(n.flags&1024&&(h=n.length,h>o&&(h=o),h&&(n.head&&($=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),arraySet(n.head.extra,r,s,h,$)),n.flags&512&&(n.check=crc32(n.check,r,h,s)),o-=h,s+=h,n.length-=h),n.length))break e;n.length=0,n.mode=NAME;case NAME:if(n.flags&2048){if(o===0)break e;h=0;do $=r[s+h++],n.head&&$&&n.length<65536&&(n.head.name+=String.fromCharCode($));while($&&h<o);if(n.flags&512&&(n.check=crc32(n.check,r,h,s)),o-=h,s+=h,$)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=COMMENT;case COMMENT:if(n.flags&4096){if(o===0)break e;h=0;do $=r[s+h++],n.head&&$&&n.length<65536&&(n.head.comment+=String.fromCharCode($));while($&&h<o);if(n.flags&512&&(n.check=crc32(n.check,r,h,s)),o-=h,s+=h,$)break e}else n.head&&(n.head.comment=null);n.mode=HCRC;case HCRC:if(n.flags&512){for(;f<16;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(u!==(n.check&65535)){e.msg="header crc mismatch",n.mode=BAD;break}u=0,f=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=TYPE;break;case DICTID:for(;f<32;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}e.adler=n.check=zswap32(u),u=0,f=0,n.mode=DICT;case DICT:if(n.havedict===0)return e.next_out=l,e.avail_out=c,e.next_in=s,e.avail_in=o,n.hold=u,n.bits=f,Z_NEED_DICT$1;e.adler=n.check=1,n.mode=TYPE;case TYPE:if(t===Z_BLOCK$1||t===Z_TREES$1)break e;case TYPEDO:if(n.last){u>>>=f&7,f-=f&7,n.mode=CHECK;break}for(;f<3;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}switch(n.last=u&1,u>>>=1,f-=1,u&3){case 0:n.mode=STORED;break;case 1:if(fixedtables(n),n.mode=LEN_,t===Z_TREES$1){u>>>=2,f-=2;break e}break;case 2:n.mode=TABLE;break;case 3:e.msg="invalid block type",n.mode=BAD}u>>>=2,f-=2;break;case STORED:for(u>>>=f&7,f-=f&7;f<32;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if((u&65535)!==(u>>>16^65535)){e.msg="invalid stored block lengths",n.mode=BAD;break}if(n.length=u&65535,u=0,f=0,n.mode=COPY_,t===Z_TREES$1)break e;case COPY_:n.mode=COPY;case COPY:if(h=n.length,h){if(h>o&&(h=o),h>c&&(h=c),h===0)break e;arraySet(i,r,s,h,l),o-=h,s+=h,c-=h,l+=h,n.length-=h;break}n.mode=TYPE;break;case TABLE:for(;f<14;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(n.nlen=(u&31)+257,u>>>=5,f-=5,n.ndist=(u&31)+1,u>>>=5,f-=5,n.ncode=(u&15)+4,u>>>=4,f-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=BAD;break}n.have=0,n.mode=LENLENS;case LENLENS:for(;n.have<n.ncode;){for(;f<3;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}n.lens[w[n.have++]]=u&7,u>>>=3,f-=3}for(;n.have<19;)n.lens[w[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,m={bits:n.lenbits},q=inflate_table(CODES,n.lens,0,19,n.lencode,0,n.work,m),n.lenbits=m.bits,q){e.msg="invalid code lengths set",n.mode=BAD;break}n.have=0,n.mode=CODELENS;case CODELENS:for(;n.have<n.nlen+n.ndist;){for(;R=n.lencode[u&(1<<n.lenbits)-1],x=R>>>24,F=R>>>16&255,M=R&65535,!(x<=f);){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(M<16)u>>>=x,f-=x,n.lens[n.have++]=M;else{if(M===16){for(C=x+2;f<C;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(u>>>=x,f-=x,n.have===0){e.msg="invalid bit length repeat",n.mode=BAD;break}$=n.lens[n.have-1],h=3+(u&3),u>>>=2,f-=2}else if(M===17){for(C=x+3;f<C;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}u>>>=x,f-=x,$=0,h=3+(u&7),u>>>=3,f-=3}else{for(C=x+7;f<C;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}u>>>=x,f-=x,$=0,h=11+(u&127),u>>>=7,f-=7}if(n.have+h>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=BAD;break}for(;h--;)n.lens[n.have++]=$}}if(n.mode===BAD)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=BAD;break}if(n.lenbits=9,m={bits:n.lenbits},q=inflate_table(LENS,n.lens,0,n.nlen,n.lencode,0,n.work,m),n.lenbits=m.bits,q){e.msg="invalid literal/lengths set",n.mode=BAD;break}if(n.distbits=6,n.distcode=n.distdyn,m={bits:n.distbits},q=inflate_table(DISTS,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,m),n.distbits=m.bits,q){e.msg="invalid distances set",n.mode=BAD;break}if(n.mode=LEN_,t===Z_TREES$1)break e;case LEN_:n.mode=LEN;case LEN:if(o>=6&&c>=258){e.next_out=l,e.avail_out=c,e.next_in=s,e.avail_in=o,n.hold=u,n.bits=f,inflate_fast(e,b),l=e.next_out,i=e.output,c=e.avail_out,s=e.next_in,r=e.input,o=e.avail_in,u=n.hold,f=n.bits,n.mode===TYPE&&(n.back=-1);break}for(n.back=0;R=n.lencode[u&(1<<n.lenbits)-1],x=R>>>24,F=R>>>16&255,M=R&65535,!(x<=f);){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(F&&!(F&240)){for(A=x,d=F,I=M;R=n.lencode[I+((u&(1<<A+d)-1)>>A)],x=R>>>24,F=R>>>16&255,M=R&65535,!(A+x<=f);){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}u>>>=A,f-=A,n.back+=A}if(u>>>=x,f-=x,n.back+=x,n.length=M,F===0){n.mode=LIT;break}if(F&32){n.back=-1,n.mode=TYPE;break}if(F&64){e.msg="invalid literal/length code",n.mode=BAD;break}n.extra=F&15,n.mode=LENEXT;case LENEXT:if(n.extra){for(C=n.extra;f<C;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,f-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=DIST;case DIST:for(;R=n.distcode[u&(1<<n.distbits)-1],x=R>>>24,F=R>>>16&255,M=R&65535,!(x<=f);){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(!(F&240)){for(A=x,d=F,I=M;R=n.distcode[I+((u&(1<<A+d)-1)>>A)],x=R>>>24,F=R>>>16&255,M=R&65535,!(A+x<=f);){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}u>>>=A,f-=A,n.back+=A}if(u>>>=x,f-=x,n.back+=x,F&64){e.msg="invalid distance code",n.mode=BAD;break}n.offset=M,n.extra=F&15,n.mode=DISTEXT;case DISTEXT:if(n.extra){for(C=n.extra;f<C;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,f-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=BAD;break}n.mode=MATCH;case MATCH:if(c===0)break e;if(h=b-c,n.offset>h){if(h=n.offset-h,h>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=BAD;break}h>n.wnext?(h-=n.wnext,g=n.wsize-h):g=n.wnext-h,h>n.length&&(h=n.length),_=n.window}else _=i,g=l-n.offset,h=n.length;h>c&&(h=c),c-=h,n.length-=h;do i[l++]=_[g++];while(--h);n.length===0&&(n.mode=LEN);break;case LIT:if(c===0)break e;i[l++]=n.length,c--,n.mode=LEN;break;case CHECK:if(n.wrap){for(;f<32;){if(o===0)break e;o--,u|=r[s++]<<f,f+=8}if(b-=c,e.total_out+=b,n.total+=b,b&&(e.adler=n.check=n.flags?crc32(n.check,i,b,l-b):adler32(n.check,i,b,l-b)),b=c,(n.flags?u:zswap32(u))!==n.check){e.msg="incorrect data check",n.mode=BAD;break}u=0,f=0}n.mode=LENGTH;case LENGTH:if(n.wrap&&n.flags){for(;f<32;){if(o===0)break e;o--,u+=r[s++]<<f,f+=8}if(u!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=BAD;break}u=0,f=0}n.mode=DONE;case DONE:q=Z_STREAM_END$1;break e;case BAD:q=Z_DATA_ERROR$1;break e;case MEM:return Z_MEM_ERROR;case SYNC:default:return Z_STREAM_ERROR$1}return e.next_out=l,e.avail_out=c,e.next_in=s,e.avail_in=o,n.hold=u,n.bits=f,(n.wsize||b!==e.avail_out&&n.mode<BAD&&(n.mode<CHECK||t!==Z_FINISH$1))&&updatewindow(e,e.output,e.next_out,b-e.avail_out),E-=e.avail_in,b-=e.avail_out,e.total_in+=E,e.total_out+=b,n.total+=b,n.wrap&&b&&(e.adler=n.check=n.flags?crc32(n.check,i,b,e.next_out-b):adler32(n.check,i,b,e.next_out-b)),e.data_type=n.bits+(n.last?64:0)+(n.mode===TYPE?128:0)+(n.mode===LEN_||n.mode===COPY_?256:0),(E===0&&b===0||t===Z_FINISH$1)&&q===Z_OK$1&&(q=Z_BUF_ERROR$1),q}function inflateEnd(e){if(!e||!e.state)return Z_STREAM_ERROR$1;var t=e.state;return t.window&&(t.window=null),e.state=null,Z_OK$1}var NONE=0,DEFLATE=1,INFLATE=2,GZIP=3,GUNZIP=4,DEFLATERAW=5,INFLATERAW=6,UNZIP=7,Z_NO_FLUSH=0,Z_PARTIAL_FLUSH=1,Z_SYNC_FLUSH=2,Z_FULL_FLUSH=3,Z_FINISH=4,Z_BLOCK=5,Z_TREES=6,Z_OK=0,Z_STREAM_END=1,Z_NEED_DICT=2,Z_ERRNO=-1,Z_STREAM_ERROR=-2,Z_DATA_ERROR=-3,Z_BUF_ERROR=-5,Z_NO_COMPRESSION=0,Z_BEST_SPEED=1,Z_BEST_COMPRESSION=9,Z_DEFAULT_COMPRESSION=-1,Z_FILTERED=1,Z_HUFFMAN_ONLY=2,Z_RLE=3,Z_FIXED=4,Z_DEFAULT_STRATEGY=0,Z_BINARY=0,Z_TEXT=1,Z_UNKNOWN=2,Z_DEFLATED=8;function Zlib$1(e){if(e<DEFLATE||e>UNZIP)throw new TypeError("Bad argument");this.mode=e,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}Zlib$1.prototype.init=function(e,t,n,r,i){this.windowBits=e,this.level=t,this.memLevel=n,this.strategy=r,(this.mode===GZIP||this.mode===GUNZIP)&&(this.windowBits+=16),this.mode===UNZIP&&(this.windowBits+=32),(this.mode===DEFLATERAW||this.mode===INFLATERAW)&&(this.windowBits=-this.windowBits),this.strm=new ZStream;var s;switch(this.mode){case DEFLATE:case GZIP:case DEFLATERAW:s=deflateInit2(this.strm,this.level,Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case INFLATE:case GUNZIP:case INFLATERAW:case UNZIP:s=inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}if(s!==Z_OK){this._error(s);return}this.write_in_progress=!1,this.init_done=!0},Zlib$1.prototype.params=function(){throw new Error("deflateParams Not supported")},Zlib$1.prototype._writeCheck=function(){if(!this.init_done)throw new Error("write before init");if(this.mode===NONE)throw new Error("already finalized");if(this.write_in_progress)throw new Error("write already in progress");if(this.pending_close)throw new Error("close is pending")},Zlib$1.prototype.write=function(e,t,n,r,i,s,l){this._writeCheck(),this.write_in_progress=!0;var o=this;return browser$1$1.nextTick(function(){o.write_in_progress=!1;var c=o._write(e,t,n,r,i,s,l);o.callback(c[0],c[1]),o.pending_close&&o.close()}),this};function bufferSet(e,t){for(var n=0;n<e.length;n++)this[t+n]=e[n]}Zlib$1.prototype.writeSync=function(e,t,n,r,i,s,l){return this._writeCheck(),this._write(e,t,n,r,i,s,l)},Zlib$1.prototype._write=function(e,t,n,r,i,s,l){if(this.write_in_progress=!0,e!==Z_NO_FLUSH&&e!==Z_PARTIAL_FLUSH&&e!==Z_SYNC_FLUSH&&e!==Z_FULL_FLUSH&&e!==Z_FINISH&&e!==Z_BLOCK)throw new Error("Invalid flush value");t==null&&(t=new Buffer(0),r=0,n=0),i._set?i.set=i._set:i.set=bufferSet;var o=this.strm;o.avail_in=r,o.input=t,o.next_in=n,o.avail_out=l,o.output=i,o.next_out=s;var c;switch(this.mode){case DEFLATE:case GZIP:case DEFLATERAW:c=deflate(o,e);break;case UNZIP:case INFLATE:case GUNZIP:case INFLATERAW:c=inflate(o,e);break;default:throw new Error("Unknown mode "+this.mode)}return c!==Z_STREAM_END&&c!==Z_OK&&this._error(c),this.write_in_progress=!1,[o.avail_in,o.avail_out]},Zlib$1.prototype.close=function(){if(this.write_in_progress){this.pending_close=!0;return}this.pending_close=!1,this.mode===DEFLATE||this.mode===GZIP||this.mode===DEFLATERAW?deflateEnd(this.strm):inflateEnd(this.strm),this.mode=NONE};var status;Zlib$1.prototype.reset=function(){switch(this.mode){case DEFLATE:case DEFLATERAW:status=deflateReset(this.strm);break;case INFLATE:case INFLATERAW:status=inflateReset(this.strm);break}status!==Z_OK&&this._error(status)},Zlib$1.prototype._error=function(e){this.onerror(msg[e]+": "+this.strm.msg,e),this.write_in_progress=!1,this.pending_close&&this.close()};const _binding=Object.freeze(Object.defineProperty({__proto__:null,DEFLATE,DEFLATERAW,GUNZIP,GZIP,INFLATE,INFLATERAW,NONE,UNZIP,Z_BEST_COMPRESSION,Z_BEST_SPEED,Z_BINARY,Z_BLOCK,Z_BUF_ERROR,Z_DATA_ERROR,Z_DEFAULT_COMPRESSION,Z_DEFAULT_STRATEGY,Z_DEFLATED,Z_ERRNO,Z_FILTERED,Z_FINISH,Z_FIXED,Z_FULL_FLUSH,Z_HUFFMAN_ONLY,Z_NEED_DICT,Z_NO_COMPRESSION,Z_NO_FLUSH,Z_OK,Z_PARTIAL_FLUSH,Z_RLE,Z_STREAM_END,Z_STREAM_ERROR,Z_SYNC_FLUSH,Z_TEXT,Z_TREES,Z_UNKNOWN,Zlib:Zlib$1},Symbol.toStringTag,{value:"Module"}));function assert(e,t){if(!e)throw new Error(t)}var binding={};Object.keys(_binding).forEach(function(e){binding[e]=_binding[e]}),binding.Z_MIN_WINDOWBITS=8,binding.Z_MAX_WINDOWBITS=15,binding.Z_DEFAULT_WINDOWBITS=15,binding.Z_MIN_CHUNK=64,binding.Z_MAX_CHUNK=1/0,binding.Z_DEFAULT_CHUNK=16*1024,binding.Z_MIN_MEMLEVEL=1,binding.Z_MAX_MEMLEVEL=9,binding.Z_DEFAULT_MEMLEVEL=8,binding.Z_MIN_LEVEL=-1,binding.Z_MAX_LEVEL=9,binding.Z_DEFAULT_LEVEL=binding.Z_DEFAULT_COMPRESSION;var codes={Z_OK:binding.Z_OK,Z_STREAM_END:binding.Z_STREAM_END,Z_NEED_DICT:binding.Z_NEED_DICT,Z_ERRNO:binding.Z_ERRNO,Z_STREAM_ERROR:binding.Z_STREAM_ERROR,Z_DATA_ERROR:binding.Z_DATA_ERROR,Z_MEM_ERROR:binding.Z_MEM_ERROR,Z_BUF_ERROR:binding.Z_BUF_ERROR,Z_VERSION_ERROR:binding.Z_VERSION_ERROR};Object.keys(codes).forEach(function(e){codes[codes[e]]=e});function deflateSync(e,t){return zlibBufferSync(new Deflate(t),e)}function inflateSync(e,t){return zlibBufferSync(new Inflate(t),e)}function zlibBufferSync(e,t){if(typeof t=="string"&&(t=new Buffer(t)),!Buffer.isBuffer(t))throw new TypeError("Not a string or buffer");var n=binding.Z_FINISH;return e._processChunk(t,n)}function Deflate(e){if(!(this instanceof Deflate))return new Deflate(e);Zlib.call(this,e,binding.DEFLATE)}function Inflate(e){if(!(this instanceof Inflate))return new Inflate(e);Zlib.call(this,e,binding.INFLATE)}function Gzip(e){if(!(this instanceof Gzip))return new Gzip(e);Zlib.call(this,e,binding.GZIP)}function Gunzip(e){if(!(this instanceof Gunzip))return new Gunzip(e);Zlib.call(this,e,binding.GUNZIP)}function DeflateRaw(e){if(!(this instanceof DeflateRaw))return new DeflateRaw(e);Zlib.call(this,e,binding.DEFLATERAW)}function InflateRaw(e){if(!(this instanceof InflateRaw))return new InflateRaw(e);Zlib.call(this,e,binding.INFLATERAW)}function Unzip(e){if(!(this instanceof Unzip))return new Unzip(e);Zlib.call(this,e,binding.UNZIP)}function Zlib(e,t){if(this._opts=e=e||{},this._chunkSize=e.chunkSize||binding.Z_DEFAULT_CHUNK,Transform.call(this,e),e.flush&&e.flush!==binding.Z_NO_FLUSH&&e.flush!==binding.Z_PARTIAL_FLUSH&&e.flush!==binding.Z_SYNC_FLUSH&&e.flush!==binding.Z_FULL_FLUSH&&e.flush!==binding.Z_FINISH&&e.flush!==binding.Z_BLOCK)throw new Error("Invalid flush flag: "+e.flush);if(this._flushFlag=e.flush||binding.Z_NO_FLUSH,e.chunkSize&&(e.chunkSize<binding.Z_MIN_CHUNK||e.chunkSize>binding.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+e.chunkSize);if(e.windowBits&&(e.windowBits<binding.Z_MIN_WINDOWBITS||e.windowBits>binding.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+e.windowBits);if(e.level&&(e.level<binding.Z_MIN_LEVEL||e.level>binding.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+e.level);if(e.memLevel&&(e.memLevel<binding.Z_MIN_MEMLEVEL||e.memLevel>binding.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+e.memLevel);if(e.strategy&&e.strategy!=binding.Z_FILTERED&&e.strategy!=binding.Z_HUFFMAN_ONLY&&e.strategy!=binding.Z_RLE&&e.strategy!=binding.Z_FIXED&&e.strategy!=binding.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+e.strategy);if(e.dictionary&&!Buffer.isBuffer(e.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new binding.Zlib(t);var n=this;this._hadError=!1,this._binding.onerror=function(s,l){n._binding=null,n._hadError=!0;var o=new Error(s);o.errno=l,o.code=binding.codes[l],n.emit("error",o)};var r=binding.Z_DEFAULT_COMPRESSION;typeof e.level=="number"&&(r=e.level);var i=binding.Z_DEFAULT_STRATEGY;typeof e.strategy=="number"&&(i=e.strategy),this._binding.init(e.windowBits||binding.Z_DEFAULT_WINDOWBITS,r,e.memLevel||binding.Z_DEFAULT_MEMLEVEL,i,e.dictionary),this._buffer=new Buffer(this._chunkSize),this._offset=0,this._closed=!1,this._level=r,this._strategy=i,this.once("end",this.close)}inherits$1(Zlib,Transform),Zlib.prototype.params=function(e,t,n){if(e<binding.Z_MIN_LEVEL||e>binding.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+e);if(t!=binding.Z_FILTERED&&t!=binding.Z_HUFFMAN_ONLY&&t!=binding.Z_RLE&&t!=binding.Z_FIXED&&t!=binding.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+t);if(this._level!==e||this._strategy!==t){var r=this;this.flush(binding.Z_SYNC_FLUSH,function(){r._binding.params(e,t),r._hadError||(r._level=e,r._strategy=t,n&&n())})}else browser$1$1.nextTick(n)},Zlib.prototype.reset=function(){return this._binding.reset()},Zlib.prototype._flush=function(e){this._transform(new Buffer(0),"",e)},Zlib.prototype.flush=function(e,t){var n=this._writableState;if((typeof e=="function"||e===void 0&&!t)&&(t=e,e=binding.Z_FULL_FLUSH),n.ended)t&&browser$1$1.nextTick(t);else if(n.ending)t&&this.once("end",t);else if(n.needDrain){var r=this;this.once("drain",function(){r.flush(t)})}else this._flushFlag=e,this.write(new Buffer(0),"",t)},Zlib.prototype.close=function(e){if(e&&browser$1$1.nextTick(e),!this._closed){this._closed=!0,this._binding.close();var t=this;browser$1$1.nextTick(function(){t.emit("close")})}},Zlib.prototype._transform=function(e,t,n){var r,i=this._writableState,s=i.ending||i.ended,l=s&&(!e||i.length===e.length);if(!e===null&&!Buffer.isBuffer(e))return n(new Error("invalid input"));l?r=binding.Z_FINISH:(r=this._flushFlag,e.length>=i.length&&(this._flushFlag=this._opts.flush||binding.Z_NO_FLUSH)),this._processChunk(e,r,n)},Zlib.prototype._processChunk=function(e,t,n){var r=e&&e.length,i=this._chunkSize-this._offset,s=0,l=this,o=typeof n=="function";if(!o){var c=[],u=0,f;this.on("error",function(_){f=_});do var E=this._binding.writeSync(t,e,s,r,this._buffer,this._offset,i);while(!this._hadError&&g(E[0],E[1]));if(this._hadError)throw f;var b=Buffer.concat(c,u);return this.close(),b}var h=this._binding.write(t,e,s,r,this._buffer,this._offset,i);h.buffer=e,h.callback=g;function g(_,R){if(!l._hadError){var x=i-R;if(assert(x>=0,"have should not go down"),x>0){var F=l._buffer.slice(l._offset,l._offset+x);l._offset+=x,o?l.push(F):(c.push(F),u+=F.length)}if((R===0||l._offset>=l._chunkSize)&&(i=l._chunkSize,l._offset=0,l._buffer=new Buffer(l._chunkSize)),R===0){if(s+=r-_,r=_,!o)return!0;var M=l._binding.write(t,e,s,r,l._buffer,l._offset,l._chunkSize);M.callback=g,M.buffer=e;return}if(!o)return!1;n()}}},inherits$1(Deflate,Zlib),inherits$1(Inflate,Zlib),inherits$1(Gzip,Zlib),inherits$1(Gunzip,Zlib),inherits$1(DeflateRaw,Zlib),inherits$1(InflateRaw,Zlib),inherits$1(Unzip,Zlib);function serializeHash(e){return deflateSync(Buffer.from(JSON.stringify(e),"utf8")).toString("base64")}function deserializeHash(e){return JSON.parse(inflateSync(Buffer.from(e,"base64")).toString("utf8"))}const isRtcPeer=e=>e!==void 0&&e.capabilities!==void 0&&e.capabilitySet!==void 0;let version;function getRtcClientVersion(){return version===void 0&&(version=new URLSearchParams(window.location.search).get("rtc_client")),version}function assertNotCancelled(e){if(e)throw new Error("Cancelled by deadline")}class Device extends EventEmitter{constructor(n,r,i,s){super();Te(this,"rtcClient");Te(this,"remoteDevicePeerId",null);Te(this,"realtimeListeners",[]);Te(this,"connectionMonitorInterval");Te(this,"handleMessage",(n,r)=>{this.realtimeListeners.forEach(i=>i(n,r))});this.id=n,this.name=r,this.organizationId=i,this.tags=s}async getLatestTelemetry(){return(await(await fetch(`${FORMANT_API_URL}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async getConfiguration(){let n=await fetch(`${FORMANT_API_URL}/v1/admin/devices/${this.id}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}});const r=await n.json();if(!r.state.reportedConfiguration)throw new Error("Device has no configuration, has it ever been turned on?");const i=r.state.reportedConfiguration.version;return n=await fetch(`${FORMANT_API_URL}/v1/admin/devices/${this.id}/configurations/${i}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),(await n.json()).document}async getFileUrl(n){return(await(await fetch(`${FORMANT_API_URL}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[n]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).fileUrls}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error(`Realtime connection hasn't been started for ${this.id}`)}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async startRealtimeConnection(n={}){if(console.debug(`${new Date().toISOString()} :: Connection start requested`),this.rtcClient&&this.connectionMonitorInterval!==void 0)throw new Error(`Already created realtime connection to device ${this.id}`);this.rtcClient&&console.warn("overwriting existing rtcClient due to missing connectionMonitorInterval");const{sessionType:r,deadlineMs:i=1e4,maxConnectRetries:s=3}=typeof n=="number"?{sessionType:n}:n,o=getRtcClientPool({sessionType:r,version:getRtcClientVersion()??"2"}).get(this.handleMessage);let c=!1;const u=new Promise((E,b)=>setTimeout(()=>{c=!0,b(new Error("Connection timed out: the connection could not be finalized in time, possibly due to network issues or misconfigured settings."))},i)),f=async()=>{if("isReady"in o)for(;!o.isReady();)assertNotCancelled(c),await delay(100);const E=await this.getRemoteDevicePeerId(o);assertNotCancelled(c);let b;for(let g=0;g<s&&(b=await o.connect(E),!b);g++)delay(100),assertNotCancelled(c);if(!b)throw new Error(`Session could not be created: exhausted ${s} retries`);let h=0;for(;!c&&o.getConnectionStatus(E)!=="connected";)await delay(100),h+=1;return assertNotCancelled(c),console.debug(`${new Date().toISOString()} :: Connection completed after ${h} retries`),E};return Promise.race([f(),u]).then(E=>{this.remoteDevicePeerId=E,this.initConnectionMonitoring(),this.rtcClient=o,this.emit("connect")}).catch(E=>{throw console.debug(`${new Date().toISOString()} :: Connection failed: %o`,E),this.remoteDevicePeerId=null,o.shutdown().catch(b=>{console.error("rtcClient cannot shutdown: %o",b)}),this.emit("connection_failed",E),E})}async getRemoteDevicePeerId(n){const i=(await n.getPeers()).find(s=>s.deviceId===this.id);if(!isRtcPeer(i))throw new Error("Cannot find peer, is the robot offline?");return i.id}initConnectionMonitoring(){this.connectionMonitorInterval=setInterval(async()=>{if(!this.isV2Signaling(this.rtcClient))return;const r=this.rtcClient.getConnections().find(s=>s.getRemotePeerId()===this.remoteDevicePeerId&&s.isActive());let i=!1;r===void 0||!r.isReady()?(console.debug(`${new Date().toISOString()} :: data channel closed`),i=!0):console.debug(`${new Date().toISOString()} :: data channel appears active`),(!this.rtcClient||!this.remoteDevicePeerId||await this.rtcClient.getConnectionStatsInfo(this.remoteDevicePeerId)===void 0||i)&&(this.emit("disconnect"),this.stopRealtimeConnection().catch(s=>{console.error(s)}))},1e3)}isV2Signaling(n){return n.getConnectionStatsInfo!==void 0}stopConnectionMonitoring(){clearInterval(this.connectionMonitorInterval),this.connectionMonitorInterval=void 0}async sendRealtimeMessage(n,r={channelLabel:"stream.reliable"}){const i=defined(this.rtcClient,"Realtime connection has not been started"),s=await this.getRemotePeerId();i.send(s,n,r)}addRealtimeListener(n){this.realtimeListeners.push(n)}removeRealtimeListener(n){const r=this.realtimeListeners.indexOf(n);if(r===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(r,1)}async getRealtimeAudioStreams(){var i,s,l;const n=await this.getConfiguration(),r=[];for(const o of((i=n.teleop)==null?void 0:i.hardwareStreams)??[])o.rtcStreamType==="audio-chunk"&&r.push({name:o.name});for(const o of((s=n.teleop)==null?void 0:s.rosStreams)??[])o.topicType=="audio_common_msgs/AudioData"&&r.push({name:o.topicName});for(const o of((l=n.teleop)==null?void 0:l.customStreams)??[])o.rtcStreamType==="audio-chunk"&&r.push({name:o.name});return r}async getRealtimeVideoStreams(){var i,s,l;const n=await this.getConfiguration(),r=[];for(const o of((i=n.teleop)==null?void 0:i.hardwareStreams)??[])o.rtcStreamType==="h264-video-frame"&&r.push({name:o.name});for(const o of((s=n.teleop)==null?void 0:s.rosStreams)??[])o.topicType=="formant/H264VideoFrame"&&r.push({name:o.topicName}),(o.topicType==="sensor_msgs/Image"||o.topicType==="sensor_msgs/CompressedImage")&&o.encodeVideo&&r.push({name:o.topicName});for(const o of((l=n.teleop)==null?void 0:l.customStreams)??[])o.rtcStreamType==="h264-video-frame"&&r.push({name:o.name});return r}async getRealtimeManipulators(){const n=await this.getConfiguration(),r=[];for(const i of n.teleop.rosStreams??[])i.topicType=="sensor_msgs/JointState"&&r.push(new Manipulator(this,{currentJointStateStream:{name:i.topicName},plannedJointStateStream:i.plannedTopic?{name:i.plannedTopic}:void 0,planValidStream:i.planValidTopic?{name:i.planValidTopic}:void 0,endEffectorStream:i.endEffectorTopic?{name:i.endEffectorTopic}:void 0,endEffectorLinkName:i.endEffectorLinkName,baseReferenceFrame:i.baseReferenceFrame,localFrame:i.localFrame}));return r}async startListeningToRealtimeVideo(n){console.debug(`RealtimeVideo(${this.id}).start(${n.name})`);const r=defined(this.rtcClient,"Realtime connection has not been started"),i=await this.getRemotePeerId();r.controlRemoteStream(i,{streamName:n.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(n){const r=defined(this.rtcClient,"Realtime connection has not been started"),i=await this.getRemotePeerId();r.controlRemoteStream(i,{streamName:n.name,enable:!1,pipeline:"rtc"}),console.debug(`RealtimeVideo(${this.id}).stop(${n.name})`)}async startListeningToRealtimeDataStream(n){console.debug(`RealtimeDataStream(${this.id}).start(${n.name})`);const r=defined(this.rtcClient,"Realtime connection has not been started"),i=await this.getRemotePeerId();r.controlRemoteStream(i,{streamName:n.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(n){const r=defined(this.rtcClient,"Realtime connection has not been started"),i=await this.getRemotePeerId();r.controlRemoteStream(i,{streamName:n.name,enable:!1,pipeline:"rtc"}),console.debug(`RealtimeDataStream(${this.id}).stop(${n.name})`)}async enableRealtimeTelemetryPriorityIngestion(n){const r=defined(this.rtcClient,"Realtime connection has not been started"),i=await this.getRemotePeerId();r.controlRemoteStream(i,{streamName:n,enablePriorityUpload:!0,pipeline:"telemetry"})}async changeStreamAudioType(n,r){const i=defined(this.rtcClient,"Realtime connection has not been started"),s=await this.getRemotePeerId();i.controlRemoteStream(s,{streamName:n,setAudioFormat:r})}async disableRealtimeTelemetryPriorityIngestion(n){const r=defined(this.rtcClient,"Realtime connection has not been started"),i=await this.getRemotePeerId();r.controlRemoteStream(i,{streamName:n,enablePriorityUpload:!1,pipeline:"telemetry"})}async getRemotePeer(){const r=(await defined(this.rtcClient,"Realtime connection has not been started").getPeers()).find(i=>i.deviceId===this.id);return defined(r,"Could not find remote peer for device "+this.id)}async stopRealtimeConnection(){let n=!1;if(this.rtcClient){this.stopConnectionMonitoring(),this.remoteDevicePeerId?(await this.rtcClient.disconnect(this.remoteDevicePeerId),this.remoteDevicePeerId=null):n=!0;try{await this.rtcClient.shutdown()}finally{this.rtcClient=void 0}}if(n)throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async isInRealtimeSession(){const n=await Fleet.getPeers(),r=await Fleet.getRealtimeSessions(),i=n.find(s=>s.deviceId===this.id);return i?r[i.id].length>0:!1}async getAvailableCommands(){return(await(await fetch(`${FORMANT_API_URL}/v1/admin/command-templates/`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(i=>({name:i.name,id:i.id,command:i.command,description:i.description,parameterEnabled:i.parameterEnabled,parameterValue:i.parameterValue,parameterMeta:i.parameterMeta,enabled:i.enabled,tags:i.tags}))}async sendCommand(n,r,i,s){var E;const o=(await this.getAvailableCommands()).find(b=>b.name===n);if(!o)throw new Error(`Could not find command with name "${n}"`);let c="";r===void 0?o.parameterEnabled&&o.parameterValue&&(c=o.parameterValue):c=r;let u={value:c,scrubberTime:(i||new Date).toISOString(),meta:{...o.parameterMeta,...s}};return await fetch(`${FORMANT_API_URL}/v1/admin/commands`,{method:"POST",body:JSON.stringify({commandTemplateId:o.id,organizationId:this.organizationId,deviceId:this.id,command:o.command,parameter:u,userId:(E=Authentication.currentUser)==null?void 0:E.id}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async getCommand(n){return await fetch(`${FORMANT_API_URL}/v1/admin/commands/${n}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async createCustomDataChannel(n,r){if(getRtcClientVersion()==="1")throw new Error("createCustomDataChannel is not supported in rtcClientVersion 1");const i=defined(this.rtcClient,"Realtime connection has not been started"),s=await this.getRemotePeerId(),l=await new Promise(o=>{i.createCustomDataChannel(s,n,{ordered:!0,...r},!1,(c,u)=>{const f=new DataChannel(u);o(f)})});return await l.waitTilReady(),l}createCustomRequestDataChannel(n,r=3e3){return new TextRequestDataChannel(this,n,r)}createCustomBinaryRequestDataChannel(n,r=3e3){return new BinaryRequestDataChannel(this,n,r)}async createCaptureStream(n){const i=await(await fetch(`${FORMANT_API_URL}/v1/admin/capture-sessions`,{method:"POST",body:JSON.stringify({deviceId:this.id,streamName:n,tags:{}}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return new CaptureStream(i)}async getTelemetry(n,r,i,s){return await Fleet.getTelemetry(this.id,n,r,i,s)}async getTelemetryStreams(){var c,u;const n=await this.getConfiguration(),r=await fetch(`${FORMANT_API_URL}/v1/queries/metadata/stream-names`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),i=[],s=[];return(u=(c=n.telemetry)==null?void 0:c.streams)==null||u.forEach(f=>{f.disabled!==!0&&i.push(f.name),f.onDemand===!0&&s.push(f.name)}),console.log(s),(await r.json()).items.filter(f=>!i.includes(f)).map(f=>({name:f,onDemand:s.includes(f)}))}async createInterventionRequest(n,r,i,s){return await(await fetch(`${FORMANT_API_URL}/v1/admin/intervention-requests`,{method:"POST",body:JSON.stringify({message:n,interventionType:r,time:new Date().toISOString(),deviceId:this.id,tags:s,data:i}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async addInterventionResponse(n,r,i){return await(await fetch(`${FORMANT_API_URL}/v1/admin/intervention-responses`,{method:"POST",body:JSON.stringify({interventionId:n,interventionType:r,data:i}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async getAnnotationCount(n,r){return await Fleet.getAnnotationCount({...n,deviceIds:[this.id]},r)}async getAnnotationCountByIntervals(n,r,i){return await Fleet.getAnnotationCountByIntervals({...n,deviceIds:[this.id]},r,i)}async eventsCounter(n,r,i,s,l){return await Fleet.eventsCounter(n,r,i,s,{...l,deviceIds:[this.id]})}async createShareLink(n,r){return n.scope.deviceIds=[this.id],await Fleet.createShareLink(n,r)}async getRemotePeerId(){return this.remoteDevicePeerId??(await this.getRemotePeer()).id}}class PeerDevice{constructor(t){Te(this,"rtcClient");Te(this,"remoteDevicePeerId");Te(this,"realtimeListeners",[]);Te(this,"id");Te(this,"handleMessage",(t,n)=>{this.realtimeListeners.forEach(r=>r(t,n))});this.peerUrl=t}async getLatestTelemetry(){const n=await(await fetch(`${this.peerUrl}/telemetry`)).json();return Object.entries(n).map(([i,s])=>({deviceId:this.id,streamName:i,streamType:"json",currentValue:s,currentValueTime:s.timestamp,tags:{}}))}async getDeviceId(){return(await(await fetch(`${this.peerUrl}/configuration`)).json()).agent_config.id}async getConfiguration(){return(await(await fetch(`${this.peerUrl}/configuration`)).json()).agent_config.document}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}async startRealtimeConnection(t){if(this.rtcClient)throw new Error(`Already created realtime connection to device ${this.id}`);{const n=new distExports.RtcClient({lanOnlyMode:!0,receive:this.handleMessage,sessionType:t});for(await n.connectLan(this.peerUrl);n.getConnectionStatus(this.peerUrl)!=="connected";)await delay(100);this.rtcClient=n}}addRealtimeListener(t){this.realtimeListeners.push(t)}removeRealtimeListener(t){const n=this.realtimeListeners.indexOf(t);if(n===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(n,1)}async getRealtimeVideoStreams(){const t=await this.getConfiguration(),n=[];for(const r of t.teleop.hardwareStreams??[])r.rtcStreamType==="h264-video-frame"&&n.push({name:r.name});for(const r of t.teleop.rosStreams??[])r.topicType=="formant/H264VideoFrame"&&n.push({name:r.topicName}),(r.topicType==="sensor_msgs/Image"||r.topicType==="sensor_msgs/CompressedImage")&&r.encodeVideo&&n.push({name:r.topicName});for(const r of t.teleop.customStreams??[])r.rtcStreamType==="h264-video-frame"&&n.push({name:r.name});return n}async getRealtimeManipulators(){const t=await this.getConfiguration(),n=[];for(const r of t.teleop.rosStreams??[])r.topicType=="sensor_msgs/JointState"&&n.push(new Manipulator(this,{currentJointStateStream:{name:r.topicName},plannedJointStateStream:r.plannedTopic?{name:r.plannedTopic}:void 0,planValidStream:r.planValidTopic?{name:r.planValidTopic}:void 0,endEffectorStream:r.endEffectorTopic?{name:r.endEffectorTopic}:void 0,endEffectorLinkName:r.endEffectorLinkName,baseReferenceFrame:r.baseReferenceFrame,localFrame:r.localFrame}));return n}async startListeningToRealtimeVideo(t){const n=defined(this.rtcClient,"Realtime connection has not been started"),r=await this.getRemotePeer();n.controlRemoteStream(defined(r).id,{streamName:t.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(t){const n=defined(this.rtcClient,"Realtime connection has not been started"),r=await this.getRemotePeer();n.controlRemoteStream(defined(r).id,{streamName:t.name,enable:!1,pipeline:"rtc"})}async startListeningToRealtimeDataStream(t){const n=defined(this.rtcClient,"Realtime connection has not been started"),r=await this.getRemotePeer();n.controlRemoteStream(defined(r).id,{streamName:t.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(t){const n=defined(this.rtcClient,"Realtime connection has not been started"),r=await this.getRemotePeer();n.controlRemoteStream(defined(r).id,{streamName:t.name,enable:!1,pipeline:"rtc"})}async enableRealtimeTelemetryPriorityIngestion(t){const n=defined(this.rtcClient,"Realtime connection has not been started"),r=await this.getRemotePeer();n.controlRemoteStream(defined(r).id,{streamName:t,enablePriorityUpload:!0,pipeline:"telemetry"})}async disableRealtimeTelemetryPriorityIngestion(t){const n=defined(this.rtcClient,"Realtime connection has not been started"),r=await this.getRemotePeer();n.controlRemoteStream(defined(r).id,{streamName:t,enablePriorityUpload:!1,pipeline:"telemetry"})}async getRemotePeer(){return{id:this.peerUrl,organizationId:"",deviceId:this.id,capabilities:[],capabilitySet:{}}}async stopRealtimeConnection(){if(this.rtcClient)await this.rtcClient.disconnect(this.id);else throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async createCustomDataChannel(t,n){const r=defined(this.rtcClient,"Realtime connection has not been started"),i=await this.getRemotePeer(),s=await new Promise(l=>{r.createCustomDataChannel(defined(i).id,t,{ordered:!0,...n},!1,(o,c)=>{const u=new DataChannel(c);l(u)})});return await s.waitTilReady(),s}createCustomRequestDataChannel(t,n=3e3){return new TextRequestDataChannel(this,t,n)}createCustomBinaryRequestDataChannel(t,n=3e3){return new BinaryRequestDataChannel(this,t,n)}}const Ge=class{static async setDefaultDevice(t){Ge.defaultDeviceId=t}static async getCurrentDevice(){if(!Authentication.token)throw new Error("Not authenticated");if(!Ge.defaultDeviceId)throw new Error("No known default device");const r=(await(await fetch(`${FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.find(l=>l.id===Ge.defaultDeviceId),i=r.name,s=new Device(Ge.defaultDeviceId,i,defined(Authentication.currentOrganization),r.tags);return Ge.knownContext.push(new WeakRef(s)),s}static async getPeerDevice(t){const n=new PeerDevice(t);return n.id=await n.getDeviceId(),n}static async getDevice(t){if(!Authentication.token)throw new Error("Not authenticated");const r=await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/${t}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json(),i=r.name,s=new Device(t,i,r.organizationId,r.tags);return Ge.knownContext.push(new WeakRef(s)),s}static async getDevices(){if(!Authentication.token)throw new Error("Not authenticated");const n=await(await fetch(`${FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",body:JSON.stringify({enabled:!0,type:"default"}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return n.items,n.items.map(r=>new Device(r.id,r.name,r.organizationId,r.tags))}static async queryDevices(t){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/devices/query`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(i=>new Device(i.id,i.name,i.organizationId,i.tags))}static async getOnlineDevices(){if(!Authentication.token)throw new Error("Not authenticated");const r=(await(await fetch(`${FORMANT_API_URL}/v1/queries/online-devices`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items;return(await Ge.getDevices()).filter(s=>r.includes(s.id))}static async getPeers(){if(!Authentication.token)throw new Error("Not authenticated");const t=defaultRtcClientPool.get();try{return await t.getPeers()}finally{await t.shutdown()}}static async getRealtimeSessions(){if(!Authentication.token)throw new Error("Not authenticated");const t=defaultRtcClientPool.get();try{return await t.getSessions()}finally{await t.shutdown()}}static async getRealtimeDevices(){if(!Authentication.token)throw new Error("Not authenticated");const r=(await(await fetch(`${FORMANT_API_URL}/v1/signaling/peers`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(s=>s.deviceId);return(await Ge.getDevices()).filter(s=>r.includes(s.id))}static async getLatestTelemetry(...t){const n=t.flat().filter(s=>!!s);return n.length===0?[]:(await(await fetch(`${FORMANT_API_URL}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:n}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async getTelemetry(t,n,r,i,s){let l=t;Array.isArray(t)||(l=[t]);let o=n;return Array.isArray(n)||(o=[n]),(await(await fetch(`${FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify({deviceIds:l,end:i.toISOString(),names:o,start:r.toISOString(),tags:s}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async getFileUrl(t){const r=await(await fetch(`${FORMANT_API_URL}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[t]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();if(r.fileUrls.length===0)throw new Error("File not found");return r.fileUrls[0]}static async queryTelemetry(t){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async aggregateTelemetry(t){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).aggregates}static async queryEvents(t){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/events/query`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async getEvent(t){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/events/query/id=${t}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async getInterventions(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/intervention-requests`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async getCurrentGroup(){if(!Authentication.token)throw new Error("Not authenticated");let t=new URLSearchParams("");typeof window<"u"&&(t=new URLSearchParams(window.location.search));const n=t.get("group");if(n===null||n.trim()==="")return;const r=await fetch(`${FORMANT_API_URL}/v1/admin/groups/`+n,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),{tagKey:i,tagValue:s}=await r.json();return await this.queryDevices({tags:{[i]:[s]},enabled:!0,type:"default"})}static async getAnnotationCount(t,n){return(await this.queryEvents({...t,eventTypes:["annotation"]})).filter(l=>!!l.tags&&Object.keys(l.tags).includes(n)).reduce((l,o)=>{const c=o.tags[n];return c in l?(l[c]+=1,l):(l[c]=1,l)},{})}static async getAnnotationCountByIntervals(t,n,r){const{end:i,start:s}=t,o=aggregateByDateFunctions[r].interval({start:new Date(s),end:new Date(i)}),c=o.map((f,E)=>{const b=new Date(f).toISOString(),h=E===o.length-1?new Date(Date.now()).toISOString():new Date(o[E+1]);return this.getAnnotationCount({...t,start:b,end:h},n)}),u=await Promise.all(c);return o.map((f,E)=>({date:new Date(f).toISOString(),annotations:u[E]}))}static async getStreams(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/streams`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.filter(r=>r.enabled)}static async patchStream(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/streams/${t.id}`,{method:"PATCH",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async getViews(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/views`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async patchView(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/admin/views/${t.id}`,{method:"PATCH",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async eventsCounter(t,n,r,i,s){const l=aggregateByDateFunctions[n];return await Promise.all(Array(r).fill(0).map(async(o,c)=>{const u=new Date(i),f=l.sub(l.start(u),r-c-1),E=l.sub(l.end(u),r-c-1),b=formatTimeFrameText(f.toLocaleDateString(),E.toLocaleDateString()),h=await Ge.queryEvents({...s,eventTypes:t,start:new Date(f).toISOString(),end:new Date(E).toISOString()});return{date:b,events:h}}))}static async getAnalyticsModules(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/admin/analytics-modules`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async getAnalyticStreams(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics/streams`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async getTaskReportTables(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics/task-reports`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async queryAnalytics(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async getAnalyticsRows(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics/rows`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async getTaskReportRows(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${FORMANT_API_URL}/v1/queries/analytics/task-report-rows`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async createShareLink(t,n){if(!Authentication.token)throw new Error("Not authenticated");const i=(await this.getViews()).filter(c=>c.name===n);if(i.length===0)return console.warn("View does not exist or it is misspell"),null;const s=await fetch(`${FORMANT_API_URL}/v1/admin/shares`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),l=FORMANT_API_URL.replace("api","app"),{code:o}=await s.json();return`${l}/shares/${o}#${serializeHash({viewId:i[0].id})}`}};let Fleet=Ge;Te(Fleet,"defaultDeviceId"),Te(Fleet,"knownContext",[]);class KeyValue{static async set(t,n){try{const r=await fetch(FORMANT_API_URL+"/v1/admin/key-value",{method:"POST",body:JSON.stringify({organizationId:defined(Authentication.currentUser).organizationId,key:t,value:n}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),i=await r.json();if(r.status!==200)throw new Error(i.message)}catch(r){throw r}}static async get(t){try{const n=await fetch(FORMANT_API_URL+`/v1/admin/key-value/${t}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),r=await n.json();if(n.status!==200)throw new Error(r.message);return r.value}catch(n){throw n}}static async list(){try{const t=await fetch(FORMANT_API_URL+"/v1/admin/key-value",{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),n=await t.json();if(t.status!==200)throw new Error(n.message);return n.items}catch(t){throw t}}static async delete(t){try{if(!(await fetch(FORMANT_API_URL+`/v1/admin/key-value/${t}`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).ok)throw new Error("Unable to handle request");return}catch(n){throw n}}}function stringToArrayBuffer(e){return Uint8Array.from(atob(e),t=>t.charCodeAt(0))}function browser(){const{userAgent:e}=navigator;return e.includes("Firefox/")?"Firefox":e.includes("Edg/")?"Edge":e.includes("Chrome/")?"Chrome":e.includes("Safari/")?"Safari":e.includes("MSIE/")||e.includes("Trident/")?"IE":"Other"}const rtcAudioChunkStreamType="audio-chunk";class AudioPlayer{constructor(t,n){Te(this,"muted",!1);Te(this,"hasReceivedData",!1);Te(this,"audioContext");Te(this,"chunks",[]);Te(this,"isPlaying",!1);Te(this,"startTime",0);Te(this,"lastChunkOffset",0);Te(this,"bufferSize",3);Te(this,"receive",async t=>{var l;const n=(l=t.payload.audioChunk)==null?void 0:l.chunk_data;if(!n)return;this.hasReceivedData||(this.hasReceivedData=!0);const{audioContext:r,muted:i}=this;if(!r||t.header.stream.streamType!==rtcAudioChunkStreamType||i!==!1)return;const s=stringToArrayBuffer(n);try{await r.decodeAudioData(s.buffer,this.scheduleChunk)}catch(o){console.warn("Error decoding audio buffer, changing audioWireFormat on agent",{error:o}),this.changeAudioWireFormat("wav")}});Te(this,"scheduleChunk",t=>{const{audioContext:n}=this;if(!n)return;(this.chunks.length>this.bufferSize||this.isPlaying===!1)&&(this.chunks.forEach(i=>{i.stop()}),this.isPlaying=!1,this.chunks=[]);const r=this.createChunk(t);r&&r.buffer&&(this.isPlaying===!1&&(this.startTime=n.currentTime,this.lastChunkOffset=0,this.isPlaying=!0),r.start(this.startTime+this.lastChunkOffset,0,t.duration),this.lastChunkOffset+=r.buffer.duration,this.chunks.push(r))});this.device=t,this.stream=n,this.device.startListeningToRealtimeDataStream(n),this.device.addRealtimeListener((i,s)=>{this.receive(s)}),browser()==="Safari"||browser()==="IE"?this.changeAudioWireFormat("wav"):this.changeAudioWireFormat("opus");const r=window.AudioContext||window.webkitAudioContext;this.audioContext=new r}async play(){var t,n;((t=this.audioContext)==null?void 0:t.state)==="suspended"&&await((n=this.audioContext)==null?void 0:n.resume()),this.muted=!1}async pause(){await this.audioContext.suspend(),this.muted=!0}destroy(){this.device.stopListeningToRealtimeDataStream(this.stream)}createChunk(t){const{audioContext:n}=this;if(!n)return;const r=n.createBufferSource();return r.buffer=t,r.connect(n.destination),r.loop=!1,r.onended=i=>{this.chunks.splice(this.chunks.indexOf(r),1),this.chunks.length===0&&(this.isPlaying=!1)},r}changeAudioWireFormat(t){const{stream:n}=this;(async()=>await this.device.changeStreamAudioType(n.name,t))()}}const accessLevels=["viewer","operator","administrator"],viewer="viewer",operator="operator",administrator="administrator",aggregateLevels=["year","month","week","day","hour","minute"],annotationTypes=["tag","sheet","user"],eventTypes=["triggered-event","intervention-request","teleop-session-record","port-forwarding-session-record","command-request","command-response","command-delivery","custom","comment","system","annotation"],healthStatuses=["unknown","operational","offline","error"],interventionTypes=["selection","labeling","teleop"],severities=["info","warning","error","critical"],videoMimeTypes=["video/mp4"];window.Buffer=Buffer;const urlParams=typeof window<"u"?new URLSearchParams(window.location.search):new URLSearchParams(""),urlDevice=urlParams.get("device");urlDevice&&Fleet.setDefaultDevice(urlDevice);const urlAuth=urlParams.get("auth");urlAuth&&Authentication.loginWithToken(urlAuth);const moduleName=urlParams.get("module");moduleName&&Authentication.listenForRefresh(),typeof window<"u"&&App.listenForConnectionEvents(),exports.App=App,exports.AudioPlayer=AudioPlayer,exports.Authentication=Authentication,exports.BinaryRequestDataChannel=BinaryRequestDataChannel,exports.CaptureStream=CaptureStream,exports.DataChannel=DataChannel,exports.Device=Device,exports.Fleet=Fleet,exports.KeyValue=KeyValue,exports.Manipulator=Manipulator,exports.PeerDevice=PeerDevice,exports.SessionType=SessionTypeConstants,exports.TextRequestDataChannel=TextRequestDataChannel,exports.accessLevels=accessLevels,exports.administrator=administrator,exports.aggregateByDateFunctions=aggregateByDateFunctions,exports.aggregateFunctionMap=aggregateFunctionMap,exports.aggregateFunctions=aggregateFunctions,exports.aggregateLevels=aggregateLevels,exports.annotationTypes=annotationTypes,exports.combineNumericAggregates=combineNumericAggregates,exports.combineNumericSetAggregates=combineNumericSetAggregates,exports.deserializeHash=deserializeHash,exports.eventTypes=eventTypes,exports.formatTimeFrameText=formatTimeFrameText,exports.getAverage=getAverage,exports.getCount=getCount,exports.getMax=getMax,exports.getMin=getMin,exports.getRtcClientVersion=getRtcClientVersion,exports.getStandardDeviation=getStandardDeviation,exports.getSum=getSum,exports.getVariance=getVariance,exports.getZeroINumericSet=getZeroINumericSet,exports.healthStatuses=healthStatuses,exports.interventionTypes=interventionTypes,exports.isRtcPeer=isRtcPeer,exports.operator=operator,exports.reduceNumericSetStreamAggregates=reduceNumericSetStreamAggregates,exports.reduceNumericStreamAggregates=reduceNumericStreamAggregates,exports.serializeHash=serializeHash,exports.severities=severities,exports.timeout=timeout,exports.vailableAggregationIntervals=vailableAggregationIntervals,exports.videoMimeTypes=videoMimeTypes,exports.viewer=viewer,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})});
|
|
@@ -43,6 +43,11 @@ export interface ConfigurationDocument {
|
|
|
43
43
|
}[];
|
|
44
44
|
};
|
|
45
45
|
adapters?: IAdapterConfiguration[];
|
|
46
|
+
application?: {
|
|
47
|
+
configurationMap: {
|
|
48
|
+
[key: string]: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
46
51
|
}
|
|
47
52
|
export interface Command {
|
|
48
53
|
id: string;
|
|
@@ -51,6 +56,7 @@ export interface Command {
|
|
|
51
56
|
description: string;
|
|
52
57
|
parameterEnabled: true;
|
|
53
58
|
parameterValue: string | null;
|
|
59
|
+
tags: ITags;
|
|
54
60
|
parameterMeta?: {
|
|
55
61
|
topic?: string;
|
|
56
62
|
};
|
|
@@ -110,11 +116,12 @@ export declare class Device extends EventEmitter implements IRealtimeDevice {
|
|
|
110
116
|
id: string;
|
|
111
117
|
name: string;
|
|
112
118
|
private organizationId;
|
|
119
|
+
tags?: ITags | undefined;
|
|
113
120
|
rtcClient: RtcClient | RtcClientV1 | undefined;
|
|
114
121
|
remoteDevicePeerId: string | null;
|
|
115
122
|
realtimeListeners: RealtimeListener[];
|
|
116
123
|
private connectionMonitorInterval;
|
|
117
|
-
constructor(id: string, name: string, organizationId: string);
|
|
124
|
+
constructor(id: string, name: string, organizationId: string, tags?: ITags | undefined);
|
|
118
125
|
getLatestTelemetry(): Promise<any>;
|
|
119
126
|
getConfiguration(): Promise<ConfigurationDocument>;
|
|
120
127
|
getFileUrl(fileId: string): Promise<string[]>;
|