1"use strict";(self.webpackChunkwebclient_webpack=self.webpackChunkwebclient_webpack||[]).push([[1532],{33197(Dn,Ze,S){S.r(Ze),S.d(Ze,{JabraHeadsetClientService:()=>nn});var Re=S(59030),ve=S(28793),z=S(7673),j=S(983),Ue=S(1807),m=S(19724),R=S(97992),_e=S(83082),Oe=S(88141),Xe=S(44668),we=S(25558),Z=S(5964),ut=S(62087),At=S(96697),_t=S(96354),mt=S(99437),He=S(67018),Je=S(77498),X=S(6488),Rt=S(10467),Ce=S(18530),Xt=S(20039);class Jt extends((0,Xt.mS)({headsetLocked:!1,isOffHook:!1,shouldRing:!1,shouldHold:!1,shouldMute:!1})){}var x=S(87263);const Q="Jabra -";class Dt{state=new Jt;callControl;jabra;_events$=new Ce.B;events$;constructor(){this.events$=this._events$.asObservable()}getCurrentDevice(){return Promise.resolve(this.callControl?{type:"attached",deviceName:this.callControl.device.name}:{type:"detached"})}initializeJabra(){var _=this;return(0,Rt.A)(function*(){if(_.callControl)return;_.jabra=yield(0,X.i)({appName:"3CX Webclient",partnerKey:"4466-3491a9a2-bf4c-41b9-9ae3-b9d7e59fd519",appId:"5538ad92-040e-4286-8974-bcaa3d327481",transport:X.e.WEB_HID,logger:{write:et=>(0,x.Vv)(Q,`sdk log(${et.level}): ${et.message}`)}});const H=new X.C(_.jabra);let re,y=null;_.jabra?.deviceList.subscribe(et=>{const tt=et.find(me=>2830===me.vendorId&&H.supportsCallControl(me));tt?.id.id!==re&&(_.callControl=void 0,y?.unsubscribe(),re=tt?.id.id,tt?H.createCallControl(tt).then(me=>{_.callControl=me,y=me.deviceSignals.subscribe(It=>{_._events$.next({type:"signal",signal:It.type,value:It.value,valueType:It.valueType})}),_._events$.next({type:"attached",deviceName:me.device.name})}).catch(me=>{(0,x.Vg)(Q,me)}):_._events$.next({type:"detached"}))})})()}sendCommand(_){switch(_){case"init":return this.initializeJabra();case"lock":return(this.callControl?.takeCallLock()??Promise.resolve(!1)).then(H=>(H&&(this.state=this.state.merge({headsetLocked:!0})),H));case"release":this.callControl?.releaseCallLock(),this.state=this.state.merge({headsetLocked:!1});break;case"offhook":this.callControl?.offHook(!0),this.state=this.state.merge({isOffHook:!0});break;case"onhook":this.callControl?.offHook(!1),this.state=this.state.merge({isOffHook:!1});break;case"ring":this.callControl?.ring(!0),this.state=this.state.merge({shouldRing:!0});break;case"unring":this.callControl?.ring(!1),this.state=this.state.merge({shouldRing:!1});break;case"hold":this.callControl?.hold(!0),this.state=this.state.merge({shouldHold:!0});break;case"resume":this.callControl?.hold(!1),this.state=this.state.merge({shouldHold:!1});break;case"mute":this.callControl?.mute(!0),this.state=this.state.merge({shouldMute:!0});break;case"unmute":this.callControl?.mute(!1),this.state=this.state.merge({shouldMute:!1});break;default:throw new Error("unknown action")}return Promise.resolve()}}var en=S(7881),ge=S(47924);const Et=J=>"signal"===J.type;class nn{callStateHelper=new ge.o;transport;myJabra$;skipConfirmation=0;next=Promise.resolve();constructor(){this.transport=new Dt;const _=(0,Re.v)(()=>this.transport.sendCommand("init")).pipe((0,Oe.M)(()=>(0,x.Vv)(Q,"device init")),(0,Xe.t)({refCount:!0,bufferSize:1})),H=(0,ve.x)(_.pipe((0,we.n)(()=>this.transport.getCurrentDevice())),this.transport.events$.pipe((0,Z.p)(y=>"attached"===y.type||"detached"===y.type),(0,Oe.M)(y=>(0,x.Vv)(Q,"connection event",y)))).pipe((0,Xe.t)({refCount:!0,bufferSize:1}));this.myJabra$=H.pipe((0,Z.p)(y=>"attached"===y.type),(0,ut.w)(5e3),(0,At.s)(1)),this.diagnostics$=H.pipe((0,_t.T)(y=>"attached"===y.type?new _e.j({alertClass:"success",text:y.deviceName}):_e.j.error("Headset not available")),(0,mt.W)(y=>(0,z.of)(_e.j.error((0,en.PE)(y))))),this.headsetEvents$=this.transport.events$.pipe((0,Z.p)(Et),(0,we.n)(y=>{if((0,x.Vv)(Q,`Received Signal: ${X.c[y.signal]}`,y),y.signal===X.c.HOOK_SWITCH){if(this.skipConfirmation>0&&Date.now()-this.skipConfirmation<1e3)return this.skipConfirmation=0,j.w;if(y.value){const re=this.callStateHelper.ringingCalls.values().next()?.value;if(void 0!==re)return(0,z.of)({CallId:re,Action:R.T.AcceptCall})}else if(this.callStateHelper.activeCall!==ge.o.NO_CALL)return(0,z.of)({CallId:this.callStateHelper.activeCall,Action:R.T.TerminateCall})}else if(y.signal===X.c.PHONE_MUTE){if(this.callStateHelper.activeCall!==ge.o.NO_CALL)return(0,z.of)({CallId:this.callStateHelper.activeCall,Action:R.T.ToggleMuteCall})}else if(y.signal===X.c.REJECT_CALL){const re=this.callStateHelper.ringingCalls.values().next()?.value;
1if(void 0!==re)return(0,z.of)({CallId:re,Action:R.T.RejectCall})}else if(y.signal===X.c.FLASH)return(0,z.of)({CallId:-1,Action:R.T.FlashCall});return j.w}),(0,Oe.M)(y=>(0,x.Vv)(Q,`Headset Command Fired ${R.T[y.Action]} with CallId ${y.CallId}`)))}diagnostics$;headsetEvents$;sendCommand(_){return(0,ve.x)(this.myJabra$,..._.map(H=>(0,Re.v)(()=>("offhook"===H&&(this.skipConfirmation=Date.now()),("release"===H?(0,Ue.O)(800).pipe((0,we.n)(()=>(0,m.H)(this.transport.sendCommand(H)))):(0,m.H)(this.transport.sendCommand(H))).pipe((0,Oe.M)(()=>(0,x.Vv)(Q,`Send command "${H}" To HID device`)),(0,_t.T)(re=>{if("lock"===H&&!re)throw new Error("Can't acquire call lock")})))))).pipe((0,He.H)())}holdCall(_){(0,x.Vv)(Q,`pbx call command: holdCall (${_})`),this.nextCommand(()=>(this.callStateHelper.holdCalls.add(_),_!==this.callStateHelper.activeCall?j.w:(this.callStateHelper.activeCall=ge.o.NO_CALL,this.sendCommand(["onhook","hold"]))))}resumeCall(_){(0,x.Vv)(Q,`pbx call command: resumeCall (${_})`),this.nextCommand(()=>(this.callStateHelper.holdCalls.delete(_),this.callStateHelper.activeCall=_,this.sendCommand(["offhook","resume","unmute"])))}incomingCall(_){(0,x.Vv)(Q,`pbx call command: incomingCall (${_})`),this.nextCommand(()=>{const H=this.callStateHelper.hasNoCalls;return this.callStateHelper.totalCalls.add(_),this.callStateHelper.ringingCalls.add(_),this.sendCommand([...H?["lock"]:[],"ring"])})}incomingCallAccepted(_){(0,x.Vv)(Q,`pbx call command: incomingCallAccepted (${_})`),this.nextCommand(()=>(this.callStateHelper.activeCall=_,this.callStateHelper.ringingCalls.delete(_),this.sendCommand(["offhook","unmute",...this.callStateHelper.hasRingingCalls?[]:["unring"]])))}mute(_,H){(0,x.Vv)(Q,`pbx call command mute (${_}) with value ${H}`),this.nextCommand(()=>this.sendCommand([H?"mute":"unmute"]))}outgoingCall(_){(0,x.Vv)(Q,`pbx call command: outgoingCall (${_})`),this.nextCommand(()=>{const H=this.callStateHelper.hasNoCalls;return this.callStateHelper.totalCalls.add(_),this.callStateHelper.activeCall=_,this.sendCommand([...H?["lock"]:[],"offhook","unmute"])})}outgoingCallAccepted(_){(0,x.Vv)(Q,`pbx call command: outgoingCallAccepted (${_})`)}terminateCall(_){(0,x.Vv)(Q,`pbx call command: terminateCall (${_})`);const H=this.callStateHelper.holdCalls.has(_);this.nextCommand(()=>{this.callStateHelper.ringingCalls.delete(_),this.callStateHelper.holdCalls.delete(_),this.callStateHelper.totalCalls.delete(_),this.callStateHelper.activeCall===_&&(this.callStateHelper.activeCall=ge.o.NO_CALL);const re=this.callStateHelper.hasNoCalls||this.callStateHelper.activeCall===ge.o.NO_CALL||this.callStateHelper.callCount===this.callStateHelper.holdCalls.size;return(0,ve.x)(...H?[this.sendCommand(["offhook","resume"]).pipe((0,Je.c)(1e3))]:[j.w],this.sendCommand([...this.callStateHelper.hasRingingCalls?[]:["unring"],...re?["onhook"]:[],...this.callStateHelper.hasHoldCalls?["hold"]:[],...this.callStateHelper.hasNoCalls?["release"]:[]]))})}nextCommand(_){this.next=this.next.then(()=>new Promise(H=>{_().subscribe({error:y=>{(0,x.Vg)(Q,y),H()},complete:H})}))}connectDevice(){(0,X.w)()}}},67018(Dn,Ze,S){S.d(Ze,{H:()=>R});var Re=S(9350),ve=S(5964),z=S(55109),j=S(93774),Ue=S(39901),m=S(33669);function R(_e,Oe){const Xe=arguments.length>=2;return we=>we.pipe(_e?(0,ve.p)((Z,ut)=>_e(Z,ut,we)):m.D,(0,z.o)(1),Xe?(0,Ue.U)(Oe):(0,j.v)(()=>new Re.G))}},6488(Dn,Ze,S){S.d(Ze,{C:()=>ta,E:()=>L,I:()=>En,J:()=>D,L:()=>b,S:()=>at,T:()=>Ut,U:()=>wt,W:()=>is,_:()=>N,a:()=>rs,b:()=>Tt,c:()=>k,e:()=>Fe,i:()=>as,l:()=>M,w:()=>os});var Re=S(18530),ve=S(84412),z=S(85343),j=S(7673),Ue=S(54843),m=S(5964),R=S(96354),_e=S(57786),Oe=S(96697),Xe=S(23294),Z=S(56977),ut=S(35060),At=S(25558),_t=S(33669);function mt(){return(0,At.n)(_t.D)}var He=S(62087),Je=S(19724),X=S(99437),Rt=S(31943),Ce=S(97647),Xt=S(28793);function Jt(n,e){return(t,i)=>!n.call(e,t,i)}var x=S(58750),Dt=S(983),en=S(9350);var b,at,L,n,Be,Ut,Fe,Et=S(59030),Lt=S(18810),tn=S(1807),nn=S(71985),J=S(61594),_=S(44668),H=S(73028),y=S(65245),re=S(88141),et=S(53993),tt=S(70274),me=S(67018),It=S(39974),Ln=S(54360),oa=S(99172);function N(n,e,t,i){return new(t||(t=Promise))(function(r,l){function h(U){try{I(i.next(U))}catch(w){l(w)}}function f(U){try{I(i.throw(U))}catch(w){l(w)}}function I(U){var w;U.done?r(U.value):(w=U.value,w instanceof t?w:new t(function(Y){Y(w)})).then(h,f)}I((i=i.apply(n,e||[])).next())})}function A(n,e,t,i){if("a"===t&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?n!==e||!i:!e.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===t?i:"a"===t?i.call(n):i?i.value:e.get(n)}function oe(n,e,t,i,r){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?n!==e||!r:!e.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?r.call(n,t):r?r.value=t:e.set(n,t),t}S(77048),"function"==typeof SuppressedError&&SuppressedError,(n=b||(b={})).ERROR="error",n.WARNING="warning",n.INFO="info",function(n){n.CHROME_EXTENSION="chrome-extension",n.NATIVE_CONSOLE="native-console",n.JS_LIB="js-lib"}(at||(at={})),function(n){n.SDK_USAGE_ERROR="sdk-usage-error",n.FEATURE_NOT_SUPPORTED="feature-not-supported",n.DEVICE_ERROR="device-error",n.UNEXPECTED_ERROR="unexpected-error",n.INIT_ERROR="init-error"}(L||(L={}));
1class D extends Error{constructor(e,t){super(e),this.type=t,this.type=t,Object.setPrototypeOf(this,new.target.prototype)}}class Pt extends D{constructor(e,t="The device has been disconnected."){super(t,L.DEVICE_ERROR),this.indicatorError=e}}function M(n,e,t=b.ERROR,i=at.JS_LIB){e?e?.write({level:t,layer:i,message:n}):e||t!==b.ERROR||console.error(n)}function fa(n){return void 0!==n}class yn{constructor(e,t){this.compare=t,this.remove=new Re.B,this.itemRemoved=this.remove,this.items=new ve.t([]),this.itemList=this.items,this.itemAdded=e.pipe((0,R.T)(i=>(this.addItem(i),i)),(0,Ce.u)()),this.itemAdded.subscribe({next:i=>{i.onDisconnect.pipe((0,J.$)(),(0,R.T)(()=>this.removeItem(i.id)),(0,m.p)(fa)).subscribe(r=>this.remove.next(r))},error:z.l}),this.itemRemoved.subscribe({error:z.l})}getValue(){return[...this.items.getValue()]}addItem(e){if(this.items.getValue().filter(i=>i.id.equals(e.id)).length>0)throw new D("This item has already been added.",L.UNEXPECTED_ERROR);const t=this.items.getValue().concat([e]);t.sort(this.compare),this.items.next(t)}removeItem(e){const t=this.getValue(),i=t.findIndex(l=>l.id.equals(e));if(-1===i)throw new D("Item not found and therefore cannot be removed.",L.UNEXPECTED_ERROR);const r=t.splice(i,1)[0];return this.items.next(t),r}}class Oa{constructor(e,t){this.sdkVersion="4.4.4",this.logger=t,this.deviceConnectorVersion=e.pipe((0,J.$)(i=>"ready"===i.event),(0,R.T)(i=>i.version),(0,He.w)(1e4),(0,_.t)(1),(0,X.W)(()=>(0,j.of)(null))),this.chromeExtensionVersion=e.pipe((0,J.$)(i=>"chrome-extension-ready"===i.event),(0,R.T)(i=>i.version),(0,He.w)(1e3),(0,_.t)(1),(0,X.W)(()=>(0,j.of)(null))),M(`SDK Version: ${this.sdkVersion}`,t,b.INFO),M(typeof process<"u"?`Node.js Version: ${process.version} | Platform: ${process.platform}`:`Browser User Agent: ${window.navigator.userAgent}`,t,b.INFO)}start(){this.deviceConnectorVersion.subscribe(e=>M(`Device Connector Version: ${e}`,this.logger,b.INFO)),this.chromeExtensionVersion.subscribe(e=>M(`Chrome Extension Version: ${e}`,this.logger,b.INFO))}}class Ca{getVersion(){return A(this,Be,"f").sdkVersion}getChromehostVersion(){return(0,Ue._)(A(this,Be,"f").deviceConnectorVersion)}getChromeExtensionVersion(){return(0,Ue._)(A(this,Be,"f").chromeExtensionVersion)}getCurrentDevices(){return this.deviceDetector.deviceObservables.getValue()}start(){return N(this,void 0,void 0,function*(){this.running||(this.running=!0,A(this,Be,"f").start(),yield this._transport.connect())})}constructor(e,t,i){this.deviceDetector=e,this.running=!1,this.deviceAdded=this.deviceDetector.deviceObservables.itemAdded,this.deviceRemoved=this.deviceDetector.deviceObservables.itemRemoved,this.deviceList=this.deviceDetector.deviceObservables.itemList,Be.set(this,void 0),this._transport=t,this._readyEvents=t.consoleAppEvent.pipe((0,m.p)(r=>"ready"===r.event||"chrome-extension-ready"===r.event),(0,_.t)(2)),this._readyEvents.subscribe(),this._config=i,this.transportContext=t.context,oe(this,Be,new Oa(this._readyEvents,i?.logger),"f")}}Be=new WeakMap,function(n){n.NODE="node",n.CHROME_EXTENSION="chrome-extension",n.WEB_HID="web-hid"}(Ut||(Ut={})),function(n){n.CHROME_EXTENSION="chrome-extension",n.WEB_HID="web-hid",n.CHROME_EXTENSION_WITH_WEB_HID_FALLBACK="chrome-extension-with-web-hid-fallback"}(Fe||(Fe={}));const sn="Failed to dynamically import file. Please contact a Jabra representative as we would love to learn about scenarios where this could happen!";class va{constructor(e,t){this.log=e.consoleAppEvent.pipe((0,m.p)(i=>"log"===i.event),(0,R.T)(i=>({message:i.message,level:i.level,layer:i.layer}))),this.log.subscribe(i=>M(i.message,t,i.level,i.layer))}}const Na=[0,4129,8258,12387,16516,20645,24774,28903,33032,37161,41290,45419,49548,53677,57806,61935,4657,528,12915,8786,21173,17044,29431,25302,37689,33560,45947,41818,54205,50076,62463,58334,9314,13379,1056,5121,25830,29895,17572,21637,42346,46411,34088,38153,58862,62927,50604,54669,13907,9842,5649,1584,30423,26358,22165,18100,46939,42874,38681,34616,63455,59390,55197,51132,18628,22757,26758,30887,2112,6241,10242,14371,51660,55789,59790,63919,35144,39273,43274,47403,23285,19156,31415,27286,6769,2640,14899,10770,56317,52188,64447,60318,39801,35672,47931,43802,27814,31879,19684,23749,11298,15363,3168,7233,60846,64911,52716,56781,44330,48395,36200,40265,32407,28342,24277,20212,15891,11826,7761,3696,65439,61374,57309,53244,48923,44858,40793,36728,37256,33193,45514,41451,53516,49453,61774,57711,4224,161,12482,8419,20484,16421,28742,24679,33721,37784,41979,46042,49981,54044,58239,62302,689,4752,8947,13010,16949,21012,25207,29270,46570,42443,38312,34185,62830,58703,54572,50445,13538,9411,5280,1153,29798,25671,21540,17413,42971,47098,34713,38840,59231,63358,50973,55100,9939,14066,1681,5808,26199,30326,17941,22068,55628,51565,63758,59695,39368,35305,47498,43435,22596,18533,30726,26663,6336,2273,14466,10403,52093,56156,60223,64286,35833,39896,43963,48026,19061,23124,27191,31254,2801,
16864,10931,14994,64814,60687,56684,52557,48554,44427,40424,36297,31782,27655,23652,19525,15522,11395,7392,3265,61215,65342,53085,57212,44955,49082,36825,40952,28183,32310,20053,24180,11923,16050,3793,7920];class Aa{constructor(e){this.config=e,this.messageShown=!1}validateOrganizationKey(){var e;null!==(e=this.config)&&void 0!==e&&e.partnerKey?this.validateCrc(this.config.partnerKey)||this.logWarning("Invalid partner key."):this.logWarning("No partner key provided.")}validateAppId(){var e;null!==(e=this.config)&&void 0!==e&&e.appId?this.config.appId.length<3?this.logWarning("The appId should be minimum 3 characters.",!1):this.config.appId.length>100?this.logWarning("The appId should be no longer than 100 characters.",!1):/^[A-Za-z0-9\-_]+$/.test(this.config.appId)||this.logWarning("The appId is invalid. Should consist of letters, numbers, underscores or dashes",!1):this.logWarning("No app identifier provided.")}validateAppName(){var e;null!==(e=this.config)&&void 0!==e&&e.appName?/^[\x20-\x7F]*$/.test(this.config.appName)?this.config.appName.length>100?this.logWarning("The app name should be no longer than 100 characters.",!1):/^[A-Za-z0-9]+[A-Za-z0-9 &-]*$/g.test(this.config.appName)||this.logWarning("The appName is invalid. Name should consist of letters, numbers, spaces, ampersands and dashes. Name should not begin with spaces, ampersands or dashes.",!1):this.logWarning("The app name can only contain ASCII characters",!1):this.logWarning("No app name provided. Will fallback to use appId as name.",!1)}logWarning(e,t=!0){this.messageShown||(this.messageShown=!0,console.warn(t?`\n ${e}\n \n Add keys to the config object on initialization.\n E.g. await init({\n partnerKey: 'my-partner-key-from-developer-zone',\n appId: 'my-self-chosen-app-id',\n appName: 'My App Name'\n });\n\n Please obtain a valid partner key from https://developer.jabra.com.\n The key will ensure interoperability with other Jabra apps and services, and mitigate\n some co-existence issues with other softphone applications.\n\n The package will continue to work without the keys, but we do not recommend production release\n without it. Read more on the Developer Zone.\n \n `:e))}validateCrc(e){const[t,...i]=e.split("-");return t===function(l){let h,f,I=65535;for(f=0;f<l.length;f+=1){const U=l.charCodeAt(f);if(U>255)throw new RangeError;h=255&(U^I>>8),I=Na[h]^I<<8}return 65535&I}(i.join("-")).toString(16).padStart(4,"0")}}function rn(n){return n.toString(16).padStart(2,"0").toUpperCase()}class _a{constructor(e){this.transportId=e,this.isChild=!1}equals(e){return this.isChild===e.isChild&&this.transportId===e.transportId}toString(){return this.transportId}}class ma{constructor(e,t){this.parentId=e,this.gnpAddress=t,this.isChild=!0,this.transportId=e.transportId}equals(e){if(this.isChild===e.isChild){const t=e;return this.parentId.equals(t.parentId)&&this.gnpAddress===t.gnpAddress}return!1}toString(){return`0x${rn(this.gnpAddress)}@${this.transportId}`}}var G,gt;(function(n){n[n.INPUT=0]="INPUT",n[n.OUTPUT=1]="OUTPUT",n[n.FEATURE=2]="FEATURE"})(G||(G={})),function(n){n.ABSOLUTE="absolute",n.RELATIVE="relative"}(gt||(gt={}));var bn,on,Ne,De,kn,pe,Le,Mn={exports:{}},Da=(bn||(bn=1,(on=Mn).exports=function(){var n=function(o,d,c,p,O,C){for(var P=function(T,E){var g=T.toString(16);return g.length<2&&(g="0"+g),E&&(g=g.toUpperCase()),g},u=d;u<=c;u++)O[C++]=P(o[u],p);return O},e=function(o,d,c,p,O){for(var C=d;C<=c;C+=2)p[O++]=parseInt(o.substr(C,2),16)},t="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#".split(""),i=[0,68,0,84,83,82,72,0,75,76,70,65,0,63,62,69,0,1,2,3,4,5,6,7,8,9,64,0,73,66,74,71,81,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,77,0,78,67,0,0,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,79,0,80,0,0],h=function(o,d){var c={ibits:8,obits:8,obigendian:!0};for(var p in d)void 0!==c[p]&&(c[p]=d[p]);for(var O,C,P,u=[],T=0,E=0,g=0,v=o.length;
vendor: 8,866 bytes, line 1
10===E&&(C=o.charCodeAt(T++)),O=C>>c.ibits-(E+8)&255,E=(E+8)%c.ibits,c.obigendian?0===g?P=O<<c.obits-8:P|=O<<c.obits-8-g:0===g?P=O:P|=O<<g,!(0==(g=(g+8)%c.obits)&&(u.push(P),T>=v)););return u},f=function(o,d){var c={ibits:32,ibigendian:!0};for(var p in d)void 0!==c[p]&&(c[p]=d[p]);var O="",C=4294967295;c.ibits<32&&(C=(1<<c.ibits)-1);for(var P=o.length,u=0;u<P;u++)for(var T=o[u]&C,E=0;E<c.ibits;E+=8)O+=String.fromCharCode(c.ibigendian?T>>c.ibits-8-E&255:T>>E&255);return O},w=256,Y=function(o,d,c,p,O,C,P,u){return[u,P,C,O,p,c,d,o]},K=function(){return Y(0,0,0,0,0,0,0,0)},fe=function(o){return o.slice(0)},Ie=function(o){for(var d=K(),c=0;c<8;c++)d[c]=Math.floor(o%w),o/=w;return d},vt=function(o){for(var d=0,c=7;c>=0;c--)d*=w,d+=o[c];return Math.floor(d)},On=function(o,d){for(var c=0,p=0;p<8;p++)c+=o[p]+d[p],o[p]=Math.floor(c%w),c=Math.floor(c/w);return c},aa=function(o,d){for(var c=0;c<8;c++)o[c]&=d[c];return o},Qt=function(o,d){for(var c=0;c<8;c++)o[c]|=d[c];return o},Ge=function(o,d){for(var c=K(),p=Math.floor(d/8),O=0;O<p;O++){for(var C=6;C>=0;C--)c[C+1]=c[C];for(c[0]=o[0],C=0;C<7;C++)o[C]=o[C+1];o[C]=0}return vt(c)},ze=function(o,d){if(d>64)throw new Error("ui64_ror: invalid number of bits to shift");var c,p=new Array(16);for(c=0;c<8;c++)p[c+8]=o[c],p[c]=0;var O=Math.floor(d/8),C=d%8;for(c=O;c<15;c++)p[c-O]=255&(p[c]>>>C|p[c+1]<<8-C);for(p[15-O]=p[15]>>>C&255,c=15-O+1;c<16;c++)p[c]=0;for(c=0;c<8;c++)o[c]=p[c+8];return p.slice(0,8)},Cn=function(o,d){for(var c=0;c<8;c++)o[c]^=d[c]},te=function(o,d){var c=(65535&o)+(65535&d);return(o>>16)+(d>>16)+(c>>16)<<16|65535&c},qt=function(o,d){return o<<d&4294967295|o>>>32-d&4294967295},sa=function(o,d){function c(ne,ae,he,ue){return ne<20?ae&he|~ae&ue:ne<40?ae^he^ue:ne<60?ae&he|ae&ue|he&ue:ae^he^ue}function p(ne){return ne<20?1518500249:ne<40?1859775393:ne<60?-1894007588:-899497514}o[d>>5]|=128<<24-d%32,o[15+(d+64>>9<<4)]=d;for(var O=Array(80),C=1732584193,P=-271733879,u=-1732584194,T=271733878,E=-1009589776,g=0;g<o.length;g+=16){for(var v=C,Nn=P,An=u,_n=T,mn=E,F=0;F<80;F++){O[F]=F<16?o[g+F]:qt(O[F-3]^O[F-8]^O[F-14]^O[F-16],1);var ie=te(te(qt(C,5),c(F,P,u,T)),te(te(E,O[F]),p(F)));E=T,T=u,u=qt(P,30),P=C,C=ie}C=te(C,v),P=te(P,Nn),u=te(u,An),T=te(T,_n),E=te(E,mn)}return[C,P,u,T,E]},Nt=function(o){var d;this.mul=Y(88,81,244,45,76,149,127,45),this.inc=Y(20,5,123,126,247,103,129,79),this.mask=Y(0,0,0,0,255,255,255,255),this.state=fe(this.inc),this.next(),aa(this.state,this.mask),void 0!==o?o=Ie(o>>>0):"object"==typeof window&&"object"==typeof window.crypto&&"function"==typeof window.crypto.getRandomValues?(d=new Uint32Array(2),window.crypto.getRandomValues(d),o=Qt(Ie(d[0]>>>0),ze(Ie(d[1]>>>0),32))):"object"==typeof globalThis&&"object"==typeof globalThis.crypto&&"function"==typeof globalThis.crypto.getRandomValues?(d=new Uint32Array(2),globalThis.crypto.getRandomValues(d),o=Qt(Ie(d[0]>>>0),ze(Ie(d[1]>>>0),32))):(o=Ie(4294967295*Math.random()>>>0),Qt(o,ze(Ie((new Date).getTime()),32))),Qt(this.state,o),this.next()};Nt.prototype.next=function(){var o=fe(this.state);(function(o,d){var c,p,O,C=new Array(16);for(c=0;c<16;c++)C[c]=0;for(c=0;c<8;c++){for(O=0,p=0;p<8;p++)C[c+p]=(O+=o[c]*d[p]+C[c+p])%w,O/=w;for(;p<16-c;p++)C[c+p]=(O+=C[c+p])%w,O/=w}for(c=0;c<8;c++)o[c]=C[c];C.slice(8,8)})(this.state,this.mul),On(this.state,this.inc);var d=fe(o);ze(d,18),Cn(d,o),ze(d,27);var c=fe(o);ze(c,59),aa(d,this.mask);var p=vt(c),O=fe(d);return function(o,d){if(d>64)throw new Error("ui64_rol: invalid number of bits to shift");var c,p=new Array(16);for(c=0;c<8;c++)p[c+8]=0,p[c]=o[c];var O=Math.floor(d/8),C=d%8;for(c=7-O;c>0;c--)p[c+O]=255&(p[c]<<C|p[c-1]>>>8-C);for(p[0+O]=p[0]<<C&255,c=0+O-1;c>=0;c--)p[c]=0;for(c=0;c<8;c++)o[c]=p[c];p.slice(8,8)}(O,32-p),ze(d,p),Cn(d,O),vt(d)},Nt.prototype.reseed=function(o){if("string"!=typeof o)throw new Error("UUID: PCG: seed: invalid argument (string expected)");for(var d=sa(h(o,{ibits:8,obits:32,obigendian:!0}),8*o.length),c=0;c<d.length;c++)Cn(Sn.state,Ie(d[c]>>>0))};var Sn=new Nt;Nt.reseed=function(o){Sn.reseed(o)};var vn=function(o,d){for(var c=[],p=0;p<o;p++)c[p]=Sn.next()%d;return c},ia=0,Zt=0,$=function(){if(1===arguments.length&&"string"==typeof arguments[0])this.parse.apply(this,arguments);else if(arguments.length>=1&&"number"==typeof arguments[0])this.make.apply(this,arguments);else{if(arguments.length>=1)throw new Error("UUID: constructor: invalid arguments");for(var o=0;o<16;o++)this[o]=0}};return($.prototype=typeof Uint8Array<"u"?new Uint8Array(16):Buffer?Buffer.alloc(16):new Array(16)).constructor=$,$.prototype.make=function(o){var d,c=this;if(1===o){var p=(new Date).getTime();p!==ia?Zt=0:Zt++,ia=p;var O,C=Ie(p);(function(o){for(var c=0,p=0;p<8;p++)c+=1e4*o[p],o[p]=Math.floor(c%w),c=Math.floor(c/w)})(C),On(C,Y(1,178,29,210,19,129,64,0)),Zt>0&&On(C,Ie(Zt)),O=Ge(C,8),c[3]=255&O,O=Ge(C,8),c[2]=255&O,O=Ge(C,8),c[1]=255&O,O=Ge(C,8),c[0]=255&O,O=Ge(C,8),c[5]=255&O,O=Ge(C,8),c[4]=255&O,O=Ge(C,8),c[7]=255&O,O=Ge(C,8),c[6]=15&O;var P=vn(2,255);c[8]=P[0],c[9]=P[1];var u=vn(6,255);for(u[0]|=1,u[0]|=2,d=0;d<6;d++)c[10+d]=u[d]}else if(4===o){var T=vn(16,255);for(d=0;d<16;d++)this[d]=T[d]}else{if(3!==o&&5!==o)throw new Error("UUID: make: invalid version");var E="",g="object"==typeof arguments[1]&&arguments[1]instanceof $?arguments[1]:(new $).parse(arguments[1]);for(d=0;d<16;d++)E+=String.fromCharCode(g[d]);E+=arguments[2];var v=3===o?function(o){return f(function(o,d){function c(F,ie,ne,ae,he,ue){return te(qt(te(te(ie,F),te(ae,ue)),he),ne)}function p(F,ie,ne,ae,he,ue,Qe){return c(ie&ne|~ie&ae,F,ie,he,ue,Qe)}function O(F,ie,ne,ae,he,ue,Qe){return c(ie&ae|ne&~ae,F,ie,he,ue,Qe)}function C(F,ie,ne,ae,he,ue,Qe){return c(ie^ne^ae,F,ie,he,ue,Qe)}function P(F,ie,ne,ae,he,ue,Qe){return c(ne^(ie|~ae),F,ie,he,ue,Qe)}o[d>>5]|=128<<d%32,o[14+(d+64>>>9<<4)]=d;for(var u=1732584193,T=-271733879,E=-1732584194,g=271733878,v=0;v<o.length;v+=16){var Nn=u,An=T,_n=E,mn=g;u=p(u,T,E,g,o[v+0],7,-680876936),g=p(g,u,T,E,o[v+1],12,-389564586),E=p(E,g,u,T,o[v+2],17,606105819),T=p(T,E,g,u,o[v+3],22,-1044525330),u=p(u,T,E,g,o[v+4],7,-176418897),g=p(g,u,T,E,o[v+5],12,1200080426),E=p(E,g,u,T,o[v+6],17,-1473231341),T=p(T,E,g,u,o[v+7],22,-45705983),u=p(u,T,E,g,o[v+8],7,1770035416),g=p(g,u,T,E,o[v+9],12,-1958414417),E=p(E,g,u,T,o[v+10],17,-42063),T=p(T,E,g,u,o[v+11],22,-1990404162),u=p(u,T,E,g,o[v+12],7,1804603682),g=p(g,u,T,E,o[v+13],12,-40341101),E=p(E,g,u,T,o[v+14],17,-1502002290),u=O(u,T=p(T,E,g,u,o[v+15],22,1236535329),E,g,o[v+1],5,-165796510),g=O(g,u,T,E,o[v+6],9,-1069501632),E=O(E,g,u,T,o[v+11],14,643717713),T=O(T,E,g,u,o[v+0],20,-373897302),u=O(u,T,E,g,o[v+5],5,-701558691),g=O(g,u,T,E,o[v+10],9,38016083),E=O(E,g,u,T,o[v+15],14,-660478335),T=O(T,E,g,u,o[v+4],20,-405537848),u=O(u,T,E,g,o[v+9],5,568446438),g=O(g,u,T,E,o[v+14],9,-1019803690),E=O(E,g,u,T,o[v+3],14,-187363961),T=O(T,E,g,u,o[v+8],20,1163531501),u=O(u,T,E,g,o[v+13],5,-1444681467),g=O(g,u,T,E,o[v+2],9,-51403784),E=O(E,g,u,T,o[v+7],14,1735328473),u=C(u,T=O(T,E,g,u,o[v+12],20,-1926607734),E,g,o[v+5],4,-378558),g=C(g,u,T,E,o[v+8],11,-2022574463),E=C(E,g,u,T,o[v+11],16,1839030562),T=C(T,E,g,u,o[v+14],23,-35309556),u=C(u,T,E,g,o[v+1],4,-1530992060),g=C(g,u,T,E,o[v+4],11,1272893353),E=C(E,g,u,T,o[v+7],16,-155497632),T=C(T,E,g,u,o[v+10],23,-1094730640),u=C(u,T,E,g,o[v+13],4,681279174),g=C(g,u,T,E,o[v+0],11,-358537222),E=C(E,g,u,T,o[v+3],16,-722521979),T=C(T,E,g,u,o[v+6],23,76029189),u=C(u,T,E,g,o[v+9],4,-640364487),g=C(g,u,T,E,o[v+12],11,-421815835),E=C(E,g,u,T,o[v+15],16,530742520),u=P(u,T=C(T,E,g,u,o[v+2],23,-995338651),E,g,o[v+0],6,-198630844),g=P(g,u,T,E,o[v+7],10,1126891415),E=P(E,g,u,T,o[v+14],15,-1416354905),T=P(T,E,g,u,o[v+5],21,-57434055),u=P(u,T,E,g,o[v+12],6,1700485571),g=P(g,u,T,E,o[v+3],10,-1894986606),E=P(E,g,u,T,o[v+10],15,-1051523),T=P(T,E,g,u,o[v+1],21,-2054922799),u=P(u,T,E,g,o[v+8],6,1873313359),g=P(g,u,T,E,o[v+15],10,-30611744),E=P(E,g,u,T,o[v+6],15,-1560198380),T=P(T,E,g,u,o[v+13],21,1309151649),u=P(u,T,E,g,o[v+4],6,-145523070),g=P(g,u,T,E,o[v+11],10,-1120210379),E=P(E,g,u,T,o[v+2],15,718787259),T=P(T,E,g,u,o[v+9],21,-343485551),u=te(u,Nn),T=te(T,An),E=te(E,_n),g=te(g,mn)}return[u,T,E,g]}(h(o,{ibits:8,obits:32,obigendian:!1}),8*o.length),{ibits:32,ibigendian:!1})}(E):function(o){return f(sa(h(o,{ibits:8,obits:32,obigendian:!0}),8*o.length),{ibits:32,ibigendian:!0})}(E);for(d=0;d<16;d++)c[d]=v.charCodeAt(d)}return c[6]&=15,c[6]|=o<<4,c[8]&=63,c[8]|=128,c},$.prototype.format=function(o){var d,c;return"z85"===o?d=function(o){for(var c="",p=0,O=0;p<16;)if(O=256*O+o[p++],p%4==0){for(var C=52200625;C>=1;){var P=Math.floor(O/C)%85;c+=t[P],C/=85}O=0}return c}(this):"b16"===o?(c=Array(32),n(this,0,15,!0,c,0),d=c.join("")):void 0!==o&&"std"!==o||(c=new Array(36),n(this,0,3,!1,c,0),c[8]="-",n(this,4,5,!1,c,9),c[13]="-",n(this,6,7,!1,c,14),c[18]="-",n(this,8,9,!1,c,19),c[23]="-",n(this,10,15,!1,c,24),d=c.join("")),d}
1,$.prototype.toString=function(o){return this.format(o)},$.prototype.toJSON=function(){return this.format("std")},$.prototype.parse=function(o,d){if("string"!=typeof o)throw new Error("UUID: parse: invalid argument (type string expected)");if("z85"===d)!function(o,d){var c=o.length;if(c%5!=0)throw new Error("z85_decode: invalid input length (multiple of 5 expected)");void 0===d&&(d=new Array(4*c/5));for(var p=0,O=0,C=0;p<c;){var P=o.charCodeAt(p++)-32;if(P<0||P>=i.length)break;if(C=85*C+i[P],p%5==0){for(var u=16777216;u>=1;)d[O++]=Math.trunc(C/u%256),u/=256;C=0}}}(o,this);else if("b16"===d)e(o,0,35,this,0);else if(void 0===d||"std"===d){var c={nil:"00000000-0000-0000-0000-000000000000","ns:DNS":"6ba7b810-9dad-11d1-80b4-00c04fd430c8","ns:URL":"6ba7b811-9dad-11d1-80b4-00c04fd430c8","ns:OID":"6ba7b812-9dad-11d1-80b4-00c04fd430c8","ns:X500":"6ba7b814-9dad-11d1-80b4-00c04fd430c8"};if(void 0!==c[o])o=c[o];else if(!o.match(/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/))throw new Error('UUID: parse: invalid string representation (expected "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")');e(o,0,7,this,0),e(o,9,12,this,4),e(o,14,17,this,6),e(o,19,22,this,8),e(o,24,35,this,10)}return this},$.prototype.export=function(){for(var o=Array(16),d=0;d<16;d++)o[d]=this[d];return o},$.prototype.import=function(o){if(!("object"==typeof o&&o instanceof Array))throw new Error("UUID: import: invalid argument (type Array expected)");if(16!==o.length)throw new Error("UUID: import: invalid argument (Array of length 16 expected)");for(var d=0;d<16;d++){if("number"!=typeof o[d])throw new Error("UUID: import: invalid array element #"+d+" (type Number expected)");if(!isFinite(o[d])||Math.floor(o[d])!==o[d])throw new Error("UUID: import: invalid array element #"+d+" (Number with integer value expected)");if(!(o[d]>=0&&o[d]<=255))throw new Error("UUID: import: invalid array element #"+d+" (Number with integer value in range 0...255 expected)");this[d]=o[d]}return this},$.prototype.compare=function(o){if("object"!=typeof o)throw new Error("UUID: compare: invalid argument (type UUID expected)");if(!(o instanceof $))throw new Error("UUID: compare: invalid argument (type UUID expected)");for(var d=0;d<16;d++){if(this[d]<o[d])return-1;if(this[d]>o[d])return 1}return 0},$.prototype.equal=function(o){return 0===this.compare(o)},$.prototype.fold=function(o){if(void 0===o)throw new Error("UUID: fold: invalid argument (number of fold operations expected)");if(o<1||o>4)throw new Error("UUID: fold: invalid argument (1-4 fold operations expected)");for(var d=16/Math.pow(2,o),c=new Array(d),p=0;p<d;p++){for(var O=0,C=0;p+C<16;C+=d)O^=this[p+C];c[p]=O}return c},$.PCG=Nt,$}(),on.exports.default=on.exports),Mn.exports),wt=function Ra(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}(Da);class Gn{constructor(e){this.id=e}equals(e){return this.id===e.id}startsWith(e){return this.id.startsWith(e.id)}toString(){return this.id}}function Ht(n,e,t){const i=n.toString(16).padStart(4,"0"),r=e.toString(16).padStart(4,"0");return new Gn(`${i}:${r}:${t}`)}class cn{constructor(e,t,i,r){this.id=e,this.usagePage=t,this.usage=i,this.value=r}isArray(){return Array.isArray(this.value)}static deserialize(e,t){return new cn(new Gn(e),t.usagePage,t.usage,t.value)}}(function(n){n[n.GN_PROTOCOL=65280]="GN_PROTOCOL",n[n.PUBLIC_GNP=65281]="PUBLIC_GNP"})(Ne||(Ne={})),function(n){n[n.DATA=1]="DATA"}(De||(De={}));class La{constructor(e,t,i,r){this.descriptor=t,this.transport=i,this.logger=r,this.transportId=e.transportId,this.input=i.consoleAppEvent.pipe((0,m.p)(l=>l.id===this.transportId&&"hid-input"===l.event),(0,R.T)(l=>cn.deserialize(l.id,l)),(0,m.p)(l=>this.reportShouldBeEmitted(l)))}reportShouldBeEmitted(e){const t=this.findDescriptor(e.usagePage,e.usage,G.INPUT);return void 0===t?(M(`Hid Channel: Dropping report with unknown usage: ${rn(e.usagePage)}.${rn(e.usage)}`,this.logger,b.WARNING),!1):this.isChangedRelativeSignal(e,t)||this.isChangedAbsoluteSignal(e,t)||this.isGnpPacket(e)}isChangedRelativeSignal(e,t){return"relative"===t.valueType&&1===e.value}isChangedAbsoluteSignal(e,t){return"absolute"===t.valueType}isGnpPacket(e){return e.usagePage===Ne.GN_PROTOCOL||e.usagePage===Ne.PUBLIC_GNP}output(e,t,i){return this.transport.writeAction({action:"hid-output",id:this.transportId,usagePage:e,usage:t,value:i})}getFeatureReport(e,t){const i=new wt(4).toString();return this.transport.writeAction({action:"request-hid-feature",id:this.transportId,token:i,usagePage:e,usage:t}
1),this.transport.consoleAppEvent.pipe((0,J.$)(l=>"response-hid-feature"===l.event&&l.token===i),(0,R.T)(l=>l.value))}setFeatureReport(e,t,i){this.transport.writeAction({action:"set-hid-feature",id:this.transportId,usagePage:e,usage:t,value:i})}findDescriptor(e,t,i){return this.descriptor.find(r=>r.usagePage===e&&r.usage===t&&r.reportType===i)}}(function(n){n.NO_TRACKING="no-tracking",n.TRACK_ERRORS="track-errors",n.TRACK_USAGE="track-usage",n.TRACK_ALL="track-all"})(kn||(kn={})),function(n){n[n.BLUETOOTH=0]="BLUETOOTH",n[n.INDIRECT=1]="INDIRECT",n[n.USB=2]="USB"}(pe||(pe={})),function(n){n[n.BASE=0]="BASE",n[n.HEADSET=1]="HEADSET",n[n.DESKSTAND=2]="DESKSTAND",n[n.OTHER=3]="OTHER",n[n.DONGLE=4]="DONGLE",n[n.PC=5]="PC",n[n.EHS=6]="EHS",n[n.USB=7]="USB",n[n.SPEAKER_PHONE=8]="SPEAKER_PHONE",n[n.INDICATOR=9]="INDICATOR",n[n.MOBILE=10]="MOBILE",n[n.NONE=11]="NONE",n[n.LOCAL=12]="LOCAL",n[n.DISPLAY=13]="DISPLAY",n[n.HS_CRADLE=14]="HS_CRADLE",n[n.HS_CRADLE2=15]="HS_CRADLE2",n[n.MOBILE_IAP=16]="MOBILE_IAP",n[n.CRADLE=17]="CRADLE",n[n.VIDEO=18]="VIDEO",n[n.NOT_GN=252]="NOT_GN",n[n.ANY_GN=253]="ANY_GN",n[n.NOT_INIT=254]="NOT_INIT",n[n.ANY=255]="ANY"}(Le||(Le={}));class yt{constructor(e,t,i,r,l,h){this.id=e,this.type=t,this.channels=i,this.hidChannel=r,this.onDisconnect=l,this.parentConnectionId=h,this.onDisconnect.subscribe({error:z.l})}hasChannel(e){return this.channels.hasChannel(e)}getChannel(e){return this.channels.getChannel(e)}tryGetChannel(e){return this.channels.tryGetChannel(e)}static createConnection(e,t,i,r,l,h){return new yt(e,t,i,r,l,h)}}class Bn{constructor(){this.channels=new Map}add(e){this.channels.set(e.type,e)}hasChannel(e){return null!=this.tryGetChannel(e)}getChannel(e){const t=this.tryGetChannel(e);if(t)return t;throw new D(`Unsupported communication channel type. This connection does not support ${e} channels`,L.SDK_USAGE_ERROR)}tryGetChannel(e){return this.channels.get(e)}}class a{constructor(e,t){this.id=e,this.name=t}static get(e){const t=Object.values(a).filter(i=>i instanceof a&&i.id===e);return 0===t.length?new a(e,e.toString(16).padStart(2,"0").toUpperCase()):t[0]}equals(e){return this.id===e.id}}a.ident=new a(2,"IDENT"),a.file=new a(3,"FILE"),a.dfu=new a(7,"DFU"),a.device=new a(13,"DEVICE"),a.fwu=new a(15,"FWU"),a.status=new a(18,"STATUS"),a.config=new a(19,"CONFIG"),a.hsu=new a(21,"HSU"),a.mmi=new a(26,"MMI"),a.log=new a(35,"LOG"),a.remoteMmi=new a(36,"REMOTE_MMI"),a.msteams=new a(37,"MSTEAMS"),a.video=new a(38,"VIDEO"),a.echo=new a(252,"ECHO"),a.nack=new a(254,"NACK"),a.ack=new a(255,"ACK");class s{constructor(e,t,i){this.id=t,this.name=i,this.command=e}static createInstance(e,t,i){const r=new s(e,t,i);s.instances.has(e.id)||s.instances.set(e.id,new Map);const l=s.instances.get(e.id);return l.has(t)||l.set(t,r),r}static get(e,t){var i;return(null===(i=s.instances.get(e))||void 0===i?void 0:i.get(t))??new s(a.get(e),t,t.toString(16).padStart(2,"0").toUpperCase())}static empty(e){return this.get(e,s.emptyId)}equals(e){return this.id===e.id&&this.command.equals(e.command)}isEmpty(){return this.id===s.emptyId}toString(){return`${this.command.name}.${this.name}`}}s.emptyId=-1,s.instances=new Map,s.ident={deviceName:s.createInstance(a.ident,0,"NAME"),id:s.createInstance(a.ident,1,"ID"),type:s.createInstance(a.ident,2,"TYPE"),version:s.createInstance(a.ident,3,"VERSION"),conHeadsetName:s.createInstance(a.ident,4,"CON_HEADSET_NAME"),conHeadsetAddr:s.createInstance(a.ident,5,"CON_HEADSET_ADDR"),languagePackVersion:s.createInstance(a.ident,6,"LANGUAGE_PACK_VERSION"),languagePackRegion:s.createInstance(a.ident,7,"LANGUAGE_PACK_REGION"),availableLanguages:s.createInstance(a.ident,8,"AVAILABLE_LANGUAGES"),graphicsVersion:s.createInstance(a.ident,9,"GRAPHICS_VERSION"),availableEhooks:s.createInstance(a.ident,11,"AVAILABLE_EHOOKS"),remoteName:s.createInstance(a.ident,12,"REMOTE_NAME"),callManagerVersion:s.createInstance(a.ident,13,"CALL_MANAGER_VERSION"),version1:s.createInstance(a.ident,14,"VERSION1"),autoEhook:s.createInstance(a.ident,15,"AUTO_EHOOK"),availableSoftphones:s.createInstance(a.ident,16,"AVAILABLE_SOFTPHONES"),pid:s.createInstance(a.ident,17,"PID"),versionReq:s.createInstance(a.ident,18,"VERSION_REQ"),dfuPid:s.createInstance(a.ident,19,"DFU_PID"),fwuProtocol:s.createInstance(a.ident,20,"FWU_PROTOCOL"),audioName:s.createInstance(a.ident,21,"AUDIO_NAME"),buildInfo:s.createInstance(a.ident,22,"BUILD_INFO"),bluetoothName:s.createInstance(a.ident,23,"BLUETOOTH_NAME"),supportedHeadsetCount:s.createInstance(a.ident,24,"SUPPORTED_HEADSET_COUNT"),supportedHeadsetName:s.createInstance(a.ident,25,"SUPPORTED_HEADSET_NAME"),availableRingtones:s.
1createInstance(a.ident,26,"AVAILABLE_RINGTONES"),ringtone:s.createInstance(a.ident,27,"RINGTONE"),remoteNameUpdate:s.createInstance(a.ident,28,"REMOTE_NAME_UPDATE"),languageConfiguredAndUsed:s.createInstance(a.ident,29,"LANGUAGE_CONFIGURED_AND_USED"),attachedHpEhook:s.createInstance(a.ident,30,"ATTACHED_HP_EHOOK"),autoPermutation:s.createInstance(a.ident,31,"AUTO_PERMUTATION"),fwuVersion:s.createInstance(a.ident,32,"FWU_VERSION"),tunesPackVersion:s.createInstance(a.ident,33,"TUNES_PACK_VERSION"),tunesPackRegion:s.createInstance(a.ident,34,"TUNES_PACK_REGION"),availableTunesLanguages:s.createInstance(a.ident,35,"AVAILABLE_TUNES_LANGUAGES"),tunesLanguageConfiguredAndUsed:s.createInstance(a.ident,36,"TUNES_LANGUAGE_CONFIGURED_AND_USED"),dectModel:s.createInstance(a.ident,37,"DECT_MODEL"),usbOs:s.createInstance(a.ident,38,"USB_OS"),primHsType:s.createInstance(a.ident,39,"PRIM_HS_TYPE"),extSn:s.createInstance(a.ident,40,"EXT_SN"),usbHostId:s.createInstance(a.ident,41,"USB_HOST_ID"),ethernetIpv4:s.createInstance(a.ident,42,"ETHERNET_IPV4"),wlanIpv4:s.createInstance(a.ident,43,"WLAN_IPV4"),skuId:s.createInstance(a.ident,44,"SKU_ID")},s.file={write:s.createInstance(a.file,0,"WRITE"),read:s.createInstance(a.file,1,"READ"),getSize:s.createInstance(a.file,2,"GET_SIZE"),getDir:s.createInstance(a.file,3,"GET_DIR"),delete:s.createInstance(a.file,4,"DELETE"),getDetailedDir:s.createInstance(a.file,5,"GET_DETAILED_DIR"),diagnostic:s.createInstance(a.file,6,"DIAGNOSTIC")},s.dfu={firmwareUpdateOverDfu:s.createInstance(a.dfu,0,"FIRMWARE_UPDATE_OVER_DFU"),firmwareUpdateOverHidAndSlaveUpdating:s.createInstance(a.dfu,1,"FIRMWARE_UPDATE_OVER_HID_AND_SLAVE_UPDATING"),attachedDevices:s.createInstance(a.dfu,2,"ATTACHED_DEVICES"),firmwareUpdateFromFile:s.createInstance(a.dfu,3,"FIRMWARE_UPDATE_FROM_FILE"),swapPartition:s.createInstance(a.dfu,4,"SWAP_PARTITION"),activePartition:s.createInstance(a.dfu,5,"ACTIVE_PARTITION")},s.device={attachReq:s.createInstance(a.device,0,"ATTACH_REQ"),attachEvent:s.createInstance(a.device,1,"ATTACH_EVENT"),detachEvent:s.createInstance(a.device,2,"DETACH_EVENT"),queryAddress:s.createInstance(a.device,3,"QUERY_ADDRESS"),connectReq:s.createInstance(a.device,4,"CONNECT_REQ"),disconnectReq:s.createInstance(a.device,5,"DISCONNECT_REQ"),getWbs:s.createInstance(a.device,6,"GET_WBS"),setWbs:s.createInstance(a.device,7,"SET_WBS"),getProfileSupport:s.createInstance(a.device,8,"GET_PROFILE_SUPPORT"),getActualProfile:s.createInstance(a.device,9,"GET_ACTUAL_PROFILE"),setActualProfile:s.createInstance(a.device,10,"SET_ACTUAL_PROFILE"),getSoftButton:s.createInstance(a.device,11,"GET_SOFT_BUTTON"),setSoftButton:s.createInstance(a.device,12,"SET_SOFT_BUTTON"),getSoftButtonFunctions:s.createInstance(a.device,13,"GET_SOFT_BUTTON_FUNCTIONS"),setPairingCommand:s.createInstance(a.device,14,"SET_PAIRING_COMMAND"),autoAudioDetection:s.createInstance(a.device,15,"AUTO_AUDIO_DETECTION"),getPairingStatus:s.createInstance(a.device,16,"GET_PAIRING_STATUS"),getConfigModePermission:s.createInstance(a.device,17,"GET_CONFIG_MODE_PERMISSION"),endConfigMode:s.createInstance(a.device,18,"END_CONFIG_MODE"),factoryDefault:s.createInstance(a.device,19,"FACTORY_DEFAULT"),featureMask:s.createInstance(a.device,20,"FEATURE_MASK"),prepareRestart:s.createInstance(a.device,22,"PREPARE_RESTART"),factoryDefaultNoBoot:s.createInstance(a.device,23,"FACTORY_DEFAULT_NO_BOOT"),getEchoSuppressor:s.createInstance(a.device,25,"GET_ECHO_SUPPRESSOR"),setEchoSuppressor:s.createInstance(a.device,26,"SET_ECHO_SUPPRESSOR"),checkDockedHeadset:s.createInstance(a.device,28,"CHECK_DOCKED_HEADSET"),playRingtone:s.createInstance(a.device,29,"PLAY_RINGTONE"),playTargetRingtone:s.createInstance(a.device,30,"PLAY_TARGET_RINGTONE"),playFeedbackTone:s.createInstance(a.device,31,"PLAY_FEEDBACK_TONE"),searchEnable:s.createInstance(a.device,32,"SEARCH_ENABLE"),searchDisable:s.createInstance(a.device,33,"SEARCH_DISABLE"),searchResult:s.createInstance(a.device,34,"SEARCH_RESULT"),searchComplete:s.createInstance(a.device,35,"SEARCH_COMPLETE"),connectAddr:s.createInstance(a.device,36,"CONNECT_ADDR"),disconnectAddr:s.createInstance(a.device,37,"DISCONNECT_ADDR"),status:s.createInstance(a.device,38,"STATUS"),getDbRecord:s.createInstance(a.device,40,"GET_DB_RECORD"),dbRecordChanged:s.createInstance(a.device,41,"DB_RECORD_CHANGED"),deleteDbRecord:s.createInstance(a.device,42,"DELETE_DB_RECORD"),searchResultName:s.createInstance(a.device,43,"SEARCH_RESULT_NAME"),pairAddr:s.createInstance(a.device,48,"PAIR_ADDR"),getDbName:s.createInstance(a.device,50,"GET_DB_NAME"),nfcTouched:s.createInstance(a.device,52,"NFC_TOUCHED"),cancelPairing:s.createInstance(a.device,53,"CANCEL_PAIRING"),getSidetoneCapability:s.createInstance(a.device,57,"GET_SIDETONE_CAPABILITY"),cancelUserAcceptance:s.createInstance(a.device,58,"CANCEL_USER_ACCEPTANCE"),searchResultMeetingRoom:s.createInstance(a.device,59,"SEARCH_RESULT_MEETING_ROOM"),gattDiscoverPrimaryResult:s.createInstance(a.device,61,"GATT_DISCOVER_PRIMARY_RESULT"),gattDiscoverCharResult:s.createInstance(a.device,63,"GATT_DISCOVER_CHAR_RESULT"),gattDiscoverCharDescResult:s.createInstance(a.device,65,"GATT_DISCOVER_CHAR_DESC_RESULT"),gattReadCharResult:s.createInstance(a.device,67,"GATT_READ_CHAR_RESULT"),gattWriteCharResult:s.createInstance(a.device,69,"GATT_WRITE_CHAR_RESULT"),gattData:s.createInstance(a.device,70,"GATT_DATA"),playTune:s.createInstance(a.device,71,"PLAY_TUNE"),chargePause:s.createInstance(a.device,75,"CHARGE_PAUSE"),events:s.createInstance(a.device,76,"EVENTS"),voiceAssistant:s.createInstance(a.device,77,"VOICE_ASSISTANT"),audioStreamStart:s.createInstance(a.device,78,"AUDIO_STREAM_START"),audioStreamStop:s.createInstance(a.device,79,"AUDIO_STREAM_STOP"),recordToMemory:s.createInstance(a.device,86,"RECORD_TO_MEMORY"),playTone:s.createInstance(a.device,87,"PLAY_TONE"),cancelPlayTone:s.createInstance(a.device,88,"CANCEL_PLAY_TONE"),playToneMode:s.createInstance(a.device,89,"PLAY_TONE_MODE"),symmetricCommand:s.createInstance(a.device,90,"SYMMETRIC_COMMAND"),symmetricInitConfiguration:s.createInstance(a.device,91,"SYMMETRIC_INIT_CONFIGURATION"),networkIp4Parameters:s.createInstance(a.device,94,"NETWORK_IP4_PARAMETERS"),performSealingTest:s.createInstance(a.device,95,"PERFORM_SEALING_TEST"),cancelSealingTest:s.createInstance(a.device,96,"CANCEL_SEALING_TEST"),sealingTestResult:s.createInstance(a.device,98,"SEALING_TEST_RESULT"),temperature:s.createInstance(a.device,99,"TEMPERATURE"),freeSpace:s.createInstance(a.device,100,"FREE_SPACE"),wlanScanning:s.createInstance(a.device,101,"WLAN_SCANNING"),certificateMakeRequest:s.createInstance(a.device,102,"CERTIFICATE_MAKE_REQUEST"),pairSecure:s.createInstance(a.device,103,"PAIR_SECURE"),pairSecureKey:s.
1createInstance(a.device,104,"PAIR_SECURE_KEY"),getFuotaModePermission:s.createInstance(a.device,105,"GET_FUOTA_MODE_PERMISSION"),endFuotaMode:s.createInstance(a.device,106,"END_FUOTA_MODE"),disconnected:s.createInstance(a.device,107,"DISCONNECTED"),clearPairing:s.createInstance(a.device,108,"CLEAR_PAIRING"),startPlayRingtone:s.createInstance(a.device,109,"START_PLAY_RINGTONE"),stopPlayRingtone:s.createInstance(a.device,110,"STOP_PLAY_RINGTONE"),startPlayRingtoneOrientation:s.createInstance(a.device,111,"START_PLAY_RINGTONE_ORIENTATION"),sleepModeTrigger:s.createInstance(a.device,113,"SLEEP_MODE_TRIGGER"),wlanConnectionInfo:s.createInstance(a.device,114,"WLAN_CONNECTION_INFO"),usbEnumerationControl:s.createInstance(a.device,115,"USB_ENUMERATION_CONTROL"),securityUnlockKey:s.createInstance(a.device,119,"SECURITY_UNLOCK_KEY")},s.fwu={deviceInfoReq:s.createInstance(a.fwu,0,"DEVICE_INFO_REQ"),deviceAreaReq:s.createInstance(a.fwu,1,"DEVICE_AREA_REQ"),sectorEraseReq:s.createInstance(a.fwu,2,"SECTOR_ERASE_REQ"),blockWriteReq:s.createInstance(a.fwu,3,"BLOCK_WRITE_REQ"),blockCrcReq:s.createInstance(a.fwu,4,"BLOCK_CRC_REQ"),modeReq:s.createInstance(a.fwu,5,"MODE_REQ"),bcStopReq:s.createInstance(a.fwu,6,"BC_STOP_REQ"),bcGoReq:s.createInstance(a.fwu,7,"BC_GO_REQ"),bcResetStopReq:s.createInstance(a.fwu,8,"BC_RESET_STOP_REQ"),bcResetGoReq:s.createInstance(a.fwu,9,"BC_RESET_GO_REQ"),bcStoppedReq:s.createInstance(a.fwu,10,"BC_STOPPED_REQ"),bcReadBlockReq:s.createInstance(a.fwu,11,"BC_READ_BLOCK_REQ"),bcWriteBlockReq:s.createInstance(a.fwu,12,"BC_WRITE_BLOCK_REQ"),bcReadBlockVerifyReq:s.createInstance(a.fwu,13,"BC_READ_BLOCK_VERIFY_REQ"),bcWriteBlockVerifyReq:s.createInstance(a.fwu,14,"BC_WRITE_BLOCK_VERIFY_REQ"),bcReadBlockSlowReq:s.createInstance(a.fwu,18,"BC_READ_BLOCK_SLOW_REQ"),bcWriteBlockSlowReq:s.createInstance(a.fwu,19,"BC_WRITE_BLOCK_SLOW_REQ"),bcReadBlockVerifySlowReq:s.createInstance(a.fwu,20,"BC_READ_BLOCK_VERIFY_SLOW_REQ"),bcWriteBlockVerifySlowReq:s.createInstance(a.fwu,21,"BC_WRITE_BLOCK_VERIFY_SLOW_REQ"),detachBusReq:s.createInstance(a.fwu,22,"DETACH_BUS_REQ"),bcOtaStart:s.createInstance(a.fwu,23,"BC_OTA_START"),bcOtaFlashEraseDone:s.createInstance(a.fwu,24,"BC_OTA_FLASH_ERASE_DONE"),bcOtaWriteCrc:s.createInstance(a.fwu,25,"BC_OTA_WRITE_CRC"),bcOtaWriteBlock:s.createInstance(a.fwu,26,"BC_OTA_WRITE_BLOCK"),bcOtaWriteBlockPreload:s.createInstance(a.fwu,27,"BC_OTA_WRITE_BLOCK_PRELOAD"),bcOtaVerifyStatus:s.createInstance(a.fwu,28,"BC_OTA_VERIFY_STATUS"),bcOtaDfuFromSqif:s.createInstance(a.fwu,29,"BC_OTA_DFU_FROM_SQIF"),bcOtaSoftwareVersion:s.createInstance(a.fwu,30,"BC_OTA_SOFTWARE_VERSION"),bcOtaDfuDownloadInProgress:s.createInstance(a.fwu,31,"BC_OTA_DFU_DOWNLOAD_IN_PROGRESS"),nfcUpdateInfoBtNameCmd:s.createInstance(a.fwu,40,"NFC_UPDATE_INFO_BT_NAME_CMD"),nfcUpdateInfoBtAddressCmd:s.createInstance(a.fwu,41,"NFC_UPDATE_INFO_BT_ADDRESS_CMD"),nfcUpdateTagCmd:s.createInstance(a.fwu,42,"NFC_UPDATE_TAG_CMD"),bcOtaSelectPartition:s.createInstance(a.fwu,45,"BC_OTA_SELECT_PARTITION"),firmwareUpgradeLock:s.createInstance(a.fwu,52,"FIRMWARE_UPGRADE_LOCK"),checkFuotaStartConditions:s.createInstance(a.fwu,53,"CHECK_FUOTA_START_CONDITIONS")},s.status={usbState:s.createInstance(a.status,0,"USB_STATE"),callerId:s.createInstance(a.status,1,"CALLER_ID"),hsBattery:s.createInstance(a.status,2,"HS_BATTERY"),hsUndocked:s.createInstance(a.status,3,"HS_UNDOCKED"),ehookMode:s.createInstance(a.status,4,"EHOOK_MODE"),hsDocked:s.createInstance(a.status,5,"HS_DOCKED"),autoOpenHardphone:s.createInstance(a.status,6,"AUTO_OPEN_HARDPHONE"),currentState:s.createInstance(a.status,7,"CURRENT_STATE"),busyState:s.createInstance(a.status,8,"BUSY_STATE"),hsPairing:s.createInstance(a.status,9,"HS_PAIRING"),hsCallStatus:s.createInstance(a.status,10,"HS_CALL_STATUS"),rtcTime:s.createInstance(a.status,11,"RTC_TIME"),rtcNotify:s.createInstance(a.status,12,"RTC_NOTIFY"),rtcCalib:s.createInstance(a.status,13,"RTC_CALIB"),hsLinking:s.createInstance(a.status,14,"HS_LINKING"),csBattery:s.createInstance(a.status,15,"CS_BATTERY"),dectDensity:s.createInstance(a.status,16,"DECT_DENSITY"),dectErrorCounters:s.
1createInstance(a.status,17,"DECT_ERROR_COUNTERS"),fwuState:s.createInstance(a.status,18,"FWU_STATE"),ancNoiseLevel:s.createInstance(a.status,19,"ANC_NOISE_LEVEL"),nmc:s.createInstance(a.status,20,"NMC"),sdk:s.createInstance(a.status,21,"SDK"),wearSensors:s.createInstance(a.status,22,"WEAR_SENSORS"),camera:s.createInstance(a.status,23,"CAMERA"),network:s.createInstance(a.status,25,"NETWORK"),wlanConnection:s.createInstance(a.status,27,"WLAN_CONNECTION"),gnBtScan:s.createInstance(a.status,28,"GN_BT_SCAN"),gnBtConnect:s.createInstance(a.status,29,"GN_BT_CONNECT"),gnBtGetDeviceStatus:s.createInstance(a.status,30,"GN_BT_GET_DEVICE_STATUS"),gnBtGetDeviceList:s.createInstance(a.status,31,"GN_BT_GET_DEVICE_LIST"),gnBtSwitchActiveDevice:s.createInstance(a.status,32,"GN_BT_SWITCH_ACTIVE_DEVICE"),gnBtGetPairedList:s.createInstance(a.status,33,"GN_BT_GET_PAIRED_LIST"),gnBtRemovePairedAddr:s.createInstance(a.status,34,"GN_BT_REMOVE_PAIRED_ADDR"),gnBtGetDeviceName:s.createInstance(a.status,35,"GN_BT_GET_DEVICE_NAME"),gnBtSetLinkType:s.createInstance(a.status,36,"GN_BT_SET_LINK_TYPE"),gnBtGetLinkType:s.createInstance(a.status,37,"GN_BT_GET_LINK_TYPE"),jabraplus:s.createInstance(a.status,38,"JABRAPLUS")},s.config={audioType:s.createInstance(a.config,0,"AUDIO_TYPE"),intellitoneLevel:s.createInstance(a.config,1,"INTELLITONE_LEVEL"),touchAudioFeedback:s.createInstance(a.config,2,"TOUCH_AUDIO_FEEDBACK"),ringerVolume:s.createInstance(a.config,3,"RINGER_VOLUME"),loginPassword:s.createInstance(a.config,4,"LOGIN_PASSWORD"),phonePresence:s.createInstance(a.config,5,"PHONE_PRESENCE"),voiceTags:s.createInstance(a.config,6,"VOICE_TAGS"),wizardScope:s.createInstance(a.config,7,"WIZARD_SCOPE"),currentLanguage:s.createInstance(a.config,8,"CURRENT_LANGUAGE"),displayDimmerDelay:s.createInstance(a.config,9,"DISPLAY_DIMMER_DELAY"),displayBacklightLevel:s.createInstance(a.config,10,"DISPLAY_BACKLIGHT_LEVEL"),ehookProtocol:s.createInstance(a.config,11,"EHOOK_PROTOCOL"),terminationSwitch:s.createInstance(a.config,12,"TERMINATION_SWITCH"),micGain:s.createInstance(a.config,13,"MIC_GAIN"),rfPower:s.createInstance(a.config,14,"RF_POWER"),panic:s.createInstance(a.config,16,"PANIC"),factoryDefault:s.createInstance(a.config,17,"FACTORY_DEFAULT"),currentRegion:s.createInstance(a.config,18,"CURRENT_REGION"),hsRinger:s.createInstance(a.config,19,"HS_RINGER"),soundMode:s.createInstance(a.config,21,"SOUND_MODE"),featureMask:s.createInstance(a.config,24,"FEATURE_MASK"),availableFeatures:s.createInstance(a.config,25,"AVAILABLE_FEATURES"),recordConversation:s.createInstance(a.config,26,"RECORD_CONVERSATION"),powersave:s.createInstance(a.config,27,"POWERSAVE"),jabraTune:s.createInstance(a.config,28,"JABRA_TUNE"),muteReminderInterval:s.createInstance(a.config,30,"MUTE_REMINDER_INTERVAL"),usbHidSettings:s.createInstance(a.config,32,"USB_HID_SETTINGS"),autoOpenHardphone:s.createInstance(a.config,33,"AUTO_OPEN_HARDPHONE"),preferredSoftphone:s.createInstance(a.config,34,"PREFERRED_SOFTPHONE"),lastVersion:s.createInstance(a.config,35,"LAST_VERSION"),autoOpenSoftphone:s.createInstance(a.config,36,"AUTO_OPEN_SOFTPHONE"),musicMode:s.createInstance(a.config,37,"MUSIC_MODE"),intellitoneSoundLevel:s.createInstance(a.config,38,"INTELLITONE_SOUND_LEVEL"),buttonFunction:s.createInstance(a.config,39,"BUTTON_FUNCTION"),emergencyNumber:s.createInstance(a.config,40,"EMERGENCY_NUMBER"),voiceMailNumber:s.createInstance(a.config,41,"VOICE_MAIL_NUMBER"),speedNumber:s.createInstance(a.config,42,"SPEED_NUMBER"),dontUse:s.createInstance(a.config,43,"DONT_USE"),exposureLogging:s.createInstance(a.config,45,"EXPOSURE_LOGGING"),incidentLogging:s.createInstance(a.config,46,"INCIDENT_LOGGING"),dontUse2:s.createInstance(a.config,47,"DONT_USE2"),infoFromBase:s.createInstance(a.config,48,"INFO_FROM_BASE"),spkGain:s.createInstance(a.config,49,"SPK_GAIN"),singleCallConf:s.createInstance(a.config,50,"SINGLE_CALL_CONF"),idlePowerSave:s.createInstance(a.config,51,"IDLE_POWER_SAVE"),time:s.createInstance(a.config,52,"TIME"),hsTouchSensor:s.createInstance(a.config,53,"HS_TOUCH_SENSOR"),ancGain:s.createInstance(a.config,55,"ANC_GAIN"),soundMode2:s.createInstance(a.config,56,"SOUND_MODE_2"),busylight:s.createInstance(a.config,57,"BUSYLIGHT"),hsVoicePrompts:s.createInstance(a.config,58,"HS_VOICE_PROMPTS"),hsMotionSensor:s.createInstance(a.config,59,"HS_MOTION_SENSOR"),autoRejectBgWaiting:s.createInstance(a.config,60,"AUTO_REJECT_BG_WAITING"),r
1ingtoneType:s.createInstance(a.config,61,"RINGTONE_TYPE"),ringOnSecondIncomingCall:s.createInstance(a.config,62,"RING_ON_SECOND_INCOMING_CALL"),buttonSounds:s.createInstance(a.config,63,"BUTTON_SOUNDS"),autoPairing:s.createInstance(a.config,64,"AUTO_PAIRING"),autoActivatedCallAction:s.createInstance(a.config,65,"AUTO_ACTIVATED_CALL_ACTION"),hsVoiceVariant:s.createInstance(a.config,67,"HS_VOICE_VARIANT"),whiteNoiseLevel:s.createInstance(a.config,68,"WHITE_NOISE_LEVEL"),acceptCallOnUndock:s.createInstance(a.config,69,"ACCEPT_CALL_ON_UNDOCK"),bridging:s.createInstance(a.config,71,"BRIDGING"),conference:s.createInstance(a.config,72,"CONFERENCE"),mobilePhoneDisable:s.createInstance(a.config,73,"MOBILE_PHONE_DISABLE"),ctrlBusylight:s.createInstance(a.config,74,"CTRL_BUSYLIGHT"),g616SoundLevel:s.createInstance(a.config,75,"G616_SOUND_LEVEL"),softphoneIntegration:s.createInstance(a.config,76,"SOFTPHONE_INTEGRATION"),otaPairing:s.createInstance(a.config,77,"OTA_PAIRING"),outOfRangeWhiteNoise:s.createInstance(a.config,78,"OUT_OF_RANGE_WHITE_NOISE"),usbDeviceType:s.createInstance(a.config,79,"USB_DEVICE_TYPE"),undockOpenAudioLink:s.createInstance(a.config,80,"UNDOCK_OPEN_AUDIO_LINK"),systemId:s.createInstance(a.config,81,"SYSTEM_ID"),ancLed:s.createInstance(a.config,82,"ANC_LED"),ancMonitorLed:s.createInstance(a.config,83,"ANC_MONITOR_LED"),audioStreaming:s.createInstance(a.config,84,"AUDIO_STREAMING"),hookFilter:s.createInstance(a.config,85,"HOOK_FILTER"),bluetoothName:s.createInstance(a.config,86,"BLUETOOTH_NAME"),vibra:s.createInstance(a.config,88,"VIBRA"),inEarDetect:s.createInstance(a.config,89,"IN_EAR_DETECT"),voiceDial:s.createInstance(a.config,90,"VOICE_DIAL"),assetTag:s.createInstance(a.config,91,"ASSET_TAG"),buttonSwapFunction:s.createInstance(a.config,92,"BUTTON_SWAP_FUNCTION"),ndavc:s.createInstance(a.config,93,"NDAVC"),publicMode:s.createInstance(a.config,94,"PUBLIC_MODE"),singleNumberReach:s.createInstance(a.config,96,"SINGLE_NUMBER_REACH"),displayDimmedBacklightLevel:s.createInstance(a.config,97,"DISPLAY_DIMMED_BACKLIGHT_LEVEL"),idleScreen:s.createInstance(a.config,98,"IDLE_SCREEN"),timeDisplayFormat:s.createInstance(a.config,101,"TIME_DISPLAY_FORMAT"),defaultTarget:s.createInstance(a.config,102,"DEFAULT_TARGET"),openLinkWhenUndocked:s.createInstance(a.config,103,"OPEN_LINK_WHEN_UNDOCKED"),sidetoneLevel:s.createInstance(a.config,104,"SIDETONE_LEVEL"),ecoMode:s.createInstance(a.config,105,"ECO_MODE"),dockingFeedback:s.createInstance(a.config,106,"DOCKING_FEEDBACK"),indicateAvailable:s.createInstance(a.config,107,"INDICATE_AVAILABLE"),lightIntensityGreen:s.createInstance(a.config,108,"LIGHT_INTENSITY_GREEN"),lightIntensityRed:s.createInstance(a.config,109,"LIGHT_INTENSITY_RED"),busylightHandleKnownAddrDb:s.createInstance(a.config,110,"BUSYLIGHT_HANDLE_KNOWN_ADDR_DB"),ignoreBackgroundWaitingCall:s.createInstance(a.config,111,"IGNORE_BACKGROUND_WAITING_CALL"),lowBatteryAudioNotifications:s.createInstance(a.config,112,"LOW_BATTERY_AUDIO_NOTIFICATIONS"),outOfRangeNotification:s.createInstance(a.config,113,"OUT_OF_RANGE_NOTIFICATION"),echoCancel:s.createInstance(a.config,114,"ECHO_CANCEL"),currentTunesLanguage:s.createInstance(a.config,116,"CURRENT_TUNES_LANGUAGE"),idleScreenText:s.createInstance(a.config,117,"IDLE_SCREEN_TEXT"),hearThrough:s.createInstance(a.config,118,"HEAR_THROUGH"),callIdPrompt:s.createInstance(a.config,119,"CALL_ID_PROMPT"),powerNap:s.createInstance(a.config,120,"POWER_NAP"),dspSidetone:s.createInstance(a.config,124,"DSP_SIDETONE"),equalizer:s.createInstance(a.config,125,"EQUALIZER"),equalizerEnable:s.createInstance(a.config,126,"EQUALIZER_ENABLE"),bleConnectionInterval:s.createInstance(a.config,127,"BLE_CONNECTION_INTERVAL"),hearThroughLevel:s.createInstance(a.config,129,"HEAR_THROUGH_LEVEL"),speaker:s.createInstance(a.config,130,"SPEAKER"),nfmiAutoPauseAndResume:s.createInstance(a.config,131,"NFMI_AUTO_PAUSE_AND_RESUME"),hardphoneNarrowbandFilter:s.createInstance(a.config,132,"HARDPHONE_NARROWBAND_FILTER"),sidetoneMute:s.createInstance(a.config,133,"SIDETONE_MUTE"),hallSensor:s.createInstance(a.config,134,"HALL_SENSOR"),anc:s.createInstance(a.config,135,"ANC"),selectButtonFunction:s.createInstance(a.config,138,"SELECT_BUTTON_FUNCTION"),speedNumber2:s.createInstance(a.config,139,"SPEED_NUMBER2"),easyPairing:s.createInstance(a.config,140,"EASY_PAIRING"),dectEnvMode:s.createInstance(a.config,141,"DECT_ENV_MODE"),autoPauseMusic:s.createInstance(a.config,142,"AUTO_PAUSE_MUSIC"),autoMuteCallAudio:s.createInstance(a.config,143,"AUTO_MUTE_CALL_AUDIO"),inactivityInterval:s.createInstance(a.config,144,"INACTIVITY_INTERVAL"),autoAnswerCall:s.createInstance(a.config,145,"AUTO_ANSWER_CALL"),onHeadDetection:s.createInstance(a.config,146,"ON_HEAD_DETECTION"),alwaysOnVoice:s.createInstance(a.config,147,"ALWAYS_ON_VOICE"),automaticSpeechRecognition:s.createInstance(a.config,149,"AUTOMATIC_SPEECH_RECOGNITION"),usbHostWhitelist:s.createInstance(a.config,150,"USB_HOST_WHITELIST"),msteamsFeature:s.createInstance(a.config,151,"MSTEAMS_FEATURE"),boomarmRotationAction:s.createInstance(a.config,152,"BOOMARM_ROTATION_ACTION"),streamPriority:s.createInstance(a.config,153,"STREAM_PRIORITY"),userButtons:s.createInstance(a.config,154,"USER_BUTTONS"),userButtonsDefault:s.createInstance(a.config,155,"USER_BUTTONS_DEFAULT"),mysoundEqualizer:s.createInstance(a.config,156,"MYSOUND_EQUALIZER"),mysoundEqualizerEnable:s.createInstance(a.config,157,"MYSOUND_EQUALIZER_ENABLE"),powerFreq:s.createInstance(a.config,158,"POWER_FREQ"),activeSpeakerLatency:s.createInstance(a.config,159,"ACTIVE_SPEAKER_LATENCY"),autoWhiteBalance:s.createInstance(a.config,160,"AUTO_WHITE_BALANCE"),auto
1ZoomCropping:s.createInstance(a.config,161,"AUTO_ZOOM_CROPPING"),fieldOfView:s.createInstance(a.config,162,"FIELD_OF_VIEW"),hdr:s.createInstance(a.config,163,"HDR"),intelligentZoomLatency:s.createInstance(a.config,164,"INTELLIGENT_ZOOM_LATENCY"),imageControlDefault:s.createInstance(a.config,165,"IMAGE_CONTROL_DEFAULT"),videoMode:s.createInstance(a.config,166,"VIDEO_MODE"),ptzPreset:s.createInstance(a.config,167,"PTZ_PRESET"),roomDefTrigger:s.createInstance(a.config,168,"ROOM_DEF_TRIGGER"),secondStream:s.createInstance(a.config,169,"SECOND_STREAM"),whiteboardCorners:s.createInstance(a.config,170,"WHITEBOARD_CORNERS"),transitionStyle:s.createInstance(a.config,171,"TRANSITION_STYLE"),earcupMics:s.createInstance(a.config,172,"EARCUP_MICS"),userButtonsContexts:s.createInstance(a.config,173,"USER_BUTTONS_CONTEXTS"),callBeginTone:s.createInstance(a.config,175,"CALL_BEGIN_TONE"),networkDhcpEthernet:s.createInstance(a.config,176,"NETWORK_DHCP_ETHERNET"),networkEnabledEthernet:s.createInstance(a.config,179,"NETWORK_ENABLED_ETHERNET"),networkDhcpWlan:s.createInstance(a.config,180,"NETWORK_DHCP_WLAN"),networkEnabledWlan:s.createInstance(a.config,183,"NETWORK_ENABLED_WLAN"),networkRemoteManagementFlag:s.createInstance(a.config,186,"NETWORK_REMOTE_MANAGEMENT_FLAG"),syncPktType:s.createInstance(a.config,187,"SYNC_PKT_TYPE"),callAcceptedSound:s.createInstance(a.config,188,"CALL_ACCEPTED_SOUND"),ancHtSoundSettings:s.createInstance(a.config,190,"ANC_HT_SOUND_SETTINGS"),soundModeLoop:s.createInstance(a.config,191,"SOUND_MODE_LOOP"),mysoundAudiograms:s.createInstance(a.config,192,"MYSOUND_AUDIOGRAMS"),mysoundAudiogramsReset:s.createInstance(a.config,193,"MYSOUND_AUDIOGRAMS_RESET"),mysoundCallsEnable:s.createInstance(a.config,194,"MYSOUND_CALLS_ENABLE"),roomCapacityNotification:s.createInstance(a.config,195,"ROOM_CAPACITY_NOTIFICATION"),roomCapacity:s.createInstance(a.config,196,"ROOM_CAPACITY"),notificationStyle:s.createInstance(a.config,197,"NOTIFICATION_STYLE"),notification:s.createInstance(a.config,198,"NOTIFICATION"),stitchMode:s.createInstance(a.config,199,"STITCH_MODE"),enableMic:s.createInstance(a.config,200,"ENABLE_MIC"),videoOrientation:s.createInstance(a.config,201,"VIDEO_ORIENTATION"),fieldOfViewSingle:s.createInstance(a.config,202,"FIELD_OF_VIEW_SINGLE"),peopleCountEnable:s.createInstance(a.config,203,"PEOPLE_COUNT_ENABLE"),contrastEnh:s.createInstance(a.config,206,"CONTRAST_ENH"),btBleEnable:s.createInstance(a.config,207,"BT_BLE_ENABLE"),wlanSsid:s.createInstance(a.config,208,"WLAN_SSID"),wlanMode:s.createInstance(a.config,209,"WLAN_MODE"),wlanPsk:s.createInstance(a.config,210,"WLAN_PSK"),certificateUpdate:s.createInstance(a.config,211,"CERTIFICATE_UPDATE"),plazaMode:s.createInstance(a.config,214,"PLAZA_MODE"),i8021xIdentity:s.createInstance(a.config,215,"I8021X_IDENTITY"),i8021xAuthenticationMode:s.createInstance(a.config,216,"I8021X_AUTHENTICATION_MODE"),pttLock:s.createInstance(a.config,217,"PTT_LOCK"),smartRinger:s.createInstance(a.config,218,"SMART_RINGER"),automaticUiSwap:s.createInstance(a.config,219,"AUTOMATIC_UI_SWAP"),backgroundSegmentation:s.createInstance(a.config,220,"BACKGROUND_SEGMENTATION"),iotedgeEnable:s.createInstance(a.config,221,"IOTEDGE_ENABLE"),ntpsecEnable:s.createInstance(a.config,222,"NTPSEC_ENABLE"),allow4K:s.createInstance(a.config,223,"ALLOW_4K"),ntpsecConfig:s.createInstance(a.config,225,"NTPSEC_CONFIG"),iotedgeConfig:s.createInstance(a.config,226,"IOTEDGE_CONFIG"),voiceIndicator:s.createInstance(a.config,227,"VOICE_INDICATOR"),spatialSound:s.createInstance(a.config,228,"SPATIAL_SOUND"),spotifyOneTap:s.createInstance(a.config,229,"SPOTIFY_ONE_TAP"),roomBoundary:s.createInstance(a.config,230,"ROOM_BOUNDARY"),sleepModeEnable:s.createInstance(a.config,231,"SLEEP_MODE_ENABLE"),peopleCountLedEnable:s.createInstance(a.config,232,"PEOPLE_COUNT_LED_ENABLE"),sleepModeStatus:s.createInstance(a.config,235,"SLEEP_MODE_STATUS"),timezone:s.createInstance(a.config,236,"TIMEZONE"),jabrapluscfg:s.createInstance(a.config,237,"JABRAPLUSCFG"),netproxycfg:s.createInstance(a.config,238,"NETPROXYCFG"),windAdaptive:s.createInstance(a.config,239,"WIND_ADAPTIVE"),autoHtForSingleEarbud:s.createInstance(a.config,240,"AUTO_HT_FOR_SINGLE_EARBUD"),autoVolumeControl:s.createInstance(a.config,241,"AUTO_VOLUME_CONTROL"),sharedDeviceMode:s.createInstance(a.config,242,"SHARED_DEVICE_MODE"),jabraplusManagementFlag:s.createInstance(a.config,243,"JABRAPLUS_MANAGEMENT_FLAG"),muteBehavior:s.createInstance(a.config,244,"MUTE_BEHAVIOR"),speakerOutConfig:s.createInstance(a.config,246,"SPEAKER_OUT_CONFIG"),auxOutConfig:s.createInstance(a.config,247,"AUX_OUT_CONFIG"),userFactoryDefault:s.createInstance(a.config,248,"USER_FACTORY_DEFAULT"),hostVolumeControl:s.createInstance(a.config,249,"HOST_VOLUME_CONTROL")},s.mmi={getFocus:s.createInstance(a.mmi,0,"GET_FOCUS"),buttonEvent:s.createInstance(a.mmi,2,"BUTTON_EVENT")},s.log={status:s.createInstance(a.log,0,"STATUS"),eventBool:s.createInstance(a.log,1,"EVENT_BOOL"),eventByte:s.createInstance(a.log,2,"EVENT_BYTE"),eventInt:s.createInstance(a.log,3,"EVENT_INT"),eventInt2:s.createInstance(a.log,4,"EVENT_INT2"),eventButtonInteraction:s.createInstance(a.log,5,"EVENT_BUTTON_INTERACTION")}
1,s.remoteMmi={getAppId:s.createInstance(a.remoteMmi,0,"GET_APP_ID"),releaseAppId:s.createInstance(a.remoteMmi,1,"RELEASE_APP_ID"),getFocus:s.createInstance(a.remoteMmi,2,"GET_FOCUS"),releaseFocus:s.createInstance(a.remoteMmi,3,"RELEASE_FOCUS"),buttonEvent:s.createInstance(a.remoteMmi,4,"BUTTON_EVENT"),buttonEventUnsolicited:s.createInstance(a.remoteMmi,5,"BUTTON_EVENT_UNSOLICITED"),setButtonLed:s.createInstance(a.remoteMmi,6,"SET_BUTTON_LED"),featureStatus:s.createInstance(a.remoteMmi,7,"FEATURE_STATUS"),getLedFocus:s.createInstance(a.remoteMmi,8,"GET_LED_FOCUS"),releaseLedFocus:s.createInstance(a.remoteMmi,9,"RELEASE_LED_FOCUS"),setLed:s.createInstance(a.remoteMmi,10,"SET_LED"),featureLedStatus:s.createInstance(a.remoteMmi,11,"FEATURE_LED_STATUS")},s.msteams={msgQuery:s.createInstance(a.msteams,0,"MSG_QUERY"),buttonEvent:s.createInstance(a.msteams,1,"BUTTON_EVENT"),telemetryEvent:s.createInstance(a.msteams,2,"TELEMETRY_EVENT"),deviceQuery:s.createInstance(a.msteams,3,"DEVICE_QUERY")},s.video={backlight:s.createInstance(a.video,0,"BACKLIGHT"),backlightLim:s.createInstance(a.video,1,"BACKLIGHT_LIM"),brightness:s.createInstance(a.video,3,"BRIGHTNESS"),brightnessLim:s.createInstance(a.video,4,"BRIGHTNESS_LIM"),contrast:s.createInstance(a.video,5,"CONTRAST"),contrastLim:s.createInstance(a.video,6,"CONTRAST_LIM"),gain:s.createInstance(a.video,8,"GAIN"),gainLim:s.createInstance(a.video,9,"GAIN_LIM"),hdr:s.createInstance(a.video,10,"HDR"),mode:s.createInstance(a.video,11,"MODE"),panTiltAbsolute:s.createInstance(a.video,12,"PAN_TILT_ABSOLUTE"),panTiltAbsoluteLim:s.createInstance(a.video,13,"PAN_TILT_ABSOLUTE_LIM"),panTiltRelative:s.createInstance(a.video,14,"PAN_TILT_RELATIVE"),panTiltRelativeLim:s.createInstance(a.video,15,"PAN_TILT_RELATIVE_LIM"),roomDefault:s.createInstance(a.video,16,"ROOM_DEFAULT"),saturation:s.createInstance(a.video,17,"SATURATION"),saturationLim:s.createInstance(a.video,18,"SATURATION_LIM"),sharpness:s.createInstance(a.video,19,"SHARPNESS"),sharpnessLim:s.createInstance(a.video,20,"SHARPNESS_LIM"),transitionStyle:s.createInstance(a.video,21,"TRANSITION_STYLE"),whiteBalance:s.createInstance(a.video,22,"WHITE_BALANCE"),whiteBalanceLim:s.createInstance(a.video,23,"WHITE_BALANCE_LIM"),whiteboardZoom:s.createInstance(a.video,24,"WHITEBOARD_ZOOM"),zoomAbsolute:s.createInstance(a.video,25,"ZOOM_ABSOLUTE"),zoomAbsoluteLim:s.createInstance(a.video,26,"ZOOM_ABSOLUTE_LIM"),zoomRelative:s.createInstance(a.video,27,"ZOOM_RELATIVE"),zoomRelativeLim:s.createInstance(a.video,28,"ZOOM_RELATIVE_LIM"),peopleCount:s.createInstance(a.video,30,"PEOPLE_COUNT"),startStopPeopleCountEvent:s.createInstance(a.video,31,"START_STOP_PEOPLE_COUNT_EVENT"),ptzPreset:s.createInstance(a.video,32,"PTZ_PRESET"),intelligentZoomLatency:s.createInstance(a.video,33,"INTELLIGENT_ZOOM_LATENCY"),nextIntelligentZoom:s.createInstance(a.video,34,"NEXT_INTELLIGENT_ZOOM"),nextWhiteboard:s.createInstance(a.video,35,"NEXT_WHITEBOARD"),whiteboardDetect:s.createInstance(a.video,36,"WHITEBOARD_DETECT"),pipMode:s.createInstance(a.video,37,"PIP_MODE"),ptzDefault:s.createInstance(a.video,38,"PTZ_DEFAULT"),imageControlDefault:s.createInstance(a.video,39,"IMAGE_CONTROL_DEFAULT"),debugCounters:s.createInstance(a.video,40,"DEBUG_COUNTERS"),connectionState:s.createInstance(a.video,41,"CONNECTION_STATE"),sensorRegions:s.createInstance(a.video,48,"SENSOR_REGIONS"),mipiTx:s.createInstance(a.video,49,"MIPI_TX"),backgroundSegmentation:s.createInstance(a.video,50,"BACKGROUND_SEGMENTATION"),videoDebug:s.createInstance(a.video,51,"VIDEO_DEBUG"),roomBoundary:s.createInstance(a.video,52,"ROOM_BOUNDARY"),privacyCover:s.createInstance(a.video,53,"PRIVACY_COVER"),sourceMode:s.createInstance(a.video,54,"SOURCE_MODE"),plazaModeDcPano:s.createInstance(a.video,55,"PLAZA_MODE_DC_PANO"),camCalibParams:s.createInstance(a.video,56,"CAM_CALIB_PARAMS"),streamName:s.createInstance(a.video,64,"STREAM_NAME"),modeConfig:s.createInstance(a.video,65,"MODE_CONFIG")},s.echo={test:s.createInstance(a.echo,0,"TEST")},s.nack={noErrorCode:s.createInstance(a.nack,0,"NO_ERROR_CODE"),transmitTimeout:s.createInstance(a.nack,241,"TRANSMIT_TIMEOUT"),noTransport:s.createInstance(a.nack,242,"NO_TRANSPORT"),badState:s.createInstance(a.nack,243,"BAD_STATE"),transmitFailed:s.createInstance(a.nack,244,"TRANSMIT_FAILED"),illegalAddr:s.createInstance(a.nack,245,"ILLEGAL_ADDR"),unknownCmd:s.createInstance(a.nack,246,"UNKNOWN_CMD"),fileNotFound:s.createInstance(a.nack,247,"FILE_NOT_FOUND"),internalError:s.createInstance(a.nack,248,"INTERNAL_ERROR"),replyError:s.createInstance(a.nack,249,"REPLY_ERROR"),illegalParam:s.createInstance(a.nack,250,"ILLEGAL_PARAM"),outOfSequence:s.createInstance(a.nack,251,"OUT_OF_SEQUENCE"),noSpace:s.createInstance(a.nack,252,"NO_SPACE"),accessDenied:s.createInstance(a.nack,253,"ACCESS_DENIED"),noMoreData:s.createInstance(a.nack,254,"NO_MORE_DATA"),unknownSubCmd:s.createInstance(a.nack,255,"UNKNOWN_SUB_CMD")};const Ve=s.ident,Pa=s.status,Ua=s.log,bt=s.nack,Mt=s.device;class wa{constructor(e,t,i){this.disconnected=!1;const r=e.getChannel("gnp").events.pipe((0,m.p)(l=>l.subcommand.equals(Mt.detachEvent)&&l.data.get(1)===t),(0,R.T)(z.l));
1this.disconnect=(0,_e.h)(r,e.onDisconnect,i.whenIsSuspended).pipe((0,Oe.s)(1)),this.disconnect.subscribe(()=>{this.disconnected=!0})}isDisconnected(){return this.disconnected}}var q,Ee;(function(n){n[n.PC=0]="PC",n[n.BASE=1]="BASE",n[n.SECONDARY=2]="SECONDARY",n[n.DESKSTAND=3]="DESKSTAND",n[n.HEADSET1=4]="HEADSET1",n[n.HEADSET2=5]="HEADSET2",n[n.HEADSET3=6]="HEADSET3",n[n.HEADSET4=7]="HEADSET4",n[n.HEADSET_VIA_USB=8]="HEADSET_VIA_USB",n[n.MOBILE=9]="MOBILE",n[n.HEADSET_VIA_CRADLE=10]="HEADSET_VIA_CRADLE",n[n.CRADLE=21]="CRADLE",n[n.DESK_HUB=48]="DESK_HUB",n[n.SECONDARY_PC=49]="SECONDARY_PC",n[n.EXTERNAL_CHIP_1=50]="EXTERNAL_CHIP_1",n[n.EXTERNAL_CHIP_2=51]="EXTERNAL_CHIP_2",n[n.UNDEFINED=255]="UNDEFINED"})(q||(q={})),function(n){n[n.EVENT=0]="EVENT",n[n.READ=64]="READ",n[n.WRITE=128]="WRITE",n[n.REPLY=192]="REPLY"}(Ee||(Ee={}));class ce{constructor(e=null){this.data=e}get(e){return this.getBytes()[e]}length(){return this.getBytes().length}getBytes(){var e;return this.data=null!==(e=this.data)&&void 0!==e?e:this.seri
vendor: 3,326 bytes, line 1
1alize(),this.data}serialize(){var e;return null!==(e=this.data)&&void 0!==e?e:new Uint8Array(0)}toString(){return Array.from(this.getBytes()).map(e=>e.toString(16).padStart(2,"0").toUpperCase()).join(" ")}deserialize(e){return e(this)}parse(e){return e(this.getBytes())}}ce.maxSize=57,ce.empty=new ce(new Uint8Array(0));class Pe{constructor(e=!0,t=!0){this.zeroTerminated=e,this.includeLength=t}}Pe.default=new Pe(!0,!0),Pe.lengthPrefixed=new Pe(!1,!0),Pe.zeroTerminated=new Pe(!0,!1);class st extends ce{constructor(e,t=Pe.default){super(null),this.encoder=new TextEncoder,this.value=e,this.options=t}static from(e,t=Pe.default){const i=st.parseString(e,t);return new st(i,t)}static parseString(e,t=Pe.default){const i=new TextDecoder,r=t.includeLength?1:0,l=e.getBytes();let h=l.length;for(;0===e.get(h-1);)h-=1;return i.decode(l.slice(r,h))}serialize(){const e=this.encoder.encode(this.value);let{length:t}=e;this.options.zeroTerminated&&(t+=1),this.options.includeLength&&(t+=1);const i=new Uint8Array(t);let r=0;return this.options.includeLength&&(i[0]=e.length,r=1),i.set(e,r),i}toString(){return this.value}}class V{constructor(e,t,i,r,l,h){this.destination=e,this.source=t,this.type=r,this.packetId=i,this.subcommand=l,this.command=l.command,this.dataLength=h,this.size=l.isEmpty()?V.ackHeaderSize:V.defaultHeaderSize,this.packetLength=this.size+h}static emptyPacket(e,t,i,r,l){return new V(e,t,i,r,l,0)}static createReadPacketHeader(e,t,i=0){return new V(t,q.PC,void 0,Ee.READ,e,i)}static createWritePacketHeader(e,t,i){return new V(t,q.PC,void 0,Ee.WRITE,e,i)}static createEventPacketHeader(e,t,i){return new V(t,q.PC,void 0,Ee.EVENT,e,i)}static read(e){const t=e[0],i=e[1],r=e[2],l=192&e[3],h=63&e[3],f=e[4];if(h===V.ackHeaderSize)return V.emptyPacket(t,i,r,l,s.empty(f));const U=s.get(f,e[5]);return new V(t,i,r,l,U,h-V.defaultHeaderSize)}isEmpty(){return 0===this.dataLength}getPacketId(){var e;return this.packetId=null!==(e=this.packetId)&&void 0!==e?e:V.packetIds.getNextId(),this.packetId}createReplyHeader(e){return new V(this.source,this.destination,this.packetId,Ee.REPLY,this.subcommand,e)}}V.defaultHeaderSize=6,V.ackHeaderSize=5,V.packetIds=new class{constructor(){this.currentId=Math.floor(255*Math.random())}getNextId(){return this.currentId=(this.currentId+1)%256,this.currentId}};let it=class qe{constructor(e,t=ce.empty){this.header=e,this.data=t,this.destination=e.destination,this.source=e.source,this.type=e.type,this.subcommand=e.subcommand,this.command=e.command,this.length=e.packetLength}static createReadPacket(e,t,i=ce.empty){return new qe(V.createReadPacketHeader(e,t,i.length()),i)}static createWritePacket(e,t,i=ce.empty){return new qe(V.createWritePacketHeader(e,t,i.length()),i)}static createEventPacket(e,t,i=ce.empty){return new qe(V.createEventPacketHeader(e,t,i.length()),i)}static read(e){const t=V.read(e);if(t.isEmpty())return new qe(t);const i=e.slice(t.size);return new qe(t,new ce(i))}headerSize(){return this.header.size}ensurePacketId(){this.header.getPacketId()}packetId(){return this.header.getPacketId()}getBytes(){const e=new Uint8Array(this.length);return e[0]=this.destination,e[1]=this.source,e[2]=this.header.getPacketId(),e[3]=this.header.type|this.length,e[4]=this.header.command.id,this.header.subcommand.isEmpty()||(e[5]=this.subcommand.id),this.data.length()>
10&&this.data.getBytes().forEach((t,i)=>{e[this.header.size+i]=t}),e}toString(){return`${q[this.source]} -> ${q[this.destination]}: ${Ee[this.type]} ${this.subcommand}`}createReply(e){return new qe(this.header.createReplyHeader(e.length()),e)}};function Fn(n){switch(n.type){case pe.USB:return 0;case pe.INDIRECT:return 1;case pe.BLUETOOTH:return 2;default:return 10}}function ln(n,e){return Fn(n)-Fn(e)}function Vn(n,e=ln){if(0===n.length)throw new D("The device has been disconnected.",L.DEVICE_ERROR);return n.sort(e),n[0]}function Wn(n,e=ln){const{currentConnections:t}=n;return Vn(t,e)}function Kn(n){return function(e,t=ln){return e.connectionList.pipe((0,m.p)(i=>i.length>0),(0,R.T)(i=>Vn(i,t)),function we(n,e){return(0,Xe.F)((t,i)=>e?e(t[n],i[n]):t[n]===i[n])}("id"),(0,Z.Q)(e.onDisconnect))}(n).pipe((0,R.T)(e=>e.tryGetChannel("gnp")),(0,Z.Q)(n.onDisconnect))}function dn(n){return Wn(n).getChannel("gnp")}class xn{constructor(e){this.device=e,this.events=Kn(this.device).pipe((0,R.T)(t=>void 0!==t?t.events:ut.t),mt(),(0,Z.Q)(this.device.onDisconnect)),this.defaultAddress=Kn(this.device).pipe((0,m.p)(t=>void 0!==t),(0,R.T)(t=>void 0!==t?t.defaultAddress:q.UNDEFINED),(0,Z.Q)(this.device.onDisconnect))}read(e){return dn(this.device).read(e)}write(e){return dn(this.device).write(e)}sendEvent(e){dn(this.device).sendEvent(e)}}function Ha(n){return function Yn(n){return void 0!==Wn(n).tryGetChannel("gnp")}(n)?new xn(n):void 0}class hn extends D{constructor(e){super(`The command was rejected by the device: ${e}`,L.DEVICE_ERROR),this.nack=e}}class ba{static readUint16(e){return new DataView(e.getBytes().buffer).getUint16(0,!0)}}function Ma(n,e){return N(this,void 0,void 0,function*(){let t,i;const r=new Promise((h,f)=>{t=h,i=f}),l=n.pipe((0,Oe.s)(1)).subscribe({next:h=>t(h),error:h=>i(h)});try{return yield e(),yield r}finally{l.unsubscribe()}})}class kt{constructor(e,t){this.maxRetryAttempts=e,this.initialTimeoutMs=t}retry(e){return N(this,void 0,void 0,function*(){let t,i=0;for(;i<=this.maxRetryAttempts;)try{return yield e()}catch(r){if(i+=1,t=r,!this.retryAfter(r)||i>this.maxRetryAttempts)throw r;yield this.timeForNextAttempt(i)}throw t})}retryAfter(e){return e instanceof He.M||e instanceof hn&&e.nack===bt.transmitFailed||e instanceof Pt&&this.retryAfter(e.indicatorError)}timeForNextAttempt(e){const t=e*e*this.initialTimeoutMs;return new Promise(i=>{setTimeout(i,t)})}}kt.default=new kt(3,500);class ka{constructor(e,t,i,r,l=yt.createConnection){this.logger=e,this.parentAttachEvent=t,this.parentConnection=i,this.powerModeChangeDetector=r,this.connectionCreator=l;const h=this.parentConnection.getChannel("gnp");this.connectionEvents=h.events.pipe((0,m.p)(f=>f.subcommand.equals(Mt.attachEvent)),(0,R.T)(f=>({deviceType:f.data.get(0),address:f.data.get(1)})),(0,H.Z)(f=>(0,Je.H)(this.tryCreateConnectionEvent(f))),f=>f.pipe((0,m.p)(I=>void 0!==I),(0,R.T)(I=>I)),(0,Z.Q)(i.onDisconnect))}tryCreateConnectionEvent(e){return N(this,void 0,void 0,function*(){try{return yield this.createConnectionEvent(e)}catch(t){return void this.logDetectionError(t)}})}logDetectionError(e){e instanceof Pt?M("A child device was connected, but it disconnected before a connection could be established",this.logger,b.INFO):M("A child device was connected, but a connection could not be established",this.logger,b.ERROR)}createConnectionEvent(e){return N(this,void 0,void 0,function*(){const t=this.parentConnection.tryGetChannel("gnp");if(!t)return;
1const i=t.withAddress(e.address),r=function ya(n,e){return{read(t){return N(this,void 0,void 0,function*(){return yield e.retry(()=>n.read(t))})},write(t){return N(this,void 0,void 0,function*(){yield e.retry(()=>n.write(t))})},sendEvent(t){n.sendEvent(t)}}}(i,kt.default),l=yield r.read(Ve.deviceName).then(st.parseString),h=yield r.read(Ve.pid).then(ba.readUint16),f=yield r.read(Ve.id).then(st.parseString),I={transportId:this.parentAttachEvent.transportId,vid:this.parentAttachEvent.vid,pid:h,name:l,serialNumber:f,capabilities:this.parentAttachEvent.capabilities,connectionGnpAddress:e.address,deviceType:e.deviceType};return{event:I,connection:yield this.createConnection(I,i)}})}createConnection(e,t){return N(this,void 0,void 0,function*(){const i=new Bn,r=new wa(this.parentConnection,t.defaultAddress,this.powerModeChangeDetector);i.add(t);const l=new ma(this.parentConnection.id,e.connectionGnpAddress);return this.connectionCreator(l,pe.INDIRECT,i,this.parentConnection.hidChannel,r.disconnect,this.parentConnection.id)})}}function Gt(n,e,t,i=b.ERROR,r=at.JS_LIB){var h;M(`${n} ${h=e,h instanceof D?`JabraError: ${h.message} (type: ${h.type})`:h instanceof Error?`Error: ${h.message} (name: ${h.name})`:`Unknown error: ${h}`}`,t,i,r)}function We(n,e){const t=n[e];if(void 0===t)throw new D(`JSON event lacks required field "${e}: ${JSON.stringify(n)}`,L.UNEXPECTED_ERROR);return t}function Ga(n){switch(n){case"input":return G.INPUT;case"output":return G.OUTPUT;case"feature":return G.FEATURE;default:throw new D(`${n} is not a valid ReportType`,L.UNEXPECTED_ERROR)}}function Ba(n){switch(n){case"absolute":return gt.ABSOLUTE;case"relative":return gt.RELATIVE;default:throw new D(`${n} Not a valid ValueType`,L.UNEXPECTED_ERROR)}}function Fa(n){return{transportId:We(n,"id"),vid:We(n,"vid"),pid:We(n,"pid"),name:We(n,"name"),serialNumber:We(n,"serialNumber"),capabilities:(e=We(n,"descriptor"),e.map(t=>({reportType:Ga(t.reportType),usagePage:t.usagePage,usage:t.usage,valueType:Ba(t.valueType),reportSize:t.reportSize})))};var e}class Va{constructor(e,t,i,r){this.transport=e,this.connectionFactory=t;const h=this.transport.consoleAppEvent.pipe(function(I){return U=>U.pipe((0,m.p)(w=>"attach"===w.event),(0,R.T)(Fa),(0,X.W)((w,Y)=>(Gt("",w,I),Y)))}(r)).pipe((0,R.T)(I=>{const U=this.transport.consoleAppEvent.pipe(function(w){return Y=>Y.pipe((0,m.p)(K=>"detach"===K.event),(0,R.T)(K=>({transportId:We(K,"id")})),(0,X.W)((K,fe)=>(Gt("",K,w),fe)))}(r),(0,J.$)(w=>w.transportId===I.transportId),(0,R.T)(z.l),(0,_.t)());return U.subscribe(),{attach:I,detach:U}}),(0,H.Z)(I=>(0,Je.H)(this.connectionFactory.createConnection(I.attach,I.detach))),(0,Ce.u)()),f=h.pipe((0,m.p)(I=>I.event.deviceType===Le.DONGLE&&I.connection.hasChannel("gnp")),(0,H.Z)(I=>i.createChildConnectionDetector(I.event,I.connection).connectionEvents));this.connectionEvents=(0,_e.h)(h,f).pipe((0,Ce.u)())}}class Wa{constructor(e,t){this.powerModeChangeDetector=e,this.logger=t}createChildConnectionDetector(e,t){return new ka(this.logger,e,t,this.powerModeChangeDetector)}}class Ka{constructor(e,t){this.transport=e,this.transportId=t}acquireGnpLock(){const e=new wt(4).toString(),t=(0,Ue._)(this.transport.consoleAppEvent.pipe((0,m.p)(i=>"response-gnp-lock"===i.event&&i.token===e),(0,R.T)(i=>i.token),(0,Oe.s)(1)));return this.transport.writeAction({action:"request-gnp-lock",id:this.transportId,token:e}),t}releaseGnpLock(e){this.transport.writeAction({action:"release-gnp-lock",id:this.transportId,token:e})}}class $n{constructor(e,t,i){this.type="gnp",this.description="GNP Communication Channel",this.listener=e,this.dispatcher=t,this.disconnectMonitor=i,this.events=this.listener.eventPackets}read(e,t,i,r){return N(this,void 0,void 0,function*(){const l=it.createReadPacket(e,t,i??ce.empty);return(yield this.sendAndWaitForReply(l,r)).data})}write(e,t,i,r){return N(this,void 0,void 0,function*(){const l=it.createWritePacket(e,t,i??ce.empty);yield this.sendAndWaitForReply(l,r)})}sendEvent(e,t,i){const r=it.createEventPacket(e,t,i??ce.empty);this.dispatcher.send(r)}sendAndWaitForReply(e,t){return N(this,void 0,void 0,function*(){if(this.disconnectMonitor.isDisconnected())throw new Pt;try{return yield this.dispatcher.sendAndWaitForReply(e,t)}catch(i){throw this.errorIndicatesDisconnect(i)?new Pt(i):i}})}errorIndicatesDisconnect(e){return e instanceof hn&&e.nack.equals(bt.transmitFailed)||this.disconnectMonitor.isDisconnected()}}class rt{constructor(e){this.replyTimeoutMs=2500,this.packetListener=e}send(e){return N(this,void 0,void 0,function*(){rt.prepareSend(e);const t=yield this.onBeforeSend(e);try{yield this.doSend(e)}finally{yield this.onAfterSend(t)}})}sendAndWaitForReply(e){return N(this,arguments,void 0,function*(t,i=this.replyTimeoutMs){rt.prepareSend(t);const r=yield this.onBeforeSend(t);i<=0&&(i=this.replyTimeoutMs);try{const l=yield this.doSendAndWaitForReply(t,i);return l.command.equals(a.nack)&&rt.throwNackAsError(t.subcommand,l.subcommand),l}finally{yield this.onAfterSend(r)}})}doSendAndWaitForReply(e,t){return N(this,void 0,void 0,function*(){const i=this.packetListener.waitForReplyTo(e,t);try{yield this.doSend(e)}catch(r){throw i.catch(l=>{}),r}return i})}static throwNackAsError(e,t){throw t.equals(bt.unknownCmd)||t.equals(bt.unknownSubCmd)?new D(`The device does not support ${e}`,L.FEATURE_NOT_SUPPORTED):new hn(t)}static prepareSend(e){e.ensurePacketId()}onBeforeSend(e){return Promise.resolve(0)}onAfterSend(e){return Promise.resolve()}}class xa extends rt{constructor(e,t,i){super(t),this.reportSize=void 0,this.hidChannel=e,this.gnpLock=i}doSend(e){return N(this,void 0,void 0,function*(){const t=e.getBytes();let i=0;do{const r=Math.min(t.length-i,this.getReportSize()),l=t.slice(i,i+r);i+=r,this.hidChannel.output(Ne.GN_PROTOCOL,De.DATA,Array.from(l))}while(i<t.length)})}getReportSize(){if(void 0===this.reportSize){const e=this.hidChannel.findDescriptor(Ne.GN_PROTOCOL,De.DATA,G.OUTPUT);
1if(!e)throw new Error("GNP over HID not supported");this.reportSize=e.reportSize}return this.reportSize}onBeforeSend(e){return N(this,void 0,void 0,function*(){return e.type===Ee.EVENT?Promise.resolve(null):this.gnpLock.acquireGnpLock()})}onAfterSend(e){return e&&this.gnpLock.releaseGnpLock(e),Promise.resolve()}}class jn{constructor(e){this.receivedPackets=e,this.replyPackets=this.receivedPackets.pipe((0,m.p)(t=>t.type===Ee.REPLY)),this.eventPackets=this.receivedPackets.pipe((0,m.p)(t=>t.type===Ee.EVENT))}waitFor(e,t){return N(this,void 0,void 0,function*(){let i,r;const l=new Promise((f,I)=>{i=f,r=I}),h=this.receivedPackets.pipe((0,m.p)(e),(0,Oe.s)(1),(0,He.w)(t)).subscribe({next:f=>i(f),error:f=>r(f)});try{return yield l}finally{h.unsubscribe()}})}waitForReplyTo(e,t){return this.waitFor(i=>i.type===Ee.REPLY&&i.packetId()===e.packetId()&&(i.command.equals(a.nack)||e.type===Ee.READ&&i.subcommand.equals(e.subcommand)||e.type===Ee.WRITE&&i.command.equals(a.ack)),t)}}let zn=(()=>{let n=class Rn{constructor(){this.packetChunks=[]}addPacketChunk(t){return this.packetChunks.push(t),this}isComplete(){if(0===this.packetChunks.length)return!1;const t=this.getChunkSize();return!(t<Rn.indexOfLength)&&this.getPacketLength()<=t}getPacket(){if(!this.isComplete())return;const t=this.getPacketLength(),i=this.getBytes(t);return it.read(i)}getPacketLength(){return 63&this.packetChunks[0][Rn.indexOfLength]}getChunkSize(){return this.packetChunks.reduce((t,i)=>t+i.length,0)}getBytes(t){const i=new Uint8Array(t);let r=0;return this.packetChunks.every(l=>{const h=t-r,f=l.length<h?l:l.slice(0,h);return i.set(f,r),r+=f.length,r<t}),i}};return n.indexOfLength=3,n})();class Bt extends jn{constructor(e){super(e.input.pipe((0,m.p)(Bt.isGnpReport),(0,Rt.S)(Bt.aggregatePacketFragments,new zn),(0,R.T)(t=>t.getPacket()),(0,m.p)(t=>void 0!==t),(0,Ce.u)()))}static isGnpReport(e){return 65280===e.usagePage&&1===e.usage&&Array.isArray(e.value)&&e.value.length>1}static aggregatePacketFragments(e,t){const i=e.isComplete()?new zn:e;return Array.isArray(t.value)&&i.addPacketChunk(t.value),i}}var Ke,xe,pt,Ye,be,un,Qn,Ft,En,Tt,k,ee,Se,ot,ct,lt,le,Vt,de,se;(function(n){n[n.PUB_SESSION=0]="PUB_SESSION",n[n.PUB_GNP=1]="PUB_GNP"})(Ke||(Ke={})),function(n){n[n.PUB_SESSION_REQUEST=0]="PUB_SESSION_REQUEST",n[n.PUB_SESSION_RESPONSE=1]="PUB_SESSION_RESPONSE",n[n.PUB_SESSION_TERMINATE=2]="PUB_SESSION_TERMINATE",n[n.PUB_SESSION_TERMINATED=3]="PUB_SESSION_TERMINATED",n[n.PUB_SESSION_HEARTBEAT=4]="PUB_SESSION_HEARTBEAT"}(xe||(xe={}));let qn=(()=>{class n{constructor(t){this.value=t,this.value=t}static createGenerator(){const t=new Set,i=()=>Math.floor(Math.random()*n.maxSessionId);return{nextSessionId:()=>{let r=i();for(;t.has(r);)r=i();return t.add(r),new n(r)}}}equals(t){return this.value===t.value}toString(){return`0x${this.value.toString(16).toUpperCase()}`}}return n.maxSessionId=65535,n})(),dt=(()=>{class n{constructor(t,i,r){this.sessionId=t,this.format=i,this.data=r}static deserialize(t){const i=new DataView(t.buffer),r=new qn(i.getUint16(0,!0)),l=i.getUint16(2,!0);return new n(r,l,new Uint8Array(t.buffer,6))}static requestSession(t){return n.sessionCommandPacket(t,xe.PUB_SESSION_REQUEST)}static sessionHeartbeat(t){return n.sessionCommandPacket(t,xe.PUB_SESSION_HEARTBEAT)}static terminateSession(t){return n.sessionCommandPacket(t,xe.PUB_SESSION_TERMINATE)}static sessionCommandPacket(t,i){return new n(t,Ke.PUB_SESSION,new Uint8Array([i]))}serialize(){const i=new ArrayBuffer(6+this.data.length),r=new DataView(i);r.setUint16(0,this.sessionId.value,!0),r.setUint16(2,this.format,!0),r.setUint16(4,this.data.length,!0);for(let l=0;l<this.data.length;l+=1)r.setUint8(6+l,this.data[l]);return new Uint8Array(i)}}return n.headerSize=6,n})(),Ya=(()=>{class n{constructor(){this.packetChunks=[]}addPacketChunk(t){return this.packetChunks.push(t),this}isComplete(){if(0===this.packetChunks.length)return!1;const t=this.getChunkSize();return!(t<n.indexOfLength)&&this.getPacketLength()<=t}createNewAssembler(){return new n}getPacket(){if(!this.isComplete())return;const t=this.getPacketLength(),i=this.getBytes(t);return dt.deserialize(i)}getPacketLength(){return new Uint8Array(this.packetChunks[0]),new DataView(new Uint8Array(this.packetChunks[0]).buffer).getUint16(4,!0)+dt.headerSize}getChunkSize(){return this.packetChunks.reduce((t,i)=>t+i.length,0)}getBytes(t){const i=new Uint8Array(t);let r=0;return this.packetChunks.every(l=>{const h=t-r,f=l.length<h?l:l.slice(0,h);return i.set(f,r),r+=f.length,r<t}),i}}return n.indexOfLength=5,n})();class In{constructor(e){var t,i;this.hidChannel=e,this.maxPayloadSize=null!==(i=null===(t=this.hidChannel.findDescriptor(Ne.PUBLIC_GNP,De.DATA,G.OUTPUT))||void 0===t?void 0:t.reportSize)&&void 0!==i?i:0,this.receivedPackets=e.input.pipe((0,m.p)(r=>r.usagePage===Ne.PUBLIC_GNP&&r.usage===De.DATA&&Array.isArray(r.value)),(0,Rt.S)(In.aggregatePacketFragments,new Ya),(0,R.T)(r=>r.getPacket()),(0,m.p)(r=>void 0!==r),(0,Ce.u)())}static aggregatePacketFragments(e,t){const i=e.isComplete()?e.createNewAssembler():e;return Array.isArray(t.value)&&i.addPacketChunk(t.value),i}sendPacket(e){return N(this,void 0,void 0,function*(){const t=e.serialize();let i=0;do{const r=Math.min(t.length-i,this.maxPayloadSize),l=t.slice(i,i+r);i+=r,yield this.hidChannel.output(Ne.PUBLIC_GNP,De.DATA,Array.from(l))}while(i<t.length)})}}class $a{constructor(e,t,i,r){this.connection=e,this.sessionFactory=i,this.disconnectMonitor=r,this.sessionSubject=ne
vendor: 2,678 bytes, line 1
1w ve.t(t),this.renewal=this.listenForSessionRenewal(t),this.sessions=this.sessionSubject.asObservable(),this.receivedPackets=this.sessions.pipe((0,At.n)(l=>l.receivedPackets)),r.disconnect.subscribe(()=>this.sessionSubject.getValue().stopKeepAlive())}renewSession(){return N(this,void 0,void 0,function*(){if(this.disconnectMonitor.isDisconnected())return;const e=yield this.sessionFactory.createSession(this.connection);this.renewal.unsubscribe(),this.renewal=this.listenForSessionRenewal(e),this.sessionSubject.next(e)})}listenForSessionRenewal(e){return e.terminated.subscribe(()=>this.renewSession())}sendPacket(e,t){return N(this,void 0,void 0,function*(){const i=this.sessionSubject.getValue();i||console.log("No active session to send packet."),i.sendPacket(e,t)})}}class ja extends rt{constructor(e,t){super(t),this.connection=e}doSend(e){return N(this,void 0,void 0,function*(){yield this.connection.sendPacket(Ke.PUB_GNP,e.getBytes())})}}class za extends jn{constructor(e){super(e.receivedPackets.pipe((0,m.p)(t=>t.format===Ke.PUB_GNP),(0,R.T)(t=>it.read(t.data))))}}class Qa{constructor(e,t){this.transport=e,this.sessionFactory=t}gnpIsSupported(e){return this.privateGnpIsSupported(e)||this.publicGnpIsSupported(e)}privateGnpIsSupported(e){return void 0!==e.findDescriptor(Ne.GN_PROTOCOL,De.DATA,G.OUTPUT)}publicGnpIsSupported(e){return void 0!==e.findDescriptor(Ne.PUBLIC_GNP,De.DATA,G.OUTPUT)}create(e,t,i){return N(this,void 0,void 0,function*(){if(this.privateGnpIsSupported(t))return this.createPrivateGnpChannel(e,t,i);if(this.publicGnpIsSupported(t))try{return yield this.createPublicGnpChannel(t,i)}catch(r){if(r instanceof D&&r.type===L.DEVICE_ERROR)return void console.warn(r.message);throw r}})}createPrivateGnpChannel(e,t,i){const r=new Bt(t),l=new Ka(this.transport,e),h=new xa(t,r,l);return new $n(r,h,i)}createPublicGnpChannel(e,t){return N(this,void 0,void 0,function*(){const i=new In(e),r=yield this.sessionFactory.createSession(i),l=new $a(i,r,this.sessionFactory,t),h=new za(l),f=new ja(l,h);return new $n(h,f,t)})}}class Wt{constructor(e,t){this.id=e,this.connection=t,this.keepAliveIntervalHandle=null,this.receivedPackets=this.connection.receivedPackets,this.terminated=this.connection.receivedPackets.pipe((0,m.p)(i=>i.sessionId.equals(this.id)&&i.format===Ke.PUB_SESSION&&i.data.length>0&&i.data[0]===xe.PUB_SESSION_TERMINATED))}sendPacket(e,t){const i=new dt(this.id,e,t);return this.connection.sendPacket(i)}terminate(){return N(this,void 0,void 0,function*(){this.stopKeepAlive(),yield this.connection.sendPacket(dt.terminateSession(this.id))})}startKeepAlive(){this.keepAliveIntervalHandle||(this.keepAliveIntervalHandle=setInterval(()=>
1this.connection.sendPacket(dt.sessionHeartbeat(this.id)),Wt.keepAliveIntervalDuration))}stopKeepAlive(){this.keepAliveIntervalHandle&&(clearInterval(this.keepAliveIntervalHandle),this.keepAliveIntervalHandle=null)}}Wt.keepAliveIntervalDuration=5e3,function(n){n[n.ACK=0]="ACK",n[n.NACK_IN_USE=1]="NACK_IN_USE",n[n.NACK_BUSY=2]="NACK_BUSY",n[n.NACK_BAD_FORMAT=3]="NACK_BAD_FORMAT"}(pt||(pt={}));let qa=(()=>{class n{createSession(t){return N(this,void 0,void 0,function*(){const i=yield n.getReservedSessionId(t),r=new Wt(i,t);return r.startKeepAlive(),r})}static getReservedSessionId(t){return N(this,void 0,void 0,function*(){const i=qn.createGenerator();for(let r=0;r<n.maxTries;r+=1){const l=i.nextSessionId(),h=yield Ma(n.sessionResponses(t,l),()=>t.sendPacket(dt.requestSession(l)));if(h===pt.ACK)return l;if(h===pt.NACK_BUSY)break;if(h===pt.NACK_BAD_FORMAT)throw new Error("The session request was not recognized by the device")}throw new D("A session could not be established with the device. All sessions may be in use.",L.DEVICE_ERROR)})}static sessionResponses(t,i){return t.receivedPackets.pipe((0,m.p)(r=>r.format===Ke.PUB_SESSION&&r.sessionId.equals(i)&&r.data[0]===xe.PUB_SESSION_RESPONSE&&r.data.length>1),(0,R.T)(r=>r.data[1]),(0,He.w)(2500))}}return n.maxTries=12,n})();class Za{constructor(e){this.disconnected=!1,this.disconnect=e.pipe((0,Oe.s)(1)),this.disconnect.subscribe(()=>{this.disconnected=!0})}isDisconnected(){return this.disconnected}}class gn{constructor(e,t){this.innerChannel=e,this.defaultAddress=t,this.type="gnp",this.description=`GNP Communication Channel over Address ${this.defaultAddress}`,this.events=e.events}withAddress(e){return new gn(this.innerChannel,e)}read(e){const t=this.resolveRequest(e);return this.innerChannel.read(t.subcommand,t.destination,t.data,t.timeoutMs)}write(e){return N(this,void 0,void 0,function*(){const t=this.resolveRequest(e);return this.innerChannel.write(t.subcommand,t.destination,t.data,t.timeoutMs)})}sendEvent(e){const t=this.resolveRequest(e);this.innerChannel.sendEvent(t.subcommand,t.destination,t.data)}resolveRequest(e){var t;return e instanceof s?{subcommand:e,destination:this.defaultAddress}:{subcommand:e.subcommand,destination:null!==(t=e.destination)&&void 0!==t?t:this.defaultAddress,data:e.data,timeoutMs:e.timeoutMs}}}let Xa=(()=>{class n{constructor(t,i){this.inner=t,this.defaultAddress=this.inner.defaultAddress,this.type=this.inner.type,this.description=this.inner.description,this.events=t.events.pipe((0,R.T)(n.mapAddress),(0,m.p)(r=>r.source===i))}withAddress(t){return new n(this.inner.withAddress(t),t)}read(t){return this.inner.read(t)}write(t){return this.inner.write(t)}sendEvent(t){this.inner.sendEvent(t)}static mapAddress(t){return n.shouldBeRemapped(t)?n.remapSource(t):t}static remapSource(t){const i=new V(t.destination,q.HEADSET1,t.header.getPacketId(),t.header.type,t.header.subcommand,t.header.dataLength);return new it(i,t.data)}static shouldBeRemapped(t){return t.source===q.BASE&&t.type===Ee.EVENT&&(t.subcommand.equals(Pa.hsBattery)||t.subcommand.equals(Ua.eventBool)&&t.data.get(0)===n.muteStateEventId)}}return n.muteStateEventId=0,n})();class Ja{static isPanaCast20(e){return e>=12320&&e<=12335}}class es{constructor(e,t,i,r){this.transport=e,this.gnpChannelFactory=t,this.addressProbe=i,this.logger=r}createConnection(e,t){return N(this,void 0,void 0,function*(){var i;const{capabilities:r,transportId:l}=e;let{serialNumber:h}=e;const f=new _a(l),I=new La(f,r,this.transport,this.logger),U=new Bn,w=new Za(t),Y=yield this.gnpChannelFactory.create(l,I,w);let K,fe=Le.ANY;if(Y){const Ie=yield this.getPreferredGnpAddress(e,Y);K=new gn(Y,Ie),fe=(yield K.read(Ve.type)).deserialize(vt=>vt.get(1)),fe===Le.DONGLE&&(K=new Xa(K,Ie)),h=yield K.read(Ve.id).then(st.parseString),U.add(Y),U.add(K)}return{event:Object.assign(Object.assign({},e),{deviceType:fe,serialNumber:h,connectionGnpAddress:null!==(i=K?.defaultAddress)&&void 0!==i?i:q.UNDEFINED}),connection:yt.createConnection(f,pe.USB,U,I,t)}})}getPreferredGnpAddress(e,t){return N(this,void 0,void 0,function*(){return Ja.isPanaCast20(e.pid)?q.BASE:yield this.addressProbe.getPreferredGnpAddress(t)})}}class Kt{constructor(){this.probeTimeoutMs=500,this.retryStrategy=kt.default}getPreferredGnpAddress(e,t){return N(this,void 0,void 0,function*(){const i=t??Kt.probeGnpAddresses;for(let r=0;r<i.length;r+=1){const l=i[r];if(yield this.deviceRepliesOnAddress(e,l))return l}throw new D("The device has been disconnected.",L.DEVICE_ERROR)})}deviceRepliesOnAddress(e,t){return N(this,void 0,void 0,function*(){try{return yield this.retryStrategy.retry(()=>e.read(Ve.type,t,ce.empty,this.probeTimeoutMs)),!0}catch{return!1}})}}Kt.probeGnpAddresses=[q.HEADSET_VIA_USB,q.BASE,q.CRADLE,q.HEADSET1,q.HEADSET_VIA_CRADLE];class Zn{constructor(e,t,i,r,l,h){this.vendorId=e,this.productId=t,this.serialNumber=i,this.name=r,this.type=l,be.
1set(this,void 0),oe(this,be,new yn(h,A(Ye,Ye,"m",Qn)),"f"),this.connectionAdded=A(this,be,"f").itemAdded,this.connectionRemoved=A(this,be,"f").itemRemoved,this.connectionList=A(this,be,"f").itemList,this.onDisconnect=A(this,be,"f").itemList.pipe((0,y.i)(1),(0,J.$)(f=>0===f.length),(0,R.T)(z.l),(0,Ce.u)())}get id(){return Ht(this.vendorId,this.productId,this.serialNumber)}get currentConnections(){return A(this,be,"f").getValue()}get browserLabel(){return`${this.vendorId.toString(16).padStart(4,"0")}:${this.productId.toString(16).padStart(4,"0")}`}}Ye=Zn,be=new WeakMap,Qn=function(n,e){return A(Ye,Ye,"f",un).indexOf(n.type)-A(Ye,Ye,"f",un).indexOf(e.type)},un={value:[pe.USB,pe.INDIRECT,pe.BLUETOOTH]};class xt extends ce{constructor(e,t){super(new Uint8Array([e,t]))}}xt.subscribe=new xt(Le.PC,q.PC);class Yt{static createDevice(e,t){const{vid:i,deviceType:r,pid:l,name:h,serialNumber:f}=e.event,I=t.pipe((0,m.p)(w=>Yt.isSameDevice(e,w)),(0,R.T)(w=>w.connection)),U=(0,Xt.x)((0,j.of)(e.connection),I);return Yt.sendAttachEvent(e.connection),new Zn(i,l,f,h,r,U)}static sendAttachEvent(e){const t=e.tryGetChannel("gnp");void 0!==t&&t.sendEvent({subcommand:Mt.attachEvent,data:xt.subscribe})}static isSameDevice(e,t){const i=Ht(e.event.vid,e.event.pid,e.event.serialNumber),r=Ht(t.event.vid,t.event.pid,t.event.serialNumber);return i.startsWith(r)||r.startsWith(i)}}class pn{constructor(e){this.deviceObservables=new yn(e)}static exceptionToUndefined(e){try{return e()}catch(t){if(t instanceof D)return;throw t}}connectionExists(e){return void 0!==pn.exceptionToUndefined(()=>this.findConnectionById(e))}findConnectionById(e){for(const t of this.deviceObservables.getValue())for(const i of t.currentConnections)if(i.id.equals(e))return i;throw new D(`Could not find connection with id ${e.toString()}`,L.UNEXPECTED_ERROR)}findDeviceByDeviceId(e){return this.deviceObservables.getValue().find(t=>t.id.startsWith(e)||e.startsWith(t.id))}}class Tn{constructor(e,t,i){this.deviceCreator=t,this.logger=i;const[r,l]=function Q(n,e,t){return[(0,m.p)(e,t)((0,x.Tg)(n)),(0,m.p)(Jt(e,t))((0,x.Tg)(n))]}(e.pipe((0,m.p)(f=>!this.deviceCollection.connectionExists(f.connection.id))),f=>!this.deviceCollection.findDeviceByDeviceId(Ht(f.event.vid,f.event.pid,f.event.serialNumber))),h=r.pipe((0,R.T)(f=>this.deviceCreator(f,l)));this.deviceCollection=new pn(h),this.deviceObservables=this.deviceCollection.deviceObservables}static create(e,t,i){const r=new Qa(e,new qa),l=new Kt,h=new es(e,r,l,i),f=new Va(e,h,new Wa(t,i),i);return new Tn(f.connectionEvents,Yt.createDevice,i)}}!function(n){n.RESUME="resume",n.SUSPEND="suspend",n.STATUS_CHANGE="status-change"}(Ft||(Ft={}));class ts{constructor(e){const t=e.consoleAppEvent.pipe((0,m.p)(i=>"power-mode-change"===i?.event&&!!i.powerMode),(0,R.T)(i=>i.powerMode),(0,Ce.u)());this.whenPowerModeChanged=t,this.whenIsSuspended=t.pipe((0,m.p)(i=>i===Ft.SUSPEND),(0,R.T)(z.l)),this.whenIsResumed=t.pipe((0,m.p)(i=>i===Ft.RESUME),(0,R.T)(z.l))}}class ns{constructor(e,t){this.deviceDetector=e,this.subscription=t.whenIsResumed.subscribe(()=>this.emitAttachEventsOnResume())}emitAttachEventsOnResume(){for(const e of this.deviceDetector.deviceObservables.getValue())if(e.type===Le.DONGLE){const t=Ha(e);t&&t.sendEvent({subcommand:Mt.attachEvent,data:xt.subscribe})}}dispose(){this.subscription.unsubscribe()}}function as(n){return N(this,void 0,void 0,function*(){const e=yield function ss(n){return N(this,void 0,void 0,function*(){var e,t,i;const r=n?.logger;M("Jabra SDK JS starting up...",r,b.INFO);const l=new Aa(n);l.validateOrganizationKey(),l.validateAppId(),l.validateAppName();const h=null!==(t=null===(e=n?.internal)||void 0===e?void 0:e.testDeviceTransport)&&void 0!==t?t:yield function Sa(n){return N(this,arguments,void 0,function*(e,t=Fe.CHROME_EXTENSION,i=void 0){if(t!==Fe.WEB_HID){const r=yield S.e(7274).then(S.bind(S,57274)).catch(()=>{throw new D(sn,L.UNEXPECTED_ERROR)}),l=yield r.TransportChromeExtension.checkInstallation();if(l.ok)return M("Using Chrome extension for transport.",e,b.INFO),new r.TransportChromeExtension(e,i);if(t===Fe.CHROME_EXTENSION)throw new D(l.message,L.INIT_ERROR);t===Fe.CHROME_EXTENSION_WITH_WEB_HID_FALLBACK&&M(l.message,e,b.INFO)}return M("Using WebHID for transport.",e,b.INFO),function(r,l){return N(this,void 0,void 0,function*(){const h=yield S.e(5519).then(S.bind(S,55519)).catch(()=>{throw new D(sn,L.UNEXPECTED_ERROR)}),f=yield S.e(1824).then(S.bind(S,81824)).catch(()=>{throw new D(sn,L.UNEXPECTED_ERROR)}),I=h.initHandler(r);return new f.WebHidTransport(I,r,l)})}(e,i)})}(r,n?.transport,null===(i=n?.internal)||void 0===i?void 0:i.recorder);new va(h,r);const f=new ts(h),I=Tn.create(h,f,r),U=new Ca(I,h,n);return new ns(I,f),U})}(n);return yield e.start(),e})}class is{constructor(e,t,i,r){this.deviceId=e,this.usagePage=t,this.usage=i,this.value=r}}class rs{constructor(e,t){this.token=e,this.value=t}}function os(){return N(this,void 0,void 0,function*(){const{hid:n}=window.navigator;if(!n)throw new D("WebHID not supported",L.INIT_ERROR);const e=yield n.requestDevice({filters:[{vendorId:Tt.VENDOR_ID}]});return new BroadcastChannel(Tt.PAIRING_CHANNEL).postMessage(null),e})}(function(n){n.UsageReport=class{constructor(e,t){this.usage=e,this.value=t}}})(En||(En={})),function(n){n[n.VENDOR_ID=2830]="VENDOR_ID",n.PAIRING_CHANNEL="jabra-webhid-pairing-channel"}(Tt||(Tt={})),function(n){n[n.HOOK_SWITCH=32]="HOOK_SWITCH",n[n.GN_PSEUDO_HOOK_SWITCH=65531]="GN_PSEUDO_HOOK_SWITCH",n[n.FLASH=33]="FLASH",n[n.ALT_HOLD=35]="ALT_HOLD",n[n.REDIAL=36]="REDIAL",n[n.ONLINE=42]="ONLINE",n[n.SPEAKER_PHONE=43]="SPEAKER_PHONE",n[n.PHONE_MUTE=47]="PHONE_MUTE",n[n.SEND=49]="SEND",n[n.SPEED_DIAL=80]="SPEED_DIAL",n[n.VOICE_MAIL=112]="VOICE_MAIL",n[n.ANSWER_ON_OFF=116]="ANSWER_ON_OFF",n[n.LINE_BUSY=151]="LINE_BUSY",n[n.RINGER=158]="RINGER",n[n.PHONE_KEY_0=176]="PHONE_KEY_0",n[n.PHONE_KEY_1=177]="PHONE_KEY_1",n[n.PHONE_KEY_2=178]="PHONE_KEY_2",n[n.PHONE_KEY_3=179]="PHONE_KEY_3",n[n.PHONE_KEY_4=180]="PHONE_KEY_4",n[n.PHONE_KEY_5=181]="PHONE_KEY_5",n[n.PHONE_KEY_6=182]="PHONE_KEY_6",n[n.PHONE_KEY_7=183]="PHONE_KEY_7",n[n.PHONE_KEY_8=184]="PHONE_KEY_8",n[n.PHONE_KEY_9=185]="PHONE_KEY_9",n[n.PHONE_KEY_STAR=186]="PHONE_KEY_STAR",n[n.PHONE_KEY_POUND=187]="PHONE_KEY_POUND",n[n.ALT_VOLUME_UP=233]="ALT_VOLUME_UP",n[n.ALT_VOLUME_DOWN=234]="ALT_VOLUME_DOWN",n[n.REJECT_CALL=65533]="REJECT_CALL"}(k||(k={}));class cs{constructor(e,t,i){this.type=e,this.value=t,this.valueType=i}toString(){return void 0===k[this.type]?`Unknown signal: type: ${this.type}, value: ${this.value}, valueType: ${this.valueType}`:`Signal: type: ${k[this.type]}, value: ${this.value}, valueType: ${this.valueType}`}}(function(n){n[n.BUTTON=9]="BUTTON",n[n.CONSUMER=12]="CONSUMER",n[n.LED=8]="LED",n[n.TELEPHONY=11]="TELEPHONY",n[n.GN_CONSUMER=65312]="GN_CONSUMER",n[n.GN_EXT_BUTTONS=65360]="GN_EXT_BUTTONS",
1n[n.GN_LED=65344]="GN_LED",n[n.GN_MISC=65376]="GN_MISC",n[n.GN_TELEPHONY=65328]="GN_TELEPHONY"})(ee||(ee={})),function(n){n[n.MUTE=9]="MUTE",n[n.OFF_HOOK=23]="OFF_HOOK",n[n.RING=24]="RING",n[n.MESSAGE_WAIT=25]="MESSAGE_WAIT",n[n.HOLD=32]="HOLD",n[n.MIC_MUTE=33]="MIC_MUTE",n[n.ONLINE=42]="ONLINE",n[n.HID_OFFLINE=43]="HID_OFFLINE"}(Se||(Se={})),function(n){n[n.HOOK_SWITCH=32]="HOOK_SWITCH",n[n.FLASH=33]="FLASH",n[n.HOLD=35]="HOLD",n[n.REDIAL=36]="REDIAL",n[n.ONLINE=42]="ONLINE",n[n.SPEAKER_PHONE=43]="SPEAKER_PHONE",n[n.MUTE=47]="MUTE",n[n.HID_SEND=49]="HID_SEND",n[n.SPEED_DIAL=80]="SPEED_DIAL",n[n.VOICE_MAIL=112]="VOICE_MAIL",n[n.ANSWER_ON_OFF=116]="ANSWER_ON_OFF",n[n.LINE_BUSY=151]="LINE_BUSY",n[n.RINGER=158]="RINGER",n[n.PHONE_KEY_0=176]="PHONE_KEY_0",n[n.PHONE_KEY_1=177]="PHONE_KEY_1",n[n.PHONE_KEY_2=178]="PHONE_KEY_2",n[n.PHONE_KEY_3=179]="PHONE_KEY_3",n[n.PHONE_KEY_4=180]="PHONE_KEY_4",n[n.PHONE_KEY_5=181]="PHONE_KEY_5",n[n.PHONE_KEY_6=182]="PHONE_KEY_6",n[n.PHONE_KEY_7=183]="PHONE_KEY_7",n[n.PHONE_KEY_8=184]="PHONE_KEY_8",n[n.PHONE_KEY_9=185]="PHONE_KEY_9",n[n.PHONE_KEY_STAR=186]="PHONE_KEY_STAR",n[n.PHONE_KEY_POUND=187]="PHONE_KEY_POUND",n[n.HID_ALT_VOLUME_UP=233]="HID_ALT_VOLUME_UP",n[n.HID_ALT_VOLUME_DOWN=234]="HID_ALT_VOLUME_DOWN",n[n.GN_PSEUDO_HOOK_SWITCH=65531]="GN_PSEUDO_HOOK_SWITCH",n[n.GN_OUT_OF_RANGE=65532]="GN_OUT_OF_RANGE",n[n.GN_REJECT_CALL=65533]="GN_REJECT_CALL",n[n.GN_TELEPHONY_CONT_SET=65535]="GN_TELEPHONY_CONT_SET"}(ot||(ot={}));class ls{constructor(e,t,i,r,l){this.hidChannel=e,this.onDisconnect=t,this.isSoftphoneInFocus=i,this.lockHeld=r,this.logger=l,this.cachedSignals=new Map}setup(){const e=this.filter().pipe((0,Ce.u)());return e.subscribe(),e}filter(){const e=this.hidChannel.input.pipe((0,m.p)(h=>h.usagePage===ee.GN_TELEPHONY&&!h.isArray()),(0,H.Z)(h=>{const f=this.hidChannel.findDescriptor(h.usagePage,h.usage,G.INPUT);return f?.valueType?(0,j.of)(Object.assign(Object.assign({},h),{valueType:f.valueType})):(Gt("",new D(`Unable to find value-type in descriptor for UsagePage: ${h.usagePage} and Usage: ${h.usage}`,L.FEATURE_NOT_SUPPORTED),this.logger),Dt.w)}),(0,m.p)(h=>h.valueType===gt.RELATIVE?!!h.value:this.cachedSignals.get(h.usage)!==h.value),(0,re.M)(h=>{this.cachedSignals.set(h.usage,h.value)}),(0,Z.Q)(this.onDisconnect),(0,Ce.u)()),t=[k.HOOK_SWITCH,k.REDIAL],i=e.pipe((r=this.isSoftphoneInFocus,h=>h.pipe((0,et.E)(r),(0,m.p)(([f,I])=>I),(0,R.T)(([f,I])=>f))),(0,m.p)(h=>t.includes(h.usage)&&!this.lockHeld.getValue()));var r;const l=e.pipe((0,m.p)(h=>this.lockHeld.getValue()));return(0,_e.h)(l,i).pipe((0,R.T)(h=>new cs(h.usage,0!==h.value,h.valueType)),(0,X.W)(h=>(M(h.message,this.logger),Dt.w)))}}class fn{constructor(e,t,i,r,l,h){this.device=e,this.onDisconnect=i,ct.set(this,void 0),lt.set(this,new ve.t(!1)),le.set(this,void 0),Vt.set(this,!1),this.deviceSignals=new Re.B,oe(this,ct,r,"f"),A(this,ct,"f").lockHeld.subscribe(A(this,lt,"f")),oe(this,le,t,"f"),this.onDisconnect.pipe((0,J.$)(),(0,R.T)(()=>!0)).subscribe(I=>{oe(this,Vt,I,"f")});const f=new ls(A(this,le,"f"),this.onDisconnect,l,A(this,lt,"f"),h);this.deviceSignals=f.setup()}checkCallLockHeld(e){if(!A(this,lt,"f").getValue())throw new D(e,L.SDK_USAGE_ERROR)}checkCallLockNotHeld(e){if(A(this,lt,"f").getValue())throw new D(e,L.SDK_USAGE_ERROR)}checkHasDisconnected(){if(A(this,Vt,"f"))throw new D("CallControl cannot be performed as the connection has disconnected.",L.SDK_USAGE_ERROR)}takeCallLock(){return this.checkHasDisconnected(),this.checkCallLockNotHeld("Trying to take the call lock, but it is already held!"),function ge(n,e){const t="object"==typeof e;return new Promise((i,r)=>{let h,l=!1;n.subscribe({next:f=>{h=f,l=!0},error:r,complete:()=>{l?i(h):t?i(e.defaultValue):r(new en.G)}})})}(A(this,ct,"f").tryTakeCallLock())}releaseCallLock(){this.checkHasDisconnected(),this.checkCallLockHeld("Trying to release the call lock, but it is not held!"),A(this,ct,"f").releaseCallLock()}offHook(e){this.checkHasDisconnected(),this.checkCallLockHeld("Calls can only be started and stopped when the call lock is held.");const t=A(this,le,"f").findDescriptor(ee.GN_LED,Se.OFF_HOOK,G.OUTPUT);if(!t)throw new D(`Device ${this.device.name} does not support any offHook functionality.`,L.FEATURE_NOT_SUPPORTED);const i=e?1:0;A(this,le,"f").output(t.usagePage,t.usage,i)}ring(e){this.checkHasDisconnected(),this.checkCallLockHeld("The ringer state can only be modified when the call lock is held.");const t=A(this,le,"f").findDescriptor(ee.GN_LED,Se.RING,G.OUTPUT),i=A(this,le,"f").findDescriptor(ee.GN_TELEPHONY,ot.RINGER,G.OUTPUT);if(!t&&!i)throw new D(`Device ${this.device.name} does not support any ring functionality.`,L.FEATURE_NOT_SUPPORTED);if(i){const r=e?1:0;A(this,le,"f").output(i.usagePage,i.usage,r)}if(t){const r=e?1:0;A(this,le,"f").output(t.usagePage,t.usage,r)}}mute(e){this.checkHasDisconnected(),this.checkCallLockHeld("The mute state can only be modified when the call lock is held.");let t=A(this,le,"f").findDescriptor(ee.GN_LED,Se.MIC_MUTE,G.OUTPUT);if(t||(t=A(this,le,"f").findDescriptor(ee.GN_LED,Se.MUTE,G.OUTPUT)),!t)throw new D(`Device ${this.device.name} does not support any mute functionality.`,L.FEATURE_NOT_SUPPORTED);const i=e?1:0;A(this,le,"f").output(t.usagePage,t.usage,i)}hold(e){this.checkHasDisconnected(),this.checkCallLockHeld("The hold state can only be modified when the call lock is held.");const t=A(this,le,"f").findDescriptor(ee.GN_LED,Se.HOLD,G.OUTPUT);if(!t)throw new D(`Device ${this.device.name} does not support hold functionality.`,L.FEATURE_NOT_SUPPORTED);const i=e?1:0;A(this,le,"f").output(t.usagePage,t.usage,i)}}ct=new WeakMap,lt=new WeakMap,le=new WeakMap,Vt=new WeakMap,function(n){n[n.STD_TELEPHONY=0]="STD_TELEPHONY",n[n.GN_TELEPHONY=1]="G
1N_TELEPHONY"}(de||(de={}));class $e extends ce{constructor(e){super(new Uint8Array([e])),this.value=e}static deserialize(e){const t=e.get(0);return new $e(t)}}$e.subcommand=s.get(a.config.id,34);class ds{static deserialize(e){const t=e.get(0),i=[];for(let r=0;r<=t;r+=1)i.push(e.get(r+1));return i}}!function(n){n[n.MS_OC=0]="MS_OC",n[n.CISCO=1]="CISCO",n[n.AVAYA=2]="AVAYA",n[n.SIEMENS=3]="SIEMENS",n[n.ALCATEL=4]="ALCATEL",n[n.IBM=5]="IBM",n[n.AASTRA=6]="AASTRA",n[n.SKYPE=7]="SKYPE",n[n.GENERIC=8]="GENERIC",n[n.NORTEL=9]="NORTEL",n[n.JABRA=10]="JABRA",n[n.NEC=11]="NEC",n[n.SHORETEL=12]="SHORETEL",n[n.OTHER=255]="OTHER"}(se||(se={}));const Xn={[se.SKYPE]:de.GN_TELEPHONY,[se.CISCO]:de.GN_TELEPHONY,[se.AVAYA]:de.GN_TELEPHONY,[se.SIEMENS]:de.GN_TELEPHONY,[se.IBM]:de.GN_TELEPHONY,[se.AASTRA]:de.GN_TELEPHONY,[se.JABRA]:de.GN_TELEPHONY,[se.NEC]:de.GN_TELEPHONY,[se.SHORETEL]:de.GN_TELEPHONY,[se.MS_OC]:de.STD_TELEPHONY,[se.ALCATEL]:de.STD_TELEPHONY,[se.OTHER]:de.STD_TELEPHONY,[se.NORTEL]:null,[se.GENERIC]:null};class us{constructor(e,t,i){this.connectionCallLock=e,this.device=t,this.logger=i,this.lockHeld=new ve.t(!1),this.currentLocks=new ve.t(new Set),this.lockReleaseEvent=new Re.B}tryTakeCallLock(){const{currentConnections:e}=this.device,t=new Set,i=(0,Et.v)(()=>(0,Je.H)(e).pipe((0,tt.H)(r=>this.takeSingleCallLock(r).pipe((0,X.W)(l=>(Gt("DeviceCallLock:",l,this.logger),(0,j.of)(""))))),(0,re.M)(r=>t.add(r)))).pipe((0,me.H)(),(0,R.T)(r=>(t.delete(""),this.currentLocks.next(t),t.size!==e.length?(this.releaseCallLock(),!1):(this.lockHeld.next(!0),!0))),(0,_.t)());return i.subscribe(r=>{r&&(this.acquireLockOnNextConnectionEmit(),this.releaseLockOnRemovedConnectionEmit())}),i}acquireLockOnNextConnectionEmit(){this.device.connectionAdded.pipe((0,Z.Q)(this.lockReleaseEvent)).subscribe(e=>{this.takeSingleCallLock(e).pipe((0,Z.Q)(this.lockReleaseEvent),(0,R.T)(t=>(this.currentLocks.getValue().add(t),this.currentLocks.next(this.currentLocks.getValue()),z.l)),function ra(n){return(0,It.N)((e,t)=>{let i,l,r=!1;const h=()=>{i=e.subscribe((0,Ln._)(t,void 0,void 0,f=>{l||(l=new Re.B,(0,x.Tg)(n(l)).subscribe((0,Ln._)(t,()=>i?h():r=!0))),l&&l.next(f)})),r&&(i.unsubscribe(),i=null,r=!1,h())};h()})}(((t=3,i=500)=>r=>r.pipe((0,H.Z)((l,h)=>{const f=h+1;return f>t?(0,Lt.$)(()=>l):(0,tn.O)(f*f*i)})))())).subscribe({error:t=>{M(`Failed to acquire the call lock on a new connection.\n Another softphone running an old SDK has most likely acquired this lock.\n Full error: ${t}`,this.logger,b.WARNING,at.JS_LIB)}})})}releaseLockOnRemovedConnectionEmit(){this.device.connectionRemoved.pipe((0,Z.Q)(this.lockReleaseEvent)).subscribe(e=>this.releaseSingleCallLock(e.id.transportId))}takeSingleCallLock(e){return(0,Et.v)(()=>this.connectionCallLock.tryTakeCallLock(e.id.transportId)).pipe((0,R.T)(t=>t.acquired?(0,j.of)(t.transportId):(0,Lt.$)(()=>new D(`Failed to acquire call lock on connection ${e.id.transportId}`,L.SDK_USAGE_ERROR))),mt())}releaseCallLock(){this.lockReleaseEvent.next(),[...this.currentLocks.getValue()].forEach(e=>{this.releaseSingleCallLock(e)}),this.currentLocks.getValue().clear(),this.currentLocks.next(this.currentLocks.getValue())}releaseSingleCallLock(e){this.connectionCallLock.releaseCallLock(e),this.currentLocks.getValue().delete(e),this.currentLocks.next(this.currentLocks.getValue()),0!==this.currentLocks.getValue().size&&0!==this.device.currentConnections.length||(this.lockReleaseEvent.next(),this.lockHeld.next(!1))}}class Es{constructor(e){this.transport=e}tryTakeCallLock(e){return this.transport.writeAction({action:"request-call-lock",id:e}),this.transport.consoleAppEvent.pipe((0,m.p)(i=>"response-call-lock"===i.event&&i.id===e),(0,R.T)(i=>({transportId:i.id,acquired:i.acquired})),(0,J.$)())}releaseCallLock(e){this.transport.writeAction({action:"release-call-lock",id:e})}}const Is=[{usagePage:ee.GN_LED,usage:Se.OFF_HOOK,reportType:G.OUTPUT},{usagePage:ee.GN_LED,usage:Se.RING,reportType:G.OUTPUT},{usagePage:ee.GN_TELEPHONY,usage:ot.RINGER,reportType:G.OUTPUT},{usagePage:ee.GN_LED,usage:Se.MIC_MUTE,reportType:G.OUTPUT},{usagePage:ee.GN_LED,usage:Se.MUTE,reportType:G.OUTPUT},{usagePage:ee.GN_LED,usage:Se.HOLD,reportType:G.OUTPUT}],Jn=[pe.USB,pe.INDIRECT,pe.BLUETOOTH];function ea(n){const{currentConnections:e,type:t}=n;var i;return(i=e,[...i].sort((r,l)=>Jn.indexOf(r.type)-Jn.indexOf(l.type))).find(r=>function gs(n,e){const{hidChannel:t}=n;return i=t,!(!Is.some(({usagePage:r,usage:l,reportType:h})=>
1i.findDescriptor(r,l,h))||n.hasChannel("gnp")&&(e===Le.DONGLE||e===Le.OTHER));var i}(r,t))}class ps{constructor(e,t){this.devComm=e,this.softphoneInFocus=new nn.c,this.softphoneInFocus=t.pipe((0,J.$)(),(0,H.Z)(i=>this.devComm.consoleAppEvent.pipe((0,m.p)(r=>"softphone-in-focus"===r.event),(0,R.T)(r=>r.infocus),(0,oa.Z)(!i))),(0,_.t)(1)),this.softphoneInFocus.subscribe(()=>{})}setSharedSoftphoneInfo(e){if(!e?.partnerKey||!e?.appId)return void M("Unable to register with Jabra Direct: partnerKey or appId missing in config",e?.logger,b.WARNING);const i=new wt(5,"ns:OID",e.partnerKey+e.appId);let{appName:r}=e;if((!e.appName||e.appName.length<3)&&(M("App name missing in config. Fall back to use appId as app name.",e?.logger,b.WARNING),r=e.appId),r.length>100)return void M("Unable to register with Jabra Direct: appName must be below 100 characters.",e?.logger,b.WARNING);const l={action:"set-softphone-info",name:r,id:i.toString()};this.devComm.writeAction(l)}}var $t,ft,jt,Ot,Me,Te,B,W;class ta{constructor(e){var t;$t.set(this,void 0),ft.set(this,void 0),jt.set(this,void 0),Ot.set(this,void 0),oe(this,Ot,e._readyEvents.pipe((0,J.$)(i=>"ready"===i.event),(0,R.T)(i=>i.jabraDirectInstalled),(0,_.t)(1)),"f"),oe(this,ft,new ps(e._transport,A(this,Ot,"f")),"f"),A(this,ft,"f").setSharedSoftphoneInfo(e._config),oe(this,$t,e._transport,"f"),oe(this,jt,null===(t=e._config)||void 0===t?void 0:t.logger,"f")}createCallControl(e){return this.supportsCallControl(e)?(0,Ue._)(A(this,Ot,"f").pipe((0,H.Z)(i=>function(r,l,h,f,I){const U=ea(r),{hidChannel:w,onDisconnect:Y}=U,K=new us(new Es(f),r,I);if(l)return(0,j.of)(new fn(r,w,Y,K,h.softphoneInFocus,I));if(f.context===Ut.WEB_HID)return(0,j.of)(new fn(r,w,Y,K,h.softphoneInFocus,I));const fe=U.tryGetChannel("gnp");return function hs(n,e,t){return n.findDescriptor(ee.GN_TELEPHONY,ot.GN_TELEPHONY_CONT_SET,G.FEATURE)?(0,Et.v)(()=>(n.setFeatureReport(ee.GN_TELEPHONY,ot.GN_TELEPHONY_CONT_SET,1),(0,j.of)(!0))):e?(0,Je.H)(function(i,r,l){return N(this,void 0,void 0,function*(){try{const h=yield i.read($e.subcommand).then($e.deserialize);if(Xn[h.value]===r)return!0;const f=(yield i.read(Ve.availableSoftphones).then(ds.deserialize)).find(I=>Xn[I]===r);return!!f&&(yield i.write({subcommand:$e.subcommand,data:new $e(f)}),!0)}catch(h){return M(`Failed to set HID working state via GNP: ${h}`,l,b.WARNING),!1}})}(e,de.GN_TELEPHONY,t)):(0,j.of)(!1)}(w,fe,I).pipe((0,R.T)(Ie=>new fn(r,w,Y,K,h.softphoneInFocus,I)))}(e,i,A(this,ft,"f"),A(this,$t,"f"),A(this,jt,"f"))))):Promise.reject(new D(`Device ${e.name} does not support call control.`,L.FEATURE_NOT_SUPPORTED))}supportsCallControl(e){return void 0!==ea(e)}}$t=new WeakMap,ft=new WeakMap,jt=new WeakMap,Ot=new WeakMap,function(n){n.HOLD_CURRENT="hold-current",n.END_CURRENT="end-current"}(Me||(Me={})),function(n){n.MUTED="muted",n.UNMUTED="unmuted",n.NO_ONGOING_CALLS="no-ongoing-calls"}(Te||(Te={})),function(n){n.ON_HOLD="on-hold",n.NOT_ON_HOLD="not-on-hold",n.NO_ONGOING_CALLS="no-ongoing-calls"}(B||(B={})),function(n){n.NO_INCOMING="no-incoming",n.AWAITING_RESPONSE="awaiting-response",n.RESOLVING_RESPONSE="resolving-response",n.ACCEPTED="accepted",n.REJECTED="rejected"}(W||(W={}))}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.